commands.py 文件源码

python
阅读 19 收藏 0 点赞 0 评论 0

项目:nimbus 作者: kikinteractive 项目源码 文件源码
def run(self, search):
        """Entry point for the search. Iterate over VM's records."""
        from oauth2client.service_account import ServiceAccountCredentials
        from googleapiclient import discovery
        import glob
        import json
        import shutil
        scopes = ['https://www.googleapis.com/auth/compute.readonly']
        for filename in glob.glob(self.tmp_dir + '/*.json'):
            with open(filename) as data_file:
                data = json.load(data_file)
            project_id = data["project_id"]
            credentials = ServiceAccountCredentials.from_json_keyfile_name(
                filename, scopes=scopes)
            compute = discovery.build('compute', 'v1', credentials=credentials)
            zones = compute.zones()
            request = zones.list(project=project_id)
            filter = 'name eq {}.*'.format(search)
            while request is not None:
                response = request.execute()
                for zone in response['items']:
                    instances = compute.instances().list(
                        project=project_id, zone=zone['name'],
                        filter=filter).execute()
                    for instance in instances.get('items', []):
                        yield {
                            'Name': instance['name'],
                            'Zone': zone['name'],
                            'Project': project_id,
                            'Type': instance['machineType'].rsplit('/', 1)[-1]
                        }
                request = zones.list_next(previous_request=request,
                                          previous_response=response)
        shutil.rmtree(self.tmp_dir)
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号