summaryrefslogtreecommitdiffstats
path: root/test/mocks/pnfsimulator/deployment/PnP_PNF_sim_heat_template.yml
blob: d9acc9e37601bd6f0f9f7ede64569aefa65ebe89 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
description: Heat template that deploys PnP PNF simulator
heat_template_version: '2013-05-23'
parameters:
  flavor_name: {description: Type of instance (flavor) to be used, label: Flavor,
    type: string}
  image_name: {description: Image to be used for compute instance, label: Image name
      or ID, type: string}
  key_name: {description: Public/Private key pair name, label: Key pair name, type: string}
  public_net_id: {description: Public network that enables remote connection to VNF,
    label: Public network name or ID, type: string}
  private_net_id: {type: string, description: Private network id, label: Private network name or ID}
  private_subnet_id: {type: string, description: Private subnet id, label: Private subnetwork name or ID}
  proxy: {type: string, description: Proxy, label: Proxy, default: ""}
resources:
  PNF_PnP_simualtor:
    type: OS::Nova::Server
    properties:
      key_name: { get_param: key_name }
      image: { get_param: image_name }
      flavor: { get_param: flavor_name }
      networks:
      - port: { get_resource: PNF_PnP_simualtor_port0 }
      user_data_format: RAW
      user_data:
        str_replace:
          template: |
            #!/bin/bash

            set_versions () {
                    DOCKER_COMPOSE_VERSION=1.22.0
            }


            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 "arthur\narthur" | passwd root
            }

            update_os () {
                dnf -y install fedora-upgrade
            }

            docker_install_configure () {
                dnf -y remove docker \
                              docker-client \
                              docker-client-latest \
                              docker-common \
                              docker-latest \
                              docker-latest-logrotate \
                              docker-logrotate \
                              docker-selinux \
                              docker-engine-selinux \
                              docker-engine
                dnf -y install dnf-plugins-core
                dnf config-manager \
                 --add-repo \
                https://download.docker.com/linux/fedora/docker-ce.repo
                dnf -y install docker-ce
                systemctl start docker
                mkdir -p /etc/systemd/system/docker.service.d/
                cat > /etc/systemd/system/docker.service.d/override.conf<< EOF
            [Service]
            Environment="HTTP_PROXY=$proxy"
            Environment="HTTPS_PROXY=$proxy"
            EOF
                systemctl daemon-reload
                systemctl restart docker
                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 () {
                mkdir ~/sim/
                mkdir ~/sim/ssh
                cd ~/sim/ssh/;wget "https://gerrit.onap.org/r/gitweb?p=integration.git;a=blob_plain;f=test/mocks/pnfsimulator/ssh/ssh_host_rsa_key;hb=HEAD" -O ssh_host_rsa_key
                cd ~/sim/ssh/;wget "https://gerrit.onap.org/r/gitweb?p=integration.git;a=blob_plain;f=test/mocks/pnfsimulator/ssh/ssh_host_rsa_key.pub;hb=HEAD" -O ssh_host_rsa_key.pub
                mkdir ~/sim/sftp
                cd ~/sim/sftp/;wget "https://gerrit.onap.org/r/gitweb?p=integration.git;a=blob_plain;f=test/mocks/pnfsimulator/sftp/sftp-file.txt;hb=HEAD" -O sftp-file.txt
                mkdir ~/sim/config
                cd ~/sim/config/;wget "https://gerrit.onap.org/r/gitweb?p=integration.git;a=blob_plain;f=test/mocks/pnfsimulator/config/config.json;hb=HEAD" -O config.json
                cd ~/sim/config/;wget "https://gerrit.onap.org/r/gitweb?p=integration.git;a=blob_plain;f=test/mocks/pnfsimulator/config/netconf.env;hb=HEAD" -O netconf.env
                mkdir ~/sim/json_schema
                cd ~/sim/config/;wget "https://gerrit.onap.org/r/gitweb?p=integration.git;a=blob_plain;f=test/mocks/pnfsimulator/json_schema/input_validator.json;hb=HEAD" -O input_validator.json
                cd ~/sim/config/;wget "https://gerrit.onap.org/r/gitweb?p=integration.git;a=blob_plain;f=test/mocks/pnfsimulator/json_schema/output_validator_ves_schema_30.0.1.json;hb=HEAD" -O output_validator_ves_schema_30.0.1.json
                mkdir ~/sim/netconf
                cd ~/sim/netconf/;wget "https://gerrit.onap.org/r/gitweb?p=integration.git;a=blob_plain;f=test/mocks/pnfsimulator/netconf/pnf-simulator.data.xml;hb=HEAD" -O pnf-simulator.data.xml
                cd ~/sim/netconf/;wget "https://gerrit.onap.org/r/gitweb?p=integration.git;a=blob_plain;f=test/mocks/pnfsimulator/netconf/pnf-simulator.yang;hb=HEAD" -O pnf-simulator.yang
                cd ~/sim/;wget "https://gerrit.onap.org/r/gitweb?p=integration.git;a=blob_plain;f=test/mocks/pnfsimulator/docker-compose.yml;hb=HEAD" -O docker-compose.yml
                cd ~/sim/;wget "https://gerrit.onap.org/r/gitweb?p=integration.git;a=blob_plain;f=test/mocks/pnfsimulator/simulator.sh;hb=HEAD" -O simulator.sh
                chmod 654 ~/sim/simulator.sh
            }

            start_simulator (){
               ~/sim/simulator.sh start
            }

            set_versions
            enable_root_ssh
            update_os
            docker_install_configure
            docker_compose_install
            pnf_sim_file_checkout
            start_simulator
          params:
            $proxy: { get_param: proxy }
  PNF_PnP_simualtor_port0:
    type: OS::Neutron::Port
    properties:
      network_id: { get_param: private_net_id }
      security_groups:
        - default
      fixed_ips:
        - subnet_id: { get_param: private_subnet_id }
  PNF_PnP_simualtor_public:
    type: OS::Neutron::FloatingIP
    properties:
      floating_network_id: { get_param: public_net_id }
      port_id: { get_resource: PNF_PnP_simualtor_port0 }
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 ] }