Server IP : 195.201.23.43 / Your IP : 3.145.85.212 Web Server : Apache System : Linux webserver2.vercom.be 5.4.0-192-generic #212-Ubuntu SMP Fri Jul 5 09:47:39 UTC 2024 x86_64 User : kdecoratie ( 1041) PHP Version : 7.1.33-63+ubuntu20.04.1+deb.sury.org+1 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals, MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /lib/python3/dist-packages/awscli/customizations/emr/ |
Upload File : |
# Copyright 2014 Amazon.com, Inc. or its affiliates. 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. A copy of # the License is located at # # http://aws.amazon.com/apache2.0/ # # or in the "license" file accompanying this file. This file 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. import logging from awscli.customizations.emr import configutils from awscli.customizations.emr import exceptions LOG = logging.getLogger(__name__) SUPPORTED_CONFIG_LIST = [ {'name': 'service_role'}, {'name': 'log_uri'}, {'name': 'instance_profile', 'arg_name': 'ec2_attributes', 'arg_value_key': 'InstanceProfile'}, {'name': 'key_name', 'arg_name': 'ec2_attributes', 'arg_value_key': 'KeyName'}, {'name': 'enable_debugging', 'type': 'boolean'}, {'name': 'key_pair_file'} ] TYPES = ['string', 'boolean'] def get_applicable_configurations(command): supported_configurations = _create_supported_configurations() return [x for x in supported_configurations if x.is_applicable(command)] def _create_supported_configuration(config): config_type = config['type'] if 'type' in config else 'string' if (config_type == 'string'): config_arg_name = config['arg_name'] \ if 'arg_name' in config else config['name'] config_arg_value_key = config['arg_value_key'] \ if 'arg_value_key' in config else None configuration = StringConfiguration(config['name'], config_arg_name, config_arg_value_key) elif (config_type == 'boolean'): configuration = BooleanConfiguration(config['name']) return configuration def _create_supported_configurations(): return [_create_supported_configuration(config) for config in SUPPORTED_CONFIG_LIST] class Configuration(object): def __init__(self, name, arg_name): self.name = name self.arg_name = arg_name def is_applicable(self, command): raise NotImplementedError("is_applicable") def is_present(self, parsed_args): raise NotImplementedError("is_present") def add(self, command, parsed_args, value): raise NotImplementedError("add") def _check_arg(self, parsed_args, arg_name): return getattr(parsed_args, arg_name, None) class StringConfiguration(Configuration): def __init__(self, name, arg_name, arg_value_key=None): super(StringConfiguration, self).__init__(name, arg_name) self.arg_value_key = arg_value_key def is_applicable(self, command): return command.supports_arg(self.arg_name.replace('_', '-')) def is_present(self, parsed_args): if (not self.arg_value_key): return self._check_arg(parsed_args, self.arg_name) else: return self._check_arg(parsed_args, self.arg_name) \ and self.arg_value_key in getattr(parsed_args, self.arg_name) def add(self, command, parsed_args, value): if (not self.arg_value_key): setattr(parsed_args, self.arg_name, value) else: if (not self._check_arg(parsed_args, self.arg_name)): setattr(parsed_args, self.arg_name, {}) getattr(parsed_args, self.arg_name)[self.arg_value_key] = value class BooleanConfiguration(Configuration): def __init__(self, name): super(BooleanConfiguration, self).__init__(name, name) self.no_version_arg_name = "no_" + name def is_applicable(self, command): return command.supports_arg(self.arg_name.replace('_', '-')) and \ command.supports_arg(self.no_version_arg_name.replace('_', '-')) def is_present(self, parsed_args): return self._check_arg(parsed_args, self.arg_name) \ or self._check_arg(parsed_args, self.no_version_arg_name) def add(self, command, parsed_args, value): if (value.lower() == 'true'): setattr(parsed_args, self.arg_name, True) setattr(parsed_args, self.no_version_arg_name, False) elif (value.lower() == 'false'): setattr(parsed_args, self.arg_name, False) setattr(parsed_args, self.no_version_arg_name, True) else: raise exceptions.InvalidBooleanConfigError( config_value=value, config_key=self.arg_name, profile_var_name=configutils.get_current_profile_var_name( command._session))Private