Path: blob/develop/awscli/customizations/emr/instancefleetsutils.py
1567 views
# Copyright 2014 Amazon.com, Inc. or its affiliates. All Rights Reserved.1#2# Licensed under the Apache License, Version 2.0 (the "License"). You3# may not use this file except in compliance with the License. A copy of4# the License is located at5#6# http://aws.amazon.com/apache2.0/7#8# or in the "license" file accompanying this file. This file is9# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF10# ANY KIND, either express or implied. See the License for the specific11# language governing permissions and limitations under the License.1213from awscli.customizations.emr import constants14from awscli.customizations.emr import exceptions151617def validate_and_build_instance_fleets(parsed_instance_fleets):18"""19Helper method that converts --instance-fleets option value in20create-cluster to Amazon Elastic MapReduce InstanceFleetConfig21data type.22"""23instance_fleets = []24for instance_fleet in parsed_instance_fleets:25instance_fleet_config = {}2627keys = instance_fleet.keys()2829if 'Name' in keys:30instance_fleet_config['Name'] = instance_fleet['Name']31else:32instance_fleet_config['Name'] = instance_fleet['InstanceFleetType']33instance_fleet_config['InstanceFleetType'] = instance_fleet['InstanceFleetType']3435if 'TargetOnDemandCapacity' in keys:36instance_fleet_config['TargetOnDemandCapacity'] = instance_fleet['TargetOnDemandCapacity']3738if 'TargetSpotCapacity' in keys:39instance_fleet_config['TargetSpotCapacity'] = instance_fleet['TargetSpotCapacity']4041if 'InstanceTypeConfigs' in keys:42instance_fleet_config['InstanceTypeConfigs'] = instance_fleet['InstanceTypeConfigs']4344if 'LaunchSpecifications' in keys:45instanceFleetProvisioningSpecifications = instance_fleet['LaunchSpecifications']46instance_fleet_config['LaunchSpecifications'] = {}4748if 'SpotSpecification' in instanceFleetProvisioningSpecifications:49instance_fleet_config['LaunchSpecifications']['SpotSpecification'] = \50instanceFleetProvisioningSpecifications['SpotSpecification']5152if 'OnDemandSpecification' in instanceFleetProvisioningSpecifications:53instance_fleet_config['LaunchSpecifications']['OnDemandSpecification'] = \54instanceFleetProvisioningSpecifications['OnDemandSpecification']5556if 'ResizeSpecifications' in keys:57instanceFleetResizeSpecifications = instance_fleet['ResizeSpecifications']58instance_fleet_config['ResizeSpecifications'] = {}5960if 'SpotResizeSpecification' in instanceFleetResizeSpecifications:61instance_fleet_config['ResizeSpecifications']['SpotResizeSpecification'] = \62instanceFleetResizeSpecifications['SpotResizeSpecification']6364if 'OnDemandResizeSpecification' in instanceFleetResizeSpecifications:65instance_fleet_config['ResizeSpecifications']['OnDemandResizeSpecification'] = \66instanceFleetResizeSpecifications['OnDemandResizeSpecification']6768if 'Context' in keys:69instance_fleet_config['Context'] = instance_fleet['Context']7071instance_fleets.append(instance_fleet_config)72return instance_fleets737475