Esempio n. 1
0
    def obj_load_attr(self, attrname):
        if attrname not in self.OPTIONAL_FIELDS:
            raise exception.ObjectActionError(
                action='obj_load_attr',
                reason=_('attribute %s not lazy-loadable') % attrname)
        if not self._context:
            raise exception.OrphanedObjectError(method='obj_load_attr',
                                                objtype=self.obj_name())

        if attrname == 'extra_specs':
            self.extra_specs = db.volume_type_extra_specs_get(
                self._context, self.id)

        elif attrname == 'qos_specs':
            if self.qos_specs_id:
                self.qos_specs = objects.QualityOfServiceSpecs.get_by_id(
                    self._context, self.qos_specs_id)
            else:
                self.qos_specs = None

        elif attrname == 'projects':
            volume_type_projects = db.volume_type_access_get_all(
                self._context, self.id)
            self.projects = [x.project_id for x in volume_type_projects]

        self.obj_reset_changes(fields=[attrname])
Esempio n. 2
0
    def obj_load_attr(self, attrname):
        if attrname not in self.OPTIONAL_FIELDS:
            raise exception.ObjectActionError(
                action='obj_load_attr',
                reason=_('attribute %s not lazy-loadable') % attrname)
        if not self._context:
            raise exception.OrphanedObjectError(method='obj_load_attr',
                                                objtype=self.obj_name())

        if attrname == 'extra_specs':
            self.extra_specs = db.volume_type_extra_specs_get(self._context,
                                                              self.id)

        elif attrname == 'qos_specs':
            if self.qos_specs_id:
                self.qos_specs = objects.QualityOfServiceSpecs.get_by_id(
                    self._context, self.qos_specs_id)
            else:
                self.qos_specs = None

        elif attrname == 'projects':
            volume_type_projects = db.volume_type_access_get_all(self._context,
                                                                 self.id)
            self.projects = [x.project_id for x in volume_type_projects]

        self.obj_reset_changes(fields=[attrname])
Esempio n. 3
0
 def test_volume_type_extra_specs_delete(self):
     expected_specs = self.vol_type1_specs.copy()
     del expected_specs['vol_extra2']
     db.volume_type_extra_specs_delete(context.get_admin_context(),
                                       self.volume_type1_id, 'vol_extra2')
     actual_specs = db.volume_type_extra_specs_get(
         context.get_admin_context(), self.volume_type1_id)
     self.assertEquals(expected_specs, actual_specs)
 def test_volume_type_extra_specs_update(self):
     expected_specs = self.vol_type1_specs.copy()
     expected_specs["vol_extra3"] = "4"
     db.volume_type_extra_specs_update_or_create(
         context.get_admin_context(), self.volume_type1_id, dict(vol_extra3=4)
     )
     actual_specs = db.volume_type_extra_specs_get(context.get_admin_context(), self.volume_type1_id)
     self.assertEquals(expected_specs, actual_specs)
Esempio n. 5
0
 def test_volume_type_extra_specs_update(self):
     expected_specs = self.vol_type1_specs.copy()
     expected_specs['vol_extra3'] = "4"
     db.volume_type_extra_specs_update_or_create(
         context.get_admin_context(), self.volume_type1_id,
         dict(vol_extra3=4))
     actual_specs = db.volume_type_extra_specs_get(
         context.get_admin_context(), self.volume_type1_id)
     self.assertEquals(expected_specs, actual_specs)
 def test_volume_type_extra_specs_delete(self):
     expected_specs = self.vol_type1_specs.copy()
     del expected_specs['vol_extra2']
     db.volume_type_extra_specs_delete(context.get_admin_context(),
                                       self.volume_type1_id,
                                       'vol_extra2')
     actual_specs = db.volume_type_extra_specs_get(
         context.get_admin_context(),
         self.volume_type1_id)
     self.assertEqual(expected_specs, actual_specs)
Esempio n. 7
0
 def test_volume_type_extra_specs_create(self):
     expected_specs = self.vol_type1_specs.copy()
     expected_specs['vol_extra4'] = 'value4'
     expected_specs['vol_extra5'] = 'value5'
     db.volume_type_extra_specs_update_or_create(
         context.get_admin_context(), self.volume_type1_id,
         dict(vol_extra4="value4", vol_extra5="value5"))
     actual_specs = db.volume_type_extra_specs_get(
         context.get_admin_context(), self.volume_type1_id)
     self.assertEquals(expected_specs, actual_specs)
Esempio n. 8
0
 def _get_extra_specs(self, context, type_id):
     extra_specs = db.volume_type_extra_specs_get(context, type_id)
     if context.authorize(policy.READ_SENSITIVE_POLICY, fatal=False):
         specs_dict = extra_specs
     else:
         # Limit the response to contain only user visible specs.
         specs_dict = {}
         for uv_spec in policy.USER_VISIBLE_EXTRA_SPECS:
             if uv_spec in extra_specs:
                 specs_dict[uv_spec] = extra_specs[uv_spec]
     return dict(extra_specs=specs_dict)
 def test_volume_type_extra_specs_create(self):
     expected_specs = self.vol_type1_specs.copy()
     expected_specs['vol_extra4'] = 'value4'
     expected_specs['vol_extra5'] = 'value5'
     db.volume_type_extra_specs_update_or_create(
         context.get_admin_context(),
         self.volume_type1_id,
         dict(vol_extra4="value4",
              vol_extra5="value5"))
     actual_specs = db.volume_type_extra_specs_get(
         context.get_admin_context(),
         self.volume_type1_id)
     self.assertEqual(expected_specs, actual_specs)
Esempio n. 10
0
 def _get_extra_specs(self, context, type_id):
     extra_specs = db.volume_type_extra_specs_get(context, type_id)
     specs_dict = {}
     for key, value in extra_specs.items():
         specs_dict[key] = value
     return dict(extra_specs=specs_dict)
Esempio n. 11
0
 def _get_extra_specs(self, context, type_id):
     extra_specs = db.volume_type_extra_specs_get(context, type_id)
     specs_dict = {}
     for key, value in extra_specs.iteritems():
         specs_dict[key] = value
     return dict(extra_specs=specs_dict)
 def test_volume_type_specs_get(self):
     expected_specs = self.vol_type1_specs.copy()
     actual_specs = db.volume_type_extra_specs_get(
         context.get_admin_context(),
         self.volume_type1_id)
     self.assertEqual(expected_specs, actual_specs)
 def test_volume_type_specs_get(self):
     expected_specs = self.vol_type1_specs.copy()
     actual_specs = db.volume_type_extra_specs_get(context.get_admin_context(), self.volume_type1_id)
     self.assertEquals(expected_specs, actual_specs)