class TestCloudformationConnection(unittest.TestCase): def setUp(self): self.connection = CloudFormationConnection() self.stack_name = 'testcfnstack' + str(int(time.time())) def test_large_template_stack_size(self): # See https://github.com/boto/boto/issues/1037 body = self.connection.create_stack( self.stack_name, template_body=json.dumps(BASIC_EC2_TEMPLATE), parameters=[('Parameter1', 'initial_value'), ('Parameter2', 'initial_value')]) self.addCleanup(self.connection.delete_stack, self.stack_name) # A newly created stack should have events events = self.connection.describe_stack_events(self.stack_name) self.assertTrue(events) # No policy should be set on the stack by default policy = self.connection.get_stack_policy(self.stack_name) self.assertEqual(None, policy) # Our new stack should show up in the stack list stacks = self.connection.describe_stacks(self.stack_name) stack = stacks[0] self.assertEqual(self.stack_name, stack.stack_name) params = [(p.key, p.value) for p in stack.parameters] self.assertEquals([('Parameter1', 'initial_value'), ('Parameter2', 'initial_value')], params) for _ in range(30): stack.update() if stack.stack_status.find("PROGRESS") == -1: break time.sleep(5) body = self.connection.update_stack( self.stack_name, template_body=json.dumps(BASIC_EC2_TEMPLATE), parameters=[('Parameter1', '', True), ('Parameter2', 'updated_value')]) stacks = self.connection.describe_stacks(self.stack_name) stack = stacks[0] params = [(p.key, p.value) for p in stacks[0].parameters] self.assertEquals([('Parameter1', 'initial_value'), ('Parameter2', 'updated_value')], params) # Waiting for the update to complete to unblock the delete_stack in the # cleanup. for _ in range(30): stack.update() if stack.stack_status.find("PROGRESS") == -1: break time.sleep(5)
class TestCloudformationConnection(unittest.TestCase): def setUp(self): self.connection = CloudFormationConnection() self.stack_name = 'testcfnstack' + str(int(time.time())) def test_large_template_stack_size(self): # See https://github.com/boto/boto/issues/1037 body = self.connection.create_stack( self.stack_name, template_body=json.dumps(BASIC_EC2_TEMPLATE)) self.addCleanup(self.connection.delete_stack, self.stack_name)
class TestCloudformationConnection(unittest.TestCase): def setUp(self): self.connection = CloudFormationConnection() self.stack_name = 'testcfnstack' + str(int(time.time())) def test_large_template_stack_size(self): # See https://github.com/boto/boto/issues/1037 body = self.connection.create_stack( self.stack_name, template_body=json.dumps(BASIC_EC2_TEMPLATE)) self.addCleanup(self.connection.delete_stack, self.stack_name) # A newly created stack should have events events = self.connection.describe_stack_events(self.stack_name) self.assertTrue(events) # No policy should be set on the stack by default policy = self.connection.get_stack_policy(self.stack_name) self.assertEqual(None, policy) # Our new stack should show up in the stack list stacks = self.connection.describe_stacks() self.assertEqual(self.stack_name, stacks[0].stack_name)
bucket = s3conn.create_bucket('ipmstempbucket_0101') from boto.s3.key import Key bucketKey = Key(bucket) bucketKey.key = 'templatefile' bucketKey.set_contents_from_filename('docker_server.template') s3url = "https://s3.amazonaws.com/ipmstempbucket_0101/templatefile" from boto.cloudformation.connection import CloudFormationConnection cfConn = CloudFormationConnection(accessKey, secretKey) #stackName = "TestStack" disableRollback = False cfConn.create_stack(stackName, template_url=s3url, parameters=parameters.items(), disable_rollback=disableRollback, timeout_in_minutes=rollbacktimeout) #print "Creating the stack" count = 0 finished = False while (count < 9 and finished == False): stacks = cfConn.describe_stacks(stackName) if len(stacks) == 1: stack = stacks[0] if stack.stack_status == 'CREATE_COMPLETE': finished = True #print stack.stack_status for output in stack.outputs: