Esempio n. 1
0
    def test_dont_extract_empty_owner(self, mock_init):
        mock_init.return_value = None
        mesos = MesosUtil()

        env = ["CHRONOS_JOB_NAME=app1_process-orders",
               "CHRONOS_JOB_OWNER=",
               "MARATHON_APP_ID=/system/dd-agent"]

        tags = ['marathon_app:/system/dd-agent',
                'chronos_job:app1_process-orders']
        container = {'Config': {'Env': env}}

        self.assertEqual(sorted(tags), sorted(mesos._get_cacheable_tags(CO_ID, co=container)))
Esempio n. 2
0
    def test_extract_tags(self, mock_init):
        mock_init.return_value = None
        mesos = MesosUtil()

        env = ["CHRONOS_JOB_NAME=test-job",
               "MARATHON_APP_ID=/system/dd-agent",
               "MESOS_TASK_ID=system_dd-agent.dcc75b42-4b87-11e7-9a62-70b3d5800001"]

        tags = ['chronos_job:test-job', 'marathon_app:/system/dd-agent',
                'mesos_task:system_dd-agent.dcc75b42-4b87-11e7-9a62-70b3d5800001']

        container = {'Config': {'Env': env}}

        self.assertEqual(sorted(tags), sorted(mesos._get_cacheable_tags(CO_ID, co=container)))
Esempio n. 3
0
    def test_host_tags(self, mock_init, mock_get):
        mock_get.side_effect = [
            MockResponse({'version': '1.2.1'}, 200),
            MockResponse({'dcos_version': '1.9.0'}, 200),
            MockResponse({'version': '1.2.1'}, 200),
            MockResponse({'dcos_version': '1.9.0'}, 200),
            # _detect_agent might run twice if first MesosUtil instance, duplicating test data
            MockResponse({'version': '1.2.1'}, 200),
            MockResponse({'dcos_version': '1.9.0'}, 200),
        ]
        mock_init.return_value = None

        util = MesosUtil()
        util.__init__()
        tags = util.get_host_tags()

        self.assertEqual(['mesos_version:1.2.1', 'dcos_version:1.9.0'], tags)
Esempio n. 4
0
    def test_extract_tags(self, mock_init):
        mock_init.return_value = None
        mesos = MesosUtil()

        env = ["CHRONOS_JOB_NAME=app1_process-orders",
               "CHRONOS_JOB_OWNER=qa",
               "MARATHON_APP_ID=/system/dd-agent",
               "MESOS_TASK_ID=system_dd-agent.dcc75b42-4b87-11e7-9a62-70b3d5800001"]

        tags = ['marathon_app:/system/dd-agent',
                'chronos_job_owner:qa',
                'chronos_job:app1_process-orders']
        # Removed 'mesos_task:' because of high cardinality

        container = {'Config': {'Env': env}}

        self.assertEqual(sorted(tags), sorted(mesos._get_cacheable_tags(CO_ID, co=container)))
    def test_host_metadata(self, mock_init, mock_get):
        mock_get.side_effect = [
            MockResponse({'version': '1.2.1'}, 200),
            MockResponse({'dcos_version': '1.9.0'}, 200),
            MockResponse({'version': '1.2.1'}, 200),
            MockResponse({'dcos_version': '1.9.0'}, 200),
            # _detect_agent might run twice if first MesosUtil instance, duplicating test data
            MockResponse({'version': '1.2.1'}, 200),
            MockResponse({'dcos_version': '1.9.0'}, 200),
        ]
        mock_init.return_value = None

        util = MesosUtil()
        util.__init__()
        metadata = util.get_host_metadata()

        self.assertEqual({
            'mesos_version': '1.2.1',
            'dcos_version': '1.9.0'
        }, metadata)
    def test_extract_tags(self, mock_init):
        mock_init.return_value = None
        mesos = MesosUtil()

        env = [
            "CHRONOS_JOB_NAME=app1_process-orders", "CHRONOS_JOB_OWNER=qa",
            "MARATHON_APP_ID=/system/dd-agent",
            "MESOS_TASK_ID=system_dd-agent.dcc75b42-4b87-11e7-9a62-70b3d5800001"
        ]

        tags = [
            'marathon_app:/system/dd-agent', 'chronos_job_owner:qa',
            'chronos_job:app1_process-orders'
        ]
        # Removed 'mesos_task:' because of high cardinality

        container = {'Config': {'Env': env}}

        self.assertEqual(
            sorted(tags), sorted(mesos._get_cacheable_tags(CO_ID,
                                                           co=container)))
    def test_agents_detection(self, mock_init, mock_get):
        mock_get.side_effect = [
            MockResponse({}, 404),  # LIBPROCESS_IP fails
            MockResponse({'badfield': 'fail'}, 200),  # HOST is invalid reply
            MockResponse({'version': '1.2.1'}, 200),  # HOSTNAME is valid reply
            MockResponse({'dcos_version': '1.9.0'},
                         200),  # LIBPROCESS_IP works for DCOS
            # _detect_agent might run twice if first MesosUtil instance, duplicating test data
            MockResponse({}, 404),  # LIBPROCESS_IP fails
            MockResponse({'badfield': 'fail'}, 200),  # HOST is invalid reply
            MockResponse({'version': '1.2.1'}, 200),  # HOSTNAME is valid reply
            MockResponse({'dcos_version': '1.9.0'},
                         200),  # LIBPROCESS_IP works for DCOS
        ]
        mock_init.return_value = None

        mesos, dcos = MesosUtil()._detect_agents()
        self.assertEqual('http://c:5051/version', mesos)
        self.assertEqual('http://a:61001/system/health/v1', dcos)
Esempio n. 8
0
 def is_mesos():
     from utils.orchestrator import MesosUtil
     return MesosUtil.is_detected()
Esempio n. 9
0
 def is_mesos():
     from utils.orchestrator import MesosUtil
     return MesosUtil.is_detected()
Esempio n. 10
0
 def test_no_detect(self):
     self.assertFalse(MesosUtil.is_detected())
Esempio n. 11
0
 def test_detect(self):
     self.assertTrue(MesosUtil.is_detected())
 def test_no_detect(self):
     self.assertFalse(MesosUtil.is_detected())
 def test_detect(self):
     self.assertTrue(MesosUtil.is_detected())