RIFT OSM R1 Initial Submission
Signed-off-by: Jeremy Mordkoff <jeremy.mordkoff@riftio.com>
diff --git a/rwlaunchpad/mock/data/nfvi-metrics.json b/rwlaunchpad/mock/data/nfvi-metrics.json
new file mode 100644
index 0000000..8620b5e
--- /dev/null
+++ b/rwlaunchpad/mock/data/nfvi-metrics.json
@@ -0,0 +1,33 @@
+[
+ {
+ "nfvi_metric": {
+ "vm": {
+ "active_vm": 1,
+ "inactive_vm": 1
+ },
+ "memory": {
+ "used": {
+ "value": 1
+ },
+ "total": {
+ "value": 2
+ },
+ "utilization": {
+ "value": 1
+ }
+ },
+ "storage" : {
+ "used": {
+ "value": 1
+ },
+ "total": {
+ "value": 2
+ },
+ "utilization": {
+ "value": 1
+ }
+ }
+ }
+ }
+]
+
diff --git a/rwlaunchpad/mock/data/ns-instance-config.json b/rwlaunchpad/mock/data/ns-instance-config.json
new file mode 100644
index 0000000..29af367
--- /dev/null
+++ b/rwlaunchpad/mock/data/ns-instance-config.json
@@ -0,0 +1,19 @@
+{
+ "nsr": [
+ {
+ "id": "a636c6de-6dd0-11e5-9e8f-6cb3113b406f",
+ "nsd-ref": "a631e8c6-663a-11e5-b122-6cb3113b406f",
+ "admin-status": "ENABLED"
+ },
+ {
+ "id": "c8c6cc24-6dd0-11e5-9e8f-6cb3113b406f",
+ "nsd-ref": "b631e8c6-663a-11e5-b122-6cb3113b406f",
+ "admin-status": "ENABLED"
+ },
+ {
+ "id": "c8c6cf3a-6dd0-11e5-9e8f-6cb3113b406f",
+ "nsd-ref": "c631e8c6-663a-11e5-b122-6cb3113b406f",
+ "admin-status": "DISABLED"
+ }
+ ]
+}
diff --git a/rwlaunchpad/mock/data/nsd_catalog.json b/rwlaunchpad/mock/data/nsd_catalog.json
new file mode 100644
index 0000000..0c6c6ec
--- /dev/null
+++ b/rwlaunchpad/mock/data/nsd_catalog.json
@@ -0,0 +1,44 @@
+{
+ "nsd": [
+ {
+ "id": "a631e8c6-663a-11e5-b122-6cb3113b406f",
+ "name": "Network Service Descriptor 1",
+ "short-name": "NSD1",
+ "vendor": "RIFT.io",
+ "description": "This is a description. It doesn't say much",
+ "version": "0.0.1",
+ "connection-point": [
+ {
+ "name": "cp-name"
+ }
+ ]
+ },
+ {
+ "id": "b631e8c6-663a-11e5-b122-6cb3113b406f",
+ "name": "Network Service Descriptor 2",
+ "short-name": "NSD2",
+ "vendor": "RIFT.io",
+ "description": "This is a description. It doesn't say much",
+ "version": "0.0.1",
+ "connection-point": [
+ {
+ "name": "cp-name"
+ }
+ ]
+ },
+ {
+ "id": "c631e8c6-663a-11e5-b122-6cb3113b406f",
+ "name": "Network Service Descriptor 3",
+ "short-name": "NSD3",
+ "vendor": "RIFT.io",
+ "description": "This is a description. It doesn't say much",
+ "version": "0.0.1",
+ "connection-point": [
+ {
+ "name": "cp-name"
+ }
+ ]
+ }
+ ]
+}
+
diff --git a/rwlaunchpad/mock/data/nsr-templates.json b/rwlaunchpad/mock/data/nsr-templates.json
new file mode 100644
index 0000000..4c512e5
--- /dev/null
+++ b/rwlaunchpad/mock/data/nsr-templates.json
@@ -0,0 +1,57 @@
+[
+ {
+ "create_time": 1445876693,
+ "epa_param": {
+ "ovs_acceleration": {
+ "vm": 2
+ },
+ "ovs_offload": {
+ "vm": 2
+ },
+ "ddio": {
+ "vm": 2
+ },
+ "cat": {
+ "vm": 2
+ },
+ "cmt": {
+ "vm": 2
+ }
+ },
+ "monitoring_param": [
+ {
+ "id": "monitoring-param-1",
+ "name": "rate",
+ "description": "Generalized rate monitoring param",
+ "group_tag": "group-a",
+ "min_value": 0,
+ "max_value": 100,
+ "current_value": 0,
+ "widget_type": "GAUGE",
+ "units": "gbps"
+ },
+ {
+ "id": "monitoring-param-2",
+ "name": "size",
+ "description": "Generalized size monitoring param",
+ "group_tag": "group-a",
+ "min_value": 0,
+ "max_value": 100,
+ "current_value": 0,
+ "widget_type": "GAUGE",
+ "units": "gb"
+ },
+ {
+ "id": "monitoring-param-3",
+ "name": "size22",
+ "description": "Generalized size monitoring param",
+ "group_tag": "group-b",
+ "min_value": 0,
+ "max_value": 100,
+ "current_value": 0,
+ "widget_type": "GAUGE",
+ "units": "gb"
+ }
+ ]
+ }
+]
diff --git a/rwlaunchpad/mock/data/ping-pong-ns-instance-config.json b/rwlaunchpad/mock/data/ping-pong-ns-instance-config.json
new file mode 100644
index 0000000..e7d6bb7
--- /dev/null
+++ b/rwlaunchpad/mock/data/ping-pong-ns-instance-config.json
@@ -0,0 +1,10 @@
+{
+ "nsr": [
+ {
+ "id": "f5f41f36-78f6-11e5-b9ba-6cb3113b406f",
+ "nsd-ref": "da1dfbcc-626b-11e5-998d-6cb3113b406f",
+ "admin-status": "ENABLED"
+ }
+ ]
+}
+
diff --git a/rwlaunchpad/mock/data/ping-pong-nsd.json b/rwlaunchpad/mock/data/ping-pong-nsd.json
new file mode 100644
index 0000000..7ad9f6b
--- /dev/null
+++ b/rwlaunchpad/mock/data/ping-pong-nsd.json
@@ -0,0 +1,118 @@
+{
+ "nsd": [
+ {
+ "id": "da1dfbcc-626b-11e5-998d-6cb3113b406f",
+ "name": "ping-pong-nsd",
+ "vendor": "RIFT.io",
+ "description": "Toy NS",
+ "version": "1.0",
+ "connection-point": [
+ {
+ "name": "ping-pong-nsd/cp0",
+ "type": "VPORT"
+ },
+ {
+ "name": "ping-pong-nsd/cp1",
+ "type": "VPORT"
+ }
+ ],
+ "vld": [
+ {
+ "id": "ba1c03a8-626b-11e5-998d-6cb3113b406f",
+ "name": "ping-pong-vld",
+ "short-name": "ping-pong-vld",
+ "vendor": "RIFT.io",
+ "description": "Toy VL",
+ "version": "1.0",
+ "type": "ELAN",
+ "vnfd-connection-point-ref": [
+ {
+ "member-vnf-index-ref": 0,
+ "vnfd-id-ref": "ba145e82-626b-11e5-998d-6cb3113b406f",
+ "vnfd-connection-point-ref": "ping-pong-vnfd/cp0"
+ }
+ ]
+ }
+ ],
+ "constituent-vnfd": [
+ {
+ "member-vnf-index": 0,
+ "vnfd-id-ref": "ba145e82-626b-11e5-998d-6cb3113b406f"
+ },
+ {
+ "member-vnf-index": 1,
+ "vnfd-id-ref": "ba1947da-626b-11e5-998d-6cb3113b406f"
+ }
+ ],
+ "monitoring-param": [
+ {
+ "id": "ping-tx-rate-mp",
+ "name": "Ping Transmit Rate",
+ "description": "Ping transmit rate",
+ "group-tag": "group-1",
+ "min-value": 0,
+ "max-value": 100,
+ "current-value": 0,
+ "widget-type": "GAUGE",
+ "units": "gbps"
+ },
+ {
+ "id": "ping-rc-rate-mp",
+ "name": "Ping Receive Rate",
+ "description": "Ping receive rate",
+ "group-tag": "group-1",
+ "min-value": 0,
+ "max-value": 100,
+ "current-value": 0,
+ "widget-type": "GAUGE",
+ "units": "gbps"
+ },
+ {
+ "id": "ping-packet-size-mp",
+ "name": "Ping Packet Size",
+ "description": "Ping packet size",
+ "group-tag": "group-2",
+ "min-value": 0,
+ "max-value": 100,
+ "current-value": 10,
+ "widget-type": "GAUGE",
+ "units": "gbps"
+ },
+ {
+ "id": "pong-tx-rate-mp",
+ "name": "Pong Transmit Rate 2",
+ "description": "Pong transmit rate",
+ "group-tag": "group-2",
+ "min-value": 0,
+ "max-value": 100,
+ "current-value": 0,
+ "widget-type": "GAUGE",
+ "units": "gbps"
+ },
+ {
+ "id": "pong-rc-rate-mp",
+ "name": "Pong Receive Rate 2",
+ "description": "Pong eceive rate",
+ "group-tag": "group-2",
+ "min-value": 0,
+ "max-value": 100,
+ "current-value": 0,
+ "widget-type": "GAUGE",
+ "units": "gbps"
+ },
+ {
+ "id": "pong-packet-size-mp",
+ "name": "Pong Packet Size",
+ "description": "Pong packet size",
+ "group-tag": "group-2",
+ "min-value": 0,
+ "max-value": 100,
+ "current-value": 10,
+ "widget-type": "TEXTBOX",
+ "units": "mb"
+ }
+ ]
+ }
+ ]
+}
+
diff --git a/rwlaunchpad/mock/data/ping-pong-vnfd.json b/rwlaunchpad/mock/data/ping-pong-vnfd.json
new file mode 100644
index 0000000..c96ee40
--- /dev/null
+++ b/rwlaunchpad/mock/data/ping-pong-vnfd.json
@@ -0,0 +1,396 @@
+{
+ "vnfd": [
+ {
+ "id": "ba145e82-626b-11e5-998d-6cb3113b406f",
+ "name": "ping-vnfd",
+ "short-name": "ping-vnfd",
+ "vendor": "RIFT.io",
+ "description": "This is an example RIFT.ware VNF",
+ "version": "1.0",
+ "internal-vld": [
+ {
+ "id" : "ba1478fe-626b-11e5-998d-6cb3113b406f",
+ "name": "fabric",
+ "short-name": "fabric",
+ "description": "Virtual link for internal fabric",
+ "type": "ELAN"
+ }
+ ],
+ "connection-point": [
+ {
+ "name": "ping-vnfd/cp0",
+ "type": "VPORT"
+ },
+ {
+ "name": "ping-vnfd/cp1",
+ "type": "VPORT"
+ }
+ ],
+ "vdu": [
+ {
+ "id": "ba14a504-626b-11e5-998d-6cb3113b406f",
+ "name": "iovdu",
+ "count": 2,
+ "vm-flavor": {
+ "vcpu-count": 4,
+ "memory-mb": 1638,
+ "storage-gb": 16
+ },
+ "guest-epa": {
+ "trusted-execution": true,
+ "mempage-size": "PREFER_LARGE",
+ "cpu-pinning-policy": "DEDICATED",
+ "cpu-thread-pinning-policy": "AVOID",
+ "numa-node-policy": {
+ "node-cnt": 2,
+ "mem-policy": "PREFERRED",
+ "node": [
+ {
+ "id": 1,
+ "vcpu": [ 0, 1 ],
+ "memory-mb": 8192
+ }
+ ]
+ }
+ },
+ "hypervisor-epa": {
+ "type": "PREFER_KVM"
+ },
+ "host-epa": {
+ "cpu-model": "PREFER_SANDYBRIDGE",
+ "cpu-arch": "PREFER_X86_64",
+ "cpu-vendor": "PREFER_INTEL",
+ "cpu-socket-count": "PREFER_TWO",
+ "cpu-feature": [ "PREFER_AES", "PREFER_CAT" ]
+ },
+ "image": "rw_openstack.qcow2",
+ "internal-connection-point": [
+ {
+ "id": "ba153744-626b-11e5-998d-6cb3113b406f",
+ "type": "VPORT"
+ },
+ {
+ "id": "ba15577e-626b-11e5-998d-6cb3113b406f",
+ "type": "VPORT"
+ }
+ ],
+ "internal-interface": [
+ {
+ "name": "eth0",
+ "vdu-internal-connection-point-ref": "ba153744-626b-11e5-998d-6cb3113b406f",
+ "virtual-interface": {
+ "type": "VIRTIO"
+ }
+ },
+ {
+ "name": "eth1",
+ "vdu-internal-connection-point-ref": "ba15577e-626b-11e5-998d-6cb3113b406f",
+ "virtual-interface": {
+ "type": "VIRTIO"
+ }
+ }
+ ],
+ "external-interface": [
+ {
+ "name": "eth0",
+ "vnfd-connection-point-ref": "ping-vnfd/cp0",
+ "virtual-interface": {
+ "type": "VIRTIO"
+ }
+ },
+ {
+ "name": "eth1",
+ "vnfd-connection-point-ref": "ping-vnfd/cp1",
+ "virtual-interface": {
+ "type": "VIRTIO"
+ }
+ }
+ ]
+ }
+ ],
+ "monitoring-param": [
+ {
+ "id": "ping-tx-rate-mp",
+ "name": "Ping Transmit Rate",
+ "description": "Ping transmit rate",
+ "group-tag": "group-1",
+ "min-value": 0,
+ "max-value": 100,
+ "current-value": 10,
+ "widget-type": "GAUGE",
+ "units": "gbps"
+ },
+ {
+ "id": "ping-rc-rate-mp",
+ "name": "Ping Receive Rate",
+ "description": "Ping receive rate",
+ "group-tag": "group-1",
+ "min-value": 0,
+ "max-value": 100,
+ "current-value": 10,
+ "widget-type": "GAUGE",
+ "units": "gbps"
+ },
+ {
+ "id": "ping-packet-size-mp",
+ "name": "Ping Packet Size",
+ "description": "Ping packet size",
+ "group-tag": "group-2",
+ "min-value": 0,
+ "max-value": 100,
+ "current-value": 10,
+ "widget-type": "GAUGE",
+ "units": "gbps"
+ }
+ ],
+ "rw-vnfd:control-param": [
+ {
+ "id": "ping-transmit-rate-cp1",
+ "name": "Transmit Rate",
+ "description": "Ping transmit rate",
+ "group-tag": "group-3",
+ "min-value": 0,
+ "max-value": 100,
+ "current-value": 10,
+ "step-value": 1,
+ "units": "gbps",
+ "widget-type": "GAUGE",
+ "url": "https://%s/api/operations/set-control-param",
+ "operation": "POST",
+ "payload": "{\"set-control-param\":{\"id\":\"%s\",\"obj-code\":\"VNFR\",\"control-id\":\"ping-transmit-rate-cp1\",\"value\":10} }"
+ },
+ {
+ "id": "ping-packet-size-cp1",
+ "name": "Ping Packet Size",
+ "description": "Packet size",
+ "group-tag": "group-4",
+ "min-value": 0,
+ "max-value": 100,
+ "current-value": 10,
+ "step-value": 1,
+ "units": "gbps",
+ "widget-type": "GAUGE",
+ "url": "https://%s/api/operations/set-control-param",
+ "operation": "POST",
+ "payload": "{\"set-control-param\":{\"id\":\"%s\",\"obj-code\":\"VNFR\",\"control-id\":\"ping-packet-size-cp1\",\"value\":10 } }"
+ }
+ ],
+ "rw-vnfd:action-param" : [
+ {
+ "id": "start-vnfr",
+ "name": "Start PING",
+ "description": "Start the PUNG VNFR",
+ "group-tag": "start-vnfr",
+ "url": "https://%s/api/operations/start-vnfr",
+ "operation": "POST",
+ "payload": "{\"start-vnfr\": { \"id\": \"%s\" } }"
+ },
+ {
+ "id": "stop-vnfr",
+ "name": "Stop PING",
+ "description": "Stop the PING VNFR",
+ "group-tag": "stop-vnfr",
+ "url": "https://%s/api/operations/stop-vnfr",
+ "operation": "POST",
+ "payload": "{\"stop-vnfr\": { \"id\": \"%s\" } }"
+ }
+ ]
+ },
+ {
+ "id": "ba1947da-626b-11e5-998d-6cb3113b406f",
+ "name": "pong-vnfd",
+ "short-name": "pong-vnfd",
+ "vendor": "RIFT.io",
+ "description": "This is an example RIFT.ware VNF",
+ "version": "1.0",
+ "internal-vld": [
+ {
+ "id" : "ba1478fe-626b-11e5-998d-6cb3113b406f",
+ "name": "fabric",
+ "short-name": "fabric",
+ "description": "Virtual link for internal fabric",
+ "type": "ELAN"
+ }
+ ],
+ "connection-point": [
+ {
+ "name": "pong-vnfd/cp0",
+ "type": "VPORT"
+ },
+ {
+ "name": "pong-vnfd/cp1",
+ "type": "VPORT"
+ }
+ ],
+ "vdu": [
+ {
+ "id": "ba14a504-626b-11e5-998d-6cb3113b406f",
+ "name": "iovdu",
+ "count": 2,
+ "vm-flavor": {
+ "vcpu-count": 4,
+ "memory-mb": 1638,
+ "storage-gb": 16
+ },
+ "guest-epa": {
+ "trusted-execution": true,
+ "mempage-size": "PREFER_LARGE",
+ "cpu-pinning-policy": "DEDICATED",
+ "cpu-thread-pinning-policy": "AVOID",
+ "numa-node-policy": {
+ "node-cnt": 2,
+ "mem-policy": "PREFERRED",
+ "node": [
+ {
+ "id": 1,
+ "vcpu": [ 0, 1 ],
+ "memory-mb": 8192
+ }
+ ]
+ }
+ },
+ "hypervisor-epa": {
+ "type": "PREFER_KVM"
+ },
+ "host-epa": {
+ "cpu-model": "PREFER_SANDYBRIDGE",
+ "cpu-arch": "PREFER_X86_64",
+ "cpu-vendor": "PREFER_INTEL",
+ "cpu-socket-count": "PREFER_TWO",
+ "cpu-feature": [ "PREFER_AES", "PREFER_CAT" ]
+ },
+ "image": "rw_openstack.qcow2",
+ "internal-connection-point": [
+ {
+ "id": "ba153744-626b-11e5-998d-6cb3113b406f",
+ "type": "VPORT"
+ },
+ {
+ "id": "ba15577e-626b-11e5-998d-6cb3113b406f",
+ "type": "VPORT"
+ }
+ ],
+ "internal-interface": [
+ {
+ "name": "eth0",
+ "vdu-internal-connection-point-ref": "ba153744-626b-11e5-998d-6cb3113b406f",
+ "virtual-interface": {
+ "type": "VIRTIO"
+ }
+ },
+ {
+ "name": "eth1",
+ "vdu-internal-connection-point-ref": "ba15577e-626b-11e5-998d-6cb3113b406f",
+ "virtual-interface": {
+ "type": "VIRTIO"
+ }
+ }
+ ],
+ "external-interface": [
+ {
+ "name": "eth0",
+ "vnfd-connection-point-ref": "pong-vnfd/cp0",
+ "virtual-interface": {
+ "type": "VIRTIO"
+ }
+ },
+ {
+ "name": "eth1",
+ "vnfd-connection-point-ref": "pong-vnfd/cp1",
+ "virtual-interface": {
+ "type": "VIRTIO"
+ }
+ }
+ ]
+ }
+ ],
+ "monitoring-param": [
+ {
+ "id": "pong-tx-rate-mp",
+ "name": "Pong Transmit Rate",
+ "description": "Pong transmit rate",
+ "group-tag": "group-1",
+ "min-value": 0,
+ "max-value": 100,
+ "current-value": 10,
+ "widget-type": "GAUGE",
+ "units": "gbps"
+ },
+ {
+ "id": "pong-rx-rate-mp",
+ "name": "Pong Receive Rate",
+ "description": "Pong receive rate",
+ "group-tag": "group-1",
+ "min-value": 0,
+ "max-value": 100,
+ "current-value": 10,
+ "widget-type": "GAUGE",
+ "units": "gbps"
+ },
+ {
+ "id": "pong-packet-size-mp",
+ "name": "Pong Packet Size",
+ "description": "Pong packet size",
+ "group-tag": "group-2",
+ "min-value": 0,
+ "max-value": 100,
+ "current-value": 10,
+ "widget-type": "TEXTBOX",
+ "units": "mb"
+ }
+ ],
+ "rw-vnfd:control-param" : [
+ {
+ "id": "pong-receive-rate-cp1",
+ "name": "Pong Receive Rate",
+ "description": "Pong receive rate",
+ "group-tag": "group-3",
+ "min-value": 0,
+ "max-value": 100,
+ "current-value": 0,
+ "step-value": 1,
+ "units": "gbps",
+ "widget-type": "GAUGE",
+ "url": "https://{host}/api/operations/vnfr-control-param/",
+ "operation": "POST",
+ "payload": "{\"set-control-param\":{\"id\":\"%s\",\"obj-code\":\"VNFR\",\"control-id\":\"pong-receive-rate-cp1\",\"value\":10} }"
+ },
+ {
+ "id": "pong-packet-size-cp1",
+ "name": "Pong Packaet Size",
+ "description": "Packet size",
+ "group-tag": "group-4",
+ "min-value": 0,
+ "max-value": 100,
+ "current-value": 0,
+ "step-value": 1,
+ "units": "gbps",
+ "widget-type": "GAUGE",
+ "url": "https://%s/api/operations/set-control-param",
+ "operation": "POST",
+ "payload": "{\"set-control-param\":{\"id\":\"%s\",\"obj-code\":\"VNFR\",\"control-id\":\"pong-packet-size-cp1\",\"value\":10 } }"
+ }
+ ],
+ "rw-vnfd:action-param" : [
+ {
+ "id": "start-vnfr",
+ "name": "Start PONG",
+ "description": "Start the PONG VNFR",
+ "group-tag": "start-vnfr",
+ "url": "https://%s/api/operations/start-vnfr",
+ "operation": "POST",
+ "payload": "{\"start-vnfr\": { \"id\": \"%s\" } }"
+ },
+ {
+ "id": "stop-vnfr",
+ "name": "Stop PONG",
+ "description": "Stop the PONG VNFR",
+ "group-tag": "stop-vnfr",
+ "url": "https://%s/api/operations/stop-vnfr",
+ "operation": "POST",
+ "payload": "{\"stop-vnfr\": { \"id\": \"%s\" } }"
+ }
+ ]
+ }
+ ]
+}
diff --git a/rwlaunchpad/mock/data/simmp-rules.json b/rwlaunchpad/mock/data/simmp-rules.json
new file mode 100644
index 0000000..d92f835
--- /dev/null
+++ b/rwlaunchpad/mock/data/simmp-rules.json
@@ -0,0 +1,11 @@
+{
+ "description": "Rules for Simulating monitoring params",
+ "mp-mapper": {
+ "ping-tx-rate-mp": "tx_rc_rate",
+ "ping-rc-rate-mp": "tx_rc_rate",
+ "pong-tx-rate-mp": "tx_rc_rate",
+ "pong-rc-rate-mp": "tx_rc_rate",
+ "ping-packet-size-mp": "packet_size",
+ "pong-packet-size-mp": "packet_size"
+ }
+}
diff --git a/rwlaunchpad/mock/data/vld_catalog.json b/rwlaunchpad/mock/data/vld_catalog.json
new file mode 100644
index 0000000..0de0e29
--- /dev/null
+++ b/rwlaunchpad/mock/data/vld_catalog.json
@@ -0,0 +1,16 @@
+{
+ "vld": [
+ {
+ "id": "a631e8c6-663a-11e5-b122-6cb3113b406f",
+ "name": "vld-one"
+ },
+ {
+ "id": "b631e8c6-663a-11e5-b122-6cb3113b406f",
+ "name": "vld-two"
+ },
+ {
+ "id": "c631e8c6-663a-11e5-b122-6cb3113b406f",
+ "name": "vld-three"
+ }
+ ]
+}
diff --git a/rwlaunchpad/mock/data/vnfd_catalog.json b/rwlaunchpad/mock/data/vnfd_catalog.json
new file mode 100644
index 0000000..1951980
--- /dev/null
+++ b/rwlaunchpad/mock/data/vnfd_catalog.json
@@ -0,0 +1,47 @@
+{
+ "vnfd": [
+ {
+ "id": "a200a0a0-663a-11e5-b122-6cb3113b406f",
+ "name": "Virtual Network Descriptor 1",
+ "short-name": "VNFD1",
+ "vendor": "RIFT.io",
+ "description": "This is a description. It doesn't say much",
+ "version": "0.0.1",
+ "internal-vld": [
+ {
+ "id" : "68981800-7201-11e5-9fc4-bf5ad0442ce5",
+ "name": "Zathrus",
+ "short-name": "zathrus",
+ "description": "Virtual link for zathrus",
+ "type": "ELAN",
+ "root-bandwidth": 42,
+ "leaf-bandwidth": 42,
+ "internal-connection-point-ref": [
+
+ ]
+ }
+ ]
+ },
+ {
+ "id": "b200a0a0-663a-11e5-b122-6cb3113b406f",
+ "name": "vnfd-two",
+ "short-name": "VNFD2",
+ "vendor": "RIFT.io",
+ "description": "This is a description. It doesn't say much",
+ "version": "0.0.1",
+ "internal-vld": [
+
+ ]
+ },
+ {
+ "id": "c200a0a0-663a-11e5-b122-6cb3113b406f",
+ "name": "vnfd-three",
+ "short-name": "VNFD03",
+ "vendor": "RIFT.io",
+ "description": "This is a description. It doesn't say much",
+ "version": "0.0.1",
+ "internal-vld": [
+ ]
+ }
+ ]
+}
diff --git a/rwlaunchpad/mock/data/vnfr-templates.json b/rwlaunchpad/mock/data/vnfr-templates.json
new file mode 100644
index 0000000..a93dafb
--- /dev/null
+++ b/rwlaunchpad/mock/data/vnfr-templates.json
@@ -0,0 +1,54 @@
+[
+ {
+ "action_param": [
+ {
+ "id": "actionparam01",
+ "name": "Start Me Up",
+ "description": "This is a description. It doesn't say much",
+ "group_tag": "control-group1",
+ "url": "http://localhost:8091/vnfr/1/start"
+ },
+ {
+ "id": "actionparam02",
+ "name": "Stop me",
+ "description": "This is a description. It doesn't say much",
+ "group_tag": "control-group1",
+ "url": "http://localhost:8091/vnfr/1/stop",
+ "operation": "POST"
+ }
+ ],
+ "control_param": [
+ {
+ "id": "controlparam01",
+ "name": "Control Param 1",
+ "description": "This is a description. It doesn't say much",
+ "group_tag": "control-group1",
+ "min_value": 0,
+ "max_value": 100,
+ "current_value": 0,
+ "step_value": 1,
+ "units": "smoots",
+ "widget_type": "HISTOGRAM",
+ "url": "http://localhost:8091/vnfr/1/control-1",
+ "operation": "POST",
+ "payload": "{ \"test\": \"sample value\" }"
+ },
+ {
+ "id": "controlparam02",
+ "name": "Control Param 2",
+ "description": "This is a description. It doesn't say much",
+ "group_tag": "control-group1",
+ "min_value": 0,
+ "max_value": 100,
+ "current_value": 0,
+ "step_value": 1,
+ "units": "smoots",
+ "widget_type": "GAUGE",
+ "url": "http://localhost:8091/vnfr/1/control-2",
+ "operation": "POST",
+ "payload": "{ \"test\": \"sample value\" }"
+ }
+ ]
+ }
+]
+