%PDF- <> %âãÏÓ endobj 2 0 obj <> endobj 3 0 obj <>/ExtGState<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI] >>/Annots[ 28 0 R 29 0 R] /MediaBox[ 0 0 595.5 842.25] /Contents 4 0 R/Group<>/Tabs/S>> endobj ºaâÚÎΞ-ÌE1ÍØÄ÷{òò2ÿ ÛÖ^ÔÀá TÎ{¦?§®¥kuµùÕ5sLOšuY>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<> endobj 2 0 obj<>endobj 2 0 obj<>es 3 0 R>> endobj 2 0 obj<> ox[ 0.000000 0.000000 609.600000 935.600000]/Fi endobj 3 0 obj<> endobj 7 1 obj<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI]>>/Subtype/Form>> stream
# 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 import os from awscli.customizations.configure.writer import ConfigFileWriter from awscli.customizations.emr.constants import EC2_ROLE_NAME from awscli.customizations.emr.constants import EMR_ROLE_NAME LOG = logging.getLogger(__name__) def get_configs(session): return session.get_scoped_config().get('emr', {}) def get_current_profile_name(session): profile_name = session.get_config_variable('profile') return 'default' if profile_name is None else profile_name def get_current_profile_var_name(session): return _get_profile_str(session, '.') def _get_profile_str(session, separator): profile_name = session.get_config_variable('profile') return 'default' if profile_name is None \ else 'profile%c%s' % (separator, profile_name) def is_any_role_configured(session): parsed_configs = get_configs(session) return True if ('instance_profile' in parsed_configs or 'service_role' in parsed_configs) \ else False def update_roles(session): if is_any_role_configured(session): LOG.debug("At least one of the roles is already associated with " "your current profile ") else: config_writer = ConfigWriter(session) config_writer.update_config('service_role', EMR_ROLE_NAME) config_writer.update_config('instance_profile', EC2_ROLE_NAME) LOG.debug("Associated default roles with your current profile") class ConfigWriter(object): def __init__(self, session): self.session = session self.section = _get_profile_str(session, ' ') self.config_file_writer = ConfigFileWriter() def update_config(self, key, value): config_filename = \ os.path.expanduser(self.session.get_config_variable('config_file')) updated_config = {'__section__': self.section, 'emr': {key: value}} self.config_file_writer.update_config(updated_config, config_filename)