diff options
author | Chayal, Avteet (ac229e) <ac229e@att.com> | 2018-09-19 00:35:17 +0000 |
---|---|---|
committer | Chayal, Avteet (ac229e) <ac229e@att.com> | 2018-09-19 20:10:36 +0000 |
commit | d7eb44a65b37000d5d30245e6ac26bd68827804d (patch) | |
tree | ef0e6a3c092ca2518e671b56276bb9b6512fd2a0 /osdf/operation | |
parent | b84ac0be84c53d3a93b44b9a6ffc2d262e9b213a (diff) |
CVS changes for osdf placment api
Implemented ONAP Common Versioning Strategy
Issue-ID: OPTFRA-285
Change-Id: I31df699afddbeb8962b2ca0fa501eff45f70ed5d
Signed-off-by: Chayal, Avteet (ac229e) <ac229e@att.com>
Diffstat (limited to 'osdf/operation')
-rwxr-xr-x[-rw-r--r--] | osdf/operation/responses.py | 107 |
1 files changed, 64 insertions, 43 deletions
diff --git a/osdf/operation/responses.py b/osdf/operation/responses.py index 84bb2cc..a3623ba 100644..100755 --- a/osdf/operation/responses.py +++ b/osdf/operation/responses.py @@ -1,43 +1,64 @@ -# ------------------------------------------------------------------------- -# Copyright (c) 2015-2017 AT&T Intellectual Property -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# ------------------------------------------------------------------------- -# - -from flask import Response - -from osdf import ACCEPTED_MESSAGE_TEMPLATE - - -def osdf_response_for_request_accept(request_id="", transaction_id="", request_status="", status_message="", - response_code=202, as_http=True): - """Helper method to create a response object for request acceptance, so that the object can be sent to a client - :param request_id: request ID provided by the caller - :param transaction_id: transaction ID provided by the caller - :param request_status: the status of a request - :param status_message: details on the status of a request - :param response_code: the HTTP status code to send -- default is 202 (accepted) - :param as_http: whether to send response as HTTP response object or as a string - :return: if as_http is True, return a HTTP Response object. Otherwise, return json-encoded-message - """ - response_message = ACCEPTED_MESSAGE_TEMPLATE.render(request_id=request_id, transaction_id=transaction_id, - request_status=request_status, status_message=status_message) - if not as_http: - return response_message - - response = Response(response_message, content_type='application/json; charset=utf-8') - response.headers.add('content-length', len(response_message)) - response.status_code = response_code - return response +# -------------------------------------------------------------------------
+# Copyright (c) 2015-2017 AT&T Intellectual Property
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# -------------------------------------------------------------------------
+#
+
+from flask import Response
+
+from osdf import ACCEPTED_MESSAGE_TEMPLATE
+from osdf.logging.osdf_logging import debug_log
+
+def osdf_response_for_request_accept(request_id="", transaction_id="", request_status="", status_message="",
+ version_info = {
+ 'placementVersioningEnabled': False,
+ 'placementMajorVersion': '1',
+ 'placementMinorVersion': '0',
+ 'placementPatchVersion': '0'
+ },
+ response_code=202, as_http=True):
+ """Helper method to create a response object for request acceptance, so that the object can be sent to a client
+ :param request_id: request ID provided by the caller
+ :param transaction_id: transaction ID provided by the caller
+ :param request_status: the status of a request
+ :param status_message: details on the status of a request
+ :param response_code: the HTTP status code to send -- default is 202 (accepted)
+ :param as_http: whether to send response as HTTP response object or as a string
+ :return: if as_http is True, return a HTTP Response object. Otherwise, return json-encoded-message
+ """
+ response_message = ACCEPTED_MESSAGE_TEMPLATE.render(request_id=request_id, transaction_id=transaction_id,
+ request_status=request_status, status_message=status_message)
+ if not as_http:
+ return response_message
+
+ response = Response(response_message, content_type='application/json; charset=utf-8')
+ response.headers.add('content-length', len(response_message))
+
+ placement_ver_enabled = version_info['placementVersioningEnabled']
+
+ if placement_ver_enabled:
+ placement_minor_version = version_info['placementMinorVersion']
+ placement_patch_version = version_info['placementPatchVersion']
+ placement_major_version = version_info['placementMajorVersion']
+ x_latest_version = placement_major_version+'.'+placement_minor_version+'.'+placement_patch_version
+ response.headers.add('X-MinorVersion', placement_minor_version)
+ response.headers.add('X-PatchVersion', placement_patch_version)
+ response.headers.add('X-LatestVersion', x_latest_version)
+
+ debug_log.debug("Versions set in HTTP header for synchronous response: X-MinorVersion: {} X-PatchVersion: {} X-LatestVersion: {}"
+ .format(placement_minor_version, placement_patch_version, x_latest_version))
+
+ response.status_code = response_code
+ return response
|