Switch to using IPs for inter-node communication, DNS sometimes fails (and with 100...
authorClaudio-Daniel Freire <claudio-daniel.freire@inria.fr>
Sun, 2 Oct 2011 06:12:24 +0000 (08:12 +0200)
committerClaudio-Daniel Freire <claudio-daniel.freire@inria.fr>
Sun, 2 Oct 2011 06:12:24 +0000 (08:12 +0200)
src/nepi/testbeds/planetlab/application.py
src/nepi/testbeds/planetlab/node.py

index 177e2e7..a9c8589 100644 (file)
@@ -267,14 +267,14 @@ class Dependency(object):
         if self.sources:
             sources = self.sources.split(' ')
             files.update(
-                "%s@%s:%s" % (self._master.node.slicename, self._master.node.hostname
+                "%s@%s:%s" % (self._master.node.slicename, self._master.node.hostip
                     os.path.join(self._master.home_path, os.path.basename(source)),)
                 for source in sources
             )
         
         if self.build:
             files.add(
-                "%s@%s:%s" % (self._master.node.slicename, self._master.node.hostname
+                "%s@%s:%s" % (self._master.node.slicename, self._master.node.hostip
                     os.path.join(self._master.home_path, 'build.tar.gz'),)
             )
         
@@ -305,8 +305,8 @@ class Dependency(object):
             "}" 
         ) % {
             'hostkey' : 'master_known_hosts',
-            'master' : "%s@%s" % (self._master.node.slicename, self._master.node.hostname),
-            'master_host' : self._master.node.hostname,
+            'master' : "%s@%s" % (self._master.node.slicename, self._master.node.hostip),
+            'master_host' : self._master.node.hostip,
             'token_path' : os.path.join(self._master.home_path, 'build.token'),
             'token' : server.shell_escape(self._master._master_token),
             'sshopts' : sshopts,
@@ -599,7 +599,7 @@ class Dependency(object):
         try:
             self._popen_scp(
                 cStringIO.StringIO('%s,%s %s\n' % (
-                    self._master.node.hostname, socket.gethostbyname(self._master.node.hostname)
+                    self._master.node.hostname, self._master.node.hostip
                     self._master.node.server_key)),
                 '%s@%s:%s' % (self.node.slicename, self.node.hostname, 
                     os.path.join(self.home_path,"master_known_hosts") )
index e6a20b5..60ca933 100644 (file)
@@ -322,6 +322,7 @@ class Node(object):
     
     def unassign_node(self):
         self._node_id = None
+        self.hostip = None
         
         try:
             orig_attrs = self.__orig_attrs
@@ -404,6 +405,8 @@ class Node(object):
             orig_attrs['server_key'] = self.server_key
             self.server_key = info['ssh_rsa_key']
         
+        self.hostip = socket.gethostbyname(self.hostname)
+        
         try:
             self.__orig_attrs
         except AttributeError: