Skip to content
Snippets Groups Projects
Commit 6ea29d2a authored by Ling Zhu's avatar Ling Zhu
Browse files

Add 5Genesis usecase

parent 35e7ddc2
No related branches found
No related tags found
No related merge requests found
Showing
with 541 additions and 167 deletions
apiVersion: apps/v1
kind: Deployment
metadata:
name: apex-220
labels:
app: apex-220
spec:
selector:
matchLabels:
app: apex-220
replicas: 1
template:
metadata:
labels:
app: apex-220
spec:
hostNetwork: true
containers:
- name: apex-220
#image: onap/policy-apex-pdp:2.2.0
image: gitlab-registry.eps.surrey.ac.uk/noc/apex:2.2.0a
command: ["sh", "-c", "while true; do sleep 3600; done"]
#command: ["sh", "-c", "apexApps.sh engine -c examples/config/SampleDomain/Stdin2StdoutJsonEventJavascript.json"]
#command: ["sh", "-c", "apexApps.sh engine -c examples/config/MyFirstPolicy/1/MyFirstPolicyConfig"]
ports:
- name: http
containerPort: 8080
- name: ui-deploy
containerPort: 12345
- name: ui-web
containerPort: 18989
- name: event-in
containerPort: 23324
imagePullPolicy: IfNotPresent
restartPolicy: Always
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
kind: Service kind: Service
apiVersion: v1 apiVersion: v1
metadata: metadata:
name: apex-svc name: apex-253-svc
spec: spec:
selector: selector:
app: apex app: apex
...@@ -45,7 +45,7 @@ spec: ...@@ -45,7 +45,7 @@ spec:
apiVersion: apps/v1 apiVersion: apps/v1
kind: Deployment kind: Deployment
metadata: metadata:
name: apex name: apex-253
labels: labels:
app: apex app: apex
spec: spec:
...@@ -60,7 +60,7 @@ spec: ...@@ -60,7 +60,7 @@ spec:
spec: spec:
containers: containers:
- name: apex - name: apex
image: gitlab-registry.eps.surrey.ac.uk/noc/apex:example image: gitlab-registry.eps.surrey.ac.uk/noc/apex:2.5.3b-noc
#command: ["sh", "-c", "while true; do sleep 3600; done"] #command: ["sh", "-c", "while true; do sleep 3600; done"]
command: ["sh", "-c", "/apex/start.sh"] command: ["sh", "-c", "/apex/start.sh"]
ports: ports:
......
apiVersion: apps/v1
kind: Deployment
metadata:
name: apex-220
labels:
app: apex-220
spec:
selector:
matchLabels:
app: apex-220
replicas: 1
template:
metadata:
labels:
app: apex-220
spec:
hostNetwork: true
containers:
- name: apex-220
#image: onap/policy-apex-pdp:2.2.0
image: gitlab-registry.eps.surrey.ac.uk/noc/apex:5genesis
command: ["sh", "-c", "while true; do sleep 3600; done"]
#command: ["sh", "-c", "apexApps.sh engine -c examples/config/SampleDomain/Stdin2StdoutJsonEventJavascript.json"]
#command: ["sh", "-c", "apexApps.sh engine -c examples/config/MyFirstPolicy/1/MyFirstPolicyConfig"]
ports:
- name: http
containerPort: 8080
- name: ui-deploy
containerPort: 12345
- name: ui-web
containerPort: 18989
- name: event-in
containerPort: 23324
imagePullPolicy: Always
restartPolicy: Always
FROM gitlab-registry.eps.surrey.ac.uk/noc/apex:2.5.3 FROM onap/policy-apex-pdp:2.2.0
WORKDIR /apex WORKDIR /home/apexuser
USER root USER apexuser
COPY ./policy-apex/* ./policy-apex/ COPY ./policy-apex/* ./policy-apex/
RUN mkdir -p policy-json RUN mkdir -p policy-json
#COPY ./policy-json/* ./policy-json/ #COPY ./policy-json/* ./policy-json/
...@@ -10,9 +10,14 @@ COPY ./config/* ./config/ ...@@ -10,9 +10,14 @@ COPY ./config/* ./config/
COPY ./logs/logback.xml /opt/app/policy/apex-pdp/etc/ COPY ./logs/logback.xml /opt/app/policy/apex-pdp/etc/
COPY ./tosca-template/* ./tosca-template/ COPY ./tosca-template/* ./tosca-template/
COPY ./scripts/* ./ # Customise PS1
RUN chmod +x ./start.sh RUN touch /home/apexuser/.bashrc
RUN echo "[ -z \"\$PS1\" ] && return">> /home/apexuser/.bashrc
RUN echo "PS1=\"\\[\\033[35m\\][\\u@\\h \\w]:\\[\\033[37m\\]\"">>/home/apexuser/.bashrc
#COPY ./scripts/* ./
#RUN chmod +x ./start.sh
# Add bash shell # Add bash shell
USER root
RUN apk update RUN apk update
RUN apk upgrade RUN apk upgrade
RUN apk add bash RUN apk add bash
...@@ -20,14 +25,10 @@ RUN apk add bash-completion ...@@ -20,14 +25,10 @@ RUN apk add bash-completion
RUN apk add nano RUN apk add nano
RUN apk add yajl-tools RUN apk add yajl-tools
# Customise PS1
RUN touch /root/.bashrc
RUN echo "[ -z \"\$PS1\" ] && return">> /root/.bashrc
RUN echo "PS1=\"\\[\\033[35m\\][\\u@\\h \\w]:\\[\\033[37m\\]\"">>/root/.bashrc
EXPOSE 12345 18989 23324 8080 EXPOSE 12345 18989 23324 8080
RUN apexCLIToscaEditor.sh -c policy-apex/Policy.apex -ot policy-json/Policy.json -l ./test.log -ac config/config.json -t ./tosca-template/ToscaTemplate.json #RUN apexCLIToscaEditor.sh -c policy-apex/Policy.apex -ot policy-json/Policy.json -l ./test.log -ac config/config.json -t ./tosca-template/ToscaTemplate.json
CMD ["./start.sh"] CMD ["./start.sh"]
#CMD ["./startTest.sh"] #CMD ["./startTest.sh"]
FROM gitlab-registry.eps.surrey.ac.uk/noc/apex:2.5.3
WORKDIR /apex
USER root
COPY ./policy-apex/* ./policy-apex/
RUN mkdir -p policy-json
#COPY ./policy-json/* ./policy-json/
COPY ./logic/* ./logic/
COPY ./config/* ./config/
COPY ./logs/logback.xml /opt/app/policy/apex-pdp/etc/
COPY ./tosca-template/* ./tosca-template/
COPY ./scripts/* ./
RUN chmod +x ./start.sh
# Add bash shell
RUN apk update
RUN apk upgrade
RUN apk add bash
RUN apk add bash-completion
RUN apk add nano
RUN apk add yajl-tools
# Customise PS1
RUN touch /root/.bashrc
RUN echo "[ -z \"\$PS1\" ] && return">> /root/.bashrc
RUN echo "PS1=\"\\[\\033[35m\\][\\u@\\h \\w]:\\[\\033[37m\\]\"">>/root/.bashrc
EXPOSE 12345 18989 23324 8080
RUN apexCLIToscaEditor.sh -c policy-apex/Policy.apex -ot policy-json/Policy.json -l ./test.log -ac config/config.json -t ./tosca-template/ToscaTemplate.json
CMD ["./start.sh"]
#CMD ["./startTest.sh"]
---
kind: Service
apiVersion: v1
metadata:
name: noc-apex-svc
spec:
selector:
app: noc-apex
ports:
- name: ui
protocol: "TCP"
# Port accessible inside cluster
port: 8080
# Port to forward to inside the pod
targetPort: http
# Port accessible outside cluster
nodePort: 30080
- name: tcp-1
protocol: "TCP"
# Port accessible inside cluster
port: 12345
# Port to forward to inside the pod
targetPort: tcp1
# Port accessible outside cluster
nodePort: 32345
- name: tcp-2
protocol: "TCP"
# Port accessible inside cluster
port: 18989
# Port to forward to inside the pod
targetPort: tcp2
# Port accessible outside cluster
nodePort: 28989
- name: tcp-3
protocol: "TCP"
# Port accessible inside cluster
port: 23324
# Port to forward to inside the pod
targetPort: tcp3
# Port accessible outside cluster
nodePort: 23324
type: NodePort #LoadBalancer
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: noc-apex
labels:
app: noc-apex
spec:
selector:
matchLabels:
app: noc-apex
replicas: 1
template:
metadata:
labels:
app: noc-apex
spec:
containers:
- name: noc-apex
image: gitlab-registry.eps.surrey.ac.uk/noc/apex:2.5.3b-noc
#command: ["sh", "-c", "while true; do sleep 3600; done"]
command: ["sh", "-c", "/apex/start.sh"]
ports:
- name: http
containerPort: 8080
- name: tcp1
containerPort: 12345
- name: tcp2
containerPort: 18989
- name: tcp3
containerPort: 23324
imagePullPolicy: IfNotPresent
restartPolicy: Always
---
kind: Service
apiVersion: v1
metadata:
name: onap-apex-svc
spec:
selector:
app: onap-apex
ports:
- name: ui
protocol: "TCP"
# Port accessible inside cluster
port: 8080
# Port to forward to inside the pod
targetPort: http
# Port accessible outside cluster
nodePort: 30080
- name: tcp-1
protocol: "TCP"
# Port accessible inside cluster
port: 12345
# Port to forward to inside the pod
targetPort: tcp1
# Port accessible outside cluster
nodePort: 32345
- name: tcp-2
protocol: "TCP"
# Port accessible inside cluster
port: 18989
# Port to forward to inside the pod
targetPort: tcp2
# Port accessible outside cluster
nodePort: 28989
- name: tcp-3
protocol: "TCP"
# Port accessible inside cluster
port: 23324
# Port to forward to inside the pod
targetPort: tcp3
# Port accessible outside cluster
nodePort: 23324
type: NodePort #LoadBalancer
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: onap-apex
labels:
app: onap-apex
spec:
selector:
matchLabels:
app: onap-apex
replicas: 1
template:
metadata:
labels:
app: onap-apex
spec:
containers:
- name: onap-apex
image: onap/policy-apex-pdp:2.2.0
#command: ["sh", "-c", "while true; do sleep 3600; done"]
command: ["sh", "-c", "apexApps.sh engine -c examples/config/SampleDomain/Stdin2StdoutJsonEventJavascript.json"]
ports:
- name: http
containerPort: 8080
- name: tcp1
containerPort: 12345
- name: tcp2
containerPort: 18989
- name: tcp3
containerPort: 23324
imagePullPolicy: IfNotPresent
restartPolicy: Always
FROM onap/policy-apex-pdp:2.2.0
WORKDIR /home/apexuser
USER root
RUN apk update
RUN apk upgrade
RUN apk add bash
RUN apk add bash-completion
RUN apk add nano
RUN apk add yajl-tools
USER apexuser
COPY --chown=apexuser:apexuser ./policy-apex/* ./policy-apex/
RUN mkdir -p ./policy-json
#COPY ./policy-json/* ./policy-json/
COPY --chown=apexuser:apexuser ./logic/* ./logic/
COPY --chown=apexuser:apexuser ./config/* ./config/
COPY --chown=apexuser:apexuser ./logs/logback.xml /opt/app/policy/apex-pdp/etc/
COPY --chown=apexuser:apexuser ./tosca-template/* ./tosca-template/
COPY --chown=apexuser:apexuser ./scripts/* ./
RUN echo "[ -z \"\$PS1\" ] && return">> /home/apexuser/.bashrc
RUN echo "PS1=\"\\[\\033[35m\\][\\u@\\h \\w]:\\[\\033[37m\\]\"">>/home/apexuser/.bashrc
EXPOSE 12345 18989 23324 8080 5000
RUN apexCLIEditor.sh -c policy-apex/Policy.apex -o policy-json/Policy.json
CMD ["./start.sh"]
#CMD ["./startTest.sh"]
#CMD ["bash"]
{
"engineServiceParameters": {
"name": "MyApexEngine",
"version": "0.0.1",
"id": 45,
"instanceCount": 4,
"deploymentPort": 12345,
"policyModelFileName": "policy-json/Policy.json",
"engineParameters": {
"executorParameters": {
"JAVASCRIPT": {
"parameterClassName": "org.onap.policy.apex.plugins.executor.javascript.JavascriptExecutorParameters"
}
}
}
},
"eventInputParameters": {
"FirstConsumer": {
"carrierTechnologyParameters": {
"carrierTechnology": "RESTSERVER",
"parameterClassName": "org.onap.policy.apex.plugins.event.carrier.restserver.RestServerCarrierTechnologyParameters",
"parameters": {
"standalone": true,
"host": "0.0.0.0",
"port": 23324
}
},
"eventProtocolParameters": {
"eventProtocol": "JSON"
},
"synchronousMode": true,
"synchronousPeer": "FirstProducer",
"synchronousTimeout": 2000
}
},
"eventOutputParameters": {
"FirstProducer": {
"carrierTechnologyParameters": {
"carrierTechnology": "RESTSERVER",
"parameterClassName": "org.onap.policy.apex.plugins.event.carrier.restserver.RestServerCarrierTechnologyParameters"
},
"eventProtocolParameters": {
"eventProtocol": "JSON"
},
"synchronousMode": true,
"synchronousPeer": "FirstConsumer",
"synchronousTimeout": 2000
},
"standardIOProducer": {
"carrierTechnologyParameters": {
"carrierTechnology": "FILE",
"parameters": {
"standardIo": true
}
},
"eventProtocolParameters": {
"eventProtocol": "JSON"
}
}
}
}
\ No newline at end of file
{
"name": "Example_Event_Input",
"version": "0.0.1",
"nameSpace": "example.apex.event",
"source": "external",
"target": "apex",
"input": "Hello World"
}
\ No newline at end of file
{
"name" : "Always_Serve",
"version" : "1.0",
"deployment_name" : "iperf_avr",
"replica" : 3,
"average_throughput" : 300,
"threshold": 100,
"time": 1638281567105
}
var logger = executor.logger;
var time = new Date();
logger.info("##START## Always_Serve_TL");
var deployment_name = executor.inFields.get("deployment_name");
logger.info("~~deployment_name: " + deployment_name);
var replica = executor.inFields.get("replica");
logger.info("~~replica: " + replica);
var average_throughput = executor.inFields.get("average_throughput");
logger.info("~~average_throughput: " + average_throughput);
var threshold = executor.inFields.get("threshold");
logger.info("~~threshold: " + threshold);
var time = executor.inFields.get("time");
logger.info("~~time: " + time);
// Do something here
var result = "Increase the number of replica by 2";
executor.outFields.put("action", result);
logger.info("##END## Always_Serve_TL");
var returnValue = true;
returnValue;
var logger = executor.logger;
var time = new Date();
logger.info("##START## Example_TL");
var input = executor.inFields.get("input");
logger.info("~~input: " + input);
executor.getContextAlbum("Context_Album").put(input, time.toString());
logger.info("~~Time of input stored: " + time + " in Context_Album");
var contextAlbumData = executor.getContextAlbum("Context_Album").get(input);
logger.info("~~Grab time from Context Album");
executor.outFields.put("output", contextAlbumData);
logger.info("##END## Example_TL");
var returnValue = true;
returnValue;
<!--
============LICENSE_START=======================================================
Copyright (C) 2020 Bell Canada. All rights reserved.
================================================================================
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
SPDX-License-Identifier: Apache-2.0
============LICENSE_END=========================================================
-->
<configuration scan="true" scanPeriod="30 seconds" debug="false">
<appender name="ErrorOut" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>/var/log/onap/policy/apex-pdp/error.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<fileNamePattern>/var/log/onap/policy/apex-pdp/error.%d{yyyy-MM-dd}.%i.log.zip
</fileNamePattern>
<maxFileSize>50MB</maxFileSize>
<maxHistory>30</maxHistory>
<totalSizeCap>10GB</totalSizeCap>
</rollingPolicy>
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>WARN</level>
</filter>
<encoder>
<pattern>[%d{yyyy-MM-dd'T'HH:mm:ss.SSS+00:00, UTC}|%level|%logger{0}|%thread] %msg%n</pattern>
</encoder>
</appender>
<appender name="AsyncErrorOut" class="ch.qos.logback.classic.AsyncAppender">
<appender-ref ref="ErrorOut" />
</appender>
<appender name="DebugOut" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>/var/log/onap/policy/apex-pdp/debug.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<fileNamePattern>/var/log/onap/policy/apex-pdp/debug.%d{yyyy-MM-dd}.%i.log.zip
</fileNamePattern>
<maxFileSize>50MB</maxFileSize>
<maxHistory>30</maxHistory>
<totalSizeCap>10GB</totalSizeCap>
</rollingPolicy>
<encoder>
<pattern>[%d{yyyy-MM-dd'T'HH:mm:ss.SSS+00:00, UTC}|%level|%logger{0}|%thread] %msg%n</pattern>
</encoder>
</appender>
<appender name="AsyncDebugOut" class="ch.qos.logback.classic.AsyncAppender">
<appender-ref ref="DebugOut" />
</appender>
<appender name="NetworkOut" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>/var/log/onap/policy/apex-pdp/network.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<fileNamePattern>/var/log/onap/policy/apex-pdp/network.%d{yyyy-MM-dd}.%i.log.zip
</fileNamePattern>
<maxFileSize>50MB</maxFileSize>
<maxHistory>30</maxHistory>
<totalSizeCap>10GB</totalSizeCap>
</rollingPolicy>
<encoder>
<pattern>[%d{yyyy-MM-dd'T'HH:mm:ss.SSS+00:00, UTC}|%t]%m%n</pattern>
</encoder>
</appender>
<appender name="AsyncNetworkOut" class="ch.qos.logback.classic.AsyncAppender">
<appender-ref ref="NetworkOut" />
</appender>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<Pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</Pattern>
</encoder>
</appender>
<appender name="AsyncStdOut" class="ch.qos.logback.classic.AsyncAppender">
<appender-ref ref="STDOUT" />
</appender>
<logger name="network" level="INFO" additivity="false">
<appender-ref ref="AsyncNetworkOut" />
<appender-ref ref="AsyncStdOut" />
</logger>
<logger name="org.eclipse.jetty.server.RequestLog" level="info" additivity="false">
<appender-ref ref="AsyncNetworkOut" />
<appender-ref ref="AsyncStdOut" />
</logger>
<root level="INFO">
<appender-ref ref="AsyncDebugOut" />
<appender-ref ref="AsyncErrorOut" />
<appender-ref ref="AsyncStdOut" />
</root>
</configuration>
\ No newline at end of file
#----------------------------------------------------------------------------------------------------------------------------------------------------------------
model create name=5GENESIS_SURREY_POLICY_MODEL
#----------------------------------------------------------------------------------------------------------------------------------------------------------------
##-- Primitive Types --##
schema create name=String_Type flavour=Java schema=java.lang.String
schema create name=Integer_Type flavour=Java schema=java.lang.Integer
schema create name=Long_Type flavour=Java schema=java.lang.Long
#----------------------------------------------------------------------------------------------------------------------------------------------------------------
##-- Events --##
event create name=Always_Serve version="1.0"
event parameter create name=Always_Serve parName=deployment_name schemaName=String_Type
event parameter create name=Always_Serve parName=replica schemaName=Integer_Type
event parameter create name=Always_Serve parName=average_throughput schemaName=Integer_Type
event parameter create name=Always_Serve parName=threshold schemaName=Integer_Type
event parameter create name=Always_Serve parName=time schemaName=Long_Type
event create name=Always_Serve_Output version="1.0"
event parameter create name=Always_Serve_Output parName=action schemaName=String_Type
#----------------------------------------------------------------------------------------------------------------------------------------------------------------
##-- Albums --##
album create name=Example_Album scope=GLOBAL writable=true schemaName=String_Type
#----------------------------------------------------------------------------------------------------------------------------------------------------------------
##-- TASKS --##
task create name=Always_Serve_Task
task inputfield create name=Always_Serve_Task fieldName=deployment_name schemaName=String_Type
task inputfield create name=Always_Serve_Task fieldName=replica schemaName=Integer_Type
task inputfield create name=Always_Serve_Task fieldName=average_throughput schemaName=Integer_Type
task inputfield create name=Always_Serve_Task fieldName=threshold schemaName=Integer_Type
task inputfield create name=Always_Serve_Task fieldName=time schemaName=Long_Type
task outputfield create name=Always_Serve_Task fieldName=action schemaName=String_Type
task contextref create name=Always_Serve_Task albumName=Example_Album
task logic create name=Always_Serve_Task logicFlavour=JAVASCRIPT logic=LS
#MACROFILE:"logic/Always_Serve_TL.js"
LE
#----------------------------------------------------------------------------------------------------------------------------------------------------------------
##-- POLICIES --##
policy create name=Always_Serve_Policy template=FREEFORM firstState=Trigger_State
policy state create name=Always_Serve_Policy stateName=Trigger_State triggerName=Always_Serve defaultTaskName=Always_Serve_Task
policy state output create name=Always_Serve_Policy stateName=Trigger_State outputName=action eventName=Always_Serve_Output
policy state taskref create name=Always_Serve_Policy stateName=Trigger_State taskName=Always_Serve_Task outputType=DIRECT outputName=action
#-------------------------------------------------------------------------------------------------------------------------------------------------
docker build --no-cache -t 5genesis-surrey-apex .
docker run -it -p 23324:23324 -p 5000:5000 --name apex-engine --rm 5genesis-surrey-apex
pause
#!/usr/bin/env python
# encoding: utf-8
import json
import time
import requests
from flask import Flask
from flask import request
from flask import jsonify
app = Flask(__name__)
@app.route('/')
def index():
time.sleep(5)
return json.dumps({
"nameSpace": "apex.event.context",
"name": "Context_Trigger",
"version": "0.0.1",
"source": "External",
"target": "APEX",
"report": "This is a Context Event"
}
)
@app.route('/api/slice/1234', methods=['PUT'])
def testStateOne():
time.sleep(5)
print("State One has been Triggered")
return json.dumps({"response" : "State One success"})
@app.route('/api/slice/1234/restart', methods=['POST'])
def testStateTwo():
time.sleep(5)
print("State Two has been Triggered")
return json.dumps({"response" : "State Two success"})
@app.route('/api/slice/1234', methods=['POST'])
def testStateThree():
time.sleep(5)
print("State Three has been Triggered")
return json.dumps({"response" : "State Three success"})
@app.route('/RESTIssuer', methods=['GET', 'POST', 'PUT', 'DELETE'])
def RESTIssuer():
message = request.get_json()
path = "http://" + message["path"]
method = message["method"]
body = message["body"]
print("Path = " , path)
print("Method = " , method)
print("Body = " , body)
headers = {'Content-Type': 'application/json'}
if(method == "get"):
response = requests.get(path, data=json.dumps(body))
print("GET Called")
if(method == "post"):
response = requests.post(path, data=json.dumps(body))
print("POST Called")
if(method == "put"):
response = requests.put(path, body)
print("PUT Called")
if(method == "delete"):
response = requests.post(path)
print("DELETE Called")
print("Response = " , response)
print("Response = " , response.text)
return 'POST RECEIVED'
app.run(debug=True,host="0.0.0.0")
#!/bin/bash
apexApps.sh engine -c config/config.json
\ No newline at end of file
#!/bin/bash
apexCLIEditor.sh -c policy-apex/Policy.apex -o policy-json/Policy.json
\ No newline at end of file
{
"tosca_definitions_version": "tosca_simple_yaml_1_1_0",
"topology_template": {
"policies": [
{
"native.sampledomain": {
"type": "onap.policies.native.Apex",
"type_version": "1.0.0",
"name": "native.sampledomain",
"version": "1.0.0",
"properties": {
}
}
}
]
}
}
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment