本文整理汇总了Python中DIRAC.ConfigurationSystem.private.Modificator.Modificator.setOptionValue方法的典型用法代码示例。如果您正苦于以下问题:Python Modificator.setOptionValue方法的具体用法?Python Modificator.setOptionValue怎么用?Python Modificator.setOptionValue使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类DIRAC.ConfigurationSystem.private.Modificator.Modificator
的用法示例。
在下文中一共展示了Modificator.setOptionValue方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: __init__
# 需要导入模块: from DIRAC.ConfigurationSystem.private.Modificator import Modificator [as 别名]
# 或者: from DIRAC.ConfigurationSystem.private.Modificator.Modificator import setOptionValue [as 别名]
#.........这里部分代码省略.........
return S_OK( groupsDict )
def deleteUsers( self, users ):
"""
Delete a user/s can receive as a param either a string or a list
"""
if not self.__initialized[ 'OK' ]:
return self.__initialized
if type( users ) == types.StringType:
users = [ users ]
usersData = self.describeUsers( users )['Value']
for username in users:
if not username in usersData:
gLogger.warn( "User %s does not exist" )
continue
userGroups = usersData[ username ][ 'Groups' ]
for group in userGroups:
self.__removeUserFromGroup( group, username )
gLogger.info( "Deleted user %s from group %s" % ( username, group ) )
self.__csMod.removeSection( "%s/Users/%s" % ( self.__baseSecurity, username ) )
gLogger.info( "Deleted user %s" % username )
self.__csModified = True
return S_OK( True )
def __removeUserFromGroup( self, group, username ):
"""
Remove user from a group
"""
usersInGroup = self.__csMod.getValue( "%s/Groups/%s/Users" % ( self.__baseSecurity, group ) )
if usersInGroup != None:
userList = List.fromChar( usersInGroup, "," )
userPos = userList.index( username )
userList.pop( userPos )
self.__csMod.setOptionValue( "%s/Groups/%s/Users" % ( self.__baseSecurity, group ), ",".join( userList ) )
def __addUserToGroup( self, group, username ):
"""
Add user to a group
"""
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 )
示例2: CSAPI
# 需要导入模块: from DIRAC.ConfigurationSystem.private.Modificator import Modificator [as 别名]
# 或者: from DIRAC.ConfigurationSystem.private.Modificator.Modificator import setOptionValue [as 别名]
#.........这里部分代码省略.........
return S_OK( groupsDict )
def deleteUsers( self, users ):
"""
Delete a user/s can receive as a param either a string or a list
"""
if not self.__initialized[ 'OK' ]:
return self.__initialized
if isinstance( users, basestring ):
users = [ users ]
usersData = self.describeUsers( users )['Value']
for username in users:
if not username in usersData:
gLogger.warn( "User %s does not exist" )
continue
userGroups = usersData[ username ][ 'Groups' ]
for group in userGroups:
self.__removeUserFromGroup( group, username )
gLogger.info( "Deleted user %s from group %s" % ( username, group ) )
self.__csMod.removeSection( "%s/Users/%s" % ( self.__baseSecurity, username ) )
gLogger.info( "Deleted user %s" % username )
self.csModified = True
return S_OK( True )
def __removeUserFromGroup( self, group, username ):
"""
Remove user from a group
"""
usersInGroup = self.__csMod.getValue( "%s/Groups/%s/Users" % ( self.__baseSecurity, group ) )
if usersInGroup is not None:
userList = List.fromChar( usersInGroup, "," )
userPos = userList.index( username )
userList.pop( userPos )
self.__csMod.setOptionValue( "%s/Groups/%s/Users" % ( self.__baseSecurity, group ), ",".join( userList ) )
def __addUserToGroup( self, group, username ):
"""
Add user to a group
"""
usersInGroup = self.__csMod.getValue( "%s/Groups/%s/Users" % ( self.__baseSecurity, group ) )
if usersInGroup is not 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
: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 ) )
示例3: CSShellCLI
# 需要导入模块: from DIRAC.ConfigurationSystem.private.Modificator import Modificator [as 别名]
# 或者: from DIRAC.ConfigurationSystem.private.Modificator.Modificator import setOptionValue [as 别名]
#.........这里部分代码省略.........
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>"
else:
self.modificator.setOptionValue(self.root + "/" + line[0], line[1])
self.dirty = True
complete_set = complete_cat
def do_unset(self, line):
"""unset
Unset an option in the CS: Making the option equal to the
empty string."""
if self.connected:
self.modificator.setOptionValue(self.root + "/" + line, "")
self.dirty = True
complete_unset = complete_cat
def do_commit(self, _line):
"""commit
Commit the modifications to the CS"""
if self.connected and self.dirty:
self.modificator.commit()
def default(self, line):
"""Override [Cmd.default(line)] function."""
if line == "EOF":
if self.prompt:
print
return self.do_quit(line)
else:
cmd.Cmd.default(self, line)
def do_quit(self, _line):
"""quit
Quit"""
self.do_disconnect("")
CLI.do_quit(self, _line)
示例4: CSCLI
# 需要导入模块: from DIRAC.ConfigurationSystem.private.Modificator import Modificator [as 别名]
# 或者: from DIRAC.ConfigurationSystem.private.Modificator.Modificator import setOptionValue [as 别名]
#.........这里部分代码省略.........
if choice in ( "yes", "y" ):
print "Uploading changes to %s (It may take some seconds)..." % self.masterURL
response = self.modificator.commit()
if response[ 'OK' ]:
self.modifiedData = False
print "Data sent to server."
self.modificator.loadFromRemote()
else:
print "Error sending data, server said: %s" % response['Message']
return
else:
print "Commit aborted"
except Exception as x:
_showTraceback()
print "Could not upload changes. ", str( x )
def do_set( self, args ):
"""
Sets option's value
Usage: set <optionPath> <value>...
From second argument until the last one is considered option's value
NOTE: If specified section does not exist it is created.
"""
try:
argsList = args.split()
if len( argsList ) < 2:
print "Must specify option and value to use"
return
optionPath = argsList[0].strip()
value = " ".join( argsList[1:] ).strip()
self.modificator.setOptionValue( optionPath, value )
self.modifiedData = True
except Exception as x:
print "Cannot insert value: ", str( x )
def do_removeOption( self, args ):
"""
Removes an option.
Usage: removeOption <option>
There can be empty sections.
"""
try:
argsList = args.split()
if len( argsList ) < 1:
print "Must specify option to delete"
return
optionPath = argsList[0].strip()
choice = raw_input( "Are you sure you want to delete %s? yes/no [no]: " % optionPath )
choice = choice.lower()
if choice in ( "yes", "y", "true" ):
if self.modificator.removeOption( optionPath ):
self.modifiedData = True
else:
print "Can't be deleted"
else:
print "Aborting removal."
except Exception as x:
print "Error removing option, %s" % str( x )
def do_removeSection( self, args ):
"""