From: Lucia Guevgeozian Odizzio Date: Thu, 12 Dec 2013 15:31:51 +0000 (+0100) Subject: Fixing bug for ip attr PL node X-Git-Tag: nepi-3.1.0~153 X-Git-Url: http://git.onelab.eu/?a=commitdiff_plain;h=8f11e54bf91eebbd6ce1e4e8912e0a91901142bd;p=nepi.git Fixing bug for ip attr PL node --- diff --git a/src/nepi/resources/planetlab/node.py b/src/nepi/resources/planetlab/node.py index a18886d0..ac483c5f 100644 --- a/src/nepi/resources/planetlab/node.py +++ b/src/nepi/resources/planetlab/node.py @@ -28,6 +28,7 @@ from nepi.util import sshfuncs from random import randint import time +import socket import threading import datetime @@ -252,10 +253,9 @@ class PlanetlabNode(LinuxNode): self._slicenode = True self._put_node_in_provision(node_id) self._node_to_provision = node_id - super(PlanetlabNode, self).do_discover() - else: self.fail_node_not_available(hostname) + super(PlanetlabNode, self).do_discover() else: # the user specifies constraints based on attributes, zero, one or @@ -285,12 +285,11 @@ class PlanetlabNode(LinuxNode): try: self._set_hostname_attr(node_id) self.info(" Selected node to provision ") + super(PlanetlabNode, self).do_discover() except: with PlanetlabNode.lock: self._blacklist_node(node_id) - self.do_discover() - - super(PlanetlabNode, self).do_discover() + self.do_discover() else: self.fail_not_enough_nodes() @@ -591,7 +590,8 @@ class PlanetlabNode(LinuxNode): if hostname: return hostname elif ip: - hostname = sshfuncs.gethostbyname(ip) + hostname = socket.gethostbyaddr(ip)[0] + self.set('hostname', hostname) return hostname else: return None @@ -636,14 +636,14 @@ class PlanetlabNode(LinuxNode): Add node mal functioning node to blacklist """ self.warn(" Blacklisting malfunctioning node ") - self._plapi.blacklist_host(node) + self.plapi.blacklist_host(node) def _put_node_in_provision(self, node): """ Add node to the list of nodes being provisioned, in order for other RMs to not try to provision the same one again """ - self._plapi.reserve_host(node) + self.plapi.reserve_host(node) def _get_ip(self, node_id): """