5497ce0f4b117edbaf314cb0b07a8633167d6802
[policy/drools-applications.git] / controlloop / packages / basex-controlloop / src / files / bin / create-cl-casablanca
1 #! /bin/bash
2
3 ###
4 # ============LICENSE_START=======================================================
5 # PDP-D APPS Base Package
6 # ================================================================================
7 # Copyright (C) 2018 AT&T Intellectual Property. All rights reserved.
8 # ================================================================================
9 # Licensed under the Apache License, Version 2.0 (the "License");
10 # you may not use this file except in compliance with the License.
11 # You may obtain a copy of the License at
12
13 #      http://www.apache.org/licenses/LICENSE-2.0
14
15 # Unless required by applicable law or agreed to in writing, software
16 # distributed under the License is distributed on an "AS IS" BASIS,
17 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18 # See the License for the specific language governing permissions and
19 # limitations under the License.
20 # ============LICENSE_END=========================================================
21 ###
22
23 # Interactive script to generate and install in a pdp-d control loops demo rules
24 # for a standalone PDP-D usage
25
26 source "${POLICY_HOME}"/etc/build.info
27
28 echo "Control Loop CLI Generator for R2 Casablanca Release"
29 echo "---------------------------------------------------"
30 echo
31
32 GROUP_ID="org.onap.policy.rules.casablanca"
33 ARTIFACT_ID="casablanca"
34 VERSION="${version:-1.2.0}"
35 PACKAGE="org.onap.policy.rules.casablanca"
36
37 # vCPE Policy Parameters
38 VCPE_CONTROL_LOOP_NAME="ControlLoop-vCPE-48f0c2c3-a172-4192-9ae3-052274181b6e"
39 VCPE_POLICY_NAME="vcpe"
40 VCPE_CONTROL_LOOP_YAML="controlLoop%3A%0D%0A++version%3A+2.0.0%0D%0A++controlLoopName%3A+ControlLoop-vCPE-48f0c2c3-a172-4192-9ae3-052274181b6e%0D%0A++trigger_policy%3A+unique-policy-id-1-restart%0D%0A++timeout%3A+3600%0D%0A++abatement%3A+true%0D%0A+%0D%0Apolicies%3A%0D%0A++-+id%3A+unique-policy-id-1-restart%0D%0A++++name%3A+Restart+the+VM%0D%0A++++description%3A%0D%0A++++actor%3A+APPC%0D%0A++++recipe%3A+Restart%0D%0A++++target%3A%0D%0A++++++type%3A+VM%0D%0A++++retry%3A+3%0D%0A++++timeout%3A+1200%0D%0A++++success%3A+final_success%0D%0A++++failure%3A+final_failure%0D%0A++++failure_timeout%3A+final_failure_timeout%0D%0A++++failure_retries%3A+final_failure_retries%0D%0A++++failure_exception%3A+final_failure_exception%0D%0A++++failure_guard%3A+final_failure_guard"
41
42 # vFW Policy Parameters
43 VFW_CONTROL_LOOP_NAME="ControlLoop-vFirewall-d0a1dfc6-94f5-4fd4-a5b5-4630b438850a"
44 VFW_POLICY_NAME="vfw"
45 VFW_CONTROL_LOOP_YAML="controlLoop%3A%0D%0A++version%3A+2.0.0%0D%0A++controlLoopName%3A+ControlLoop-vFirewall-d0a1dfc6-94f5-4fd4-a5b5-4630b438850a%0D%0A++trigger_policy%3A+unique-policy-id-1-modifyConfig%0D%0A++timeout%3A+1200%0D%0A++abatement%3A+false%0D%0A+%0D%0Apolicies%3A%0D%0A++-+id%3A+unique-policy-id-1-modifyConfig%0D%0A++++name%3A+modify+packet+gen+config%0D%0A++++description%3A%0D%0A++++actor%3A+APPC%0D%0A++++recipe%3A+ModifyConfig%0D%0A++++target%3A%0D%0A++++++%23+TBD+-+Cannot+be+known+until+instantiation+is+done%0D%0A++++++resourceID%3A+Eace933104d443b496b8.nodes.heat.vpg%0D%0A++++++type%3A+VNF%0D%0A++++retry%3A+0%0D%0A++++timeout%3A+300%0D%0A++++success%3A+final_success%0D%0A++++failure%3A+final_failure%0D%0A++++failure_timeout%3A+final_failure_timeout%0D%0A++++failure_retries%3A+final_failure_retries%0D%0A++++failure_exception%3A+final_failure_exception%0D%0A++++failure_guard%3A+final_failure_guard"
46
47 # vDNS Policy Parameters
48 VDNS_CONTROL_LOOP_NAME="ControlLoop-vDNS-6f37f56d-a87d-4b85-b6a9-cc953cf779b3"
49 VDNS_POLICY_NAME="vdns"
50 VDNS_CONTROL_LOOP_YAML="controlLoop%3A%0A++version%3A+2.0.0%0A++controlLoopName%3A+ControlLoop-vDNS-6f37f56d-a87d-4b85-b6a9-cc953cf779b3%0A++trigger_policy%3A+unique-policy-id-1-scale-up%0A++timeout%3A+1200%0A++abatement%3A+false%0Apolicies%3A%0A++-+id%3A+unique-policy-id-1-scale-up%0A++++name%3A+Create+a+new+VF+Module%0A++++description%3A%0A++++actor%3A+SO%0A++++recipe%3A+VF+Module+Create%0A++++target%3A%0A++++++type%3A+VNF%0A++++payload%3A%0A++++++configurationParameters%3A+%27%5B%7B%22ip-addr%22%3A%22%24.vf-module-topology.vf-module-parameters.param%5B9%5D%22%2C%22oam-ip-addr%22%3A%22%24.vf-module-topology.vf-module-parameters.param%5B16%5D%22%2C%22enabled%22%3A%22%24.vf-module-topology.vf-module-parameters.param%5B23%5D%22%7D%5D%27%0A++++retry%3A+0%0A++++timeout%3A+1200%0A++++success%3A+final_success%0A++++failure%3A+final_failure%0A++++failure_timeout%3A+final_failure_timeout%0A++++failure_retries%3A+final_failure_retries%0A++++failure_exception%3A+final_failure_exception%0A++++failure_guard%3A+final_failure_guard"
51
52 # VoLTE Policy Parameters
53 VOLTE_CONTROL_LOOP_NAME="ControlLoop-VOLTE-2179b738-fd36-4843-a71a-a8c24c70c55b"
54 VOLTE_POLICY_NAME="volte"
55 VOLTE_CONTROL_LOOP_YAML="controlLoop%3A%0D%0A++version%3A+2.0.0%0D%0A++controlLoopName%3A+ControlLoop-VOLTE-2179b738-fd36-4843-a71a-a8c24c70c55b%0D%0A++trigger_policy%3A+unique-policy-id-1-restart%0D%0A++timeout%3A+3600%0D%0A++abatement%3A+false%0D%0A+%0D%0Apolicies%3A%0D%0A++-+id%3A+unique-policy-id-1-restart%0D%0A++++name%3A+Restart+the+VM%0D%0A++++description%3A%0D%0A++++actor%3A+VFC%0D%0A++++recipe%3A+Restart%0D%0A++++target%3A%0D%0A++++++type%3A+VM%0D%0A++++retry%3A+3%0D%0A++++timeout%3A+1200%0D%0A++++success%3A+final_success%0D%0A++++failure%3A+final_failure%0D%0A++++failure_timeout%3A+final_failure_timeout%0D%0A++++failure_retries%3A+final_failure_retries%0D%0A++++failure_exception%3A+final_failure_exception%0D%0A++++failure_guard%3A+final_failure_guard"
56
57 # vPCI Policy Parameters
58 VPCI_CONTROL_LOOP_NAME="ControlLoop-vPCI-fb41f388-a5f2-11e8-98d0-529269fb1459"
59 VPCI_POLICY_NAME="vpci"
60 VPCI_CONTROL_LOOP_YAML="controlLoop%3A%0D%0A++version%3A+3.0.0%0D%0A++controlLoopName%3A+ControlLoop-vPCI-fb41f388-a5f2-11e8-98d0-529269fb1459%0D%0A++trigger_policy%3A+unique-policy-id-123-modifyconfig%0D%0A++timeout%3A+1200%0D%0A++abatement%3A+false%0D%0A+%0D%0Apolicies%3A%0D%0A++-+id%3A+unique-policy-id-123-modifyconfig%0D%0A++++name%3A+modify+PCI+config%0D%0A++++description%3A%0D%0A++++actor%3A+SDNR%0D%0A++++recipe%3A+ModifyConfig%0D%0A++++target%3A%0D%0A++++++%23+These+fields+are+not+used%0D%0A++++++resourceID%3A+Eace933104d443b496b8.nodes.heat.vpg%0D%0A++++++type%3A+VNF%0D%0A++++retry%3A+0%0D%0A++++timeout%3A+300%0D%0A++++success%3A+final_success%0D%0A++++failure%3A+final_failure%0D%0A++++failure_timeout%3A+final_failure_timeout%0D%0A++++failure_retries%3A+final_failure_retries%0D%0A++++failure_exception%3A+final_failure_exception%0D%0A++++failure_guard%3A+final_failure_guard"
61
62 # CCVPN Policy Parameters
63 CCVPN_CONTROL_LOOP_NAME="ControlLoop-CCVPN-2179b738-fd36-4843-a71a-a8c24c70c66b"
64 CCVPN_POLICY_NAME="ccvpn"
65 CCVPN_CONTROL_LOOP_YAML="controlLoop%3A%0D%0A++version%3A+2.0.0%0D%0A++controlLoopName%3A+ControlLoop-CCVPN-2179b738-fd36-4843-a71a-a8c24c70c66b%0D%0A++trigger_policy%3A+unique-policy-id-16-Reroute%0D%0A++t
66 imeout%3A+3600%0D%0A++abatement%3A+false%0D%0A+%0D%0Apolicies%3A%0D%0A++-+id%3A+unique-policy-id-16-Reroute%0D%0A++++name%3A+Connectivity Reroute%0D%0A++++description%3A%0D%0A++++actor%3A+SDNC%0D%0A++++reci
67 pe%3A+Reroute%0D%0A++++target%3A%0D%0A++++++type%3A+VM%0D%0A++++retry%3A+3%0D%0A++++timeout%3A+1200%0D%0A++++success%3A+final_success%0D%0A++++failure%3A+final_failure%0D%0A++++failure_timeout%3A+final_fail
68 ure_timeout%0D%0A++++failure_retries%3A+final_failure_retries%0D%0A++++failure_exception%3A+final_failure_exception%0D%0A++++failure_guard%3A+final_failure_guard"
69
70 # Generic Scope and Version
71 POLICY_SCOPE="casablanca"
72 POLICY_VERSION="v0.0.1"
73
74 BRMSGW_TOPIC="BRMSGW-POLICY"
75 BRMSGW_SERVERS="vm1.mr.simpledemo.openecomp.org"
76
77 DMAAP_SERVERS="vm1.mr.simpledemo.openecomp.org"
78 DCAE_TOPIC="unauthenticated.DCAE_CL_OUTPUT"
79 DCAE_SERVERS="vm1.mr.simpledemo.openecomp.org"
80
81 read -e -i "${GROUP_ID}" -p "Target Rules Group Id> " GROUP_ID
82 read -e -i "${ARTIFACT_ID}" -p "Target Rules Artifact Id> " ARTIFACT_ID
83 read -e -i "${VERSION}" -p "Target Rules Version> " VERSION
84 read -e -i "${PACKAGE}" -p "Target Rules Java Package> " PACKAGE
85
86 read -e -i "${VCPE_CONTROL_LOOP_NAME}" -p "VCPE Control Loop Name> " VCPE_CONTROL_LOOP_NAME
87 read -e -i "${VCPE_POLICY_NAME}" -p "VCPE Policy Name> " VCPE_POLICY_NAME
88 read -e -i "${VCPE_CONTROL_LOOP_YAML}" -p "VCPE Control Loop Yaml> " VCPE_CONTROL_LOOP_YAML
89
90 read -e -i "${VFW_CONTROL_LOOP_NAME}" -p "VFW Control Loop Name> " VFW_CONTROL_LOOP_NAME
91 read -e -i "${VFW_POLICY_NAME}" -p "VFW Policy Name> " VFW_POLICY_NAME
92 read -e -i "${VFW_CONTROL_LOOP_YAML}" -p "VFW Control Loop Yaml> " VFW_CONTROL_LOOP_YAML
93
94 read -e -i "${VDNS_CONTROL_LOOP_NAME}" -p "VDNS Control Loop Name> " VDNS_CONTROL_LOOP_NAME
95 read -e -i "${VDNS_POLICY_NAME}" -p "VDNS Policy Name> " VDNS_POLICY_NAME
96 read -e -i "${VDNS_CONTROL_LOOP_YAML}" -p "VDNS Control Loop Yaml> " VDNS_CONTROL_LOOP_YAML
97
98 read -e -i "${VOLTE_CONTROL_LOOP_NAME}" -p "VOLTE Control Loop Name> " VOLTE_CONTROL_LOOP_NAME
99 read -e -i "${VOLTE_POLICY_NAME}" -p "VOLTE Policy Name> " VOLTE_POLICY_NAME
100 read -e -i "${VOLTE_CONTROL_LOOP_YAML}" -p "VOLTE Control Loop Yaml> " VOLTE_CONTROL_LOOP_YAML
101
102 read -e -i "${VPCI_CONTROL_LOOP_NAME}" -p "VPCI Control Loop Name> " VPCI_CONTROL_LOOP_NAME
103 read -e -i "${VPCI_POLICY_NAME}" -p "VPCI Policy Name> " VPCI_POLICY_NAME
104 read -e -i "${VPCI_CONTROL_LOOP_YAML}" -p "VPCI Control Loop Yaml> " VPCI_CONTROL_LOOP_YAML
105
106 read -e -i "${CCVPN_CONTROL_LOOP_NAME}" -p "CCVPN Control Loop Name> " CCVPN_CONTROL_LOOP_NAME
107 read -e -i "${CCVPN_POLICY_NAME}" -p "CCVPN Policy Name> " CCVPN_POLICY_NAME
108 read -e -i "${CCVPN_CONTROL_LOOP_YAML}" -p "CCVPN Control Loop Yaml> " CCVPN_CONTROL_LOOP_YAML
109
110 read -e -i "${POLICY_SCOPE}" -p "Generic Policy Scope> " POLICY_SCOPE
111 read -e -i "${POLICY_VERSION}" -p "Generic Policy Version> " POLICY_VERSION
112
113 read -e -i "${BRMSGW_TOPIC}" -p "Controller BRMSGW TOPIC> " BRMSGW_TOPIC
114 read -e -i "${BRMSGW_SERVERS}" -p "Configuration BRMSGW DMaaP Servers> " BRMSGW_SERVERS
115
116 read -e -i "${DCAE_SERVERS}" -p "Configuration DCAE DMaaP Servers> " DCAE_SERVERS
117 read -e -i "${DMAAP_SERVERS}" -p "Configuration Open DMaaP Servers> " DMAAP_SERVERS
118 read -e -i "${DCAE_TOPIC}" -p "Controller DCAE Topic> " DCAE_TOPIC
119
120 echo
121 echo
122
123 if [ -z "${GROUP_ID}" ]; then echo "Aborting: Rules Maven Group Id not provided"; exit 1; fi
124 if [ -z "${ARTIFACT_ID}" ]; then echo "Aborting: Rules Maven Coordinates Artifact Id not provided"; exit 1; fi
125 if [ -z "${VERSION}" ]; then echo "Aborting: Rules Maven Coordinates Version not provided"; exit 1; fi
126 if [ -z "${PACKAGE}" ]; then echo "Aborting: Rules Package not provided"; exit 1; fi
127
128 if [ -z "${VCPE_CONTROL_LOOP_NAME}" ]; then echo "Aborting: VCPE Control Loop Name not provided"; exit 1; fi
129 if [ -z "${VCPE_POLICY_NAME}" ]; then echo "Aborting: VCPE Policy Name not provided"; exit 1; fi
130 if [ -z "${VCPE_CONTROL_LOOP_YAML}" ]; then echo "Aborting: VCPE Control Loop Yaml not provided"; exit 1; fi
131
132 if [ -z "${VFW_CONTROL_LOOP_NAME}" ]; then echo "Aborting: VFW Control Loop Name not provided"; exit 1; fi
133 if [ -z "${VFW_POLICY_NAME}" ]; then echo "Aborting: VFW Policy Name not provided"; exit 1; fi
134 if [ -z "${VFW_CONTROL_LOOP_YAML}" ]; then echo "Aborting: VFW Control Loop Yaml not provided"; exit 1; fi
135
136 if [ -z "${VDNS_CONTROL_LOOP_NAME}" ]; then echo "Aborting: VDNS Control Loop Name not provided"; exit 1; fi
137 if [ -z "${VDNS_POLICY_NAME}" ]; then echo "Aborting: VDNS Policy Name not provided"; exit 1; fi
138 if [ -z "${VDNS_CONTROL_LOOP_YAML}" ]; then echo "Aborting: VDNS Control Loop Yaml not provided"; exit 1; fi
139
140 if [ -z "${VOLTE_CONTROL_LOOP_NAME}" ]; then echo "Aborting: VOLTE Control Loop Name not provided"; exit 1; fi
141 if [ -z "${VOLTE_POLICY_NAME}" ]; then echo "Aborting: VOLTE Policy Name not provided"; exit 1; fi
142 if [ -z "${VOLTE_CONTROL_LOOP_YAML}" ]; then echo "Aborting: VOLTE Control Loop Yaml not provided"; exit 1; fi
143
144 if [ -z "${VPCI_CONTROL_LOOP_NAME}" ]; then echo "Aborting: VPCI Control Loop Name not provided"; exit 1; fi
145 if [ -z "${VPCI_POLICY_NAME}" ]; then echo "Aborting: VPCI Policy Name not provided"; exit 1; fi
146 if [ -z "${VPCI_CONTROL_LOOP_YAML}" ]; then echo "Aborting: VPCI Control Loop Yaml not provided"; exit 1; fi
147
148 if [ -z "${CCVPN_CONTROL_LOOP_NAME}" ]; then echo "Aborting: CCVPN Control Loop Name not provided"; exit 1; fi
149 if [ -z "${CCVPN_POLICY_NAME}" ]; then echo "Aborting: CCVPN Policy Name not provided"; exit 1; fi
150 if [ -z "${CCVPN_CONTROL_LOOP_YAML}" ]; then echo "Aborting: CCVPN Control Loop Yaml not provided"; exit 1; fi
151
152 if [ -z "${POLICY_SCOPE}" ]; then echo "Aborting: Template Policy Scope not provided"; exit 1; fi
153 if [ -z "${POLICY_VERSION}" ]; then echo "Aborting: Template Policy Version not provided"; exit 1; fi
154
155 if [ -z "${BRMSGW_TOPIC}" ]; then echo "Aborting: Configuration BRMSGW DMaaP Topic not provided"; exit 1; fi
156 if [ -z "${BRMSGW_SERVERS}" ]; then echo "Aborting: Configuration BRMSGW DMaaP Servers not provided"; exit 1; fi
157
158 if [ -z "${DCAE_TOPIC}" ]; then echo "Aborting: Configuration DCAE DMaaP Topic not provided"; exit 1; fi
159 if [ -z "${DMAAP_SERVERS}" ]; then echo "Aborting: Configuration Open DMaaP Servers not provided"; exit 1; fi
160 if [ -z "${DCAE_SERVERS}" ]; then echo "Aborting: Configuration DCAE DMaaP Servers not provided"; exit 1; fi
161
162 DEPENDENCIES_VERSION="${version}"
163
164 read -e -i "${DEPENDENCIES_VERSION}" -p  "Control Loop Jar Dependencies Version (ie: 1.2.0-SNAPSHOT, or 1.2.0) > " DEPENDENCIES_VERSION
165 if [ -z "${DEPENDENCIES_VERSION}" ]; then echo "Aborting: Control Loop Jar Dependencies Version not provided"; exit 1; fi
166
167 echo "---------------------------------------------------------------------------------------"
168 echo "Please review the Control Loop Rules, Template, and Configuration Parameters:"
169 echo
170 echo "The generated rules jar will be installed in a local Maven Repository"
171 echo
172 echo "Rules Maven Artifact Generation: Group Id: ${GROUP_ID}"
173 echo "Rules Maven Artifact Generation: Artifact Id: ${ARTIFACT_ID}"
174 echo "Rules Maven Artifact Generation: Version: ${VERSION}"
175 echo "Rules Maven Artifact Generation: Java Package: ${PACKAGE}"
176 echo "Rules Maven Artifact Generation: pom: Java Libraries Dependencies Version: ${DEPENDENCIES_VERSION}"
177 echo
178 echo "VCPE Drools Fact Generation: VCPE Control Loop Control Name: ${VCPE_CONTROL_LOOP_NAME}"
179 echo "VCPE Drools Fact Generation: VCPE Control Loop Policy Name: ${VCPE_POLICY_NAME}"
180 echo "VCPE Drools Fact Generation: VCPE Control Loop Yaml: ${VCPE_CONTROL_LOOP_YAML}"
181 echo
182 echo "VFW Drools Fact Generation: VFW Control Loop Control Name: ${VFW_CONTROL_LOOP_NAME}"
183 echo "VFW Drools Fact Generation: VFW Control Loop Policy Name: ${VFW_POLICY_NAME}"
184 echo "VFW Drools Fact Generation: VFW Control Loop Yaml: ${VFW_CONTROL_LOOP_YAML}"
185 echo
186 echo "VDNS Drools Fact Generation: VDNS Control Loop Control Name: ${VDNS_CONTROL_LOOP_NAME}"
187 echo "VDNS Drools Fact Generation: VDNS Control Loop Policy Name: ${VDNS_POLICY_NAME}"
188 echo "VDNS Drools Fact Generation: VDNS Control Loop Yaml: ${VDNS_CONTROL_LOOP_YAML}"
189 echo
190 echo "VOLTE Drools Fact Generation: VOLTE Control Loop Control Name: ${VOLTE_CONTROL_LOOP_NAME}"
191 echo "VOLTE Drools Fact Generation: VOLTE Control Loop Policy Name: ${VOLTE_POLICY_NAME}"
192 echo "VOLTE Drools Fact Generation: VOLTE Control Loop Yaml: ${VOLTE_CONTROL_LOOP_YAML}"
193 echo
194 echo "VPCI Drools Fact Generation: VPCI Control Loop Control Name: ${VPCI_CONTROL_LOOP_NAME}"
195 echo "VPCI Drools Fact Generation: VPCI Control Loop Policy Name: ${VPCI_POLICY_NAME}"
196 echo "VPCI Drools Fact Generation: VPCI Control Loop Yaml: ${VPCI_CONTROL_LOOP_YAML}"
197 echo
198 echo "CCVPN Drools Fact Generation: CCVPN Control Loop Control Name: ${CCVPN_CONTROL_LOOP_NAME}"
199 echo "CCVPN Drools Fact Generation: CCVPN Control Loop Policy Name: ${CCVPN_POLICY_NAME}"
200 echo "CCVPN Drools Fact Generation: CCVPN Control Loop Yaml: ${CCVPN_CONTROL_LOOP_YAML}"
201 echo
202 echo "Generic Drools Fact: Control Loop Policy Scope: ${POLICY_SCOPE}"
203 echo "Generic: Control Loop Policy Version: ${POLICY_VERSION}"
204 echo
205 echo "Configuration Policy Controller: Rules: Group Id: ${GROUP_ID}"
206 echo "Configuration Policy Controller: Rules: Artifact Id: ${ARTIFACT_ID}"
207 echo "Configuration Policy Controller: Rules: Version: ${VERSION}"
208 echo
209 echo "Configuration Policy Controller: BRMSGW DMaaP Topic: ${BRMSGW_TOPIC}"
210 echo "Configuration Policy Controller: BRMSGW DMaaP Servers: ${BRMSGW_SERVERS}"
211 echo
212 echo "Configuration Policy Controller: DCAE DMaaP Topic: ${DCAE_TOPIC}"
213 echo "Configuration Policy Controller: DCAE DMaaP Servers: ${DCAE_SERVERS}"
214 echo
215 echo "Configuration Policy Controller: Open DMaaP Servers: ${DMAAP_SERVERS}"
216 echo "---------------------------------------------------------------------------------------"
217 echo
218
219 HAPPY="Y"
220 read -e -i "${HAPPY}" -p  "Are the previous parameters correct (Y/N)? " HAPPY
221 if [[ ${HAPPY} != "Y" ]]; then
222         exit 1
223 fi
224
225 echo
226 DIR_TMP="/tmp"
227 echo "The Control Loop Rules Maven Project Source Rules will be installed at ${DIR_TMP}"
228 read -e -i "${DIR_TMP}" -p  "Do you want to change the Rules Source Project install directory? " DIR_TMP
229
230 if [ ! -w "${DIR_TMP}" ]; then
231         echo "Aborting.  ${DIR_TMP} is not writable"
232         exit 1
233 fi
234
235 ARCHETYPE_GROUP_ID="org.onap.policy.drools-applications.controlloop.templates"
236 ARCHETYPE_ARTIFACT_ID="archetype-cl-casablanca"
237 ARCHETYPE_VERSION="${VERSION}"
238
239 if [ -d "${DIR_TMP}/${ARTIFACT_ID}/" ]; then
240         if [ "$(ls -A "${DIR_TMP}/${ARTIFACT_ID}"/)" ]; then
241                 echo "${DIR_TMP} already contains a ${ARTIFACT_ID}/ directory, saving it to ${DIR_TMP}/${ARTIFACT_ID}.arch.bak/"
242                 if [ -d "${DIR_TMP}/${ARTIFACT_ID}.arch.bak"/ ]; then
243                         ( 
244                                 echo "${DIR_TMP}/${ARTIFACT_ID}.arch.bak/ also exists, deleting it .."
245                                 cd "${DIR_TMP}"/
246                                 rm -fr "${ARTIFACT_ID}.arch.bak"
247                         )
248                 fi
249                 /bin/mv --force "${DIR_TMP}/${ARTIFACT_ID}/" "${DIR_TMP}/${ARTIFACT_ID}.arch.bak"
250                 if [ "${?}" -ne 0 ]; then
251                         echo
252                         echo
253                     echo "Aborting: ${DIR_TMP}/${ARTIFACT_ID}/ cannot be moved"
254                     exit 1
255                 fi
256         else
257                 ( cd "${DIR_TMP}/" ; rmdir "${DIR_TMP}/${ARTIFACT_ID}/" )
258         fi
259 fi
260
261 CREATEARTIFACT="Y"
262 read -e -i "${CREATEARTIFACT}" -p  "Create Maven Artifact (Y/N)? " CREATEARTIFACT
263 if [[ ${CREATEARTIFACT} != "Y" ]]; then
264         exit 1
265 fi
266
267 (
268 cd "${DIR_TMP}"
269
270 mvn archetype:generate \
271     -B \
272     -DarchetypeCatalog=local \
273     -DarchetypeGroupId="${ARCHETYPE_GROUP_ID}" \
274     -DarchetypeArtifactId="${ARCHETYPE_ARTIFACT_ID}" \
275     -DarchetypeVersion="${ARCHETYPE_VERSION}" \
276     -Dpackage="${PACKAGE}" \
277     -DgroupId="${GROUP_ID}" \
278     -DartifactId="${ARTIFACT_ID}" \
279     -Dversion="${VERSION}" \
280     -DvcpeClosedLoopControlName="${VCPE_CONTROL_LOOP_NAME}" \
281     -DvcpePolicyName="${VCPE_POLICY_NAME}" \
282     -DvcpeControlLoopYaml="${VCPE_CONTROL_LOOP_YAML}" \
283     -DvfwClosedLoopControlName="${VFW_CONTROL_LOOP_NAME}" \
284     -DvfwPolicyName="${VFW_POLICY_NAME}" \
285     -DvfwControlLoopYaml="${VFW_CONTROL_LOOP_YAML}" \
286     -DvdnsClosedLoopControlName="${VDNS_CONTROL_LOOP_NAME}" \
287     -DvdnsPolicyName="${VDNS_POLICY_NAME}" \
288     -DvdnsControlLoopYaml="${VDNS_CONTROL_LOOP_YAML}" \
289     -DvolteClosedLoopControlName="${VOLTE_CONTROL_LOOP_NAME}" \
290     -DvoltePolicyName="${VOLTE_POLICY_NAME}" \
291     -DvolteControlLoopYaml="${VOLTE_CONTROL_LOOP_YAML}" \
292     -DvpciClosedLoopControlName="${VPCI_CONTROL_LOOP_NAME}" \
293     -DvpciPolicyName="${VPCI_POLICY_NAME}" \
294     -DvpciControlLoopYaml="${VPCI_CONTROL_LOOP_YAML}" \
295     -DccvpnClosedLoopControlName="${CCVPN_CONTROL_LOOP_NAME}" \
296     -DccvpnPolicyName="${CCVPN_POLICY_NAME}" \
297     -DccvpnControlLoopYaml="${CCVPN_CONTROL_LOOP_YAML}" \
298     -DpolicyScope="${POLICY_SCOPE}" \
299     -DpolicyVersion="${POLICY_VERSION}" \
300     -DbrmsgwTopic="${BRMSGW_TOPIC}" \
301     -DbrmsgwServers="${BRMSGW_SERVERS}" \
302     -DdmaapServers="${DMAAP_SERVERS}" \
303     -DdcaeTopic="${DCAE_TOPIC}" \
304     -DdcaeServers="${DCAE_SERVERS}" \
305     -DdependenciesVersion="${DEPENDENCIES_VERSION}"
306     
307 if [ "${?}" -ne 0 ]; then
308         echo
309         echo
310         echo "Aborting: ${ARTIFACT_ID} has not been successfully generated"
311         exit 1
312 fi
313
314 echo 
315
316 cd "${DIR_TMP}/${ARTIFACT_ID}"/
317
318 mv src/main/config/* .
319
320 echo
321 echo "Control Loop Rules from templates have been successfully created under ${DIR_TMP}/${ARTIFACT_ID}/"
322 echo "You have to option to further tweak this project or deploy it as is to the local maven repository."
323 echo "If you decide to customize the source rules project, please enter 'N' below,"
324 echo "and when finished type 'mvn install' at ${DIR_TMP}/${ARTIFACT_ID}/ to install the Control Loop."
325
326 INSTALLREPO="Y"
327 read -e -i "${INSTALLREPO}" -p  "Do you want to deploy ${ARTIFACT_ID} rules into maven repository (Y/N)? " INSTALLREPO
328 if [[ ${INSTALLREPO} != "Y" ]]; then
329         exit 1
330 fi
331
332 echo
333 echo "installing the rules ${ARTIFACT_ID} maven artifact .."
334
335 mvn install
336
337 if [ "${?}" -ne 0 ]; then
338         echo
339         echo
340         echo "Aborting: ${ARTIFACT_ID} deployable jar cannot be installed"
341         echo "Fix the source rules project issues, and issue 'mvn install'"
342         echo "at ${DIR_TMP}/${ARTIFACT_ID}/ when done to install it."
343         exit 1
344 fi
345
346
347 echo
348 echo "${ARTIFACT_ID} has been successfully installed in user's (${USER}) local repository"
349 echo "Find configuration files at ${DIR_TMP}/${ARTIFACT_ID}/"
350 echo
351 echo "To deploy this Control Loop into the PDP-D, follow one of these methods: "
352 echo "1. copy ${DIR_TMP}/${ARTIFACT_ID}/${ARTIFACT_ID}-controller.properties under '${POLICY_HOME}/config'"
353 echo "   and restart the pdp-d (policy stop; policy start)"
354 echo "2. cd ${DIR_TMP}/${ARTIFACT_ID}/; rest-add-controller ${ARTIFACT_ID}"
355 echo 
356 echo "Once this Control Loop is deployed, you can run the push-policies-casablanca script"
357 echo "to automatically insert the policies for all use cases supported in this release"
358 echo
359 )