예제 #1
0
 def setUp(self):
     super(BaseOpenStackTest, self).setUp()
     self.tenant_category = marketplace_factories.CategoryFactory(
         title='Tenant', default_tenant_category=True)
     self.instance_category = marketplace_factories.CategoryFactory(
         title='Instance', default_vm_category=True)
     self.volume_category = marketplace_factories.CategoryFactory(
         title='Volume', default_volume_category=True)
예제 #2
0
    def test_import_instances_and_volumes_if_tenant_has_been_imported(
            self, mock_tasks):
        marketplace_factories.CategoryFactory(default_vm_category=True)
        marketplace_factories.CategoryFactory(default_volume_category=True)
        response = self.import_tenant()

        self.assertEquals(response.status_code, status.HTTP_201_CREATED,
                          response.data)
        mock_tasks.import_instances_and_volumes_of_tenant.delay.assert_called_once(
        )
예제 #3
0
    def setUp(self):
        super(BaseOpenStackTest, self).setUp()
        self.tenant_category = marketplace_factories.CategoryFactory(
            title='Tenant')
        self.instance_category = marketplace_factories.CategoryFactory(
            title='Instance')
        self.volume_category = marketplace_factories.CategoryFactory(
            title='Volume')

        self.decorator = override_plugin_settings(
            TENANT_CATEGORY_UUID=self.tenant_category.uuid,
            INSTANCE_CATEGORY_UUID=self.instance_category.uuid,
            VOLUME_CATEGORY_UUID=self.volume_category.uuid,
        )
        self.decorator.enable()
예제 #4
0
    def test_create_missing_support_offerings(self):
        offering = support_factories.OfferingFactory()
        category = marketplace_factories.CategoryFactory()
        customer = structure_factories.CustomerFactory()

        marketplace_support_utils.init_offerings_and_resources(category, customer)
        self.assertTrue(marketplace_models.Resource.objects.filter(scope=offering, project=offering.project).exists())
예제 #5
0
 def setUp(self):
     self.fixture = fixtures.MarketplaceFixture()
     self.offering = self.fixture.offering
     self.offering.state = models.Offering.States.ACTIVE
     self.offering.save()
     self.category = self.offering.category
     self.customer = self.offering.customer
     self.url = factories.CategoryFactory.get_list_url()
     factories.CategoryFactory()
예제 #6
0
    def test_create_missing_support_offerings_with_offering_plan(self):
        offering = support_factories.OfferingFactory()
        category = marketplace_factories.CategoryFactory()
        customer = structure_factories.CustomerFactory()
        offering_plan = support_factories.OfferingPlanFactory(template=offering.template,
                                                              unit_price=offering.unit_price)

        marketplace_support_utils.init_offerings_and_resources(category, customer)
        self.assertTrue(marketplace_models.Plan.objects.filter(scope=offering_plan).exists())
        self.assertEqual(marketplace_models.Plan.objects.count(), 1)
        self.assertTrue(marketplace_models.Resource.objects.filter(scope=offering).exists())
예제 #7
0
    def test_create_slurm_package(self):
        fixture = structure_fixtures.ProjectFixture()
        url = marketplace_factories.OfferingFactory.get_list_url()
        self.client.force_authenticate(fixture.staff)
        category = marketplace_factories.CategoryFactory()

        payload = {
            'name':
            'offering',
            'type':
            PLUGIN_NAME,
            'category':
            marketplace_factories.CategoryFactory.get_url(category=category),
            'customer':
            structure_factories.CustomerFactory.get_url(
                customer=fixture.customer),
            'service_attributes': {
                'batch_service': 'SLURM',
                'hostname': 'example.com',
                'username': '******',
                'port': 8888,
                'gateway': 'gw.example.com',
                'use_sudo': 'true',
                'default_account': 'TEST',
            },
            'plans': [{
                'name': 'default',
                'description': 'default plan',
                'unit': UnitPriceMixin.Units.QUANTITY,
                'unit_price': 100,
                'prices': {
                    'cpu': 10,
                    'gpu': 100,
                    'ram': 1000,
                },
            }]
        }
        with mock.patch(
                'waldur_core.structure.models.ServiceSettings.get_backend'):
            response = self.client.post(url, payload)
        self.assertEqual(response.status_code, status.HTTP_201_CREATED,
                         response.data)

        package = slurm_invoices_models.SlurmPackage.objects.last()
        self.assertEqual(package.cpu_price, 10)
        self.assertEqual(package.gpu_price, 100)
        self.assertEqual(package.ram_price, 1000)
예제 #8
0
    def test_create_missing_support_offering_templates(self):
        offering_template = support_factories.OfferingTemplateFactory()
        category = marketplace_factories.CategoryFactory()
        customer = structure_factories.CustomerFactory()

        marketplace_support_utils.init_offerings_and_resources(
            category, customer)
        self.assertTrue(
            marketplace_models.Offering.objects.filter(
                scope=offering_template).exists())
        self.assertTrue(
            marketplace_models.Offering.objects.filter(
                scope=offering_template).count(), 1)
        marketplace_support_utils.init_offerings_and_resources(
            category, customer)
        self.assertTrue(
            marketplace_models.Offering.objects.filter(
                scope=offering_template).count(), 1)
예제 #9
0
    def setUp(self):
        self.fixture = structure_fixtures.ProjectFixture()
        self.customer = self.fixture.customer
        self.project = self.fixture.project

        self.category = factories.CategoryFactory()
        self.category_component = factories.CategoryComponentFactory(
            category=self.category)

        self.offering = factories.OfferingFactory(
            category=self.category,
            type=TENANT_TYPE,
            state=models.Offering.States.ACTIVE,
        )
        self.offering_component = factories.OfferingComponentFactory(
            offering=self.offering,
            parent=self.category_component,
            type='cores',
            billing_type=models.OfferingComponent.BillingTypes.LIMIT,
        )
예제 #10
0
    def test_create_slurm_package(self):
        fixture = structure_fixtures.ProjectFixture()
        url = marketplace_factories.OfferingFactory.get_list_url()
        self.client.force_authenticate(fixture.staff)
        service_settings = structure_factories.ServiceSettingsFactory(
            type=SlurmConfig.service_name)
        category = marketplace_factories.CategoryFactory()

        payload = {
            'name':
            'offering',
            'type':
            PLUGIN_NAME,
            'scope':
            structure_factories.ServiceSettingsFactory.get_url(
                settings=service_settings),
            'category':
            marketplace_factories.CategoryFactory.get_url(category=category),
            'customer':
            structure_factories.CustomerFactory.get_url(
                customer=fixture.customer),
            'plans': [{
                'name': 'default',
                'description': 'default plan',
                'unit': UnitPriceMixin.Units.QUANTITY,
                'unit_price': 100,
                'prices': {
                    'cpu': 10,
                    'gpu': 100,
                    'ram': 1000,
                },
            }]
        }
        response = self.client.post(url, payload)
        self.assertEqual(response.status_code, status.HTTP_201_CREATED)

        package = slurm_invoices_models.SlurmPackage.objects.last()
        self.assertEqual(package.service_settings, service_settings)
        self.assertEqual(package.cpu_price, 10)
        self.assertEqual(package.gpu_price, 100)
        self.assertEqual(package.ram_price, 1000)
예제 #11
0
 def setUp(self):
     super(AllocationImportTest, self).setUp()
     self.category = marketplace_factories.CategoryFactory(title='SLURM')
     self.decorator = override_plugin_settings(
         CATEGORY_UUID=self.category.uuid.hex, )
     self.decorator.enable()