diff options
Diffstat (limited to 'config')
-rw-r--r-- | config/__init__.py | 32 | ||||
-rw-r--r-- | config/base.py | 36 | ||||
-rw-r--r-- | config/common_config.yaml | 43 | ||||
-rw-r--r-- | config/credentials.py | 60 | ||||
-rw-r--r-- | config/loader.py | 51 | ||||
-rwxr-xr-x | config/osdf_config.yaml | 34 |
6 files changed, 77 insertions, 179 deletions
diff --git a/config/__init__.py b/config/__init__.py deleted file mode 100644 index 303a8ce..0000000 --- a/config/__init__.py +++ /dev/null @@ -1,32 +0,0 @@ -# ------------------------------------------------------------------------- -# 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. -# -# ------------------------------------------------------------------------- - - -import yaml -import json - -from osdf.utils.programming_utils import MetaSingleton - - -class CoreConfig(metaclass=MetaSingleton): - core_config = None - - def get_core_config(self, config_file=None): - if self.core_config is None: - self.core_config = yaml.load(open(config_file)) - return self.core_config - diff --git a/config/base.py b/config/base.py deleted file mode 100644 index b8aacff..0000000 --- a/config/base.py +++ /dev/null @@ -1,36 +0,0 @@ -# ------------------------------------------------------------------------- -# 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. -# -# ------------------------------------------------------------------------- -# - -import os - -import osdf.config.loader as config_loader -import osdf.config.credentials as creds -from osdf.utils.programming_utils import DotDict - -config_spec = { - "deployment": os.environ.get("OSDF_MANAGER_CONFIG_FILE", "config/osdf_config.yaml"), - "core": "config/common_config.yaml" - } - -osdf_config = DotDict(config_loader.all_configs(**config_spec)) - -http_basic_auth_credentials = creds.load_credentials(osdf_config) - -dmaap_creds = creds.dmaap_creds() - -creds_prefixes = {"so": "so", "cm": "cmPortal"} diff --git a/config/common_config.yaml b/config/common_config.yaml new file mode 100644 index 0000000..d8f467b --- /dev/null +++ b/config/common_config.yaml @@ -0,0 +1,43 @@ +osdf_system: + libpath: /opt/app/osdf/libs + sniro_ports: + internal: 24699 # inside the Docker container, the app listens to this port + external: 14699 # clients use this port on DockerHost + # Important Note: At deployment time, we need to ensure the port mapping is done + ssl_context: ['./../etc/sniromanager.crt', './../etc/sniromanager.key'] + +osdf_temp: # hacks required for "workarounds" or testing + local_policies: + global_disabled: True + local_placement_policies_enabled: True + placement_policy_files_vcpe: # workaroud for policy platform glitches (or "work-arounds" for other components) + - CloudAttributePolicy_vGMuxInfra_1.json + - CloudAttributePolicy_vG_1.json + - DistanceToLocationPolicy_vGMuxInfra_1.json + - DistanceToLocationPolicy_vG_1.json + - InventoryGroup_vGMuxInfra_1.json + - InventoryGroup_vG_1.json + - PlacementOptimizationPolicy.json + - ResourceInstancePolicy_vG_1.json + - VNFPolicy_vGMuxInfra_1.json + - VNFPolicy_vG_1.json + - ZonePolicy_vGMuxInfra_1.json + - ZonePolicy_vG_1.json + +service_info: + vCPE: + vcpeHostName: requestParameters.vcpeHostName + e2eVpnKey: requestParameters.e2eVpnKey + +policy_info: + placement: + policy_fetch: by_scope + policy_scope: + default_scope: OSDF_R2 + scope_vcpe: OSDF_R2 + service_name: placementInfo.serviceModelInfo.modelName + policy_subscriber: SubscriberPolicy + subscriber_name: placementInfo.subscriberInfo.subscriberName + default: # if no explicit service related information is needed + policy_fetch: by_name + policy_scope: none diff --git a/config/credentials.py b/config/credentials.py deleted file mode 100644 index e5a6399..0000000 --- a/config/credentials.py +++ /dev/null @@ -1,60 +0,0 @@ -# ------------------------------------------------------------------------- -# 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. -# -# ------------------------------------------------------------------------- -# - -import json - -from osdf import auth_groups, userid_suffix, passwd_suffix - - -def dmaap_creds(dmaap_file="/etc/dcae/dmaap.conf"): - """Get DMaaP credentials from DCAE for publish and subscribe""" - try: - dmaap_creds = _get_dmaap_creds(dmaap_file) - except: - dmaap_creds = {} - return dmaap_creds - - -def _get_dmaap_creds(dmaap_file): - """Get DMaaP credentials from DCAE for publish and subscribe""" - streams = json.load(open(dmaap_file, 'r')) - pubs = [x for x in streams - if x['dmaapStreamId'] == 'requests' and x['dmaapAction'] == 'publish'] - subs = [x for x in streams - if x['dmaapStreamId'] == 'responses' and x['dmaapAction'] == 'subscribe'] - - def get_dmaap_info(x): - """Get DMaaP credentials from dmaap_object 'x'""" - return dict(url=x.get('dmaapUrl'), userid=x.get('dmaapUserName'), passwd=x.get('dmaapPassword')) - - return {'pub': get_dmaap_info(pubs[0]), 'sub': get_dmaap_info(subs[0])} - - -def load_credentials(osdf_config): - """Get credentials as dictionaries grouped by auth_group (e.g. creds["Placement"]["user1"] = "pass1")""" - creds = dict((x, dict()) for x in auth_groups) # each auth group has userid, passwd dict - suffix_start = len(userid_suffix) - - config = osdf_config.deployment - - for element, username in config.items(): - for x in auth_groups: - if element.startswith("osdf" + x) and element.endswith(userid_suffix): - passwd = config[element[:-suffix_start] + passwd_suffix] - creds[x][username] = passwd - return creds diff --git a/config/loader.py b/config/loader.py deleted file mode 100644 index 7cb363a..0000000 --- a/config/loader.py +++ /dev/null @@ -1,51 +0,0 @@ -# ------------------------------------------------------------------------- -# 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. -# -# ------------------------------------------------------------------------- -# - -import json - -import yaml - - -def load_config_file(config_file: str, child_name="dockerConfiguration") -> dict: - """ - Load OSDF configuration from a file -- currently only yaml/json are supported - :param config_file: path to config file (.yaml or .json). - :param child_name: if present, return only that child node - :return: config (all or specific child node) - """ - with open(config_file, 'r') as fid: - res = {} - if config_file.endswith(".yaml"): - res = yaml.load(fid) - elif config_file.endswith(".json") or config_file.endswith("json"): - res = json.load(fid) - return res.get(child_name, res) if child_name else res - - -def dcae_config(config_file: str) -> dict: - return load_config_file(config_file, child_name="dockerConfiguration") - - -def all_configs(**kwargs: dict) -> dict: - """ - Load all specified configurations - :param config_file_spec: key-value pairs - (e.g. { "core": "common_config.yaml", "deployment": "/tmp/1452523532json" }) - :return: merged config as a nested dictionary - """ - return {k: load_config_file(fname) for k, fname in kwargs.items()} diff --git a/config/osdf_config.yaml b/config/osdf_config.yaml new file mode 100755 index 0000000..69ebdf0 --- /dev/null +++ b/config/osdf_config.yaml @@ -0,0 +1,34 @@ +osdfUserNameForSO: "" # The OSDF Manager username for MSO. +odfPasswordForSO: "" # The OSDF Manager password for MSO. + +# msoUrl: "" # The SO url for call back. This will be part of the request, so no need +soUsername: "" # SO username for call back. +soPassword: "" # SO password for call back. + +conductorUrl: "https://OOF-HAS-CONDUCTOR-HOST:8091" +conductorUsername: "CONDUCTOR-USER" +conductorPassword: "CONDUCTOR-PASSWD" +conductorPingWaitTime: 60 # seconds to wait before calling the conductor retry URL +conductorMaxRetries: 30 # if we don't get something in 30 minutes, give up + +# Policy Platform -- requires ClientAuth, Authorization, and Environment +policyPlatformUrl: https://POLICY-URL:8081/pdp/getConfig # Policy Dev platform URL +policyPlatformEnv: TEST # Environment for policy platform +policyPlatformUsername: POLICY-USER # Policy platform username. +policyPlatformPassword: POLICY-PASSWD # Policy platform password. +policyClientUsername: POLICY-CLIENT-USER # For use with ClientAuth +policyClientPassword: POLICY-CLIENT-PASSWD # For use with ClientAuth + +messageReaderHosts: https://DMAAP-HOST1:3905,https://DMAAP-HOST2:3905,https://DMAAP-HOST3:3905 +messageReaderTopic: org.onap.oof.osdf.multicloud +messageReaderAafUserId: DMAAP-OSDF-MC-USER +messageReaderAafPassword: DMAAP-OSDF-MC-PASSWD + +sdcUrl: https://SDC-HOST:8443/sdc/v1/catalog +sdcUsername: SDC-OSDF-USER +sdcPassword: SDC-OSDF-PASSWD +sdcONAPInstanceID: ONAP-OSDF + +osdfPlacementUrl: "http://127.0.0.1:24699/osdf/api/v2/placement" +osdfPlacementUsername: "test" +osdfPlacementPassword: "testpwd" |