Merge "Format stack_identity as id *and* links."

This commit is contained in:
Jenkins 2012-10-26 07:28:13 +00:00 committed by Gerrit Code Review
commit 763cf3142b
2 changed files with 23 additions and 9 deletions

View File

@ -18,6 +18,7 @@ Stack endpoint for Heat v1 ReST API.
"""
import httplib
import itertools
import json
import os
import socket
@ -170,19 +171,28 @@ def stack_url(req, identity):
return req.relative_url(stack_identity.url_path(), True)
def make_link(req, identity):
return {"href": stack_url(req, identity), "rel": "self"}
def format_stack(req, stack, keys=[]):
include_key = lambda k: k in keys if keys else True
def transform(key, value):
if not include_key(key):
return
if key == engine_api.STACK_ID:
return 'URL', stack_url(req, value)
# TODO(zaneb): ensure parameters can be formatted for XML
#elif key == engine_api.STACK_PARAMETERS:
# return key, json.dumps(value)
yield ('id', value['stack_id'])
yield ('links', [make_link(req, value)])
else:
# TODO(zaneb): ensure parameters can be formatted for XML
#elif key == engine_api.STACK_PARAMETERS:
# return key, json.dumps(value)
yield (key, value)
return key, value
return dict(transform(k, v) for k, v in stack.items() if include_key(k))
return dict(itertools.chain.from_iterable(
transform(k, v) for k, v in stack.items()))
class StackController(object):

View File

@ -246,7 +246,9 @@ class StackControllerTest(unittest.TestCase):
expected = {
'stacks': [
{
'URL': self._url(identity),
'links': [{"href": self._url(identity),
"rel": "self"}],
'id': '1',
u'updated_time': u'2012-07-09T09:13:11Z',
u'description': u'blah',
u'stack_status_reason': u'Stack successfully created',
@ -470,7 +472,9 @@ class StackControllerTest(unittest.TestCase):
expected = {
'stack': {
'URL': self._url(identity),
'links': [{"href": self._url(identity),
"rel": "self"}],
'id': '6',
u'updated_time': u'2012-07-09T09:13:11Z',
u'parameters': parameters,
u'outputs': outputs,