Example #1
0
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)
Example #2
0
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)
Example #3
0
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)
Example #4
0
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)
Example #6
0
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: