Example #1
0
 def test_init_lrms_empty(self):
     lrms = mesos.lrms()
     assert lrms._server_ip == 'mesosserverpublic'
     assert lrms._nodes == '/usr/bin/curl -L -X GET http://mesosserverpublic:5050/master/slaves'
     assert lrms._state == '/usr/bin/curl -L -X GET http://mesosserverpublic:5050/master/state.json'
     assert lrms._jobs == '/usr/bin/curl -L -X GET http://mesosserverpublic:5050/master/tasks.json'
     assert lrms._marathon == '/usr/bin/curl -L -X GET http://mesosserverpublic:8080/v2/apps?embed=tasks'
     assert lrms._chronos == '/usr/bin/curl -L -X GET http://mesosserverpublic:4400/scheduler/jobs'
     assert lrms._chronos_state == '/usr/bin/curl -L -X GET http://mesosserverpublic:4400/scheduler/graph/csv'
     assert lrms.get_id() == 'MESOS_mesosserverpublic'
Example #2
0
 def test_init_lrms(self):
     lrms = mesos.lrms('test_ip', 'nodes', 'state', 'jobs', 'marathon', 'chronos', 'chronos_state')
     assert lrms._server_ip == 'test_ip'
     assert lrms._nodes == 'nodes'
     assert lrms._state == 'state'
     assert lrms._jobs == 'jobs'
     assert lrms._marathon == 'marathon'
     assert lrms._chronos == 'chronos'
     assert lrms._chronos_state == 'chronos_state'
     assert lrms.get_id() == 'MESOS_test_ip'
Example #3
0
    def test_get_jobinfolist(self, _obtain_mesos_state, _obtain_mesos_nodes, _obtain_marathon_jobs,
                             _obtain_mesos_jobs, _obtain_chronos_jobs, _obtain_chronos_job_state):
        _obtain_mesos_state.return_value = read_file_as_json("test-files/mesos-state.json")
        _obtain_mesos_nodes.return_value = read_file_as_json("test-files/mesos-master-slaves.json")
        _obtain_marathon_jobs.return_value = read_file_as_json("test-files/marathon-jobs.json")
        _obtain_mesos_jobs.return_value = read_file_as_json("test-files/mesos-master-tasks.json")
        _obtain_chronos_jobs.return_value = read_file_as_json("test-files/chronos-jobs.json")
        _obtain_chronos_job_state.return_value = Request.ATTENDED
        job_info_list = mesos.lrms(MagicMock(mesos.lrms)).get_jobinfolist()

        assert len(job_info_list) == 4
Example #4
0
    def test_get_nodeinfolist(self, open_file, _obtain_mesos_nodes, _obtain_mesos_jobs):
        open_file.return_value = read_file("test-files/mesos_vnodes.info")
        _obtain_mesos_nodes.return_value = read_file_as_json("test-files/mesos-master-slaves.json")
        _obtain_mesos_jobs.return_value = read_file_as_json("test-files/mesos-master-tasks.json")

        nodeinfolist = mesos.lrms(MagicMock(mesos.lrms)).get_nodeinfolist()
        if nodeinfolist:
            result = '[NODE "10.0.0.84"] state: used, 0/1 (free slots), 116391936/653262848 (mem)'
            assert str(nodeinfolist['10.0.0.84']) == result
            result = '[NODE "vnode2"] state: off, 1/1 (free slots), 1572864000/1572864000 (mem)'
            assert str(nodeinfolist['vnode2']) == result
Example #5
0
    def test_get_marathon_jobinfolist(self, _obtain_marathon_jobs):
        # Create patched output return values
        _obtain_marathon_jobs.return_value = read_file_as_json("test-files/marathon-jobs.json")
        job_created = mesos.lrms(MagicMock(mesos.lrms))._get_marathon_jobinfolist()[0]

        assert job_created.state == Request.ATTENDED
        assert job_created.job_id == '/babbo'
        assert job_created.job_nodes_ids == [u'vnode1']
        assert job_created.resources.taskcount == 1
        assert job_created.resources.maxtaskspernode == 1
        assert job_created.resources.resources.slots == 1.0
        assert job_created.resources.resources.memory == 16777216
        assert job_created.resources.resources.requests == ['"default" in queues']
Example #6
0
    def test_get_chronos_jobinfolist(self, _obtain_chronos_jobs, _obtain_mesos_jobs,
                                     _obtain_mesos_nodes, _obtain_chronos_job_state):
        # Create patched output return values
        _obtain_chronos_jobs.return_value = read_file_as_json("test-files/chronos-jobs.json")
        _obtain_mesos_jobs.return_value = read_file_as_json("test-files/mesos-master-tasks.json")
        _obtain_mesos_nodes.return_value = read_file_as_json("test-files/mesos-master-slaves.json")
        _obtain_chronos_job_state.return_value = Request.ATTENDED

        job_created = mesos.lrms(MagicMock(mesos.lrms))._get_chronos_jobinfolist()[0]

        # Check the resources and jobs created
        assert job_created.state == Request.ATTENDED
        assert job_created.job_id == 'dockerjob'
        assert job_created.job_nodes_ids == [u'10.0.0.84', u'10.0.0.84', u'10.0.0.84']
        assert job_created.resources.taskcount == 1
        assert job_created.resources.maxtaskspernode == 1
        assert job_created.resources.resources.slots == 0.5
        assert job_created.resources.resources.memory == 268435456
        assert job_created.resources.resources.requests == ['"default" in queues']
Example #7
0
 def test_obtain_cpu_mem_used(self, mock_obtain_mesos_jobs):
     mesos_tasks = read_file_as_json("test-files/mesos-master-tasks.json")
     mock_obtain_mesos_jobs.return_value = mesos_tasks
     assert mesos.lrms(MagicMock(mesos.lrms))._obtain_cpu_mem_used_in_mesos_node(
         "20150925-075030-1063856798-5050-3482-S0") == (0.5, 536870912)
Example #8
0
 def test_obtain_used_nodes(self, mock_obtain_mesos_jobs):
     mock_obtain_mesos_jobs.return_value = read_file_as_json("test-files/mesos-master-tasks.json")
     assert mesos.lrms(MagicMock(mesos.lrms))._obtain_mesos_used_nodes() == [
         '20150925-075030-1063856798-5050-3482-S0']
Example #9
0
 def test_obtain_mesos_state(self, mock_curl_command):
     mock_curl_command.return_value = read_file_as_json("test-files/mesos-state.json")
     mesos.lrms(MagicMock(mesos.lrms))._obtain_mesos_state()
     command = mock_curl_command.call_args[0][0]
     assert command == '/usr/bin/curl -L -X GET http://mesosserverpublic:5050/master/state.json'
Example #10
0
 def test_obtain_marathon_jobs(self, curl_command):
     curl_command.return_value = "test_output"
     assert mesos.lrms(MagicMock(mesos.lrms))._obtain_marathon_jobs() == "test_output"
Example #11
0
 def test_obtain_chronos_job_state_pending(self, mock_curl_command):
     mock_curl_command.return_value = read_file_as_string("test-files/chronos-state.json")
     assert mesos.lrms(MagicMock(mesos.lrms))._obtain_chronos_job_state('SAMPLE_JOB1') == Request.PENDING
Example #12
0
 def test_obtain_chronos_job_state_attended(self, mock_curl_command):
     mock_curl_command.return_value = read_file_as_string("test-files/chronos-state.json")
     assert mesos.lrms(MagicMock(mesos.lrms))._obtain_chronos_job_state('Infinite') == Request.ATTENDED
Example #13
0
 def test_obtain_chronos_jobs(self, mock_curl_command):
     mock_curl_command.return_value = "test_output"
     assert mesos.lrms(MagicMock(mesos.lrms))._obtain_chronos_jobs() == "test_output"
Example #14
0
 def test_obtain_chronosjob_node(self, _obtain_mesos_jobs, _obtain_mesos_nodes):
     _obtain_mesos_jobs.return_value = read_file_as_json("test-files/mesos-master-tasks.json")
     _obtain_mesos_nodes.return_value = read_file_as_json("test-files/mesos-master-slaves.json")
     assert mesos.lrms(MagicMock(mesos.lrms))._obtain_chronos_jobs_nodes(
         'dockerjob') == [u'10.0.0.84', u'10.0.0.84', u'10.0.0.84']