⚡ L1L`XPL0IT
8.2.34 | Linux | www-data (uid:33)
✏️ Edit: parse.py
📁 /snap/google-cloud-cli/503/lib/surface/meta/resources/parse.py
# -*- coding: utf-8 -*- # # Copyright 2015 Google LLC. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """A command that parses resources given collection and api version.""" import sys from googlecloudsdk.calliope import base from googlecloudsdk.core import exceptions from googlecloudsdk.core import log from googlecloudsdk.core import resources from googlecloudsdk.core.console import console_io from googlecloudsdk.core.resource import resource_printer class Parse(base.ListCommand): """Cloud SDK resource parser module tester. *{command}* is an handy way to debug the resource parser from the command line. """ @staticmethod def Args(parser): parser.add_argument( '--api-version', metavar='VERSION', help=('The resource collection API version. The collection default ' 'is used if not specified.')) parser.add_argument( '--collection', metavar='NAME', help='The resource collection name of the resource to parse.') parser.add_argument( '--stack-trace', action='store_true', default=True, help=('Enable all exception stack traces, including Cloud SDK core ' 'exceptions.')) parser.add_argument( 'resources_to_parse', nargs='*', help=('The list of resource URLs to parse. If not specified then ' '*{command}* enters an interactive loop, prompting for URLs to ' 'parse.')) def Run(self, args): """Returns the parsed parameters for one resource.""" if args.api_version: api_name = args.collection.split('.')[0] resources.REGISTRY.RegisterApiByName( api_name, api_version=args.api_version) if args.resources_to_parse: parsed_resources = [] for uri in args.resources_to_parse: try: resource = resources.REGISTRY.Parse(uri, collection=args.collection) except (Exception, SystemExit) as e: # pylint: disable=broad-except if args.stack_trace: exceptions.reraise(e) log.error(str(e)) parsed_resources.append({ 'error': str(e), 'uri': uri, }) continue collection_info = resource.GetCollectionInfo() parsed_resources.append({ 'api_name': collection_info.api_name, 'api_version': collection_info.api_version, 'collection': collection_info.full_name, 'params': resource.AsDict(), 'uri': resource.SelfLink(), }) return parsed_resources while True: uri = console_io.PromptResponse('PARSE> ') if uri is None: break if not uri: continue try: params = resources.REGISTRY.Parse( uri, collection=args.collection).AsDict() except (Exception, SystemExit) as e: # pylint: disable=broad-except if args.stack_trace: exceptions.reraise(e) log.error(str(e)) continue resource_printer.Print(params, 'json') sys.stderr.write('\n') return None def Epilog(self, items_were_listed=False): del items_were_listed
Cancel
💻 Terminal
📤 Upload
📂
Click or Drag & Drop
📁 /snap/google-cloud-cli/503/lib/surface/meta/resources
/
/
snap
/
google-cloud-cli
/
503
/
lib
/
surface
/
meta
/
resources
Name
Size
Perm
Modified
Actions
📁 __pycache__/
-
0775
2026-09-29 12:17
🗑 Delete
__init__.py
840B
0644
1980-01-01 08:00
👁 View
✏️ Edit
📝 Rename
📦 Move
🗑 Del
generate.py
2.4K
0644
1980-01-01 08:00
👁 View
✏️ Edit
📝 Rename
📦 Move
🗑 Del
parse.py
3.6K
0644
1980-01-01 08:00
👁 View
✏️ Edit
📝 Rename
📦 Move
🗑 Del