示例#1
0
    def create(self):
        if self.obj_attr_is_set('id'):
            raise exception.ObjectActionError(action='create',
                                              reason='already created')
        updates = self.obj_get_changes()
        payload = dict(updates)
        updates.pop('id', None)
        policies = updates.pop('policies', None)
        policy = updates.pop('policy', None)
        rules = updates.pop('_rules', None)
        members = updates.pop('members', None)

        if 'uuid' not in updates:
            self.uuid = uuidutils.generate_uuid()
            updates['uuid'] = self.uuid

        db_group = self._create_in_db(self._context,
                                      updates,
                                      policies=policies,
                                      members=members,
                                      policy=policy,
                                      rules=rules)
        self._from_db_object(self._context, self, db_group)
        payload['server_group_id'] = self.uuid
        compute_utils.notify_about_server_group_update(self._context, "create",
                                                       payload)
        compute_utils.notify_about_server_group_action(
            context=self._context,
            group=self,
            action=fields.NotificationAction.CREATE)
示例#2
0
    def create(self):
        if self.obj_attr_is_set('id'):
            raise exception.ObjectActionError(action='create',
                                              reason='already created')
        updates = self.obj_get_changes()
        payload = dict(updates)
        updates.pop('id', None)
        policies = updates.pop('policies', None)
        policy = updates.pop('policy', None)
        rules = updates.pop('_rules', None)
        members = updates.pop('members', None)

        if 'uuid' not in updates:
            self.uuid = uuidutils.generate_uuid()
            updates['uuid'] = self.uuid

        db_group = self._create_in_db(self._context, updates,
                                      policies=policies,
                                      members=members,
                                      policy=policy,
                                      rules=rules)
        self._from_db_object(self._context, self, db_group)
        payload['server_group_id'] = self.uuid
        compute_utils.notify_about_server_group_update(self._context,
                                                       "create", payload)
        compute_utils.notify_about_server_group_action(
            context=self._context,
            group=self,
            action=fields.NotificationAction.CREATE)
示例#3
0
 def destroy(self):
     payload = {'server_group_id': self.uuid}
     self._destroy_in_db(self._context, self.uuid)
     self.obj_reset_changes()
     compute_utils.notify_about_server_group_update(self._context, "delete",
                                                    payload)
     compute_utils.notify_about_server_group_action(
         context=self._context,
         group=self,
         action=fields.NotificationAction.DELETE)
示例#4
0
 def destroy(self):
     payload = {'server_group_id': self.uuid}
     self._destroy_in_db(self._context, self.uuid)
     self.obj_reset_changes()
     compute_utils.notify_about_server_group_update(self._context,
                                                    "delete", payload)
     compute_utils.notify_about_server_group_action(
         context=self._context,
         group=self,
         action=fields.NotificationAction.DELETE)
    def _create(self, skipcheck=False):
        # NOTE(danms): This is just for the migration routine, and
        # can be removed once we're no longer supporting the migration
        # of instance groups from the main to api database.
        if self.obj_attr_is_set('id'):
            raise exception.ObjectActionError(action='create',
                                              reason='already created')
        updates = self.obj_get_changes()
        payload = dict(updates)
        updates.pop('id', None)
        policies = updates.pop('policies', None)
        members = updates.pop('members', None)

        if 'uuid' not in updates:
            self.uuid = uuidutils.generate_uuid()
            updates['uuid'] = self.uuid

        if not skipcheck:
            try:
                db.instance_group_get(self._context, self.uuid)
                raise exception.ObjectActionError(
                    action='create', reason='already created in main')
            except exception.InstanceGroupNotFound:
                pass
        db_group = self._create_in_db(self._context,
                                      updates,
                                      policies=policies,
                                      members=members)
        self._from_db_object(self._context, self, db_group)
        payload['server_group_id'] = self.uuid
        compute_utils.notify_about_server_group_update(self._context, "create",
                                                       payload)
        compute_utils.notify_about_server_group_action(
            context=self._context,
            group=self,
            action=fields.NotificationAction.CREATE)