import mox
import json
import sqlalchemy
-
from nose.plugins.attrib import attr
from nose import with_setup
assert(stack.resources['WebServer'] != None)
assert(stack.resources['WebServer'].instance_id > 0)
assert(stack.resources['WebServer'].ipaddress != '0.0.0.0')
-
+
+ def test_wordpress_single_instance_stack_delete(self):
+ f = open('../../templates/WordPress_Single_Instance_gold.template')
+ t = json.loads(f.read())
+ f.close()
+
+ params = {}
+ parameters = {}
+ params['KeyStoneCreds'] = None
+ t['Parameters']['KeyName']['Value'] = 'test'
+ stack = parser.Stack('test_stack', t, 0, params)
+ self.m.StubOutWithMock(instances.Instance, 'nova')
+ instances.Instance.nova().AndReturn(self.fc)
+ instances.Instance.nova().AndReturn(self.fc)
+ instances.Instance.nova().AndReturn(self.fc)
+ instances.Instance.nova().AndReturn(self.fc)
+ instances.Instance.nova().AndReturn(self.fc)
+
+ instance = stack.resources['WebServer']
+ instance.itype_oflavor['m1.large'] = 'm1.large'
+ instance.stack.resolve_attributes(instance.t)
+ instance.stack.resolve_joins(instance.t)
+ instance.stack.resolve_base64(instance.t)
+
+ server_userdata = instance._build_userdata(\
+ instance.t['Properties']['UserData'])
+ self.m.StubOutWithMock(self.fc.servers, 'create')
+ self.fc.servers.create(image=744, flavor=3, key_name='test',\
+ name='WebServer', security_groups=None,\
+ userdata=server_userdata).\
+ AndReturn(self.fc.servers.list()[2])
+ self.m.ReplayAll()
+
+ rt = {}
+ rt['template'] = stack.t
+ rt['stack_name'] = stack.name
+ new_rt = db_api.raw_template_create(None, rt)
+
+ s = {}
+ s['name'] = stack.name
+ s['raw_template_id'] = new_rt.id
+ new_s = db_api.stack_create(None, s)
+ stack.id = new_s.id
+
+ pt = {}
+ pt['template'] = stack.t
+ pt['raw_template_id'] = new_rt.id
+ new_pt = db_api.parsed_template_create(None, pt)
+
+ stack.create_blocking()
+ assert(stack.resources['WebServer'] != None)
+ assert(stack.resources['WebServer'].instance_id > 0)
+
+ stack.delete_blocking()
+ assert(stack.resources['WebServer'].state == 'DELETE_COMPLETE')
+ assert(stack.t['stack_status'] == 'DELETE_COMPLETE')
+
# allows testing of the test directly, shown below
if __name__ == '__main__':
sys.argv.append(__file__)
def delete_servers_1234_metadata_key2(self, **kw):
return (204, None)
- def post_servers_1234_metadata(self, **kw):
+ def delete_servers_5678(self, **kw):
+ return (202, None)
+
+ def delete_servers_5678_metadata_test_key(self, **kw):
+ return (204, None)
+
+ def delete_servers_5678_metadata_key1(self, **kw):
+ return (204, None)
+
+ def delete_servers_5678_metadata_key2(self, **kw):
+ return (204, None)
+
+ def get_servers_9999(self, **kw):
+ r = {'server': self.get_servers_detail()[1]['servers'][0]}
+ return (200, r)
+
+ def get_servers_5678(self, **kw):
+ r = {'server': self.get_servers_detail()[1]['servers'][1]}
+ return (200, r)
+
+ def put_servers_9999(self, body, **kw):
+ assert body.keys() == ['server']
+ fakes.assert_has_keys(body['server'], optional=['name', 'adminPass'])
+ return (204, None)
+
+ def delete_servers_9999(self, **kw):
+ return (202, None)
+
+ def delete_servers_9999_metadata_test_key(self, **kw):
+ return (204, None)
+
+ def delete_servers_9999_metadata_key1(self, **kw):
+ return (204, None)
+
+ def delete_servers_9999_metadata_key2(self, **kw):
+ return (204, None)
+
+
+ def post_servers_9999_metadata(self, **kw):
return (204, {'metadata': {'test_key': 'test_value'}})
- def get_servers_1234_diagnostics(self, **kw):
+ def get_servers_9999_diagnostics(self, **kw):
return (200, 'Fake diagnostics')
def get_servers_1234_actions(self, **kw):