示例#1
0
 def test_external_with_append_args(self):
     config_dir_override = os.path.join(os.path.dirname(__file__), "conf")
     context = SmContext(SmApplication(config_dir_override), None, False,
                         False)
     context.kill_everything()
     server = smserverlogic.SmServer(
         SmApplication(config_dir_override, None))
     request = dict()
     request["testId"] = "foo"
     request["services"] = [{
         "serviceName": "TEST_ONE",
         "runFrom": "SNAPSHOT",
         "appendArgs": [";echo foo"]
     }]
     smserverlogic.SmStartRequest(server, request, True,
                                  False).process_request()
     self.assertIsNotNone(context.get_service("TEST_ONE").status())
     pattern = context.application.services["TEST_ONE"]["pattern"]
     processes = SmProcess.processes_matching(pattern)
     # stop does not currently work for extern
     # smserverlogic.SmStopRequest(SERVER, request).process_request()
     self.assertEqual(
         len(processes), 2
     )  #we expect two proecesses to be spawned because of the appended command
     self.assertTrue(";echo" in processes[0].args
                     or ";echo" in processes[1].args)
     context.kill_everything()
     self.assertEqual(context.get_service("TEST_ONE").status(), [])
示例#2
0
 def test_offline(self):
     config_dir_override = os.path.join(os.path.dirname(__file__), "conf")
     context = SmContext(SmApplication(config_dir_override), None, False,
                         False)
     context.kill_everything()
     server = smserverlogic.SmServer(
         SmApplication(config_dir_override, None))
     request = dict()
     request["testId"] = "foo"
     request["services"] = [{
         "serviceName": "TEST_ONE",
         "runFrom": "SNAPSHOT"
     }, {
         "serviceName": "DROPWIZARD_NEXUS_END_TO_END_TEST",
         "runFrom": "SNAPSHOT"
     }, {
         "serviceName": "PLAY_NEXUS_END_TO_END_TEST",
         "runFrom": "SNAPSHOT"
     }]
     smserverlogic.SmStartRequest(server, request, True,
                                  False).process_request()
     self.assertIsNotNone(context.get_service("TEST_ONE").status())
     # stop does not currently work for extern
     # smserverlogic.SmStopRequest(SERVER, request).process_request()
     context.kill_everything()
     self.assertEqual(context.get_service("TEST_ONE").status(), [])
     request["testId"] = "foo2"
     smserverlogic.SmStartRequest(server, request, True,
                                  True).process_request()
     self.assertIsNotNone(context.get_service("TEST_ONE").status())
     # stop does not currently work for extern
     #smserverlogic.SmStopRequest(SERVER, request).process_request()
     context.kill_everything()
     self.assertEqual(context.get_service("TEST_ONE").status(), [])
示例#3
0
    def test_offline(self):
        context = self.createContext()
        self.startFakeNexus()
        server = smserverlogic.SmServer(SmApplication(self.config_dir_override, None))
        request = dict()
        request["testId"] = "foo"
        request["services"] = [
            {"serviceName": "TEST_ONE", "runFrom": "SNAPSHOT"},
            {"serviceName": "DROPWIZARD_NEXUS_END_TO_END_TEST", "runFrom": "SNAPSHOT"},
            {"serviceName": "PLAY_NEXUS_END_TO_END_TEST", "runFrom": "SNAPSHOT"},
        ]
        smserverlogic.SmStartRequest(server, request, True, False, False, True).process_request()
        self.assertIsNotNone(context.get_service("TEST_ONE").status())
        # stop does not currently work for extern
        # smserverlogic.SmStopRequest(SERVER, request).process_request()
        context.kill_everything(True)
        self.assertEqual(context.get_service("TEST_ONE").status(), [])
        request["testId"] = "foo2"
        smserverlogic.SmStartRequest(server, request, True, True, False, True).process_request()

        self.waitForCondition(lambda: context.get_service("TEST_ONE").status() is not None, True)
        # stop does not currently work for extern
        # smserverlogic.SmStopRequest(SERVER, request).process_request()
        context.kill_everything(True)
        self.assertEqual(context.get_service("TEST_ONE").status(), [])
    def test_play_with_append_args(self):
        context = self.createContext()
        self.startFakeNexus()

        server = smserverlogic.SmServer(
            SmApplication(self.config_dir_override, None))
        request = dict()
        request["testId"] = "foo"
        request["services"] = [{
            "serviceName": "PLAY_NEXUS_END_TO_END_TEST",
            "runFrom": "SNAPSHOT",
            "appendArgs": ["-Dfoo=bar"]
        }]
        smserverlogic.SmStartRequest(server, request, True,
                                     False).process_request()

        self.waitForCondition(
            lambda: len(
                context.get_service("PLAY_NEXUS_END_TO_END_TEST").status()), 1)

        service = SmPlayService(context, "PLAY_NEXUS_END_TO_END_TEST")
        processes = SmProcess.processes_matching(service.pattern)
        self.assertEqual(len(processes), 1)
        self.assertTrue("-Dfoo=bar" in processes[0].args)

        context.kill_everything(True)
        self.assertEqual(
            context.get_service("PLAY_NEXUS_END_TO_END_TEST").status(), [])
示例#5
0
 def test_external_with_invalid_append_args(self):
     server = smserverlogic.SmServer(SmApplication(self.config_dir_override, None))
     request = dict()
     request["testId"] = "foo"
     request["services"] = [{"serviceName": "TEST_FOUR", "runFrom": "SNAPSHOT", "appendArgs": "2"}]
     with pytest.raises(BadRequestException):
         smserverlogic.SmStartRequest(server, request, True, False, False, True).process_request()
    def test_ensure_multiple_instances_of_a_service_can_be_started_from_server(
            self):
        context = self.createContext()
        server = smserverlogic.SmServer(
            SmApplication(self.config_dir_override, None))
        test_services = [{
            "serviceName": "TEST_ONE",
            "runFrom": "SNAPSHOT"
        }, {
            "serviceName": "DROPWIZARD_NEXUS_END_TO_END_TEST",
            "runFrom": "SNAPSHOT"
        }, {
            "serviceName": "PLAY_NEXUS_END_TO_END_TEST",
            "runFrom": "SNAPSHOT"
        }]

        self.startFakeNexus()

        first_request = dict()
        first_request["testId"] = "multiple-instance-unit-test-1"
        first_request["services"] = test_services
        smserverlogic.SmStartRequest(server, first_request, True,
                                     False).process_request()

        def single_service_started_successfully():
            if len(context.get_service("TEST_ONE").status()) != 1: return False
            if len(
                    context.get_service(
                        "DROPWIZARD_NEXUS_END_TO_END_TEST").status()) != 1:
                return False
            if len(context.get_service(
                    "PLAY_NEXUS_END_TO_END_TEST").status()) != 1:
                return False
            return True

        self.waitForCondition(single_service_started_successfully, True)

        second_request = dict()
        second_request["testId"] = "multiple-instance-unit-test-2"
        second_request["services"] = test_services
        smserverlogic.SmStartRequest(server, second_request, True,
                                     False).process_request()

        def multiple_services_started_successfully():
            if len(context.get_service("TEST_ONE").status()) != 2: return False
            if len(
                    context.get_service(
                        "DROPWIZARD_NEXUS_END_TO_END_TEST").status()) != 2:
                return False
            if len(context.get_service(
                    "PLAY_NEXUS_END_TO_END_TEST").status()) != 2:
                return False
            return True

        self.waitForCondition(multiple_services_started_successfully, True)

        # stop does not currently work for extern
        # smserverlogic.SmStopRequest(SERVER, request).process_request()
        context.kill_everything(True)
        self.assertEqual(context.get_service("TEST_ONE").status(), [])
示例#7
0
 def test_play_with_invalid_append_args(self):
     server = smserverlogic.SmServer(SmApplication(self.config_dir_override, None))
     request = dict()
     request["testId"] = "foo"
     request["services"] = [{"serviceName": "PLAY_NEXUS_END_TO_END_TEST", "runFrom": "SNAPSHOT", "appendArgs": "-Dshould=be-an-array"}]
     with pytest.raises(BadRequestException):
         smserverlogic.SmStartRequest(server, request, True, False, False).process_request()
示例#8
0
 def test_external_with_invalid_append_args(self):
     config_dir_override = os.path.join(os.path.dirname(__file__), "conf")
     context = SmContext(SmApplication(config_dir_override), None, False, False)
     context.kill_everything()
     server = smserverlogic.SmServer(SmApplication(config_dir_override, None))
     request = dict()
     request["testId"] = "foo"
     request["services"] = [{"serviceName": "TEST_ONE", "runFrom": "SNAPSHOT", "appendArgs": ";echo foo"}]
     with pytest.raises(BadRequestException):
         smserverlogic.SmStartRequest(server, request, True, False).process_request()
示例#9
0
    def test_external_with_append_args(self):
        context = self.createContext()
        server = smserverlogic.SmServer(SmApplication(self.config_dir_override, None))
        request = dict()
        request["testId"] = "foo"
        request["services"] = [{"serviceName": "TEST_FOUR", "runFrom": "SNAPSHOT", "appendArgs": ["2"]}]
        smserverlogic.SmStartRequest(server, request, True, False, False, True).process_request()
        self.assertIsNotNone(context.get_service("TEST_FOUR").status())
        pattern = context.application.services["TEST_FOUR"]["pattern"]

        self.waitForCondition(lambda: len(SmProcess.processes_matching(pattern)), 1)

        context.kill_everything(True)
        self.assertEqual(context.get_service("TEST_FOUR").status(), [])
示例#10
0
    def test_ensure_multiple_instances_of_a_service_can_be_started_from_server(self):
        config_dir_override = os.path.join(os.path.dirname(__file__), "conf")
        context = SmContext(SmApplication(config_dir_override), None, False, False)
        context.kill_everything()
        server = smserverlogic.SmServer(SmApplication(config_dir_override, None))

        # start fake nexus
        self.assertEqual(context.get_service("FAKE_NEXUS").status(), [])
        response1 = actions.start_one(context, "FAKE_NEXUS", False, True, False, None, port=None)
        self.assertTrue(response1)
        self.assertIsNotNone(context.get_service("FAKE_NEXUS").status())
        time.sleep(5)

        first_request = dict()
        first_request["testId"] = "multiple-instance-unit-test-1"
        first_request["services"] = [{"serviceName": "TEST_ONE", "runFrom": "SNAPSHOT"},
                                     {"serviceName": "DROPWIZARD_NEXUS_END_TO_END_TEST", "runFrom": "SNAPSHOT"},
                                     {"serviceName": "PLAY_NEXUS_END_TO_END_TEST", "runFrom": "SNAPSHOT"}]
        request = smserverlogic.SmStartRequest(server, first_request, True, False)
        request.process_request()

        time.sleep(5)
        self.assertEqual(len(context.get_service("TEST_ONE").status()), 1)
        self.assertEqual(len(context.get_service("DROPWIZARD_NEXUS_END_TO_END_TEST").status()), 1)
        self.assertEqual(len(context.get_service("PLAY_NEXUS_END_TO_END_TEST").status()), 1)

        second_request = dict()
        second_request["testId"] = "multiple-instance-unit-test-2"
        second_request["services"] = [{"serviceName": "TEST_ONE", "runFrom": "SNAPSHOT"},
                                      {"serviceName": "DROPWIZARD_NEXUS_END_TO_END_TEST", "runFrom": "SNAPSHOT"},
                                      {"serviceName": "PLAY_NEXUS_END_TO_END_TEST", "runFrom": "SNAPSHOT"}]
        smserverlogic.SmStartRequest(server, second_request, True, False).process_request()
        time.sleep(5)
        self.assertEqual(len(context.get_service("TEST_ONE").status()), 2)
        self.assertEqual(len(context.get_service("DROPWIZARD_NEXUS_END_TO_END_TEST").status()), 2)
        self.assertEqual(len(context.get_service("PLAY_NEXUS_END_TO_END_TEST").status()), 2)

        # stop does not currently work for extern
        # smserverlogic.SmStopRequest(SERVER, request).process_request()
        context.kill_everything()
        self.assertEqual(context.get_service("TEST_ONE").status(), [])
        context.kill("FAKE_NEXUS")
示例#11
0
    def test_play_with_append_args(self):
        config_dir_override = os.path.join(os.path.dirname(__file__), "conf")
        context = SmContext(SmApplication(config_dir_override), None, False,
                            False)
        context.kill_everything()

        # Start up fake nexus first
        response1 = actions.start_one(context,
                                      "FAKE_NEXUS",
                                      True,
                                      False,
                                      None,
                                      port=None)
        self.assertTrue(response1)
        self.assertIsNotNone(context.get_service("FAKE_NEXUS").status())
        time.sleep(5)

        server = smserverlogic.SmServer(
            SmApplication(config_dir_override, None))
        request = dict()
        request["testId"] = "foo"
        request["services"] = [{
            "serviceName": "PLAY_NEXUS_END_TO_END_TEST",
            "runFrom": "SNAPSHOT",
            "appendArgs": ["-Dfoo=bar"]
        }]
        smserverlogic.SmStartRequest(server, request, True,
                                     False).process_request()
        time.sleep(5)
        self.assertEqual(
            len(context.get_service("PLAY_NEXUS_END_TO_END_TEST").status()), 1)
        service = SmPlayService(context, "PLAY_NEXUS_END_TO_END_TEST")
        processes = SmProcess.processes_matching(service.pattern)
        self.assertEqual(len(processes), 1)
        self.assertTrue("-Dfoo=bar" in processes[0].args)
        context.kill_everything()
        self.assertEqual(context.get_service("TEST_ONE").status(), [])