[jira] [Assigned] (SPARK-925) Allow ec2 scripts to load default options from a json file
[ https://issues.apache.org/jira/browse/SPARK-925?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Apache Spark reassigned SPARK-925: -- Assignee: Apache Spark Allow ec2 scripts to load default options from a json file -- Key: SPARK-925 URL: https://issues.apache.org/jira/browse/SPARK-925 Project: Spark Issue Type: Improvement Components: EC2 Affects Versions: 0.8.0 Reporter: Shay Seng Assignee: Apache Spark Priority: Minor The option list for ec2 script can be a little irritating to type in, especially things like path to identity-file, region , zone, ami etc. It would be nice if ec2 script looks for an options.json file in the following order: (1) CWD, (2) ~/spark-ec2, (3) same dir as spark_ec2.py Something like: def get_defaults_from_options(): # Check to see if a options.json file exists, if so load it. # However, values in the options.json file can only overide values in opts # if the Opt values are None or # i.e. commandline options take presidence defaults = {'aws-access-key-id':'','aws-secret-access-key':'','key-pair':'', 'identity-file':'', 'region':'ap-southeast-1', 'zone':'', 'ami':'','slaves':1, 'instance-type':'m1.large'} # Look for options.json in directory cluster was called from # Had to modify the spark_ec2 wrapper script since it mangles the pwd startwd = os.environ['STARTWD'] if os.path.exists(os.path.join(startwd,options.json)): optionspath = os.path.join(startwd,options.json) else: optionspath = os.path.join(os.getcwd(),options.json) try: print Loading options file: , optionspath with open (optionspath) as json_data: jdata = json.load(json_data) for k in jdata: defaults[k]=jdata[k] except IOError: print 'Warning: options.json file not loaded' # Check permissions on identity-file, if defined, otherwise launch will fail late and will be irritating if defaults['identity-file']!='': st = os.stat(defaults['identity-file']) user_can_read = bool(st.st_mode stat.S_IRUSR) grp_perms = bool(st.st_mode stat.S_IRWXG) others_perm = bool(st.st_mode stat.S_IRWXO) if (not user_can_read): print No read permission to read , defaults['identify-file'] sys.exit(1) if (grp_perms or others_perm): print Permissions are too open, please chmod 600 file , defaults['identify-file'] sys.exit(1) # if defaults contain AWS access id or private key, set it to environment. # required for use with boto to access the AWS console if defaults['aws-access-key-id'] != '': os.environ['AWS_ACCESS_KEY_ID']=defaults['aws-access-key-id'] if defaults['aws-secret-access-key'] != '': os.environ['AWS_SECRET_ACCESS_KEY'] = defaults['aws-secret-access-key'] return defaults -- This message was sent by Atlassian JIRA (v6.3.4#6332) - To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org For additional commands, e-mail: issues-h...@spark.apache.org
[jira] [Assigned] (SPARK-925) Allow ec2 scripts to load default options from a json file
[ https://issues.apache.org/jira/browse/SPARK-925?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Apache Spark reassigned SPARK-925: -- Assignee: (was: Apache Spark) Allow ec2 scripts to load default options from a json file -- Key: SPARK-925 URL: https://issues.apache.org/jira/browse/SPARK-925 Project: Spark Issue Type: Improvement Components: EC2 Affects Versions: 0.8.0 Reporter: Shay Seng Priority: Minor The option list for ec2 script can be a little irritating to type in, especially things like path to identity-file, region , zone, ami etc. It would be nice if ec2 script looks for an options.json file in the following order: (1) CWD, (2) ~/spark-ec2, (3) same dir as spark_ec2.py Something like: def get_defaults_from_options(): # Check to see if a options.json file exists, if so load it. # However, values in the options.json file can only overide values in opts # if the Opt values are None or # i.e. commandline options take presidence defaults = {'aws-access-key-id':'','aws-secret-access-key':'','key-pair':'', 'identity-file':'', 'region':'ap-southeast-1', 'zone':'', 'ami':'','slaves':1, 'instance-type':'m1.large'} # Look for options.json in directory cluster was called from # Had to modify the spark_ec2 wrapper script since it mangles the pwd startwd = os.environ['STARTWD'] if os.path.exists(os.path.join(startwd,options.json)): optionspath = os.path.join(startwd,options.json) else: optionspath = os.path.join(os.getcwd(),options.json) try: print Loading options file: , optionspath with open (optionspath) as json_data: jdata = json.load(json_data) for k in jdata: defaults[k]=jdata[k] except IOError: print 'Warning: options.json file not loaded' # Check permissions on identity-file, if defined, otherwise launch will fail late and will be irritating if defaults['identity-file']!='': st = os.stat(defaults['identity-file']) user_can_read = bool(st.st_mode stat.S_IRUSR) grp_perms = bool(st.st_mode stat.S_IRWXG) others_perm = bool(st.st_mode stat.S_IRWXO) if (not user_can_read): print No read permission to read , defaults['identify-file'] sys.exit(1) if (grp_perms or others_perm): print Permissions are too open, please chmod 600 file , defaults['identify-file'] sys.exit(1) # if defaults contain AWS access id or private key, set it to environment. # required for use with boto to access the AWS console if defaults['aws-access-key-id'] != '': os.environ['AWS_ACCESS_KEY_ID']=defaults['aws-access-key-id'] if defaults['aws-secret-access-key'] != '': os.environ['AWS_SECRET_ACCESS_KEY'] = defaults['aws-secret-access-key'] return defaults -- This message was sent by Atlassian JIRA (v6.3.4#6332) - To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org For additional commands, e-mail: issues-h...@spark.apache.org