controller=metadata_controller, action='create_stack',
conditions=dict(method=['PUT']))
mapper.connect('/stacks/:stack_name/resources/:resource_id',
- controller=metadata_controller, action='update_metadata',
+ controller=metadata_controller,\
+ action='update_metadata',
conditions=dict(method=['PUT']))
mapper.connect('/events/',
controller=metadata_controller, action='create_event',
# License for the specific language governing permissions and limitations
# under the License.
-import logging
import json
from webob.exc import Response
if error:
if error == 'stack':
return json_error(404,
- 'The stack "%s" does not exist.' % stack_name)
+ 'The stack "%s" does not exist.' % stack_name)
else:
return json_error(404,
- 'The resource "%s" does not exist.' % resource_id)
+ 'The resource "%s" does not exist.' % resource_id)
return metadata
def update_metadata(self, req, body, stack_name, resource_id):
if error:
if error == 'stack':
return json_error(404,
- 'The stack "%s" does not exist.' % stack_name)
+ 'The stack "%s" does not exist.' % stack_name)
else:
return json_error(404,
- 'The resource "%s" does not exist.' % resource_id)
+ 'The resource "%s" does not exist.' % resource_id)
return json_response(201, {
'resource': resource_id,
'metadata': body,
import heat.db as db_api
from heat.engine import parser
+
@attr(tag=['unit', 'resource'])
@attr(speed='fast')
-class instancesTest(unittest.TestCase):
+class stacksTest(unittest.TestCase):
def setUp(self):
self.m = mox.Mox()
self.fc = fakes.FakeClient()
def tearDown(self):
self.m.UnsetStubs()
- print "instancesTest teardown complete"
+ print "stackTest teardown complete"
def test_wordpress_single_instance_stack_create(self):
f = open('../../templates/WordPress_Single_Instance_gold.template')
t = json.loads(f.read())
f.close()
-
params = {}
parameters = {}
params['KeyStoneCreds'] = None
instances.Instance.nova().AndReturn(self.fc)
instances.Instance.nova().AndReturn(self.fc)
instances.Instance.nova().AndReturn(self.fc)
-
- #instance = instances.Instance('WebServer',\
- # t['Resources']['WebServer'], stack)
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')
userdata=server_userdata).\
AndReturn(self.fc.servers.list()[1])
self.m.ReplayAll()
-
stack.create_blocking()
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
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')
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')