--- /dev/null
+---
+# .readthedocs.yml
+# Read the Docs configuration file
+# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details
+# Required
+version: 2
+
+formats:
+ - htmlzip
+
+build:
+ image: latest
+
+python:
+ version: 3.7
+ install:
+ - requirements: docs/requirements-docs.txt
+
+sphinx:
+ configuration: docs/conf.py
id: 'rp5811'
company: 'AT&T'
timezone: 'America/New_York'
+ - name: 'Adam Ordway'
+ email: 'ao8347@att.com'
+ id: 'ao8347'
+ company: 'AT&T'
+ timezone: 'America/New_York'
+ - name: 'Justin Meilinger'
+ email: 'jx088j@att.com'
+ id: 'jx088j'
+ company: 'AT&T'
+ timezone: 'America/New_York'
- <<: *it-otf_ptl
tsc:
# yamllint disable-line rule:line-length
--- /dev/null
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. http://creativecommons.org/licenses/by/4.0
+..
+.. Copyright (C) 2019 AT&T Intellectual Property
+
+
+API-Docs
+========
+
+This is the API-docs of <COMPONENT>
+
+.. contents::
+ :depth: 3
+ :local:
+
+.. note
+
+.. This section is used to describe a software API exposed from a O-RAN software component.
+
+.. This note must be removed after content has been added.
+
+
+API Introduction
+-----------------
+.. Please add what API a component have exposed.
+
+API Functions
+-------------
+.. Please states the API functions.
+
--- /dev/null
+# ==================================================================================
+# Copyright (c) 2019 AT&T Intellectual Property.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# ==================================================================================
+
+from docs_conf.conf import *
+linkcheck_ignore = [
+ 'http://localhost.*',
+ 'http://127.0.0.1.*',
+ 'https://gerrit.o-ran-sc.org.*'
+]
+
--- /dev/null
+---
+# ==================================================================================
+# Copyright (c) 2019 AT&T Intellectual Property.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# ==================================================================================
+project_cfg: oran
+project: it/otf
+
--- /dev/null
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. http://creativecommons.org/licenses/by/4.0
+..
+.. Copyright (C) 2019 AT&T Intellectual Property
+
+
+Developer-Guide
+===============
+
+.. contents::
+ :depth: 3
+ :local:
+
+.. note:
+.. * This section is used to describe what a contributor needs to know in order to work on the componenta
+
+.. * this should be very technical, aimed at people who want to help develop the components
+
+.. * this should be how the component does what it does, not a requirements document of what the component should do
+
+.. * this should contain what language(s) and frameworks are used, with versions
+
+.. * this should contain how to obtain the code, where to look at work items (Jira tickets), how to get started developing
+
+.. * This note must be removed after content has been added.
+
+
+Processes
+---------
+
+
+
+Actions
+-------
+
--- /dev/null
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. SPDX-License-Identifier: CC-BY-4.0
+..
+.. Copyright (C) 2019 AT&T Intellectual Property
+
+
+Welcome to O-RAN SC it/dev Documentation
+===========================================
+
+.. toctree::
+ :maxdepth: 2
+ :caption: Contents:
+
+ overview.rst
+ developer-guide.rst
+ release-notes.rst
+ api-docs.rst
+ developer-guide.rst
+ user-guide.rst
+
+* :ref:`genindex`
+* :ref:`modindex`
+* :ref:`search`
--- /dev/null
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. SPDX-License-Identifier: CC-BY-4.0
+..
+.. Copyright (C) 2019 AT&T Intellectual Property
+
+
+Overview
+======================
+
+This repo is used by the O-RAN SC Integration and Testing project for hosting miscellaneous development codes.
+
+For Amber release this repo contains files for developing Near Realtime RAN Intelligent Controller applications.
--- /dev/null
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. http://creativecommons.org/licenses/by/4.0
+..
+.. Copyright (C) 2019 AT&T Intellectual Property
+
+
+Release-Notes
+=============
+
+
+This document provides the release notes for <RELEASE> of <COMPONENT>.
+
+.. contents::
+ :depth: 3
+ :local:
+
+
+Version history
+---------------
+
++--------------------+--------------------+--------------------+--------------------+
+| **Date** | **Ver.** | **Author** | **Comment** |
+| | | | |
++--------------------+--------------------+--------------------+--------------------+
+| 20XX-XX-XX | 0.1.0 | | First draft |
+| | | | |
++--------------------+--------------------+--------------------+--------------------+
+| | 0.1.1 | | |
+| | | | |
++--------------------+--------------------+--------------------+--------------------+
+| | 1.0 | | |
+| | | | |
++--------------------+--------------------+--------------------+--------------------+
+
+
+Summary
+-------
+
+<SUMMARIZE THE RELEASE - THE CONTENT - AND OTHER IMPORTANT HIGH LEVEL PROPERTIES>
+
+
+
+
+Release Data
+------------
+<STATE RELEVANT RELEASE DATA/RECORDS>
+
+<EXAMPLE>:
+
++--------------------------------------+--------------------------------------+
+| **Project** | E.g. project |
+| | |
++--------------------------------------+--------------------------------------+
+| **Repo/commit-ID** | E.g. genesis/adf634a0d4..... |
+| | |
++--------------------------------------+--------------------------------------+
+| **Release designation** | E.g. Arno RC2 |
+| | |
++--------------------------------------+--------------------------------------+
+| **Release date** | E.g. 2015-04-16 |
+| | |
++--------------------------------------+--------------------------------------+
+| **Purpose of the delivery** | |
+| | |
++--------------------------------------+--------------------------------------+
+
+
+
+
+Feature Additions
+^^^^^^^^^^^^^^^^^
+<STATE ADDED FEATURES BY REFERENCE TO JIRA>
+
+<EXAMPLE>:
+
+**JIRA BACK-LOG:**
+
++--------------------------------------+--------------------------------------+
+| **JIRA REFERENCE** | **SLOGAN** |
+| | |
++--------------------------------------+--------------------------------------+
+| | |
+| | |
+| | |
++--------------------------------------+--------------------------------------+
+| | |
+| | |
+| | |
++--------------------------------------+--------------------------------------+
+
+Bug Corrections
+^^^^^^^^^^^^^^^
+
+**JIRA TICKETS:**
+
++--------------------------------------+--------------------------------------+
+| **JIRA REFERENCE** | **SLOGAN** |
+| | |
++--------------------------------------+--------------------------------------+
+| | |
+| | |
+| | |
++--------------------------------------+--------------------------------------+
+| | |
+| | |
+| | |
++--------------------------------------+--------------------------------------+
+
+Deliverables
+^^^^^^^^^^^^
+
+Software Deliverables
++++++++++++++++++++++
+
+<STATE WHAT SOFTWARE DELIVERABLES THAT ARE RELATED TO THIS VERSION, AND WHERE THOSE CAN BE RETRIEVED>
+
+
+
+Documentation Deliverables
+++++++++++++++++++++++++++
+
+<STATE WHAT DOCUMENTATION DELIVERABLES THAT ARE RELATED TO THIS VERSION, AND WHERE THOSE CAN BE RETRIEVED>
+
+
+
+
+Known Limitations, Issues and Workarounds
+-----------------------------------------
+
+System Limitations
+^^^^^^^^^^^^^^^^^^
+<STATE ALL RELEVANT SYSTEM LIMITATIONS, IF THERE IS ANY>
+
+
+
+Known Issues
+^^^^^^^^^^^^
+<STATE ALL KNOWN ISSUES WITH JIRA REFERENCE>
+
+<EXAMPLE>:
+
+**JIRA TICKETS:**
+
++--------------------------------------+--------------------------------------+
+| **JIRA REFERENCE** | **SLOGAN** |
+| | |
++--------------------------------------+--------------------------------------+
+| | |
+| | |
+| | |
++--------------------------------------+--------------------------------------+
+| | |
+| | |
+| | |
++--------------------------------------+--------------------------------------+
+
+Workarounds
+^^^^^^^^^^^
+
+<STATE ALL KNOWN WORKAROUNDS TO THE ISSUES STATED ABOVE, IF THERE IS ANY>
+
+
+
+
+References
+----------
+<STATE RELEVANT REFERENCES FOR THIS RELEASE/VERSION>
+
+
+
+
--- /dev/null
+sphinx
+sphinx-rtd-theme
+sphinxcontrib-httpdomain
+recommonmark
+lfdocs-conf
--- /dev/null
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. http://creativecommons.org/licenses/by/4.0
+..
+.. Copyright (C) 2019 AT&T Intellectual Property
+
+
+User Guide
+==========
+
+This is the user guide of OSC <COMPONENT>.
+
+.. contents::
+ :depth: 3
+ :local:
+
+.. a user guide should be how to use the component or system; it should not be a requirements document
+.. delete this content after edittng it
+
+
+Description
+-----------
+.. Describe the traget users of the projcet, for example, modeler/data scientist, ORAN-OSC platform admin, marketplace user, design studio end user, etc
+.. Descirbe how the target users can get use of a O-RAN SC component.
+.. If the guide contains sections on third-party tools, is it clearly stated why the O-RAN-OSC platform is using those tools? Are there instructions on how to install and configure each tool/toolset?
+
+Feature Introduction
+--------------------
+.. Provide enough information that a user will be able to operate the feature on a deployed scenario. content can be added from administration, management, using, Troubleshooting sections perspectives.
+
+
+
+
+
--- /dev/null
+# Copyright (c) 2019 AT&T Intellectual Property. #\r
+# #\r
+# Licensed under the Apache License, Version 2.0 (the "License"); #\r
+# you may not use this file except in compliance with the License. #\r
+# You may obtain a copy of the License at #\r
+# #\r
+# http://www.apache.org/licenses/LICENSE-2.0 #\r
+# #\r
+# Unless required by applicable law or agreed to in writing, software #\r
+# distributed under the License is distributed on an "AS IS" BASIS, #\r
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. #\r
+# See the License for the specific language governing permissions and #\r
+# limitations under the License. #\r
+################################################################################\r
+\r
+FROM python:2.7\r
+\r
+RUN python --version\r
+\r
+ADD pip-requirements.txt pip-requirements.txt\r
+ADD ric-test-head.py ric-test-head.py\r
+ADD config.json config.json\r
+\r
+RUN mkdir -p /otf/logs\r
+\r
+RUN python -m pip install -r pip-requirements.txt\r
+\r
+ENTRYPOINT ["python", "ric-test-head.py"]\r
--- /dev/null
+#!/usr/bin/env groovy\r
+\r
+/* Copyright (c) 2019 AT&T Intellectual Property. #\r
+# #\r
+# Licensed under the Apache License, Version 2.0 (the "License"); #\r
+# you may not use this file except in compliance with the License. #\r
+# You may obtain a copy of the License at #\r
+# #\r
+# http://www.apache.org/licenses/LICENSE-2.0 #\r
+# #\r
+# Unless required by applicable law or agreed to in writing, software #\r
+# distributed under the License is distributed on an "AS IS" BASIS, #\r
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. #\r
+# See the License for the specific language governing permissions and #\r
+# limitations under the License. #\r
+##############################################################################*/\r
+\r
+properties([[$class: 'ParametersDefinitionProperty', parameterDefinitions: [\r
+ [$class: 'hudson.model.StringParameterDefinition', name: 'PHASE', defaultValue: "BUILD"],\r
+ [$class: 'hudson.model.StringParameterDefinition', name: 'ENV', defaultValue: "dev"],\r
+ [$class: 'hudson.model.StringParameterDefinition', name: 'MECHID', defaultValue: "m13591_otf_dev"],\r
+ [$class: 'hudson.model.StringParameterDefinition', name: 'KUBE_CONFIG', defaultValue: "kubeConfig-dev"],\r
+ [$class: 'hudson.model.StringParameterDefinition', name: 'TILLER_NAMESPACE', defaultValue: "com-att-ecomp-otf-dev"]\r
+]]])\r
+\r
+\r
+echo "Build branch: ${env.BRANCH_NAME}"\r
+\r
+node("docker"){\r
+ stage 'Checkout'\r
+ checkout scm\r
+ PHASES=PHASE.tokenize( '_' );\r
+ echo "PHASES : " + PHASES\r
+\r
+\r
+ ARTIFACT_ID="ric-test-head";\r
+ VERSION="Camile.2.0";\r
+ NAMESPACE="com.att.ecomp.otf"\r
+ DOCKER_REGISTRY="dockercentral.it.att.com:5100"\r
+\r
+ if( ENV.equalsIgnoreCase("dev") ){\r
+ IMAGE_NAME=DOCKER_REGISTRY + "/" + NAMESPACE + ".dev" + "/" + ARTIFACT_ID + ":" + VERSION\r
+\r
+ }\r
+ if( ENV.equalsIgnoreCase("prod") || ENV.equalsIgnoreCase("prod-dr")){\r
+ IMAGE_NAME=DOCKER_REGISTRY + "/" + NAMESPACE + ".prod" + "/" + ARTIFACT_ID + ":" + VERSION\r
+\r
+ }\r
+\r
+ if( ENV.equalsIgnoreCase("st") ){\r
+ IMAGE_NAME=DOCKER_REGISTRY + "/" + NAMESPACE + ".st" + "/" + ARTIFACT_ID + ":" + VERSION\r
+\r
+ }\r
+\r
+ echo "Artifact: " + IMAGE_NAME\r
+\r
+ withEnv(["PATH=${env.PATH}:${env.WORKSPACE}/linux-amd64", "HELM_HOME=${env.WORKSPACE}"]) {\r
+\r
+ echo "PATH=${env.PATH}"\r
+ echo "HELM_HOME=${env.HELM_HOME}"\r
+\r
+ if (PHASES.contains("BUILD")){\r
+\r
+ stage 'Publish Artifact'\r
+\r
+ withCredentials([usernamePassword(credentialsId: MECHID, usernameVariable: 'USERNAME', passwordVariable: 'PASSWORD')]) {\r
+\r
+ echo "Artifact: " + IMAGE_NAME\r
+\r
+ sh """\r
+ docker login $DOCKER_REGISTRY --username $USERNAME --password $PASSWORD\r
+ docker build -t $IMAGE_NAME .\r
+ docker push $IMAGE_NAME\r
+ """\r
+ }\r
+\r
+ }\r
+\r
+ if (PHASES.contains("DEPLOY") || PHASES.contains("UNDEPLOY")) {\r
+\r
+ stage 'Init Helm'\r
+\r
+ //check if helm exists if not install\r
+ if(fileExists('linux-amd64/helm')){\r
+ sh """\r
+ echo "helm is already installed"\r
+ """\r
+ }\r
+ else{\r
+ //download helm\r
+ sh """\r
+ echo "installing helm"\r
+ wget https://storage.googleapis.com/kubernetes-helm/helm-v2.14.3-linux-amd64.tar.gz\r
+ tar -xf helm-v2.14.3-linux-amd64.tar.gz\r
+ rm helm-v2.14.3-linux-amd64.tar.gz\r
+ """\r
+ }\r
+\r
+ withCredentials([file(credentialsId: KUBE_CONFIG, variable: 'KUBECONFIG')]) {\r
+\r
+ dir('helm'){\r
+ //check if charts are valid, and then perform dry run, if successful then upgrade/install charts\r
+\r
+ if (PHASES.contains("UNDEPLOY") ) {\r
+ stage 'Undeploy'\r
+\r
+ sh """\r
+ helm delete --tiller-namespace=$TILLER_NAMESPACE --purge $ARTIFACT_ID\r
+ """\r
+ }\r
+\r
+ //NOTE Double quotes are used below to access groovy variables like artifact_id and tiller_namespace\r
+ if (PHASES.contains("DEPLOY") ){\r
+ stage 'Deploy'\r
+ withCredentials([usernamePassword(credentialsId: MECHID, usernameVariable: 'USERNAME', passwordVariable: 'PASSWORD')]) {\r
+\r
+ sh """\r
+ echo "Validate Yaml"\r
+ helm lint $ARTIFACT_ID\r
+\r
+ echo "View Helm Templates"\r
+ helm template $ARTIFACT_ID --set appName=$ARTIFACT_ID \\r
+ --set appName=$ARTIFACT_ID \\r
+ --set version=$VERSION \\r
+ --set env=$ENV \\r
+ --set image=$IMAGE_NAME \\r
+ --set namespace=$TILLER_NAMESPACE\r
+\r
+ echo "Perform Dry Run Of Install"\r
+ helm upgrade --tiller-namespace=$TILLER_NAMESPACE --install --dry-run $ARTIFACT_ID $ARTIFACT_ID \\r
+ --set appName=$ARTIFACT_ID \\r
+ --set version=$VERSION \\r
+ --set env=$ENV \\r
+ --set image=$IMAGE_NAME \\r
+ --set namespace=$TILLER_NAMESPACE\r
+\r
+\r
+ echo "Helm Install/Upgrade"\r
+ helm upgrade --tiller-namespace=$TILLER_NAMESPACE --install $ARTIFACT_ID $ARTIFACT_ID \\r
+ --set appName=$ARTIFACT_ID \\r
+ --set version=$VERSION \\r
+ --set env=$ENV \\r
+ --set image=$IMAGE_NAME \\r
+ --set namespace=$TILLER_NAMESPACE\r
+\r
+ """\r
+ }\r
+ }\r
+\r
+ }\r
+ }\r
+ }\r
+\r
+ }\r
+}\r
--- /dev/null
+Unless otherwise specified, all software contained herein is licensed\r
+under the Apache License, Version 2.0 (the "Software License");\r
+you may not use this software except in compliance with the Software\r
+License. You may obtain a copy of the Software License at\r
+\r
+http://www.apache.org/licenses/LICENSE-2.0\r
+\r
+Unless required by applicable law or agreed to in writing, software\r
+distributed under the Software License is distributed on an "AS IS" BASIS,\r
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+See the Software License for the specific language governing permissions\r
+and limitations under the Software License.\r
+\r
+\r
+\r
+Unless otherwise specified, all documentation contained herein is licensed\r
+under the Creative Commons License, Attribution 4.0 Intl. (the\r
+"Documentation License"); you may not use this documentation except in\r
+compliance with the Documentation License. You may obtain a copy of the\r
+Documentation License at\r
+\r
+https://creativecommons.org/licenses/by/4.0/\r
+\r
+Unless required by applicable law or agreed to in writing, documentation\r
+distributed under the Documentation License is distributed on an "AS IS"\r
+BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\r
+implied. See the Documentation License for the specific language governing\r
+permissions and limitations under the Documentation License.
\ No newline at end of file
--- /dev/null
+{\r
+ "base_address": "http://localhost:3000",\r
+ "actions_path": {\r
+ "alive": "/appmgr/ric/v1/health/alive",\r
+ "ready": "/appmgr/ric/v1/health/ready",\r
+ "list": "/appmgr/ric/v1/xapps",\r
+ "deploy": "/appmgr/ric/v1/xapps",\r
+ "delete": "/appmgr/ric/v1/xapps/"\r
+ }\r
+}
\ No newline at end of file
--- /dev/null
+---
+# Copyright (c) 2019 AT&T Intellectual Property.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+tag: 0.0.1
--- /dev/null
+# Patterns to ignore when building packages.\r
+# This supports shell glob matching, relative path matching, and\r
+# negation (prefixed with !). Only one pattern per line.\r
+.DS_Store\r
+# Common VCS dirs\r
+.git/\r
+.gitignore\r
+.bzr/\r
+.bzrignore\r
+.hg/\r
+.hgignore\r
+.svn/\r
+# Common backup files\r
+*.swp\r
+*.bak\r
+*.tmp\r
+*~\r
+# Various IDEs\r
+.project\r
+.idea/\r
+*.tmproj\r
--- /dev/null
+apiVersion: v1\r
+appVersion: "1.0"\r
+description: A Helm chart for the Ping Server Virtual Test Head \r
+name: oran-ric-test-head\r
+version: 0.0.1\r
--- /dev/null
+apiVersion: extensions/v1beta1\r
+kind: Deployment\r
+metadata:\r
+ name: {{ .Values.appName}}\r
+ namespace: {{.Values.namespace}}\r
+ labels:\r
+ app: {{ .Values.appName}}\r
+ version: {{.Values.version}}\r
+spec:\r
+ revisionHistoryLimit: 1\r
+ minReadySeconds: 10\r
+ strategy:\r
+ # indicate which strategy we want for rolling update\r
+ type: RollingUpdate\r
+ rollingUpdate:\r
+ maxSurge: 0\r
+ maxUnavailable: 1\r
+ replicas: {{ .Values.replicas}}\r
+ selector:\r
+ matchLabels:\r
+ app: {{ .Values.appName}}\r
+ version: {{.Values.version}}\r
+ template:\r
+ metadata:\r
+ labels:\r
+ app: {{ .Values.appName}}\r
+ version: {{.Values.version}}\r
+ spec:\r
+ serviceAccount: default\r
+ volumes:\r
+ - name: {{ .Values.appName}}-cert-volume\r
+ secret:\r
+ secretName: {{.Values.sharedCert}}\r
+ optional: true\r
+ items:\r
+ - key: PEM_CERT\r
+ path: otf.pem\r
+ - key: PEM_KEY\r
+ path: privateKey.pem\r
+ {{ if or (eq .Values.env "st") (eq .Values.env "prod-dr")}}\r
+ {{else}}\r
+ - name: logging-pvc\r
+ persistentVolumeClaim:\r
+ {{if eq .Values.env "prod"}}\r
+ claimName: {{ .Values.pvc.prod | quote }}\r
+ {{ else }}\r
+ claimName: {{ .Values.pvc.dev | quote }}\r
+ {{ end }}\r
+ {{end}}\r
+ containers:\r
+ - name: {{ .Values.appName}}\r
+ image: {{ .Values.image}}\r
+ imagePullPolicy: Always\r
+ ports:\r
+ - name: http\r
+ containerPort: 5000\r
+ nodePort: {{.Values.nodePort}}\r
+ protocol: TCP\r
+ {{ if eq .Values.env "st"}}\r
+ resources:\r
+ limits: \r
+ memory: "512Mi"\r
+ cpu: "500m"\r
+ requests:\r
+ memory: "256Mi"\r
+ cpu: "100m"\r
+ {{else}} \r
+ resources:\r
+ limits:\r
+ memory: "1Gi"\r
+ cpu: "1"\r
+ requests:\r
+ memory: "1Gi"\r
+ cpu: "1"\r
+ {{end}}\r
+ env:\r
+ - name: NAMESPACE\r
+ value: {{.Values.namespace}}\r
+ - name: APP_NAME\r
+ value: {{ .Values.appName}}\r
+ - name: APP_VERSION\r
+ value: {{.Values.version}}\r
+ volumeMounts:\r
+ - name: {{.Values.appName}}-cert-volume\r
+ mountPath: /opt/cert\r
+ {{ if or (eq .Values.env "st") (eq .Values.env "prod-dr")}}\r
+ {{else}}\r
+ - name: logging-pvc\r
+ mountPath: "/otf/logs"\r
+ {{end}} \r
+ livenessProbe:\r
+ httpGet:\r
+ path: {{.Values.health}}\r
+ port: http\r
+ scheme: HTTP\r
+ httpHeaders:\r
+ - name: X-Custom-Header\r
+ value: Alive\r
+ initialDelaySeconds: 30\r
+ timeoutSeconds: 30\r
+ periodSeconds: 30\r
+ readinessProbe:\r
+ httpGet:\r
+ path: {{.Values.health}}\r
+ port: http\r
+ scheme: HTTP\r
+ httpHeaders:\r
+ - name: X-Custom-Header\r
+ value: Ready\r
+ initialDelaySeconds: 30\r
+ timeoutSeconds: 30\r
+ periodSeconds: 30\r
+ restartPolicy: Always\r
--- /dev/null
+apiVersion: v1\r
+kind: Service\r
+metadata:\r
+ name: {{ .Values.appName }}\r
+ namespace: {{ .Values.namespace}}\r
+ labels:\r
+ app: {{ .Values.appName }}\r
+ version: {{ .Values.version}}\r
+spec:\r
+ type: NodePort\r
+ ports:\r
+ - name: http\r
+ port: 5000\r
+ protocol: TCP\r
+ nodePort: {{ .Values.nodePort}}\r
+ selector:\r
+ app: {{ .Values.appName }}\r
+ version: {{ .Values.version}}\r
--- /dev/null
+appName: ric-test-head\r
+env: dev\r
+version: 0.0.1-SNAPSHOT\r
+image: ric-test-head:0.0.1-SNAPSHOT\r
+namespace: org-oran-otf\r
+nodePort: 32323\r
+replicas: 1\r
+health : /otf/vth/oran/v1/health\r
+sharedCert: otf-cert-secret-builder\r
+pvc:\r
+ dev: org-oran-otf-dev-logs-pv\r
+ prod: org-oran-otf-prod-logs-pv\r
--- /dev/null
+/* Copyright (c) 2019 AT&T Intellectual Property. #\r
+# #\r
+# Licensed under the Apache License, Version 2.0 (the "License"); #\r
+# you may not use this file except in compliance with the License. #\r
+# You may obtain a copy of the License at #\r
+# #\r
+# http://www.apache.org/licenses/LICENSE-2.0 #\r
+# #\r
+# Unless required by applicable law or agreed to in writing, software #\r
+# distributed under the License is distributed on an "AS IS" BASIS, #\r
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. #\r
+# See the License for the specific language governing permissions and #\r
+# limitations under the License. #\r
+##############################################################################*/\r
+\r
+const express = require('express')\r
+const app = express()\r
+const port = 3000\r
+\r
+app.get('/', (req, res) => res.send('Hello World!'))\r
+\r
+app.get('/appmgr/ric/v1/health/ready',function(req,res){\r
+ res.sendStatus(200)\r
+})\r
+\r
+app.get('/appmgr/ric/v1/health/alive',function(req,res){\r
+ res.sendStatus(200)\r
+})\r
+\r
+app.get('/appmgr/ric/v1/xapps',function(req,res){\r
+ res.status(200)\r
+ res.send([{"name":"admin-xapp","status":"deployed","version":"1.0","instances":null},{"name":"mcxapp","status":"deployed","version":"1.0","instances":[{"name":"mcxapp-649d7494-h5tjb","status":"running","ip":"service-ricxapp-mcxapp-rmr.ricxapp","port":4560,"txMessages":null,"rxMessages":["RIC_SUB_RESP","RIC_SUB_FAILURE","RIC_SUB_DEL_RESP","RIC_SUB_DEL_FAILURE","RIC_INDICATION"]}]},{"name":"ueec","status":"deployed","version":"1.0","instances":[{"name":"ueec-6675694b75-jtnz6","status":"running","ip":"service-ricxapp-ueec-rmr.ricxapp","port":4560,"txMessages":["RIC_SUB_REQ","RIC_SUB_DEL_REQ"],"rxMessages":["RIC_SUB_RESP","RIC_SUB_FAILURE","RIC_SUB_DEL_RESP","RIC_SUB_DEL_FAILURE","RIC_INDICATION"]}]}])\r
+})\r
+\r
+app.post('/appmgr/ric/v1/xapps', function(req,res){\r
+ res.statusMessage = 'Created'\r
+ res.status(201)\r
+ res.send({"result_output":{"name":"anr","status":"deployed","version":"1.0","instances":[{"name":"anr-7d4c47b4bb-jlslm","status":"running","ip":"service-ricxapp-anr-rmr.ricxapp","port":4560,"txMessages":null,"rxMessages":["RIC_SGNB_ADDITION_REQ","RIC_RRC_TRANSFER"]}]}})\r
+})\r
+\r
+app.delete('/appmgr/ric/v1/xapps/:name',function(req,res){\r
+ res.sendStatus(204)\r
+})\r
+\r
+app.listen(port, () => console.log(`Example app listening on port ${port}!`))\r
+\r
--- /dev/null
+{\r
+ "name": "mock_server",\r
+ "version": "1.0.0",\r
+ "description": "mock server for RIC",\r
+ "main": "index.js",\r
+ "scripts": {\r
+ "test": "echo \"Error: no test specified\" && exit 1"\r
+ },\r
+ "author": "",\r
+ "license": "ISC",\r
+ "dependencies": {\r
+ "express": "^4.17.1"\r
+ }\r
+}\r
--- /dev/null
+add certs here. requires two pem files (Cert and key)\r
--- /dev/null
+flask\r
+flask-cors\r
+paramiko\r
+FLASK\r
+FLASK-CORS\r
+requests\r
--- /dev/null
+# Copyright (c) 2019 AT&T Intellectual Property. #\r
+# #\r
+# Licensed under the Apache License, Version 2.0 (the "License"); #\r
+# you may not use this file except in compliance with the License. #\r
+# You may obtain a copy of the License at #\r
+# #\r
+# http://www.apache.org/licenses/LICENSE-2.0 #\r
+# #\r
+# Unless required by applicable law or agreed to in writing, software #\r
+# distributed under the License is distributed on an "AS IS" BASIS, #\r
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. #\r
+# See the License for the specific language governing permissions and #\r
+# limitations under the License. #\r
+################################################################################\r
+\r
+import datetime\r
+import json\r
+import logging\r
+from logging import FileHandler\r
+import os\r
+\r
+import requests\r
+from flask import Flask, request, jsonify\r
+\r
+#redirect http to https\r
+app = Flask(__name__)\r
+\r
+\r
+# Prevents print statement every time an endpoint is triggered.\r
+logging.getLogger("werkzeug").setLevel(logging.WARNING)\r
+\r
+def unix_time_millis(dt):\r
+ epoch = datetime.datetime.utcfromtimestamp(0)\r
+ return (dt - epoch).total_seconds() * 1000.0\r
+\r
+\r
+@app.route("/otf/vth/oran/v1/health", methods=['GET'])\r
+def getHealth():\r
+ return "UP"\r
+\r
+@app.route("/otf/vth/oran/ric/v1", methods =['POST'])\r
+def executeRicRequest():\r
+\r
+ responseData = {\r
+ 'vthResponse': {\r
+ 'testDuration': '',\r
+ 'dateTimeUTC': datetime.datetime.now(),\r
+ 'abstractMessage': '',\r
+ 'resultData': {}\r
+ }\r
+ }\r
+\r
+ startTime = unix_time_millis(datetime.datetime.now())\r
+\r
+ try:\r
+ if not request.is_json:\r
+ raise ValueError("request must be json")\r
+\r
+ requestData = request.get_json()\r
+\r
+ app.logger.info("Ric requestData:"+str(requestData))\r
+\r
+ action = requestData['action'].lower()\r
+ possibleActions = ['alive','ready','list', 'deploy','delete']\r
+ responseData['vthResponse']['abstractMessage'] = 'Result from {}'.format(action)\r
+\r
+ if action not in possibleActions:\r
+ raise KeyError("invalid action")\r
+ if (action == 'deploy' or action == 'delete') and 'name' not in requestData:\r
+ raise KeyError("must include name")\r
+\r
+ with open('config.json') as configFile:\r
+ config = json.load(configFile)\r
+\r
+ baseAddress= config['base_address']\r
+\r
+ if action == 'alive' or action == 'ready':\r
+ res = requests.get(baseAddress+config['actions_path'][action])\r
+ responseData['vthResponse']['resultData']['statusCode'] = res.status_code\r
+ responseData['vthResponse']['resultData']['resultOutput'] = res.text\r
+ elif action == 'list':\r
+ res = requests.get(baseAddress+config['actions_path'][action])\r
+ responseData['vthResponse']['resultData']['statusCode'] = res.status_code\r
+ responseData['vthResponse']['resultData']['resultOutput'] = res.json()\r
+ elif action == 'deploy':\r
+ payload = json.dumps({'name': requestData['name']})\r
+ res = requests.post(baseAddress+config['actions_path'][action], data=payload)\r
+ responseData['vthResponse']['resultData']['statusCode'] = res.status_code\r
+ responseData['vthResponse']['resultData']['resultOutput'] = res.json()\r
+ elif action == 'delete':\r
+ path= baseAddress+config['actions_path'][action]+"{}".format(requestData['name'])\r
+ res = requests.delete(path)\r
+ responseData['vthResponse']['resultData']['resultOutput'] = res.text\r
+ responseData['vthResponse']['resultData']['statusCode'] = res.status_code\r
+\r
+ except Exception as ex:\r
+ endTime = unix_time_millis(datetime.datetime.now())\r
+ totalTime = endTime - startTime\r
+ responseData['vthResponse']['testDuration'] = totalTime\r
+ responseData['vthResponse']['abstractMessage'] = str(ex)\r
+ return jsonify(responseData)\r
+\r
+ endTime = unix_time_millis(datetime.datetime.now())\r
+ totalTime= endTime-startTime\r
+\r
+ responseData['vthResponse']['testDuration'] = totalTime\r
+\r
+ return jsonify(responseData),200\r
+\r
+if __name__ == '__main__':\r
+ # logHandler = FileHandler('otf/logs/pingVTH.log', mode='a')\r
+ logHandler = FileHandler('ricVTH.log', mode='a')\r
+ logHandler.setLevel(logging.INFO)\r
+ app.logger.setLevel(logging.INFO)\r
+ app.logger.addHandler(logHandler)\r
+ # context = ('opt/cert/otf.pem', 'opt/cert/privateKey.pem')\r
+ # app.run(debug = False, host = '0.0.0.0', port = 5000, ssl_context = context)\r
+ app.run(debug = False, host = '0.0.0.0', port = 5000)\r
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:camunda="http://camunda.org/schema/1.0/bpmn" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" id="Definitions_0x9ttcz" targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Modeler" exporterVersion="3.0.1">
+ <bpmn:process id="Delete_xAPP_Test" isExecutable="true">
+ <bpmn:startEvent id="StartEvent_0cebtfp" camunda:asyncBefore="true">
+ <bpmn:outgoing>SequenceFlow_03vt4gu</bpmn:outgoing>
+ </bpmn:startEvent>
+ <bpmn:scriptTask id="verify" name="Verify Inputs" scriptFormat="JavaScript">
+ <bpmn:incoming>SequenceFlow_03vt4gu</bpmn:incoming>
+ <bpmn:outgoing>SequenceFlow_1gceb7d</bpmn:outgoing>
+ <bpmn:script>var System = java.lang.System
+
+var deleteVthId = 'delete'
+var testData = execution.getVariable("testData")
+var vthInput = execution.getVariable("vthInput")
+var validInput = false;
+var testResultMessage = "";
+
+try{
+
+ var appName = testData['appName'];
+
+ if(typeof appName !== 'string' || appName.trim() === ''){
+ System.out.println("appName is not a string, or empty string")
+ throw Error("appName is not a string, or empty string")
+ }
+
+
+ validInput = true
+
+ vthInput[deleteVthId].name = appName
+}
+catch(err){
+ System.out.println(err)
+ validInput = false
+ testResultMessage = "Invalid input params. error: " + err;
+ execution.setVariable("testResult", "FAILED");
+}
+
+execution.setVariable("validInput", validInput)
+execution.setVariable("testResultMessage", testResultMessage)</bpmn:script>
+ </bpmn:scriptTask>
+ <bpmn:exclusiveGateway id="ExclusiveGateway_04n8k6e" default="SequenceFlow_035k1kv">
+ <bpmn:incoming>SequenceFlow_1gceb7d</bpmn:incoming>
+ <bpmn:outgoing>SequenceFlow_1xykozf</bpmn:outgoing>
+ <bpmn:outgoing>SequenceFlow_035k1kv</bpmn:outgoing>
+ </bpmn:exclusiveGateway>
+ <bpmn:sequenceFlow id="SequenceFlow_03vt4gu" sourceRef="StartEvent_0cebtfp" targetRef="verify" />
+ <bpmn:sequenceFlow id="SequenceFlow_1gceb7d" sourceRef="verify" targetRef="ExclusiveGateway_04n8k6e" />
+ <bpmn:sequenceFlow id="SequenceFlow_1xykozf" name="To Delete" sourceRef="ExclusiveGateway_04n8k6e" targetRef="delete">
+ <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">${validInput}</bpmn:conditionExpression>
+ </bpmn:sequenceFlow>
+ <bpmn:scriptTask id="ScriptTask_1d0llw5" name="Mark Test Failure" scriptFormat="JavaScript">
+ <bpmn:incoming>SequenceFlow_035k1kv</bpmn:incoming>
+ <bpmn:incoming>SequenceFlow_11htm0z</bpmn:incoming>
+ <bpmn:outgoing>SequenceFlow_1ivi698</bpmn:outgoing>
+ <bpmn:script>execution.setVariable("testResult", "FAILED")</bpmn:script>
+ </bpmn:scriptTask>
+ <bpmn:scriptTask id="ScriptTask_0zeodmx" name="Mark Test Success" scriptFormat="JavaScript">
+ <bpmn:incoming>SequenceFlow_1fcorq2</bpmn:incoming>
+ <bpmn:outgoing>SequenceFlow_1s62i1u</bpmn:outgoing>
+ <bpmn:script>execution.setVariable("testResult", "SUCCESS")</bpmn:script>
+ </bpmn:scriptTask>
+ <bpmn:endEvent id="EndEvent_0wf03rq">
+ <bpmn:incoming>SequenceFlow_1czqxne</bpmn:incoming>
+ <bpmn:terminateEventDefinition id="TerminateEventDefinition_1o1stwj" />
+ </bpmn:endEvent>
+ <bpmn:sequenceFlow id="SequenceFlow_1ivi698" sourceRef="ScriptTask_1d0llw5" targetRef="ServiceTask_0yfqtmz" />
+ <bpmn:sequenceFlow id="SequenceFlow_1s62i1u" sourceRef="ScriptTask_0zeodmx" targetRef="ServiceTask_0yfqtmz" />
+ <bpmn:sequenceFlow id="SequenceFlow_1czqxne" sourceRef="ServiceTask_0yfqtmz" targetRef="EndEvent_0wf03rq" />
+ <bpmn:exclusiveGateway id="ExclusiveGateway_0df2lf1" default="SequenceFlow_11htm0z">
+ <bpmn:incoming>SequenceFlow_1hq011g</bpmn:incoming>
+ <bpmn:outgoing>SequenceFlow_1fcorq2</bpmn:outgoing>
+ <bpmn:outgoing>SequenceFlow_11htm0z</bpmn:outgoing>
+ </bpmn:exclusiveGateway>
+ <bpmn:sequenceFlow id="SequenceFlow_1rdc2w4" sourceRef="delete" targetRef="checkDelete" />
+ <bpmn:sequenceFlow id="SequenceFlow_1fcorq2" name="Deleted" sourceRef="ExclusiveGateway_0df2lf1" targetRef="ScriptTask_0zeodmx">
+ <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">${deleted}</bpmn:conditionExpression>
+ </bpmn:sequenceFlow>
+ <bpmn:sequenceFlow id="SequenceFlow_035k1kv" sourceRef="ExclusiveGateway_04n8k6e" targetRef="ScriptTask_1d0llw5" />
+ <bpmn:sequenceFlow id="SequenceFlow_11htm0z" sourceRef="ExclusiveGateway_0df2lf1" targetRef="ScriptTask_1d0llw5" />
+ <bpmn:scriptTask id="checkDelete" name="Verify Delete" scriptFormat="JavaScript">
+ <bpmn:incoming>SequenceFlow_1rdc2w4</bpmn:incoming>
+ <bpmn:outgoing>SequenceFlow_1hq011g</bpmn:outgoing>
+ <bpmn:script>var System = java.lang.System
+
+var deleteVthId = 'delete'
+var testData = execution.getVariable("testData")
+var vthInput = execution.getVariable("vthInput")
+var deleted = false;
+var testResultMessage = "RIC VTH reported that the xapp was not deleted."
+
+
+
+try {
+ //get output from delete call
+ var testExecution = execution.getVariable('otf-execution-testExecution');
+ var data = null;
+ testExecution.testHeadResults.forEach(function(item, index, array) {
+ if(item.bpmnVthTaskId == deleteVthId ){
+ data = item['testHeadResponse']['vthResponse']['resultData']['statusCode'];
+ }
+ })
+
+ if(data === 204){
+ deleted = true
+ testResultMessage = "RIC VTH reported that the xapp was deleted."
+ }
+
+}
+catch(err) {
+ deleted = false
+}
+
+execution.setVariable("deleted", deleted);
+execution.setVariable("testResultMessage", testResultMessage);</bpmn:script>
+ </bpmn:scriptTask>
+ <bpmn:sequenceFlow id="SequenceFlow_1hq011g" sourceRef="checkDelete" targetRef="ExclusiveGateway_0df2lf1" />
+ <bpmn:task id="ServiceTask_0yfqtmz" name="UTIL:LogTestResult">
+ <bpmn:incoming>SequenceFlow_1ivi698</bpmn:incoming>
+ <bpmn:incoming>SequenceFlow_1s62i1u</bpmn:incoming>
+ <bpmn:outgoing>SequenceFlow_1czqxne</bpmn:outgoing>
+ </bpmn:task>
+ <bpmn:task id="delete" name="LVTH:RIC:Delete">
+ <bpmn:incoming>SequenceFlow_1xykozf</bpmn:incoming>
+ <bpmn:outgoing>SequenceFlow_1rdc2w4</bpmn:outgoing>
+ </bpmn:task>
+ </bpmn:process>
+ <bpmndi:BPMNDiagram id="BPMNDiagram_1">
+ <bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="Delete_xAPP_Test">
+ <bpmndi:BPMNShape id="StartEvent_0cebtfp_di" bpmnElement="StartEvent_0cebtfp">
+ <dc:Bounds x="156" y="103" width="36" height="36" />
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="ScriptTask_0rqy7r1_di" bpmnElement="verify">
+ <dc:Bounds x="234" y="81" width="100" height="80" />
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="ExclusiveGateway_04n8k6e_di" bpmnElement="ExclusiveGateway_04n8k6e" isMarkerVisible="true">
+ <dc:Bounds x="385" y="96" width="50" height="50" />
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNEdge id="SequenceFlow_03vt4gu_di" bpmnElement="SequenceFlow_03vt4gu">
+ <di:waypoint x="192" y="121" />
+ <di:waypoint x="234" y="121" />
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="SequenceFlow_1gceb7d_di" bpmnElement="SequenceFlow_1gceb7d">
+ <di:waypoint x="334" y="121" />
+ <di:waypoint x="385" y="121" />
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="SequenceFlow_1xykozf_di" bpmnElement="SequenceFlow_1xykozf">
+ <di:waypoint x="435" y="121" />
+ <di:waypoint x="489" y="121" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="434" y="100" width="46" height="14" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNShape id="ScriptTask_1d0llw5_di" bpmnElement="ScriptTask_1d0llw5">
+ <dc:Bounds x="749" y="336" width="100" height="80" />
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="ScriptTask_0zeodmx_di" bpmnElement="ScriptTask_0zeodmx">
+ <dc:Bounds x="878" y="81" width="100" height="80" />
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="EndEvent_0wf03rq_di" bpmnElement="EndEvent_0wf03rq">
+ <dc:Bounds x="1169" y="103" width="36" height="36" />
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNEdge id="SequenceFlow_1ivi698_di" bpmnElement="SequenceFlow_1ivi698">
+ <di:waypoint x="849" y="376" />
+ <di:waypoint x="1065" y="376" />
+ <di:waypoint x="1065" y="161" />
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="SequenceFlow_1s62i1u_di" bpmnElement="SequenceFlow_1s62i1u">
+ <di:waypoint x="978" y="121" />
+ <di:waypoint x="1015" y="121" />
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="SequenceFlow_1czqxne_di" bpmnElement="SequenceFlow_1czqxne">
+ <di:waypoint x="1115" y="121" />
+ <di:waypoint x="1169" y="121" />
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNShape id="ExclusiveGateway_0df2lf1_di" bpmnElement="ExclusiveGateway_0df2lf1" isMarkerVisible="true">
+ <dc:Bounds x="774" y="96" width="50" height="50" />
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNEdge id="SequenceFlow_1rdc2w4_di" bpmnElement="SequenceFlow_1rdc2w4">
+ <di:waypoint x="589" y="121" />
+ <di:waypoint x="629" y="121" />
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="SequenceFlow_1fcorq2_di" bpmnElement="SequenceFlow_1fcorq2">
+ <di:waypoint x="824" y="121" />
+ <di:waypoint x="878" y="121" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="827" y="99" width="38" height="14" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="SequenceFlow_035k1kv_di" bpmnElement="SequenceFlow_035k1kv">
+ <di:waypoint x="410" y="146" />
+ <di:waypoint x="410" y="376" />
+ <di:waypoint x="749" y="376" />
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="SequenceFlow_11htm0z_di" bpmnElement="SequenceFlow_11htm0z">
+ <di:waypoint x="799" y="146" />
+ <di:waypoint x="799" y="336" />
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNShape id="ScriptTask_0td2q01_di" bpmnElement="checkDelete">
+ <dc:Bounds x="629" y="81" width="100" height="80" />
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNEdge id="SequenceFlow_1hq011g_di" bpmnElement="SequenceFlow_1hq011g">
+ <di:waypoint x="729" y="121" />
+ <di:waypoint x="774" y="121" />
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNShape id="Task_1tklwc0_di" bpmnElement="ServiceTask_0yfqtmz">
+ <dc:Bounds x="1015" y="81" width="100" height="80" />
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="Task_026zsim_di" bpmnElement="delete">
+ <dc:Bounds x="489" y="81" width="100" height="80" />
+ </bpmndi:BPMNShape>
+ </bpmndi:BPMNPlane>
+ </bpmndi:BPMNDiagram>
+</bpmn:definitions>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>\r
+<bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:camunda="http://camunda.org/schema/1.0/bpmn" id="Definitions_0cpfikh" targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Modeler" exporterVersion="3.0.1">\r
+ <bpmn:process id="Deploy_xAPP_Test" name="Deploy xAPP Test" isExecutable="true">\r
+ <bpmn:startEvent id="StartEvent_1" camunda:asyncBefore="true">\r
+ <bpmn:outgoing>SequenceFlow_0st7o3p</bpmn:outgoing>\r
+ </bpmn:startEvent>\r
+ <bpmn:sequenceFlow id="SequenceFlow_0st7o3p" sourceRef="StartEvent_1" targetRef="ScriptTask_08k2jy1" />\r
+ <bpmn:sequenceFlow id="SequenceFlow_0j9397y" sourceRef="ready" targetRef="verify_ready" />\r
+ <bpmn:sequenceFlow id="SequenceFlow_0e1kt1e" sourceRef="verify_ready" targetRef="ExclusiveGateway_1u1b164" />\r
+ <bpmn:sequenceFlow id="SequenceFlow_0zxo4fr" name="Ready" sourceRef="ExclusiveGateway_1u1b164" targetRef="first_list">\r
+ <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">${ready}</bpmn:conditionExpression>\r
+ </bpmn:sequenceFlow>\r
+ <bpmn:sequenceFlow id="SequenceFlow_1chkfad" name="Not Ready" sourceRef="ExclusiveGateway_1u1b164" targetRef="mark_failure" />\r
+ <bpmn:sequenceFlow id="SequenceFlow_0s6ntyv" sourceRef="first_list" targetRef="alreadyDeployed" />\r
+ <bpmn:sequenceFlow id="SequenceFlow_1oze54u" sourceRef="deploy" targetRef="IntermediateThrowEvent_0aoxbne" />\r
+ <bpmn:sequenceFlow id="SequenceFlow_07jnolr" sourceRef="second_list" targetRef="verify_deploy" />\r
+ <bpmn:sequenceFlow id="SequenceFlow_08wazou" sourceRef="verify_deploy" targetRef="ExclusiveGateway_05eh6vk" />\r
+ <bpmn:sequenceFlow id="SequenceFlow_0nfij3v" name="xAPP deploy failed" sourceRef="ExclusiveGateway_05eh6vk" targetRef="mark_failure" />\r
+ <bpmn:sequenceFlow id="SequenceFlow_18bpwal" sourceRef="mark_success" targetRef="log_test_result" />\r
+ <bpmn:sequenceFlow id="SequenceFlow_07rma3l" sourceRef="IntermediateThrowEvent_0aoxbne" targetRef="second_list" />\r
+ <bpmn:sequenceFlow id="SequenceFlow_01cc25d" sourceRef="log_test_result" targetRef="EndEvent_0lg4zm4" />\r
+ <bpmn:sequenceFlow id="SequenceFlow_1u9jrl1" sourceRef="mark_failure" targetRef="log_test_result" />\r
+ <bpmn:sequenceFlow id="SequenceFlow_08hkwrc" name="xAPP deployed" sourceRef="ExclusiveGateway_05eh6vk" targetRef="mark_success">\r
+ <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">${deployed}</bpmn:conditionExpression>\r
+ </bpmn:sequenceFlow>\r
+ <bpmn:sequenceFlow id="SequenceFlow_18luk66" sourceRef="ScriptTask_08k2jy1" targetRef="ExclusiveGateway_10o6bsf" />\r
+ <bpmn:sequenceFlow id="SequenceFlow_1y69zdb" sourceRef="ExclusiveGateway_10o6bsf" targetRef="ready">\r
+ <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">${validInput}</bpmn:conditionExpression>\r
+ </bpmn:sequenceFlow>\r
+ <bpmn:sequenceFlow id="SequenceFlow_0g7zkcv" name="Bad Input" sourceRef="ExclusiveGateway_10o6bsf" targetRef="mark_failure" />\r
+ <bpmn:sequenceFlow id="SequenceFlow_08v4jva" name="Not Deployed" sourceRef="ExclusiveGateway_0ridg34" targetRef="deploy">\r
+ <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">${!alreadyDeployed}</bpmn:conditionExpression>\r
+ </bpmn:sequenceFlow>\r
+ <bpmn:sequenceFlow id="SequenceFlow_0dscvt7" name="Already Deployed" sourceRef="ExclusiveGateway_0ridg34" targetRef="mark_failure" />\r
+ <bpmn:sequenceFlow id="SequenceFlow_0i3et2n" sourceRef="alreadyDeployed" targetRef="ExclusiveGateway_0ridg34" />\r
+ <bpmn:scriptTask id="verify_ready" name="Verify xAPP Manager is Ready" scriptFormat="JavaScript">\r
+ <bpmn:incoming>SequenceFlow_0j9397y</bpmn:incoming>\r
+ <bpmn:outgoing>SequenceFlow_0e1kt1e</bpmn:outgoing>\r
+ <bpmn:script>var System = java.lang.System \r
+\r
+var readyVthId = 'ready'\r
+var testData = execution.getVariable("testData")\r
+var vthInput = execution.getVariable("vthInput")\r
+var ready = false;\r
+var testResultMessage = "RIC VTH reported that xAppManager is not ready."\r
+\r
+\r
+\r
+try {\r
+ //get output from ready call\r
+ var testExecution = execution.getVariable('otf-execution-testExecution');\r
+ var data = null;\r
+ testExecution.testHeadResults.forEach(function(item, index, array) {\r
+ if(item.bpmnVthTaskId == readyVthId ){\r
+ data = item['testHeadResponse']['vthResponse']['resultData']['statusCode'];\r
+ }\r
+ })\r
+ \r
+ if(data === 200){\r
+ ready = true\r
+ testResultMessage = "RIC VTH reported that xAppManager is ready."\r
+ }\r
+ \r
+}\r
+catch(err) {\r
+ ready = false\r
+}\r
+\r
+execution.setVariable("ready", ready);\r
+execution.setVariable("testResultMessage", testResultMessage);</bpmn:script>\r
+ </bpmn:scriptTask>\r
+ <bpmn:scriptTask id="mark_failure" name="Mark Test Failure" scriptFormat="JavaScript">\r
+ <bpmn:incoming>SequenceFlow_1chkfad</bpmn:incoming>\r
+ <bpmn:incoming>SequenceFlow_0nfij3v</bpmn:incoming>\r
+ <bpmn:incoming>SequenceFlow_0g7zkcv</bpmn:incoming>\r
+ <bpmn:incoming>SequenceFlow_0dscvt7</bpmn:incoming>\r
+ <bpmn:outgoing>SequenceFlow_1u9jrl1</bpmn:outgoing>\r
+ <bpmn:script>execution.setVariable("testResult", "FAILED")</bpmn:script>\r
+ </bpmn:scriptTask>\r
+ <bpmn:scriptTask id="mark_success" name="Mark Test Success" scriptFormat="JavaScript">\r
+ <bpmn:incoming>SequenceFlow_08hkwrc</bpmn:incoming>\r
+ <bpmn:outgoing>SequenceFlow_18bpwal</bpmn:outgoing>\r
+ <bpmn:script>execution.setVariable("testResult", "SUCCESS")</bpmn:script>\r
+ </bpmn:scriptTask>\r
+ <bpmn:scriptTask id="verify_deploy" name="Compare xAPP list and validate test" scriptFormat="JavaScript">\r
+ <bpmn:incoming>SequenceFlow_07jnolr</bpmn:incoming>\r
+ <bpmn:outgoing>SequenceFlow_08wazou</bpmn:outgoing>\r
+ <bpmn:script>var System = java.lang.System \r
+\r
+var deploy = 'deploy'\r
+var secondList = 'second_list'\r
+var testData = execution.getVariable("testData")\r
+var vthInput = execution.getVariable("vthInput")\r
+var deployed = false;\r
+var testResultMessage = "RIC VTH reported that xApp is not deployed."\r
+var appName = testData['appName']\r
+\r
+\r
+\r
+try {\r
+ //get output from deploy call\r
+ var testExecution = execution.getVariable('otf-execution-testExecution');\r
+ data = null;\r
+ testExecution.testHeadResults.forEach(function(item, index, array) {\r
+ if(item.bpmnVthTaskId == deploy ){\r
+ data = item['testHeadResponse']['vthResponse']['resultData']['statusCode'];\r
+ }\r
+ })\r
+\r
+ if(data === 201){\r
+ testResultMessage = "RIC VTH reported that xAppManager deployment call succeeded."\r
+\r
+ //get output from secondList call\r
+ var testExecution = execution.getVariable('otf-execution-testExecution');\r
+ data = null;\r
+ testExecution.testHeadResults.forEach(function(item, index, array) {\r
+ if(item.bpmnVthTaskId == secondList ){\r
+ data = item['testHeadResponse']['vthResponse']['resultData']['resultOutput'];\r
+ }\r
+ })\r
+\r
+ instance = null\r
+ data.forEach(function(item, index, array) {\r
+ if(item.name === appName){\r
+ instance = item\r
+ testResultMessage = "RIC VTH reported that xApp is present."\r
+ }\r
+ })\r
+\r
+ if(instance !== null && instance.status === 'deployed'){\r
+ deployed = true\r
+ testResultMessage = "RIC VTH reported that xApp is deployed."\r
+ testDetails = execution.getVariable("testDetails")\r
+ testDetails.put("instance", instance);\r
+ execution.setVariable("testDetails", testDetails)\r
+ } \r
+ else{\r
+ deployed = false\r
+ testResultMessage = "RIC VTH reported that xApp was deployed, but xApp instance was either null or not deployed. See vth results for further information."\r
+ }\r
+\r
+ }\r
+ \r
+}\r
+catch(err) {\r
+ deployed = false\r
+ testResultMessage = "Couldn't verify is xApp was deployed. Check Test Results" + err\r
+}\r
+\r
+execution.setVariable("deployed", deployed);\r
+execution.setVariable("testResultMessage", testResultMessage);</bpmn:script>\r
+ </bpmn:scriptTask>\r
+ <bpmn:scriptTask id="ScriptTask_08k2jy1" name="Verify Inputs" scriptFormat="JavaScript">\r
+ <bpmn:incoming>SequenceFlow_0st7o3p</bpmn:incoming>\r
+ <bpmn:outgoing>SequenceFlow_18luk66</bpmn:outgoing>\r
+ <bpmn:script>var System = java.lang.System \r
+\r
+var deployVthId = 'deploy'\r
+var testData = execution.getVariable("testData")\r
+var vthInput = execution.getVariable("vthInput")\r
+var validInput = false;\r
+var testResultMessage = "";\r
+\r
+try{\r
+\r
+ var appName = testData['appName'];\r
+ var waitDurationSec = testData['waitDurationSec'];\r
+\r
+ if(typeof appName !== 'string' || appName.trim() === ''){\r
+ System.out.println("appName is not a string, or empty string")\r
+ throw Error("appName is not a string, or empty string")\r
+ }\r
+\r
+ if(typeof waitDurationSec !== 'number' || waitDurationSec < 0){\r
+ System.out.println("not a number")\r
+ throw Error("waitDurationSec is not a number greater than 0")\r
+ }\r
+\r
+ validInput = true\r
+\r
+ vthInput[deployVthId].name = appName\r
+ var timer = "PT" + waitDurationSec + "S"\r
+ System.out.println("timer " + timer)\r
+ execution.setVariable("timer", timer)\r
+}\r
+catch(err){\r
+ System.out.println(err)\r
+ validInput = false\r
+ testResultMessage = "Invalid input params. error: " + err;\r
+ execution.setVariable("testResult", "FAILED");\r
+}\r
+\r
+execution.setVariable("validInput", validInput)\r
+execution.setVariable("testResultMessage", testResultMessage)</bpmn:script>\r
+ </bpmn:scriptTask>\r
+ <bpmn:scriptTask id="alreadyDeployed" name="Check if xAPP is already deployed" scriptFormat="JavaScript">\r
+ <bpmn:incoming>SequenceFlow_0s6ntyv</bpmn:incoming>\r
+ <bpmn:outgoing>SequenceFlow_0i3et2n</bpmn:outgoing>\r
+ <bpmn:script>var System = java.lang.System \r
+\r
+var firstList = 'first_list'\r
+var testData = execution.getVariable("testData")\r
+var vthInput = execution.getVariable("vthInput")\r
+var alreadyDeployed = true;\r
+var testResultMessage = "RIC VTH reported that xApp is already deployed."\r
+var appName = testData['appName']\r
+\r
+\r
+\r
+try {\r
+ //get output from firstList call\r
+ var testExecution = execution.getVariable('otf-execution-testExecution');\r
+ var data = null;\r
+ testExecution.testHeadResults.forEach(function(item, index, array) {\r
+ if(item.bpmnVthTaskId == firstList ){\r
+ data = item['testHeadResponse']['vthResponse']['resultData']['resultOutput'];\r
+ }\r
+ })\r
+\r
+ var instance = null\r
+ data.forEach(function(item, index, array) {\r
+ if(item.name === appName){\r
+ instance = item\r
+ testResultMessage = "RIC VTH reported that xApp is already present."\r
+ }\r
+ })\r
+\r
+ if(instance === null){\r
+ alreadyDeployed = false\r
+ testResultMessage = "RIC VTH reported that xApp is not present."\r
+ } \r
+\r
+ \r
+}\r
+catch(err) {\r
+ alreadyDeployed = true\r
+ testResultMessage = "Couldn't verify is xApp was already deployed."\r
+}\r
+\r
+execution.setVariable("alreadyDeployed", alreadyDeployed);\r
+execution.setVariable("testResultMessage", testResultMessage);</bpmn:script>\r
+ </bpmn:scriptTask>\r
+ <bpmn:exclusiveGateway id="ExclusiveGateway_1u1b164" default="SequenceFlow_1chkfad">\r
+ <bpmn:incoming>SequenceFlow_0e1kt1e</bpmn:incoming>\r
+ <bpmn:outgoing>SequenceFlow_0zxo4fr</bpmn:outgoing>\r
+ <bpmn:outgoing>SequenceFlow_1chkfad</bpmn:outgoing>\r
+ </bpmn:exclusiveGateway>\r
+ <bpmn:exclusiveGateway id="ExclusiveGateway_05eh6vk" default="SequenceFlow_0nfij3v">\r
+ <bpmn:incoming>SequenceFlow_08wazou</bpmn:incoming>\r
+ <bpmn:outgoing>SequenceFlow_0nfij3v</bpmn:outgoing>\r
+ <bpmn:outgoing>SequenceFlow_08hkwrc</bpmn:outgoing>\r
+ </bpmn:exclusiveGateway>\r
+ <bpmn:exclusiveGateway id="ExclusiveGateway_10o6bsf" default="SequenceFlow_0g7zkcv">\r
+ <bpmn:incoming>SequenceFlow_18luk66</bpmn:incoming>\r
+ <bpmn:outgoing>SequenceFlow_1y69zdb</bpmn:outgoing>\r
+ <bpmn:outgoing>SequenceFlow_0g7zkcv</bpmn:outgoing>\r
+ </bpmn:exclusiveGateway>\r
+ <bpmn:exclusiveGateway id="ExclusiveGateway_0ridg34" default="SequenceFlow_0dscvt7">\r
+ <bpmn:incoming>SequenceFlow_0i3et2n</bpmn:incoming>\r
+ <bpmn:outgoing>SequenceFlow_08v4jva</bpmn:outgoing>\r
+ <bpmn:outgoing>SequenceFlow_0dscvt7</bpmn:outgoing>\r
+ </bpmn:exclusiveGateway>\r
+ <bpmn:intermediateCatchEvent id="IntermediateThrowEvent_0aoxbne">\r
+ <bpmn:incoming>SequenceFlow_1oze54u</bpmn:incoming>\r
+ <bpmn:outgoing>SequenceFlow_07rma3l</bpmn:outgoing>\r
+ <bpmn:timerEventDefinition>\r
+ <bpmn:timeDuration xsi:type="bpmn:tFormalExpression">${timer}</bpmn:timeDuration>\r
+ </bpmn:timerEventDefinition>\r
+ </bpmn:intermediateCatchEvent>\r
+ <bpmn:endEvent id="EndEvent_0lg4zm4">\r
+ <bpmn:incoming>SequenceFlow_01cc25d</bpmn:incoming>\r
+ <bpmn:terminateEventDefinition />\r
+ </bpmn:endEvent>\r
+ <bpmn:serviceTask id="ready" name="LVTH:RIC:Ready" camunda:delegateExpression="${callTestHeadDelegate}">\r
+ <bpmn:incoming>SequenceFlow_1y69zdb</bpmn:incoming>\r
+ <bpmn:outgoing>SequenceFlow_0j9397y</bpmn:outgoing>\r
+ </bpmn:serviceTask>\r
+ <bpmn:serviceTask id="first_list" name="LVTH:RIC:List" camunda:delegateExpression="${callTestHeadDelegate}">\r
+ <bpmn:incoming>SequenceFlow_0zxo4fr</bpmn:incoming>\r
+ <bpmn:outgoing>SequenceFlow_0s6ntyv</bpmn:outgoing>\r
+ </bpmn:serviceTask>\r
+ <bpmn:serviceTask id="deploy" name="LVTH:RIC:Deploy" camunda:delegateExpression="${callTestHeadDelegate}">\r
+ <bpmn:incoming>SequenceFlow_08v4jva</bpmn:incoming>\r
+ <bpmn:outgoing>SequenceFlow_1oze54u</bpmn:outgoing>\r
+ </bpmn:serviceTask>\r
+ <bpmn:serviceTask id="second_list" name="LVTH:RIC:List" camunda:delegateExpression="${callTestHeadDelegate}">\r
+ <bpmn:incoming>SequenceFlow_07rma3l</bpmn:incoming>\r
+ <bpmn:outgoing>SequenceFlow_07jnolr</bpmn:outgoing>\r
+ </bpmn:serviceTask>\r
+ <bpmn:serviceTask id="log_test_result" name="UTIL:LogTestResult" camunda:delegateExpression="${logTestResultDelegate}">\r
+ <bpmn:incoming>SequenceFlow_18bpwal</bpmn:incoming>\r
+ <bpmn:incoming>SequenceFlow_1u9jrl1</bpmn:incoming>\r
+ <bpmn:outgoing>SequenceFlow_01cc25d</bpmn:outgoing>\r
+ </bpmn:serviceTask>\r
+ </bpmn:process>\r
+ <bpmndi:BPMNDiagram id="BPMNDiagram_1">\r
+ <bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="Deploy_xAPP_Test">\r
+ <bpmndi:BPMNShape id="_BPMNShape_StartEvent_2" bpmnElement="StartEvent_1">\r
+ <dc:Bounds x="156" y="190" width="36" height="36" />\r
+ </bpmndi:BPMNShape>\r
+ <bpmndi:BPMNShape id="ScriptTask_01o5d6n_di" bpmnElement="verify_ready">\r
+ <dc:Bounds x="660" y="168" width="100" height="80" />\r
+ </bpmndi:BPMNShape>\r
+ <bpmndi:BPMNShape id="ExclusiveGateway_1u1b164_di" bpmnElement="ExclusiveGateway_1u1b164" isMarkerVisible="true">\r
+ <dc:Bounds x="804" y="183" width="50" height="50" />\r
+ </bpmndi:BPMNShape>\r
+ <bpmndi:BPMNShape id="IntermediateCatchEvent_0o4pf4x_di" bpmnElement="IntermediateThrowEvent_0aoxbne">\r
+ <dc:Bounds x="1455" y="190" width="36" height="36" />\r
+ </bpmndi:BPMNShape>\r
+ <bpmndi:BPMNShape id="ExclusiveGateway_05eh6vk_di" bpmnElement="ExclusiveGateway_05eh6vk" isMarkerVisible="true">\r
+ <dc:Bounds x="1884" y="183" width="50" height="50" />\r
+ </bpmndi:BPMNShape>\r
+ <bpmndi:BPMNShape id="ScriptTask_0iya1du_di" bpmnElement="mark_failure">\r
+ <dc:Bounds x="1859" y="423" width="100" height="80" />\r
+ </bpmndi:BPMNShape>\r
+ <bpmndi:BPMNShape id="ScriptTask_1dygfw7_di" bpmnElement="mark_success">\r
+ <dc:Bounds x="2069" y="168" width="100" height="80" />\r
+ </bpmndi:BPMNShape>\r
+ <bpmndi:BPMNShape id="EndEvent_15niqin_di" bpmnElement="EndEvent_0lg4zm4">\r
+ <dc:Bounds x="2407" y="190" width="36" height="36" />\r
+ </bpmndi:BPMNShape>\r
+ <bpmndi:BPMNShape id="ScriptTask_0qmq6pn_di" bpmnElement="verify_deploy">\r
+ <dc:Bounds x="1728" y="168" width="100" height="80" />\r
+ </bpmndi:BPMNShape>\r
+ <bpmndi:BPMNShape id="Task_0smfzp7_di" bpmnElement="ready">\r
+ <dc:Bounds x="508" y="168" width="100" height="80" />\r
+ </bpmndi:BPMNShape>\r
+ <bpmndi:BPMNShape id="Task_0p2tcjd_di" bpmnElement="first_list">\r
+ <dc:Bounds x="905" y="168" width="100" height="80" />\r
+ </bpmndi:BPMNShape>\r
+ <bpmndi:BPMNShape id="Task_14wupjq_di" bpmnElement="deploy">\r
+ <dc:Bounds x="1288" y="168" width="100" height="80" />\r
+ </bpmndi:BPMNShape>\r
+ <bpmndi:BPMNShape id="Task_1wygysw_di" bpmnElement="second_list">\r
+ <dc:Bounds x="1563" y="168" width="100" height="80" />\r
+ </bpmndi:BPMNShape>\r
+ <bpmndi:BPMNShape id="Task_0lcfr55_di" bpmnElement="log_test_result">\r
+ <dc:Bounds x="2253" y="168" width="100" height="80" />\r
+ </bpmndi:BPMNShape>\r
+ <bpmndi:BPMNShape id="ScriptTask_08k2jy1_di" bpmnElement="ScriptTask_08k2jy1">\r
+ <dc:Bounds x="240" y="168" width="100" height="80" />\r
+ </bpmndi:BPMNShape>\r
+ <bpmndi:BPMNShape id="ExclusiveGateway_10o6bsf_di" bpmnElement="ExclusiveGateway_10o6bsf" isMarkerVisible="true">\r
+ <dc:Bounds x="381" y="183" width="50" height="50" />\r
+ </bpmndi:BPMNShape>\r
+ <bpmndi:BPMNShape id="ExclusiveGateway_0ridg34_di" bpmnElement="ExclusiveGateway_0ridg34" isMarkerVisible="true">\r
+ <dc:Bounds x="1165" y="183" width="50" height="50" />\r
+ </bpmndi:BPMNShape>\r
+ <bpmndi:BPMNShape id="ScriptTask_0snkxz0_di" bpmnElement="alreadyDeployed">\r
+ <dc:Bounds x="1040" y="168" width="100" height="80" />\r
+ </bpmndi:BPMNShape>\r
+ <bpmndi:BPMNEdge id="SequenceFlow_0st7o3p_di" bpmnElement="SequenceFlow_0st7o3p">\r
+ <di:waypoint x="192" y="208" />\r
+ <di:waypoint x="240" y="208" />\r
+ </bpmndi:BPMNEdge>\r
+ <bpmndi:BPMNEdge id="SequenceFlow_0j9397y_di" bpmnElement="SequenceFlow_0j9397y">\r
+ <di:waypoint x="608" y="208" />\r
+ <di:waypoint x="660" y="208" />\r
+ </bpmndi:BPMNEdge>\r
+ <bpmndi:BPMNEdge id="SequenceFlow_0e1kt1e_di" bpmnElement="SequenceFlow_0e1kt1e">\r
+ <di:waypoint x="760" y="208" />\r
+ <di:waypoint x="804" y="208" />\r
+ </bpmndi:BPMNEdge>\r
+ <bpmndi:BPMNEdge id="SequenceFlow_0zxo4fr_di" bpmnElement="SequenceFlow_0zxo4fr">\r
+ <di:waypoint x="854" y="208" />\r
+ <di:waypoint x="905" y="208" />\r
+ <bpmndi:BPMNLabel>\r
+ <dc:Bounds x="854" y="189" width="33" height="14" />\r
+ </bpmndi:BPMNLabel>\r
+ </bpmndi:BPMNEdge>\r
+ <bpmndi:BPMNEdge id="SequenceFlow_1chkfad_di" bpmnElement="SequenceFlow_1chkfad">\r
+ <di:waypoint x="829" y="233" />\r
+ <di:waypoint x="829" y="463" />\r
+ <di:waypoint x="1859" y="463" />\r
+ <bpmndi:BPMNLabel>\r
+ <dc:Bounds x="839" y="347" width="53" height="14" />\r
+ </bpmndi:BPMNLabel>\r
+ </bpmndi:BPMNEdge>\r
+ <bpmndi:BPMNEdge id="SequenceFlow_0s6ntyv_di" bpmnElement="SequenceFlow_0s6ntyv">\r
+ <di:waypoint x="1005" y="208" />\r
+ <di:waypoint x="1040" y="208" />\r
+ </bpmndi:BPMNEdge>\r
+ <bpmndi:BPMNEdge id="SequenceFlow_1oze54u_di" bpmnElement="SequenceFlow_1oze54u">\r
+ <di:waypoint x="1388" y="208" />\r
+ <di:waypoint x="1455" y="208" />\r
+ </bpmndi:BPMNEdge>\r
+ <bpmndi:BPMNEdge id="SequenceFlow_07jnolr_di" bpmnElement="SequenceFlow_07jnolr">\r
+ <di:waypoint x="1663" y="208" />\r
+ <di:waypoint x="1728" y="208" />\r
+ </bpmndi:BPMNEdge>\r
+ <bpmndi:BPMNEdge id="SequenceFlow_08wazou_di" bpmnElement="SequenceFlow_08wazou">\r
+ <di:waypoint x="1828" y="208" />\r
+ <di:waypoint x="1884" y="208" />\r
+ </bpmndi:BPMNEdge>\r
+ <bpmndi:BPMNEdge id="SequenceFlow_0nfij3v_di" bpmnElement="SequenceFlow_0nfij3v">\r
+ <di:waypoint x="1909" y="233" />\r
+ <di:waypoint x="1909" y="423" />\r
+ <bpmndi:BPMNLabel>\r
+ <dc:Bounds x="1924" y="272" width="63" height="27" />\r
+ </bpmndi:BPMNLabel>\r
+ </bpmndi:BPMNEdge>\r
+ <bpmndi:BPMNEdge id="SequenceFlow_18bpwal_di" bpmnElement="SequenceFlow_18bpwal">\r
+ <di:waypoint x="2169" y="208" />\r
+ <di:waypoint x="2253" y="208" />\r
+ </bpmndi:BPMNEdge>\r
+ <bpmndi:BPMNEdge id="SequenceFlow_07rma3l_di" bpmnElement="SequenceFlow_07rma3l">\r
+ <di:waypoint x="1491" y="208" />\r
+ <di:waypoint x="1563" y="208" />\r
+ </bpmndi:BPMNEdge>\r
+ <bpmndi:BPMNEdge id="SequenceFlow_01cc25d_di" bpmnElement="SequenceFlow_01cc25d">\r
+ <di:waypoint x="2353" y="208" />\r
+ <di:waypoint x="2407" y="208" />\r
+ </bpmndi:BPMNEdge>\r
+ <bpmndi:BPMNEdge id="SequenceFlow_1u9jrl1_di" bpmnElement="SequenceFlow_1u9jrl1">\r
+ <di:waypoint x="1959" y="463" />\r
+ <di:waypoint x="2303" y="463" />\r
+ <di:waypoint x="2303" y="248" />\r
+ </bpmndi:BPMNEdge>\r
+ <bpmndi:BPMNEdge id="SequenceFlow_08hkwrc_di" bpmnElement="SequenceFlow_08hkwrc">\r
+ <di:waypoint x="1934" y="208" />\r
+ <di:waypoint x="2069" y="208" />\r
+ <bpmndi:BPMNLabel>\r
+ <dc:Bounds x="1964" y="190" width="75" height="14" />\r
+ </bpmndi:BPMNLabel>\r
+ </bpmndi:BPMNEdge>\r
+ <bpmndi:BPMNEdge id="SequenceFlow_18luk66_di" bpmnElement="SequenceFlow_18luk66">\r
+ <di:waypoint x="340" y="208" />\r
+ <di:waypoint x="381" y="208" />\r
+ </bpmndi:BPMNEdge>\r
+ <bpmndi:BPMNEdge id="SequenceFlow_1y69zdb_di" bpmnElement="SequenceFlow_1y69zdb">\r
+ <di:waypoint x="431" y="208" />\r
+ <di:waypoint x="508" y="208" />\r
+ </bpmndi:BPMNEdge>\r
+ <bpmndi:BPMNEdge id="SequenceFlow_0g7zkcv_di" bpmnElement="SequenceFlow_0g7zkcv">\r
+ <di:waypoint x="406" y="233" />\r
+ <di:waypoint x="406" y="463" />\r
+ <di:waypoint x="1859" y="463" />\r
+ <bpmndi:BPMNLabel>\r
+ <dc:Bounds x="416" y="360" width="49" height="14" />\r
+ </bpmndi:BPMNLabel>\r
+ </bpmndi:BPMNEdge>\r
+ <bpmndi:BPMNEdge id="SequenceFlow_08v4jva_di" bpmnElement="SequenceFlow_08v4jva">\r
+ <di:waypoint x="1215" y="208" />\r
+ <di:waypoint x="1288" y="208" />\r
+ <bpmndi:BPMNLabel>\r
+ <dc:Bounds x="1218" y="190" width="67" height="14" />\r
+ </bpmndi:BPMNLabel>\r
+ </bpmndi:BPMNEdge>\r
+ <bpmndi:BPMNEdge id="SequenceFlow_0dscvt7_di" bpmnElement="SequenceFlow_0dscvt7">\r
+ <di:waypoint x="1190" y="233" />\r
+ <di:waypoint x="1190" y="463" />\r
+ <di:waypoint x="1859" y="463" />\r
+ <bpmndi:BPMNLabel>\r
+ <dc:Bounds x="1205" y="357" width="86" height="14" />\r
+ </bpmndi:BPMNLabel>\r
+ </bpmndi:BPMNEdge>\r
+ <bpmndi:BPMNEdge id="SequenceFlow_0i3et2n_di" bpmnElement="SequenceFlow_0i3et2n">\r
+ <di:waypoint x="1140" y="208" />\r
+ <di:waypoint x="1165" y="208" />\r
+ </bpmndi:BPMNEdge>\r
+ </bpmndi:BPMNPlane>\r
+ </bpmndi:BPMNDiagram>\r
+</bpmn:definitions>\r
#!/usr/bin/env groovy\r
\r
+/* Copyright (c) 2019 AT&T Intellectual Property. #\r
+# #\r
+# Licensed under the Apache License, Version 2.0 (the "License"); #\r
+# you may not use this file except in compliance with the License. #\r
+# You may obtain a copy of the License at #\r
+# #\r
+# http://www.apache.org/licenses/LICENSE-2.0 #\r
+# #\r
+# Unless required by applicable law or agreed to in writing, software #\r
+# distributed under the License is distributed on an "AS IS" BASIS, #\r
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. #\r
+# See the License for the specific language governing permissions and #\r
+# limitations under the License. #\r
+##############################################################################*/\r
+\r
\r
properties([[$class: 'ParametersDefinitionProperty', parameterDefinitions: [ \r
[$class: 'hudson.model.StringParameterDefinition', name: 'PHASE', defaultValue: "BUILD"],\r
--- /dev/null
+download and place jar file in this folder\r
+\r
+mvn -s settings.xml dependency:get -Dartifact=org.onap.aaf.authz:aaf-cadi-core:jar:2.1.10_SNAPSHOT\r
+# Copyright (c) 2019 AT&T Intellectual Property. #\r
+# #\r
+# Licensed under the Apache License, Version 2.0 (the "License"); #\r
+# you may not use this file except in compliance with the License. #\r
+# You may obtain a copy of the License at #\r
+# #\r
+# http://www.apache.org/licenses/LICENSE-2.0 #\r
+# #\r
+# Unless required by applicable law or agreed to in writing, software #\r
+# distributed under the License is distributed on an "AS IS" BASIS, #\r
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. #\r
+# See the License for the specific language governing permissions and #\r
+# limitations under the License. #\r
+################################################################################\r
+\r
/target/\r
tokens/\r
out/\r
#!/usr/bin/env groovy\r
\r
+/* Copyright (c) 2019 AT&T Intellectual Property. #\r
+# #\r
+# Licensed under the Apache License, Version 2.0 (the "License"); #\r
+# you may not use this file except in compliance with the License. #\r
+# You may obtain a copy of the License at #\r
+# #\r
+# http://www.apache.org/licenses/LICENSE-2.0 #\r
+# #\r
+# Unless required by applicable law or agreed to in writing, software #\r
+# distributed under the License is distributed on an "AS IS" BASIS, #\r
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. #\r
+# See the License for the specific language governing permissions and #\r
+# limitations under the License. #\r
+##############################################################################*/\r
\r
properties([[$class: 'ParametersDefinitionProperty', parameterDefinitions: [\r
[$class: 'hudson.model.StringParameterDefinition', name: 'PHASE', defaultValue: "BUILD"],\r
+# Copyright (c) 2019 AT&T Intellectual Property. #\r
+# #\r
+# Licensed under the Apache License, Version 2.0 (the "License"); #\r
+# you may not use this file except in compliance with the License. #\r
+# You may obtain a copy of the License at #\r
+# #\r
+# http://www.apache.org/licenses/LICENSE-2.0 #\r
+# #\r
+# Unless required by applicable law or agreed to in writing, software #\r
+# distributed under the License is distributed on an "AS IS" BASIS, #\r
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. #\r
+# See the License for the specific language governing permissions and #\r
+# limitations under the License. #\r
+################################################################################\r
+\r
FROM openjdk:8\r
\r
ENV ENV=development\r
ENV PRIVATE_KEY_USERNAME=username\r
ENV PRIVATE_KEY_PASSPHRASE=password\r
\r
-COPY otf-camunda.jar app.jar\r
-\r
+RUN apt update\r
+RUN apt install maven -y\r
+COPY settings.xml settings.xml\r
+COPY src src\r
+COPY pom.xml pom.xml\r
+RUN mvn clean install -s settings.xml -DskipTests\r
+RUN rm /usr/share/maven/lib/*\r
+RUN ls\r
RUN mkdir -p /otf/logs\r
+RUN mv target/otf-camunda.jar app.jar\r
+RUN rm -r target\r
\r
-ADD src src\r
-\r
-ENTRYPOINT ["java", "-jar", "app.jar"]
\ No newline at end of file
+ENTRYPOINT ["java", "-jar", "app.jar"]\r
--- /dev/null
+---
+# Copyright (c) 2019 AT&T Intellectual Property.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+tag: 0.0.1
#/bin/bash\r
+# Copyright (c) 2019 AT&T Intellectual Property. #\r
+# #\r
+# Licensed under the Apache License, Version 2.0 (the "License"); #\r
+# you may not use this file except in compliance with the License. #\r
+# You may obtain a copy of the License at #\r
+# #\r
+# http://www.apache.org/licenses/LICENSE-2.0 #\r
+# #\r
+# Unless required by applicable law or agreed to in writing, software #\r
+# distributed under the License is distributed on an "AS IS" BASIS, #\r
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. #\r
+# See the License for the specific language governing permissions and #\r
+# limitations under the License. #\r
+################################################################################\r
+\r
+\r
podName=$1\r
echo $podName\r
podInfo=$(kubectl get pods -l app=$1 -o custom-columns=:metadata.name)\r
<camunda.bpm.base.version>7.10.0</camunda.bpm.base.version>\r
<camunda.bpm.mail.version>1.1.0</camunda.bpm.mail.version>\r
<camunda.bpm.reactor.version>2.1.2</camunda.bpm.reactor.version>\r
- <camunda.bpm.version>7.10.4</camunda.bpm.version>\r
+ <camunda.bpm.version>7.10.0</camunda.bpm.version>\r
<camunda.bpm.external-task-client.version>1.1.1</camunda.bpm.external-task-client.version>\r
<camunda.mockito.version>3.2.1</camunda.mockito.version>\r
<camunda.spin.version>1.6.6</camunda.spin.version>\r
<description>One of the core components of the Open Test Framework Test Control Unit.\r
</description>\r
\r
-</project>
\ No newline at end of file
+</project>\r
--- /dev/null
+<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"\r
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"\r
+ xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">\r
+\r
+ <localRepository>/home/YOURUSERID/onap/.m2/repository</localRepository>\r
+\r
+ <profiles>\r
+ <profile>\r
+ <id>openecomp-staging</id>\r
+ <repositories>\r
+ <repository>\r
+ <id>openecomp-staging</id>\r
+ <name>openecomp-staging</name>\r
+ <url>https://nexus.onap.org/content/repositories/staging/</url>\r
+ <releases>\r
+ <enabled>true</enabled>\r
+ <updatePolicy>never</updatePolicy>\r
+ </releases>\r
+ <snapshots>\r
+ <enabled>false</enabled>\r
+ </snapshots>\r
+ </repository>\r
+ </repositories>\r
+ <pluginRepositories>\r
+ <pluginRepository>\r
+ <id>openecomp-staging</id>\r
+ <name>openecomp-staging</name>\r
+ <url>https://nexus.onap.org/content/repositories/staging/</url>\r
+ <releases>\r
+ <enabled>true</enabled>\r
+ <updatePolicy>never</updatePolicy>\r
+ </releases>\r
+ <snapshots>\r
+ <enabled>false</enabled>\r
+ </snapshots>\r
+ </pluginRepository>\r
+ </pluginRepositories>\r
+ </profile>\r
+ <profile>\r
+ <id>openecomp-public</id>\r
+ <repositories>\r
+ <repository>\r
+ <id>openecomp-public</id>\r
+ <name>openecomp-public</name>\r
+ <url>https://nexus.onap.org/content/repositories/public/</url>\r
+ <releases>\r
+ <enabled>true</enabled>\r
+ <updatePolicy>never</updatePolicy>\r
+ </releases>\r
+ <snapshots>\r
+ <enabled>false</enabled>\r
+ </snapshots>\r
+ </repository>\r
+ </repositories>\r
+ <pluginRepositories>\r
+ <pluginRepository>\r
+ <id>openecomp-public</id>\r
+ <name>openecomp-public</name>\r
+ <url>https://nexus.onap.org/content/repositories/public/</url>\r
+ <releases>\r
+ <enabled>true</enabled>\r
+ <updatePolicy>never</updatePolicy>\r
+ </releases>\r
+ <snapshots>\r
+ <enabled>false</enabled>\r
+ </snapshots>\r
+ </pluginRepository>\r
+ </pluginRepositories>\r
+ </profile>\r
+ <profile>\r
+ <id>openecomp-release</id>\r
+ <repositories>\r
+ <repository>\r
+ <id>openecomp-release</id>\r
+ <name>openecomp-release</name>\r
+ <url>https://nexus.onap.org/content/repositories/releases/</url>\r
+ <releases>\r
+ <enabled>true</enabled>\r
+ <updatePolicy>never</updatePolicy>\r
+ </releases>\r
+ <snapshots>\r
+ <enabled>false</enabled>\r
+ </snapshots>\r
+ </repository>\r
+ </repositories>\r
+ <pluginRepositories>\r
+ <pluginRepository>\r
+ <id>openecomp-release</id>\r
+ <name>openecomp-release</name>\r
+ <url>https://nexus.onap.org/content/repositories/releases/</url>\r
+ <releases>\r
+ <enabled>true</enabled>\r
+ <updatePolicy>never</updatePolicy>\r
+ </releases>\r
+ <snapshots>\r
+ <enabled>false</enabled>\r
+ </snapshots>\r
+ </pluginRepository>\r
+ </pluginRepositories>\r
+ </profile>\r
+\r
+ <profile>\r
+ <id>openecomp-snapshots</id>\r
+ <repositories>\r
+ <repository>\r
+ <id>openecomp-snapshot</id>\r
+ <name>openecomp-snapshot</name>\r
+ <url>https://nexus.onap.org/content/repositories/snapshots/</url>\r
+ <releases>\r
+ <enabled>false</enabled>\r
+ </releases>\r
+ <snapshots>\r
+ <enabled>true</enabled>\r
+ </snapshots>\r
+ </repository>\r
+ </repositories>\r
+ <pluginRepositories>\r
+ <pluginRepository>\r
+ <id>openecomp-snapshot</id>\r
+ <name>openecomp-snapshot</name>\r
+ <url>https://nexus.onap.org/content/repositories/snapshots/</url>\r
+ <releases>\r
+ <enabled>false</enabled>\r
+ </releases>\r
+ <snapshots>\r
+ <enabled>true</enabled>\r
+ </snapshots>\r
+ </pluginRepository>\r
+ </pluginRepositories>\r
+ </profile>\r
+ <profile>\r
+ <id>opendaylight-release</id>\r
+ <repositories>\r
+ <repository>\r
+ <id>opendaylight-mirror</id>\r
+ <name>opendaylight-mirror</name>\r
+ <url>https://nexus.opendaylight.org/content/repositories/public/</url>\r
+ <releases>\r
+ <enabled>true</enabled>\r
+ <updatePolicy>never</updatePolicy>\r
+ </releases>\r
+ <snapshots>\r
+ <enabled>false</enabled>\r
+ </snapshots>\r
+ </repository>\r
+ </repositories>\r
+ <pluginRepositories>\r
+ <pluginRepository>\r
+ <id>opendaylight-mirror</id>\r
+ <name>opendaylight-mirror</name>\r
+ <url>https://nexus.opendaylight.org/content/repositories/public/</url>\r
+ <releases>\r
+ <enabled>true</enabled>\r
+ <updatePolicy>never</updatePolicy>\r
+ </releases>\r
+ <snapshots>\r
+ <enabled>false</enabled>\r
+ </snapshots>\r
+ </pluginRepository>\r
+ </pluginRepositories>\r
+ </profile>\r
+\r
+ <profile>\r
+ <id>opendaylight-snapshots</id>\r
+ <repositories>\r
+ <repository>\r
+ <id>opendaylight-snapshot</id>\r
+ <name>opendaylight-snapshot</name>\r
+ <url>https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/</url>\r
+ <releases>\r
+ <enabled>false</enabled>\r
+ </releases>\r
+ <snapshots>\r
+ <enabled>true</enabled>\r
+ </snapshots>\r
+ </repository>\r
+ </repositories>\r
+ <pluginRepositories>\r
+ <pluginRepository>\r
+ <id>opendaylight-snapshot</id>\r
+ <name>opendaylight-snapshot</name>\r
+ <url>https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/</url>\r
+ <releases>\r
+ <enabled>false</enabled>\r
+ </releases>\r
+ <snapshots>\r
+ <enabled>true</enabled>\r
+ </snapshots>\r
+ </pluginRepository>\r
+ </pluginRepositories>\r
+ </profile>\r
+\r
+ <profile>\r
+ <id>default</id>\r
+ <repositories>\r
+ <repository>\r
+ <id>default</id>\r
+ <name>default</name>\r
+ <url>https://repo.maven.org/maven2/</url>\r
+ </repository>\r
+ </repositories>\r
+ </profile>\r
+\r
+ </profiles>\r
+\r
+ <activeProfiles>\r
+ <activeProfile>default</activeProfile>\r
+ <activeProfile>openecomp-staging</activeProfile>\r
+ <activeProfile>openecomp-public</activeProfile>\r
+ <activeProfile>openecomp-release</activeProfile>\r
+ <activeProfile>openecomp-snapshots</activeProfile>\r
+ <activeProfile>opendaylight-release</activeProfile>\r
+ <activeProfile>opendaylight-snapshots</activeProfile>\r
+ </activeProfiles>\r
+</settings>\r
#!/usr/bin/env groovy\r
\r
+/* Copyright (c) 2019 AT&T Intellectual Property. #\r
+# #\r
+# Licensed under the Apache License, Version 2.0 (the "License"); #\r
+# you may not use this file except in compliance with the License. #\r
+# You may obtain a copy of the License at #\r
+# #\r
+# http://www.apache.org/licenses/LICENSE-2.0 #\r
+# #\r
+# Unless required by applicable law or agreed to in writing, software #\r
+# distributed under the License is distributed on an "AS IS" BASIS, #\r
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. #\r
+# See the License for the specific language governing permissions and #\r
+# limitations under the License. #\r
+##############################################################################*/\r
\r
properties([[$class: 'ParametersDefinitionProperty', parameterDefinitions: [\r
[$class: 'hudson.model.StringParameterDefinition', name: 'PHASE', defaultValue: "BUILD"],\r
+# Copyright (c) 2019 AT&T Intellectual Property. #\r
+# #\r
+# Licensed under the Apache License, Version 2.0 (the "License"); #\r
+# you may not use this file except in compliance with the License. #\r
+# You may obtain a copy of the License at #\r
+# #\r
+# http://www.apache.org/licenses/LICENSE-2.0 #\r
+# #\r
+# Unless required by applicable law or agreed to in writing, software #\r
+# distributed under the License is distributed on an "AS IS" BASIS, #\r
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. #\r
+# See the License for the specific language governing permissions and #\r
+# limitations under the License. #\r
+################################################################################\r
\r
# Created by https://www.gitignore.io/api/node,angular\r
\r
+# Copyright (c) 2019 AT&T Intellectual Property. #\r
+# #\r
+# Licensed under the Apache License, Version 2.0 (the "License"); #\r
+# you may not use this file except in compliance with the License. #\r
+# You may obtain a copy of the License at #\r
+# #\r
+# http://www.apache.org/licenses/LICENSE-2.0 #\r
+# #\r
+# Unless required by applicable law or agreed to in writing, software #\r
+# distributed under the License is distributed on an "AS IS" BASIS, #\r
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. #\r
+# See the License for the specific language governing permissions and #\r
+# limitations under the License. #\r
+################################################################################\r
FROM node:8.16-alpine\r
\r
ENV ENV=development\r
#!/usr/bin/env groovy\r
\r
+/* Copyright (c) 2019 AT&T Intellectual Property. #\r
+# #\r
+# Licensed under the Apache License, Version 2.0 (the "License"); #\r
+# you may not use this file except in compliance with the License. #\r
+# You may obtain a copy of the License at #\r
+# #\r
+# http://www.apache.org/licenses/LICENSE-2.0 #\r
+# #\r
+# Unless required by applicable law or agreed to in writing, software #\r
+# distributed under the License is distributed on an "AS IS" BASIS, #\r
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. #\r
+# See the License for the specific language governing permissions and #\r
+# limitations under the License. #\r
+##############################################################################*/\r
+\r
properties([[$class: 'ParametersDefinitionProperty', parameterDefinitions: [\r
[$class: 'hudson.model.StringParameterDefinition', name: 'PHASE', defaultValue: "BUILD"],\r
[$class: 'hudson.model.StringParameterDefinition', name: 'ENV', defaultValue: "dev"],\r
+# Copyright (c) 2019 AT&T Intellectual Property. #\r
+# #\r
+# Licensed under the Apache License, Version 2.0 (the "License"); #\r
+# you may not use this file except in compliance with the License. #\r
+# You may obtain a copy of the License at #\r
+# #\r
+# http://www.apache.org/licenses/LICENSE-2.0 #\r
+# #\r
+# Unless required by applicable law or agreed to in writing, software #\r
+# distributed under the License is distributed on an "AS IS" BASIS, #\r
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. #\r
+# See the License for the specific language governing permissions and #\r
+# limitations under the License. #\r
+################################################################################\r
+\r
# See http://help.github.com/ignore-files/ for more about ignoring files.\r
\r
# compiled output\r
+/* Copyright (c) 2019 AT&T Intellectual Property. #\r
+# #\r
+# Licensed under the Apache License, Version 2.0 (the "License"); #\r
+# you may not use this file except in compliance with the License. #\r
+# You may obtain a copy of the License at #\r
+# #\r
+# http://www.apache.org/licenses/LICENSE-2.0 #\r
+# #\r
+# Unless required by applicable law or agreed to in writing, software #\r
+# distributed under the License is distributed on an "AS IS" BASIS, #\r
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. #\r
+# See the License for the specific language governing permissions and #\r
+# limitations under the License. #\r
+##############################################################################*/\r
+\r
+\r
// Karma configuration file, see link for more information\r
// https://karma-runner.github.io/1.0/config/configuration-file.html\r
\r
+/* Copyright (c) 2019 AT&T Intellectual Property. #\r
+# #\r
+# Licensed under the Apache License, Version 2.0 (the "License"); #\r
+# you may not use this file except in compliance with the License. #\r
+# You may obtain a copy of the License at #\r
+# #\r
+# http://www.apache.org/licenses/LICENSE-2.0 #\r
+# #\r
+# Unless required by applicable law or agreed to in writing, software #\r
+# distributed under the License is distributed on an "AS IS" BASIS, #\r
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. #\r
+# See the License for the specific language governing permissions and #\r
+# limitations under the License. #\r
+##############################################################################*/\r
+\r
+\r
// Protractor configuration file, see link for more information\r
// https://github.com/angular/protractor/blob/master/lib/config.ts\r
\r
+/* Copyright (c) 2019 AT&T Intellectual Property. #\r
+# #\r
+# Licensed under the Apache License, Version 2.0 (the "License"); #\r
+# you may not use this file except in compliance with the License. #\r
+# You may obtain a copy of the License at #\r
+# #\r
+# http://www.apache.org/licenses/LICENSE-2.0 #\r
+# #\r
+# Unless required by applicable law or agreed to in writing, software #\r
+# distributed under the License is distributed on an "AS IS" BASIS, #\r
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. #\r
+# See the License for the specific language governing permissions and #\r
+# limitations under the License. #\r
+##############################################################################*/\r
+\r
+\r
import { AppPage } from './app.po';\r
\r
describe('test-ng4 App', () => {\r
+/* Copyright (c) 2019 AT&T Intellectual Property. #\r
+# #\r
+# Licensed under the Apache License, Version 2.0 (the "License"); #\r
+# you may not use this file except in compliance with the License. #\r
+# You may obtain a copy of the License at #\r
+# #\r
+# http://www.apache.org/licenses/LICENSE-2.0 #\r
+# #\r
+# Unless required by applicable law or agreed to in writing, software #\r
+# distributed under the License is distributed on an "AS IS" BASIS, #\r
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. #\r
+# See the License for the specific language governing permissions and #\r
+# limitations under the License. #\r
+##############################################################################*/\r
+\r
+\r
import { browser, by, element } from 'protractor';\r
\r
export class AppPage {\r
--- /dev/null
+---
+# Copyright (c) 2019 AT&T Intellectual Property.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+tag: 0.0.4
+/* Copyright (c) 2019 AT&T Intellectual Property. #\r
+# #\r
+# Licensed under the Apache License, Version 2.0 (the "License"); #\r
+# you may not use this file except in compliance with the License. #\r
+# You may obtain a copy of the License at #\r
+# #\r
+# http://www.apache.org/licenses/LICENSE-2.0 #\r
+# #\r
+# Unless required by applicable law or agreed to in writing, software #\r
+# distributed under the License is distributed on an "AS IS" BASIS, #\r
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. #\r
+# See the License for the specific language governing permissions and #\r
+# limitations under the License. #\r
+##############################################################################*/\r
+\r
+\r
const assert = require('assert');\r
const rp = require('request-promise');\r
const url = require('url');\r
+/* Copyright (c) 2019 AT&T Intellectual Property. #\r
+# #\r
+# Licensed under the Apache License, Version 2.0 (the "License"); #\r
+# you may not use this file except in compliance with the License. #\r
+# You may obtain a copy of the License at #\r
+# #\r
+# http://www.apache.org/licenses/LICENSE-2.0 #\r
+# #\r
+# Unless required by applicable law or agreed to in writing, software #\r
+# distributed under the License is distributed on an "AS IS" BASIS, #\r
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. #\r
+# See the License for the specific language governing permissions and #\r
+# limitations under the License. #\r
+##############################################################################*/\r
+\r
+\r
const assert = require('assert');\r
const feathers = require('@feathersjs/feathers');\r
const groupFilter = require('../../src/hooks/group-filter');\r
+/* Copyright (c) 2019 AT&T Intellectual Property. #\r
+# #\r
+# Licensed under the Apache License, Version 2.0 (the "License"); #\r
+# you may not use this file except in compliance with the License. #\r
+# You may obtain a copy of the License at #\r
+# #\r
+# http://www.apache.org/licenses/LICENSE-2.0 #\r
+# #\r
+# Unless required by applicable law or agreed to in writing, software #\r
+# distributed under the License is distributed on an "AS IS" BASIS, #\r
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. #\r
+# See the License for the specific language governing permissions and #\r
+# limitations under the License. #\r
+##############################################################################*/\r
+\r
+\r
const assert = require('assert');\r
const app = require('../../src/app');\r
\r
+/* Copyright (c) 2019 AT&T Intellectual Property. #\r
+# #\r
+# Licensed under the Apache License, Version 2.0 (the "License"); #\r
+# you may not use this file except in compliance with the License. #\r
+# You may obtain a copy of the License at #\r
+# #\r
+# http://www.apache.org/licenses/LICENSE-2.0 #\r
+# #\r
+# Unless required by applicable law or agreed to in writing, software #\r
+# distributed under the License is distributed on an "AS IS" BASIS, #\r
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. #\r
+# See the License for the specific language governing permissions and #\r
+# limitations under the License. #\r
+##############################################################################*/\r
+\r
+\r
const assert = require('assert');\r
const app = require('../../src/app');\r
\r
+/* Copyright (c) 2019 AT&T Intellectual Property. #\r
+# #\r
+# Licensed under the Apache License, Version 2.0 (the "License"); #\r
+# you may not use this file except in compliance with the License. #\r
+# You may obtain a copy of the License at #\r
+# #\r
+# http://www.apache.org/licenses/LICENSE-2.0 #\r
+# #\r
+# Unless required by applicable law or agreed to in writing, software #\r
+# distributed under the License is distributed on an "AS IS" BASIS, #\r
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. #\r
+# See the License for the specific language governing permissions and #\r
+# limitations under the License. #\r
+##############################################################################*/\r
+\r
+\r
const assert = require('assert');\r
const app = require('../../src/app');\r
\r
+/* Copyright (c) 2019 AT&T Intellectual Property. #\r
+# #\r
+# Licensed under the Apache License, Version 2.0 (the "License"); #\r
+# you may not use this file except in compliance with the License. #\r
+# You may obtain a copy of the License at #\r
+# #\r
+# http://www.apache.org/licenses/LICENSE-2.0 #\r
+# #\r
+# Unless required by applicable law or agreed to in writing, software #\r
+# distributed under the License is distributed on an "AS IS" BASIS, #\r
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. #\r
+# See the License for the specific language governing permissions and #\r
+# limitations under the License. #\r
+##############################################################################*/\r
+\r
+\r
const assert = require('assert');\r
const app = require('../../src/app');\r
\r
+/* Copyright (c) 2019 AT&T Intellectual Property. #\r
+# #\r
+# Licensed under the Apache License, Version 2.0 (the "License"); #\r
+# you may not use this file except in compliance with the License. #\r
+# You may obtain a copy of the License at #\r
+# #\r
+# http://www.apache.org/licenses/LICENSE-2.0 #\r
+# #\r
+# Unless required by applicable law or agreed to in writing, software #\r
+# distributed under the License is distributed on an "AS IS" BASIS, #\r
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. #\r
+# See the License for the specific language governing permissions and #\r
+# limitations under the License. #\r
+##############################################################################*/\r
+\r
+\r
const assert = require('assert');\r
const app = require('../../src/app');\r
\r
+/* Copyright (c) 2019 AT&T Intellectual Property. #\r
+# #\r
+# Licensed under the Apache License, Version 2.0 (the "License"); #\r
+# you may not use this file except in compliance with the License. #\r
+# You may obtain a copy of the License at #\r
+# #\r
+# http://www.apache.org/licenses/LICENSE-2.0 #\r
+# #\r
+# Unless required by applicable law or agreed to in writing, software #\r
+# distributed under the License is distributed on an "AS IS" BASIS, #\r
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. #\r
+# See the License for the specific language governing permissions and #\r
+# limitations under the License. #\r
+##############################################################################*/\r
+\r
+\r
const assert = require('assert');\r
const app = require('../../src/app');\r
\r
+/* Copyright (c) 2019 AT&T Intellectual Property. #\r
+# #\r
+# Licensed under the Apache License, Version 2.0 (the "License"); #\r
+# you may not use this file except in compliance with the License. #\r
+# You may obtain a copy of the License at #\r
+# #\r
+# http://www.apache.org/licenses/LICENSE-2.0 #\r
+# #\r
+# Unless required by applicable law or agreed to in writing, software #\r
+# distributed under the License is distributed on an "AS IS" BASIS, #\r
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. #\r
+# See the License for the specific language governing permissions and #\r
+# limitations under the License. #\r
+##############################################################################*/\r
+\r
+\r
const assert = require('assert');\r
const app = require('../../src/app');\r
\r
+/* Copyright (c) 2019 AT&T Intellectual Property. #\r
+# #\r
+# Licensed under the Apache License, Version 2.0 (the "License"); #\r
+# you may not use this file except in compliance with the License. #\r
+# You may obtain a copy of the License at #\r
+# #\r
+# http://www.apache.org/licenses/LICENSE-2.0 #\r
+# #\r
+# Unless required by applicable law or agreed to in writing, software #\r
+# distributed under the License is distributed on an "AS IS" BASIS, #\r
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. #\r
+# See the License for the specific language governing permissions and #\r
+# limitations under the License. #\r
+##############################################################################*/\r
+\r
+\r
const assert = require('assert');\r
const app = require('../../src/app');\r
\r
+/* Copyright (c) 2019 AT&T Intellectual Property. #\r
+# #\r
+# Licensed under the Apache License, Version 2.0 (the "License"); #\r
+# you may not use this file except in compliance with the License. #\r
+# You may obtain a copy of the License at #\r
+# #\r
+# http://www.apache.org/licenses/LICENSE-2.0 #\r
+# #\r
+# Unless required by applicable law or agreed to in writing, software #\r
+# distributed under the License is distributed on an "AS IS" BASIS, #\r
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. #\r
+# See the License for the specific language governing permissions and #\r
+# limitations under the License. #\r
+##############################################################################*/\r
+\r
+\r
const assert = require('assert');\r
const app = require('../../src/app');\r
\r
+/* Copyright (c) 2019 AT&T Intellectual Property. #\r
+# #\r
+# Licensed under the Apache License, Version 2.0 (the "License"); #\r
+# you may not use this file except in compliance with the License. #\r
+# You may obtain a copy of the License at #\r
+# #\r
+# http://www.apache.org/licenses/LICENSE-2.0 #\r
+# #\r
+# Unless required by applicable law or agreed to in writing, software #\r
+# distributed under the License is distributed on an "AS IS" BASIS, #\r
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. #\r
+# See the License for the specific language governing permissions and #\r
+# limitations under the License. #\r
+##############################################################################*/\r
+\r
+\r
const assert = require('assert');\r
const app = require('../../src/app');\r
\r
+/* Copyright (c) 2019 AT&T Intellectual Property. #\r
+# #\r
+# Licensed under the Apache License, Version 2.0 (the "License"); #\r
+# you may not use this file except in compliance with the License. #\r
+# You may obtain a copy of the License at #\r
+# #\r
+# http://www.apache.org/licenses/LICENSE-2.0 #\r
+# #\r
+# Unless required by applicable law or agreed to in writing, software #\r
+# distributed under the License is distributed on an "AS IS" BASIS, #\r
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. #\r
+# See the License for the specific language governing permissions and #\r
+# limitations under the License. #\r
+##############################################################################*/\r
+\r
+\r
const assert = require('assert');\r
const app = require('../../src/app');\r
\r
+/* Copyright (c) 2019 AT&T Intellectual Property. #\r
+# #\r
+# Licensed under the Apache License, Version 2.0 (the "License"); #\r
+# you may not use this file except in compliance with the License. #\r
+# You may obtain a copy of the License at #\r
+# #\r
+# http://www.apache.org/licenses/LICENSE-2.0 #\r
+# #\r
+# Unless required by applicable law or agreed to in writing, software #\r
+# distributed under the License is distributed on an "AS IS" BASIS, #\r
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. #\r
+# See the License for the specific language governing permissions and #\r
+# limitations under the License. #\r
+##############################################################################*/\r
+\r
+\r
const assert = require('assert');\r
const app = require('../../src/app');\r
\r
+/* Copyright (c) 2019 AT&T Intellectual Property. #\r
+# #\r
+# Licensed under the Apache License, Version 2.0 (the "License"); #\r
+# you may not use this file except in compliance with the License. #\r
+# You may obtain a copy of the License at #\r
+# #\r
+# http://www.apache.org/licenses/LICENSE-2.0 #\r
+# #\r
+# Unless required by applicable law or agreed to in writing, software #\r
+# distributed under the License is distributed on an "AS IS" BASIS, #\r
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. #\r
+# See the License for the specific language governing permissions and #\r
+# limitations under the License. #\r
+##############################################################################*/\r
+\r
+\r
const assert = require('assert');\r
const app = require('../../src/app');\r
\r
\r
\r
otf-frontend\r
- \r
+ docker build -t otf-frontend:0.0.1-SNAPSHOT .\r
+ docker run -d --network="host" otf-frontend:0.0.1-SNAPSHOT\r
\r
otf-service-api\r
Modify src/main/resources/application.properties according to needs (disable aaf/ssl, set ports)\r
- Add settings.xml from onap website and add profile to use maven default repository and add settings.xml to ~/.m2/ if missing\r
- mvn clean install (add flag -DskipTests if it causes the build to fail)\r
- navigate to target folder and run "docker build -t otf-service-api:0.0.1-SNAPSHOT ."\r
+ navigate to otf-service-api folder and run "docker build -t otf-service-api:0.0.1-SNAPSHOT -f docker/Dockerfile ." (maven will run from inside the container, command is inside the Dockerfile) \r
docker run -d --network="host" otf-service-api:0.0.1-SNAPSHOT\r
\r
\r
otf-camunda\r
Modify src/main/resources/application.yaml according to needs, and validate the yaml is correct format (disable aaf/ssl, set ports)\r
- Add settings.xml from onap website and add profile to use maven default repository and add settings.xml to ~/.m2/ if missing\r
- mvn clean install (add flag -DskipTests if it causes the build to fail)\r
- navigate to target folder and run "docker build -t otf-camunda:0.0.1-SNAPSHOT ."\r
+ navigate to otf-camunda folder and run "docker build -t otf-camunda:0.0.1-SNAPSHOT -f docker/Dockerfile ." (maven will run from inside the container, command is inside the Dockerfile)\r
docker run -d --network="host" otf-camunda:0.0.1-SNAPSHOT\r
\r
Database Notes\r
-otf.pem
-privateKey.pem
-*.log
-*.pem
-/otf
+# Copyright (c) 2019 AT&T Intellectual Property. #\r
+# #\r
+# Licensed under the Apache License, Version 2.0 (the "License"); #\r
+# you may not use this file except in compliance with the License. #\r
+# You may obtain a copy of the License at #\r
+# #\r
+# http://www.apache.org/licenses/LICENSE-2.0 #\r
+# #\r
+# Unless required by applicable law or agreed to in writing, software #\r
+# distributed under the License is distributed on an "AS IS" BASIS, #\r
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. #\r
+# See the License for the specific language governing permissions and #\r
+# limitations under the License. #\r
+################################################################################\r
+\r
+otf.pem\r
+privateKey.pem\r
+*.log\r
+*.pem\r
+/otf\r
+# Copyright (c) 2019 AT&T Intellectual Property. #\r
+# #\r
+# Licensed under the Apache License, Version 2.0 (the "License"); #\r
+# you may not use this file except in compliance with the License. #\r
+# You may obtain a copy of the License at #\r
+# #\r
+# http://www.apache.org/licenses/LICENSE-2.0 #\r
+# #\r
+# Unless required by applicable law or agreed to in writing, software #\r
+# distributed under the License is distributed on an "AS IS" BASIS, #\r
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. #\r
+# See the License for the specific language governing permissions and #\r
+# limitations under the License. #\r
+################################################################################\r
+\r
FROM python:2.7\r
\r
# ARG HTTP_PROXY="localhost:8080"\r
#!/usr/bin/env groovy\r
\r
+/* Copyright (c) 2019 AT&T Intellectual Property. #\r
+# #\r
+# Licensed under the Apache License, Version 2.0 (the "License"); #\r
+# you may not use this file except in compliance with the License. #\r
+# You may obtain a copy of the License at #\r
+# #\r
+# http://www.apache.org/licenses/LICENSE-2.0 #\r
+# #\r
+# Unless required by applicable law or agreed to in writing, software #\r
+# distributed under the License is distributed on an "AS IS" BASIS, #\r
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. #\r
+# See the License for the specific language governing permissions and #\r
+# limitations under the License. #\r
+##############################################################################*/\r
\r
properties([[$class: 'ParametersDefinitionProperty', parameterDefinitions: [\r
[$class: 'hudson.model.StringParameterDefinition', name: 'PHASE', defaultValue: "BUILD"],\r
--- /dev/null
+---
+# Copyright (c) 2019 AT&T Intellectual Property.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+tag: 0.0.1
# File-based project format\r
*.iws\r
\r
+# Copyright (c) 2019 AT&T Intellectual Property. #\r
+# #\r
+# Licensed under the Apache License, Version 2.0 (the "License"); #\r
+# you may not use this file except in compliance with the License. #\r
+# You may obtain a copy of the License at #\r
+# #\r
+# http://www.apache.org/licenses/LICENSE-2.0 #\r
+# #\r
+# Unless required by applicable law or agreed to in writing, software #\r
+# distributed under the License is distributed on an "AS IS" BASIS, #\r
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. #\r
+# See the License for the specific language governing permissions and #\r
+# limitations under the License. #\r
+################################################################################\r
+\r
# IntelliJ\r
out/\r
\r
+# Copyright (c) 2019 AT&T Intellectual Property. #\r
+# #\r
+# Licensed under the Apache License, Version 2.0 (the "License"); #\r
+# you may not use this file except in compliance with the License. #\r
+# You may obtain a copy of the License at #\r
+# #\r
+# http://www.apache.org/licenses/LICENSE-2.0 #\r
+# #\r
+# Unless required by applicable law or agreed to in writing, software #\r
+# distributed under the License is distributed on an "AS IS" BASIS, #\r
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. #\r
+# See the License for the specific language governing permissions and #\r
+# limitations under the License. #\r
+################################################################################\r
+\r
FROM python:2.7\r
\r
# ARG HTTP_PROXY="http://localhost:8080" \r
#!/usr/bin/env groovy\r
\r
+/* Copyright (c) 2019 AT&T Intellectual Property. #\r
+# #\r
+# Licensed under the Apache License, Version 2.0 (the "License"); #\r
+# you may not use this file except in compliance with the License. #\r
+# You may obtain a copy of the License at #\r
+# #\r
+# http://www.apache.org/licenses/LICENSE-2.0 #\r
+# #\r
+# Unless required by applicable law or agreed to in writing, software #\r
+# distributed under the License is distributed on an "AS IS" BASIS, #\r
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. #\r
+# See the License for the specific language governing permissions and #\r
+# limitations under the License. #\r
+##############################################################################*/\r
\r
properties([[$class: 'ParametersDefinitionProperty', parameterDefinitions: [\r
[$class: 'hudson.model.StringParameterDefinition', name: 'PHASE', defaultValue: "BUILD"],\r
--- /dev/null
+---
+# Copyright (c) 2019 AT&T Intellectual Property.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+tag: 0.0.1
+# Copyright (c) 2019 AT&T Intellectual Property. #\r
+# #\r
+# Licensed under the Apache License, Version 2.0 (the "License"); #\r
+# you may not use this file except in compliance with the License. #\r
+# You may obtain a copy of the License at #\r
+# #\r
+# http://www.apache.org/licenses/LICENSE-2.0 #\r
+# #\r
+# Unless required by applicable law or agreed to in writing, software #\r
+# distributed under the License is distributed on an "AS IS" BASIS, #\r
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. #\r
+# See the License for the specific language governing permissions and #\r
+# limitations under the License. #\r
+################################################################################\r
+\r
+\r
from app import create_app\r
\r
if __name__ == '__main__':\r
+# Copyright (c) 2019 AT&T Intellectual Property. #\r
+# #\r
+# Licensed under the Apache License, Version 2.0 (the "License"); #\r
+# you may not use this file except in compliance with the License. #\r
+# You may obtain a copy of the License at #\r
+# #\r
+# http://www.apache.org/licenses/LICENSE-2.0 #\r
+# #\r
+# Unless required by applicable law or agreed to in writing, software #\r
+# distributed under the License is distributed on an "AS IS" BASIS, #\r
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. #\r
+# See the License for the specific language governing permissions and #\r
+# limitations under the License. #\r
+################################################################################\r
+\r
/target/\r
tokens/\r
out/\r
#!/usr/bin/env groovy\r
\r
+/* Copyright (c) 2019 AT&T Intellectual Property. #\r
+# #\r
+# Licensed under the Apache License, Version 2.0 (the "License"); #\r
+# you may not use this file except in compliance with the License. #\r
+# You may obtain a copy of the License at #\r
+# #\r
+# http://www.apache.org/licenses/LICENSE-2.0 #\r
+# #\r
+# Unless required by applicable law or agreed to in writing, software #\r
+# distributed under the License is distributed on an "AS IS" BASIS, #\r
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. #\r
+# See the License for the specific language governing permissions and #\r
+# limitations under the License. #\r
+##############################################################################*/\r
+\r
properties([[$class: 'ParametersDefinitionProperty', parameterDefinitions: [\r
[$class: 'hudson.model.StringParameterDefinition', name: 'PHASE', defaultValue: "BUILD"],\r
[$class: 'hudson.model.StringParameterDefinition', name: 'ENV', defaultValue: "dev"],\r
+# Copyright (c) 2019 AT&T Intellectual Property. #\r
+# #\r
+# Licensed under the Apache License, Version 2.0 (the "License"); #\r
+# you may not use this file except in compliance with the License. #\r
+# You may obtain a copy of the License at #\r
+# #\r
+# http://www.apache.org/licenses/LICENSE-2.0 #\r
+# #\r
+# Unless required by applicable law or agreed to in writing, software #\r
+# distributed under the License is distributed on an "AS IS" BASIS, #\r
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. #\r
+# See the License for the specific language governing permissions and #\r
+# limitations under the License. #\r
+################################################################################\r
+\r
FROM openjdk:8\r
\r
ENV NAMESPACE=namespace\r
ENV OTF_MONGO_PASSWORD=password\r
ENV OTF_MONGO_REPLICASET=rs0\r
ENV OTF_MONGO_DATABASE=otf\r
-ENV otf.camunda.host=https://localhost\r
-ENV otf.camunda.port=31313\r
+ENV otf.camunda.host=http://localhost\r
+ENV otf.camunda.port=8080\r
ENV otf.camunda.executionUri=otf/tcu/execute-test/v1\r
ENV otf.camunda.pollingUri=otf/tcu/process-instance-completion-check/v1\r
ENV otf.camunda.deploymentUri=otf/tcu/deploy-test-strategy-zip/v1\r
ENV OTF_CERT_PATH=opt/cert/cert.p12\r
ENV OTF_CERT_PASS=password\r
\r
-COPY otf-service-api.jar app.jar\r
-\r
+RUN apt update\r
+RUN apt install maven -y\r
+COPY settings.xml settings.xml\r
+COPY src src\r
+COPY pom.xml pom.xml\r
+RUN mvn clean install -s settings.xml -DskipTests\r
+RUN rm /usr/share/maven/lib/*\r
+RUN ls\r
RUN mkdir -p /otf/logs\r
-\r
-ADD src src\r
+RUN mv target/otf-service-api.jar app.jar\r
+RUN rm -r target\r
\r
ENTRYPOINT ["java", "-jar", "app.jar"]\r
--- /dev/null
+---
+# Copyright (c) 2019 AT&T Intellectual Property.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+tag: 0.0.1
--- /dev/null
+<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"\r
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"\r
+ xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">\r
+\r
+ <localRepository>/home/YOURUSERID/onap/.m2/repository</localRepository>\r
+\r
+ <profiles>\r
+ <profile>\r
+ <id>openecomp-staging</id>\r
+ <repositories>\r
+ <repository>\r
+ <id>openecomp-staging</id>\r
+ <name>openecomp-staging</name>\r
+ <url>https://nexus.onap.org/content/repositories/staging/</url>\r
+ <releases>\r
+ <enabled>true</enabled>\r
+ <updatePolicy>never</updatePolicy>\r
+ </releases>\r
+ <snapshots>\r
+ <enabled>false</enabled>\r
+ </snapshots>\r
+ </repository>\r
+ </repositories>\r
+ <pluginRepositories>\r
+ <pluginRepository>\r
+ <id>openecomp-staging</id>\r
+ <name>openecomp-staging</name>\r
+ <url>https://nexus.onap.org/content/repositories/staging/</url>\r
+ <releases>\r
+ <enabled>true</enabled>\r
+ <updatePolicy>never</updatePolicy>\r
+ </releases>\r
+ <snapshots>\r
+ <enabled>false</enabled>\r
+ </snapshots>\r
+ </pluginRepository>\r
+ </pluginRepositories>\r
+ </profile>\r
+ <profile>\r
+ <id>openecomp-public</id>\r
+ <repositories>\r
+ <repository>\r
+ <id>openecomp-public</id>\r
+ <name>openecomp-public</name>\r
+ <url>https://nexus.onap.org/content/repositories/public/</url>\r
+ <releases>\r
+ <enabled>true</enabled>\r
+ <updatePolicy>never</updatePolicy>\r
+ </releases>\r
+ <snapshots>\r
+ <enabled>false</enabled>\r
+ </snapshots>\r
+ </repository>\r
+ </repositories>\r
+ <pluginRepositories>\r
+ <pluginRepository>\r
+ <id>openecomp-public</id>\r
+ <name>openecomp-public</name>\r
+ <url>https://nexus.onap.org/content/repositories/public/</url>\r
+ <releases>\r
+ <enabled>true</enabled>\r
+ <updatePolicy>never</updatePolicy>\r
+ </releases>\r
+ <snapshots>\r
+ <enabled>false</enabled>\r
+ </snapshots>\r
+ </pluginRepository>\r
+ </pluginRepositories>\r
+ </profile>\r
+ <profile>\r
+ <id>openecomp-release</id>\r
+ <repositories>\r
+ <repository>\r
+ <id>openecomp-release</id>\r
+ <name>openecomp-release</name>\r
+ <url>https://nexus.onap.org/content/repositories/releases/</url>\r
+ <releases>\r
+ <enabled>true</enabled>\r
+ <updatePolicy>never</updatePolicy>\r
+ </releases>\r
+ <snapshots>\r
+ <enabled>false</enabled>\r
+ </snapshots>\r
+ </repository>\r
+ </repositories>\r
+ <pluginRepositories>\r
+ <pluginRepository>\r
+ <id>openecomp-release</id>\r
+ <name>openecomp-release</name>\r
+ <url>https://nexus.onap.org/content/repositories/releases/</url>\r
+ <releases>\r
+ <enabled>true</enabled>\r
+ <updatePolicy>never</updatePolicy>\r
+ </releases>\r
+ <snapshots>\r
+ <enabled>false</enabled>\r
+ </snapshots>\r
+ </pluginRepository>\r
+ </pluginRepositories>\r
+ </profile>\r
+\r
+ <profile>\r
+ <id>openecomp-snapshots</id>\r
+ <repositories>\r
+ <repository>\r
+ <id>openecomp-snapshot</id>\r
+ <name>openecomp-snapshot</name>\r
+ <url>https://nexus.onap.org/content/repositories/snapshots/</url>\r
+ <releases>\r
+ <enabled>false</enabled>\r
+ </releases>\r
+ <snapshots>\r
+ <enabled>true</enabled>\r
+ </snapshots>\r
+ </repository>\r
+ </repositories>\r
+ <pluginRepositories>\r
+ <pluginRepository>\r
+ <id>openecomp-snapshot</id>\r
+ <name>openecomp-snapshot</name>\r
+ <url>https://nexus.onap.org/content/repositories/snapshots/</url>\r
+ <releases>\r
+ <enabled>false</enabled>\r
+ </releases>\r
+ <snapshots>\r
+ <enabled>true</enabled>\r
+ </snapshots>\r
+ </pluginRepository>\r
+ </pluginRepositories>\r
+ </profile>\r
+ <profile>\r
+ <id>opendaylight-release</id>\r
+ <repositories>\r
+ <repository>\r
+ <id>opendaylight-mirror</id>\r
+ <name>opendaylight-mirror</name>\r
+ <url>https://nexus.opendaylight.org/content/repositories/public/</url>\r
+ <releases>\r
+ <enabled>true</enabled>\r
+ <updatePolicy>never</updatePolicy>\r
+ </releases>\r
+ <snapshots>\r
+ <enabled>false</enabled>\r
+ </snapshots>\r
+ </repository>\r
+ </repositories>\r
+ <pluginRepositories>\r
+ <pluginRepository>\r
+ <id>opendaylight-mirror</id>\r
+ <name>opendaylight-mirror</name>\r
+ <url>https://nexus.opendaylight.org/content/repositories/public/</url>\r
+ <releases>\r
+ <enabled>true</enabled>\r
+ <updatePolicy>never</updatePolicy>\r
+ </releases>\r
+ <snapshots>\r
+ <enabled>false</enabled>\r
+ </snapshots>\r
+ </pluginRepository>\r
+ </pluginRepositories>\r
+ </profile>\r
+\r
+ <profile>\r
+ <id>opendaylight-snapshots</id>\r
+ <repositories>\r
+ <repository>\r
+ <id>opendaylight-snapshot</id>\r
+ <name>opendaylight-snapshot</name>\r
+ <url>https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/</url>\r
+ <releases>\r
+ <enabled>false</enabled>\r
+ </releases>\r
+ <snapshots>\r
+ <enabled>true</enabled>\r
+ </snapshots>\r
+ </repository>\r
+ </repositories>\r
+ <pluginRepositories>\r
+ <pluginRepository>\r
+ <id>opendaylight-snapshot</id>\r
+ <name>opendaylight-snapshot</name>\r
+ <url>https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/</url>\r
+ <releases>\r
+ <enabled>false</enabled>\r
+ </releases>\r
+ <snapshots>\r
+ <enabled>true</enabled>\r
+ </snapshots>\r
+ </pluginRepository>\r
+ </pluginRepositories>\r
+ </profile>\r
+\r
+ <profile>\r
+ <id>default</id>\r
+ <repositories>\r
+ <repository>\r
+ <id>default</id>\r
+ <name>default</name>\r
+ <url>https://repo.maven.org/maven2/</url>\r
+ </repository>\r
+ </repositories>\r
+ </profile>\r
+\r
+ </profiles>\r
+\r
+ <activeProfiles>\r
+ <activeProfile>default</activeProfile>\r
+ <activeProfile>openecomp-staging</activeProfile>\r
+ <activeProfile>openecomp-public</activeProfile>\r
+ <activeProfile>openecomp-release</activeProfile>\r
+ <activeProfile>openecomp-snapshots</activeProfile>\r
+ <activeProfile>opendaylight-release</activeProfile>\r
+ <activeProfile>opendaylight-snapshots</activeProfile>\r
+ </activeProfiles>\r
+</settings>\r
+# Copyright (c) 2019 AT&T Intellectual Property. #\r
+# #\r
+# Licensed under the Apache License, Version 2.0 (the "License"); #\r
+# you may not use this file except in compliance with the License. #\r
+# You may obtain a copy of the License at #\r
+# #\r
+# http://www.apache.org/licenses/LICENSE-2.0 #\r
+# #\r
+# Unless required by applicable law or agreed to in writing, software #\r
+# distributed under the License is distributed on an "AS IS" BASIS, #\r
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. #\r
+# See the License for the specific language governing permissions and #\r
+# limitations under the License. #\r
+################################################################################\r
+\r
otf.pem\r
privateKey.pem\r
*.log\r
+# Copyright (c) 2019 AT&T Intellectual Property. #\r
+# #\r
+# Licensed under the Apache License, Version 2.0 (the "License"); #\r
+# you may not use this file except in compliance with the License. #\r
+# You may obtain a copy of the License at #\r
+# #\r
+# http://www.apache.org/licenses/LICENSE-2.0 #\r
+# #\r
+# Unless required by applicable law or agreed to in writing, software #\r
+# distributed under the License is distributed on an "AS IS" BASIS, #\r
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. #\r
+# See the License for the specific language governing permissions and #\r
+# limitations under the License. #\r
+################################################################################\r
+\r
FROM python:2.7\r
\r
# ARG HTTP_PROXY="localhost:8080"\r
#!/usr/bin/env groovy\r
\r
+/* Copyright (c) 2019 AT&T Intellectual Property. #\r
+# #\r
+# Licensed under the Apache License, Version 2.0 (the "License"); #\r
+# you may not use this file except in compliance with the License. #\r
+# You may obtain a copy of the License at #\r
+# #\r
+# http://www.apache.org/licenses/LICENSE-2.0 #\r
+# #\r
+# Unless required by applicable law or agreed to in writing, software #\r
+# distributed under the License is distributed on an "AS IS" BASIS, #\r
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. #\r
+# See the License for the specific language governing permissions and #\r
+# limitations under the License. #\r
+##############################################################################*/\r
\r
properties([[$class: 'ParametersDefinitionProperty', parameterDefinitions: [\r
[$class: 'hudson.model.StringParameterDefinition', name: 'PHASE', defaultValue: "BUILD"],\r
--- /dev/null
+---
+# Copyright (c) 2019 AT&T Intellectual Property.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+tag: 0.0.1
--- /dev/null
+[tox]
+minversion = 2.0
+envlist =
+ docs,
+ docs-linkcheck,
+
+skipsdist = true
+
+[testenv:docs]
+basepython = python3
+deps =
+ sphinx
+ sphinx-rtd-theme
+ sphinxcontrib-httpdomain
+ recommonmark
+ lfdocs-conf
+
+commands =
+ sphinx-build -W -b html -n -d {envtmpdir}/doctrees ./docs/ {toxinidir}/docs/_build/html
+
+ echo "Generated docs available in {toxinidir}/docs/_build/html"
+
+whitelist_externals = echo
+
+[testenv:docs-linkcheck]
+basepython = python3
+deps = sphinx
+ sphinx-rtd-theme
+ sphinxcontrib-httpdomain
+ recommonmark
+ lfdocs-conf
+commands = sphinx-build -W -b linkcheck -d {envtmpdir}/doctrees ./docs/ {toxinidir}/docs/_build/linkcheck