예제 #1
0
 def create_package_template(self, component_price=10, component_amount=1):
     template = packages_factories.PackageTemplateFactory()
     template.components.update(
         price=component_price,
         amount=component_amount,
     )
     return template
    def extend_package(self, total_price):
        self.new_template = packages_factories.PackageTemplateFactory(
            service_settings=self.fixture.openstack_service_settings
        )
        component_price = (
            total_price / 31.0 / len(self.new_template.get_required_component_types())
        )
        for component_type in self.new_template.get_required_component_types():
            self.new_template.components.filter(type=component_type).update(
                price=component_price, amount=1
            )

        view = packages_views.OpenStackPackageViewSet.as_view({'post': 'change'})
        response = common_utils.create_request(
            view,
            self.fixture.owner,
            {'template': self.new_template.uuid.hex, 'package': self.package.uuid.hex,},
        )

        if response.status_code == status.HTTP_202_ACCEPTED:
            packages_utils.run_openstack_package_change_executor(
                self.package, self.new_template
            )

        return response
    def extend_package(self, total_price):
        self.new_template = packages_factories.PackageTemplateFactory(
            service_settings=self.fixture.openstack_service_settings)
        component_price = total_price / 31.0 / len(
            self.new_template.get_required_component_types())
        for component_type in self.new_template.get_required_component_types():
            self.new_template.components.filter(type=component_type).update(
                price=component_price, amount=1)

        self.client.force_authenticate(user=self.fixture.owner)
        response = self.client.post(
            packages_factories.OpenStackPackageFactory.get_list_url(
                action='change'),
            data={
                'template':
                packages_factories.PackageTemplateFactory.get_url(
                    self.new_template),
                'package':
                packages_factories.OpenStackPackageFactory.get_url(
                    self.package),
            })

        if response.status_code == status.HTTP_202_ACCEPTED:
            packages_utils.run_openstack_package_change_executor(
                self.package, self.new_template)

        return response
 def get_package_create_payload(self):
     spl = self.fixture.openstack_spl
     spl_url = packages_factories.OpenStackServiceProjectLinkFactory.get_url(spl)
     template = packages_factories.PackageTemplateFactory(service_settings=spl.service.settings)
     return {
         'service_project_link': spl_url,
         'name': 'test_package',
         'template': packages_factories.PackageTemplateFactory.get_url(template),
     }
예제 #5
0
 def test_missing_offerings_are_created(self):
     customer = structure_factories.CustomerFactory()
     category = marketplace_models.Category.objects.create(title='VPC')
     with override_marketplace_packages_settings(CUSTOMER_ID=customer.id,
                                                 CATEGORY_ID=category.id):
         template = package_factories.PackageTemplateFactory()
         marketplace_models.Offering.objects.all().delete()
         utils.create_missing_offerings()
         offering = marketplace_models.Offering.objects.get(
             scope=template.service_settings)
         self.assertEqual(template.service_settings.name, offering.name)
예제 #6
0
    def test_when_openstack_package_is_extended_project_total_is_updated(self):
        fixture = packages_fixtures.PackageFixture()
        package = fixture.openstack_package
        new_template = packages_factories.PackageTemplateFactory(
            service_settings=fixture.openstack_service_settings)

        view = packages_views.OpenStackPackageViewSet.as_view(
            {'post': 'change'})
        response = common_utils.create_request(view, fixture.owner, {
            'template': new_template.uuid.hex,
            'package': package.uuid.hex,
        })
        self.assertEqual(response.status_code, status.HTTP_202_ACCEPTED)
예제 #7
0
    def setUp(self):
        super(TenantUpdateTest, self).setUp()
        self.resource.state = marketplace_models.Resource.States.OK
        self.resource.save()

        self.new_template = package_factories.PackageTemplateFactory(
            service_settings=self.fixture.openstack_service_settings)
        self.new_plan = marketplace_factories.PlanFactory(
            offering=self.offering,
            scope=self.new_template,
        )
        self.order_item = marketplace_factories.OrderItemFactory(
            resource=self.resource,
            plan=self.new_plan,
            type=marketplace_models.RequestTypeMixin.Types.UPDATE,
        )
        self.package = self.fixture.openstack_package
    def test_when_openstack_package_is_extended_project_total_is_updated(self):
        fixture = packages_fixtures.PackageFixture()
        package = fixture.openstack_package
        new_template = packages_factories.PackageTemplateFactory(
            service_settings=fixture.openstack_service_settings)

        self.client.force_authenticate(user=fixture.owner)
        response = self.client.post(
            packages_factories.OpenStackPackageFactory.get_list_url(
                action='change'),
            data={
                'template':
                packages_factories.PackageTemplateFactory.get_url(
                    new_template),
                'package':
                packages_factories.OpenStackPackageFactory.get_url(package),
            })
        self.assertEqual(response.status_code, status.HTTP_202_ACCEPTED)