本文整理汇总了Python中DIRAC.ConfigurationSystem.private.Modificator.Modificator.createSection方法的典型用法代码示例。如果您正苦于以下问题:Python Modificator.createSection方法的具体用法?Python Modificator.createSection怎么用?Python Modificator.createSection使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类DIRAC.ConfigurationSystem.private.Modificator.Modificator
的用法示例。
在下文中一共展示了Modificator.createSection方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: CSShellCLI
# 需要导入模块: from DIRAC.ConfigurationSystem.private.Modificator import Modificator [as 别名]
# 或者: from DIRAC.ConfigurationSystem.private.Modificator.Modificator import createSection [as 别名]
#.........这里部分代码省略.........
self.root = self.root + os.path.normpath(line)
else:
self.root = self.root + "/" + os.path.normpath(line)
self.update_prompt()
else:
print "cd: no such section: " + line
def complete_cd(self, text, _line, _begidx, _endidx):
secs = self.modificator.getSections(self.root)
return [(s + "/") for s in secs if s.startswith(text)]
def do_cat(self, line):
"""cat
Read the content of an option in the CS"""
if self.connected:
opts = self.modificator.getOptionsDict(self.root)
if line in opts.keys():
print opts[line]
else:
print "cat: No such option"
def complete_cat(self, text, _line, _begidx, _endidx):
opts = self.modificator.getOptions(self.root)
return [o for o in opts if o.startswith(text)]
do_less = do_cat
complete_less = complete_cat
def do_mkdir(self, line):
"""mkdir
Create a new section in the CS"""
if self.connected:
self.modificator.createSection(self.root + "/" + line)
self.dirty = True
complete_mkdir = complete_cd
def do_rmdir(self, line):
"""rmdir
Delete a section in the CS"""
if self.connected:
self.modificator.removeSection(self.root + "/" + line)
self.dirty = True
complete_rmdir = complete_cd
def do_rm(self, line):
"""rm
Delete an option in the CS"""
if self.connected:
self.modificator.removeOption(self.root + "/" + line)
self.dirty = True
complete_rm = complete_cat
def do_set(self, line):
"""set
Set an option in the CS (or create it if it does not exists)
Usage: set <str> to set a string option (will be stored as a string in CS)
set <str>,<str>,... to set a list option (will be stored as a list in CS)
"""
if self.connected:
line = line.split(" ", 2)
if len(line) != 2:
print "Usage: set <key> <value>"
示例2: __init__
# 需要导入模块: from DIRAC.ConfigurationSystem.private.Modificator import Modificator [as 别名]
# 或者: from DIRAC.ConfigurationSystem.private.Modificator.Modificator import createSection [as 别名]
#.........这里部分代码省略.........
usersInGroup = self.__csMod.getValue( "%s/Groups/%s/Users" % ( self.__baseSecurity, group ) )
if usersInGroup != None:
userList = List.fromChar( usersInGroup )
if username not in userList:
userList.append( username )
self.__csMod.setOptionValue( "%s/Groups/%s/Users" % ( self.__baseSecurity, group ), ",".join( userList ) )
else:
gLogger.warn( "User %s is already in group %s" % ( username, group ) )
def addUser( self, username, properties ):
"""
Add a user to the cs
- username
- properties is a dict with keys:
- DN
- groups
- <extra params>
Returns True/False
"""
if not self.__initialized[ 'OK' ]:
return self.__initialized
for prop in ( "DN", "Groups" ):
if prop not in properties:
gLogger.error( "Missing %s property for user %s" % ( prop, username ) )
return S_OK( False )
if username in self.listUsers()['Value']:
gLogger.error( "User %s is already registered" % username )
return S_OK( False )
groups = self.listGroups()['Value']
for userGroup in properties[ 'Groups' ]:
if not userGroup in groups:
gLogger.error( "User %s group %s is not a valid group" % ( username, userGroup ) )
return S_OK( False )
self.__csMod.createSection( "%s/Users/%s" % ( self.__baseSecurity, username ) )
for prop in properties:
if prop == "Groups":
continue
self.__csMod.setOptionValue( "%s/Users/%s/%s" % ( self.__baseSecurity, username, prop ), properties[ prop ] )
for userGroup in properties[ 'Groups' ]:
gLogger.info( "Added user %s to group %s" % ( username, userGroup ) )
self.__addUserToGroup( userGroup, username )
gLogger.info( "Registered user %s" % username )
self.__csModified = True
return S_OK( True )
def modifyUser( self, username, properties, createIfNonExistant = False ):
"""
Modify a user
- username
- properties is a dict with keys:
- DN
- Groups
- <extra params>
Returns True/False
"""
if not self.__initialized[ 'OK' ]:
return self.__initialized
modifiedUser = False
userData = self.describeUsers( [ username ] )['Value']
if username not in userData:
if createIfNonExistant:
gLogger.info( "Registering user %s" % username )
return self.addUser( username, properties )
gLogger.error( "User %s is not registered" % username )
return S_OK( False )
for prop in properties:
示例3: CSAPI
# 需要导入模块: from DIRAC.ConfigurationSystem.private.Modificator import Modificator [as 别名]
# 或者: from DIRAC.ConfigurationSystem.private.Modificator.Modificator import createSection [as 别名]
#.........这里部分代码省略.........
if username not in userList:
userList.append( username )
self.__csMod.setOptionValue( "%s/Groups/%s/Users" % ( self.__baseSecurity, group ), ",".join( userList ) )
else:
gLogger.warn( "User %s is already in group %s" % ( username, group ) )
def addUser( self, username, properties ):
"""
Add a user to the cs
:param str username: group name
:param dict properties: dictionary describing user properties:
- DN
- groups
- <extra params>
:return: True/False
"""
if not self.__initialized[ 'OK' ]:
return self.__initialized
for prop in ( "DN", "Groups" ):
if prop not in properties:
gLogger.error( "Missing property for user", "%s: %s" % ( prop, username ) )
return S_OK( False )
if username in self.listUsers()['Value']:
gLogger.error( "User is already registered", username )
return S_OK( False )
groups = self.listGroups()['Value']
for userGroup in properties[ 'Groups' ]:
if not userGroup in groups:
gLogger.error( "User group is not a valid group", "%s %s" % ( username, userGroup ) )
return S_OK( False )
self.__csMod.createSection( "%s/Users/%s" % ( self.__baseSecurity, username ) )
for prop in properties:
if prop == "Groups":
continue
self.__csMod.setOptionValue( "%s/Users/%s/%s" % ( self.__baseSecurity, username, prop ), properties[ prop ] )
for userGroup in properties[ 'Groups' ]:
gLogger.info( "Added user %s to group %s" % ( username, userGroup ) )
self.__addUserToGroup( userGroup, username )
gLogger.info( "Registered user %s" % username )
self.csModified = True
return S_OK( True )
def modifyUser( self, username, properties, createIfNonExistant = False ):
"""
Modify a user
:param str username: group name
:param dict properties: dictionary describing user properties:
- DN
- Groups
- <extra params>
:return: S_OK, Value = True/False
"""
if not self.__initialized[ 'OK' ]:
return self.__initialized
modifiedUser = False
userData = self.describeUsers( [ username ] )['Value']
if username not in userData:
if createIfNonExistant:
gLogger.info( "Registering user %s" % username )
return self.addUser( username, properties )