WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-changelog

[Xen-changelog] [xen-3.0.5-testing] Add network.destroy() to XenAPI

To: xen-changelog@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-changelog] [xen-3.0.5-testing] Add network.destroy() to XenAPI
From: "Xen patchbot-3.0.5-testing" <patchbot-3.0.5-testing@xxxxxxxxxxxxxxxxxxx>
Date: Sat, 28 Apr 2007 10:50:37 -0700
Delivery-date: Sat, 28 Apr 2007 11:53:40 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-changelog-request@lists.xensource.com?subject=help>
List-id: BK change log <xen-changelog.lists.xensource.com>
List-post: <mailto:xen-changelog@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=unsubscribe>
Reply-to: xen-devel@xxxxxxxxxxxxxxxxxxx
Sender: xen-changelog-bounces@xxxxxxxxxxxxxxxxxxx
# HG changeset patch
# User Tom Wilkie <tom.wilkie@xxxxxxxxx>
# Date 1177598370 -3600
# Node ID 16e38247dee8b244b13b98cce8b96b4049b08873
# Parent  58205257517d100282783f4c192106de5bf65ef9
Add network.destroy() to XenAPI

signed-off-by: Tom Wilkie <tom.wilkie@xxxxxxxxx>
---
 tools/python/xen/xend/XendBase.py         |    3 +++
 tools/python/xen/xend/XendError.py        |   12 ++++++++++++
 tools/python/xen/xend/XendNetwork.py      |   19 ++++++++++++++++++-
 tools/python/xen/xm/messages/en/xen-xm.po |    5 ++++-
 4 files changed, 37 insertions(+), 2 deletions(-)

diff -r 58205257517d -r 16e38247dee8 tools/python/xen/xend/XendBase.py
--- a/tools/python/xen/xend/XendBase.py Thu Apr 26 15:42:49 2007 +0100
+++ b/tools/python/xen/xend/XendBase.py Thu Apr 26 15:39:30 2007 +0100
@@ -90,6 +90,9 @@ class XendBase:
         # Finally register it
         XendAPIStore.register(uuid, self.getClass(), self)
 
+    def destroy(self):
+        XendAPIStore.deregister(self.get_uuid(), self.getClass())
+
     def get_uuid(self):
         return self.__uuid
 
diff -r 58205257517d -r 16e38247dee8 tools/python/xen/xend/XendError.py
--- a/tools/python/xen/xend/XendError.py        Thu Apr 26 15:42:49 2007 +0100
+++ b/tools/python/xen/xend/XendError.py        Thu Apr 26 15:39:30 2007 +0100
@@ -162,6 +162,18 @@ class VLANTagInvalid(XendAPIError):
 
     def __str__(self):
         return 'VLAN_TAG_INVALID: %s' % self.vlan
+
+class NetworkError(XendAPIError):
+    def __init__(self, error, network):
+        XendAPIError.__init__(self)
+        self.network = network
+        self.error = error
+
+    def get_api_error(self):
+        return ['NETWORK_ERROR', self.error, self.network]
+
+    def __str__(self):
+        return 'NETWORK_ERROR: %s %s' % (self.error, self.network)
     
 XEND_ERROR_AUTHENTICATION_FAILED = ('ELUSER', 'Authentication Failed')
 XEND_ERROR_SESSION_INVALID       = ('EPERMDENIED', 'Session Invalid')
diff -r 58205257517d -r 16e38247dee8 tools/python/xen/xend/XendNetwork.py
--- a/tools/python/xen/xend/XendNetwork.py      Thu Apr 26 15:42:49 2007 +0100
+++ b/tools/python/xen/xend/XendNetwork.py      Thu Apr 26 15:39:30 2007 +0100
@@ -60,7 +60,8 @@ class XendNetwork(XendBase):
 
     def getMethods(self):
         methods = ['add_to_other_config',
-                   'remove_from_other_config']
+                   'remove_from_other_config',
+                   'destroy']
         return XendBase.getMethods() + methods
 
     def getFuncs(self):
@@ -128,6 +129,8 @@ class XendNetwork(XendBase):
         # Create the bridge
         Brctl.bridge_create(network.name_label)
 
+        XendNode.instance().save_networks()
+
         return uuid
 
     create_phy  = classmethod(create_phy)
@@ -140,6 +143,20 @@ class XendNetwork(XendBase):
     #
     # XenAPI Mehtods
     #
+
+    def destroy(self):
+        # check no VIFs or PIFs attached
+        if len(self.get_VIFs()) > 0:
+            raise NetworkError("Cannot destroy network with VIFs attached",
+                               self.get_name_label())
+
+        if len(self.get_PIFs()) > 0:
+            raise NetworkError("Cannot destroy network with PIFs attached",
+                               self.get_name_label())        
+        
+        XendBase.destroy(self)
+        Brctl.bridge_del(self.get_name_label())
+        XendNode.instance().save_networks()
 
     def get_name_label(self):
         return self.name_label
diff -r 58205257517d -r 16e38247dee8 tools/python/xen/xm/messages/en/xen-xm.po
--- a/tools/python/xen/xm/messages/en/xen-xm.po Thu Apr 26 15:42:49 2007 +0100
+++ b/tools/python/xen/xm/messages/en/xen-xm.po Thu Apr 26 15:39:30 2007 +0100
@@ -87,4 +87,7 @@ msgstr "Class %s does not implement %s"
 msgstr "Class %s does not implement %s"
 
 msgid "VLAN_TAG_INVALID"
-msgstr "VLAN tag invalid %s"
\ No newline at end of file
+msgstr "VLAN tag invalid %s"
+
+msgid "NETWORK_ERROR"
+msgstr "Network Error: %s - %s"
\ No newline at end of file

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-changelog] [xen-3.0.5-testing] Add network.destroy() to XenAPI, Xen patchbot-3.0.5-testing <=