当前位置: 首页>>代码示例>>Python>>正文


Python ResourceManagementClient.addOrModifyPolicyResult方法代码示例

本文整理汇总了Python中DIRAC.ResourceStatusSystem.Client.ResourceManagementClient.ResourceManagementClient.addOrModifyPolicyResult方法的典型用法代码示例。如果您正苦于以下问题:Python ResourceManagementClient.addOrModifyPolicyResult方法的具体用法?Python ResourceManagementClient.addOrModifyPolicyResult怎么用?Python ResourceManagementClient.addOrModifyPolicyResult使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在DIRAC.ResourceStatusSystem.Client.ResourceManagementClient.ResourceManagementClient的用法示例。


在下文中一共展示了ResourceManagementClient.addOrModifyPolicyResult方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: LogPolicyResultAction

# 需要导入模块: from DIRAC.ResourceStatusSystem.Client.ResourceManagementClient import ResourceManagementClient [as 别名]
# 或者: from DIRAC.ResourceStatusSystem.Client.ResourceManagementClient.ResourceManagementClient import addOrModifyPolicyResult [as 别名]
class LogPolicyResultAction( BaseAction ):
  '''
    Action that registers on the database a new entry per policy result in the
    list singlePolicyResults.
  '''

  def __init__( self, name, decissionParams, enforcementResult, singlePolicyResults, 
                clients = None ):
    
    super( LogPolicyResultAction, self ).__init__( name, decissionParams, enforcementResult, 
                                                   singlePolicyResults, clients )

    if clients is not None and 'ResourceManagementClient' in clients:
      self.rmClient = clients[ 'ResourceManagementClient' ]
    else:
      self.rmClient = ResourceManagementClient()

  def run( self ):
    '''
      Checks it has the parameters it needs and tries to addOrModify in the 
      database.
    '''
  
    element = self.decissionParams[ 'element' ]
    if element is None:
      return S_ERROR( 'element should not be None' )
    
    name = self.decissionParams[ 'name' ] 
    if name is None:
      return S_ERROR( 'name should not be None' )
    
    statusType = self.decissionParams[ 'statusType' ]
    if statusType is None:
      return S_ERROR( 'statusType should not be None' )
    
    for singlePolicyResult in self.singlePolicyResults:
      
      status = singlePolicyResult[ 'Status' ]
      if status is None:
        return S_ERROR( 'status should not be None' )
      
      reason = singlePolicyResult[ 'Reason' ]
      if reason is None:
        return S_ERROR( 'reason should not be None' )
    
      policyName = singlePolicyResult[ 'Policy' ][ 'name' ]
      if policyName is None:
        return S_ERROR( 'policyName should not be None' )
      
      #Truncate reason to fit in database column
      reason = ( reason[ :508 ] + '..') if len( reason ) > 508 else reason
    
      polUpdateRes = self.rmClient.addOrModifyPolicyResult( element = element, 
                                                            name = name,
                                                            policyName = policyName, 
                                                            statusType = statusType, 
                                                            status = status, 
                                                            reason = reason )
      
      if not polUpdateRes[ 'OK' ]:
        return polUpdateRes
    
    return S_OK()

################################################################################
#EOF#EOF#EOF#EOF#EOF#EOF#EOF#EOF#EOF#EOF#EOF#EOF#EOF#EOF#EOF#EOF#EOF#EOF#EOF#EOF
开发者ID:IgorPelevanyuk,项目名称:DIRAC,代码行数:68,代码来源:LogPolicyResultAction.py


注:本文中的DIRAC.ResourceStatusSystem.Client.ResourceManagementClient.ResourceManagementClient.addOrModifyPolicyResult方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。