Exemple #1
0
class ComputeClientRoutes(TestCase):
    def setUp(self):
        self.server = ServerThread(app)
        self.server.start()
        self.oci_config = get_oci_config()
        self.compute_cli = ComputeClient(
            config=self.oci_config["config"],
            service_endpoint="http://localhost:12000")
        self.compute_cli_composite_op = ComputeClientCompositeOperations(
            self.compute_cli)

        self.test_instance = create_instance(
            self.oci_config["compartment_id"],
            self.compute_cli_composite_op,
            "dummy-instance",
        )

    def test_terminate_instance(self):
        response: Response = self.compute_cli.terminate_instance(
            self.test_instance.id)
        self.assertEqual(response.status, 204)

        sleep(5)

        with self.assertRaises(ServiceError) as e:
            self.compute_cli.get_instance(self.test_instance.id)
            self.assertEqual(e.exception.status, 404)

    def test_terminate_non_existent_instance(self):
        with self.assertRaises(ServiceError) as e:
            self.compute_cli.get_instance("non_existent_instance")
            self.assertEqual(e.exception.status, 404)

    def tearDown(self):
        self.server.shutdown()
 def setUp(self):
     self.server = ServerThread(app)
     self.server.start()
     self.oci_config = get_oci_config()
     self.compute_cli = ComputeClient(
         config=self.oci_config["config"],
         service_endpoint="http://localhost:12000")
     self.compute_cli_composite_op = ComputeClientCompositeOperations(
         self.compute_cli)
     self.created_instances = []
class ComputeClientRoutes(TestCase):
    def setUp(self):
        self.server = ServerThread(app)
        self.server.start()
        self.oci_config = get_oci_config()
        self.compute_cli = ComputeClient(
            config=self.oci_config["config"],
            service_endpoint="http://localhost:12000")
        self.compute_cli_composite_op = ComputeClientCompositeOperations(
            self.compute_cli)

        self.test_instance = create_instance(
            self.oci_config["compartment_id"],
            self.compute_cli_composite_op,
            "dummy-instance",
        )

    def test_list_instances_without_params(self):
        response: Response = self.compute_cli.list_instances(
            self.oci_config["compartment_id"])

        self.assertEqual(response.status, 200)
        self.assertIsInstance(response.data, list)
        self.assertEqual(len(response.data), 1)

    def test_list_instances_with_params(self):
        response: Response = self.compute_cli.list_instances(
            self.oci_config["compartment_id"], display_name="dummy-instance")

        self.assertEqual(response.status, 200)
        self.assertIsInstance(response.data, list)
        self.assertEqual(len(response.data), 1)

        instances: List[Instance] = response.data
        test_instance = instances[0]

        self.assertEqual(test_instance.display_name,
                         self.test_instance.display_name)

        response: Response = self.compute_cli.list_instances(
            self.oci_config["compartment_id"], display_name="oopsss")

        self.assertEqual(response.status, 200)
        self.assertIsInstance(response.data, list)
        self.assertEqual(len(response.data), 0)

    def tearDown(self):
        terminate_instance(self.test_instance.id, self.compute_cli)
        self.server.shutdown()
class ComputeClientRoutes(TestCase):
    def setUp(self):
        self.server = ServerThread(app)
        self.server.start()
        self.oci_config = get_oci_config()
        self.compute_cli = ComputeClient(
            config=self.oci_config["config"],
            service_endpoint="http://localhost:12000")
        self.compute_cli_composite_op = ComputeClientCompositeOperations(
            self.compute_cli)

        self.test_instance = create_instance(
            self.oci_config["compartment_id"],
            self.compute_cli_composite_op,
            "dummy-instance",
        )

    def test_perform_action(self):
        response: Response = self.compute_cli.list_instances(
            self.oci_config["compartment_id"], display_name="dummy-instance")
        instances: List[Instance] = response.data
        test_instance = instances[0]

        for action in list(InstanceAction.__members__.keys()):
            response: Response = self.compute_cli.instance_action(
                test_instance.id, action=action)

            assert response.status == 200
            assert response.data
            assert response.data.id == test_instance.id

    def test_perform_action_on_nonexistent_instance(self):
        with self.assertRaises(ServiceError) as e:
            self.compute_cli.instance_action("non_existent_instance",
                                             action="RESET")
            self.assertEqual(e.exception.status, 404)

    def test_perform_invalid_action(self):
        with self.assertRaises(ServiceError) as e:
            self.compute_cli.instance_action("dummy-instance",
                                             action="CRAZY_DUDE")
            self.assertEqual(e.exception.status, 404)

    def tearDown(self):
        terminate_instance(self.test_instance.id, self.compute_cli)
        self.server.shutdown()
class ComputeClientLaunchInstance(TestCase):
    def setUp(self):
        self.server = ServerThread(app)
        self.server.start()
        self.oci_config = get_oci_config()
        self.compute_cli = ComputeClient(
            config=self.oci_config["config"],
            service_endpoint="http://localhost:12000")
        self.compute_cli_composite_op = ComputeClientCompositeOperations(
            self.compute_cli)
        self.created_instances = []

    def test_launch_instance(self):
        launch_instance_details = LaunchInstanceDetails(
            availability_domain="utiT:SA-SAOPAULO-1-AD-1",
            compartment_id=self.oci_config["compartment_id"],
            shape="VM.Standard.E3.Flex",
            display_name="dummy-instance",
        )
        response: Response = (
            self.compute_cli_composite_op.launch_instance_and_wait_for_state(
                launch_instance_details,
                wait_for_states=[Instance.LIFECYCLE_STATE_RUNNING],
            ))

        self.assertEqual(response.status, 200)
        self.assertIsInstance(response.data, Instance)

        instance: Instance = response.data
        self.created_instances.append(instance)

        self.assertEqual(instance.availability_domain,
                         "utiT:SA-SAOPAULO-1-AD-1")
        self.assertEqual(instance.compartment_id,
                         self.oci_config["compartment_id"])
        self.assertEqual(instance.shape, "VM.Standard.E3.Flex")
        self.assertEqual(instance.display_name, "dummy-instance")

    def test_launch_instance_bad_requests(self):
        wrong_launch_instance_details = [
            LaunchInstanceDetails(
                availability_domain="utiT:SA-SAOPAULO-1-AD-1",
                compartment_id=self.oci_config["compartment_id"],
            ),
            LaunchInstanceDetails(
                availability_domain="utiT:SA-SAOPAULO-1-AD-1",
                shape="VM.Standard.E3.Flex",
            ),
            LaunchInstanceDetails(
                compartment_id=self.oci_config["compartment_id"],
                shape="VM.Standard.E3.Flex",
            ),
        ]

        for launch_instance_details in wrong_launch_instance_details:
            with self.assertRaises(ServiceError) as e:
                self.compute_cli_composite_op.launch_instance_and_wait_for_state(
                    launch_instance_details,
                    wait_for_states=[Instance.LIFECYCLE_STATE_RUNNING],
                )

                self.assertEqual(e.exception.status == 400)

    def tearDown(self):
        for instance in self.created_instances:
            terminate_instance(instance.id, self.compute_cli)

        self.server.shutdown()