Merge "Format stack_identity as id *and* links."
This commit is contained in:
commit
763cf3142b
|
@ -18,6 +18,7 @@ Stack endpoint for Heat v1 ReST API.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
import httplib
|
import httplib
|
||||||
|
import itertools
|
||||||
import json
|
import json
|
||||||
import os
|
import os
|
||||||
import socket
|
import socket
|
||||||
|
@ -170,19 +171,28 @@ def stack_url(req, identity):
|
||||||
return req.relative_url(stack_identity.url_path(), True)
|
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=[]):
|
def format_stack(req, stack, keys=[]):
|
||||||
include_key = lambda k: k in keys if keys else True
|
include_key = lambda k: k in keys if keys else True
|
||||||
|
|
||||||
def transform(key, value):
|
def transform(key, value):
|
||||||
|
if not include_key(key):
|
||||||
|
return
|
||||||
|
|
||||||
if key == engine_api.STACK_ID:
|
if key == engine_api.STACK_ID:
|
||||||
return 'URL', stack_url(req, value)
|
yield ('id', value['stack_id'])
|
||||||
# TODO(zaneb): ensure parameters can be formatted for XML
|
yield ('links', [make_link(req, value)])
|
||||||
#elif key == engine_api.STACK_PARAMETERS:
|
else:
|
||||||
# return key, json.dumps(value)
|
# 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(itertools.chain.from_iterable(
|
||||||
|
transform(k, v) for k, v in stack.items()))
|
||||||
return dict(transform(k, v) for k, v in stack.items() if include_key(k))
|
|
||||||
|
|
||||||
|
|
||||||
class StackController(object):
|
class StackController(object):
|
||||||
|
|
|
@ -246,7 +246,9 @@ class StackControllerTest(unittest.TestCase):
|
||||||
expected = {
|
expected = {
|
||||||
'stacks': [
|
'stacks': [
|
||||||
{
|
{
|
||||||
'URL': self._url(identity),
|
'links': [{"href": self._url(identity),
|
||||||
|
"rel": "self"}],
|
||||||
|
'id': '1',
|
||||||
u'updated_time': u'2012-07-09T09:13:11Z',
|
u'updated_time': u'2012-07-09T09:13:11Z',
|
||||||
u'description': u'blah',
|
u'description': u'blah',
|
||||||
u'stack_status_reason': u'Stack successfully created',
|
u'stack_status_reason': u'Stack successfully created',
|
||||||
|
@ -470,7 +472,9 @@ class StackControllerTest(unittest.TestCase):
|
||||||
|
|
||||||
expected = {
|
expected = {
|
||||||
'stack': {
|
'stack': {
|
||||||
'URL': self._url(identity),
|
'links': [{"href": self._url(identity),
|
||||||
|
"rel": "self"}],
|
||||||
|
'id': '6',
|
||||||
u'updated_time': u'2012-07-09T09:13:11Z',
|
u'updated_time': u'2012-07-09T09:13:11Z',
|
||||||
u'parameters': parameters,
|
u'parameters': parameters,
|
||||||
u'outputs': outputs,
|
u'outputs': outputs,
|
||||||
|
|
Loading…
Reference in New Issue