From: smbaker Date: Thu, 20 Oct 2011 20:54:41 +0000 (-0700) Subject: deleteslivers for the emulab aggregate X-Git-Tag: sface-0.1-20~11 X-Git-Url: http://git.onelab.eu/?p=sface.git;a=commitdiff_plain;h=b4479edcd8022bc11805758a575f7ca96dcdfc04 deleteslivers for the emulab aggregate --- diff --git a/sface/screens/mainscreen.py b/sface/screens/mainscreen.py index 985e315..3c1be13 100644 --- a/sface/screens/mainscreen.py +++ b/sface/screens/mainscreen.py @@ -519,11 +519,29 @@ class SliceWidget(QWidget): if not faultString: peers = SfiData().getSliceMgrVersion()["peers"] self.submit_aggs = [(key, peers[key]) for key in peers.keys()] + self.delete_aggs = [(key, peers[key]) for key in peers.keys() if key.startswith("emulab")] str = "Successfully retrieved agg list. " - self.submitNextAgg(str) + #self.submitNextAgg(str) + self.deleteNextAgg(str) else: self.setStatus("getSliceMgrVersion failed: %s" % (faultString)) + def deleteNextAgg(self, statusStr=""): + if (self.delete_aggs == []): + self.submitNextAgg(statusStr) + return + + self.delete_agg = self.delete_aggs.pop() + + urlParts = urlparse.urlsplit(self.delete_agg[1]) + amPort = urlParts.port + amAddr = urlParts.hostname+urlParts.path + + self.setStatus(statusStr + "Deleting slivers on %s..." % (self.delete_agg[0])) + + self.connect(self.process, SIGNAL('finished()'), self.deleteNextAggFinished) + self.process.deleteSlivers(aggAddr = amAddr, aggPort = amPort) + def submitNextAgg(self, statusStr=""): if (self.submit_aggs == []): self.setStatus(statusStr + "Finished submitting. %d/%d aggs succeeded." % @@ -555,6 +573,17 @@ class SliceWidget(QWidget): self.submitNextAgg(str) + def deleteNextAggFinished(self): + self.disconnect(self.process, SIGNAL('finished()'), self.deleteNextAggFinished) + + faultString = self.process.getFaultString() + if not faultString: + str = "Succeeded deleteslivers on %s. " % (self.delete_agg[0]) + else: + str = "Failed deleteslivers on %s. " % (self.delete_agg[0]) # , faultString) + + self.deleteNextAgg(str) + def renew(self): dlg = RenewWindow(parent=self) dlg.exec_() diff --git a/sface/sfidata.py b/sface/sfidata.py index 57a6260..3405483 100644 --- a/sface/sfidata.py +++ b/sface/sfidata.py @@ -38,6 +38,18 @@ class SfaceRSpec(RSpec): def remove_slivers(self, slivers, network=None, no_dupes=False): return self.version.remove_slivers(slivers, network, no_dupes) + def add_default_sliver_attribute(self, name, value, network=None): + self.version.add_default_sliver_attribute(name, value, network) + + def add_sliver_attribute(self, hostname, name, value, network=None): + self.version.add_sliver_attribute(hostname, name, value, network) + + def remove_default_sliver_attribute(self, name, value, network=None): + self.version.remove_default_sliver_attribute(name, value, network) + + def remove_sliver_attribute(self, hostname, name, value, network=None): + self.version.remove_sliver_attribute(hostname, name, value, network) + #def add_slivers(self, slivers, network=None, sliver_urn=None, no_dupes=False): # return self.version.add_slivers(slivers, network, sliver_urn, no_dupes) diff --git a/sface/sfiprocess.py b/sface/sfiprocess.py index 9287acd..fac19db 100644 --- a/sface/sfiprocess.py +++ b/sface/sfiprocess.py @@ -196,6 +196,21 @@ class SfiProcess(QObject): self.__init_command(args) self.start() + def deleteSlivers(self, slice=None, aggAddr=None, aggPort=None): + if not slice: + slice = config.getSlice() + + args = ["-u", config.getUser(), "-a", config.getAuthority(), + "-r", config.getRegistry(), "-s", config.getSlicemgr(), "delete"] + + if aggAddr: + args = args + ["-a", aggAddr, "-p", str(aggPort)] + + args = args + [slice] + + self.__init_command(args) + self.start() + def updateRecord(self, filename): args = ["-u", config.getUser(), "-a", config.getAuthority(), "-r", config.getRegistry(), "-s", config.getSlicemgr(), "update", filename]