Skip to content

Commit

Permalink
QBOL-4796: API support for role instance profile. Pull Request #129
Browse files Browse the repository at this point in the history
  • Loading branch information
yogeshg-qubole authored and Rohit Agarwal committed Dec 8, 2015
1 parent 5ec7b4c commit 941fe09
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 6 deletions.
4 changes: 3 additions & 1 deletion bin/qds.py
Original file line number Diff line number Diff line change
Expand Up @@ -258,6 +258,7 @@ def _create_cluster_info(arguments, api_version):
ssh_public_key=customer_ssh_key,
persistent_security_group=arguments.persistent_security_group,
enable_presto=arguments.enable_presto,
role_instance_profile=arguments.role_instance_profile,
presto_custom_config=presto_custom_config,)
else:
cluster_info = ClusterInfo(arguments.label,
Expand All @@ -270,7 +271,8 @@ def _create_cluster_info(arguments, api_version):
cluster_info.set_ec2_settings(arguments.aws_region,
arguments.aws_availability_zone,
arguments.vpc_id,
arguments.subnet_id)
arguments.subnet_id,
arguments.role_instance_profile)

cluster_info.set_hadoop_settings(arguments.master_instance_type,
arguments.slave_instance_type,
Expand Down
16 changes: 11 additions & 5 deletions qds_sdk/cluster.py
Original file line number Diff line number Diff line change
Expand Up @@ -147,13 +147,11 @@ def _parse_create_update(cls, args, action, api_version):
ec2_group = argparser.add_argument_group("ec2 settings")
ec2_group.add_argument("--access-key-id",
dest="aws_access_key_id",
required=create_required,
help="access key id for customer's aws" +
" account. This is required while" +
" creating the cluster",)
ec2_group.add_argument("--secret-access-key",
dest="aws_secret_access_key",
required=create_required,
help="secret access key for customer's aws" +
" account. This is required while" +
" creating the cluster",)
Expand All @@ -172,6 +170,9 @@ def _parse_create_update(cls, args, action, api_version):
ec2_group.add_argument("--vpc-id",
dest="vpc_id",
help="vpc to create the cluster in",)
ec2_group.add_argument("--role-instance-profile",
dest="role_instance_profile",
help="IAM Role instance profile to attach on cluster",)

hadoop_group = argparser.add_argument_group("hadoop settings")
node_config_group = argparser.add_argument_group("node configuration") if (api_version >= 1.3) else hadoop_group
Expand Down Expand Up @@ -700,7 +701,8 @@ def set_ec2_settings(self,
aws_region=None,
aws_availability_zone=None,
vpc_id=None,
subnet_id=None):
subnet_id=None,
role_instance_profile=None):
"""
Kwargs:
Expand All @@ -717,6 +719,7 @@ def set_ec2_settings(self,
self.ec2_settings['aws_preferred_availability_zone'] = aws_availability_zone
self.ec2_settings['vpc_id'] = vpc_id
self.ec2_settings['subnet_id'] = subnet_id
self.ec2_settings['role_instance_profile'] = role_instance_profile

def set_hadoop_settings(self, master_instance_type=None,
slave_instance_type=None,
Expand Down Expand Up @@ -923,6 +926,7 @@ def set_cluster_info(self, aws_access_key_id=None,
ssh_public_key=None,
persistent_security_group=None,
enable_presto=None,
role_instance_profile=None,
presto_custom_config=None):
"""
Kwargs:
Expand Down Expand Up @@ -1033,7 +1037,7 @@ def set_cluster_info(self, aws_access_key_id=None,
self.enable_ganglia_monitoring = enable_ganglia_monitoring
self.node_bootstrap_file = node_bootstrap_file
self.__set_node_configuration(master_instance_type, slave_instance_type, initial_nodes, max_nodes, slave_request_type, fallback_to_ondemand)
self.__set_ec2_settings(aws_access_key_id, aws_secret_access_key, aws_region, aws_availability_zone, vpc_id, subnet_id)
self.__set_ec2_settings(aws_access_key_id, aws_secret_access_key, aws_region, aws_availability_zone, vpc_id, subnet_id, role_instance_profile)
self.__set_hadoop_settings(custom_config, use_hbase, custom_ec2_tags, use_hadoop2, use_spark, use_qubole_placement_policy)
self.__set_spot_instance_settings(maximum_bid_price_percentage, timeout_for_request, maximum_spot_instance_percentage)
self.__set_stable_spot_instance_settings(stable_maximum_bid_price_percentage, stable_timeout_for_request, stable_allow_fallback)
Expand All @@ -1048,13 +1052,15 @@ def __set_ec2_settings(self,
aws_region=None,
aws_availability_zone=None,
vpc_id=None,
subnet_id=None):
subnet_id=None,
role_instance_profile=None):
self.ec2_settings['compute_access_key'] = aws_access_key_id
self.ec2_settings['compute_secret_key'] = aws_secret_access_key
self.ec2_settings['aws_region'] = aws_region
self.ec2_settings['aws_preferred_availability_zone'] = aws_availability_zone
self.ec2_settings['vpc_id'] = vpc_id
self.ec2_settings['subnet_id'] = subnet_id
self.ec2_settings['role_instance_profile'] = role_instance_profile

def __set_node_configuration(self, master_instance_type=None,
slave_instance_type=None,
Expand Down

0 comments on commit 941fe09

Please sign in to comment.