def GetSlivers(data, config=None, plc=None):
if 'slivers' not in data:
- logger.log_missing_data("vsys_privs.GetSlivers",'slivers')
+ logger.log_missing_data("vsys_privs.GetSlivers", 'slivers')
return
# Parse attributes and update dict of scripts
if 'slivers' not in data:
- logger.log_missing_data("vsys_privs.GetSlivers",'slivers')
+ logger.log_missing_data("vsys_privs.GetSlivers", 'slivers')
return
for sliver in data['slivers']:
slice = sliver['name']
tag = attribute['tagname']
value = attribute['value']
if tag.startswith('vsys_'):
- if (privs.has_key(slice)):
+ if (slice in privs):
slice_priv = privs[slice]
- if (slice_priv.has_key(tag)):
+ if (tag in slice_priv):
slice_priv[tag].append(value)
else:
slice_priv[tag]=[value]
cur_privs={}
priv_finder = os.walk(VSYS_PRIV_DIR)
priv_find = [i for i in priv_finder]
- (rootdir,slices,foo) = priv_find[0]
+ (rootdir, slices, foo) = priv_find[0]
for slice in slices:
cur_privs[slice]={}
if (len(priv_find)>1):
- for (slicedir,bar,tagnames) in priv_find[1:]:
+ for (slicedir, bar, tagnames) in priv_find[1:]:
if (bar != []):
# The depth of the vsys-privileges directory = 1
pass
for tagname in tagnames:
- tagfile = os.path.join(slicedir,tagname)
- values_n = file(tagfile).readlines()
- values = map(lambda s:s.rstrip(),values_n)
- slice = os.path.basename(slicedir)
- cur_privs[slice][tagname]=values
+ tagfilename = os.path.join(slicedir, tagname)
+ with open(tagfilename) as tagfile:
+ values_n = tagfile.readlines()
+ values = [ v.rstrip() for v in values_n ]
+ slice = os.path.basename(slicedir)
+ cur_privs[slice][tagname] = values
return cur_privs
-def write_privs(cur_privs,privs):
- for slice in privs.keys():
+def write_privs(cur_privs, privs):
+ for slice in list(privs.keys()):
variables = privs[slice]
- slice_dir = os.path.join(VSYS_PRIV_DIR,slice)
+ slice_dir = os.path.join(VSYS_PRIV_DIR, slice)
if (not os.path.exists(slice_dir)):
os.mkdir(slice_dir)
# Add values that do not exist
- for k in variables.keys():
+ for k in list(variables.keys()):
v = variables[k]
- if (cur_privs.has_key(slice)
- and cur_privs[slice].has_key(k)
+ if (slice in cur_privs
+ and k in cur_privs[slice]
and cur_privs[slice][k] == v):
# The binding has not changed
pass
else:
v_file = os.path.join(slice_dir, k)
- f = open(v_file,'w')
+ f = open(v_file, 'w')
data = '\n'.join(v)
f.write(data)
f.close()
- logger.log("vsys_privs: added vsys attribute %s for %s"%(k,slice))
+ logger.log("vsys_privs: added vsys attribute %s for %s"%(k, slice))
# Remove files and directories
# that are invalid
- for slice in cur_privs.keys():
+ for slice in list(cur_privs.keys()):
variables = cur_privs[slice]
- slice_dir = os.path.join(VSYS_PRIV_DIR,slice)
+ slice_dir = os.path.join(VSYS_PRIV_DIR, slice)
# Add values that do not exist
- for k in variables.keys():
- if (privs.has_key(slice)
- and cur_privs[slice].has_key(k)):
+ for k in list(variables.keys()):
+ if (slice in privs
+ and k in cur_privs[slice]):
# ok, spare this tag
- print "Sparing %s, %s "%(slice,k)
+ print("Sparing %s, %s "%(slice, k))
else:
v_file = os.path.join(slice_dir, k)
os.remove(v_file)
- if (not privs.has_key(slice)):
+ if (slice not in privs):
os.rmdir(slice_dir)
if __name__ == "__main__":
test_slivers = {'slivers':[
- {'name':'foo','attributes':[
- {'tagname':'vsys_m','value':'2'},
- {'tagname':'vsys_m','value':'3'},
- {'tagname':'vsys_m','value':'4'}
+ {'name':'foo', 'attributes':[
+ {'tagname':'vsys_m', 'value':'2'},
+ {'tagname':'vsys_m', 'value':'3'},
+ {'tagname':'vsys_m', 'value':'4'}
]},
- {'name':'bar','attributes':[
- #{'tagname':'vsys_x','value':'z'}
+ {'name':'bar', 'attributes':[
+ #{'tagname':'vsys_x', 'value':'z'}
]}
]}
- start(None,None)
+ start(None, None)
GetSlivers(test_slivers)