Adaptation of PnP PNF simulator heat template 29/73029/1
authorkrzysztof kuzmicki <krzysztof.kuzmicki@nokia.com>
Mon, 19 Nov 2018 13:18:23 +0000 (14:18 +0100)
committerkrzysztof kuzmicki <krzysztof.kuzmicki@nokia.com>
Mon, 19 Nov 2018 13:27:34 +0000 (14:27 +0100)
Issue-ID: INT-744

Change-Id: I48a9043b629ad0c3113eb109e958f90c66747abc
Signed-off-by: krzysztof kuzmicki <krzysztof.kuzmicki@nokia.com>
test/mocks/pnfsimulator/deployment/PnP_PNF_sim_heat_template_Ubuntu_16_04.yml [new file with mode: 0644]

diff --git a/test/mocks/pnfsimulator/deployment/PnP_PNF_sim_heat_template_Ubuntu_16_04.yml b/test/mocks/pnfsimulator/deployment/PnP_PNF_sim_heat_template_Ubuntu_16_04.yml
new file mode 100644 (file)
index 0000000..5dd8e6d
--- /dev/null
@@ -0,0 +1,165 @@
+description: Heat template that deploys PnP PNF simulator
+heat_template_version: '2013-05-23'
+outputs:
+  PNF_PnP_simualtor_private_ip:
+    description: IP address of PNF_PnP_simualtor in private network
+    value:
+      get_attr: [PNF_PnP_simualtor, first_address]
+  PNF_PnP_simualtor_public_ip:
+    description: Floating IP address of PNF_PnP_simualtor in public network
+    value:
+      get_attr: [PNF_PnP_simualtor_public, floating_ip_address]
+parameters:
+  flavor_name:
+    description: Type of instance (flavor) to be used
+    label: Flavor
+    type: string
+  image_name:
+    description: Ubuntu 16.04 image to be used
+    label: Image name or ID
+    type: string
+  key_name:
+    description: Public/Private key pair name
+    label: Key pair name
+    type: string
+  private_net_id:
+    description: Private network id
+    label: Private network name or ID
+    type: string
+  private_subnet_id:
+    description: Private subnet id
+    label: Private subnetwork name or ID
+    type: string
+  public_net_id:
+    description: Public network that enables remote connection to VNF
+    label: Public network name or ID
+    type: string
+  security_group:
+    default: default
+    description: Security group to be used
+    label: Security Groups
+    type: string
+  proxy:
+    default: ''
+    description: Proxy
+    label: Proxy
+    type: string
+  correlation_id:
+    default: 'someId'
+    description: Correlation ID
+    label: Correlation ID
+    type: string
+  VES-HOST:
+    default: 'VES-HOST'
+    description: VES collector host ip
+    label: VES ip
+    type: string
+  VES-PORT:
+    default: 'VES-PORT'
+    description: VES collector host port
+    label: VES port
+    type: string
+resources:
+  PNF_PnP_simualtor:
+    properties:
+      flavor:
+        get_param: flavor_name
+      image:
+        get_param: image_name
+      key_name:
+        get_param: key_name
+      networks:
+      - port:
+          get_resource: PNF_PnP_simualtor_port0
+      user_data:
+        str_replace:
+          params:
+            $proxy:
+              get_param: proxy
+            $VES-PORT:
+              get_param: VES-PORT
+            $VES-HOST:
+              get_param: VES-HOST
+            $correlation_id:
+              get_param: correlation_id
+          template: |
+            #!/bin/bash
+
+            set_versions () {
+                DOCKER_VERSION=17.03
+                DOCKER_COMPOSE_VERSION=1.22.0
+                PROTOBUF_VERSION=3.6.1
+            }
+
+            enable_root_ssh () {
+                sed -i 's/PermitRootLogin.*/PermitRootLogin yes/' /etc/ssh/sshd_config
+                sed -i 's/PasswordAuthentication.*/PasswordAuthentication yes/' /etc/ssh/sshd_config
+                service sshd restart
+                echo -e "onap\nonap" | passwd root
+            }
+
+            update_os () {
+                rm -rf /var/lib/apt/lists/*
+                apt-get clean
+                apt-get update
+            }
+
+            docker_install_and_configure () {
+                curl "https://releases.rancher.com/install-docker/$DOCKER_VERSION.sh" | sh
+                mkdir -p /etc/systemd/system/docker.service.d/
+                cat > /etc/systemd/system/docker.service.d/docker.conf << EOF
+            [Service]
+            ExecStart=
+            ExecStart=/usr/bin/dockerd -H fd:// --insecure-registry=nexus3.onap.org:10003
+            Environment="HTTP_PROXY=$proxy"
+            Environment="HTTPS_PROXY=$proxy"
+            EOF
+                systemctl daemon-reload
+                systemctl restart docker
+                apt-mark hold docker-ce
+                docker login -u docker -p docker nexus3.onap.org:10003
+            }
+
+            docker_compose_install () {
+                curl -L "https://github.com/docker/compose/releases/download/$DOCKER_COMPOSE_VERSION/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
+                chmod +x /usr/local/bin/docker-compose
+            }
+
+            pnf_sim_file_checkout () {
+                cd /root; git clone https://gerrit.onap.org/r/integration
+                printf "{\n  \"simulatorParams\": {\n    \"vesServerUrl\": \"http://$VES-HOST:$VES-PORT/eventListener/v7\",\n    \"testDuration\": \"10\",\n    \"messageInterval\": \"1\"\n  },\n  \"commonEventHeaderParams\": {\n    \"eventName\": \"pnfRegistration_Nokia_5gDu\",\n    \"nfNamingCode\": \"gNB\",\n    \"nfcNamingCode\": \"oam\",\n    \"sourceName\": \"$correlation_id\",\n    \"sourceId\": \"val13\",\n    \"reportingEntityName\": \"NOK6061ZW3\"\n  },\n  \"pnfRegistrationParams\": {\n    \"serialNumber\": \"6061ZW3\",\n    \"vendorName\": \"Nokia\",\n    \"oamV4IpAddress\": \"val3\",\n    \"oamV6IpAddress\": \"val4\",\n    \"unitFamily\": \"BBU\",\n    \"modelNumber\": \"val6\",\n    \"softwareVersion\": \"val7\",\n    \"unitType\": \"val8\"\n  }\n}" > integration/test/mocks/pnfsimulator/config/config.json
+            }
+
+            start_simulator () {
+               docker login -u docker -p docker nexus3.onap.org:10003
+               cd ~/integration/test/mocks/pnfsimulator
+               ./simulator.sh start
+            }
+
+            set_versions
+            enable_root_ssh
+            update_os
+            docker_install_and_configure
+            docker_compose_install
+            pnf_sim_file_checkout
+            start_simulator
+
+    type: OS::Nova::Server
+  PNF_PnP_simualtor_port0:
+    properties:
+      fixed_ips:
+      - subnet_id:
+          get_param: private_subnet_id
+      network_id:
+        get_param: private_net_id
+      security_groups:
+      - get_param: security_group
+    type: OS::Neutron::Port
+  PNF_PnP_simualtor_public:
+    properties:
+      floating_network_id:
+        get_param: public_net_id
+      port_id:
+        get_resource: PNF_PnP_simualtor_port0
+    type: OS::Neutron::FloatingIP
+