Clean up script for OOF HEAT based deployment
[demo.git] / boot / oof_vm_init.sh
1 #!/bin/bash
2
3 NEXUS_USERNAME=$(cat /opt/config/nexus_username.txt)
4 NEXUS_PASSWD=$(cat /opt/config/nexus_password.txt)
5 NEXUS_DOCKER_REPO=$(cat /opt/config/nexus_docker_repo.txt)
6 HAS_IMAGE_VERSION=$(cat /opt/config/has_docker_version.txt)
7 OSDF_IMAGE_VERSION=$(cat /opt/config/osdf_docker_version.txt)
8 MUSIC_URL=music.api.simpledemo.onap.org
9
10 cd /opt/optf-has
11 git pull
12
13 COND_CONF=/opt/optf-has/conductor.conf
14 LOG_CONF=/opt/optf-has/log.conf
15
16 #Certification file for OOF-HAS
17 BUNDLE=/opt/optf-has/AAF_RootCA.cer
18 AAI_cert=/usr/local/bin/AAF_RootCA.cer
19
20 OSDF_IMG=${NEXUS_DOCKER_REPO}/onap/optf-osdf:${OSDF_IMAGE_VERSION}
21 HAS_IMG=${NEXUS_DOCKER_REPO}/onap/optf-has:${HAS_IMAGE_VERSION}
22
23 # pull images from repo
24 docker login -u $NEXUS_USERNAME -p $NEXUS_PASSWD $NEXUS_DOCKER_REPO
25 docker pull ${OSDF_IMG}
26 docker pull ${HAS_IMG}
27
28 # Run OOF-HAS
29 # Set A&AI and MUSIC url inside OOF-HAS conductor.conf
30 sed -i "138 s%.*%server_url = https://aai.api.simpledemo.onap.org:8443/aai%" $COND_CONF
31 sed -i "141 s%.*%server_url_version = v13%" $COND_CONF
32 sed -i "257 s%.*%server_url = http://$MUSIC_URL:8080/MUSIC/rest/v2%" $COND_CONF
33 sed -i "284 s%.*%replication_factor = 1%" $COND_CONF
34 sed -i "359 s%.*%server_url = http://msb.api.simpledemo.onap.org/api/multicloud%" $COND_CONF
35
36 # Set A&AI authentication file locations inside OOF-HAS conductor.conf
37 sed -i "153 s%.*%certificate_authority_bundle_file = $AAI_cert%" $COND_CONF
38
39
40 echo "Values to data component"
41 echo $BUNDLE
42
43 # run optf-has
44 docker run -d --name controller -v $COND_CONF:/usr/local/bin/conductor.conf -v $LOG_CONF:/usr/local/bin/log.conf ${HAS_IMG} python /usr/local/bin/conductor-controller --config-file=/usr/local/bin/conductor.conf
45
46 docker run -d --name api -p "8091:8091" -v $COND_CONF:/usr/local/bin/conductor.conf -v $LOG_CONF:/usr/local/bin/log.conf ${HAS_IMG} python /usr/local/bin/conductor-api --port=8091 -- --config-file=/usr/local/bin/conductor.conf
47
48 docker run -d --name solver -v $COND_CONF:/usr/local/bin/conductor.conf -v $LOG_CONF:/usr/local/bin/log.conf ${HAS_IMG} python /usr/local/bin/conductor-solver --config-file=/usr/local/bin/conductor.conf
49
50 docker run -d --name reservation -v $COND_CONF:/usr/local/bin/conductor.conf -v $LOG_CONF:/usr/local/bin/log.conf ${HAS_IMG} python /usr/local/bin/conductor-reservation --config-file=/usr/local/bin/conductor.conf
51
52 docker run -d --name data -v $COND_CONF:/usr/local/bin/conductor.conf -v $LOG_CONF:/usr/local/bin/log.conf -v $BUNDLE:/usr/local/bin/AAF_RootCA.cer ${HAS_IMG} python /usr/local/bin/conductor-data --config-file=/usr/local/bin/conductor.conf
53
54 sleep 10
55
56 echo "Inserting healthcheck plan"
57
58 curl -X POST \
59   http://$MUSIC_URL:8080/MUSIC/rest/v2/keyspaces/conductor/tables/plans/rows/ \
60   -H 'Cache-Control: no-cache' \
61   -H 'Content-Type: application/json' \
62   -H 'Postman-Token: 502781e8-d588-475d-b181-c2e26625ac95' \
63   -H 'X-minorVersion: 3' \
64   -H 'X-patchVersion: 0' \
65   -H 'ns: conductor' \
66   -H 'password: c0nduct0r' \
67   -H 'userId: conductor' \
68   -d '{
69     "consistencyInfo": {
70         "type": "eventual"
71     },
72     "values": {
73         "id" : "healthcheck",
74         "created": 1479482603641,
75         "message": "",
76         "name": "foo",
77         "recommend_max": 1,
78         "solution": "{\"healthcheck\": \" healthcheck\"}",
79         "status": "done",
80         "template": "{\"healthcheck\": \"healthcheck\"}",
81         "timeout": 3600,
82         "translation": "{\"healthcheck\": \" healthcheck\"}",
83         "updated": 1484324150629
84     }
85 }
86 '
87
88 echo "Healthcheck plan inserted"
89
90
91 #run optf-osdf
92 OSDF_CONFIG=/opt/optf-osdf/config/osdf_config.yaml
93 HAS_HOST=$(docker inspect --format '{{ .NetworkSettings.Networks.bridge.IPAddress}}' api)
94
95 mkdir -p /opt/optf-osdf/config
96
97 cat > $OSDF_CONFIG<<NEWFILE
98
99 # Credentials for SO
100 soUsername: ""   # SO username for call back.
101 soPassword: ""   # SO password for call back.
102
103 # Credentials for Conductor
104 conductorUrl: http://$HAS_HOST:8091/v1/plans/
105 conductorUsername: admin1
106 conductorPassword: plan.15
107 conductorPingWaitTime: 60  # seconds to wait before calling the conductor retry URL
108 conductorMaxRetries: 30  # if we don't get something in 30 minutes, give up
109
110 # Policy Platform -- requires ClientAuth, Authorization, and Environment
111 policyPlatformUrl: http://policy.api.simpledemo.onap.org:8081/pdp/api/getConfig # Policy Dev platform URL
112 policyPlatformEnv: TEST  # Environment for policy platform
113 policyPlatformUsername: testpdp   # Policy platform username.
114 policyPlatformPassword: alpha123   # Policy platform password.
115 policyClientUsername: python   # For use with ClientAuth
116 policyClientPassword: test   # For use with ClientAuth
117
118 # Credentials for DMaaP
119 messageReaderHosts: NA
120 messageReaderTopic: NA
121 messageReaderAafUserId: NA
122 messageReaderAafPassword: NA
123
124 # Credentials for SDC
125 sdcUrl: NA
126 sdcUsername: NA
127 sdcPassword: NA
128 sdcONAPInstanceID: NA
129
130 # Credentials for the OOF placement service - Generic
131 osdfPlacementUsername: test
132 osdfPlacementPassword: testpwd
133
134 # Credentials for the OOF placement service - SO
135 osdfPlacementSOUsername: so_test
136 osdfPlacementSOPassword: so_testpwd
137
138 # Credentials for the OOF CM scheduling service - Generic
139 osdfCMSchedulerUsername: test1
140 osdfCMSchedulerPassword: testpwd1
141
142 NEWFILE
143
144 docker run -d --name osdf -v $OSDF_CONFIG:/opt/app/config/osdf_config.yaml -p 8698:8699 ${OSDF_IMG}