a slightly clearer version of GetSliceFamily
[plcapi.git] / PLC / Methods / GetSliceFamily.py
index f1f8dcc..910fe2f 100644 (file)
@@ -1,5 +1,3 @@
-# $Id$
-# $URL$
 from PLC.Method import Method
 from PLC.Auth import Auth
 from PLC.Faults import *
@@ -7,7 +5,7 @@ from PLC.Parameter import *
 from PLC.Slices import Slice, Slices
 
 from PLC.Accessors.Accessors_standard import *                  # import slice accessors
-from PLC.Accessors.Accessors_omf import *                       # import slice accessors
+from PLC.Accessors.Accessors_sliverauth import *                # import slice accessors
 
 class GetSliceFamily(Method):
     """
@@ -39,27 +37,25 @@ class GetSliceFamily(Method):
         slice = slices[0]
         slice_id = slice['slice_id']
 
-        arch = GetSliceArch (self.api).call(auth,slice_id)
-        if not arch: arch = self.api.config.PLC_FLAVOUR_SLICE_ARCH
-
-        pldistro = GetSlicePldistro (self.api).call(auth, slice_id)
-        if not pldistro: pldistro = self.api.config.PLC_FLAVOUR_SLICE_PLDISTRO
-
-        fcdistro = GetSliceFcdistro (self.api).call(auth, slice_id)
-        if not fcdistro: fcdistro = self.api.config.PLC_FLAVOUR_SLICE_FCDISTRO
+        # omf-control'ed slivers need the omf vserver reference image
+        # we used to issue SetSliceVref (self.api) (auth,slice_id,'omf')
+        # to avoid asking users to set both tags 'omf_control' and 'vref'
+        # however we can't use SetSliceVref here because a node is only allowed 
+        # to set a sliver tag, not a slice tag
+        # and this somehow gets called from GetSlivers
+        # anyways it was a bad idea, let's have the UI do that instead
 
         # the vref tag, if set, wins over pldistro
-        vref = GetSliceVref (self.api).call(auth,slice_id)
+        pldistro = GetSliceVref(self.api,self.caller).call(auth,slice_id) \
+                   or GetSlicePldistro (self.api,self.caller).call(auth, slice_id) \
+                   or self.api.config.PLC_FLAVOUR_SLICE_PLDISTRO
 
-        # omf-control'ed slivers need the omf vserver reference image
-        # this is to avoid asking users to set both tags 'omf_control' and 'vref'
-        if not vref and GetSliceOmfControl(self.api).call(auth,slice_id):
-            SetSliceVref (self.api) (auth,slice_id,'omf')
-            vref='omf'
+        fcdistro = GetSliceFcdistro (self.api,self.caller).call(auth, slice_id) \
+                   or self.api.config.PLC_FLAVOUR_SLICE_FCDISTRO
+
+        arch = GetSliceArch (self.api,self.caller).call(auth,slice_id) \
+               or self.api.config.PLC_FLAVOUR_SLICE_ARCH
 
         # xxx would make sense to check the corresponding vserver rpms are available
         # in all node-families yum repos (and yumgroups, btw)
-        if vref:
-            return "%s-%s-%s"%(vref,fcdistro,arch)
-        else:
-            return "%s-%s-%s"%(pldistro,fcdistro,arch)
+        return "%s-%s-%s"%(pldistro,fcdistro,arch)