Beispiel #1
0
 def setUp(self):
     """
     Create a :obj:`MimicCore` with :obj:`RackConnectV3` as the only plugin
     """
     super(RackConnectTestMixin, self).setUp()
     self.rcv3 = RackConnectV3()
     self.helper = APIMockHelper(self, [self.rcv3])
     self.pool_id = self.get_lb_ids()[0][0]
Beispiel #2
0
 def setUp(self):
     """
     Test initialization.
     """
     helper = APIMockHelper(self, [HeatApi()])
     self.root = helper.root
     self.uri = helper.uri
Beispiel #3
0
    def test_get_flavor_list_with_OnMetal(self):
        """
        Test to verify :func:`get_flavor_list` on ``GET /v2.0/<tenant_id>/flavors``
        """
        nova_api = NovaApi(['IAD'])
        self.helper = APIMockHelper(self, [nova_api])
        self.root = self.helper.root
        self.uri = self.helper.uri
        get_flavor_list_response_body = self.get_server_flavor('/flavors')
        flavor_list = get_flavor_list_response_body['flavors']
        self.assertTrue(len(flavor_list) == 38)
        for flavor in flavor_list:
            if 'onmetal' in flavor['id']:
                self.assertTrue('onmetal' in flavor['id'])
                self.assertEqual(
                    sorted(flavor.keys()),
                    sorted(['id', 'name', 'links']))

        get_flavor_list_response_body = self.get_server_flavor('/flavors/detail')
        flavor_list = get_flavor_list_response_body['flavors']
        self.assertTrue(len(flavor_list) == 38)
        for flavor in flavor_list:
            if 'onmetal' in flavor['id']:
                self.assertEqual('onmetal_flavor',
                                 flavor['OS-FLV-WITH-EXT-SPECS:extra_specs']['policy_class'])
                self.assertEqual(
                    sorted(flavor.keys()),
                    sorted(['id', 'name', 'links', 'ram', 'OS-FLV-WITH-EXT-SPECS:extra_specs',
                            'vcpus', 'swap', 'rxtx_factor', 'OS-FLV-EXT-DATA:ephemeral', 'disk']))
Beispiel #4
0
 def setUp(self):
     """
     Setup for glance tests
     """
     helper = APIMockHelper(self, [GlanceApi()])
     self.root = helper.root
     self.uri = helper.uri
Beispiel #5
0
    def setUp(self):
        """

        """
        neutron_api = NeutronApi(['DFW'])
        self.helper = APIMockHelper(self, [neutron_api])
        self.root = self.helper.root
        self.uri = self.helper.uri
 def setUp(self):
     self.eeapi_name = u"externalServiceName"
     self.eeapi = make_example_external_api(self,
                                            name=self.eeapi_name,
                                            set_enabled=True)
     self.helper = APIMockHelper(self, [self.eeapi])
     self.root = self.helper.root
     self.uri = self.helper.uri
Beispiel #7
0
 def setUp(self):
     """
     Initialize core and root
     """
     cinder_api = CinderApi(['DFW'])
     self.helper = APIMockHelper(self, [cinder_api])
     self.root = self.helper.root
     self.uri = self.helper.uri
 def setUp(self):
     """
     Create a :obj:`MimicCore` with :obj:`RackConnectV3` as the only plugin
     """
     super(RackConnectTestMixin, self).setUp()
     self.rcv3 = RackConnectV3()
     self.helper = APIMockHelper(self, [self.rcv3])
     self.pool_id = self.get_lb_ids()[0][0]
Beispiel #9
0
 def test_load_external_api(self):
     """
     Validate loading a valid external API object.
     """
     eeapi = make_example_external_api(self,
                                       name=self.eeapi_name,
                                       set_enabled=True)
     APIMockHelper(self, [eeapi])
Beispiel #10
0
 def setUp(self):
     """
     Create a :obj:`MimicCore` with :obj:`NovaApi` as the only plugin.
     """
     nova_api = NovaApi(['DFW'])
     self.helper = APIMockHelper(self, [nova_api])
     self.root = self.helper.root
     self.uri = self.helper.uri
Beispiel #11
0
 def setUp(self):
     """
     Create a :obj:`MimicCore` with :obj:`NovaApi` as the only plugin.
     """
     nova_api = NovaApi(["ORD"])
     self.helper = self.helper = APIMockHelper(
         self, [nova_api, NovaControlApi(nova_api=nova_api)])
     self.root = self.helper.root
     self.uri = self.helper.uri
Beispiel #12
0
 def setUp(self):
     """
     Create a :obj:`MimicCore` with :obj:`NovaApi` as the only plugin,
     and create a server
     """
     helper = APIMockHelper(self, [NovaApi(["ORD", "MIMIC"])])
     self.root = helper.root
     self.uri = helper.uri
     self.helper = helper
Beispiel #13
0
    def test_same_tenant_different_regions(self):
        """
        Creating an LB for a tenant in one different regions should create it
        in another region for that tenant.
        """
        helper = APIMockHelper(self,
                               [LoadBalancerApi(regions=["ORD", "DFW"])])
        self._create_loadbalancer(api_helper=helper)

        list_lb_response, list_lb_response_body = self.successResultOf(
            request_with_content(
                self, helper.root, "GET",
                helper.nth_endpoint_public(1) + "/loadbalancers"))

        self.assertEqual(list_lb_response.code, 200)

        list_lb_response_body = json.loads(list_lb_response_body)
        self.assertEqual(list_lb_response_body, {"loadBalancers": []})
Beispiel #14
0
 def setUp(self):
     """
     Create a MimicCore with CloudFeeds support as the only plugin.
     """
     cf_api = CloudFeedsApi()
     self.helper = APIMockHelper(
         self, [cf_api, CloudFeedsControlApi(cf_api=cf_api)])
     self.root = self.helper.root
     self.uri = self.helper.uri
     self.ctrl_uri = self.helper.auth.get_service_endpoint(
         "cloudFeedsControl", "ORD")
Beispiel #15
0
 def test_different_regions_same_tenant_different_pools(self):
     """
     The same tenant has different pools in different regions, default of 1
     pool in each.
     """
     self.rcv3 = RackConnectV3(regions=["ORD", "DFW"])
     self.helper = APIMockHelper(self, [self.rcv3])
     lb_ids = self.get_lb_ids()
     self.assertEqual(1, len(lb_ids[0]))
     self.assertEqual(1, len(lb_ids[1]))
     self.assertNotEqual(set(lb_ids[0]), set(lb_ids[1]))
Beispiel #16
0
 def test_default_multiple_pools(self):
     """
     If ``default_pools`` is passed to :class:`RackConnectV3`, multiple
     load balancer pools will be created per tenant per region
     """
     self.rcv3 = RackConnectV3(regions=["ORD", "DFW"], default_pools=2)
     self.helper = APIMockHelper(self, [self.rcv3])
     lb_ids = self.get_lb_ids()
     self.assertEqual(2, len(lb_ids[0]))
     self.assertEqual(2, len(lb_ids[1]))
     self.assertNotEqual(set(lb_ids[0]), set(lb_ids[1]))
Beispiel #17
0
 def setUp(self):
     """
     Create a :obj:`MimicCore` with :obj:`NovaApi` as the only plugin,
     and create a server
     """
     nova_api = NovaApi(["ORD", "MIMIC"])
     nova_control_api = NovaControlApi(nova_api=nova_api)
     helper = APIMockHelper(self, [nova_api, nova_control_api])
     self.nova_control_endpoint = helper.auth.get_service_endpoint(
         "cloudServersBehavior", "ORD")
     self.root = helper.root
     self.uri = helper.uri
     self.helper = helper
Beispiel #18
0
    def test_service_with_region_external(self):
        """
        Validate that an external service does not provide an internal
        service resource.
        """
        eeapi = make_example_external_api(self,
                                          name=self.eeapi_name,
                                          set_enabled=True)
        helper = APIMockHelper(self, [eeapi])
        core = helper.core

        self.assertIsNone(
            core.service_with_region(u"EXTERNAL", u"some-region-name",
                                     u"http://some/random/prefix"))
Beispiel #19
0
 def setUp(self):
     """
     Create a :obj:`MimicCore` with :obj:`NovaApi` as the only plugin
     """
     nova_api = NovaApi(["ORD", "MIMIC"])
     self.helper = APIMockHelper(
         self, [nova_api, NovaControlApi(nova_api=nova_api)])
     self.root = self.helper.root
     self.clock = self.helper.clock
     self.uri = self.helper.uri
     self.create_keypair_response, self.create_keypair_response_body = (
         self.create_keypair())
     self.keypair_name = self.create_keypair_response_body['keypair'][
         'name']
Beispiel #20
0
class RackConnectTestMixin(object):

    """
    Mixin object that provides some nice utilities
    """

    def setUp(self):
        """
        Create a :obj:`MimicCore` with :obj:`RackConnectV3` as the only plugin
        """
        super(RackConnectTestMixin, self).setUp()
        self.rcv3 = RackConnectV3()
        self.helper = APIMockHelper(self, [self.rcv3])
        self.pool_id = self.get_lb_ids()[0][0]

    def get_lb_ids(self):
        """
        Helper function to get the load balancer ids per region
        """
        _, resp_jsons = zip(
            *[
                self.successResultOf(
                    json_request(
                        self,
                        self.helper.root,
                        "GET",
                        self.helper.get_service_endpoint("rackconnect", region) + "/load_balancer_pools",
                    )
                )
                for region in self.rcv3.regions
            ]
        )

        lb_ids = [[lb["id"] for lb in lbs] for lbs in resp_jsons]
        return lb_ids

    def request_with_content(self, method, relative_uri, **kwargs):
        """
        Helper function that makes a request and gets the non-json content.
        """
        return request_with_content(self, self.helper.root, method, self.helper.uri + relative_uri, **kwargs)

    def json_request(self, method, relative_uri, **kwargs):
        """
        Helper function that makes a request and gets the json content.
        """
        return json_request(self, self.helper.root, method, self.helper.uri + relative_uri, **kwargs)
Beispiel #21
0
    def test_service_with_region_internal(self):
        """
        Validate that an external service does not provide an internal service
        resource.
        """
        iapi = make_example_internal_api(self)
        helper = APIMockHelper(self, [iapi])
        core = helper.core

        service_id = None
        for a_service_id in core._uuid_to_api_internal:
            if core._uuid_to_api_internal[a_service_id] == iapi:
                service_id = a_service_id

        resource = core.service_with_region(u"ORD", service_id,
                                            u"http://some/random/prefix")
        self.assertTrue(IResource.providedBy(resource))
Beispiel #22
0
    def test_uri_for_service(self):
        """
        Validate that the URI returned by uri_for_service returns the
        appropriate base URI.
        """
        iapi = make_example_internal_api(self)
        helper = APIMockHelper(self, [iapi])
        core = helper.core

        service_id = None
        for a_service_id in core._uuid_to_api_internal:
            if core._uuid_to_api_internal[a_service_id] == iapi:
                service_id = a_service_id

        base_uri = "http://some/random/prefix"

        uri = core.uri_for_service(u"ORD", service_id, base_uri)
        self.assertTrue(uri.startswith(base_uri + '/'))
Beispiel #23
0
 def setUp(self):
     """
     Setup MaasApi helper object & uri 'n stuff
     """
     helper = APIMockHelper(self, [MaasApi(["ORD"])])
     self.root = helper.root
     self.uri = helper.uri
     self.entity_id = self.getXobjectIDfromResponse(
         self.createEntity('ItsAnEntity'))
     self.check_id = self.getXobjectIDfromResponse(
         self.createCheck('ItsAcheck', self.entity_id))
     self.alarm_id = self.getXobjectIDfromResponse(
         self.createAlarm('ItsAnAlarm', self.entity_id, self.check_id))
     self.nt_id = self.getXobjectIDfromResponse(
         self.createNotification('ItsANotificationTarget'))
     self.np_id = self.getXobjectIDfromResponse(
         self.createNotificationPlan('ItsANotificationPlan'))
     self.sp_id = self.getXobjectIDfromResponse(
         self.createSuppression('ItsASuppression'))
    def test_external_api_no_service_resource(self):
        """
        Validate that an external API does not provide a Resource
        for Mimic to support that API within itself.
        """
        eeapi = make_example_external_api(self,
                                          name=self.eeapi_name,
                                          set_enabled=True)
        self.helper = APIMockHelper(self, [eeapi])
        self.core = self.helper.core

        # Find the UUID of the registered External API
        eeapi_id = None
        for uuid, api in self.core._uuid_to_api_external.items():
            eeapi_id = uuid

        self.assertIsNotNone(eeapi_id)

        self.assertIsNone(
            self.core.service_with_region("EXTERNAL", eeapi_id, "fakebaseuri"))
Beispiel #25
0
class RackConnectTestMixin(object):
    """
    Mixin object that provides some nice utilities
    """
    def setUp(self):
        """
        Create a :obj:`MimicCore` with :obj:`RackConnectV3` as the only plugin
        """
        super(RackConnectTestMixin, self).setUp()
        self.rcv3 = RackConnectV3()
        self.helper = APIMockHelper(self, [self.rcv3])
        self.pool_id = self.get_lb_ids()[0][0]

    def get_lb_ids(self):
        """
        Helper function to get the load balancer ids per region
        """
        _, resp_jsons = zip(*[
            self.successResultOf(
                json_request(
                    self, self.helper.root, b"GET",
                    self.helper.get_service_endpoint("rackconnect", region) +
                    "/load_balancer_pools")) for region in self.rcv3.regions
        ])

        lb_ids = [[lb['id'] for lb in lbs] for lbs in resp_jsons]
        return lb_ids

    def request_with_content(self, method, relative_uri, **kwargs):
        """
        Helper function that makes a request and gets the non-json content.
        """
        return request_with_content(self, self.helper.root, method,
                                    self.helper.uri + relative_uri, **kwargs)

    def json_request(self, method, relative_uri, **kwargs):
        """
        Helper function that makes a request and gets the json content.
        """
        return json_request(self, self.helper.root, method,
                            self.helper.uri + relative_uri, **kwargs)
    def setUp(self):
        self.eeapi_name = u"externalServiceName"
        self.eeapi_template_id = u"uuid-endpoint-template"
        self.eeapi_template = exampleEndpointTemplate(
            name=self.eeapi_name, endpoint_uuid=self.eeapi_template_id)
        self.eeapi = make_example_external_api(
            self,
            name=self.eeapi_name,
            endpoint_templates=[self.eeapi_template],
            set_enabled=False)
        self.helper = APIMockHelper(self, [make_example_internal_api(self)])
        self.core = self.helper.core
        self.root = self.helper.root
        self.uri = self.helper.uri

        self.tenant_enabled_for = u"tenantWithApi"
        self.tenant_enabled_for_password = "******"
        self.tenant_data = TenantAuthentication(
            self, self.root, self.tenant_enabled_for,
            self.tenant_enabled_for_password)
        self.eeapi.enable_endpoint_for_tenant(self.tenant_data.get_tenant_id(),
                                              self.eeapi_template_id)
        self.core.add_api(self.eeapi)
Beispiel #27
0
 def setUp(self):
     """
     Create a :obj:`MimicCore` with :obj:`NovaApi` as the only plugin,
     and create a server
     """
     helper = APIMockHelper(self, [NovaApi(["ORD", "MIMIC"])])
     self.root = helper.root
     self.uri = helper.uri
     self.server_name = 'test_server'
     create_server = request(
         self, self.root, "POST", self.uri + '/servers',
         json.dumps({
             "server": {
                 "name": self.server_name,
                 "imageRef": "test-image",
                 "flavorRef": "test-flavor"
             }
         }))
     self.create_server_response = self.successResultOf(create_server)
     self.create_server_response_body = self.successResultOf(
         treq.json_content(self.create_server_response))
     self.server_id = self.create_server_response_body['server']['id']
     self.nth_endpoint_public = helper.nth_endpoint_public
Beispiel #28
0
 def test_load_internal_api(self):
     """
     Validate loading a valid internal API object.
     """
     APIMockHelper(self, [make_example_internal_api(self)])