Exemple #1
0
 def get_cluster_by_uuid(self, context, cluster_uuid):
     query = model_query(models.Cluster)
     query = self._add_tenant_filters(context, query)
     query = query.filter_by(uuid=cluster_uuid)
     try:
         return query.one()
     except NoResultFound:
         raise exception.ClusterNotFound(cluster=cluster_uuid)
Exemple #2
0
 def get_cluster_by_name(self, context, cluster_name):
     query = model_query(models.Cluster)
     query = self._add_tenant_filters(context, query)
     query = query.filter_by(name=cluster_name)
     try:
         return query.one()
     except MultipleResultsFound:
         raise exception.Conflict('Multiple clusters exist with same name.'
                                  ' Please use the cluster uuid instead.')
     except NoResultFound:
         raise exception.ClusterNotFound(cluster=cluster_name)
Exemple #3
0
    def _do_update_cluster(self, cluster_id, values):
        session = get_session()
        with session.begin():
            query = model_query(models.Cluster, session=session)
            query = add_identity_filter(query, cluster_id)
            try:
                ref = query.with_lockmode('update').one()
            except NoResultFound:
                raise exception.ClusterNotFound(cluster=cluster_id)

            ref.update(values)
        return ref
Exemple #4
0
    def destroy_cluster(self, cluster_id):
        session = get_session()
        with session.begin():
            query = model_query(models.Cluster, session=session)
            query = add_identity_filter(query, cluster_id)

            try:
                query.one()
            except NoResultFound:
                raise exception.ClusterNotFound(cluster=cluster_id)

            query.delete()
Exemple #5
0
    def _do_update_bay(self, bay_id, values):
        session = get_session()
        with session.begin():
            query = model_query(models.Bay, session=session)
            query = add_identity_filter(query, bay_id)
            try:
                ref = query.with_lockmode('update').one()
            except NoResultFound:
                raise exception.ClusterNotFound(cluster=bay_id)

            if 'provision_state' in values:
                values['provision_updated_at'] = timeutils.utcnow()

            ref.update(values)
        return ref