[Kimchi-devel] [PATCH 3/4] Transient Network POST request handling
Christy Perez
christy at linux.vnet.ibm.com
Mon Jan 19 21:49:16 UTC 2015
Ignore the exception on GET for Stop (deactivate) of
transient Networks.
---
src/kimchi/control/networks.py | 11 +++++++++--
src/kimchi/model/networks.py | 6 +++++-
2 files changed, 14 insertions(+), 3 deletions(-)
diff --git a/src/kimchi/control/networks.py b/src/kimchi/control/networks.py
index 7cb1572..14d6324 100644
--- a/src/kimchi/control/networks.py
+++ b/src/kimchi/control/networks.py
@@ -20,7 +20,6 @@
from kimchi.control.base import Collection, Resource
from kimchi.control.utils import UrlSubNode
-
@UrlSubNode('networks', True)
class Networks(Collection):
def __init__(self, model):
@@ -33,11 +32,19 @@ def __init__(self, model):
class Network(Resource):
def __init__(self, model, ident):
super(Network, self).__init__(model, ident)
+ _ignore_not_found = False
+ try:
+ # the test driver causes an exception in is_persistent()
+ _ignore_not_found = \
+ not model.network_is_persistent(self.ident.decode('utf-8'))
+ except Exception:
+ pass
self.role_key = 'network'
self.admin_methods = ['PUT', 'POST', 'DELETE']
self.uri_fmt = "/networks/%s"
self.activate = self.generate_action_handler('activate')
- self.deactivate = self.generate_action_handler('deactivate')
+ self.deactivate = self.generate_action_handler('deactivate', \
+ ignore_not_found=_ignore_not_found)
@property
def data(self):
diff --git a/src/kimchi/model/networks.py b/src/kimchi/model/networks.py
index 7265c64..969d922 100644
--- a/src/kimchi/model/networks.py
+++ b/src/kimchi/model/networks.py
@@ -261,7 +261,11 @@ def lookup(self, name):
'in_use': self._is_network_in_use(name),
'autostart': network.autostart() == 1,
'state': network.isActive() and "active" or "inactive",
- 'persistent': True if network.isPersistent() else False}
+ 'persistent': self.is_persistent(name)}
+
+ def is_persistent(self, name):
+ network = self.get_network(self.conn.get(), name)
+ return True if network.isPersistent() else False
def _is_network_in_use(self, name):
# The network "default" is used for Kimchi proposal and should not be
--
1.9.3
More information about the Kimchi-devel
mailing list