diff options
Diffstat (limited to 'cmso-sonar')
27 files changed, 1557 insertions, 0 deletions
diff --git a/cmso-sonar/docker/integration/cmso-optimizer/etc/config/cadi.properties b/cmso-sonar/docker/integration/cmso-optimizer/etc/config/cadi.properties new file mode 100644 index 0000000..9a6b91c --- /dev/null +++ b/cmso-sonar/docker/integration/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-sonar/docker/integration/cmso-optimizer/etc/config/liquibase.properties b/cmso-sonar/docker/integration/cmso-optimizer/etc/config/liquibase.properties new file mode 100644 index 0000000..fcda8bd --- /dev/null +++ b/cmso-sonar/docker/integration/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-sonar/docker/integration/cmso-optimizer/etc/config/optimizer.properties b/cmso-sonar/docker/integration/cmso-optimizer/etc/config/optimizer.properties new file mode 100644 index 0000000..babc736 --- /dev/null +++ b/cmso-sonar/docker/integration/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-sonar/docker/integration/cmso-optimizer/etc/startDbinitService.sh b/cmso-sonar/docker/integration/cmso-optimizer/etc/startDbinitService.sh new file mode 100755 index 0000000..a7cd3ff --- /dev/null +++ b/cmso-sonar/docker/integration/cmso-optimizer/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-sonar/docker/integration/cmso-optimizer/etc/startJacocoService.sh b/cmso-sonar/docker/integration/cmso-optimizer/etc/startJacocoService.sh new file mode 100644 index 0000000..0db6f1f --- /dev/null +++ b/cmso-sonar/docker/integration/cmso-optimizer/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-sonar/docker/integration/cmso-service/etc/config/cadi.properties b/cmso-sonar/docker/integration/cmso-service/etc/config/cadi.properties new file mode 100644 index 0000000..9a6b91c --- /dev/null +++ b/cmso-sonar/docker/integration/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-sonar/docker/integration/cmso-service/etc/config/cmso.properties b/cmso-sonar/docker/integration/cmso-service/etc/config/cmso.properties new file mode 100644 index 0000000..3602577 --- /dev/null +++ b/cmso-sonar/docker/integration/cmso-service/etc/config/cmso.properties @@ -0,0 +1,104 @@ + +#------------------------------------------------------------------------------- +# Copyright © 2017-2018 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. +#------------------------------------------------------------------------------- +### + +### MySQL DB. +spring.datasource.url=jdbc:mariadb://${DB_HOST}:3306/cmso +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.aaf.enabled=false + +# Enable swagger - Enable in development and test only +cmso.swagger.enabled=true + +# Enable schedule immediate to be dispatched without ticket approvals +# Has no effect when in vTM loopback mode as always approved. +cmso.cm.dispatch.immediate.enabled = true + +# NUmber of seconds between sniro dispatch jobs +cmso.optimizer.job.interval.ms=10000 + +# NUmber of seconds between change management cmso polling jobs +# Controls frequenct of polling to the ChangeManagementScheduler table... +cmso.cm.polling.job.interval.ms=10000 +# How many management cmso polling intervals to look ahead to dispatch +# (To account for possible latency of the polling job) +cmso.cm.polling.job.lookahead.intervals=5 +# Lead time before event time to enable dispatcher to +# test that it is safe to dispatch (i.e. meeting reminder lead time) +cmso.cm.dispatcher.lead.time.ms=5000 +# Lead time to prepare and call VID to dispatch work to MSO +# Includes latency from VID call to the start of the workflow +cmso.cm.dispatch.lead.time.ms=1000 + +# Interval between polling to check status of schedules in Notifications Initiated status +cmso.status.job.interval.ms=60000 + +org.quartz.jobStore.class=org.quartz.simpl.RAMJobStore + +loopback.mso.requestId=dummy123 + +so.polling.interval.ms=10000 +#mso.user=cmso@onap.org +#mso.pass=enc:bfodXf8qRfCqMvlxVBYNWQ== + +## loopback settings +so.url=http://localhost:8080/cmso/v1/loopbacktest/onap/so/infra/orchestrationRequests/v7 +so.user=cmso@onap.org +so.pass=enc:bfodXf8qRfCqMvlxVBYNWQ== + +mechid.user=cmso@onap.org +mechid.pass=enc:bfodXf8qRfCqMvlxVBYNWQ== + +cmso.dispatch.url=http://localhost:8089 diff --git a/cmso-sonar/docker/integration/cmso-service/etc/config/liquibase.properties b/cmso-sonar/docker/integration/cmso-service/etc/config/liquibase.properties new file mode 100644 index 0000000..b8c850e --- /dev/null +++ b/cmso-sonar/docker/integration/cmso-service/etc/config/liquibase.properties @@ -0,0 +1,54 @@ +### +# Copyright © 2017-2018 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/cmso?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=calendar-liquibase-changeLog.xml +changeLogFile=cmso-liquibase-changeLog.xml + + +#spring.main.web-environment=false +#outputChangeLogFile=src/main/resources/cmso-output-changelog.xml +#url=jdbc:mariadb://localhost:3306/calendar +#url=jdbc:mysql://localhost:3306/cmso +#username=root +#password=root +#driver=org.mariadb.jdbc.Driver +#driver=com.mysql.jdbc.Driver diff --git a/cmso-sonar/docker/integration/cmso-service/etc/config/optimizer.properties b/cmso-sonar/docker/integration/cmso-service/etc/config/optimizer.properties new file mode 100644 index 0000000..f0d4651 --- /dev/null +++ b/cmso-sonar/docker/integration/cmso-service/etc/config/optimizer.properties @@ -0,0 +1,34 @@ +#------------------------------------------------------------------------------- +# Copyright © 2017-2018 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. +#------------------------------------------------------------------------------- + +cmso.optimizer.request.url=${OPTIMIZER_URL} +cmso.optimizer.status.url=${OPTIMIZER_URL} +cmso.optimizer.health.url=${OPTIMIZER_HEALTH_URL} diff --git a/cmso-sonar/docker/integration/cmso-service/etc/config/ticketmgt.properties b/cmso-sonar/docker/integration/cmso-service/etc/config/ticketmgt.properties new file mode 100644 index 0000000..bfdaec6 --- /dev/null +++ b/cmso-sonar/docker/integration/cmso-service/etc/config/ticketmgt.properties @@ -0,0 +1,38 @@ +#------------------------------------------------------------------------------- +# Copyright © 2017-2018 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. +#------------------------------------------------------------------------------- + +tm.vnfs.per.ticket=1 +tm.getPath=http://localhost:8080/cmso/v1/tm/getChangeRecord +tm.createPath=http://localhost:8080/cmso/v1/tm/createChangeRecord +tm.closePath=http://localhost:8080/cmso/v1/tm/closeCancelChangeRecord +tm.updatePath=http://localhost:8080/cmso/v1/tm/updateChangeRecord +tm.approvalStatus=Approved|Scheduled,Approved|Assigned +tm.template.folder=data/templates/tm diff --git a/cmso-sonar/docker/integration/cmso-service/etc/startDbinitService.sh b/cmso-sonar/docker/integration/cmso-service/etc/startDbinitService.sh new file mode 100755 index 0000000..a7cd3ff --- /dev/null +++ b/cmso-sonar/docker/integration/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-sonar/docker/integration/cmso-service/etc/startJacocoService.sh b/cmso-sonar/docker/integration/cmso-service/etc/startJacocoService.sh new file mode 100644 index 0000000..5d65a7f --- /dev/null +++ b/cmso-sonar/docker/integration/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/service.jacoco.exec,dumponexit=true,jmx=true,append=true,output=file,includes=org.onap.*" + +echo "VM_ARGS=${VM_ARGS}" + +java -Djava.security.egd=file:/dev/./urandom -Xms256m -Xmx1024m ${VM_ARGS} -jar ./app.jar diff --git a/cmso-sonar/docker/integration/cmso-ticketmgt/etc/config/cadi.properties b/cmso-sonar/docker/integration/cmso-ticketmgt/etc/config/cadi.properties new file mode 100644 index 0000000..9a6b91c --- /dev/null +++ b/cmso-sonar/docker/integration/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-sonar/docker/integration/cmso-ticketmgt/etc/config/ticketmgt.properties b/cmso-sonar/docker/integration/cmso-ticketmgt/etc/config/ticketmgt.properties new file mode 100644 index 0000000..5ca252f --- /dev/null +++ b/cmso-sonar/docker/integration/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-sonar/docker/integration/cmso-ticketmgt/etc/startJacocoService.sh b/cmso-sonar/docker/integration/cmso-ticketmgt/etc/startJacocoService.sh new file mode 100644 index 0000000..0db6f1f --- /dev/null +++ b/cmso-sonar/docker/integration/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-sonar/docker/integration/cmso-topology/etc/config/cadi.properties b/cmso-sonar/docker/integration/cmso-topology/etc/config/cadi.properties new file mode 100644 index 0000000..5135d1d --- /dev/null +++ b/cmso-sonar/docker/integration/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-sonar/docker/integration/cmso-topology/etc/config/topology.properties b/cmso-sonar/docker/integration/cmso-topology/etc/config/topology.properties new file mode 100644 index 0000000..5ca252f --- /dev/null +++ b/cmso-sonar/docker/integration/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-sonar/docker/integration/cmso-topology/etc/startJacocoService.sh b/cmso-sonar/docker/integration/cmso-topology/etc/startJacocoService.sh new file mode 100644 index 0000000..0db6f1f --- /dev/null +++ b/cmso-sonar/docker/integration/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-sonar/docker/integration/docker-compose.yml b/cmso-sonar/docker/integration/docker-compose.yml new file mode 100644 index 0000000..5c2f173 --- /dev/null +++ b/cmso-sonar/docker/integration/docker-compose.yml @@ -0,0 +1,104 @@ +version: '3' + +services: + mariadb: + image: mariadb:10.1.11 + volumes: + - "/var/lib/mysql" + - "../mariadb/conf1:/etc/mysql/conf.d:ro" + environment: + - MYSQL_ROOT_PASSWORD=beer + ports: + - "8806:3306" + + db-init-svc: + image: onap/optf-cmso-dbinit + volumes: + - "./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: + - "./cmso-service/etc:/share/etc:rw" + - "./cmso-service/logs:/share/logs:rw" + - "./cmso-service/debug-logs:/share/debug-logs:rw" + depends_on: + - 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: + - "./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 + entrypoint: "bash -x /opt/cmso-robot/ete.sh" + diff --git a/cmso-sonar/docker/integration/ete_test.sh b/cmso-sonar/docker/integration/ete_test.sh new file mode 100755 index 0000000..0d86fef --- /dev/null +++ b/cmso-sonar/docker/integration/ete_test.sh @@ -0,0 +1,34 @@ +#!/bin/bash +docker-compose up >up.txt 2>&1 & + +### Wait for robot to finish +sleep 240 +docker exec cmso-service_cmso-robot_1 ls +while [ $? -ne 1 ]; do + sleep 60 + docker exec cmso-service_cmso-robot_1 ls +done + +### Shut down java with to give time to write the jacoco_exec file +docker exec cmso-service_cmso-service_1 pkill java +docker exec cmso-service_cmso-optimizer_1 pkill java +sleep 10 + +### wait for cmso containers to exit and jacoco files written +docker exec cmso-service_cmso-service_1 ls +while [ $? -ne 1 ]; do + sleep 60 + docker exec cmso-service_cmso-service_1 ls +done + +docker exec cmso-service_cmso-optimizer_1 ls +while [ $? -ne 1 ]; do + sleep 60 + docker exec cmso-service_cmso-optimizer_1 ls +done + +cat up.txt + +docker ps -a +docker-compose down +docker ps -a diff --git a/cmso-sonar/docker/integration/mariadb/conf1/my.cnf b/cmso-sonar/docker/integration/mariadb/conf1/my.cnf new file mode 100644 index 0000000..c6631fb --- /dev/null +++ b/cmso-sonar/docker/integration/mariadb/conf1/my.cnf @@ -0,0 +1,194 @@ +# Example MySQL config file for medium systems. +# +# This is for a system with memory 8G where MySQL plays +# an important part, or systems up to 128M where MySQL is used together with +# other programs (such as a web server) +# +# In this file, you can use all long options that a program supports. +# If you want to know which options a program supports, run the program +# with the "--help" option. + +# The following options will be passed to all MySQL clients +##[client] +##user = root +##port = 3306 +##socket = //opt/app/mysql/mysql.sock + +# Here follows entries for some specific programs + +# The MySQL server +[mysqld] +##performance_schema + +slow_query_log =ON +long_query_time =2 +slow_query_log_file =//var/lib/mysql/slow_query.log +##basedir = //opt/app/mysql/product/mariadb-10.1.11-linux-x86_64 +##datadir = //opt/app/mysql/data +##port = 3306 +##socket = //opt/app/mysql/mysql.sock +skip-external-locking +explicit_defaults_for_timestamp = true +skip-symbolic-links +local-infile = 0 +#ignore_db_dir=lost+found +key_buffer_size = 16M +max_allowed_packet = 4M +table_open_cache = 100 +sort_buffer_size = 512K +net_buffer_length = 8K +read_buffer_size = 256K +read_rnd_buffer_size = 512K +myisam_sort_buffer_size = 8M +max_connections = 500 +lower_case_table_names = 1 +thread_stack = 256K +thread_cache_size = 25 +query_cache_size = 8M +query_cache_type = 0 +query_prealloc_size = 512K +query_cache_limit = 1M + +# Password validation +##plugin-load-add=simple_password_check.so +##simple_password_check_other_characters=0 + +# Audit Log settings +plugin-load-add=server_audit.so +server_audit=FORCE_PLUS_PERMANENT +server_audit_file_path=//var/lib/mysql/audit.log +server_audit_file_rotate_size=50M +server_audit_events=CONNECT,QUERY,TABLE +server_audit_logging=on + +# Don't listen on a TCP/IP port at all. This can be a security enhancement, +# if all processes that need to connect to mysqld run on the same host. +# All interaction with mysqld must be made via Unix sockets or named pipes. +# Note that using this option without enabling named pipes on Windows +# (via the "enable-named-pipe" option) will render mysqld useless! +# +#skip-networking + +# Replication Master Server (default) +# binary logging is required for replication +##log-bin=//var/lib/mysql/mysql-bin + +# binary logging format - mixed recommended +binlog_format=row + +# required unique id between 1 and 2^32 - 1 +# defaults to 1 if master-host is not set +# but will not function as a master if omitted + +# Replication Slave (comment out master section to use this) +# +# To configure this host as a replication slave, you can choose between +# two methods : +# +# 1) Use the CHANGE MASTER TO command (fully described in our manual) - +# the syntax is: +# +# CHANGE MASTER TO MASTER_HOST=<host>, MASTER_PORT=<port>, +# MASTER_USER=<user>, MASTER_PASSWORD=<password> ; +# +# where you replace <host>, <user>, <password> by quoted strings and +# <port> by the master's port number (3306 by default). +# +# Example: +# +# CHANGE MASTER TO MASTER_HOST='125.564.12.1', MASTER_PORT=3306, +# MASTER_USER='joe', MASTER_PASSWORD='secret'; +# +# OR +# +# 2) Set the variables below. However, in case you choose this method, then +# start replication for the first time (even unsuccessfully, for example +# if you mistyped the password in master-password and the slave fails to +# connect), the slave will create a master.info file, and any later +# change in this file to the variables' values below will be ignored and +# overridden by the content of the master.info file, unless you shutdown +# the slave server, delete master.info and restart the slaver server. +# For that reason, you may want to leave the lines below untouched +# (commented) and instead use CHANGE MASTER TO (see above) +# +# required unique id between 2 and 2^32 - 1 +# (and different from the master) +# defaults to 2 if master-host is set +# but will not function as a slave if omitted +#server-id = 2 +# +# The replication master for this slave - required +#master-host = <hostname> +# +# The username the slave will use for authentication when connecting +# to the master - required +#master-user = <username> +# +# The password the slave will authenticate with when connecting to +# the master - required +#master-password = <password> +# +# The port the master is listening on. +# optional - defaults to 3306 +#master-port = <port> +# +# binary logging - not required for slaves, but recommended +#log-bin=mysql-bin + +# Uncomment the following if you are using InnoDB tables +##innodb_data_home_dir = //opt/app/mysql/data +##innodb_data_file_path = ibdata1:20M:autoextend:max:32G +##innodb_log_group_home_dir = //opt/app/mysql/iblogs +# You can set .._buffer_pool_size up to 50 - 80 % +# of RAM but beware of setting memory usage too high +innodb_buffer_pool_size = 128M +#innodb_additional_mem_pool_size = 2M +# Set .._log_file_size to 25 % of buffer pool size +innodb_log_file_size = 10M +innodb_log_files_in_group = 3 +innodb_log_buffer_size = 8M +#innodb_flush_log_at_trx_commit = 1 +innodb_lock_wait_timeout = 50 +innodb_autoextend_increment = 100 +expire_logs_days = 8 +open_files_limit = 2000 +transaction-isolation=READ-COMMITTED +####### Galera parameters ####### +## Galera Provider configuration +wsrep_provider=/usr/lib/galera/libgalera_smm.so +wsrep_provider_options="gcache.size=128M; gcache.page_size=10M" +## Galera Cluster configuration +wsrep_cluster_name="MSO-automated-tests-cluster" +wsrep_cluster_address="gcomm://" +#wsrep_cluster_address="gcomm://mariadb1,mariadb2,mariadb3" +##wsrep_cluster_address="gcomm://192.169.3.184,192.169.3.185,192.169.3.186" +## Galera Synchronization configuration +wsrep_sst_method=rsync +#wsrep_sst_method=xtrabackup-v2 +#wsrep_sst_auth="sstuser:Mon#2o!6" +## Galera Node configuration +wsrep_node_name="mariadb1" +##wsrep_node_address="192.169.3.184" +wsrep_on=OFF +## Status notification +#wsrep_notify_cmd=/opt/app/mysql/bin/wsrep_notify +####### + + +[mysqldump] +quick +max_allowed_packet = 16M + +[mysql] +no-auto-rehash +# Remove the next comment character if you are not familiar with SQL +#safe-updates + +[myisamchk] +key_buffer_size = 20971520 + +##[mysqlhotcopy] +##interactive-timeout +##[mysqld_safe] +##malloc-lib=//opt/app/mysql/local/lib/libjemalloc.so.1 +##log-error=//opt/app/mysql/log/mysqld.log
\ No newline at end of file diff --git a/cmso-sonar/docker/integration/mariadb/conf2/my.cnf b/cmso-sonar/docker/integration/mariadb/conf2/my.cnf new file mode 100644 index 0000000..bf5f9c1 --- /dev/null +++ b/cmso-sonar/docker/integration/mariadb/conf2/my.cnf @@ -0,0 +1,193 @@ +# Example MySQL config file for medium systems. +# +# This is for a system with memory 8G where MySQL plays +# an important part, or systems up to 128M where MySQL is used together with +# other programs (such as a web server) +# +# In this file, you can use all long options that a program supports. +# If you want to know which options a program supports, run the program +# with the "--help" option. + +# The following options will be passed to all MySQL clients +##[client] +##user = root +##port = 3306 +##socket = //opt/app/mysql/mysql.sock + +# Here follows entries for some specific programs + +# The MySQL server +[mysqld] +##performance_schema + +slow_query_log =ON +long_query_time =2 +slow_query_log_file =//var/lib/mysql/slow_query.log +##basedir = //opt/app/mysql/product/mariadb-10.1.11-linux-x86_64 +##datadir = //opt/app/mysql/data +##port = 3306 +##socket = //opt/app/mysql/mysql.sock +skip-external-locking +explicit_defaults_for_timestamp = true +skip-symbolic-links +local-infile = 0 +#ignore_db_dir=lost+found +key_buffer_size = 16M +max_allowed_packet = 4M +table_open_cache = 100 +sort_buffer_size = 512K +net_buffer_length = 8K +read_buffer_size = 256K +read_rnd_buffer_size = 512K +myisam_sort_buffer_size = 8M +max_connections = 500 +lower_case_table_names = 1 +thread_stack = 256K +thread_cache_size = 25 +query_cache_size = 8M +query_cache_type = 0 +query_prealloc_size = 512K +query_cache_limit = 1M + +# Password validation +##plugin-load-add=simple_password_check.so +##simple_password_check_other_characters=0 + +# Audit Log settings +plugin-load-add=server_audit.so +server_audit=FORCE_PLUS_PERMANENT +server_audit_file_path=//var/lib/mysql/audit.log +server_audit_file_rotate_size=50M +server_audit_events=CONNECT,QUERY,TABLE +server_audit_logging=on + +# Don't listen on a TCP/IP port at all. This can be a security enhancement, +# if all processes that need to connect to mysqld run on the same host. +# All interaction with mysqld must be made via Unix sockets or named pipes. +# Note that using this option without enabling named pipes on Windows +# (via the "enable-named-pipe" option) will render mysqld useless! +# +#skip-networking + +# Replication Master Server (default) +# binary logging is required for replication +##log-bin=//var/lib/mysql/mysql-bin + +# binary logging format - mixed recommended +binlog_format=row + +# required unique id between 1 and 2^32 - 1 +# defaults to 1 if master-host is not set +# but will not function as a master if omitted + +# Replication Slave (comment out master section to use this) +# +# To configure this host as a replication slave, you can choose between +# two methods : +# +# 1) Use the CHANGE MASTER TO command (fully described in our manual) - +# the syntax is: +# +# CHANGE MASTER TO MASTER_HOST=<host>, MASTER_PORT=<port>, +# MASTER_USER=<user>, MASTER_PASSWORD=<password> ; +# +# where you replace <host>, <user>, <password> by quoted strings and +# <port> by the master's port number (3306 by default). +# +# Example: +# +# CHANGE MASTER TO MASTER_HOST='125.564.12.1', MASTER_PORT=3306, +# MASTER_USER='joe', MASTER_PASSWORD='secret'; +# +# OR +# +# 2) Set the variables below. However, in case you choose this method, then +# start replication for the first time (even unsuccessfully, for example +# if you mistyped the password in master-password and the slave fails to +# connect), the slave will create a master.info file, and any later +# change in this file to the variables' values below will be ignored and +# overridden by the content of the master.info file, unless you shutdown +# the slave server, delete master.info and restart the slaver server. +# For that reason, you may want to leave the lines below untouched +# (commented) and instead use CHANGE MASTER TO (see above) +# +# required unique id between 2 and 2^32 - 1 +# (and different from the master) +# defaults to 2 if master-host is set +# but will not function as a slave if omitted +#server-id = 2 +# +# The replication master for this slave - required +#master-host = <hostname> +# +# The username the slave will use for authentication when connecting +# to the master - required +#master-user = <username> +# +# The password the slave will authenticate with when connecting to +# the master - required +#master-password = <password> +# +# The port the master is listening on. +# optional - defaults to 3306 +#master-port = <port> +# +# binary logging - not required for slaves, but recommended +#log-bin=mysql-bin + +# Uncomment the following if you are using InnoDB tables +##innodb_data_home_dir = //opt/app/mysql/data +##innodb_data_file_path = ibdata1:20M:autoextend:max:32G +##innodb_log_group_home_dir = //opt/app/mysql/iblogs +# You can set .._buffer_pool_size up to 50 - 80 % +# of RAM but beware of setting memory usage too high +innodb_buffer_pool_size = 6380M +#innodb_additional_mem_pool_size = 2M +# Set .._log_file_size to 25 % of buffer pool size +innodb_log_file_size = 150M +innodb_log_files_in_group = 3 +innodb_log_buffer_size = 8M +#innodb_flush_log_at_trx_commit = 1 +innodb_lock_wait_timeout = 50 +innodb_autoextend_increment = 100 +expire_logs_days = 8 +open_files_limit = 2000 +transaction-isolation=READ-COMMITTED +####### Galera parameters ####### +## Galera Provider configuration +wsrep_provider=/usr/lib/galera/libgalera_smm.so +wsrep_provider_options="gcache.size=2G; gcache.page_size=1G" +## Galera Cluster configuration +wsrep_cluster_name="MSO-automated-tests-cluster" +wsrep_cluster_address="gcomm://mariadb1,mariadb2,mariadb3" +##wsrep_cluster_address="gcomm://192.169.3.184,192.169.3.185,192.169.3.186" +## Galera Synchronization configuration +wsrep_sst_method=rsync +#wsrep_sst_method=xtrabackup-v2 +#wsrep_sst_auth="sstuser:Mon#2o!6" +## Galera Node configuration +wsrep_node_name="mariadb2" +##wsrep_node_address="192.169.3.184" +wsrep_on=ON +## Status notification +#wsrep_notify_cmd=/opt/app/mysql/bin/wsrep_notify +####### + + +[mysqldump] +quick +max_allowed_packet = 16M + +[mysql] +no-auto-rehash +# Remove the next comment character if you are not familiar with SQL +#safe-updates + +[myisamchk] +key_buffer_size = 20971520 + +##[mysqlhotcopy] +##interactive-timeout +##[mysqld_safe] +##malloc-lib=//opt/app/mysql/local/lib/libjemalloc.so.1 +##log-error=//opt/app/mysql/log/mysqld.log
\ No newline at end of file diff --git a/cmso-sonar/docker/integration/mariadb/conf3/my.cnf b/cmso-sonar/docker/integration/mariadb/conf3/my.cnf new file mode 100644 index 0000000..74f7a31 --- /dev/null +++ b/cmso-sonar/docker/integration/mariadb/conf3/my.cnf @@ -0,0 +1,193 @@ +# Example MySQL config file for medium systems. +# +# This is for a system with memory 8G where MySQL plays +# an important part, or systems up to 128M where MySQL is used together with +# other programs (such as a web server) +# +# In this file, you can use all long options that a program supports. +# If you want to know which options a program supports, run the program +# with the "--help" option. + +# The following options will be passed to all MySQL clients +##[client] +##user = root +##port = 3306 +##socket = //opt/app/mysql/mysql.sock + +# Here follows entries for some specific programs + +# The MySQL server +[mysqld] +##performance_schema + +slow_query_log =ON +long_query_time =2 +slow_query_log_file =//var/lib/mysql/slow_query.log +##basedir = //opt/app/mysql/product/mariadb-10.1.11-linux-x86_64 +##datadir = //opt/app/mysql/data +##port = 3306 +##socket = //opt/app/mysql/mysql.sock +skip-external-locking +explicit_defaults_for_timestamp = true +skip-symbolic-links +local-infile = 0 +#ignore_db_dir=lost+found +key_buffer_size = 16M +max_allowed_packet = 4M +table_open_cache = 100 +sort_buffer_size = 512K +net_buffer_length = 8K +read_buffer_size = 256K +read_rnd_buffer_size = 512K +myisam_sort_buffer_size = 8M +max_connections = 500 +lower_case_table_names = 1 +thread_stack = 256K +thread_cache_size = 25 +query_cache_size = 8M +query_cache_type = 0 +query_prealloc_size = 512K +query_cache_limit = 1M + +# Password validation +##plugin-load-add=simple_password_check.so +##simple_password_check_other_characters=0 + +# Audit Log settings +plugin-load-add=server_audit.so +server_audit=FORCE_PLUS_PERMANENT +server_audit_file_path=//var/lib/mysql/audit.log +server_audit_file_rotate_size=50M +server_audit_events=CONNECT,QUERY,TABLE +server_audit_logging=on + +# Don't listen on a TCP/IP port at all. This can be a security enhancement, +# if all processes that need to connect to mysqld run on the same host. +# All interaction with mysqld must be made via Unix sockets or named pipes. +# Note that using this option without enabling named pipes on Windows +# (via the "enable-named-pipe" option) will render mysqld useless! +# +#skip-networking + +# Replication Master Server (default) +# binary logging is required for replication +##log-bin=//var/lib/mysql/mysql-bin + +# binary logging format - mixed recommended +binlog_format=row + +# required unique id between 1 and 2^32 - 1 +# defaults to 1 if master-host is not set +# but will not function as a master if omitted + +# Replication Slave (comment out master section to use this) +# +# To configure this host as a replication slave, you can choose between +# two methods : +# +# 1) Use the CHANGE MASTER TO command (fully described in our manual) - +# the syntax is: +# +# CHANGE MASTER TO MASTER_HOST=<host>, MASTER_PORT=<port>, +# MASTER_USER=<user>, MASTER_PASSWORD=<password> ; +# +# where you replace <host>, <user>, <password> by quoted strings and +# <port> by the master's port number (3306 by default). +# +# Example: +# +# CHANGE MASTER TO MASTER_HOST='125.564.12.1', MASTER_PORT=3306, +# MASTER_USER='joe', MASTER_PASSWORD='secret'; +# +# OR +# +# 2) Set the variables below. However, in case you choose this method, then +# start replication for the first time (even unsuccessfully, for example +# if you mistyped the password in master-password and the slave fails to +# connect), the slave will create a master.info file, and any later +# change in this file to the variables' values below will be ignored and +# overridden by the content of the master.info file, unless you shutdown +# the slave server, delete master.info and restart the slaver server. +# For that reason, you may want to leave the lines below untouched +# (commented) and instead use CHANGE MASTER TO (see above) +# +# required unique id between 2 and 2^32 - 1 +# (and different from the master) +# defaults to 2 if master-host is set +# but will not function as a slave if omitted +#server-id = 2 +# +# The replication master for this slave - required +#master-host = <hostname> +# +# The username the slave will use for authentication when connecting +# to the master - required +#master-user = <username> +# +# The password the slave will authenticate with when connecting to +# the master - required +#master-password = <password> +# +# The port the master is listening on. +# optional - defaults to 3306 +#master-port = <port> +# +# binary logging - not required for slaves, but recommended +#log-bin=mysql-bin + +# Uncomment the following if you are using InnoDB tables +##innodb_data_home_dir = //opt/app/mysql/data +##innodb_data_file_path = ibdata1:20M:autoextend:max:32G +##innodb_log_group_home_dir = //opt/app/mysql/iblogs +# You can set .._buffer_pool_size up to 50 - 80 % +# of RAM but beware of setting memory usage too high +innodb_buffer_pool_size = 6380M +#innodb_additional_mem_pool_size = 2M +# Set .._log_file_size to 25 % of buffer pool size +innodb_log_file_size = 150M +innodb_log_files_in_group = 3 +innodb_log_buffer_size = 8M +#innodb_flush_log_at_trx_commit = 1 +innodb_lock_wait_timeout = 50 +innodb_autoextend_increment = 100 +expire_logs_days = 8 +open_files_limit = 2000 +transaction-isolation=READ-COMMITTED +####### Galera parameters ####### +## Galera Provider configuration +wsrep_provider=/usr/lib/galera/libgalera_smm.so +wsrep_provider_options="gcache.size=2G; gcache.page_size=1G" +## Galera Cluster configuration +wsrep_cluster_name="MSO-automated-tests-cluster" +wsrep_cluster_address="gcomm://mariadb1,mariadb2,mariadb3" +##wsrep_cluster_address="gcomm://192.169.3.184,192.169.3.185,192.169.3.186" +## Galera Synchronization configuration +wsrep_sst_method=rsync +#wsrep_sst_method=xtrabackup-v2 +#wsrep_sst_auth="sstuser:Mon#2o!6" +## Galera Node configuration +wsrep_node_name="mariadb3" +##wsrep_node_address="192.169.3.184" +wsrep_on=ON +## Status notification +#wsrep_notify_cmd=/opt/app/mysql/bin/wsrep_notify +####### + + +[mysqldump] +quick +max_allowed_packet = 16M + +[mysql] +no-auto-rehash +# Remove the next comment character if you are not familiar with SQL +#safe-updates + +[myisamchk] +key_buffer_size = 20971520 + +##[mysqlhotcopy] +##interactive-timeout +##[mysqld_safe] +##malloc-lib=//opt/app/mysql/local/lib/libjemalloc.so.1 +##log-error=//opt/app/mysql/log/mysqld.log
\ No newline at end of file diff --git a/cmso-sonar/docker/script/TagVersion.groovy b/cmso-sonar/docker/script/TagVersion.groovy new file mode 100644 index 0000000..c682f7f --- /dev/null +++ b/cmso-sonar/docker/script/TagVersion.groovy @@ -0,0 +1,40 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP CMSO + * ================================================================================ + * Copyright (C) 2018 AT&T Intellectual Property. All rights + * reserved. + * ================================================================================ + * 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============================================ + * =================================================================== + * + */ + +package org.onap.cmso.maven.scripts + +println project.properties['cmso.project.version']; +def versionArray; +if ( project.properties['cmso.project.version'] != null ) { + versionArray = project.properties['cmso.project.version'].split('\\.'); +} + +if ( project.properties['cmso.project.version'].endsWith("-SNAPSHOT") ) { + project.properties['project.docker.latesttag.version']=versionArray[0] + '.' + versionArray[1] + "-SNAPSHOT-latest"; + project.properties['project.docker.latesttagtimestamp.version']=versionArray[0] + '.' + versionArray[1] + "-SNAPSHOT-"+project.properties['cmso.build.timestamp']; +} else { + project.properties['project.docker.latesttag.version']=versionArray[0] + '.' + versionArray[1] + "-STAGING-latest"; + project.properties['project.docker.latesttagtimestamp.version']=versionArray[0] + '.' + versionArray[1] + "-STAGING-"+project.properties['cmso.build.timestamp']; +} + +println 'New Tag for docker:' + project.properties['project.docker.latesttag.version'];
\ No newline at end of file diff --git a/cmso-sonar/pom.xml b/cmso-sonar/pom.xml new file mode 100644 index 0000000..a46add5 --- /dev/null +++ b/cmso-sonar/pom.xml @@ -0,0 +1,119 @@ +<!-- Copyright Ā© 2018 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. -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>org.onap.optf.cmso</groupId>
+ <artifactId>cmso</artifactId>
+ <version>1.0.1-SNAPSHOT</version>
+ </parent>
+
+ <groupId>org.onap.optf.cmso</groupId>
+ <artifactId>cmso-sonar</artifactId>
+
+ <name>cmso-sonar</name>
+ <description>Maven Porject for Running CMSO CSIT for Code Coverage</description>
+
+ <properties>
+ <maven.build.timestamp.format>yyyyMMdd'T'HHmmss'Z'</maven.build.timestamp.format>
+
+ <cmso.project.version>${project.version}</cmso.project.version>
+ <cmso.build.timestamp>${maven.build.timestamp}</cmso.build.timestamp>
+
+ <service.name>cmso-robot</service.name>
+ <release-tag>Dublin</release-tag>
+ <name.space>org.onap.optf</name.space>
+ <serviceArtifactName>cmso-sonar</serviceArtifactName>
+
+ <build.number>${maven.build.timestamp}</build.number>
+ <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+ <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
+ <maven.build.timestamp.format>yyyyMMdd'T'HHmmss'Z'</maven.build.timestamp.format>
+
+ <docker.push.registry>localhost:5000</docker.push.registry>
+ <docker.pull.registry>nexus3.onap.org:10001</docker.pull.registry>
+ <docker.skip.build>false</docker.skip.build>
+ <docker.skip.push>false</docker.skip.push>
+ <docker.skip.tag>false</docker.skip.tag>
+ <skip.staging.artifacts>false</skip.staging.artifacts>
+
+ </properties>
+ <dependencies>
+ <dependency>
+ <groupId>commons-io</groupId>
+ <artifactId>commons-io</artifactId>
+ <version>2.6</version>
+ </dependency>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>4.12</version>
+ </dependency>
+ </dependencies>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.codehaus.groovy.maven</groupId>
+ <artifactId>gmaven-plugin</artifactId>
+ <version>1.0</version>
+ <executions>
+ <execution>
+ <phase>validate</phase>
+ <goals>
+ <goal>execute</goal>
+ </goals>
+ <configuration>
+ <source>${project.basedir}/docker/script/TagVersion.groovy</source>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.jacoco</groupId>
+ <artifactId>jacoco-maven-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>post-integration-test1</id>
+ <phase>post-integration-test</phase>
+ <goals>
+ <goal>report</goal>
+ </goals>
+ <configuration>
+ <dataFile>${project.basedir}/target/code-coverage/service.jacoco.exec</dataFile>
+ <outputDirectory>${project.basedir}/target/site/service-it</outputDirectory>
+ <includes>
+ <include>service/**</include>
+ </includes>
+ <excludes>
+ <exclude>**/gen/**</exclude>
+ <exclude>**/generated-sources/**</exclude>
+ <exclude>**/yang-gen/**</exclude>
+ <exclude>**/pax/**</exclude>
+ </excludes>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ <finalName>optf-cmso-sonar</finalName>
+ </build>
+</project>
diff --git a/cmso-sonar/src/test/java/org/onap/optf/cmso/it/IT_FullIntegrationTest.java b/cmso-sonar/src/test/java/org/onap/optf/cmso/it/IT_FullIntegrationTest.java new file mode 100644 index 0000000..d90d85d --- /dev/null +++ b/cmso-sonar/src/test/java/org/onap/optf/cmso/it/IT_FullIntegrationTest.java @@ -0,0 +1,131 @@ +/* + * ============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================================================= + */ + +package org.onap.optf.cmso.it; + +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.nio.file.StandardCopyOption; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.Properties; +import org.apache.commons.io.IOUtils; +import org.junit.Test; + +public class IT_FullIntegrationTest { + + private Properties env = new Properties(); + + @Test + public void runTest() throws IOException { + InputStream is = new FileInputStream(new File("src/test/resources/integration.properties")); + env.load(is); + Process process = null; + try { + ProcessBuilder processBuilder = buildCommand(); + process = processBuilder.start(); + // debug.debug("engine command=" + commandString); + String stdout = IOUtils.toString(process.getInputStream(), "UTF-8"); + String stderr = IOUtils.toString(process.getErrorStream(), "UTF-8"); + System.out.println("stdout=" + stdout); + System.out.println("stderr=" + stderr); + copyJacocoFiles(); + copyClassFiles(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + if (process.isAlive()) { + process.destroyForcibly(); + } + } + } + + private void copyClassFiles() throws IOException { + File dest = new File(env.getProperty("jacoco.exec.classes")); + dest.mkdirs(); + if (dest.isDirectory()) { + + String[] sourceFolders = env.getProperty("source.classes.folders").split(","); + for (String source : sourceFolders) { + String[] parts = source.split("\\|"); + if (parts.length == 2) { + Path destPath = Paths.get(dest.getAbsolutePath(), parts[0]); + destPath.toFile().mkdirs(); + File sourceFolder = new File(parts[1]); + if (sourceFolder.exists() && sourceFolder.isDirectory()) { + Path srcPath = Paths.get(sourceFolder.getAbsolutePath()); + copyFolder(srcPath, destPath); + } + } + } + } + } + + private void copyJacocoFiles() throws IOException { + File dest = new File(env.getProperty("jacoco.exec.dest")); + dest.mkdirs(); + if (dest.isDirectory()) { + + String[] sourceFiles = env.getProperty("jacoco.exec.source.files").split(","); + for (String source : sourceFiles) { + File sourceFile = new File(source); + if (sourceFile.exists()) { + Path destPath = Paths.get(dest.getAbsolutePath(), sourceFile.getName()); + Path srcPath = Paths.get(sourceFile.getAbsolutePath()); + Files.copy(srcPath, destPath, StandardCopyOption.REPLACE_EXISTING); + } + } + } + } + + private static void copyFolder(Path src, Path dest) { + try { + Files.walk(src).forEach(s -> { + try { + Path d = dest.resolve(src.relativize(s)); + if (Files.isDirectory(s)) { + if (!Files.exists(d)) + Files.createDirectory(d); + return; + } + Files.copy(s, d); + } catch (Exception e) { + e.printStackTrace(); + } + }); + } catch (Exception ex) { + ex.printStackTrace(); + } + } + + private ProcessBuilder buildCommand() { + ProcessBuilder processBuilder = new ProcessBuilder(); + List<String> command = new ArrayList<>(); + String basepath = env.getProperty("base.path", "./"); + File workdir = new File(env.getProperty("workdir", "./docker/integration")); + command.add("/bin/bash"); + command.add("-x"); + command.add(basepath + "ete_test.sh"); + Map<String, String> environment = processBuilder.environment(); + processBuilder.directory(workdir); + processBuilder.command(command); + return processBuilder; + } +} diff --git a/cmso-sonar/src/test/resources/integration.properties b/cmso-sonar/src/test/resources/integration.properties new file mode 100644 index 0000000..7d2f84c --- /dev/null +++ b/cmso-sonar/src/test/resources/integration.properties @@ -0,0 +1,5 @@ +base.path=./ +jacoco.exec.dest=target/code-coverage +jacoco.exec.classes=target/classes +source.classes.folders=service|../cmso-service/target/classes,optimizer +jacoco.exec.source.files=docker/integration/cmso-service/logs/service.jacoco.exec,docker/integration/cmso-service/logs/optimizer.jacoco.exec
\ No newline at end of file |