예제 #1
0
 def setUp(self):
     fixture = package_fixtures.OpenStackFixture()
     offering = marketplace_factories.OfferingFactory(
         type=PACKAGE_TYPE, scope=fixture.openstack_service_settings
     )
     create_offering_components(offering)
     for name in 'Basic', 'Advanced':
         plan = marketplace_factories.PlanFactory(offering=offering, name=name)
         prices = {
             CORES_TYPE: 1,
             RAM_TYPE: 0.1,
             STORAGE_TYPE: 0.01,
         }
         for key, value in prices.items():
             component = marketplace_models.OfferingComponent.objects.get(
                 offering=offering, type=key,
             )
             marketplace_models.PlanComponent.objects.create(
                 plan=plan, component=component, price=value,
             )
         resource = marketplace_factories.ResourceFactory(
             offering=offering, plan=plan,
         )
         marketplace_factories.OrderItemFactory(
             offering=offering, plan=plan, resource=resource,
         )
     self.offering = offering
예제 #2
0
 def setUp(self):
     super(VpcExternalFilterTest, self).setUp()
     self.fixture = package_fixtures.OpenStackFixture()
     self.offering = marketplace_factories.OfferingFactory(
         category=self.tenant_category
     )
     self.url = marketplace_factories.OfferingFactory.get_list_url()
예제 #3
0
    def test_template_for_plan_is_created(self):
        fixture = package_fixtures.OpenStackFixture()
        offering = marketplace_factories.OfferingFactory(
            type=PACKAGE_TYPE, scope=fixture.openstack_service_settings)
        plan = marketplace_factories.PlanFactory(offering=offering)
        ram_component = marketplace_models.OfferingComponent.objects.create(
            offering=offering,
            type=RAM_TYPE,
        )
        marketplace_models.PlanComponent.objects.create(
            plan=plan,
            component=ram_component,
            amount=20,
            price=10,
        )

        cores_component = marketplace_models.OfferingComponent.objects.create(
            offering=offering,
            type=CORES_TYPE,
        )
        marketplace_models.PlanComponent.objects.create(
            plan=plan,
            component=cores_component,
            amount=10,
            price=3,
        )

        storage_component = marketplace_models.OfferingComponent.objects.create(
            offering=offering,
            type=STORAGE_TYPE,
        )
        marketplace_models.PlanComponent.objects.create(
            plan=plan,
            component=storage_component,
            amount=100,
            price=1,
        )
        plan.refresh_from_db()

        template = plan.scope
        self.assertTrue(isinstance(template, package_models.PackageTemplate))

        template_ram_component = template.components.get(type=RAM_TYPE)
        template_cores_component = template.components.get(type=CORES_TYPE)
        template_storage_component = template.components.get(type=STORAGE_TYPE)

        self.assertEqual(template_ram_component.amount, 20 * 1024)
        self.assertEqual(template_ram_component.price, 10.0 / 1024)

        self.assertEqual(template_cores_component.amount, 10)
        self.assertEqual(template_cores_component.price, 3)

        self.assertEqual(template_storage_component.amount, 100 * 1024)
        self.assertEqual(template_storage_component.price, 1.0 / 1024)
예제 #4
0
    def trigger_offering_creation(self):
        fixture = package_fixtures.OpenStackFixture()
        tenant = openstack_models.Tenant.objects.create(
            service_project_link=fixture.openstack_spl,
            state=openstack_models.Tenant.States.CREATING,
        )
        resource = marketplace_factories.ResourceFactory(scope=tenant)
        marketplace_factories.OrderItemFactory(resource=resource)

        tenant.set_ok()
        tenant.save()
        return tenant
예제 #5
0
    def test_offering_is_not_created_if_tenant_is_not_created_via_marketplace(
            self, offering_type):
        fixture = package_fixtures.OpenStackFixture()
        tenant = openstack_models.Tenant.objects.create(
            service_project_link=fixture.openstack_spl,
            state=openstack_models.Tenant.States.CREATING,
        )

        tenant.set_ok()
        tenant.save()

        self.assertRaises(ObjectDoesNotExist,
                          marketplace_models.Offering.objects.get,
                          type=offering_type)
예제 #6
0
    def test_when_plan_name_is_updated_template_is_updated(self):
        # Arrange
        fixture = package_fixtures.OpenStackFixture()
        offering = marketplace_factories.OfferingFactory(
            type=PACKAGE_TYPE, scope=fixture.openstack_service_settings)
        plan = marketplace_factories.PlanFactory(offering=offering)
        plan.refresh_from_db()

        # Act
        plan.name = 'Compute-intensive'
        plan.save()
        template = plan.scope

        # Assert
        self.assertEqual(template.name, plan.name)
예제 #7
0
    def test_when_plan_is_archived_template_is_updated(self):
        # Arrange
        fixture = package_fixtures.OpenStackFixture()
        offering = marketplace_factories.OfferingFactory(
            type=PACKAGE_TYPE, scope=fixture.openstack_service_settings)
        plan = marketplace_factories.PlanFactory(offering=offering)
        plan.refresh_from_db()

        # Act
        plan.archived = True
        plan.save()
        template = plan.scope

        # Assert
        self.assertTrue(template.archived)
예제 #8
0
    def test_template_for_plan_is_created(self):
        fixture = package_fixtures.OpenStackFixture()
        offering = marketplace_factories.OfferingFactory(
            type=PLUGIN_NAME, scope=fixture.openstack_service_settings)
        plan = marketplace_factories.PlanFactory(offering=offering)
        marketplace_models.PlanComponent.objects.create(
            plan=plan,
            type='ram',
            amount=10240,
            price=10,
        )
        plan.refresh_from_db()

        template = plan.scope
        self.assertTrue(isinstance(template, package_models.PackageTemplate))
        self.assertEqual(plan.components.get(type='ram').price, 10)
예제 #9
0
    def setUp(self):
        # Arrange
        super(StorageModeTest, self).setUp()
        fixture = package_fixtures.OpenStackFixture()
        tenant = fixture.openstack_tenant
        offering_component = marketplace_models.OfferingComponent.objects.create(
            offering=self.offering, type='gigabytes_gpfs')

        marketplace_models.PlanComponent.objects.create(
            component=offering_component,
            plan=self.plan,
            price=10,
        )

        self.resource.scope = tenant
        self.resource.save()
        tenant.set_quota_usage('storage', 30 * 1024)
        tenant.set_quota_usage('gigabytes_gpfs', 100 * 1024)