From: Marc Fiuczynski <mef@cs.princeton.edu>
Date: Thu, 16 Jul 2009 19:45:44 +0000 (+0000)
Subject: Add/Update SliceTag of a system slice
X-Git-Tag: PLCAPI-4.3-23~41
X-Git-Url: http://git.onelab.eu/?a=commitdiff_plain;h=1c23161836805f7e54fc2182fbd33bdb55701c5b;p=plcapi.git

Add/Update SliceTag of a system slice
---

diff --git a/PLC/Methods/AddSliceTag.py b/PLC/Methods/AddSliceTag.py
index 474798e0..ba4d0eaa 100644
--- a/PLC/Methods/AddSliceTag.py
+++ b/PLC/Methods/AddSliceTag.py
@@ -101,8 +101,10 @@ class AddSliceTag(Method):
                 else:                    
                     node_id = node['node_id']
             
-            if node_id not in slice['node_ids']:
-                raise PLCInvalidArgument, "Node not in the specified slice"
+            system_slice_tags = SliceTags(self.api, {'tagname': 'system', 'value': '1'}).dict('slice_id')
+            system_slice_ids = system_slice_tags.keys()
+	    if slice['slice_id'] not in system_slice_ids and node_id not in slice['node_ids']:
+                raise PLCInvalidArgument, "Node not in the specified slice %s not in %s"%(slice['slice_id'],system_slice_ids)
             slice_tag['node_id'] = node['node_id']
 
 	# Sliver attribute shared accross nodes if nodegroup is sepcified
diff --git a/PLC/Methods/UpdateSliceTag.py b/PLC/Methods/UpdateSliceTag.py
index 8fc74de7..6e0a9430 100644
--- a/PLC/Methods/UpdateSliceTag.py
+++ b/PLC/Methods/UpdateSliceTag.py
@@ -3,10 +3,10 @@ from PLC.Faults import *
 from PLC.Method import Method
 from PLC.Parameter import Parameter, Mixed
 from PLC.SliceTags import SliceTag, SliceTags
+from PLC.Nodes import Node
 from PLC.Slices import Slice, Slices
 from PLC.InitScripts import InitScript, InitScripts
 from PLC.Auth import Auth
-from PLC.Nodes import Node
 
 class UpdateSliceTag(Method):
     """
@@ -25,7 +25,8 @@ class UpdateSliceTag(Method):
     accepts = [
         Auth(),
         SliceTag.fields['slice_tag_id'],
-	SliceTag.fields['value'],
+	Mixed(SliceTag.fields['value'],
+              InitScript.fields['name'])
         ]
 
     returns = Parameter(int, '1 if successful')