Remove clamp robot tests from Jakarta 63/133763/3
authorrameshiyer27 <ramesh.murugan.iyer@est.tech>
Thu, 23 Mar 2023 12:00:48 +0000 (12:00 +0000)
committerrameshiyer27 <ramesh.murugan.iyer@est.tech>
Thu, 23 Mar 2023 14:58:58 +0000 (14:58 +0000)
Clamp ACM tests in Jakarta are not relevant anymore
Added dummy script to generate result files for k8s CSIT

Issue-ID: POLICY-4541
Signed-off-by: zrrmmua <ramesh.murugan.iyer@est.tech>
Change-Id: I45f9651a505cbee38805ea94724a570afc8ff8a8

14 files changed:
csit/clamp/plans/setup.sh
csit/clamp/plans/teardown.sh
csit/clamp/tests/data/InstantiateAC.json [deleted file]
csit/clamp/tests/data/PMSHMultipleACTosca.yaml [deleted file]
csit/clamp/tests/data/PassivateAC.json [deleted file]
csit/clamp/tests/data/StateChangeRunningAC.json [deleted file]
csit/clamp/tests/policy-clamp-test.robot
csit/config/clamp/AcRuntimeParameters.yaml [deleted file]
csit/config/clamp/HttpParticipantParameters.yaml [deleted file]
csit/config/clamp/KubernetesParticipantParameters.yaml [deleted file]
csit/config/clamp/PolicyParticipantParameters.yaml [deleted file]
csit/config/clamp/groups.json [deleted file]
csit/config/clamp/logback.xml [deleted file]
csit/run-k8s-csit.sh [new file with mode: 0755]

index 6b11f9e..6e94322 100755 (executable)
@@ -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.
 # 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}"
-
index e0fc58e..1bc4204 100755 (executable)
@@ -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 (file)
index 5de6c95..0000000
+++ /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 (file)
index fc4ac73..0000000
+++ /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 (file)
index bd4c4a2..0000000
+++ /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 (file)
index 494f6fd..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-{
-    "orderedState": "RUNNING",
-    "automationCompositionIdentifierList": [
-        {
-            "name": "PMSHInstance0",
-            "version": "1.0.1"
-        }
-    ]
-}
index f819d2d..bb21983 100644 (file)
@@ -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 (file)
index ef686cf..0000000
+++ /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 (file)
index 1576888..0000000
+++ /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 (file)
index c13f815..0000000
+++ /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 (file)
index acaaebb..0000000
+++ /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 (file)
index 6ee30e1..0000000
+++ /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 (file)
index c316e17..0000000
+++ /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 (executable)
index 0000000..79da27c
--- /dev/null
@@ -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