Commit f18b4364 authored by Stavros-Anastasios Charismiadis's avatar Stavros-Anastasios Charismiadis
Browse files

Merge branch 'OCF201-minor-fixes-for-rel4' into 'staging'

Ocf201 minor fixes for rel4

See merge request !186
parents 38c22eaa 7182f82a
Loading
Loading
Loading
Loading
Loading
+5 −4
Original line number Diff line number Diff line
@@ -80,7 +80,7 @@ class DiscoverApisOperations(Resource):
                    if "vend-spec" in param:
                        vend_param = param.split("vend-spec-")[1]
                        attribute_path = query_params[param]["target"].split('/')
                        vend_spec_query_params_n_values[attribute_path[1] + "." + vend_param] = query_params[param]["value"]
                        vend_spec_query_params_n_values[".".join(attribute_path[1:]) + "." + vend_param] = query_params[param]["value"]
                    elif param in ["api_version", "comm_type", "protocol", "aef_id", "data_format"]:
                        my_params.append(json.loads(query_params_name[param].replace("QPV", query_params[param])))
                    else:
@@ -102,9 +102,10 @@ class DiscoverApisOperations(Resource):
                        vendor_specific_fields_path = find_attribute_in_body(discoved_api, '')
                        if vendor_specific_fields_path:
                            if vend_spec_query_params_n_values:
                                vs_filtered_apis = filter_apis_with_vendor_specific_params(discoved_api, vend_spec_query_params_n_values, vendor_specific_fields_path)
                                if vs_filtered_apis:
                                    json_docs.append(filter_fields(vs_filtered_apis))
                                pass_filter = filter_apis_with_vendor_specific_params(discoved_api,
                                                                                      vend_spec_query_params_n_values)
                                if pass_filter:
                                    json_docs.append(filter_fields(discoved_api))
                            else:
                                json_docs.append(filter_fields(discoved_api))
                else:
+22 −18
Original line number Diff line number Diff line
import re

from flask import current_app

def find_attribute_in_body(test, path):
    f_key = []
@@ -70,22 +70,26 @@ def remove_vendor_specific_fields(discoved_api, vendor_specific_fields_path):
    return discoved_api


def filter_apis_with_vendor_specific_params(discoved_api, vend_spec_query_params_n_values, vendor_specific_fields_path):
def nested_key_exists(dictionary, keys):
    """
    Checks if a nested path of keys exists in a dictionary.
    """
    _dict = dictionary
    for key in keys:
        if isinstance(_dict, dict) and key in _dict:
            _dict = _dict[key]
        else:
            return False, -1
    return True, _dict


def filter_apis_with_vendor_specific_params(discoved_api, vend_spec_query_params_n_values):
    pass_filter = True
    for k, v in vend_spec_query_params_n_values.items():
        parts = k.split('.')
        for path in vendor_specific_fields_path:
            if parts[0] in path:
                path_pieces = path.split('.')
                tmp_body = discoved_api
                vs_field = path_pieces[-1]
                for path_piece in path_pieces[:-1]:
                    if path_piece.isnumeric():
                        path_piece = int(path_piece)
                    v_2 = tmp_body[path_piece]
                    tmp_body = v_2
                if parts[1] in tmp_body[vs_field].keys():
                    if tmp_body[vs_field][parts[1]] != v:
                        return {}
                else:
                    return {}
    return discoved_api
 No newline at end of file
        exists, value = nested_key_exists(discoved_api, parts)
        if exists:
            if v != value:
                pass_filter = False
                break
    return pass_filter
 No newline at end of file
+1 −1
Original line number Diff line number Diff line
@@ -21,7 +21,7 @@ help() {
docker_version=$(docker compose version --short | cut -d',' -f1)
IFS='.' read -ra version_components <<< "$docker_version"

if [ "${version_components[0]}" -ge 2 ] && [ "${version_components[1]}" -ge 10 ]; then
if [ "${version_components[0]}" -gt 2 ] || { [ "${version_components[0]}" -eq 2 ] && [ "${version_components[1]}" -ge 10 ]; }; then
  echo "Docker compose version it greater than 2.10"
else
  echo "Docker compose version is not valid. Should be greater than 2.10"