o .&aB@sjddlZddlmZddlmZddlmZddlmZddlmZee Z GdddeZ d d Z dS) N) BasicCommand)config) configutils)emrutils) exceptionsc@sTeZdZdZegdZddZddZddZd d Z d d Z d dZ ddZ dS)CommandN)zinstall-applicationszrestore-from-hbase-backupzschedule-hbase-backupzcreate-hbase-backupzdisable-hbase-backupscstfdd|jDS)Nc3s|] }|dkVqdS)nameN.0xrr C/usr/lib/python3/dist-packages/awscli/customizations/emr/command.py $sz'Command.supports_arg..)any ARG_TABLE)selfrr r r supports_arg#szCommand.supports_argcCs<||t|jt|j||_||||||SN) _apply_configsr get_configs_sessionr get_regionregion9_validate_unsupported_commands_for_release_based_clusters_run_main_commandr parsed_argsparsed_globalsr r r _run_main&s  zCommand._run_maincCsn|||}i}|D]}|||||j||j||j<q |r)td|ntdtd|dS)Nz"Updated arguments with configs: %szNo configs appliedzRunning command with args: %s)_get_applicable_configurationsaddrLOGdebug)rrparsed_configsapplicable_configurations configs_added configurationr r rr/s   zCommand._apply_configscs0t|}fdd|D}||}|S)Ncs$g|]}|jvr|s|qSr )r is_presentr rr$r r Js  z:Command._get_applicable_configurations..)rget_applicable_configurations'_filter_configurations_in_special_cases)rrr$configurationsr r)rr @sz&Command._get_applicable_configurationscCs|Srr )rr-rr$r r rr,Ssz/Command._filter_configurations_in_special_casescCstd)Nr)NotImplementedErrorrr r rrZs zCommand._run_main_commandcCsT|j}||jvr$t|dr&t|j|j|j|j|j }|r(t j ||ddSdSdS)N cluster_id)command release_label) NAME/UNSUPPORTED_COMMANDS_FOR_RELEASE_BASED_CLUSTERShasattrrget_release_labelr/rr endpoint_url verify_sslr"UnsupportedCommandWithReleaseError)rrrr0r1r r rres  zACommand._validate_unsupported_commands_for_release_based_clusters) __name__ __module__ __qualname__rsetr3rrrr r,rrr r r rrs   rcKs^t|dkr|ddkrdnd}|r+t|}|D]}|dd|vr*d||_qdSdS)NrhelpFT-_)lenrrkeysreplacerequired)argument_tableargssessionkwargsneed_to_overrider$arg_namer r roverride_args_required_optionts   rK) loggingawscli.customizations.commandsrawscli.customizations.emrrrrr getLoggerr9r"rrKr r r rs       \