ssh_key_file = os.path.join(os.path.expanduser('~'), '.ssh/id_rsa.pub') if not args.ssh_key_value: if os.path.isfile(ssh_key_file): with open(ssh_key_file) as f: args.ssh_key_value = f.read() else: raise CLIError('An RSA key file or key value must be supplied to SSH Key Value') if hasattr(args, 'network_security_group_type'): args.network_security_group_rule = 'RDP' if is_windows else 'SSH' if hasattr(args, 'nat_backend_port') and not args.nat_backend_port: args.nat_backend_port = '3389' if is_windows else '22' APPLICATION.register(APPLICATION.COMMAND_PARSER_PARSED, _handle_auth_types) def load_images_from_aliases_doc(publisher=None, offer=None, sku=None): target_url = ('https://raw.githubusercontent.com/Azure/azure-rest-api-specs/' 'master/arm-compute/quickstart-templates/aliases.json') txt = urlopen(target_url).read() dic = json.loads(txt.decode()) try: all_images = [] result = (dic['outputs']['aliases']['value']) for v in result.values(): #loop around os for alias, vv in v.items(): #loop around distros all_images.append({ 'urnAlias': alias, 'publisher': vv['publisher'], 'offer': vv['offer'],
from azure.cli.core.application import APPLICATION from azure.cli.core.commands import cli_command from azure.cli.core.commands.arm import cli_generic_update_command from azure.cli.core.util import empty_on_404 from azure.cli.core.profiles import supported_api_version, PROFILE_TYPE from ._client_factory import cf_web_client, cf_plans def deprecate(argv): if len(argv) > 1 and argv[0] == 'appservice' and argv[1] == 'web': from azure.cli.core.util import CLIError raise CLIError("All 'appservice web' commands have been renamed to 'webapp'") APPLICATION.register(APPLICATION.COMMAND_PARSER_PARSING, deprecate) def output_slots_in_table(slots): return [{'name': s['name'], 'status': s['state'], 'plan': s['appServicePlan']} for s in slots] def transform_list_location_output(result): return [{'name': x.name} for x in result] def transform_web_output(web): props = ['name', 'state', 'location', 'resourceGroup', 'defaultHostName', 'appServicePlanId', 'ftpPublishingUrl'] result = {k: web[k] for k in web if k in props} # to get width under control, also the plan usually is in the same RG result['appServicePlan'] = result.pop('appServicePlanId').split('/')[-1]
from azure.cli.core.commands import cli_command from azure.cli.core.commands.arm import cli_generic_update_command from azure.cli.core.util import empty_on_404 from azure.cli.core.profiles import supported_api_version, PROFILE_TYPE from ._client_factory import cf_web_client, cf_plans def deprecate(argv): if len(argv) > 1 and argv[0] == 'appservice' and argv[1] == 'web': from azure.cli.core.util import CLIError raise CLIError( "All 'appservice web' commands have been renamed to 'webapp'") APPLICATION.register(APPLICATION.COMMAND_PARSER_PARSING, deprecate) def output_slots_in_table(slots): return [{ 'name': s['name'], 'status': s['state'], 'plan': s['appServicePlan'] } for s in slots] def transform_list_location_output(result): return [{'name': x.name} for x in result] def transform_web_output(web):
'--ids', metavar='RESOURCE_ID', dest=argparse.SUPPRESS, help="One or more resource IDs (space delimited). If provided, " "no other 'Resource Id' arguments should be specified.", action=split_action(command.arguments), nargs='+', type=ResourceId, validator=required_values_validator, arg_group=group_name) for command in command_table.values(): command_loaded_handler(command) APPLICATION.register(APPLICATION.COMMAND_TABLE_PARAMS_LOADED, add_id_parameters) APPLICATION.register(APPLICATION.COMMAND_TABLE_LOADED, add_id_parameters) add_usage = '--add property.listProperty <key=value, string or JSON string>' set_usage = '--set property1.property2=<value>' remove_usage = '--remove property.list <indexToRemove> OR --remove propertyToRemove' def _get_child(parent, collection_name, item_name, collection_key): items = getattr(parent, collection_name) result = next((x for x in items if getattr(x, collection_key, '').lower() == item_name.lower()), None) if not result: raise CLIError("Property '{}' does not exist for key '{}'.".format( item_name, collection_key))
if os.path.isfile(ssh_key_file): with open(ssh_key_file) as f: args.ssh_key_value = f.read() else: raise CLIError( 'An RSA key file or key value must be supplied to SSH Key Value' ) if hasattr(args, 'network_security_group_type'): args.network_security_group_rule = 'RDP' if is_windows else 'SSH' if hasattr(args, 'nat_backend_port') and not args.nat_backend_port: args.nat_backend_port = '3389' if is_windows else '22' APPLICATION.register(APPLICATION.COMMAND_PARSER_PARSED, _handle_auth_types) def load_images_from_aliases_doc(publisher=None, offer=None, sku=None): target_url = ( 'https://raw.githubusercontent.com/Azure/azure-rest-api-specs/' 'master/arm-compute/quickstart-templates/aliases.json') txt = urlopen(target_url).read() dic = json.loads(txt.decode()) try: all_images = [] result = (dic['outputs']['aliases']['value']) for v in result.values(): #loop around os for alias, vv in v.items(): #loop around distros all_images.append({ 'urnAlias': alias,
'--ids', metavar='RESOURCE_ID', dest=argparse.SUPPRESS, help="One or more resource IDs (space delimited). If provided, " "no other 'Resource Id' arguments should be specified.", action=split_action(command.arguments), nargs='+', type=ResourceId, validator=required_values_validator, arg_group=group_name) for command in command_table.values(): command_loaded_handler(command) APPLICATION.register(APPLICATION.COMMAND_TABLE_PARAMS_LOADED, add_id_parameters) APPLICATION.register(APPLICATION.COMMAND_TABLE_LOADED, add_id_parameters) add_usage = '--add property.listProperty <key=value, string or JSON string>' set_usage = '--set property1.property2=<value>' remove_usage = '--remove property.list <indexToRemove> OR --remove propertyToRemove' def _get_child(parent, collection_name, item_name, collection_key): items = getattr(parent, collection_name) result = next( (x for x in items if getattr(x, collection_key, '').lower() == item_name.lower()), None) if not result: raise CLIError("Property '{}' does not exist for key '{}'.".format(
break if not all_match: test_list.pop() else: return test_entry return '_ROOT_' def _process_null_values(dict_): if hide_nulls: null_values = [x for x in dict_.keys() if dict_[x] is None] for key in null_values: dict_.pop(key) def _dashed_to_camel(string): return string.replace('-', '_') parser = argparse.ArgumentParser(description='Command Table Parser') parser.add_argument('--commands', metavar='N', nargs='+', help='Filter by first level command (OR)') parser.add_argument('--params', metavar='N', nargs='+', help='Filter by parameters (OR)') parser.add_argument('--hide-nulls', action='store_true', default=False, help='Show null entries') args = parser.parse_args() cmd_set_names = args.commands param_names = [_dashed_to_camel(x) for x in args.params or []] hide_nulls = args.hide_nulls PRIMITIVES = (str, int, bool, float) IGNORE_ARGS = ['help', 'help_file', 'base_type'] APPLICATION.register(Application.COMMAND_PARSER_LOADED, _dump_command_table) APPLICATION.execute([])
dict_.pop(key) def _dashed_to_camel(string): return string.replace('-', '_') parser = argparse.ArgumentParser(description='Command Table Parser') parser.add_argument('--commands', metavar='N', nargs='+', help='Filter by first level command (OR)') parser.add_argument('--params', metavar='N', nargs='+', help='Filter by parameters (OR)') parser.add_argument('--hide-nulls', action='store_true', default=False, help='Show null entries') args = parser.parse_args() cmd_set_names = args.commands param_names = [_dashed_to_camel(x) for x in args.params or []] hide_nulls = args.hide_nulls PRIMITIVES = (str, int, bool, float) IGNORE_ARGS = ['help', 'help_file', 'base_type'] APPLICATION.register(Application.COMMAND_PARSER_LOADED, _dump_command_table) APPLICATION.execute([])