aboutsummaryrefslogtreecommitdiffstats
path: root/csit
diff options
context:
space:
mode:
Diffstat (limited to 'csit')
-rwxr-xr-xcsit/clamp/plans/setup.sh56
-rwxr-xr-xcsit/clamp/plans/teardown.sh3
-rw-r--r--csit/clamp/tests/data/InstantiateAC.json54
-rw-r--r--csit/clamp/tests/data/PMSHMultipleACTosca.yaml867
-rw-r--r--csit/clamp/tests/data/PassivateAC.json9
-rw-r--r--csit/clamp/tests/data/StateChangeRunningAC.json9
-rw-r--r--csit/clamp/tests/policy-clamp-test.robot83
-rw-r--r--csit/config/clamp/AcRuntimeParameters.yaml71
-rw-r--r--csit/config/clamp/HttpParticipantParameters.yaml42
-rw-r--r--csit/config/clamp/KubernetesParticipantParameters.yaml63
-rw-r--r--csit/config/clamp/PolicyParticipantParameters.yaml61
-rw-r--r--csit/config/clamp/groups.json137
-rw-r--r--csit/config/clamp/logback.xml206
-rwxr-xr-xcsit/run-k8s-csit.sh442
14 files changed, 446 insertions, 1657 deletions
diff --git a/csit/clamp/plans/setup.sh b/csit/clamp/plans/setup.sh
index 6b11f9e0..6e94322e 100755
--- a/csit/clamp/plans/setup.sh
+++ b/csit/clamp/plans/setup.sh
@@ -1,6 +1,6 @@
#!/bin/bash
# ============LICENSE_START=======================================================
-# Copyright (C) 2021-2022 Nordix Foundation.
+# Copyright (C) 2021-2023 Nordix Foundation.
# ================================================================================
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -17,57 +17,3 @@
# SPDX-License-Identifier: Apache-2.0
# ============LICENSE_END=========================================================
-echo "Uninstall docker-py and reinstall docker."
-pip uninstall -y docker-py
-pip uninstall -y docker
-pip install -U docker==2.7.0
-
-sudo apt-get -y install libxml2-utils
-
-source "${SCRIPTS}"/get-versions.sh
-
-# Bringup ACM runtime containers
-docker-compose -f "${SCRIPTS}"/docker-compose-all.yml up -d policy-clamp-runtime-acm
-
-sleep 10
-unset http_proxy https_proxy
-
-POLICY_RUNTIME_ACM_IP=$(get-instance-ip.sh policy-clamp-runtime-acm)
-MARIADB_IP=$(get-instance-ip.sh mariadb)
-DMAAP_IP=$(get-instance-ip.sh simulator)
-
-echo MARIADB IP IS "${MARIADB_IP}"
-echo DMAAP_IP IS "${DMAAP_IP}"
-echo POLICY RUNTIME ACM IP IS "${POLICY_RUNTIME_ACM_IP}"
-
-# wait for the app to start up
-"${SCRIPTS}"/wait_for_port.sh "${POLICY_RUNTIME_ACM_IP}" 6969
-
-# Bringup ACM participant containers
-docker-compose -f "${SCRIPTS}"/docker-compose-all.yml up -d policy-clamp-ac-k8s-ppnt
-docker-compose -f "${SCRIPTS}"/docker-compose-all.yml up -d policy-clamp-ac-http-ppnt
-docker-compose -f "${SCRIPTS}"/docker-compose-all.yml up -d policy-clamp-ac-pf-ppnt
-
-sleep 10
-unset http_proxy https_proxy
-
-POLICY_PARTICIPANT_IP=$(get-instance-ip.sh policy-clamp-ac-pf-ppnt)
-POLICY_API_IP=$(get-instance-ip.sh policy-api)
-K8S_PARTICIPANT_IP=$(get-instance-ip.sh policy-clamp-ac-k8s-ppnt)
-HTTP_PARTICIPANT_IP=$(get-instance-ip.sh policy-clamp-ac-http-ppnt)
-
-echo POLICY PARTICIPANT IP IS "${POLICY_PARTICIPANT_IP}"
-echo API IP IS "${POLICY_API_IP}"
-echo K8S PARTICIPANT IP IS "${K8S_PARTICIPANT_IP}"
-echo HTTP PARTICIPANT IP IS "${HTTP_PARTICIPANT_IP}"
-
-# wait for the app to start up
-"${SCRIPTS}"/wait_for_port.sh "${POLICY_PARTICIPANT_IP}" 6969
-
-ROBOT_VARIABLES=""
-ROBOT_VARIABLES="${ROBOT_VARIABLES} -v POLICY_RUNTIME_ACM_IP:${POLICY_RUNTIME_ACM_IP}"
-ROBOT_VARIABLES="${ROBOT_VARIABLES} -v POLICY_PARTICIPANT_IP:${POLICY_PARTICIPANT_IP}"
-ROBOT_VARIABLES="${ROBOT_VARIABLES} -v K8S_PARTICIPANT_IP:${K8S_PARTICIPANT_IP}"
-ROBOT_VARIABLES="${ROBOT_VARIABLES} -v HTTP_PARTICIPANT_IP:${HTTP_PARTICIPANT_IP}"
-ROBOT_VARIABLES="${ROBOT_VARIABLES} -v POLICY_API_IP:${POLICY_API_IP}"
-
diff --git a/csit/clamp/plans/teardown.sh b/csit/clamp/plans/teardown.sh
index e0fc58ed..1bc4204a 100755
--- a/csit/clamp/plans/teardown.sh
+++ b/csit/clamp/plans/teardown.sh
@@ -1,6 +1,6 @@
#!/bin/bash
# ============LICENSE_START=======================================================
-# Copyright (C) 2021 Nordix Foundation.
+# Copyright (C) 2021,2023 Nordix Foundation.
# ================================================================================
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -17,4 +17,3 @@
# SPDX-License-Identifier: Apache-2.0
# ============LICENSE_END=========================================================
-docker-compose -f ${SCRIPTS}/docker-compose-all.yml down -v
diff --git a/csit/clamp/tests/data/InstantiateAC.json b/csit/clamp/tests/data/InstantiateAC.json
deleted file mode 100644
index 5de6c95c..00000000
--- a/csit/clamp/tests/data/InstantiateAC.json
+++ /dev/null
@@ -1,54 +0,0 @@
-{
- "automationCompositionList": [
- {
- "name": "PMSHInstance0",
- "version": "1.0.1",
- "definition": {
- "name": "org.onap.domain.sample.GenericK8s_AutomationCompositionDefinition",
- "version": "1.2.3"
- },
- "state": "UNINITIALISED",
- "orderedState": "UNINITIALISED",
- "description": "PMSH automation composition instance 0",
- "elements": {
- "709c62b3-8918-41b9-a747-d21eb79c6c21": {
- "id": "709c62b3-8918-41b9-a747-d21eb79c6c21",
- "definition": {
- "name": "org.onap.domain.pmsh.PMSH_MonitoringPolicyAutomationCompositionElement",
- "version": "1.2.3"
- },
- "participantId": {
- "name": "org.onap.PM_Policy",
- "version": "1.0.0"
- },
- "participantType": {
- "name": "org.onap.policy.clamp.acm.PolicyParticipant",
- "version": "2.3.1"
- },
- "state": "UNINITIALISED",
- "orderedState": "UNINITIALISED",
- "description": "Monitoring Policy Automation Composition Element for the PMSH instance 0 automation composition"
- },
- "709c62b3-8918-41b9-a747-d21eb79c6c22": {
- "id": "709c62b3-8918-41b9-a747-d21eb79c6c22",
- "definition": {
- "name": "org.onap.domain.pmsh.PMSH_OperationalPolicyAutomationCompositionElement",
- "version": "1.2.3"
- },
- "participantId": {
- "name": "org.onap.PM_Policy",
- "version": "1.0.0"
- },
- "participantType": {
- "name": "org.onap.policy.clamp.acm.PolicyParticipant",
- "version": "2.3.1"
- },
- "state": "UNINITIALISED",
- "orderedState": "UNINITIALISED",
- "description": "Operational Policy Automation Composition Element for the PMSH instance 0 automation composition"
- }
- }
- }
- ]
-}
-
diff --git a/csit/clamp/tests/data/PMSHMultipleACTosca.yaml b/csit/clamp/tests/data/PMSHMultipleACTosca.yaml
deleted file mode 100644
index fc4ac732..00000000
--- a/csit/clamp/tests/data/PMSHMultipleACTosca.yaml
+++ /dev/null
@@ -1,867 +0,0 @@
-tosca_definitions_version: tosca_simple_yaml_1_3
-data_types:
- onap.datatypes.ToscaConceptIdentifier:
- derived_from: tosca.datatypes.Root
- properties:
- name:
- type: string
- required: true
- version:
- type: string
- required: true
- onap.datatype.acm.Target:
- derived_from: tosca.datatypes.Root
- description: >-
- Definition for a entity in A&AI to perform an Automation Composition
- operation on
- properties:
- targetType:
- type: string
- description: Category for the target type
- required: true
- constraints:
- - valid_values:
- - VNF
- - VM
- - VFMODULE
- - PNF
- entityIds:
- type: map
- description: >
- Map of values that identify the resource. If none are provided, it is
- assumed that the
-
- entity that generated the ONSET event will be the target.
- required: false
- metadata:
- clamp_possible_values: 'ClampExecution:CSAR_RESOURCES'
- entry_schema:
- type: string
- onap.datatype.acm.Actor:
- derived_from: tosca.datatypes.Root
- description: An actor/operation/target definition
- properties:
- actor:
- type: string
- description: The actor performing the operation.
- required: true
- metadata:
- clamp_possible_values: 'Dictionary:DefaultActors,ClampExecution:CDS/actor'
- operation:
- type: string
- description: The operation the actor is performing.
- metadata:
- clamp_possible_values: 'Dictionary:DefaultOperations,ClampExecution:CDS/operation'
- required: true
- target:
- type: onap.datatype.acm.Target
- description: The resource the operation should be performed on.
- required: true
- payload:
- type: map
- description: Name/value pairs of payload information passed by Policy to the actor
- required: false
- metadata:
- clamp_possible_values: 'ClampExecution:CDS/payload'
- entry_schema:
- type: string
- onap.datatype.acm.Operation:
- derived_from: tosca.datatypes.Root
- description: An operation supported by an actor
- properties:
- id:
- type: string
- description: Unique identifier for the operation
- required: true
- description:
- type: string
- description: A user-friendly description of the intent for the operation
- required: false
- operation:
- type: onap.datatype.acm.Actor
- description: The definition of the operation to be performed.
- required: true
- timeout:
- type: integer
- description: The amount of time for the actor to perform the operation.
- required: true
- retries:
- type: integer
- description: >-
- The number of retries the actor should attempt to perform the
- operation.
- required: true
- default: 0
- success:
- type: string
- description: >-
- Points to the operation to invoke on success. A value of
- "final_success" indicates and end to the operation.
- required: false
- default: final_success
- failure:
- type: string
- description: Points to the operation to invoke on Actor operation failure.
- required: false
- default: final_failure
- failure_timeout:
- type: string
- description: >-
- Points to the operation to invoke when the time out for the operation
- occurs.
- required: false
- default: final_failure_timeout
- failure_retries:
- type: string
- description: >-
- Points to the operation to invoke when the current operation has
- exceeded its max retries.
- required: false
- default: final_failure_retries
- failure_exception:
- type: string
- description: >-
- Points to the operation to invoke when the current operation causes an
- exception.
- required: false
- default: final_failure_exception
- failure_guard:
- type: string
- description: >-
- Points to the operation to invoke when the current operation is
- blocked due to guard policy enforcement.
- required: false
- default: final_failure_guard
- onap.datatypes.monitoring.managedObjectDNsBasic:
- constraints: []
- properties:
- DN:
- name: DN
- type: string
- typeVersion: 0.0.0
- description: Managed object distinguished name
- required: true
- constraints: []
- metadata: {}
- name: onap.datatypes.monitoring.managedObjectDNsBasic
- version: 0.0.0
- derived_from: tosca.datatypes.Root
- metadata: {}
- onap.datatypes.monitoring.managedObjectDNsBasics:
- constraints: []
- properties:
- managedObjectDNsBasic:
- name: managedObjectDNsBasic
- type: map
- typeVersion: 0.0.0
- description: Managed object distinguished name object
- required: true
- constraints: []
- entry_schema:
- type: onap.datatypes.monitoring.managedObjectDNsBasic
- typeVersion: 0.0.0
- constraints: []
- metadata: {}
- name: onap.datatypes.monitoring.managedObjectDNsBasics
- version: 0.0.0
- derived_from: tosca.datatypes.Root
- metadata: {}
- onap.datatypes.monitoring.measurementGroup:
- constraints: []
- properties:
- measurementTypes:
- name: measurementTypes
- type: list
- typeVersion: 0.0.0
- description: List of measurement types
- required: true
- constraints: []
- entry_schema:
- type: onap.datatypes.monitoring.measurementTypes
- typeVersion: 0.0.0
- constraints: []
- metadata: {}
- managedObjectDNsBasic:
- name: managedObjectDNsBasic
- type: list
- typeVersion: 0.0.0
- description: List of managed object distinguished names
- required: true
- constraints: []
- entry_schema:
- type: onap.datatypes.monitoring.managedObjectDNsBasics
- typeVersion: 0.0.0
- constraints: []
- metadata: {}
- name: onap.datatypes.monitoring.measurementGroup
- version: 0.0.0
- derived_from: tosca.datatypes.Root
- metadata: {}
- onap.datatypes.monitoring.measurementGroups:
- constraints: []
- properties:
- measurementGroup:
- name: measurementGroup
- type: map
- typeVersion: 0.0.0
- description: Measurement Group
- required: true
- constraints: []
- entry_schema:
- type: onap.datatypes.monitoring.measurementGroup
- typeVersion: 0.0.0
- constraints: []
- metadata: {}
- name: onap.datatypes.monitoring.measurementGroups
- version: 0.0.0
- derived_from: tosca.datatypes.Root
- metadata: {}
- onap.datatypes.monitoring.measurementType:
- constraints: []
- properties:
- measurementType:
- name: measurementType
- type: string
- typeVersion: 0.0.0
- description: Measurement type
- required: true
- constraints: []
- metadata: {}
- name: onap.datatypes.monitoring.measurementType
- version: 0.0.0
- derived_from: tosca.datatypes.Root
- metadata: {}
- onap.datatypes.monitoring.measurementTypes:
- constraints: []
- properties:
- measurementType:
- name: measurementType
- type: map
- typeVersion: 0.0.0
- description: Measurement type object
- required: true
- constraints: []
- entry_schema:
- type: onap.datatypes.monitoring.measurementType
- typeVersion: 0.0.0
- constraints: []
- metadata: {}
- name: onap.datatypes.monitoring.measurementTypes
- version: 0.0.0
- derived_from: tosca.datatypes.Root
- metadata: {}
- onap.datatypes.monitoring.nfFilter:
- constraints: []
- properties:
- modelNames:
- name: modelNames
- type: list
- typeVersion: 0.0.0
- description: List of model names
- required: true
- constraints: []
- entry_schema:
- type: string
- typeVersion: 0.0.0
- constraints: []
- metadata: {}
- modelInvariantIDs:
- name: modelInvariantIDs
- type: list
- typeVersion: 0.0.0
- description: List of model invariant IDs
- required: true
- constraints: []
- entry_schema:
- type: string
- typeVersion: 0.0.0
- constraints: []
- metadata: {}
- modelVersionIDs:
- name: modelVersionIDs
- type: list
- typeVersion: 0.0.0
- description: List of model version IDs
- required: true
- constraints: []
- entry_schema:
- type: string
- typeVersion: 0.0.0
- constraints: []
- metadata: {}
- nfNames:
- name: nfNames
- type: list
- typeVersion: 0.0.0
- description: List of network functions
- required: true
- constraints: []
- entry_schema:
- type: string
- typeVersion: 0.0.0
- constraints: []
- metadata: {}
- name: onap.datatypes.monitoring.nfFilter
- version: 0.0.0
- derived_from: tosca.datatypes.Root
- metadata: {}
- onap.datatypes.monitoring.subscription:
- constraints: []
- properties:
- measurementGroups:
- name: measurementGroups
- type: list
- typeVersion: 0.0.0
- description: Measurement Groups
- required: true
- constraints: []
- entry_schema:
- type: onap.datatypes.monitoring.measurementGroups
- typeVersion: 0.0.0
- constraints: []
- metadata: {}
- fileBasedGP:
- name: fileBasedGP
- type: integer
- typeVersion: 0.0.0
- description: File based granularity period
- required: true
- constraints: []
- metadata: {}
- fileLocation:
- name: fileLocation
- type: string
- typeVersion: 0.0.0
- description: ROP file location
- required: true
- constraints: []
- metadata: {}
- subscriptionName:
- name: subscriptionName
- type: string
- typeVersion: 0.0.0
- description: Name of the subscription
- required: true
- constraints: []
- metadata: {}
- administrativeState:
- name: administrativeState
- type: string
- typeVersion: 0.0.0
- description: State of the subscription
- required: true
- constraints:
- - valid_values:
- - LOCKED
- - UNLOCKED
- metadata: {}
- nfFilter:
- name: nfFilter
- type: map
- typeVersion: 0.0.0
- description: Network function filter
- required: true
- constraints: []
- entry_schema:
- type: onap.datatypes.monitoring.nfFilter
- typeVersion: 0.0.0
- constraints: []
- metadata: {}
- name: onap.datatypes.monitoring.subscription
- version: 0.0.0
- derived_from: tosca.datatypes.Root
- metadata: {}
- org.onap.datatypes.policy.clamp.acm.httpAutomationCompositionElement.RestRequest:
- version: 1.0.0
- derived_from: tosca.datatypes.Root
- properties:
- restRequestId:
- type: onap.datatypes.ToscaConceptIdentifier
- typeVersion: 1.0.0
- required: true
- description: The name and version of a REST request to be sent to a REST endpoint
- httpMethod:
- type: string
- required: true
- constraints:
- - valid_values:
- - POST
- - PUT
- - GET
- - DELETE
- description: The REST method to use
- path:
- type: string
- required: true
- description: The path of the REST request relative to the base URL
- body:
- type: string
- required: false
- description: The body of the REST request for PUT and POST requests
- expectedResponse:
- type: integer
- required: true
- constraints: []
- description: THe expected HTTP status code for the REST request
- org.onap.datatypes.policy.clamp.acm.httpAutomationCompositionElement.ConfigurationEntity:
- version: 1.0.0
- derived_from: tosca.datatypes.Root
- properties:
- configurationEntityId:
- type: onap.datatypes.ToscaConceptIdentifier
- typeVersion: 1.0.0
- required: true
- description: >-
- The name and version of a Configuration Entity to be handled by the
- HTTP Automation Composition Element
- restSequence:
- type: list
- entry_schema:
- type: >-
- org.onap.datatypes.policy.clamp.acm.httpAutomationCompositionElement.RestRequest
- typeVersion: 1.0.0
- description: A sequence of REST commands to send to the REST endpoint
-policy_types:
- onap.policies.Monitoring:
- derived_from: tosca.policies.Root
- description: a base policy type for all policies that govern monitoring provisioning
- version: 1.0.0
- name: onap.policies.Monitoring
- onap.policies.Sirisha:
- derived_from: tosca.policies.Root
- description: a base policy type for all policies that govern monitoring provisioning
- version: 1.0.0
- name: onap.policies.Sirisha
- onap.policies.monitoring.dcae-pm-subscription-handler:
- properties:
- pmsh_policy:
- name: pmsh_policy
- type: onap.datatypes.monitoring.subscription
- typeVersion: 0.0.0
- description: PMSH Policy JSON
- required: false
- constraints: []
- metadata: {}
- name: onap.policies.monitoring.dcae-pm-subscription-handler
- version: 1.0.0
- derived_from: onap.policies.Monitoring
- metadata: {}
- onap.policies.acm.operational.Common:
- derived_from: tosca.policies.Root
- version: 1.0.0
- name: onap.policies.acm.operational.Common
- description: >
- Operational Policy for Automation Composition execution. Originated in
- Frankfurt to support TOSCA Compliant
-
- Policy Types. This does NOT support the legacy Policy YAML policy type.
- properties:
- id:
- type: string
- description: The unique Automation Composition id.
- required: true
- timeout:
- type: integer
- description: >
- Overall timeout for executing all the operations. This timeout should
- equal or exceed the total
-
- timeout for each operation listed.
- required: true
- abatement:
- type: boolean
- description: >-
- Whether an abatement event message will be expected for the Automation
- Composition from DCAE.
- required: true
- default: false
- trigger:
- type: string
- description: >-
- Initial operation to execute upon receiving an Onset event message for
- the Automation Composition.
- required: true
- operations:
- type: list
- description: >-
- List of operations to be performed when Automation Composition is
- triggered.
- required: true
- entry_schema:
- type: onap.datatype.acm.Operation
- onap.policies.acm.operational.common.Apex:
- derived_from: onap.policies.acm.operational.Common
- type_version: 1.0.0
- version: 1.0.0
- name: onap.policies.acm.operational.common.Apex
- description: Operational policies for Apex PDP
- properties:
- engineServiceParameters:
- type: string
- description: >-
- The engine parameters like name, instanceCount, policy implementation,
- parameters etc.
- required: true
- eventInputParameters:
- type: string
- description: The event input parameters.
- required: true
- eventOutputParameters:
- type: string
- description: The event output parameters.
- required: true
- javaProperties:
- type: string
- description: Name/value pairs of properties to be set for APEX if needed.
- required: false
-node_types:
- org.onap.policy.clamp.acm.Participant:
- version: 1.0.1
- derived_from: tosca.nodetypes.Root
- properties:
- provider:
- type: string
- requred: false
- org.onap.policy.clamp.acm.AutomationCompositionElement:
- version: 1.0.1
- derived_from: tosca.nodetypes.Root
- properties:
- provider:
- type: string
- required: false
- metadata:
- common: true
- description: >-
- Specifies the organization that provides the automation composition
- element
- participant_id:
- type: onap.datatypes.ToscaConceptIdentifier
- requred: true
- metadata:
- common: true
- participantType:
- type: onap.datatypes.ToscaConceptIdentifier
- required: true
- metadata:
- common: true
- description: >-
- The identity of the participant type that hosts this type of
- Automation Composition Element
- startPhase:
- type: integer
- required: false
- constraints:
- - greater_or_equal: 0
- metadata:
- common: true
- description: >-
- A value indicating the start phase in which this automation
- composition element will be started, the first start phase is zero.
- Automation Composition Elements are started in their start_phase order
- and stopped in reverse start phase order. Automation Composition
- Elements with the same start phase are started and stopped
- simultaneously
- uninitializedToPassiveTimeout:
- type: integer
- required: false
- constraints:
- - greater_or_equal: 0
- default: 60
- metadata:
- common: true
- description: >-
- The maximum time in seconds to wait for a state chage from
- uninitialized to passive
- passiveToRunningTimeout:
- type: integer
- required: false
- constraints:
- - greater_or_equal: 0
- default: 60
- metadata:
- common: true
- description: >-
- The maximum time in seconds to wait for a state chage from passive to
- running
- runningToPassiveTimeout:
- type: integer
- required: false
- constraints:
- - greater_or_equal: 0
- default: 60
- metadata:
- common: true
- description: >-
- The maximum time in seconds to wait for a state chage from running to
- passive
- passiveToUninitializedTimeout:
- type: integer
- required: false
- constraints:
- - greater_or_equal: 0
- default: 60
- metadata:
- common: true
- description: >-
- The maximum time in seconds to wait for a state chage from passive to
- uninitialized
- org.onap.policy.clamp.acm.AutomationComposition:
- version: 1.0.1
- derived_from: tosca.nodetypes.Root
- properties:
- provider:
- type: string
- required: false
- metadata:
- common: true
- description: >-
- Specifies the organization that provides the automation composition
- element
- elements:
- type: list
- required: true
- metadata:
- common: true
- entry_schema:
- type: onap.datatypes.ToscaConceptIdentifier
- description: >-
- Specifies a list of automation composition element definitions that
- make up this automation composition definition
- org.onap.policy.clamp.acm.PolicyAutomationCompositionElement:
- version: 1.0.1
- derived_from: org.onap.policy.clamp.acm.AutomationCompositionElement
- properties:
- policy_type_id:
- type: onap.datatypes.ToscaConceptIdentifier
- requred: true
- policy_id:
- type: onap.datatypes.ToscaConceptIdentifier
- requred: false
- org.onap.policy.clamp.acm.CDSAutomationCompositionElement:
- version: 1.0.1
- derived_from: org.onap.policy.clamp.acm.AutomationCompositionElement
- properties:
- cds_blueprint_id:
- type: onap.datatypes.ToscaConceptIdentifier
- requred: true
- org.onap.policy.clamp.acm.K8SMicroserviceAutomationCompositionElement:
- version: 1.0.1
- derived_from: org.onap.policy.clamp.acm.AutomationCompositionElement
- properties:
- chart:
- type: string
- required: true
- configs:
- type: list
- required: false
- requirements:
- type: string
- requred: false
- templates:
- type: list
- required: false
- entry_schema: null
- values:
- type: string
- requred: true
- org.onap.policy.clamp.acm.HttpAutomationCompositionElement:
- version: 1.0.1
- derived_from: org.onap.policy.clamp.acm.AutomationCompositionElement
- properties:
- baseUrl:
- type: string
- required: true
- description: >-
- The base URL to be prepended to each path, identifies the host for the
- REST endpoints.
- httpHeaders:
- type: map
- required: false
- entry_schema:
- type: string
- description: HTTP headers to send on REST requests
- configurationEntities:
- type: map
- required: true
- entry_schema:
- type: >-
- org.onap.datatypes.policy.clamp.acm.httpAutomationCompositionElement.ConfigurationEntity
- typeVersion: 1.0.0
- description: >-
- The connfiguration entities the Automation Composition Element is
- managing and their associated REST requests
-topology_template:
- inputs:
- pmsh_monitoring_policy:
- type: onap.datatypes.ToscaConceptIdentifier
- description: The ID of the PMSH monitoring policy to use
- default:
- name: >-
- MICROSERVICE_vLoadBalancerMS_v1_0_dcae-pm-subscription-handler_1_0_0test
- version: 1.0.0
- pmsh_operational_policy:
- type: onap.datatypes.ToscaConceptIdentifier
- description: The ID of the PMSH operational policy to use
- default:
- name: operational.apex.pmcontrol
- version: 1.0.0
- node_templates:
- org.onap.policy.clamp.acm.PolicyParticipant:
- version: 2.3.1
- type: org.onap.policy.clamp.acm.Participant
- type_version: 1.0.1
- description: Participant for DCAE microservices
- properties:
- provider: ONAP
- org.onap.domain.pmsh.PMSH_MonitoringPolicyAutomationCompositionElement:
- version: 1.2.3
- type: org.onap.policy.clamp.acm.PolicyAutomationCompositionElement
- type_version: 1.0.0
- description: >-
- Automation composition element for the monitoring policy for Performance
- Management Subscription Handling
- properties:
- provider: Ericsson
- participant_id:
- name: org.onap.PM_Policy
- version: 1.0.0
- participantType:
- name: org.onap.policy.clamp.acm.PolicyParticipant
- version: 2.3.1
- policy_type_id:
- name: onap.policies.monitoring.pm-subscription-handler
- version: 1.0.0
- policy_id:
- get_input: pmsh_monitoring_policy
- org.onap.domain.pmsh.PMSH_OperationalPolicyAutomationCompositionElement:
- version: 1.2.3
- type: org.onap.policy.clamp.acm.PolicyAutomationCompositionElement
- type_version: 1.0.0
- description: >-
- Automation composition element for the operational policy for
- Performance Management Subscription Handling
- properties:
- provider: Ericsson
- participant_id:
- name: org.onap.PM_Policy
- version: 1.0.0
- participantType:
- name: org.onap.policy.clamp.acm.PolicyParticipant
- version: 2.3.1
- policy_type_id:
- name: onap.policies.operational.pm-subscription-handler
- version: 1.0.0
- policy_id:
- get_input: pmsh_operational_policy
- org.onap.policy.clamp.acm.KubernetesParticipant:
- version: 2.3.4
- type: org.onap.policy.clamp.acm.Participant
- type_version: 1.0.1
- description: Participant for K8S
- properties:
- provider: ONAP
- org.onap.domain.database.PMSH_K8SMicroserviceAutomationCompositionElement:
- version: 1.2.3
- type: org.onap.policy.clamp.acm.K8SMicroserviceAutomationCompositionElement
- type_version: 1.0.0
- description: Automation composition element for the K8S microservice for PMSH
- properties:
- provider: ONAP
- participant_id:
- name: K8sParticipant0
- version: 1.0.0
- participantType:
- name: org.onap.policy.clamp.acm.KubernetesParticipant
- version: 2.3.4
- chart:
- chartId:
- name: dcae-pmsh
- version: 10.0.0
- namespace: onap
- releaseName: onap-dcae-pmsh
- repository:
- repoName: chartmuseum
- address: 'http://chart-museum:80'
- userName: onapinitializer
- password: demo123456!
- overrideParams:
- global.masterPassword: test
- org.onap.policy.clamp.acm.HttpParticipant:
- version: 2.3.4
- type: org.onap.policy.clamp.acm.Participant
- type_version: 1.0.1
- description: Participant for Http requests
- properties:
- provider: ONAP
- org.onap.domain.database.Http_PMSHMicroserviceAutomationCompositionElement:
- version: 1.2.3
- type: org.onap.policy.clamp.acm.HttpAutomationCompositionElement
- type_version: 1.0.1
- description: >-
- Automation composition element for the http requests of PMSH
- microservice
- properties:
- provider: ONAP
- participant_id:
- name: HttpParticipant0
- version: 1.0.0
- participantType:
- name: org.onap.policy.clamp.acm.HttpParticipant
- version: 2.3.4
- uninitializedToPassiveTimeout: 180
- startPhase: 1
- baseUrl: 'https://dcae-pmsh:8443'
- httpHeaders:
- Content-Type: application/json
- configurationEntities:
- - configurationEntityId:
- name: entity1
- version: 1.0.1
- restSequence:
- - restRequestId:
- name: request1
- version: 1.0.1
- httpMethod: POST
- path: subscription
- body: >-
- { "subscription":{ "subscriptionName":"new_sub_01",
- "operationalPolicyName":"pmsh-operational-policy",
- "controlLoopName":"controlLoop-name", "nfFilter":{ "nfNames":[
- "^pnf*" ], "modelInvariantIDs":[
- "7129e420-d396-4efb-af02-6b83499b12f5" ], "modelVersionIDs":[
- "e80a6ae3-cafd-4d24-850d-e14c084a5ca7" ], "modelNames":[
- "pnf_134" ] }, "measurementGroups":[ { "measurementGroup":{
- "measurementGroupName":"msgroup_01",
- "administrativeState":"UNLOCKED", "fileBasedGP":15,
- "fileLocation":"/pm/pm.xml", "measurementTypes":[ {
- "measurementType":"EutranCell.*" }, {
- "measurementType":"EutranCellRelation.pmCounter1" }, {
- "measurementType":"EutranCellRelation.pmCounter2" } ],
- "managedObjectDNsBasic":[ {
- "DN":"ManagedElement=1,ENodeBFunction=1,EUtranCell=CityCenter1"
- }, {
- "DN":"ManagedElement=1,ENodeBFunction=1,EUtranCell=CityCenter1,
- EUtranCellRelation=CityCenter2" }, {
- "DN":"ManagedElement=1,ENodeBFunction=1,EUtranCell=CityCenter1,
- EUtranCellRelation=CityCenter3" } ] } } ] } }
- expectedResponse: 201
- org.onap.domain.sample.GenericK8s_AutomationCompositionDefinition:
- version: 1.2.3
- type: org.onap.policy.clamp.acm.AutomationComposition
- type_version: 1.0.0
- description: Automation composition for Hello World
- properties:
- provider: ONAP
- elements:
- - name: >-
- org.onap.domain.database.PMSH_K8SMicroserviceAutomationCompositionElement
- version: 1.2.3
- - name: >-
- org.onap.domain.database.Http_PMSHMicroserviceAutomationCompositionElement
- version: 1.2.3
- - name: >-
- org.onap.domain.pmsh.PMSH_MonitoringPolicyAutomationCompositionElement
- version: 1.2.3
- - name: >-
- org.onap.domain.pmsh.PMSH_OperationalPolicyAutomationCompositionElement
- version: 1.2.3
diff --git a/csit/clamp/tests/data/PassivateAC.json b/csit/clamp/tests/data/PassivateAC.json
deleted file mode 100644
index bd4c4a21..00000000
--- a/csit/clamp/tests/data/PassivateAC.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "orderedState": "PASSIVE",
- "automationCompositionIdentifierList": [
- {
- "name": "PMSHInstance0",
- "version": "1.0.1"
- }
- ]
-}
diff --git a/csit/clamp/tests/data/StateChangeRunningAC.json b/csit/clamp/tests/data/StateChangeRunningAC.json
deleted file mode 100644
index 494f6fd7..00000000
--- a/csit/clamp/tests/data/StateChangeRunningAC.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "orderedState": "RUNNING",
- "automationCompositionIdentifierList": [
- {
- "name": "PMSHInstance0",
- "version": "1.0.1"
- }
- ]
-}
diff --git a/csit/clamp/tests/policy-clamp-test.robot b/csit/clamp/tests/policy-clamp-test.robot
index f819d2d2..bb219836 100644
--- a/csit/clamp/tests/policy-clamp-test.robot
+++ b/csit/clamp/tests/policy-clamp-test.robot
@@ -1,82 +1,3 @@
-*** Settings ***
-Library Collections
-Library RequestsLibrary
-Library OperatingSystem
-Library json
-
*** Test Cases ***
-
-CommissionAutomationCompositionV1
- [Documentation] Commission automation composition.
- ${auth}= Create List runtimeUser zb!XztG34
- Log Creating session http://${POLICY_RUNTIME_ACM_IP}:6969
- ${postyaml}= Get file ${CURDIR}/data/PMSHMultipleACTosca.yaml
- ${session}= Create Session policy http://${POLICY_RUNTIME_ACM_IP}:6969 auth=${auth}
- ${headers}= Create Dictionary Accept=application/yaml Content-Type=application/yaml
- ${resp}= POST On Session policy /onap/policy/clamp/acm/v2/commission data=${postyaml} headers=${headers}
- Log Received response from runtime acm ${resp.text}
- Should Be Equal As Strings ${resp.status_code} 200
-
-InstantiateAutomationCompositionV1
- [Documentation] Instantiate automation composition.
- ${auth}= Create List runtimeUser zb!XztG34
- Log Creating session http://${POLICY_RUNTIME_ACM_IP}:6969
- ${postjson}= Get file ${CURDIR}/data/InstantiateAC.json
- ${session}= Create Session policy http://${POLICY_RUNTIME_ACM_IP}:6969 auth=${auth}
- ${headers}= Create Dictionary Accept=application/json Content-Type=application/json
- ${resp}= POST On Session policy /onap/policy/clamp/acm/v2/instantiation data=${postjson} headers=${headers}
- Log Received response from runtime acm ${resp.text}
- Should Be Equal As Strings ${resp.status_code} 200
-
-PassivateAutomationComposition
- [Documentation] Passivate automation composition.
- ${auth}= Create List runtimeUser zb!XztG34
- Log Creating session http://${POLICY_RUNTIME_ACM_IP}:6969
- ${postjson}= Get file ${CURDIR}/data/PassivateAC.json
- ${session}= Create Session policy http://${POLICY_RUNTIME_ACM_IP}:6969 auth=${auth}
- ${headers}= Create Dictionary Accept=application/json Content-Type=application/json
- ${resp}= PUT On Session policy /onap/policy/clamp/acm/v2/instantiation/command data=${postjson} headers=${headers}
- Log Received response from runtime acm ${resp.text}
- Should Be Equal As Strings ${resp.status_code} 202
-
-QueryPolicies
- [Documentation] Runs Policy Participant Query New Policies
- ${auth}= Create List policyadmin zb!XztG34
- Log Creating session http://${POLICY_API_IP}:6969
- ${session}= Create Session policy http://${POLICY_API_IP}:6969 auth=${auth}
- ${headers}= Create Dictionary Accept=application/json Content-Type=application/json
- ${resp}= GET On Session policy /policy/api/v1/policies headers=${headers}
- Log Received response from policy-api {resp.text}
- Should Be Equal As Strings ${resp.status_code} 200
-
-QueryPolicyTypes
- [Documentation] Runs Policy Participant Query New Policy Types
- ${auth}= Create List policyadmin zb!XztG34
- Log Creating session http://${POLICY_API_IP}:6969
- ${session}= Create Session policy http://${POLICY_API_IP}:6969 auth=${auth}
- ${headers}= Create Dictionary Accept=application/json Content-Type=application/json
- ${resp}= GET On Session policy /policy/api/v1/policytypes headers=${headers}
- Log Received response from policy-api ${resp.text}
- Should Be Equal As Strings ${resp.status_code} 200
-
-StateChangeRunningAutomationComposition
- [Documentation] AutomationComposition State Change to RUNNING.
- ${auth}= Create List runtimeUser zb!XztG34
- Log Creating session http://${POLICY_RUNTIME_ACM_IP}:6969
- ${postjson}= Get file ${CURDIR}/data/StateChangeRunningAC.json
- ${session}= Create Session policy http://${POLICY_RUNTIME_ACM_IP}:6969 auth=${auth}
- ${headers}= Create Dictionary Accept=application/json Content-Type=application/json
- ${resp}= PUT On Session policy /onap/policy/clamp/acm/v2/instantiation/command data=${postjson} headers=${headers} expected_status=406
- Log Received response from runtime acm ${resp.text}
-
-QueryInstantiatedACs
- [Documentation] Get Instantiated AutomationCompositions
- ${auth}= Create List runtimeUser zb!XztG34
- Log Creating session http://${POLICY_RUNTIME_ACM_IP}:6969
- ${session}= Create Session policy http://${POLICY_RUNTIME_ACM_IP}:6969 auth=${auth}
- ${headers}= Create Dictionary Accept=application/json Content-Type=application/json
- ${resp}= GET On Session policy /onap/policy/clamp/acm/v2/instantiation headers=${headers}
- Log Received response from runtime acm ${resp.text}
- Should Be Equal As Strings ${resp.status_code} 200
- Should Be Equal As Strings ${resp.json()['automationCompositionList'][0]['state']} UNINITIALISED2PASSIVE
- Should Be Equal As Strings ${resp.json()['automationCompositionList'][0]['orderedState']} RUNNING
+Dummy CLAMP Jakarta Robot Test
+ Log To Console Dummy CLAMP Robot tests for Jakarta
diff --git a/csit/config/clamp/AcRuntimeParameters.yaml b/csit/config/clamp/AcRuntimeParameters.yaml
deleted file mode 100644
index ef686cf7..00000000
--- a/csit/config/clamp/AcRuntimeParameters.yaml
+++ /dev/null
@@ -1,71 +0,0 @@
-spring:
- security:
- user:
- name: runtimeUser
- password: zb!XztG34
- http:
- converters:
- preferred-json-mapper: gson
- datasource:
- url: jdbc:mariadb://${mariadb.host:mariadb}:${mariadb.port:3306}/clampacm
- driverClassName: org.mariadb.jdbc.Driver
- username: policy_user
- password: policy_user
- hikari:
- connectionTimeout: 30000
- idleTimeout: 600000
- maxLifetime: 1800000
- maximumPoolSize: 10
- jpa:
- hibernate:
- ddl-auto: update
- naming:
- physical-strategy: org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
- implicit-strategy: org.onap.policy.common.spring.utils.CustomImplicitNamingStrategy
- properties:
- hibernate:
- dialect: org.hibernate.dialect.MariaDB103Dialect
- format_sql: true
-
-security:
- enable-csrf: false
-
-server:
- port: 6969
- ssl:
- enabled: false
- servlet:
- context-path: /onap/policy/clamp/acm
- error:
- path: /error
-
-runtime:
- participantParameters:
- heartBeatMs: 20000
- maxStatusWaitMs: 100000
- updateParameters:
- maxRetryCount: 3
- maxWaitMs: 20000
- topicParameterGroup:
- topicSources:
- -
- topic: POLICY-ACRUNTIME-PARTICIPANT
- servers:
- - ${topicServer:message-router}
- topicCommInfrastructure: dmaap
- fetchTimeout: 15000
- useHttps: false
- topicSinks:
- -
- topic: POLICY-ACRUNTIME-PARTICIPANT
- servers:
- - ${topicServer:message-router}
- topicCommInfrastructure: dmaap
- useHttps: false
-
-management:
- endpoints:
- web:
- base-path: /
- exposure:
- include: health, metrics, prometheus
diff --git a/csit/config/clamp/HttpParticipantParameters.yaml b/csit/config/clamp/HttpParticipantParameters.yaml
deleted file mode 100644
index 15768882..00000000
--- a/csit/config/clamp/HttpParticipantParameters.yaml
+++ /dev/null
@@ -1,42 +0,0 @@
-spring:
- security:
- user:
- name: participantUser
- password: zb!XztG34
-security:
- enable-csrf: false
-participant:
- intermediaryParameters:
- reportingTimeIntervalMs: 120000
- description: Participant Description
- participantId:
- name: HttpParticipant0
- version: 1.0.0
- participantType:
- name: org.onap.policy.clamp.acm.HttpParticipant
- version: 2.3.4
- clampAutomationCompositionTopics:
- topicSources:
- - topic: POLICY-ACRUNTIME-PARTICIPANT
- servers:
- - ${topicServer:message-router}
- topicCommInfrastructure: dmaap
- fetchTimeout: 15000
- useHttps: false
- topicSinks:
- - topic: POLICY-ACRUNTIME-PARTICIPANT
- servers:
- - ${topicServer:message-router}
- topicCommInfrastructure: dmaap
- useHttps: false
-management:
- endpoints:
- web:
- exposure:
- include: health, metrics, prometheus
-server:
- port: 6969
- ssl:
- enabled: false
- servlet:
- context-path: /onap/policy/clamp/acm/httpparticipant
diff --git a/csit/config/clamp/KubernetesParticipantParameters.yaml b/csit/config/clamp/KubernetesParticipantParameters.yaml
deleted file mode 100644
index c13f8151..00000000
--- a/csit/config/clamp/KubernetesParticipantParameters.yaml
+++ /dev/null
@@ -1,63 +0,0 @@
-spring:
- security:
- user:
- name: participantUser
- password: zb!XztG34
-security:
- enable-csrf: false
-
-participant:
- localChartDirectory: /home/policy/local-charts
- infoFileName: CHART_INFO.json
- intermediaryParameters:
- reportingTimeIntervalMs: 120000
- description: Participant Description
- participantId:
- name: K8sParticipant0
- version: 1.0.0
- participantType:
- name: org.onap.policy.clamp.acm.KubernetesParticipant
- version: 2.3.4
- clampAutomationCompositionTopics:
- topicSources:
- -
- topic: POLICY-ACRUNTIME-PARTICIPANT
- servers:
- - ${topicServer:message-router}
- topicCommInfrastructure: dmaap
- fetchTimeout: 15000
- useHttps: false
- topicSinks:
- -
- topic: POLICY-ACRUNTIME-PARTICIPANT
- servers:
- - ${topicServer:message-router}
- topicCommInfrastructure: dmaap
- useHttps: false
-
-management:
- endpoints:
- web:
- exposure:
- include: health, metrics, prometheus
-server:
- port: 6969
- ssl:
- enabled: false
- servlet:
- context-path: /onap/policy/clamp/acm/k8sparticipant
-
-logging:
- # Configuration of logging
- level:
- ROOT: ERROR
- org.springframework: ERROR
- org.springframework.data: ERROR
- org.springframework.web.reactive.function.client.ExchangeFunctions: ERROR
- org.onap.policy.clamp.acm.participant.kubernetes: INFO
- file:
- name: /var/log/onap/policy/clamp/application.log
-
-chart:
- api:
- enabled: false
diff --git a/csit/config/clamp/PolicyParticipantParameters.yaml b/csit/config/clamp/PolicyParticipantParameters.yaml
deleted file mode 100644
index acaaebbe..00000000
--- a/csit/config/clamp/PolicyParticipantParameters.yaml
+++ /dev/null
@@ -1,61 +0,0 @@
-spring:
- security:
- user:
- name: participantUser
- password: zb!XztG34
-
-participant:
- pdpGroup: defaultGroup
- pdpType: apex
- policyApiParameters:
- clientName: api
- hostname: policy-api
- port: 6969
- userName: policyadmin
- password: zb!XztG34
- useHttps: false
- allowSelfSignedCerts: true
- policyPapParameters:
- clientName: pap
- hostname: policy-pap
- port: 6969
- userName: policyadmin
- password: zb!XztG34
- useHttps: false
- allowSelfSignedCerts: true
- intermediaryParameters:
- reportingTimeIntervalMs: 120000
- description: Participant Description
- participantId:
- name: org.onap.PM_Policy
- version: 1.0.0
- participantType:
- name: org.onap.policy.clamp.acm.PolicyParticipant
- version: 2.3.1
- clampAutomationCompositionTopics:
- topicSources:
- -
- topic: POLICY-ACRUNTIME-PARTICIPANT
- servers:
- - ${topicServer:message-router}
- topicCommInfrastructure: dmaap
- fetchTimeout: 15000
- useHttps: false
- topicSinks:
- -
- topic: POLICY-ACRUNTIME-PARTICIPANT
- servers:
- - ${topicServer:message-router}
- topicCommInfrastructure: dmaap
- useHttps: false
-management:
- endpoints:
- web:
- exposure:
- include: health, metrics, prometheus
-server:
- port: 6969
- ssl:
- enabled: false
- servlet:
- context-path: /onap/policy/clamp/acm/policyparticipant
diff --git a/csit/config/clamp/groups.json b/csit/config/clamp/groups.json
deleted file mode 100644
index 6ee30e1c..00000000
--- a/csit/config/clamp/groups.json
+++ /dev/null
@@ -1,137 +0,0 @@
-{
- "groups": [
- {
- "name": "defaultGroup",
- "version": "1.0.0",
- "description": "The default group that registers all supported policy types and pdps.",
- "pdpGroupState": "ACTIVE",
- "pdpSubgroups": [
- {
- "pdpType": "xacml",
- "supportedPolicyTypes": [
- {
- "name": "onap.policies.controlloop.guard.common.FrequencyLimiter",
- "version": "1.0.0"
- },
- {
- "name": "onap.policies.controlloop.guard.common.MinMax",
- "version": "1.0.0"
- },
- {
- "name": "onap.policies.controlloop.guard.common.Blacklist",
- "version": "1.0.0"
- },
- {
- "name": "onap.policies.controlloop.guard.common.Filter",
- "version": "1.0.0"
- },
- {
- "name": "onap.policies.controlloop.guard.coordination.FirstBlocksSecond",
- "version": "1.0.0"
- },
- {
- "name": "onap.policies.monitoring.*",
- "version": "1.0.0"
- },
- {
- "name": "onap.policies.optimization.*",
- "version": "1.0.0"
- },
- {
- "name": "onap.policies.optimization.resource.AffinityPolicy",
- "version": "1.0.0"
- },
- {
- "name": "onap.policies.optimization.resource.DistancePolicy",
- "version": "1.0.0"
- },
- {
- "name": "onap.policies.optimization.resource.HpaPolicy",
- "version": "1.0.0"
- },
- {
- "name": "onap.policies.optimization.resource.OptimizationPolicy",
- "version": "1.0.0"
- },
- {
- "name": "onap.policies.optimization.resource.PciPolicy",
- "version": "1.0.0"
- },
- {
- "name": "onap.policies.optimization.service.QueryPolicy",
- "version": "1.0.0"
- },
- {
- "name": "onap.policies.optimization.service.SubscriberPolicy",
- "version": "1.0.0"
- },
- {
- "name": "onap.policies.optimization.resource.Vim_fit",
- "version": "1.0.0"
- },
- {
- "name": "onap.policies.optimization.resource.VnfPolicy",
- "version": "1.0.0"
- },
- {
- "name": "onap.policies.native.Xacml",
- "version": "1.0.0"
- },
- {
- "name": "onap.policies.Naming",
- "version": "1.0.0"
- },
- {
- "name": "onap.policies.match.*",
- "version": "1.0.0"
- }
- ],
- "currentInstanceCount": 0,
- "desiredInstanceCount": 1,
- "policies": [
- {
- "name": "SDNC_Policy.ONAP_NF_NAMING_TIMESTAMP",
- "version": "1.0.0"
- }
- ]
- },
- {
- "pdpType": "drools",
- "supportedPolicyTypes": [
- {
- "name": "onap.policies.controlloop.operational.common.Drools",
- "version": "1.0.0"
- },
- {
- "name": "onap.policies.native.drools.Controller",
- "version": "1.0.0"
- },
- {
- "name": "onap.policies.native.drools.Artifact",
- "version": "1.0.0"
- }
- ],
- "currentInstanceCount": 0,
- "desiredInstanceCount": 1,
- "policies": []
- },
- {
- "pdpType": "apex",
- "supportedPolicyTypes": [
- {
- "name": "onap.policies.controlloop.operational.common.Apex",
- "version": "1.0.0"
- },
- {
- "name": "onap.policies.native.Apex",
- "version": "1.0.0"
- }
- ],
- "currentInstanceCount": 0,
- "desiredInstanceCount": 1,
- "policies": []
- }
- ]
- }
- ]
-}
diff --git a/csit/config/clamp/logback.xml b/csit/config/clamp/logback.xml
deleted file mode 100644
index c316e179..00000000
--- a/csit/config/clamp/logback.xml
+++ /dev/null
@@ -1,206 +0,0 @@
-<!--
- ============LICENSE_START=======================================================
- policy-clamp
- ================================================================================
- Copyright (C) 2021 Nordix Foundation.
- ================================================================================
- 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=========================================================
- -->
-
-<configuration scan="true" scanPeriod="30 seconds" debug="false">
-
- <property name="logDir" value="${POLICY_LOGS}" />
-
- <property name="errorLog" value="error" />
- <property name="debugLog" value="debug" />
- <property name="networkLog" value="network" />
-
- <property name="metricLog" value="metric" />
- <property name="transactionLog" value="audit" />
-
- <property name="debugPattern"
- value="[%d{yyyy-MM-dd'T'HH:mm:ss.SSS+00:00, UTC}|%level|%logger{0}|%thread] %msg%n" />
- <property name="errorPattern" value="${debugPattern}" />
- <property name="networkPattern"
- value="[%d{yyyy-MM-dd'T'HH:mm:ss.SSS+00:00, UTC}|%t]%m%n" />
-
- <property
- name="mpPreamble"
- value="%X{RequestID}|%X{InvocationID}|%X{ServiceName}|%X{PartnerName}" />
-
- <property
- name="mpTime"
- value="%X{BeginTimestamp}|%X{EndTimestamp}|%X{ElapsedTime}" />
-
- <property
- name="mpLine1"
- value="%X{ServiceInstanceID}|%X{VirtualServerName}|%X{StatusCode}|%X{ResponseCode}|%X{ResponseDescription}" />
-
- <property
- name="mpLine2"
- value="%X{InstanceUUID}|%X{Severity}|%X{TargetEntity}|%X{TargetServiceName}|%X{Server}|%X{ServerIPAddress}" />
-
- <property
- name="mpLine3"
- value="%X{ServerFQDN}|%X{ClientIPAddress}|%X{ProcessKey}|%X{RemoteHost}|%X{AlertSeverity}" />
-
- <property
- name="mpLine4"
- value="%X{TargetVirtualEntity}|%level|%thread| %msg%n" />
-
-
- <property name="metricPattern"
- value="{$mpPreamble}|{$mpTime}|{$mpLine1}|{$mpLine2}|{$mpLine3}|$mpLine4" />
-
- <property name="transactionPattern" value="${metricPattern}" />
-
- <appender name="ErrorOut"
- class="ch.qos.logback.core.rolling.RollingFileAppender">
- <file>${logDir}/${errorLog}.log</file>
- <rollingPolicy
- class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
- <fileNamePattern>${logDir}/${errorLog}.%d{yyyy-MM-dd}.%i.log.zip
- </fileNamePattern>
- <maxFileSize>50MB</maxFileSize>
- <maxHistory>30</maxHistory>
- <totalSizeCap>10GB</totalSizeCap>
- </rollingPolicy>
- <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
- <level>WARN</level>
- </filter>
- <encoder>
- <pattern>${errorPattern}</pattern>
- </encoder>
- </appender>
-
- <appender name="AsyncErrorOut"
- class="ch.qos.logback.classic.AsyncAppender">
- <appender-ref ref="ErrorOut" />
- </appender>
-
- <appender name="DebugOut"
- class="ch.qos.logback.core.rolling.RollingFileAppender">
- <file>${logDir}/${debugLog}.log</file>
- <rollingPolicy
- class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
- <fileNamePattern>${logDir}/${debugLog}.%d{yyyy-MM-dd}.%i.log.zip
- </fileNamePattern>
- <maxFileSize>50MB</maxFileSize>
- <maxHistory>30</maxHistory>
- <totalSizeCap>10GB</totalSizeCap>
- </rollingPolicy>
- <encoder>
- <pattern>${debugPattern}</pattern>
- </encoder>
- </appender>
-
- <appender name="AsyncDebugOut"
- class="ch.qos.logback.classic.AsyncAppender">
- <appender-ref ref="DebugOut" />
- </appender>
-
- <appender name="NetworkOut"
- class="ch.qos.logback.core.rolling.RollingFileAppender">
- <file>${logDir}/${networkLog}.log</file>
- <rollingPolicy
- class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
- <fileNamePattern>${logDir}/${networkLog}.%d{yyyy-MM-dd}.%i.log.zip
- </fileNamePattern>
- <maxFileSize>50MB</maxFileSize>
- <maxHistory>30</maxHistory>
- <totalSizeCap>10GB</totalSizeCap>
- </rollingPolicy>
- <encoder>
- <pattern>${networkPattern}</pattern>
- </encoder>
- </appender>
-
- <appender name="AsyncNetworkOut"
- class="ch.qos.logback.classic.AsyncAppender">
- <appender-ref ref="NetworkOut" />
- </appender>
-
- <appender name="MetricOut"
- class="ch.qos.logback.core.rolling.RollingFileAppender">
- <file>${logDir}/${metricLog}.log</file>
- <rollingPolicy
- class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
- <fileNamePattern>${logDir}/${metricLog}.%d{yyyy-MM-dd}.%i.log.zip
- </fileNamePattern>
- <maxFileSize>50MB</maxFileSize>
- <maxHistory>30</maxHistory>
- <totalSizeCap>10GB</totalSizeCap>
- </rollingPolicy>
- <encoder>
- <pattern>${metricPattern}</pattern>
- </encoder>
- </appender>
-
- <appender name="AsyncMetricOut"
- class="ch.qos.logback.classic.AsyncAppender">
- <appender-ref ref="MetricOut" />
- </appender>
-
- <appender name="TransactionOut"
- class="ch.qos.logback.core.rolling.RollingFileAppender">
- <file>${logDir}/${transactionLog}.log</file>
- <rollingPolicy
- class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
- <fileNamePattern>${logDir}/${transactionLog}.%d{yyyy-MM-dd}.%i.log.zip
- </fileNamePattern>
- <maxFileSize>50MB</maxFileSize>
- <maxHistory>30</maxHistory>
- <totalSizeCap>10GB</totalSizeCap>
- </rollingPolicy>
- <encoder>
- <pattern>${transactionPattern}</pattern>
- </encoder>
- </appender>
-
- <appender name="AsyncTransactionOut"
- class="ch.qos.logback.classic.AsyncAppender">
- <appender-ref ref="TransactionOut" />
- </appender>
-
- <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
- <encoder>
- <Pattern>[%d{yyyy-MM-dd'T'HH:mm:ss.SSS+00:00, UTC}|%level|%logger{0}|%thread] %msg%n</Pattern>
- </encoder>
- </appender>
-
- <appender name="AsyncStdOut" class="ch.qos.logback.classic.AsyncAppender">
- <appender-ref ref="STDOUT" />
- </appender>
-
- <logger name="network" level="INFO" additivity="false">
- <appender-ref ref="AsyncNetworkOut" />
- <appender-ref ref="AsyncStdOut" />
- </logger>
-
- <logger name="org.eclipse.jetty.server.RequestLog" level="info" additivity="false">
- <appender-ref ref="AsyncNetworkOut" />
- <appender-ref ref="AsyncStdOut" />
- </logger>
-
- <logger name="org.eclipse.jetty" level="ERROR" />
-
- <root level="INFO">
- <appender-ref ref="AsyncDebugOut" />
- <appender-ref ref="AsyncErrorOut" />
- <appender-ref ref="AsyncMetricOut" />
- <appender-ref ref="AsyncTransactionOut" />
- <appender-ref ref="AsyncStdOut" />
- </root>
-
-</configuration>
diff --git a/csit/run-k8s-csit.sh b/csit/run-k8s-csit.sh
new file mode 100755
index 00000000..79da27c6
--- /dev/null
+++ b/csit/run-k8s-csit.sh
@@ -0,0 +1,442 @@
+#!/bin/bash
+#
+# ============LICENSE_START====================================================
+# Copyright (C) 2023 Nordix Foundation.
+# =============================================================================
+# 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.
+#
+# SPDX-License-Identifier: Apache-2.0
+# ============LICENSE_END======================================================
+
+# This script generates dummy robot result files for jenkins since k8s CSIT is not supported.
+
+if [ -z "${WORKSPACE}" ]; then
+ WORKSPACE=$(git rev-parse --show-toplevel)
+ export WORKSPACE
+fi
+
+export ROBOT_LOG_DIR=${WORKSPACE}/csit/archives/$2
+
+mkdir -p $ROBOT_LOG_DIR
+
+echo "This version of policy does not support CSIT in kubernetes. Generating dummy results..."
+
+cat >${ROBOT_LOG_DIR}/output.xml <<EOF
+<robot generator="Robot 6.1a1 (Python 3.11.2 on linux)" rpa="false" schemaversion="4">
+<statistics>
+<total>
+<stat pass="1" fail="0" skip="0">All Tests</stat>
+</total>
+<tag>
+</tag>
+<suite>
+<stat pass="1" fail="0" skip="0" id="s1" name="Dummy-Test">Dummy-Test</stat>
+</suite>
+</statistics>
+<errors></errors>
+</robot>
+EOF
+
+cat >${ROBOT_LOG_DIR}/log.html <<EOF
+<!DOCTYPE html>
+<head>
+ <style media="all" type="text/css">
+ /* Generic and misc styles */
+ body {
+ font-family: Helvetica, sans-serif;
+ font-size: 0.8em;
+ color: black;
+ padding: 6px;
+ background: white;
+ }
+ table {
+ table-layout: fixed;
+ word-wrap: break-word;
+ empty-cells: show;
+ font-size: 1em;
+ }
+ th, td {
+ vertical-align: top;
+ }
+ br {
+ mso-data-placement: same-cell; /* maintain line breaks in Excel */
+ }
+ hr {
+ background: #ccc;
+ height: 1px;
+ border: 0;
+ }
+ a, a:link, a:visited {
+ text-decoration: none;
+ color: #15c;
+ }
+ a > img {
+ border: 1px solid #15c !important;
+ }
+ a:hover, a:active {
+ text-decoration: underline;
+ color: #61c;
+ }
+ .parent-name {
+ font-size: 0.7em;
+ letter-spacing: -0.07em;
+ }
+ .message {
+ white-space: pre-wrap;
+ }
+ /* Headers */
+ #header {
+ width: 65em;
+ height: 3em;
+ margin: 6px 0;
+ }
+ h1 {
+ float: left;
+ margin: 0 0 0.5em 0;
+ width: 75%;
+ }
+ h2 {
+ clear: left;
+ }
+ #generated {
+ float: right;
+ text-align: right;
+ font-size: 0.9em;
+ white-space: nowrap;
+ }
+ /* Documentation headers */
+ .doc > h2 {
+ font-size: 1.2em;
+ }
+ .doc > h3 {
+ font-size: 1.1em;
+ }
+ .doc > h4 {
+ font-size: 1.0em;
+ }
+ /* Status text colors -- !important allows using them in links */
+ .fail {
+ color: #ce3e01 !important;
+ font-weight: bold;
+ }
+ .pass {
+ color: #098a09 !important;
+ }
+ .skip {
+ color: #927201 !important;
+ font-weight: bold;
+ }
+ .label {
+ padding: 2px 5px;
+ font-size: 0.75em;
+ letter-spacing: 1px;
+ white-space: nowrap;
+ color: black;
+ background-color: #ddd;
+ border-radius: 3px;
+ }
+ .label.debug, .label.trace, .label.error, .label.keyword {
+ letter-spacing: 0;
+ }
+ .label.pass, .label.fail, .label.error, .label.skip, .label.warn {
+ font-weight: bold;
+ }
+ .label.pass {
+ background-color: #97bd61;
+ color: #000 !important;
+ }
+ .label.fail, .label.error {
+ background-color: #ce3e01;
+ color: #fff !important;
+ }
+ .label.skip, .label.warn {
+ background-color: #fed84f;
+ color: #000 !important;
+ }
+ /* Top right header */
+ #top-right-header {
+ position: fixed;
+ top: 0;
+ right: 0;
+ z-index: 1000;
+ width: 12em;
+ text-align: center;
+ }
+ #report-or-log-link a {
+ display: block;
+ background: black;
+ color: white;
+ text-decoration: none;
+ font-weight: bold;
+ letter-spacing: 0.1em;
+ padding: 0.3em 0;
+ border-bottom-left-radius: 4px;
+ }
+ #report-or-log-link a:hover {
+ color: #ddd;
+ }
+ #log-level-selector {
+ padding: 0.3em 0;
+ font-size: 0.9em;
+ border-bottom-left-radius: 4px;
+ background: #ddd;
+ }
+ /* Statistics table */
+ .statistics {
+ width: 65em;
+ border-collapse: collapse;
+ empty-cells: show;
+ margin-bottom: 1em;
+ }
+ .statistics tr:hover {
+ background: #f4f4f4;
+ cursor: pointer;
+ }
+ .statistics th, .statistics td {
+ border: 1px solid #ccc;
+ padding: 0.1em 0.3em;
+ }
+ .statistics th {
+ background-color: #ddd;
+ padding: 0.2em 0.3em;
+ }
+ .statistics td {
+ vertical-align: middle;
+ }
+ .stats-col-stat {
+ width: 4.5em;
+ text-align: center;
+ }
+ .stats-col-elapsed {
+ width: 5.5em;
+ text-align: center;
+ }
+ .stats-col-graph {
+ width: 9em;
+ }
+ th.stats-col-graph:hover {
+ cursor: default;
+ }
+ .stat-name {
+ float: left;
+ }
+ .stat-name a, .stat-name span {
+ font-weight: bold;
+ }
+ .tag-links {
+ font-size: 0.9em;
+ float: right;
+ margin-top: 0.05em;
+ }
+ .tag-links span {
+ margin-left: 0.2em;
+ }
+ /* Statistics graph */
+ .graph, .empty-graph {
+ border: 1px solid #ccc;
+ width: auto;
+ height: 7px;
+ padding: 0;
+ background: #aaa;
+ }
+ .empty-graph {
+ background: #eee;
+ }
+ .pass-bar, .fail-bar, .skip-bar {
+ float: left;
+ height: 100%;
+ }
+ .fail-bar {
+ background: #ce3e01;
+ }
+ .pass-bar {
+ background: #97bd61;
+ }
+ .skip-bar {
+ background: #fed84f;
+ }
+ /* Tablesorter - adapted from provided Blue Skin */
+ .tablesorter-header {
+ background-image: url(data:image/gif;base64,R0lGODlhCwAJAIAAAH9/fwAAACH5BAEAAAEALAAAAAALAAkAAAIRjAOnBr3cnIr0WUjTrC9e9BQAOw==);
+ background-repeat: no-repeat;
+ background-position: center right;
+ cursor: pointer;
+ }
+ .tablesorter-header:hover {
+ background-color: #ccc;
+ }
+ .tablesorter-headerAsc {
+ background-image: url(data:image/gif;base64,R0lGODlhCwAJAKEAAAAAAH9/fwAAAAAAACH5BAEAAAIALAAAAAALAAkAAAIUlBWnFr3cnIr0WQOyBmvzp13CpxQAOw==);
+ background-color: #ccc !important;
+ }
+ .tablesorter-headerDesc {
+ background-image: url(data:image/gif;base64,R0lGODlhCwAJAKEAAAAAAH9/fwAAAAAAACH5BAEAAAIALAAAAAALAAkAAAIUlAWnBr3cnIr0WROyDmvzp13CpxQAOw==);
+ background-color: #ccc !important;
+ }
+ .sorter-false {
+ background-image: none;
+ cursor: default;
+ }
+ .sorter-false:hover {
+ background-color: #ddd;
+ }
+ </style>
+
+
+</head>
+<body>
+ <div id="statistics-container">
+ <h2>Test Statistics</h2>
+ <table class="statistics tablesorter tablesorter-default tablesorter2e2fe879cc465" id="total-stats" role="grid">
+ <thead>
+ <tr role="row" class="tablesorter-headerRow">
+ <th class="stats-col-name tablesorter-header tablesorter-headerUnSorted" data-column="0" tabindex="0" scope="col" role="columnheader" aria-disabled="false" aria-controls="total-stats" unselectable="on" aria-sort="none" aria-label="Total Statistics: No sort applied, activate to apply an ascending sort" style="user-select: none;">
+ <div class="tablesorter-header-inner">Total Statistics</div>
+ </th>
+ <th class="stats-col-stat tablesorter-header tablesorter-headerUnSorted" data-column="1" tabindex="0" scope="col" role="columnheader" aria-disabled="false" aria-controls="total-stats" unselectable="on" aria-sort="none" aria-label="Total: No sort applied, activate to apply a descending sort" style="user-select: none;">
+ <div class="tablesorter-header-inner">Total</div>
+ </th>
+ <th class="stats-col-stat tablesorter-header tablesorter-headerUnSorted" data-column="2" tabindex="0" scope="col" role="columnheader" aria-disabled="false" aria-controls="total-stats" unselectable="on" aria-sort="none" aria-label="Pass: No sort applied, activate to apply a descending sort" style="user-select: none;">
+ <div class="tablesorter-header-inner">Pass</div>
+ </th>
+ <th class="stats-col-stat tablesorter-header tablesorter-headerUnSorted" data-column="3" tabindex="0" scope="col" role="columnheader" aria-disabled="false" aria-controls="total-stats" unselectable="on" aria-sort="none" aria-label="Fail: No sort applied, activate to apply a descending sort" style="user-select: none;">
+ <div class="tablesorter-header-inner">Fail</div>
+ </th>
+ <th class="stats-col-stat tablesorter-header tablesorter-headerUnSorted" data-column="4" tabindex="0" scope="col" role="columnheader" aria-disabled="false" aria-controls="total-stats" unselectable="on" aria-sort="none" aria-label="Skip: No sort applied, activate to apply a descending sort" style="user-select: none;">
+ <div class="tablesorter-header-inner">Skip</div>
+ </th>
+ <th class="stats-col-elapsed tablesorter-header tablesorter-headerUnSorted" title="Total execution time of these tests. Excludes suite setups and teardowns." data-column="5" tabindex="0" scope="col" role="columnheader" aria-disabled="false" aria-controls="total-stats" unselectable="on" aria-sort="none" aria-label="Elapsed: No sort applied, activate to apply a descending sort" style="user-select: none;">
+ <div class="tablesorter-header-inner">Elapsed</div>
+ </th>
+ <th class="stats-col-graph tablesorter-header sorter-false tablesorter-headerUnSorted" data-column="6" scope="col" role="columnheader" aria-disabled="true" unselectable="on" aria-sort="none" aria-label="Pass / Fail / Skip: No sort applied, sorting is disabled" style="user-select: none;">
+ <div class="tablesorter-header-inner">Pass / Fail / Skip</div>
+ </th>
+ </tr>
+ </thead>
+ <tbody aria-live="polite" aria-relevant="all">
+ <tr class="row-0" role="row">
+ <td class="stats-col-name">
+ <div class="stat-name">
+ <span>All Tests</span>
+ </div>
+ </td>
+ <td class="stats-col-stat">1</td>
+ <td class="stats-col-stat">1</td>
+ <td class="stats-col-stat">0</td>
+ <td class="stats-col-stat">0</td>
+ <td class="stats-col-elapsed" title="Total execution time of these tests. Excludes suite setups and teardowns.">00:00:00</td>
+ <td class="stats-col-graph">
+ <div class="graph">
+ <div class="pass-bar" style="width: 100%" title="100%"></div>
+ <div class="fail-bar" style="width: 0%" title="0%"></div>
+ <div class="skip-bar" style="width: 0%" title="0%"></div>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ <table class="statistics tablesorter tablesorter-default tablesorter8e8ffd77a824a" id="tag-stats" role="grid">
+ <thead>
+ <tr role="row" class="tablesorter-headerRow">
+ <th class="stats-col-name tablesorter-header tablesorter-headerUnSorted" data-column="0" tabindex="0" scope="col" role="columnheader" aria-disabled="false" aria-controls="tag-stats" unselectable="on" aria-sort="none" aria-label="Statistics by Tag: No sort applied, activate to apply an ascending sort" style="user-select: none;">
+ <div class="tablesorter-header-inner">Statistics by Tag</div>
+ </th>
+ <th class="stats-col-stat tablesorter-header tablesorter-headerUnSorted" data-column="1" tabindex="0" scope="col" role="columnheader" aria-disabled="false" aria-controls="tag-stats" unselectable="on" aria-sort="none" aria-label="Total: No sort applied, activate to apply a descending sort" style="user-select: none;">
+ <div class="tablesorter-header-inner">Total</div>
+ </th>
+ <th class="stats-col-stat tablesorter-header tablesorter-headerUnSorted" data-column="2" tabindex="0" scope="col" role="columnheader" aria-disabled="false" aria-controls="tag-stats" unselectable="on" aria-sort="none" aria-label="Pass: No sort applied, activate to apply a descending sort" style="user-select: none;">
+ <div class="tablesorter-header-inner">Pass</div>
+ </th>
+ <th class="stats-col-stat tablesorter-header tablesorter-headerUnSorted" data-column="3" tabindex="0" scope="col" role="columnheader" aria-disabled="false" aria-controls="tag-stats" unselectable="on" aria-sort="none" aria-label="Fail: No sort applied, activate to apply a descending sort" style="user-select: none;">
+ <div class="tablesorter-header-inner">Fail</div>
+ </th>
+ <th class="stats-col-stat tablesorter-header tablesorter-headerUnSorted" data-column="4" tabindex="0" scope="col" role="columnheader" aria-disabled="false" aria-controls="tag-stats" unselectable="on" aria-sort="none" aria-label="Skip: No sort applied, activate to apply a descending sort" style="user-select: none;">
+ <div class="tablesorter-header-inner">Skip</div>
+ </th>
+ <th class="stats-col-elapsed tablesorter-header tablesorter-headerUnSorted" title="Total execution time of these tests. Excludes suite setups and teardowns." data-column="5" tabindex="0" scope="col" role="columnheader" aria-disabled="false" aria-controls="tag-stats" unselectable="on" aria-sort="none" aria-label="Elapsed: No sort applied, activate to apply a descending sort" style="user-select: none;">
+ <div class="tablesorter-header-inner">Elapsed</div>
+ </th>
+ <th class="stats-col-graph tablesorter-header sorter-false tablesorter-headerUnSorted" data-column="6" scope="col" role="columnheader" aria-disabled="true" unselectable="on" aria-sort="none" aria-label="Pass / Fail / Skip: No sort applied, sorting is disabled" style="user-select: none;">
+ <div class="tablesorter-header-inner">Pass / Fail / Skip</div>
+ </th>
+ </tr>
+ </thead>
+ <tbody aria-live="polite" aria-relevant="all">
+ <tr class="row-0" role="row">
+ <td class="stats-col-name">No Tags</td>
+ <td class="stats-col-stat"></td>
+ <td class="stats-col-stat"></td>
+ <td class="stats-col-stat"></td>
+ <td class="stats-col-stat"></td>
+ <td class="stats-col-elapsed" title="Total execution time of these tests. Excludes suite setups and teardowns."></td>
+ <td class="stats-col-graph">
+ <div class="empty-graph"></div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ <table class="statistics tablesorter tablesorter-default tablesorter06030fd685e0f" id="suite-stats" role="grid">
+ <thead>
+ <tr role="row" class="tablesorter-headerRow">
+ <th class="stats-col-name tablesorter-header tablesorter-headerUnSorted" data-column="0" tabindex="0" scope="col" role="columnheader" aria-disabled="false" aria-controls="suite-stats" unselectable="on" aria-sort="none" aria-label="Statistics by Suite: No sort applied, activate to apply an ascending sort" style="user-select: none;">
+ <div class="tablesorter-header-inner">Statistics by Suite</div>
+ </th>
+ <th class="stats-col-stat tablesorter-header tablesorter-headerUnSorted" data-column="1" tabindex="0" scope="col" role="columnheader" aria-disabled="false" aria-controls="suite-stats" unselectable="on" aria-sort="none" aria-label="Total: No sort applied, activate to apply a descending sort" style="user-select: none;">
+ <div class="tablesorter-header-inner">Total</div>
+ </th>
+ <th class="stats-col-stat tablesorter-header tablesorter-headerUnSorted" data-column="2" tabindex="0" scope="col" role="columnheader" aria-disabled="false" aria-controls="suite-stats" unselectable="on" aria-sort="none" aria-label="Pass: No sort applied, activate to apply a descending sort" style="user-select: none;">
+ <div class="tablesorter-header-inner">Pass</div>
+ </th>
+ <th class="stats-col-stat tablesorter-header tablesorter-headerUnSorted" data-column="3" tabindex="0" scope="col" role="columnheader" aria-disabled="false" aria-controls="suite-stats" unselectable="on" aria-sort="none" aria-label="Fail: No sort applied, activate to apply a descending sort" style="user-select: none;">
+ <div class="tablesorter-header-inner">Fail</div>
+ </th>
+ <th class="stats-col-stat tablesorter-header tablesorter-headerUnSorted" data-column="4" tabindex="0" scope="col" role="columnheader" aria-disabled="false" aria-controls="suite-stats" unselectable="on" aria-sort="none" aria-label="Skip: No sort applied, activate to apply a descending sort" style="user-select: none;">
+ <div class="tablesorter-header-inner">Skip</div>
+ </th>
+ <th class="stats-col-elapsed tablesorter-header tablesorter-headerUnSorted" title="Total execution time of this suite." data-column="5" tabindex="0" scope="col" role="columnheader" aria-disabled="false" aria-controls="suite-stats" unselectable="on" aria-sort="none" aria-label="Elapsed: No sort applied, activate to apply a descending sort" style="user-select: none;">
+ <div class="tablesorter-header-inner">Elapsed</div>
+ </th>
+ <th class="stats-col-graph tablesorter-header sorter-false tablesorter-headerUnSorted" data-column="6" scope="col" role="columnheader" aria-disabled="true" unselectable="on" aria-sort="none" aria-label="Pass / Fail / Skip: No sort applied, sorting is disabled" style="user-select: none;">
+ <div class="tablesorter-header-inner">Pass / Fail / Skip</div>
+ </th>
+ </tr>
+ </thead>
+ <tbody aria-live="polite" aria-relevant="all">
+ <tr onclick="makeElementVisible('s1')" class="row-0" role="row">
+ <td class="stats-col-name" title="pap">
+ <div class="stat-name">
+ <span href="#s1">
+ <span class="parent-name"></span>Dummy Test</span>
+ </div>
+ </td>
+ <td class="stats-col-stat">1</td>
+ <td class="stats-col-stat">1</td>
+ <td class="stats-col-stat">0</td>
+ <td class="stats-col-stat">0</td>
+ <td class="stats-col-elapsed" title="Total execution time of this suite.">00:00:00</td>
+ <td class="stats-col-graph">
+ <div class="graph">
+ <div class="pass-bar" style="width: 100%" title="100%"></div>
+ <div class="fail-bar" style="width: 0%" title="0%"></div>
+ <div class="skip-bar" style="width: 0%" title="0%"></div>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+</body>
+</html>
+EOF
+
+cp ${ROBOT_LOG_DIR}/log.html ${ROBOT_LOG_DIR}/report.html