From b4479edcd8022bc11805758a575f7ca96dcdfc04 Mon Sep 17 00:00:00 2001 From: smbaker <smbaker@fc8clean.lan> Date: Thu, 20 Oct 2011 13:54:41 -0700 Subject: [PATCH] deleteslivers for the emulab aggregate --- sface/screens/mainscreen.py | 31 ++++++++++++++++++++++++++++++- sface/sfidata.py | 12 ++++++++++++ sface/sfiprocess.py | 15 +++++++++++++++ 3 files changed, 57 insertions(+), 1 deletion(-) 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 = "<font color='green'>Successfully retrieved agg list.</font> " - self.submitNextAgg(str) + #self.submitNextAgg(str) + self.deleteNextAgg(str) else: self.setStatus("<font color='red'>getSliceMgrVersion failed: %s</font>" % (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 + "<font color='green'>Finished submitting. %d/%d aggs succeeded.</font>" % @@ -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 = "<font color='green'>Succeeded deleteslivers on %s.</font> " % (self.delete_agg[0]) + else: + str = "<font color='red'>Failed deleteslivers on %s.</font> " % (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] -- 2.47.0