aboutsummaryrefslogtreecommitdiff
path: root/ec2
diff options
context:
space:
mode:
authorMatei Zaharia <matei@eecs.berkeley.edu>2012-11-19 15:51:41 -0800
committerMatei Zaharia <matei@eecs.berkeley.edu>2012-11-19 15:51:41 -0800
commitcd16eab0dbad9d6186f064e5d95259562eb51628 (patch)
treedf4dbb0f103a2015a32a0716e56c1308b3661c7e /ec2
parent85ce5f27c1bcc6265a2f495c1ae8a5f2369ac834 (diff)
parentdc2fb3c4b69cd2c5b6a11a08f642d72330b294d4 (diff)
downloadspark-cd16eab0dbad9d6186f064e5d95259562eb51628.tar.gz
spark-cd16eab0dbad9d6186f064e5d95259562eb51628.tar.bz2
spark-cd16eab0dbad9d6186f064e5d95259562eb51628.zip
Merge pull request #309 from admobius/use-boto-config-file
Improved use of Boto
Diffstat (limited to 'ec2')
-rwxr-xr-xec2/spark_ec2.py31
1 files changed, 20 insertions, 11 deletions
diff --git a/ec2/spark_ec2.py b/ec2/spark_ec2.py
index 83b330a8f6..2ab11dbd34 100755
--- a/ec2/spark_ec2.py
+++ b/ec2/spark_ec2.py
@@ -19,7 +19,6 @@
from __future__ import with_statement
-import boto
import logging
import os
import random
@@ -32,7 +31,7 @@ import urllib2
from optparse import OptionParser
from sys import stderr
from boto.ec2.blockdevicemapping import BlockDeviceMapping, EBSBlockDeviceType
-
+from boto import ec2
# A static URL from which to figure out the latest Mesos EC2 AMI
LATEST_AMI_URL = "https://s3.amazonaws.com/mesos-images/ids/latest-spark-0.6"
@@ -99,14 +98,20 @@ def parse_args():
if opts.cluster_type not in ["mesos", "standalone"] and action == "launch":
print >> stderr, ("ERROR: Invalid cluster type: " + opts.cluster_type)
sys.exit(1)
- if os.getenv('AWS_ACCESS_KEY_ID') == None:
- print >> stderr, ("ERROR: The environment variable AWS_ACCESS_KEY_ID " +
- "must be set")
- sys.exit(1)
- if os.getenv('AWS_SECRET_ACCESS_KEY') == None:
- print >> stderr, ("ERROR: The environment variable AWS_SECRET_ACCESS_KEY " +
- "must be set")
- sys.exit(1)
+
+ # Boto config check
+ # http://boto.cloudhackers.com/en/latest/boto_config_tut.html
+ home_dir = os.getenv('HOME')
+ if home_dir == None or not os.path.isfile(home_dir + '/.boto'):
+ if not os.path.isfile('/etc/boto.cfg'):
+ if os.getenv('AWS_ACCESS_KEY_ID') == None:
+ print >> stderr, ("ERROR: The environment variable AWS_ACCESS_KEY_ID " +
+ "must be set")
+ sys.exit(1)
+ if os.getenv('AWS_SECRET_ACCESS_KEY') == None:
+ print >> stderr, ("ERROR: The environment variable AWS_SECRET_ACCESS_KEY " +
+ "must be set")
+ sys.exit(1)
return (opts, action, cluster_name)
@@ -513,7 +518,11 @@ def get_partition(total, num_partitions, current_partitions):
def main():
(opts, action, cluster_name) = parse_args()
- conn = boto.ec2.connect_to_region(opts.region)
+ try:
+ conn = ec2.connect_to_region(opts.region)
+ except Exception as e:
+ print >> stderr, (e)
+ sys.exit(1)
# Select an AZ at random if it was not specified.
if opts.zone == "":