def get_nodegroup_by_uuid(self, context, cluster_id, nodegroup_uuid): query = model_query(models.NodeGroup) if not context.is_admin: query = query.filter_by(project_id=context.project_id) query = query.filter_by(cluster_id=cluster_id) query = query.filter_by(uuid=nodegroup_uuid) try: return query.one() except NoResultFound: raise exception.NodeGroupNotFound(nodegroup=nodegroup_uuid)
def destroy_nodegroup(self, cluster_id, nodegroup_id): session = get_session() with session.begin(): query = model_query(models.NodeGroup, session=session) query = add_identity_filter(query, nodegroup_id) query = query.filter_by(cluster_id=cluster_id) try: query.one() except NoResultFound: raise exception.NodeGroupNotFound(nodegroup=nodegroup_id) query.delete()
def test_nodegroup_delete_stack_and_ng_not_found(self, mock_get_driver): mock_driver = mock.MagicMock() mock_get_driver.return_value = mock_driver nodegroup = mock.MagicMock() mock_driver.delete_nodegroup.side_effect = exc.HTTPNotFound() nodegroup.destroy.side_effect = exception.NodeGroupNotFound() self.handler.nodegroup_delete(self.context, self.cluster, nodegroup) mock_driver.delete_nodegroup.assert_called_once_with( self.context, self.cluster, nodegroup) self.assertEqual(fields.ClusterStatus.UPDATE_IN_PROGRESS, self.cluster.status) nodegroup.destroy.assert_called_once()
def _do_update_nodegroup(self, cluster_id, nodegroup_id, values): session = get_session() with session.begin(): query = model_query(models.NodeGroup, session=session) query = add_identity_filter(query, nodegroup_id) query = query.filter_by(cluster_id=cluster_id) try: ref = query.with_for_update().one() except NoResultFound: raise exception.NodeGroupNotFound(nodegroup=nodegroup_id) ref.update(values) return ref
def get_nodegroup_by_name(self, context, cluster_id, nodegroup_name): query = model_query(models.NodeGroup) if not context.is_admin: query = query.filter_by(project_id=context.project_id) query = query.filter_by(cluster_id=cluster_id) query = query.filter_by(name=nodegroup_name) try: return query.one() except MultipleResultsFound: raise exception.Conflict('Multiple nodegroups exist with same ' 'name. Please use the nodegroup uuid ' 'instead.') except NoResultFound: raise exception.NodeGroupNotFound(nodegroup=nodegroup_name)