def Run(self, args): query = args.filter args.filter = None return resource_search.List(limit=args.limit, page_size=args.page_size, query=query, sort_by=args.sort_by, uri=args.uri)
def testResourcesTypeGlobalRestriction(self): self.client.ResourcesService.Search.Expect( self.messages.CloudresourcesearchResourcesSearchRequest( orderBy=None, pageSize=500, pageToken=None, query='@type:Instances AND foobar', ), response=self.messages.SearchResponse(results=[]), ) list(resource_search.List(query='@type:resources.Instances foobar'))
def testResourcesType(self): self.client.ResourcesService.Search.Expect( self.messages.CloudresourcesearchResourcesSearchRequest( orderBy=None, pageSize=500, pageToken=None, query='@type:FooBar', ), response=self.messages.SearchResponse(results=[]), ) list(resource_search.List(query='@type:resources.FooBar'))
def testComputeHttpsHealthChecks(self): self.client.ResourcesService.Search.Expect( self.messages.CloudresourcesearchResourcesSearchRequest( orderBy=None, pageSize=500, pageToken=None, query='@type:HttpsHealthCheck', ), response=self.messages.SearchResponse(results=[]), ) list(resource_search.List(query='@type:compute.httpsHealthChecks'))
def testComputeInstancesCollectionQuery(self): self.client.ResourcesService.Search.Expect( self.messages.CloudresourcesearchResourcesSearchRequest( orderBy=None, pageSize=500, pageToken=None, query='@type:Instance AND name:test', ), response=self.messages.SearchResponse(results=[]), ) list(resource_search.List(query='@type:compute.instances name:test'))
def testComputeInstancesSortByReverse(self): self.client.ResourcesService.Search.Expect( self.messages.CloudresourcesearchResourcesSearchRequest( orderBy='name desc,zone', pageSize=500, pageToken=None, query=None, ), response=self.messages.SearchResponse(results=[]), ) list(resource_search.List(sort_by=['~name', 'zone']))
def Update(self, parameter_info, aggregations): """Returns the current list of parsed resources.""" query = '@type:{}'.format(self.collection) log.info('cloud resource search query: %s' % query) try: items = resource_search.List(query=query, uri=True) except Exception as e: # pylint: disable=broad-except log.info(unicode(e).rstrip()) raise (type(e))(u'Update resource query [{}]: {}'.format( query, unicode(e).rstrip())) return [self.StringToRow(item) for item in items]
def Update(self, parameter_info, aggregations): """Returns the current list of parsed resources.""" query = '@type:{}'.format(self.collection) log.info('cloud resource search query: %s' % query) try: items = resource_search.List(query=query, uri=True) except Exception as e: # pylint: disable=broad-except if properties.VALUES.core.print_completion_tracebacks.GetBool(): raise log.info(six.text_type(e).rstrip()) raise (type(e))('Update resource query [{}]: {}'.format( query, six.text_type(e).rstrip())) return [self.StringToRow(item) for item in items]
def testComputeInstances(self): self.client.ResourcesService.Search.Expect( self.messages.CloudresourcesearchResourcesSearchRequest( orderBy=None, pageSize=500, pageToken=None, query=None, ), response=self.messages.SearchResponse( results=self.ResourceSearchResults(count=3), ), ) results = list(resource_search.List()) self.assertEqual(3, len(results))
def testComputeInstancesUriLimit(self): self.client.ResourcesService.Search.Expect( self.messages.CloudresourcesearchResourcesSearchRequest( orderBy=None, pageSize=1, pageToken=None, query=None, ), response=self.messages.SearchResponse( results=self.ResourceSearchResults(count=3), ), ) results = list(resource_search.List(uri=True, limit=1)) self.assertEqual([ 'https://www.googleapis.com/compute/beta/projects/' 'test-project-0/zones/test-zone-0/instances/test-name-0', ], results)
def testComputeInstancesProjectListOperandQuery(self): self.client.ResourcesService.Search.Expect( self.messages.CloudresourcesearchResourcesSearchRequest( orderBy=None, pageSize=500, pageToken=None, query=( '@type:Instance AND ' '( selfLink:/projects/test/ OR selfLink:/projects/prod/ )' ), ), response=self.messages.SearchResponse(results=[]), ) list( resource_search.List( query='@type:compute.instances project:(test prod)'))
def testComputeInstancesCollectionNotSupported(self): with self.AssertRaisesExceptionMatches( resource_search.CollectionNotIndexed, 'Collection [no.such.collection] not indexed for search.'): list(resource_search.List(query='@type:no.such.collection'))
def testComputeInstancesQueryNotSupported(self): with self.AssertRaisesExceptionMatches( resource_search.QueryOperatorNotSupported, 'The [~] operator is not supported in cloud resource search queries.' ): list(resource_search.List(query='name~test'))