Skip to content

Commit 8ea96e2

Browse files
committed
Merge pull request #158 from opdemand/fix-missing-credentials
Fix missing credentials
2 parents 1d6350e + bea8963 commit 8ea96e2

2 files changed

Lines changed: 20 additions & 13 deletions

File tree

api/views.py

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -155,6 +155,8 @@ def create(self, request, **kwargs):
155155
except IntegrityError:
156156
return Response('Formation with this Id already exists.',
157157
status=HTTP_400_BAD_REQUEST)
158+
except EnvironmentError as e:
159+
return Response(str(e), status=HTTP_400_BAD_REQUEST)
158160

159161
def post_save(self, formation, created=False, **kwargs):
160162
if created:
@@ -242,7 +244,10 @@ def run(self, request, **kwargs):
242244

243245
def destroy(self, request, **kwargs):
244246
formation = self.get_object()
245-
formation.destroy()
247+
try:
248+
formation.destroy()
249+
except EnvironmentError as e:
250+
return Response(str(e), status=HTTP_400_BAD_REQUEST)
246251
formation.delete()
247252
return Response(status=status.HTTP_204_NO_CONTENT)
248253

@@ -309,7 +314,10 @@ def get_object(self, *args, **kwargs):
309314

310315
def destroy(self, request, **kwargs):
311316
node = self.get_object()
312-
node.destroy()
317+
try:
318+
node.destroy()
319+
except EnvironmentError as e:
320+
return Response(str(e), status=HTTP_400_BAD_REQUEST)
313321
return Response(status=status.HTTP_204_NO_CONTENT)
314322

315323

celerytasks/ec2.py

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,7 @@
3030
@task(name='ec2.build_layer')
3131
def build_layer(layer, creds, params):
3232
region = params.get('region', 'us-east-1')
33-
conn = create_ec2_connection(
34-
region, creds['access_key'], creds['secret_key'])
33+
conn = create_ec2_connection(creds, region)
3534
# create a new sg and authorize all ports
3635
# use iptables on the host to firewall ports
3736
sg = conn.create_security_group(layer, 'Created by Deis')
@@ -56,8 +55,7 @@ def destroy_layer(layer, creds, params):
5655
# let's take a nap
5756
time.sleep(5)
5857
region = params.get('region', 'us-east-1')
59-
conn = create_ec2_connection(
60-
region, creds['access_key'], creds['secret_key'])
58+
conn = create_ec2_connection(creds, region)
6159
try:
6260
conn.delete_security_group(layer)
6361
except EC2ResponseError as e:
@@ -68,8 +66,7 @@ def destroy_layer(layer, creds, params):
6866
@task(name='ec2.launch_node')
6967
def launch_node(node_id, creds, params, init, ssh_username, ssh_private_key):
7068
region = params.get('region', 'us-east-1')
71-
conn = create_ec2_connection(
72-
region, creds['access_key'], creds['secret_key'])
69+
conn = create_ec2_connection(creds, region)
7370
# find or create the security group for this formation
7471
sg_name = params['layer']
7572
sg = conn.get_all_security_groups(sg_name)[0]
@@ -134,8 +131,7 @@ def launch_node(node_id, creds, params, init, ssh_username, ssh_private_key):
134131
@task(name='ec2.terminate_node')
135132
def terminate_node(node_id, creds, params, provider_id):
136133
region = params.get('region', 'us-east-1')
137-
conn = create_ec2_connection(
138-
region, creds['access_key'], creds['secret_key'])
134+
conn = create_ec2_connection(creds, region)
139135
if provider_id:
140136
conn.terminate_instances([provider_id])
141137
i = conn.get_all_instances([provider_id])[0].instances[0]
@@ -174,9 +170,12 @@ def run_node(node_id, ssh_username, fqdn, ssh_private_key, docker_args, command)
174170

175171
# utility functions
176172

177-
def create_ec2_connection(region, access_key, secret_key):
178-
return ec2.connect_to_region(region, aws_access_key_id=access_key,
179-
aws_secret_access_key=secret_key)
173+
def create_ec2_connection(creds, region):
174+
if not creds:
175+
raise EnvironmentError('No credentials provided')
176+
return ec2.connect_to_region(region,
177+
aws_access_key_id=creds['access_key'],
178+
aws_secret_access_key=creds['secret_key'])
180179

181180

182181
def prepare_run_kwargs(params, init):

0 commit comments

Comments
 (0)