git://git.onelab.eu
/
plcapi.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
369dc61
)
methods' return values need to be handled separately
author
Barış Metin
<Talip-Baris.Metin@sophia.inria.fr>
Fri, 9 Jul 2010 17:19:02 +0000
(19:19 +0200)
committer
Barış Metin
<Talip-Baris.Metin@sophia.inria.fr>
Fri, 9 Jul 2010 17:19:02 +0000
(19:19 +0200)
aspects/omfaspects.py
patch
|
blob
|
history
diff --git
a/aspects/omfaspects.py
b/aspects/omfaspects.py
index
32eb364
..
250390b
100644
(file)
--- a/
aspects/omfaspects.py
+++ b/
aspects/omfaspects.py
@@
-38,7
+38,11
@@
class BaseOMF(object):
except ValueError:
# we have a string
slice_filter['name'] = id_or_name
except ValueError:
# we have a string
slice_filter['name'] = id_or_name
- slice = Slices(api, slice_filter = slice_filter)[0]
+ try:
+ slice = Slices(api, slice_filter = slice_filter)[0]
+ return slice
+ except IndexError:
+ return None
# don't bother to check for slice tags for the moment. we'll only
# create XMPP pubsub groups for all slices
#
# don't bother to check for slice tags for the moment. we'll only
# create XMPP pubsub groups for all slices
#
@@
-48,7
+52,6
@@
class BaseOMF(object):
# # OK, slice has the "omf" tag set.
# return slice
# return None
# # OK, slice has the "omf" tag set.
# return slice
# return None
- return slice
def get_node_hostname(self, api, node_id_or_hostname):
node_filter = {}
def get_node_hostname(self, api, node_id_or_hostname):
node_filter = {}
@@
-90,13
+93,11
@@
class BaseOMF(object):
def before(self, wobj, data, *args, **kwargs):
api_method_name = wobj.name
slice_name_or_id = None
def before(self, wobj, data, *args, **kwargs):
api_method_name = wobj.name
slice_name_or_id = None
- node_ids = None
if api_method_name == "AddSlice":
slice_name_or_id = args[1]['name']
elif api_method_name == "AddSliceToNodes" or api_method_name == "DeleteSliceFromNodes":
slice_name_or_id = args[1]
if api_method_name == "AddSlice":
slice_name_or_id = args[1]['name']
elif api_method_name == "AddSliceToNodes" or api_method_name == "DeleteSliceFromNodes":
slice_name_or_id = args[1]
- node_ids = args[2]
elif api_method_name == "AddSliceTag":
slice_name_or_id = args[1]
elif api_method_name == "DeleteSlice":
elif api_method_name == "AddSliceTag":
slice_name_or_id = args[1]
elif api_method_name == "DeleteSlice":
@@
-112,29
+113,37
@@
class BaseOMF(object):
# aspect method
def after(self, wobj, data, *args, **kwargs):
# aspect method
def after(self, wobj, data, *args, **kwargs):
+ api_method_name = wobj.name
+
if not self.slice:
if not self.slice:
- return
+ if api_method_name == "AddSlice":
+ slice_name = args[1]['name']
+ self.slice = self.get_slice(wobj.api, slice_name)
+ else:
+ return
- if data.has_key("method_return_value") and data['method_return_value'] == 1:
- # return value 1 means that API call was successful, we can go on.
- pass
- else:
- return
+ ret_val = None
+ if data.has_key("method_return_value"):
+ ret_val = data['method_return_value']
- api_method_name = wobj.name
+ if api_method_name == "AddSlice" and ret_val > 0:
+ self.create_slice(self.slice['name'])
- if api_method_name == "AddSlice":
- self.create_slice(slice['name'])
- elif api_method_name == "AddSliceToNodes":
+ elif api_method_name == "AddSliceToNodes" and ret_val == 1:
+ node_ids = args[2]
for node_id in node_ids:
node_hostname = self.get_node_hostname(wobj.api, node_id)
for node_id in node_ids:
node_hostname = self.get_node_hostname(wobj.api, node_id)
- self.add_resource(slice['name'], node_hostname)
- elif api_method_name == "DeleteSlice":
- self.delete_slice(slice['name'])
- elif api_method_name == "DeleteSliceFromNodes":
+ self.add_resource(self.slice['name'], node_hostname)
+
+ elif api_method_name == "DeleteSlice" and ret_val == 1:
+ self.delete_slice(self.slice['name'])
+
+ elif api_method_name == "DeleteSliceFromNodes" and ret_val == 1:
+ node_ids = args[2]
for node_id in node_ids:
node_hostname = self.get_node_hostname(wobj.api, node_id)
for node_id in node_ids:
node_hostname = self.get_node_hostname(wobj.api, node_id)
- self.delete_resource(slice['name'], node_hostname)
+ self.delete_resource(self.slice['name'], node_hostname)
+
elif api_method_name == "AddSliceTag":
# OMF slices need to have dotsshmount vsys tag set to be
# able to access users' public keys.
elif api_method_name == "AddSliceTag":
# OMF slices need to have dotsshmount vsys tag set to be
# able to access users' public keys.
@@
-143,12
+152,12
@@
class BaseOMF(object):
vsys_tag = self.get_tag_type(wobj.api, "vsys")
if tag_type_id_or_name in (omf_tag['tagname'], omf_tag['tag_type_id']):
slice_tag = SliceTag(wobj.api)
vsys_tag = self.get_tag_type(wobj.api, "vsys")
if tag_type_id_or_name in (omf_tag['tagname'], omf_tag['tag_type_id']):
slice_tag = SliceTag(wobj.api)
- slice_tag['slice_id'] = slice['slice_id']
+ slice_tag['slice_id'] = s
elf.s
lice['slice_id']
slice_tag['tag_type_id'] = vsys_tag['tag_type_id']
slice_tag['value'] = u'dotsshmount'
slice_tag.sync()
slice_tag['tag_type_id'] = vsys_tag['tag_type_id']
slice_tag['value'] = u'dotsshmount'
slice_tag.sync()
- self.logit(wobj.name, args, kwargs, data, slice)
+ self.logit(wobj.name, args, kwargs, data, s
elf.s
lice)