diff options
34 files changed, 447 insertions, 60 deletions
diff --git a/cmso-database/src/main/resources/cmso-dbchangelog/onap-cmso-v1.1-add-uuid.sql b/cmso-database/src/main/resources/cmso-dbchangelog/onap-cmso-v1.1-add-uuid.sql index 2f6aafb..639a030 100644 --- a/cmso-database/src/main/resources/cmso-dbchangelog/onap-cmso-v1.1-add-uuid.sql +++ b/cmso-database/src/main/resources/cmso-dbchangelog/onap-cmso-v1.1-add-uuid.sql @@ -84,11 +84,6 @@ update CHANGE_MANAGEMENT_CHANGE_WINDOWS set change_management_group_uuid = update SCHEDULE_APPROVALS set approval_types_uuid = (select distinct s.uuid from APPROVAL_TYPES s where approval_type_id = s.id); --- ---------------------------------------------------- --- APPROVAL_TYPES Update all of the foreign key columns --- ---------------------------------------------------- -update SCHEDULE_APPROVALS set approval_types_uuid = - (select distinct s.uuid from SCHEDULE_APPROVALS t, APPROVAL_TYPES s where t.approval_type_id = s.id); SET SQL_SAFE_UPDATES = 1; diff --git a/cmso-optimizer/etc/config/optimizer.properties b/cmso-optimizer/etc/config/optimizer.properties index 641bbeb..653d21b 100644 --- a/cmso-optimizer/etc/config/optimizer.properties +++ b/cmso-optimizer/etc/config/optimizer.properties @@ -43,6 +43,10 @@ logging.level.org.hibernate.SQL=TRACE logging.level.org.hibernate=TRACE +healthcheck.cmso.topology.url=http://127.0.0.1:7998/topology/v1/health?checkInterfaces=true +healthcheck.cmso.ticketmgt.url=http://127.0.0.1:7999/ticketmgt/v1/health?checkInterfaces=true +healthcheck.cmso.topology.title="CMSO Topology Interface" +healthcheck.cmso.ticketmgt.title="CMSO Ticket Management Interface" cmso.topology.create.request.url=http://127.0.0.1:7998/topology/v1/current cmso.ticket.create.request.url=http://127.0.0.1:7999/ticketmgt/v1/activetickets diff --git a/cmso-optimizer/pom.xml b/cmso-optimizer/pom.xml index 2ede9e7..fa27b8e 100644 --- a/cmso-optimizer/pom.xml +++ b/cmso-optimizer/pom.xml @@ -27,7 +27,7 @@ <packaging>jar</packaging> - <name>cmso</name> + <name>cmso-optimizer</name> <properties> <maven.build.timestamp.format>yyyyMMdd'T'HHmmss'Z'</maven.build.timestamp.format> @@ -385,8 +385,8 @@ <apiVersion>1.23</apiVersion> <images> <image> - <name>onap/optf-cmso-tciketmgt</name> - <alias>onap-optf-cmso-tciketmgt</alias> + <name>onap/optf-cmso-optimizer</name> + <alias>onap-optf-cmso-optimizer</alias> <build> <cleanup>true</cleanup> <tags> @@ -466,6 +466,14 @@ <include>**/*</include> </includes> </resource> + <resource> + <directory>${basedir}/scripts</directory> + <targetPath>${basedir}/target/scripts</targetPath> + <filtering>true</filtering> + <includes> + <include>**/*</include> + </includes> + </resource> </resources> <pluginManagement> <plugins> diff --git a/cmso-optimizer/scripts/minizinc/run.bat b/cmso-optimizer/scripts/minizinc/run.bat new file mode 100644 index 0000000..dc40503 --- /dev/null +++ b/cmso-optimizer/scripts/minizinc/run.bat @@ -0,0 +1 @@ +%MINIZINC% --solver %MINIZINC_SOLVER% --time-limit %MINIZINC_TIMELIMIT% --soln-sep "" --search-complete-msg "" -o %MINIZINC_OUTPUT% %MINIZINC_MZN% %MINIZINC_DZN%
\ No newline at end of file diff --git a/cmso-optimizer/scripts/minizinc/run.sh b/cmso-optimizer/scripts/minizinc/run.sh new file mode 100644 index 0000000..690c281 --- /dev/null +++ b/cmso-optimizer/scripts/minizinc/run.sh @@ -0,0 +1 @@ +${MINIZINC} --solver ${MINIZINC_SOLVER} --time-limit ${MINIZINC_TIMELIMIT} --soln-sep '' --search-complete-msg '' -o ${MINIZINC_OUTPUT} ${MINIZINC_MZN} ${MINIZINC_DZN}
\ No newline at end of file diff --git a/cmso-optimizer/src/main/docker/Dockerfile b/cmso-optimizer/src/main/docker/Dockerfile index 9ef42ab..fde2caf 100644 --- a/cmso-optimizer/src/main/docker/Dockerfile +++ b/cmso-optimizer/src/main/docker/Dockerfile @@ -10,10 +10,26 @@ ENV HTTPS_PROXY=$https_proxy ENV http_proxy=$HTTP_PROXY ENV https_proxy=$HTTPS_PROXY +ENV MZN 2.2.3 +ENV MZN_BASENAME MiniZincIDE-${MZN}-bundle-linux-x86_64 +ENV MZN_UNZIPNAME MiniZincIDE-${MZN}-bundle-linux +ENV MZN_GH_BASE https://github.com/MiniZinc/MiniZincIDE +ENV MZN_DL_URL ${MZN_GH_BASE}/releases/download/${MZN}/${MZN_BASENAME}.tgz + RUN test -n "$http_proxy" && echo "Acquire::Proxy \"http://$http_proxy\";" > /etc/apt/apt.conf.d/02proxy || true && \ apt-get update && \ apt-get -y dist-upgrade && \ - apt-get install -y openjdk-8-jre-headless + apt-get install -y openjdk-8-jre-headless && \ + apt-get install wget + + +# Minizinc +RUN wget -q $MZN_DL_URL -O mz.tgz +RUN tar xzf mz.tgz +RUN mv $MZN_UNZIPNAME /mz-dist +RUN rm mz.tgz +RUN echo PATH=/mz-dist:$PATH >> ~/.bashrc + COPY onap-cmso-optimizer/cmso-optimizer.jar ${APP_HOME}/app.jar @@ -23,6 +39,7 @@ VOLUME /share/debug-logs COPY onap-cmso-optimizer/startService.sh ${APP_HOME}/startService.sh COPY onap-cmso-optimizer/data ${APP_HOME}/data +COPY onap-cmso-optimizer/scripts ${APP_HOME}/scripts RUN chmod 700 ${APP_HOME}/startService.sh RUN ln -s /share/etc ${APP_HOME}/etc diff --git a/cmso-optimizer/src/main/docker/assembly/cmso-files.xml b/cmso-optimizer/src/main/docker/assembly/cmso-files.xml index 2e3f19e..cf96a35 100644 --- a/cmso-optimizer/src/main/docker/assembly/cmso-files.xml +++ b/cmso-optimizer/src/main/docker/assembly/cmso-files.xml @@ -44,6 +44,13 @@ <outputDirectory>/data</outputDirectory> </fileSet> <fileSet> + <includes> + <include>**</include> + </includes> + <directory>scripts</directory> + <outputDirectory>/scripts</outputDirectory> + </fileSet> + <fileSet> <directory>${project.basedir}/src/main/resources</directory> <outputDirectory>./resources</outputDirectory> <includes> diff --git a/cmso-optimizer/src/main/java/org/onap/optf/cmso/optimizer/clients/optimizer/OptimizerClient.java b/cmso-optimizer/src/main/java/org/onap/optf/cmso/optimizer/clients/optimizer/OptimizerClient.java index 3147bc5..9f2f8e6 100644 --- a/cmso-optimizer/src/main/java/org/onap/optf/cmso/optimizer/clients/optimizer/OptimizerClient.java +++ b/cmso-optimizer/src/main/java/org/onap/optf/cmso/optimizer/clients/optimizer/OptimizerClient.java @@ -32,7 +32,9 @@ import java.nio.file.Path; import java.nio.file.Paths; import java.text.ParseException; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; import java.util.UUID; import org.apache.commons.io.IOUtils; import org.onap.observations.Observation; @@ -206,22 +208,22 @@ public class OptimizerClient { workingFolder.mkdirs(); Long timeLimit = env.getProperty("cmso.minizinc.command.timelimit", Long.class); // TODO calculate time limit - Process p = null; + Process process = null; try { Path inputFileName = Paths.get(workingFolder.getAbsolutePath(), "input.dzn"); Path outputFileName = Paths.get(workingFolder.getAbsolutePath(), "results.yaml"); String dzn = request.toMiniZinc(); Files.write(inputFileName, dzn.getBytes()); - List<String> command = buildCommand(inputFileName, outputFileName, timeLimit.toString()); - debug.debug("engine command=", command.toString()); - ProcessBuilder pb = new ProcessBuilder(command); - p = pb.start(); - String stdout = IOUtils.toString(p.getInputStream(), "UTF-8"); - String stderr = IOUtils.toString(p.getErrorStream(), "UTF-8"); + Map<String, String> environment = new HashMap<>(); + ProcessBuilder processBuilder = buildCommand(inputFileName, outputFileName, timeLimit.toString()); + process = processBuilder.start(); + //debug.debug("engine command=" + commandString); + String stdout = IOUtils.toString(process.getInputStream(), "UTF-8"); + String stderr = IOUtils.toString(process.getErrorStream(), "UTF-8"); debug.debug("stdout=" + stdout); debug.debug("stderr=" + stderr); - if (p.isAlive()) { - p.wait(); + if (process.isAlive()) { + process.wait(); } OptimizerResponseUtility responseUtility = new OptimizerResponseUtility(); OptimizerResults optimizerResults = responseUtility.parseOptimizerResult(outputFileName.toFile()); @@ -233,7 +235,7 @@ public class OptimizerClient { apiResponse.setErrorMessage( LogMessages.OPTIMIZER_REQUEST_TIMEOUT.format(uuid.toString(), timeLimit.toString())); Observation.report(LogMessages.OPTIMIZER_REQUEST_TIMEOUT, uuid.toString(), timeLimit.toString()); - p.destroyForcibly(); + process.destroyForcibly(); } catch (Exception e) { apiResponse.setStatus(OptimizerEngineResponseStatus.FAILED); apiResponse.setErrorMessage(LogMessages.UNEXPECTED_EXCEPTION.format(e.getMessage())); @@ -246,32 +248,25 @@ public class OptimizerClient { return apiResponse; } - private List<String> buildCommand(Path inputFileName, Path outputFileName, String timeLimit) { + private ProcessBuilder buildCommand(Path inputFileName, Path outputFileName, String timeLimit) { + ProcessBuilder processBuilder = new ProcessBuilder(); List<String> command = new ArrayList<>(); + String commandline = env.getProperty("cmso.minizinc.command.commandline", "/bin/bash -x scripts/minizinc/run.sh"); String minizinc = env.getProperty("cmso.minizinc.command.exe", "minizinc"); String solver = env.getProperty("cmso.minizinc.command.solver", "OSICBC"); - String additional = env.getProperty("cmso.minizinc.command.additional", ""); String script = env.getProperty("cmso.minizinc.command.mzn", "scripts/minizinc/generic_attributes.mzn"); - - command.add(minizinc); - command.add("--solver"); - command.add(solver); - command.add("--time-limit"); - command.add(timeLimit); - command.add("--time-limit"); - command.add(timeLimit); - command.add("--soln-sep"); - command.add("\"\""); - command.add("--search-complete-msg"); - command.add("\"\""); - for (String add : additional.split(" ")) { - command.add(add); + Map<String, String> environment = processBuilder.environment(); + environment.put("MINIZINC", minizinc); + environment.put("MINIZINC_SOLVER", solver); + environment.put("MINIZINC_TIMELIMIT", timeLimit); + environment.put("MINIZINC_OUTPUT", outputFileName.toString()); + environment.put("MINIZINC_MZN", script); + environment.put("MINIZINC_DZN", inputFileName.toString()); + for (String arg : commandline.split(" ")) { + command.add(arg); } - command.add("-o"); - command.add(outputFileName.toString()); - command.add(script); - command.add(inputFileName.toString()); - return command; + processBuilder.command(command); + return processBuilder; } diff --git a/cmso-optimizer/src/main/java/org/onap/optf/cmso/optimizer/service/rs/HealthCheckImpl.java b/cmso-optimizer/src/main/java/org/onap/optf/cmso/optimizer/service/rs/HealthCheckImpl.java index 80deaaf..bc7ce52 100644 --- a/cmso-optimizer/src/main/java/org/onap/optf/cmso/optimizer/service/rs/HealthCheckImpl.java +++ b/cmso-optimizer/src/main/java/org/onap/optf/cmso/optimizer/service/rs/HealthCheckImpl.java @@ -103,4 +103,6 @@ public class HealthCheckImpl implements HealthCheck { return hcc; } + + } diff --git a/cmso-robot/.project b/cmso-robot/.project index 356fc8a..174d170 100644 --- a/cmso-robot/.project +++ b/cmso-robot/.project @@ -6,6 +6,11 @@ </projects> <buildSpec> <buildCommand> + <name>org.eclipse.jdt.core.javabuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> <name>org.python.pydev.PyDevBuilder</name> <arguments> </arguments> @@ -15,9 +20,22 @@ <arguments> </arguments> </buildCommand> + <buildCommand> + <name>net.sf.eclipsecs.core.CheckstyleBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.m2e.core.maven2Builder</name> + <arguments> + </arguments> + </buildCommand> </buildSpec> <natures> + <nature>org.eclipse.jdt.core.javanature</nature> + <nature>org.eclipse.m2e.core.maven2Nature</nature> <nature>org.robotframework.ide.eclipse.main.plugin.robotNature</nature> <nature>org.python.pydev.pythonNature</nature> + <nature>net.sf.eclipsecs.core.CheckstyleNature</nature> </natures> </projectDescription> diff --git a/cmso-robot/docker/cmso-service/cmso-optimizer/etc/config/cadi.properties b/cmso-robot/docker/cmso-service/cmso-optimizer/etc/config/cadi.properties new file mode 100644 index 0000000..9a6b91c --- /dev/null +++ b/cmso-robot/docker/cmso-service/cmso-optimizer/etc/config/cadi.properties @@ -0,0 +1,21 @@ +#------------------------------------------------------------------------------- +# ============LICENSE_START============================================== +# Copyright (c) 2019 AT&T Intellectual Property. +# ======================================================================= +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain a +# copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express +# or implied. See the License for the specific language governing +# permissions and limitations under the License. +# ============LICENSE_END================================================= +# +#------------------------------------------------------------------------------- +cadi_loglevel=DEBUG +cadi_prop_files=src/main/resources/aaf/org.onap.oof.props + diff --git a/cmso-robot/docker/cmso-service/cmso-optimizer/etc/config/liquibase.properties b/cmso-robot/docker/cmso-service/cmso-optimizer/etc/config/liquibase.properties new file mode 100644 index 0000000..fcda8bd --- /dev/null +++ b/cmso-robot/docker/cmso-service/cmso-optimizer/etc/config/liquibase.properties @@ -0,0 +1,43 @@ +### +# Copyright (c) 2017-2019 AT&T Intellectual Property. +# Modifications Copyright © 2018 IBM. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# +# Unless otherwise specified, all documentation contained herein is licensed +# under the Creative Commons License, Attribution 4.0 Intl. (the ââ?¬Å"Licenseââ?¬); +# you may not use this documentation except in compliance with the License. +# You may obtain a copy of the License at +# +# https://creativecommons.org/licenses/by/4.0/ +# +# Unless required by applicable law or agreed to in writing, documentation +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +### +spring.datasource.jdbcUrl=jdbc:mariadb://${DB_HOST}:3306/optimizer?createDatabaseIfNotExist=true +spring.datasource.driver-class-name=org.mariadb.jdbc.Driver +spring.datasource.username=root +spring.datasource.password=beer + +spring.datasource.initialize=false +spring.datasource.tomcat.max-wait=10000 +spring.datasource.tomcat.initialSize=5 +spring.datasource.tomcat.max-active=25 +spring.datasource.tomcat.test-on-borrow=true + + +changeLogFile=optimizer-liquibase-changeLog.xml diff --git a/cmso-robot/docker/cmso-service/cmso-optimizer/etc/config/optimizer.properties b/cmso-robot/docker/cmso-service/cmso-optimizer/etc/config/optimizer.properties new file mode 100644 index 0000000..babc736 --- /dev/null +++ b/cmso-robot/docker/cmso-service/cmso-optimizer/etc/config/optimizer.properties @@ -0,0 +1,54 @@ +#------------------------------------------------------------------------------- +# ============LICENSE_START============================================== +# Copyright (c) 2019 AT&T Intellectual Property. +# ======================================================================= +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain a +# copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express +# or implied. See the License for the specific language governing +# permissions and limitations under the License. +# ============LICENSE_END================================================= +# +#------------------------------------------------------------------------------- +### + +### MySQL DB. +spring.datasource.url=jdbc:mariadb://${DB_HOST}:3306/optimizer +spring.datasource.driver-class-name=org.mariadb.jdbc.Driver +spring.datasource.username=root +spring.datasource.password=beer +cmso.database.password=beer + +spring.datasource.initialize=false +spring.datasource.tomcat.max-wait=10000 +spring.datasource.tomcat.initialSize=5 +spring.datasource.tomcat.max-active=25 +spring.datasource.tomcat.test-on-borrow=true + +spring.jpa.show-sql=true +spring.jpa.hibernate.ddl-auto=none +spring.jpa.hibernate.naming.strategy=org.hibernate.cfg.EJB3NamingStrategy +spring.jpa.database-platform=org.hibernate.dialect.MySQL5InnoDBDialect +spring.jpa.hibernate.naming.physical-strategy=org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl +spring.jpa.hibernate.id.new_generator_mappings=false +hibernate.id.new_generator_mappings=false + +logging.level.org.hibernate.SQL=WARN + +logging.level.org.hibernate=WARN + + +cmso.topology.create.request.url=http://${TOPOLOGY_HOST}:7998/topology/v1/current +cmso.ticket.create.request.url=http://${TICKETMGT_HOST}:7999/ticketmgt/v1/activetickets +cmso.local.policy.folder=data/policies + +cmso.minizinc.command.exe=/mz-dist/bin/minizinc +cmso.minizinc.command.solver=OSICBC +cmso.minizinc.command.timelimit=60000 +cmso.minizinc.command.mzn=scripts/minizinc/generic_attributes.mzn diff --git a/cmso-robot/docker/etc/startDbinitService.sh b/cmso-robot/docker/cmso-service/cmso-optimizer/etc/startDbinitService.sh index e6d6d9f..a7cd3ff 100644..100755 --- a/cmso-robot/docker/etc/startDbinitService.sh +++ b/cmso-robot/docker/cmso-service/cmso-optimizer/etc/startDbinitService.sh @@ -1,7 +1,7 @@ #!/bin/sh apt update apt install netcat --assume-yes -COUNTER=10 +COUNTER=30 while [ $COUNTER -gt 0 ]; do nc -z ${DB_HOST} 3306 if [ $? -eq 0 ]; then diff --git a/cmso-robot/docker/etc/startJacocoService.sh b/cmso-robot/docker/cmso-service/cmso-optimizer/etc/startJacocoService.sh index 0db6f1f..0db6f1f 100644 --- a/cmso-robot/docker/etc/startJacocoService.sh +++ b/cmso-robot/docker/cmso-service/cmso-optimizer/etc/startJacocoService.sh diff --git a/cmso-robot/docker/cmso-service/cmso-service/etc/config/cadi.properties b/cmso-robot/docker/cmso-service/cmso-service/etc/config/cadi.properties new file mode 100644 index 0000000..9a6b91c --- /dev/null +++ b/cmso-robot/docker/cmso-service/cmso-service/etc/config/cadi.properties @@ -0,0 +1,21 @@ +#------------------------------------------------------------------------------- +# ============LICENSE_START============================================== +# Copyright (c) 2019 AT&T Intellectual Property. +# ======================================================================= +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain a +# copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express +# or implied. See the License for the specific language governing +# permissions and limitations under the License. +# ============LICENSE_END================================================= +# +#------------------------------------------------------------------------------- +cadi_loglevel=DEBUG +cadi_prop_files=src/main/resources/aaf/org.onap.oof.props + diff --git a/cmso-robot/docker/etc/config/cmso.properties b/cmso-robot/docker/cmso-service/cmso-service/etc/config/cmso.properties index 00bd326..3602577 100644 --- a/cmso-robot/docker/etc/config/cmso.properties +++ b/cmso-robot/docker/cmso-service/cmso-service/etc/config/cmso.properties @@ -52,9 +52,9 @@ spring.jpa.hibernate.naming.physical-strategy=org.hibernate.boot.model.naming.Ph spring.jpa.hibernate.id.new_generator_mappings=false hibernate.id.new_generator_mappings=false -logging.level.org.hibernate.SQL=TRACE +logging.level.org.hibernate.SQL=WARN -logging.level.org.hibernate=TRACE +logging.level.org.hibernate=WARN # cmso.aaf.enabled=false diff --git a/cmso-robot/docker/etc/config/liquibase.properties b/cmso-robot/docker/cmso-service/cmso-service/etc/config/liquibase.properties index b8c850e..b8c850e 100644 --- a/cmso-robot/docker/etc/config/liquibase.properties +++ b/cmso-robot/docker/cmso-service/cmso-service/etc/config/liquibase.properties diff --git a/cmso-robot/docker/etc/config/optimizer.properties b/cmso-robot/docker/cmso-service/cmso-service/etc/config/optimizer.properties index b222d7b..f0d4651 100644 --- a/cmso-robot/docker/etc/config/optimizer.properties +++ b/cmso-robot/docker/cmso-service/cmso-service/etc/config/optimizer.properties @@ -29,6 +29,6 @@ # limitations under the License. #------------------------------------------------------------------------------- -cmso.optimizer.url=http://localhost:8080/cmso/v1/loopbacktest/optimizer -cmso.optimizer.callbackurl=http://localhost:8080/cmso/v1/optimizerCallback - +cmso.optimizer.request.url=${OPTIMIZER_URL} +cmso.optimizer.status.url=${OPTIMIZER_URL} +cmso.optimizer.health.url=${OPTIMIZER_HEALTH_URL} diff --git a/cmso-robot/docker/etc/config/ticketmgt.properties b/cmso-robot/docker/cmso-service/cmso-service/etc/config/ticketmgt.properties index bfdaec6..bfdaec6 100644 --- a/cmso-robot/docker/etc/config/ticketmgt.properties +++ b/cmso-robot/docker/cmso-service/cmso-service/etc/config/ticketmgt.properties diff --git a/cmso-robot/docker/cmso-service/cmso-service/etc/startDbinitService.sh b/cmso-robot/docker/cmso-service/cmso-service/etc/startDbinitService.sh new file mode 100755 index 0000000..a7cd3ff --- /dev/null +++ b/cmso-robot/docker/cmso-service/cmso-service/etc/startDbinitService.sh @@ -0,0 +1,17 @@ +#!/bin/sh +apt update +apt install netcat --assume-yes +COUNTER=30 +while [ $COUNTER -gt 0 ]; do + nc -z ${DB_HOST} 3306 + if [ $? -eq 0 ]; then + let COUNTER=0 + else + let COUNTER=COUNTER-1 + sleep 10 + fi +done + +echo "VM_ARGS="${VM_ARGS} + +java -Djava.security.egd=file:/dev/./urandom ${VM_ARGS} -Xms256m -Xmx1024m -jar ./app.jar --spring.config.location=/share/etc/config/liquibase.properties diff --git a/cmso-robot/docker/cmso-service/cmso-service/etc/startJacocoService.sh b/cmso-robot/docker/cmso-service/cmso-service/etc/startJacocoService.sh new file mode 100644 index 0000000..0db6f1f --- /dev/null +++ b/cmso-robot/docker/cmso-service/cmso-service/etc/startJacocoService.sh @@ -0,0 +1,14 @@ +#!/bin/sh +apt update +apt install wget +apt install unzip --assume-yes +wget http://repo1.maven.org/maven2/org/jacoco/org.jacoco.agent/0.8.2/org.jacoco.agent-0.8.2.jar +unzip org.jacoco.agent-0.8.2.jar +cp org.jacoco.agent-0.8.2/jacocoagent.jar . +ls -l + +VM_ARGS="${VM_ARGS} -javaagent:./jacocoagent.jar=destfile=/share/logs/jacoco.exec,dumponexit=true,jmx=true,append=true,output=file,includes=org.onap.optf.cmso.*" + +echo "VM_ARGS=${VM_ARGS}" + +java -Djava.security.egd=file:/dev/./urandom -Xms256m -Xmx1024m ${VM_ARGS} -jar ./app.jar diff --git a/cmso-robot/docker/cmso-service/cmso-ticketmgt/etc/config/cadi.properties b/cmso-robot/docker/cmso-service/cmso-ticketmgt/etc/config/cadi.properties new file mode 100644 index 0000000..9a6b91c --- /dev/null +++ b/cmso-robot/docker/cmso-service/cmso-ticketmgt/etc/config/cadi.properties @@ -0,0 +1,21 @@ +#------------------------------------------------------------------------------- +# ============LICENSE_START============================================== +# Copyright (c) 2019 AT&T Intellectual Property. +# ======================================================================= +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain a +# copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express +# or implied. See the License for the specific language governing +# permissions and limitations under the License. +# ============LICENSE_END================================================= +# +#------------------------------------------------------------------------------- +cadi_loglevel=DEBUG +cadi_prop_files=src/main/resources/aaf/org.onap.oof.props + diff --git a/cmso-robot/docker/cmso-service/cmso-ticketmgt/etc/config/ticketmgt.properties b/cmso-robot/docker/cmso-service/cmso-ticketmgt/etc/config/ticketmgt.properties new file mode 100644 index 0000000..5ca252f --- /dev/null +++ b/cmso-robot/docker/cmso-service/cmso-ticketmgt/etc/config/ticketmgt.properties @@ -0,0 +1,30 @@ +#------------------------------------------------------------------------------- +# Copyright © 2017-2019 AT&T Intellectual Property. +# Modifications Copyright © 2018 IBM. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# +# Unless otherwise specified, all documentation contained herein is licensed +# under the Creative Commons License, Attribution 4.0 Intl. (the ā??Licenseā?); +# you may not use this documentation except in compliance with the License. +# You may obtain a copy of the License at +# +# https://creativecommons.org/licenses/by/4.0/ +# +# Unless required by applicable law or agreed to in writing, documentation +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +#------------------------------------------------------------------------------- diff --git a/cmso-robot/docker/cmso-service/cmso-ticketmgt/etc/startJacocoService.sh b/cmso-robot/docker/cmso-service/cmso-ticketmgt/etc/startJacocoService.sh new file mode 100644 index 0000000..0db6f1f --- /dev/null +++ b/cmso-robot/docker/cmso-service/cmso-ticketmgt/etc/startJacocoService.sh @@ -0,0 +1,14 @@ +#!/bin/sh +apt update +apt install wget +apt install unzip --assume-yes +wget http://repo1.maven.org/maven2/org/jacoco/org.jacoco.agent/0.8.2/org.jacoco.agent-0.8.2.jar +unzip org.jacoco.agent-0.8.2.jar +cp org.jacoco.agent-0.8.2/jacocoagent.jar . +ls -l + +VM_ARGS="${VM_ARGS} -javaagent:./jacocoagent.jar=destfile=/share/logs/jacoco.exec,dumponexit=true,jmx=true,append=true,output=file,includes=org.onap.optf.cmso.*" + +echo "VM_ARGS=${VM_ARGS}" + +java -Djava.security.egd=file:/dev/./urandom -Xms256m -Xmx1024m ${VM_ARGS} -jar ./app.jar diff --git a/cmso-robot/docker/cmso-service/cmso-topology/etc/config/cadi.properties b/cmso-robot/docker/cmso-service/cmso-topology/etc/config/cadi.properties new file mode 100644 index 0000000..5135d1d --- /dev/null +++ b/cmso-robot/docker/cmso-service/cmso-topology/etc/config/cadi.properties @@ -0,0 +1,4 @@ + +cadi_loglevel=DEBUG +cadi_prop_files=src/main/resources/aaf/org.onap.oof.props + diff --git a/cmso-robot/docker/cmso-service/cmso-topology/etc/config/topology.properties b/cmso-robot/docker/cmso-service/cmso-topology/etc/config/topology.properties new file mode 100644 index 0000000..5ca252f --- /dev/null +++ b/cmso-robot/docker/cmso-service/cmso-topology/etc/config/topology.properties @@ -0,0 +1,30 @@ +#------------------------------------------------------------------------------- +# Copyright © 2017-2019 AT&T Intellectual Property. +# Modifications Copyright © 2018 IBM. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# +# Unless otherwise specified, all documentation contained herein is licensed +# under the Creative Commons License, Attribution 4.0 Intl. (the ā??Licenseā?); +# you may not use this documentation except in compliance with the License. +# You may obtain a copy of the License at +# +# https://creativecommons.org/licenses/by/4.0/ +# +# Unless required by applicable law or agreed to in writing, documentation +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +#------------------------------------------------------------------------------- diff --git a/cmso-robot/docker/cmso-service/cmso-topology/etc/startJacocoService.sh b/cmso-robot/docker/cmso-service/cmso-topology/etc/startJacocoService.sh new file mode 100644 index 0000000..0db6f1f --- /dev/null +++ b/cmso-robot/docker/cmso-service/cmso-topology/etc/startJacocoService.sh @@ -0,0 +1,14 @@ +#!/bin/sh +apt update +apt install wget +apt install unzip --assume-yes +wget http://repo1.maven.org/maven2/org/jacoco/org.jacoco.agent/0.8.2/org.jacoco.agent-0.8.2.jar +unzip org.jacoco.agent-0.8.2.jar +cp org.jacoco.agent-0.8.2/jacocoagent.jar . +ls -l + +VM_ARGS="${VM_ARGS} -javaagent:./jacocoagent.jar=destfile=/share/logs/jacoco.exec,dumponexit=true,jmx=true,append=true,output=file,includes=org.onap.optf.cmso.*" + +echo "VM_ARGS=${VM_ARGS}" + +java -Djava.security.egd=file:/dev/./urandom -Xms256m -Xmx1024m ${VM_ARGS} -jar ./app.jar diff --git a/cmso-robot/docker/cmso-service/docker-compose.yml b/cmso-robot/docker/cmso-service/docker-compose.yml index 44f7c27..5c2f173 100644 --- a/cmso-robot/docker/cmso-service/docker-compose.yml +++ b/cmso-robot/docker/cmso-service/docker-compose.yml @@ -11,39 +11,92 @@ services: ports: - "8806:3306" - db-init: + db-init-svc: image: onap/optf-cmso-dbinit volumes: - - "../etc:/share/etc:rw" - - "../logs:/share/logs:rw" + - "./cmso-service/etc:/share/etc:rw" + - "./cmso-service/logs:/share/logs:rw" depends_on: - mariadb environment: - DB_HOST=mariadb entrypoint: "bash -x /share/etc/startDbinitService.sh" + db-init-opt: + image: onap/optf-cmso-dbinit + volumes: + - "./cmso-optimizer/etc:/share/etc:rw" + - "./cmso-optimizer/logs:/share/logs:rw" + depends_on: + - mariadb + environment: + - DB_HOST=mariadb + entrypoint: "bash -x /share/etc/startDbinitService.sh" + + cmso-service: image: onap/optf-cmso-service volumes: - - "../etc:/share/etc:rw" - - "../logs:/share/logs:rw" - - "../debug-logs:/share/debug-logs:rw" + - "./cmso-service/etc:/share/etc:rw" + - "./cmso-service/logs:/share/logs:rw" + - "./cmso-service/debug-logs:/share/debug-logs:rw" depends_on: - - db-init + - db-init-svc entrypoint: "bash -x /share/etc/startJacocoService.sh" ports: - "8080:8080" environment: - DB_HOST=mariadb + - OPTIMIZER_URL=http://cmso-optimizer:7997/optimizer/v1/optimize/schedule + - OPTIMIZER_HEALTH_URL=http://cmso-optimizer:7997/optimizer/v1/health?checkInterfaces=true + + cmso-ticketmgt: + image: onap/optf-cmso-ticketmgt + volumes: + - "./cmso-ticketmgt/etc:/share/etc:rw" + - "./cmso-ticketmgt/logs:/share/logs:rw" + - "./cmso-ticketmgt/debug-logs:/share/debug-logs:rw" + entrypoint: "bash -x /share/etc/startJacocoService.sh" + ports: + - "7999:7999" + + cmso-topology: + image: onap/optf-cmso-topology + volumes: + - "./cmso-topology/etc:/share/etc:rw" + - "./cmso-topology/logs:/share/logs:rw" + - "./cmso-topology/debug-logs:/share/debug-logs:rw" + entrypoint: "bash -x /share/etc/startJacocoService.sh" + ports: + - "7998:7998" + + cmso-optimizer: + image: onap/optf-cmso-optimizer + volumes: + - "./cmso-optimizer/etc:/share/etc:rw" + - "./cmso-optimizer/logs:/share/logs:rw" + - "./cmso-optimizer/debug-logs:/share/debug-logs:rw" + depends_on: + - db-init-opt + entrypoint: "bash -x /share/etc/startJacocoService.sh" + ports: + - "7997:7997" + environment: + - DB_HOST=mariadb + - TOPOLOGY_HOST=cmso-topology + - TICKETMGT_HOST=cmso-ticketmgt + cmso-robot: image: onap/optf-cmso-robot volumes: - - "../logs:/share:rw" + - "./cmso-robot/logs:/share:rw" depends_on: - cmso-service environment: - GLOBAL_SCHEDULER_URL=http://cmso-service:8080 + - GLOBAL_OPTIMIZER_URL=http://cmso-optimizer:7997 + - CMSO_STARTUP_WAIT_TIME=600s - TAGS=-i ete - OUTPUT=-d /share working_dir: /opt/cmso-robot diff --git a/cmso-robot/ete.sh b/cmso-robot/ete.sh index 0991b86..107c661 100644..100755 --- a/cmso-robot/ete.sh +++ b/cmso-robot/ete.sh @@ -7,6 +7,8 @@ ROBOT_PATH=${ROBOT_PATH}:${ROBOT_HOME}/robot/locallibrary/cmsoUtils VARIABLE_FILES="${VARIABLE_FILES} -V ${ROBOT_HOME}/robot/assets/test_properties.py" VARIABLES="${VARIABLES} -v GLOBAL_SCHEDULER_URL:${GLOBAL_SCHEDULER_URL}" +VARIABLES="${VARIABLES} -v GLOBAL_OPTIMIZER_URL:${GLOBAL_OPTIMIZER_URL}" +VARIABLES="${VARIABLES} -v CMSO_STARTUP_WAIT_TIME:${CMSO_STARTUP_WAIT_TIME}" HTTP_PROXY= HTTPS_PROXY= diff --git a/cmso-robot/robot/assets/test_properties.py b/cmso-robot/robot/assets/test_properties.py index 74c5aed..38840ac 100644 --- a/cmso-robot/robot/assets/test_properties.py +++ b/cmso-robot/robot/assets/test_properties.py @@ -18,6 +18,7 @@ GLOBAL_CALLBACK_PASSWORD = "onap-user" GLOBAL_APPLICATION_ID= "schedulertest" GLOBAL_CALLBACK_URL="http://localhost:8900/scheduler/v1/loopbacktest/vid" +CMSO_STARTUP_WAIT_TIME="600s" diff --git a/cmso-robot/robot/testsuites/AAAwait_for_server.robot b/cmso-robot/robot/testsuites/AAAwait_for_server.robot index c655c98..7794602 100644 --- a/cmso-robot/robot/testsuites/AAAwait_for_server.robot +++ b/cmso-robot/robot/testsuites/AAAwait_for_server.robot @@ -10,7 +10,7 @@ Resource ../resources/scheduler_common.robot *** Test Cases *** Wait For Healthy CMSO [Tags] ete - Wait Until Keyword Succeeds 240s 30s CMSO Health Check + Wait Until Keyword Succeeds ${CMSO_STARTUP_WAIT_TIME} 30s CMSO Health Check *** Keywords *** CMSO Health Check diff --git a/cmso-service/pom.xml b/cmso-service/pom.xml index 3700d25..4081cc3 100644 --- a/cmso-service/pom.xml +++ b/cmso-service/pom.xml @@ -33,12 +33,12 @@ <version>1.0.1-SNAPSHOT</version>
</parent>
- <groupId>org.onap.optf.cmso</groupId>
+ <groupId>org.onap.optf.cmso.service</groupId>
<artifactId>cmso-service</artifactId>
<packaging>jar</packaging>
- <name>cmso</name>
+ <name>cmso-service</name>
<properties>
<maven.build.timestamp.format>yyyyMMdd'T'HHmmss'Z'</maven.build.timestamp.format>
diff --git a/cmso-topology/pom.xml b/cmso-topology/pom.xml index a426a82..553fe91 100644 --- a/cmso-topology/pom.xml +++ b/cmso-topology/pom.xml @@ -27,7 +27,7 @@ <packaging>jar</packaging> - <name>cmso</name> + <name>cmso-topology</name> <properties> <maven.build.timestamp.format>yyyyMMdd'T'HHmmss'Z'</maven.build.timestamp.format> @@ -370,8 +370,8 @@ <apiVersion>1.23</apiVersion> <images> <image> - <name>onap/optf-cmso-tciketmgt</name> - <alias>onap-optf-cmso-tciketmgt</alias> + <name>onap/optf-cmso-topology</name> + <alias>onap-optf-cmso-topology</alias> <build> <cleanup>true</cleanup> <tags> |