diff options
Diffstat (limited to 'src')
155 files changed, 2400 insertions, 4438 deletions
diff --git a/src/main/docker/elasticsearch/Dockerfile b/src/main/docker/elasticsearch/Dockerfile deleted file mode 100644 index 24352429e..000000000 --- a/src/main/docker/elasticsearch/Dockerfile +++ /dev/null @@ -1,21 +0,0 @@ -# https://github.com/elastic/elasticsearch-docker -FROM docker.elastic.co/elasticsearch/elasticsearch-oss:6.6.2 - -COPY config/sg/ config/sg/ -COPY config/ config/ -COPY bin/ bin/ -#RUN chmod +x bin/init_sg.sh -COPY my-entrypoint.sh /usr/local/bin/my-entrypoint.sh -RUN chmod a+x /usr/local/bin/my-entrypoint.sh -# Search Guard plugin -RUN elasticsearch-plugin install --batch com.floragunn:search-guard-6:6.6.2-25.1 \ - && chmod +x plugins/search-guard-6/tools/*.sh \ - && chown -R elasticsearch config/sg/ \ - && chmod -R go= config/sg/ - -# Add your elasticsearch plugins setup here -# Example: RUN elasticsearch-plugin install analysis-icu - -# This custom entrypoint script is used instead of -# the original's /usr/local/bin/docker-entrypoint.sh -ENTRYPOINT ["bash","-c","my-entrypoint.sh"]
\ No newline at end of file diff --git a/src/main/docker/elasticsearch/bin/init_sg.sh b/src/main/docker/elasticsearch/bin/init_sg.sh deleted file mode 100644 index 1c4e607c6..000000000 --- a/src/main/docker/elasticsearch/bin/init_sg.sh +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/sh -plugins/search-guard-6/tools/sgadmin.sh \ - -cd config/sg/ \ - -ts config/sg/truststore.jks \ - -ks config/sg/kirk-keystore.jks \ - -nhnv \ - -icl
\ No newline at end of file diff --git a/src/main/docker/elasticsearch/config/elasticsearch.yml b/src/main/docker/elasticsearch/config/elasticsearch.yml deleted file mode 100644 index 4d46ca01e..000000000 --- a/src/main/docker/elasticsearch/config/elasticsearch.yml +++ /dev/null @@ -1,33 +0,0 @@ ---- -## Default Elasticsearch configuration from elasticsearch-docker. -## from https://github.com/elastic/elasticsearch-docker/blob/master/.tedi/template/elasticsearch.yml -# -cluster.name: "docker-cluster" -network.host: 0.0.0.0 - -# minimum_master_nodes need to be explicitly set when bound on a public IP -# set to 1 to allow single node clusters -# Details: https://github.com/elastic/elasticsearch/pull/17288 -discovery.zen.minimum_master_nodes: 1 - -## Use single node discovery in order to disable production mode and avoid bootstrap checks -## see https://www.elastic.co/guide/en/elasticsearch/reference/current/bootstrap-checks.html -# -discovery.type: single-node - -## X-Pack settings -## see https://www.elastic.co/guide/en/elasticsearch/reference/current/setup-xpack.html -# -#xpack.license.self_generated.type: basic -#xpack.security.enabled: false - -## Search Guard -# -searchguard.enterprise_modules_enabled: false - -searchguard.ssl.transport.keystore_filepath: sg/node-0-keystore.jks -searchguard.ssl.transport.truststore_filepath: sg/truststore.jks -searchguard.ssl.transport.enforce_hostname_verification: false - -searchguard.authcz.admin_dn: - - "CN=kirk,OU=client,O=client,l=tEst,C=De" diff --git a/src/main/docker/elasticsearch/config/sg/kirk-keystore.jks b/src/main/docker/elasticsearch/config/sg/kirk-keystore.jks Binary files differdeleted file mode 100644 index dd7562ef8..000000000 --- a/src/main/docker/elasticsearch/config/sg/kirk-keystore.jks +++ /dev/null diff --git a/src/main/docker/elasticsearch/config/sg/node-0-keystore.jks b/src/main/docker/elasticsearch/config/sg/node-0-keystore.jks Binary files differdeleted file mode 100644 index 5693b7bf8..000000000 --- a/src/main/docker/elasticsearch/config/sg/node-0-keystore.jks +++ /dev/null diff --git a/src/main/docker/elasticsearch/config/sg/sg_action_groups.yml b/src/main/docker/elasticsearch/config/sg/sg_action_groups.yml deleted file mode 100644 index 38ffef024..000000000 --- a/src/main/docker/elasticsearch/config/sg/sg_action_groups.yml +++ /dev/null @@ -1,153 +0,0 @@ -UNLIMITED: - readonly: true - permissions: - - "*" - -###### INDEX LEVEL ###### - -INDICES_ALL: - readonly: true - permissions: - - "indices:*" - -# for backward compatibility -ALL: - readonly: true - permissions: - - INDICES_ALL - -MANAGE: - readonly: true - permissions: - - "indices:monitor/*" - - "indices:admin/*" - -CREATE_INDEX: - readonly: true - permissions: - - "indices:admin/create" - - "indices:admin/mapping/put" - -MANAGE_ALIASES: - readonly: true - permissions: - - "indices:admin/aliases*" - -INDEX_OWNER: - - CREATE_INDEX - - CRUD - -# for backward compatibility -MONITOR: - readonly: true - permissions: - - INDICES_MONITOR - -INDICES_MONITOR: - readonly: true - permissions: - - "indices:monitor/*" - -DATA_ACCESS: - readonly: true - permissions: - - "indices:data/*" - - CRUD - -WRITE: - readonly: true - permissions: - - "indices:data/write*" - - "indices:admin/mapping/put" - -READ: - readonly: true - permissions: - - "indices:data/read*" - - "indices:admin/mappings/fields/get*" - -DELETE: - readonly: true - permissions: - - "indices:data/write/delete*" - -CRUD: - readonly: true - permissions: - - READ - - WRITE - -SEARCH: - readonly: true - permissions: - - "indices:data/read/search*" - - "indices:data/read/msearch*" - - SUGGEST - -SUGGEST: - readonly: true - permissions: - - "indices:data/read/suggest*" - -INDEX: - readonly: true - permissions: - - "indices:data/write/index*" - - "indices:data/write/update*" - - "indices:admin/mapping/put" - - "indices:data/write/bulk*" - -GET: - readonly: true - permissions: - - "indices:data/read/get*" - - "indices:data/read/mget*" - -###### CLUSTER LEVEL ###### - -CLUSTER_ALL: - readonly: true - permissions: - - "cluster:*" - -CLUSTER_MONITOR: - readonly: true - permissions: - - "cluster:monitor/*" - -CLUSTER_COMPOSITE_OPS_RO: - readonly: true - permissions: - - "indices:data/read/mget" - - "indices:data/read/msearch" - - "indices:data/read/mtv" - - "indices:admin/aliases/exists*" - - "indices:admin/aliases/get*" - - "indices:data/read/scroll" - -CLUSTER_COMPOSITE_OPS: - readonly: true - permissions: - - "indices:data/write/bulk" - - "indices:admin/aliases*" - - "indices:data/write/reindex" - - CLUSTER_COMPOSITE_OPS_RO - -MANAGE_SNAPSHOTS: - readonly: true - permissions: - - "cluster:admin/snapshot/*" - - "cluster:admin/repository/*" - -# CLAMPDASHBOARD ELASTICSEARCH ENTRYPOINT -GET_TEMPLATE: - - "indices:admin/template/get" -PUT_TEMPLATE: - - "indices:admin/template/put" -TEMPLATE_OWNER: - - GET_TEMPLATE - - PUT_TEMPLATE -ES_INPUT: - - TEMPLATE_OWNER - - WRITE - - MONITOR diff --git a/src/main/docker/elasticsearch/config/sg/sg_config.yml b/src/main/docker/elasticsearch/config/sg/sg_config.yml deleted file mode 100644 index 9a16a8239..000000000 --- a/src/main/docker/elasticsearch/config/sg/sg_config.yml +++ /dev/null @@ -1,148 +0,0 @@ -# This is the main Search Guard configuration file where authentication -# and authorization is defined. -# -# You need to configure at least one authentication domain in the authc of this file. -# An authentication domain is responsible for extracting the user credentials from -# the request and for validating them against an authentication backend like Active Directory for example. -# -# If more than one authentication domain is configured the first one which succeeds wins. -# If all authentication domains fail then the request is unauthenticated. -# In this case an exception is thrown and/or the HTTP status is set to 401. -# -# After authentication authorization (authz) will be applied. There can be zero or more authorizers which collect -# the roles from a given backend for the authenticated user. -# -# Both, authc and auth can be enabled/disabled separately for REST and TRANSPORT layer. Default is true for both. -# http_enabled: true -# transport_enabled: true -# -# 5.x Migration: "enabled: true/false" will also be respected currently but only to provide backward compatibility. -# -# For HTTP it is possible to allow anonymous authentication. If that is the case then the HTTP authenticators try to -# find user credentials in the HTTP request. If credentials are found then the user gets regularly authenticated. -# If none can be found the user will be authenticated as an "anonymous" user. This user has always the username "sg_anonymous" -# and one role named "sg_anonymous_backendrole". -# If you enable anonymous authentication all HTTP authenticators will not challenge. -# -# -# Note: If you define more than one HTTP authenticators make sure to put non-challenging authenticators like "proxy" or "clientcert" -# first and the challenging one last. -# Because it's not possible to challenge a client with two different authentication methods (for example -# Kerberos and Basic) only one can have the challenge flag set to true. You can cope with this situation -# by using pre-authentication, e.g. sending a HTTP Basic authentication header in the request. -# -# Default value of the challenge flag is true. -# -# -# HTTP -# basic (challenging) -# proxy (not challenging, needs xff) -# clientcert (not challenging, needs https) -# host (not challenging) #DEPRECATED, will be removed in a future version. -# host based authentication is configurable in sg_roles_mapping - -# Authc -# internal -# noop - -# Authz -# noop -# -# Some SearchGuard functionality is licensed under Apache-2.0, while other functionality is non-free; -# see https://github.com/floragunncom/search-guard. The functionality enabled in this configuration -# file only include those that are licensed under Apache-2.0. Please use care and review SearchGuard's -# license details before enabling any additional features here. - - -searchguard: - dynamic: - # Set filtered_alias_mode to 'disallow' to forbid more than 2 filtered aliases per index - # Set filtered_alias_mode to 'warn' to allow more than 2 filtered aliases per index but warns about it (default) - # Set filtered_alias_mode to 'nowarn' to allow more than 2 filtered aliases per index silently - #filtered_alias_mode: warn - #kibana: - # see https://github.com/floragunncom/search-guard-docs/blob/master/multitenancy.md - # To make this work you need to install https://github.com/floragunncom/search-guard-module-kibana-multitenancy/wiki - #multitenancy_enabled: true - #server_username: kibanaserver - #index: '.kibana' - #do_not_fail_on_forbidden: false - http: - anonymous_auth_enabled: false - xff: - enabled: false - internalProxies: '192\.168\.0\.10|192\.168\.0\.11' # regex pattern - #internalProxies: '.*' # trust all internal proxies, regex pattern - remoteIpHeader: 'x-forwarded-for' - proxiesHeader: 'x-forwarded-by' - #trustedProxies: '.*' # trust all external proxies, regex pattern - ###### see https://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html for regex help - ###### more information about XFF https://en.wikipedia.org/wiki/X-Forwarded-For - ###### and here https://tools.ietf.org/html/rfc7239 - ###### and https://tomcat.apache.org/tomcat-8.0-doc/config/valve.html#Remote_IP_Valve - authc: - basic_internal_auth_domain: - http_enabled: true - transport_enabled: true - order: 4 - http_authenticator: - type: basic - challenge: true - authentication_backend: - type: intern - proxy_auth_domain: - http_enabled: false - transport_enabled: false - order: 3 - http_authenticator: - type: proxy - challenge: false - config: - user_header: "x-proxy-user" - roles_header: "x-proxy-roles" - authentication_backend: - type: noop - jwt_auth_domain: - http_enabled: false - transport_enabled: false - order: 0 - http_authenticator: - type: jwt - challenge: false - config: - signing_key: "base64 encoded HMAC key or public RSA/ECDSA pem key" - jwt_header: "Authorization" - jwt_url_parameter: null - roles_key: null - subject_key: null - authentication_backend: - type: noop - clientcert_auth_domain: - http_enabled: false - transport_enabled: false - order: 2 - http_authenticator: - type: clientcert - config: - username_attribute: cn #optional, if omitted DN becomes username - challenge: false - authentication_backend: - type: noop - authz: -# auth_failure_listeners: -# ip_rate_limiting: -# type: ip -# allowed_tries: 10 -# time_window_seconds: 3600 -# block_expiry_seconds: 600 -# max_blocked_clients: 100000 -# max_tracked_clients: 100000 -# internal_authentication_backend_limiting: -# type: username -# authentication_backend: intern -# allowed_tries: 10 -# time_window_seconds: 3600 -# block_expiry_seconds: 600 -# max_blocked_clients: 100000 -# max_tracked_clients: 100000 -
\ No newline at end of file diff --git a/src/main/docker/elasticsearch/config/sg/sg_internal_users.yml b/src/main/docker/elasticsearch/config/sg/sg_internal_users.yml deleted file mode 100644 index 1712d3792..000000000 --- a/src/main/docker/elasticsearch/config/sg/sg_internal_users.yml +++ /dev/null @@ -1,45 +0,0 @@ -# This is the internal user database -# The hash value is a bcrypt hash and can be generated with plugin/tools/hash.sh - -#password is: admin -admin: - readonly: true - hash: $2a$12$VcCDgh2NDk07JGN0rjGbM.Ad41qVR/YFJcgHp0UGns5JDymv..TOG - roles: - - admin - attributes: - #no dots allowed in attribute names - attribute1: value1 - attribute2: value2 - attribute3: value3 - -#password is: logstash -logstash: - hash: $2a$12$u1ShR4l4uBS3Uv59Pa2y5.1uQuZBrZtmNfqB3iM/.jL0XoV9sghS2 - roles: - - logstash - -#password is: kibanaserver -kibanaserver: - readonly: true - hash: $2a$12$4AcgAt3xwOWadA5s5blL6ev39OXDNhmOesEoo33eZtrq2N0YrU3H. - -#password is: kibanaro -kibanaro: - hash: $2a$12$JJSXNfTowz7Uu5ttXfeYpeYE0arACvcwlPBStB1F.MI7f0U9Z4DGC - roles: - - kibanauser - - readall - -#password is: readall -readall: - hash: $2a$12$ae4ycwzwvLtZxwZ82RmiEunBbIPiAmGZduBAjKN0TXdwQFtCwARz2 - #password is: readall - roles: - - readall - -#password is: snapshotrestore -snapshotrestore: - hash: $2y$12$DpwmetHKwgYnorbgdvORCenv4NAK8cPUg8AI6pxLCuWf/ALc0.v7W - roles: - - snapshotrestore
\ No newline at end of file diff --git a/src/main/docker/elasticsearch/config/sg/sg_roles.yml b/src/main/docker/elasticsearch/config/sg/sg_roles.yml deleted file mode 100644 index 1a3a80ce5..000000000 --- a/src/main/docker/elasticsearch/config/sg/sg_roles.yml +++ /dev/null @@ -1,300 +0,0 @@ -#<sg_role_name>: -# cluster: -# - '<permission>' -# indices: -# '<indexname or alias>': -# '<type>': -# - '<permission>' -# _dls_: '<dls query>' -# _fls_: -# - '<field>' -# - '<field>' - -# When a user make a request to Elasticsearch then the following roles will be evaluated to see if the user has -# permissions for the request. A request is always associated with an action and is executed against and index (or alias) -# and a type. If a request is executed against all indices (or all types) then the asterix ('*') is needed. -# Every role a user has will be examined if it allows the action against an index (or type). At least one role must match -# for the request to be successful. If no role match then the request will be denied. Currently a match must happen within -# one single role - that means that permissions can not span multiple roles. - -# For <permission>, <indexname or alias> and <type> simple wildcards and regular expressions are possible. -# A asterix (*) will match any character sequence (or an empty sequence) -# A question mark (?) will match any single character (but NOT empty character) -# Example: '*my*index' will match 'my_first_index' as well as 'myindex' but not 'myindex1' -# Example: '?kibana' will match '.kibana' but not 'kibana' - -# To use a full blown regex you have to pre- and apend a '/' to use regex instead of simple wildcards -# '/<java regex>/' -# Example: '/\S*/' will match any non whitespace characters - -# Important: -# Index, alias or type names can not contain dots (.) in the <indexname or alias> or <type> expression. -# Reason is that we currently parse the config file into a elasticsearch settings object which cannot cope with dots in keys. -# Workaround: Just configure something like '?kibana' instead of '.kibana' or 'my?index' instead of 'my.index' -# This limitation will likely removed with Search Guard 6 -# -# Some SearchGuard functionality is licensed under Apache-2.0, while other functionality is non-free; -# see https://github.com/floragunncom/search-guard. The functionality enabled in this configuration -# file only include those that are licensed under Apache-2.0. Please use care and review SearchGuard's -# license details before enabling any additional features here. - -# Allows everything, but no changes to searchguard configuration index -sg_all_access: - readonly: true - cluster: - - UNLIMITED - indices: - '*': - '*': - - UNLIMITED - tenants: - admin_tenant: RW - -# Read all, but no write permissions -sg_readall: - readonly: true - cluster: - - CLUSTER_COMPOSITE_OPS_RO - indices: - '*': - '*': - - READ - -# Read all and monitor, but no write permissions -sg_readall_and_monitor: - cluster: - - CLUSTER_MONITOR - - CLUSTER_COMPOSITE_OPS_RO - indices: - '*': - '*': - - READ - -# For users which use kibana, access to indices must be granted separately -sg_kibana_user: - readonly: true - cluster: - - INDICES_MONITOR - - CLUSTER_COMPOSITE_OPS - indices: - '?kibana': - '*': - - MANAGE - - INDEX - - READ - - DELETE - '?kibana-6': - '*': - - MANAGE - - INDEX - - READ - - DELETE - '?kibana_*': - '*': - - MANAGE - - INDEX - - READ - - DELETE - '?tasks': - '*': - - INDICES_ALL - '?management-beats': - '*': - - INDICES_ALL - '*': - '*': - - indices:data/read/field_caps* - - indices:data/read/xpack/rollup* - - indices:admin/mappings/get* - - indices:admin/get - -# For the kibana server -sg_kibana_server: - readonly: true - cluster: - - CLUSTER_MONITOR - - CLUSTER_COMPOSITE_OPS - - cluster:admin/xpack/monitoring* - - indices:admin/template* - - indices:data/read/scroll* - indices: - '?kibana': - '*': - - INDICES_ALL - '?kibana-6': - '*': - - INDICES_ALL - '?kibana_*': - '*': - - INDICES_ALL - '?reporting*': - '*': - - INDICES_ALL - '?monitoring*': - '*': - - INDICES_ALL - '?tasks': - '*': - - INDICES_ALL - '?management-beats*': - '*': - - INDICES_ALL - '*': - '*': - - "indices:admin/aliases*" - -# For logstash and beats -sg_logstash: - cluster: - - ES_INPUT - - CLUSTER_MONITOR - - CLUSTER_COMPOSITE_OPS - - indices:admin/template/get - - indices:admin/template/put - indices: - 'logstash-*': - '*': - - INDEX_OWNER - '*beat*': - '*': - - INDEX_OWNER - 'dmaap*': - '*': - - INDEX_OWNER - 'events*': - '*': - - INDEX_OWNER - 'errors*': - '*': - - INDEX_OWNER - -# Allows adding and modifying repositories and creating and restoring snapshots -sg_manage_snapshots: - cluster: - - MANAGE_SNAPSHOTS - indices: - '*': - '*': - - "indices:data/write/index" - - "indices:admin/create" - -# Allows each user to access own named index -sg_own_index: - cluster: - - CLUSTER_COMPOSITE_OPS - indices: - '${user_name}': - '*': - - INDICES_ALL - -### X-Pack COMPATIBILITY -sg_xp_monitoring: - readonly: true - cluster: - - cluster:monitor/xpack/info - - cluster:monitor/main - - cluster:admin/xpack/monitoring/bulk - indices: - '?monitor*': - '*': - - INDICES_ALL - -sg_xp_alerting: - readonly: true - cluster: - - indices:data/read/scroll - - cluster:admin/xpack/watcher* - - cluster:monitor/xpack/watcher* - indices: - '?watches*': - '*': - - INDICES_ALL - '?watcher-history-*': - '*': - - INDICES_ALL - '?triggered_watches': - '*': - - INDICES_ALL - '*': - '*': - - READ - - indices:admin/aliases/get - -sg_xp_machine_learning: - readonly: true - cluster: - - cluster:admin/persistent* - - cluster:internal/xpack/ml* - - indices:data/read/scroll* - - cluster:admin/xpack/ml* - - cluster:monitor/xpack/ml* - indices: - '*': - '*': - - READ - - indices:admin/get* - '?ml-*': - '*': - - "*" - - -### LEGACY ROLES, FOR COMPATIBILITY ONLY -### WILL BE REMOVED IN SG7, DO NOT USE ANYMORE - -sg_readonly_and_monitor: - cluster: - - CLUSTER_MONITOR - - CLUSTER_COMPOSITE_OPS_RO - indices: - '*': - '*': - - READ - -# Make xpack monitoring work -sg_monitor: - cluster: - - cluster:admin/xpack/monitoring/* - - cluster:admin/ingest/pipeline/put - - cluster:admin/ingest/pipeline/get - - indices:admin/template/get - - indices:admin/template/put - - CLUSTER_MONITOR - - CLUSTER_COMPOSITE_OPS - indices: - '?monitor*': - '*': - - INDICES_ALL - '?marvel*': - '*': - - INDICES_ALL - '?kibana*': - '*': - - READ - '*': - '*': - - indices:data/read/field_caps - -# Make xpack alerting work -sg_alerting: - cluster: - - indices:data/read/scroll - - cluster:admin/xpack/watcher/watch/put - - cluster:admin/xpack/watcher* - - CLUSTER_MONITOR - - CLUSTER_COMPOSITE_OPS - indices: - '?kibana*': - '*': - - READ - '?watches*': - '*': - - INDICES_ALL - '?watcher-history-*': - '*': - - INDICES_ALL - '?triggered_watches': - '*': - - INDICES_ALL - '*': - '*': - - READ diff --git a/src/main/docker/elasticsearch/config/sg/sg_roles_mapping.yml b/src/main/docker/elasticsearch/config/sg/sg_roles_mapping.yml deleted file mode 100644 index 45bb77556..000000000 --- a/src/main/docker/elasticsearch/config/sg/sg_roles_mapping.yml +++ /dev/null @@ -1,34 +0,0 @@ -# In this file users, backendroles and hosts can be mapped to Search Guard roles. -# Permissions for Search Guard roles are configured in sg_roles.yml - -sg_all_access: - readonly: true - backendroles: - - admin - -sg_logstash: - backendroles: - - logstash - -sg_kibana_server: - readonly: true - users: - - kibanaserver - -sg_kibana_user: - backendroles: - - kibanauser - -sg_readall: - readonly: true - backendroles: - - readall - -sg_manage_snapshots: - readonly: true - backendroles: - - snapshotrestore - -sg_own_index: - users: - - '*'
\ No newline at end of file diff --git a/src/main/docker/elasticsearch/config/sg/truststore.jks b/src/main/docker/elasticsearch/config/sg/truststore.jks Binary files differdeleted file mode 100644 index 7a1b59a8d..000000000 --- a/src/main/docker/elasticsearch/config/sg/truststore.jks +++ /dev/null diff --git a/src/main/docker/elasticsearch/my-entrypoint.sh b/src/main/docker/elasticsearch/my-entrypoint.sh deleted file mode 100644 index 9eee64e0c..000000000 --- a/src/main/docker/elasticsearch/my-entrypoint.sh +++ /dev/null @@ -1,8 +0,0 @@ -source init_sg.sh - -while [ $? -ne 0 ]; do - sleep 10 - source init_sg.sh -done & - -/bin/bash -c "source /usr/local/bin/docker-entrypoint.sh;" diff --git a/src/main/docker/kibana/Dockerfile b/src/main/docker/kibana/Dockerfile deleted file mode 100644 index 21e892525..000000000 --- a/src/main/docker/kibana/Dockerfile +++ /dev/null @@ -1,61 +0,0 @@ -### -# ============LICENSE_START======================================================= -# ONAP CLAMP -# ================================================================================ -# Copyright (C) 2018 AT&T Intellectual Property. All rights -# reserved. -# ================================================================================ -# 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. -# ============LICENSE_END============================================ -# =================================================================== -# -### - -FROM docker.elastic.co/kibana/kibana-oss:6.6.2 - -# Search Guard plugin -RUN kibana-plugin install https://repo1.maven.org/maven2/com/floragunn/search-guard-kibana-plugin/6.6.2-18.4/search-guard-kibana-plugin-6.6.2-18.4.zip - -MAINTAINER "The Onap Team" -LABEL Description="Kibana image with saved objects loading and Search Guard support" -USER root -RUN yum install -y python-requests && yum clean all - -# You can share volume on this folder to restore -# a default kibana configuration. Each subfolder will -# be considered as a saved-object folder generated by, -# the backup.py script bundled with the image. -# Structure example : -# saved-objects/ -# └── default -# ├── config -# │  └── config-6.1.3.json -# ├── dashboard -# │  └── dashboard-e6a82230-c190-11e8-a550-27f2e3138fee.json -# ├── index-pattern -# │  └── index-pattern-3ecb1c70-c190-11e8-a550-27f2e3138fee.json -# ├── search -# │  └── search-abdd0440-c190-11e8-a550-27f2e3138fee.json -# └── visualization -# ├── visualization-cb896270-c190-11e8-a550-27f2e3138fee.json -# └── visualization-d837b120-c190-11e8-a550-27f2e3138fee.json - -RUN mkdir /saved-objects/ && chown kibana:kibana /saved-objects/ - -USER kibana - -ADD saved-objects /saved-objects -ADD startup.sh /usr/local/bin/startup.sh -ADD restore.py /usr/local/bin/restore.py -ADD backup.py /usr/local/bin/backup.py -CMD /usr/local/bin/startup.sh diff --git a/src/main/docker/kibana/README.md b/src/main/docker/kibana/README.md deleted file mode 100644 index e69de29bb..000000000 --- a/src/main/docker/kibana/README.md +++ /dev/null diff --git a/src/main/docker/kibana/backup.py b/src/main/docker/kibana/backup.py deleted file mode 100755 index b1e45181b..000000000 --- a/src/main/docker/kibana/backup.py +++ /dev/null @@ -1,89 +0,0 @@ -#!/usr/bin/env python -### -# ============LICENSE_START======================================================= -# ONAP CLAMP -# ================================================================================ -# Copyright (C) 2018 AT&T Intellectual Property. All rights -# reserved. -# ================================================================================ -# 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. -# ============LICENSE_END============================================ -# =================================================================== -# -### - -import json -import logging -import os -import sys - -import requests - -PER_PAGE = 1000 - -def parse_args(args): - """ Parse arguments given to this script""" - import argparse - parser = argparse.ArgumentParser( - description=('Description of the script')) - parser.add_argument('-v', '--verbose', dest='log_level', action='store_const', - const=logging.DEBUG, default=logging.INFO, - help='Use verbose logging') - parser.add_argument('-C', '--configuration_path', - default='./default', - help='Path of the configuration to be backed up.') - parser.add_argument('-f', '--force', action='store_const', - const=True, default=False, - help=('If the save folder already exists, overwrite files' - ' matching a configuration item that should be written.' - ' Files already in the folder that do not match are' - ' left as-is.')) - parser.add_argument('-H', '--kibana-host', default='https://localhost:5601', - help='Kibana endpoint.') - - return parser.parse_args(args) - -def get_logger(args): - """Creates the logger based on the provided arguments""" - logging.basicConfig() - logger = logging.getLogger(__name__) - logger.setLevel(args.log_level) - return logger - -def main(): - """ This script dumps the kibana configuration from Kibana""" - args = parse_args(sys.argv[1:]) - - base_config_path = args.configuration_path - - # get list of the set of objects we update - url = "%s/api/saved_objects/_find" % (args.kibana_host.rstrip("/"),) - saved_objects_req = requests.get(url, auth=('admin', 'admin'), verify=False, - params={'per_page': PER_PAGE,'type':['config','search','dashboard','visualization','index-pattern']}) - - saved_objects = saved_objects_req.json()['saved_objects'] - - for obj in saved_objects: - - obj_folder = os.path.sep.join((base_config_path, obj['type'])) - - if not os.path.exists(obj_folder): - os.makedirs(obj_folder) - - filename = "%s/%s-%s.json" % (obj_folder, obj['type'], obj['id']) - with open(filename, 'w') as file: - json.dump(obj, fp=file) - - -if __name__ == "__main__": - main() diff --git a/src/main/docker/kibana/conf/keystore/org.onap.clamp.crt.pem b/src/main/docker/kibana/conf/keystore/org.onap.clamp.crt.pem deleted file mode 100644 index ce630d435..000000000 --- a/src/main/docker/kibana/conf/keystore/org.onap.clamp.crt.pem +++ /dev/null @@ -1,30 +0,0 @@ -Bag Attributes - friendlyName: clamp@clamp.onap.org - localKeyID: 54 69 6D 65 20 31 35 35 33 37 38 37 35 31 38 33 30 33 -subject=/CN=clamp/emailAddress=/OU=clamp@clamp.onap.org/OU=OSAAF/O=ONAP/C=US -issuer=/C=US/O=ONAP/OU=OSAAF/CN=intermediateCA_9 ------BEGIN CERTIFICATE----- -MIIEKDCCAxCgAwIBAgIIWY+5kgf/UG4wDQYJKoZIhvcNAQELBQAwRzELMAkGA1UE -BhMCVVMxDTALBgNVBAoMBE9OQVAxDjAMBgNVBAsMBU9TQUFGMRkwFwYDVQQDDBBp -bnRlcm1lZGlhdGVDQV85MB4XDTE5MDMyMTE2MTY1OFoXDTIwMDMyMTE2MTY1OFow -bDEOMAwGA1UEAwwFY2xhbXAxDzANBgkqhkiG9w0BCQEWADEdMBsGA1UECwwUY2xh -bXBAY2xhbXAub25hcC5vcmcxDjAMBgNVBAsMBU9TQUFGMQ0wCwYDVQQKDARPTkFQ -MQswCQYDVQQGEwJVUzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALic -uDccBjOAlOsL1Z1nKnDPRTNxBwIVfARRQDxK3C0zDHQ5qEmIQlF0Vjp+bJ2rgzMW -BnodC38zt1jSXymEsekZNV2sUyBbzJl6vxvA1xJKI9VHLyPSzyUEd1H4qh8b7IDX -3GDqUJgNfvzJ94DaNnnYWFVZq/IYdLjCFaXDxPUQZtlmpdkIWBzvMeNRe4bWajau -immkmSi5/2BYQfZXHXpiKiyBnN+1FbU3consmjNwS1L+PjD+k3JLsc5ANZYZMOTp -Szhu3xmDiB3UV4gPQWacQQZEo/5exywY3Ax3TowGwIA660eSkW1L5RPdyvzEgp7A -vu4+rbhfeR5bXjy2iAUCAwEAAaOB8jCB7zAJBgNVHRMEAjAAMA4GA1UdDwEB/wQE -AwIF4DAgBgNVHSUBAf8EFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwVAYDVR0jBE0w -S4AUgfeZWxC5yIze81Je6k5poEM+rN2hMKQuMCwxDjAMBgNVBAsMBU9TQUFGMQ0w -CwYDVQQKDARPTkFQMQswCQYDVQQGEwJVU4IBBzAdBgNVHQ4EFgQU+GZ6wmWDPrmq -Wd1/NtMYiCQ8Dg4wOwYDVR0RBDQwMoIFY2xhbXCCHWNsYW1wLmFwaS5zaW1wbGVk -ZW1vLm9uYXAub3JnggpjbGFtcC5vbmFwMA0GCSqGSIb3DQEBCwUAA4IBAQCFZdhB -U6xm6l0vj4q89onLx4opTPvwGNRc0n402lifkPYXseFtphZSHIf2Sg0mFTH4KHb4 -FdMyBzq1+f5WLU+xRC1nT4eGJ0FvRR6204/fGVrzJTS67phnRnxr2WZzLPW0wPJe -K8SzN6tkUgE7/a/s0T/htE/blDxWh75+tA2jQlgj1Ri0y9A1J8wx++REKjGlHjFN -53aiipsB+wC/oEMzYL4qEPiYPI0Lr3Lsay1F7f6cvDT4+EYzBLMFuwCvpcnHgSMS -4fFj2ROmUG2+CC23B88Q0WNxjLPq/CrmHZZBsqwruPJ0cSuCQxfshTQ6uZhcjtu8 -6TRYkIcL0x9r/AHP ------END CERTIFICATE----- diff --git a/src/main/docker/kibana/conf/keystore/org.onap.clamp.key.pem b/src/main/docker/kibana/conf/keystore/org.onap.clamp.key.pem deleted file mode 100644 index fcf68bfa2..000000000 --- a/src/main/docker/kibana/conf/keystore/org.onap.clamp.key.pem +++ /dev/null @@ -1,32 +0,0 @@ -Bag Attributes - friendlyName: clamp@clamp.onap.org - localKeyID: 54 69 6D 65 20 31 35 35 33 37 38 37 35 31 38 33 30 33 -Key Attributes: <No Attributes> ------BEGIN PRIVATE KEY----- -MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQC4nLg3HAYzgJTr -C9WdZypwz0UzcQcCFXwEUUA8StwtMwx0OahJiEJRdFY6fmydq4MzFgZ6HQt/M7dY -0l8phLHpGTVdrFMgW8yZer8bwNcSSiPVRy8j0s8lBHdR+KofG+yA19xg6lCYDX78 -yfeA2jZ52FhVWavyGHS4whWlw8T1EGbZZqXZCFgc7zHjUXuG1mo2ropppJkouf9g -WEH2Vx16YiosgZzftRW1N3KJ7JozcEtS/j4w/pNyS7HOQDWWGTDk6Us4bt8Zg4gd -1FeID0FmnEEGRKP+XscsGNwMd06MBsCAOutHkpFtS+UT3cr8xIKewL7uPq24X3ke -W148togFAgMBAAECggEATncV+R5pKFS7dteV2IvzxvTh1cZxkxoslu0t3zJ2OKPc -5D1pYK+QeGx5Be2cHru6TOlMoXRc4ZjKke8AUXY74/Y573GB91vtL0KznYkuIHDw -oALcb153eqVWTbniHMzSjcSxv2N4E9iQo8L39oVI6CrjCIvPgFuSqMCdUNJPkVTI -4nsarTfLK4fzi7IbWzi9JdE1QRNIxcCMcYJRnLZMdneMLBleR0UL82Xc2KOy5SEt -zyKYCQ8zS247FKolnOrDkhKxXI5fzdDpRK5AQSsAykUPWlYq7pzKjY/dU9rMRohx -YSltFjPZ3sQ3UKqqIqhZS+GoVuZoc925WyhViPsqtQKBgQDsL4LFfPWN8nnsusQp -VR3T7HvvwXuEVAydlaJMwZU0cRYN+L7RHHjDoXZZrNJDIDzNoWnBLKRGx3mtLmgJ -9Pa6SxN6Oc8oo6jzv2D59g1PVjNOMOYTCTb/2Xum4LMLaeeF57HkWxzeA3Ws47++ -gXwzQpbE90tp1Ys4uXD3JoivvwKBgQDIGZTwLGhLSegdAjG83WEgmdtzT1kjvx0Q -A8IR2jkgkTJHdKiuslJ8Z3/XufHEwWMWwfs1XLwxYluoo1y9eNvNeHZXjLqjL62c -I3034F9IvvTUqFcxam2WdoklXbAiSvLUo/9exPgOuVxok6Zv1imRgGb/vYV9vyG7 -86MRuQu5OwKBgQC9E3fcA6JMpY3H3uhEsngzfMDm+fyYvfRvfyezzNFWbyWZv8V6 -gBGJg0vMlFarGDa044BW/hbw9qXI5zqwpeOS1aFdGsRlo0cRAuduk/Spy7c85FZ7 -bMgT4BZmTMHo5DpNb2NxDSO59AkThCuvJde47ZjnS5WavzI6EfKGWNnZ3wKBgQCF -QiwjCp/mS/DtqLFxAsmVSYGROG231aXILYiIFRloa+ndFn7j4NP4D4FfLHErRFL2 -K/ddIUYfaU57b1fqwts26ht90LXWyYDH9AaHOMCcFLe+C+INgcA7rPNG1C7hl6JC -JHmEJo7AV4eICZSU9D44rRdrB08oYCpaHjYiLmb1UwKBgQCWCDJ4p2DrNL9hzj3K -kzvM5saXrfI4aVBXVt9rw9s1d/WG8JOpnmHcnLPb6Tj59rDktrLCLv0sVstMwNVJ -sOO+qsgn1VoZalcVhhjdONm5YvhJQgz0F7Y2xkr6g/AuMPz2YigGfm7fe/z7rc+L -q9Ua2HmUS8DDBy7W89MNZJNkDQ== ------END PRIVATE KEY----- diff --git a/src/main/docker/kibana/conf/kibana.yml b/src/main/docker/kibana/conf/kibana.yml deleted file mode 100644 index cfec41e3b..000000000 --- a/src/main/docker/kibana/conf/kibana.yml +++ /dev/null @@ -1,17 +0,0 @@ ---- -# Default Kibana configuration from kibana-docker. - -server.name: kibana -server.host: "0" -elasticsearch.hosts: http://elasticsearch:9200 -server.ssl.enabled: true -server.ssl.key: /usr/share/kibana/config/keystore/org.onap.clamp.key.pem -server.ssl.certificate: /usr/share/kibana/config/keystore/org.onap.clamp.crt.pem - -## Search Guard -# -#xpack.security.enabled: false -elasticsearch.username: kibanaserver -elasticsearch.password: kibanaserver - -searchguard.cookie.password: 123567818187654rwrwfsfshdhdhtegdhfzftdhncn
\ No newline at end of file diff --git a/src/main/docker/kibana/restore.py b/src/main/docker/kibana/restore.py deleted file mode 100755 index eee2e6b76..000000000 --- a/src/main/docker/kibana/restore.py +++ /dev/null @@ -1,115 +0,0 @@ -#!/usr/bin/env python -### -# ============LICENSE_START======================================================= -# ONAP CLAMP -# ================================================================================ -# Copyright (C) 2018 AT&T Intellectual Property. All rights -# reserved. -# ================================================================================ -# 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. -# ============LICENSE_END============================================ -# =================================================================== -# -### -import json -import logging -import os -import sys - -import requests - -if sys.version_info < (3,): - # for HTTPStatus.OK only - import httplib as HTTPStatus -else: - from http import HTTPStatus - - - -OBJECT_TYPES = ['index-pattern', 'config', 'search', 'visualization', 'dashboard'] - -def parse_args(args): - """ Parse arguments given to this script""" - import argparse - parser = argparse.ArgumentParser( - description=('Restores the kibana configuration.')) - parser.add_argument('-v', '--verbose', dest='log_level', action='store_const', - const=logging.DEBUG, default=logging.INFO, - help='Use verbose logging') - parser.add_argument('-C', '--configuration_path', - default='./default', - help=('Path of the configuration to be restored.' - 'Should contain at least one folder named %s or %s' % - (','.join(OBJECT_TYPES[:-1]), OBJECT_TYPES[-1]) - ) - ) - parser.add_argument('-H', '--kibana-host', default='https://localhost:5601', - help='Kibana endpoint.') - parser.add_argument('-f', '--force', action='store_const', - const=True, default=False, - help='Overwrite configuration if needed.') - - return parser.parse_args(args) - -def get_logger(args): - """Creates the logger based on the provided arguments""" - logging.basicConfig() - logger = logging.getLogger(__name__) - logger.setLevel(args.log_level) - return logger - -def main(): - ''' Main script function''' - args = parse_args(sys.argv[1:]) - logger = get_logger(args) - base_config_path = args.configuration_path - - # order to ensure dependency order is ok - for obj_type in OBJECT_TYPES: - obj_dir = os.path.sep.join((base_config_path, obj_type)) - - if not os.path.exists(obj_dir): - logger.info('No %s to restore, skipping.', obj_type) - continue - - for obj_filename in os.listdir(obj_dir): - with open(os.path.sep.join((obj_dir, obj_filename))) as obj_file: - payload = obj_file.read() - - obj = json.loads(payload) - - obj_id = obj['id'] - for key in ('id', 'version', 'type', 'updated_at'): - try: - del obj[key] - except KeyError: - logger.info("Could not find key %s in %s[%s]", key, obj_type, obj_id) - - logger.info('Restoring %s id:%s (overwrite:%s)', obj_type, obj_id, args.force) - url = "%s/api/saved_objects/%s/%s" % (args.kibana_host.rstrip("/"), obj_type, obj_id) - params = {'overwrite': True} if args.force else {} - post_object_req = requests.post(url, auth=('admin', 'admin'), verify=False, - headers={'content-type': 'application/json', - 'kbn-xsrf': 'True'}, - params=params, - data=json.dumps(obj)) - if post_object_req.status_code == HTTPStatus.OK: - logger.info('%s id:%s restored.', obj_type, obj_id) - else: - logger.warning(('Something bad happend while restoring %s id:%s. ' - ' Received status code: %s'), - obj_type, obj_id, post_object_req.status_code) - logger.warning('Body: %s', post_object_req.content) - -if __name__ == "__main__": - main() diff --git a/src/main/docker/kibana/saved-objects/default/config/config-6.6.2.json b/src/main/docker/kibana/saved-objects/default/config/config-6.6.2.json deleted file mode 100644 index 41aee4828..000000000 --- a/src/main/docker/kibana/saved-objects/default/config/config-6.6.2.json +++ /dev/null @@ -1 +0,0 @@ -{"attributes": {"buildNum": 19548, "defaultIndex": "04e06060-50bf-11e9-b3a3-7302725859d5"}, "version": 2, "type": "config", "id": "6.6.2", "updated_at": "2019-04-03T18:36:56.261Z"}
\ No newline at end of file diff --git a/src/main/docker/kibana/saved-objects/default/dashboard/dashboard-e12b9f50-3a83-11e9-ba41-bb0c8f21f2f4.json b/src/main/docker/kibana/saved-objects/default/dashboard/dashboard-e12b9f50-3a83-11e9-ba41-bb0c8f21f2f4.json deleted file mode 100644 index 76670d241..000000000 --- a/src/main/docker/kibana/saved-objects/default/dashboard/dashboard-e12b9f50-3a83-11e9-ba41-bb0c8f21f2f4.json +++ /dev/null @@ -1 +0,0 @@ -{"attributes": {"hits": 0, "timeRestore": false, "description": "", "title": "Clamp Dashboard", "uiStateJSON": "{\n \"P-4\": {\n \"vis\": {\n \"legendOpen\": false\n }\n },\n \"P-6\": {\n \"vis\": {\n \"params\": {\n \"sort\": {\n \"columnIndex\": null,\n \"direction\": null\n }\n }\n }\n }\n}", "panelsJSON": "[\n {\n \"gridData\": {\n \"h\": 3,\n \"i\": \"1\",\n \"w\": 6,\n \"x\": 0,\n \"y\": 0\n },\n \"id\": \"e1f0fa00-38f5-11e9-beac-8d2beda26615\",\n \"panelIndex\": \"1\",\n \"type\": \"visualization\",\n \"version\": \"6.1.3\"\n },\n {\n \"gridData\": {\n \"h\": 3,\n \"i\": \"2\",\n \"w\": 6,\n \"x\": 6,\n \"y\": 0\n },\n \"id\": \"f724dfd0-38f6-11e9-beac-8d2beda26615\",\n \"panelIndex\": \"2\",\n \"type\": \"visualization\",\n \"version\": \"6.1.3\"\n },\n {\n \"gridData\": {\n \"h\": 3,\n \"i\": \"3\",\n \"w\": 6,\n \"x\": 0,\n \"y\": 3\n },\n \"id\": \"9a1a6750-38f7-11e9-beac-8d2beda26615\",\n \"panelIndex\": \"3\",\n \"type\": \"visualization\",\n \"version\": \"6.1.3\"\n },\n {\n \"gridData\": {\n \"h\": 3,\n \"i\": \"4\",\n \"w\": 6,\n \"x\": 6,\n \"y\": 3\n },\n \"id\": \"0ef409f0-38f8-11e9-beac-8d2beda26615\",\n \"panelIndex\": \"4\",\n \"type\": \"visualization\",\n \"version\": \"6.1.3\"\n },\n {\n \"gridData\": {\n \"h\": 3,\n \"i\": \"5\",\n \"w\": 6,\n \"x\": 0,\n \"y\": 6\n },\n \"id\": \"ae8c22b0-3905-11e9-beac-8d2beda26615\",\n \"panelIndex\": \"5\",\n \"type\": \"visualization\",\n \"version\": \"6.1.3\"\n },\n {\n \"gridData\": {\n \"h\": 3,\n \"i\": \"6\",\n \"w\": 6,\n \"x\": 6,\n \"y\": 6\n },\n \"id\": \"a9d9d120-38f8-11e9-beac-8d2beda26615\",\n \"panelIndex\": \"6\",\n \"type\": \"visualization\",\n \"version\": \"6.1.3\"\n }\n]", "optionsJSON": "{\n \"darkTheme\": false,\n \"hidePanelTitles\": false,\n \"useMargins\": true\n}", "version": 1, "kibanaSavedObjectMeta": {"searchSourceJSON": "{\n \"query\": {\n \"language\": \"lucene\",\n \"query\": \"\"\n },\n \"filter\": [],\n \"highlightAll\": true,\n \"version\": true\n}"}}, "version": 4, "type": "dashboard", "id": "e12b9f50-3a83-11e9-ba41-bb0c8f21f2f4", "updated_at": "2019-04-04T06:45:02.504Z"}
\ No newline at end of file diff --git a/src/main/docker/kibana/saved-objects/default/index-pattern/index-pattern-04e06060-50bf-11e9-b3a3-7302725859d5.json b/src/main/docker/kibana/saved-objects/default/index-pattern/index-pattern-04e06060-50bf-11e9-b3a3-7302725859d5.json deleted file mode 100644 index 5f2772103..000000000 --- a/src/main/docker/kibana/saved-objects/default/index-pattern/index-pattern-04e06060-50bf-11e9-b3a3-7302725859d5.json +++ /dev/null @@ -1 +0,0 @@ -{"attributes": {"fields": "[{\"name\":\"@timestamp\",\"type\":\"date\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"@version\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"@version.keyword\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"AAI.generic-vnf.in-maint\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"AAI.generic-vnf.in-maint.keyword\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"AAI.generic-vnf.ipv4-oam-address\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"AAI.generic-vnf.ipv4-oam-address.keyword\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"AAI.generic-vnf.is-closed-loop-disabled\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"AAI.generic-vnf.is-closed-loop-disabled.keyword\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"AAI.generic-vnf.model-customization-id\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"AAI.generic-vnf.model-customization-id.keyword\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"AAI.generic-vnf.model-invariant-id\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"AAI.generic-vnf.model-invariant-id.keyword\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"AAI.generic-vnf.model-version-id\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"AAI.generic-vnf.model-version-id.keyword\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"AAI.generic-vnf.nf-function\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"AAI.generic-vnf.nf-function.keyword\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"AAI.generic-vnf.nf-naming-code\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"AAI.generic-vnf.nf-naming-code.keyword\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"AAI.generic-vnf.nf-role\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"AAI.generic-vnf.nf-role.keyword\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"AAI.generic-vnf.nf-type\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"AAI.generic-vnf.nf-type.keyword\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"AAI.generic-vnf.orchestration-status\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"AAI.generic-vnf.orchestration-status.keyword\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"AAI.generic-vnf.prov-status\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"AAI.generic-vnf.prov-status.keyword\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"AAI.generic-vnf.resource-version\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"AAI.generic-vnf.resource-version.keyword\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"AAI.generic-vnf.service-id\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"AAI.generic-vnf.service-id.keyword\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"AAI.generic-vnf.vnf-id\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"AAI.generic-vnf.vnf-id.keyword\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"AAI.generic-vnf.vnf-name\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"AAI.generic-vnf.vnf-name.keyword\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"AAI.generic-vnf.vnf-type\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"AAI.generic-vnf.vnf-type.keyword\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"AAI.vserver.vserver-name\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"AAI.vserver.vserver-name.keyword\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"_id\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":false},{\"name\":\"_index\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":false},{\"name\":\"_score\",\"type\":\"number\",\"count\":0,\"scripted\":false,\"searchable\":false,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"_source\",\"type\":\"_source\",\"count\":0,\"scripted\":false,\"searchable\":false,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"_type\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":false},{\"name\":\"closedLoopAlarmStart\",\"type\":\"date\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"closedLoopControlName\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"closedLoopControlName.keyword\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"closedLoopEventClient\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"closedLoopEventClient.keyword\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"flagFinalFailure\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"flagFinalFailure.keyword\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"from\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"from.keyword\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"history.actor\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"history.actor.keyword\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"history.end\",\"type\":\"number\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"history.message\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"history.message.keyword\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"history.operation\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"history.operation.keyword\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"history.outcome\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"history.outcome.keyword\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"history.start\",\"type\":\"number\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"history.subRequestId\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"history.subRequestId.keyword\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"history.target\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"history.target.keyword\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"notification\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"notification.keyword\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"notificationTime\",\"type\":\"date\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"policyName\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"policyName.keyword\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"policyScope\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"policyScope.keyword\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"policyVersion\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"policyVersion.keyword\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"requestId\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"requestId.keyword\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"tags\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"tags.keyword\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"target\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"target.keyword\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"targetType\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"targetType.keyword\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"type\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"type.keyword\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"version\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"version.keyword\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"vmName\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"vmName.keyword\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"vnfName\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"vnfName.keyword\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"vnfType\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"vnfType.keyword\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true}]", "timeFieldName": "@timestamp", "title": "events-*"}, "version": 2, "type": "index-pattern", "id": "04e06060-50bf-11e9-b3a3-7302725859d5", "updated_at": "2019-03-27T18:34:58.345Z"}
\ No newline at end of file diff --git a/src/main/docker/kibana/saved-objects/default/search/search-AWIk8yDIDjJ4k3sPXRbu.json b/src/main/docker/kibana/saved-objects/default/search/search-AWIk8yDIDjJ4k3sPXRbu.json deleted file mode 100644 index 0b3d3e947..000000000 --- a/src/main/docker/kibana/saved-objects/default/search/search-AWIk8yDIDjJ4k3sPXRbu.json +++ /dev/null @@ -1 +0,0 @@ -{"attributes": {"sort": ["closedLoopAlarmStart", "desc"], "hits": 0, "description": "", "title": "ONSET", "version": 1, "kibanaSavedObjectMeta": {"searchSourceJSON": "{\"index\":\"45238b70-b7ae-11e8-8c46-97881a199baf\",\"highlightAll\":true,\"version\":true,\"query\":{\"language\":\"lucene\",\"query\":{\"match_all\":{}}},\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"index\":\"AWIk7j2UDjJ4k3sPXRaY\",\"key\":\"closedLoopEventStatus.keyword\",\"negate\":false,\"params\":{\"query\":\"ONSET\",\"type\":\"phrase\"},\"type\":\"phrase\",\"value\":\"ONSET\"},\"query\":{\"match\":{\"closedLoopEventStatus.keyword\":{\"query\":\"ONSET\",\"type\":\"phrase\"}}}}]}"}, "columns": ["closedLoopAlarmStart", "closedLoopAlarmEnd", "closedLoopControlName", "closedLoopEventStatus", "notification"]}, "version": 1, "type": "search", "id": "AWIk8yDIDjJ4k3sPXRbu", "updated_at": "2019-03-20T07:18:23.921Z"}
\ No newline at end of file diff --git a/src/main/docker/kibana/saved-objects/default/search/search-AWIk9P-qDjJ4k3sPXRcQ.json b/src/main/docker/kibana/saved-objects/default/search/search-AWIk9P-qDjJ4k3sPXRcQ.json deleted file mode 100644 index 9e8916a4a..000000000 --- a/src/main/docker/kibana/saved-objects/default/search/search-AWIk9P-qDjJ4k3sPXRcQ.json +++ /dev/null @@ -1 +0,0 @@ -{"attributes": {"sort": ["closedLoopAlarmStart", "desc"], "hits": 0, "description": "", "title": "ABATED", "version": 1, "kibanaSavedObjectMeta": {"searchSourceJSON": "{\"index\":\"45238b70-b7ae-11e8-8c46-97881a199baf\",\"highlightAll\":true,\"version\":true,\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"default_field\":\"*\",\"query\":\"closedLoopEventStatus: \\\"ABATED\\\"\"}}},\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":\"ABATED\",\"disabled\":false,\"index\":\"AWIk7j2UDjJ4k3sPXRaY\",\"key\":\"closedLoopEventStatus.keyword\",\"negate\":false,\"params\":{\"query\":\"ABATED\",\"type\":\"phrase\"},\"type\":\"phrase\",\"value\":\"ABATED\"},\"query\":{\"match\":{\"closedLoopEventStatus.keyword\":{\"query\":\"ABATED\",\"type\":\"phrase\"}}}},{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":\"ONSET\",\"disabled\":true,\"index\":\"AWIk7j2UDjJ4k3sPXRaY\",\"key\":\"closedLoopEventStatus.keyword\",\"negate\":false,\"params\":{\"query\":\"ONSET\",\"type\":\"phrase\"},\"type\":\"phrase\",\"value\":\"ONSET\"},\"query\":{\"match\":{\"closedLoopEventStatus.keyword\":{\"query\":\"ONSET\",\"type\":\"phrase\"}}}}]}"}, "columns": ["closedLoopAlarmStart", "closedLoopAlarmEnd", "closedLoopControlName", "closedLoopEventStatus", "notification"]}, "version": 1, "type": "search", "id": "AWIk9P-qDjJ4k3sPXRcQ", "updated_at": "2019-03-20T07:18:22.812Z"}
\ No newline at end of file diff --git a/src/main/docker/kibana/saved-objects/default/search/search-AWIlAjTaDjJ4k3sPXRe1.json b/src/main/docker/kibana/saved-objects/default/search/search-AWIlAjTaDjJ4k3sPXRe1.json deleted file mode 100644 index 0f569da8b..000000000 --- a/src/main/docker/kibana/saved-objects/default/search/search-AWIlAjTaDjJ4k3sPXRe1.json +++ /dev/null @@ -1 +0,0 @@ -{"attributes": {"sort": ["closedLoopAlarmStart", "desc"], "hits": 0, "description": "", "title": "FAILURE NOTIFICATION", "version": 1, "kibanaSavedObjectMeta": {"searchSourceJSON": "{\"index\":\"45238b70-b7ae-11e8-8c46-97881a199baf\",\"highlightAll\":true,\"version\":true,\"query\":{\"language\":\"lucene\",\"query\":{\"match_all\":{}}},\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":\"ABATED\",\"disabled\":true,\"index\":\"AWIk7j2UDjJ4k3sPXRaY\",\"key\":\"closedLoopEventStatus.keyword\",\"negate\":false,\"params\":{\"query\":\"ABATED\",\"type\":\"phrase\"},\"type\":\"phrase\",\"value\":\"ABATED\"},\"query\":{\"match\":{\"closedLoopEventStatus.keyword\":{\"query\":\"ABATED\",\"type\":\"phrase\"}}}},{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":\"ONSET\",\"disabled\":true,\"index\":\"AWIk7j2UDjJ4k3sPXRaY\",\"key\":\"closedLoopEventStatus.keyword\",\"negate\":false,\"params\":{\"query\":\"ONSET\",\"type\":\"phrase\"},\"type\":\"phrase\",\"value\":\"ONSET\"},\"query\":{\"match\":{\"closedLoopEventStatus.keyword\":{\"query\":\"ONSET\",\"type\":\"phrase\"}}}},{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":\"FAILURE NOTIFICATION\",\"disabled\":false,\"index\":\"AWIk7j2UDjJ4k3sPXRaY\",\"key\":\"notification.keyword\",\"negate\":false,\"params\":{\"query\":\"FINAL: FAILURE\",\"type\":\"phrase\"},\"type\":\"phrase\",\"value\":\"FINAL: FAILURE\"},\"query\":{\"match\":{\"notification.keyword\":{\"query\":\"FINAL: FAILURE\",\"type\":\"phrase\"}}}}]}"}, "columns": ["closedLoopAlarmStart", "closedLoopAlarmEnd", "closedLoopControlName", "closedLoopEventStatus", "notification"]}, "version": 1, "type": "search", "id": "AWIlAjTaDjJ4k3sPXRe1", "updated_at": "2019-03-20T07:18:26.164Z"}
\ No newline at end of file diff --git a/src/main/docker/kibana/saved-objects/default/search/search-AWJsTEvYr1AwiIiFoV6S.json b/src/main/docker/kibana/saved-objects/default/search/search-AWJsTEvYr1AwiIiFoV6S.json deleted file mode 100644 index 75989328f..000000000 --- a/src/main/docker/kibana/saved-objects/default/search/search-AWJsTEvYr1AwiIiFoV6S.json +++ /dev/null @@ -1 +0,0 @@ -{"attributes": {"sort": ["closedLoopAlarmStart", "desc"], "hits": 0, "description": "", "title": "FINAL: FAILURE", "version": 1, "kibanaSavedObjectMeta": {"searchSourceJSON": "{\"index\":\"45238b70-b7ae-11e8-8c46-97881a199baf\",\"highlightAll\":true,\"version\":true,\"query\":{\"language\":\"lucene\",\"query\":{\"match_all\":{}}},\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"index\":\"AWIk7j2UDjJ4k3sPXRaY\",\"key\":\"notification\",\"negate\":false,\"params\":{\"query\":\"FINAL: FAILURE\",\"type\":\"phrase\"},\"type\":\"phrase\",\"value\":\"FINAL: FAILURE\"},\"query\":{\"match\":{\"notification\":{\"query\":\"FINAL: FAILURE\",\"type\":\"phrase\"}}}}]}"}, "columns": ["notification"]}, "version": 1, "type": "search", "id": "AWJsTEvYr1AwiIiFoV6S", "updated_at": "2019-03-20T07:18:19.445Z"}
\ No newline at end of file diff --git a/src/main/docker/kibana/saved-objects/default/search/search-AWWh6CC3TSxbbr1lgyay.json b/src/main/docker/kibana/saved-objects/default/search/search-AWWh6CC3TSxbbr1lgyay.json deleted file mode 100644 index 38f58c07b..000000000 --- a/src/main/docker/kibana/saved-objects/default/search/search-AWWh6CC3TSxbbr1lgyay.json +++ /dev/null @@ -1 +0,0 @@ -{"attributes": {"sort": ["closedLoopAlarmStart", "desc"], "hits": 0, "description": "Control Loop which Failed", "title": "List of Control Loops (Summary)", "version": 1, "kibanaSavedObjectMeta": {"searchSourceJSON": "{\"index\":\"54038730-b7ae-11e8-8c46-97881a199baf\",\"highlightAll\":true,\"version\":true,\"query\":{\"language\":\"lucene\",\"query\":{\"match_all\":{}}},\"filter\":[{\"bool\":{\"should\":[{\"exists\":{\"field\":\"flagAbated\"}},{\"exists\":{\"field\":\"flagFinalFailure\"}}]},\"meta\":{\"negate\":false,\"index\":\"54038730-b7ae-11e8-8c46-97881a199baf\",\"disabled\":true,\"alias\":\"abated or failure\",\"type\":\"custom\",\"key\":\"bool\",\"value\":\"{\\\"should\\\":[{\\\"exists\\\":{\\\"field\\\":\\\"flagAbated\\\"}},{\\\"exists\\\":{\\\"field\\\":\\\"flagFinalFailure\\\"}}]}\"},\"$state\":{\"store\":\"appState\"}},{\"meta\":{\"index\":\"54038730-b7ae-11e8-8c46-97881a199baf\",\"negate\":false,\"disabled\":true,\"alias\":\"abated\",\"type\":\"exists\",\"key\":\"flagAbated\",\"value\":\"exists\"},\"exists\":{\"field\":\"flagAbated\"},\"$state\":{\"store\":\"appState\"}},{\"meta\":{\"index\":\"54038730-b7ae-11e8-8c46-97881a199baf\",\"negate\":false,\"disabled\":true,\"alias\":\"failure\",\"type\":\"exists\",\"key\":\"flagFinalFailure\",\"value\":\"exists\"},\"exists\":{\"field\":\"flagFinalFailure\"},\"$state\":{\"store\":\"appState\"}}]}"}, "columns": ["requestID", "closedLoopControlName", "notification", "vnfName", "vmName", "vnfType", "locationCity", "locationState", "flagAbated", "flagFinalFailure", "eventDuration"]}, "version": 1, "type": "search", "id": "AWWh6CC3TSxbbr1lgyay", "updated_at": "2019-03-20T07:18:21.676Z"}
\ No newline at end of file diff --git a/src/main/docker/kibana/saved-objects/default/search/search-AWWh7d7sTSxbbr1lgyaz.json b/src/main/docker/kibana/saved-objects/default/search/search-AWWh7d7sTSxbbr1lgyaz.json deleted file mode 100644 index 5da483d13..000000000 --- a/src/main/docker/kibana/saved-objects/default/search/search-AWWh7d7sTSxbbr1lgyaz.json +++ /dev/null @@ -1 +0,0 @@ -{"attributes": {"sort": ["closedLoopAlarmStart", "desc"], "hits": 0, "description": "Control Loops Abated", "title": "ABATED CL", "version": 1, "kibanaSavedObjectMeta": {"searchSourceJSON": "{\"index\":\"45238b70-b7ae-11e8-8c46-97881a199baf\",\"highlightAll\":true,\"version\":true,\"query\":{\"query\":{\"query_string\":{\"query\":\"closedLoopEventStatus: \\\"ABATED\\\"\",\"analyze_wildcard\":true,\"default_field\":\"*\"}},\"language\":\"lucene\"},\"filter\":[{\"meta\":{\"index\":\"AWIk7j2UDjJ4k3sPXRaY\",\"negate\":false,\"disabled\":false,\"alias\":\"ABATED\",\"type\":\"phrase\",\"key\":\"closedLoopEventStatus.keyword\",\"value\":\"ABATED\",\"params\":{\"query\":\"ABATED\",\"type\":\"phrase\"}},\"query\":{\"match\":{\"closedLoopEventStatus.keyword\":{\"query\":\"ABATED\",\"type\":\"phrase\"}}},\"$state\":{\"store\":\"appState\"}},{\"meta\":{\"index\":\"AWIk7j2UDjJ4k3sPXRaY\",\"negate\":false,\"disabled\":true,\"alias\":\"ONSET\",\"type\":\"phrase\",\"key\":\"closedLoopEventStatus.keyword\",\"value\":\"ONSET\",\"params\":{\"query\":\"ONSET\",\"type\":\"phrase\"}},\"query\":{\"match\":{\"closedLoopEventStatus.keyword\":{\"query\":\"ONSET\",\"type\":\"phrase\"}}},\"$state\":{\"store\":\"appState\"}}]}"}, "columns": ["closedLoopAlarmEnd", "requestID", "closedLoopControlName", "closedLoopEventStatus", "vmName", "vnfName", "vnfType", "locationCity", "locationState", "eventDuration"]}, "version": 1, "type": "search", "id": "AWWh7d7sTSxbbr1lgyaz", "updated_at": "2019-03-20T07:18:25.062Z"}
\ No newline at end of file diff --git a/src/main/docker/kibana/saved-objects/default/search/search-AWWhVlbFTSxbbr1lgyap.json b/src/main/docker/kibana/saved-objects/default/search/search-AWWhVlbFTSxbbr1lgyap.json deleted file mode 100644 index b4c781495..000000000 --- a/src/main/docker/kibana/saved-objects/default/search/search-AWWhVlbFTSxbbr1lgyap.json +++ /dev/null @@ -1 +0,0 @@ -{"attributes": {"sort": ["controlLoopIDTime", "asc"], "hits": 0, "description": "", "title": "ControlLoopsGroupByRequestIDandTime", "version": 1, "kibanaSavedObjectMeta": {"searchSourceJSON": "{\"index\":\"45238b70-b7ae-11e8-8c46-97881a199baf\",\"highlightAll\":true,\"version\":true,\"query\":{\"query\":{\"match_all\":{}},\"language\":\"lucene\"},\"filter\":[]}"}, "columns": ["controlLoopIDTime", "from", "closedLoopEventStatus", "notification", "notificationTime", "eventDuration", "vmName", "vnfName", "locationCity", "locationState"]}, "version": 1, "type": "search", "id": "AWWhVlbFTSxbbr1lgyap", "updated_at": "2019-03-20T07:18:20.542Z"}
\ No newline at end of file diff --git a/src/main/docker/kibana/saved-objects/default/search/search-AWXPmsmxr9U94x7rrLgV.json b/src/main/docker/kibana/saved-objects/default/search/search-AWXPmsmxr9U94x7rrLgV.json deleted file mode 100644 index 81fcaf1c0..000000000 --- a/src/main/docker/kibana/saved-objects/default/search/search-AWXPmsmxr9U94x7rrLgV.json +++ /dev/null @@ -1 +0,0 @@ -{"attributes": {"sort": ["closedLoopAlarmStart", "desc"], "hits": 0, "description": "", "title": "FAILURE NOTIFICATION CL", "version": 1, "kibanaSavedObjectMeta": {"searchSourceJSON": "{\"index\":\"45238b70-b7ae-11e8-8c46-97881a199baf\",\"highlightAll\":true,\"version\":true,\"query\":{\"query\":{\"match_all\":{}},\"language\":\"lucene\"},\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":\"ABATED\",\"disabled\":true,\"index\":\"AWIk7j2UDjJ4k3sPXRaY\",\"key\":\"closedLoopEventStatus.keyword\",\"negate\":false,\"type\":\"phrase\",\"value\":\"ABATED\",\"params\":{\"query\":\"ABATED\",\"type\":\"phrase\"}},\"query\":{\"match\":{\"closedLoopEventStatus.keyword\":{\"query\":\"ABATED\",\"type\":\"phrase\"}}}},{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":\"ONSET\",\"disabled\":true,\"index\":\"AWIk7j2UDjJ4k3sPXRaY\",\"key\":\"closedLoopEventStatus.keyword\",\"negate\":false,\"type\":\"phrase\",\"value\":\"ONSET\",\"params\":{\"query\":\"ONSET\",\"type\":\"phrase\"}},\"query\":{\"match\":{\"closedLoopEventStatus.keyword\":{\"query\":\"ONSET\",\"type\":\"phrase\"}}}},{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":\"FAILURE NOTIFICATION\",\"disabled\":false,\"index\":\"AWIk7j2UDjJ4k3sPXRaY\",\"key\":\"notification.keyword\",\"negate\":false,\"type\":\"phrase\",\"value\":\"FINAL: FAILURE\",\"params\":{\"query\":\"FINAL: FAILURE\",\"type\":\"phrase\"}},\"query\":{\"match\":{\"notification.keyword\":{\"query\":\"FINAL: FAILURE\",\"type\":\"phrase\"}}}}]}"}, "columns": ["requestID", "closedLoopAlarmEnd", "closedLoopControlName", "closedLoopEventStatus", "notification", "vnfName", "vmName", "vnfType", "locationCity", "locationState", "eventDuration"]}, "version": 1, "type": "search", "id": "AWXPmsmxr9U94x7rrLgV", "updated_at": "2019-03-20T07:18:27.319Z"}
\ No newline at end of file diff --git a/src/main/docker/kibana/saved-objects/default/visualization/visualization-0ef409f0-38f8-11e9-beac-8d2beda26615.json b/src/main/docker/kibana/saved-objects/default/visualization/visualization-0ef409f0-38f8-11e9-beac-8d2beda26615.json deleted file mode 100644 index a9f177a9c..000000000 --- a/src/main/docker/kibana/saved-objects/default/visualization/visualization-0ef409f0-38f8-11e9-beac-8d2beda26615.json +++ /dev/null @@ -1 +0,0 @@ -{"attributes": {"visState": "{\"title\":\"Control Loop percentage count per status v2\",\"type\":\"pie\",\"params\":{\"type\":\"pie\",\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"isDonut\":true,\"labels\":{\"show\":false,\"values\":true,\"last_level\":true,\"truncate\":100}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"filters\",\"schema\":\"segment\",\"params\":{\"filters\":[{\"input\":{\"query\":\"flagAbated:\\\"1\\\"\"},\"label\":\"\"},{\"input\":{\"query\":\"flagFinalFailure:\\\"1\\\"\"}},{\"input\":{\"query\":\"!(flagAbated:\\\"1\\\") && !(flagFinalFailure:\\\"1\\\")\"}}]}}]}", "description": "", "title": "Control Loop percentage count per status v2", "uiStateJSON": "{}", "version": 1, "kibanaSavedObjectMeta": {"searchSourceJSON": "{\"index\":\"04e06060-50bf-11e9-b3a3-7302725859d5\",\"filter\":[],\"query\":{\"query\":\"\",\"language\":\"lucene\"}}"}}, "version": 3, "type": "visualization", "id": "0ef409f0-38f8-11e9-beac-8d2beda26615", "updated_at": "2019-03-27T18:37:46.430Z"}
\ No newline at end of file diff --git a/src/main/docker/kibana/saved-objects/default/visualization/visualization-2d36b0e0-38f6-11e9-beac-8d2beda26615.json b/src/main/docker/kibana/saved-objects/default/visualization/visualization-2d36b0e0-38f6-11e9-beac-8d2beda26615.json deleted file mode 100644 index 91a3bcfac..000000000 --- a/src/main/docker/kibana/saved-objects/default/visualization/visualization-2d36b0e0-38f6-11e9-beac-8d2beda26615.json +++ /dev/null @@ -1 +0,0 @@ -{"attributes": {"visState": "{\"title\":\"CL count filtered by status v2\",\"type\":\"histogram\",\"params\":{\"type\":\"histogram\",\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"}},\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"type\":\"category\",\"position\":\"bottom\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\"},\"labels\":{\"show\":true,\"truncate\":100},\"title\":{}}],\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"name\":\"LeftAxis-1\",\"type\":\"value\",\"position\":\"left\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\",\"mode\":\"normal\"},\"labels\":{\"show\":true,\"rotate\":0,\"filter\":false,\"truncate\":100},\"title\":{\"text\":\"Count\"}}],\"seriesParams\":[{\"show\":\"true\",\"type\":\"histogram\",\"mode\":\"stacked\",\"data\":{\"label\":\"Count\",\"id\":\"1\"},\"valueAxis\":\"ValueAxis-1\",\"drawLinesBetweenPoints\":true,\"showCircles\":true}],\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"times\":[],\"addTimeMarker\":true},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"date_histogram\",\"schema\":\"segment\",\"params\":{\"field\":\"closedLoopAlarmStart\",\"interval\":\"m\",\"customInterval\":\"2h\",\"min_doc_count\":1,\"extended_bounds\":{},\"customLabel\":\"Alarm start date\"}}]}", "description": "", "title": "CL count filtered by status v2", "uiStateJSON": "{}", "version": 1, "kibanaSavedObjectMeta": {"searchSourceJSON": "{\"index\":\"04e06060-50bf-11e9-b3a3-7302725859d5\",\"filter\":[{\"meta\":{\"index\":\"44f02cf0-38f3-11e9-beac-8d2beda26615\",\"negate\":true,\"disabled\":false,\"alias\":null,\"type\":\"exists\",\"key\":\"flagFinalFailure\",\"value\":\"exists\"},\"exists\":{\"field\":\"flagFinalFailure\"},\"$state\":{\"store\":\"appState\"}}],\"query\":{\"query\":\"\",\"language\":\"lucene\"}}"}}, "version": 3, "type": "visualization", "id": "2d36b0e0-38f6-11e9-beac-8d2beda26615", "updated_at": "2019-03-27T18:37:46.417Z"}
\ No newline at end of file diff --git a/src/main/docker/kibana/saved-objects/default/visualization/visualization-9a1a6750-38f7-11e9-beac-8d2beda26615.json b/src/main/docker/kibana/saved-objects/default/visualization/visualization-9a1a6750-38f7-11e9-beac-8d2beda26615.json deleted file mode 100644 index b2dfa4b64..000000000 --- a/src/main/docker/kibana/saved-objects/default/visualization/visualization-9a1a6750-38f7-11e9-beac-8d2beda26615.json +++ /dev/null @@ -1 +0,0 @@ -{"attributes": {"visState": "{\"title\":\"CL view over Time v2\",\"type\":\"histogram\",\"params\":{\"type\":\"histogram\",\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"}},\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"type\":\"category\",\"position\":\"bottom\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\"},\"labels\":{\"show\":true,\"truncate\":100},\"title\":{}}],\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"name\":\"LeftAxis-1\",\"type\":\"value\",\"position\":\"left\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\",\"mode\":\"normal\"},\"labels\":{\"show\":true,\"rotate\":0,\"filter\":false,\"truncate\":100},\"title\":{\"text\":\"Count\"}}],\"seriesParams\":[{\"show\":\"true\",\"type\":\"histogram\",\"mode\":\"stacked\",\"data\":{\"label\":\"Count\",\"id\":\"1\"},\"valueAxis\":\"ValueAxis-1\",\"drawLinesBetweenPoints\":true,\"showCircles\":true}],\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"times\":[],\"addTimeMarker\":true},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"date_histogram\",\"schema\":\"segment\",\"params\":{\"field\":\"closedLoopAlarmStart\",\"interval\":\"d\",\"customInterval\":\"2h\",\"min_doc_count\":1,\"extended_bounds\":{},\"customLabel\":\"CL start date/time\"}}]}", "description": "", "title": "CL view over Time v2", "uiStateJSON": "{}", "version": 1, "kibanaSavedObjectMeta": {"searchSourceJSON": "{\"index\":\"04e06060-50bf-11e9-b3a3-7302725859d5\",\"filter\":[],\"query\":{\"query\":\"\",\"language\":\"lucene\"}}"}}, "version": 3, "type": "visualization", "id": "9a1a6750-38f7-11e9-beac-8d2beda26615", "updated_at": "2019-03-27T18:37:46.420Z"}
\ No newline at end of file diff --git a/src/main/docker/kibana/saved-objects/default/visualization/visualization-a9d9d120-38f8-11e9-beac-8d2beda26615.json b/src/main/docker/kibana/saved-objects/default/visualization/visualization-a9d9d120-38f8-11e9-beac-8d2beda26615.json deleted file mode 100644 index 40f3b0870..000000000 --- a/src/main/docker/kibana/saved-objects/default/visualization/visualization-a9d9d120-38f8-11e9-beac-8d2beda26615.json +++ /dev/null @@ -1 +0,0 @@ -{"attributes": {"visState": "{\"title\":\"Top Error Messages v2\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMeticsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"history.actor.keyword\",\"size\":5,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"Actor\"}},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"history.message.keyword\",\"size\":5,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"Message\"}},{\"id\":\"4\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"history.operation.keyword\",\"size\":5,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"Operation\"}}]}", "description": "", "title": "Top Error Messages v2", "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", "version": 1, "kibanaSavedObjectMeta": {"searchSourceJSON": "{\"index\":\"04e06060-50bf-11e9-b3a3-7302725859d5\",\"filter\":[],\"query\":{\"query\":\"\",\"language\":\"lucene\"}}"}}, "version": 3, "type": "visualization", "id": "a9d9d120-38f8-11e9-beac-8d2beda26615", "updated_at": "2019-03-27T18:37:46.426Z"}
\ No newline at end of file diff --git a/src/main/docker/kibana/saved-objects/default/visualization/visualization-ae8c22b0-3905-11e9-beac-8d2beda26615.json b/src/main/docker/kibana/saved-objects/default/visualization/visualization-ae8c22b0-3905-11e9-beac-8d2beda26615.json deleted file mode 100644 index 281fed3d8..000000000 --- a/src/main/docker/kibana/saved-objects/default/visualization/visualization-ae8c22b0-3905-11e9-beac-8d2beda26615.json +++ /dev/null @@ -1 +0,0 @@ -{"attributes": {"visState": "{\"title\":\"Hottest closed loops v2\",\"type\":\"pie\",\"params\":{\"type\":\"pie\",\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"isDonut\":false,\"labels\":{\"show\":false,\"values\":true,\"last_level\":true,\"truncate\":100}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\"field\":\"closedLoopControlName.keyword\",\"size\":5,\"order\":\"desc\",\"orderBy\":\"1\"}}]}", "description": "", "title": "Hottest closed loops v2", "uiStateJSON": "{}", "version": 1, "kibanaSavedObjectMeta": {"searchSourceJSON": "{\"index\":\"04e06060-50bf-11e9-b3a3-7302725859d5\",\"filter\":[],\"query\":{\"query\":\"\",\"language\":\"lucene\"}}"}}, "version": 3, "type": "visualization", "id": "ae8c22b0-3905-11e9-beac-8d2beda26615", "updated_at": "2019-03-27T18:37:46.434Z"}
\ No newline at end of file diff --git a/src/main/docker/kibana/saved-objects/default/visualization/visualization-e1f0fa00-38f5-11e9-beac-8d2beda26615.json b/src/main/docker/kibana/saved-objects/default/visualization/visualization-e1f0fa00-38f5-11e9-beac-8d2beda26615.json deleted file mode 100644 index 86a44d99b..000000000 --- a/src/main/docker/kibana/saved-objects/default/visualization/visualization-e1f0fa00-38f5-11e9-beac-8d2beda26615.json +++ /dev/null @@ -1 +0,0 @@ -{"attributes": {"visState": "{\"title\":\"Amount of CL v2\",\"type\":\"metric\",\"params\":{\"addTooltip\":true,\"addLegend\":false,\"type\":\"metric\",\"metric\":{\"percentageMode\":false,\"useRanges\":false,\"colorSchema\":\"Green to Red\",\"metricColorMode\":\"None\",\"colorsRange\":[{\"from\":0,\"to\":100}],\"labels\":{\"show\":true},\"invertColors\":false,\"style\":{\"bgFill\":\"#000\",\"bgColor\":false,\"labelColor\":false,\"subText\":\"\",\"fontSize\":60}}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"cardinality\",\"schema\":\"metric\",\"params\":{\"field\":\"requestId.keyword\",\"customLabel\":\"Amount of Control Loops\"}}]}", "description": "", "title": "Amount of CL v2", "uiStateJSON": "{}", "version": 1, "kibanaSavedObjectMeta": {"searchSourceJSON": "{\"index\":\"04e06060-50bf-11e9-b3a3-7302725859d5\",\"filter\":[],\"query\":{\"query\":\"\",\"language\":\"lucene\"}}"}}, "version": 3, "type": "visualization", "id": "e1f0fa00-38f5-11e9-beac-8d2beda26615", "updated_at": "2019-03-27T18:37:46.429Z"}
\ No newline at end of file diff --git a/src/main/docker/kibana/saved-objects/default/visualization/visualization-f724dfd0-38f6-11e9-beac-8d2beda26615.json b/src/main/docker/kibana/saved-objects/default/visualization/visualization-f724dfd0-38f6-11e9-beac-8d2beda26615.json deleted file mode 100644 index 189595f55..000000000 --- a/src/main/docker/kibana/saved-objects/default/visualization/visualization-f724dfd0-38f6-11e9-beac-8d2beda26615.json +++ /dev/null @@ -1 +0,0 @@ -{"attributes": {"visState": "{\"title\":\"CL events date histogram v2\",\"type\":\"histogram\",\"params\":{\"type\":\"histogram\",\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"}},\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"type\":\"category\",\"position\":\"bottom\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\"},\"labels\":{\"show\":true,\"truncate\":100},\"title\":{}}],\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"name\":\"LeftAxis-1\",\"type\":\"value\",\"position\":\"left\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\",\"mode\":\"normal\"},\"labels\":{\"show\":true,\"rotate\":0,\"filter\":false,\"truncate\":100},\"title\":{\"text\":\"Count\"}}],\"seriesParams\":[{\"show\":\"true\",\"type\":\"histogram\",\"mode\":\"stacked\",\"data\":{\"label\":\"Count\",\"id\":\"1\"},\"valueAxis\":\"ValueAxis-1\",\"drawLinesBetweenPoints\":true,\"showCircles\":true}],\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"times\":[],\"addTimeMarker\":true},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"date_histogram\",\"schema\":\"segment\",\"params\":{\"field\":\"@timestamp\",\"interval\":\"d\",\"customInterval\":\"2h\",\"min_doc_count\":1,\"extended_bounds\":{},\"customLabel\":\"Closed loop alarm start per day\"}}]}", "description": "", "title": "CL events date histogram v2", "uiStateJSON": "{}", "version": 1, "kibanaSavedObjectMeta": {"searchSourceJSON": "{\"index\":\"04e06060-50bf-11e9-b3a3-7302725859d5\",\"filter\":[],\"query\":{\"query\":\"\",\"language\":\"lucene\"}}"}}, "version": 3, "type": "visualization", "id": "f724dfd0-38f6-11e9-beac-8d2beda26615", "updated_at": "2019-03-27T18:37:46.432Z"}
\ No newline at end of file diff --git a/src/main/docker/kibana/saved-objects/default/visualization/visualization-fcc9a8b0-38f8-11e9-beac-8d2beda26615.json b/src/main/docker/kibana/saved-objects/default/visualization/visualization-fcc9a8b0-38f8-11e9-beac-8d2beda26615.json deleted file mode 100644 index 15165b57a..000000000 --- a/src/main/docker/kibana/saved-objects/default/visualization/visualization-fcc9a8b0-38f8-11e9-beac-8d2beda26615.json +++ /dev/null @@ -1 +0,0 @@ -{"attributes": {"visState": "{\"title\":\"Number of Complete CL\",\"type\":\"metric\",\"params\":{\"addTooltip\":true,\"addLegend\":false,\"type\":\"metric\",\"metric\":{\"percentageMode\":false,\"useRanges\":false,\"colorSchema\":\"Green to Red\",\"metricColorMode\":\"None\",\"colorsRange\":[{\"from\":0,\"to\":10000}],\"labels\":{\"show\":true},\"invertColors\":false,\"style\":{\"bgFill\":\"#000\",\"bgColor\":false,\"labelColor\":false,\"subText\":\"\",\"fontSize\":60}}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}}]}", "description": "", "title": "Number of Complete CL", "uiStateJSON": "{}", "version": 1, "kibanaSavedObjectMeta": {"searchSourceJSON": "{\"index\":\"04e06060-50bf-11e9-b3a3-7302725859d5\",\"filter\":[{\"bool\":{\"should\":[{\"exists\":{\"field\":\"flagAbated\"}},{\"exists\":{\"field\":\"flagFinalFailure\"}}]},\"meta\":{\"index\":\"44f02cf0-38f3-11e9-beac-8d2beda26615\",\"disabled\":false,\"alias\":null,\"type\":\"custom\",\"key\":\"bool\",\"value\":\"{\\\"should\\\":[{\\\"exists\\\":{\\\"field\\\":\\\"flagAbated\\\"}},{\\\"exists\\\":{\\\"field\\\":\\\"flagFinalFailure\\\"}}]}\",\"negate\":false},\"$state\":{\"store\":\"appState\"}}],\"query\":{\"query\":\"\",\"language\":\"lucene\"}}"}}, "version": 3, "type": "visualization", "id": "fcc9a8b0-38f8-11e9-beac-8d2beda26615", "updated_at": "2019-03-27T18:37:46.423Z"}
\ No newline at end of file diff --git a/src/main/docker/kibana/startup.sh b/src/main/docker/kibana/startup.sh deleted file mode 100755 index a232706e0..000000000 --- a/src/main/docker/kibana/startup.sh +++ /dev/null @@ -1,106 +0,0 @@ -#!/bin/bash -x -### -# ============LICENSE_START======================================================= -# ONAP CLAMP -# ================================================================================ -# Copyright (C) 2018 AT&T Intellectual Property. All rights -# reserved. -# ================================================================================ -# 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. -# ============LICENSE_END============================================ -# =================================================================== -# -### -KIBANA_CONF_FILE="/usr/share/kibana/config/kibana.yml" -SAVED_OBJECTS_ROOT="/saved-objects/" -RESTORE_CMD="/usr/local/bin/restore.py -H http://127.0.0.1:5601/ -f" -BACKUP_BIN="/usr/local/bin/backup.py" -KIBANA_START_CMD="/usr/local/bin/kibana-docker" -LOG_FILE="/tmp/load.kibana.log" -KIBANA_LOAD_CMD="/usr/local/bin/kibana-docker -H 127.0.0.1 -l $LOG_FILE" -TIMEOUT=60 -WAIT_TIME=2 -LOADED_FLAG=$SAVED_OBJECTS_ROOT/.loaded - -if [ -f $LOADED_FLAG ]; -then - echo "---- Kibana saved objects already restored. Remove $LOADED_FLAG if you want to restore them again." -elif [ -n "$(ls -A ${SAVED_OBJECTS_PATH})" ]; -then - echo "---- Waiting for elasticsearch to be up..." - RES=-1 - PING_TIMEOUT=60 - elastic_url=$(grep elasticsearch.url /usr/share/kibana/config/kibana.yml | cut -d\ -f2) - while [ ! "$RES" -eq "0" ] && [ "$PING_TIMEOUT" -gt "0" ]; - do - curl $elastic_url - RES=$? - sleep $WAIT_TIME - let PING_TIMEOUT=$PING_TIMEOUT-$WAIT_TIME - done - - echo "---- Saved objects found, restoring files." - - $KIBANA_LOAD_CMD & - KIB_PID=$! - - # Wait for log file to be avaiable - LOG_TIMEOUT=60 - while [ ! -f $LOG_FILE ] && [ "$LOG_TIMEOUT" -gt "0" ]; - do - echo "Waiting for $LOG_FILE to be available..." - sleep $WAIT_TIME - let LOG_TIMEOUT=$LOG_TIMEOUT-$WAIT_TIME - done - - tail -f $LOG_FILE & - LOG_PID=$! - - # Wait for kibana to be listening - while [ -z "$(grep "Server running at" $LOG_FILE)" ] && [ "$TIMEOUT" -gt "0" ]; - do - echo "Waiting for kibana to start..." - sleep $WAIT_TIME - let TIMEOUT=$TIMEOUT-$WAIT_TIME - done - sleep 1 - - # restore files - for saved_objects_path in $SAVED_OBJECTS_ROOT/* - do - # skip files as we only need directories - [ -f $saved_objects_path ] && continue - - echo "Restoring content of $saved_objects_path" - $RESTORE_CMD -C $saved_objects_path - sleep 1 - done - - touch $LOADED_FLAG - if [ "$?" != "0" ]; - then - echo "WARNING: Could not save $LOADED_FLAG, saved objects will be restored on next startup." >&2 - fi - - # cleanup - kill $KIB_PID - kill $LOG_PID -else - echo "---- No saved object found" - ls -A ${SAVED_OBJECTS_PATH} -fi - -echo "---- Starting kibana" - -$KIBANA_START_CMD - diff --git a/src/main/docker/logstash/Dockerfile b/src/main/docker/logstash/Dockerfile deleted file mode 100644 index 73988dc79..000000000 --- a/src/main/docker/logstash/Dockerfile +++ /dev/null @@ -1,36 +0,0 @@ -### -# ============LICENSE_START======================================================= -# ONAP CLAMP -# ================================================================================ -# Copyright (C) 2018 AT&T Intellectual Property. All rights -# reserved. -# ================================================================================ -# 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. -# ============LICENSE_END============================================ -# =================================================================== -# -### -FROM docker.elastic.co/logstash/logstash-oss:6.6.2 - -MAINTAINER "The Onap Team" -LABEL Description="Logstash image with some plugins needed for the clamp dashboard" - -# Default aaf certificates -COPY certs /certs.d/ - -# remove default pipeline first -COPY pipeline/logstash.conf /usr/share/logstash/pipeline/logstash.conf - -# add plugins needed by aggregation part of the pipeline -RUN /usr/share/logstash/bin/logstash-plugin install logstash-filter-elasticsearch -RUN /usr/share/logstash/bin/logstash-plugin install logstash-filter-prune diff --git a/src/main/docker/logstash/certs/aafca.pem b/src/main/docker/logstash/certs/aafca.pem deleted file mode 100644 index cf12ec4c6..000000000 --- a/src/main/docker/logstash/certs/aafca.pem +++ /dev/null @@ -1,26 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIEVDCCAjygAwIBAgIBAjANBgkqhkiG9w0BAQsFADAsMQ4wDAYDVQQLDAVPU0FB -RjENMAsGA1UECgwET05BUDELMAkGA1UEBhMCVVMwHhcNMTgwNjA1MDg1MTQxWhcN -MjMwNjA1MDg1MTQxWjBHMQswCQYDVQQGEwJVUzENMAsGA1UECgwET05BUDEOMAwG -A1UECwwFT1NBQUYxGTAXBgNVBAMMEGludGVybWVkaWF0ZUNBXzEwggEiMA0GCSqG -SIb3DQEBAQUAA4IBDwAwggEKAoIBAQDOXCdZIoWM0EnEEw3qPiVMhAgNolWCTaLt -eI2TjlTQdGDIcXdBZukHdNeOKYzOXRsLt6bLRtd5yARpn53EbzS/dgAyHuaz1HjE -5IPWSFRg9SulfHUmcS+GBt1+KiMJTlOsw6wSA73H/PjjXBbWs/uRJTnaNmV3so7W -DhNW6fHOrbom4p+3FucbB/QAM9b/3l/1LKnRgdXx9tekDnaKN5u3HVBmyOlRhaRp -tscLUCT3jijoGAPRcYZybgrpa0z3iCWquibTO/eLwuO/Dn7yHWau9ZZAHGPBSn9f -TiLKRYV55mNjr3zvs8diTPECFPW8w8sRIH3za1aKHgUC1gd87Yr3AgMBAAGjZjBk -MB0GA1UdDgQWBBQa1FdycErTZ6nr4dxiMbKH0P7vqjAfBgNVHSMEGDAWgBRTVTPy -S+vQUbHBeJrBKDF77+rtSTASBgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQE -AwIBhjANBgkqhkiG9w0BAQsFAAOCAgEAlA/RTPy5i09fJ4ytSAmAdytMwEwRaU9F -dshG7LU9q95ODsuM79yJvV9+ISIJZRsBqf5PDv93bUCKKHIYGvR6kNd+n3yx/fce -txDkC/tMj1T9D8TuDKAclGEO9K5+1roOQQFxr4SE6XKb/wjn8OMrCoJ75S0F3htF -LKL85T77JeGeNgSk8JEsZvQvj32m0gv9rxi5jM/Zi5E2vxrBR9T1v3kVvlt6+PSF -BoHXROk5HQmdHxnH+VYQtDHSwj9Xe9aoJMyL0WjYKd//8NUO+VACDOtK4Nia6gy9 -m/n9kMASMw6f9iF4n6t4902RWrRKTYM1CVu5wyVklVbEdE9i6Db4CpL9E8HpBUAP -t44JiNzuFkDmSE/z5XuQIimDt6nzOaSF8pX2KHY2ICDLwpMNUvxzqXD9ECbdspiy -JC2RGq8uARGGl6kQQBKDNO8SrO7rSBPANd1+LgqrKbCrHYfvFgkZPgT5MlQi+E1G -LNT+i6fzZha9ed/L6yjl5Em71flJGFwRZl2pfErZRxp8pLPcznYyIpSjcwnqNCRC -orhlp8nheiODC3oO3AFHDiFgUqvm8hgpnT2cPk2lpU2VY1TcZ8sW5qUDCxINIPcW -u1SAsa87IJK3vEzPZfTCs/S6XThoqRfXj0c0Rahj7YFRi/PqIPY0ejwdtmZ9m9pZ -8Lb0GYmlo44= ------END CERTIFICATE----- diff --git a/src/main/docker/logstash/pipeline/logstash.conf b/src/main/docker/logstash/pipeline/logstash.conf deleted file mode 100644 index 5c1d47d18..000000000 --- a/src/main/docker/logstash/pipeline/logstash.conf +++ /dev/null @@ -1,269 +0,0 @@ -# Copyright (c) 2018 AT&T Intellectual Property. All rights reserved. -# -# 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. -input { - http_poller { - urls => { - event_queue => { - method => get - url => "${dmaap_base_url}/events/${event_topic}/${dmaap_consumer_group}/${dmaap_consumer_id}?timeout=15000" - headers => { - Accept => "application/json" - } - add_field => { "topic" => "${event_topic}" } - type => "dmaap_event" - } - notification_queue => { - method => get - url => "${dmaap_base_url}/events/${notification_topic}/${dmaap_consumer_group}/${dmaap_consumer_id}?timeout=15000" - headers => { - Accept => "application/json" - } - add_field => { "topic" => "${notification_topic}" } - type => "dmaap_notification" - } - request_queue => { - method => get - url => "${dmaap_base_url}/events/${request_topic}/${dmaap_consumer_group}/${dmaap_consumer_id}?timeout=15000" - headers => { - Accept => "application/json" - } - add_field => { "topic" => "${request_topic}" } - type => "dmaap_request" - } - } - socket_timeout => 30 - request_timeout => 30 - codec => "plain" - schedule => { "every" => "1m" } - cacert => "/certs.d/aafca.pem" - } -} - -input { - file { - path => [ - "/log-input/*" - ] - type => "dmaap_log" - codec => "json" - } -} - -filter { - if [type] != "dmaap_log" { - #only execute this section for dmaap events from http request - #it doesn't apply to dmaap events from log file - - # avoid noise if no entry in the list - if [message] == "[]" { - drop { } - } - - if [http_request_failure] or [@metadata][code] != "200" { - mutate { - add_tag => [ "error" ] - } - } - - if "dmaap_source" in [tags] { - # - # Dmaap provides a json list, whose items are Strings containing the event - # provided to Dmaap, which itself is an escaped json. - # - # We first need to parse the json as we have to use the plaintext as it cannot - # work with list of events, then split that list into multiple string events, - # that we then transform into json. - # - json { - source => "[message]" - target => "message" - } - ruby { - code => " - for ev in event.get('message', []) - ev.set('@metadata', event.get('@metadata')) - end - " - } - - split { - field => "message" - } - json { - source => "message" - } - mutate { - remove_field => [ "message" ] - } - } - } - #now start the common, to both http request and log file events, processing - - # - # Some timestamps are expressed as milliseconds, some are in microseconds - # - if [closedLoopAlarmStart] { - ruby { - code => " - if event.get('closedLoopAlarmStart').to_s.to_i(10) > 9999999999999 - event.set('closedLoopAlarmStart', event.get('closedLoopAlarmStart').to_s.to_i(10) / 1000) - else - event.set('closedLoopAlarmStart', event.get('closedLoopAlarmStart').to_s.to_i(10)) - end - " - } - date { - match => [ "closedLoopAlarmStart", UNIX_MS ] - target => "closedLoopAlarmStart" - } - } - - if [closedLoopAlarmEnd] { - ruby { - code => " - if event.get('closedLoopAlarmEnd').to_s.to_i(10) > 9999999999999 - event.set('closedLoopAlarmEnd', event.get('closedLoopAlarmEnd').to_s.to_i(10) / 1000) - else - event.set('closedLoopAlarmEnd', event.get('closedLoopAlarmEnd').to_s.to_i(10)) - end - " - } - date { - match => [ "closedLoopAlarmEnd", UNIX_MS ] - target => "closedLoopAlarmEnd" - } - - } - - - # - # Notification time are expressed under the form "yyyy-MM-dd HH:mm:ss", which - # is close to ISO8601, but lacks of T as spacer: "yyyy-MM-ddTHH:mm:ss" - # - if [notificationTime] { - mutate { - gsub => [ "notificationTime", " ", "T" ] - } - date { - match => [ "notificationTime", ISO8601 ] - target => "notificationTime" - } - } - - - # - # Renaming some fields for readability - # - if [AAI][generic-vnf.vnf-name] { - mutate { - add_field => { "vnfName" => "%{[AAI][generic-vnf.vnf-name]}" } - } - } - if [AAI][generic-vnf.vnf-type] { - mutate { - add_field => { "vnfType" => "%{[AAI][generic-vnf.vnf-type]}" } - } - } - if [AAI][vserver.vserver-name] { - mutate { - add_field => { "vmName" => "%{[AAI][vserver.vserver-name]}" } - } - } - if [AAI][complex.city] { - mutate { - add_field => { "locationCity" => "%{[AAI][complex.city]}" } - } - } - if [AAI][complex.state] { - mutate { - add_field => { "locationState" => "%{[AAI][complex.state]}" } - } - } - - - # - # Adding some flags to ease aggregation - # - if [closedLoopEventStatus] =~ /(?i)ABATED/ { - mutate { - add_field => { "flagAbated" => "1" } - } - } - if [notification] =~ /^.*?(?:\b|_)FINAL(?:\b|_).*?(?:\b|_)FAILURE(?:\b|_).*?$/ { - mutate { - add_field => { "flagFinalFailure" => "1" } - } - } - - - if "error" not in [tags] { - # - # Creating data for a secondary index - # - clone { - clones => [ "event-cl-aggs" ] - add_tag => [ "event-cl-aggs" ] - } - - if "event-cl-aggs" in [tags] { - # - # we only need a few fields for aggregations; remove all fields from clone except : - # vmName,vnfName,vnfType,requestID,closedLoopAlarmStart, closedLoopControlName,closedLoopAlarmEnd,abated,nbrDmaapevents,finalFailure - # - prune { - whitelist_names => ["^@.*$","^topic$","^type$","^tags$","^flagFinalFailure$","^flagAbated$","^locationState$","^locationCity$","^vmName$","^vnfName$","^vnfType$","^requestID$","^closedLoopAlarmStart$","^closedLoopControlName$","^closedLoopAlarmEnd$","^target$","^target_type$","^triggerSourceName$","^policyScope$","^policyName$","^policyVersion$"] - } - - } - } -} - -output { - stdout { - codec => rubydebug { metadata => true } - } - - if "error" in [tags] { - elasticsearch { - codec => "json" - hosts => ["${elasticsearch_base_url}"] - user => "${LOGSTASH_USR}" - password => "${LOGSTASH_PWD}" - index => "errors-%{+YYYY.MM.DD}" - doc_as_upsert => true - } - - } else if "event-cl-aggs" in [tags] { - elasticsearch { - codec => "json" - hosts => ["${elasticsearch_base_url}"] - user => "${LOGSTASH_USR}" - password => "${LOGSTASH_PWD}" - document_id => "%{requestID}" - index => "events-cl-%{+YYYY.MM.DD}" # creates daily indexes for control loop - doc_as_upsert => true - action => "update" - } - - } else { - elasticsearch { - codec => "json" - hosts => ["${elasticsearch_base_url}"] - user => "${LOGSTASH_USR}" - password => "${LOGSTASH_PWD}" - index => "events-raw-%{+YYYY.MM.DD}" # creates daily indexes - doc_as_upsert => true - } - } -} diff --git a/src/main/java/org/onap/clamp/clds/client/PolicyEngineServices.java b/src/main/java/org/onap/clamp/clds/client/PolicyEngineServices.java new file mode 100644 index 000000000..96294207a --- /dev/null +++ b/src/main/java/org/onap/clamp/clds/client/PolicyEngineServices.java @@ -0,0 +1,122 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP CLAMP + * ================================================================================ + * Copyright (C) 2020 AT&T Intellectual Property. All rights + * reserved. + * ================================================================================ + * 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. + * ============LICENSE_END============================================ + * =================================================================== + * + */ + +package org.onap.clamp.clds.client; + +import com.att.eelf.configuration.EELFLogger; +import com.att.eelf.configuration.EELFManager; + +import org.apache.camel.CamelContext; +import org.apache.camel.Exchange; +import org.apache.camel.builder.ExchangeBuilder; +import org.onap.clamp.clds.config.ClampProperties; +import org.onap.clamp.clds.sdc.controller.installer.BlueprintMicroService; +import org.onap.clamp.loop.template.PolicyModel; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +/** + * The class implements the communication with the Policy Engine to retrieve + * policy models (tosca). It mainly delegates the physical calls to Camel + * engine. + * + */ +@Component +public class PolicyEngineServices { + private final CamelContext camelContext; + + private static final EELFLogger logger = EELFManager.getInstance().getLogger(PolicyEngineServices.class); + private static final EELFLogger auditLogger = EELFManager.getInstance().getAuditLogger(); + private static final EELFLogger metricsLogger = EELFManager.getInstance().getMetricsLogger(); + private static int retryInterval = 0; + private static int retryLimit = 1; + + public static final String POLICY_RETRY_INTERVAL = "policy.retry.interval"; + public static final String POLICY_RETRY_LIMIT = "policy.retry.limit"; + + @Autowired + public PolicyEngineServices(CamelContext camelContext, ClampProperties refProp) { + this.camelContext = camelContext; + + if (refProp.getStringValue(POLICY_RETRY_LIMIT) != null) { + retryLimit = Integer.valueOf(refProp.getStringValue(POLICY_RETRY_LIMIT)); + } + if (refProp.getStringValue(POLICY_RETRY_INTERVAL) != null) { + retryInterval = Integer.valueOf(refProp.getStringValue(POLICY_RETRY_INTERVAL)); + } + } + + public PolicyModel createPolicyModelFromPolicyEngine(String policyType, String policyVersion) + throws InterruptedException { + return new PolicyModel(policyType, this.downloadOnePolicy(policyType, policyVersion), policyVersion, + createPolicyAcronym(policyType)); + } + + public PolicyModel createPolicyModelFromPolicyEngine(BlueprintMicroService microService) + throws InterruptedException { + return createPolicyModelFromPolicyEngine(microService.getModelType(), microService.getModelVersion()); + } + + private static String createPolicyAcronym(String policyType) { + String[] policyNameArray = policyType.split("\\."); + return policyNameArray[policyNameArray.length - 1]; + } + + /** + * This method can be used to download all policy types + data types defined in + * policy engine. + * + * @return A yaml containing all policy Types and all data types + * @throws InterruptedException In case of issue when sleeping during the retry + */ + public String downloadAllPolicies() throws InterruptedException { + return callCamelRoute(ExchangeBuilder.anExchange(camelContext).build(), "direct:get-all-policy-models"); + } + + /** + * This method can be used to download a policy tosca model on the engine. + * + * @param policyType The policy type (id) + * @param policyVersion The policy version + * @return A string with the whole policy tosca model + * @throws InterruptedException In case of issue when sleeping during the retry + */ + public String downloadOnePolicy(String policyType, String policyVersion) throws InterruptedException { + return callCamelRoute(ExchangeBuilder.anExchange(camelContext).withProperty("policyModelName", policyType) + .withProperty("policyModelVersion", policyVersion).build(), "direct:get-policy-model"); + } + + private String callCamelRoute(Exchange exchange, String camelFlow) throws InterruptedException { + for (int i = 0; i < retryLimit; i++) { + Exchange exchangeResponse = camelContext.createProducerTemplate().send(camelFlow, exchange); + if (Integer.valueOf(200).equals(exchangeResponse.getIn().getHeader("CamelHttpResponseCode"))) { + return (String) exchangeResponse.getIn().getBody(); + } else { + logger.info("Policy query " + retryInterval + "ms before retrying ..."); + // wait for a while and try to connect to DCAE again + Thread.sleep(retryInterval); + } + } + return ""; + } +} diff --git a/src/main/java/org/onap/clamp/clds/config/ClampProperties.java b/src/main/java/org/onap/clamp/clds/config/ClampProperties.java index 9905585d3..8eae9066d 100644 --- a/src/main/java/org/onap/clamp/clds/config/ClampProperties.java +++ b/src/main/java/org/onap/clamp/clds/config/ClampProperties.java @@ -23,13 +23,11 @@ package org.onap.clamp.clds.config; -import com.google.common.base.Splitter; - import com.google.gson.JsonElement; + import java.io.IOException; import java.net.URL; import java.nio.charset.StandardCharsets; -import java.util.List; import org.apache.commons.io.IOUtils; import org.onap.clamp.clds.util.JsonUtils; @@ -53,8 +51,7 @@ public class ClampProperties { /** * get property value. * - * @param key - * The first key + * @param key The first key * @return The string with the value */ public String getStringValue(String key) { @@ -65,10 +62,8 @@ public class ClampProperties { * get property value for a combo key (key1 + "." + key2). If not found just use * key1. * - * @param key1 - * The first key - * @param key2 - * The second key after a dot + * @param key1 The first key + * @param key2 The second key after a dot * @return The string with the value */ public String getStringValue(String key1, String key2) { @@ -83,17 +78,15 @@ public class ClampProperties { * Return json as objects that can be updated. The value obtained from the * clds-reference file will be used as a filename. * - * @param key - * The key that will be used to access the clds-reference file + * @param key The key that will be used to access the clds-reference file * @return A jsonNode - * @throws IOException - * In case of issues with the JSON parser + * @throws IOException In case of issues with the JSON parser */ public JsonElement getJsonTemplate(String key) throws IOException { String fileReference = getStringValue(key); return (fileReference != null) - ? JsonUtils.GSON.fromJson(getFileContentFromPath(fileReference), JsonElement.class) - : null; + ? JsonUtils.GSON.fromJson(getFileContentFromPath(fileReference), JsonElement.class) + : null; } /** @@ -101,30 +94,25 @@ public class ClampProperties { * "." + key2), otherwise default to just key1. The value obtained from the * clds-reference file will be used as a filename. * - * @param key1 - * The first key - * @param key2 - * The second key after a dot + * @param key1 The first key + * @param key2 The second key after a dot * @return A JsonNode - * @throws IOException - * In case of issues with the JSON parser + * @throws IOException In case of issues with the JSON parser */ public JsonElement getJsonTemplate(String key1, String key2) throws IOException { String fileReference = getStringValue(key1, key2); return (fileReference != null) - ? JsonUtils.GSON.fromJson(getFileContentFromPath(fileReference), JsonElement.class) - : null; + ? JsonUtils.GSON.fromJson(getFileContentFromPath(fileReference), JsonElement.class) + : null; } /** * Return the file content. The value obtained from the clds-reference file will * be used as a filename. * - * @param key - * The key that will be used to access the clds-reference file + * @param key The key that will be used to access the clds-reference file * @return File content in String - * @throws IOException - * In case of issues with the JSON parser + * @throws IOException In case of issues with the JSON parser */ public String getFileContent(String key) throws IOException { String fileReference = getStringValue(key); @@ -136,13 +124,10 @@ public class ClampProperties { * otherwise default to just key1. The value obtained from the clds-reference * file will be used as a filename. * - * @param key1 - * The first key - * @param key2 - * The second key after a dot + * @param key1 The first key + * @param key2 The second key after a dot * @return File content in String - * @throws IOException - * In case of issues with the JSON parser + * @throws IOException In case of issues with the JSON parser */ public String getFileContent(String key1, String key2) throws IOException { String fileReference = getStringValue(key1, key2); @@ -153,18 +138,4 @@ public class ClampProperties { URL url = appContext.getResource(filepath).getURL(); return IOUtils.toString(url, StandardCharsets.UTF_8); } - - /** - * Returns the list of strings split with separator. - * - * @param key - * property key - * @param separator - * property value separator - * @return List of Strings split with a separator - */ - public List<String> getStringList(String key, String separator) { - return Splitter.on(separator).trimResults().omitEmptyStrings() - .splitToList(env.getProperty(CONFIG_PREFIX + key)); - } } diff --git a/src/main/java/org/onap/clamp/clds/config/PolicyConfiguration.java b/src/main/java/org/onap/clamp/clds/config/PolicyConfiguration.java deleted file mode 100644 index a4f37e8bb..000000000 --- a/src/main/java/org/onap/clamp/clds/config/PolicyConfiguration.java +++ /dev/null @@ -1,133 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP CLAMP - * ================================================================================ - * Copyright (C) 2018 AT&T Intellectual Property. All rights - * reserved. - * ================================================================================ - * 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. - * ============LICENSE_END============================================ - * =================================================================== - * - */ - -package org.onap.clamp.clds.config; - -import java.util.Properties; - -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.stereotype.Component; - -@Component -@ConfigurationProperties(prefix = "clamp.config.policy") -public class PolicyConfiguration { - - public static final String PDP_URL1 = "PDP_URL1"; - public static final String PDP_URL2 = "PDP_URL2"; - public static final String PAP_URL = "PAP_URL"; - public static final String NOTIFICATION_TYPE = "NOTIFICATION_TYPE"; - public static final String NOTIFICATION_UEB_SERVERS = "NOTIFICATION_UEB_SERVERS"; - public static final String CLIENT_ID = "CLIENT_ID"; - public static final String CLIENT_KEY = "CLIENT_KEY"; - public static final String ENVIRONMENT = "ENVIRONMENT"; - private String pdpUrl1; - private String pdpUrl2; - private String papUrl; - private String notificationType; - private String notificationUebServers; - private String clientId; - private String clientKey; - private String policyEnvironment; - - public String getPdpUrl1() { - return pdpUrl1; - } - - public void setPdpUrl1(String pdpUrl1) { - this.pdpUrl1 = pdpUrl1; - } - - public String getPdpUrl2() { - return pdpUrl2; - } - - public void setPdpUrl2(String pdpUrl2) { - this.pdpUrl2 = pdpUrl2; - } - - public String getPapUrl() { - return papUrl; - } - - public void setPapUrl(String papUrl) { - this.papUrl = papUrl; - } - - public String getNotificationType() { - return notificationType; - } - - public void setNotificationType(String notificationType) { - this.notificationType = notificationType; - } - - public String getNotificationUebServers() { - return notificationUebServers; - } - - public void setNotificationUebServers(String notificationUebServers) { - this.notificationUebServers = notificationUebServers; - } - - public String getClientId() { - return clientId; - } - - public void setClientId(String clientId) { - this.clientId = clientId; - } - - public String getClientKey() { - return clientKey; - } - - public void setClientKey(String clientKey) { - this.clientKey = clientKey; - } - - public String getPolicyEnvironment() { - return policyEnvironment; - } - - public void setPolicyEnvironment(String environment) { - this.policyEnvironment = environment; - } - - /** - * Returns policy configuration properties. - * - * @return policy configuration properties - */ - public Properties getProperties() { - Properties prop = new Properties(); - prop.put(PDP_URL1, pdpUrl1); - prop.put(PDP_URL2, pdpUrl2); - prop.put(PAP_URL, papUrl); - prop.put(NOTIFICATION_TYPE, notificationType); - prop.put(NOTIFICATION_UEB_SERVERS, notificationUebServers); - prop.put(CLIENT_ID, clientId); - prop.put(CLIENT_KEY, clientKey); - prop.put(ENVIRONMENT, policyEnvironment); - return prop; - } -} diff --git a/src/main/java/org/onap/clamp/clds/config/spring/SdcControllerConfiguration.java b/src/main/java/org/onap/clamp/clds/config/spring/SdcControllerConfiguration.java index 5a3e22a35..eca45d66f 100644 --- a/src/main/java/org/onap/clamp/clds/config/spring/SdcControllerConfiguration.java +++ b/src/main/java/org/onap/clamp/clds/config/spring/SdcControllerConfiguration.java @@ -41,14 +41,12 @@ import org.onap.clamp.loop.CsarInstaller; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Profile; import org.springframework.scheduling.annotation.Scheduled; @Configuration -@ComponentScan(basePackages = { "org.onap.clamp.loop", "org.onap.clamp.clds.config" }) -@Profile("clamp-sdc-controller-new") +@Profile("clamp-sdc-controller") public class SdcControllerConfiguration { private static final EELFLogger logger = EELFManager.getInstance().getLogger(SdcControllerConfiguration.class); diff --git a/src/main/java/org/onap/clamp/clds/exception/BadRequestException.java b/src/main/java/org/onap/clamp/clds/exception/BadRequestException.java deleted file mode 100644 index caf525eee..000000000 --- a/src/main/java/org/onap/clamp/clds/exception/BadRequestException.java +++ /dev/null @@ -1,61 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP CLAMP - * ================================================================================ - * Copyright (C) 2018 AT&T Intellectual Property. All rights - * reserved. - * ================================================================================ - * 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. - * ============LICENSE_END============================================ - * =================================================================== - * - */ - -package org.onap.clamp.clds.exception; - -/** - * New exception to request errors. - * - */ -public class BadRequestException extends RuntimeException { - - /** - * The serial version ID. - */ - private static final long serialVersionUID = -5738167530541646123L; - - /** - * This constructor can be used to create a new CldsConfigException. - * - * @param message - * A string message detailing the problem - * @param ex - * The exception sent by the code - */ - public BadRequestException(String message, Throwable ex) { - super(message, ex); - } - - /** - * This constructor can be used to create a new CldsConfigException. Use this - * constructor only if you are creating a new exception stack, not if an - * exception was already raised by another code. - * - * @param message - * A string message detailing the problem - */ - public BadRequestException(String message) { - super(message); - } - -} diff --git a/src/main/java/org/onap/clamp/exception/OperationException.java b/src/main/java/org/onap/clamp/clds/exception/sdc/controller/BlueprintParserException.java index 6e26d294c..7257fd8a0 100644 --- a/src/main/java/org/onap/clamp/exception/OperationException.java +++ b/src/main/java/org/onap/clamp/clds/exception/sdc/controller/BlueprintParserException.java @@ -2,7 +2,7 @@ * ============LICENSE_START======================================================= * ONAP CLAMP * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights + * Copyright (C) 2020 AT&T Intellectual Property. All rights * reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); @@ -21,41 +21,34 @@ * */ -package org.onap.clamp.exception; +package org.onap.clamp.clds.exception.sdc.controller; /** - * New exception to CldsUser errors. - * + * Exception during blueprint parsing. */ -public class OperationException extends RuntimeException { +public class BlueprintParserException extends Exception { /** - * The serial version ID. + * Serial ID. */ - private static final long serialVersionUID = 2788967876393519620L; + private static final long serialVersionUID = -3044162346353623199L; /** - * This constructor can be used to create a new CldsUsersException. + * This constructor can be used to create a new SdcDownloadException. * - * @param message - * A string message detailing the problem - * @param cause - * The exception sent by the code + * @param message The message to dump */ - public OperationException(String message, Throwable cause) { - super(message, cause); + public BlueprintParserException(final String message) { + super(message); } /** - * This constructor can be used to create a new CldsUsersException. Use this - * constructor only if you are creating a new exception stack, not if an - * exception was already raised by another code. + * This constructor can be used to create a new SdcDownloadException. * - * @param message - * A string message detailing the problem + * @param message The message to dump + * @param cause The Throwable cause object */ - public OperationException(String message) { - super(message); + public BlueprintParserException(final String message, final Throwable cause) { + super(message, cause); } - } diff --git a/src/main/java/org/onap/clamp/clds/model/dcae/DcaeInventoryCache.java b/src/main/java/org/onap/clamp/clds/model/dcae/DcaeInventoryCache.java index 19bc23d5e..fc2ca5caa 100644 --- a/src/main/java/org/onap/clamp/clds/model/dcae/DcaeInventoryCache.java +++ b/src/main/java/org/onap/clamp/clds/model/dcae/DcaeInventoryCache.java @@ -46,7 +46,7 @@ public class DcaeInventoryCache { public void addDcaeInventoryResponse(DcaeInventoryResponse inventoryResponse) { Set<DcaeInventoryResponse> responsesSet = blueprintsMap.get(inventoryResponse.getAsdcServiceId()); if (responsesSet == null) { - responsesSet = new TreeSet<DcaeInventoryResponse>(); + responsesSet = new TreeSet<>(); blueprintsMap.put(inventoryResponse.getAsdcServiceId(), responsesSet); } responsesSet.add(inventoryResponse); diff --git a/src/main/java/org/onap/clamp/clds/sdc/controller/SdcSingleController.java b/src/main/java/org/onap/clamp/clds/sdc/controller/SdcSingleController.java index bd18baea6..fbb37d525 100644 --- a/src/main/java/org/onap/clamp/clds/sdc/controller/SdcSingleController.java +++ b/src/main/java/org/onap/clamp/clds/sdc/controller/SdcSingleController.java @@ -33,6 +33,7 @@ import java.util.concurrent.ThreadLocalRandom; import org.onap.clamp.clds.config.ClampProperties; import org.onap.clamp.clds.config.sdc.SdcSingleControllerConfiguration; +import org.onap.clamp.clds.exception.sdc.controller.BlueprintParserException; import org.onap.clamp.clds.exception.sdc.controller.CsarHandlerException; import org.onap.clamp.clds.exception.sdc.controller.SdcArtifactInstallerException; import org.onap.clamp.clds.exception.sdc.controller.SdcControllerException; @@ -290,6 +291,10 @@ public class SdcSingleController { sendAllNotificationForCsarHandler(notificationData, csar, NotificationType.DEPLOY, DistributionStatusEnum.DEPLOY_ERROR, e.getMessage()); Thread.currentThread().interrupt(); + } catch (BlueprintParserException e) { + logger.error("BlueprintParser exception caught during the notification processing", e); + sendAllNotificationForCsarHandler(notificationData, csar, NotificationType.DEPLOY, + DistributionStatusEnum.DEPLOY_ERROR, e.getMessage()); } catch (RuntimeException e) { logger.error("Unexpected exception caught during the notification processing", e); sendAllNotificationForCsarHandler(notificationData, csar, NotificationType.DEPLOY, diff --git a/src/main/java/org/onap/clamp/clds/sdc/controller/installer/MicroService.java b/src/main/java/org/onap/clamp/clds/sdc/controller/installer/BlueprintMicroService.java index 68ac842cf..e00ce9430 100644 --- a/src/main/java/org/onap/clamp/clds/sdc/controller/installer/MicroService.java +++ b/src/main/java/org/onap/clamp/clds/sdc/controller/installer/BlueprintMicroService.java @@ -17,7 +17,7 @@ * See the License for the specific language governing permissions and * limitations under the License. * ============LICENSE_END============================================ - * Modifications copyright (c) 2019 AT&T + * Modifications copyright (c) 2019-2020 AT&T * =================================================================== * */ @@ -26,25 +26,24 @@ package org.onap.clamp.clds.sdc.controller.installer; import java.util.Objects; -public class MicroService { +public class BlueprintMicroService { private final String name; private final String modelType; private final String inputFrom; - private String mappedNameJpa; + private final String modelVersion; /** * The Micro service constructor. * - * @param name The name in String - * @param modelType The model type - * @param inputFrom Comes from (single chained) - * @param mappedNameJpa Name in database + * @param name The name in String + * @param modelType The model type + * @param inputFrom Comes from (single chained) */ - public MicroService(String name, String modelType, String inputFrom, String mappedNameJpa) { + public BlueprintMicroService(String name, String modelType, String inputFrom, String modelVersion) { this.name = name; this.inputFrom = inputFrom; - this.mappedNameJpa = mappedNameJpa; this.modelType = modelType; + this.modelVersion = modelVersion; } public String getName() { @@ -59,18 +58,19 @@ public class MicroService { return inputFrom; } - @Override - public String toString() { - return "MicroService{" + "name='" + name + '\'' + ", modelType='" + modelType + '\'' + ", inputFrom='" - + inputFrom + '\'' + ", mappedNameJpa='" + mappedNameJpa + '\'' + '}'; - } - - public String getMappedNameJpa() { - return mappedNameJpa; + /** + * modelVerrsion getter. + * + * @return the modelVersion + */ + public String getModelVersion() { + return modelVersion; } - public void setMappedNameJpa(String mappedNameJpa) { - this.mappedNameJpa = mappedNameJpa; + @Override + public String toString() { + return "MicroService {" + "name='" + name + '\'' + ", modelType='" + modelType + '\'' + ", inputFrom='" + + inputFrom + '\'' + ", modelVersion='" + modelVersion + '\'' + '}'; } @Override @@ -81,13 +81,13 @@ public class MicroService { if (obj == null || getClass() != obj.getClass()) { return false; } - MicroService that = (MicroService) obj; + BlueprintMicroService that = (BlueprintMicroService) obj; return name.equals(that.name) && modelType.equals(that.modelType) && inputFrom.equals(that.inputFrom) - && mappedNameJpa.equals(that.mappedNameJpa); + && modelVersion.equals(that.modelVersion); } @Override public int hashCode() { - return Objects.hash(name, modelType, inputFrom, mappedNameJpa); + return Objects.hash(name, modelType, inputFrom, modelVersion); } } diff --git a/src/main/java/org/onap/clamp/clds/sdc/controller/installer/BlueprintParser.java b/src/main/java/org/onap/clamp/clds/sdc/controller/installer/BlueprintParser.java index 0dd231f03..981a20416 100644 --- a/src/main/java/org/onap/clamp/clds/sdc/controller/installer/BlueprintParser.java +++ b/src/main/java/org/onap/clamp/clds/sdc/controller/installer/BlueprintParser.java @@ -24,6 +24,8 @@ package org.onap.clamp.clds.sdc.controller.installer; +import com.att.eelf.configuration.EELFLogger; +import com.att.eelf.configuration.EELFManager; import com.google.gson.Gson; import com.google.gson.JsonArray; import com.google.gson.JsonElement; @@ -38,76 +40,74 @@ import java.util.Map.Entry; import java.util.Set; import org.json.JSONObject; -import org.springframework.stereotype.Component; +import org.onap.clamp.clds.exception.sdc.controller.BlueprintParserException; import org.yaml.snakeyaml.Yaml; -@Component public class BlueprintParser { static final String TCA = "TCA"; - static final String HOLMES = "Holmes"; - private static final String TCA_POLICY = "tca_policy"; - private static final String HOLMES_PREFIX = "holmes"; private static final String NODE_TEMPLATES = "node_templates"; private static final String DCAE_NODES = "dcae.nodes."; + private static final String DCAE_NODES_POLICY = "dcae.nodes.policy"; private static final String TYPE = "type"; private static final String PROPERTIES = "properties"; private static final String NAME = "name"; private static final String INPUT = "inputs"; private static final String GET_INPUT = "get_input"; - private static final String POLICY_MODELID = "policy_model_id"; + private static final String POLICY_MODEL_ID = "policy_model_id"; + private static final String POLICY_MODEL_VERSION = "policy_model_version"; private static final String RELATIONSHIPS = "relationships"; private static final String CLAMP_NODE_RELATIONSHIPS_GETS_INPUT_FROM = "clamp_node.relationships.gets_input_from"; private static final String TARGET = "target"; + public static final String DEFAULT_VERSION = "1.0.0"; + + private static final EELFLogger logger = EELFManager.getInstance().getLogger(BlueprintParser.class); + + private BlueprintParser() { + + } /** * Get all micro services from blueprint. * * @param blueprintString the blueprint in a String * @return A set of MircoService + * @throws BlueprintParserException In case of issues with the parsing */ - public Set<MicroService> getMicroServices(String blueprintString) { - Set<MicroService> microServices = new HashSet<>(); + public static Set<BlueprintMicroService> getMicroServices(String blueprintString) throws BlueprintParserException { + Set<BlueprintMicroService> microServices = new HashSet<>(); JsonObject blueprintJson = BlueprintParser.convertToJson(blueprintString); JsonObject nodeTemplateList = blueprintJson.get(NODE_TEMPLATES).getAsJsonObject(); JsonObject inputList = blueprintJson.get(INPUT).getAsJsonObject(); for (Entry<String, JsonElement> entry : nodeTemplateList.entrySet()) { JsonObject nodeTemplate = entry.getValue().getAsJsonObject(); - if (nodeTemplate.get(TYPE).getAsString().contains(DCAE_NODES)) { - MicroService microService = getNodeRepresentation(entry, nodeTemplateList, inputList); - microServices.add(microService); + if (!nodeTemplate.get(TYPE).getAsString().contains(DCAE_NODES_POLICY) + && nodeTemplate.get(TYPE).getAsString().contains(DCAE_NODES)) { + BlueprintMicroService microService = getNodeRepresentation(entry, nodeTemplateList, inputList); + if (!microService.getModelType().isBlank()) { + microServices.add(microService); + } else { + logger.warn("Microservice " + microService.getName() + + " will NOT be used by CLAMP as the model type is not defined or has not been found"); + } } } - microServices.removeIf(ms -> TCA_POLICY.equals(ms.getName())); + logger.debug("Those microservices have been found in the blueprint:" + microServices); return microServices; } /** - * Does a fallback to TCA or Holmes. + * Does a fallback to TCA. * - * @param blueprintString the blueprint in a String * @return The list of microservices */ - public List<MicroService> fallbackToOneMicroService(String blueprintString) { - JsonObject jsonObject = BlueprintParser.convertToJson(blueprintString); - JsonObject results = jsonObject.get(NODE_TEMPLATES).getAsJsonObject(); - String theBiggestMicroServiceContent = ""; - String theBiggestMicroServiceKey = ""; - for (Entry<String, JsonElement> entry : results.entrySet()) { - String msAsString = entry.getValue().toString(); - int len = msAsString.length(); - if (len > theBiggestMicroServiceContent.length()) { - theBiggestMicroServiceContent = msAsString; - theBiggestMicroServiceKey = entry.getKey(); - } - } - String msName = theBiggestMicroServiceKey.toLowerCase().contains(HOLMES_PREFIX) ? HOLMES : TCA; - return Collections - .singletonList(new MicroService(msName, "onap.policies.monitoring.cdap.tca.hi.lo.app", "", "")); + public static List<BlueprintMicroService> fallbackToOneMicroService() { + return Collections.singletonList( + new BlueprintMicroService(TCA, "onap.policies.monitoring.cdap.tca.hi.lo.app", "", DEFAULT_VERSION)); } - String getName(Entry<String, JsonElement> entry) { + static String getName(Entry<String, JsonElement> entry) { String microServiceYamlName = entry.getKey(); JsonObject ob = entry.getValue().getAsJsonObject(); if (ob.has(PROPERTIES)) { @@ -119,7 +119,7 @@ public class BlueprintParser { return microServiceYamlName; } - String getInput(Entry<String, JsonElement> entry) { + static String getInput(Entry<String, JsonElement> entry) { JsonObject ob = entry.getValue().getAsJsonObject(); if (ob.has(RELATIONSHIPS)) { JsonArray relationships = ob.getAsJsonArray(RELATIONSHIPS); @@ -133,51 +133,81 @@ public class BlueprintParser { return ""; } - String findModelTypeInTargetArray(JsonArray jsonArray, JsonObject nodeTemplateList, JsonObject inputList) { - for (JsonElement elem : jsonArray) { - String modelType = getModelType( - new AbstractMap.SimpleEntry<String, JsonElement>(elem.getAsJsonObject().get(TARGET).getAsString(), - nodeTemplateList.get(elem.getAsJsonObject().get(TARGET).getAsString()).getAsJsonObject()), - nodeTemplateList, inputList); - if (!modelType.isEmpty()) { - return modelType; + static String findPropertyInRelationshipsArray(String propertyName, JsonArray relationshipsArray, + JsonObject blueprintNodeTemplateList, JsonObject blueprintInputList) throws BlueprintParserException { + for (JsonElement elem : relationshipsArray) { + if (blueprintNodeTemplateList.get(elem.getAsJsonObject().get(TARGET).getAsString()) == null) { + throw new BlueprintParserException( + "The Target mentioned in the blueprint is not a known entry in the blueprint: " + + elem.getAsJsonObject().get(TARGET).getAsString()); + } else { + String property = getPropertyValue(propertyName, + new AbstractMap.SimpleEntry<String, JsonElement>( + elem.getAsJsonObject().get(TARGET).getAsString(), blueprintNodeTemplateList + .get(elem.getAsJsonObject().get(TARGET).getAsString()).getAsJsonObject()), + blueprintNodeTemplateList, blueprintInputList); + if (!property.isEmpty()) { + return property; + } } } return ""; } - String getModelType(Entry<String, JsonElement> entry, JsonObject nodeTemplateList, JsonObject inputList) { - JsonObject ob = entry.getValue().getAsJsonObject(); + static String getDirectOrInputPropertyValue(String propertyName, JsonObject blueprintInputList, + JsonObject nodeTemplateContent) { + JsonObject properties = nodeTemplateContent.get(PROPERTIES).getAsJsonObject(); + if (properties.has(propertyName)) { + if (properties.get(propertyName).isJsonObject()) { + // it's a blueprint parameter + return blueprintInputList + .get(properties.get(propertyName).getAsJsonObject().get(GET_INPUT).getAsString()) + .getAsJsonObject().get("default").getAsString(); + } else { + // It's a direct value + return properties.get(propertyName).getAsString(); + } + } + return ""; + } + + static String getPropertyValue(String propertyName, Entry<String, JsonElement> nodeTemplateEntry, + JsonObject blueprintNodeTemplateList, JsonObject blueprintIputList) throws BlueprintParserException { + JsonObject nodeTemplateContent = nodeTemplateEntry.getValue().getAsJsonObject(); // Search first in this node template - if (ob.has(PROPERTIES)) { - JsonObject properties = ob.get(PROPERTIES).getAsJsonObject(); - if (properties.has(POLICY_MODELID)) { - if (properties.get(POLICY_MODELID).isJsonObject()) { - // it's a blueprint parameter - return inputList.get(properties.get(POLICY_MODELID).getAsJsonObject().get(GET_INPUT).getAsString()) - .getAsJsonObject().get("default").getAsString(); - } else { - // It's a direct value - return properties.get(POLICY_MODELID).getAsString(); - } + if (nodeTemplateContent.has(PROPERTIES)) { + String propValue = getDirectOrInputPropertyValue(propertyName, blueprintIputList, nodeTemplateContent); + if (!propValue.isBlank()) { + return propValue; } } // Or it's may be defined in a relationship - if (ob.has(RELATIONSHIPS)) { - return findModelTypeInTargetArray(ob.get(RELATIONSHIPS).getAsJsonArray(), nodeTemplateList, inputList); + if (nodeTemplateContent.has(RELATIONSHIPS)) { + return findPropertyInRelationshipsArray(propertyName, + nodeTemplateContent.get(RELATIONSHIPS).getAsJsonArray(), blueprintNodeTemplateList, + blueprintIputList); } return ""; } - MicroService getNodeRepresentation(Entry<String, JsonElement> entry, JsonObject nodeTemplateList, - JsonObject inputList) { - String name = getName(entry); - String getInputFrom = getInput(entry); - String modelType = getModelType(entry, nodeTemplateList, inputList); - return new MicroService(name, modelType, getInputFrom, ""); + static BlueprintMicroService getNodeRepresentation(Entry<String, JsonElement> nodeTemplateEntry, + JsonObject blueprintNodeTemplateList, JsonObject blueprintInputList) throws BlueprintParserException { + String modelIdFound = getPropertyValue(POLICY_MODEL_ID, nodeTemplateEntry, blueprintNodeTemplateList, + blueprintInputList); + String versionFound = getPropertyValue(POLICY_MODEL_VERSION, nodeTemplateEntry, blueprintNodeTemplateList, + blueprintInputList); + if (modelIdFound.isBlank()) { + logger.warn("policy_model_id is not defined for the node template:" + nodeTemplateEntry.getKey()); + } + if (versionFound.isBlank()) { + logger.warn("policy_model_version is not defined (setting it to a default value) for the node template:" + + nodeTemplateEntry.getKey()); + } + return new BlueprintMicroService(getName(nodeTemplateEntry), modelIdFound, getInput(nodeTemplateEntry), + !versionFound.isBlank() ? versionFound : DEFAULT_VERSION); } - private String getTarget(JsonObject elementObject) { + private static String getTarget(JsonObject elementObject) { if (elementObject.has(TYPE) && elementObject.has(TARGET) && elementObject.get(TYPE).getAsString().equals(CLAMP_NODE_RELATIONSHIPS_GETS_INPUT_FROM)) { return elementObject.get(TARGET).getAsString(); @@ -186,10 +216,7 @@ public class BlueprintParser { } private static JsonObject convertToJson(String yamlString) { - Yaml yaml = new Yaml(); - Map<String, Object> map = yaml.load(yamlString); - - JSONObject jsonObject = new JSONObject(map); - return new Gson().fromJson(jsonObject.toString(), JsonObject.class); + Map<String, Object> map = new Yaml().load(yamlString); + return new Gson().fromJson(new JSONObject(map).toString(), JsonObject.class); } } diff --git a/src/main/java/org/onap/clamp/clds/sdc/controller/installer/ChainGenerator.java b/src/main/java/org/onap/clamp/clds/sdc/controller/installer/ChainGenerator.java index 9e76cc938..2bd259c2b 100644 --- a/src/main/java/org/onap/clamp/clds/sdc/controller/installer/ChainGenerator.java +++ b/src/main/java/org/onap/clamp/clds/sdc/controller/installer/ChainGenerator.java @@ -42,11 +42,11 @@ public class ChainGenerator { * @param input A set of microservices * @return The list of microservice chained */ - public List<MicroService> getChainOfMicroServices(Set<MicroService> input) { - LinkedList<MicroService> returnList = new LinkedList<>(); + public List<BlueprintMicroService> getChainOfMicroServices(Set<BlueprintMicroService> input) { + LinkedList<BlueprintMicroService> returnList = new LinkedList<>(); if (preValidate(input)) { - LinkedList<MicroService> theList = new LinkedList<>(); - for (MicroService ms : input) { + LinkedList<BlueprintMicroService> theList = new LinkedList<>(); + for (BlueprintMicroService ms : input) { insertNodeTemplateIntoChain(ms, theList); } if (postValidate(theList)) { @@ -56,16 +56,16 @@ public class ChainGenerator { return returnList; } - private boolean preValidate(Set<MicroService> input) { - List<MicroService> noInputs = input.stream().filter(ms -> "".equals(ms.getInputFrom())) + private boolean preValidate(Set<BlueprintMicroService> input) { + List<BlueprintMicroService> noInputs = input.stream().filter(ms -> "".equals(ms.getInputFrom())) .collect(Collectors.toList()); return noInputs.size() == 1; } - private boolean postValidate(LinkedList<MicroService> microServices) { + private boolean postValidate(LinkedList<BlueprintMicroService> microServices) { for (int i = 1; i < microServices.size() - 1; i++) { - MicroService prev = microServices.get(i - 1); - MicroService current = microServices.get(i); + BlueprintMicroService prev = microServices.get(i - 1); + BlueprintMicroService current = microServices.get(i); if (!current.getInputFrom().equals(prev.getName())) { return false; } @@ -73,11 +73,11 @@ public class ChainGenerator { return true; } - private void insertNodeTemplateIntoChain(MicroService microServicetoInsert, - LinkedList<MicroService> chainOfMicroServices) { + private void insertNodeTemplateIntoChain(BlueprintMicroService microServicetoInsert, + LinkedList<BlueprintMicroService> chainOfMicroServices) { int insertIndex = 0; for (int i = 0; i < chainOfMicroServices.size(); i++) { - MicroService current = chainOfMicroServices.get(i); + BlueprintMicroService current = chainOfMicroServices.get(i); if (microServicetoInsert.getName().equals(current.getInputFrom())) { insertIndex = i; break; diff --git a/src/main/java/org/onap/clamp/clds/util/drawing/ClampGraphBuilder.java b/src/main/java/org/onap/clamp/clds/util/drawing/ClampGraphBuilder.java index 8ded0cb87..6ce89873b 100755 --- a/src/main/java/org/onap/clamp/clds/util/drawing/ClampGraphBuilder.java +++ b/src/main/java/org/onap/clamp/clds/util/drawing/ClampGraphBuilder.java @@ -28,12 +28,12 @@ import java.util.ArrayList; import java.util.List; import java.util.Objects; -import org.onap.clamp.clds.sdc.controller.installer.MicroService; +import org.onap.clamp.clds.sdc.controller.installer.BlueprintMicroService; public class ClampGraphBuilder { private String policy; private String collector; - private List<MicroService> microServices = new ArrayList<>(); + private List<BlueprintMicroService> microServices = new ArrayList<>(); private final Painter painter; public ClampGraphBuilder(Painter painter) { @@ -50,12 +50,12 @@ public class ClampGraphBuilder { return this; } - public ClampGraphBuilder addMicroService(MicroService ms) { + public ClampGraphBuilder addMicroService(BlueprintMicroService ms) { microServices.add(ms); return this; } - public ClampGraphBuilder addAllMicroServices(List<MicroService> msList) { + public ClampGraphBuilder addAllMicroServices(List<BlueprintMicroService> msList) { microServices.addAll(msList); return this; } diff --git a/src/main/java/org/onap/clamp/clds/util/drawing/Painter.java b/src/main/java/org/onap/clamp/clds/util/drawing/Painter.java index af6caf932..d96c9e537 100755 --- a/src/main/java/org/onap/clamp/clds/util/drawing/Painter.java +++ b/src/main/java/org/onap/clamp/clds/util/drawing/Painter.java @@ -31,7 +31,7 @@ import java.awt.RenderingHints; import java.util.List; import org.apache.batik.svggen.SVGGraphics2D; -import org.onap.clamp.clds.sdc.controller.installer.MicroService; +import org.onap.clamp.clds.sdc.controller.installer.BlueprintMicroService; public class Painter { private final int canvasSize; @@ -57,7 +57,7 @@ public class Painter { this.canvasSize = DEFALUT_CANVAS_SIZE; } - DocumentBuilder doPaint(String collector, List<MicroService> microServices, String policy) { + DocumentBuilder doPaint(String collector, List<BlueprintMicroService> microServices, String policy) { int numOfRectangles = 2 + microServices.size(); int numOfArrows = numOfRectangles + 1; int baseLength = (canvasSize - 2 * CIRCLE_RADIUS) / (numOfArrows + numOfRectangles); @@ -76,12 +76,12 @@ public class Painter { return ib.getDocumentBuilder(); } - private void doTheActualDrawing(String collector, List<MicroService> microServices, String policy, + private void doTheActualDrawing(String collector, List<BlueprintMicroService> microServices, String policy, ImageBuilder ib) { ib.circle("start-circle", SLIM_LINE).arrow().rectangle(collector, RectTypes.COLECTOR, collector); - for (MicroService ms : microServices) { - ib.arrow().rectangle(ms.getMappedNameJpa(), RectTypes.MICROSERVICE, ms.getName()); + for (BlueprintMicroService ms : microServices) { + ib.arrow().rectangle(ms.getModelType(), RectTypes.MICROSERVICE, ms.getName()); } ib.arrow().rectangle(policy, RectTypes.POLICY, policy).arrow().circle("stop-circle", THICK_LINE); diff --git a/src/main/java/org/onap/clamp/clds/util/drawing/SvgFacade.java b/src/main/java/org/onap/clamp/clds/util/drawing/SvgFacade.java index ae0c1729c..251f48864 100644 --- a/src/main/java/org/onap/clamp/clds/util/drawing/SvgFacade.java +++ b/src/main/java/org/onap/clamp/clds/util/drawing/SvgFacade.java @@ -27,7 +27,7 @@ package org.onap.clamp.clds.util.drawing; import java.util.List; import org.apache.batik.svggen.SVGGraphics2D; -import org.onap.clamp.clds.sdc.controller.installer.MicroService; +import org.onap.clamp.clds.sdc.controller.installer.BlueprintMicroService; import org.onap.clamp.clds.util.XmlTools; import org.springframework.stereotype.Component; import org.w3c.dom.Document; @@ -40,7 +40,7 @@ public class SvgFacade { * @param microServicesChain THe chain of microservices * @return A String containing the SVG */ - public String getSvgImage(List<MicroService> microServicesChain) { + public String getSvgImage(List<BlueprintMicroService> microServicesChain) { SVGGraphics2D svgGraphics2D = new SVGGraphics2D(XmlTools.createEmptySvgDocument()); Document document = XmlTools.createEmptySvgDocument(); DocumentBuilder dp = new DocumentBuilder(document, svgGraphics2D.getDOMFactory()); diff --git a/src/main/java/org/onap/clamp/loop/CsarInstaller.java b/src/main/java/org/onap/clamp/loop/CsarInstaller.java index 013d3419d..c0cfac960 100644 --- a/src/main/java/org/onap/clamp/loop/CsarInstaller.java +++ b/src/main/java/org/onap/clamp/loop/CsarInstaller.java @@ -33,13 +33,15 @@ import java.util.Map.Entry; import org.json.simple.parser.ParseException; import org.onap.clamp.clds.client.DcaeInventoryServices; +import org.onap.clamp.clds.client.PolicyEngineServices; +import org.onap.clamp.clds.exception.sdc.controller.BlueprintParserException; import org.onap.clamp.clds.exception.sdc.controller.SdcArtifactInstallerException; import org.onap.clamp.clds.model.dcae.DcaeInventoryResponse; import org.onap.clamp.clds.sdc.controller.installer.BlueprintArtifact; +import org.onap.clamp.clds.sdc.controller.installer.BlueprintMicroService; import org.onap.clamp.clds.sdc.controller.installer.BlueprintParser; import org.onap.clamp.clds.sdc.controller.installer.ChainGenerator; import org.onap.clamp.clds.sdc.controller.installer.CsarHandler; -import org.onap.clamp.clds.sdc.controller.installer.MicroService; import org.onap.clamp.clds.util.drawing.SvgFacade; import org.onap.clamp.loop.service.CsarServiceInstaller; import org.onap.clamp.loop.service.Service; @@ -47,6 +49,8 @@ import org.onap.clamp.loop.template.LoopElementModel; import org.onap.clamp.loop.template.LoopTemplate; import org.onap.clamp.loop.template.LoopTemplatesRepository; import org.onap.clamp.loop.template.PolicyModel; +import org.onap.clamp.loop.template.PolicyModelId; +import org.onap.clamp.loop.template.PolicyModelsRepository; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.stereotype.Component; @@ -61,31 +65,27 @@ import org.springframework.stereotype.Component; public class CsarInstaller { private static final EELFLogger logger = EELFManager.getInstance().getLogger(CsarInstaller.class); - public static final String CONTROL_NAME_PREFIX = "ClosedLoop-"; - public static final String GET_INPUT_BLUEPRINT_PARAM = "get_input"; - // This will be used later as the policy scope - public static final String MODEL_NAME_PREFIX = "Loop_"; @Autowired - LoopsRepository loopRepository; + private PolicyModelsRepository policyModelsRepository; @Autowired - LoopTemplatesRepository loopTemplatesRepository; + private LoopTemplatesRepository loopTemplatesRepository; @Autowired - BlueprintParser blueprintParser; + private ChainGenerator chainGenerator; @Autowired - ChainGenerator chainGenerator; + private DcaeInventoryServices dcaeInventoryService; @Autowired - DcaeInventoryServices dcaeInventoryService; + private SvgFacade svgFacade; @Autowired - private SvgFacade svgFacade; + private CsarServiceInstaller csarServiceInstaller; @Autowired - CsarServiceInstaller csarServiceInstaller; + private PolicyEngineServices policyEngineServices; /** * Verify whether Csar is deployed. @@ -113,8 +113,11 @@ public class CsarInstaller { * @param csar The Csar Handler * @throws SdcArtifactInstallerException The SdcArtifactInstallerException * @throws InterruptedException The InterruptedException + * @throws BlueprintParserException In case of issues with the blueprint + * parsing */ - public void installTheCsar(CsarHandler csar) throws SdcArtifactInstallerException, InterruptedException { + public void installTheCsar(CsarHandler csar) + throws SdcArtifactInstallerException, InterruptedException, BlueprintParserException { logger.info("Installing the CSAR " + csar.getFilePath()); installTheLoopTemplates(csar, csarServiceInstaller.installTheService(csar)); logger.info("Successfully installed the CSAR " + csar.getFilePath()); @@ -127,9 +130,11 @@ public class CsarInstaller { * @param service The service object that is related to the loop * @throws SdcArtifactInstallerException The SdcArtifactInstallerException * @throws InterruptedException The InterruptedException + * @throws BlueprintParserException In case of issues with the blueprint + * parsing */ public void installTheLoopTemplates(CsarHandler csar, Service service) - throws SdcArtifactInstallerException, InterruptedException { + throws SdcArtifactInstallerException, InterruptedException, BlueprintParserException { try { logger.info("Installing the Loops"); for (Entry<String, BlueprintArtifact> blueprint : csar.getMapOfBlueprints().entrySet()) { @@ -145,20 +150,20 @@ public class CsarInstaller { } private LoopTemplate createLoopTemplateFromBlueprint(CsarHandler csar, BlueprintArtifact blueprintArtifact, - Service service) throws IOException, ParseException, InterruptedException { + Service service) throws IOException, ParseException, InterruptedException, BlueprintParserException { LoopTemplate newLoopTemplate = new LoopTemplate(); newLoopTemplate.setBlueprint(blueprintArtifact.getDcaeBlueprint()); newLoopTemplate.setName(LoopTemplate.generateLoopTemplateName(csar.getSdcNotification().getServiceName(), csar.getSdcNotification().getServiceVersion(), blueprintArtifact.getResourceAttached().getResourceInstanceName(), blueprintArtifact.getBlueprintArtifactName())); - List<MicroService> microServicesChain = chainGenerator - .getChainOfMicroServices(blueprintParser.getMicroServices(blueprintArtifact.getDcaeBlueprint())); + List<BlueprintMicroService> microServicesChain = chainGenerator + .getChainOfMicroServices(BlueprintParser.getMicroServices(blueprintArtifact.getDcaeBlueprint())); if (microServicesChain.isEmpty()) { - microServicesChain = blueprintParser.fallbackToOneMicroService(blueprintArtifact.getDcaeBlueprint()); + microServicesChain = BlueprintParser.fallbackToOneMicroService(); } newLoopTemplate.setModelService(service); - newLoopTemplate.addLoopElementModels(createMicroServiceModels(microServicesChain, csar, blueprintArtifact)); + newLoopTemplate.addLoopElementModels(createMicroServiceModels(microServicesChain)); newLoopTemplate.setMaximumInstancesAllowed(0); newLoopTemplate.setSvgRepresentation(svgFacade.getSvgImage(microServicesChain)); DcaeInventoryResponse dcaeResponse = queryDcaeToGetServiceTypeId(blueprintArtifact); @@ -166,31 +171,26 @@ public class CsarInstaller { return newLoopTemplate; } - private HashSet<LoopElementModel> createMicroServiceModels(List<MicroService> microServicesChain, CsarHandler csar, - BlueprintArtifact blueprintArtifact) throws IOException { + private HashSet<LoopElementModel> createMicroServiceModels(List<BlueprintMicroService> microServicesChain) + throws InterruptedException { HashSet<LoopElementModel> newSet = new HashSet<>(); - for (MicroService microService : microServicesChain) { + for (BlueprintMicroService microService : microServicesChain) { LoopElementModel loopElementModel = new LoopElementModel(microService.getModelType(), "CONFIG_POLICY", - blueprintArtifact.getDcaeBlueprint()); + null); newSet.add(loopElementModel); - loopElementModel.addPolicyModel(createPolicyModel(microService, csar)); + loopElementModel.addPolicyModel(getPolicyModel(microService)); } return newSet; } - private static String createPolicyAcronym(String policyType) { - String[] policyNameArray = policyType.split("\\."); - return policyNameArray[policyNameArray.length - 1]; - } - - private PolicyModel createPolicyModel(MicroService microService, CsarHandler csar) throws IOException { - return new PolicyModel(microService.getModelType(), csar.getPolicyModelYaml().orElse(""), "1.0", - createPolicyAcronym(microService.getModelType())); + private PolicyModel getPolicyModel(BlueprintMicroService microService) throws InterruptedException { + return policyModelsRepository + .findById(new PolicyModelId(microService.getModelType(), microService.getModelVersion())) + .orElse(policyEngineServices.createPolicyModelFromPolicyEngine(microService)); } /** - * ll get the latest version of the artifact (version can be specified to DCAE - * call). + * Get the service blueprint Id in the Dcae inventory using the SDC UUID. * * @return The DcaeInventoryResponse object containing the dcae values */ diff --git a/src/main/java/org/onap/clamp/loop/Loop.java b/src/main/java/org/onap/clamp/loop/Loop.java index 339812672..0ac8030d3 100644 --- a/src/main/java/org/onap/clamp/loop/Loop.java +++ b/src/main/java/org/onap/clamp/loop/Loop.java @@ -131,7 +131,7 @@ public class Loop extends AuditEntity implements Serializable { @Expose @ManyToOne(cascade = { CascadeType.PERSIST, CascadeType.MERGE, CascadeType.REFRESH }, fetch = FetchType.EAGER) - @JoinColumn(name = "loop_template_name") + @JoinColumn(name = "loop_template_name", nullable=false) private LoopTemplate loopTemplate; private void initializeExternalComponents() { @@ -253,10 +253,12 @@ public class Loop extends AuditEntity implements Serializable { } public Map<String, ExternalComponent> getComponents() { + refreshDcaeComponents(); return components; } public ExternalComponent getComponent(String componentName) { + refreshDcaeComponents(); return this.components.get(componentName); } @@ -272,6 +274,17 @@ public class Loop extends AuditEntity implements Serializable { this.loopTemplate = loopTemplate; } + private void refreshDcaeComponents() { + if (!this.loopTemplate.getUniqueBlueprint()) { + this.components.remove("DCAE"); + for (MicroServicePolicy policy : this.microServicePolicies) { + if (!this.components.containsKey("DCAE_" + policy.getName())) { + this.addComponent(new DcaeComponent(policy.getName())); + } + } + } + } + /** * Generate the loop name. * @@ -282,9 +295,9 @@ public class Loop extends AuditEntity implements Serializable { * @return The generated loop name */ public static String generateLoopName(String serviceName, String serviceVersion, String resourceName, - String blueprintFilename) { + String blueprintFileName) { StringBuilder buffer = new StringBuilder("LOOP_").append(serviceName).append("_v").append(serviceVersion) - .append("_").append(resourceName).append("_").append(blueprintFilename.replaceAll(".yaml", "")); + .append("_").append(resourceName).append("_").append(blueprintFileName.replaceAll(".yaml", "")); return buffer.toString().replace('.', '_').replaceAll(" ", ""); } diff --git a/src/main/java/org/onap/clamp/loop/components/external/DcaeComponent.java b/src/main/java/org/onap/clamp/loop/components/external/DcaeComponent.java index 21960e387..7c0e3ccbb 100644 --- a/src/main/java/org/onap/clamp/loop/components/external/DcaeComponent.java +++ b/src/main/java/org/onap/clamp/loop/components/external/DcaeComponent.java @@ -48,6 +48,8 @@ public class DcaeComponent extends ExternalComponent { private static final String DCAE_SERVICETYPE_ID = "serviceTypeId"; private static final String DCAE_INPUTS = "inputs"; + private String name; + public static final ExternalComponentState BLUEPRINT_DEPLOYED = new ExternalComponentState("BLUEPRINT_DEPLOYED", "The DCAE blueprint has been found in the DCAE inventory but not yet instancianted for this loop"); public static final ExternalComponentState PROCESSING_MICROSERVICE_INSTALLATION = new ExternalComponentState( @@ -73,13 +75,20 @@ public class DcaeComponent extends ExternalComponent { public DcaeComponent() { super(BLUEPRINT_DEPLOYED); + this.name = "DCAE"; + } + + public DcaeComponent(String name) { + super(BLUEPRINT_DEPLOYED); + this.name = "DCAE_" + name; } @Override public String getComponentName() { - return "DCAE"; + return name; } + /** * Convert the json response to a DcaeOperationStatusResponse. * @@ -170,7 +179,7 @@ public class DcaeComponent extends ExternalComponent { /** * Return the uninstallation payload for DCAE. * - * @param microServicePolicy The microServicePolicy object + * @param policy The microServicePolicy object * @return The payload in string (json) */ public static String getUndeployPayload(MicroServicePolicy policy) { diff --git a/src/main/java/org/onap/clamp/loop/template/LoopElementModel.java b/src/main/java/org/onap/clamp/loop/template/LoopElementModel.java index e3f05a01d..0a0831bb7 100644 --- a/src/main/java/org/onap/clamp/loop/template/LoopElementModel.java +++ b/src/main/java/org/onap/clamp/loop/template/LoopElementModel.java @@ -70,7 +70,7 @@ public class LoopElementModel extends AuditEntity implements Serializable { /** * Here we store the blueprint coming from DCAE. */ - @Column(columnDefinition = "MEDIUMTEXT", nullable = false, name = "blueprint_yaml") + @Column(columnDefinition = "MEDIUMTEXT", name = "blueprint_yaml") private String blueprint; /** diff --git a/src/main/java/org/onap/clamp/loop/template/LoopTemplate.java b/src/main/java/org/onap/clamp/loop/template/LoopTemplate.java index b8adebae9..3e90c1e5b 100644 --- a/src/main/java/org/onap/clamp/loop/template/LoopTemplate.java +++ b/src/main/java/org/onap/clamp/loop/template/LoopTemplate.java @@ -70,7 +70,6 @@ public class LoopTemplate extends AuditEntity implements Serializable { @Column(columnDefinition = "MEDIUMTEXT", name = "blueprint_yaml") private String blueprint; - @Expose @Column(columnDefinition = "MEDIUMTEXT", name = "svg_representation") private String svgRepresentation; @@ -88,6 +87,10 @@ public class LoopTemplate extends AuditEntity implements Serializable { @Column(name = "maximum_instances_allowed") private Integer maximumInstancesAllowed; + @Expose + @Column(name = "unique_blueprint", columnDefinition = "boolean default false") + private boolean uniqueBlueprint; + /** * name getter. * @@ -140,6 +143,11 @@ public class LoopTemplate extends AuditEntity implements Serializable { */ public void setBlueprint(String blueprint) { this.blueprint = blueprint; + if (blueprint == null) { + this.uniqueBlueprint = false; + } else { + this.uniqueBlueprint = true; + } } /** @@ -245,6 +253,15 @@ public class LoopTemplate extends AuditEntity implements Serializable { } /** + * uniqueBlueprint getter. + * + * @return the uniqueBlueprint + */ + public boolean getUniqueBlueprint() { + return uniqueBlueprint; + } + + /** * Default constructor for serialization. */ public LoopTemplate() { @@ -265,7 +282,7 @@ public class LoopTemplate extends AuditEntity implements Serializable { public LoopTemplate(String name, String blueprint, String svgRepresentation, Integer maxInstancesAllowed, Service service) { this.name = name; - this.blueprint = blueprint; + this.setBlueprint(blueprint); this.svgRepresentation = svgRepresentation; this.maximumInstancesAllowed = maxInstancesAllowed; @@ -312,10 +329,10 @@ public class LoopTemplate extends AuditEntity implements Serializable { * @return The generated loop template name */ public static String generateLoopTemplateName(String serviceName, String serviceVersion, String resourceName, - String blueprintFilename) { + String blueprintFileName) { StringBuilder buffer = new StringBuilder("LOOP_TEMPLATE_").append(serviceName).append("_v") .append(serviceVersion).append("_").append(resourceName).append("_") - .append(blueprintFilename.replaceAll(".yaml", "")); + .append(blueprintFileName.replaceAll(".yaml", "")); return buffer.toString().replace('.', '_').replaceAll(" ", ""); } } diff --git a/src/main/java/org/onap/clamp/loop/template/PolicyModel.java b/src/main/java/org/onap/clamp/loop/template/PolicyModel.java index 886e8c806..53539fccb 100644 --- a/src/main/java/org/onap/clamp/loop/template/PolicyModel.java +++ b/src/main/java/org/onap/clamp/loop/template/PolicyModel.java @@ -224,7 +224,13 @@ public class PolicyModel extends AuditEntity implements Serializable, Comparable @Override public int compareTo(PolicyModel arg0) { - // Reverse it, so that by default we have the latest - return SemanticVersioning.compare(arg0.getVersion(), this.version); + + if (this.getPolicyModelType().equals(arg0.getPolicyModelType())) { + // Reverse it, so that by default we have the latest in they are same model type + return SemanticVersioning.compare(arg0.getVersion(), this.version); + } else { + return this.getPolicyModelType().compareTo(arg0.getPolicyModelType()); + } + } } diff --git a/src/main/java/org/onap/clamp/policy/downloader/PolicyDownloader.java b/src/main/java/org/onap/clamp/policy/downloader/PolicyDownloader.java new file mode 100644 index 000000000..8795a1257 --- /dev/null +++ b/src/main/java/org/onap/clamp/policy/downloader/PolicyDownloader.java @@ -0,0 +1,96 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP CLAMP + * ================================================================================ + * Copyright (C) 2020 AT&T Intellectual Property. All rights + * reserved. + * ================================================================================ + * 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. + * ============LICENSE_END============================================ + * =================================================================== + * + */ + +package org.onap.clamp.policy.downloader; + +import com.att.eelf.configuration.EELFLogger; +import com.att.eelf.configuration.EELFManager; + +import java.util.LinkedHashMap; +import java.util.Map.Entry; + +import org.onap.clamp.clds.client.PolicyEngineServices; +import org.onap.clamp.loop.template.PolicyModel; +import org.onap.clamp.loop.template.PolicyModelId; +import org.onap.clamp.loop.template.PolicyModelsRepository; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Profile; +import org.springframework.scheduling.annotation.Scheduled; +import org.yaml.snakeyaml.Yaml; + +/** + * This class implements a periodic job that is done in the background to + * synchronize policy models available on the policy engine and the clamp + * database table PolicyModel. + */ +@Configuration +@Profile("clamp-policy-controller") +public class PolicyDownloader { + + protected static final EELFLogger logger = EELFManager.getInstance().getLogger(PolicyDownloader.class); + protected static final EELFLogger auditLogger = EELFManager.getInstance().getAuditLogger(); + protected static final EELFLogger metricsLogger = EELFManager.getInstance().getMetricsLogger(); + public static final String POLICY_RETRY_INTERVAL = "policy.retry.interval"; + public static final String POLICY_RETRY_LIMIT = "policy.retry.limit"; + + private final PolicyEngineServices policyEngineServices; + private final PolicyModelsRepository policyModelsRepository; + + @Autowired + public PolicyDownloader(PolicyEngineServices policyEngineService, PolicyModelsRepository policyModelsRepository) { + this.policyEngineServices = policyEngineService; + this.policyModelsRepository = policyModelsRepository; + } + + private void createPolicyInDbIfNeeded(PolicyModel policyModel) { + if (!policyModelsRepository + .existsById(new PolicyModelId(policyModel.getPolicyModelType(), policyModel.getVersion()))) { + policyModelsRepository.save(policyModel); + } + } + + @Scheduled(fixedRate = 120000) + public void synchronizeAllPolicies() throws InterruptedException { + try { + LinkedHashMap<String, Object> loadedYaml = new Yaml().load(policyEngineServices.downloadAllPolicies()); + if (loadedYaml == null || loadedYaml.isEmpty()) { + logger.warn( + "getAllPolicyType yaml returned by policy engine could not be decoded, as it's null or empty"); + return; + } + + LinkedHashMap<String, Object> policyTypesList = (LinkedHashMap<String, Object>) loadedYaml + .get("policy_types"); + for (Entry<String, Object> policyType : policyTypesList.entrySet()) { + createPolicyInDbIfNeeded(policyEngineServices.createPolicyModelFromPolicyEngine(policyType.getKey(), + ((String) ((LinkedHashMap<String, Object>) policyType.getValue()).get("version")))); + } + } catch (InterruptedException e) { + logger.warn("query to policy engine has been interrupted", e); + throw e; + } + + } + +} diff --git a/src/main/resources/application-noaaf.properties b/src/main/resources/application-noaaf.properties index d389b211c..69d16875c 100644 --- a/src/main/resources/application-noaaf.properties +++ b/src/main/resources/application-noaaf.properties @@ -73,7 +73,7 @@ clamp.config.keyFile=classpath:/clds/aaf/org.onap.clamp.keyfile server.servlet.context-path=/ #Modified engine-rest applicationpath -spring.profiles.active=clamp-default,clamp-default-user,clamp-sdc-controller-new,clamp-ssl-config +spring.profiles.active=clamp-default,clamp-default-user,clamp-sdc-controller,clamp-ssl-config,clamp-policy-controller spring.http.converters.preferred-json-mapper=gson #The max number of active threads in this pool @@ -160,26 +160,6 @@ clamp.config.policy.pap.url=http4://localhost:8085 clamp.config.policy.pap.userName=healthcheck clamp.config.policy.pap.password=zb!XztG34 - -clamp.config.policy.clientKey=dGVzdA== -#DEVL for development -#TEST for Test environments -#PROD for prod environments -clamp.config.policy.policyEnvironment=TEST -# General Policy request properties -# -clamp.config.policy.onap.name=DCAE -clamp.config.policy.pdp.group=default -clamp.config.policy.ms.type=MicroService -clamp.config.policy.ms.policyNamePrefix=Config_MS_ -clamp.config.policy.op.policyNamePrefix=Config_BRMS_Param_ -clamp.config.policy.base.policyNamePrefix=Config_ -clamp.config.policy.op.type=BRMS_Param - -clamp.config.import.tosca.model=true -clamp.config.tosca.policyTypes=tca -clamp.config.tosca.filePath=/tmp/tosca-models - # TCA MicroService Policy request build properties # clamp.config.tca.policyid.prefix=DCAE.Config_ diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index b97d64364..bb25abffc 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -78,7 +78,7 @@ server.ssl.trust-store-password=enc:iDnPBBLq_EMidXlMa1FEuBR8TZzYxrCg66vq_XfLHdJ server.servlet.context-path=/ #Modified engine-rest applicationpath -spring.profiles.active=clamp-default,clamp-aaf-authentication,clamp-sdc-controller-new,clamp-ssl-config +spring.profiles.active=clamp-default,clamp-aaf-authentication,clamp-sdc-controller,clamp-ssl-config,clamp-policy-controller spring.http.converters.preferred-json-mapper=gson #The max number of active threads in this pool @@ -163,34 +163,6 @@ clamp.config.policy.pap.url=http4://policy.api.simpledemo.onap.org:6969 clamp.config.policy.pap.userName=healthcheck clamp.config.policy.pap.password=zb!XztG34 -clamp.config.policy.pdpUrl1=http://policy.api.simpledemo.onap.org:8081/pdp/ , testpdp, alpha123 -clamp.config.policy.pdpUrl2=http://policy.api.simpledemo.onap.org:8081/pdp/ , testpdp, alpha123 -clamp.config.policy.papUrl=http://policy.api.simpledemo.onap.org:8081/pap/ , testpap, alpha123 -clamp.config.policy.notificationType=websocket -clamp.config.policy.notificationUebServers=localhost -clamp.config.policy.notificationTopic=PDPD-CONFIGURATION -clamp.config.policy.clientId=python -# base64 encoding - -clamp.config.policy.clientKey=dGVzdA== -#DEVL for development -#TEST for Test environments -#PROD for prod environments -clamp.config.policy.policyEnvironment=TEST -# General Policy request properties -# -clamp.config.policy.onap.name=DCAE -clamp.config.policy.pdp.group=default -clamp.config.policy.ms.type=MicroService -clamp.config.policy.ms.policyNamePrefix=Config_MS_ -clamp.config.policy.op.policyNamePrefix=Config_BRMS_Param_ -clamp.config.policy.base.policyNamePrefix=Config_ -clamp.config.policy.op.type=BRMS_Param - -clamp.config.import.tosca.model=true -clamp.config.tosca.policyTypes=tca -clamp.config.tosca.filePath=/tmp/tosca-models - # TCA MicroService Policy request build properties # clamp.config.tca.policyid.prefix=DCAE.Config_ diff --git a/src/main/resources/clds/camel/routes/dcae-flows.xml b/src/main/resources/clds/camel/routes/dcae-flows.xml index 7137bab92..8088c2a40 100644 --- a/src/main/resources/clds/camel/routes/dcae-flows.xml +++ b/src/main/resources/clds/camel/routes/dcae-flows.xml @@ -3,12 +3,12 @@ <from uri="direct:deploy-loop" /> <choice> <when> - <simple>${exchangeProperty['loopObject'].getLoopTemplate().getBlueprint()} != null + <simple>${exchangeProperty['loopObject'].getLoopTemplate().getUniqueBlueprint()} == true </simple> <to uri="direct:deploy-loop-single-blueprint" /> </when> <when> - <simple>${exchangeProperty['loopObject'].getLoopTemplate().getBlueprint()} == null + <simple>${exchangeProperty['loopObject'].getLoopTemplate().getUniqueBlueprint()} == false </simple> <to uri="direct:deploy-loop-multi-blueprint" /> </when> @@ -74,18 +74,14 @@ </setProperty> <to uri="bean:org.onap.clamp.policy.microservice.MicroServicePolicyService?method=updateDcaeDeploymentFields(${exchangeProperty[microServicePolicy]},${exchangeProperty[dcaeDeploymentId]},${exchangeProperty[dcaeStatusUrl]})" /> - <setProperty propertyName="logMessage"> - <simple>DEPLOY loop status - (Dep-id:${exchangeProperty[dcaeDeploymentId]}, - StatusUrl:${exchangeProperty[dcaeStatusUrl]}) - </simple> - </setProperty> - <setProperty propertyName="logComponent"> - <simple>DCAE</simple> - </setProperty> - <to uri="direct:dump-loop-log-http-response" /> + <to + uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLogForComponent('Deploy for the micro service: ${exchangeProperty[microServicePolicy].getName()} - ${header.CamelHttpResponseCode} : ${header.CamelHttpResponseText}','INFO','DCAE',${exchangeProperty[loopObject]})" /> </split> <doCatch> + <exception>java.lang.Exception</exception> + <handled> + <constant>false</constant> + </handled> <setProperty propertyName="logMessage"> <simple>DEPLOY micro service failed (MicroService name:${exchangeProperty[microServicePolicy].getName()}), @@ -176,12 +172,12 @@ <from uri="direct:undeploy-loop" /> <choice> <when> - <simple>${exchangeProperty['loopObject'].getLoopTemplate().getBlueprint()} != null + <simple>${exchangeProperty['loopObject'].getLoopTemplate().getUniqueBlueprint()} == true </simple> <to uri="direct:undeploy-loop-single-blueprint" /> </when> <when> - <simple>${exchangeProperty['loopObject'].getLoopTemplate().getBlueprint()} == null + <simple>${exchangeProperty['loopObject'].getLoopTemplate().getUniqueBlueprint()} == false </simple> <to uri="direct:undeploy-loop-multi-blueprint" /> </when> @@ -244,25 +240,22 @@ </setProperty> <to uri="bean:org.onap.clamp.policy.microservice.MicroServicePolicyService?method=updateDcaeDeploymentFields(${exchangeProperty[microServicePolicy]},${exchangeProperty[microServicePolicy].getDcaeDeploymentId()},${exchangeProperty[dcaeStatusUrl]})" /> - <setProperty propertyName="logMessage"> - <simple>UNDEPLOY micro service successful - (MicroService name:${exchangeProperty[microServicePolicy].getName()}) - </simple> - </setProperty> - <setProperty propertyName="logComponent"> - <simple>DCAE</simple> - </setProperty> - <to uri="direct:dump-loop-log-http-response" /> + <to + uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLogForComponent('Undeploy for the micro service: ${exchangeProperty[microServicePolicy].getName()} - ${header.CamelHttpResponseCode} : ${header.CamelHttpResponseText}','INFO','DCAE',${exchangeProperty[loopObject]})" /> </when> <otherwise> <log loggingLevel="WARNING" message="Cannot Undeploy for the micro service: ${exchangeProperty[microServicePolicy].getName()}, the Deployment ID does not exist !" /> <to - uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLog('Cannot Undeploy for the micro service: ${exchangeProperty[microServicePolicy].getName()}, the Deployment ID does not exist !','WARNING',${exchangeProperty[loopObject]})" /> + uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLogForComponent('Cannot Undeploy for the micro service: ${exchangeProperty[microServicePolicy].getName()}, the Deployment ID does not exist !','WARNING','DCAE',${exchangeProperty[loopObject]})" /> </otherwise> </choice> </split> <doCatch> + <exception>java.lang.Exception</exception> + <handled> + <constant>false</constant> + </handled> <setProperty propertyName="logMessage"> <simple>UNDEPLOY micro service failed (MicroService name:${exchangeProperty[microServicePolicy].getName()}) @@ -355,7 +348,7 @@ <route id="get-dcae-deployment-status"> <from uri="direct:get-dcae-deployment-status" /> <log loggingLevel="INFO" - message="Getting DCAE deployment status for loop: ${exchangeProperty[loopObject].getName()}" /> + message="Getting DCAE deployment status for loop: ${exchangeProperty[loopObject].getName()} - ${exchangeProperty[dcaeComponent].getComponentName()}" /> <to uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeLog('DCAE', 'Getting Deployment status')" /> <doTry> @@ -375,9 +368,9 @@ </simple> </setHeader> <log loggingLevel="INFO" - message="Endpoint to query Closed Loop status: ${exchangeProperty[loopObject].getDcaeDeploymentStatusUrl()}"></log> + message="Endpoint to query Closed Loop status: ${exchangeProperty[getStatusUrl]}"></log> <toD - uri="${exchangeProperty[loopObject].getDcaeDeploymentStatusUrl()}?bridgeEndpoint=true&useSystemProperties=true&throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&authMethod=Basic&authUsername={{clamp.config.dcae.deployment.userName}}&authPassword={{clamp.config.dcae.deployment.password}}&connectionTimeToLive=5000&httpClient.connectTimeout=10000&httpClient.socketTimeout=30000&authenticationPreemptive=true&connectionClose=true" /> + uri="${exchangeProperty[getStatusUrl]}?bridgeEndpoint=true&useSystemProperties=true&throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&authMethod=Basic&authUsername={{clamp.config.dcae.deployment.userName}}&authPassword={{clamp.config.dcae.deployment.password}}&connectionTimeToLive=5000&httpClient.connectTimeout=10000&httpClient.socketTimeout=30000&authenticationPreemptive=true&connectionClose=true" /> <doFinally> <to uri="direct:reset-raise-http-exception-flag" /> <to diff --git a/src/main/resources/clds/camel/routes/loop-flows.xml b/src/main/resources/clds/camel/routes/loop-flows.xml index 57d32f0fe..c4e9fee6d 100644 --- a/src/main/resources/clds/camel/routes/loop-flows.xml +++ b/src/main/resources/clds/camel/routes/loop-flows.xml @@ -108,37 +108,84 @@ <from uri="direct:update-dcae-status-for-loop" /> <log loggingLevel="INFO" message="Updating DCAE status for loop: ${exchangeProperty[loopObject].getName()}" /> - <setProperty propertyName="dcaeComponent"> - <simple>${exchangeProperty[loopObject].getComponent('DCAE')}</simple> - </setProperty> - <when> - <simple>${exchangeProperty[loopObject].getDcaeDeploymentStatusUrl()} - != null - </simple> - <setProperty propertyName="raiseHttpExceptionFlag"> - <simple resultType="java.lang.Boolean">false</simple> - </setProperty> - <to uri="direct:get-dcae-deployment-status" /> + <choice> <when> - <simple> ${header.CamelHttpResponseCode} == 200 </simple> - <convertBodyTo type="java.lang.String" /> - <setProperty propertyName="dcaeResponse"> - <method ref="org.onap.clamp.loop.components.external.DcaeComponent" - method="convertDcaeResponse(${body})" /> + <simple>${exchangeProperty['loopObject'].getLoopTemplate().getUniqueBlueprint()} == true + </simple> + <setProperty propertyName="dcaeComponent"> + <simple>${exchangeProperty[loopObject].getComponent('DCAE')}</simple> + </setProperty> + <when> + <simple>${exchangeProperty[loopObject].getDcaeDeploymentStatusUrl()} != null + </simple> + <setProperty propertyName="getStatusUrl"> + <simple>${exchangeProperty[loopObject].getDcaeDeploymentStatusUrl()}</simple> + </setProperty> + <setProperty propertyName="raiseHttpExceptionFlag"> + <simple resultType="java.lang.Boolean">false</simple> + </setProperty> + <to uri="direct:get-dcae-deployment-status" /> + <when> + <simple> ${header.CamelHttpResponseCode} == 200 </simple> + <convertBodyTo type="java.lang.String" /> + <setProperty propertyName="dcaeResponse"> + <method ref="org.onap.clamp.loop.components.external.DcaeComponent" + method="convertDcaeResponse(${body})" /> + </setProperty> + </when> + </when> + <setProperty propertyName="dcaeState"> + <simple> ${exchangeProperty[dcaeComponent].computeState(*)} + </simple> </setProperty> + <log loggingLevel="INFO" + message="DCAE state set to: ${exchangeProperty[dcaeState].getStateName()} - DCAE message: ${exchangeProperty[dcaeResponse].getError()}" /> + <to + uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLogForComponent('DCAE state set to: ${exchangeProperty[dcaeState].getStateName()} - message: ${exchangeProperty[dcaeResponse].getError()}','INFO','DCAE',${exchangeProperty[loopObject]})" /> </when> - </when> - - <setProperty propertyName="dcaeState"> - <simple> ${exchangeProperty[dcaeComponent].computeState(*)} - </simple> - </setProperty> - <log loggingLevel="INFO" - message="DCAE state set to: ${exchangeProperty[dcaeState].getStateName()} - DCAE message: ${exchangeProperty[dcaeResponse].getError()}" /> - <to - uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLogForComponent('DCAE state set to: ${exchangeProperty[dcaeState].getStateName()} - message: ${exchangeProperty[dcaeResponse].getError()}','INFO','DCAE',${exchangeProperty[loopObject]})" /> - - </route> + <when> + <simple>${exchangeProperty['loopObject'].getLoopTemplate().getUniqueBlueprint()} == false + </simple> + <split> + <simple>${exchangeProperty[loopObject].getMicroServicePolicies()} + </simple> + <setProperty propertyName="microServicePolicy"> + <simple>${body}</simple> + </setProperty> + <setProperty propertyName="dcaeComponent"> + <simple>${exchangeProperty[loopObject].getComponent('DCAE_' + ${exchangeProperty[microServicePolicy].getName())}</simple> + </setProperty> + <when> + <simple>${exchangeProperty[microServicePolicy].getDcaeDeploymentStatusUrl()} != null + </simple> + <setProperty propertyName="getStatusUrl"> + <simple>${exchangeProperty[microServicePolicy].getDcaeDeploymentStatusUrl()}</simple> + </setProperty> + <setProperty propertyName="raiseHttpExceptionFlag"> + <simple resultType="java.lang.Boolean">false</simple> + </setProperty> + <to uri="direct:get-dcae-deployment-status" /> + <when> + <simple> ${header.CamelHttpResponseCode} == 200 </simple> + <convertBodyTo type="java.lang.String" /> + <setProperty propertyName="dcaeResponse"> + <method ref="org.onap.clamp.loop.components.external.DcaeComponent" + method="convertDcaeResponse(${body})" /> + </setProperty> + </when> + </when> + <setProperty propertyName="dcaeState"> + <simple> ${exchangeProperty[dcaeComponent].computeState(*)} + </simple> + </setProperty> + <log loggingLevel="INFO" + message="DCAE state set to: ${exchangeProperty[dcaeState].getStateName()} - DCAE message: ${exchangeProperty[dcaeResponse].getError()}" /> + <to + uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLogForComponent('DCAE state set to: ${exchangeProperty[dcaeState].getStateName()} - message: ${exchangeProperty[dcaeResponse].getError()}','INFO','DCAE',${exchangeProperty[microServicePolicy]})" /> + </split>> + </when> + </choice> + </route> <route id="direct:update-loop-state"> <from uri="direct:update-loop-state" /> <log loggingLevel="INFO" diff --git a/src/main/resources/clds/camel/routes/policy-flows.xml b/src/main/resources/clds/camel/routes/policy-flows.xml index 97416a6cc..c28e45435 100644 --- a/src/main/resources/clds/camel/routes/policy-flows.xml +++ b/src/main/resources/clds/camel/routes/policy-flows.xml @@ -1,520 +1,587 @@ <routes xmlns="http://camel.apache.org/schema/spring"> - <route id="verify-one-policy"> - <from uri="direct:verify-one-policy" /> - <setProperty propertyName="raiseHttpExceptionFlag"> - <simple resultType="java.lang.Boolean">false</simple> - </setProperty> - <to uri="direct:get-policy" /> - <when> - <simple> ${header.CamelHttpResponseCode} != 200 </simple> - <setProperty propertyName="policyFound"> - <simple resultType="java.lang.Boolean">false</simple> - </setProperty> - <log loggingLevel="WARN" - message="At least one policy has not been found on policy engine: ${exchangeProperty[policyName]}" /> - </when> - <setProperty propertyName="raiseHttpExceptionFlag"> - <simple resultType="java.lang.Boolean">false</simple> - </setProperty> - <to uri="direct:get-deployment-policy" /> - <when> - <simple> ${header.CamelHttpResponseCode} != 200 </simple> - <setProperty propertyName="policyDeployed"> - <simple resultType="java.lang.Boolean">false</simple> - </setProperty> - <log loggingLevel="WARN" - message="At least one policy has not been deployed on policy engine: ${exchangeProperty[policyName]}" /> - </when> - <setProperty propertyName="newPolicyState"> - <simple>${exchangeProperty[policyComponent].computeState(*)}</simple> - </setProperty> - </route> - - <route id="get-policy"> - <from uri="direct:get-policy" /> - <doTry> - <log loggingLevel="INFO" - message="Getting Policy: ${exchangeProperty[policyName]}" /> - <to - uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeLog('Policy', 'Get Policy')" /> - <setHeader headerName="CamelHttpMethod"> - <constant>GET</constant> - </setHeader> - <setHeader headerName="X-ONAP-RequestID"> - <simple>${exchangeProperty[X-ONAP-RequestID]} - </simple> - </setHeader> - <setHeader headerName="X-ONAP-InvocationID"> - <simple>${exchangeProperty[X-ONAP-InvocationID]} - </simple> - </setHeader> - <setHeader headerName="X-ONAP-PartnerName"> - <simple>${exchangeProperty[X-ONAP-PartnerName]} - </simple> - </setHeader> - <log loggingLevel="INFO" - message="Endpoint to get policy: {{clamp.config.policy.api.url}}/policy/api/v1/policytypes/${exchangeProperty[policyType]}/versions/1.0.0/policies/${exchangeProperty[policyName]}/versions/${exchangeProperty[policyVersion]}"></log> - <toD - uri="{{clamp.config.policy.api.url}}/policy/api/v1/policytypes/${exchangeProperty[policyType]}/versions/1.0.0/policies/${exchangeProperty[policyName]}/versions/${exchangeProperty[policyVersion]}?bridgeEndpoint=true&useSystemProperties=true&throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&authMethod=Basic&authUsername={{clamp.config.policy.api.userName}}&authPassword={{clamp.config.policy.api.password}}&connectionTimeToLive=5000&httpClient.connectTimeout=10000&httpClient.socketTimeout=20000&authenticationPreemptive=true&connectionClose=true" /> - <doFinally> - <to uri="direct:reset-raise-http-exception-flag" /> - <to - uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()" /> - <setProperty propertyName="logMessage"> - <simple>${exchangeProperty[policyName]} GET - Policy status - </simple> - </setProperty> - <setProperty propertyName="logComponent"> - <simple>POLICY</simple> - </setProperty> - <to uri="direct:dump-loop-log-http-response" /> - </doFinally> - </doTry> - </route> - - <route id="get-deployment-policy"> - <from uri="direct:get-deployment-policy" /> - <doTry> - <log loggingLevel="INFO" - message="Getting the policy deployment in PDP: ${exchangeProperty[policyName]}" /> - <to - uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeLog('Policy', 'Getting the policy deployment in PDP')" /> - <setHeader headerName="CamelHttpMethod"> - <constant>GET</constant> - </setHeader> - <setHeader headerName="X-ONAP-RequestID"> - <simple>${exchangeProperty[X-ONAP-RequestID]} - </simple> - </setHeader> - <setHeader headerName="X-ONAP-InvocationID"> - <simple>${exchangeProperty[X-ONAP-InvocationID]} - </simple> - </setHeader> - <setHeader headerName="X-ONAP-PartnerName"> - <simple>${exchangeProperty[X-ONAP-PartnerName]} - </simple> - </setHeader> - <log loggingLevel="INFO" - message="Endpoint to get policy deployment status: {{clamp.config.policy.pap.url}}/policy/pap/v1/policies/deployed/${exchangeProperty[policyName]}/1.0.0"></log> - <toD - uri="{{clamp.config.policy.pap.url}}/policy/pap/v1/policies/deployed/${exchangeProperty[policyName]}/1.0.0?bridgeEndpoint=true&useSystemProperties=true&throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&authMethod=Basic&authUsername={{clamp.config.policy.api.userName}}&authPassword={{clamp.config.policy.api.password}}&connectionTimeToLive=5000&httpClient.connectTimeout=10000&httpClient.socketTimeout=20000&authenticationPreemptive=true&connectionClose=true" /> - <doFinally> - <to uri="direct:reset-raise-http-exception-flag" /> - <to - uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()" /> - <setProperty propertyName="logMessage"> - <simple>${exchangeProperty[policyName]} GET Policy deployment - status - </simple> - </setProperty> - <setProperty propertyName="logComponent"> - <simple>POLICY</simple> + <route id="verify-one-policy"> + <from uri="direct:verify-one-policy"/> + <setProperty propertyName="raiseHttpExceptionFlag"> + <simple resultType="java.lang.Boolean">false</simple> </setProperty> - <to uri="direct:dump-loop-log-http-response" /> - </doFinally> - </doTry> - </route> - <route id="create-micro-service-policy"> - <from uri="direct:create-micro-service-policy" /> - <doTry> - <log loggingLevel="INFO" - message="Creating Micro Service Policy: ${exchangeProperty[microServicePolicy].getName()}" /> - <to - uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeLog('Policy', 'Create Micro Service Policy')" /> - <setBody> - <simple>${exchangeProperty[microServicePolicy].createPolicyPayload()} - </simple> - </setBody> - <setHeader headerName="CamelHttpMethod"> - <constant>POST</constant> - </setHeader> - <setHeader headerName="Content-Type"> - <constant>application/json</constant> - </setHeader> - <setHeader headerName="X-ONAP-RequestID"> - <simple>${exchangeProperty[X-ONAP-RequestID]} - </simple> - </setHeader> - <setHeader headerName="X-ONAP-InvocationID"> - <simple>${exchangeProperty[X-ONAP-InvocationID]} - </simple> - </setHeader> - <setHeader headerName="X-ONAP-PartnerName"> - <simple>${exchangeProperty[X-ONAP-PartnerName]} - </simple> - </setHeader> - <log loggingLevel="INFO" - message="Endpoint to create microservice policy: {{clamp.config.policy.api.url}}/policy/api/v1/policytypes/${exchangeProperty[microServicePolicy].getModelType()}/versions/1.0.0/policies"></log> - <toD - uri="{{clamp.config.policy.api.url}}/policy/api/v1/policytypes/${exchangeProperty[microServicePolicy].getModelType()}/versions/1.0.0/policies?bridgeEndpoint=true&useSystemProperties=true&mapHttpMessageHeaders=false&throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&authUsername={{clamp.config.policy.api.userName}}&authPassword={{clamp.config.policy.api.password}}&connectionTimeToLive=5000&httpClient.connectTimeout=10000&httpClient.socketTimeout=20000&authenticationPreemptive=true&connectionClose=true" /> - <doFinally> - <to uri="direct:reset-raise-http-exception-flag" /> - <to - uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()" /> - <setProperty propertyName="logMessage"> - <simple>${exchangeProperty[microServicePolicy].getName()} creation - status - </simple> + <to uri="direct:get-policy"/> + <when> + <simple> ${header.CamelHttpResponseCode} != 200 </simple> + <setProperty propertyName="policyFound"> + <simple resultType="java.lang.Boolean">false</simple> + </setProperty> + <log loggingLevel="WARN" + message="At least one policy has not been found on policy engine: ${exchangeProperty[policyName]}"/> + </when> + <setProperty propertyName="raiseHttpExceptionFlag"> + <simple resultType="java.lang.Boolean">false</simple> </setProperty> - <setProperty propertyName="logComponent"> - <simple>POLICY</simple> + <to uri="direct:get-deployment-policy"/> + <when> + <simple> ${header.CamelHttpResponseCode} != 200 </simple> + <setProperty propertyName="policyDeployed"> + <simple resultType="java.lang.Boolean">false</simple> + </setProperty> + <log loggingLevel="WARN" + message="At least one policy has not been deployed on policy engine: ${exchangeProperty[policyName]}"/> + </when> + <setProperty propertyName="newPolicyState"> + <simple>${exchangeProperty[policyComponent].computeState(*)}</simple> </setProperty> - <to uri="direct:dump-loop-log-http-response" /> - </doFinally> - </doTry> - </route> + </route> - <route id="delete-micro-service-policy"> - <from uri="direct:delete-micro-service-policy" /> - <doTry> - <log loggingLevel="INFO" - message="Deleting Micro Service Policy: ${exchangeProperty[microServicePolicy].getName()}" /> - <to - uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeLog('Policy', 'Delete Micro Service Policy')" /> - <setBody> - <constant>null</constant> - </setBody> - <setHeader headerName="CamelHttpMethod"> - <constant>DELETE</constant> - </setHeader> - <setHeader headerName="X-ONAP-RequestID"> - <simple>${exchangeProperty[X-ONAP-RequestID]} - </simple> - </setHeader> - <setHeader headerName="X-ONAP-InvocationID"> - <simple>${exchangeProperty[X-ONAP-InvocationID]} - </simple> - </setHeader> - <setHeader headerName="X-ONAP-PartnerName"> - <simple>${exchangeProperty[X-ONAP-PartnerName]} - </simple> - </setHeader> - <log loggingLevel="INFO" - message="Endpoint to delete microservice policy: {{clamp.config.policy.api.url}}/policy/api/v1/policytypes/${exchangeProperty[microServicePolicy].getModelType()}/versions/1.0.0/policies/${exchangeProperty[microServicePolicy].getName()}/versions/1.0.0"></log> - <toD - uri="{{clamp.config.policy.api.url}}/policy/api/v1/policytypes/${exchangeProperty[microServicePolicy].getModelType()}/versions/1.0.0/policies/${exchangeProperty[microServicePolicy].getName()}/versions/1.0.0?bridgeEndpoint=true&useSystemProperties=true&mapHttpMessageHeaders=false&throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&deleteWithBody=false&mapHttpMessageBody=false&mapHttpMessageFormUrlEncodedBody=false&authUsername={{clamp.config.policy.api.userName}}&authPassword={{clamp.config.policy.api.password}}&connectionTimeToLive=5000&httpClient.connectTimeout=10000&httpClient.socketTimeout=20000&authenticationPreemptive=true&connectionClose=true" /> + <route id="get-policy"> + <from uri="direct:get-policy"/> + <doTry> + <log loggingLevel="INFO" + message="Getting Policy: ${exchangeProperty[policyName]}"/> + <to + uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeLog('Policy', 'Get Policy')"/> + <setHeader headerName="CamelHttpMethod"> + <constant>GET</constant> + </setHeader> + <setHeader headerName="X-ONAP-RequestID"> + <simple>${exchangeProperty[X-ONAP-RequestID]} + </simple> + </setHeader> + <setHeader headerName="X-ONAP-InvocationID"> + <simple>${exchangeProperty[X-ONAP-InvocationID]} + </simple> + </setHeader> + <setHeader headerName="X-ONAP-PartnerName"> + <simple>${exchangeProperty[X-ONAP-PartnerName]} + </simple> + </setHeader> + <log loggingLevel="INFO" + message="Endpoint to get policy: {{clamp.config.policy.api.url}}/policy/api/v1/policytypes/${exchangeProperty[policyType]}/versions/1.0.0/policies/${exchangeProperty[policyName]}/versions/${exchangeProperty[policyVersion]}"></log> + <toD + uri="{{clamp.config.policy.api.url}}/policy/api/v1/policytypes/${exchangeProperty[policyType]}/versions/1.0.0/policies/${exchangeProperty[policyName]}/versions/${exchangeProperty[policyVersion]}?bridgeEndpoint=true&useSystemProperties=true&throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&authMethod=Basic&authUsername={{clamp.config.policy.api.userName}}&authPassword={{clamp.config.policy.api.password}}&connectionTimeToLive=5000&httpClient.connectTimeout=10000&httpClient.socketTimeout=20000&authenticationPreemptive=true&connectionClose=true"/> + <doFinally> + <to uri="direct:reset-raise-http-exception-flag"/> + <to + uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()"/> + <setProperty propertyName="logMessage"> + <simple>${exchangeProperty[policyName]} GET + Policy status + </simple> + </setProperty> + <setProperty propertyName="logComponent"> + <simple>POLICY</simple> + </setProperty> + <to uri="direct:dump-loop-log-http-response"/> + </doFinally> + </doTry> + </route> - <doFinally> - <to uri="direct:reset-raise-http-exception-flag" /> - <to - uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()" /> - <setProperty propertyName="logMessage"> - <simple>${exchangeProperty[microServicePolicy].getName()} removal - status - </simple> - </setProperty> - <setProperty propertyName="logComponent"> - <simple>POLICY</simple> - </setProperty> - <to uri="direct:dump-loop-log-http-response" /> - </doFinally> - </doTry> - </route> + <route id="get-deployment-policy"> + <from uri="direct:get-deployment-policy"/> + <doTry> + <log loggingLevel="INFO" + message="Getting the policy deployment in PDP: ${exchangeProperty[policyName]}"/> + <to + uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeLog('Policy', 'Getting the policy deployment in PDP')"/> + <setHeader headerName="CamelHttpMethod"> + <constant>GET</constant> + </setHeader> + <setHeader headerName="X-ONAP-RequestID"> + <simple>${exchangeProperty[X-ONAP-RequestID]} + </simple> + </setHeader> + <setHeader headerName="X-ONAP-InvocationID"> + <simple>${exchangeProperty[X-ONAP-InvocationID]} + </simple> + </setHeader> + <setHeader headerName="X-ONAP-PartnerName"> + <simple>${exchangeProperty[X-ONAP-PartnerName]} + </simple> + </setHeader> + <log loggingLevel="INFO" + message="Endpoint to get policy deployment status: {{clamp.config.policy.pap.url}}/policy/pap/v1/policies/deployed/${exchangeProperty[policyName]}/1.0.0"></log> + <toD + uri="{{clamp.config.policy.pap.url}}/policy/pap/v1/policies/deployed/${exchangeProperty[policyName]}/1.0.0?bridgeEndpoint=true&useSystemProperties=true&throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&authMethod=Basic&authUsername={{clamp.config.policy.api.userName}}&authPassword={{clamp.config.policy.api.password}}&connectionTimeToLive=5000&httpClient.connectTimeout=10000&httpClient.socketTimeout=20000&authenticationPreemptive=true&connectionClose=true"/> + <doFinally> + <to uri="direct:reset-raise-http-exception-flag"/> + <to + uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()"/> + <setProperty propertyName="logMessage"> + <simple>${exchangeProperty[policyName]} GET Policy deployment + status + </simple> + </setProperty> + <setProperty propertyName="logComponent"> + <simple>POLICY</simple> + </setProperty> + <to uri="direct:dump-loop-log-http-response"/> + </doFinally> + </doTry> + </route> + <route id="get-all-policy-models"> + <from uri="direct:get-all-policy-models"/> + <doTry> + <log loggingLevel="INFO" message="Getting all the policy models"/> + <to + uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeLog('Policy', 'Getting all the policy models')"/> + <setHeader headerName="CamelHttpMethod"> + <constant>GET</constant> + </setHeader> + <setHeader headerName="X-ONAP-RequestID"> + <simple>${exchangeProperty[X-ONAP-RequestID]} + </simple> + </setHeader> + <setHeader headerName="X-ONAP-InvocationID"> + <simple>${exchangeProperty[X-ONAP-InvocationID]} + </simple> + </setHeader> + <setHeader headerName="X-ONAP-PartnerName"> + <simple>${exchangeProperty[X-ONAP-PartnerName]} + </simple> + </setHeader> + <log loggingLevel="INFO" + message="Endpoint to get all policy models: {{clamp.config.policy.pap.url}}/policy/api/v1/policytypes"></log> + <toD + uri="{{clamp.config.policy.api.url}}/policy/api/v1/policytypes?bridgeEndpoint=true&useSystemProperties=true&throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&authMethod=Basic&authUsername={{clamp.config.policy.api.userName}}&authPassword={{clamp.config.policy.api.password}}&connectionTimeToLive=5000&httpClient.connectTimeout=10000&httpClient.socketTimeout=20000&authenticationPreemptive=true&connectionClose=true"/> + <convertBodyTo type="java.lang.String"/> + <doFinally> + <to uri="direct:reset-raise-http-exception-flag"/> + <to + uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()"/> + </doFinally> + </doTry> + </route> + <route id="get-policy-model"> + <from uri="direct:get-policy-model"/> + <doTry> + <log loggingLevel="INFO" + message="Getting the policy model: ${exchangeProperty[policyModelName]}/${exchangeProperty[policyModelVersion]}"/> + <to + uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeLog('Policy', 'Getting the policy model')"/> + <setHeader headerName="CamelHttpMethod"> + <constant>GET</constant> + </setHeader> + <setHeader headerName="X-ONAP-RequestID"> + <simple>${exchangeProperty[X-ONAP-RequestID]} + </simple> + </setHeader> + <setHeader headerName="X-ONAP-InvocationID"> + <simple>${exchangeProperty[X-ONAP-InvocationID]} + </simple> + </setHeader> + <setHeader headerName="X-ONAP-PartnerName"> + <simple>${exchangeProperty[X-ONAP-PartnerName]} + </simple> + </setHeader> + <log loggingLevel="INFO" + message="Endpoint to get policy model: {{clamp.config.policy.pap.url}}/policy/api/v1/policytypes/${exchangeProperty[policyModelName]}/versions/${exchangeProperty[policyModelVersion]}"></log> + <toD + uri="{{clamp.config.policy.api.url}}/policy/api/v1/policytypes/${exchangeProperty[policyModelName]}/versions/${exchangeProperty[policyModelVersion]}?bridgeEndpoint=true&useSystemProperties=true&throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&authMethod=Basic&authUsername={{clamp.config.policy.api.userName}}&authPassword={{clamp.config.policy.api.password}}&connectionTimeToLive=5000&httpClient.connectTimeout=10000&httpClient.socketTimeout=20000&authenticationPreemptive=true&connectionClose=true"/> + <convertBodyTo type="java.lang.String"/> + <doFinally> + <to uri="direct:reset-raise-http-exception-flag"/> + <to + uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()"/> + </doFinally> + </doTry> + </route> + <route id="create-micro-service-policy"> + <from uri="direct:create-micro-service-policy"/> + <doTry> + <log loggingLevel="INFO" + message="Creating Micro Service Policy: ${exchangeProperty[microServicePolicy].getName()}"/> + <to + uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeLog('Policy', 'Create Micro Service Policy')"/> + <setBody> + <simple>${exchangeProperty[microServicePolicy].createPolicyPayload()} + </simple> + </setBody> + <setHeader headerName="CamelHttpMethod"> + <constant>POST</constant> + </setHeader> + <setHeader headerName="Content-Type"> + <constant>application/json</constant> + </setHeader> + <setHeader headerName="X-ONAP-RequestID"> + <simple>${exchangeProperty[X-ONAP-RequestID]} + </simple> + </setHeader> + <setHeader headerName="X-ONAP-InvocationID"> + <simple>${exchangeProperty[X-ONAP-InvocationID]} + </simple> + </setHeader> + <setHeader headerName="X-ONAP-PartnerName"> + <simple>${exchangeProperty[X-ONAP-PartnerName]} + </simple> + </setHeader> + <log loggingLevel="INFO" + message="Endpoint to create microservice policy: {{clamp.config.policy.api.url}}/policy/api/v1/policytypes/${exchangeProperty[microServicePolicy].getModelType()}/versions/1.0.0/policies"></log> + <toD + uri="{{clamp.config.policy.api.url}}/policy/api/v1/policytypes/${exchangeProperty[microServicePolicy].getModelType()}/versions/1.0.0/policies?bridgeEndpoint=true&useSystemProperties=true&mapHttpMessageHeaders=false&throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&authUsername={{clamp.config.policy.api.userName}}&authPassword={{clamp.config.policy.api.password}}&connectionTimeToLive=5000&httpClient.connectTimeout=10000&httpClient.socketTimeout=20000&authenticationPreemptive=true&connectionClose=true"/> + <doFinally> + <to uri="direct:reset-raise-http-exception-flag"/> + <to + uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()"/> + <setProperty propertyName="logMessage"> + <simple>${exchangeProperty[microServicePolicy].getName()} creation + status + </simple> + </setProperty> + <setProperty propertyName="logComponent"> + <simple>POLICY</simple> + </setProperty> + <to uri="direct:dump-loop-log-http-response"/> + </doFinally> + </doTry> + </route> - <route id="create-operational-policy"> - <from uri="direct:create-operational-policy" /> - <doTry> - <log loggingLevel="INFO" - message="Creating Operational Policy: ${exchangeProperty[operationalPolicy].getName()}" /> - <to - uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeLog('Policy', 'Create Operational Policy')" /> - <setBody> - <simple>${exchangeProperty[operationalPolicy].createPolicyPayload()} - </simple> - </setBody> - <setHeader headerName="CamelHttpMethod"> - <constant>POST</constant> - </setHeader> - <setHeader headerName="Content-Type"> - <constant>application/json</constant> - </setHeader> - <setHeader headerName="X-ONAP-RequestID"> - <simple>${exchangeProperty[X-ONAP-RequestID]} - </simple> - </setHeader> - <setHeader headerName="X-ONAP-InvocationID"> - <simple>${exchangeProperty[X-ONAP-InvocationID]} - </simple> - </setHeader> - <setHeader headerName="X-ONAP-PartnerName"> - <simple>${exchangeProperty[X-ONAP-PartnerName]} - </simple> - </setHeader> - <log loggingLevel="INFO" - message="Endpoint to create operational policy: {{clamp.config.policy.api.url}}/policy/api/v1/policytypes/onap.policies.controlloop.Operational/versions/1.0.0/policies"></log> - <toD - uri="{{clamp.config.policy.api.url}}/policy/api/v1/policytypes/onap.policies.controlloop.Operational/versions/1.0.0/policies?bridgeEndpoint=true&useSystemProperties=true&mapHttpMessageHeaders=false&throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&authUsername={{clamp.config.policy.api.userName}}&authPassword={{clamp.config.policy.api.password}}&connectionTimeToLive=5000&httpClient.connectTimeout=10000&httpClient.socketTimeout=20000&authenticationPreemptive=true&connectionClose=true" /> - <doFinally> - <to uri="direct:reset-raise-http-exception-flag" /> - <to - uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()" /> - <setProperty propertyName="logMessage"> - <simple>${exchangeProperty[operationalPolicy].getName()} creation - status - </simple> - </setProperty> - <setProperty propertyName="logComponent"> - <simple>POLICY</simple> - </setProperty> - <to uri="direct:dump-loop-log-http-response" /> - </doFinally> - </doTry> - </route> + <route id="delete-micro-service-policy"> + <from uri="direct:delete-micro-service-policy"/> + <doTry> + <log loggingLevel="INFO" + message="Deleting Micro Service Policy: ${exchangeProperty[microServicePolicy].getName()}"/> + <to + uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeLog('Policy', 'Delete Micro Service Policy')"/> + <setBody> + <constant>null</constant> + </setBody> + <setHeader headerName="CamelHttpMethod"> + <constant>DELETE</constant> + </setHeader> + <setHeader headerName="X-ONAP-RequestID"> + <simple>${exchangeProperty[X-ONAP-RequestID]} + </simple> + </setHeader> + <setHeader headerName="X-ONAP-InvocationID"> + <simple>${exchangeProperty[X-ONAP-InvocationID]} + </simple> + </setHeader> + <setHeader headerName="X-ONAP-PartnerName"> + <simple>${exchangeProperty[X-ONAP-PartnerName]} + </simple> + </setHeader> + <log loggingLevel="INFO" + message="Endpoint to delete microservice policy: {{clamp.config.policy.api.url}}/policy/api/v1/policytypes/${exchangeProperty[microServicePolicy].getModelType()}/versions/1.0.0/policies/${exchangeProperty[microServicePolicy].getName()}/versions/1.0.0"></log> + <toD + uri="{{clamp.config.policy.api.url}}/policy/api/v1/policytypes/${exchangeProperty[microServicePolicy].getModelType()}/versions/1.0.0/policies/${exchangeProperty[microServicePolicy].getName()}/versions/1.0.0?bridgeEndpoint=true&useSystemProperties=true&mapHttpMessageHeaders=false&throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&deleteWithBody=false&mapHttpMessageBody=false&mapHttpMessageFormUrlEncodedBody=false&authUsername={{clamp.config.policy.api.userName}}&authPassword={{clamp.config.policy.api.password}}&connectionTimeToLive=5000&httpClient.connectTimeout=10000&httpClient.socketTimeout=20000&authenticationPreemptive=true&connectionClose=true"/> - <route id="delete-operational-policy"> - <from uri="direct:delete-operational-policy" /> - <doTry> - <log loggingLevel="INFO" - message="Deleting Operational Policy: ${exchangeProperty[operationalPolicy].getName()}" /> - <to - uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeLog('Policy', 'Delete Operational Policy')" /> - <setBody> - <constant>null</constant> - </setBody> - <setHeader headerName="CamelHttpMethod"> - <constant>DELETE</constant> - </setHeader> - <setHeader headerName="X-ONAP-RequestID"> - <simple>${exchangeProperty[X-ONAP-RequestID]} - </simple> - </setHeader> - <setHeader headerName="X-ONAP-InvocationID"> - <simple>${exchangeProperty[X-ONAP-InvocationID]} - </simple> - </setHeader> - <setHeader headerName="X-ONAP-PartnerName"> - <simple>${exchangeProperty[X-ONAP-PartnerName]} - </simple> - </setHeader> - <log loggingLevel="INFO" - message="Endpoint to delete operational policy: {{clamp.config.policy.api.url}}/policy/api/v1/policytypes/onap.policies.controlloop.Operational/versions/1.0.0/policies/${exchangeProperty[operationalPolicy].getName()}/versions/1"></log> - <toD - uri="{{clamp.config.policy.api.url}}/policy/api/v1/policytypes/onap.policies.controlloop.Operational/versions/1.0.0/policies/${exchangeProperty[operationalPolicy].getName()}/versions/1?bridgeEndpoint=true&useSystemProperties=true&mapHttpMessageHeaders=false&throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&deleteWithBody=false&mapHttpMessageBody=false&mapHttpMessageFormUrlEncodedBody=false&authUsername={{clamp.config.policy.api.userName}}&authPassword={{clamp.config.policy.api.password}}&connectionTimeToLive=5000&httpClient.connectTimeout=10000&httpClient.socketTimeout=20000&authenticationPreemptive=true&connectionClose=true" /> - <doFinally> - <to uri="direct:reset-raise-http-exception-flag" /> - <to - uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()" /> - <setProperty propertyName="logMessage"> - <simple>${exchangeProperty[operationalPolicy].getName()} removal - status - </simple> - </setProperty> - <setProperty propertyName="logComponent"> - <simple>POLICY</simple> - </setProperty> - <to uri="direct:dump-loop-log-http-response" /> - </doFinally> - </doTry> - </route> + <doFinally> + <to uri="direct:reset-raise-http-exception-flag"/> + <to + uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()"/> + <setProperty propertyName="logMessage"> + <simple>${exchangeProperty[microServicePolicy].getName()} removal + status + </simple> + </setProperty> + <setProperty propertyName="logComponent"> + <simple>POLICY</simple> + </setProperty> + <to uri="direct:dump-loop-log-http-response"/> + </doFinally> + </doTry> + </route> - <route id="create-guard-policy"> - <from uri="direct:create-guard-policy" /> - <doTry> - <log loggingLevel="INFO" - message="Creating Guard Policy: ${exchangeProperty[guardPolicy].getKey()}" /> - <to - uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeLog('Policy', 'Create Guard Policy')" /> - <setBody> - <simple>${exchangeProperty[guardPolicy].getValue()} - </simple> - </setBody> - <setHeader headerName="CamelHttpMethod"> - <constant>POST</constant> - </setHeader> - <setHeader headerName="Content-Type"> - <constant>application/json</constant> - </setHeader> - <setHeader headerName="X-ONAP-RequestID"> - <simple>${exchangeProperty[X-ONAP-RequestID]} - </simple> - </setHeader> - <setHeader headerName="X-ONAP-InvocationID"> - <simple>${exchangeProperty[X-ONAP-InvocationID]} - </simple> - </setHeader> - <setHeader headerName="X-ONAP-PartnerName"> - <simple>${exchangeProperty[X-ONAP-PartnerName]} - </simple> - </setHeader> - <log loggingLevel="INFO" - message="Endpoint to create guard policy: {{clamp.config.policy.api.url}}/policy/api/v1/policytypes/onap.policies.controlloop.Guard/versions/1.0.0/policies"></log> - <toD - uri="{{clamp.config.policy.api.url}}/policy/api/v1/policytypes/onap.policies.controlloop.Guard/versions/1.0.0/policies?bridgeEndpoint=true&useSystemProperties=true&mapHttpMessageHeaders=false&throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&authUsername={{clamp.config.policy.api.userName}}&authPassword={{clamp.config.policy.api.password}}&connectionTimeToLive=5000&httpClient.connectTimeout=10000&httpClient.socketTimeout=20000&authenticationPreemptive=true&connectionClose=true" /> - <doFinally> - <to uri="direct:reset-raise-http-exception-flag" /> - <to - uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()" /> - <setProperty propertyName="logMessage"> - <simple>${exchangeProperty[guardPolicy].getKey()} creation status - </simple> - </setProperty> - <setProperty propertyName="logComponent"> - <simple>POLICY</simple> - </setProperty> - <to uri="direct:dump-loop-log-http-response" /> - </doFinally> - </doTry> - </route> + <route id="create-operational-policy"> + <from uri="direct:create-operational-policy"/> + <doTry> + <log loggingLevel="INFO" + message="Creating Operational Policy: ${exchangeProperty[operationalPolicy].getName()}"/> + <to + uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeLog('Policy', 'Create Operational Policy')"/> + <setBody> + <simple>${exchangeProperty[operationalPolicy].createPolicyPayload()} + </simple> + </setBody> + <setHeader headerName="CamelHttpMethod"> + <constant>POST</constant> + </setHeader> + <setHeader headerName="Content-Type"> + <constant>application/json</constant> + </setHeader> + <setHeader headerName="X-ONAP-RequestID"> + <simple>${exchangeProperty[X-ONAP-RequestID]} + </simple> + </setHeader> + <setHeader headerName="X-ONAP-InvocationID"> + <simple>${exchangeProperty[X-ONAP-InvocationID]} + </simple> + </setHeader> + <setHeader headerName="X-ONAP-PartnerName"> + <simple>${exchangeProperty[X-ONAP-PartnerName]} + </simple> + </setHeader> + <log loggingLevel="INFO" + message="Endpoint to create operational policy: {{clamp.config.policy.api.url}}/policy/api/v1/policytypes/onap.policies.controlloop.Operational/versions/1.0.0/policies"></log> + <toD + uri="{{clamp.config.policy.api.url}}/policy/api/v1/policytypes/onap.policies.controlloop.Operational/versions/1.0.0/policies?bridgeEndpoint=true&useSystemProperties=true&mapHttpMessageHeaders=false&throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&authUsername={{clamp.config.policy.api.userName}}&authPassword={{clamp.config.policy.api.password}}&connectionTimeToLive=5000&httpClient.connectTimeout=10000&httpClient.socketTimeout=20000&authenticationPreemptive=true&connectionClose=true"/> + <doFinally> + <to uri="direct:reset-raise-http-exception-flag"/> + <to + uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()"/> + <setProperty propertyName="logMessage"> + <simple>${exchangeProperty[operationalPolicy].getName()} creation + status + </simple> + </setProperty> + <setProperty propertyName="logComponent"> + <simple>POLICY</simple> + </setProperty> + <to uri="direct:dump-loop-log-http-response"/> + </doFinally> + </doTry> + </route> - <route id="delete-guard-policy"> - <from uri="direct:delete-guard-policy" /> - <doTry> - <log loggingLevel="INFO" - message="Deleting Guard Policy: ${exchangeProperty[guardPolicy].getKey()}" /> - <to - uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeLog('Policy', 'Delete Guard Policy')" /> - <setBody> - <constant>null</constant> - </setBody> - <setHeader headerName="CamelHttpMethod"> - <constant>DELETE</constant> - </setHeader> - <setHeader headerName="X-ONAP-RequestID"> - <simple>${exchangeProperty[X-ONAP-RequestID]} - </simple> - </setHeader> - <setHeader headerName="X-ONAP-InvocationID"> - <simple>${exchangeProperty[X-ONAP-InvocationID]} - </simple> - </setHeader> - <setHeader headerName="X-ONAP-PartnerName"> - <simple>${exchangeProperty[X-ONAP-PartnerName]} - </simple> - </setHeader> - <log loggingLevel="INFO" - message="Endpoint to delete guard policy: {{clamp.config.policy.api.url}}/policy/api/v1/policytypes/onap.policies.controlloop.Guard/versions/1.0.0/policies/${exchangeProperty[guardPolicy].getKey()}/versions/1"></log> - <toD - uri="{{clamp.config.policy.api.url}}/policy/api/v1/policytypes/onap.policies.controlloop.Guard/versions/1.0.0/policies/${exchangeProperty[guardPolicy].getKey()}/versions/1?bridgeEndpoint=true&useSystemProperties=true&throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&deleteWithBody=false&mapHttpMessageBody=false&mapHttpMessageFormUrlEncodedBody=false&authUsername={{clamp.config.policy.api.userName}}&authPassword={{clamp.config.policy.api.password}}&connectionTimeToLive=5000&httpClient.connectTimeout=10000&httpClient.socketTimeout=20000&authenticationPreemptive=true&connectionClose=true" /> + <route id="delete-operational-policy"> + <from uri="direct:delete-operational-policy"/> + <doTry> + <log loggingLevel="INFO" + message="Deleting Operational Policy: ${exchangeProperty[operationalPolicy].getName()}"/> + <to + uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeLog('Policy', 'Delete Operational Policy')"/> + <setBody> + <constant>null</constant> + </setBody> + <setHeader headerName="CamelHttpMethod"> + <constant>DELETE</constant> + </setHeader> + <setHeader headerName="X-ONAP-RequestID"> + <simple>${exchangeProperty[X-ONAP-RequestID]} + </simple> + </setHeader> + <setHeader headerName="X-ONAP-InvocationID"> + <simple>${exchangeProperty[X-ONAP-InvocationID]} + </simple> + </setHeader> + <setHeader headerName="X-ONAP-PartnerName"> + <simple>${exchangeProperty[X-ONAP-PartnerName]} + </simple> + </setHeader> + <log loggingLevel="INFO" + message="Endpoint to delete operational policy: {{clamp.config.policy.api.url}}/policy/api/v1/policytypes/onap.policies.controlloop.Operational/versions/1.0.0/policies/${exchangeProperty[operationalPolicy].getName()}/versions/1"></log> + <toD + uri="{{clamp.config.policy.api.url}}/policy/api/v1/policytypes/onap.policies.controlloop.Operational/versions/1.0.0/policies/${exchangeProperty[operationalPolicy].getName()}/versions/1?bridgeEndpoint=true&useSystemProperties=true&mapHttpMessageHeaders=false&throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&deleteWithBody=false&mapHttpMessageBody=false&mapHttpMessageFormUrlEncodedBody=false&authUsername={{clamp.config.policy.api.userName}}&authPassword={{clamp.config.policy.api.password}}&connectionTimeToLive=5000&httpClient.connectTimeout=10000&httpClient.socketTimeout=20000&authenticationPreemptive=true&connectionClose=true"/> + <doFinally> + <to uri="direct:reset-raise-http-exception-flag"/> + <to + uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()"/> + <setProperty propertyName="logMessage"> + <simple>${exchangeProperty[operationalPolicy].getName()} removal + status + </simple> + </setProperty> + <setProperty propertyName="logComponent"> + <simple>POLICY</simple> + </setProperty> + <to uri="direct:dump-loop-log-http-response"/> + </doFinally> + </doTry> + </route> - <doFinally> - <to uri="direct:reset-raise-http-exception-flag" /> - <to - uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()" /> - <setProperty propertyName="logMessage"> - <simple>${exchangeProperty[guardPolicy].getKey()} removal status - </simple> - </setProperty> - <setProperty propertyName="logComponent"> - <simple>POLICY</simple> - </setProperty> - <to uri="direct:dump-loop-log-http-response" /> - </doFinally> - </doTry> - </route> + <route id="create-guard-policy"> + <from uri="direct:create-guard-policy"/> + <doTry> + <log loggingLevel="INFO" + message="Creating Guard Policy: ${exchangeProperty[guardPolicy].getKey()}"/> + <to + uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeLog('Policy', 'Create Guard Policy')"/> + <setBody> + <simple>${exchangeProperty[guardPolicy].getValue()} + </simple> + </setBody> + <setHeader headerName="CamelHttpMethod"> + <constant>POST</constant> + </setHeader> + <setHeader headerName="Content-Type"> + <constant>application/json</constant> + </setHeader> + <setHeader headerName="X-ONAP-RequestID"> + <simple>${exchangeProperty[X-ONAP-RequestID]} + </simple> + </setHeader> + <setHeader headerName="X-ONAP-InvocationID"> + <simple>${exchangeProperty[X-ONAP-InvocationID]} + </simple> + </setHeader> + <setHeader headerName="X-ONAP-PartnerName"> + <simple>${exchangeProperty[X-ONAP-PartnerName]} + </simple> + </setHeader> + <log loggingLevel="INFO" + message="Endpoint to create guard policy: {{clamp.config.policy.api.url}}/policy/api/v1/policytypes/onap.policies.controlloop.Guard/versions/1.0.0/policies"></log> + <toD + uri="{{clamp.config.policy.api.url}}/policy/api/v1/policytypes/onap.policies.controlloop.Guard/versions/1.0.0/policies?bridgeEndpoint=true&useSystemProperties=true&mapHttpMessageHeaders=false&throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&authUsername={{clamp.config.policy.api.userName}}&authPassword={{clamp.config.policy.api.password}}&connectionTimeToLive=5000&httpClient.connectTimeout=10000&httpClient.socketTimeout=20000&authenticationPreemptive=true&connectionClose=true"/> + <doFinally> + <to uri="direct:reset-raise-http-exception-flag"/> + <to + uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()"/> + <setProperty propertyName="logMessage"> + <simple>${exchangeProperty[guardPolicy].getKey()} creation status + </simple> + </setProperty> + <setProperty propertyName="logComponent"> + <simple>POLICY</simple> + </setProperty> + <to uri="direct:dump-loop-log-http-response"/> + </doFinally> + </doTry> + </route> - <route id="add-all-to-active-pdp-group"> - <from uri="direct:add-all-to-active-pdp-group" /> - <doTry> - <log loggingLevel="INFO" - message="Adding loop policies to PDP Group: ${exchangeProperty[loopObject].getName()}" /> - <to - uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeLog('Policy', 'Add policies to PDP group')" /> - <setBody> - <simple>${exchangeProperty[loopObject].getComponent("POLICY").createPoliciesPayloadPdpGroup(exchangeProperty[loopObject])} - </simple> - </setBody> - <setHeader headerName="CamelHttpMethod"> - <constant>POST</constant> - </setHeader> - <setHeader headerName="Content-Type"> - <constant>application/json</constant> - </setHeader> - <setHeader headerName="X-ONAP-RequestID"> - <simple>${exchangeProperty[X-ONAP-RequestID]} - </simple> - </setHeader> - <setHeader headerName="X-ONAP-InvocationID"> - <simple>${exchangeProperty[X-ONAP-InvocationID]} - </simple> - </setHeader> - <setHeader headerName="X-ONAP-PartnerName"> - <simple>${exchangeProperty[X-ONAP-PartnerName]} - </simple> - </setHeader> - <log loggingLevel="INFO" - message="Endpoint to add policies to PDP Group: {{clamp.config.policy.pap.url}}/policy/pap/v1/pdps/policies"></log> - <toD - uri="{{clamp.config.policy.pap.url}}/policy/pap/v1/pdps/policies?bridgeEndpoint=true&throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&useSystemProperties=true&authUsername={{clamp.config.policy.pap.userName}}&authPassword={{clamp.config.policy.pap.password}}&connectionTimeToLive=5000&httpClient.connectTimeout=10000&httpClient.socketTimeout=20000&authenticationPreemptive=true&connectionClose=true" /> + <route id="delete-guard-policy"> + <from uri="direct:delete-guard-policy"/> + <doTry> + <log loggingLevel="INFO" + message="Deleting Guard Policy: ${exchangeProperty[guardPolicy].getKey()}"/> + <to + uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeLog('Policy', 'Delete Guard Policy')"/> + <setBody> + <constant>null</constant> + </setBody> + <setHeader headerName="CamelHttpMethod"> + <constant>DELETE</constant> + </setHeader> + <setHeader headerName="X-ONAP-RequestID"> + <simple>${exchangeProperty[X-ONAP-RequestID]} + </simple> + </setHeader> + <setHeader headerName="X-ONAP-InvocationID"> + <simple>${exchangeProperty[X-ONAP-InvocationID]} + </simple> + </setHeader> + <setHeader headerName="X-ONAP-PartnerName"> + <simple>${exchangeProperty[X-ONAP-PartnerName]} + </simple> + </setHeader> + <log loggingLevel="INFO" + message="Endpoint to delete guard policy: {{clamp.config.policy.api.url}}/policy/api/v1/policytypes/onap.policies.controlloop.Guard/versions/1.0.0/policies/${exchangeProperty[guardPolicy].getKey()}/versions/1"></log> + <toD + uri="{{clamp.config.policy.api.url}}/policy/api/v1/policytypes/onap.policies.controlloop.Guard/versions/1.0.0/policies/${exchangeProperty[guardPolicy].getKey()}/versions/1?bridgeEndpoint=true&useSystemProperties=true&throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&deleteWithBody=false&mapHttpMessageBody=false&mapHttpMessageFormUrlEncodedBody=false&authUsername={{clamp.config.policy.api.userName}}&authPassword={{clamp.config.policy.api.password}}&connectionTimeToLive=5000&httpClient.connectTimeout=10000&httpClient.socketTimeout=20000&authenticationPreemptive=true&connectionClose=true"/> - <doFinally> - <to uri="direct:reset-raise-http-exception-flag" /> - <to - uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()" /> - <setProperty propertyName="logMessage"> - <simple>PDP Group push ALL status</simple> - </setProperty> - <setProperty propertyName="logComponent"> - <simple>POLICY</simple> - </setProperty> - <to uri="direct:dump-loop-log-http-response" /> - </doFinally> - </doTry> - </route> + <doFinally> + <to uri="direct:reset-raise-http-exception-flag"/> + <to + uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()"/> + <setProperty propertyName="logMessage"> + <simple>${exchangeProperty[guardPolicy].getKey()} removal status + </simple> + </setProperty> + <setProperty propertyName="logComponent"> + <simple>POLICY</simple> + </setProperty> + <to uri="direct:dump-loop-log-http-response"/> + </doFinally> + </doTry> + </route> - <route id="remove-all-policy-from-active-pdp-group"> - <from uri="direct:remove-all-policy-from-active-pdp-group" /> - <doTry> - <log loggingLevel="INFO" - message="Removing policies from active PDP group for loop: ${exchangeProperty[loopObject].getName()}" /> - <to - uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeLog('Policy', 'Removing policies PDP group')" /> - <split> - <simple>${exchangeProperty[loopObject].getComponent("POLICY").listPolicyNamesPdpGroup(exchangeProperty[loopObject])} - </simple> - <setProperty propertyName="policyName"> - <simple>${body}</simple> - </setProperty> - <setBody> - <constant>null</constant> - </setBody> - <setHeader headerName="CamelHttpMethod"> - <constant>DELETE</constant> - </setHeader> - <setHeader headerName="X-ONAP-RequestID"> - <simple>${exchangeProperty[X-ONAP-RequestID]} - </simple> - </setHeader> - <setHeader headerName="X-ONAP-InvocationID"> - <simple>${exchangeProperty[X-ONAP-InvocationID]} - </simple> - </setHeader> - <setHeader headerName="X-ONAP-PartnerName"> - <simple>${exchangeProperty[X-ONAP-PartnerName]} - </simple> - </setHeader> - <log loggingLevel="INFO" - message="Endpoint to delete policy from PDP Group: {{clamp.config.policy.pap.url}}/pdps/policies/${exchangeProperty[policyName]}/versions/1.0.0"></log> - <toD - uri="{{clamp.config.policy.pap.url}}/policy/pap/v1/pdps/policies/${exchangeProperty[policyName]}/versions/1.0.0?bridgeEndpoint=true&useSystemProperties=true&mapHttpMessageHeaders=false&throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&authUsername={{clamp.config.policy.pap.userName}}&authPassword={{clamp.config.policy.pap.password}}&connectionTimeToLive=5000&httpClient.connectTimeout=10000&httpClient.socketTimeout=20000&authenticationPreemptive=true&connectionClose=true" /> - <setProperty propertyName="logMessage"> - <simple>${exchangeProperty[policyName]} PDP Group removal status - </simple> - </setProperty> - <setProperty propertyName="logComponent"> - <simple>POLICY</simple> - </setProperty> - <to uri="direct:dump-loop-log-http-response" /> - </split> - <doCatch> - <exception>java.lang.Exception</exception> - <handled> - <constant>false</constant> - </handled> - <setProperty propertyName="logMessage"> - <simple>PDP Group removal, Error reported: ${exception}</simple> - </setProperty> - <setProperty propertyName="logComponent"> - <simple>POLICY</simple> - </setProperty> - <to uri="direct:dump-loop-log-http-response" /> - </doCatch> - <doFinally> - <to uri="direct:reset-raise-http-exception-flag" /> - <to - uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()" /> - </doFinally> - </doTry> - </route> + <route id="add-all-to-active-pdp-group"> + <from uri="direct:add-all-to-active-pdp-group"/> + <doTry> + <log loggingLevel="INFO" + message="Adding loop policies to PDP Group: ${exchangeProperty[loopObject].getName()}"/> + <to + uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeLog('Policy', 'Add policies to PDP group')"/> + <setBody> + <simple>${exchangeProperty[loopObject].getComponent("POLICY").createPoliciesPayloadPdpGroup(exchangeProperty[loopObject])} + </simple> + </setBody> + <setHeader headerName="CamelHttpMethod"> + <constant>POST</constant> + </setHeader> + <setHeader headerName="Content-Type"> + <constant>application/json</constant> + </setHeader> + <setHeader headerName="X-ONAP-RequestID"> + <simple>${exchangeProperty[X-ONAP-RequestID]} + </simple> + </setHeader> + <setHeader headerName="X-ONAP-InvocationID"> + <simple>${exchangeProperty[X-ONAP-InvocationID]} + </simple> + </setHeader> + <setHeader headerName="X-ONAP-PartnerName"> + <simple>${exchangeProperty[X-ONAP-PartnerName]} + </simple> + </setHeader> + <log loggingLevel="INFO" + message="Endpoint to add policies to PDP Group: {{clamp.config.policy.pap.url}}/policy/pap/v1/pdps/policies"></log> + <toD + uri="{{clamp.config.policy.pap.url}}/policy/pap/v1/pdps/policies?bridgeEndpoint=true&throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&useSystemProperties=true&authUsername={{clamp.config.policy.pap.userName}}&authPassword={{clamp.config.policy.pap.password}}&connectionTimeToLive=5000&httpClient.connectTimeout=10000&httpClient.socketTimeout=20000&authenticationPreemptive=true&connectionClose=true"/> + + <doFinally> + <to uri="direct:reset-raise-http-exception-flag"/> + <to + uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()"/> + <setProperty propertyName="logMessage"> + <simple>PDP Group push ALL status</simple> + </setProperty> + <setProperty propertyName="logComponent"> + <simple>POLICY</simple> + </setProperty> + <to uri="direct:dump-loop-log-http-response"/> + </doFinally> + </doTry> + </route> + + <route id="remove-all-policy-from-active-pdp-group"> + <from uri="direct:remove-all-policy-from-active-pdp-group"/> + <doTry> + <log loggingLevel="INFO" + message="Removing policies from active PDP group for loop: ${exchangeProperty[loopObject].getName()}"/> + <to + uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeLog('Policy', 'Removing policies PDP group')"/> + <split> + <simple>${exchangeProperty[loopObject].getComponent("POLICY").listPolicyNamesPdpGroup(exchangeProperty[loopObject])} + </simple> + <setProperty propertyName="policyName"> + <simple>${body}</simple> + </setProperty> + <setBody> + <constant>null</constant> + </setBody> + <setHeader headerName="CamelHttpMethod"> + <constant>DELETE</constant> + </setHeader> + <setHeader headerName="X-ONAP-RequestID"> + <simple>${exchangeProperty[X-ONAP-RequestID]} + </simple> + </setHeader> + <setHeader headerName="X-ONAP-InvocationID"> + <simple>${exchangeProperty[X-ONAP-InvocationID]} + </simple> + </setHeader> + <setHeader headerName="X-ONAP-PartnerName"> + <simple>${exchangeProperty[X-ONAP-PartnerName]} + </simple> + </setHeader> + <log loggingLevel="INFO" + message="Endpoint to delete policy from PDP Group: {{clamp.config.policy.pap.url}}/pdps/policies/${exchangeProperty[policyName]}/versions/1.0.0"></log> + <toD + uri="{{clamp.config.policy.pap.url}}/policy/pap/v1/pdps/policies/${exchangeProperty[policyName]}/versions/1.0.0?bridgeEndpoint=true&useSystemProperties=true&mapHttpMessageHeaders=false&throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&authUsername={{clamp.config.policy.pap.userName}}&authPassword={{clamp.config.policy.pap.password}}&connectionTimeToLive=5000&httpClient.connectTimeout=10000&httpClient.socketTimeout=20000&authenticationPreemptive=true&connectionClose=true"/> + <setProperty propertyName="logMessage"> + <simple>${exchangeProperty[policyName]} PDP Group removal status + </simple> + </setProperty> + <setProperty propertyName="logComponent"> + <simple>POLICY</simple> + </setProperty> + <to uri="direct:dump-loop-log-http-response"/> + </split> + <doCatch> + <exception>java.lang.Exception</exception> + <handled> + <constant>false</constant> + </handled> + <setProperty propertyName="logMessage"> + <simple>PDP Group removal, Error reported: ${exception}</simple> + </setProperty> + <setProperty propertyName="logComponent"> + <simple>POLICY</simple> + </setProperty> + <to uri="direct:dump-loop-log-http-response"/> + </doCatch> + <doFinally> + <to uri="direct:reset-raise-http-exception-flag"/> + <to + uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()"/> + </doFinally> + </doTry> + </route> </routes>
\ No newline at end of file diff --git a/src/test/java/org/onap/clamp/clds/it/PolicyConfigurationItCase.java b/src/test/java/org/onap/clamp/clds/it/PolicyConfigurationItCase.java deleted file mode 100644 index fd20e360a..000000000 --- a/src/test/java/org/onap/clamp/clds/it/PolicyConfigurationItCase.java +++ /dev/null @@ -1,71 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP CLAMP - * ================================================================================ - * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights - * reserved. - * ================================================================================ - * 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. - * ============LICENSE_END============================================ - * =================================================================== - * - */ - -package org.onap.clamp.clds.it; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertTrue; - -import org.junit.Test; -import org.junit.runner.RunWith; -import org.onap.clamp.clds.config.PolicyConfiguration; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.context.junit4.SpringRunner; - -/** - * Test Config Policy read from application.properties. - */ -@RunWith(SpringRunner.class) -@SpringBootTest -public class PolicyConfigurationItCase { - - @Autowired - private PolicyConfiguration policyConfiguration; - - @Test - public void testPolicyConfiguration() { - assertNotNull(policyConfiguration.getPdpUrl1()); - assertNotNull(policyConfiguration.getPdpUrl2()); - assertNotNull(policyConfiguration.getPapUrl()); - assertNotNull(policyConfiguration.getPolicyEnvironment()); - assertNotNull(policyConfiguration.getClientId()); - assertNotNull(policyConfiguration.getClientKey()); - assertNotNull(policyConfiguration.getNotificationType()); - assertNotNull(policyConfiguration.getNotificationUebServers()); - assertEquals(8, policyConfiguration.getProperties().size()); - assertTrue(((String) policyConfiguration.getProperties().get(PolicyConfiguration.PDP_URL1)) - .contains("/pdp/ , testpdp, alpha123")); - assertTrue(((String) policyConfiguration.getProperties().get(PolicyConfiguration.PDP_URL2)) - .contains("/pdp/ , testpdp, alpha123")); - assertTrue(((String) policyConfiguration.getProperties().get(PolicyConfiguration.PAP_URL)) - .contains("/pap/ , testpap, alpha123")); - assertEquals("websocket", policyConfiguration.getProperties().get(PolicyConfiguration.NOTIFICATION_TYPE)); - assertEquals("localhost", - policyConfiguration.getProperties().get(PolicyConfiguration.NOTIFICATION_UEB_SERVERS)); - assertEquals("python", policyConfiguration.getProperties().get(PolicyConfiguration.CLIENT_ID)); - assertEquals("dGVzdA==", policyConfiguration.getProperties().get(PolicyConfiguration.CLIENT_KEY)); - assertEquals("DEVL", policyConfiguration.getProperties().get(PolicyConfiguration.ENVIRONMENT)); - } -} diff --git a/src/test/java/org/onap/clamp/clds/it/config/CldsReferencePropertiesItCase.java b/src/test/java/org/onap/clamp/clds/it/config/CldsReferencePropertiesItCase.java index d34042038..c25415ecc 100644 --- a/src/test/java/org/onap/clamp/clds/it/config/CldsReferencePropertiesItCase.java +++ b/src/test/java/org/onap/clamp/clds/it/config/CldsReferencePropertiesItCase.java @@ -28,10 +28,9 @@ import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; - import com.google.gson.JsonElement; + import java.io.IOException; -import java.util.List; import org.junit.Test; import org.junit.runner.RunWith; @@ -55,19 +54,15 @@ public class CldsReferencePropertiesItCase { */ @Test public void testGetStringValue() { - assertEquals("DCAE", refProp.getStringValue("policy.onap.name")); - assertEquals("Config_MS_", refProp.getStringValue("policy.ms.policyNamePrefix", "")); - assertEquals("Config_MS_", refProp.getStringValue("policy.ms.policyNamePrefix", "testos")); - assertEquals("Config_MS_", refProp.getStringValue("policy.ms", "policyNamePrefix")); - assertNull(refProp.getStringValue("does.not.exist")); + assertEquals("healthcheck", refProp.getStringValue("policy.api.userName")); } @Test public void shouldReturnJsonFromTemplate() throws IOException { - //when + // when JsonElement root = refProp.getJsonTemplate("ui.location.default"); - //then + // then assertNotNull(root); assertTrue(root.isJsonObject()); assertEquals("Data Center 1", root.getAsJsonObject().get("DC1").getAsString()); @@ -75,10 +70,10 @@ public class CldsReferencePropertiesItCase { @Test public void shouldReturnJsonFromTemplate_2() throws IOException { - //when + // when JsonElement root = refProp.getJsonTemplate("ui.location", "default"); - //then + // then assertNotNull(root); assertTrue(root.isJsonObject()); assertEquals("Data Center 1", root.getAsJsonObject().get("DC1").getAsString()); @@ -86,18 +81,17 @@ public class CldsReferencePropertiesItCase { @Test public void shouldReturnNullIfPropertyNotFound() throws IOException { - //when + // when JsonElement root = refProp.getJsonTemplate("ui.location", ""); - //then + // then assertNull(root); } /** * Test getting prop value as a JSON Node / template. * - * @throws IOException - * when JSON parsing fails + * @throws IOException when JSON parsing fails */ @Test public void testGetFileContent() throws IOException { @@ -109,13 +103,4 @@ public class CldsReferencePropertiesItCase { content = refProp.getFileContent("ui.location", "default"); assertEquals(location, content); } - - @Test - public void testGetStringList() { - List<String> profileList = refProp.getStringList("policy.pdpUrl1", ","); - assertEquals(3, profileList.size()); - assertTrue(profileList.get(0).trim().startsWith("http://localhost:")); - assertEquals("testpdp", profileList.get(1).trim()); - assertEquals("alpha123", profileList.get(2).trim()); - } } diff --git a/src/test/java/org/onap/clamp/clds/it/config/SdcControllersConfigurationItCase.java b/src/test/java/org/onap/clamp/clds/it/config/SdcControllersConfigurationItCase.java index 7c520a252..7ef734533 100644 --- a/src/test/java/org/onap/clamp/clds/it/config/SdcControllersConfigurationItCase.java +++ b/src/test/java/org/onap/clamp/clds/it/config/SdcControllersConfigurationItCase.java @@ -45,7 +45,7 @@ import org.springframework.test.util.ReflectionTestUtils; */ @RunWith(SpringRunner.class) @SpringBootTest -@ActiveProfiles(profiles = "clamp-default,clamp-default-user,clamp-sdc-controller-new") +@ActiveProfiles(profiles = "clamp-default,clamp-default-user,clamp-sdc-controller") public class SdcControllersConfigurationItCase { @Autowired diff --git a/src/test/java/org/onap/clamp/clds/sdc/controller/installer/BlueprintParserTest.java b/src/test/java/org/onap/clamp/clds/sdc/controller/installer/BlueprintParserTest.java index e48bfc44a..9efb68983 100644 --- a/src/test/java/org/onap/clamp/clds/sdc/controller/installer/BlueprintParserTest.java +++ b/src/test/java/org/onap/clamp/clds/sdc/controller/installer/BlueprintParserTest.java @@ -44,6 +44,7 @@ import org.json.JSONObject; import org.junit.Assert; import org.junit.BeforeClass; import org.junit.Test; +import org.onap.clamp.clds.exception.sdc.controller.BlueprintParserException; import org.onap.clamp.clds.util.ResourceFileUtil; import org.yaml.snakeyaml.Yaml; @@ -53,17 +54,16 @@ public class BlueprintParserTest { private static final String SECOND_APPP = "second_app"; private static final String THIRD_APPP = "third_app"; private static final String MODEL_TYPE1 = "type1"; - private static final String MODEL_TYPE2 = "type2"; - private static final String MODEL_TYPE3 = "type3"; + private static final String MODEL_TYPE_TCA = "onap.policies.monitoring.cdap.tca.hi.lo.app"; + private static final String VERSION = "1.0.0"; private static String microServiceTheWholeBlueprintValid; - private static String microServiceBlueprintOldStyleTCA; - private static String microServiceBlueprintOldStyleHolmes; private static String newMicroServiceBlueprint; - private static JsonObject jsonObjectBlueprintValid; + private static JsonObject jsonObjectBlueprintInvalid; private static JsonObject jsonObjectBlueprintWithoutName; private static JsonObject jsonObjectBlueprintWithoutProperties; private static JsonObject jsonObjectBlueprintWithoutRelationships; + private static JsonObject jsonObjectBlueprintValidWithVersion; /** * Method to load Blueprints before all test. @@ -74,20 +74,21 @@ public class BlueprintParserTest { public static void loadBlueprints() throws IOException { microServiceTheWholeBlueprintValid = ResourceFileUtil .getResourceAsString("clds/blueprint-with-microservice-chain.yaml"); - microServiceBlueprintOldStyleTCA = ResourceFileUtil.getResourceAsString("clds/tca-old-style-ms.yaml"); + newMicroServiceBlueprint = ResourceFileUtil.getResourceAsString("clds/new-microservice.yaml"); - microServiceBlueprintOldStyleHolmes = ResourceFileUtil.getResourceAsString("clds/holmes-old-style-ms.yaml"); - String microServiceBlueprintValid = ResourceFileUtil - .getResourceAsString("clds/single-microservice-fragment-valid.yaml"); + String microServiceBlueprintInvalid = ResourceFileUtil + .getResourceAsString("clds/single-microservice-fragment-invalid.yaml"); + jsonObjectBlueprintInvalid = yamlToJson(microServiceBlueprintInvalid); String microServiceBlueprintWithoutName = ResourceFileUtil .getResourceAsString("clds/single-microservice-fragment-without-name.yaml"); + jsonObjectBlueprintWithoutName = yamlToJson(microServiceBlueprintWithoutName); String microServiceBlueprintWithoutProperties = ResourceFileUtil .getResourceAsString("clds/single-microservice-fragment-without-properties.yaml"); - - jsonObjectBlueprintValid = yamlToJson(microServiceBlueprintValid); - jsonObjectBlueprintWithoutName = yamlToJson(microServiceBlueprintWithoutName); jsonObjectBlueprintWithoutProperties = yamlToJson(microServiceBlueprintWithoutProperties); + String microServiceBlueprintValidWithVersion = ResourceFileUtil + .getResourceAsString("clds/single-microservice-fragment-valid-with-version.yaml"); + jsonObjectBlueprintValidWithVersion = yamlToJson(microServiceBlueprintValidWithVersion); String microServiceBlueprintWithoutRelationships = ResourceFileUtil .getResourceAsString("clds/single-microservice-fragment-without-relationships.yaml"); @@ -97,11 +98,11 @@ public class BlueprintParserTest { @Test public void getNameShouldReturnDefinedName() { - final JsonObject jsonObject = jsonObjectBlueprintValid; + final JsonObject jsonObject = jsonObjectBlueprintInvalid; String expectedName = jsonObject.get(jsonObject.keySet().iterator().next()).getAsJsonObject().get("properties") .getAsJsonObject().get("name").getAsString(); Entry<String, JsonElement> entry = jsonObject.entrySet().iterator().next(); - String actualName = new BlueprintParser().getName(entry); + String actualName = BlueprintParser.getName(entry); Assert.assertEquals(expectedName, actualName); } @@ -112,7 +113,7 @@ public class BlueprintParserTest { String expectedName = jsonObject.keySet().iterator().next(); Entry<String, JsonElement> entry = jsonObject.entrySet().iterator().next(); - String actualName = new BlueprintParser().getName(entry); + String actualName = BlueprintParser.getName(entry); Assert.assertEquals(expectedName, actualName); } @@ -123,18 +124,18 @@ public class BlueprintParserTest { String expectedName = jsonObject.keySet().iterator().next(); Entry<String, JsonElement> entry = jsonObject.entrySet().iterator().next(); - String actualName = new BlueprintParser().getName(entry); + String actualName = BlueprintParser.getName(entry); Assert.assertEquals(expectedName, actualName); } @Test public void getInputShouldReturnInputWhenPresent() { - final JsonObject jsonObject = jsonObjectBlueprintValid; + final JsonObject jsonObject = jsonObjectBlueprintInvalid; String expected = FIRST_APPP; Entry<String, JsonElement> entry = jsonObject.entrySet().iterator().next(); - String actual = new BlueprintParser().getInput(entry); + String actual = BlueprintParser.getInput(entry); Assert.assertEquals(expected, actual); } @@ -145,63 +146,56 @@ public class BlueprintParserTest { String expected = ""; Entry<String, JsonElement> entry = jsonObject.entrySet().iterator().next(); - String actual = new BlueprintParser().getInput(entry); + String actual = BlueprintParser.getInput(entry); Assert.assertEquals(expected, actual); } - @Test - public void getNodeRepresentationFromCompleteYaml() { - final JsonObject jsonObject = jsonObjectBlueprintValid; - - MicroService expected = new MicroService(SECOND_APPP, MODEL_TYPE1, FIRST_APPP, ""); - Entry<String, JsonElement> entry = jsonObject.entrySet().iterator().next(); - MicroService actual = new BlueprintParser().getNodeRepresentation(entry, jsonObject, null); - - Assert.assertEquals(expected, actual); + @Test(expected = BlueprintParserException.class) + public void getNodeRepresentationFromIncompleteYaml() throws BlueprintParserException { + BlueprintParser.getNodeRepresentation(jsonObjectBlueprintInvalid.entrySet().iterator().next(), + jsonObjectBlueprintInvalid, null); } @Test - public void getMicroServicesFromBlueprintTest() { - MicroService thirdApp = new MicroService(THIRD_APPP, MODEL_TYPE3, "", ""); - MicroService firstApp = new MicroService(FIRST_APPP, MODEL_TYPE1, THIRD_APPP, ""); - MicroService secondApp = new MicroService(SECOND_APPP, MODEL_TYPE2, FIRST_APPP, ""); + public void getNodeRepresentationFromCompleteYamlWithModelVersion() throws BlueprintParserException { + final JsonObject jsonObject = jsonObjectBlueprintValidWithVersion; - Set<MicroService> expected = new HashSet<>(Arrays.asList(firstApp, secondApp, thirdApp)); - Set<MicroService> actual = new BlueprintParser().getMicroServices(microServiceTheWholeBlueprintValid); + BlueprintMicroService expected = new BlueprintMicroService(SECOND_APPP, MODEL_TYPE1, "", "10.0.0"); + Entry<String, JsonElement> entry = jsonObject.entrySet().iterator().next(); + BlueprintMicroService actual = BlueprintParser.getNodeRepresentation(entry, jsonObject, null); Assert.assertEquals(expected, actual); } @Test + public void getMicroServicesFromBlueprintTest() throws BlueprintParserException { + BlueprintMicroService thirdApp = new BlueprintMicroService(THIRD_APPP, MODEL_TYPE_TCA, SECOND_APPP, VERSION); + BlueprintMicroService firstApp = new BlueprintMicroService(FIRST_APPP, MODEL_TYPE_TCA, "", VERSION); + BlueprintMicroService secondApp = new BlueprintMicroService(SECOND_APPP, MODEL_TYPE_TCA, FIRST_APPP, VERSION); - public void fallBackToOneMicroServiceTcaTest() { - MicroService tcaMs = new MicroService(BlueprintParser.TCA, "onap.policies.monitoring.cdap.tca.hi.lo.app", "", - ""); - List<MicroService> expected = Collections.singletonList(tcaMs); - List<MicroService> actual = new BlueprintParser().fallbackToOneMicroService(microServiceBlueprintOldStyleTCA); + Set<BlueprintMicroService> expected = new HashSet<>(Arrays.asList(firstApp, secondApp, thirdApp)); + Set<BlueprintMicroService> actual = BlueprintParser.getMicroServices(microServiceTheWholeBlueprintValid); Assert.assertEquals(expected, actual); } @Test - public void fallBackToOneMicroServiceHolmesTest() { - MicroService holmesMs = new MicroService(BlueprintParser.HOLMES, "onap.policies.monitoring.cdap.tca.hi.lo.app", - "", ""); - - List<MicroService> expected = Collections.singletonList(holmesMs); - List<MicroService> actual = new BlueprintParser() - .fallbackToOneMicroService(microServiceBlueprintOldStyleHolmes); + public void fallBackToOneMicroServiceTcaTest() { + BlueprintMicroService tcaMs = new BlueprintMicroService(BlueprintParser.TCA, + "onap.policies.monitoring.cdap.tca.hi.lo.app", "", VERSION); + List<BlueprintMicroService> expected = Collections.singletonList(tcaMs); + List<BlueprintMicroService> actual = BlueprintParser.fallbackToOneMicroService(); Assert.assertEquals(expected, actual); } @Test - public void newMicroServiceTest() { - List<MicroService> microServicesChain = new ChainGenerator() - .getChainOfMicroServices(new BlueprintParser().getMicroServices(newMicroServiceBlueprint)); + public void newMicroServiceTest() throws BlueprintParserException { + List<BlueprintMicroService> microServicesChain = new ChainGenerator() + .getChainOfMicroServices(BlueprintParser.getMicroServices(newMicroServiceBlueprint)); if (microServicesChain.isEmpty()) { - microServicesChain = new BlueprintParser().fallbackToOneMicroService(newMicroServiceBlueprint); + microServicesChain = BlueprintParser.fallbackToOneMicroService(); } assertThat(microServicesChain.size()).isEqualTo(1); assertThat(microServicesChain.get(0).getName()).isEqualTo("pmsh"); diff --git a/src/test/java/org/onap/clamp/clds/sdc/controller/installer/ChainGeneratorTest.java b/src/test/java/org/onap/clamp/clds/sdc/controller/installer/ChainGeneratorTest.java index 4b4563cd4..83b3dda01 100644 --- a/src/test/java/org/onap/clamp/clds/sdc/controller/installer/ChainGeneratorTest.java +++ b/src/test/java/org/onap/clamp/clds/sdc/controller/installer/ChainGeneratorTest.java @@ -36,42 +36,43 @@ public class ChainGeneratorTest { private static final String SECOND_APPP = "second_app"; private static final String THIRD_APPP = "third_app"; private static final String FOURTH_APPP = "fourth_app"; + private static final String DEFAULT_VERSION = "1.0.0"; @Test public void getChainOfMicroServicesTest() { - MicroService ms1 = new MicroService(FIRST_APPP, "", "", ""); - MicroService ms2 = new MicroService(SECOND_APPP, "", FIRST_APPP, ""); - MicroService ms3 = new MicroService(THIRD_APPP, "", SECOND_APPP, ""); - MicroService ms4 = new MicroService(FOURTH_APPP, "", THIRD_APPP, ""); + BlueprintMicroService ms1 = new BlueprintMicroService(FIRST_APPP, "", "", DEFAULT_VERSION); + BlueprintMicroService ms2 = new BlueprintMicroService(SECOND_APPP, "", FIRST_APPP, DEFAULT_VERSION); + BlueprintMicroService ms3 = new BlueprintMicroService(THIRD_APPP, "", SECOND_APPP, DEFAULT_VERSION); + BlueprintMicroService ms4 = new BlueprintMicroService(FOURTH_APPP, "", THIRD_APPP, DEFAULT_VERSION); - List<MicroService> expectedList = Arrays.asList(ms1, ms2, ms3, ms4); - Set<MicroService> inputSet = new HashSet<>(expectedList); + List<BlueprintMicroService> expectedList = Arrays.asList(ms1, ms2, ms3, ms4); + Set<BlueprintMicroService> inputSet = new HashSet<>(expectedList); - List<MicroService> actualList = new ChainGenerator().getChainOfMicroServices(inputSet); + List<BlueprintMicroService> actualList = new ChainGenerator().getChainOfMicroServices(inputSet); Assert.assertEquals(expectedList, actualList); } @Test public void getChainOfMicroServicesTwiceNoInputTest() { - MicroService ms1 = new MicroService(FIRST_APPP, "", "", ""); - MicroService ms2 = new MicroService(SECOND_APPP, "", "", ""); - MicroService ms3 = new MicroService(THIRD_APPP, "", SECOND_APPP, ""); - MicroService ms4 = new MicroService(FOURTH_APPP, "", FIRST_APPP, ""); + BlueprintMicroService ms1 = new BlueprintMicroService(FIRST_APPP, "", "", DEFAULT_VERSION); + BlueprintMicroService ms2 = new BlueprintMicroService(SECOND_APPP, "", "", DEFAULT_VERSION); + BlueprintMicroService ms3 = new BlueprintMicroService(THIRD_APPP, "", SECOND_APPP, DEFAULT_VERSION); + BlueprintMicroService ms4 = new BlueprintMicroService(FOURTH_APPP, "", FIRST_APPP, DEFAULT_VERSION); - Set<MicroService> inputSet = new HashSet<>(Arrays.asList(ms1, ms2, ms3, ms4)); - List<MicroService> actualList = new ChainGenerator().getChainOfMicroServices(inputSet); + Set<BlueprintMicroService> inputSet = new HashSet<>(Arrays.asList(ms1, ms2, ms3, ms4)); + List<BlueprintMicroService> actualList = new ChainGenerator().getChainOfMicroServices(inputSet); Assert.assertTrue(actualList.isEmpty()); } @Test public void getChainOfMicroServicesBranchingTest() { - MicroService ms1 = new MicroService(FIRST_APPP, "", "", ""); - MicroService ms2 = new MicroService(SECOND_APPP, "", FIRST_APPP, ""); - MicroService ms3 = new MicroService(THIRD_APPP, "", FIRST_APPP, ""); - MicroService ms4 = new MicroService(FOURTH_APPP, "", FIRST_APPP, ""); + BlueprintMicroService ms1 = new BlueprintMicroService(FIRST_APPP, "", "", DEFAULT_VERSION); + BlueprintMicroService ms2 = new BlueprintMicroService(SECOND_APPP, "", FIRST_APPP, DEFAULT_VERSION); + BlueprintMicroService ms3 = new BlueprintMicroService(THIRD_APPP, "", FIRST_APPP, DEFAULT_VERSION); + BlueprintMicroService ms4 = new BlueprintMicroService(FOURTH_APPP, "", FIRST_APPP, DEFAULT_VERSION); - Set<MicroService> inputSet = new HashSet<>(Arrays.asList(ms1, ms2, ms3, ms4)); - List<MicroService> actualList = new ChainGenerator().getChainOfMicroServices(inputSet); + Set<BlueprintMicroService> inputSet = new HashSet<>(Arrays.asList(ms1, ms2, ms3, ms4)); + List<BlueprintMicroService> actualList = new ChainGenerator().getChainOfMicroServices(inputSet); Assert.assertTrue(actualList.isEmpty()); } } diff --git a/src/test/java/org/onap/clamp/clds/util/CryptoUtilsTest.java b/src/test/java/org/onap/clamp/clds/util/CryptoUtilsTest.java index 1453d0baa..f6054d538 100644 --- a/src/test/java/org/onap/clamp/clds/util/CryptoUtilsTest.java +++ b/src/test/java/org/onap/clamp/clds/util/CryptoUtilsTest.java @@ -45,7 +45,7 @@ import org.powermock.core.classloader.annotations.PrepareForTest; import org.powermock.modules.junit4.PowerMockRunner; @RunWith(PowerMockRunner.class) -@PowerMockIgnore({ "javax.crypto.*", "com.sun.org.apache.xerces.*", "javax.xml.*", "org.xml.*" }) +@PowerMockIgnore({ "javax.crypto.*", "com.sun.org.apache.xerces.*", "javax.xml.*", "org.xml.*", "javax.management.*" }) public class CryptoUtilsTest { private final String data = "This is a test string"; diff --git a/src/test/java/org/onap/clamp/clds/util/drawing/ClampGraphBuilderTest.java b/src/test/java/org/onap/clamp/clds/util/drawing/ClampGraphBuilderTest.java index 269ad42e1..65eb2696f 100644 --- a/src/test/java/org/onap/clamp/clds/util/drawing/ClampGraphBuilderTest.java +++ b/src/test/java/org/onap/clamp/clds/util/drawing/ClampGraphBuilderTest.java @@ -39,7 +39,7 @@ import org.mockito.ArgumentCaptor; import org.mockito.Captor; import org.mockito.Mock; import org.mockito.runners.MockitoJUnitRunner; -import org.onap.clamp.clds.sdc.controller.installer.MicroService; +import org.onap.clamp.clds.sdc.controller.installer.BlueprintMicroService; @RunWith(MockitoJUnitRunner.class) public class ClampGraphBuilderTest { @@ -50,7 +50,7 @@ public class ClampGraphBuilderTest { private ArgumentCaptor<String> collectorCaptor; @Captor - private ArgumentCaptor<List<MicroService>> microServicesCaptor; + private ArgumentCaptor<List<BlueprintMicroService>> microServicesCaptor; @Captor private ArgumentCaptor<String> policyCaptor; @@ -58,17 +58,17 @@ public class ClampGraphBuilderTest { @Test public void clampGraphBuilderCompleteChainTest() { String collector = "VES"; - MicroService ms1 = new MicroService("ms1", "", "", "ms1_jpa_id"); - MicroService ms2 = new MicroService("ms2", "", "", "ms2_jpa_id"); + BlueprintMicroService ms1 = new BlueprintMicroService("ms1", "", "", "1.0.0"); + BlueprintMicroService ms2 = new BlueprintMicroService("ms2", "", "", "1.0.0"); String policy = "OperationalPolicy"; - final List<MicroService> microServices = Arrays.asList(ms1, ms2); + final List<BlueprintMicroService> microServices = Arrays.asList(ms1, ms2); ClampGraphBuilder clampGraphBuilder = new ClampGraphBuilder(mockPainter); clampGraphBuilder.collector(collector).addMicroService(ms1).addMicroService(ms2).policy(policy).build(); verify(mockPainter, times(1)).doPaint(collectorCaptor.capture(), microServicesCaptor.capture(), - policyCaptor.capture()); + policyCaptor.capture()); Assert.assertEquals(collector, collectorCaptor.getValue()); Assert.assertEquals(microServices, microServicesCaptor.getValue()); @@ -78,8 +78,8 @@ public class ClampGraphBuilderTest { @Test(expected = InvalidStateException.class) public void clampGraphBuilderNoPolicyGivenTest() { String collector = "VES"; - MicroService ms1 = new MicroService("ms1", "", "", "ms1_jpa_id"); - MicroService ms2 = new MicroService("ms2", "", "", "ms2_jpa_id"); + BlueprintMicroService ms1 = new BlueprintMicroService("ms1", "", "", "1.0.0"); + BlueprintMicroService ms2 = new BlueprintMicroService("ms2", "", "", "1.0.0"); ClampGraphBuilder clampGraphBuilder = new ClampGraphBuilder(mockPainter); clampGraphBuilder.collector(collector).addMicroService(ms1).addMicroService(ms2).build(); diff --git a/src/test/java/org/onap/clamp/loop/CsarInstallerItCase.java b/src/test/java/org/onap/clamp/loop/CsarInstallerItCase.java index 70adf3eef..636684cdb 100644 --- a/src/test/java/org/onap/clamp/loop/CsarInstallerItCase.java +++ b/src/test/java/org/onap/clamp/loop/CsarInstallerItCase.java @@ -44,6 +44,7 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mockito; import org.onap.clamp.clds.Application; +import org.onap.clamp.clds.exception.sdc.controller.BlueprintParserException; import org.onap.clamp.clds.exception.sdc.controller.CsarHandlerException; import org.onap.clamp.clds.exception.sdc.controller.SdcArtifactInstallerException; import org.onap.clamp.clds.sdc.controller.installer.BlueprintArtifact; @@ -73,7 +74,7 @@ import org.springframework.test.context.junit4.SpringRunner; @RunWith(SpringRunner.class) @SpringBootTest(classes = Application.class) -@ActiveProfiles(profiles = "clamp-default,clamp-default-user,clamp-sdc-controller-new") +@ActiveProfiles(profiles = "clamp-default,clamp-default-user,clamp-sdc-controller") public class CsarInstallerItCase { private static final String CSAR_ARTIFACT_NAME = "example/sdc/service_Vloadbalancerms_csar.csar"; @@ -180,7 +181,7 @@ public class CsarInstallerItCase { @Test @Transactional public void testIsCsarAlreadyDeployedTca() throws SdcArtifactInstallerException, SdcToscaParserException, - CsarHandlerException, IOException, InterruptedException { + CsarHandlerException, IOException, InterruptedException, BlueprintParserException { String generatedName = RandomStringUtils.randomAlphanumeric(5); CsarHandler csarHandler = buildFakeCsarHandler(generatedName); assertThat(csarInstaller.isCsarAlreadyDeployed(csarHandler)).isFalse(); @@ -192,7 +193,7 @@ public class CsarInstallerItCase { @Transactional @Commit public void testInstallTheCsarTca() throws SdcArtifactInstallerException, SdcToscaParserException, - CsarHandlerException, IOException, JSONException, InterruptedException { + CsarHandlerException, IOException, JSONException, InterruptedException, BlueprintParserException { String generatedName = RandomStringUtils.randomAlphanumeric(5); CsarHandler csar = buildFakeCsarHandler(generatedName); csarInstaller.installTheCsar(csar); @@ -233,16 +234,9 @@ public class CsarInstallerItCase { assertThat(policyModelsRepository.findAll().size()).isEqualByComparingTo(1); assertThat(policyModelsRepository - .existsById(new PolicyModelId("onap.policies.monitoring.cdap.tca.hi.lo.app", "1.0"))).isTrue(); - } - - @Test(expected = SdcArtifactInstallerException.class) - @Transactional - public void shouldThrowSdcArtifactInstallerException() - throws SdcArtifactInstallerException, SdcToscaParserException, IOException, InterruptedException { - String generatedName = RandomStringUtils.randomAlphanumeric(5); - CsarHandler csarHandler = buildFakeCsarHandler(generatedName); - Mockito.when(csarHandler.getPolicyModelYaml()).thenThrow(IOException.class); - csarInstaller.installTheCsar(csarHandler); + .existsById(new PolicyModelId("onap.policies.monitoring.cdap.tca.hi.lo.app", "1.0.0"))).isTrue(); + assertThat(policyModelsRepository + .getOne((new PolicyModelId("onap.policies.monitoring.cdap.tca.hi.lo.app", "1.0.0"))) + .getPolicyModelTosca()).isNotBlank(); } } diff --git a/src/test/java/org/onap/clamp/loop/DcaeComponentTest.java b/src/test/java/org/onap/clamp/loop/DcaeComponentTest.java index 03b35f1b4..fa9cc063a 100644 --- a/src/test/java/org/onap/clamp/loop/DcaeComponentTest.java +++ b/src/test/java/org/onap/clamp/loop/DcaeComponentTest.java @@ -69,8 +69,8 @@ public class DcaeComponentTest { @Test public void convertDcaeResponseTest() throws IOException { - String dcaeFakeResponse = "{'requestId':'testId','operationType':'install','status':'state','error':'errorMessage', " - + "'links':{'self':'selfUrl','uninstall':'uninstallUrl'}}"; + String dcaeFakeResponse = "{'requestId':'testId','operationType':'install','status':'state'," + + "'error':'errorMessage', 'links':{'self':'selfUrl','uninstall':'uninstallUrl'}}"; DcaeOperationStatusResponse responseObject = DcaeComponent.convertDcaeResponse(dcaeFakeResponse); assertThat(responseObject.getRequestId()).isEqualTo("testId"); assertThat(responseObject.getOperationType()).isEqualTo("install"); diff --git a/src/test/java/org/onap/clamp/loop/DeployFlowTestItCase.java b/src/test/java/org/onap/clamp/loop/DeployFlowTestItCase.java index e1cee341b..c85d5a57c 100644 --- a/src/test/java/org/onap/clamp/loop/DeployFlowTestItCase.java +++ b/src/test/java/org/onap/clamp/loop/DeployFlowTestItCase.java @@ -58,6 +58,9 @@ public class DeployFlowTestItCase { @Autowired LoopService loopService; + @Autowired + LoopsRepository loopsRepository; + @Test @Transactional public void deployWithSingleBlueprintTest() throws JsonSyntaxException, IOException { @@ -86,8 +89,8 @@ public class DeployFlowTestItCase { @Transactional public void deployWithMultipleBlueprintTest() throws JsonSyntaxException, IOException { Loop loopTest2 = createLoop("ControlLoopTest2", "<xml></xml>", "yamlcontent", "{\"dcaeDeployParameters\": {" - + "\"microService1\": {\"location_id\": \"\", \"policy_id\": \"TCA_h2NMX_v1_0_ResourceInstanceName1_tca\"}," - + "\"microService2\": {\"location_id\": \"\", \"policy_id\": \"TCA_h2NMX_v1_0_ResourceInstanceName2_tca\"}" + + "\"microService1\": {\"location_id\": \"\", \"policy_id\": \"TCA_ResourceInstanceName1_tca\"}," + + "\"microService2\": {\"location_id\": \"\", \"policy_id\": \"TCA_ResourceInstanceName2_tca\"}" + "}}", "UUID-blueprint"); LoopTemplate template = new LoopTemplate(); template.setName("templateName"); @@ -98,7 +101,7 @@ public class DeployFlowTestItCase { "tosca_definitions_version: tosca_simple_yaml_1_0_0", "{\"param1\":\"value1\"}", true); loopTest2.addMicroServicePolicy(microServicePolicy1); loopTest2.addMicroServicePolicy(microServicePolicy2); - loopService.saveOrUpdateLoop(loopTest2); + loopsRepository.saveAndFlush(loopTest2); Exchange myCamelExchange = ExchangeBuilder.anExchange(camelContext).withProperty("loopObject", loopTest2) .build(); @@ -143,8 +146,8 @@ public class DeployFlowTestItCase { @Transactional public void undeployWithMultipleBlueprintTest() throws JsonSyntaxException, IOException { Loop loopTest2 = createLoop("ControlLoopTest2", "<xml></xml>", "yamlcontent", "{\"dcaeDeployParameters\": {" - + "\"microService1\": {\"location_id\": \"\", \"policy_id\": \"TCA_h2NMX_v1_0_ResourceInstanceName1_tca\"}," - + "\"microService2\": {\"location_id\": \"\", \"policy_id\": \"TCA_h2NMX_v1_0_ResourceInstanceName2_tca\"}" + + "\"microService1\": {\"location_id\": \"\", \"policy_id\": \"TCA_ResourceInstanceName1_tca\"}," + + "\"microService2\": {\"location_id\": \"\", \"policy_id\": \"TCA_ResourceInstanceName2_tca\"}" + "}}", "UUID-blueprint"); LoopTemplate template = new LoopTemplate(); template.setName("templateName"); @@ -157,7 +160,7 @@ public class DeployFlowTestItCase { "testDeploymentId2", "testDeploymentStatusUrl2"); loopTest2.addMicroServicePolicy(microServicePolicy1); loopTest2.addMicroServicePolicy(microServicePolicy2); - loopService.saveOrUpdateLoop(loopTest2); + loopsRepository.saveAndFlush(loopTest2); Exchange myCamelExchange = ExchangeBuilder.anExchange(camelContext).withProperty("loopObject", loopTest2) .build(); @@ -172,6 +175,77 @@ public class DeployFlowTestItCase { assertThat(loopAfterTest.getDcaeDeploymentId()).isNull(); } + + @Test + @Transactional + public void getStatusWithSingleBlueprintTest() throws JsonSyntaxException, IOException { + Loop loopTest = createLoop("ControlLoopTest", "<xml></xml>", "yamlcontent", "{\"testname\":\"testvalue\"}", + "UUID-blueprint"); + LoopTemplate template = new LoopTemplate(); + template.setName("templateName"); + template.setBlueprint("yamlcontent"); + loopTest.setLoopTemplate(template); + MicroServicePolicy microServicePolicy = getMicroServicePolicy("configPolicyTest", "", + "{\"configtype\":\"json\"}", "tosca_definitions_version: tosca_simple_yaml_1_0_0", + "{\"param1\":\"value1\"}", true); + loopTest.addMicroServicePolicy(microServicePolicy); + loopService.saveOrUpdateLoop(loopTest); + assertThat(loopTest.getComponents().size()).isEqualTo(2); + assertThat(loopTest.getComponent("DCAE")).isNotNull(); + assertThat(loopTest.getComponent("POLICY")).isNotNull(); + Exchange myCamelExchange = ExchangeBuilder.anExchange(camelContext).withProperty("loopObject", loopTest) + .build(); + + camelContext.createProducerTemplate().send("direct:update-dcae-status-for-loop", myCamelExchange); + + assertThat(loopTest.getComponent("DCAE").getState().getStateName()).isEqualTo("BLUEPRINT_DEPLOYED"); + + Loop loopAfterTest = loopService.getLoop("ControlLoopTest"); + assertThat(loopAfterTest.getComponents().size()).isEqualTo(2); + assertThat(loopAfterTest.getComponent("DCAE")).isNotNull(); + assertThat(loopAfterTest.getComponent("POLICY")).isNotNull(); + } + + @Test + @Transactional + public void getStatusWithMultipleBlueprintTest() throws JsonSyntaxException, IOException { + Loop loopTest = createLoop("ControlLoopTest", "<xml></xml>", "yamlcontent", "{\"testname\":\"testvalue\"}", + "UUID-blueprint"); + LoopTemplate template = new LoopTemplate(); + template.setName("templateName"); + loopTest.setLoopTemplate(template); + MicroServicePolicy microServicePolicy = getMicroServicePolicy("configPolicyTest", "", + "{\"configtype\":\"json\"}", "tosca_definitions_version: tosca_simple_yaml_1_0_0", + "{\"param1\":\"value1\"}", true); + MicroServicePolicy microServicePolicy2 = getMicroServicePolicy("configPolicyTest2", "", + "{\"configtype\":\"json\"}", "tosca_definitions_version: tosca_simple_yaml_1_0_0", + "{\"param1\":\"value1\"}", true); + loopTest.addMicroServicePolicy(microServicePolicy); + loopTest.addMicroServicePolicy(microServicePolicy2); + loopService.saveOrUpdateLoop(loopTest); + assertThat(loopTest.getComponents().size()).isEqualTo(3); + assertThat(loopTest.getComponent("DCAE")).isNull(); + assertThat(loopTest.getComponent("DCAE_configPolicyTest")).isNotNull(); + assertThat(loopTest.getComponent("DCAE_configPolicyTest2")).isNotNull(); + assertThat(loopTest.getComponent("POLICY")).isNotNull(); + Exchange myCamelExchange = ExchangeBuilder.anExchange(camelContext).withProperty("loopObject", loopTest) + .build(); + + camelContext.createProducerTemplate().send("direct:update-dcae-status-for-loop", myCamelExchange); + + assertThat(loopTest.getComponent("DCAE_configPolicyTest").getState().getStateName()) + .isEqualTo("BLUEPRINT_DEPLOYED"); + assertThat(loopTest.getComponent("DCAE_configPolicyTest2").getState().getStateName()) + .isEqualTo("BLUEPRINT_DEPLOYED"); + + Loop loopAfterTest = loopService.getLoop("ControlLoopTest"); + assertThat(loopAfterTest.getComponents().size()).isEqualTo(3); + assertThat(loopAfterTest.getComponent("DCAE")).isNull(); + assertThat(loopAfterTest.getComponent("POLICY")).isNotNull(); + assertThat(loopTest.getComponent("DCAE_configPolicyTest")).isNotNull(); + assertThat(loopTest.getComponent("DCAE_configPolicyTest2")).isNotNull(); + } + private Loop createLoop(String name, String svgRepresentation, String blueprint, String globalPropertiesJson, String dcaeBlueprintId) throws JsonSyntaxException, IOException { Loop loop = new Loop(name, svgRepresentation); diff --git a/src/test/java/org/onap/clamp/loop/LoopControllerTestItCase.java b/src/test/java/org/onap/clamp/loop/LoopControllerTestItCase.java index ad37bcc88..f1e5c0927 100644 --- a/src/test/java/org/onap/clamp/loop/LoopControllerTestItCase.java +++ b/src/test/java/org/onap/clamp/loop/LoopControllerTestItCase.java @@ -39,6 +39,7 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.onap.clamp.clds.Application; import org.onap.clamp.clds.util.JsonUtils; +import org.onap.clamp.loop.template.LoopTemplate; import org.onap.clamp.policy.microservice.MicroServicePolicy; import org.onap.clamp.policy.microservice.MicroServicePolicyService; import org.onap.clamp.policy.operational.OperationalPolicy; @@ -68,6 +69,9 @@ public class LoopControllerTestItCase { private void saveTestLoopToDb() { Loop testLoop = createTestLoop(EXAMPLE_LOOP_NAME, "blueprint", "representation"); testLoop.setGlobalPropertiesJson(JsonUtils.GSON.fromJson(EXAMPLE_JSON, JsonObject.class)); + LoopTemplate template = new LoopTemplate(); + template.setName("testTemplate"); + testLoop.setLoopTemplate(template); loopService.saveOrUpdateLoop(testLoop); } diff --git a/src/test/java/org/onap/clamp/loop/LoopServiceTestItCase.java b/src/test/java/org/onap/clamp/loop/LoopServiceTestItCase.java index 615826eda..8089bf1a8 100644 --- a/src/test/java/org/onap/clamp/loop/LoopServiceTestItCase.java +++ b/src/test/java/org/onap/clamp/loop/LoopServiceTestItCase.java @@ -40,6 +40,7 @@ import org.onap.clamp.clds.util.JsonUtils; import org.onap.clamp.loop.log.LogType; import org.onap.clamp.loop.log.LoopLog; import org.onap.clamp.loop.log.LoopLogService; +import org.onap.clamp.loop.template.LoopTemplate; import org.onap.clamp.policy.microservice.MicroServicePolicy; import org.onap.clamp.policy.microservice.MicroServicePolicyService; import org.onap.clamp.policy.operational.OperationalPolicy; @@ -175,6 +176,9 @@ public class LoopServiceTestItCase { private void saveTestLoopToDb() { Loop testLoop = createTestLoop(EXAMPLE_LOOP_NAME, "blueprint", "representation"); testLoop.setGlobalPropertiesJson(JsonUtils.GSON.fromJson(EXAMPLE_JSON, JsonObject.class)); + LoopTemplate template = new LoopTemplate(); + template.setName("testTemplate"); + testLoop.setLoopTemplate(template); loopService.saveOrUpdateLoop(testLoop); } @@ -296,6 +300,9 @@ public class LoopServiceTestItCase { // Add log Loop loop = loopsRepository.findById(EXAMPLE_LOOP_NAME).orElse(null); loop.addLog(new LoopLog("test", LogType.INFO, "CLAMP", loop)); + LoopTemplate template = new LoopTemplate(); + template.setName("testTemplate"); + loop.setLoopTemplate(template); loop = loopService.saveOrUpdateLoop(loop); // Add op policy OperationalPolicy operationalPolicy = new OperationalPolicy("opPolicy", null, diff --git a/src/test/java/org/onap/clamp/loop/PolicyModelServiceItCase.java b/src/test/java/org/onap/clamp/loop/PolicyModelServiceItCase.java index f8c1d8662..ce1181d33 100644 --- a/src/test/java/org/onap/clamp/loop/PolicyModelServiceItCase.java +++ b/src/test/java/org/onap/clamp/loop/PolicyModelServiceItCase.java @@ -28,6 +28,7 @@ import static org.assertj.core.api.Assertions.assertThat; import java.util.List; import java.util.SortedSet; import java.util.TreeSet; +import java.util.stream.Collectors; import javax.transaction.Transactional; @@ -52,11 +53,13 @@ public class PolicyModelServiceItCase { @Autowired PolicyModelsRepository policyModelsRepository; - private static final String POLICY_MODEL_TYPE_1 = "org.onap.test"; + private static final String POLICY_MODEL_TYPE_1 = "org.onap.testos"; private static final String POLICY_MODEL_TYPE_1_VERSION_1 = "1.0.0"; - private static final String POLICY_MODEL_TYPE_2 = "org.onap.test2"; + private static final String POLICY_MODEL_TYPE_2 = "org.onap.testos2"; + private static final String POLICY_MODEL_TYPE_3 = "org.onap.testos3"; private static final String POLICY_MODEL_TYPE_2_VERSION_1 = "1.0.0"; + private static final String POLICY_MODEL_TYPE_3_VERSION_1 = "1.0.0"; private static final String POLICY_MODEL_TYPE_2_VERSION_2 = "2.0.0"; private PolicyModel getPolicyModel(String policyType, String policyModelTosca, String version, String policyAcronym, @@ -150,9 +153,17 @@ public class PolicyModelServiceItCase { PolicyModel policyModel2 = getPolicyModel(POLICY_MODEL_TYPE_2, "yaml", POLICY_MODEL_TYPE_2_VERSION_2, "TEST", "VARIANT", "user"); policyModelsService.saveOrUpdatePolicyModel(policyModel2); + PolicyModel policyModel3 = getPolicyModel(POLICY_MODEL_TYPE_3, "yaml", POLICY_MODEL_TYPE_3_VERSION_1, "TEST", + "VARIANT", "user"); + policyModelsService.saveOrUpdatePolicyModel(policyModel3); SortedSet<PolicyModel> sortedSet = new TreeSet<>(); policyModelsService.getAllPolicyModels().forEach(sortedSet::add); - assertThat(sortedSet).contains(policyModel2, policyModel1); + List<PolicyModel> listToCheck = sortedSet.stream().filter( + policy -> policy.equals(policyModel3) || policy.equals(policyModel2) || policy.equals(policyModel1)) + .collect(Collectors.toList()); + assertThat(listToCheck.get(0)).isEqualByComparingTo(policyModel2); + assertThat(listToCheck.get(1)).isEqualByComparingTo(policyModel1); + assertThat(listToCheck.get(2)).isEqualByComparingTo(policyModel3); } } diff --git a/src/test/resources/application.properties b/src/test/resources/application.properties index bbade742c..17c42f560 100644 --- a/src/test/resources/application.properties +++ b/src/test/resources/application.properties @@ -116,7 +116,7 @@ spring.jpa.properties.hibernate.format_sql=true spring.jpa.properties.hibernate.use-new-id-generator-mappings=true # Whether to enable logging of SQL statements. -spring.jpa.show-sql=true +#spring.jpa.show-sql=true #Async Executor default Parameters async.core.pool.size=10 @@ -148,33 +148,6 @@ clamp.config.policy.pap.url=http4://localhost:${docker.http-cache.port.host} clamp.config.policy.pap.userName=healthcheck clamp.config.policy.pap.password=zb!XztG34 -clamp.config.policy.pdpUrl1=http://localhost:${docker.http-cache.port.host}/pdp/ , testpdp, alpha123 -clamp.config.policy.pdpUrl2=http://localhost:${docker.http-cache.port.host}/pdp/ , testpdp, alpha123 -clamp.config.policy.papUrl=http://localhost:${docker.http-cache.port.host}/pap/ , testpap, alpha123 -clamp.config.policy.notificationType=websocket -clamp.config.policy.notificationUebServers=localhost -clamp.config.policy.notificationTopic= -clamp.config.policy.clientId=python -# base64 encoding -clamp.config.policy.clientKey=dGVzdA== -#DEVL for development -#TEST for Test environments -#PROD for prod environments -clamp.config.policy.policyEnvironment=DEVL -# General Policy request properties -# -clamp.config.policy.onap.name=DCAE -clamp.config.policy.pdp.group=default -clamp.config.policy.ms.type=MicroService -clamp.config.policy.ms.policyNamePrefix=Config_MS_ -clamp.config.policy.op.policyNamePrefix=Config_BRMS_Param_ -clamp.config.policy.base.policyNamePrefix=Config_ -clamp.config.policy.op.type=BRMS_Param - -clamp.config.import.tosca.model=false -clamp.config.tosca.policyTypes=tca -clamp.config.tosca.filePath=/tmp/tosca-models - # TCA MicroService Policy request build properties # clamp.config.tca.policyid.prefix=DCAE.Config_ diff --git a/src/test/resources/clds/OperationalPolicyRepresentationBuilderTest.java b/src/test/resources/clds/OperationalPolicyRepresentationBuilderTest.java deleted file mode 100644 index 904525bea..000000000 --- a/src/test/resources/clds/OperationalPolicyRepresentationBuilderTest.java +++ /dev/null @@ -1,52 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP CLAMP - * ================================================================================ - * Copyright (C) 2019 AT&T Intellectual Property. All rights - * reserved. - * ================================================================================ - * 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. - * ============LICENSE_END============================================ - * =================================================================== - * - */ - -package org.onap.clamp.policy.operational; - -import static org.assertj.core.api.Assertions.assertThat; - -import com.google.gson.GsonBuilder; -import com.google.gson.JsonObject; - -import java.io.IOException; - -import org.junit.Test; -import org.onap.clamp.clds.util.ResourceFileUtil; -import org.skyscreamer.jsonassert.JSONAssert; - -public class OperationalPolicyRepresentationBuilderTest { - - @Test - public void testOperationalPolicyPayloadConstruction() throws IOException { - JsonObject jsonModel = new GsonBuilder().create() - .fromJson(ResourceFileUtil.getResourceAsString("tosca/model-properties.json"), JsonObject.class); - - JsonObject jsonSchema = OperationalPolicyRepresentationBuilder.generateOperationalPolicySchema(jsonModel); - - assertThat(jsonSchema).isNotNull(); - - JSONAssert.assertEquals(ResourceFileUtil.getResourceAsString("tosca/operational-policy-json-schema.json"), - new GsonBuilder().create().toJson(jsonSchema), false); - } - -} diff --git a/src/test/resources/clds/blueprint-parser-mapping.json b/src/test/resources/clds/blueprint-parser-mapping.json deleted file mode 100644 index a22e9fcf1..000000000 --- a/src/test/resources/clds/blueprint-parser-mapping.json +++ /dev/null @@ -1,18 +0,0 @@ -[ - { - "blueprintKey": "tca_", - "dcaeDeployable":"true", - "files": { - "bpmnXmlFilePath": "classpath:/clds/templates/bpmn/tca-template.xml", - "svgXmlFilePath": "classpath:/clds/templates/bpmn/tca-img.xml" - } - }, - { - "blueprintKey": "holmes_", - "dcaeDeployable":"false", - "files": { - "bpmnXmlFilePath": "classpath:/clds/templates/bpmn/holmes-template.xml", - "svgXmlFilePath": "classpath:/clds/templates/bpmn/holmes-img.xml" - } - } -] diff --git a/src/test/resources/clds/blueprint-with-microservice-chain.yaml b/src/test/resources/clds/blueprint-with-microservice-chain.yaml index fa2d72052..0e9e4bc8c 100644 --- a/src/test/resources/clds/blueprint-with-microservice-chain.yaml +++ b/src/test/resources/clds/blueprint-with-microservice-chain.yaml @@ -1,98 +1,202 @@ tosca_definitions_version: cloudify_dsl_1_3 +description: > + This blueprint deploys/manages the TCA module as a Docker container + imports: - http://www.getcloudify.org/spec/cloudify/3.4/types.yaml - - https://nexus.onap.org/service/local/repositories/raw/content/org.onap.dcaegen2.platform.plugins/R4/k8splugin/1.4.4/k8splugin_types.yaml + - https://nexus.onap.org/service/local/repositories/raw/content/org.onap.dcaegen2.platform.plugins/R4/k8splugin/1.4.12/k8splugin_types.yaml - https://nexus.onap.org/service/local/repositories/raw/content/org.onap.dcaegen2.platform.plugins/R4/dcaepolicyplugin/2.3.0/dcaepolicyplugin_types.yaml inputs: - first_app_docker_image: + aaiEnrichmentHost: + type: string + default: "aai.onap.svc.cluster.local" + aaiEnrichmentPort: + type: string + default: "8443" + enableAAIEnrichment: + type: string + default: true + dmaap_host: + type: string + default: message-router.onap.svc.cluster.local + dmaap_port: type: string - default: "image1" - second_app_docker_image: + default: "3904" + enableRedisCaching: type: string - default: "image2" - third_app_docker_image: + default: false + redisHosts: type: string - default: "image3" - dmaap_ip: + default: dcae-redis.onap.svc.cluster.local:6379 + tag_version: type: string - default: "message-router:3904" - dmaap_topic: + default: "nexus3.onap.org:10001/onap/org.onap.dcaegen2.deployments.tca-cdap-container:1.1.0-STAGING-latest" + consul_host: type: string - default: "/events/unauthenticated.DCAE_CL_OUTPUT" + default: consul-server.onap.svc.cluster.local + consul_port: + type: string + default: "8500" + cbs_host: + type: string + default: "config-binding-service.dcae.svc.cluster.local" + cbs_port: + type: string + default: "10000" policy_id: type: string - default: "policy_id" + default: "none" + external_port: + type: string + description: Kubernetes node port on which CDAPgui is exposed + default: "32012" + policy_model_id: + type: string + default: "onap.policies.monitoring.cdap.tca.hi.lo.app" + node_templates: - second_app: - type: dcae.nodes.ContainerizedServiceComponentUsingDmaap + first_app: + type: dcae.nodes.ContainerizedServiceComponent properties: - service_component_type: dcaegen2-analytics-tca - service_component_name_override: second_app - image: { get_input: second_app_docker_image } - policy_id: - policy_model_id: "type2" - interfaces: - cloudify.interfaces.lifecycle: - start: - inputs: - envs: - grpc_server.host: "first_app.onap" - dmaap_ip: {get_input: dmaap_ip} - dmapp_topic: {get_input: dmaap_topic} - policy_id: {get_input: policy_id} - ports: - - 8080:8080 + service_component_type: 'dcaegen2-analytics-tca' + application_config: {} + docker_config: {} + image: + get_input: tag_version + log_info: + log_directory: "/opt/app/TCAnalytics/logs" relationships: - - type: cloudify.relationships.connected_to - target: first_app + - target: tca_policy_1 + type: cloudify.relationships.depends_on + second_app: + type: dcae.nodes.ContainerizedServiceComponent + relationships: + - target: tca_policy_2 + type: cloudify.relationships.depends_on - type: clamp_node.relationships.gets_input_from target: first_app - first_app: - type: dcae.nodes.ContainerizedPlatformComponent properties: - name: first_app - dns_name: "first_app" - image: { get_input: first_app_docker_image } - container_port: 6565 - policy_id: - policy_model_id: "type1" + service_component_type: 'dcaegen2-analytics-tca' + application_config: {} + docker_config: {} + image: + get_input: tag_version + log_info: + log_directory: "/opt/app/TCAnalytics/logs" + application_config: + app_config: + appDescription: DCAE Analytics Threshold Crossing Alert Application + appName: dcae-tca + tcaAlertsAbatementTableName: TCAAlertsAbatementTable + tcaAlertsAbatementTableTTLSeconds: '1728000' + tcaSubscriberOutputStreamName: TCASubscriberOutputStream + tcaVESAlertsTableName: TCAVESAlertsTable + tcaVESAlertsTableTTLSeconds: '1728000' + tcaVESMessageStatusTableName: TCAVESMessageStatusTable + tcaVESMessageStatusTableTTLSeconds: '86400' + thresholdCalculatorFlowletInstances: '2' + app_preferences: + aaiEnrichmentHost: + get_input: aaiEnrichmentHost + aaiEnrichmentIgnoreSSLCertificateErrors: 'true' + aaiEnrichmentPortNumber: '8443' + aaiEnrichmentProtocol: https + aaiEnrichmentUserName: dcae@dcae.onap.org + aaiEnrichmentUserPassword: demo123456! + aaiVMEnrichmentAPIPath: /aai/v11/search/nodes-query + aaiVNFEnrichmentAPIPath: /aai/v11/network/generic-vnfs/generic-vnf + enableAAIEnrichment: + get_input: enableAAIEnrichment + enableRedisCaching: + get_input: enableRedisCaching + redisHosts: + get_input: redisHosts + enableAlertCEFFormat: 'false' + publisherContentType: application/json + publisherHostName: + get_input: dmaap_host + publisherHostPort: + get_input: dmaap_port + publisherMaxBatchSize: '1' + publisherMaxRecoveryQueueSize: '100000' + publisherPollingInterval: '20000' + publisherProtocol: http + publisherTopicName: unauthenticated.DCAE_CL_OUTPUT + subscriberConsumerGroup: OpenDCAE-c12 + subscriberConsumerId: c12 + subscriberContentType: application/json + subscriberHostName: + get_input: dmaap_host + subscriberHostPort: + get_input: dmaap_port + subscriberMessageLimit: '-1' + subscriberPollingInterval: '30000' + subscriberProtocol: http + subscriberTimeoutMS: '-1' + subscriberTopicName: unauthenticated.VES_MEASUREMENT_OUTPUT + tca_policy: '' + service_component_type: dcaegen2-analytics_tca interfaces: cloudify.interfaces.lifecycle: start: inputs: envs: - dmaap_ip: {get_input: dmaap_ip} - dmapp_topic: {get_input: dmaap_topic} - policy_id: {get_input: policy_id} + DMAAPHOST: + { get_input: dmaap_host } + DMAAPPORT: + { get_input: dmaap_port } + DMAAPPUBTOPIC: "unauthenticated.DCAE_CL_OUTPUT" + DMAAPSUBTOPIC: "unauthenticated.VES_MEASUREMENT_OUTPUT" + AAIHOST: + { get_input: aaiEnrichmentHost } + AAIPORT: + { get_input: aaiEnrichmentPort } + CONSUL_HOST: + { get_input: consul_host } + CONSUL_PORT: + { get_input: consul_port } + CBS_HOST: + { get_input: cbs_host } + CBS_PORT: + { get_input: cbs_port } + CONFIG_BINDING_SERVICE: "config_binding_service" ports: - - 8081:8081 + - concat: ["11011:", { get_input: external_port }] + third_app: + type: dcae.nodes.ContainerizedServiceComponent + properties: + service_component_type: 'dcaegen2-analytics-tca' + application_config: {} + docker_config: {} + image: + get_input: tag_version + log_info: + log_directory: "/opt/app/TCAnalytics/logs" relationships: - - type: cloudify.relationships.connected_to - target: third_app + - target: tca_policy_3 + type: cloudify.relationships.depends_on - type: clamp_node.relationships.gets_input_from - target: third_app - - third_app: - type: dcae.nodes.ContainerizedPlatformComponent + target: second_app + tca_policy_1: + type: dcae.nodes.policy properties: - name: third_app - dns_name: "third_app" - image: { get_input: third_app_docker_image } - container_port: 443 policy_id: - policy_model_id: "type3" - interfaces: - cloudify.interfaces.lifecycle: - start: - inputs: - envs: - dmaap_ip: {get_input: dmaap_ip} - dmapp_topic: {get_input: dmaap_topic} - policy_id: {get_input: policy_id} - ports: - - 8082:8082 - tca_policy: + get_input: policy_id + policy_model_id: + get_input: policy_model_id + tca_policy_2: type: dcae.nodes.policy properties: - policy_id: { get_input: policy_id }
\ No newline at end of file + policy_id: + get_input: policy_id + policy_model_id: + get_input: policy_model_id + + tca_policy_3: + type: dcae.nodes.policy + properties: + policy_id: + get_input: policy_id + policy_model_id: + get_input: policy_model_id diff --git a/src/test/resources/clds/camel/rest/clamp-api-v2.xml b/src/test/resources/clds/camel/rest/clamp-api-v2.xml index cf99625ee..a0a3eb104 100644 --- a/src/test/resources/clds/camel/rest/clamp-api-v2.xml +++ b/src/test/resources/clds/camel/rest/clamp-api-v2.xml @@ -238,6 +238,48 @@ </route> </put> <put + uri="/v2/loop/refreshOpPolicyJsonSchema/{loopName}" + outType="org.onap.clamp.loop.Loop" + produces="application/json"> + <route> + <removeHeaders + pattern="*" + excludePattern="loopName" /> + <doTry> + <log + loggingLevel="INFO" + message="Refresh Operational Policy UI for loop: ${header.loopName}" /> + <to + uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=startLog(*, 'REFRESH OP Policy UI request')" /> + <to + uri="bean:org.onap.clamp.authorization.AuthorizationController?method=authorize(*,'cl','','update')" /> + <to uri="direct:load-loop" /> + <to + uri="bean:org.onap.clamp.loop.LoopController?method=refreshOpPolicyJsonRepresentation(${header.loopName})" /> + <log + loggingLevel="INFO" + message="REFRESH request successfully executed for loop: ${header.loopName}" /> + <to + uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLog('REFRESH request successfully executed','INFO',${exchangeProperty[loopObject]})" /> + <to + uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=endLog()" /> + <doCatch> + <exception>java.lang.Exception</exception> + <handled> + <constant>false</constant> + </handled> + <to + uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=errorLog()" /> + <log + loggingLevel="ERROR" + message="REFRESH request failed for loop: ${header.loopName}" /> + <to + uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLog('REFRESH request failed, Error reported: ${exception} - Body: ${exception.responseBody}','ERROR',${exchangeProperty[loopObject]})" /> + </doCatch> + </doTry> + </route> + </put> + <put uri="/v2/loop/undeploy/{loopName}" outType="org.onap.clamp.loop.Loop" produces="application/json"> diff --git a/src/test/resources/clds/camel/routes/dcae-flows.xml b/src/test/resources/clds/camel/routes/dcae-flows.xml index 48cda7a05..8088c2a40 100644 --- a/src/test/resources/clds/camel/routes/dcae-flows.xml +++ b/src/test/resources/clds/camel/routes/dcae-flows.xml @@ -3,12 +3,12 @@ <from uri="direct:deploy-loop" /> <choice> <when> - <simple>${exchangeProperty['loopObject'].getLoopTemplate().getBlueprint()} != null + <simple>${exchangeProperty['loopObject'].getLoopTemplate().getUniqueBlueprint()} == true </simple> <to uri="direct:deploy-loop-single-blueprint" /> </when> <when> - <simple>${exchangeProperty['loopObject'].getLoopTemplate().getBlueprint()} == null + <simple>${exchangeProperty['loopObject'].getLoopTemplate().getUniqueBlueprint()} == false </simple> <to uri="direct:deploy-loop-multi-blueprint" /> </when> @@ -74,6 +74,8 @@ </setProperty> <to uri="bean:org.onap.clamp.policy.microservice.MicroServicePolicyService?method=updateDcaeDeploymentFields(${exchangeProperty[microServicePolicy]},${exchangeProperty[dcaeDeploymentId]},${exchangeProperty[dcaeStatusUrl]})" /> + <to + uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLogForComponent('Deploy for the micro service: ${exchangeProperty[microServicePolicy].getName()} - ${header.CamelHttpResponseCode} : ${header.CamelHttpResponseText}','INFO','DCAE',${exchangeProperty[loopObject]})" /> </split> <doCatch> <exception>java.lang.Exception</exception> @@ -170,12 +172,12 @@ <from uri="direct:undeploy-loop" /> <choice> <when> - <simple>${exchangeProperty['loopObject'].getLoopTemplate().getBlueprint()} != null + <simple>${exchangeProperty['loopObject'].getLoopTemplate().getUniqueBlueprint()} == true </simple> <to uri="direct:undeploy-loop-single-blueprint" /> </when> <when> - <simple>${exchangeProperty['loopObject'].getLoopTemplate().getBlueprint()} == null + <simple>${exchangeProperty['loopObject'].getLoopTemplate().getUniqueBlueprint()} == false </simple> <to uri="direct:undeploy-loop-multi-blueprint" /> </when> @@ -238,12 +240,14 @@ </setProperty> <to uri="bean:org.onap.clamp.policy.microservice.MicroServicePolicyService?method=updateDcaeDeploymentFields(${exchangeProperty[microServicePolicy]},${exchangeProperty[microServicePolicy].getDcaeDeploymentId()},${exchangeProperty[dcaeStatusUrl]})" /> + <to + uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLogForComponent('Undeploy for the micro service: ${exchangeProperty[microServicePolicy].getName()} - ${header.CamelHttpResponseCode} : ${header.CamelHttpResponseText}','INFO','DCAE',${exchangeProperty[loopObject]})" /> </when> <otherwise> <log loggingLevel="WARNING" message="Cannot Undeploy for the micro service: ${exchangeProperty[microServicePolicy].getName()}, the Deployment ID does not exist !" /> <to - uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLog('Cannot Undeploy for the micro service: ${exchangeProperty[microServicePolicy].getName()}, the Deployment ID does not exist !','WARNING',${exchangeProperty[loopObject]})" /> + uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLogForComponent('Cannot Undeploy for the micro service: ${exchangeProperty[microServicePolicy].getName()}, the Deployment ID does not exist !','WARNING','DCAE',${exchangeProperty[loopObject]})" /> </otherwise> </choice> </split> @@ -344,7 +348,7 @@ <route id="get-dcae-deployment-status"> <from uri="direct:get-dcae-deployment-status" /> <log loggingLevel="INFO" - message="Getting DCAE deployment status for loop: ${exchangeProperty[loopObject].getName()}" /> + message="Getting DCAE deployment status for loop: ${exchangeProperty[loopObject].getName()} - ${exchangeProperty[dcaeComponent].getComponentName()}" /> <to uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeLog('DCAE', 'Getting Deployment status')" /> <doTry> @@ -364,9 +368,9 @@ </simple> </setHeader> <log loggingLevel="INFO" - message="Endpoint to query Closed Loop status: ${exchangeProperty[loopObject].getDcaeDeploymentStatusUrl()}"></log> + message="Endpoint to query Closed Loop status: ${exchangeProperty[getStatusUrl]}"></log> <toD - uri="${exchangeProperty[loopObject].getDcaeDeploymentStatusUrl()}?bridgeEndpoint=true&useSystemProperties=true&throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&authMethod=Basic&authUsername={{clamp.config.dcae.deployment.userName}}&authPassword={{clamp.config.dcae.deployment.password}}&connectionTimeToLive=5000&httpClient.connectTimeout=10000&httpClient.socketTimeout=30000&authenticationPreemptive=true&connectionClose=true" /> + uri="${exchangeProperty[getStatusUrl]}?bridgeEndpoint=true&useSystemProperties=true&throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&authMethod=Basic&authUsername={{clamp.config.dcae.deployment.userName}}&authPassword={{clamp.config.dcae.deployment.password}}&connectionTimeToLive=5000&httpClient.connectTimeout=10000&httpClient.socketTimeout=30000&authenticationPreemptive=true&connectionClose=true" /> <doFinally> <to uri="direct:reset-raise-http-exception-flag" /> <to @@ -448,9 +452,9 @@ <split> <simple>${exchangeProperty[dcaeResponseList]}</simple> <convertBodyTo type="org.onap.clamp.clds.model.dcae.DcaeInventoryResponse" /> - <setProperty propertyName="dcaeResponse"> - <simple>${body}</simple> - </setProperty> + <setProperty propertyName="dcaeResponse"> + <simple>${body}</simple> + </setProperty> <to uri="bean:org.onap.clamp.clds.model.dcae.DcaeInventoryCache?method=addDcaeInventoryResponse(${exchangeProperty[dcaeResponse]})" /> </split> <doFinally> diff --git a/src/test/resources/clds/camel/routes/loop-flows.xml b/src/test/resources/clds/camel/routes/loop-flows.xml index 036e8efc8..c4e9fee6d 100644 --- a/src/test/resources/clds/camel/routes/loop-flows.xml +++ b/src/test/resources/clds/camel/routes/loop-flows.xml @@ -17,7 +17,6 @@ <stop /> </when> </route> - <route id="update-policy-status-for-loop"> <from uri="direct:update-policy-status-for-loop" /> <setProperty propertyName="policyComponent"> @@ -109,37 +108,84 @@ <from uri="direct:update-dcae-status-for-loop" /> <log loggingLevel="INFO" message="Updating DCAE status for loop: ${exchangeProperty[loopObject].getName()}" /> - <setProperty propertyName="dcaeComponent"> - <simple>${exchangeProperty[loopObject].getComponent('DCAE')}</simple> - </setProperty> - <when> - <simple>${exchangeProperty[loopObject].getDcaeDeploymentStatusUrl()} - != null - </simple> - <setProperty propertyName="raiseHttpExceptionFlag"> - <simple resultType="java.lang.Boolean">false</simple> - </setProperty> - <to uri="direct:get-dcae-deployment-status" /> + <choice> <when> - <simple> ${header.CamelHttpResponseCode} == 200 </simple> - <convertBodyTo type="java.lang.String" /> - <setProperty propertyName="dcaeResponse"> - <method ref="org.onap.clamp.loop.components.external.DcaeComponent" - method="convertDcaeResponse(${body})" /> + <simple>${exchangeProperty['loopObject'].getLoopTemplate().getUniqueBlueprint()} == true + </simple> + <setProperty propertyName="dcaeComponent"> + <simple>${exchangeProperty[loopObject].getComponent('DCAE')}</simple> + </setProperty> + <when> + <simple>${exchangeProperty[loopObject].getDcaeDeploymentStatusUrl()} != null + </simple> + <setProperty propertyName="getStatusUrl"> + <simple>${exchangeProperty[loopObject].getDcaeDeploymentStatusUrl()}</simple> + </setProperty> + <setProperty propertyName="raiseHttpExceptionFlag"> + <simple resultType="java.lang.Boolean">false</simple> + </setProperty> + <to uri="direct:get-dcae-deployment-status" /> + <when> + <simple> ${header.CamelHttpResponseCode} == 200 </simple> + <convertBodyTo type="java.lang.String" /> + <setProperty propertyName="dcaeResponse"> + <method ref="org.onap.clamp.loop.components.external.DcaeComponent" + method="convertDcaeResponse(${body})" /> + </setProperty> + </when> + </when> + <setProperty propertyName="dcaeState"> + <simple> ${exchangeProperty[dcaeComponent].computeState(*)} + </simple> </setProperty> + <log loggingLevel="INFO" + message="DCAE state set to: ${exchangeProperty[dcaeState].getStateName()} - DCAE message: ${exchangeProperty[dcaeResponse].getError()}" /> + <to + uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLogForComponent('DCAE state set to: ${exchangeProperty[dcaeState].getStateName()} - message: ${exchangeProperty[dcaeResponse].getError()}','INFO','DCAE',${exchangeProperty[loopObject]})" /> </when> - </when> - - <setProperty propertyName="dcaeState"> - <simple> ${exchangeProperty[dcaeComponent].computeState(*)} - </simple> - </setProperty> - <log loggingLevel="INFO" - message="DCAE state set to: ${exchangeProperty[dcaeState].getStateName()} - DCAE message: ${exchangeProperty[dcaeResponse].getError()}" /> - <to - uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLogForComponent('DCAE state set to: ${exchangeProperty[dcaeState].getStateName()} - message: ${exchangeProperty[dcaeResponse].getError()}','INFO','DCAE',${exchangeProperty[loopObject]})" /> - - </route> + <when> + <simple>${exchangeProperty['loopObject'].getLoopTemplate().getUniqueBlueprint()} == false + </simple> + <split> + <simple>${exchangeProperty[loopObject].getMicroServicePolicies()} + </simple> + <setProperty propertyName="microServicePolicy"> + <simple>${body}</simple> + </setProperty> + <setProperty propertyName="dcaeComponent"> + <simple>${exchangeProperty[loopObject].getComponent('DCAE_' + ${exchangeProperty[microServicePolicy].getName())}</simple> + </setProperty> + <when> + <simple>${exchangeProperty[microServicePolicy].getDcaeDeploymentStatusUrl()} != null + </simple> + <setProperty propertyName="getStatusUrl"> + <simple>${exchangeProperty[microServicePolicy].getDcaeDeploymentStatusUrl()}</simple> + </setProperty> + <setProperty propertyName="raiseHttpExceptionFlag"> + <simple resultType="java.lang.Boolean">false</simple> + </setProperty> + <to uri="direct:get-dcae-deployment-status" /> + <when> + <simple> ${header.CamelHttpResponseCode} == 200 </simple> + <convertBodyTo type="java.lang.String" /> + <setProperty propertyName="dcaeResponse"> + <method ref="org.onap.clamp.loop.components.external.DcaeComponent" + method="convertDcaeResponse(${body})" /> + </setProperty> + </when> + </when> + <setProperty propertyName="dcaeState"> + <simple> ${exchangeProperty[dcaeComponent].computeState(*)} + </simple> + </setProperty> + <log loggingLevel="INFO" + message="DCAE state set to: ${exchangeProperty[dcaeState].getStateName()} - DCAE message: ${exchangeProperty[dcaeResponse].getError()}" /> + <to + uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLogForComponent('DCAE state set to: ${exchangeProperty[dcaeState].getStateName()} - message: ${exchangeProperty[dcaeResponse].getError()}','INFO','DCAE',${exchangeProperty[microServicePolicy]})" /> + </split>> + </when> + </choice> + </route> <route id="direct:update-loop-state"> <from uri="direct:update-loop-state" /> <log loggingLevel="INFO" diff --git a/src/test/resources/clds/camel/routes/policy-flows.xml b/src/test/resources/clds/camel/routes/policy-flows.xml index 75ac66c6c..c28e45435 100644 --- a/src/test/resources/clds/camel/routes/policy-flows.xml +++ b/src/test/resources/clds/camel/routes/policy-flows.xml @@ -1,520 +1,587 @@ <routes xmlns="http://camel.apache.org/schema/spring"> - <route id="verify-one-policy"> - <from uri="direct:verify-one-policy" /> - <setProperty propertyName="raiseHttpExceptionFlag"> - <simple resultType="java.lang.Boolean">false</simple> - </setProperty> - <to uri="direct:get-policy" /> - <when> - <simple> ${header.CamelHttpResponseCode} != 200 </simple> - <setProperty propertyName="policyFound"> - <simple resultType="java.lang.Boolean">false</simple> - </setProperty> - <log loggingLevel="WARN" - message="At least one policy has not been found on policy engine: ${exchangeProperty[policyName]}" /> - </when> - <setProperty propertyName="raiseHttpExceptionFlag"> - <simple resultType="java.lang.Boolean">false</simple> - </setProperty> - <to uri="direct:get-deployment-policy" /> - <when> - <simple> ${header.CamelHttpResponseCode} != 200 </simple> - <setProperty propertyName="policyDeployed"> - <simple resultType="java.lang.Boolean">false</simple> - </setProperty> - <log loggingLevel="WARN" - message="At least one policy has not been deployed on policy engine: ${exchangeProperty[policyName]}" /> - </when> - <setProperty propertyName="newPolicyState"> - <simple>${exchangeProperty[policyComponent].computeState(*)}</simple> - </setProperty> - </route> - - <route id="get-policy"> - <from uri="direct:get-policy" /> - <doTry> - <log loggingLevel="INFO" - message="Getting Policy: ${exchangeProperty[policyName]}" /> - <to - uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeLog('Policy', 'Get Policy')" /> - <setHeader headerName="CamelHttpMethod"> - <constant>GET</constant> - </setHeader> - <setHeader headerName="X-ONAP-RequestID"> - <simple>${exchangeProperty[X-ONAP-RequestID]} - </simple> - </setHeader> - <setHeader headerName="X-ONAP-InvocationID"> - <simple>${exchangeProperty[X-ONAP-InvocationID]} - </simple> - </setHeader> - <setHeader headerName="X-ONAP-PartnerName"> - <simple>${exchangeProperty[X-ONAP-PartnerName]} - </simple> - </setHeader> - <log loggingLevel="INFO" - message="Endpoint to get policy: {{clamp.config.policy.api.url}}/policy/api/v1/policytypes/${exchangeProperty[policyType]}/versions/1.0.0/policies/${exchangeProperty[policyName]}/versions/${exchangeProperty[policyVersion]}"></log> - <toD - uri="{{clamp.config.policy.api.url}}/policy/api/v1/policytypes/${exchangeProperty[policyType]}/versions/1.0.0/policies/${exchangeProperty[policyName]}/versions/${exchangeProperty[policyVersion]}?bridgeEndpoint=true&useSystemProperties=true&throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&authMethod=Basic&authUsername={{clamp.config.policy.api.userName}}&authPassword={{clamp.config.policy.api.password}}&connectionTimeToLive=5000&httpClient.connectTimeout=10000&httpClient.socketTimeout=20000&authenticationPreemptive=true&connectionClose=true" /> - <doFinally> - <to uri="direct:reset-raise-http-exception-flag" /> - <to - uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()" /> - <setProperty propertyName="logMessage"> - <simple>${exchangeProperty[policyName]} GET - Policy status - </simple> - </setProperty> - <setProperty propertyName="logComponent"> - <simple>POLICY</simple> - </setProperty> - <to uri="direct:dump-loop-log-http-response" /> - </doFinally> - </doTry> - </route> - - <route id="get-deployment-policy"> - <from uri="direct:get-deployment-policy" /> - <doTry> - <log loggingLevel="INFO" - message="Getting the policy deployment in PDP: ${exchangeProperty[policyName]}" /> - <to - uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeLog('Policy', 'Getting the policy deployment in PDP')" /> - <setHeader headerName="CamelHttpMethod"> - <constant>GET</constant> - </setHeader> - <setHeader headerName="X-ONAP-RequestID"> - <simple>${exchangeProperty[X-ONAP-RequestID]} - </simple> - </setHeader> - <setHeader headerName="X-ONAP-InvocationID"> - <simple>${exchangeProperty[X-ONAP-InvocationID]} - </simple> - </setHeader> - <setHeader headerName="X-ONAP-PartnerName"> - <simple>${exchangeProperty[X-ONAP-PartnerName]} - </simple> - </setHeader> - <log loggingLevel="INFO" - message="Endpoint to get policy deployment status: {{clamp.config.policy.api.url}}/policy/api/v1/policytypes/${exchangeProperty[policyType]}/versions/1.0.0/policies/${exchangeProperty[policyName]}/versions/deployed"></log> - <toD - uri="{{clamp.config.policy.api.url}}/policy/api/v1/policytypes/${exchangeProperty[policyType]}/versions/1.0.0/policies/${exchangeProperty[policyName]}/versions/deployed?bridgeEndpoint=true&useSystemProperties=true&throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&authMethod=Basic&authUsername={{clamp.config.policy.api.userName}}&authPassword={{clamp.config.policy.api.password}}&connectionTimeToLive=5000&httpClient.connectTimeout=10000&httpClient.socketTimeout=20000&authenticationPreemptive=true&connectionClose=true" /> - <doFinally> - <to uri="direct:reset-raise-http-exception-flag" /> - <to - uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()" /> - <setProperty propertyName="logMessage"> - <simple>${exchangeProperty[policyName]} GET Policy deployment - status - </simple> - </setProperty> - <setProperty propertyName="logComponent"> - <simple>POLICY</simple> + <route id="verify-one-policy"> + <from uri="direct:verify-one-policy"/> + <setProperty propertyName="raiseHttpExceptionFlag"> + <simple resultType="java.lang.Boolean">false</simple> </setProperty> - <to uri="direct:dump-loop-log-http-response" /> - </doFinally> - </doTry> - </route> - <route id="create-micro-service-policy"> - <from uri="direct:create-micro-service-policy" /> - <doTry> - <log loggingLevel="INFO" - message="Creating Micro Service Policy: ${exchangeProperty[microServicePolicy].getName()}" /> - <to - uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeLog('Policy', 'Create Micro Service Policy')" /> - <setBody> - <simple>${exchangeProperty[microServicePolicy].createPolicyPayload()} - </simple> - </setBody> - <setHeader headerName="CamelHttpMethod"> - <constant>POST</constant> - </setHeader> - <setHeader headerName="Content-Type"> - <constant>application/json</constant> - </setHeader> - <setHeader headerName="X-ONAP-RequestID"> - <simple>${exchangeProperty[X-ONAP-RequestID]} - </simple> - </setHeader> - <setHeader headerName="X-ONAP-InvocationID"> - <simple>${exchangeProperty[X-ONAP-InvocationID]} - </simple> - </setHeader> - <setHeader headerName="X-ONAP-PartnerName"> - <simple>${exchangeProperty[X-ONAP-PartnerName]} - </simple> - </setHeader> - <log loggingLevel="INFO" - message="Endpoint to create microservice policy: {{clamp.config.policy.api.url}}/policy/api/v1/policytypes/${exchangeProperty[microServicePolicy].getModelType()}/versions/1.0.0/policies"></log> - <toD - uri="{{clamp.config.policy.api.url}}/policy/api/v1/policytypes/${exchangeProperty[microServicePolicy].getModelType()}/versions/1.0.0/policies?bridgeEndpoint=true&useSystemProperties=true&mapHttpMessageHeaders=false&throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&authUsername={{clamp.config.policy.api.userName}}&authPassword={{clamp.config.policy.api.password}}&connectionTimeToLive=5000&httpClient.connectTimeout=10000&httpClient.socketTimeout=20000&authenticationPreemptive=true&connectionClose=true" /> - <doFinally> - <to uri="direct:reset-raise-http-exception-flag" /> - <to - uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()" /> - <setProperty propertyName="logMessage"> - <simple>${exchangeProperty[microServicePolicy].getName()} creation - status - </simple> + <to uri="direct:get-policy"/> + <when> + <simple> ${header.CamelHttpResponseCode} != 200 </simple> + <setProperty propertyName="policyFound"> + <simple resultType="java.lang.Boolean">false</simple> + </setProperty> + <log loggingLevel="WARN" + message="At least one policy has not been found on policy engine: ${exchangeProperty[policyName]}"/> + </when> + <setProperty propertyName="raiseHttpExceptionFlag"> + <simple resultType="java.lang.Boolean">false</simple> </setProperty> - <setProperty propertyName="logComponent"> - <simple>POLICY</simple> + <to uri="direct:get-deployment-policy"/> + <when> + <simple> ${header.CamelHttpResponseCode} != 200 </simple> + <setProperty propertyName="policyDeployed"> + <simple resultType="java.lang.Boolean">false</simple> + </setProperty> + <log loggingLevel="WARN" + message="At least one policy has not been deployed on policy engine: ${exchangeProperty[policyName]}"/> + </when> + <setProperty propertyName="newPolicyState"> + <simple>${exchangeProperty[policyComponent].computeState(*)}</simple> </setProperty> - <to uri="direct:dump-loop-log-http-response" /> - </doFinally> - </doTry> - </route> + </route> - <route id="delete-micro-service-policy"> - <from uri="direct:delete-micro-service-policy" /> - <doTry> - <log loggingLevel="INFO" - message="Deleting Micro Service Policy: ${exchangeProperty[microServicePolicy].getName()}" /> - <to - uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeLog('Policy', 'Delete Micro Service Policy')" /> - <setBody> - <constant>null</constant> - </setBody> - <setHeader headerName="CamelHttpMethod"> - <constant>DELETE</constant> - </setHeader> - <setHeader headerName="X-ONAP-RequestID"> - <simple>${exchangeProperty[X-ONAP-RequestID]} - </simple> - </setHeader> - <setHeader headerName="X-ONAP-InvocationID"> - <simple>${exchangeProperty[X-ONAP-InvocationID]} - </simple> - </setHeader> - <setHeader headerName="X-ONAP-PartnerName"> - <simple>${exchangeProperty[X-ONAP-PartnerName]} - </simple> - </setHeader> - <log loggingLevel="INFO" - message="Endpoint to delete microservice policy: {{clamp.config.policy.api.url}}/policy/api/v1/policytypes/${exchangeProperty[microServicePolicy].getModelType()}/versions/1.0.0/policies/${exchangeProperty[microServicePolicy].getName()}/versions/1.0.0"></log> - <toD - uri="{{clamp.config.policy.api.url}}/policy/api/v1/policytypes/${exchangeProperty[microServicePolicy].getModelType()}/versions/1.0.0/policies/${exchangeProperty[microServicePolicy].getName()}/versions/1.0.0?bridgeEndpoint=true&useSystemProperties=true&mapHttpMessageHeaders=false&throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&deleteWithBody=false&mapHttpMessageBody=false&mapHttpMessageFormUrlEncodedBody=false&authUsername={{clamp.config.policy.api.userName}}&authPassword={{clamp.config.policy.api.password}}&connectionTimeToLive=5000&httpClient.connectTimeout=10000&httpClient.socketTimeout=20000&authenticationPreemptive=true&connectionClose=true" /> + <route id="get-policy"> + <from uri="direct:get-policy"/> + <doTry> + <log loggingLevel="INFO" + message="Getting Policy: ${exchangeProperty[policyName]}"/> + <to + uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeLog('Policy', 'Get Policy')"/> + <setHeader headerName="CamelHttpMethod"> + <constant>GET</constant> + </setHeader> + <setHeader headerName="X-ONAP-RequestID"> + <simple>${exchangeProperty[X-ONAP-RequestID]} + </simple> + </setHeader> + <setHeader headerName="X-ONAP-InvocationID"> + <simple>${exchangeProperty[X-ONAP-InvocationID]} + </simple> + </setHeader> + <setHeader headerName="X-ONAP-PartnerName"> + <simple>${exchangeProperty[X-ONAP-PartnerName]} + </simple> + </setHeader> + <log loggingLevel="INFO" + message="Endpoint to get policy: {{clamp.config.policy.api.url}}/policy/api/v1/policytypes/${exchangeProperty[policyType]}/versions/1.0.0/policies/${exchangeProperty[policyName]}/versions/${exchangeProperty[policyVersion]}"></log> + <toD + uri="{{clamp.config.policy.api.url}}/policy/api/v1/policytypes/${exchangeProperty[policyType]}/versions/1.0.0/policies/${exchangeProperty[policyName]}/versions/${exchangeProperty[policyVersion]}?bridgeEndpoint=true&useSystemProperties=true&throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&authMethod=Basic&authUsername={{clamp.config.policy.api.userName}}&authPassword={{clamp.config.policy.api.password}}&connectionTimeToLive=5000&httpClient.connectTimeout=10000&httpClient.socketTimeout=20000&authenticationPreemptive=true&connectionClose=true"/> + <doFinally> + <to uri="direct:reset-raise-http-exception-flag"/> + <to + uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()"/> + <setProperty propertyName="logMessage"> + <simple>${exchangeProperty[policyName]} GET + Policy status + </simple> + </setProperty> + <setProperty propertyName="logComponent"> + <simple>POLICY</simple> + </setProperty> + <to uri="direct:dump-loop-log-http-response"/> + </doFinally> + </doTry> + </route> - <doFinally> - <to uri="direct:reset-raise-http-exception-flag" /> - <to - uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()" /> - <setProperty propertyName="logMessage"> - <simple>${exchangeProperty[microServicePolicy].getName()} removal - status - </simple> - </setProperty> - <setProperty propertyName="logComponent"> - <simple>POLICY</simple> - </setProperty> - <to uri="direct:dump-loop-log-http-response" /> - </doFinally> - </doTry> - </route> + <route id="get-deployment-policy"> + <from uri="direct:get-deployment-policy"/> + <doTry> + <log loggingLevel="INFO" + message="Getting the policy deployment in PDP: ${exchangeProperty[policyName]}"/> + <to + uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeLog('Policy', 'Getting the policy deployment in PDP')"/> + <setHeader headerName="CamelHttpMethod"> + <constant>GET</constant> + </setHeader> + <setHeader headerName="X-ONAP-RequestID"> + <simple>${exchangeProperty[X-ONAP-RequestID]} + </simple> + </setHeader> + <setHeader headerName="X-ONAP-InvocationID"> + <simple>${exchangeProperty[X-ONAP-InvocationID]} + </simple> + </setHeader> + <setHeader headerName="X-ONAP-PartnerName"> + <simple>${exchangeProperty[X-ONAP-PartnerName]} + </simple> + </setHeader> + <log loggingLevel="INFO" + message="Endpoint to get policy deployment status: {{clamp.config.policy.pap.url}}/policy/pap/v1/policies/deployed/${exchangeProperty[policyName]}/1.0.0"></log> + <toD + uri="{{clamp.config.policy.pap.url}}/policy/pap/v1/policies/deployed/${exchangeProperty[policyName]}/1.0.0?bridgeEndpoint=true&useSystemProperties=true&throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&authMethod=Basic&authUsername={{clamp.config.policy.api.userName}}&authPassword={{clamp.config.policy.api.password}}&connectionTimeToLive=5000&httpClient.connectTimeout=10000&httpClient.socketTimeout=20000&authenticationPreemptive=true&connectionClose=true"/> + <doFinally> + <to uri="direct:reset-raise-http-exception-flag"/> + <to + uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()"/> + <setProperty propertyName="logMessage"> + <simple>${exchangeProperty[policyName]} GET Policy deployment + status + </simple> + </setProperty> + <setProperty propertyName="logComponent"> + <simple>POLICY</simple> + </setProperty> + <to uri="direct:dump-loop-log-http-response"/> + </doFinally> + </doTry> + </route> + <route id="get-all-policy-models"> + <from uri="direct:get-all-policy-models"/> + <doTry> + <log loggingLevel="INFO" message="Getting all the policy models"/> + <to + uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeLog('Policy', 'Getting all the policy models')"/> + <setHeader headerName="CamelHttpMethod"> + <constant>GET</constant> + </setHeader> + <setHeader headerName="X-ONAP-RequestID"> + <simple>${exchangeProperty[X-ONAP-RequestID]} + </simple> + </setHeader> + <setHeader headerName="X-ONAP-InvocationID"> + <simple>${exchangeProperty[X-ONAP-InvocationID]} + </simple> + </setHeader> + <setHeader headerName="X-ONAP-PartnerName"> + <simple>${exchangeProperty[X-ONAP-PartnerName]} + </simple> + </setHeader> + <log loggingLevel="INFO" + message="Endpoint to get all policy models: {{clamp.config.policy.pap.url}}/policy/api/v1/policytypes"></log> + <toD + uri="{{clamp.config.policy.api.url}}/policy/api/v1/policytypes?bridgeEndpoint=true&useSystemProperties=true&throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&authMethod=Basic&authUsername={{clamp.config.policy.api.userName}}&authPassword={{clamp.config.policy.api.password}}&connectionTimeToLive=5000&httpClient.connectTimeout=10000&httpClient.socketTimeout=20000&authenticationPreemptive=true&connectionClose=true"/> + <convertBodyTo type="java.lang.String"/> + <doFinally> + <to uri="direct:reset-raise-http-exception-flag"/> + <to + uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()"/> + </doFinally> + </doTry> + </route> + <route id="get-policy-model"> + <from uri="direct:get-policy-model"/> + <doTry> + <log loggingLevel="INFO" + message="Getting the policy model: ${exchangeProperty[policyModelName]}/${exchangeProperty[policyModelVersion]}"/> + <to + uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeLog('Policy', 'Getting the policy model')"/> + <setHeader headerName="CamelHttpMethod"> + <constant>GET</constant> + </setHeader> + <setHeader headerName="X-ONAP-RequestID"> + <simple>${exchangeProperty[X-ONAP-RequestID]} + </simple> + </setHeader> + <setHeader headerName="X-ONAP-InvocationID"> + <simple>${exchangeProperty[X-ONAP-InvocationID]} + </simple> + </setHeader> + <setHeader headerName="X-ONAP-PartnerName"> + <simple>${exchangeProperty[X-ONAP-PartnerName]} + </simple> + </setHeader> + <log loggingLevel="INFO" + message="Endpoint to get policy model: {{clamp.config.policy.pap.url}}/policy/api/v1/policytypes/${exchangeProperty[policyModelName]}/versions/${exchangeProperty[policyModelVersion]}"></log> + <toD + uri="{{clamp.config.policy.api.url}}/policy/api/v1/policytypes/${exchangeProperty[policyModelName]}/versions/${exchangeProperty[policyModelVersion]}?bridgeEndpoint=true&useSystemProperties=true&throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&authMethod=Basic&authUsername={{clamp.config.policy.api.userName}}&authPassword={{clamp.config.policy.api.password}}&connectionTimeToLive=5000&httpClient.connectTimeout=10000&httpClient.socketTimeout=20000&authenticationPreemptive=true&connectionClose=true"/> + <convertBodyTo type="java.lang.String"/> + <doFinally> + <to uri="direct:reset-raise-http-exception-flag"/> + <to + uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()"/> + </doFinally> + </doTry> + </route> + <route id="create-micro-service-policy"> + <from uri="direct:create-micro-service-policy"/> + <doTry> + <log loggingLevel="INFO" + message="Creating Micro Service Policy: ${exchangeProperty[microServicePolicy].getName()}"/> + <to + uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeLog('Policy', 'Create Micro Service Policy')"/> + <setBody> + <simple>${exchangeProperty[microServicePolicy].createPolicyPayload()} + </simple> + </setBody> + <setHeader headerName="CamelHttpMethod"> + <constant>POST</constant> + </setHeader> + <setHeader headerName="Content-Type"> + <constant>application/json</constant> + </setHeader> + <setHeader headerName="X-ONAP-RequestID"> + <simple>${exchangeProperty[X-ONAP-RequestID]} + </simple> + </setHeader> + <setHeader headerName="X-ONAP-InvocationID"> + <simple>${exchangeProperty[X-ONAP-InvocationID]} + </simple> + </setHeader> + <setHeader headerName="X-ONAP-PartnerName"> + <simple>${exchangeProperty[X-ONAP-PartnerName]} + </simple> + </setHeader> + <log loggingLevel="INFO" + message="Endpoint to create microservice policy: {{clamp.config.policy.api.url}}/policy/api/v1/policytypes/${exchangeProperty[microServicePolicy].getModelType()}/versions/1.0.0/policies"></log> + <toD + uri="{{clamp.config.policy.api.url}}/policy/api/v1/policytypes/${exchangeProperty[microServicePolicy].getModelType()}/versions/1.0.0/policies?bridgeEndpoint=true&useSystemProperties=true&mapHttpMessageHeaders=false&throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&authUsername={{clamp.config.policy.api.userName}}&authPassword={{clamp.config.policy.api.password}}&connectionTimeToLive=5000&httpClient.connectTimeout=10000&httpClient.socketTimeout=20000&authenticationPreemptive=true&connectionClose=true"/> + <doFinally> + <to uri="direct:reset-raise-http-exception-flag"/> + <to + uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()"/> + <setProperty propertyName="logMessage"> + <simple>${exchangeProperty[microServicePolicy].getName()} creation + status + </simple> + </setProperty> + <setProperty propertyName="logComponent"> + <simple>POLICY</simple> + </setProperty> + <to uri="direct:dump-loop-log-http-response"/> + </doFinally> + </doTry> + </route> - <route id="create-operational-policy"> - <from uri="direct:create-operational-policy" /> - <doTry> - <log loggingLevel="INFO" - message="Creating Operational Policy: ${exchangeProperty[operationalPolicy].getName()}" /> - <to - uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeLog('Policy', 'Create Operational Policy')" /> - <setBody> - <simple>${exchangeProperty[operationalPolicy].createPolicyPayload()} - </simple> - </setBody> - <setHeader headerName="CamelHttpMethod"> - <constant>POST</constant> - </setHeader> - <setHeader headerName="Content-Type"> - <constant>application/json</constant> - </setHeader> - <setHeader headerName="X-ONAP-RequestID"> - <simple>${exchangeProperty[X-ONAP-RequestID]} - </simple> - </setHeader> - <setHeader headerName="X-ONAP-InvocationID"> - <simple>${exchangeProperty[X-ONAP-InvocationID]} - </simple> - </setHeader> - <setHeader headerName="X-ONAP-PartnerName"> - <simple>${exchangeProperty[X-ONAP-PartnerName]} - </simple> - </setHeader> - <log loggingLevel="INFO" - message="Endpoint to create operational policy: {{clamp.config.policy.api.url}}/policy/api/v1/policytypes/onap.policies.controlloop.Operational/versions/1.0.0/policies"></log> - <toD - uri="{{clamp.config.policy.api.url}}/policy/api/v1/policytypes/onap.policies.controlloop.Operational/versions/1.0.0/policies?bridgeEndpoint=true&useSystemProperties=true&mapHttpMessageHeaders=false&throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&authUsername={{clamp.config.policy.api.userName}}&authPassword={{clamp.config.policy.api.password}}&connectionTimeToLive=5000&httpClient.connectTimeout=10000&httpClient.socketTimeout=20000&authenticationPreemptive=true&connectionClose=true" /> - <doFinally> - <to uri="direct:reset-raise-http-exception-flag" /> - <to - uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()" /> - <setProperty propertyName="logMessage"> - <simple>${exchangeProperty[operationalPolicy].getName()} creation - status - </simple> - </setProperty> - <setProperty propertyName="logComponent"> - <simple>POLICY</simple> - </setProperty> - <to uri="direct:dump-loop-log-http-response" /> - </doFinally> - </doTry> - </route> + <route id="delete-micro-service-policy"> + <from uri="direct:delete-micro-service-policy"/> + <doTry> + <log loggingLevel="INFO" + message="Deleting Micro Service Policy: ${exchangeProperty[microServicePolicy].getName()}"/> + <to + uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeLog('Policy', 'Delete Micro Service Policy')"/> + <setBody> + <constant>null</constant> + </setBody> + <setHeader headerName="CamelHttpMethod"> + <constant>DELETE</constant> + </setHeader> + <setHeader headerName="X-ONAP-RequestID"> + <simple>${exchangeProperty[X-ONAP-RequestID]} + </simple> + </setHeader> + <setHeader headerName="X-ONAP-InvocationID"> + <simple>${exchangeProperty[X-ONAP-InvocationID]} + </simple> + </setHeader> + <setHeader headerName="X-ONAP-PartnerName"> + <simple>${exchangeProperty[X-ONAP-PartnerName]} + </simple> + </setHeader> + <log loggingLevel="INFO" + message="Endpoint to delete microservice policy: {{clamp.config.policy.api.url}}/policy/api/v1/policytypes/${exchangeProperty[microServicePolicy].getModelType()}/versions/1.0.0/policies/${exchangeProperty[microServicePolicy].getName()}/versions/1.0.0"></log> + <toD + uri="{{clamp.config.policy.api.url}}/policy/api/v1/policytypes/${exchangeProperty[microServicePolicy].getModelType()}/versions/1.0.0/policies/${exchangeProperty[microServicePolicy].getName()}/versions/1.0.0?bridgeEndpoint=true&useSystemProperties=true&mapHttpMessageHeaders=false&throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&deleteWithBody=false&mapHttpMessageBody=false&mapHttpMessageFormUrlEncodedBody=false&authUsername={{clamp.config.policy.api.userName}}&authPassword={{clamp.config.policy.api.password}}&connectionTimeToLive=5000&httpClient.connectTimeout=10000&httpClient.socketTimeout=20000&authenticationPreemptive=true&connectionClose=true"/> - <route id="delete-operational-policy"> - <from uri="direct:delete-operational-policy" /> - <doTry> - <log loggingLevel="INFO" - message="Deleting Operational Policy: ${exchangeProperty[operationalPolicy].getName()}" /> - <to - uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeLog('Policy', 'Delete Operational Policy')" /> - <setBody> - <constant>null</constant> - </setBody> - <setHeader headerName="CamelHttpMethod"> - <constant>DELETE</constant> - </setHeader> - <setHeader headerName="X-ONAP-RequestID"> - <simple>${exchangeProperty[X-ONAP-RequestID]} - </simple> - </setHeader> - <setHeader headerName="X-ONAP-InvocationID"> - <simple>${exchangeProperty[X-ONAP-InvocationID]} - </simple> - </setHeader> - <setHeader headerName="X-ONAP-PartnerName"> - <simple>${exchangeProperty[X-ONAP-PartnerName]} - </simple> - </setHeader> - <log loggingLevel="INFO" - message="Endpoint to delete operational policy: {{clamp.config.policy.api.url}}/policy/api/v1/policytypes/onap.policies.controlloop.Operational/versions/1.0.0/policies/${exchangeProperty[operationalPolicy].getName()}/versions/1"></log> - <toD - uri="{{clamp.config.policy.api.url}}/policy/api/v1/policytypes/onap.policies.controlloop.Operational/versions/1.0.0/policies/${exchangeProperty[operationalPolicy].getName()}/versions/1?bridgeEndpoint=true&useSystemProperties=true&mapHttpMessageHeaders=false&throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&deleteWithBody=false&mapHttpMessageBody=false&mapHttpMessageFormUrlEncodedBody=false&authUsername={{clamp.config.policy.api.userName}}&authPassword={{clamp.config.policy.api.password}}&connectionTimeToLive=5000&httpClient.connectTimeout=10000&httpClient.socketTimeout=20000&authenticationPreemptive=true&connectionClose=true" /> - <doFinally> - <to uri="direct:reset-raise-http-exception-flag" /> - <to - uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()" /> - <setProperty propertyName="logMessage"> - <simple>${exchangeProperty[operationalPolicy].getName()} removal - status - </simple> - </setProperty> - <setProperty propertyName="logComponent"> - <simple>POLICY</simple> - </setProperty> - <to uri="direct:dump-loop-log-http-response" /> - </doFinally> - </doTry> - </route> + <doFinally> + <to uri="direct:reset-raise-http-exception-flag"/> + <to + uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()"/> + <setProperty propertyName="logMessage"> + <simple>${exchangeProperty[microServicePolicy].getName()} removal + status + </simple> + </setProperty> + <setProperty propertyName="logComponent"> + <simple>POLICY</simple> + </setProperty> + <to uri="direct:dump-loop-log-http-response"/> + </doFinally> + </doTry> + </route> - <route id="create-guard-policy"> - <from uri="direct:create-guard-policy" /> - <doTry> - <log loggingLevel="INFO" - message="Creating Guard Policy: ${exchangeProperty[guardPolicy].getKey()}" /> - <to - uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeLog('Policy', 'Create Guard Policy')" /> - <setBody> - <simple>${exchangeProperty[guardPolicy].getValue()} - </simple> - </setBody> - <setHeader headerName="CamelHttpMethod"> - <constant>POST</constant> - </setHeader> - <setHeader headerName="Content-Type"> - <constant>application/json</constant> - </setHeader> - <setHeader headerName="X-ONAP-RequestID"> - <simple>${exchangeProperty[X-ONAP-RequestID]} - </simple> - </setHeader> - <setHeader headerName="X-ONAP-InvocationID"> - <simple>${exchangeProperty[X-ONAP-InvocationID]} - </simple> - </setHeader> - <setHeader headerName="X-ONAP-PartnerName"> - <simple>${exchangeProperty[X-ONAP-PartnerName]} - </simple> - </setHeader> - <log loggingLevel="INFO" - message="Endpoint to create guard policy: {{clamp.config.policy.api.url}}/policy/api/v1/policytypes/onap.policies.controlloop.Guard/versions/1.0.0/policies"></log> - <toD - uri="{{clamp.config.policy.api.url}}/policy/api/v1/policytypes/onap.policies.controlloop.Guard/versions/1.0.0/policies?bridgeEndpoint=true&useSystemProperties=true&mapHttpMessageHeaders=false&throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&authUsername={{clamp.config.policy.api.userName}}&authPassword={{clamp.config.policy.api.password}}&connectionTimeToLive=5000&httpClient.connectTimeout=10000&httpClient.socketTimeout=20000&authenticationPreemptive=true&connectionClose=true" /> - <doFinally> - <to uri="direct:reset-raise-http-exception-flag" /> - <to - uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()" /> - <setProperty propertyName="logMessage"> - <simple>${exchangeProperty[guardPolicy].getKey()} creation status - </simple> - </setProperty> - <setProperty propertyName="logComponent"> - <simple>POLICY</simple> - </setProperty> - <to uri="direct:dump-loop-log-http-response" /> - </doFinally> - </doTry> - </route> + <route id="create-operational-policy"> + <from uri="direct:create-operational-policy"/> + <doTry> + <log loggingLevel="INFO" + message="Creating Operational Policy: ${exchangeProperty[operationalPolicy].getName()}"/> + <to + uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeLog('Policy', 'Create Operational Policy')"/> + <setBody> + <simple>${exchangeProperty[operationalPolicy].createPolicyPayload()} + </simple> + </setBody> + <setHeader headerName="CamelHttpMethod"> + <constant>POST</constant> + </setHeader> + <setHeader headerName="Content-Type"> + <constant>application/json</constant> + </setHeader> + <setHeader headerName="X-ONAP-RequestID"> + <simple>${exchangeProperty[X-ONAP-RequestID]} + </simple> + </setHeader> + <setHeader headerName="X-ONAP-InvocationID"> + <simple>${exchangeProperty[X-ONAP-InvocationID]} + </simple> + </setHeader> + <setHeader headerName="X-ONAP-PartnerName"> + <simple>${exchangeProperty[X-ONAP-PartnerName]} + </simple> + </setHeader> + <log loggingLevel="INFO" + message="Endpoint to create operational policy: {{clamp.config.policy.api.url}}/policy/api/v1/policytypes/onap.policies.controlloop.Operational/versions/1.0.0/policies"></log> + <toD + uri="{{clamp.config.policy.api.url}}/policy/api/v1/policytypes/onap.policies.controlloop.Operational/versions/1.0.0/policies?bridgeEndpoint=true&useSystemProperties=true&mapHttpMessageHeaders=false&throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&authUsername={{clamp.config.policy.api.userName}}&authPassword={{clamp.config.policy.api.password}}&connectionTimeToLive=5000&httpClient.connectTimeout=10000&httpClient.socketTimeout=20000&authenticationPreemptive=true&connectionClose=true"/> + <doFinally> + <to uri="direct:reset-raise-http-exception-flag"/> + <to + uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()"/> + <setProperty propertyName="logMessage"> + <simple>${exchangeProperty[operationalPolicy].getName()} creation + status + </simple> + </setProperty> + <setProperty propertyName="logComponent"> + <simple>POLICY</simple> + </setProperty> + <to uri="direct:dump-loop-log-http-response"/> + </doFinally> + </doTry> + </route> - <route id="delete-guard-policy"> - <from uri="direct:delete-guard-policy" /> - <doTry> - <log loggingLevel="INFO" - message="Deleting Guard Policy: ${exchangeProperty[guardPolicy].getKey()}" /> - <to - uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeLog('Policy', 'Delete Guard Policy')" /> - <setBody> - <constant>null</constant> - </setBody> - <setHeader headerName="CamelHttpMethod"> - <constant>DELETE</constant> - </setHeader> - <setHeader headerName="X-ONAP-RequestID"> - <simple>${exchangeProperty[X-ONAP-RequestID]} - </simple> - </setHeader> - <setHeader headerName="X-ONAP-InvocationID"> - <simple>${exchangeProperty[X-ONAP-InvocationID]} - </simple> - </setHeader> - <setHeader headerName="X-ONAP-PartnerName"> - <simple>${exchangeProperty[X-ONAP-PartnerName]} - </simple> - </setHeader> - <log loggingLevel="INFO" - message="Endpoint to delete guard policy: {{clamp.config.policy.api.url}}/policy/api/v1/policytypes/onap.policies.controlloop.Guard/versions/1.0.0/policies/${exchangeProperty[guardPolicy].getKey()}/versions/1"></log> - <toD - uri="{{clamp.config.policy.api.url}}/policy/api/v1/policytypes/onap.policies.controlloop.Guard/versions/1.0.0/policies/${exchangeProperty[guardPolicy].getKey()}/versions/1?bridgeEndpoint=true&useSystemProperties=true&throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&deleteWithBody=false&mapHttpMessageBody=false&mapHttpMessageFormUrlEncodedBody=false&authUsername={{clamp.config.policy.api.userName}}&authPassword={{clamp.config.policy.api.password}}&connectionTimeToLive=5000&httpClient.connectTimeout=10000&httpClient.socketTimeout=20000&authenticationPreemptive=true&connectionClose=true" /> + <route id="delete-operational-policy"> + <from uri="direct:delete-operational-policy"/> + <doTry> + <log loggingLevel="INFO" + message="Deleting Operational Policy: ${exchangeProperty[operationalPolicy].getName()}"/> + <to + uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeLog('Policy', 'Delete Operational Policy')"/> + <setBody> + <constant>null</constant> + </setBody> + <setHeader headerName="CamelHttpMethod"> + <constant>DELETE</constant> + </setHeader> + <setHeader headerName="X-ONAP-RequestID"> + <simple>${exchangeProperty[X-ONAP-RequestID]} + </simple> + </setHeader> + <setHeader headerName="X-ONAP-InvocationID"> + <simple>${exchangeProperty[X-ONAP-InvocationID]} + </simple> + </setHeader> + <setHeader headerName="X-ONAP-PartnerName"> + <simple>${exchangeProperty[X-ONAP-PartnerName]} + </simple> + </setHeader> + <log loggingLevel="INFO" + message="Endpoint to delete operational policy: {{clamp.config.policy.api.url}}/policy/api/v1/policytypes/onap.policies.controlloop.Operational/versions/1.0.0/policies/${exchangeProperty[operationalPolicy].getName()}/versions/1"></log> + <toD + uri="{{clamp.config.policy.api.url}}/policy/api/v1/policytypes/onap.policies.controlloop.Operational/versions/1.0.0/policies/${exchangeProperty[operationalPolicy].getName()}/versions/1?bridgeEndpoint=true&useSystemProperties=true&mapHttpMessageHeaders=false&throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&deleteWithBody=false&mapHttpMessageBody=false&mapHttpMessageFormUrlEncodedBody=false&authUsername={{clamp.config.policy.api.userName}}&authPassword={{clamp.config.policy.api.password}}&connectionTimeToLive=5000&httpClient.connectTimeout=10000&httpClient.socketTimeout=20000&authenticationPreemptive=true&connectionClose=true"/> + <doFinally> + <to uri="direct:reset-raise-http-exception-flag"/> + <to + uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()"/> + <setProperty propertyName="logMessage"> + <simple>${exchangeProperty[operationalPolicy].getName()} removal + status + </simple> + </setProperty> + <setProperty propertyName="logComponent"> + <simple>POLICY</simple> + </setProperty> + <to uri="direct:dump-loop-log-http-response"/> + </doFinally> + </doTry> + </route> - <doFinally> - <to uri="direct:reset-raise-http-exception-flag" /> - <to - uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()" /> - <setProperty propertyName="logMessage"> - <simple>${exchangeProperty[guardPolicy].getKey()} removal status - </simple> - </setProperty> - <setProperty propertyName="logComponent"> - <simple>POLICY</simple> - </setProperty> - <to uri="direct:dump-loop-log-http-response" /> - </doFinally> - </doTry> - </route> + <route id="create-guard-policy"> + <from uri="direct:create-guard-policy"/> + <doTry> + <log loggingLevel="INFO" + message="Creating Guard Policy: ${exchangeProperty[guardPolicy].getKey()}"/> + <to + uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeLog('Policy', 'Create Guard Policy')"/> + <setBody> + <simple>${exchangeProperty[guardPolicy].getValue()} + </simple> + </setBody> + <setHeader headerName="CamelHttpMethod"> + <constant>POST</constant> + </setHeader> + <setHeader headerName="Content-Type"> + <constant>application/json</constant> + </setHeader> + <setHeader headerName="X-ONAP-RequestID"> + <simple>${exchangeProperty[X-ONAP-RequestID]} + </simple> + </setHeader> + <setHeader headerName="X-ONAP-InvocationID"> + <simple>${exchangeProperty[X-ONAP-InvocationID]} + </simple> + </setHeader> + <setHeader headerName="X-ONAP-PartnerName"> + <simple>${exchangeProperty[X-ONAP-PartnerName]} + </simple> + </setHeader> + <log loggingLevel="INFO" + message="Endpoint to create guard policy: {{clamp.config.policy.api.url}}/policy/api/v1/policytypes/onap.policies.controlloop.Guard/versions/1.0.0/policies"></log> + <toD + uri="{{clamp.config.policy.api.url}}/policy/api/v1/policytypes/onap.policies.controlloop.Guard/versions/1.0.0/policies?bridgeEndpoint=true&useSystemProperties=true&mapHttpMessageHeaders=false&throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&authUsername={{clamp.config.policy.api.userName}}&authPassword={{clamp.config.policy.api.password}}&connectionTimeToLive=5000&httpClient.connectTimeout=10000&httpClient.socketTimeout=20000&authenticationPreemptive=true&connectionClose=true"/> + <doFinally> + <to uri="direct:reset-raise-http-exception-flag"/> + <to + uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()"/> + <setProperty propertyName="logMessage"> + <simple>${exchangeProperty[guardPolicy].getKey()} creation status + </simple> + </setProperty> + <setProperty propertyName="logComponent"> + <simple>POLICY</simple> + </setProperty> + <to uri="direct:dump-loop-log-http-response"/> + </doFinally> + </doTry> + </route> - <route id="add-all-to-active-pdp-group"> - <from uri="direct:add-all-to-active-pdp-group" /> - <doTry> - <log loggingLevel="INFO" - message="Adding loop policies to PDP Group: ${exchangeProperty[loopObject].getName()}" /> - <to - uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeLog('Policy', 'Add policies to PDP group')" /> - <setBody> - <simple>${exchangeProperty[loopObject].getComponent("POLICY").createPoliciesPayloadPdpGroup(exchangeProperty[loopObject])} - </simple> - </setBody> - <setHeader headerName="CamelHttpMethod"> - <constant>POST</constant> - </setHeader> - <setHeader headerName="Content-Type"> - <constant>application/json</constant> - </setHeader> - <setHeader headerName="X-ONAP-RequestID"> - <simple>${exchangeProperty[X-ONAP-RequestID]} - </simple> - </setHeader> - <setHeader headerName="X-ONAP-InvocationID"> - <simple>${exchangeProperty[X-ONAP-InvocationID]} - </simple> - </setHeader> - <setHeader headerName="X-ONAP-PartnerName"> - <simple>${exchangeProperty[X-ONAP-PartnerName]} - </simple> - </setHeader> - <log loggingLevel="INFO" - message="Endpoint to add policies to PDP Group: {{clamp.config.policy.pap.url}}/policy/pap/v1/pdps/policies"></log> - <toD - uri="{{clamp.config.policy.pap.url}}/policy/pap/v1/pdps/policies?bridgeEndpoint=true&throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&useSystemProperties=true&authUsername={{clamp.config.policy.pap.userName}}&authPassword={{clamp.config.policy.pap.password}}&connectionTimeToLive=5000&httpClient.connectTimeout=10000&httpClient.socketTimeout=20000&authenticationPreemptive=true&connectionClose=true" /> + <route id="delete-guard-policy"> + <from uri="direct:delete-guard-policy"/> + <doTry> + <log loggingLevel="INFO" + message="Deleting Guard Policy: ${exchangeProperty[guardPolicy].getKey()}"/> + <to + uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeLog('Policy', 'Delete Guard Policy')"/> + <setBody> + <constant>null</constant> + </setBody> + <setHeader headerName="CamelHttpMethod"> + <constant>DELETE</constant> + </setHeader> + <setHeader headerName="X-ONAP-RequestID"> + <simple>${exchangeProperty[X-ONAP-RequestID]} + </simple> + </setHeader> + <setHeader headerName="X-ONAP-InvocationID"> + <simple>${exchangeProperty[X-ONAP-InvocationID]} + </simple> + </setHeader> + <setHeader headerName="X-ONAP-PartnerName"> + <simple>${exchangeProperty[X-ONAP-PartnerName]} + </simple> + </setHeader> + <log loggingLevel="INFO" + message="Endpoint to delete guard policy: {{clamp.config.policy.api.url}}/policy/api/v1/policytypes/onap.policies.controlloop.Guard/versions/1.0.0/policies/${exchangeProperty[guardPolicy].getKey()}/versions/1"></log> + <toD + uri="{{clamp.config.policy.api.url}}/policy/api/v1/policytypes/onap.policies.controlloop.Guard/versions/1.0.0/policies/${exchangeProperty[guardPolicy].getKey()}/versions/1?bridgeEndpoint=true&useSystemProperties=true&throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&deleteWithBody=false&mapHttpMessageBody=false&mapHttpMessageFormUrlEncodedBody=false&authUsername={{clamp.config.policy.api.userName}}&authPassword={{clamp.config.policy.api.password}}&connectionTimeToLive=5000&httpClient.connectTimeout=10000&httpClient.socketTimeout=20000&authenticationPreemptive=true&connectionClose=true"/> - <doFinally> - <to uri="direct:reset-raise-http-exception-flag" /> - <to - uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()" /> - <setProperty propertyName="logMessage"> - <simple>PDP Group push ALL status</simple> - </setProperty> - <setProperty propertyName="logComponent"> - <simple>POLICY</simple> - </setProperty> - <to uri="direct:dump-loop-log-http-response" /> - </doFinally> - </doTry> - </route> + <doFinally> + <to uri="direct:reset-raise-http-exception-flag"/> + <to + uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()"/> + <setProperty propertyName="logMessage"> + <simple>${exchangeProperty[guardPolicy].getKey()} removal status + </simple> + </setProperty> + <setProperty propertyName="logComponent"> + <simple>POLICY</simple> + </setProperty> + <to uri="direct:dump-loop-log-http-response"/> + </doFinally> + </doTry> + </route> - <route id="remove-all-policy-from-active-pdp-group"> - <from uri="direct:remove-all-policy-from-active-pdp-group" /> - <doTry> - <log loggingLevel="INFO" - message="Removing policies from active PDP group for loop: ${exchangeProperty[loopObject].getName()}" /> - <to - uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeLog('Policy', 'Removing policies PDP group')" /> - <split> - <simple>${exchangeProperty[loopObject].getComponent("POLICY").listPolicyNamesPdpGroup(exchangeProperty[loopObject])} - </simple> - <setProperty propertyName="policyName"> - <simple>${body}</simple> - </setProperty> - <setBody> - <constant>null</constant> - </setBody> - <setHeader headerName="CamelHttpMethod"> - <constant>DELETE</constant> - </setHeader> - <setHeader headerName="X-ONAP-RequestID"> - <simple>${exchangeProperty[X-ONAP-RequestID]} - </simple> - </setHeader> - <setHeader headerName="X-ONAP-InvocationID"> - <simple>${exchangeProperty[X-ONAP-InvocationID]} - </simple> - </setHeader> - <setHeader headerName="X-ONAP-PartnerName"> - <simple>${exchangeProperty[X-ONAP-PartnerName]} - </simple> - </setHeader> - <log loggingLevel="INFO" - message="Endpoint to delete policy from PDP Group: {{clamp.config.policy.pap.url}}/pdps/policies/${exchangeProperty[policyName]}/versions/1.0.0"></log> - <toD - uri="{{clamp.config.policy.pap.url}}/policy/pap/v1/pdps/policies/${exchangeProperty[policyName]}/versions/1.0.0?bridgeEndpoint=true&useSystemProperties=true&mapHttpMessageHeaders=false&throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&authUsername={{clamp.config.policy.pap.userName}}&authPassword={{clamp.config.policy.pap.password}}&connectionTimeToLive=5000&httpClient.connectTimeout=10000&httpClient.socketTimeout=20000&authenticationPreemptive=true&connectionClose=true" /> - <setProperty propertyName="logMessage"> - <simple>${exchangeProperty[policyName]} PDP Group removal status - </simple> - </setProperty> - <setProperty propertyName="logComponent"> - <simple>POLICY</simple> - </setProperty> - <to uri="direct:dump-loop-log-http-response" /> - </split> - <doCatch> - <exception>java.lang.Exception</exception> - <handled> - <constant>false</constant> - </handled> - <setProperty propertyName="logMessage"> - <simple>PDP Group removal, Error reported: ${exception}</simple> - </setProperty> - <setProperty propertyName="logComponent"> - <simple>POLICY</simple> - </setProperty> - <to uri="direct:dump-loop-log-http-response" /> - </doCatch> - <doFinally> - <to uri="direct:reset-raise-http-exception-flag" /> - <to - uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()" /> - </doFinally> - </doTry> - </route> + <route id="add-all-to-active-pdp-group"> + <from uri="direct:add-all-to-active-pdp-group"/> + <doTry> + <log loggingLevel="INFO" + message="Adding loop policies to PDP Group: ${exchangeProperty[loopObject].getName()}"/> + <to + uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeLog('Policy', 'Add policies to PDP group')"/> + <setBody> + <simple>${exchangeProperty[loopObject].getComponent("POLICY").createPoliciesPayloadPdpGroup(exchangeProperty[loopObject])} + </simple> + </setBody> + <setHeader headerName="CamelHttpMethod"> + <constant>POST</constant> + </setHeader> + <setHeader headerName="Content-Type"> + <constant>application/json</constant> + </setHeader> + <setHeader headerName="X-ONAP-RequestID"> + <simple>${exchangeProperty[X-ONAP-RequestID]} + </simple> + </setHeader> + <setHeader headerName="X-ONAP-InvocationID"> + <simple>${exchangeProperty[X-ONAP-InvocationID]} + </simple> + </setHeader> + <setHeader headerName="X-ONAP-PartnerName"> + <simple>${exchangeProperty[X-ONAP-PartnerName]} + </simple> + </setHeader> + <log loggingLevel="INFO" + message="Endpoint to add policies to PDP Group: {{clamp.config.policy.pap.url}}/policy/pap/v1/pdps/policies"></log> + <toD + uri="{{clamp.config.policy.pap.url}}/policy/pap/v1/pdps/policies?bridgeEndpoint=true&throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&useSystemProperties=true&authUsername={{clamp.config.policy.pap.userName}}&authPassword={{clamp.config.policy.pap.password}}&connectionTimeToLive=5000&httpClient.connectTimeout=10000&httpClient.socketTimeout=20000&authenticationPreemptive=true&connectionClose=true"/> + + <doFinally> + <to uri="direct:reset-raise-http-exception-flag"/> + <to + uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()"/> + <setProperty propertyName="logMessage"> + <simple>PDP Group push ALL status</simple> + </setProperty> + <setProperty propertyName="logComponent"> + <simple>POLICY</simple> + </setProperty> + <to uri="direct:dump-loop-log-http-response"/> + </doFinally> + </doTry> + </route> + + <route id="remove-all-policy-from-active-pdp-group"> + <from uri="direct:remove-all-policy-from-active-pdp-group"/> + <doTry> + <log loggingLevel="INFO" + message="Removing policies from active PDP group for loop: ${exchangeProperty[loopObject].getName()}"/> + <to + uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeLog('Policy', 'Removing policies PDP group')"/> + <split> + <simple>${exchangeProperty[loopObject].getComponent("POLICY").listPolicyNamesPdpGroup(exchangeProperty[loopObject])} + </simple> + <setProperty propertyName="policyName"> + <simple>${body}</simple> + </setProperty> + <setBody> + <constant>null</constant> + </setBody> + <setHeader headerName="CamelHttpMethod"> + <constant>DELETE</constant> + </setHeader> + <setHeader headerName="X-ONAP-RequestID"> + <simple>${exchangeProperty[X-ONAP-RequestID]} + </simple> + </setHeader> + <setHeader headerName="X-ONAP-InvocationID"> + <simple>${exchangeProperty[X-ONAP-InvocationID]} + </simple> + </setHeader> + <setHeader headerName="X-ONAP-PartnerName"> + <simple>${exchangeProperty[X-ONAP-PartnerName]} + </simple> + </setHeader> + <log loggingLevel="INFO" + message="Endpoint to delete policy from PDP Group: {{clamp.config.policy.pap.url}}/pdps/policies/${exchangeProperty[policyName]}/versions/1.0.0"></log> + <toD + uri="{{clamp.config.policy.pap.url}}/policy/pap/v1/pdps/policies/${exchangeProperty[policyName]}/versions/1.0.0?bridgeEndpoint=true&useSystemProperties=true&mapHttpMessageHeaders=false&throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&authUsername={{clamp.config.policy.pap.userName}}&authPassword={{clamp.config.policy.pap.password}}&connectionTimeToLive=5000&httpClient.connectTimeout=10000&httpClient.socketTimeout=20000&authenticationPreemptive=true&connectionClose=true"/> + <setProperty propertyName="logMessage"> + <simple>${exchangeProperty[policyName]} PDP Group removal status + </simple> + </setProperty> + <setProperty propertyName="logComponent"> + <simple>POLICY</simple> + </setProperty> + <to uri="direct:dump-loop-log-http-response"/> + </split> + <doCatch> + <exception>java.lang.Exception</exception> + <handled> + <constant>false</constant> + </handled> + <setProperty propertyName="logMessage"> + <simple>PDP Group removal, Error reported: ${exception}</simple> + </setProperty> + <setProperty propertyName="logComponent"> + <simple>POLICY</simple> + </setProperty> + <to uri="direct:dump-loop-log-http-response"/> + </doCatch> + <doFinally> + <to uri="direct:reset-raise-http-exception-flag"/> + <to + uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()"/> + </doFinally> + </doTry> + </route> </routes>
\ No newline at end of file diff --git a/src/test/resources/clds/holmes-old-style-ms.yaml b/src/test/resources/clds/holmes-old-style-ms.yaml deleted file mode 100644 index 3f0c9a604..000000000 --- a/src/test/resources/clds/holmes-old-style-ms.yaml +++ /dev/null @@ -1,117 +0,0 @@ -tosca_definitions_version: cloudify_dsl_1_3 -imports: - - http://www.getcloudify.org/spec/cloudify/3.4/types.yaml - - https://nexus01.research.att.com:8443/repository/solutioning01-mte2-raw/type_files/docker/2.3.0+t.0.4/node-type.yaml - - https://nexus01.research.att.com:8443/repository/solutioning01-mte2-raw/type_files/relationship/1.0.0/node-type.yaml - - http://nexus01.research.att.com:8081/repository/solutioning01-mte2-raw/type_files/dmaap/1.2.0/dmaap.yaml -inputs: - dcae_service_location: - type: string - docker_host_override: - type: string - topic0_aaf_password: - type: string - topic0_aaf_username: - type: string - topic0_client_role: - type: string - topic1_aaf_password: - type: string - topic1_aaf_username: - type: string - topic1_client_role: - type: string - location_id: - type: string - service_id: - type: string - policy_id: - type: string - default: "CLAMPPolicyTriggerNoaapp_v1_0_29b0578b_dcee_472c_8cdd0.ClosedLoop_860ee9f2_ba64_11e8_a16b_02bd571477fe_TCA_1d13unw" -node_templates: - policy_0: - type: dcae.nodes.policy - properties: - policy_model: policy.nodes.holmes - policy_filter: "DCAE.Config_Holmes.*" - policy_id: - get_input: policy_id - docker_host_host: - type: dcae.nodes.SelectedDockerHost - properties: - docker_host_override: - get_input: docker_host_override - location_id: - get_input: dcae_service_location - holmes_rule_homes-rule: - type: dcae.nodes.DockerContainerForComponentsUsingDmaap - properties: - application_config: - services_calls: - - msb_config: - concat: - - '{{' - - get_property: - - SELF - - msb_config - - node_name - - '}}' - streams_publishes: [] - streams_subscribes: - - sec_measurement_unsecure: - aaf_password: - get_input: topic0_aaf_password - aaf_username: - get_input: topic0_aaf_username - dmaap_info: <<topic0>> - type: message_router - - sec_measurement: - aaf_password: - get_input: topic1_aaf_password - aaf_username: - get_input: topic1_aaf_username - dmaap_info: <<topic1>> - type: message_router - docker_config: - healthcheck: - endpoint: api/holmes-rule-mgmt/v1/healthcheck - interval: 15s - timeout: 1s - type: http - ports: - - 9101:9101 - image: nexus3.onap.org:10001/onap/holmes/rule-manamgement:latest - location_id: - get_input: dcae_service_location - service_component_type: dcae-analytics-holmes-rule-manamgement - streams_publishes: [] - streams_subscribes: - - client_role: - get_input: topic0_client_role - location: - get_input: dcae_service_location - name: topic0 - type: message_router - - client_role: - get_input: topic1_client_role - location: - get_input: dcae_service_location - name: topic1 - type: message_router - relationships: - - target: docker_host_host - type: dcae.relationships.component_contained_in - - target: topic0 - type: dcae.relationships.subscribe_to_events - - target: topic1 - type: dcae.relationships.subscribe_to_events - - target: policy_0 - type: dcae.relationships.depends_on - topic0: - type: dcae.nodes.Topic - properties: - topic_name: '' - topic1: - type: dcae.nodes.Topic - properties: - topic_name: '' diff --git a/src/test/resources/clds/single-microservice-fragment-valid.yaml b/src/test/resources/clds/single-microservice-fragment-invalid.yaml index 2c1680717..2c1680717 100644 --- a/src/test/resources/clds/single-microservice-fragment-valid.yaml +++ b/src/test/resources/clds/single-microservice-fragment-invalid.yaml diff --git a/src/test/resources/clds/single-microservice-fragment-valid-with-version.yaml b/src/test/resources/clds/single-microservice-fragment-valid-with-version.yaml new file mode 100644 index 000000000..ae31fb16a --- /dev/null +++ b/src/test/resources/clds/single-microservice-fragment-valid-with-version.yaml @@ -0,0 +1,21 @@ +second_app: + type: dcae.nodes.ContainerizedServiceComponentUsingDmaap + properties: + service_component_type: dcaegen2-analytics-tca + service_component_name_override: second_app + image: { get_input: second_app_docker_image } + name: second_app + policy_id: + policy_model_id: "type1" + policy_model_version: "10.0.0" + interfaces: + cloudify.interfaces.lifecycle: + start: + inputs: + envs: + grpc_server.host: "first_app.onap" + dmaap_ip: {get_input: dmaap_ip} + dmapp_topic: {get_input: dmaap_topic} + policy_id: {get_input: policy_id} + ports: + - 8080:8080 diff --git a/src/test/resources/clds/tca-old-style-ms.yaml b/src/test/resources/clds/tca-old-style-ms.yaml deleted file mode 100644 index b976190a1..000000000 --- a/src/test/resources/clds/tca-old-style-ms.yaml +++ /dev/null @@ -1,169 +0,0 @@ -tosca_definitions_version: cloudify_dsl_1_3 -imports: - - "http://www.getcloudify.org/spec/cloudify/3.4/types.yaml" - - https://nexus.onap.org/service/local/repositories/raw/content/org.onap.dcaegen2.platform.plugins/R2/dockerplugin/3.2.0/dockerplugin_types.yaml - - https://nexus.onap.org/service/local/repositories/raw/content/org.onap.dcaegen2.platform.plugins/R2/relationshipplugin/1.0.0/relationshipplugin_types.yaml - - https://nexus.onap.org/service/local/repositories/raw/content/org.onap.dcaegen2.platform.plugins/R2/dcaepolicyplugin/2.3.0/dcaepolicyplugin_types.yaml - -inputs: - dh_override: - type: string - default: "component_dockerhost" - dh_location_id: - type: string - default: "zone1" - aaiEnrichmentHost: - type: string - default: "none" - aaiEnrichmentPort: - type: string - default: 8443 - enableAAIEnrichment: - type: string - default: false - dmaap_host: - type: string - default: dmaap.onap-message-router - dmaap_port: - type: string - default: 3904 - enableRedisCaching: - type: string - default: false - redisHosts: - type: string - tag_version: - type: string - default: "nexus3.onap.org:10001/onap//onap/org.onap.dcaegen2.deployments.tca-cdap-container:1.0.0" - consul_host: - type: string - default: consul-server.onap-consul - consul_port: - type: string - default: "8500" - cbs_host: - type: string - default: "config-binding-service.dcae" - cbs_port: - type: string - default: "10000" - policy_id: - type: string - default: "none" - external_port: - type: string - description: "Port for CDAPgui to be exposed" - default: "32010" - -node_templates: - docker_service_host: - properties: - docker_host_override: - get_input: dh_override - location_id: - get_input: dh_location_id - type: dcae.nodes.SelectedDockerHost - tca_docker: - relationships: - - type: dcae.relationships.component_contained_in - target: docker_service_host - - target: tca_policy - type: cloudify.relationships.depends_on - type: dcae.nodes.DockerContainerForComponentsUsingDmaap - properties: - application_config: - app_config: - appDescription: DCAE Analytics Threshold Crossing Alert Application - appName: dcae-tca - tcaAlertsAbatementTableName: TCAAlertsAbatementTable - tcaAlertsAbatementTableTTLSeconds: '1728000' - tcaSubscriberOutputStreamName: TCASubscriberOutputStream - tcaVESAlertsTableName: TCAVESAlertsTable - tcaVESAlertsTableTTLSeconds: '1728000' - tcaVESMessageStatusTableName: TCAVESMessageStatusTable - tcaVESMessageStatusTableTTLSeconds: '86400' - thresholdCalculatorFlowletInstances: '2' - app_preferences: - aaiEnrichmentHost: - get_input: aaiEnrichmentHost - aaiEnrichmentIgnoreSSLCertificateErrors: 'true' - aaiEnrichmentPortNumber: '8443' - aaiEnrichmentProtocol: https - aaiEnrichmentUserName: DCAE - aaiEnrichmentUserPassword: DCAE - aaiVMEnrichmentAPIPath: /aai/v11/search/nodes-query - aaiVNFEnrichmentAPIPath: /aai/v11/network/generic-vnfs/generic-vnf - enableAAIEnrichment: - get_input: enableAAIEnrichment - enableRedisCaching: - get_input: enableRedisCaching - redisHosts: - get_input: redisHosts - enableAlertCEFFormat: 'false' - publisherContentType: application/json - publisherHostName: - get_input: dmaap_host - publisherHostPort: - get_input: dmaap_port - publisherMaxBatchSize: '1' - publisherMaxRecoveryQueueSize: '100000' - publisherPollingInterval: '20000' - publisherProtocol: http - publisherTopicName: unauthenticated.DCAE_CL_OUTPUT - subscriberConsumerGroup: OpenDCAE-c12 - subscriberConsumerId: c12 - subscriberContentType: application/json - subscriberHostName: - get_input: dmaap_host - subscriberHostPort: - get_input: dmaap_port - subscriberMessageLimit: '-1' - subscriberPollingInterval: '30000' - subscriberProtocol: http - subscriberTimeoutMS: '-1' - subscriberTopicName: unauthenticated.SEC_MEASUREMENT_OUTPUT - tca_policy_default: '{"domain":"measurementsForVfScaling","metricsPerEventName":[{"eventName":"vFirewallBroadcastPackets","controlLoopSchemaType":"VNF","policyScope":"DCAE","policyName":"DCAE.Config_tca-hi-lo","policyVersion":"v0.0.1","thresholds":[{"closedLoopControlName":"ControlLoop-vFirewall-d0a1dfc6-94f5-4fd4-a5b5-4630b438850a","version":"1.0.2","fieldPath":"$.event.measurementsForVfScalingFields.vNicUsageArray[*].receivedTotalPacketsDelta","thresholdValue":300,"direction":"LESS_OR_EQUAL","severity":"MAJOR","closedLoopEventStatus":"ONSET"},{"closedLoopControlName":"ControlLoop-vFirewall-d0a1dfc6-94f5-4fd4-a5b5-4630b438850a","version":"1.0.2","fieldPath":"$.event.measurementsForVfScalingFields.vNicUsageArray[*].receivedTotalPacketsDelta","thresholdValue":700,"direction":"GREATER_OR_EQUAL","severity":"CRITICAL","closedLoopEventStatus":"ONSET"}]},{"eventName":"vLoadBalancer","controlLoopSchemaType":"VM","policyScope":"DCAE","policyName":"DCAE.Config_tca-hi-lo","policyVersion":"v0.0.1","thresholds":[{"closedLoopControlName":"ControlLoop-vDNS-6f37f56d-a87d-4b85-b6a9-cc953cf779b3","version":"1.0.2","fieldPath":"$.event.measurementsForVfScalingFields.vNicUsageArray[*].receivedTotalPacketsDelta","thresholdValue":300,"direction":"GREATER_OR_EQUAL","severity":"CRITICAL","closedLoopEventStatus":"ONSET"}]},{"eventName":"Measurement_vGMUX","controlLoopSchemaType":"VNF","policyScope":"DCAE","policyName":"DCAE.Config_tca-hi-lo","policyVersion":"v0.0.1","thresholds":[{"closedLoopControlName":"ControlLoop-vCPE-48f0c2c3-a172-4192-9ae3-052274181b6e","version":"1.0.2","fieldPath":"$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[0].value","thresholdValue":0,"direction":"EQUAL","severity":"MAJOR","closedLoopEventStatus":"ABATED"},{"closedLoopControlName":"ControlLoop-vCPE-48f0c2c3-a172-4192-9ae3-052274181b6e","version":"1.0.2","fieldPath":"$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[0].value","thresholdValue":0,"direction":"GREATER","severity":"CRITICAL","closedLoopEventStatus":"ONSET"}]}]}' - service_component_type: dcaegen2-analytics_tca - docker_config: - healthcheck: - endpoint: /healthcheck - interval: 15s - timeout: 1s - type: http - image: - get_input: tag_version - interfaces: - cloudify.interfaces.lifecycle: - start: - inputs: - envs: - DMAAPHOST: - { get_input: dmaap_host } - DMAAPPORT: - { get_input: dmaap_port } - DMAAPPUBTOPIC: "unauthenticated.DCAE_CL_OUTPUT" - DMAAPSUBTOPIC: "unauthenticated.SEC_MEASUREMENT_OUTPUT" - AAIHOST: - { get_input: aaiEnrichmentHost } - AAIPORT: - { get_input: aaiEnrichmentPort } - CONSUL_HOST: - { get_input: consul_host } - CONSUL_PORT: - { get_input: consul_port } - CBS_HOST: - { get_input: cbs_host } - CBS_PORT: - { get_input: cbs_port } - CONFIG_BINDING_SERVICE: "config_binding_service" - ports: - - concat: ["11011:", { get_input: external_port }] - stop: - inputs: - cleanup_image: true - tca_policy: - type: dcae.nodes.policy - properties: - policy_id: - get_input: policy_id - diff --git a/src/test/resources/example/sdc/blueprint-dcae/holmes.yaml b/src/test/resources/example/sdc/blueprint-dcae/holmes.yaml deleted file mode 100644 index f180a7df6..000000000 --- a/src/test/resources/example/sdc/blueprint-dcae/holmes.yaml +++ /dev/null @@ -1,174 +0,0 @@ -tosca_definitions_version: cloudify_dsl_1_3 -imports: -- http://www.getcloudify.org/spec/cloudify/3.4/types.yaml -- https://nexus01.research.att.com:8443/repository/solutioning01-mte2-raw/type_files/docker/2.3.0+t.0.4/node-type.yaml -- https://nexus01.research.att.com:8443/repository/solutioning01-mte2-raw/type_files/relationship/1.0.0/node-type.yaml -- http://nexus01.research.att.com:8081/repository/solutioning01-mte2-raw/type_files/dmaap/1.2.0/dmaap.yaml -inputs: - dcae_service_location: - type: string - docker_host_override: - type: string - topic0_aaf_password: - type: string - topic0_aaf_username: - type: string - topic0_client_role: - type: string - topic1_aaf_password: - type: string - topic1_aaf_username: - type: string - topic1_client_role: - type: string -node_templates: - policy_0: - type: dcae.nodes.policy - properties: - policy_model: policy.nodes.holmes - policy_filter: "DCAE.Config_Holmes.*" - docker_host_host: - type: dcae.nodes.SelectedDockerHost - properties: - docker_host_override: - get_input: docker_host_override - location_id: - get_input: dcae_service_location - holmes-rule_homes-rule: - type: dcae.nodes.DockerContainerForComponentsUsingDmaap - properties: - application_config: - holmes.default.rule.volte.scenario1: 'package dcae.ves.test - - import org.onap.some.related.packages; - - rule"SameVNF_Relation_Rule" - - salience 120 - - no-loop true - - when - - $root : VesAlarm( - - $sourceId: sourceId, sourceId != null && !sourceId.equals(""), - - specificProblem in ( "LSS_cpiPCSCFFailReg(121297)", "LSS_cpiSIPRetransmitInvite(120267)" ), - - $eventId: eventId) - - $child : VesAlarm( eventId != $eventId, - - CorrelationUtil.getInstance().isTopologicallyRelated(sourceId, $sourceId), - - specificProblem in ("LSS_externalLinkDown(4271)","LSS_failedAttachReqsRateExceeded(4272)"), - - this after [-60s, 60s] $root) - - then - - DmaapService.publishResult(...); - - end' - holmes.default.rule.volte.scenario2: 'package dcae.ves.test - - import org.onap.some.related.packages; - - rule"SameVNF_Relation_Rule_1" - - salience 120 - - no-loop true - - when - - $root : VesAlarm( - - $sourceId: sourceId, sourceId != null && !sourceId.equals(""), - - specificProblem in ( "LSS_cpiPCSCFFailReg(121297)", "LSS_cpiSIPRetransmitInvite(120267)" ), - - $eventId: eventId) - - $child : VesAlarm( eventId != $eventId, - - CorrelationUtil.getInstance().isTopologicallyRelated(sourceId, $sourceId), - - specificProblem in ("LSS_externalLinkDown(4271)","LSS_failedAttachReqsRateExceeded(4272)"), - - this after [-60s, 60s] $root) - - then - - DmaapService.publishResult(...); - - end' - services_calls: - - msb_config: - concat: - - '{{' - - get_property: - - SELF - - msb_config - - node_name - - '}}' - streams_publishes: [] - streams_subscribes: - - sec_measurement_unsecure: - aaf_password: - get_input: topic0_aaf_password - aaf_username: - get_input: topic0_aaf_username - dmaap_info: <<topic0>> - type: message_router - - sec_measurement: - aaf_password: - get_input: topic1_aaf_password - aaf_username: - get_input: topic1_aaf_username - dmaap_info: <<topic1>> - type: message_router - docker_config: - healthcheck: - endpoint: api/holmes-rule-mgmt/v1/healthcheck - interval: 15s - timeout: 1s - type: http - ports: - - 9101:9101 - image: nexus3.onap.org:10001/onap/holmes/rule-manamgement:latest - location_id: - get_input: dcae_service_location - service_component_type: dcae-analytics-holmes-rule-manamgement - streams_publishes: [] - streams_subscribes: - - client_role: - get_input: topic0_client_role - location: - get_input: dcae_service_location - name: topic0 - type: message_router - - client_role: - get_input: topic1_client_role - location: - get_input: dcae_service_location - name: topic1 - type: message_router - relationships: - - target: docker_host_host - type: dcae.relationships.component_contained_in - - target: topic0 - type: dcae.relationships.subscribe_to_events - - target: topic1 - type: dcae.relationships.subscribe_to_events - - target: policy_0 - type: dcae.relationships.depends_on - topic0: - type: dcae.nodes.Topic - properties: - topic_name: '' - topic1: - type: dcae.nodes.Topic - properties: - topic_name: '' diff --git a/src/test/resources/example/sdc/blueprint-dcae/not-recognized.yaml b/src/test/resources/example/sdc/blueprint-dcae/not-recognized.yaml deleted file mode 100644 index 6522885ff..000000000 --- a/src/test/resources/example/sdc/blueprint-dcae/not-recognized.yaml +++ /dev/null @@ -1,130 +0,0 @@ -tosca_definitions_version: cloudify_dsl_1_3 -imports: -- http://dockercentral.it.att.com:8093/nexus/repository/rawcentral/com.att.dcae.controller/type_files/dockerplugin/2.4.0+t.0.8/node-type.yaml -- http://dockercentral.it.att.com:8093/nexus/repository/rawcentral/com.att.dcae.controller/type_files/dmaap/1.2.0+t.0.9/dmaap.yaml -- http://dockercentral.it.att.com:8093/nexus/repository/rawcentral/com.att.dcae.controller/type_files/relationship/1.0.0+t.0.1/relationship-types.yaml -inputs: - commonEventHeader.domain: - type: string - commonEventHeader.version: - type: string - dcae_service_location: - type: string - docker_host_override: - type: string - default: '' - elementType: - type: string - feed_id: - type: string - mappingType: - type: string - measurementsForVfScalingFields.measurementsForVfScalingVersion: - type: string - phases.docker_map.phaseName: - type: string - topic1_aaf_password: - type: string - topic1_aaf_username: - type: string - topic1_client_role: - type: string -node_templates: - DockerMap_n.1519416493392.3_DockerMap: - type: dcae.nodes.DockerContainerForComponentsUsingDmaap - properties: - application_config: - commonEventHeader.domain: - get_input: commonEventHeader.domain - commonEventHeader.version: - get_input: commonEventHeader.version - csvToVesJson: '{"processing":[{"phase":"pmossFoiPhase","filter":{"class":"Contains","string":"${file}","value":"NOKvMRF"},"processors":[{"class":"LogEvent","title":"PM-FOIEvent-Received","logName":"com.att.gfp.dcae.eventProcessor.input","logLevel":"DEBUG"},{"class":"RunPhase","phase":"vFoiNokRunPhase"}]},{"phase":"vFoiNokRunPhase","comments":"generic parsing","processors":[{"replace":",","field":"data","class":"ReplaceText","find":";"},{"replace":",","field":"file","class":"ReplaceText","find":"_"}]},{"phase":"vFoiNokRunPhase","filter":{"class":"Contains","string":"${data[1]}","value":"Begin date"},"processors":[{"class":"ExtractText","field":"event.commonEventHeader.startEpochMicrosec","value":"${data[1]}","regex":".*Begin date,([^,]*),.*"},{"class":"DateFormatter","value":"${event.commonEventHeader.startEpochMicrosec}","fromFormat":"MM/dd/yy HH:mm:ss a","fromTz":"GMT","toField":"event.commonEventHeader.startEpochMicrosec","toFormat":"#ms","toTz":"#ms"}]},{"phase":"vFoiNokRunPhase","filter":{"class":"Contains","string":"${data[2]}","value":"End date"},"processors":[{"class":"ExtractText","field":"event.commonEventHeader.lastEpochMicrosec","value":"${data[2]}","regex":".*End date,([^,]*),.*"},{"class":"DateFormatter","value":"${event.commonEventHeader.lastEpochMicrosec}","fromFormat":"MM/dd/yy HH:mm:ss a","fromTz":"GMT","toField":"event.commonEventHeader.lastEpochMicrosec","toFormat":"#ms","toTz":"#ms"},{"class":"DateFormatter","value":"${event.commonEventHeader.lastEpochMicrosec}","fromFormat":"#ms","fromTz":"#ms","toField":"event.commonEventHeader.internalHeaderFields.DATETIMEUTC","toFormat":"yyyyMMddHHmmss","toTz":"GMT"}]},{"phase":"vFoiNokRunPhase","processors":[{"class":"ExtractText","field":"event.measurementsForVfScalingFields.additionalMeasurements.arrayOfFields[0].value","value":"${data[7]}","regex":".*CpuSys,+(\\d+,){3}.*"},{"class":"ReplaceText","replace":"","field":"event.measurementsForVfScalingFields.additionalMeasurements.arrayOfFields[0].value","find":","},{"class":"ExtractText","field":"event.measurementsForVfScalingFields.additionalMeasurements.arrayOfFields[1].value","value":"${data[5]}","regex":".*CpuUsage,+(\\d+,){3}.*"},{"class":"ReplaceText","replace":"","field":"event.measurementsForVfScalingFields.additionalMeasurements.arrayOfFields[1].value","find":","},{"class":"ExtractText","field":"event.measurementsForVfScalingFields.additionalMeasurements.arrayOfFields[2].value","value":"${data[7]}","regex":".*CpuSys,+(\\d+,){2}.*"},{"class":"ReplaceText","replace":"","field":"event.measurementsForVfScalingFields.additionalMeasurements.arrayOfFields[2].value","find":","},{"class":"ExtractText","field":"event.measurementsForVfScalingFields.additionalMeasurements.arrayOfFields[3].value","value":"${data[5]}","regex":".*CpuUsage,+(\\d+,){2}.*"},{"class":"ReplaceText","replace":"","field":"event.measurementsForVfScalingFields.additionalMeasurements.arrayOfFields[3].value","find":","}]},{"phase":"vFoiNokRunPhase","processors":[{"class":"ExtractText","field":"event.commonEventHeader.eventName","value":"${file}","regex":"([^,]*),.*"},{"class":"ExtractText","field":"event.commonEventHeader.reportingEntityName","value":"${file}","regex":".*,([^,]*)\\..*"}]},{"phase":"vFoiNokRunPhase","comments":"generic parsing","processors":[{"class":"Set","updates":{"event.commonEventHeader.lastEpochMicrosec":"${event.commonEventHeader.lastEpochMicrosec}000","event.commonEventHeader.startEpochMicrosec":"${event.commonEventHeader.startEpochMicrosec}000","event.commonEventHeader.domain":"measurementsForVfScaling","event.commonEventHeader.eventName":"Mfvs_${event.commonEventHeader.eventName}","event.commonEventHeader.eventType":"csv2ves","event.commonEventHeader.priority":"Normal","event.commonEventHeader.sequence":0,"event.commonEventHeader.sourceName":"${event.commonEventHeader.reportingEntityName}","event.commonEventHeader.version":3.0,"event.commonEventHeader.eventId":"%{now.ms}","event.commonEventHeader.internalHeaderFields.dbTableSuffix":"","event.measurementsForVfScalingFields.measurementInterval":900,"event.measurementsForVfScalingFields.measurementsForVfScalingVersion":2.0,"event.measurementsForVfScalingFields.additionalMeasurements.name":"csv2ves","event.measurementsForVfScalingFields.additionalMeasurements.arrayOfFields[0].name":"CpuSysMax","event.measurementsForVfScalingFields.additionalMeasurements.arrayOfFields[1].name":"CpuUsageMax","event.measurementsForVfScalingFields.additionalMeasurements.arrayOfFields[2].name":"CpuSysAverage","event.measurementsForVfScalingFields.additionalMeasurements.arrayOfFields[3].name":"CpuUsageAverage"}},{"class":"DateFormatter","value":"${event.commonEventHeader.eventId}","fromFormat":"#ms","fromTz":"#ms","toField":"event.commonEventHeader.eventId","toFormat":"yyyyMMddHHmmssSSS","toTz":"GMT"}]},{"phase":"vFoiNokRunPhase","processors":[{"class":"Clear","fields":["data","file"]},{"class":"LogText","logLevel":"INFO","logText":"Finished-PM-FOIEvent-parsing"},{"class":"LogEvent","title":"PM-FOIEvent-Received-Output"},{"class":"RunPhase","phase":"foiEventToDmaapPhase"}]}]}' - elementType: - get_input: elementType - isSelfServeComponent: 'True' - mappingType: - get_input: mappingType - measurementsForVfScalingFields.measurementsForVfScalingVersion: - get_input: measurementsForVfScalingFields.measurementsForVfScalingVersion - phases.docker_map.phaseName: - get_input: phases.docker_map.phaseName - services_calls: {} - streams_publishes: - DCAE-VES-PM-EVENT: - aaf_password: - get_input: topic1_aaf_password - aaf_username: - get_input: topic1_aaf_username - dmaap_info: <<topic1_n.1519416493404.5>> - type: message_router - streams_subscribes: - DCAE_PM_DATA_C_M: - dmaap_info: <<feed_n.1519416394214.2>> - type: data_router - useDtiConfig: 'False' - docker_config: - healthcheck: - interval: 300s - script: /opt/app/vec/bin/common/HealthCheck_DockerMap.sh - timeout: 15s - type: docker - volumes: - - container: - bind: /opt/app/dcae-certificate - host: - path: /opt/app/dcae-certificate - - container: - bind: /opt/app/dmd/log/AGENT - host: - path: /opt/logs/DCAE/dockermap/dmd/AGENT - - container: - bind: /opt/app/dmd/log/WATCHER - host: - path: /opt/logs/DCAE/dockermap/dmd/WATCHER - - container: - bind: /opt/app/vec/logs/DCAE - host: - path: /opt/logs/DCAE/dockermap/dockermap-logs - - container: - bind: /opt/app/vec/archive/data - host: - path: /opt/data/DCAE/dockermap/dockermap-archive - image: dockercentral.it.att.com:5100/com.att.dcae.controller/dcae-controller-dockermap:18.02-004 - location_id: - get_input: dcae_service_location - service_component_type: dcae.collectors.docker.map.pm - streams_publishes: - - client_role: - get_input: topic1_client_role - location: - get_input: dcae_service_location - name: topic1_n.1519416493404.5 - type: message_router - streams_subscribes: - - location: - get_input: dcae_service_location - name: feed_n.1519416394214.2 - type: data_router - relationships: - - target: docker_host_host - type: dcae.relationships.component_contained_in - - target: feed_n.1519416394214.2 - type: dcae.relationships.subscribe_to_files - - target: topic1_n.1519416493404.5 - type: dcae.relationships.publish_events - docker_host_host: - type: dcae.nodes.SelectedDockerHost - properties: - docker_host_override: - get_input: docker_host_override - location_id: - get_input: dcae_service_location - feed_n.1519416394214.2: - type: dcae.nodes.ExistingFeed - properties: - feed_id: - get_input: feed_id - topic1_n.1519416493404.5: - type: dcae.nodes.Topic - properties: - topic_name: DCAE-VES-PM-EVENT-v1 diff --git a/src/test/resources/example/sdc/blueprint-dcae/prop-text-for-tca-2.json b/src/test/resources/example/sdc/blueprint-dcae/prop-text-for-tca-2.json deleted file mode 100644 index d7a54162f..000000000 --- a/src/test/resources/example/sdc/blueprint-dcae/prop-text-for-tca-2.json +++ /dev/null @@ -1,48 +0,0 @@ -{ - "global": [ - { - "name": "service", - "value": [ - "4cc5b45a-1f63-4194-8100-cd8e14248c92" - ] - }, - { - "name": "vf", - "value": [ - "023a3f0d-1161-45ff-b4cf-8918a8ccf3ad" - ] - }, - { - "name": "actionSet", - "value": [ - "vnfRecipe" - ] - }, - { - "name": "location", - "value": [ - "DC1" - ] - }, - { - "name": "deployParameters", - "value": { - "aaiEnrichmentHost": "aai.onap.svc.cluster.local", - "aaiEnrichmentPort": "8443", - "enableAAIEnrichment": true, - "dmaap_host": "message-router.onap", - "dmaap_port": "3904", - "enableRedisCaching": false, - "redisHosts": "dcae-redis.onap.svc.cluster.local:6379", - "tag_version": "nexus3.onap.org:10001/onap/org.onap.dcaegen2.deployments.tca-cdap-container:1.1.1", - "consul_host": "consul-server.onap", - "consul_port": "8500", - "cbs_host": "config-binding-servicel", - "cbs_port": "10000", - "external_port": "32012", - "policy_model_id": "onap.policies.monitoring.cdap.tca.hi.lo.app", - "policy_id": "AUTO_GENERATED_POLICY_ID_AT_SUBMIT" - } - } - ] -}
\ No newline at end of file diff --git a/src/test/resources/example/sdc/blueprint-dcae/prop-text-for-tca-3.json b/src/test/resources/example/sdc/blueprint-dcae/prop-text-for-tca-3.json deleted file mode 100644 index 012c46e9c..000000000 --- a/src/test/resources/example/sdc/blueprint-dcae/prop-text-for-tca-3.json +++ /dev/null @@ -1,48 +0,0 @@ -{ - "global": [ - { - "name": "service", - "value": [ - "4cc5b45a-1f63-4194-8100-cd8e14248c92" - ] - }, - { - "name": "vf", - "value": [ - "07e266fc-49ab-4cd7-8378-ca4676f1b9ec" - ] - }, - { - "name": "actionSet", - "value": [ - "vnfRecipe" - ] - }, - { - "name": "location", - "value": [ - "DC1" - ] - }, - { - "name": "deployParameters", - "value": { - "aaiEnrichmentHost": "aai.onap.svc.cluster.local", - "aaiEnrichmentPort": "8443", - "enableAAIEnrichment": true, - "dmaap_host": "message-router.onap.svc.cluster.local", - "dmaap_port": "3904", - "enableRedisCaching": false, - "redisHosts": "dcae-redis.onap.svc.cluster.local:6379", - "tag_version": "nexus3.onap.org:10001/onap/org.onap.dcaegen2.deployments.tca-cdap-container:1.1.0-STAGING-latest", - "consul_host": "consul-server.onap.svc.cluster.local", - "consul_port": "8500", - "cbs_host": "config-binding-service.dcae.svc.cluster.local", - "cbs_port": "10000", - "external_port": "32012", - "policy_id": "AUTO_GENERATED_POLICY_ID_AT_SUBMIT", - "policy_model_id": "onap.policies.monitoring.cdap.tca.hi.lo.app" - } - } - ] -}
\ No newline at end of file diff --git a/src/test/resources/example/sdc/blueprint-dcae/prop-text-for-tca.json b/src/test/resources/example/sdc/blueprint-dcae/prop-text-for-tca.json deleted file mode 100644 index ce3158d93..000000000 --- a/src/test/resources/example/sdc/blueprint-dcae/prop-text-for-tca.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - "global": [ - { - "name": "service", - "value": [ - "4cc5b45a-1f63-4194-8100-cd8e14248c92" - ] - }, - { - "name": "vf", - "value": [ - "07e266fc-49ab-4cd7-8378-ca4676f1b9ec" - ] - }, - { - "name": "actionSet", - "value": [ - "vnfRecipe" - ] - }, - { - "name": "location", - "value": [ - "DC1" - ] - }, - { - "name": "deployParameters", - "value": { - "location_id": "", - "service_id": "", - "policy_id": "AUTO_GENERATED_POLICY_ID_AT_SUBMIT" - } - } - ] -} diff --git a/src/test/resources/http-cache/example/pdp/api/deletePolicy/.file b/src/test/resources/http-cache/example/pdp/api/deletePolicy/.file deleted file mode 100644 index 0637a088a..000000000 --- a/src/test/resources/http-cache/example/pdp/api/deletePolicy/.file +++ /dev/null @@ -1 +0,0 @@ -[]
\ No newline at end of file diff --git a/src/test/resources/http-cache/example/pdp/api/getConfig/.file b/src/test/resources/http-cache/example/pdp/api/getConfig/.file deleted file mode 100644 index fb2ad04b4..000000000 --- a/src/test/resources/http-cache/example/pdp/api/getConfig/.file +++ /dev/null @@ -1,2 +0,0 @@ -[{"policyConfigMessage":"Config Retrieved! ","policyConfigStatus":"CONFIG_RETRIEVED","type":"JSON","config":"{\"service\":\"tca_policy\",\"location\":\"SampleServiceLocation\",\"uuid\":\"test\",\"policyName\":\"MicroServicevCPE\",\"description\":\"MicroService vCPE Policy\",\"configName\":\"SampleConfigName\",\"templateVersion\":\"OpenSource.version.1\",\"version\":\"1.1.0\",\"priority\":\"1\",\"policyScope\":\"resource=SampleResource,service=SampleService,type=SampleType,closedLoopControlName=ControlLoop-vCPE-48f0c2c3-a172-4192-9ae3-052274181b6e\",\"riskType\":\"SampleRiskType\",\"riskLevel\":\"1\",\"guard\":\"False\",\"content\":{\"tca_policy\":{\"domain\":\"measurementsForVfScaling\",\"metricsPerEventName\":[{\"eventName\":\"Measurement_vGMUX\",\"controlLoopSchemaType\":\"VNF\",\"policyScope\":\"DCAE\",\"policyName\":\"DCAE.Config_tca-hi-lo\",\"policyVersion\":\"v0.0.1\",\"thresholds\":[{\"closedLoopControlName\":\"ControlLoop-vCPE-48f0c2c3-a172-4192-9ae3-052274181b6e\",\"version\":\"1.0.2\",\"fieldPath\":\"$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[0].value\",\"thresholdValue\":0,\"direction\":\"EQUAL\",\"severity\":\"MAJOR\",\"closedLoopEventStatus\":\"ABATED\"},{\"closedLoopControlName\":\"ControlLoop-vCPE-48f0c2c3-a172-4192-9ae3-052274181b6e\",\"version\":\"1.0.2\",\"fieldPath\":\"$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[0].value\",\"thresholdValue\":0,\"direction\":\"GREATER\",\"severity\":\"CRITICAL\",\"closedLoopEventStatus\":\"ONSET\"}]}]}}}","policyName":"com.Config_MS_MicroServicevCPE.1.xml","policyVersion":"1","matchingConditions":{"ONAPName":"DCAE","ConfigName":"SampleConfigName","service":"tca_policy","uuid":"test","Location":"SampleServiceLocation"},"responseAttributes":{},"property":null}, -{"policyConfigMessage":"Config Retrieved! ","policyConfigStatus":"CONFIG_RETRIEVED","type":"JSON","config":"{\"service\":\"tca_policy\",\"location\":\"SampleServiceLocation\",\"uuid\":\"test\",\"policyName\":\"MicroServicevCPE\",\"description\":\"MicroService vCPE Policy\",\"configName\":\"SampleConfigName\",\"templateVersion\":\"OpenSource.version.1\",\"version\":\"1.1.0\",\"priority\":\"1\",\"policyScope\":\"resource=SampleResource,service=SampleService,type=SampleType,closedLoopControlName=ControlLoop-vCPE-48f0c2c3-a172-4192-9ae3-052274181b6e\",\"riskType\":\"SampleRiskType\",\"riskLevel\":\"1\",\"guard\":\"False\",\"content\":{\"tca_policy\":{\"domain\":\"measurementsForVfScaling\",\"metricsPerEventName\":[{\"eventName\":\"Measurement_vGMUX\",\"controlLoopSchemaType\":\"VNF\",\"policyScope\":\"DCAE\",\"policyName\":\"DCAE.Config_tca-hi-lo\",\"policyVersion\":\"v0.0.1\",\"thresholds\":[{\"closedLoopControlName\":\"ControlLoop-vCPE-48f0c2c3-a172-4192-9ae3-052274181b6e\",\"version\":\"1.0.2\",\"fieldPath\":\"$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[0].value\",\"thresholdValue\":0,\"direction\":\"EQUAL\",\"severity\":\"MAJOR\",\"closedLoopEventStatus\":\"ABATED\"},{\"closedLoopControlName\":\"ControlLoop-vCPE-48f0c2c3-a172-4192-9ae3-052274181b6e\",\"version\":\"1.0.2\",\"fieldPath\":\"$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[0].value\",\"thresholdValue\":0,\"direction\":\"GREATER\",\"severity\":\"CRITICAL\",\"closedLoopEventStatus\":\"ONSET\"}]}]}}}","policyName":"ClHolmes1.Config_ClosedLoop_f142fc95_2601_11e8_89ce_0242ac130002_null","policyVersion":"1","matchingConditions":{"ONAPName":"DCAE","ConfigName":"SampleConfigName","service":"tca_policy","uuid":"test","Location":"SampleServiceLocation"},"responseAttributes":{},"property":null}]
\ No newline at end of file diff --git a/src/test/resources/http-cache/example/pdp/api/getConfig/.header b/src/test/resources/http-cache/example/pdp/api/getConfig/.header deleted file mode 100644 index 9958716f2..000000000 --- a/src/test/resources/http-cache/example/pdp/api/getConfig/.header +++ /dev/null @@ -1 +0,0 @@ -{"Transfer-Encoding": "chunked", "Date": "Mon, 12 Mar 2018 15:03:26 GMT", "Content-Type": "application/json;charset=UTF-8", "Server": "Apache-Coyote/1.1"}
\ No newline at end of file diff --git a/src/test/resources/http-cache/example/pdp/api/pushPolicy/.file b/src/test/resources/http-cache/example/pdp/api/pushPolicy/.file deleted file mode 100644 index 0637a088a..000000000 --- a/src/test/resources/http-cache/example/pdp/api/pushPolicy/.file +++ /dev/null @@ -1 +0,0 @@ -[]
\ No newline at end of file diff --git a/src/test/resources/http-cache/example/pdp/api/pushPolicy/.header b/src/test/resources/http-cache/example/pdp/api/pushPolicy/.header deleted file mode 100644 index 6a280d972..000000000 --- a/src/test/resources/http-cache/example/pdp/api/pushPolicy/.header +++ /dev/null @@ -1 +0,0 @@ -{"Transfer-Encoding": "chunked", "Set-Cookie": "JSESSIONID=158qxkdtdobkd1umr3ikkgrmlx;Path=/", "Expires": "Thu, 01 Jan 1970 00:00:00 GMT", "Server": "Jetty(9.3.21.v20170918)", "Content-Type": "application/json", "X-ECOMP-RequestID": "e2ddb3c8-994f-47df-b4dc-097d4fb55c08"}
\ No newline at end of file diff --git a/src/test/resources/http-cache/example/pdp/api/updatePolicy/.file b/src/test/resources/http-cache/example/pdp/api/updatePolicy/.file deleted file mode 100644 index 0637a088a..000000000 --- a/src/test/resources/http-cache/example/pdp/api/updatePolicy/.file +++ /dev/null @@ -1 +0,0 @@ -[]
\ No newline at end of file diff --git a/src/test/resources/http-cache/example/pdp/api/updatePolicy/.header b/src/test/resources/http-cache/example/pdp/api/updatePolicy/.header deleted file mode 100644 index 6a280d972..000000000 --- a/src/test/resources/http-cache/example/pdp/api/updatePolicy/.header +++ /dev/null @@ -1 +0,0 @@ -{"Transfer-Encoding": "chunked", "Set-Cookie": "JSESSIONID=158qxkdtdobkd1umr3ikkgrmlx;Path=/", "Expires": "Thu, 01 Jan 1970 00:00:00 GMT", "Server": "Jetty(9.3.21.v20170918)", "Content-Type": "application/json", "X-ECOMP-RequestID": "e2ddb3c8-994f-47df-b4dc-097d4fb55c08"}
\ No newline at end of file diff --git a/src/test/resources/http-cache/example/policy/api/v1/policytypes/.file b/src/test/resources/http-cache/example/policy/api/v1/policytypes/.file new file mode 100644 index 000000000..7394d3f91 --- /dev/null +++ b/src/test/resources/http-cache/example/policy/api/v1/policytypes/.file @@ -0,0 +1,60 @@ +tosca_definitions_version: tosca_simple_yaml_1_0_0 +policy_types: + - onap.policies.Monitoring: + version: 1.0.0 + description: A base policy type for all policies that govern monitoring provision + derived_from: tosca.policies.Root + properties: + # Omitted for brevity, see Section 1 + + - onap.policies.controlloop.Operational: + version: 1.0.0 + description: Operational Policy for Control Loops + derived_from: tosca.policies.Root + properties: + # Omitted for brevity, see Section 1 + + - onap.policies.controloop.operational.Drools: + version: 1.0.0 + description: Operational Policy for Control Loops using the Drools PDP + derived_from: onap.policies.controlloop.Operational + properties: + # Omitted for brevity, see Section 1 + + - onap.policies.controloop.operational.Apex: + version: 1.0.0 + description: Operational Policy for Control Loops using the APEX PDP + derived_from: onap.policies.controlloop.Operational + properties: + # Omitted for brevity, see Section 1 + + - onap.policies.controlloop.Guard: + version: 1.0.0 + description: Operational Policy for Control Loops + derived_from: tosca.policies.Root + properties: + # Omitted for brevity, see Section 1 + + - onap.policies.controlloop.guard.FrequencyLimiter: + version: 1.0.0 + description: Supports limiting the frequency of actions being taken by a Actor. + derived_from: onap.policies.controlloop.Guard + properties: + # Omitted for brevity, see Section 1 + + - onap.policies.controlloop.guard.Blacklist: + version: 1.0.0 + description: Supports blacklist of VNF's from performing control loop actions on. + derived_from: onap.policies.controlloop.Guard + properties: + # Omitted for brevity, see Section 1 + + - onap.policies.controlloop.guard.MinMax: + version: 1.0.0 + description: Supports Min/Max number of VF Modules + derived_from: onap.policies.controlloop.Guard + properties: + # Omitted for brevity, see Section 1 + +data_types: + # Any bespoke data types referenced by policy type definitions[] diff --git a/src/test/resources/http-cache/example/pdp/api/deletePolicy/.header b/src/test/resources/http-cache/example/policy/api/v1/policytypes/.header index 6a280d972..6a280d972 100644 --- a/src/test/resources/http-cache/example/pdp/api/deletePolicy/.header +++ b/src/test/resources/http-cache/example/policy/api/v1/policytypes/.header diff --git a/src/test/resources/http-cache/example/sdc/v1/catalog/resources?resourceType=CVFC/.file b/src/test/resources/http-cache/example/sdc/v1/catalog/resources?resourceType=CVFC/.file deleted file mode 100644 index 7115df3f9..000000000 --- a/src/test/resources/http-cache/example/sdc/v1/catalog/resources?resourceType=CVFC/.file +++ /dev/null @@ -1 +0,0 @@ -[{"uuid":"a01ebd00-4b64-4607-8422-c3733735800d","invariantUUID":"dd6edb9e-015e-45ae-9597-bac06687f9e3","name":"vLoadBalancer-nodes.vdnsCvfc","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/a01ebd00-4b64-4607-8422-c3733735800d/toscaModel","category":"Generic","subCategory":"Abstract","resourceType":"CVFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"cs0008"},{"uuid":"948da0c9-536e-4688-85eb-d906fe7324b3","invariantUUID":"702cbc3d-5669-426d-aba6-6ddf4d4a702b","name":"vLoadBalancer-nodes.vpgCvfc","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/948da0c9-536e-4688-85eb-d906fe7324b3/toscaModel","category":"Generic","subCategory":"Abstract","resourceType":"CVFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"cs0008"},{"uuid":"38b62ebd-276a-48e8-948b-de76c81d6686","invariantUUID":"2ef814e3-7c17-420c-bdba-e84e338cd991","name":"vLoadBalancer-nodes.vdns_1Cvfc","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/38b62ebd-276a-48e8-948b-de76c81d6686/toscaModel","category":"Generic","subCategory":"Abstract","resourceType":"CVFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"cs0008"},{"uuid":"228aac11-6e48-4412-afbf-327c5c3b04fb","invariantUUID":"ba4d4b5d-f861-4155-886b-b1cdba5e0957","name":"vLoadBalancer-nodes.vlbCvfc","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/228aac11-6e48-4412-afbf-327c5c3b04fb/toscaModel","category":"Generic","subCategory":"Abstract","resourceType":"CVFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"cs0008"},{"uuid":"2bbcbcce-f9e2-4f5d-b975-1f1122d3226c","invariantUUID":"28142b9a-7925-4921-bc81-178c5bae4a9b","name":"vPacketGen-nodes.vpgCvfc","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/2bbcbcce-f9e2-4f5d-b975-1f1122d3226c/toscaModel","category":"Generic","subCategory":"Abstract","resourceType":"CVFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"cs0008"},{"uuid":"701bf7b7-ddf1-4658-af5f-66c815348fd3","invariantUUID":"53ebeed7-84db-4638-b1f3-8ed44c75985b","name":"vFirewall-nodes.vfwCvfc","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/701bf7b7-ddf1-4658-af5f-66c815348fd3/toscaModel","category":"Generic","subCategory":"Abstract","resourceType":"CVFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"cs0008"},{"uuid":"d6a5add1-162a-4966-80a6-8ba53d83b17f","invariantUUID":"74805001-19f5-4c2c-9928-03014161c32a","name":"vFirewall-nodes.vsnCvfc","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/d6a5add1-162a-4966-80a6-8ba53d83b17f/toscaModel","category":"Generic","subCategory":"Abstract","resourceType":"CVFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"cs0008"}]
\ No newline at end of file diff --git a/src/test/resources/http-cache/example/sdc/v1/catalog/resources?resourceType=CVFC/.header b/src/test/resources/http-cache/example/sdc/v1/catalog/resources?resourceType=CVFC/.header deleted file mode 100644 index e7f1e8490..000000000 --- a/src/test/resources/http-cache/example/sdc/v1/catalog/resources?resourceType=CVFC/.header +++ /dev/null @@ -1 +0,0 @@ -{"Content-Length": "2612", "Set-Cookie": "JSESSIONID=17p45w15arnkc191z2olo4e8qe;Path=/", "Expires": "Thu, 01 Jan 1970 00:00:00 GMT", "Server": "Jetty(9.3.21.v20170918)", "Content-Type": "application/json", "X-ECOMP-RequestID": "485020fa-b5f7-4d30-9473-e201326ed649"}
\ No newline at end of file diff --git a/src/test/resources/http-cache/example/sdc/v1/catalog/resources?resourceType=VF/.file b/src/test/resources/http-cache/example/sdc/v1/catalog/resources?resourceType=VF/.file deleted file mode 100644 index 253046a91..000000000 --- a/src/test/resources/http-cache/example/sdc/v1/catalog/resources?resourceType=VF/.file +++ /dev/null @@ -1 +0,0 @@ -[{"uuid":"c041f64d-8d8f-4f89-906f-79dccc63e7f5","invariantUUID":"48504e0e-f3d3-411d-a52b-eda1b8fec073","name":"vLoadBalancer","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/c041f64d-8d8f-4f89-906f-79dccc63e7f5/toscaModel","category":"Application L4+","subCategory":"Load Balancer","resourceType":"VF","lifecycleState":"CERTIFIED","lastUpdaterUserId":"jm0007"},{"uuid":"98c27d0b-9395-4f8b-87ab-e076cd1f627e","invariantUUID":"07e266fc-49ab-4cd7-8378-ca4676f1b9ec","name":"vFirewall","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/98c27d0b-9395-4f8b-87ab-e076cd1f627e/toscaModel","category":"Application L4+","subCategory":"Firewall","resourceType":"VF","lifecycleState":"CERTIFIED","lastUpdaterUserId":"jm0007"},{"uuid":"a004b0d8-54bd-4ede-9311-c75dc608e9fd","invariantUUID":"023a3f0d-1161-45ff-b4cf-8918a8ccf3ad","name":"vPacketGen","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/a004b0d8-54bd-4ede-9311-c75dc608e9fd/toscaModel","category":"Application L4+","subCategory":"Web Server","resourceType":"VF","lifecycleState":"CERTIFIED","lastUpdaterUserId":"jm0007"}]
\ No newline at end of file diff --git a/src/test/resources/http-cache/example/sdc/v1/catalog/resources?resourceType=VF/.header b/src/test/resources/http-cache/example/sdc/v1/catalog/resources?resourceType=VF/.header deleted file mode 100644 index ff1f54a02..000000000 --- a/src/test/resources/http-cache/example/sdc/v1/catalog/resources?resourceType=VF/.header +++ /dev/null @@ -1 +0,0 @@ -{"Content-Length": "1099", "Set-Cookie": "JSESSIONID=1cmvc2wrt6df31psfrfvp7y670;Path=/", "Expires": "Thu, 01 Jan 1970 00:00:00 GMT", "Server": "Jetty(9.3.21.v20170918)", "Content-Type": "application/json", "X-ECOMP-RequestID": "a37e7d9c-effe-4354-94df-77774dd239d3"}
\ No newline at end of file diff --git a/src/test/resources/http-cache/example/sdc/v1/catalog/resources?resourceType=VFC/.file b/src/test/resources/http-cache/example/sdc/v1/catalog/resources?resourceType=VFC/.file deleted file mode 100644 index 542fc479c..000000000 --- a/src/test/resources/http-cache/example/sdc/v1/catalog/resources?resourceType=VFC/.file +++ /dev/null @@ -1 +0,0 @@ -[{"uuid":"a72ab48d-2d20-4c28-936a-94f45160d126","invariantUUID":"528a9e7e-1db8-44cd-a59a-f7f2833aaeb3","name":"SoftwareComponent","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/a72ab48d-2d20-4c28-936a-94f45160d126/toscaModel","category":"Generic","subCategory":"Abstract","resourceType":"VFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"user"},{"uuid":"2fa6c8ab-297f-4ec6-869f-893db6c84ac4","invariantUUID":"281696ab-4415-4dbb-8f4b-42ff25314466","name":"Root","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/2fa6c8ab-297f-4ec6-869f-893db6c84ac4/toscaModel","category":"Generic","subCategory":"Abstract","resourceType":"VFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"user"},{"uuid":"ba598da2-fd47-4701-b906-c03309ce52d7","invariantUUID":"cfdfb7b0-44fe-4b03-8efd-83533b4a3e94","name":"Compute","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/ba598da2-fd47-4701-b906-c03309ce52d7/toscaModel","category":"Generic","subCategory":"Infrastructure","resourceType":"VFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"user"},{"uuid":"c505b470-d39e-44f2-bb3a-26bc1b10bc84","invariantUUID":"7afee9e5-f666-4109-875c-89663f4c2676","name":"WebApplication","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/c505b470-d39e-44f2-bb3a-26bc1b10bc84/toscaModel","category":"Generic","subCategory":"Abstract","resourceType":"VFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"user"},{"uuid":"32c7f0ad-70b1-445f-9ec4-a54fdc054081","invariantUUID":"f0c9ed72-f92d-471b-8014-b810cb9d6c53","name":"Database","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/32c7f0ad-70b1-445f-9ec4-a54fdc054081/toscaModel","category":"Generic","subCategory":"Database","resourceType":"VFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"user"},{"uuid":"3187eb9b-dbba-492d-9137-e12db15226e7","invariantUUID":"ec55e51b-eb97-41ce-b2bf-bd7240d773a1","name":"WebServer","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/3187eb9b-dbba-492d-9137-e12db15226e7/toscaModel","category":"Generic","subCategory":"Abstract","resourceType":"VFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"user"},{"uuid":"59dc3d57-6609-4acd-b280-1297504b3fa3","invariantUUID":"3d5f7968-8432-47a7-9532-5833050636c9","name":"ObjectStorage","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/59dc3d57-6609-4acd-b280-1297504b3fa3/toscaModel","category":"Generic","subCategory":"Infrastructure","resourceType":"VFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"user"},{"uuid":"6000538b-f0f0-467b-bb8c-d6514d84529f","invariantUUID":"8c5a23e8-388d-4af8-8a5e-469081b2b8cd","name":"Runtime","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/6000538b-f0f0-467b-bb8c-d6514d84529f/toscaModel","category":"Generic","subCategory":"Abstract","resourceType":"VFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"user"},{"uuid":"92cb6435-1f95-42e1-b7a4-3418fa58f99c","invariantUUID":"fc537796-7a6a-4878-ad2c-ebae0b1031eb","name":"BlockStorage","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/92cb6435-1f95-42e1-b7a4-3418fa58f99c/toscaModel","category":"Generic","subCategory":"Infrastructure","resourceType":"VFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"user"},{"uuid":"7e41c605-b93c-4679-bc8e-83ac839e92c8","invariantUUID":"e09d62d9-c704-41be-a091-d0bf8d5c2c6b","name":"Application","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/7e41c605-b93c-4679-bc8e-83ac839e92c8/toscaModel","category":"Generic","subCategory":"Abstract","resourceType":"VFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"user"},{"uuid":"0dc498fd-2c4f-4e83-afbd-4404c7644234","invariantUUID":"55642129-7e02-49f3-827b-ef309ca80ff4","name":"GlobalCompute","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/0dc498fd-2c4f-4e83-afbd-4404c7644234/toscaModel","category":"Generic","subCategory":"Abstract","resourceType":"VFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"user"},{"uuid":"8d77ceb7-14a4-44f1-9a53-d92313ed56d0","invariantUUID":"f43bb2b2-db21-4739-8a64-f7743d54db15","name":"CinderVolume","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/8d77ceb7-14a4-44f1-9a53-d92313ed56d0/toscaModel","category":"Generic","subCategory":"Infrastructure","resourceType":"VFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"user"},{"uuid":"5a14f316-0f4e-4638-a0ad-71776a5014d2","invariantUUID":"40f6daa6-e352-4047-a115-9c4931ce0334","name":"volume","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/5a14f316-0f4e-4638-a0ad-71776a5014d2/toscaModel","category":"Generic","subCategory":"Infrastructure","resourceType":"VFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"user"},{"uuid":"2220d928-d281-4ba1-b44a-21b72c8c9872","invariantUUID":"7c398180-ea60-494b-b345-678391fbe8c2","name":"NovaServer","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/2220d928-d281-4ba1-b44a-21b72c8c9872/toscaModel","category":"Generic","subCategory":"Infrastructure","resourceType":"VFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"user"},{"uuid":"c9ed9d61-f3a5-4210-9af7-70a4f93b836a","invariantUUID":"ca7f356c-9f1c-4672-ade1-27a7f190064c","name":"AbstractSubstitute","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/c9ed9d61-f3a5-4210-9af7-70a4f93b836a/toscaModel","category":"Generic","subCategory":"Abstract","resourceType":"VFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"user"},{"uuid":"50ada44a-dd89-4e8d-850b-113019d2175b","invariantUUID":"6bb86fb2-e7f2-4ba6-aca8-80ccea04bc0a","name":"ContrailNetworkRules","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/50ada44a-dd89-4e8d-850b-113019d2175b/toscaModel","category":"Generic","subCategory":"Rules","resourceType":"VFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"user"},{"uuid":"bb37dd40-0e70-405f-81ca-c6ca22d3384f","invariantUUID":"3622a332-ce1c-406c-8212-966822eba394","name":"SecurityRules","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/bb37dd40-0e70-405f-81ca-c6ca22d3384f/toscaModel","category":"Generic","subCategory":"Rules","resourceType":"VFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"user"},{"uuid":"b876d972-31bf-427c-a557-0cc0befcfbec","invariantUUID":"12d9d4a3-f695-4055-b22b-edc60e738795","name":"ContrailAbstractSubstitute","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/b876d972-31bf-427c-a557-0cc0befcfbec/toscaModel","category":"Generic","subCategory":"Abstract","resourceType":"VFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"user"},{"uuid":"6baeb8d4-1d26-4530-a017-60d48dd38ace","invariantUUID":"015e424d-3482-4cd4-a047-1a4ca66588cc","name":"vnfConfiguration","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/6baeb8d4-1d26-4530-a017-60d48dd38ace/toscaModel","category":"Generic","subCategory":"Abstract","resourceType":"VFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"user"},{"uuid":"9f1402d1-b8cc-4b70-a45c-54d636e50086","invariantUUID":"a47fd09d-a910-4829-bb35-38741cefd2b9","name":"DBMS","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/9f1402d1-b8cc-4b70-a45c-54d636e50086/toscaModel","category":"Generic","subCategory":"Abstract","resourceType":"VFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"user"},{"uuid":"467ee1a0-34dd-46da-a198-a4ebe94c31b1","invariantUUID":"35b1df1f-4f9d-4bc6-9dbb-368e26c64243","name":"ContrailV2VirtualMachineInterface","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/467ee1a0-34dd-46da-a198-a4ebe94c31b1/toscaModel","category":"Generic","subCategory":"Network Elements","resourceType":"VFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"user"},{"uuid":"0d26b446-bd26-44ed-95a8-7ec302dd91aa","invariantUUID":"03c4eac9-4af8-4751-94fc-ce6095930c83","name":"ContrailCompute","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/0d26b446-bd26-44ed-95a8-7ec302dd91aa/toscaModel","category":"Generic","subCategory":"Infrastructure","resourceType":"VFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"user"},{"uuid":"83ccfaa3-a5e5-4567-88c4-aa5cb3a7b22e","invariantUUID":"1a67dbe6-ceca-4621-891e-3bb14f42943a","name":"multiFlavorVFC","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/83ccfaa3-a5e5-4567-88c4-aa5cb3a7b22e/toscaModel","category":"Generic","subCategory":"Abstract","resourceType":"VFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"user"},{"uuid":"14ddb890-fe68-4fee-a296-711d5a4b6e59","invariantUUID":"14184c8a-0c13-4873-a5c1-2586032db98c","name":"Ext Image File","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/14ddb890-fe68-4fee-a296-711d5a4b6e59/toscaModel","category":"Generic","subCategory":"Infrastructure","resourceType":"VFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"user"},{"uuid":"720552c5-e05d-4933-9882-8d7359af6e82","invariantUUID":"f43a5ef6-ddbf-4520-a6cb-9ca8b6b39ad6","name":"Ext Local Storage","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/720552c5-e05d-4933-9882-8d7359af6e82/toscaModel","category":"Generic","subCategory":"Infrastructure","resourceType":"VFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"user"},{"uuid":"6ba191b3-2315-44ec-85ac-d5351e7d4b81","invariantUUID":"0e0269f9-6e04-4234-bfd1-bfae52af7f83","name":"Ext Zte VDU","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/6ba191b3-2315-44ec-85ac-d5351e7d4b81/toscaModel","category":"Generic","subCategory":"Infrastructure","resourceType":"VFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"user"},{"uuid":"307cd1f4-bbc4-4675-b491-8e318231dc76","invariantUUID":"1fa025a5-c877-4221-9fbf-1b117fb66631","name":"LoadBalancer","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/307cd1f4-bbc4-4675-b491-8e318231dc76/toscaModel","category":"Generic","subCategory":"Infrastructure","resourceType":"VFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"user"},{"uuid":"949e82db-98ee-47d0-a5d2-21cb06c4a091","invariantUUID":"348d3957-11fd-4194-8835-1b112664b78b","name":"NSD","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/949e82db-98ee-47d0-a5d2-21cb06c4a091/toscaModel","category":"Generic","subCategory":"Network Elements","resourceType":"VFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"user"},{"uuid":"f54c8dde-2dc9-4f06-8bd6-1679d0b12b0c","invariantUUID":"4644b678-6680-432a-9d54-b209cc8264fe","name":"VDU","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/f54c8dde-2dc9-4f06-8bd6-1679d0b12b0c/toscaModel","category":"Generic","subCategory":"Infrastructure","resourceType":"VFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"user"},{"uuid":"cca286e8-5ac0-451c-b874-8cc307181e10","invariantUUID":"b4ad5952-aa22-4645-ac57-72d55c8833be","name":"Vloadbalancer.nodes.heat.vdns","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/cca286e8-5ac0-451c-b874-8cc307181e10/toscaModel","category":"Generic","subCategory":"Abstract","resourceType":"VFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"cs0008"},{"uuid":"876f7eff-46e3-4981-8717-597c01310714","invariantUUID":"7c3316b0-2090-4a2f-a21b-63e3c9dd3bf8","name":"AllottedResource","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/876f7eff-46e3-4981-8717-597c01310714/toscaModel","category":"Allotted Resource","subCategory":"Allotted Resource","resourceType":"VFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"user"},{"uuid":"c25db6d1-2653-45d9-8062-440f962c83ba","invariantUUID":"86aeffce-6d21-4bc0-84c5-e4fd3f7acdaa","name":"VDU VirtualStorage","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/c25db6d1-2653-45d9-8062-440f962c83ba/toscaModel","category":"Generic","subCategory":"Infrastructure","resourceType":"VFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"user"},{"uuid":"68bb176c-8d5f-4d27-8407-fd8d9e5910eb","invariantUUID":"1a12347c-6166-4d21-9861-b2c432722a23","name":"Vfirewall.nodes.heat.vfw","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/68bb176c-8d5f-4d27-8407-fd8d9e5910eb/toscaModel","category":"Generic","subCategory":"Abstract","resourceType":"VFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"cs0008"},{"uuid":"f2686c0f-11c5-4cab-83bd-b0f2cc35bf4d","invariantUUID":"3ff44c1d-0384-4501-8e33-dd3000799378","name":"Vloadbalancer.nodes.heat.vlb","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/f2686c0f-11c5-4cab-83bd-b0f2cc35bf4d/toscaModel","category":"Generic","subCategory":"Abstract","resourceType":"VFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"cs0008"},{"uuid":"8fb4db8b-1d1f-4369-8611-0375d86f0051","invariantUUID":"05e3e25f-b671-433f-8ea6-835c198c15ae","name":"Vloadbalancer.nodes.heat.vpg","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/8fb4db8b-1d1f-4369-8611-0375d86f0051/toscaModel","category":"Generic","subCategory":"Abstract","resourceType":"VFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"cs0008"},{"uuid":"c8a01686-2762-483c-98ad-a66606b9947f","invariantUUID":"86769df9-139b-489f-949d-05efb7f0ed6a","name":"Vpacketgen.nodes.heat.vpg","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/c8a01686-2762-483c-98ad-a66606b9947f/toscaModel","category":"Generic","subCategory":"Abstract","resourceType":"VFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"cs0008"},{"uuid":"5a136c51-055f-46b7-90e3-3d99d1da3d10","invariantUUID":"a6c4eda9-c71b-4435-ad73-51f82946df1b","name":"ContrailV2NetworkRules","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/5a136c51-055f-46b7-90e3-3d99d1da3d10/toscaModel","category":"Generic","subCategory":"Rules","resourceType":"VFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"user"},{"uuid":"163dded5-44a3-42e3-b373-c594412eeac6","invariantUUID":"1550f69b-12cb-44ad-81b3-de6ec606a566","name":"VDU Compute","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/163dded5-44a3-42e3-b373-c594412eeac6/toscaModel","category":"Generic","subCategory":"Infrastructure","resourceType":"VFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"user"},{"uuid":"b339e576-e433-4be4-8a43-258f629c4e79","invariantUUID":"d66c0bce-d7e1-41ad-bdaf-468d442d0543","name":"Vfirewall.nodes.heat.vsn","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/b339e576-e433-4be4-8a43-258f629c4e79/toscaModel","category":"Generic","subCategory":"Abstract","resourceType":"VFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"cs0008"}]
\ No newline at end of file diff --git a/src/test/resources/http-cache/example/sdc/v1/catalog/resources?resourceType=VFC/.header b/src/test/resources/http-cache/example/sdc/v1/catalog/resources?resourceType=VFC/.header deleted file mode 100644 index 6a280d972..000000000 --- a/src/test/resources/http-cache/example/sdc/v1/catalog/resources?resourceType=VFC/.header +++ /dev/null @@ -1 +0,0 @@ -{"Transfer-Encoding": "chunked", "Set-Cookie": "JSESSIONID=158qxkdtdobkd1umr3ikkgrmlx;Path=/", "Expires": "Thu, 01 Jan 1970 00:00:00 GMT", "Server": "Jetty(9.3.21.v20170918)", "Content-Type": "application/json", "X-ECOMP-RequestID": "e2ddb3c8-994f-47df-b4dc-097d4fb55c08"}
\ No newline at end of file diff --git a/src/test/resources/http-cache/example/sdc/v1/catalog/resources/228aac11-6e48-4412-afbf-327c5c3b04fb/metadata/.file b/src/test/resources/http-cache/example/sdc/v1/catalog/resources/228aac11-6e48-4412-afbf-327c5c3b04fb/metadata/.file deleted file mode 100644 index 5a84698e3..000000000 --- a/src/test/resources/http-cache/example/sdc/v1/catalog/resources/228aac11-6e48-4412-afbf-327c5c3b04fb/metadata/.file +++ /dev/null @@ -1 +0,0 @@ -{"uuid":"228aac11-6e48-4412-afbf-327c5c3b04fb","invariantUUID":"ba4d4b5d-f861-4155-886b-b1cdba5e0957","name":"vLoadBalancer-nodes.vlbCvfc","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/228aac11-6e48-4412-afbf-327c5c3b04fb/toscaModel","category":"Generic","subCategory":"Abstract","resourceType":"CVFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"cs0008","lastUpdaterFullName":"Carlos Santana","toscaResourceName":"org.onap.resource.vfc.Vloadbalancercvfc.abstract.nodes.vlb","resources":[{"resourceInstanceName":"vlb_vlb_private_2_port","resourceName":"NeutronPort","resourceInvariantUUID":"d8a13756-4f96-40e2-a1ab-108dcda821a9","resourceVersion":"1.0","resoucreType":"CP","resourceUUID":"3a8362d1-b072-4cd1-b55c-73d882c8a388"},{"resourceInstanceName":"vlb_vlb_private_0_port","resourceName":"NeutronPort","resourceInvariantUUID":"d8a13756-4f96-40e2-a1ab-108dcda821a9","resourceVersion":"1.0","resoucreType":"CP","resourceUUID":"3a8362d1-b072-4cd1-b55c-73d882c8a388"},{"resourceInstanceName":"vlb","resourceName":"Vloadbalancer.nodes.heat.vlb","resourceInvariantUUID":"3ff44c1d-0384-4501-8e33-dd3000799378","resourceVersion":"1.0","resoucreType":"VFC","resourceUUID":"f2686c0f-11c5-4cab-83bd-b0f2cc35bf4d"},{"resourceInstanceName":"vlb_vlb_private_1_port","resourceName":"NeutronPort","resourceInvariantUUID":"d8a13756-4f96-40e2-a1ab-108dcda821a9","resourceVersion":"1.0","resoucreType":"CP","resourceUUID":"3a8362d1-b072-4cd1-b55c-73d882c8a388"}],"description":"Complex node type that is used as nested type in VF"}
\ No newline at end of file diff --git a/src/test/resources/http-cache/example/sdc/v1/catalog/resources/228aac11-6e48-4412-afbf-327c5c3b04fb/metadata/.header b/src/test/resources/http-cache/example/sdc/v1/catalog/resources/228aac11-6e48-4412-afbf-327c5c3b04fb/metadata/.header deleted file mode 100644 index 439efd9f0..000000000 --- a/src/test/resources/http-cache/example/sdc/v1/catalog/resources/228aac11-6e48-4412-afbf-327c5c3b04fb/metadata/.header +++ /dev/null @@ -1 +0,0 @@ -{"Content-Length": "1539", "Set-Cookie": "JSESSIONID=2hdxvh0c2nj012gw8yu63ffd1;Path=/", "Expires": "Thu, 01 Jan 1970 00:00:00 GMT", "Server": "Jetty(9.3.21.v20170918)", "Content-Type": "application/json", "X-ECOMP-RequestID": "1a2d5fef-de1c-478e-bf5c-7df1bc37870e"}
\ No newline at end of file diff --git a/src/test/resources/http-cache/example/sdc/v1/catalog/resources/2bbcbcce-f9e2-4f5d-b975-1f1122d3226c/metadata/.file b/src/test/resources/http-cache/example/sdc/v1/catalog/resources/2bbcbcce-f9e2-4f5d-b975-1f1122d3226c/metadata/.file deleted file mode 100644 index e0b3cd72b..000000000 --- a/src/test/resources/http-cache/example/sdc/v1/catalog/resources/2bbcbcce-f9e2-4f5d-b975-1f1122d3226c/metadata/.file +++ /dev/null @@ -1 +0,0 @@ -{"uuid":"2bbcbcce-f9e2-4f5d-b975-1f1122d3226c","invariantUUID":"28142b9a-7925-4921-bc81-178c5bae4a9b","name":"vPacketGen-nodes.vpgCvfc","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/2bbcbcce-f9e2-4f5d-b975-1f1122d3226c/toscaModel","category":"Generic","subCategory":"Abstract","resourceType":"CVFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"cs0008","lastUpdaterFullName":"Carlos Santana","toscaResourceName":"org.onap.resource.vfc.Vpacketgencvfc.abstract.nodes.vpg","resources":[{"resourceInstanceName":"vpg_vpg_private_0_port","resourceName":"NeutronPort","resourceInvariantUUID":"d8a13756-4f96-40e2-a1ab-108dcda821a9","resourceVersion":"1.0","resoucreType":"CP","resourceUUID":"3a8362d1-b072-4cd1-b55c-73d882c8a388"},{"resourceInstanceName":"vpg","resourceName":"Vpacketgen.nodes.heat.vpg","resourceInvariantUUID":"86769df9-139b-489f-949d-05efb7f0ed6a","resourceVersion":"1.0","resoucreType":"VFC","resourceUUID":"c8a01686-2762-483c-98ad-a66606b9947f"},{"resourceInstanceName":"vpg_vpg_private_1_port","resourceName":"NeutronPort","resourceInvariantUUID":"d8a13756-4f96-40e2-a1ab-108dcda821a9","resourceVersion":"1.0","resoucreType":"CP","resourceUUID":"3a8362d1-b072-4cd1-b55c-73d882c8a388"}],"description":"Complex node type that is used as nested type in VF"}
\ No newline at end of file diff --git a/src/test/resources/http-cache/example/sdc/v1/catalog/resources/2bbcbcce-f9e2-4f5d-b975-1f1122d3226c/metadata/.header b/src/test/resources/http-cache/example/sdc/v1/catalog/resources/2bbcbcce-f9e2-4f5d-b975-1f1122d3226c/metadata/.header deleted file mode 100644 index 27e67e5ce..000000000 --- a/src/test/resources/http-cache/example/sdc/v1/catalog/resources/2bbcbcce-f9e2-4f5d-b975-1f1122d3226c/metadata/.header +++ /dev/null @@ -1 +0,0 @@ -{"Content-Length": "1290", "Set-Cookie": "JSESSIONID=1uooiet6i9dyt17t85aw0rkxkc;Path=/", "Expires": "Thu, 01 Jan 1970 00:00:00 GMT", "Server": "Jetty(9.3.21.v20170918)", "Content-Type": "application/json", "X-ECOMP-RequestID": "f50d8d8a-f63d-44cc-bc32-5c8b0e47305c"}
\ No newline at end of file diff --git a/src/test/resources/http-cache/example/sdc/v1/catalog/resources/38b62ebd-276a-48e8-948b-de76c81d6686/metadata/.file b/src/test/resources/http-cache/example/sdc/v1/catalog/resources/38b62ebd-276a-48e8-948b-de76c81d6686/metadata/.file deleted file mode 100644 index 9f7173266..000000000 --- a/src/test/resources/http-cache/example/sdc/v1/catalog/resources/38b62ebd-276a-48e8-948b-de76c81d6686/metadata/.file +++ /dev/null @@ -1 +0,0 @@ -{"uuid":"38b62ebd-276a-48e8-948b-de76c81d6686","invariantUUID":"2ef814e3-7c17-420c-bdba-e84e338cd991","name":"vLoadBalancer-nodes.vdns_1Cvfc","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/38b62ebd-276a-48e8-948b-de76c81d6686/toscaModel","category":"Generic","subCategory":"Abstract","resourceType":"CVFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"cs0008","lastUpdaterFullName":"Carlos Santana","toscaResourceName":"org.onap.resource.vfc.Vloadbalancercvfc.abstract.nodes.vdns_1","resources":[{"resourceInstanceName":"vdns_vdns_2_private_1_port","resourceName":"NeutronPort","resourceInvariantUUID":"d8a13756-4f96-40e2-a1ab-108dcda821a9","resourceVersion":"1.0","resoucreType":"CP","resourceUUID":"3a8362d1-b072-4cd1-b55c-73d882c8a388"},{"resourceInstanceName":"vdns","resourceName":"Vloadbalancer.nodes.heat.vdns","resourceInvariantUUID":"b4ad5952-aa22-4645-ac57-72d55c8833be","resourceVersion":"1.0","resoucreType":"VFC","resourceUUID":"cca286e8-5ac0-451c-b874-8cc307181e10"},{"resourceInstanceName":"vdns_vdns_2_private_0_port","resourceName":"NeutronPort","resourceInvariantUUID":"d8a13756-4f96-40e2-a1ab-108dcda821a9","resourceVersion":"1.0","resoucreType":"CP","resourceUUID":"3a8362d1-b072-4cd1-b55c-73d882c8a388"}],"description":"Complex node type that is used as nested type in VF"}
\ No newline at end of file diff --git a/src/test/resources/http-cache/example/sdc/v1/catalog/resources/38b62ebd-276a-48e8-948b-de76c81d6686/metadata/.header b/src/test/resources/http-cache/example/sdc/v1/catalog/resources/38b62ebd-276a-48e8-948b-de76c81d6686/metadata/.header deleted file mode 100644 index 79b1c5243..000000000 --- a/src/test/resources/http-cache/example/sdc/v1/catalog/resources/38b62ebd-276a-48e8-948b-de76c81d6686/metadata/.header +++ /dev/null @@ -1 +0,0 @@ -{"Content-Length": "1315", "Set-Cookie": "JSESSIONID=1mwa65h39co1ljdehgclglgrt;Path=/", "Expires": "Thu, 01 Jan 1970 00:00:00 GMT", "Server": "Jetty(9.3.21.v20170918)", "Content-Type": "application/json", "X-ECOMP-RequestID": "e436e8fb-e11d-4e9b-a082-cb51c82be86f"}
\ No newline at end of file diff --git a/src/test/resources/http-cache/example/sdc/v1/catalog/resources/68bb176c-8d5f-4d27-8407-fd8d9e5910eb/metadata/.file b/src/test/resources/http-cache/example/sdc/v1/catalog/resources/68bb176c-8d5f-4d27-8407-fd8d9e5910eb/metadata/.file deleted file mode 100644 index 46e4922d2..000000000 --- a/src/test/resources/http-cache/example/sdc/v1/catalog/resources/68bb176c-8d5f-4d27-8407-fd8d9e5910eb/metadata/.file +++ /dev/null @@ -1 +0,0 @@ -{"uuid":"68bb176c-8d5f-4d27-8407-fd8d9e5910eb","invariantUUID":"1a12347c-6166-4d21-9861-b2c432722a23","name":"Vfirewall.nodes.heat.vfw","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/68bb176c-8d5f-4d27-8407-fd8d9e5910eb/toscaModel","category":"Generic","subCategory":"Abstract","resourceType":"VFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"cs0008","lastUpdaterFullName":"Carlos Santana","toscaResourceName":"org.onap.resource.vfc.Vfirewall.abstract.nodes.heat.vfw","description":"Not reusable inner VFC"}
\ No newline at end of file diff --git a/src/test/resources/http-cache/example/sdc/v1/catalog/resources/68bb176c-8d5f-4d27-8407-fd8d9e5910eb/metadata/.header b/src/test/resources/http-cache/example/sdc/v1/catalog/resources/68bb176c-8d5f-4d27-8407-fd8d9e5910eb/metadata/.header deleted file mode 100644 index 5d3981400..000000000 --- a/src/test/resources/http-cache/example/sdc/v1/catalog/resources/68bb176c-8d5f-4d27-8407-fd8d9e5910eb/metadata/.header +++ /dev/null @@ -1 +0,0 @@ -{"Content-Length": "530", "Set-Cookie": "JSESSIONID=1cybc5e92nwmc1bh0rv2faio02;Path=/", "Expires": "Thu, 01 Jan 1970 00:00:00 GMT", "Server": "Jetty(9.3.21.v20170918)", "Content-Type": "application/json", "X-ECOMP-RequestID": "132bca4c-b16b-4c78-b52f-4a33bd74b4ed"}
\ No newline at end of file diff --git a/src/test/resources/http-cache/example/sdc/v1/catalog/resources/701bf7b7-ddf1-4658-af5f-66c815348fd3/metadata/.file b/src/test/resources/http-cache/example/sdc/v1/catalog/resources/701bf7b7-ddf1-4658-af5f-66c815348fd3/metadata/.file deleted file mode 100644 index 0469714bb..000000000 --- a/src/test/resources/http-cache/example/sdc/v1/catalog/resources/701bf7b7-ddf1-4658-af5f-66c815348fd3/metadata/.file +++ /dev/null @@ -1 +0,0 @@ -{"uuid":"701bf7b7-ddf1-4658-af5f-66c815348fd3","invariantUUID":"53ebeed7-84db-4638-b1f3-8ed44c75985b","name":"vFirewall-nodes.vfwCvfc","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/701bf7b7-ddf1-4658-af5f-66c815348fd3/toscaModel","category":"Generic","subCategory":"Abstract","resourceType":"CVFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"cs0008","lastUpdaterFullName":"Carlos Santana","toscaResourceName":"org.onap.resource.vfc.Vfirewallcvfc.abstract.nodes.vfw","resources":[{"resourceInstanceName":"vfw_vfw_private_0_port","resourceName":"NeutronPort","resourceInvariantUUID":"d8a13756-4f96-40e2-a1ab-108dcda821a9","resourceVersion":"1.0","resoucreType":"CP","resourceUUID":"3a8362d1-b072-4cd1-b55c-73d882c8a388"},{"resourceInstanceName":"vfw_vfw_private_2_port","resourceName":"NeutronPort","resourceInvariantUUID":"d8a13756-4f96-40e2-a1ab-108dcda821a9","resourceVersion":"1.0","resoucreType":"CP","resourceUUID":"3a8362d1-b072-4cd1-b55c-73d882c8a388"},{"resourceInstanceName":"vfw_vfw_private_1_port","resourceName":"NeutronPort","resourceInvariantUUID":"d8a13756-4f96-40e2-a1ab-108dcda821a9","resourceVersion":"1.0","resoucreType":"CP","resourceUUID":"3a8362d1-b072-4cd1-b55c-73d882c8a388"},{"resourceInstanceName":"vfw","resourceName":"Vfirewall.nodes.heat.vfw","resourceInvariantUUID":"1a12347c-6166-4d21-9861-b2c432722a23","resourceVersion":"1.0","resoucreType":"VFC","resourceUUID":"68bb176c-8d5f-4d27-8407-fd8d9e5910eb"}],"description":"Complex node type that is used as nested type in VF"}
\ No newline at end of file diff --git a/src/test/resources/http-cache/example/sdc/v1/catalog/resources/701bf7b7-ddf1-4658-af5f-66c815348fd3/metadata/.header b/src/test/resources/http-cache/example/sdc/v1/catalog/resources/701bf7b7-ddf1-4658-af5f-66c815348fd3/metadata/.header deleted file mode 100644 index c4e7b6900..000000000 --- a/src/test/resources/http-cache/example/sdc/v1/catalog/resources/701bf7b7-ddf1-4658-af5f-66c815348fd3/metadata/.header +++ /dev/null @@ -1 +0,0 @@ -{"Content-Length": "1527", "Set-Cookie": "JSESSIONID=1x67gjk2bge1i5gw7e9i9efw;Path=/", "Expires": "Thu, 01 Jan 1970 00:00:00 GMT", "Server": "Jetty(9.3.21.v20170918)", "Content-Type": "application/json", "X-ECOMP-RequestID": "65089c4e-19a4-4616-b3ec-97d7f4c65725"}
\ No newline at end of file diff --git a/src/test/resources/http-cache/example/sdc/v1/catalog/resources/8fb4db8b-1d1f-4369-8611-0375d86f0051/metadata/.file b/src/test/resources/http-cache/example/sdc/v1/catalog/resources/8fb4db8b-1d1f-4369-8611-0375d86f0051/metadata/.file deleted file mode 100644 index 6c99b6997..000000000 --- a/src/test/resources/http-cache/example/sdc/v1/catalog/resources/8fb4db8b-1d1f-4369-8611-0375d86f0051/metadata/.file +++ /dev/null @@ -1 +0,0 @@ -{"uuid":"8fb4db8b-1d1f-4369-8611-0375d86f0051","invariantUUID":"05e3e25f-b671-433f-8ea6-835c198c15ae","name":"Vloadbalancer.nodes.heat.vpg","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/8fb4db8b-1d1f-4369-8611-0375d86f0051/toscaModel","category":"Generic","subCategory":"Abstract","resourceType":"VFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"cs0008","lastUpdaterFullName":"Carlos Santana","toscaResourceName":"org.onap.resource.vfc.Vloadbalancer.abstract.nodes.heat.vpg","description":"Not reusable inner VFC"}
\ No newline at end of file diff --git a/src/test/resources/http-cache/example/sdc/v1/catalog/resources/8fb4db8b-1d1f-4369-8611-0375d86f0051/metadata/.header b/src/test/resources/http-cache/example/sdc/v1/catalog/resources/8fb4db8b-1d1f-4369-8611-0375d86f0051/metadata/.header deleted file mode 100644 index 45800a0af..000000000 --- a/src/test/resources/http-cache/example/sdc/v1/catalog/resources/8fb4db8b-1d1f-4369-8611-0375d86f0051/metadata/.header +++ /dev/null @@ -1 +0,0 @@ -{"Content-Length": "538", "Set-Cookie": "JSESSIONID=m8wbe2pvqc0ga1gf3ceig0tc;Path=/", "Expires": "Thu, 01 Jan 1970 00:00:00 GMT", "Server": "Jetty(9.3.21.v20170918)", "Content-Type": "application/json", "X-ECOMP-RequestID": "12c97091-9d7e-4463-9154-4249b378e4d7"}
\ No newline at end of file diff --git a/src/test/resources/http-cache/example/sdc/v1/catalog/resources/948da0c9-536e-4688-85eb-d906fe7324b3/metadata/.file b/src/test/resources/http-cache/example/sdc/v1/catalog/resources/948da0c9-536e-4688-85eb-d906fe7324b3/metadata/.file deleted file mode 100644 index 5689e38a1..000000000 --- a/src/test/resources/http-cache/example/sdc/v1/catalog/resources/948da0c9-536e-4688-85eb-d906fe7324b3/metadata/.file +++ /dev/null @@ -1 +0,0 @@ -{"uuid":"948da0c9-536e-4688-85eb-d906fe7324b3","invariantUUID":"702cbc3d-5669-426d-aba6-6ddf4d4a702b","name":"vLoadBalancer-nodes.vpgCvfc","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/948da0c9-536e-4688-85eb-d906fe7324b3/toscaModel","category":"Generic","subCategory":"Abstract","resourceType":"CVFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"cs0008","lastUpdaterFullName":"Carlos Santana","toscaResourceName":"org.onap.resource.vfc.Vloadbalancercvfc.abstract.nodes.vpg","resources":[{"resourceInstanceName":"vpg","resourceName":"Vloadbalancer.nodes.heat.vpg","resourceInvariantUUID":"05e3e25f-b671-433f-8ea6-835c198c15ae","resourceVersion":"1.0","resoucreType":"VFC","resourceUUID":"8fb4db8b-1d1f-4369-8611-0375d86f0051"},{"resourceInstanceName":"vpg_vpg_private_0_port","resourceName":"NeutronPort","resourceInvariantUUID":"d8a13756-4f96-40e2-a1ab-108dcda821a9","resourceVersion":"1.0","resoucreType":"CP","resourceUUID":"3a8362d1-b072-4cd1-b55c-73d882c8a388"},{"resourceInstanceName":"vpg_vpg_private_1_port","resourceName":"NeutronPort","resourceInvariantUUID":"d8a13756-4f96-40e2-a1ab-108dcda821a9","resourceVersion":"1.0","resoucreType":"CP","resourceUUID":"3a8362d1-b072-4cd1-b55c-73d882c8a388"}],"description":"Complex node type that is used as nested type in VF"}
\ No newline at end of file diff --git a/src/test/resources/http-cache/example/sdc/v1/catalog/resources/948da0c9-536e-4688-85eb-d906fe7324b3/metadata/.header b/src/test/resources/http-cache/example/sdc/v1/catalog/resources/948da0c9-536e-4688-85eb-d906fe7324b3/metadata/.header deleted file mode 100644 index 86110d468..000000000 --- a/src/test/resources/http-cache/example/sdc/v1/catalog/resources/948da0c9-536e-4688-85eb-d906fe7324b3/metadata/.header +++ /dev/null @@ -1 +0,0 @@ -{"Content-Length": "1299", "Set-Cookie": "JSESSIONID=1hq9wsp841x1l7lxmnjnau49m;Path=/", "Expires": "Thu, 01 Jan 1970 00:00:00 GMT", "Server": "Jetty(9.3.21.v20170918)", "Content-Type": "application/json", "X-ECOMP-RequestID": "e890362a-2dc4-4278-bee6-7dca3802e9ce"}
\ No newline at end of file diff --git a/src/test/resources/http-cache/example/sdc/v1/catalog/resources/98c27d0b-9395-4f8b-87ab-e076cd1f627e/metadata/.file b/src/test/resources/http-cache/example/sdc/v1/catalog/resources/98c27d0b-9395-4f8b-87ab-e076cd1f627e/metadata/.file deleted file mode 100644 index dd564ea9a..000000000 --- a/src/test/resources/http-cache/example/sdc/v1/catalog/resources/98c27d0b-9395-4f8b-87ab-e076cd1f627e/metadata/.file +++ /dev/null @@ -1 +0,0 @@ -{"uuid":"98c27d0b-9395-4f8b-87ab-e076cd1f627e","invariantUUID":"07e266fc-49ab-4cd7-8378-ca4676f1b9ec","name":"vFirewall","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/98c27d0b-9395-4f8b-87ab-e076cd1f627e/toscaModel","category":"Application L4+","subCategory":"Firewall","resourceType":"VF","lifecycleState":"CERTIFIED","lastUpdaterUserId":"jm0007","lastUpdaterFullName":"Joni Mitchell","toscaResourceName":"org.onap.resource.vf.Vfirewall","resources":[{"resourceInstanceName":"unprotected_private_network","resourceName":"NeutronNet","resourceInvariantUUID":"e83f8487-8ba2-479c-8d63-23217595dbb2","resourceVersion":"1.0","resoucreType":"VL","resourceUUID":"fc80335e-39cf-44a3-8860-995495fad829"},{"resourceInstanceName":"abstract_vfw","resourceName":"vFirewall-nodes.vfwCvfc","resourceInvariantUUID":"53ebeed7-84db-4638-b1f3-8ed44c75985b","resourceVersion":"1.0","resoucreType":"CVFC","resourceUUID":"701bf7b7-ddf1-4658-af5f-66c815348fd3"},{"resourceInstanceName":"protected_private_network","resourceName":"NeutronNet","resourceInvariantUUID":"e83f8487-8ba2-479c-8d63-23217595dbb2","resourceVersion":"1.0","resoucreType":"VL","resourceUUID":"fc80335e-39cf-44a3-8860-995495fad829"},{"resourceInstanceName":"abstract_vsn","resourceName":"vFirewall-nodes.vsnCvfc","resourceInvariantUUID":"74805001-19f5-4c2c-9928-03014161c32a","resourceVersion":"1.0","resoucreType":"CVFC","resourceUUID":"d6a5add1-162a-4966-80a6-8ba53d83b17f"}],"artifacts":[{"artifactName":"vf-license-model.xml","artifactType":"VF_LICENSE","artifactURL":"/sdc/v1/catalog/resources/98c27d0b-9395-4f8b-87ab-e076cd1f627e/artifacts/6e816af9-944d-46d0-826d-5ff7be063a01","artifactDescription":"VF license file","artifactChecksum":"Njg4NTI4ZWY2MTliMGQzOGZmNDA4ZjRiMjllZmJkMzM=","artifactUUID":"6e816af9-944d-46d0-826d-5ff7be063a01","artifactVersion":"1","artifactLabel":"vflicense","artifactGroupType":"DEPLOYMENT"},{"artifactName":"base_vfw.yaml","artifactType":"HEAT","artifactURL":"/sdc/v1/catalog/resources/98c27d0b-9395-4f8b-87ab-e076cd1f627e/artifacts/cbc75b18-86d1-4139-95f2-1d91f79a8b25","artifactDescription":"created from csar","artifactTimeout":60,"artifactChecksum":"M2I1YmVjNzZkY2MxMWJkYTM5NzA3NDVhMGQxMzY2MDA=","artifactUUID":"cbc75b18-86d1-4139-95f2-1d91f79a8b25","artifactVersion":"2","artifactLabel":"heat1","artifactGroupType":"DEPLOYMENT"},{"artifactName":"vendor-license-model.xml","artifactType":"VENDOR_LICENSE","artifactURL":"/sdc/v1/catalog/resources/98c27d0b-9395-4f8b-87ab-e076cd1f627e/artifacts/5b592087-76bf-4c43-a1e7-d4151ce51cdd","artifactDescription":" Vendor license file","artifactChecksum":"Mjc0NGViYzYyNWZkZTRmYWFkYmUzZjY1MmEwNzRjZDE=","artifactUUID":"5b592087-76bf-4c43-a1e7-d4151ce51cdd","artifactVersion":"1","artifactLabel":"vendorlicense","artifactGroupType":"DEPLOYMENT"}],"description":"vFW, vSink"}
\ No newline at end of file diff --git a/src/test/resources/http-cache/example/sdc/v1/catalog/resources/98c27d0b-9395-4f8b-87ab-e076cd1f627e/metadata/.header b/src/test/resources/http-cache/example/sdc/v1/catalog/resources/98c27d0b-9395-4f8b-87ab-e076cd1f627e/metadata/.header deleted file mode 100644 index 56bc0de43..000000000 --- a/src/test/resources/http-cache/example/sdc/v1/catalog/resources/98c27d0b-9395-4f8b-87ab-e076cd1f627e/metadata/.header +++ /dev/null @@ -1 +0,0 @@ -{"Content-Length": "2820", "Set-Cookie": "JSESSIONID=1lzsottm5qzz6tqpilubfc84d;Path=/", "Expires": "Thu, 01 Jan 1970 00:00:00 GMT", "Server": "Jetty(9.3.21.v20170918)", "Content-Type": "application/json", "X-ECOMP-RequestID": "f9f2ebc4-5438-4b28-aaae-9671b78c30d1"}
\ No newline at end of file diff --git a/src/test/resources/http-cache/example/sdc/v1/catalog/resources/a004b0d8-54bd-4ede-9311-c75dc608e9fd/metadata/.file b/src/test/resources/http-cache/example/sdc/v1/catalog/resources/a004b0d8-54bd-4ede-9311-c75dc608e9fd/metadata/.file deleted file mode 100644 index 7f8d22015..000000000 --- a/src/test/resources/http-cache/example/sdc/v1/catalog/resources/a004b0d8-54bd-4ede-9311-c75dc608e9fd/metadata/.file +++ /dev/null @@ -1 +0,0 @@ -{"uuid":"a004b0d8-54bd-4ede-9311-c75dc608e9fd","invariantUUID":"023a3f0d-1161-45ff-b4cf-8918a8ccf3ad","name":"vPacketGen","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/a004b0d8-54bd-4ede-9311-c75dc608e9fd/toscaModel","category":"Application L4+","subCategory":"Web Server","resourceType":"VF","lifecycleState":"CERTIFIED","lastUpdaterUserId":"jm0007","lastUpdaterFullName":"Joni Mitchell","toscaResourceName":"org.onap.resource.vf.Vpacketgen","resources":[{"resourceInstanceName":"abstract_vpg","resourceName":"vPacketGen-nodes.vpgCvfc","resourceInvariantUUID":"28142b9a-7925-4921-bc81-178c5bae4a9b","resourceVersion":"1.0","resoucreType":"CVFC","resourceUUID":"2bbcbcce-f9e2-4f5d-b975-1f1122d3226c"}],"artifacts":[{"artifactName":"vf-license-model.xml","artifactType":"VF_LICENSE","artifactURL":"/sdc/v1/catalog/resources/a004b0d8-54bd-4ede-9311-c75dc608e9fd/artifacts/0d837657-c5fe-4042-a105-b650361cc289","artifactDescription":"VF license file","artifactChecksum":"MGU5YWY1NzNmZmM3MTEwYmM0YTgzMmQ5NGUyMmUzODQ=","artifactUUID":"0d837657-c5fe-4042-a105-b650361cc289","artifactVersion":"1","artifactLabel":"vflicense","artifactGroupType":"DEPLOYMENT"},{"artifactName":"base_vpkg.yaml","artifactType":"HEAT","artifactURL":"/sdc/v1/catalog/resources/a004b0d8-54bd-4ede-9311-c75dc608e9fd/artifacts/010c5015-477d-4aba-a57a-540daa1b7af6","artifactDescription":"created from csar","artifactTimeout":60,"artifactChecksum":"NzI1ZTM5NDU3ZjBhMzQwNmFiNDYzNDBhOWM2NjNmOWU=","artifactUUID":"010c5015-477d-4aba-a57a-540daa1b7af6","artifactVersion":"2","artifactLabel":"heat1","artifactGroupType":"DEPLOYMENT"},{"artifactName":"vendor-license-model.xml","artifactType":"VENDOR_LICENSE","artifactURL":"/sdc/v1/catalog/resources/a004b0d8-54bd-4ede-9311-c75dc608e9fd/artifacts/054e473f-173b-48d5-a4ee-f5ef055c008d","artifactDescription":" Vendor license file","artifactChecksum":"Mjc0NGViYzYyNWZkZTRmYWFkYmUzZjY1MmEwNzRjZDE=","artifactUUID":"054e473f-173b-48d5-a4ee-f5ef055c008d","artifactVersion":"1","artifactLabel":"vendorlicense","artifactGroupType":"DEPLOYMENT"}],"description":"vPacketGen"}
\ No newline at end of file diff --git a/src/test/resources/http-cache/example/sdc/v1/catalog/resources/a004b0d8-54bd-4ede-9311-c75dc608e9fd/metadata/.header b/src/test/resources/http-cache/example/sdc/v1/catalog/resources/a004b0d8-54bd-4ede-9311-c75dc608e9fd/metadata/.header deleted file mode 100644 index 31ab6c959..000000000 --- a/src/test/resources/http-cache/example/sdc/v1/catalog/resources/a004b0d8-54bd-4ede-9311-c75dc608e9fd/metadata/.header +++ /dev/null @@ -1 +0,0 @@ -{"Content-Length": "2096", "Set-Cookie": "JSESSIONID=89np5gtpq1dg1q6yy7aqkysk3;Path=/", "Expires": "Thu, 01 Jan 1970 00:00:00 GMT", "Server": "Jetty(9.3.21.v20170918)", "Content-Type": "application/json", "X-ECOMP-RequestID": "e02c1210-1cc8-4c4d-9763-2720e5f0a1ef"}
\ No newline at end of file diff --git a/src/test/resources/http-cache/example/sdc/v1/catalog/resources/a01ebd00-4b64-4607-8422-c3733735800d/metadata/.file b/src/test/resources/http-cache/example/sdc/v1/catalog/resources/a01ebd00-4b64-4607-8422-c3733735800d/metadata/.file deleted file mode 100644 index c48a50631..000000000 --- a/src/test/resources/http-cache/example/sdc/v1/catalog/resources/a01ebd00-4b64-4607-8422-c3733735800d/metadata/.file +++ /dev/null @@ -1 +0,0 @@ -{"uuid":"a01ebd00-4b64-4607-8422-c3733735800d","invariantUUID":"dd6edb9e-015e-45ae-9597-bac06687f9e3","name":"vLoadBalancer-nodes.vdnsCvfc","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/a01ebd00-4b64-4607-8422-c3733735800d/toscaModel","category":"Generic","subCategory":"Abstract","resourceType":"CVFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"cs0008","lastUpdaterFullName":"Carlos Santana","toscaResourceName":"org.onap.resource.vfc.Vloadbalancercvfc.abstract.nodes.vdns","resources":[{"resourceInstanceName":"vdns","resourceName":"Vloadbalancer.nodes.heat.vdns","resourceInvariantUUID":"b4ad5952-aa22-4645-ac57-72d55c8833be","resourceVersion":"1.0","resoucreType":"VFC","resourceUUID":"cca286e8-5ac0-451c-b874-8cc307181e10"},{"resourceInstanceName":"vdns_vdns_private_1_port","resourceName":"NeutronPort","resourceInvariantUUID":"d8a13756-4f96-40e2-a1ab-108dcda821a9","resourceVersion":"1.0","resoucreType":"CP","resourceUUID":"3a8362d1-b072-4cd1-b55c-73d882c8a388"},{"resourceInstanceName":"vdns_vdns_private_0_port","resourceName":"NeutronPort","resourceInvariantUUID":"d8a13756-4f96-40e2-a1ab-108dcda821a9","resourceVersion":"1.0","resoucreType":"CP","resourceUUID":"3a8362d1-b072-4cd1-b55c-73d882c8a388"}],"description":"Complex node type that is used as nested type in VF"}
\ No newline at end of file diff --git a/src/test/resources/http-cache/example/sdc/v1/catalog/resources/a01ebd00-4b64-4607-8422-c3733735800d/metadata/.header b/src/test/resources/http-cache/example/sdc/v1/catalog/resources/a01ebd00-4b64-4607-8422-c3733735800d/metadata/.header deleted file mode 100644 index 86df6fd4f..000000000 --- a/src/test/resources/http-cache/example/sdc/v1/catalog/resources/a01ebd00-4b64-4607-8422-c3733735800d/metadata/.header +++ /dev/null @@ -1 +0,0 @@ -{"Content-Length": "1307", "Set-Cookie": "JSESSIONID=s3ol5grms28iil8u7399i2ti;Path=/", "Expires": "Thu, 01 Jan 1970 00:00:00 GMT", "Server": "Jetty(9.3.21.v20170918)", "Content-Type": "application/json", "X-ECOMP-RequestID": "c5dafa60-41b8-46b1-9f02-a7cd6a9a92a5"}
\ No newline at end of file diff --git a/src/test/resources/http-cache/example/sdc/v1/catalog/resources/b339e576-e433-4be4-8a43-258f629c4e79/metadata/.file b/src/test/resources/http-cache/example/sdc/v1/catalog/resources/b339e576-e433-4be4-8a43-258f629c4e79/metadata/.file deleted file mode 100644 index 1156b1475..000000000 --- a/src/test/resources/http-cache/example/sdc/v1/catalog/resources/b339e576-e433-4be4-8a43-258f629c4e79/metadata/.file +++ /dev/null @@ -1 +0,0 @@ -{"uuid":"b339e576-e433-4be4-8a43-258f629c4e79","invariantUUID":"d66c0bce-d7e1-41ad-bdaf-468d442d0543","name":"Vfirewall.nodes.heat.vsn","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/b339e576-e433-4be4-8a43-258f629c4e79/toscaModel","category":"Generic","subCategory":"Abstract","resourceType":"VFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"cs0008","lastUpdaterFullName":"Carlos Santana","toscaResourceName":"org.onap.resource.vfc.Vfirewall.abstract.nodes.heat.vsn","description":"Not reusable inner VFC"}
\ No newline at end of file diff --git a/src/test/resources/http-cache/example/sdc/v1/catalog/resources/b339e576-e433-4be4-8a43-258f629c4e79/metadata/.header b/src/test/resources/http-cache/example/sdc/v1/catalog/resources/b339e576-e433-4be4-8a43-258f629c4e79/metadata/.header deleted file mode 100644 index faa4d0bd7..000000000 --- a/src/test/resources/http-cache/example/sdc/v1/catalog/resources/b339e576-e433-4be4-8a43-258f629c4e79/metadata/.header +++ /dev/null @@ -1 +0,0 @@ -{"Content-Length": "530", "Set-Cookie": "JSESSIONID=1iw9dnwwle3ig19rx0pz7c5dqu;Path=/", "Expires": "Thu, 01 Jan 1970 00:00:00 GMT", "Server": "Jetty(9.3.21.v20170918)", "Content-Type": "application/json", "X-ECOMP-RequestID": "415de25b-5ad3-4de7-b188-e6dec8e01f35"}
\ No newline at end of file diff --git a/src/test/resources/http-cache/example/sdc/v1/catalog/resources/c041f64d-8d8f-4f89-906f-79dccc63e7f5/metadata/.file b/src/test/resources/http-cache/example/sdc/v1/catalog/resources/c041f64d-8d8f-4f89-906f-79dccc63e7f5/metadata/.file deleted file mode 100644 index b754b913c..000000000 --- a/src/test/resources/http-cache/example/sdc/v1/catalog/resources/c041f64d-8d8f-4f89-906f-79dccc63e7f5/metadata/.file +++ /dev/null @@ -1 +0,0 @@ -{"uuid":"c041f64d-8d8f-4f89-906f-79dccc63e7f5","invariantUUID":"48504e0e-f3d3-411d-a52b-eda1b8fec073","name":"vLoadBalancer","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/c041f64d-8d8f-4f89-906f-79dccc63e7f5/toscaModel","category":"Application L4+","subCategory":"Load Balancer","resourceType":"VF","lifecycleState":"CERTIFIED","lastUpdaterUserId":"jm0007","lastUpdaterFullName":"Joni Mitchell","toscaResourceName":"org.onap.resource.vf.Vloadbalancer","resources":[{"resourceInstanceName":"abstract_vdns","resourceName":"vLoadBalancer-nodes.vdnsCvfc","resourceInvariantUUID":"dd6edb9e-015e-45ae-9597-bac06687f9e3","resourceVersion":"1.0","resoucreType":"CVFC","resourceUUID":"a01ebd00-4b64-4607-8422-c3733735800d"},{"resourceInstanceName":"vlb_private_network","resourceName":"NeutronNet","resourceInvariantUUID":"e83f8487-8ba2-479c-8d63-23217595dbb2","resourceVersion":"1.0","resoucreType":"VL","resourceUUID":"fc80335e-39cf-44a3-8860-995495fad829"},{"resourceInstanceName":"abstract_vlb","resourceName":"vLoadBalancer-nodes.vlbCvfc","resourceInvariantUUID":"ba4d4b5d-f861-4155-886b-b1cdba5e0957","resourceVersion":"1.0","resoucreType":"CVFC","resourceUUID":"228aac11-6e48-4412-afbf-327c5c3b04fb"},{"resourceInstanceName":"abstract_vpg","resourceName":"vLoadBalancer-nodes.vpgCvfc","resourceInvariantUUID":"702cbc3d-5669-426d-aba6-6ddf4d4a702b","resourceVersion":"1.0","resoucreType":"CVFC","resourceUUID":"948da0c9-536e-4688-85eb-d906fe7324b3"},{"resourceInstanceName":"abstract_vdns_1","resourceName":"vLoadBalancer-nodes.vdns_1Cvfc","resourceInvariantUUID":"2ef814e3-7c17-420c-bdba-e84e338cd991","resourceVersion":"1.0","resoucreType":"CVFC","resourceUUID":"38b62ebd-276a-48e8-948b-de76c81d6686"},{"resourceInstanceName":"pktgen_private_network","resourceName":"NeutronNet","resourceInvariantUUID":"e83f8487-8ba2-479c-8d63-23217595dbb2","resourceVersion":"1.0","resoucreType":"VL","resourceUUID":"fc80335e-39cf-44a3-8860-995495fad829"}],"artifacts":[{"artifactName":"vf-license-model.xml","artifactType":"VF_LICENSE","artifactURL":"/sdc/v1/catalog/resources/c041f64d-8d8f-4f89-906f-79dccc63e7f5/artifacts/51af0540-4863-4900-b3be-0f81abd89194","artifactDescription":"VF license file","artifactChecksum":"ODk5M2NiYzE2ZDk1ZmNkZmRjZDcwMTE1NjExMzViNjA=","artifactUUID":"51af0540-4863-4900-b3be-0f81abd89194","artifactVersion":"1","artifactLabel":"vflicense","artifactGroupType":"DEPLOYMENT"},{"artifactName":"dnsscaling.yaml","artifactType":"HEAT","artifactURL":"/sdc/v1/catalog/resources/c041f64d-8d8f-4f89-906f-79dccc63e7f5/artifacts/f5aad388-38b2-4b53-9df7-d8a25595e5cb","artifactDescription":"created from csar","artifactTimeout":60,"artifactChecksum":"NmE1MmVmNThmZmFjZmZiZTA4NDY2NzA2OTM4ZmFlMGM=","artifactUUID":"f5aad388-38b2-4b53-9df7-d8a25595e5cb","artifactVersion":"2","artifactLabel":"heat1","artifactGroupType":"DEPLOYMENT"},{"artifactName":"base_vlb.yaml","artifactType":"HEAT","artifactURL":"/sdc/v1/catalog/resources/c041f64d-8d8f-4f89-906f-79dccc63e7f5/artifacts/3370c5c2-cdbc-45b9-ab76-1f0d45cda59e","artifactDescription":"created from csar","artifactTimeout":60,"artifactChecksum":"ZWZiMDg0M2UxMGZmMjlhYTIxODE5ZDBhNWVhZDk2NTU=","artifactUUID":"3370c5c2-cdbc-45b9-ab76-1f0d45cda59e","artifactVersion":"2","artifactLabel":"heat2","artifactGroupType":"DEPLOYMENT"},{"artifactName":"vendor-license-model.xml","artifactType":"VENDOR_LICENSE","artifactURL":"/sdc/v1/catalog/resources/c041f64d-8d8f-4f89-906f-79dccc63e7f5/artifacts/28a877c8-2005-43d7-802d-769b5f420608","artifactDescription":" Vendor license file","artifactChecksum":"Mjc0NGViYzYyNWZkZTRmYWFkYmUzZjY1MmEwNzRjZDE=","artifactUUID":"28a877c8-2005-43d7-802d-769b5f420608","artifactVersion":"1","artifactLabel":"vendorlicense","artifactGroupType":"DEPLOYMENT"}],"description":"vLB, vDNS, vPacketGen"}
\ No newline at end of file diff --git a/src/test/resources/http-cache/example/sdc/v1/catalog/resources/c041f64d-8d8f-4f89-906f-79dccc63e7f5/metadata/.header b/src/test/resources/http-cache/example/sdc/v1/catalog/resources/c041f64d-8d8f-4f89-906f-79dccc63e7f5/metadata/.header deleted file mode 100644 index 84e699260..000000000 --- a/src/test/resources/http-cache/example/sdc/v1/catalog/resources/c041f64d-8d8f-4f89-906f-79dccc63e7f5/metadata/.header +++ /dev/null @@ -1 +0,0 @@ -{"Content-Length": "3790", "Set-Cookie": "JSESSIONID=1nqlf3cbvim6c1vmptrsdbq3ih;Path=/", "Expires": "Thu, 01 Jan 1970 00:00:00 GMT", "Server": "Jetty(9.3.21.v20170918)", "Content-Type": "application/json", "X-ECOMP-RequestID": "5b484e69-bb1c-4445-9da2-0eef460adf07"}
\ No newline at end of file diff --git a/src/test/resources/http-cache/example/sdc/v1/catalog/resources/c8a01686-2762-483c-98ad-a66606b9947f/metadata/.file b/src/test/resources/http-cache/example/sdc/v1/catalog/resources/c8a01686-2762-483c-98ad-a66606b9947f/metadata/.file deleted file mode 100644 index 24fbb4740..000000000 --- a/src/test/resources/http-cache/example/sdc/v1/catalog/resources/c8a01686-2762-483c-98ad-a66606b9947f/metadata/.file +++ /dev/null @@ -1 +0,0 @@ -{"uuid":"c8a01686-2762-483c-98ad-a66606b9947f","invariantUUID":"86769df9-139b-489f-949d-05efb7f0ed6a","name":"Vpacketgen.nodes.heat.vpg","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/c8a01686-2762-483c-98ad-a66606b9947f/toscaModel","category":"Generic","subCategory":"Abstract","resourceType":"VFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"cs0008","lastUpdaterFullName":"Carlos Santana","toscaResourceName":"org.onap.resource.vfc.Vpacketgen.abstract.nodes.heat.vpg","description":"Not reusable inner VFC"}
\ No newline at end of file diff --git a/src/test/resources/http-cache/example/sdc/v1/catalog/resources/c8a01686-2762-483c-98ad-a66606b9947f/metadata/.header b/src/test/resources/http-cache/example/sdc/v1/catalog/resources/c8a01686-2762-483c-98ad-a66606b9947f/metadata/.header deleted file mode 100644 index 650c2ad49..000000000 --- a/src/test/resources/http-cache/example/sdc/v1/catalog/resources/c8a01686-2762-483c-98ad-a66606b9947f/metadata/.header +++ /dev/null @@ -1 +0,0 @@ -{"Content-Length": "532", "Set-Cookie": "JSESSIONID=1cozsnghk53ca15awxbl6ni870;Path=/", "Expires": "Thu, 01 Jan 1970 00:00:00 GMT", "Server": "Jetty(9.3.21.v20170918)", "Content-Type": "application/json", "X-ECOMP-RequestID": "7ceea8dc-76d4-4dfb-a142-b0d220d61e14"}
\ No newline at end of file diff --git a/src/test/resources/http-cache/example/sdc/v1/catalog/resources/cca286e8-5ac0-451c-b874-8cc307181e10/metadata/.file b/src/test/resources/http-cache/example/sdc/v1/catalog/resources/cca286e8-5ac0-451c-b874-8cc307181e10/metadata/.file deleted file mode 100644 index 40093178f..000000000 --- a/src/test/resources/http-cache/example/sdc/v1/catalog/resources/cca286e8-5ac0-451c-b874-8cc307181e10/metadata/.file +++ /dev/null @@ -1 +0,0 @@ -{"uuid":"cca286e8-5ac0-451c-b874-8cc307181e10","invariantUUID":"b4ad5952-aa22-4645-ac57-72d55c8833be","name":"Vloadbalancer.nodes.heat.vdns","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/cca286e8-5ac0-451c-b874-8cc307181e10/toscaModel","category":"Generic","subCategory":"Abstract","resourceType":"VFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"cs0008","lastUpdaterFullName":"Carlos Santana","toscaResourceName":"org.onap.resource.vfc.Vloadbalancer.abstract.nodes.heat.vdns","description":"Not reusable inner VFC"}
\ No newline at end of file diff --git a/src/test/resources/http-cache/example/sdc/v1/catalog/resources/cca286e8-5ac0-451c-b874-8cc307181e10/metadata/.header b/src/test/resources/http-cache/example/sdc/v1/catalog/resources/cca286e8-5ac0-451c-b874-8cc307181e10/metadata/.header deleted file mode 100644 index 2ae908f02..000000000 --- a/src/test/resources/http-cache/example/sdc/v1/catalog/resources/cca286e8-5ac0-451c-b874-8cc307181e10/metadata/.header +++ /dev/null @@ -1 +0,0 @@ -{"Content-Length": "540", "Set-Cookie": "JSESSIONID=uf90ig0y06m3a7lijhv462bb;Path=/", "Expires": "Thu, 01 Jan 1970 00:00:00 GMT", "Server": "Jetty(9.3.21.v20170918)", "Content-Type": "application/json", "X-ECOMP-RequestID": "8a4decf7-9171-4559-861f-db94405f9f2c"}
\ No newline at end of file diff --git a/src/test/resources/http-cache/example/sdc/v1/catalog/resources/d6a5add1-162a-4966-80a6-8ba53d83b17f/metadata/.file b/src/test/resources/http-cache/example/sdc/v1/catalog/resources/d6a5add1-162a-4966-80a6-8ba53d83b17f/metadata/.file deleted file mode 100644 index 7ccde1490..000000000 --- a/src/test/resources/http-cache/example/sdc/v1/catalog/resources/d6a5add1-162a-4966-80a6-8ba53d83b17f/metadata/.file +++ /dev/null @@ -1 +0,0 @@ -{"uuid":"d6a5add1-162a-4966-80a6-8ba53d83b17f","invariantUUID":"74805001-19f5-4c2c-9928-03014161c32a","name":"vFirewall-nodes.vsnCvfc","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/d6a5add1-162a-4966-80a6-8ba53d83b17f/toscaModel","category":"Generic","subCategory":"Abstract","resourceType":"CVFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"cs0008","lastUpdaterFullName":"Carlos Santana","toscaResourceName":"org.onap.resource.vfc.Vfirewallcvfc.abstract.nodes.vsn","resources":[{"resourceInstanceName":"vsn","resourceName":"Vfirewall.nodes.heat.vsn","resourceInvariantUUID":"d66c0bce-d7e1-41ad-bdaf-468d442d0543","resourceVersion":"1.0","resoucreType":"VFC","resourceUUID":"b339e576-e433-4be4-8a43-258f629c4e79"},{"resourceInstanceName":"vsn_vsn_private_1_port","resourceName":"NeutronPort","resourceInvariantUUID":"d8a13756-4f96-40e2-a1ab-108dcda821a9","resourceVersion":"1.0","resoucreType":"CP","resourceUUID":"3a8362d1-b072-4cd1-b55c-73d882c8a388"},{"resourceInstanceName":"vsn_vsn_private_0_port","resourceName":"NeutronPort","resourceInvariantUUID":"d8a13756-4f96-40e2-a1ab-108dcda821a9","resourceVersion":"1.0","resoucreType":"CP","resourceUUID":"3a8362d1-b072-4cd1-b55c-73d882c8a388"}],"description":"Complex node type that is used as nested type in VF"}
\ No newline at end of file diff --git a/src/test/resources/http-cache/example/sdc/v1/catalog/resources/d6a5add1-162a-4966-80a6-8ba53d83b17f/metadata/.header b/src/test/resources/http-cache/example/sdc/v1/catalog/resources/d6a5add1-162a-4966-80a6-8ba53d83b17f/metadata/.header deleted file mode 100644 index ebd872113..000000000 --- a/src/test/resources/http-cache/example/sdc/v1/catalog/resources/d6a5add1-162a-4966-80a6-8ba53d83b17f/metadata/.header +++ /dev/null @@ -1 +0,0 @@ -{"Content-Length": "1287", "Set-Cookie": "JSESSIONID=atnj864xj270149zuaoutning;Path=/", "Expires": "Thu, 01 Jan 1970 00:00:00 GMT", "Server": "Jetty(9.3.21.v20170918)", "Content-Type": "application/json", "X-ECOMP-RequestID": "6a01fc8c-95f7-4708-a232-495c3b8cf436"}
\ No newline at end of file diff --git a/src/test/resources/http-cache/example/sdc/v1/catalog/resources/f2686c0f-11c5-4cab-83bd-b0f2cc35bf4d/metadata/.file b/src/test/resources/http-cache/example/sdc/v1/catalog/resources/f2686c0f-11c5-4cab-83bd-b0f2cc35bf4d/metadata/.file deleted file mode 100644 index 3113104e1..000000000 --- a/src/test/resources/http-cache/example/sdc/v1/catalog/resources/f2686c0f-11c5-4cab-83bd-b0f2cc35bf4d/metadata/.file +++ /dev/null @@ -1 +0,0 @@ -{"uuid":"f2686c0f-11c5-4cab-83bd-b0f2cc35bf4d","invariantUUID":"3ff44c1d-0384-4501-8e33-dd3000799378","name":"Vloadbalancer.nodes.heat.vlb","version":"1.0","toscaModelURL":"/sdc/v1/catalog/resources/f2686c0f-11c5-4cab-83bd-b0f2cc35bf4d/toscaModel","category":"Generic","subCategory":"Abstract","resourceType":"VFC","lifecycleState":"CERTIFIED","lastUpdaterUserId":"cs0008","lastUpdaterFullName":"Carlos Santana","toscaResourceName":"org.onap.resource.vfc.Vloadbalancer.abstract.nodes.heat.vlb","description":"Not reusable inner VFC"}
\ No newline at end of file diff --git a/src/test/resources/http-cache/example/sdc/v1/catalog/resources/f2686c0f-11c5-4cab-83bd-b0f2cc35bf4d/metadata/.header b/src/test/resources/http-cache/example/sdc/v1/catalog/resources/f2686c0f-11c5-4cab-83bd-b0f2cc35bf4d/metadata/.header deleted file mode 100644 index 629e7d981..000000000 --- a/src/test/resources/http-cache/example/sdc/v1/catalog/resources/f2686c0f-11c5-4cab-83bd-b0f2cc35bf4d/metadata/.header +++ /dev/null @@ -1 +0,0 @@ -{"Content-Length": "538", "Set-Cookie": "JSESSIONID=1gy8iwktdb6fl1ja4hcilqnj0x;Path=/", "Expires": "Thu, 01 Jan 1970 00:00:00 GMT", "Server": "Jetty(9.3.21.v20170918)", "Content-Type": "application/json", "X-ECOMP-RequestID": "712c8b60-afb5-4b77-a12f-bdaf82d5b9a5"}
\ No newline at end of file diff --git a/src/test/resources/http-cache/example/sdc/v1/catalog/services/.file b/src/test/resources/http-cache/example/sdc/v1/catalog/services/.file deleted file mode 100644 index 92694fed2..000000000 --- a/src/test/resources/http-cache/example/sdc/v1/catalog/services/.file +++ /dev/null @@ -1 +0,0 @@ -[{"uuid":"aecb6332-e906-4334-9f04-93ba4926f6c2","invariantUUID":"c95b0e7c-c1f0-4287-9928-7964c5377a46","name":"vLoadBalancer","version":"1.0","toscaModelURL":"/sdc/v1/catalog/services/aecb6332-e906-4334-9f04-93ba4926f6c2/toscaModel","category":"Network L4+","lifecycleState":"CERTIFIED","lastUpdaterUserId":"jm0007","distributionStatus":"DISTRIBUTED"},{"uuid":"56441b4b-0467-41dc-9a0e-e68613838219","invariantUUID":"4cc5b45a-1f63-4194-8100-cd8e14248c92","name":"vFirewall","version":"1.0","toscaModelURL":"/sdc/v1/catalog/services/56441b4b-0467-41dc-9a0e-e68613838219/toscaModel","category":"Network L4+","lifecycleState":"CERTIFIED","lastUpdaterUserId":"jm0007","distributionStatus":"DISTRIBUTED"}]
\ No newline at end of file diff --git a/src/test/resources/http-cache/example/sdc/v1/catalog/services/.header b/src/test/resources/http-cache/example/sdc/v1/catalog/services/.header deleted file mode 100644 index 231ae3db2..000000000 --- a/src/test/resources/http-cache/example/sdc/v1/catalog/services/.header +++ /dev/null @@ -1 +0,0 @@ -{"Content-Length": "699", "Set-Cookie": "JSESSIONID=w1td04rzsdjkehn8j9ajg2cz;Path=/", "Expires": "Thu, 01 Jan 1970 00:00:00 GMT", "Server": "Jetty(9.3.21.v20170918)", "Content-Type": "application/json", "X-ECOMP-RequestID": "43868be1-b1b4-4876-b1ed-8a4abf710695"}
\ No newline at end of file diff --git a/src/test/resources/http-cache/example/sdc/v1/catalog/services/56441b4b-0467-41dc-9a0e-e68613838219/metadata/.file b/src/test/resources/http-cache/example/sdc/v1/catalog/services/56441b4b-0467-41dc-9a0e-e68613838219/metadata/.file deleted file mode 100644 index 294d88c54..000000000 --- a/src/test/resources/http-cache/example/sdc/v1/catalog/services/56441b4b-0467-41dc-9a0e-e68613838219/metadata/.file +++ /dev/null @@ -1 +0,0 @@ -{"uuid":"56441b4b-0467-41dc-9a0e-e68613838219","invariantUUID":"4cc5b45a-1f63-4194-8100-cd8e14248c92","name":"vFirewall","version":"1.0","toscaModelURL":"/sdc/v1/catalog/services/56441b4b-0467-41dc-9a0e-e68613838219/toscaModel","category":"Network L4+","lifecycleState":"CERTIFIED","lastUpdaterUserId":"jm0007","distributionStatus":"DISTRIBUTED","lastUpdaterFullName":"Joni Mitchell","resources":[{"resourceInstanceName":"vFirewall 0","resourceName":"vFirewall","resourceInvariantUUID":"07e266fc-49ab-4cd7-8378-ca4676f1b9ec","resourceVersion":"1.0","resoucreType":"VF","resourceUUID":"98c27d0b-9395-4f8b-87ab-e076cd1f627e","artifacts":[{"artifactName":"vf-license-model.xml","artifactType":"VF_LICENSE","artifactURL":"/sdc/v1/catalog/services/56441b4b-0467-41dc-9a0e-e68613838219/resourceInstances/vfirewall0/artifacts/6e816af9-944d-46d0-826d-5ff7be063a01","artifactDescription":"VF license file","artifactChecksum":"Njg4NTI4ZWY2MTliMGQzOGZmNDA4ZjRiMjllZmJkMzM=","artifactUUID":"6e816af9-944d-46d0-826d-5ff7be063a01","artifactVersion":"1","artifactLabel":"vflicense","artifactGroupType":"DEPLOYMENT"},{"artifactName":"vfirewall0_modules.json","artifactType":"VF_MODULES_METADATA","artifactURL":"/sdc/v1/catalog/services/56441b4b-0467-41dc-9a0e-e68613838219/resourceInstances/vfirewall0/artifacts/f8cda4b3-3185-4801-b2dc-daa07509f62a","artifactDescription":"Auto-generated VF Modules information artifact","artifactChecksum":"MjZjNjBmNDFhOWZiZDdhOWZhNTI5NGRlNDE0NDQ4ZWM=","artifactUUID":"f8cda4b3-3185-4801-b2dc-daa07509f62a","artifactVersion":"1","artifactLabel":"vfModulesMetadata","artifactGroupType":"DEPLOYMENT"},{"artifactName":"base_vfw.yaml","artifactType":"HEAT","artifactURL":"/sdc/v1/catalog/services/56441b4b-0467-41dc-9a0e-e68613838219/resourceInstances/vfirewall0/artifacts/cbc75b18-86d1-4139-95f2-1d91f79a8b25","artifactDescription":"created from csar","artifactTimeout":60,"artifactChecksum":"M2I1YmVjNzZkY2MxMWJkYTM5NzA3NDVhMGQxMzY2MDA=","artifactUUID":"cbc75b18-86d1-4139-95f2-1d91f79a8b25","artifactVersion":"2","artifactLabel":"heat1","artifactGroupType":"DEPLOYMENT"},{"artifactName":"vendor-license-model.xml","artifactType":"VENDOR_LICENSE","artifactURL":"/sdc/v1/catalog/services/56441b4b-0467-41dc-9a0e-e68613838219/resourceInstances/vfirewall0/artifacts/5b592087-76bf-4c43-a1e7-d4151ce51cdd","artifactDescription":" Vendor license file","artifactChecksum":"Mjc0NGViYzYyNWZkZTRmYWFkYmUzZjY1MmEwNzRjZDE=","artifactUUID":"5b592087-76bf-4c43-a1e7-d4151ce51cdd","artifactVersion":"1","artifactLabel":"vendorlicense","artifactGroupType":"DEPLOYMENT"},{"artifactName":"base_vfw.env","artifactType":"HEAT_ENV","artifactURL":"/sdc/v1/catalog/services/56441b4b-0467-41dc-9a0e-e68613838219/resourceInstances/vfirewall0/artifacts/1a4f0437-9e22-4e18-89ee-c4d95d15e9c1","artifactDescription":"Auto-generated HEAT Environment deployment artifact","artifactChecksum":"MTU0MzA1NzVmYmRhN2ZhMTEzZWMxZWIxMjdkMWFkY2Y=","artifactUUID":"1a4f0437-9e22-4e18-89ee-c4d95d15e9c1","artifactVersion":"2","generatedFromUUID":"51533b42-39ce-4ea8-86a4-458cfbdc72da.heat1","artifactLabel":"heat1env","artifactGroupType":"DEPLOYMENT"}]},{"resourceInstanceName":"vPacketGen 0","resourceName":"vPacketGen","resourceInvariantUUID":"023a3f0d-1161-45ff-b4cf-8918a8ccf3ad","resourceVersion":"1.0","resoucreType":"VF","resourceUUID":"a004b0d8-54bd-4ede-9311-c75dc608e9fd","artifacts":[{"artifactName":"vf-license-model.xml","artifactType":"VF_LICENSE","artifactURL":"/sdc/v1/catalog/services/56441b4b-0467-41dc-9a0e-e68613838219/resourceInstances/vpacketgen0/artifacts/0d837657-c5fe-4042-a105-b650361cc289","artifactDescription":"VF license file","artifactChecksum":"MGU5YWY1NzNmZmM3MTEwYmM0YTgzMmQ5NGUyMmUzODQ=","artifactUUID":"0d837657-c5fe-4042-a105-b650361cc289","artifactVersion":"1","artifactLabel":"vflicense","artifactGroupType":"DEPLOYMENT"},{"artifactName":"vpacketgen0_modules.json","artifactType":"VF_MODULES_METADATA","artifactURL":"/sdc/v1/catalog/services/56441b4b-0467-41dc-9a0e-e68613838219/resourceInstances/vpacketgen0/artifacts/dbcbf1bc-bb8d-43e5-8e77-aec713a2e18c","artifactDescription":"Auto-generated VF Modules information artifact","artifactChecksum":"Zjg5ZWQ0NDIxMTAzOTE1Y2E0MzQ1YmY0Y2MwMmE3YjM=","artifactUUID":"dbcbf1bc-bb8d-43e5-8e77-aec713a2e18c","artifactVersion":"1","artifactLabel":"vfModulesMetadata","artifactGroupType":"DEPLOYMENT"},{"artifactName":"base_vpkg.yaml","artifactType":"HEAT","artifactURL":"/sdc/v1/catalog/services/56441b4b-0467-41dc-9a0e-e68613838219/resourceInstances/vpacketgen0/artifacts/010c5015-477d-4aba-a57a-540daa1b7af6","artifactDescription":"created from csar","artifactTimeout":60,"artifactChecksum":"NzI1ZTM5NDU3ZjBhMzQwNmFiNDYzNDBhOWM2NjNmOWU=","artifactUUID":"010c5015-477d-4aba-a57a-540daa1b7af6","artifactVersion":"2","artifactLabel":"heat1","artifactGroupType":"DEPLOYMENT"},{"artifactName":"vendor-license-model.xml","artifactType":"VENDOR_LICENSE","artifactURL":"/sdc/v1/catalog/services/56441b4b-0467-41dc-9a0e-e68613838219/resourceInstances/vpacketgen0/artifacts/054e473f-173b-48d5-a4ee-f5ef055c008d","artifactDescription":" Vendor license file","artifactChecksum":"Mjc0NGViYzYyNWZkZTRmYWFkYmUzZjY1MmEwNzRjZDE=","artifactUUID":"054e473f-173b-48d5-a4ee-f5ef055c008d","artifactVersion":"1","artifactLabel":"vendorlicense","artifactGroupType":"DEPLOYMENT"},{"artifactName":"base_vpkg.env","artifactType":"HEAT_ENV","artifactURL":"/sdc/v1/catalog/services/56441b4b-0467-41dc-9a0e-e68613838219/resourceInstances/vpacketgen0/artifacts/5724e8d3-47ce-4fbc-b8fc-e1407256c6f4","artifactDescription":"Auto-generated HEAT Environment deployment artifact","artifactChecksum":"NTUzYWFkYWI4NGJlNTU1NWIxMWNlZWQ0ODA5ZDM1MTY=","artifactUUID":"5724e8d3-47ce-4fbc-b8fc-e1407256c6f4","artifactVersion":"2","generatedFromUUID":"2a1233b6-e907-4a1f-8dc8-ead97245afe6.heat1","artifactLabel":"heat1env","artifactGroupType":"DEPLOYMENT"}]}],"artifacts":[{"artifactName":"AAI-vFirewall-resource-1.0.xml","artifactType":"MODEL_INVENTORY_PROFILE","artifactURL":"/sdc/v1/catalog/services/56441b4b-0467-41dc-9a0e-e68613838219/artifacts/c55b70c5-5ed5-4ec7-9720-dbc66d47e7cb","artifactDescription":"AAI Resource Model","artifactChecksum":"OGExM2IxZmI5ODQ2Yzk4M2Y3OTY2MjMzNjdjMjA3NjQ=","artifactUUID":"c55b70c5-5ed5-4ec7-9720-dbc66d47e7cb","artifactVersion":"1","artifactLabel":"aairesource796548963","artifactGroupType":"DEPLOYMENT"},{"artifactName":"AAI-vPacketGen-resource-1.0.xml","artifactType":"MODEL_INVENTORY_PROFILE","artifactURL":"/sdc/v1/catalog/services/56441b4b-0467-41dc-9a0e-e68613838219/artifacts/2993af7a-c0e3-43db-8a4d-2969df0ba486","artifactDescription":"AAI Resource Model","artifactChecksum":"ZTY3MTE3MTMzYTFjOGFiMDhmNTFjZGVjNWQxZWM1MmI=","artifactUUID":"2993af7a-c0e3-43db-8a4d-2969df0ba486","artifactVersion":"1","artifactLabel":"aairesource913456444","artifactGroupType":"DEPLOYMENT"},{"artifactName":"AAI-vFirewall-service-1.0.xml","artifactType":"MODEL_INVENTORY_PROFILE","artifactURL":"/sdc/v1/catalog/services/56441b4b-0467-41dc-9a0e-e68613838219/artifacts/d5af6c6b-0e4b-42cd-a54c-0be081f914a7","artifactDescription":"AAI Service Model","artifactChecksum":"NTRjYzdiYmVlZDI4MDU0OTM5NDE1MTVmY2VlZWZhMzc=","artifactUUID":"d5af6c6b-0e4b-42cd-a54c-0be081f914a7","artifactVersion":"1","artifactLabel":"aaiservice576477880","artifactGroupType":"DEPLOYMENT"},{"artifactName":"AAI-Vpacketgen..base_vpkg..module-0-resource-1.xml","artifactType":"MODEL_INVENTORY_PROFILE","artifactURL":"/sdc/v1/catalog/services/56441b4b-0467-41dc-9a0e-e68613838219/artifacts/b583357c-f307-4b22-a4e4-1b99e23f0fc5","artifactDescription":"AAI Resource Model","artifactChecksum":"NmNlNjc0NmViMGRmNWY5MjRjMjliNmMwZGJiNDQxZmU=","artifactUUID":"b583357c-f307-4b22-a4e4-1b99e23f0fc5","artifactVersion":"1","artifactLabel":"aairesource696606042","artifactGroupType":"DEPLOYMENT"},{"artifactName":"AAI-Vfirewall..base_vfw..module-0-resource-1.xml","artifactType":"MODEL_INVENTORY_PROFILE","artifactURL":"/sdc/v1/catalog/services/56441b4b-0467-41dc-9a0e-e68613838219/artifacts/a50595b1-77f6-431d-918a-531312771a72","artifactDescription":"AAI Resource Model","artifactChecksum":"Y2E2OTU1NjFiN2U2YmYwMzc2ODE3MWJkMWJmYjVkMDQ=","artifactUUID":"a50595b1-77f6-431d-918a-531312771a72","artifactVersion":"1","artifactLabel":"aairesource1531446144","artifactGroupType":"DEPLOYMENT"}]}
\ No newline at end of file diff --git a/src/test/resources/http-cache/example/sdc/v1/catalog/services/56441b4b-0467-41dc-9a0e-e68613838219/metadata/.header b/src/test/resources/http-cache/example/sdc/v1/catalog/services/56441b4b-0467-41dc-9a0e-e68613838219/metadata/.header deleted file mode 100644 index b68cd5a95..000000000 --- a/src/test/resources/http-cache/example/sdc/v1/catalog/services/56441b4b-0467-41dc-9a0e-e68613838219/metadata/.header +++ /dev/null @@ -1 +0,0 @@ -{"Transfer-Encoding": "chunked", "Set-Cookie": "JSESSIONID=1q39ofwsxq5fv1ceix6aviixab;Path=/", "Expires": "Thu, 01 Jan 1970 00:00:00 GMT", "Server": "Jetty(9.3.21.v20170918)", "Content-Type": "application/json", "X-ECOMP-RequestID": "8eaaa9d5-0585-4e48-82a6-932c85afc4fa"}
\ No newline at end of file diff --git a/src/test/resources/http-cache/example/sdc/v1/catalog/services/56441b4b-0467-41dc-9a0e-e68613838219/resourceInstances/vpacketgen0/artifacts/.file b/src/test/resources/http-cache/example/sdc/v1/catalog/services/56441b4b-0467-41dc-9a0e-e68613838219/resourceInstances/vpacketgen0/artifacts/.file deleted file mode 100644 index 29d8ab70c..000000000 --- a/src/test/resources/http-cache/example/sdc/v1/catalog/services/56441b4b-0467-41dc-9a0e-e68613838219/resourceInstances/vpacketgen0/artifacts/.file +++ /dev/null @@ -1 +0,0 @@ -{"artifactName":"ClosedLoop-2e3d2132-26d4-11e8-826d-0242ac130002.yml","artifactType":"DCAE_INVENTORY_BLUEPRINT","artifactURL":"","artifactDescription":"Description of the Artifact","artifactChecksum":"ZjJlMjVmMWE2M2M1OTM2MDZlODlmNTVmZmYzNjViYzM=","artifactUUID":"13fb13f9-f5d7-4ade-b934-d0da78754a51","artifactVersion":"1"}
\ No newline at end of file diff --git a/src/test/resources/http-cache/example/sdc/v1/catalog/services/56441b4b-0467-41dc-9a0e-e68613838219/resourceInstances/vpacketgen0/artifacts/.header b/src/test/resources/http-cache/example/sdc/v1/catalog/services/56441b4b-0467-41dc-9a0e-e68613838219/resourceInstances/vpacketgen0/artifacts/.header deleted file mode 100644 index 125a579ec..000000000 --- a/src/test/resources/http-cache/example/sdc/v1/catalog/services/56441b4b-0467-41dc-9a0e-e68613838219/resourceInstances/vpacketgen0/artifacts/.header +++ /dev/null @@ -1 +0,0 @@ -{"Content-Length": "323", "Content-Type": "application/json"}
\ No newline at end of file diff --git a/src/test/resources/http-cache/example/sdc/v1/catalog/services/aecb6332-e906-4334-9f04-93ba4926f6c2/metadata/.file b/src/test/resources/http-cache/example/sdc/v1/catalog/services/aecb6332-e906-4334-9f04-93ba4926f6c2/metadata/.file deleted file mode 100644 index bc8d30ce9..000000000 --- a/src/test/resources/http-cache/example/sdc/v1/catalog/services/aecb6332-e906-4334-9f04-93ba4926f6c2/metadata/.file +++ /dev/null @@ -1 +0,0 @@ -{"uuid":"aecb6332-e906-4334-9f04-93ba4926f6c2","invariantUUID":"c95b0e7c-c1f0-4287-9928-7964c5377a46","name":"vLoadBalancer","version":"1.0","toscaModelURL":"/sdc/v1/catalog/services/aecb6332-e906-4334-9f04-93ba4926f6c2/toscaModel","category":"Network L4+","lifecycleState":"CERTIFIED","lastUpdaterUserId":"jm0007","distributionStatus":"DISTRIBUTED","lastUpdaterFullName":"Joni Mitchell","resources":[{"resourceInstanceName":"vLoadBalancer 0","resourceName":"vLoadBalancer","resourceInvariantUUID":"48504e0e-f3d3-411d-a52b-eda1b8fec073","resourceVersion":"1.0","resoucreType":"VF","resourceUUID":"c041f64d-8d8f-4f89-906f-79dccc63e7f5","artifacts":[{"artifactName":"vf-license-model.xml","artifactType":"VF_LICENSE","artifactURL":"/sdc/v1/catalog/services/aecb6332-e906-4334-9f04-93ba4926f6c2/resourceInstances/vloadbalancer0/artifacts/51af0540-4863-4900-b3be-0f81abd89194","artifactDescription":"VF license file","artifactChecksum":"ODk5M2NiYzE2ZDk1ZmNkZmRjZDcwMTE1NjExMzViNjA=","artifactUUID":"51af0540-4863-4900-b3be-0f81abd89194","artifactVersion":"1","artifactLabel":"vflicense","artifactGroupType":"DEPLOYMENT"},{"artifactName":"vloadbalancer0_modules.json","artifactType":"VF_MODULES_METADATA","artifactURL":"/sdc/v1/catalog/services/aecb6332-e906-4334-9f04-93ba4926f6c2/resourceInstances/vloadbalancer0/artifacts/09fd9d5b-c442-4fd5-9430-d222ed9d6072","artifactDescription":"Auto-generated VF Modules information artifact","artifactChecksum":"NGViZWM5NmU3OGJkODI5N2E4OTIxNGU0ZjY4MDIyMGI=","artifactUUID":"09fd9d5b-c442-4fd5-9430-d222ed9d6072","artifactVersion":"1","artifactLabel":"vfModulesMetadata","artifactGroupType":"DEPLOYMENT"},{"artifactName":"dnsscaling.yaml","artifactType":"HEAT","artifactURL":"/sdc/v1/catalog/services/aecb6332-e906-4334-9f04-93ba4926f6c2/resourceInstances/vloadbalancer0/artifacts/f5aad388-38b2-4b53-9df7-d8a25595e5cb","artifactDescription":"created from csar","artifactTimeout":60,"artifactChecksum":"NmE1MmVmNThmZmFjZmZiZTA4NDY2NzA2OTM4ZmFlMGM=","artifactUUID":"f5aad388-38b2-4b53-9df7-d8a25595e5cb","artifactVersion":"2","artifactLabel":"heat1","artifactGroupType":"DEPLOYMENT"},{"artifactName":"base_vlb.yaml","artifactType":"HEAT","artifactURL":"/sdc/v1/catalog/services/aecb6332-e906-4334-9f04-93ba4926f6c2/resourceInstances/vloadbalancer0/artifacts/3370c5c2-cdbc-45b9-ab76-1f0d45cda59e","artifactDescription":"created from csar","artifactTimeout":60,"artifactChecksum":"ZWZiMDg0M2UxMGZmMjlhYTIxODE5ZDBhNWVhZDk2NTU=","artifactUUID":"3370c5c2-cdbc-45b9-ab76-1f0d45cda59e","artifactVersion":"2","artifactLabel":"heat2","artifactGroupType":"DEPLOYMENT"},{"artifactName":"base_vlb.env","artifactType":"HEAT_ENV","artifactURL":"/sdc/v1/catalog/services/aecb6332-e906-4334-9f04-93ba4926f6c2/resourceInstances/vloadbalancer0/artifacts/393157c8-74f5-40f5-ac2c-b8386dc5f763","artifactDescription":"Auto-generated HEAT Environment deployment artifact","artifactChecksum":"NzMwOTgwYTgyNWY2NThjOTZmNzZkMDdjODJiOGNkN2Y=","artifactUUID":"393157c8-74f5-40f5-ac2c-b8386dc5f763","artifactVersion":"2","generatedFromUUID":"25d2b375-b4ad-4476-a5eb-ceb851d9e536.heat2","artifactLabel":"heat2env","artifactGroupType":"DEPLOYMENT"},{"artifactName":"vendor-license-model.xml","artifactType":"VENDOR_LICENSE","artifactURL":"/sdc/v1/catalog/services/aecb6332-e906-4334-9f04-93ba4926f6c2/resourceInstances/vloadbalancer0/artifacts/28a877c8-2005-43d7-802d-769b5f420608","artifactDescription":" Vendor license file","artifactChecksum":"Mjc0NGViYzYyNWZkZTRmYWFkYmUzZjY1MmEwNzRjZDE=","artifactUUID":"28a877c8-2005-43d7-802d-769b5f420608","artifactVersion":"1","artifactLabel":"vendorlicense","artifactGroupType":"DEPLOYMENT"},{"artifactName":"dnsscaling.env","artifactType":"HEAT_ENV","artifactURL":"/sdc/v1/catalog/services/aecb6332-e906-4334-9f04-93ba4926f6c2/resourceInstances/vloadbalancer0/artifacts/13a375d2-2926-4b2c-a5a9-f380ac744ffb","artifactDescription":"Auto-generated HEAT Environment deployment artifact","artifactChecksum":"MWQzY2UxZDQ5MzhiNzA1OTg2NjcwNDIxODczYzhiNjU=","artifactUUID":"13a375d2-2926-4b2c-a5a9-f380ac744ffb","artifactVersion":"2","generatedFromUUID":"25d2b375-b4ad-4476-a5eb-ceb851d9e536.heat1","artifactLabel":"heat1env","artifactGroupType":"DEPLOYMENT"}]}],"artifacts":[{"artifactName":"AAI-vLoadBalancer-service-1.0.xml","artifactType":"MODEL_INVENTORY_PROFILE","artifactURL":"/sdc/v1/catalog/services/aecb6332-e906-4334-9f04-93ba4926f6c2/artifacts/775f9232-0db1-49af-a27b-8cd6f0271d29","artifactDescription":"AAI Service Model","artifactChecksum":"Yjk3NzY2NTFkODU4MWU0YjVhOGViODZjNmUyZGIxODc=","artifactUUID":"775f9232-0db1-49af-a27b-8cd6f0271d29","artifactVersion":"1","artifactLabel":"aaiservice150241483","artifactGroupType":"DEPLOYMENT"},{"artifactName":"AAI-Vloadbalancer..dnsscaling..module-1-resource-1.xml","artifactType":"MODEL_INVENTORY_PROFILE","artifactURL":"/sdc/v1/catalog/services/aecb6332-e906-4334-9f04-93ba4926f6c2/artifacts/4ce04ca0-94cc-4884-a36a-c46cb6b2ae1b","artifactDescription":"AAI Resource Model","artifactChecksum":"ZjhlOGNkNjdmMWM5NWU4MDY0ZWRjYWEzMTEzZGM2ZTI=","artifactUUID":"4ce04ca0-94cc-4884-a36a-c46cb6b2ae1b","artifactVersion":"1","artifactLabel":"aairesource916952801","artifactGroupType":"DEPLOYMENT"},{"artifactName":"AAI-Vloadbalancer..base_vlb..module-0-resource-1.xml","artifactType":"MODEL_INVENTORY_PROFILE","artifactURL":"/sdc/v1/catalog/services/aecb6332-e906-4334-9f04-93ba4926f6c2/artifacts/9200d35b-c50b-4502-9473-33039a1c2454","artifactDescription":"AAI Resource Model","artifactChecksum":"ZTNmZDFlOTBjNGU3ZWY3NWE2MTQ1ZWQ4YzBiYWU4NzE=","artifactUUID":"9200d35b-c50b-4502-9473-33039a1c2454","artifactVersion":"1","artifactLabel":"aairesource1122970540","artifactGroupType":"DEPLOYMENT"},{"artifactName":"AAI-vLoadBalancer-resource-1.0.xml","artifactType":"MODEL_INVENTORY_PROFILE","artifactURL":"/sdc/v1/catalog/services/aecb6332-e906-4334-9f04-93ba4926f6c2/artifacts/faf70850-ea55-4ab6-9648-46a753cdb43f","artifactDescription":"AAI Resource Model","artifactChecksum":"NjBkMDE1YWYwOTY5ZWZkNGUxYmYwYWJkZGNhMTk2MTg=","artifactUUID":"faf70850-ea55-4ab6-9648-46a753cdb43f","artifactVersion":"1","artifactLabel":"aairesource1272484133","artifactGroupType":"DEPLOYMENT"}]}
\ No newline at end of file diff --git a/src/test/resources/http-cache/example/sdc/v1/catalog/services/aecb6332-e906-4334-9f04-93ba4926f6c2/metadata/.header b/src/test/resources/http-cache/example/sdc/v1/catalog/services/aecb6332-e906-4334-9f04-93ba4926f6c2/metadata/.header deleted file mode 100644 index fba705b1b..000000000 --- a/src/test/resources/http-cache/example/sdc/v1/catalog/services/aecb6332-e906-4334-9f04-93ba4926f6c2/metadata/.header +++ /dev/null @@ -1 +0,0 @@ -{"Content-Length": "6161", "Set-Cookie": "JSESSIONID=1au1i8ursafcdtpvhzarkul54;Path=/", "Expires": "Thu, 01 Jan 1970 00:00:00 GMT", "Server": "Jetty(9.3.21.v20170918)", "Content-Type": "application/json", "X-ECOMP-RequestID": "e0ca6465-8984-46aa-9e4e-28f3b0415bb1"}
\ No newline at end of file diff --git a/src/test/resources/logback.xml b/src/test/resources/logback.xml index 07e587855..c71bcba8f 100644 --- a/src/test/resources/logback.xml +++ b/src/test/resources/logback.xml @@ -1,2 +1,91 @@ <!-- Empty Configuration to prevent creating log files by Units Tests (e.g LoggingUtilsTest) ! --> -<configuration /> +<configuration> + <jmxConfigurator /> + <!-- Example evaluator filter applied against console appender --> + <property + name="p_tim" + value="%d{"yyyy-MM-dd'T'HH:mm:ss.SSSXXX", UTC}" /> + <property + name="p_lvl" + value="%level" /> + <property + name="p_log" + value="%logger" /> + <property + name="p_mdc" + value="%replace(%replace(%mdc){'\t','\\\\t'}){'\n', '\\\\n'}" /> + <property + name="p_msg" + value="%replace(%replace(%msg){'\t', '\\\\t'}){'\n','\\\\n'}" /> + <property + name="p_exc" + value="%replace(%replace(%rootException){'\t', '\\\\t'}){'\n','\\\\n'}" /> + <property + name="p_mak" + value="%replace(%replace(%marker){'\t', '\\\\t'}){'\n','\\\\n'}" /> + <property + name="p_thr" + value="%thread" /> + <property + name="defaultPattern" + value="%nopexception${p_tim}\t${p_thr}\t${p_lvl}\t${p_log}\t${p_mdc}\t${p_msg}\t${p_exc}\t${p_mak}\t%n" /> + <property + name="debugPattern" + value="%nopexception${p_tim}|${p_lvl}|${p_mdc}|${p_exc}|%msg%n" /> + + <!-- Example evaluator filter applied against console appender --> + <appender + name="STDOUT" + class="ch.qos.logback.core.ConsoleAppender"> + <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> + <level>INFO</level> + </filter> + <encoder> + <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{1024} - %msg%n + </pattern> + </encoder> + </appender> + <logger + name="org.onap.aaf" + level="DEBUG"> + <appender-ref ref="STDOUT" /> + </logger> + <logger + name="org.apache" + level="DEBUG"> + <appender-ref ref="STDOUT" /> + </logger> + <!-- Spring related loggers --> + <logger + name="org.springframework" + level="DEBUG"> + <appender-ref ref="STDOUT" /> + </logger> + + <!-- CLDS related loggers --> + <logger + name="org.onap.clamp" + level="DEBUG"> + <appender-ref ref="STDOUT" /> + </logger> + + <!-- CLDS related loggers --> + <logger + name="com.att.eelf.error" + level="OFF"> + <appender-ref ref="STDOUT" /> + </logger> + + <logger + name="ch.qos.logback.classic" + level="INFO" /> + <logger + name="ch.qos.logback.core" + level="INFO" /> + + <!-- logback jms appenders & loggers definition ends here --> + + <root level="DEBUG"> + <appender-ref ref="STDOUT" /> + </root> +</configuration> diff --git a/src/test/resources/tosca/dcea_blueprint.yml b/src/test/resources/tosca/dcea_blueprint.yml deleted file mode 100644 index 0d3ea0462..000000000 --- a/src/test/resources/tosca/dcea_blueprint.yml +++ /dev/null @@ -1,170 +0,0 @@ -# -# ============LICENSE_START==================================================== -# ============================================================================= -# Copyright (c) 2018 AT&T Intellectual Property. All rights reserved. -# ============================================================================= -# 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. -# ============LICENSE_END====================================================== - -tosca_definitions_version: cloudify_dsl_1_3 - -description: > - This blueprint deploys/manages the TCA module as a Docker container - -imports: - - http://www.getcloudify.org/spec/cloudify/3.4/types.yaml - - https://nexus.onap.org/service/local/repositories/raw/content/org.onap.dcaegen2.platform.plugins/R4/k8splugin/1.4.4/k8splugin_types.yaml - - https://nexus.onap.org/service/local/repositories/raw/content/org.onap.dcaegen2.platform.plugins/R4/dcaepolicyplugin/2.3.0/dcaepolicyplugin_types.yaml -inputs: - aaiEnrichmentHost: - type: string - default: "aai.onap.svc.cluster.local" - aaiEnrichmentPort: - type: string - default: "8443" - enableAAIEnrichment: - type: string - default: true - dmaap_host: - type: string - default: message-router - dmaap_port: - type: string - default: "3904" - enableRedisCaching: - type: string - default: false - redisHosts: - type: string - default: dcae-redis:6379 - tag_version: - type: string - default: "nexus3.onap.org:10001/onap/org.onap.dcaegen2.deployments.tca-cdap-container:1.1.0" - consul_host: - type: string - default: consul-server - consul_port: - type: string - default: "8500" - cbs_host: - type: string - default: - test: - test: test - cbs_port: - type: string - default: "10000" - policy_id: - type: string - default: "none" - external_port: - type: string - description: Kubernetes node port on which CDAPgui is exposed - default: "32010" - -node_templates: - tca_k8s: - type: dcae.nodes.ContainerizedServiceComponent - relationships: - - target: tca_policy - type: cloudify.relationships.depends_on - properties: - service_component_type: 'dcaegen2-analytics-tca' - docker_config: {} - image: - get_input: tag_version - log_info: - log_directory: "/opt/app/TCAnalytics/logs" - application_config: - app_config: - appDescription: DCAE Analytics Threshold Crossing Alert Application - appName: dcae-tca-ak-serv - tcaAlertsAbatementTableName: TCAAlertsAbatementTable - tcaAlertsAbatementTableTTLSeconds: '1728000' - tcaSubscriberOutputStreamName: TCASubscriberOutputStream - tcaVESAlertsTableName: TCAVESAlertsTable - tcaVESAlertsTableTTLSeconds: '1728000' - tcaVESMessageStatusTableName: TCAVESMessageStatusTable - tcaVESMessageStatusTableTTLSeconds: '86400' - thresholdCalculatorFlowletInstances: '2' - app_preferences: - aaiEnrichmentHost: - get_input: aaiEnrichmentHost - aaiEnrichmentIgnoreSSLCertificateErrors: 'true' - aaiEnrichmentPortNumber: '8443' - aaiEnrichmentProtocol: https - aaiEnrichmentUserName: DCAE - aaiEnrichmentUserPassword: DCAE - aaiVMEnrichmentAPIPath: /aai/v11/search/nodes-query - aaiVNFEnrichmentAPIPath: /aai/v11/network/generic-vnfs/generic-vnf - enableAAIEnrichment: - get_input: enableAAIEnrichment - enableRedisCaching: - get_input: enableRedisCaching - redisHosts: - get_input: redisHosts - enableAlertCEFFormat: 'false' - publisherContentType: application/json - publisherHostName: - get_input: dmaap_host - publisherHostPort: - get_input: dmaap_port - publisherMaxBatchSize: '1' - publisherMaxRecoveryQueueSize: '100000' - publisherPollingInterval: '20000' - publisherProtocol: http - publisherTopicName: unauthenticated.DCAE_CL_OUTPUT - subscriberConsumerGroup: OpenDCAE-c12 - subscriberConsumerId: c12 - subscriberContentType: application/json - subscriberHostName: - get_input: dmaap_host - subscriberHostPort: - get_input: dmaap_port - subscriberMessageLimit: '-1' - subscriberPollingInterval: '30000' - subscriberProtocol: http - subscriberTimeoutMS: '-1' - subscriberTopicName: unauthenticated.VES_MEASUREMENT_OUTPUT - tca_policy: '{"domain":"measurementsForVfScaling","metricsPerEventName":[{"eventName":"vFirewallBroadcastPackets","controlLoopSchemaType":"VNF","policyScope":"DCAE","policyName":"DCAE.Config_tca-hi-lo","policyVersion":"v0.0.1","thresholds":[{"closedLoopControlName":"ControlLoop-vFirewall-d0a1dfc6-94f5-4fd4-a5b5-4630b438850a","version":"1.0.2","fieldPath":"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedTotalPacketsDelta","thresholdValue":300,"direction":"LESS_OR_EQUAL","severity":"MAJOR","closedLoopEventStatus":"ONSET"},{"closedLoopControlName":"ControlLoop-vFirewall-d0a1dfc6-94f5-4fd4-a5b5-4630b438850a","version":"1.0.2","fieldPath":"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedTotalPacketsDelta","thresholdValue":700,"direction":"GREATER_OR_EQUAL","severity":"CRITICAL","closedLoopEventStatus":"ONSET"}]},{"eventName":"vLoadBalancer","controlLoopSchemaType":"VM","policyScope":"DCAE","policyName":"DCAE.Config_tca-hi-lo","policyVersion":"v0.0.1","thresholds":[{"closedLoopControlName":"ControlLoop-vDNS-6f37f56d-a87d-4b85-b6a9-cc953cf779b3","version":"1.0.2","fieldPath":"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedTotalPacketsDelta","thresholdValue":300,"direction":"GREATER_OR_EQUAL","severity":"CRITICAL","closedLoopEventStatus":"ONSET"}]},{"eventName":"Measurement_vGMUX","controlLoopSchemaType":"VNF","policyScope":"DCAE","policyName":"DCAE.Config_tca-hi-lo","policyVersion":"v0.0.1","thresholds":[{"closedLoopControlName":"ControlLoop-vCPE-48f0c2c3-a172-4192-9ae3-052274181b6e","version":"1.0.2","fieldPath":"$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[0].value","thresholdValue":0,"direction":"EQUAL","severity":"MAJOR","closedLoopEventStatus":"ABATED"},{"closedLoopControlName":"ControlLoop-vCPE-48f0c2c3-a172-4192-9ae3-052274181b6e","version":"1.0.2","fieldPath":"$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[0].value","thresholdValue":0,"direction":"GREATER","severity":"CRITICAL","closedLoopEventStatus":"ONSET"}]}]}' - interfaces: - cloudify.interfaces.lifecycle: - start: - inputs: - envs: - DMAAPHOST: - { get_input: dmaap_host } - DMAAPPORT: - { get_input: dmaap_port } - DMAAPPUBTOPIC: "unauthenticated.DCAE_CL_OUTPUT" - DMAAPSUBTOPIC: "unauthenticated.VES_MEASUREMENT_OUTPUT" - AAIHOST: - { get_input: aaiEnrichmentHost } - AAIPORT: - { get_input: aaiEnrichmentPort } - CONSUL_HOST: - { get_input: consul_host } - CONSUL_PORT: - { get_input: consul_port } - CBS_HOST: - { get_input: cbs_host } - CBS_PORT: - { get_input: cbs_port } - CONFIG_BINDING_SERVICE: "config_binding_service" - ports: - - concat: ["11011:", { get_input: external_port }] - tca_policy: - type: dcae.nodes.policy - properties: - policy_id: - get_input: policy_id |