Exemplo n.º 1
0
def test__allowedToSubmit(mocker):
  """ Testing SiteDirector()._allowedToSubmit()
  """
  mocker.patch("DIRAC.WorkloadManagementSystem.Agent.SiteDirector.AgentModule.__init__")
  mocker.patch("DIRAC.WorkloadManagementSystem.Agent.SiteDirector.AgentModule", side_effect=mockAM)
  sd = SiteDirector()
  sd.log = gLogger
  sd.am_getOption = mockAM
  sd.log.setLevel('DEBUG')
  sd.queueDict = {'aQueue': {'Site': 'LCG.CERN.cern',
                             'CEName': 'aCE',
                             'QueueName': 'aQueue',
                             'ParametersDict': {'CPUTime': 12345,
                                                'Community': 'lhcb',
                                                'OwnerGroup': ['lhcb_user'],
                                                'Setup': 'LHCb-Production',
                                                'Site': 'LCG.CERN.cern',
                                                'SubmitPool': ''}}}
  submit = sd._allowedToSubmit('aQueue', True, set(['LCG.CERN.cern']), set())
  assert submit is False

  sd.siteMaskList = ['LCG.CERN.cern', 'DIRAC.CNAF.it']
  submit = sd._allowedToSubmit('aQueue', True, set(['LCG.CERN.cern']), set())
  assert submit is True

  sd.rssFlag = True
  submit = sd._allowedToSubmit('aQueue', True, set(['LCG.CERN.cern']), set())
  assert submit is False

  sd.ceMaskList = ['aCE', 'anotherCE']
  submit = sd._allowedToSubmit('aQueue', True, set(['LCG.CERN.cern']), set())
  assert submit is True
Exemplo n.º 2
0
def test__allowedToSubmit(mocker):
  """ Testing SiteDirector()._allowedToSubmit()
  """
  mocker.patch("DIRAC.WorkloadManagementSystem.Agent.SiteDirector.AgentModule.__init__")
  mocker.patch("DIRAC.WorkloadManagementSystem.Agent.SiteDirector.AgentModule", side_effect=mockAM)
  sd = SiteDirector()
  sd.log = gLogger
  sd.am_getOption = mockAM
  sd.log.setLevel('DEBUG')
  sd.queueDict = {'aQueue': {'Site': 'LCG.CERN.cern',
                             'CEName': 'aCE',
                             'QueueName': 'aQueue',
                             'ParametersDict': {'CPUTime': 12345,
                                                'Community': 'lhcb',
                                                'OwnerGroup': ['lhcb_user'],
                                                'Setup': 'LHCb-Production',
                                                'Site': 'LCG.CERN.cern'}}}
  submit = sd._allowedToSubmit('aQueue', True, set(['LCG.CERN.cern']), set())
  assert submit is False

  sd.siteMaskList = ['LCG.CERN.cern', 'DIRAC.CNAF.it']
  submit = sd._allowedToSubmit('aQueue', True, set(['LCG.CERN.cern']), set())
  assert submit is True

  sd.rssFlag = True
  submit = sd._allowedToSubmit('aQueue', True, set(['LCG.CERN.cern']), set())
  assert submit is False

  sd.ceMaskList = ['aCE', 'anotherCE']
  submit = sd._allowedToSubmit('aQueue', True, set(['LCG.CERN.cern']), set())
  assert submit is True
Exemplo n.º 3
0
def test__ifAndWhereToSubmit(mocker, mockMatcherReturnValue, expected,
                             anyExpected, sitesExpected):
    """ Testing SiteDirector()._ifAndWhereToSubmit()
  """
    mocker.patch(
        "DIRAC.WorkloadManagementSystem.Agent.SiteDirector.AgentModule.__init__"
    )
    mocker.patch(
        "DIRAC.WorkloadManagementSystem.Agent.SiteDirector.gConfig.getValue",
        side_effect=mockGCReply)
    mocker.patch(
        "DIRAC.WorkloadManagementSystem.Agent.SiteDirector.CSGlobals.getSetup",
        side_effect=mockCSGlobalReply)
    mocker.patch(
        "DIRAC.WorkloadManagementSystem.Agent.SiteDirector.AgentModule",
        side_effect=mockAM)
    sd = SiteDirector()
    sd.log = gLogger
    sd.am_getOption = mockAM
    sd.log.setLevel('DEBUG')
    sd.matcherClient = MagicMock()
    sd.matcherClient.getMatchingTaskQueues.return_value = mockMatcherReturnValue
    res = sd._ifAndWhereToSubmit()
    assert res[0] == expected
    if res[0]:
        assert res == (expected, anyExpected, sitesExpected, set())
Exemplo n.º 4
0
def test__submitPilotsToQueue(mocker):
  """ Testing SiteDirector()._submitPilotsToQueue()
  """
  mocker.patch("DIRAC.WorkloadManagementSystem.Agent.SiteDirector.AgentModule.__init__")
  mocker.patch("DIRAC.WorkloadManagementSystem.Agent.SiteDirector.gConfig.getValue", side_effect=mockGCReply)
  mocker.patch("DIRAC.WorkloadManagementSystem.Agent.SiteDirector.CSGlobals.getSetup", side_effect=mockCSGlobalReply)
  mocker.patch("DIRAC.WorkloadManagementSystem.Agent.SiteDirector.AgentModule", side_effect=mockAM)
  sd = SiteDirector()
  sd.log = gLogger
  sd.am_getOption = mockAM
  sd.log.setLevel('DEBUG')
  sd.rpcMatcher = MagicMock()
  sd.rssClient = MagicMock()
  sd.workingDirectory = ''
  sd.queueDict = {'aQueue': {'Site': 'LCG.CERN.cern',
                             'CEName': 'aCE',
                             'CEType': 'SSH',
                             'QueueName': 'aQueue',
                             'ParametersDict': {'CPUTime': 12345,
                                                'Community': 'lhcb',
                                                'OwnerGroup': ['lhcb_user'],
                                                'Setup': 'LHCb-Production',
                                                'Site': 'LCG.CERN.cern'}}}
  sd.queueSlots = {'aQueue': {'AvailableSlots': 10}}
  res = sd._submitPilotsToQueue(1, MagicMock(), 'aQueue')
  assert res['OK'] is True
Exemplo n.º 5
0
def test__updatePilotStatus(mocker, pilotRefs, pilotDict, pilotCEDict,
                            expected):
    """ Testing SiteDirector()._updatePilotStatus()
  """
    mocker.patch(
        "DIRAC.WorkloadManagementSystem.Agent.SiteDirector.AgentModule.__init__"
    )
    mocker.patch(
        "DIRAC.WorkloadManagementSystem.Agent.SiteDirector.gConfig.getValue",
        side_effect=mockGCReply)
    mocker.patch(
        "DIRAC.WorkloadManagementSystem.Agent.SiteDirector.CSGlobals.getSetup",
        side_effect=mockCSGlobalReply)
    mocker.patch(
        "DIRAC.WorkloadManagementSystem.Agent.SiteDirector.AgentModule",
        side_effect=mockAM)
    mocker.patch(
        "DIRAC.WorkloadManagementSystem.Agent.SiteDirector.pilotAgentsDB",
        side_effect=mockPilotAgentsDB)
    sd = SiteDirector()
    sd.log = gLogger
    sd.am_getOption = mockAM
    sd.log.setLevel('DEBUG')
    sd.rpcMatcher = MagicMock()
    sd.rssClient = MagicMock()
    res = sd._updatePilotStatus(pilotRefs, pilotDict, pilotCEDict)
    assert res == expected
Exemplo n.º 6
0
 def test__getPilotOptions(self, _patch1, _patch2, _patch3, _patch4):
     """ Testing SiteDirector()._getPilotOptions()
 """
     sd = SiteDirector()
     sd.log = gLogger
     sd.am_getOption = mockAM
     sd.log.setLevel('DEBUG')
     sd.queueDict = {
         'aQueue': {
             'CEName': 'aCE',
             'QueueName': 'aQueue',
             'ParametersDict': {
                 'CPUTime': 12345,
                 'Community': 'lhcb',
                 'OwnerGroup': ['lhcb_user'],
                 'Setup': 'LHCb-Production',
                 'Site': 'LCG.CERN.cern',
                 'SubmitPool': ''
             }
         }
     }
     res = sd._getPilotOptions('aQueue', 10)
     self.assertEqual(res[0], [
         '-S TestSetup', '-V 123', '-l 123', '-r 1,2,3', '-g 123',
         '-o /Security/ProxyToken=token', '-M 1', '-C T,e,s,t,S,e,t,u,p',
         '-e 1,2,3', '-N aCE', '-Q aQueue', '-n LCG.CERN.cern'
     ])
     self.assertEqual(res[1], 1)
Exemplo n.º 7
0
 def test__submitPilotsToQueue(self, _patch1, _patch2, _patch3, _patch4):
     """ Testing SiteDirector()._submitPilotsToQueue()
 """
     sd = SiteDirector()
     sd.log = gLogger
     sd.am_getOption = mockAM
     sd.log.setLevel('DEBUG')
     sd.rpcMatcher = MagicMock()
     sd.rssClient = MagicMock()
     sd.workingDirectory = ''
     sd.queueDict = {
         'aQueue': {
             'Site': 'LCG.CERN.cern',
             'CEName': 'aCE',
             'CEType': 'SSH',
             'QueueName': 'aQueue',
             'ParametersDict': {
                 'CPUTime': 12345,
                 'Community': 'lhcb',
                 'OwnerGroup': ['lhcb_user'],
                 'Setup': 'LHCb-Production',
                 'Site': 'LCG.CERN.cern',
                 'SubmitPool': ''
             }
         }
     }
     sd.queueSlots = {'aQueue': {'AvailableSlots': 10}}
     res = sd._submitPilotsToQueue(1, MagicMock(), 'aQueue')
     self.assertTrue(res['OK'])
     self.assertEqual(res['Value'][0], 0)
Exemplo n.º 8
0
def test__getPilotOptions(mocker):
  """ Testing SiteDirector()._getPilotOptions()
  """
  mocker.patch("DIRAC.WorkloadManagementSystem.Agent.SiteDirector.AgentModule.__init__")
  mocker.patch("DIRAC.WorkloadManagementSystem.Agent.SiteDirector.gConfig.getValue", side_effect=mockGCReply)
  mocker.patch("DIRAC.WorkloadManagementSystem.Agent.SiteDirector.Operations", side_effect=mockOPS)
  mocker.patch("DIRAC.WorkloadManagementSystem.Agent.SiteDirector.gProxyManager.requestToken", side_effect=mockPMReply)
  mocker.patch("DIRAC.WorkloadManagementSystem.Agent.SiteDirector.AgentModule", side_effect=mockAM)
  sd = SiteDirector()
  sd.log = gLogger
  sd.am_getOption = mockAM
  sd.log.setLevel('DEBUG')
  sd.queueDict = {'aQueue': {'CEName': 'aCE',
                             'QueueName': 'aQueue',
                             'ParametersDict': {'CPUTime': 12345,
                                                'Community': 'lhcb',
                                                'OwnerGroup': ['lhcb_user'],
                                                'Setup': 'LHCb-Production',
                                                'Site': 'LCG.CERN.cern',
                                                'SubmitPool': ''}}}
  res = sd._getPilotOptions('aQueue', 10)
  assert res[0] == ['-S TestSetup', '-V 123', '-l 123', '-r 1,2,3', '-g 123',
                    '-o /Security/ProxyToken=token', '-M 1', '-C T,e,s,t,S,e,t,u,p',
                    '-e 1,2,3', '-N aCE', '-Q aQueue', '-n LCG.CERN.cern']
  assert res[1] == 1
Exemplo n.º 9
0
def test__submitPilotsToQueue(mocker):
  """ Testing SiteDirector()._submitPilotsToQueue()
  """
  mocker.patch("DIRAC.WorkloadManagementSystem.Agent.SiteDirector.AgentModule.__init__")
  mocker.patch("DIRAC.WorkloadManagementSystem.Agent.SiteDirector.gConfig.getValue", side_effect=mockGCReply)
  mocker.patch("DIRAC.WorkloadManagementSystem.Agent.SiteDirector.CSGlobals.getSetup", side_effect=mockCSGlobalReply)
  mocker.patch("DIRAC.WorkloadManagementSystem.Agent.SiteDirector.Resources.getCompatiblePlatforms",
               side_effect=mockResourcesReply)
  mocker.patch("DIRAC.WorkloadManagementSystem.Agent.SiteDirector.AgentModule", side_effect=mockAM)
  sd = SiteDirector()
  sd.log = gLogger
  sd.am_getOption = mockAM
  sd.log.setLevel('DEBUG')
  sd.rpcMatcher = MagicMock()
  sd.rssClient = MagicMock()
  sd.workingDirectory = ''
  sd.queueDict = {'aQueue': {'Site': 'LCG.CERN.cern',
                             'CEName': 'aCE',
                             'CEType': 'SSH',
                             'QueueName': 'aQueue',
                             'ParametersDict': {'CPUTime': 12345,
                                                'Community': 'lhcb',
                                                'OwnerGroup': ['lhcb_user'],
                                                'Setup': 'LHCb-Production',
                                                'Site': 'LCG.CERN.cern',
                                                'SubmitPool': ''}}}
  sd.queueSlots = {'aQueue': {'AvailableSlots': 10}}
  res = sd._submitPilotsToQueue(1, MagicMock(), 'aQueue')
  assert res['OK'] is True
  assert res['Value'][0] == 0
Exemplo n.º 10
0
 def test__ifAndWhereToSubmit(self, _patch1, _patch2, _patch3, _patch4):
     """ Testing SiteDirector()._ifAndWhereToSubmit()
 """
     sd = SiteDirector()
     sd.log = gLogger
     sd.am_getOption = mockAM
     sd.log.setLevel('DEBUG')
     sd.matcherClient = MagicMock()
     submit, _anySite, _jobSites, _testSites = sd._ifAndWhereToSubmit()
     self.assertTrue(submit)
 def test__getPilotOptions(self, _patch1, _patch2, _patch3):
     sd = SiteDirector()
     sd.log = gLogger
     sd.am_getOption = mockAM
     sd.log.setLevel('DEBUG')
     sd.queueDict = {'aQueue': {'ParametersDict': {'CPUTime': 12345}}}
     sd.queueDict['aQueue'] = {}
     sd.queueDict['aQueue']['ParametersDict'] = {}
     res = sd._getPilotOptions('aQueue', 10)
     #FIXME: incomplete
     self.assertEqual(res, [None, None])
Exemplo n.º 12
0
def test__updatePilotStatus(mocker, pilotRefs, pilotDict, pilotCEDict, expected):
  """ Testing SiteDirector()._updatePilotStatus()
  """
  mocker.patch("DIRAC.WorkloadManagementSystem.Agent.SiteDirector.AgentModule.__init__")
  mocker.patch("DIRAC.WorkloadManagementSystem.Agent.SiteDirector.gConfig.getValue", side_effect=mockGCReply)
  mocker.patch("DIRAC.WorkloadManagementSystem.Agent.SiteDirector.CSGlobals.getSetup", side_effect=mockCSGlobalReply)
  mocker.patch("DIRAC.WorkloadManagementSystem.Agent.SiteDirector.AgentModule", side_effect=mockAM)
  mocker.patch("DIRAC.WorkloadManagementSystem.Agent.SiteDirector.pilotAgentsDB", side_effect=mockPilotAgentsDB)
  sd = SiteDirector()
  sd.log = gLogger
  sd.am_getOption = mockAM
  sd.log.setLevel('DEBUG')
  sd.rpcMatcher = MagicMock()
  sd.rssClient = MagicMock()
  res = sd._updatePilotStatus(pilotRefs, pilotDict, pilotCEDict)
  assert res == expected
Exemplo n.º 13
0
def test__ifAndWhereToSubmit(mocker, mockMatcherReturnValue, expected, anyExpected, sitesExpected):
  """ Testing SiteDirector()._ifAndWhereToSubmit()
  """
  mocker.patch("DIRAC.WorkloadManagementSystem.Agent.SiteDirector.AgentModule.__init__")
  mocker.patch("DIRAC.WorkloadManagementSystem.Agent.SiteDirector.gConfig.getValue", side_effect=mockGCReply)
  mocker.patch("DIRAC.WorkloadManagementSystem.Agent.SiteDirector.CSGlobals.getSetup", side_effect=mockCSGlobalReply)
  mocker.patch("DIRAC.WorkloadManagementSystem.Agent.SiteDirector.AgentModule", side_effect=mockAM)
  sd = SiteDirector()
  sd.log = gLogger
  sd.am_getOption = mockAM
  sd.log.setLevel('DEBUG')
  sd.matcherClient = MagicMock()
  sd.matcherClient.getMatchingTaskQueues.return_value = mockMatcherReturnValue
  res = sd._ifAndWhereToSubmit()
  assert res[0] == expected
  if res[0]:
    assert res == (expected, anyExpected, sitesExpected, set())
Exemplo n.º 14
0
def test__getPilotOptions(mocker):
    """ Testing SiteDirector()._getPilotOptions()
  """
    mocker.patch(
        "DIRAC.WorkloadManagementSystem.Agent.SiteDirector.AgentModule.__init__"
    )
    mocker.patch(
        "DIRAC.WorkloadManagementSystem.Agent.SiteDirector.gConfig.getValue",
        side_effect=mockGCReply)
    mocker.patch(
        "DIRAC.WorkloadManagementSystem.Agent.SiteDirector.Operations",
        side_effect=mockOPS)
    mocker.patch(
        "DIRAC.WorkloadManagementSystem.Agent.SiteDirector.gProxyManager.requestToken",
        side_effect=mockPMReply)
    mocker.patch(
        "DIRAC.WorkloadManagementSystem.Agent.SiteDirector.AgentModule",
        side_effect=mockAM)
    sd = SiteDirector()
    sd.log = gLogger
    sd.am_getOption = mockAM
    sd.log.setLevel('DEBUG')
    sd.queueDict = {
        'aQueue': {
            'CEName': 'aCE',
            'QueueName': 'aQueue',
            'ParametersDict': {
                'CPUTime': 12345,
                'Community': 'lhcb',
                'OwnerGroup': ['lhcb_user'],
                'Setup': 'LHCb-Production',
                'Site': 'LCG.CERN.cern',
                'SubmitPool': ''
            }
        }
    }
    res = sd._getPilotOptions('aQueue', 10)
    assert res[0] == [
        '-S TestSetup', '-V 123', '-l 123', '-r 1,2,3', '-g 123',
        '-o /Security/ProxyToken=token', '-M 1', '-C T,e,s,t,S,e,t,u,p',
        '-e 1,2,3', '-N aCE', '-Q aQueue', '-n LCG.CERN.cern'
    ]
    assert res[1] == 1
Exemplo n.º 15
0
def sd(mocker):
    """mocker for SiteDirector"""
    mocker.patch(
        "DIRAC.WorkloadManagementSystem.Agent.SiteDirector.AgentModule.__init__"
    )
    mocker.patch(
        "DIRAC.WorkloadManagementSystem.Agent.SiteDirector.gConfig.getValue",
        side_effect=mockGCReply)
    mocker.patch(
        "DIRAC.WorkloadManagementSystem.Agent.SiteDirector.Operations",
        side_effect=mockOPS)
    mocker.patch(
        "DIRAC.WorkloadManagementSystem.Agent.SiteDirector.gProxyManager.requestToken",
        side_effect=mockPMReply)
    mocker.patch(
        "DIRAC.WorkloadManagementSystem.Agent.SiteDirector.AgentModule",
        side_effect=mockAM)
    sd = SiteDirector()
    sd.log = gLogger
    sd.am_getOption = mockAM
    sd.log.setLevel("DEBUG")
    sd.rpcMatcher = MagicMock()
    sd.rssClient = MagicMock()
    sd.workingDirectory = ""
    sd.queueDict = {
        "aQueue": {
            "Site": "LCG.CERN.cern",
            "CEName": "aCE",
            "CEType": "SSH",
            "QueueName": "aQueue",
            "ParametersDict": {
                "CPUTime": 12345,
                "Community": "lhcb",
                "OwnerGroup": ["lhcb_user"],
                "Setup": "LHCb-Production",
                "Site": "LCG.CERN.cern",
            },
        }
    }
    return sd
Exemplo n.º 16
0
    def test__allowedToSubmit(self, _patch1):
        """ Testing SiteDirector()._allowedToSubmit()
    """
        sd = SiteDirector()
        sd.log = gLogger
        sd.am_getOption = mockAM
        sd.log.setLevel('DEBUG')
        sd.queueDict = {
            'aQueue': {
                'Site': 'LCG.CERN.cern',
                'CEName': 'aCE',
                'QueueName': 'aQueue',
                'ParametersDict': {
                    'CPUTime': 12345,
                    'Community': 'lhcb',
                    'OwnerGroup': ['lhcb_user'],
                    'Setup': 'LHCb-Production',
                    'Site': 'LCG.CERN.cern',
                    'SubmitPool': ''
                }
            }
        }
        submit = sd._allowedToSubmit('aQueue', True, set(['LCG.CERN.cern']),
                                     set())
        self.assertFalse(submit)

        sd.siteMaskList = ['LCG.CERN.cern', 'DIRAC.CNAF.it']
        submit = sd._allowedToSubmit('aQueue', True, set(['LCG.CERN.cern']),
                                     set())
        self.assertTrue(submit)

        sd.rssFlag = True
        submit = sd._allowedToSubmit('aQueue', True, set(['LCG.CERN.cern']),
                                     set())
        self.assertFalse(submit)

        sd.ceMaskList = ['aCE', 'anotherCE']
        submit = sd._allowedToSubmit('aQueue', True, set(['LCG.CERN.cern']),
                                     set())
        self.assertTrue(submit)
Exemplo n.º 17
0
def test__getPilotOptions(mocker):
  """ Testing SiteDirector()._getPilotOptions()
  """
  mocker.patch("DIRAC.WorkloadManagementSystem.Agent.SiteDirector.AgentModule.__init__")
  mocker.patch("DIRAC.WorkloadManagementSystem.Agent.SiteDirector.gConfig.getValue", side_effect=mockGCReply)
  mocker.patch("DIRAC.WorkloadManagementSystem.Agent.SiteDirector.Operations", side_effect=mockOPS)
  mocker.patch("DIRAC.WorkloadManagementSystem.Agent.SiteDirector.gProxyManager.requestToken", side_effect=mockPMReply)
  mocker.patch("DIRAC.WorkloadManagementSystem.Agent.SiteDirector.AgentModule", side_effect=mockAM)
  sd = SiteDirector()
  sd.log = gLogger
  sd.am_getOption = mockAM
  sd.log.setLevel('DEBUG')
  sd.queueDict = {'aQueue': {'CEName': 'aCE',
                             'QueueName': 'aQueue',
                             'ParametersDict': {'CPUTime': 12345,
                                                'Community': 'lhcb',
                                                'OwnerGroup': ['lhcb_user'],
                                                'Setup': 'LHCb-Production',
                                                'Site': 'LCG.CERN.cern'}}}

  res = sd._getPilotOptions('aQueue')
  assert set(['-S TestSetup', '-V 123', '-l 123', '-n LCG.CERN.cern']) <= set(res)