cloudstack-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From edi...@apache.org
Subject git commit: updated refs/heads/4.2-forward to 38d8a84
Date Mon, 26 Aug 2013 21:17:43 GMT
Updated Branches:
  refs/heads/4.2-forward ecbd9ed93 -> 38d8a84eb


CLOUDSTACK-4436: in case of older kvm host, we'd better try serveral times to make sure we
passed cmdline parameters to system vms


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

Branch: refs/heads/4.2-forward
Commit: 38d8a84ebcef5f3ef600c30dbd90b16d2b05aa7b
Parents: ecbd9ed
Author: Edison Su <sudison@gmail.com>
Authored: Mon Aug 26 13:59:54 2013 -0700
Committer: Edison Su <sudison@gmail.com>
Committed: Mon Aug 26 14:00:24 2013 -0700

----------------------------------------------------------------------
 .../virtualnetwork/VirtualRoutingResource.java  | 35 ++++++++++++++++++++
 .../kvm/resource/LibvirtComputingResource.java  | 17 ++++++----
 2 files changed, 45 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/38d8a84e/core/src/com/cloud/agent/resource/virtualnetwork/VirtualRoutingResource.java
----------------------------------------------------------------------
diff --git a/core/src/com/cloud/agent/resource/virtualnetwork/VirtualRoutingResource.java
b/core/src/com/cloud/agent/resource/virtualnetwork/VirtualRoutingResource.java
index ec8bc8d..2354391 100755
--- a/core/src/com/cloud/agent/resource/virtualnetwork/VirtualRoutingResource.java
+++ b/core/src/com/cloud/agent/resource/virtualnetwork/VirtualRoutingResource.java
@@ -1256,6 +1256,41 @@ public class VirtualRoutingResource implements Manager {
         return "Unable to connect";
     }
 
+    public boolean connect(final String ipAddress, int retry, int sleep) {
+        for (int i = 0; i <= retry; i++) {
+            SocketChannel sch = null;
+            try {
+                if (s_logger.isDebugEnabled()) {
+                    s_logger.debug("Trying to connect to " + ipAddress);
+                }
+                sch = SocketChannel.open();
+                sch.configureBlocking(true);
+
+                final InetSocketAddress addr = new InetSocketAddress(ipAddress, _port);
+                sch.connect(addr);
+                return true;
+            } catch (final IOException e) {
+                if (s_logger.isDebugEnabled()) {
+                    s_logger.debug("Could not connect to " + ipAddress);
+                }
+            } finally {
+                if (sch != null) {
+                    try {
+                        sch.close();
+                    } catch (final IOException e) {}
+                }
+            }
+            try {
+                Thread.sleep(sleep);
+            } catch (final InterruptedException e) {
+            }
+        }
+
+        s_logger.debug("Unable to logon to " + ipAddress);
+
+        return false;
+    }
+
 
     @Override
     public String getName() {

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/38d8a84e/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java
b/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java
index 404a6da..67819bc 100755
--- a/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java
+++ b/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java
@@ -3551,16 +3551,19 @@ ServerResource {
             if (vmSpec.getType() != VirtualMachine.Type.User) {
                 if ((_kernelVersion < 2006034) && (conn.getVersion() < 1001000))
{ // CLOUDSTACK-2823: try passCmdLine some times if kernel < 2.6.34 and qemu < 1.1.0
on hypervisor (for instance, CentOS 6.4)
                     //wait for 5 minutes at most
+                    String controlIp = null;
+                    for (NicTO nic : nics) {
+                        if (nic.getType() == TrafficType.Control) {
+                            controlIp = nic.getIp();
+                        }
+                    }
                     for (int count = 0; count < 30; count ++) {
-                        boolean succeed = passCmdLine(vmName, vmSpec.getBootArgs());
-                        if (succeed) {
+                        passCmdLine(vmName, vmSpec.getBootArgs());
+                        //check router is up?
+                        boolean result = _virtRouterResource.connect(controlIp, 1, 5000);
+                        if (result) {
                             break;
                         }
-                        try {
-                            Thread.sleep(5000);
-                        } catch (InterruptedException e) {
-                            s_logger.trace("Ignoring InterruptedException.", e);
-                        }
                     }
                 } else {
                     passCmdLine(vmName, vmSpec.getBootArgs() );


Mime
View raw message