From: Lucia Guevgeozian Odizzio Date: Thu, 12 Jun 2014 12:25:09 +0000 (+0200) Subject: Modifications release Pl node X-Git-Tag: nepi-3.1.0~25 X-Git-Url: http://git.onelab.eu/?p=nepi.git;a=commitdiff_plain;h=60521e397730c1761aef11b248759c27be60fccf Modifications release Pl node --- diff --git a/src/nepi/resources/planetlab/plcapi.py b/src/nepi/resources/planetlab/plcapi.py index 4f4bf5cd..86385b7f 100644 --- a/src/nepi/resources/planetlab/plcapi.py +++ b/src/nepi/resources/planetlab/plcapi.py @@ -493,19 +493,24 @@ class PLCAPI(object): def release(self): self.count -= 1 - if self._ecobj.get_global('PlanetlabNode', 'persist_blacklist') and self.count == 0: - if self._blacklist: - to_blacklist = list() - hostnames = self.get_nodes(list(self._blacklist), ['hostname']) - for hostname in hostnames: - to_blacklist.append(hostname['hostname']) - - nepi_home = os.path.join(os.path.expanduser("~"), ".nepi") - plblacklist_file = os.path.join(nepi_home, "plblacklist.txt") - - with open(plblacklist_file, 'w') as f: - for host in to_blacklist: - f.write("%s\n" % host) + if self.count == 0: + blacklist = self._blacklist + self._blacklist = set() + self._reserved = set() + if self._ecobj.get_global('PlanetlabNode', 'persist_blacklist'): + if blacklist: + to_blacklist = list() + hostnames = self.get_nodes(list(blacklist), ['hostname']) + for hostname in hostnames: + to_blacklist.append(hostname['hostname']) + + nepi_home = os.path.join(os.path.expanduser("~"), ".nepi") + plblacklist_file = os.path.join(nepi_home, "plblacklist.txt") + + with open(plblacklist_file, 'w') as f: + for host in to_blacklist: + f.write("%s\n" % host) + class PLCAPIFactory(object): """ diff --git a/src/nepi/resources/planetlab/sfa_node.py b/src/nepi/resources/planetlab/sfa_node.py index ca7ba366..d18d248a 100644 --- a/src/nepi/resources/planetlab/sfa_node.py +++ b/src/nepi/resources/planetlab/sfa_node.py @@ -369,6 +369,12 @@ class PlanetlabSfaNode(LinuxNode): super(PlanetlabSfaNode, self).do_provision() + def do_release(self): + super(PlanetlabSfaNode, self).do_release() + if self.state == ResourceState.RELEASED and not self._skip_provision(): + self.debug(" Releasing SFA API ") + self.sfaapi.release() + # def _filter_based_on_attributes(self): # """ # Retrive the list of nodes hrn that match user's constraints