9f9a8ff9a7c23488762ca61cd07bc64096c98455
[osm/devops.git] / src / vnfd / pong_vnf / pong_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:   
20     -   connection-point:
21         -   name: pong_vnfd/cp0
22             type: VPORT
23         -   name: pong_vnfd/cp1
24             type: VPORT
25         description: This is an example RIFT.ware VNF
26         http-endpoint:
27         -   path: api/v1/pong/stats
28             polling_interval_secs: '2'
29             port: '18889'
30         id: 875b30d0-8b99-11e6-9664-02b76030c497
31         logo: rift_logo.png
32         mgmt-interface:
33             dashboard-params:
34                 path: api/v1/pong/stats
35                 port: '18889'
36             port: '18889'
37             vdu-id: iovdu_0
38         monitoring-param:
39         -   description: no of ping requests
40             group-tag: Group1
41             http-endpoint-ref: api/v1/pong/stats
42             id: '1'
43             json-query-method: NAMEKEY
44             name: ping-request-rx-count
45             units: packets
46             value-type: INT
47             widget-type: COUNTER
48         -   description: no of ping responses
49             group-tag: Group1
50             http-endpoint-ref: api/v1/pong/stats
51             id: '2'
52             json-query-method: NAMEKEY
53             name: ping-response-tx-count
54             units: packets
55             value-type: INT
56             widget-type: COUNTER
57         name: pong_vnfd
58         placement-groups:
59         -   member-vdus:
60             -   member-vdu-ref: iovdu_0
61             name: Weywot
62             requirement: Place this VM on the Kuiper belt object Weywot
63             strategy: COLOCATION
64         short-name: pong_vnfd
65         vdu:
66         -   count: '1'
67             external-interface:
68             -   name: eth0
69                 virtual-interface:
70                     type: OM-MGMT
71                 vnfd-connection-point-ref: pong_vnfd/cp0
72             -   name: eth1
73                 virtual-interface:
74                     type: VIRTIO
75                 vnfd-connection-point-ref: pong_vnfd/cp1
76             id: iovdu_0
77             image: Fedora-x86_64-20-20131211.1-sda-pong.qcow2
78             image-checksum: 977484d95575f80ef8399c9cf1d45ebd
79             name: iovdu_0
80             vm-flavor:
81                 memory-mb: '512'
82                 storage-gb: '4'
83                 vcpu-count: '1'
84         vendor: RIFT.io
85         version: '1.0'
86         vnf-configuration:
87             config-attributes:
88                 config-delay: '60'
89                 config-priority: '1'
90             config-template: "\n#!/bin/bash\n\n# Rest API configuration\npong_mgmt_ip='<rw_mgmt_ip>'\n\
91                 pong_mgmt_port=18889\n# username=<rw_username>\n# password=<rw_password>\n\
92                 \n# VNF specific configuration\npong_server_ip='<rw_connection_point_name\
93                 \ pong_vnfd/cp0>'\nserver_port=5555\n\n# Make Rest API calls to configure\
94                 \ VNF\ncurl -D /dev/stdout \\\n    -H \"Accept: application/vnd.yang.data+xml\"\
95                 \ \\\n    -H \"Content-Type: application/vnd.yang.data+json\" \\\n\
96                 \    -X POST \\\n    -d \"{\\\"ip\\\":\\\"$pong_server_ip\\\", \\\"\
97                 port\\\":$server_port}\" \\\n    http://${pong_mgmt_ip}:${pong_mgmt_port}/api/v1/pong/server\n\
98                 rc=$?\nif [ $rc -ne 0 ]\nthen\n    echo \"Failed to set server(own)\
99                 \ info for pong!\"\n    exit $rc\nfi\n\n\ncurl -D /dev/stdout \\\n\
100                 \    -H \"Accept: application/vnd.yang.data+xml\" \\\n    -H \"Content-Type:\
101                 \ application/vnd.yang.data+json\" \\\n    -X POST \\\n    -d \"{\\\
102                 \"enable\\\":true}\" \\\n    http://${pong_mgmt_ip}:${pong_mgmt_port}/api/v1/pong/adminstatus/state\n\
103                 rc=$?\nif [ $rc -ne 0 ]\nthen\n    echo \"Failed to enable pong service!\"\
104                 \n    exit $rc\nfi\n\nexit 0\n"
105             script:
106                 script-type: bash