Repository: incubator-ariatosca Updated Branches: refs/heads/ARIA-48-aria-cli cb581d51b -> 699fec023
fixes Project: http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/commit/699fec02 Tree: http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/tree/699fec02 Diff: http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/diff/699fec02 Branch: refs/heads/ARIA-48-aria-cli Commit: 699fec023a9d18b7e15fe9fc8761921366ed12d1 Parents: cb581d5 Author: max-orlov <[email protected]> Authored: Thu Mar 30 17:36:47 2017 +0300 Committer: max-orlov <[email protected]> Committed: Sun Apr 2 13:58:13 2017 +0300 ---------------------------------------------------------------------- aria/modeling/__init__.py | 2 ++ aria/modeling/utils.py | 14 ++++++++++++++ aria/orchestrator/context/common.py | 2 +- .../orchestrator/execution_plugin/ctx_proxy/server.py | 3 ++- 4 files changed, 19 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/699fec02/aria/modeling/__init__.py ---------------------------------------------------------------------- diff --git a/aria/modeling/__init__.py b/aria/modeling/__init__.py index 4dfc39d..4ac79e7 100644 --- a/aria/modeling/__init__.py +++ b/aria/modeling/__init__.py @@ -19,6 +19,7 @@ from . import ( mixins, types, models, + utils, service_template as _service_template_bases, service_instance as _service_instance_bases, service_changes as _service_changes_bases, @@ -45,4 +46,5 @@ __all__ = ( 'types', 'models', 'model_bases', + 'utils' ) http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/699fec02/aria/modeling/utils.py ---------------------------------------------------------------------- diff --git a/aria/modeling/utils.py b/aria/modeling/utils.py index a0caa68..e3a2700 100644 --- a/aria/modeling/utils.py +++ b/aria/modeling/utils.py @@ -13,6 +13,7 @@ # See the License for the specific language governing permissions and # limitations under the License. +from json import JSONEncoder from StringIO import StringIO from . import exceptions @@ -24,6 +25,19 @@ from ..utils.console import puts from ..utils.conversion import convert_value_to_type +class ModelJSONEncoder(JSONEncoder): + def default(self, o): + from .mixins import ModelMixin + if isinstance(o, ModelMixin): + if hasattr(o, 'value'): + dict_to_return = o.to_dict(fields=('value',)) + return dict_to_return['value'] + else: + return o.to_dict() + else: + return JSONEncoder.default(self, o) + + def create_inputs(inputs, template_inputs): """ :param inputs: key-value dict http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/699fec02/aria/orchestrator/context/common.py ---------------------------------------------------------------------- diff --git a/aria/orchestrator/context/common.py b/aria/orchestrator/context/common.py index 06e283c..3861982 100644 --- a/aria/orchestrator/context/common.py +++ b/aria/orchestrator/context/common.py @@ -195,7 +195,7 @@ class BaseContext(object): try: return self.resource.service.read(entry_id=str(self.service.id), path=path) except exceptions.StorageError: - return self.resource.service.read(entry_id=str(self.service_template.id), path=path) + return self.resource.service_template.read(entry_id=str(self.service_template.id), path=path) def get_resource_and_render(self, path=None, variables=None): """ http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/699fec02/aria/orchestrator/execution_plugin/ctx_proxy/server.py ---------------------------------------------------------------------- diff --git a/aria/orchestrator/execution_plugin/ctx_proxy/server.py b/aria/orchestrator/execution_plugin/ctx_proxy/server.py index 817d064..52a5312 100644 --- a/aria/orchestrator/execution_plugin/ctx_proxy/server.py +++ b/aria/orchestrator/execution_plugin/ctx_proxy/server.py @@ -24,6 +24,7 @@ import StringIO import wsgiref.simple_server import bottle +from aria import modeling from .. import exceptions @@ -111,7 +112,7 @@ class CtxProxy(object): result = json.dumps({ 'type': result_type, 'payload': payload - }) + }, cls=modeling.utils.ModelJSONEncoder) except Exception as e: traceback_out = StringIO.StringIO() traceback.print_exc(file=traceback_out)
