summaryrefslogtreecommitdiffstats
path: root/python-dcae-policy
diff options
context:
space:
mode:
Diffstat (limited to 'python-dcae-policy')
-rw-r--r--python-dcae-policy/LICENSE.txt30
-rw-r--r--python-dcae-policy/MANIFEST.in1
-rw-r--r--python-dcae-policy/README.md293
-rw-r--r--python-dcae-policy/dcaepolicy/__init__.py22
-rw-r--r--python-dcae-policy/dcaepolicy/dcae_policy.py200
-rw-r--r--python-dcae-policy/dev_run.sh47
-rw-r--r--python-dcae-policy/nexus_pypi.md26
-rw-r--r--python-dcae-policy/pom.xml247
-rw-r--r--python-dcae-policy/requirements.txt1
-rw-r--r--python-dcae-policy/setup.py39
-rw-r--r--python-dcae-policy/tox.ini11
11 files changed, 0 insertions, 917 deletions
diff --git a/python-dcae-policy/LICENSE.txt b/python-dcae-policy/LICENSE.txt
deleted file mode 100644
index 45ec201..0000000
--- a/python-dcae-policy/LICENSE.txt
+++ /dev/null
@@ -1,30 +0,0 @@
-============LICENSE_START=======================================================
-org.onap.dcae
-================================================================================
-Copyright (c) 2017 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=========================================================
-ECOMP is a trademark and service mark of AT&T Intellectual Property.
-
-Copyright (c) 2017 AT&T Intellectual Property. All rights reserved.
-================================================================================
-Licensed under the Creative Commons License, Attribution 4.0 Intl. (the "License");
-you may not use this documentation except in compliance with the License.
-You may obtain a copy of the License at
- https://creativecommons.org/licenses/by/4.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.
diff --git a/python-dcae-policy/MANIFEST.in b/python-dcae-policy/MANIFEST.in
deleted file mode 100644
index f9bd145..0000000
--- a/python-dcae-policy/MANIFEST.in
+++ /dev/null
@@ -1 +0,0 @@
-include requirements.txt
diff --git a/python-dcae-policy/README.md b/python-dcae-policy/README.md
deleted file mode 100644
index 78047a5..0000000
--- a/python-dcae-policy/README.md
+++ /dev/null
@@ -1,293 +0,0 @@
-# dcaepolicy - policy in dcae controller
-- python-package to be used in cloudify plugins to maintain the policies lifecycle
-
-## [setup pypi connection](./nexus_pypi.md) to **nexus** repo server
-
-## build = register and upload to nexus repo server
-
-```bash
-./dev_run.sh build
-```
-
-## upload the python package to nexus repo server
-
-```bash
-./dev_run.sh upload
-```
-
----
-# usage in plugins
-
-**requirements.txt**
-```python
---extra-index-url https://YOUR_NEXUS_PYPI_SERVER/simple
-dcaepolicy
-```
-
-**tasks.py**
-- import
-
-```python
-from dcaepolicy import Policies
-```
-
-# examples of **@operation** with **@Policies.<>** decorator
-
-## Usage
-
-import the dcaepolicy-node-type.yaml into your blueprint to use the dcae.nodes.type node
-
-```yaml
-imports:
- - https://YOUR_NEXUS_RAW_SERVER/type_files/dcaepolicy/1.0.0/node-type.yaml
-```
-
-provide the value for policy_id property
-
-```yaml
-node_templates:
-...
- host_capacity_policy:
- type: dcae.nodes.policy
- properties:
- policy_id: { get_input: host_capacity_policy_id }
-```
-
-Then the dcaepolicyplugin will bring the latest policy to the dcae.nodes.policy node during the install workflow of cloudify.
-
-------
-## cloudify.interfaces.lifecycle.**configure**
-- gather policy data into runtime_properties of policy consumer node
-```yaml
-cloudify.interfaces.lifecycle:
- configure:
- implementation: dcae_policy_plugin.dcaepolicy.node_configure
-```
-
-```python
-from dcaepolicy import Policies, POLICIES
-from .discovery import DiscoveryClient
-from .demo_app import DemoApp
-
-APPLICATION_CONFIG = "application_config"
-SERVICE_COMPONENT_NAME = "service_component_name"
-
-@operation
-@Policies.gather_policies_to_node
-def node_configure(**kwargs):
- """decorate with @Policies.gather_policies_to_node on policy consumer node to
- prepopulate runtime_properties[POLICIES]
- """
- app_config = None
- if APPLICATION_CONFIG in ctx.node.properties:
- # dockerized blueprint puts the app config into property application_config
- app_config = ctx.node.properties.get(APPLICATION_CONFIG)
- else:
- # CDAP components expect that in property app_config
- app_config = ctx.node.properties.get("app_config")
-
- app_config = Policies.shallow_merge_policies_into(app_config)
- ctx.instance.runtime_properties[APPLICATION_CONFIG] = app_config
- ctx.logger.info("example: applied policy_configs to property app_config: {0}" \
- .format(json.dumps(app_config)))
-
- if SERVICE_COMPONENT_NAME in ctx.instance.runtime_properties:
- ctx.logger.info("saving app_config({0}) to consul under key={1}" \
- .format(json.dumps(app_config), \
- ctx.instance.runtime_properties[SERVICE_COMPONENT_NAME]))
- DiscoveryClient.put_kv(ctx.instance.runtime_properties[SERVICE_COMPONENT_NAME], app_config)
-
- # alternative 1 - use the list of policy configs from policies in runtime_properties
- policy_configs = Policies.get_policy_configs()
- if policy_configs:
- ctx.logger.warn("TBD: apply policy_configs: {0}".format(json.dumps(policy_configs)))
-
- # alternative 2 - use the policies dict by policy_id from runtime_properties
- if POLICIES in ctx.instance.runtime_properties:
- policies = ctx.instance.runtime_properties[POLICIES]
- ctx.logger.warn("TBD: apply policies: {0}".format(json.dumps(policies)))
-
- ctx.logger.info("deploying the demo component: {0}...".format(ctx.node.id))
- demo_app = DemoApp(ctx.node.id)
- demo_app.start()
- ctx.logger.info("deployed the demo component: {0}".format(demo_app.container_id))
- demo_app.get_logs()
-```
-
-------
-## execute-operation **policy-update**
-```yaml
-dcae.interfaces.policy:
- policy_update:
- implementation: dcae_policy_plugin.dcaepolicy.policy_update
-```
-
-execute-operation **policy-update** that gets a list of changed policy-configs
-```python
-
-from .discovery import DiscoveryClient
-from .demo_app import DemoApp
-
-APPLICATION_CONFIG = "application_config"
-SERVICE_COMPONENT_NAME = "service_component_name"
-
-@operation
-@Policies.update_policies_on_node(configs_only=True)
-def policy_update(updated_policies, **kwargs):
- """decorate with @Policies.update_policies_on_node() to update runtime_properties[POLICIES]
-
- :updated_policies: contains the list of changed policy-configs when configs_only=True (default).
- Use configs_only=False to bring the full policy objects in :updated_policies:.
- """
- app_config = DiscoveryClient.get_value(ctx.instance.runtime_properties[SERVICE_COMPONENT_NAME])
-
- # This is how to merge the policies into app_config object
- app_config = Policies.shallow_merge_policies_into(app_config)
-
- ctx.logger.info("merged updated_policies {0} into app_config {1}"
- .format(json.dumps(updated_policies), json.dumps(app_config)))
-
- ctx.instance.runtime_properties[APPLICATION_CONFIG] = app_config
-
- DiscoveryClient.put_kv(ctx.instance.runtime_properties[SERVICE_COMPONENT_NAME], app_config)
-
- # example how to notify the dockerized component about the policy change
- notify_app_through_script = True
- if notify_app_through_script:
- ctx.logger.info("notify dockerized app about updated_policies {0} and app_config {1}"
- .format(json.dumps(updated_policies), json.dumps(app_config)))
- demo_app = DemoApp(ctx.node.id)
- demo_app.notify_app_through_script(
- POLICY_MESSAGE_TYPE,
- updated_policies=updated_policies,
- application_config=app_config
- )
-```
-
-example of the **changed\_policies** with **configs_only=True**
-- list of config objects (preparsed from json string)
-- manual mess produced by mock_policy_updater
-```json
-[{
- "policy_updated_from_ver": "2",
- "policy_updated_to_ver": "3",
- "updated_policy_id": "DCAE_alex.Config_db_client_policy_id_value",
- "policy_hello": "world!",
- "policy_updated_ts": "2017-08-17T21:49:39.279187Z"
-}]
-```
----
-
-example of **policies** in runtime_properties **before policy-update**
-
-```json
-"runtime_properties": {
- "execute_operation": "policy_update",
- "service_component_name": "some-uuid.unknown.unknown.unknown.dcae.ecomp.company.com",
- "application_config": {
- "policy_hello": "world!",
- "db": {
- "type": "db",
- "input_db_port": 5555,
- "database_port": 5555
- },
- "policy_updated_from_ver": "1",
- "intention": "policies are shallow merged to the copy of the application_config",
- "updated_policy_id": "DCAE_alex.Config_db_client_policy_id_value",
- "client": {
- "client_version": "1.2.2",
- "type": "client",
- "client_policy_id": "DCAE_alex.Config_db_client_policy_id_value"
- },
- "policy_updated_ts": "2017-08-17T21:13:47.268782Z",
- "policy_updated_to_ver": "2"
- },
- "exe_task": "node_configure",
- "policies": {
- "DCAE_alex.Config_db_client_policy_id_value": {
- "policy_apply_mode": "script",
- "policy_body": {
- "policyName": "DCAE_alex.Config_db_client_policy_id_value.2.xml",
- "policyConfigMessage": "Config Retrieved! ",
- "responseAttributes": {
-
- },
- "policyConfigStatus": "CONFIG_RETRIEVED",
- "matchingConditions": {
- "ECOMPName": "DCAE",
- "ConfigName": "alex_config_name"
- },
- "type": "OTHER",
- "property": null,
- "config": {
- "policy_updated_from_ver": "1",
- "policy_updated_to_ver": "2",
- "updated_policy_id": "DCAE_alex.Config_db_client_policy_id_value",
- "policy_hello": "world!",
- "policy_updated_ts": "2017-08-17T21:13:47.268782Z"
- },
- "policyVersion": "2"
- },
- "policy_id": "DCAE_alex.Config_db_client_policy_id_value"
- }
- }
-}
-```
-
-example of **policies** in runtime_properties **after policy-update**
-
-```json
-"runtime_properties": {
- "execute_operation": "policy_update",
- "service_component_name": "some-uuid.unknown.unknown.unknown.dcae.ecomp.company.com",
- "application_config": {
- "policy_hello": "world!",
- "db": {
- "input_db_port": 5555,
- "type": "db",
- "database_port": 5555
- },
- "policy_updated_ts": "2017-08-17T21:49:39.279187Z",
- "policy_updated_from_ver": "2",
- "intention": "policies are shallow merged to the copy of the application_config",
- "client": {
- "client_version": "1.2.2",
- "type": "client",
- "client_policy_id": "DCAE_alex.Config_db_client_policy_id_value"
- },
- "updated_policy_id": "DCAE_alex.Config_db_client_policy_id_value",
- "policy_updated_to_ver": "3"
- },
- "exe_task": "node_configure",
- "policies": {
- "DCAE_alex.Config_db_client_policy_id_value": {
- "policy_apply_mode": "script",
- "policy_body": {
- "policyName": "DCAE_alex.Config_db_client_policy_id_value.3.xml",
- "policyConfigMessage": "Config Retrieved! ",
- "responseAttributes": {
-
- },
- "policyConfigStatus": "CONFIG_RETRIEVED",
- "matchingConditions": {
- "ECOMPName": "DCAE",
- "ConfigName": "alex_config_name"
- },
- "type": "OTHER",
- "property": null,
- "config": {
- "policy_updated_from_ver": "2",
- "policy_updated_to_ver": "3",
- "updated_policy_id": "DCAE_alex.Config_db_client_policy_id_value",
- "policy_hello": "world!",
- "policy_updated_ts": "2017-08-17T21:49:39.279187Z"
- },
- "policyVersion": "3"
- },
- "policy_id": "DCAE_alex.Config_db_client_policy_id_value"
- }
- }
-}
-```
-
---- \ No newline at end of file
diff --git a/python-dcae-policy/dcaepolicy/__init__.py b/python-dcae-policy/dcaepolicy/__init__.py
deleted file mode 100644
index b3658b1..0000000
--- a/python-dcae-policy/dcaepolicy/__init__.py
+++ /dev/null
@@ -1,22 +0,0 @@
-"""expose the Policies class on the package level"""
-
-# org.onap.dcae
-# ================================================================================
-# Copyright (c) 2017 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=========================================================
-#
-# ECOMP is a trademark and service mark of AT&T Intellectual Property.
-
-from .dcae_policy import Policies, POLICIES, POLICY_MESSAGE_TYPE
diff --git a/python-dcae-policy/dcaepolicy/dcae_policy.py b/python-dcae-policy/dcaepolicy/dcae_policy.py
deleted file mode 100644
index d64d50f..0000000
--- a/python-dcae-policy/dcaepolicy/dcae_policy.py
+++ /dev/null
@@ -1,200 +0,0 @@
-"""dcae_policy contains decorators for the policy lifecycle in cloudify"""
-
-# org.onap.dcae
-# ================================================================================
-# Copyright (c) 2017 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=========================================================
-#
-# ECOMP is a trademark and service mark of AT&T Intellectual Property.
-
-import json
-import copy
-from functools import wraps
-
-from cloudify import ctx
-from cloudify.context import NODE_INSTANCE
-from cloudify.exceptions import NonRecoverableError
-
-POLICIES = 'policies'
-
-POLICY_ID = 'policy_id'
-POLICY_APPLY_MODE = 'policy_apply_mode'
-POLICY_BODY = 'policy_body'
-POLICY_VERSION = "policyVersion"
-POLICY_CONFIG = 'config'
-DCAE_POLICY_TYPE = 'dcae.nodes.policy'
-POLICY_MESSAGE_TYPE = 'policy'
-
-class Policies(object):
- """static class for policy operations"""
-
- @staticmethod
- def gather_policies_to_node(func):
- """decorate with @Policies.gather_policies_to_node to
- gather the policies from dcae.nodes.policy nodes this node depends on.
-
- Places the policies into runtime_properties["policies"].
-
- Call Policies.shallow_merge_policies_into(config) to merge the policies into config.
- """
- def _merge_policy_with_node(target):
- """get all properties of the policy node and add the actual policy"""
- policy = dict(target.node.properties)
- if POLICY_BODY in target.instance.runtime_properties:
- policy[POLICY_BODY] = target.instance.runtime_properties[POLICY_BODY]
- return policy
-
- if not func:
- return
-
- @wraps(func)
- def wrapper(*args, **kwargs):
- """gather and save the policies from dcae.nodes.policy nodes this node related to"""
- try:
- if ctx.type == NODE_INSTANCE:
- policies = dict([(rel.target.node.properties[POLICY_ID], \
- _merge_policy_with_node(rel.target)) \
- for rel in ctx.instance.relationships \
- if DCAE_POLICY_TYPE in rel.target.node.type_hierarchy \
- and POLICY_ID in rel.target.node.properties \
- and rel.target.node.properties[POLICY_ID] \
- ])
- if policies:
- ctx.instance.runtime_properties[POLICIES] = policies
- except Exception as ex:
- error = "Failed to set the policies {0}".format(str(ex))
- ctx.logger.error(error)
- raise NonRecoverableError(error)
-
- return func(*args, **kwargs)
- return wrapper
-
- @staticmethod
- def _update_policies_on_ctx(updated_policies):
- """update policies in runtime_properties and return changed_policies"""
- if POLICIES not in ctx.instance.runtime_properties:
- return
- if not updated_policies:
- ctx.logger.error("update_policies_on_ctx - no updated_policies provided in arguments")
- return
-
- policies = ctx.instance.runtime_properties[POLICIES]
- ctx.logger.info("update_policies_on_ctx: {0}".format(json.dumps(updated_policies)))
- changed_policies = []
- ignored_policies = []
- unexpected_policies = []
- same_policies = []
- for policy in updated_policies:
- if POLICY_ID not in policy or policy[POLICY_ID] not in policies:
- ignored_policies.append(policy)
- continue
- if POLICY_BODY not in policy or POLICY_VERSION not in policy[POLICY_BODY] \
- or not policy[POLICY_BODY][POLICY_VERSION]:
- unexpected_policies.append(policy)
- continue
-
- deployed_policy = policies[policy[POLICY_ID]].get(POLICY_BODY, {})
- new_policy_body = policy[POLICY_BODY]
- if not deployed_policy or POLICY_VERSION not in deployed_policy \
- or not deployed_policy[POLICY_VERSION] \
- or deployed_policy[POLICY_VERSION] != new_policy_body[POLICY_VERSION]:
- policies[policy[POLICY_ID]][POLICY_BODY] = new_policy_body
- changed_policies.append(dict(policies[policy[POLICY_ID]]))
- else:
- same_policies.append(policy)
-
- if same_policies:
- ctx.logger.info("same policies: {0}".format(json.dumps(same_policies)))
- if ignored_policies:
- ctx.logger.info("ignored policies: {0}".format(json.dumps(ignored_policies)))
- if unexpected_policies:
- ctx.logger.warn("unexpected policies: {0}".format(json.dumps(unexpected_policies)))
-
- if changed_policies:
- ctx.instance.runtime_properties[POLICIES] = policies
- return changed_policies
-
- @staticmethod
- def update_policies_on_node(configs_only=True):
- """decorate each policy_update operation with @Policies.update_policies_on_node to
- filter out the updated_policies to only what applies to the current node instance,
- update runtime_properties["policies"]
-
- :configs_only: - set to True if expect to see only the config in updated_policies
- instead of the whole policy object (False)
-
- Passes through the filtered list of updated_policies that apply to the current node instance
-
- :updated_policies: contains the list of changed policy-configs when configs_only=True.
- """
- def update_policies_decorator(func):
- """actual decorator"""
- if not func:
- return
-
- @wraps(func)
- def wrapper(updated_policies, **kwargs):
- """update matching policies on context"""
- if ctx.type != NODE_INSTANCE:
- return
-
- updated_policies = Policies._update_policies_on_ctx(updated_policies)
- if updated_policies:
- if configs_only:
- updated_policies = [policy[POLICY_BODY][POLICY_CONFIG] \
- for policy in updated_policies \
- if POLICY_BODY in policy \
- and POLICY_CONFIG in policy[POLICY_BODY] \
- ]
- return func(updated_policies, **kwargs)
- return wrapper
- return update_policies_decorator
-
-
- @staticmethod
- def get_policy_configs():
- """returns the list of policy configs from the runtime policies"""
- if ctx.type != NODE_INSTANCE \
- or POLICIES not in ctx.instance.runtime_properties:
- return
- policies = ctx.instance.runtime_properties[POLICIES]
- if not policies:
- return
- policy_configs = [policies[policy_id][POLICY_BODY][POLICY_CONFIG] \
- for policy_id in policies \
- if POLICY_BODY in policies[policy_id] \
- and POLICY_CONFIG in policies[policy_id][POLICY_BODY] \
- ]
- return policy_configs
-
- @staticmethod
- def shallow_merge_policies_into(config):
- """shallow merge the policy configs (dict) into config that is expected to be a dict"""
- if config is None:
- config = {}
- policy_configs = Policies.get_policy_configs()
- if not policy_configs or not isinstance(config, dict):
- return config
-
- for policy_config in copy.deepcopy(policy_configs):
- if not isinstance(policy_config, dict):
- continue
-
- config.update(policy_config)
- for cfg_item in policy_config:
- if policy_config[cfg_item] is None:
- config.pop(cfg_item, None)
-
- return config
diff --git a/python-dcae-policy/dev_run.sh b/python-dcae-policy/dev_run.sh
deleted file mode 100644
index f7cadcc..0000000
--- a/python-dcae-policy/dev_run.sh
+++ /dev/null
@@ -1,47 +0,0 @@
-#!/bin/sh
-
-# org.onap.dcae
-# ================================================================================
-# Copyright (c) 2017 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=========================================================
-#
-# ECOMP is a trademark and service mark of AT&T Intellectual Property.
-
-
-# nexus has to be listed in ~/.pypirc as repository and contain the url like this
-# [nexus]
-# repository: https://YOUR_NEXUS_PYPI_SERVER/
-
-case "$1" in
- register)
- echo "python setup.py register -r nexus --show-response"
- python setup.py register -r nexus --show-response
- ;;
- upload)
- echo "python setup.py sdist upload -r nexus --show-response"
- python setup.py sdist upload -r nexus --show-response
- ;;
- build)
- echo "python setup.py sdist register -r nexus --show-response upload -r nexus --show-response"
- python setup.py sdist register -r nexus --show-response upload -r nexus --show-response
- ;;
- *)
- SELF=$(basename "$0")
- echo "Usage:"
- echo "./${SELF} register"
- echo "./${SELF} upload"
- echo "./${SELF} build"
- ;;
-esac \ No newline at end of file
diff --git a/python-dcae-policy/nexus_pypi.md b/python-dcae-policy/nexus_pypi.md
deleted file mode 100644
index 7c27679..0000000
--- a/python-dcae-policy/nexus_pypi.md
+++ /dev/null
@@ -1,26 +0,0 @@
-# setting up connection to nexus server with pypi
-
-1. request account in nexus repo server with update privilege to pypi repo.
-
-result: **url + username + password**
-
-2. create/update `~/.pypirc` with proper nexus **url + username + password**
-```bash
-[distutils]
-index-servers =
- pypi
- nexus
-
-[pypi]
-username:
-password:
-
-[nexus]
-repository:https://YOUR_NEXUS_PYPI_SERVER/
-username:<username>
-password:<password>
-```
-
-3. run `./dev_run.sh register` command to register your python package into nexus pypi repo
-
-4. run `./dev_run.sh upload` command to upload your python package into nexus pypi repo \ No newline at end of file
diff --git a/python-dcae-policy/pom.xml b/python-dcae-policy/pom.xml
deleted file mode 100644
index 4cf3c48..0000000
--- a/python-dcae-policy/pom.xml
+++ /dev/null
@@ -1,247 +0,0 @@
-<?xml version="1.0"?>
-<!--
-================================================================================
-Copyright (c) 2017 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=========================================================
-
-ECOMP is a trademark and service mark of AT&T Intellectual Property.
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
- <modelVersion>4.0.0</modelVersion>
- <parent>
- <groupId>org.onap.dcaegen2.utils</groupId>
- <artifactId>utils</artifactId>
- <version>1.0.0-SNAPSHOT</version>
- </parent>
- <groupId>org.onap.dcaegen2.utils</groupId>
- <artifactId>python-dcae-policy</artifactId>
- <name>dcaegen2-utils-python-dcae-policy</name>
- <version>1.0.0-SNAPSHOT</version>
- <url>http://maven.apache.org</url>
-
- <properties>
- <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
- <sonar.sources>.</sonar.sources>
- <!-- customize the SONARQUBE URL -->
- <!-- sonar.host.url>http://localhost:9000</sonar.host.url -->
- <!-- below are language dependent -->
- <!-- for Python -->
- <sonar.language>py</sonar.language>
- <sonar.pluginName>Python</sonar.pluginName>
- <sonar.inclusions>**/*.py</sonar.inclusions>
- <!-- for JavaScaript -->
- <!--
- <sonar.language>js</sonar.language>
- <sonar.pluginName>JS</sonar.pluginName>
- <sonar.inclusions>**/*.js</sonar.inclusions>
- -->
- </properties>
- <build>
- <finalName>${project.artifactId}-${project.version}</finalName>
- <pluginManagement>
- <plugins>
- <!-- the following plugins are invoked from oparent, we do not need them -->
- <plugin>
- <groupId>org.sonatype.plugins</groupId>
- <artifactId>nexus-staging-maven-plugin</artifactId>
- <version>1.6.7</version>
- <configuration>
- <skipNexusStagingDeployMojo>true</skipNexusStagingDeployMojo>
- </configuration>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-deploy-plugin</artifactId>
- <!-- This version supports the "deployAtEnd" parameter -->
- <version>2.8</version>
- <configuration>
- <skip>true</skip>
- </configuration>
- </plugin>
- <!-- first disable the default Java plugins at various stages -->
- <!-- maven-resources-plugin is called during "*resource" phases by default behavior. it prepares
- the resources dir. we do not need it -->
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-resources-plugin</artifactId>
- <version>2.6</version>
- <configuration>
- <skip>true</skip>
- </configuration>
- </plugin>
- <!-- maven-compiler-plugin is called during "compile" phases by default behavior. we do not need it -->
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-compiler-plugin</artifactId>
- <version>3.1</version>
- <configuration>
- <skip>true</skip>
- </configuration>
- </plugin>
- <!-- maven-jar-plugin is called during "compile" phase by default behavior. we do not need it -->
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-jar-plugin</artifactId>
- <version>2.4</version>
- <executions>
- <execution>
- <id>default-jar</id>
- <phase/>
- </execution>
- </executions>
- </plugin>
- <!-- maven-install-plugin is called during "install" phase by default behavior. it tries to copy stuff under
- target dir to ~/.m2. we do not need it -->
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-install-plugin</artifactId>
- <version>2.4</version>
- <configuration>
- <skip>true</skip>
- </configuration>
- </plugin>
- <!-- maven-surefire-plugin is called during "test" phase by default behavior. it triggers junit test.
- we do not need it -->
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-surefire-plugin</artifactId>
- <version>2.12.4</version>
- <configuration>
- <skipTests>true</skipTests>
- </configuration>
- </plugin>
- </plugins>
- </pluginManagement>
- <plugins>
- <!-- plugin>
- <artifactId>maven-assembly-plugin</artifactId>
- <version>2.4.1</version>
- <configuration>
- <descriptors>
- <descriptor>assembly/dep.xml</descriptor>
- </descriptors>
- </configuration>
- <executions>
- <execution>
- <id>make-assembly</id>
- <phase>package</phase>
- <goals>
- <goal>single</goal>
- </goals>
- </execution>
- </executions>
- </plugin -->
- <!-- now we configure custom action (calling a script) at various lifecycle phases -->
- <plugin>
- <groupId>org.codehaus.mojo</groupId>
- <artifactId>exec-maven-plugin</artifactId>
- <version>1.2.1</version>
- <executions>
- <execution>
- <id>clean phase script</id>
- <phase>clean</phase>
- <goals>
- <goal>exec</goal>
- </goals>
- <configuration>
- <arguments>
- <argument>${project.artifactId}</argument>
- <argument>clean</argument>
- </arguments>
- </configuration>
- </execution>
- <execution>
- <id>generate-sources script</id>
- <phase>generate-sources</phase>
- <goals>
- <goal>exec</goal>
- </goals>
- <configuration>
- <arguments>
- <argument>${project.artifactId}</argument>
- <argument>generate-sources</argument>
- </arguments>
- </configuration>
- </execution>
- <execution>
- <id>compile script</id>
- <phase>compile</phase>
- <goals>
- <goal>exec</goal>
- </goals>
- <configuration>
- <arguments>
- <argument>${project.artifactId}</argument>
- <argument>compile</argument>
- </arguments>
- </configuration>
- </execution>
- <execution>
- <id>package script</id>
- <phase>package</phase>
- <goals>
- <goal>exec</goal>
- </goals>
- <configuration>
- <arguments>
- <argument>${project.artifactId}</argument>
- <argument>package</argument>
- </arguments>
- </configuration>
- </execution>
- <execution>
- <id>test script</id>
- <phase>test</phase>
- <goals>
- <goal>exec</goal>
- </goals>
- <configuration>
- <arguments>
- <argument>${project.artifactId}</argument>
- <argument>test</argument>
- </arguments>
- </configuration>
- </execution>
- <execution>
- <id>install script</id>
- <phase>install</phase>
- <goals>
- <goal>exec</goal>
- </goals>
- <configuration>
- <arguments>
- <argument>${project.artifactId}</argument>
- <argument>install</argument>
- </arguments>
- </configuration>
- </execution>
- <execution>
- <id>deploy script</id>
- <phase>deploy</phase>
- <goals>
- <goal>exec</goal>
- </goals>
- <configuration>
- <arguments>
- <argument>${project.artifactId}</argument>
- <argument>deploy</argument>
- </arguments>
- </configuration>
- </execution>
- </executions>
- </plugin>
- </plugins>
- </build>
-</project>
diff --git a/python-dcae-policy/requirements.txt b/python-dcae-policy/requirements.txt
deleted file mode 100644
index 2f98303..0000000
--- a/python-dcae-policy/requirements.txt
+++ /dev/null
@@ -1 +0,0 @@
-# - not here because cloudify provides it: cloudify-plugins-common==3.4
diff --git a/python-dcae-policy/setup.py b/python-dcae-policy/setup.py
deleted file mode 100644
index 5f0c765..0000000
--- a/python-dcae-policy/setup.py
+++ /dev/null
@@ -1,39 +0,0 @@
-"""setup.py is used for package build and distribution"""
-
-# org.onap.dcae
-# ================================================================================
-# Copyright (c) 2017 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=========================================================
-#
-# ECOMP is a trademark and service mark of AT&T Intellectual Property.
-
-from setuptools import setup
-
-setup(
- name='dcaepolicy',
- description='lib of policy decorators to be used by cloudify plugins of dcae controller',
- version="1.0.0",
- author='Alex Shatov',
- email="dcae@lists.openecomp.org",
- packages=['dcaepolicy'],
- install_requires=[
- ],
- keywords='policy dcae controller cloudify plugin',
- classifiers=[
- 'Development Status :: 4 - Beta',
- 'Intended Audience :: Developers',
- 'Programming Language :: Python :: 2.7'
- ]
-)
diff --git a/python-dcae-policy/tox.ini b/python-dcae-policy/tox.ini
deleted file mode 100644
index 987b009..0000000
--- a/python-dcae-policy/tox.ini
+++ /dev/null
@@ -1,11 +0,0 @@
-# content of: tox.ini , put in same dir as setup.py
-[tox]
-envlist = py27,py35
-
-[testenv]
-deps=
- -rrequirements.txt
- pytest
- coverage
- pytest-cov
-commands=pytest --junitxml xunit-results.xml --cov {envsitepackagesdir} --cov-report=xml