You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by bh...@apache.org on 2014/11/25 15:51:37 UTC

[01/18] git commit: updated refs/heads/4.3 to b8a28df

Repository: cloudstack
Updated Branches:
  refs/heads/4.3 bb81082e5 -> b8a28dfae


CLOUDSTACK-7886: cloudstackoperations like deployvm,deleteNW are failing if CS fail to contact rabbit mq server. This is happening in case of Async API calls.

Signed-off-by: Koushik Das <ko...@apache.org>
(cherry picked from commit 50a3c0b2e30009579c3692e639d32ea608e9e8f9)
Signed-off-by: Rohit Yadav <ro...@shapeblue.com>


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/12d1c945
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/12d1c945
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/12d1c945

Branch: refs/heads/4.3
Commit: 12d1c945f25fd5e6791f61fa2883cddbcd212b2a
Parents: bb81082
Author: Damodar <da...@citrix.com>
Authored: Tue Nov 11 18:16:06 2014 +0530
Committer: Rohit Yadav <ro...@shapeblue.com>
Committed: Tue Nov 25 18:11:22 2014 +0530

----------------------------------------------------------------------
 server/src/com/cloud/api/ApiServer.java | 5 +----
 1 file changed, 1 insertion(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/12d1c945/server/src/com/cloud/api/ApiServer.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/api/ApiServer.java b/server/src/com/cloud/api/ApiServer.java
index 7aac28f..1311879 100755
--- a/server/src/com/cloud/api/ApiServer.java
+++ b/server/src/com/cloud/api/ApiServer.java
@@ -282,11 +282,8 @@ public class ApiServer extends ManagerBase implements HttpRequestHandler, ApiSer
         try {
             eventBus.publish(event);
         } catch (EventBusException evx) {
-            String errMsg = "F" +
-                    "" +
-                    "ailed to publish async job event on the the event bus.";
+            String errMsg = "Failed to publish async job event on the the event bus.";
             s_logger.warn(errMsg, evx);
-            throw new CloudRuntimeException(errMsg);
         }
     }
 


[05/18] git commit: updated refs/heads/4.3 to b8a28df

Posted by bh...@apache.org.
CLOUDSTACK-7869: Add simulator support for findHostsForMigration API

(cherry picked from commit 8378485e56d973639dfc06013d64db6a80056a3b)
Signed-off-by: Rohit Yadav <ro...@shapeblue.com>

Conflicts:
	server/src/com/cloud/server/ManagementServerImpl.java


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/f0a81edb
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/f0a81edb
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/f0a81edb

Branch: refs/heads/4.3
Commit: f0a81edb5b80acac4685a28fabeaad978c01a59f
Parents: 1e47589
Author: Koushik Das <ko...@apache.org>
Authored: Sat Nov 8 13:46:24 2014 +0530
Committer: Rohit Yadav <ro...@shapeblue.com>
Committed: Tue Nov 25 18:31:37 2014 +0530

----------------------------------------------------------------------
 server/src/com/cloud/server/ManagementServerImpl.java | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/f0a81edb/server/src/com/cloud/server/ManagementServerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/server/ManagementServerImpl.java b/server/src/com/cloud/server/ManagementServerImpl.java
index 3744cb3..afa50b0 100755
--- a/server/src/com/cloud/server/ManagementServerImpl.java
+++ b/server/src/com/cloud/server/ManagementServerImpl.java
@@ -1081,9 +1081,9 @@ public class ManagementServerImpl extends ManagerBase implements ManagementServe
             throw ex;
         }
 
-        if (!vm.getHypervisorType().equals(HypervisorType.XenServer) && !vm.getHypervisorType().equals(HypervisorType.VMware)
-                && !vm.getHypervisorType().equals(HypervisorType.KVM) && !vm.getHypervisorType().equals(HypervisorType.Ovm)
-                && !vm.getHypervisorType().equals(HypervisorType.Hyperv)) {
+        if (!vm.getHypervisorType().equals(HypervisorType.XenServer) && !vm.getHypervisorType().equals(HypervisorType.VMware) && !vm.getHypervisorType().equals(HypervisorType.KVM)
+                && !vm.getHypervisorType().equals(HypervisorType.Ovm) && !vm.getHypervisorType().equals(HypervisorType.Hyperv) && !vm.getHypervisorType().equals(HypervisorType.LXC)
+                && !vm.getHypervisorType().equals(HypervisorType.Simulator)) {
             if (s_logger.isDebugEnabled()) {
                 s_logger.debug(vm + " is not XenServer/VMware/KVM/OVM/Hyperv, cannot migrate this VM.");
             }


[17/18] git commit: updated refs/heads/4.3 to b8a28df

Posted by bh...@apache.org.
CLOUDSTACK-7191:On restartNetwork destroy the VR immediatley, instead of
cleanup the rules then destroy

fix adds a provision to specify if cleanup is needed on network on
shutdown. VR is marked as to not to require network rules clean up on
network shutdown as the VR is destroyed and recreated.

ran the simulator tests that test network life cycle

(cherry picked from commit 67876b215ef5217b3d306b3642a38a3708a30494)
Signed-off-by: Rohit Yadav <ro...@shapeblue.com>


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/816eb63e
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/816eb63e
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/816eb63e

Branch: refs/heads/4.3
Commit: 816eb63e972be6a1eaa20667e461d24882b3ee47
Parents: eb6987c
Author: Murali Reddy <mu...@gmail.com>
Authored: Mon Jul 28 16:14:50 2014 +0530
Committer: Rohit Yadav <ro...@shapeblue.com>
Committed: Tue Nov 25 19:46:40 2014 +0530

----------------------------------------------------------------------
 api/src/com/cloud/network/Network.java            | 18 +++++++++++++++++-
 .../engine/orchestration/NetworkOrchestrator.java | 17 ++++++++++++++---
 2 files changed, 31 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/816eb63e/api/src/com/cloud/network/Network.java
----------------------------------------------------------------------
diff --git a/api/src/com/cloud/network/Network.java b/api/src/com/cloud/network/Network.java
index b5e8173..843e874 100644
--- a/api/src/com/cloud/network/Network.java
+++ b/api/src/com/cloud/network/Network.java
@@ -114,7 +114,7 @@ public interface Network extends ControlledEntity, StateObject<Network.State>, I
     public static class Provider {
         private static List<Provider> supportedProviders = new ArrayList<Provider>();
 
-        public static final Provider VirtualRouter = new Provider("VirtualRouter", false);
+        public static final Provider VirtualRouter = new Provider("VirtualRouter", false, false);
         public static final Provider JuniperContrailRouter = new Provider("JuniperContrailRouter", false);
         public static final Provider JuniperSRX = new Provider("JuniperSRX", true);
         public static final Provider PaloAlto = new Provider("PaloAlto", true);
@@ -135,9 +135,21 @@ public interface Network extends ControlledEntity, StateObject<Network.State>, I
         private final String name;
         private final boolean isExternal;
 
+        // set to true, if on network shutdown resources (acquired/configured at implemented phase) needed to cleaned up. set to false
+        // if no clean-up is required ( for e.g appliance based providers like VirtualRouter, VM is destroyed so there is no need to cleanup).
+        private final boolean needCleanupOnShutdown;
+
         public Provider(String name, boolean isExternal) {
             this.name = name;
             this.isExternal = isExternal;
+            needCleanupOnShutdown = true;
+            supportedProviders.add(this);
+        }
+
+        public Provider(String name, boolean isExternal, boolean needCleanupOnShutdown) {
+            this.name = name;
+            this.isExternal = isExternal;
+            this.needCleanupOnShutdown = needCleanupOnShutdown;
             supportedProviders.add(this);
         }
 
@@ -149,6 +161,10 @@ public interface Network extends ControlledEntity, StateObject<Network.State>, I
             return isExternal;
         }
 
+        public boolean cleanupNeededOnShutdown() {
+            return needCleanupOnShutdown;
+        }
+
         public static Provider getProvider(String providerName) {
             for (Provider provider : supportedProviders) {
                 if (provider.getName().equalsIgnoreCase(providerName)) {

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/816eb63e/engine/orchestration/src/org/apache/cloudstack/engine/orchestration/NetworkOrchestrator.java
----------------------------------------------------------------------
diff --git a/engine/orchestration/src/org/apache/cloudstack/engine/orchestration/NetworkOrchestrator.java b/engine/orchestration/src/org/apache/cloudstack/engine/orchestration/NetworkOrchestrator.java
index 9e869c4..d3fe98a 100755
--- a/engine/orchestration/src/org/apache/cloudstack/engine/orchestration/NetworkOrchestrator.java
+++ b/engine/orchestration/src/org/apache/cloudstack/engine/orchestration/NetworkOrchestrator.java
@@ -2037,11 +2037,24 @@ public class NetworkOrchestrator extends ManagerBase implements NetworkOrchestra
 
     @Override
     public boolean shutdownNetworkElementsAndResources(ReservationContext context, boolean cleanupElements, Network network) {
+
+        // get providers to shutdown
+        List<Provider> providersToShutdown = getNetworkProviders(network.getId());
+
         // 1) Cleanup all the rules for the network. If it fails, just log the failure and proceed with shutting down
         // the elements
         boolean cleanupResult = true;
+        boolean cleanupNeeded = false;
         try {
-            cleanupResult = shutdownNetworkResources(network.getId(), context.getAccount(), context.getCaller().getId());
+            for (Provider provider: providersToShutdown) {
+                if (provider.cleanupNeededOnShutdown()) {
+                    cleanupNeeded = true;
+                    break;
+                }
+            }
+            if (cleanupNeeded) {
+                cleanupResult = shutdownNetworkResources(network.getId(), context.getAccount(), context.getCaller().getId());
+            }
         } catch (Exception ex) {
             s_logger.warn("shutdownNetworkRules failed during the network " + network + " shutdown due to ", ex);
         } finally {
@@ -2052,8 +2065,6 @@ public class NetworkOrchestrator extends ManagerBase implements NetworkOrchestra
         }
 
         // 2) Shutdown all the network elements
-        // get providers to shutdown
-        List<Provider> providersToShutdown = getNetworkProviders(network.getId());
         boolean success = true;
         for (NetworkElement element : _networkElements) {
             if (providersToShutdown.contains(element.getProvider())) {


[13/18] git commit: updated refs/heads/4.3 to b8a28df

Posted by bh...@apache.org.
CLOUDSTACK-7463: UI: Domain Admin UI shows 'Add LDAP Users' button (should not be shown)

Signed-off-by: Rajani Karuturi <ra...@gmail.com>
(cherry picked from commit c200ada863dd4a7d5659538e4378c77a3e89d597)
Signed-off-by: Rohit Yadav <ro...@shapeblue.com>

Conflicts:
	ui/scripts/accounts.js


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/898b2e70
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/898b2e70
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/898b2e70

Branch: refs/heads/4.3
Commit: 898b2e700e91e127ce89709bdf85500494e88fd1
Parents: dc80b25
Author: Gabor Apati-Nagy <ga...@citrix.com>
Authored: Tue Sep 2 10:26:54 2014 +0100
Committer: Rohit Yadav <ro...@shapeblue.com>
Committed: Tue Nov 25 19:29:47 2014 +0530

----------------------------------------------------------------------
 ui/scripts/accounts.js | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/898b2e70/ui/scripts/accounts.js
----------------------------------------------------------------------
diff --git a/ui/scripts/accounts.js b/ui/scripts/accounts.js
index a15cc87..9d62f72 100644
--- a/ui/scripts/accounts.js
+++ b/ui/scripts/accounts.js
@@ -97,7 +97,8 @@
                             label: 'Add LDAP Account',
                             isHeader: true,
                             preFilter: function(args) {
-                                if ((isAdmin() || isDomainAdmin()) && isLdapEnabled()) {
+                                //if (isAdmin() && true) { //for testing only
+                                if (isAdmin() && isLdapEnabled()) {
                                     return true;
                                 } else {
                                     return false;


[16/18] git commit: updated refs/heads/4.3 to b8a28df

Posted by bh...@apache.org.
CLOUDSTACK-7293: UI: Fixed localization issues on the login page

- Reverted the validator.messages to the original values (jquery.validator.js).
- Added a function to localize validator.messages which is called before login.

Signed-off-by: Brian Federle <br...@citrix.com>
(cherry picked from commit f212aa57c32eb05d6a69730e37ac50bdb1f0a268)
Signed-off-by: Rohit Yadav <ro...@shapeblue.com>

Conflicts:
	ui/scripts/cloudStack.js


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/eb6987c3
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/eb6987c3
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/eb6987c3

Branch: refs/heads/4.3
Commit: eb6987c393597fa0fb74ebff76c8360b4df5328a
Parents: fa300f9
Author: Mihaela Stoica <mi...@citrix.com>
Authored: Fri Aug 8 15:19:50 2014 +0100
Committer: Rohit Yadav <ro...@shapeblue.com>
Committed: Tue Nov 25 19:36:08 2014 +0530

----------------------------------------------------------------------
 ui/scripts/cloudStack.js |  9 ++++++---
 ui/scripts/ui/utils.js   | 25 +++++++++++++++++++++++++
 2 files changed, 31 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/eb6987c3/ui/scripts/cloudStack.js
----------------------------------------------------------------------
diff --git a/ui/scripts/cloudStack.js b/ui/scripts/cloudStack.js
index 5195a7b..0a20aa8 100644
--- a/ui/scripts/cloudStack.js
+++ b/ui/scripts/cloudStack.js
@@ -474,8 +474,6 @@
             loginArgs.hideLoginScreen = true;
         }
 
-        cloudStack.uiCustom.login(loginArgs);
-
         // Localization
         if (!$.isFunction(cloudStack.localizationFn)) { // i.e., localize is overridden by a plugin/module
             cloudStack.localizationFn = function(str) {
@@ -483,6 +481,11 @@
             };
         }
 
-        document.title = _l('label.app.name');
+        // Localize validation messages
+        cloudStack.localizeValidatorMessages();
+
+        cloudStack.uiCustom.login(loginArgs);
+
+        document.title = _l('label.app.name');            
     });
 })(cloudStack, jQuery);

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/eb6987c3/ui/scripts/ui/utils.js
----------------------------------------------------------------------
diff --git a/ui/scripts/ui/utils.js b/ui/scripts/ui/utils.js
index 769aea7..542365a 100644
--- a/ui/scripts/ui/utils.js
+++ b/ui/scripts/ui/utils.js
@@ -120,4 +120,29 @@
             return str;
         }
     };
+
+    /**
+     * Localize validator messages
+     */
+    cloudStack.localizeValidatorMessages = function() {
+        $.extend($.validator.messages, {
+            required: _l('message.validate.fieldrequired'),
+            remote: _l('message.validate.fixfield'),
+            email: _l('message.validate.email.address'),
+            url: _l('message.validate.URL'),
+            date: _l('message.validate.date'),
+            dateISO: _l('message.validate.date.ISO'),
+            number: _l('message.validate.number'),
+            digits: _l('message.validate.digits'),
+            creditcard: _l('message.validate.creditcard'),
+            equalTo: _l('message.validate.equalto'),
+            accept: _l('message.validate.accept'),
+            maxlength: $.validator.format(_l('message.validate.maxlength')),
+            minlength: $.validator.format(_l('message.validate.minlength')),
+            rangelength: $.validator.format(_l('message.validate.range.length')),
+            range: $.validator.format(_l('message.validate.range')),
+            max: $.validator.format(_l('message.validate.max')),
+            min: $.validator.format(_l('messgae.validate.min'))
+        });
+    };
 })(jQuery, cloudStack);


[15/18] git commit: updated refs/heads/4.3 to b8a28df

Posted by bh...@apache.org.
CLOUDSTACK-7302: UI: Remove Hover Interaction from breadcrumbs at top page

Signed-off-by: Mihaela Stoica <mi...@citrix.com>
(cherry picked from commit af377430453ecf1fb9b44ed3e29541b7f20ce5d5)
Signed-off-by: Rohit Yadav <ro...@shapeblue.com>


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/fa300f9f
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/fa300f9f
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/fa300f9f

Branch: refs/heads/4.3
Commit: fa300f9f5e0017f05b13a20688b6311bc8d63173
Parents: 7dbafba
Author: Mihaela Stoica <mi...@citrix.com>
Authored: Mon Aug 11 08:58:04 2014 +0100
Committer: Rohit Yadav <ro...@shapeblue.com>
Committed: Tue Nov 25 19:34:39 2014 +0530

----------------------------------------------------------------------
 ui/scripts/ui/widgets/cloudBrowser.js | 69 ------------------------------
 1 file changed, 69 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/fa300f9f/ui/scripts/ui/widgets/cloudBrowser.js
----------------------------------------------------------------------
diff --git a/ui/scripts/ui/widgets/cloudBrowser.js b/ui/scripts/ui/widgets/cloudBrowser.js
index ffb5f15..2dcec10 100644
--- a/ui/scripts/ui/widgets/cloudBrowser.js
+++ b/ui/scripts/ui/widgets/cloudBrowser.js
@@ -355,73 +355,4 @@
             }
         }
     ));
-
-    // Breadcrumb hovering
-    $('#breadcrumbs li').live('mouseover', cloudStack.ui.event.bind(
-        'cloudBrowser', {
-            'breadcrumb': function($target, $browser, data) {
-                var $hiddenPanels = data.panel.siblings().filter(function() {
-                    return $(this).index() > data.panel.index();
-                });
-                var $targetPanel = data.panel.filter(':first');
-                var $targetBreadcrumb = _breadcrumb.filter($targetPanel);
-                var $panelWrapper = $('<div>').addClass('panel panel-highlight-wrapper');
-
-                $hiddenPanels.addClass('mouseover-hidden');
-
-                $browser.data('browser-panel-highlight-timer', setTimeout(function() {
-                    $('#browser').addClass('panel-highlight');
-                    $('.overlay').remove();
-
-                    // Setup panel and wrapper positioning
-                    $panelWrapper
-                        .css({
-                            left: $targetPanel.position().left
-                        })
-                        .width($targetPanel.width());
-                    $targetPanel
-                        .wrap($panelWrapper);
-                    $panelWrapper
-                        .zIndex(10000)
-                        .overlay();
-                    $targetPanel.filter(':last').addClass('highlighted');
-
-                    // Setup breadcrumbs
-                    $targetBreadcrumb.each(function() {
-                        $(this).data('breadcrumb-original-zindex', $(this).zIndex());
-                    });
-                    $targetBreadcrumb.zIndex(10001);
-
-                    $hiddenPanels.hide();
-                }, 1000));
-            }
-        }
-    ));
-
-    $('#breadcrumbs li').live('mouseout', cloudStack.ui.event.bind(
-        'cloudBrowser', {
-            'breadcrumb': function($target, $browser, data) {
-                var $getHiddenPanels = $browser.find('.panel.mouseover-hidden');
-                var $visiblePanels = $getHiddenPanels.siblings();
-                var $visibleBreadcrumbs = _breadcrumb.filter($visiblePanels);
-
-                clearTimeout($browser.data('browser-panel-highlight-timer'));
-                $('#browser').removeClass('panel-highlight');
-                $('#browser .panel').removeClass('highlighted');
-                $('#browser .panel.panel-highlight-wrapper').each(function() {
-                    var $wrapper = $(this);
-                    var $panel = $wrapper.find('.panel');
-
-                    $wrapper.after($panel);
-                    $wrapper.remove();
-                });
-                $getHiddenPanels.removeClass('mouseover-hidden').show();
-                $visibleBreadcrumbs.each(function() {
-                    $(this).zIndex($(this).data('breadcrumb-original-zindex'));
-                });
-                $('.overlay').remove();
-                $('#browser .panel > .highlight-arrow').remove();
-            }
-        }
-    ));
 })(jQuery, cloudStack);


[18/18] git commit: updated refs/heads/4.3 to b8a28df

Posted by bh...@apache.org.
CLOUDSTACK-7144: No GSLB provider is available during assigning load
balancing rule

this fix ensures any bean implementing GslbProvider interface are injected
into GlobalLoadBalancingRulesServiceImpl.

(cherry picked from commit 9dc322d46fa5cfb9abd87c408988abad1219d607)
Signed-off-by: Rohit Yadav <ro...@shapeblue.com>

Conflicts:
	server/resources/META-INF/cloudstack/core/spring-server-core-managers-context.xml
	server/src/org/apache/cloudstack/region/gslb/GlobalLoadBalancingRulesServiceImpl.java


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/b8a28dfa
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/b8a28dfa
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/b8a28dfa

Branch: refs/heads/4.3
Commit: b8a28dfae391a4642e06569fbe1c3dbbafa66a69
Parents: 816eb63
Author: Murali Reddy <mu...@gmail.com>
Authored: Mon Jul 21 16:48:28 2014 +0530
Committer: Rohit Yadav <ro...@shapeblue.com>
Committed: Tue Nov 25 19:50:37 2014 +0530

----------------------------------------------------------------------
 .../core/spring-core-registry-core-context.xml  |  5 ++++
 ...re-lifecycle-network-context-inheritable.xml |  8 +++++--
 .../spring-server-core-managers-context.xml     |  5 ++--
 .../GlobalLoadBalancingRulesServiceImpl.java    | 24 ++++++++++++--------
 ...GlobalLoadBalancingRulesServiceImplTest.java |  4 +++-
 5 files changed, 32 insertions(+), 14 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/b8a28dfa/core/resources/META-INF/cloudstack/core/spring-core-registry-core-context.xml
----------------------------------------------------------------------
diff --git a/core/resources/META-INF/cloudstack/core/spring-core-registry-core-context.xml b/core/resources/META-INF/cloudstack/core/spring-core-registry-core-context.xml
index 5e799c0..a10bbb3 100644
--- a/core/resources/META-INF/cloudstack/core/spring-core-registry-core-context.xml
+++ b/core/resources/META-INF/cloudstack/core/spring-core-registry-core-context.xml
@@ -229,6 +229,11 @@
         </property>
     </bean>
 
+    <bean id="gslbServiceProvidersRegistry"
+        class="org.apache.cloudstack.spring.lifecycle.registry.ExtensionRegistry">
+        <property name="excludeKey" value="gslb.service.provider.exclude" />
+    </bean>
+
     <bean id="affinityProcessorsRegistry"
         class="org.apache.cloudstack.spring.lifecycle.registry.ExtensionRegistry">
         <property name="orderConfigKey" value="affinity.processors.order" />

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/b8a28dfa/core/resources/META-INF/cloudstack/network/spring-core-lifecycle-network-context-inheritable.xml
----------------------------------------------------------------------
diff --git a/core/resources/META-INF/cloudstack/network/spring-core-lifecycle-network-context-inheritable.xml b/core/resources/META-INF/cloudstack/network/spring-core-lifecycle-network-context-inheritable.xml
index a54d588..76cdfe3 100644
--- a/core/resources/META-INF/cloudstack/network/spring-core-lifecycle-network-context-inheritable.xml
+++ b/core/resources/META-INF/cloudstack/network/spring-core-lifecycle-network-context-inheritable.xml
@@ -96,5 +96,9 @@
         <property name="typeClass"
             value="com.cloud.network.element.RemoteAccessVPNServiceProvider" />
     </bean>
-
-</beans>
\ No newline at end of file
+    <bean class="org.apache.cloudstack.spring.lifecycle.registry.RegistryLifecycle">
+        <property name="registry" ref="gslbServiceProvidersRegistry" />
+        <property name="typeClass"
+            value="org.apache.cloudstack.region.gslb.GslbServiceProvider" />
+    </bean>
+</beans>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/b8a28dfa/server/resources/META-INF/cloudstack/core/spring-server-core-managers-context.xml
----------------------------------------------------------------------
diff --git a/server/resources/META-INF/cloudstack/core/spring-server-core-managers-context.xml b/server/resources/META-INF/cloudstack/core/spring-server-core-managers-context.xml
index 31f31cd..a5f9a0b 100644
--- a/server/resources/META-INF/cloudstack/core/spring-server-core-managers-context.xml
+++ b/server/resources/META-INF/cloudstack/core/spring-server-core-managers-context.xml
@@ -231,7 +231,8 @@
     <bean id="PlannerHostReservationDaoImpl" class="com.cloud.deploy.dao.PlannerHostReservationDaoImpl" />
 
     <bean id="GlobalLoadBalancingRulesServiceImpl"
-        class="org.apache.cloudstack.region.gslb.GlobalLoadBalancingRulesServiceImpl" />
-
+        class="org.apache.cloudstack.region.gslb.GlobalLoadBalancingRulesServiceImpl" >
+        <property name="gslbServiceProviders" value="#{gslbServiceProvidersRegistry.registered}" />
+    </bean>
     <bean id="certServiceImpl" class="org.apache.cloudstack.network.lb.CertServiceImpl" />
 </beans>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/b8a28dfa/server/src/org/apache/cloudstack/region/gslb/GlobalLoadBalancingRulesServiceImpl.java
----------------------------------------------------------------------
diff --git a/server/src/org/apache/cloudstack/region/gslb/GlobalLoadBalancingRulesServiceImpl.java b/server/src/org/apache/cloudstack/region/gslb/GlobalLoadBalancingRulesServiceImpl.java
index 62b9748..d4275d4 100644
--- a/server/src/org/apache/cloudstack/region/gslb/GlobalLoadBalancingRulesServiceImpl.java
+++ b/server/src/org/apache/cloudstack/region/gslb/GlobalLoadBalancingRulesServiceImpl.java
@@ -85,9 +85,10 @@ public class GlobalLoadBalancingRulesServiceImpl implements GlobalLoadBalancingR
     @Inject
     AgentManager _agentMgr;
 
-    protected GslbServiceProvider _gslbProvider=null;
-    public void setGslbServiceProvider(GslbServiceProvider provider) {
-        this._gslbProvider = provider;
+    protected List<GslbServiceProvider> _gslbProviders;
+
+    public void setGslbServiceProviders(List<GslbServiceProvider> providers) {
+        _gslbProviders = providers;
     }
 
     @Override
@@ -663,8 +664,8 @@ public class GlobalLoadBalancingRulesServiceImpl implements GlobalLoadBalancingR
                     ip.getAddress().addr(), Integer.toString(loadBalancer.getDefaultPortStart()),
                     dataCenterId);
 
-            siteLb.setGslbProviderPublicIp(_gslbProvider.getZoneGslbProviderPublicIp(dataCenterId, physicalNetworkId));
-            siteLb.setGslbProviderPrivateIp(_gslbProvider.getZoneGslbProviderPrivateIp(dataCenterId, physicalNetworkId));
+            siteLb.setGslbProviderPublicIp(lookupGslbServiceProvider().getZoneGslbProviderPublicIp(dataCenterId, physicalNetworkId));
+            siteLb.setGslbProviderPrivateIp(lookupGslbServiceProvider().getZoneGslbProviderPrivateIp(dataCenterId, physicalNetworkId));
             siteLb.setWeight(gslbLbMapVo.getWeight());
 
             zoneSiteLoadbalancerMap.put(network.getDataCenterId(), siteLb);
@@ -693,7 +694,7 @@ public class GlobalLoadBalancingRulesServiceImpl implements GlobalLoadBalancingR
             }
 
             try {
-                _gslbProvider.applyGlobalLoadBalancerRule(zoneId.first(), zoneId.second(), gslbConfigCmd);
+                lookupGslbServiceProvider().applyGlobalLoadBalancerRule(zoneId.first(), zoneId.second(), gslbConfigCmd);
             } catch (ResourceUnavailableException e) {
                 String msg =  "Failed to configure GSLB rule in the zone " + zoneId.first() + " due to " + e.getMessage();
                 s_logger.warn(msg);
@@ -719,15 +720,20 @@ public class GlobalLoadBalancingRulesServiceImpl implements GlobalLoadBalancingR
 
     private boolean checkGslbServiceEnabledInZone(long zoneId, long physicalNetworkId) {
 
-        if (_gslbProvider == null) {
+        GslbServiceProvider gslbProvider = lookupGslbServiceProvider();
+        if (gslbProvider == null) {
             throw new CloudRuntimeException("No GSLB provider is available");
         }
 
-        return _gslbProvider.isServiceEnabledInZone(zoneId, physicalNetworkId);
+        return gslbProvider.isServiceEnabledInZone(zoneId, physicalNetworkId);
+    }
+
+    protected GslbServiceProvider lookupGslbServiceProvider() {
+        return _gslbProviders.size() == 0 ? null : _gslbProviders.get(0);
     }
 
     @Override
     public GlobalLoadBalancerRule findById(long gslbRuleId) {
         return _gslbRuleDao.findById(gslbRuleId);
     }
-}
\ No newline at end of file
+}

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/b8a28dfa/server/test/org/apache/cloudstack/region/gslb/GlobalLoadBalancingRulesServiceImplTest.java
----------------------------------------------------------------------
diff --git a/server/test/org/apache/cloudstack/region/gslb/GlobalLoadBalancingRulesServiceImplTest.java b/server/test/org/apache/cloudstack/region/gslb/GlobalLoadBalancingRulesServiceImplTest.java
index 504ab9c..5b5dd08 100644
--- a/server/test/org/apache/cloudstack/region/gslb/GlobalLoadBalancingRulesServiceImplTest.java
+++ b/server/test/org/apache/cloudstack/region/gslb/GlobalLoadBalancingRulesServiceImplTest.java
@@ -726,7 +726,9 @@ public class GlobalLoadBalancingRulesServiceImplTest extends TestCase {
         gslbServiceImpl._globalConfigDao = Mockito.mock(ConfigurationDao.class);
         gslbServiceImpl._ipAddressDao = Mockito.mock(IPAddressDao.class);
         gslbServiceImpl._agentMgr = Mockito.mock(AgentManager.class);
-        gslbServiceImpl._gslbProvider = Mockito.mock(GslbServiceProvider.class);
+        List<GslbServiceProvider> mockGslbProviders = new ArrayList<GslbServiceProvider>();
+        mockGslbProviders.add(Mockito.mock(GslbServiceProvider.class));
+        gslbServiceImpl._gslbProviders = mockGslbProviders;
 
         RemoveFromGlobalLoadBalancerRuleCmd removeFromGslbCmd = new RemoveFromGlobalLoadBalancerRuleCmdExtn();
         Class<?> _class = removeFromGslbCmd.getClass().getSuperclass();


[09/18] git commit: updated refs/heads/4.3 to b8a28df

Posted by bh...@apache.org.
CLOUDSTACK-7700: Volume Snapshot Async Job returns Success for a failed
operation.

(cherry picked from commit 1e20600ecaa3487f9d2eac53505c2e9e0f0f9e88)
Signed-off-by: Rohit Yadav <ro...@shapeblue.com>


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/1cc58b1a
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/1cc58b1a
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/1cc58b1a

Branch: refs/heads/4.3
Commit: 1cc58b1a6f0018171d6cc83237f1f9d0409335f6
Parents: ca8ecc0
Author: Min Chen <mi...@citrix.com>
Authored: Mon Oct 13 14:25:52 2014 -0700
Committer: Rohit Yadav <ro...@shapeblue.com>
Committed: Tue Nov 25 19:13:50 2014 +0530

----------------------------------------------------------------------
 .../src/org/apache/cloudstack/storage/volume/VolumeServiceImpl.java | 1 +
 1 file changed, 1 insertion(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/1cc58b1a/engine/storage/volume/src/org/apache/cloudstack/storage/volume/VolumeServiceImpl.java
----------------------------------------------------------------------
diff --git a/engine/storage/volume/src/org/apache/cloudstack/storage/volume/VolumeServiceImpl.java b/engine/storage/volume/src/org/apache/cloudstack/storage/volume/VolumeServiceImpl.java
index d221fa9..4e07edd 100644
--- a/engine/storage/volume/src/org/apache/cloudstack/storage/volume/VolumeServiceImpl.java
+++ b/engine/storage/volume/src/org/apache/cloudstack/storage/volume/VolumeServiceImpl.java
@@ -1381,6 +1381,7 @@ public class VolumeServiceImpl implements VolumeService {
             snapshot = snapshotMgr.takeSnapshot(volume);
         } catch (Exception e) {
             s_logger.debug("Take snapshot: " + volume.getId() + " failed", e);
+            throw new CloudRuntimeException("Failed to take snapshot", e);
         }
 
         return snapshot;


[06/18] git commit: updated refs/heads/4.3 to b8a28df

Posted by bh...@apache.org.
CLOUDSTACK-7849: Sorting projects alphabetically in drop down menu

Signed-off-by: Rajani Karuturi <ra...@gmail.com>
(cherry picked from commit e03a7e6feaae2d024f2a53afd71e0230309b1085)
Signed-off-by: Rohit Yadav <ro...@shapeblue.com>


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/c6e21668
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/c6e21668
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/c6e21668

Branch: refs/heads/4.3
Commit: c6e2166876462e6f80bc27cddd9437de6b6012b9
Parents: f0a81ed
Author: Daniel Vega <da...@corp.globo.com>
Authored: Wed Nov 5 18:30:58 2014 -0200
Committer: Rohit Yadav <ro...@shapeblue.com>
Committed: Tue Nov 25 18:33:32 2014 +0530

----------------------------------------------------------------------
 ui/scripts/ui-custom/projectSelect.js | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/c6e21668/ui/scripts/ui-custom/projectSelect.js
----------------------------------------------------------------------
diff --git a/ui/scripts/ui-custom/projectSelect.js b/ui/scripts/ui-custom/projectSelect.js
index ba4c7c7..5cb4449 100644
--- a/ui/scripts/ui-custom/projectSelect.js
+++ b/ui/scripts/ui-custom/projectSelect.js
@@ -30,11 +30,21 @@
             response: {
                 success: function(args) {
                     var projects = args.data;
+                    var arrayOfProjs = [];
 
                     $(projects).map(function(index, project) {
+                        var proj = {id: _s(project.id), html: _s(project.displaytext ? project.displaytext : project.name)};
+                        arrayOfProjs.push(proj);
+                    });
+
+                    arrayOfProjs.sort(function(a,b) {
+                        return a.html.localeCompare(b.html);
+                    });
+
+                    $(arrayOfProjs).map(function(index, project) {
                         var $option = $('<option>').val(_s(project.id));
 
-                        $option.html(_s(project.displaytext ? project.displaytext : project.name));
+                        $option.html(_s(project.html));
                         $option.appendTo($projectSelect);
                     });
                 },


[10/18] git commit: updated refs/heads/4.3 to b8a28df

Posted by bh...@apache.org.
CLOUDSTACK-7679: Bump rabbitmq client library to latest 3.4.1

Signed-off-by: Rohit Yadav <ro...@shapeblue.com>
(cherry picked from commit 6ad2f384265de41751fd3f9c238b82bdbf933cfd)
Signed-off-by: Rohit Yadav <ro...@shapeblue.com>


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/33761a31
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/33761a31
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/33761a31

Branch: refs/heads/4.3
Commit: 33761a311b1e4a183f43860f8881ce087b37fcf9
Parents: 1cc58b1
Author: Rohit Yadav <ro...@shapeblue.com>
Authored: Tue Nov 25 19:15:28 2014 +0530
Committer: Rohit Yadav <ro...@shapeblue.com>
Committed: Tue Nov 25 19:18:45 2014 +0530

----------------------------------------------------------------------
 plugins/event-bus/rabbitmq/pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/33761a31/plugins/event-bus/rabbitmq/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/event-bus/rabbitmq/pom.xml b/plugins/event-bus/rabbitmq/pom.xml
index 4e8ccfd..0b4450c 100644
--- a/plugins/event-bus/rabbitmq/pom.xml
+++ b/plugins/event-bus/rabbitmq/pom.xml
@@ -31,7 +31,7 @@
     <dependency>
     <groupId>com.rabbitmq</groupId>
       <artifactId>amqp-client</artifactId>
-        <version>3.3.5</version>
+        <version>3.4.1</version>
     </dependency>
     <dependency>
     <groupId>org.apache.cloudstack</groupId>


[14/18] git commit: updated refs/heads/4.3 to b8a28df

Posted by bh...@apache.org.
CLOUDSTACK-7319: dd with direct io is less impacting on Dom0 kernel resources

Signed-off-by: Daan Hoogland <da...@onecht.net>
(cherry picked from commit c4b78c3aaa8df20c8e892b9d5108d8f34f96ed0c)
(cherry picked from commit 37baddd7212717f259c33b3bb75720d718b92d2c)
Signed-off-by: Rohit Yadav <ro...@shapeblue.com>


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/7dbafba5
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/7dbafba5
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/7dbafba5

Branch: refs/heads/4.3
Commit: 7dbafba52f282e523f44de43a2328ccfeecc1e41
Parents: 898b2e7
Author: Joris van Lieshout <jv...@schubergphilis.com>
Authored: Mon Aug 11 17:12:23 2014 +0200
Committer: Rohit Yadav <ro...@shapeblue.com>
Committed: Tue Nov 25 19:33:34 2014 +0530

----------------------------------------------------------------------
 scripts/vm/hypervisor/xenserver/vmopsSnapshot | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/7dbafba5/scripts/vm/hypervisor/xenserver/vmopsSnapshot
----------------------------------------------------------------------
diff --git a/scripts/vm/hypervisor/xenserver/vmopsSnapshot b/scripts/vm/hypervisor/xenserver/vmopsSnapshot
index 5fd69a6..5d5217b 100755
--- a/scripts/vm/hypervisor/xenserver/vmopsSnapshot
+++ b/scripts/vm/hypervisor/xenserver/vmopsSnapshot
@@ -201,7 +201,7 @@ def copyfile(fromFile, toFile, isISCSI):
     logging.debug("Starting to copy " + fromFile + " to " + toFile)
     errMsg = ''
     try:
-        cmd = ['dd', 'if=' + fromFile, 'of=' + toFile, 'bs=4M']
+        cmd = ['dd', 'if=' + fromFile, 'iflag=direct', 'of=' + toFile, 'oflag=direct', 'bs=4M']
         txt = util.pread2(cmd)
     except:
         try:


[04/18] git commit: updated refs/heads/4.3 to b8a28df

Posted by bh...@apache.org.
CLOUDSTACK-7872: network getting shutdown inspite of running VM's in the network

(cherry picked from commit 709bf074de9f8f22e6a71362551c4867be884e4b)
Signed-off-by: Rohit Yadav <ro...@shapeblue.com>

Conflicts:
	engine/schema/src/com/cloud/vm/dao/NicDaoImpl.java


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/1e475892
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/1e475892
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/1e475892

Branch: refs/heads/4.3
Commit: 1e475892d540f5187019f746b2fd83ef6fbcf52d
Parents: 23a03ac
Author: Jayapal <ja...@apache.org>
Authored: Fri Nov 7 09:37:32 2014 +0530
Committer: Rohit Yadav <ro...@shapeblue.com>
Committed: Tue Nov 25 18:28:20 2014 +0530

----------------------------------------------------------------------
 .../com/cloud/network/dao/NetworkDaoImpl.java   |  2 --
 engine/schema/src/com/cloud/vm/dao/NicDao.java  |  2 ++
 .../schema/src/com/cloud/vm/dao/NicDaoImpl.java | 21 ++++++++++++++++++++
 .../src/com/cloud/network/NetworkModelImpl.java |  7 +++++++
 4 files changed, 30 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/1e475892/engine/schema/src/com/cloud/network/dao/NetworkDaoImpl.java
----------------------------------------------------------------------
diff --git a/engine/schema/src/com/cloud/network/dao/NetworkDaoImpl.java b/engine/schema/src/com/cloud/network/dao/NetworkDaoImpl.java
index 90ba4a3..3c6ef4b 100644
--- a/engine/schema/src/com/cloud/network/dao/NetworkDaoImpl.java
+++ b/engine/schema/src/com/cloud/network/dao/NetworkDaoImpl.java
@@ -226,7 +226,6 @@ public class NetworkDaoImpl extends GenericDaoBase<NetworkVO, Long> implements N
         GarbageCollectedSearch = createSearchBuilder(Long.class);
         GarbageCollectedSearch.selectFields(GarbageCollectedSearch.entity().getId());
         SearchBuilder<NetworkOpVO> join7 = _ntwkOpDao.createSearchBuilder();
-        join7.and("activenics", join7.entity().getActiveNicsCount(), Op.EQ);
         join7.and("gc", join7.entity().isGarbageCollected(), Op.EQ);
         join7.and("check", join7.entity().isCheckForGc(), Op.EQ);
         GarbageCollectedSearch.join("ntwkOpGC", join7, GarbageCollectedSearch.entity().getId(), join7.entity().getId(), JoinBuilder.JoinType.INNER);
@@ -420,7 +419,6 @@ public class NetworkDaoImpl extends GenericDaoBase<NetworkVO, Long> implements N
     public List<Long> findNetworksToGarbageCollect() {
         SearchCriteria<Long> sc = GarbageCollectedSearch.create();
         sc.setJoinParameters("ntwkOffGC", "isPersistent", false);
-        sc.setJoinParameters("ntwkOpGC", "activenics", 0);
         sc.setJoinParameters("ntwkOpGC", "gc", true);
         sc.setJoinParameters("ntwkOpGC", "check", true);
         return customSearch(sc, null);

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/1e475892/engine/schema/src/com/cloud/vm/dao/NicDao.java
----------------------------------------------------------------------
diff --git a/engine/schema/src/com/cloud/vm/dao/NicDao.java b/engine/schema/src/com/cloud/vm/dao/NicDao.java
index 79bd4d2..0f9899a 100644
--- a/engine/schema/src/com/cloud/vm/dao/NicDao.java
+++ b/engine/schema/src/com/cloud/vm/dao/NicDao.java
@@ -73,4 +73,6 @@ public interface NicDao extends GenericDao<NicVO, Long> {
     List<NicVO> listByNetworkIdTypeAndGatewayAndBroadcastUri(long networkId, VirtualMachine.Type vmType, String gateway, URI broadcastUri);
     
     int countNicsForStartingVms(long networkId);
+
+    int countNicsForRunningVms(long networkId);
 }

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/1e475892/engine/schema/src/com/cloud/vm/dao/NicDaoImpl.java
----------------------------------------------------------------------
diff --git a/engine/schema/src/com/cloud/vm/dao/NicDaoImpl.java b/engine/schema/src/com/cloud/vm/dao/NicDaoImpl.java
index a7b7625..f00fa8b 100644
--- a/engine/schema/src/com/cloud/vm/dao/NicDaoImpl.java
+++ b/engine/schema/src/com/cloud/vm/dao/NicDaoImpl.java
@@ -46,6 +46,7 @@ public class NicDaoImpl extends GenericDaoBase<NicVO, Long> implements NicDao {
     private SearchBuilder<NicVO> NonReleasedSearch;
     private GenericSearchBuilder<NicVO, Integer> CountBy;
     private GenericSearchBuilder<NicVO, Integer> CountByForStartingVms;
+    private GenericSearchBuilder<NicVO, Integer> CountByForRunningVms;
 
     @Inject
     VMInstanceDao _vmDao;
@@ -95,6 +96,17 @@ public class NicDaoImpl extends GenericDaoBase<NicVO, Long> implements NicDao {
         join1.and("state", join1.entity().getState(), Op.EQ);
         CountByForStartingVms.join("vm", join1, CountByForStartingVms.entity().getInstanceId(), join1.entity().getId(), JoinBuilder.JoinType.INNER);
         CountByForStartingVms.done();
+
+        CountByForRunningVms = createSearchBuilder(Integer.class);
+        CountByForRunningVms.select(null, Func.COUNT, CountByForRunningVms.entity().getId());
+        CountByForRunningVms.and("networkId", CountByForRunningVms.entity().getNetworkId(), Op.EQ);
+        CountByForRunningVms.and("removed", CountByForRunningVms.entity().getRemoved(), Op.NULL);
+        SearchBuilder<VMInstanceVO> join2 = _vmDao.createSearchBuilder();
+        join2.and("state", join2.entity().getState(), Op.EQ);
+        join2.and("type", join2.entity().getType(), Op.EQ);
+        CountByForRunningVms.join("vm", join2, CountByForRunningVms.entity().getInstanceId(), join2.entity().getId(), JoinBuilder.JoinType.INNER);
+        CountByForRunningVms.done();
+
     }
     
     @Override
@@ -287,4 +299,13 @@ public class NicDaoImpl extends GenericDaoBase<NicVO, Long> implements NicDao {
         return results.get(0);
     }
 
+    @Override
+    public int countNicsForRunningVms(long networkId) {
+        SearchCriteria<Integer> sc = CountByForRunningVms.create();
+        sc.setParameters("networkId", networkId);
+        sc.setJoinParameters("vm", "state", VirtualMachine.State.Running);
+        sc.setJoinParameters("vm", "type", VirtualMachine.Type.User);
+        List<Integer> results = customSearch(sc, null);
+        return results.get(0);
+    }
 }

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/1e475892/server/src/com/cloud/network/NetworkModelImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/NetworkModelImpl.java b/server/src/com/cloud/network/NetworkModelImpl.java
index 1843d1c..566302b 100755
--- a/server/src/com/cloud/network/NetworkModelImpl.java
+++ b/server/src/com/cloud/network/NetworkModelImpl.java
@@ -2198,6 +2198,13 @@ public class NetworkModelImpl extends ManagerBase implements NetworkModel {
             return false;
         }
 
+        // Due to VMSync issue, there can be cases where nic count is zero, but there can be VM's running in the network
+        // so add extra guard to check if network GC is actially required.
+        if (_nicDao.countNicsForRunningVms(networkId) > 0) {
+            s_logger.debug("Network id=" + networkId + " is not ready for GC as it has vms that are Running at the moment");
+            return false;
+        }
+
         return true;
     }
 


[03/18] git commit: updated refs/heads/4.3 to b8a28df

Posted by bh...@apache.org.
CLOUDSTACK-7877: The NET.IPRELEASE events are not added to usage_event on IP range deletion from Physical Networks.

Signed-off-by: Jayapal <ja...@apache.org>
(cherry picked from commit 7e6ec2ce826969aeb79ddb1113cdc45289bc89d3)
Signed-off-by: Rohit Yadav <ro...@shapeblue.com>

Conflicts:
	server/src/com/cloud/configuration/ConfigurationManagerImpl.java


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/23a03ac1
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/23a03ac1
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/23a03ac1

Branch: refs/heads/4.3
Commit: 23a03ac1b05529d23f1a5536f3cf7d28368507e5
Parents: 04acc79
Author: Damodar <da...@citrix.com>
Authored: Tue Nov 11 11:25:03 2014 +0530
Committer: Rohit Yadav <ro...@shapeblue.com>
Committed: Tue Nov 25 18:24:33 2014 +0530

----------------------------------------------------------------------
 .../configuration/ConfigurationManagerImpl.java | 121 ++++++++-----------
 1 file changed, 52 insertions(+), 69 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/23a03ac1/server/src/com/cloud/configuration/ConfigurationManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/configuration/ConfigurationManagerImpl.java b/server/src/com/cloud/configuration/ConfigurationManagerImpl.java
index 41128cd..bc13dc9 100755
--- a/server/src/com/cloud/configuration/ConfigurationManagerImpl.java
+++ b/server/src/com/cloud/configuration/ConfigurationManagerImpl.java
@@ -3137,83 +3137,66 @@ ConfigurationManagerImpl extends ManagerBase implements ConfigurationManager, Co
         }
 
         // Check if the VLAN has any allocated public IPs
-        long allocIpCount = _publicIpAddressDao.countIPs(vlanRange.getDataCenterId(), vlanDbId, true);
         List<IPAddressVO> ips = _publicIpAddressDao.listByVlanId(vlanDbId);
-        boolean success = true;
-        if (allocIpCount > 0) {
-            if (isAccountSpecific) {
-                try {
-                    vlanRange = _vlanDao.acquireInLockTable(vlanDbId, 30);
-                    if (vlanRange == null) {
-                        throw new CloudRuntimeException("Unable to acquire vlan configuration: " + vlanDbId);
-                    }
-
-                    if (s_logger.isDebugEnabled()) {
-                        s_logger.debug("lock vlan " + vlanDbId + " is acquired");
-                    }
-                    for (IPAddressVO ip : ips) {
-                        if (ip.isOneToOneNat()) {
-                            throw new InvalidParameterValueException(
-                                    "Can't delete account specific vlan "
-                                            + vlanDbId
-                                            + " as ip "
-                                            + ip
-                                            + " belonging to the range is used for static nat purposes. Cleanup the rules first");
-                        }
-
-                        if (ip.isSourceNat()) {
-                            throw new InvalidParameterValueException(
-                                    "Can't delete account specific vlan "
-                                            + vlanDbId
-                                            + " as ip "
-                                            + ip
-                                            + " belonging to the range is a source nat ip for the network id="
-                                            + ip.getSourceNetworkId()
-                                            + ". IP range with the source nat ip address can be removed either as a part of Network, or account removal");
-                        }
-
-                        if (_firewallDao.countRulesByIpId(ip.getId()) > 0) {
-                            throw new InvalidParameterValueException("Can't delete account specific vlan " + vlanDbId
-                                    + " as ip " + ip
-                                    + " belonging to the range has firewall rules applied. Cleanup the rules first");
-                        }
-                        // release public ip address here
-                        success = success && _ipAddrMgr.disassociatePublicIpAddress(ip.getId(), userId, caller);
-                    }
-                    if (!success) {
-                        s_logger.warn("Some ip addresses failed to be released as a part of vlan " + vlanDbId
-                                + " removal");
-                    }
-                    else {
-                        for (IPAddressVO ip : ips) {
-                            UsageEventUtils.publishUsageEvent(EventTypes.EVENT_NET_IP_RELEASE, acctVln.get(0).getId(), ip
-                                    .getDataCenterId(), ip.getId(), ip.getAddress().toString(), ip.isSourceNat(), vlanRange
-                                    .getVlanType().toString(), ip.getSystem(), ip.getClass().getName(), ip.getUuid());
-                        }
-                    }
-                } finally {
-                    _vlanDao.releaseFromLockTable(vlanDbId);
-                }
+        if (isAccountSpecific) {
+          try {
+            vlanRange = _vlanDao.acquireInLockTable(vlanDbId, 30);
+            if (vlanRange == null) {
+              throw new CloudRuntimeException("Unable to acquire vlan configuration: " + vlanDbId);
             }
-            else {   // !isAccountSpecific
-                NicIpAliasVO ipAlias = _nicIpAliasDao.findByGatewayAndNetworkIdAndState(vlanRange.getVlanGateway(), vlanRange.getNetworkId(), NicIpAlias.state.active);
-                //check if the ipalias belongs to the vlan range being deleted.
-                if (ipAlias != null && vlanDbId == _publicIpAddressDao.findByIpAndSourceNetworkId(vlanRange.getNetworkId(), ipAlias.getIp4Address()).getVlanId()) {
-                    throw new InvalidParameterValueException("Cannot delete vlan range "+vlanDbId+" as "+ipAlias.getIp4Address() +
-                            "is being used for providing dhcp service in this subnet. Delete all VMs in this subnet and try again");
-                }
-                allocIpCount = _publicIpAddressDao.countIPs(vlanRange.getDataCenterId(), vlanDbId, true);
-                if (allocIpCount > 0) {
-                    throw new InvalidParameterValueException(allocIpCount + "  Ips are in use. Cannot delete this vlan");
-                }
+
+            if (s_logger.isDebugEnabled()) {
+              s_logger.debug("lock vlan " + vlanDbId + " is acquired");
             }
+            for (IPAddressVO ip : ips) {
+              boolean success = true;
+              if (ip.isOneToOneNat()) {
+                throw new InvalidParameterValueException("Can't delete account specific vlan " + vlanDbId + " as ip " + ip
+                        + " belonging to the range is used for static nat purposes. Cleanup the rules first");
+              }
+
+              if (ip.isSourceNat()) {
+                throw new InvalidParameterValueException("Can't delete account specific vlan " + vlanDbId + " as ip " + ip
+                        + " belonging to the range is a source nat ip for the network id=" + ip.getSourceNetworkId()
+                        + ". IP range with the source nat ip address can be removed either as a part of Network, or account removal");
+              }
+
+              if (_firewallDao.countRulesByIpId(ip.getId()) > 0) {
+                throw new InvalidParameterValueException("Can't delete account specific vlan " + vlanDbId + " as ip " + ip
+                        + " belonging to the range has firewall rules applied. Cleanup the rules first");
+              }
+              if(ip.getAllocatedTime() != null) {// This means IP is allocated
+                // release public ip address here
+                success = _ipAddrMgr.disassociatePublicIpAddress(ip.getId(), userId, caller);
+              }
+              if (!success) {
+                s_logger.warn("Some ip addresses failed to be released as a part of vlan " + vlanDbId + " removal");
+              } else {
+                  UsageEventUtils.publishUsageEvent(EventTypes.EVENT_NET_IP_RELEASE, acctVln.get(0).getAccountId(), ip.getDataCenterId(), ip.getId(),
+                          ip.getAddress().toString(), ip.isSourceNat(), vlanRange.getVlanType().toString(), ip.getSystem(), ip.getClass().getName(), ip.getUuid());
+              }
+            }
+          } finally {
+            _vlanDao.releaseFromLockTable(vlanDbId);
+          }
+        } else {   // !isAccountSpecific
+          NicIpAliasVO ipAlias = _nicIpAliasDao.findByGatewayAndNetworkIdAndState(vlanRange.getVlanGateway(), vlanRange.getNetworkId(), NicIpAlias.state.active);
+          //check if the ipalias belongs to the vlan range being deleted.
+          if (ipAlias != null && vlanDbId == _publicIpAddressDao.findByIpAndSourceNetworkId(vlanRange.getNetworkId(), ipAlias.getIp4Address()).getVlanId()) {
+            throw new InvalidParameterValueException("Cannot delete vlan range " + vlanDbId + " as " + ipAlias.getIp4Address()
+                    + "is being used for providing dhcp service in this subnet. Delete all VMs in this subnet and try again");
+          }
+          long allocIpCount = _publicIpAddressDao.countIPs(vlanRange.getDataCenterId(), vlanDbId, true);
+          if (allocIpCount > 0) {
+            throw new InvalidParameterValueException(allocIpCount + "  Ips are in use. Cannot delete this vlan");
+          }
         }
 
         Transaction.execute(new TransactionCallbackNoReturn() {
             @Override
             public void doInTransactionWithoutResult(TransactionStatus status) {
-                _publicIpAddressDao.deletePublicIPRange(vlanDbId);
-                _vlanDao.expunge(vlanDbId);
+              _publicIpAddressDao.deletePublicIPRange(vlanDbId);
+              _vlanDao.remove(vlanDbId);
             }
         });
 


[02/18] git commit: updated refs/heads/4.3 to b8a28df

Posted by bh...@apache.org.
CLOUDSTACK-7884: Cloudstack MS is not responding (happening randomly) after some restart.

(cherry picked from commit 2ef06e754b8fd41e1af1f9bce0b2f828d7fcfb95)
Signed-off-by: Rohit Yadav <ro...@shapeblue.com>


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/04acc79b
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/04acc79b
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/04acc79b

Branch: refs/heads/4.3
Commit: 04acc79b2d572bbc34f435c9d9f03c79561820d8
Parents: 12d1c94
Author: Min Chen <mi...@citrix.com>
Authored: Fri Oct 31 17:20:16 2014 -0700
Committer: Rohit Yadav <ro...@shapeblue.com>
Committed: Tue Nov 25 18:21:12 2014 +0530

----------------------------------------------------------------------
 .../cloudstack/framework/jobs/impl/AsyncJobManagerImpl.java     | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/04acc79b/framework/jobs/src/org/apache/cloudstack/framework/jobs/impl/AsyncJobManagerImpl.java
----------------------------------------------------------------------
diff --git a/framework/jobs/src/org/apache/cloudstack/framework/jobs/impl/AsyncJobManagerImpl.java b/framework/jobs/src/org/apache/cloudstack/framework/jobs/impl/AsyncJobManagerImpl.java
index e2f9cbf..cf0e1f1 100644
--- a/framework/jobs/src/org/apache/cloudstack/framework/jobs/impl/AsyncJobManagerImpl.java
+++ b/framework/jobs/src/org/apache/cloudstack/framework/jobs/impl/AsyncJobManagerImpl.java
@@ -60,6 +60,7 @@ import com.cloud.cluster.ManagementServerHost;
 import com.cloud.utils.DateUtil;
 import com.cloud.utils.Pair;
 import com.cloud.utils.Predicate;
+import com.cloud.utils.component.ComponentLifecycle;
 import com.cloud.utils.component.ManagerBase;
 import com.cloud.utils.concurrency.NamedThreadFactory;
 import com.cloud.utils.db.DB;
@@ -970,7 +971,9 @@ public class AsyncJobManagerImpl extends ManagerBase implements AsyncJobManager,
     private GenericSearchBuilder<AsyncJobJoinMapVO, Long> JoinJobTimeSearch;
 
     protected AsyncJobManagerImpl() {
-
+        // override default run level for manager components to start this early, otherwise, VirtualMachineManagerImpl will
+        // get stuck in non-initializing job queue
+        setRunLevel(ComponentLifecycle.RUN_LEVEL_FRAMEWORK);
     }
 
     private void publishOnEventBus(AsyncJob job, String jobEvent) {


[08/18] git commit: updated refs/heads/4.3 to b8a28df

Posted by bh...@apache.org.
CLOUDSTACK-7766: Field Validations Missing for Ingress and Egress Rules

(cherry picked from commit 94b16b3bd5f8b3b7635f07e9304e461cd2dc2275)
Signed-off-by: Rohit Yadav <ro...@shapeblue.com>


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/ca8ecc04
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/ca8ecc04
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/ca8ecc04

Branch: refs/heads/4.3
Commit: ca8ecc0470191eb35788429a7afcf604ee3d389c
Parents: 0b317ea
Author: Gabor Apati-Nagy <ga...@citrix.com>
Authored: Tue Oct 28 19:06:14 2014 +0000
Committer: Rohit Yadav <ro...@shapeblue.com>
Committed: Tue Nov 25 18:42:56 2014 +0530

----------------------------------------------------------------------
 ui/scripts/network.js              | 34 +++++++++++++++++++++++++++------
 ui/scripts/ui/widgets/multiEdit.js |  9 +++++++++
 2 files changed, 37 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ca8ecc04/ui/scripts/network.js
----------------------------------------------------------------------
diff --git a/ui/scripts/network.js b/ui/scripts/network.js
index 8e70034..511ad41 100755
--- a/ui/scripts/network.js
+++ b/ui/scripts/network.js
@@ -4459,11 +4459,19 @@
                                         },
                                         'startport': {
                                             edit: true,
-                                            label: 'label.start.port'
+                                            label: 'label.start.port',
+                                            validation: {
+                                                number: true,
+                                                range: [0, 65535]
+                                            }
                                         },
                                         'endport': {
                                             edit: true,
-                                            label: 'label.end.port'
+                                            label: 'label.end.port',
+                                            validation: {
+                                                number: true,
+                                                range: [0, 65535]
+                                            }
                                         },
                                         'icmptype': {
                                             edit: true,
@@ -4478,7 +4486,10 @@
                                         'cidr': {
                                             edit: true,
                                             label: 'label.cidr',
-                                            isHidden: true
+                                            isHidden: true,
+                                            validation: {
+                                                ipv4cidr: true
+                                            }
                                         },
                                         'accountname': {
                                             edit: true,
@@ -4654,11 +4665,19 @@
                                         },
                                         'startport': {
                                             edit: true,
-                                            label: 'label.start.port'
+                                            label: 'label.start.port',
+                                            validation: {
+                                                number: true,
+                                                range: [0, 65535]
+                                            }
                                         },
                                         'endport': {
                                             edit: true,
-                                            label: 'label.end.port'
+                                            label: 'label.end.port',
+                                            validation: {
+                                                number: true,
+                                                range: [0, 65535]
+                                            }
                                         },
                                         'icmptype': {
                                             edit: true,
@@ -4673,7 +4692,10 @@
                                         'cidr': {
                                             edit: true,
                                             label: 'label.cidr',
-                                            isHidden: true
+                                            isHidden: true,
+                                            validation: {
+                                                ipv4cidr: true
+                                            }
                                         },
                                         'accountname': {
                                             edit: true,

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ca8ecc04/ui/scripts/ui/widgets/multiEdit.js
----------------------------------------------------------------------
diff --git a/ui/scripts/ui/widgets/multiEdit.js b/ui/scripts/ui/widgets/multiEdit.js
index 873775d..8f49da2 100755
--- a/ui/scripts/ui/widgets/multiEdit.js
+++ b/ui/scripts/ui/widgets/multiEdit.js
@@ -971,6 +971,10 @@
                         .attr('disabled', field.isDisabled ? 'disabled' : false)
                         .appendTo($td);
 
+                    if (field.validation) {
+                        $td.find('input').first().data("validation-settings",  field.validation );    
+                    }
+
                     if (field.isDisabled) $input.hide();
                     if (field.defaultValue) {
                         $input.val(field.defaultValue);
@@ -1222,6 +1226,11 @@
 
         $multiForm.validate();
 
+        var inputs = $multiForm.find('input');
+        $.each(inputs, function() {
+            if ($(this).data && $(this).data('validation-settings'))
+                $(this).rules('add', $(this).data('validation-settings'));
+        });
         return this;
     };
 


[11/18] git commit: updated refs/heads/4.3 to b8a28df

Posted by bh...@apache.org.
CLOUDSTACK-7589: VM not Starting and always stuck in Stopped state after
management server restarts.

(cherry picked from commit 7cdb67dcf1ec4158ec0ab4c2fa868cc63121bbb5)
Signed-off-by: Rohit Yadav <ro...@shapeblue.com>


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/0610bf67
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/0610bf67
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/0610bf67

Branch: refs/heads/4.3
Commit: 0610bf670cc5c54e73c4051c3ff5d04a916ad122
Parents: 33761a3
Author: Min Chen <mi...@citrix.com>
Authored: Fri Sep 19 15:12:09 2014 -0700
Committer: Rohit Yadav <ro...@shapeblue.com>
Committed: Tue Nov 25 19:22:33 2014 +0530

----------------------------------------------------------------------
 .../jobs/impl/AsyncJobManagerImpl.java          | 57 +++++++-------------
 .../framework/jobs/impl/SyncQueueManager.java   |  2 +
 .../jobs/impl/SyncQueueManagerImpl.java         | 13 ++++-
 3 files changed, 32 insertions(+), 40 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/0610bf67/framework/jobs/src/org/apache/cloudstack/framework/jobs/impl/AsyncJobManagerImpl.java
----------------------------------------------------------------------
diff --git a/framework/jobs/src/org/apache/cloudstack/framework/jobs/impl/AsyncJobManagerImpl.java b/framework/jobs/src/org/apache/cloudstack/framework/jobs/impl/AsyncJobManagerImpl.java
index cf0e1f1..ae59848 100644
--- a/framework/jobs/src/org/apache/cloudstack/framework/jobs/impl/AsyncJobManagerImpl.java
+++ b/framework/jobs/src/org/apache/cloudstack/framework/jobs/impl/AsyncJobManagerImpl.java
@@ -784,24 +784,6 @@ public class AsyncJobManagerImpl extends ManagerBase implements AsyncJobManager,
         return ManagementServerNode.getManagementServerId();
     }
 
-    private void cleanupPendingJobs(List<SyncQueueItemVO> l) {
-        for (SyncQueueItemVO item : l) {
-            if (s_logger.isInfoEnabled()) {
-                s_logger.info("Discard left-over queue item: " + item.toString());
-            }
-
-            String contentType = item.getContentType();
-            if (contentType != null && contentType.equalsIgnoreCase(SyncQueueItem.AsyncJobContentType)) {
-                Long jobId = item.getContentId();
-                if (jobId != null) {
-                    s_logger.warn("Mark job as failed as its correspoding queue-item has been discarded. job id: " + jobId);
-                    completeAsyncJob(jobId, JobInfo.Status.FAILED, 0, "Execution was cancelled because of server shutdown");
-                }
-            }
-            _queueMgr.purgeItem(item.getId());
-        }
-    }
-
     @DB
     protected List<Long> wakeupByJoinedJobCompletion(long joinedJobId) {
         SearchCriteria<Long> joinJobSC = JoinJobSearch.create("joinJobId", joinedJobId);
@@ -912,6 +894,22 @@ public class AsyncJobManagerImpl extends ManagerBase implements AsyncJobManager,
         return true;
     }
 
+    private void cleanupLeftOverJobs(final long msid) {
+        try {
+            Transaction.execute(new TransactionCallbackNoReturn() {
+                @Override
+                public void doInTransactionWithoutResult(TransactionStatus status) {
+                    // purge sync queue item running on this ms node
+                    _queueMgr.cleanupActiveQueueItems(msid, true);
+                    // reset job status for all jobs running on this ms node
+                    _jobDao.resetJobProcess(msid, ApiErrorCode.INTERNAL_ERROR.getHttpCode(), "job cancelled because of management server restart or shutdown");
+                }
+            });
+        } catch (Throwable e) {
+            s_logger.warn("Unexpected exception in cleaning up left over jobs for mamagement server node " + msid, e);
+        }
+    }
+
     @Override
     public void onManagementNodeJoined(List<? extends ManagementServerHost> nodeList, long selfNodeId) {
     }
@@ -919,18 +917,7 @@ public class AsyncJobManagerImpl extends ManagerBase implements AsyncJobManager,
     @Override
     public void onManagementNodeLeft(List<? extends ManagementServerHost> nodeList, long selfNodeId) {
         for (final ManagementServerHost msHost : nodeList) {
-            try {
-                Transaction.execute(new TransactionCallbackNoReturn() {
-                    @Override
-                    public void doInTransactionWithoutResult(TransactionStatus status) {
-                        List<SyncQueueItemVO> items = _queueMgr.getActiveQueueItems(msHost.getId(), true);
-                        cleanupPendingJobs(items);
-                        _jobDao.resetJobProcess(msHost.getId(), ApiErrorCode.INTERNAL_ERROR.getHttpCode(), "job cancelled because of management server restart");
-                    }
-                });
-            } catch (Throwable e) {
-                s_logger.warn("Unexpected exception ", e);
-            }
+            cleanupLeftOverJobs(msHost.getId());
         }
     }
 
@@ -940,15 +927,7 @@ public class AsyncJobManagerImpl extends ManagerBase implements AsyncJobManager,
 
     @Override
     public boolean start() {
-        try {
-            _jobDao.cleanupPseduoJobs(getMsid());
-
-            List<SyncQueueItemVO> l = _queueMgr.getActiveQueueItems(getMsid(), false);
-            cleanupPendingJobs(l);
-            _jobDao.resetJobProcess(getMsid(), ApiErrorCode.INTERNAL_ERROR.getHttpCode(), "job cancelled because of management server restart");
-        } catch (Throwable e) {
-            s_logger.error("Unexpected exception " + e.getMessage(), e);
-        }
+        cleanupLeftOverJobs(getMsid());
 
         _heartbeatScheduler.scheduleAtFixedRate(getHeartbeatTask(), HEARTBEAT_INTERVAL, HEARTBEAT_INTERVAL, TimeUnit.MILLISECONDS);
         _heartbeatScheduler.scheduleAtFixedRate(getGCTask(), GC_INTERVAL, GC_INTERVAL, TimeUnit.MILLISECONDS);

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/0610bf67/framework/jobs/src/org/apache/cloudstack/framework/jobs/impl/SyncQueueManager.java
----------------------------------------------------------------------
diff --git a/framework/jobs/src/org/apache/cloudstack/framework/jobs/impl/SyncQueueManager.java b/framework/jobs/src/org/apache/cloudstack/framework/jobs/impl/SyncQueueManager.java
index 202a704..2a39829 100644
--- a/framework/jobs/src/org/apache/cloudstack/framework/jobs/impl/SyncQueueManager.java
+++ b/framework/jobs/src/org/apache/cloudstack/framework/jobs/impl/SyncQueueManager.java
@@ -31,4 +31,6 @@ public interface SyncQueueManager extends Manager {
     public List<SyncQueueItemVO> getBlockedQueueItems(long thresholdMs, boolean exclusive);
 
     void purgeAsyncJobQueueItemId(long asyncJobId);
+
+    public void cleanupActiveQueueItems(Long msid, boolean exclusive);
 }

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/0610bf67/framework/jobs/src/org/apache/cloudstack/framework/jobs/impl/SyncQueueManagerImpl.java
----------------------------------------------------------------------
diff --git a/framework/jobs/src/org/apache/cloudstack/framework/jobs/impl/SyncQueueManagerImpl.java b/framework/jobs/src/org/apache/cloudstack/framework/jobs/impl/SyncQueueManagerImpl.java
index 9d3bf80..82ab959 100644
--- a/framework/jobs/src/org/apache/cloudstack/framework/jobs/impl/SyncQueueManagerImpl.java
+++ b/framework/jobs/src/org/apache/cloudstack/framework/jobs/impl/SyncQueueManagerImpl.java
@@ -26,7 +26,6 @@ import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.framework.jobs.dao.SyncQueueDao;
 import org.apache.cloudstack.framework.jobs.dao.SyncQueueItemDao;
-
 import com.cloud.utils.DateUtil;
 import com.cloud.utils.component.ManagerBase;
 import com.cloud.utils.db.DB;
@@ -258,4 +257,16 @@ public class SyncQueueManagerImpl extends ManagerBase implements SyncQueueManage
             purgeItem(itemId);
         }
     }
+
+    @Override
+    public void cleanupActiveQueueItems(Long msid, boolean exclusive) {
+        List<SyncQueueItemVO> l = getActiveQueueItems(msid, false);
+        for (SyncQueueItemVO item : l) {
+            if (s_logger.isInfoEnabled()) {
+                s_logger.info("Discard left-over queue item: " + item.toString());
+            }
+            purgeItem(item.getId());
+        }
+    }
+
 }


[12/18] git commit: updated refs/heads/4.3 to b8a28df

Posted by bh...@apache.org.
CLOUDSTACK-7581: Empty 'ID' parameters allowed in API calls

Fix is to fail API calls with empty 'id' parameter value upfront rather than
going ahead and failing with NPE later on.

Backported using fix 4e07dd1dc4b4618fff2ef25c846ce6b95a8e580d by
Koushik Das <ko...@apache.org>

Signed-off-by: Rohit Yadav <ro...@shapeblue.com>


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/dc80b253
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/dc80b253
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/dc80b253

Branch: refs/heads/4.3
Commit: dc80b25361e22845fafaaf28489cef9250ef2b05
Parents: 0610bf6
Author: Rohit Yadav <ro...@shapeblue.com>
Authored: Tue Nov 25 19:24:29 2014 +0530
Committer: Rohit Yadav <ro...@shapeblue.com>
Committed: Tue Nov 25 19:24:29 2014 +0530

----------------------------------------------------------------------
 server/src/com/cloud/api/ApiDispatcher.java | 2 --
 1 file changed, 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/dc80b253/server/src/com/cloud/api/ApiDispatcher.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/api/ApiDispatcher.java b/server/src/com/cloud/api/ApiDispatcher.java
index 9624c61..6fe031a 100755
--- a/server/src/com/cloud/api/ApiDispatcher.java
+++ b/server/src/com/cloud/api/ApiDispatcher.java
@@ -482,8 +482,6 @@ public class ApiDispatcher {
                 field.set(cmdObj, listParam);
                 break;
             case UUID:
-                if (paramObj.toString().isEmpty())
-                    break;
                 Long internalId = translateUuidToInternalId(paramObj.toString(), annotation);
                 field.set(cmdObj, internalId);
                 break;


[07/18] git commit: updated refs/heads/4.3 to b8a28df

Posted by bh...@apache.org.
CLOUDSTACK-7837: [UI] Make the Source CIDR column wide enough to fit the CIDR value without ellipsizing

Signed-off-by: Rajani Karuturi <ra...@gmail.com>
(cherry picked from commit 6490694231cb1184011b8504cb118ba73fe6cdc1)
Signed-off-by: Rohit Yadav <ro...@shapeblue.com>


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/0b317ea0
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/0b317ea0
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/0b317ea0

Branch: refs/heads/4.3
Commit: 0b317ea06d5cf7c9757c08b09708f4d1ddc5c5af
Parents: c6e2166
Author: Mihaela Stoica <mi...@citrix.com>
Authored: Tue Nov 4 11:35:57 2014 +0000
Committer: Rohit Yadav <ro...@shapeblue.com>
Committed: Tue Nov 25 18:34:18 2014 +0530

----------------------------------------------------------------------
 ui/css/cloudstack3.css | 13 ++++++++++++-
 1 file changed, 12 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/0b317ea0/ui/css/cloudstack3.css
----------------------------------------------------------------------
diff --git a/ui/css/cloudstack3.css b/ui/css/cloudstack3.css
index 14bd624..4ee6916 100644
--- a/ui/css/cloudstack3.css
+++ b/ui/css/cloudstack3.css
@@ -7817,7 +7817,7 @@ div.container div.panel div#details-tab-addloadBalancer.detail-group div.loadBal
 
 .multi-edit .data .data-body .data-item > table tbody tr td span {
   overflow: hidden;
-  max-width: 78px;
+  max-width: 90%;
   display: block;
   float: left;
   text-overflow: ellipsis;
@@ -7975,6 +7975,17 @@ div.container div.panel div#details-tab-addloadBalancer.detail-group div.loadBal
   font-size: 10px;
 }
 
+/* special case for 'Source CIDR' column - make it wide enough to fit a CIDR without ellipsizing*/
+.detail-view .multi-edit table tr th.cidrlist,
+.detail-view .multi-edit table tr td.cidrlist {
+  min-width: 112px !important;
+  max-width: 112px !important;
+}
+.detail-view .multi-edit td.cidrlist input {
+  width: 85%;
+}
+
+
 /** Header fields*/
 .multi-edit .header-fields {
   position: relative;