Пример #1
0
 def destroy_container(self, context, container_id):
     session = get_session()
     with session.begin():
         query = model_query(models.Container, session=session)
         query = add_identity_filter(query, container_id)
         count = query.delete()
         if count != 1:
             raise exception.ContainerNotFound(container_id)
Пример #2
0
 def get_container_by_uuid(self, context, container_uuid):
     query = model_query(models.Container)
     query = self._add_project_filters(context, query)
     query = query.filter_by(uuid=container_uuid)
     try:
         return query.one()
     except NoResultFound:
         raise exception.ContainerNotFound(container=container_uuid)
Пример #3
0
    def get_container_by_name(self, context, container_name):
        try:
            filters = self._add_project_filters(context,
                                                {'name': container_name})
            containers = self.list_containers(context, filters=filters)
        except etcd.EtcdKeyNotFound:
            raise exception.ContainerNotFound(container=container_name)
        except Exception as e:
            LOG.error('Error occurred while retrieving container: %s',
                      six.text_type(e))
            raise

        if len(containers) > 1:
            raise exception.Conflict('Multiple containers exist with same '
                                     'name. Please use the container uuid '
                                     'instead.')
        elif len(containers) == 0:
            raise exception.ContainerNotFound(container=container_name)

        return containers[0]
Пример #4
0
    def _do_update_container(self, container_id, values):
        session = get_session()
        with session.begin():
            query = model_query(models.Container, session=session)
            query = add_identity_filter(query, container_id)
            try:
                ref = query.with_lockmode('update').one()
            except NoResultFound:
                raise exception.ContainerNotFound(container=container_id)

            ref.update(values)
        return ref
Пример #5
0
 def get_container_by_name(self, context, container_name):
     query = model_query(models.Container)
     query = self._add_tenant_filters(context, query)
     query = query.filter_by(name=container_name)
     try:
         return query.one()
     except NoResultFound:
         raise exception.ContainerNotFound(container=container_name)
     except MultipleResultsFound:
         raise exception.Conflict('Multiple containers exist with same '
                                  'name. Please use the container uuid '
                                  'instead.')