1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
|
# -------------------------------------------------------------------------
# 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 collections import defaultdict
from osdf.logging.osdf_logging import debug_log
from osdf.config.base import osdf_config
def retrieve_version_info(request, request_id):
version_info_dict = defaultdict(dict)
config = osdf_config.deployment
placement_ver_enabled = config.get('placementVersioningEnabled', False)
if placement_ver_enabled:
placement_major_version = config.get('placementMajorVersion', None)
placement_minor_version = config.get('placementMinorVersion', None)
placement_patch_version = config.get('placementPatchVersion', None)
http_header = request.headers.environ
http_x_minorversion = http_header.get("HTTP_X_MINORVERSION")
http_x_patchversion = http_header.get("HTTP_X_PATCHVERSION")
http_x_latestversion = http_header.get("HTTP_X_LATESTVERSION")
debug_log.debug("Versions sent in HTTP header for request ID {} are: X-MinorVersion: {} X-PatchVersion: {} X-LatestVersion: {}"
.format(request_id, http_x_minorversion, http_x_patchversion, http_x_latestversion))
debug_log.debug("latest versions specified in osdf config file are: placementMajorVersion: {} placementMinorVersion: {} placementPatchVersion: {}"
.format(placement_major_version, placement_minor_version, placement_patch_version))
else:
placement_major_version = config.get('placementDefaultMajorVersion', "1")
placement_minor_version = config.get('placementDefaultMinorVersion', "0")
placement_patch_version = config.get('placementDefaultPatchVersion', "0")
debug_log.debug("Default versions specified in osdf config file are: placementDefaultMajorVersion: {} placementDefaultMinorVersion: {} placementDefaultPatchVersion: {}"
.format(placement_major_version, placement_minor_version, placement_patch_version))
version_info_dict.update({
'placementVersioningEnabled': placement_ver_enabled,
'placementMajorVersion': str(placement_major_version),
'placementMinorVersion': str(placement_minor_version),
'placementPatchVersion': str( placement_patch_version)
})
return version_info_dict
|