@@ -104,7 +104,7 @@ def create(args):
104
104
event .get ('ResourceStatusReason' )))
105
105
logger .info ('' )
106
106
outputs = cfn .describe_stacks (StackName = stack_name ).get ("Stacks" )[0 ].get ('Outputs' , [])
107
- ganglia_enabled = is_ganglia_enabled (config . parameters )
107
+ ganglia_enabled = is_ganglia_enabled (cfn_params )
108
108
for output in outputs :
109
109
if not ganglia_enabled and output .get ('OutputKey' ).startswith ('Ganglia' ):
110
110
continue
@@ -124,9 +124,10 @@ def create(args):
124
124
sys .exit (1 )
125
125
126
126
def is_ganglia_enabled (parameters ):
127
- extra_json = dict (filter (lambda x : x [0 ] == 'ExtraJson' , parameters ))
128
127
try :
129
- extra_json = json .loads (extra_json .get ('ExtraJson' )).get ('cfncluster' )
128
+ extra_json = filter (lambda x : x .get ('ParameterKey' ) == 'ExtraJson' , parameters )[0 ] \
129
+ .get ('ParameterValue' )
130
+ extra_json = json .loads (extra_json ).get ('cfncluster' )
130
131
return not extra_json .get ('ganglia_enabled' ) == 'no'
131
132
except :
132
133
pass
@@ -402,39 +403,41 @@ def command(args, extra_args):
402
403
sys .exit (0 )
403
404
404
405
def status (args ):
405
- stack = ('cfncluster-' + args .cluster_name )
406
+ stack_name = ('cfncluster-' + args .cluster_name )
406
407
config = cfnconfig .CfnClusterConfig (args )
407
408
408
409
cfn = boto3 .client ('cloudformation' , region_name = config .region ,
409
410
aws_access_key_id = config .aws_access_key_id ,
410
411
aws_secret_access_key = config .aws_secret_access_key )
411
412
412
413
try :
413
- status = cfn .describe_stacks (StackName = stack ).get ("Stacks" )[0 ].get ('StackStatus' )
414
+ status = cfn .describe_stacks (StackName = stack_name ).get ("Stacks" )[0 ].get ('StackStatus' )
414
415
sys .stdout .write ('\r Status: %s' % status )
415
416
sys .stdout .flush ()
416
417
if not args .nowait :
417
418
while status not in ['CREATE_COMPLETE' , 'UPDATE_COMPLETE' , 'UPDATE_ROLLBACK_COMPLETE' ,
418
419
'ROLLBACK_COMPLETE' , 'CREATE_FAILED' , 'DELETE_FAILED' ]:
419
420
time .sleep (5 )
420
- status = cfn .describe_stacks (StackName = stack ).get ("Stacks" )[0 ].get ('StackStatus' )
421
- events = cfn .describe_stack_events (StackName = stack ).get ('StackEvents' )[0 ]
421
+ status = cfn .describe_stacks (StackName = stack_name ).get ("Stacks" )[0 ].get ('StackStatus' )
422
+ events = cfn .describe_stack_events (StackName = stack_name ).get ('StackEvents' )[0 ]
422
423
resource_status = ('Status: %s - %s' % (events .get ('LogicalResourceId' ), events .get ('ResourceStatus' ))).ljust (80 )
423
424
sys .stdout .write ('\r %s' % resource_status )
424
425
sys .stdout .flush ()
425
426
sys .stdout .write ('\r Status: %s\n ' % status )
426
427
sys .stdout .flush ()
427
428
if status in ['CREATE_COMPLETE' , 'UPDATE_COMPLETE' ]:
428
- state = poll_master_server_state (stack , config )
429
+ state = poll_master_server_state (stack_name , config )
429
430
if state == 'running' :
430
- outputs = cfn .describe_stacks (StackName = stack ).get ("Stacks" )[0 ].get ('Outputs' , [])
431
- ganglia_enabled = is_ganglia_enabled (config .parameters )
431
+ stack = cfn .describe_stacks (StackName = stack_name ).get ("Stacks" )[0 ]
432
+ outputs = stack .get ('Outputs' , [])
433
+ parameters = stack .get ('Parameters' )
434
+ ganglia_enabled = is_ganglia_enabled (parameters )
432
435
for output in outputs :
433
436
if not ganglia_enabled and output .get ('OutputKey' ).startswith ('Ganglia' ):
434
437
continue
435
438
logger .info ("%s: %s" % (output .get ('OutputKey' ), output .get ('OutputValue' )))
436
439
elif status in ['ROLLBACK_COMPLETE' , 'CREATE_FAILED' , 'DELETE_FAILED' , 'UPDATE_ROLLBACK_COMPLETE' ]:
437
- events = cfn .describe_stack_events (StackName = stack ).get ('StackEvents' )
440
+ events = cfn .describe_stack_events (StackName = stack_name ).get ('StackEvents' )
438
441
for event in events :
439
442
if event .get ('ResourceStatus' ) in ['CREATE_FAILED' , 'DELETE_FAILED' , 'UPDATE_FAILED' ]:
440
443
logger .info ("%s %s %s %s %s" %
0 commit comments