Esempio n. 1
0
 def test_delete_non_project_default_type(self):
     type = self._create_volume_type(self.ctxt, 'type1')
     db.project_default_volume_type_set(self.ctxt, fake.VOLUME_TYPE_ID,
                                        fake.PROJECT_ID)
     volume_types.destroy(self.ctxt, type.id)
     self.assertRaises(exception.VolumeTypeNotFound,
                       volume_types.get_by_name_or_id, self.ctxt, type.id)
Esempio n. 2
0
 def test_get_all_projects_by_default_type(self):
     db.project_default_volume_type_set(self.ctxt, fake.VOLUME_TYPE_ID,
                                        fake.PROJECT_ID)
     default_type = db.get_all_projects_with_default_type(
         self.ctxt, volume_type_id=fake.VOLUME_TYPE_ID)
     self.assertEqual(1, len(default_type))
     self.assertEqual(fake.PROJECT_ID, default_type[0].project_id)
Esempio n. 3
0
 def test_default_type_delete(self):
     db.project_default_volume_type_set(self.ctxt, fake.VOLUME_TYPE_ID,
                                        fake.PROJECT_ID)
     default_types = db.project_default_volume_type_get(self.ctxt)
     self.assertEqual(1, len(default_types))
     db.project_default_volume_type_unset(self.ctxt,
                                          default_types[0].project_id)
     default_types = db.project_default_volume_type_get(self.ctxt)
     self.assertEqual(0, len(default_types))
Esempio n. 4
0
 def test_default_type_get(self):
     db.project_default_volume_type_set(self.ctxt, fake.VOLUME_TYPE_ID,
                                        fake.PROJECT_ID)
     default_type = db.project_default_volume_type_get(
         self.ctxt, project_id=fake.PROJECT_ID)
     self.assertEqual(fake.PROJECT_ID, default_type.project_id)
     self.assertEqual(fake.VOLUME_TYPE_ID, default_type.volume_type_id)
     db.project_default_volume_type_unset(self.ctxt,
                                          default_type.project_id)
Esempio n. 5
0
    def test_default_type_update(self):
        default_type = db.project_default_volume_type_set(
            self.ctxt, fake.VOLUME_TYPE_ID, fake.PROJECT_ID)
        self.assertEqual(fake.PROJECT_ID, default_type.project_id)
        self.assertEqual(fake.VOLUME_TYPE_ID, default_type.volume_type_id)

        # update to type 2
        db.project_default_volume_type_set(self.ctxt, fake.VOLUME_TYPE2_ID,
                                           fake.PROJECT_ID)
        default_type = db.project_default_volume_type_get(
            self.ctxt, project_id=fake.PROJECT_ID)
        self.assertEqual(fake.PROJECT_ID, default_type.project_id)
        self.assertEqual(fake.VOLUME_TYPE2_ID, default_type.volume_type_id)

        # update to type 3
        db.project_default_volume_type_set(self.ctxt, fake.VOLUME_TYPE3_ID,
                                           fake.PROJECT_ID)
        default_type = db.project_default_volume_type_get(
            self.ctxt, project_id=fake.PROJECT_ID)
        self.assertEqual(fake.PROJECT_ID, default_type.project_id)
        self.assertEqual(fake.VOLUME_TYPE3_ID, default_type.volume_type_id)

        # back to original
        db.project_default_volume_type_set(self.ctxt, fake.VOLUME_TYPE_ID,
                                           fake.PROJECT_ID)
        default_type = db.project_default_volume_type_get(
            self.ctxt, project_id=fake.PROJECT_ID)
        self.assertEqual(fake.PROJECT_ID, default_type.project_id)
        self.assertEqual(fake.VOLUME_TYPE_ID, default_type.volume_type_id)

        db.project_default_volume_type_unset(self.ctxt,
                                             default_type.project_id)
Esempio n. 6
0
    def create_update(self, req, id, body):
        """Set a default volume type for the specified project."""
        context = req.environ['cinder.context']

        project_id = id
        volume_type_id = body['default_type']['volume_type']

        utils.validate_project_and_authorize(context, project_id,
                                             policy.CREATE_UPDATE_POLICY)
        try:
            volume_type_id = objects.VolumeType.get_by_name_or_id(
                context, volume_type_id).id

        except exception.VolumeTypeNotFound as e:
            raise exc.HTTPBadRequest(explanation=e.msg)

        default_type = db.project_default_volume_type_set(
            context, volume_type_id, project_id)

        return self._view_builder.create(default_type)
Esempio n. 7
0
 def test_cannot_delete_project_default_type(self):
     default_type = db.project_default_volume_type_set(
         self.ctxt, fake.VOLUME_TYPE_ID, fake.PROJECT_ID)
     self.assertRaises(exception.VolumeTypeDefaultDeletionError,
                       volume_types.destroy, self.ctxt,
                       default_type['volume_type_id'])