Merge "Bug 84 - Create ping pong descriptor package"
[osm/devops.git] / src / vnfd / ping_vnf / ping_vnfd.yaml
1 #
2 #   Copyright 2016 RIFT.io Inc
3 #
4 #   Licensed under the Apache License, Version 2.0 (the "License");
5 #   you may not use this file except in compliance with the License.
6 #   You may obtain a copy of the License at
7 #
8 #       http://www.apache.org/licenses/LICENSE-2.0
9 #
10 #   Unless required by applicable law or agreed to in writing, software
11 #   distributed under the License is distributed on an "AS IS" BASIS,
12 #   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 #   See the License for the specific language governing permissions and
14 #   limitations under the License.
15 #
16 #
17
18 vnfd:vnfd-catalog:
19     vnfd:vnfd:
20     -   vnfd:connection-point:
21         -   vnfd:name: ping_vnfd/cp0
22             vnfd:type: VPORT
23         -   vnfd:name: ping_vnfd/cp1
24             vnfd:type: VPORT
25         vnfd:description: This is an example RIFT.ware VNF
26         vnfd:http-endpoint:
27         -   vnfd:path: api/v1/ping/stats
28             vnfd:polling_interval_secs: '2'
29             vnfd:port: '18888'
30         vnfd:id: 8759e766-8b99-11e6-9664-02b76030c497
31         vnfd:logo: rift_logo.png
32         vnfd:mgmt-interface:
33             vnfd:dashboard-params:
34                 vnfd:path: api/v1/ping/stats
35                 vnfd:port: '18888'
36             vnfd:port: '18888'
37             vnfd:vdu-id: iovdu_0
38         vnfd:monitoring-param:
39         -   vnfd:description: no of ping requests
40             vnfd:group-tag: Group1
41             vnfd:http-endpoint-ref: api/v1/ping/stats
42             vnfd:id: '1'
43             vnfd:json-query-method: NAMEKEY
44             vnfd:name: ping-request-tx-count
45             vnfd:units: packets
46             vnfd:value-type: INT
47             vnfd:widget-type: COUNTER
48         -   vnfd:description: no of ping responses
49             vnfd:group-tag: Group1
50             vnfd:http-endpoint-ref: api/v1/ping/stats
51             vnfd:id: '2'
52             vnfd:json-query-method: NAMEKEY
53             vnfd:name: ping-response-rx-count
54             vnfd:units: packets
55             vnfd:value-type: INT
56             vnfd:widget-type: COUNTER
57         vnfd:name: ping_vnfd
58         vnfd:placement-groups:
59         -   vnfd:member-vdus:
60             -   vnfd:member-vdu-ref: iovdu_0
61             vnfd:name: Eris
62             vnfd:requirement: Place this VM on the Kuiper belt object Eris
63             vnfd:strategy: COLOCATION
64         vnfd:short-name: ping_vnfd
65         vnfd:vdu:
66         -   vnfd:count: '1'
67             vnfd:external-interface:
68             -   vnfd:name: eth0
69                 vnfd:virtual-interface:
70                     vnfd:type: OM-MGMT
71                 vnfd:vnfd-connection-point-ref: ping_vnfd/cp0
72             -   vnfd:name: eth1
73                 vnfd:virtual-interface:
74                     vnfd:type: VIRTIO
75                 vnfd:vnfd-connection-point-ref: ping_vnfd/cp1
76             vnfd:id: iovdu_0
77             vnfd:image: Fedora-x86_64-20-20131211.1-sda-ping.qcow2
78             vnfd:image-checksum: a6ffaa77f949a9e4ebb082c6147187cf
79             vnfd:name: iovdu_0
80             vnfd:vm-flavor:
81                 vnfd:memory-mb: '512'
82                 vnfd:storage-gb: '4'
83                 vnfd:vcpu-count: '1'
84         vnfd:vendor: RIFT.io
85         vnfd:version: '1.0'
86         vnfd:vnf-configuration:
87             vnfd:config-attributes:
88                 vnfd:config-delay: '0'
89                 vnfd:config-priority: '2'
90             vnfd:config-template: "\n#!/bin/bash\n\n# Rest API config\nping_mgmt_ip='<rw_mgmt_ip>'\n\
91                 ping_mgmt_port=18888\n\n# VNF specific configuration\npong_server_ip='<rw_connection_point_name\
92                 \ pong_vnfd/cp0>'\nping_rate=5\nserver_port=5555\n\n# Make rest API\
93                 \ calls to configure VNF\ncurl -D /dev/stdout \\\n    -H \"Accept:\
94                 \ application/vnd.yang.data+xml\" \\\n    -H \"Content-Type: application/vnd.yang.data+json\"\
95                 \ \\\n    -X POST \\\n    -d \"{\\\"ip\\\":\\\"$pong_server_ip\\\"\
96                 , \\\"port\\\":$server_port}\" \\\n    http://${ping_mgmt_ip}:${ping_mgmt_port}/api/v1/ping/server\n\
97                 rc=$?\nif [ $rc -ne 0 ]\nthen\n    echo \"Failed to set server info\
98                 \ for ping!\"\n    exit $rc\nfi\n\ncurl -D /dev/stdout \\\n    -H\
99                 \ \"Accept: application/vnd.yang.data+xml\" \\\n    -H \"Content-Type:\
100                 \ application/vnd.yang.data+json\" \\\n    -X POST \\\n    -d \"{\\\
101                 \"rate\\\":$ping_rate}\" \\\n    http://${ping_mgmt_ip}:${ping_mgmt_port}/api/v1/ping/rate\n\
102                 rc=$?\nif [ $rc -ne 0 ]\nthen\n    echo \"Failed to set ping rate!\"\
103                 \n    exit $rc\nfi\n\n\noutput=$(curl -D /dev/stdout \\\n    -H \"\
104                 Accept: application/vnd.yang.data+xml\" \\\n    -H \"Content-Type:\
105                 \ application/vnd.yang.data+json\" \\\n    -X POST \\\n    -d \"{\\\
106                 \"enable\\\":true}\" \\\n    http://${ping_mgmt_ip}:${ping_mgmt_port}/api/v1/ping/adminstatus/state)\n\
107                 if [[ $output == *\"Internal Server Error\"* ]]\nthen\n    echo $output\n\
108                 \    exit 3\nelse\n    echo $output\nfi\n\nexit 0\n"
109             vnfd:script:
110                 vnfd:script-type: bash