From: Matej Perina Date: Wed, 3 Apr 2019 07:17:40 +0000 (+0200) Subject: Proposal to remove OSGi dependencies from the CCSDK project X-Git-Tag: 0.6.0~2 X-Git-Url: https://gerrit.onap.org/r/gitweb?p=ccsdk%2Fdistribution.git;a=commitdiff_plain;h=e385a7a1d1934c6a3d22df3c3244678ca415134a Proposal to remove OSGi dependencies from the CCSDK project Dependencies on the OSGi frameworks and libraries are removed by integrating the CCSDK project with the lighty.io. It's a toolkit that allows to use ODL services (in this case core services and the Restconf) without the dependency on the Karaf framework and the Blueprint DI. The ccsdk-lighty-module artifact contains lighty.io module that groups all other modules from other repositories and starts/stops them at once. The ccsdk-lighty-distribution artifact starts the lighty.io core, Restconf and the CCSDK integrated with the lighty.io and creates zip distribution with the CCSDK lighty.io application and necessary libraries. The distribution-lighty-ubuntu-docker artifact creates the docker image with the zip distribution from the ccsdk-lighty-application artifact and necessary configuration files. For more information see the README.md file in the lighty/docs directory. More info about the lighty.io - https://lighty.io Change-Id: Id29935c8e2951b400ad3217ff412bc5155384487 Signed-off-by: Matej Perina Signed-off-by: Samuel Kontris --- diff --git a/lighty/ccsdk-lighty-distribution/pom.xml b/lighty/ccsdk-lighty-distribution/pom.xml new file mode 100755 index 00000000..4082589c --- /dev/null +++ b/lighty/ccsdk-lighty-distribution/pom.xml @@ -0,0 +1,79 @@ + + + 4.0.0 + + + io.lighty.core + lighty-app-parent + 10.1.0 + + + org.onap.ccsdk.distribution + ccsdk-lighty-distribution + 0.6.0-SNAPSHOT + jar + + + 1.8 + 1.8 + UTF-8 + + org.onap.ccsdk.distribution.lighty.Main + true + + true + + + + + + org.onap.ccsdk.sli.core + ccsdk-lighty-dependency-versions + ${project.version} + pom + import + + + + + + + io.lighty.core + lighty-controller + + + io.lighty.modules + lighty-restconf-nb-community + + + io.lighty.resources + singlenode-configuration + + + org.onap.ccsdk.distribution + ccsdk-lighty-module + ${project.version} + + + org.onap.ccsdk.sli.core + sliapi-model + ${project.version} + + + org.onap.ccsdk.sli.northbound + dataChange-model + ${project.version} + + + org.onap.ccsdk.sli.northbound + asdcApi-model + ${project.version} + + + org.onap.ccsdk.sli.northbound + lcm-model + ${project.version} + + + + diff --git a/lighty/ccsdk-lighty-distribution/src/main/java/org/onap/ccsdk/distribution/lighty/Main.java b/lighty/ccsdk-lighty-distribution/src/main/java/org/onap/ccsdk/distribution/lighty/Main.java new file mode 100644 index 00000000..47163ea3 --- /dev/null +++ b/lighty/ccsdk-lighty-distribution/src/main/java/org/onap/ccsdk/distribution/lighty/Main.java @@ -0,0 +1,139 @@ +/* + * ============LICENSE_START========================================== + * Copyright (c) 2019 PANTHEON.tech s.r.o. + * =================================================================== + * 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.ccsdk.distribution.lighty; + +import io.lighty.core.controller.impl.config.ControllerConfiguration; +import io.lighty.core.controller.impl.util.ControllerConfigUtils; +import io.lighty.modules.northbound.restconf.community.impl.config.RestConfConfiguration; +import io.lighty.modules.northbound.restconf.community.impl.util.RestConfConfigUtils; +import java.net.InetAddress; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.util.Set; +import java.util.concurrent.ExecutionException; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.opendaylight.yangtools.yang.binding.YangModuleInfo; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Main class of the CCSDK lighty.io application. In order to start the application run main method. Path to + * the configuration file can be provided as argument. If not, then default configuration will be used. + */ +public class Main { + + private static final Logger LOG = LoggerFactory.getLogger(Main.class); + + private ShutdownHook shutdownHook; + + public static void main(String[] args) { + Main app = new Main(); + app.start(args, true); + } + + public void start(String[] args, boolean registerShutdownHook) { + long startTime = System.nanoTime(); + LOG.info(".__ .__ .__ __ .__ _________ _________ _________________ " + + " ____ __."); + LOG.info("| | |__| ____ | |___/ |_ ___.__. |__| ____ \\_ ___ \\\\_ ___ \\ / _____/\\___" + + "___ \\ | |/ _|"); + LOG.info("| | | |/ ___\\| | \\ __< | | | |/ _ \\ ______ / \\ \\// \\ \\/ \\_____ \\ " + + " | | \\| <"); + LOG.info("| |_| / /_/ > Y \\ | \\___ | | ( <_> ) /_____/ \\ \\___\\ \\____/ \\ |" + + " ` \\ | \\"); + LOG.info("|____/__\\___ /|___| /__| / ____| /\\ |__|\\____/ \\______ /\\______ /_______ //___" + + "____ /____|__ \\"); + LOG.info(" /_____/ \\/ \\/ \\/ \\/ \\/ \\/ " + + " \\/ \\/"); + + LOG.info("Starting lighty.io CCSDK application ..."); + LOG.info("https://lighty.io/"); + LOG.info("https://github.com/PantheonTechnologies/lighty-core"); + try { + if (args.length > 0) { + Path configPath = Paths.get(args[0]); + LOG.info("Using configuration from file {} ...", configPath); + //1. get controller configuration + ControllerConfiguration singleNodeConfiguration = + ControllerConfigUtils.getConfiguration(Files.newInputStream(configPath)); + //2. get RESTCONF NBP configuration + RestConfConfiguration restConfConfiguration = RestConfConfigUtils + .getRestConfConfiguration(Files.newInputStream(configPath)); + //3. start lighty + startLighty(singleNodeConfiguration, restConfConfiguration, registerShutdownHook); + } else { + LOG.info("Using default configuration ..."); + Set modelPaths = Stream.concat(RestConfConfigUtils.YANG_MODELS.stream(), + CcsdkLightyModule.YANG_MODELS.stream()).collect(Collectors.toSet()); + //1. get controller configuration + ControllerConfiguration defaultSingleNodeConfiguration = + ControllerConfigUtils.getDefaultSingleNodeConfiguration(modelPaths); + //2. get RESTCONF NBP configuration + RestConfConfiguration restConfConfig = + RestConfConfigUtils.getDefaultRestConfConfiguration(); + restConfConfig.setInetAddress(InetAddress.getLocalHost()); + restConfConfig.setHttpPort(8181); + //3. start lighty + startLighty(defaultSingleNodeConfiguration, restConfConfig, registerShutdownHook); + } + float duration = (System.nanoTime() - startTime)/1_000_000f; + LOG.info("lighty.io and CCSDK started in {}ms", duration); + } catch (Exception e) { + LOG.error("Main CCSDK lighty.io application exception: ", e); + } + } + + private void startLighty(ControllerConfiguration singleNodeConfiguration, + RestConfConfiguration restConfConfiguration, boolean registerShutdownHook) + throws ExecutionException, InterruptedException { + CcsdkLightyApplication ccsdkLightyApplication = new CcsdkLightyApplication(singleNodeConfiguration, + restConfConfiguration); + + if (registerShutdownHook) { + shutdownHook = new ShutdownHook(ccsdkLightyApplication); + Runtime.getRuntime().addShutdownHook(shutdownHook); + } + + ccsdkLightyApplication.start().get(); + } + + private static class ShutdownHook extends Thread { + + private static final Logger LOG = LoggerFactory.getLogger(ShutdownHook.class); + private final CcsdkLightyApplication ccsdkLightyApplication; + + ShutdownHook(CcsdkLightyApplication ccsdkLightyApplication) { + this.ccsdkLightyApplication = ccsdkLightyApplication; + } + + @Override + public void run() { + LOG.info("lighty.io and CCSDK shutting down ..."); + long startTime = System.nanoTime(); + try { + ccsdkLightyApplication.shutdown(); + } catch (Exception e) { + LOG.error("Exception while shutting down lighty.io CCSDK application:", e); + } + float duration = (System.nanoTime() - startTime)/1_000_000f; + LOG.info("lighty.io and CCSDK stopped in {}ms", duration); + } + + } +} diff --git a/lighty/ccsdk-lighty-distribution/src/main/resources/lightyCcsdkConfig.json b/lighty/ccsdk-lighty-distribution/src/main/resources/lightyCcsdkConfig.json new file mode 100644 index 00000000..1abed344 --- /dev/null +++ b/lighty/ccsdk-lighty-distribution/src/main/resources/lightyCcsdkConfig.json @@ -0,0 +1,74 @@ +{ + "controller":{ + "restoreDirectoryPath":"./clustered-datastore-restore", + "maxDataBrokerFutureCallbackQueueSize":1000, + "maxDataBrokerFutureCallbackPoolSize":10, + "metricCaptureEnabled":false, + "mailboxCapacity":1000, + "moduleShardsConfig": "configuration/initial/module-shards.conf", + "modulesConfig": "configuration/initial/modules.conf", + "domNotificationRouterConfig":{ + "queueDepth":65536, + "spinTime":0, + "parkTime":0, + "unit":"MILLISECONDS" + }, + "actorSystemConfig":{ + "akkaConfigPath":"singlenode/akka-default.conf", + "factoryAkkaConfigPath":"singlenode/factory-akka-default.conf" + }, + "schemaServiceConfig":{ + "topLevelModels":[ + { "nameSpace": "urn:TBD:params:xml:ns:yang:network:isis-topology", "name": "isis-topology", "revision": "2013-07-12" }, + { "nameSpace": "urn:opendaylight:params:xml:ns:yang:controller:md:sal:core:general-entity", "name": "general-entity", "revision": "2015-08-20" }, + { "nameSpace": "subscribe:to:notification", "name": "subscribe-to-notification", "revision": "2016-10-28" }, + { "nameSpace": "urn:opendaylight:params:xml:ns:yang:controller:md:sal:cluster:admin", "name": "cluster-admin", "revision": "2015-10-13" }, + { "nameSpace": "urn:ietf:params:xml:ns:yang:ietf-lisp-address-types", "name": "ietf-lisp-address-types", "revision": "2015-11-05" }, + { "nameSpace": "urn:opendaylight:params:xml:ns:yang:aaa", "name": "aaa", "revision": "2016-12-14" }, + { "nameSpace": "urn:opendaylight:params:xml:ns:yang:controller:config:actor-system-provider:impl", "name": "actor-system-provider-impl", "revision": "2015-10-05" }, + { "nameSpace": "urn:ietf:params:xml:ns:yang:ospf-topology", "name": "ospf-topology", "revision": "2013-07-12" }, + { "nameSpace": "urn:opendaylight:params:xml:ns:yang:controller:config:distributed-datastore-provider", "name": "distributed-datastore-provider", "revision": "2014-06-12" }, + { "nameSpace": "urn:ietf:params:xml:ns:yang:ietf-yang-library", "name": "ietf-yang-library", "revision": "2016-06-21" }, + { "nameSpace": "urn:TBD:params:xml:ns:yang:network:isis-topology", "name": "isis-topology", "revision": "2013-10-21" }, + { "nameSpace": "urn:opendaylight:params:xml:ns:yang:controller:inmemory-datastore-provider", "name": "opendaylight-inmemory-datastore-provider", "revision": "2014-06-17" }, + { "nameSpace": "urn:ietf:params:xml:ns:yang:ietf-restconf", "name": "ietf-restconf", "revision": "2013-10-19" }, + { "nameSpace": "urn:ietf:params:xml:ns:yang:iana-afn-safi", "name": "iana-afn-safi", "revision": "2013-07-04" }, + { "nameSpace": "urn:opendaylight:params:xml:ns:yang:controller:config:concurrent-data-broker", "name": "odl-concurrent-data-broker-cfg", "revision": "2014-11-24" }, + { "nameSpace": "urn:opendaylight:params:xml:ns:yang:controller:md:sal:clustering:entity-owners", "name": "entity-owners", "revision": "2015-08-04" }, + { "nameSpace": "urn:sal:restconf:event:subscription", "name": "sal-remote-augment", "revision": "2014-07-08" }, + { "nameSpace": "urn:ietf:params:xml:ns:yang:ietf-access-control-list", "name": "ietf-access-control-list", "revision": "2016-02-18" }, + { "nameSpace": "urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom:pingpong", "name": "opendaylight-pingpong-broker", "revision": "2014-11-07" }, + { "nameSpace": "instance:identifier:patch:module", "name": "instance-identifier-patch-module", "revision": "2015-11-21" }, + { "nameSpace": "urn:ietf:params:xml:ns:yang:ietf-network-topology", "name": "ietf-network-topology", "revision": "2015-06-08" }, + { "nameSpace": "urn:ietf:params:xml:ns:yang:ietf-yang-types", "name": "ietf-yang-types", "revision": "2010-09-24" }, + { "nameSpace": "urn:opendaylight:params:xml:ns:yang:mdsal:core:general-entity", "name": "odl-general-entity", "revision": "2015-09-30" }, + { "nameSpace": "urn:opendaylight:yang:extension:yang-ext", "name": "yang-ext", "revision": "2013-07-09" }, + { "nameSpace": "urn:opendaylight:l2:types", "name": "opendaylight-l2-types", "revision": "2013-08-27" }, + { "nameSpace": "urn:opendaylight:params:xml:ns:yang:md:sal:config:impl:cluster-singleton-service", "name": "cluster-singleton-service-impl", "revision": "2016-07-18" }, + { "nameSpace": "urn:TBD:params:xml:ns:yang:ospf-topology", "name": "ospf-topology", "revision": "2013-10-21" }, + { "nameSpace": "urn:ietf:params:xml:ns:yang:ietf-restconf-monitoring", "name": "ietf-restconf-monitoring", "revision": "2017-01-26" }, + { "nameSpace": "urn:opendaylight:params:xml:ns:yang:controller:md:sal:clustering:prefix-shard-configuration", "name": "prefix-shard-configuration", "revision": "2017-01-10" }, + { "nameSpace": "urn:opendaylight:aaa:app:config", "name": "aaa-app-config", "revision": "2017-06-19" }, + { "nameSpace": "urn:ietf:params:xml:ns:yang:ietf-restconf", "name": "ietf-restconf", "revision": "2017-01-26" }, + { "nameSpace": "urn:opendaylight:params:xml:ns:yang:controller:config:legacy-entity-ownership-service-provider", "name": "opendaylight-legacy-entity-ownership-service-provider", "revision": "2016-02-26" }, + { "nameSpace": "urn:ietf:params:xml:ns:yang:iana-if-type", "name": "iana-if-type", "revision": "2014-05-08" }, + { "nameSpace": "urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:impl", "name": "opendaylight-sal-binding-broker-impl", "revision": "2013-10-28" }, + + { "nameSpace": "org:onap:ccsdk:sli:core:sliapi", "name": "SLI-API", "revision": "2016-11-10" }, + { "nameSpace": "org:onap:ccsdk:sli:northbound:lcm", "name": "LCM", "revision": "2018-03-29" }, + { "nameSpace": "org:onap:ccsdk:sli:northbound:datachange", "name": "DataChange", "revision": "2015-05-19" }, + { "nameSpace": "org:onap:ccsdk:sli:northbound:asdcapi:common", "name": "asdc-api-common", "revision": "2017-02-01" }, + { "nameSpace": "http://xmlns.onap.org/asdc/license-model/1.0", "name": "asdc-license-model", "revision": "2016-04-27" }, + { "nameSpace": "org:onap:ccsdk", "name": "ASDC-API", "revision": "2017-02-01" } + + ] + } + }, + "restconf":{ + "httpPort":8181, + "webSocketPort": 8185, + "restconfServletContextPath":"/restconf", + "jsonRestconfServiceType": "DRAFT_18", + "inetAddress": "0.0.0.0" + } +} diff --git a/lighty/ccsdk-lighty-module/pom.xml b/lighty/ccsdk-lighty-module/pom.xml new file mode 100755 index 00000000..063a17d0 --- /dev/null +++ b/lighty/ccsdk-lighty-module/pom.xml @@ -0,0 +1,97 @@ + + + 4.0.0 + + + org.onap.ccsdk.parent + odlparent-lite + 1.4.0-SNAPSHOT + + + + org.onap.ccsdk.distribution + ccsdk-lighty-module + 0.6.0-SNAPSHOT + jar + + + 2.26 + + + + + + org.onap.ccsdk.sli.core + ccsdk-lighty-dependency-versions + ${project.version} + pom + import + + + + + + + io.lighty.core + lighty-controller + + + io.lighty.modules + lighty-restconf-nb-community + + + org.onap.ccsdk.sli.core + ccsdk-core-lighty + ${project.version} + + + org.apache.karaf.jaas.modules + org.apache.karaf.jaas + + + + + org.onap.ccsdk.sli.adaptors + ccsdk-adaptors-lighty + ${project.version} + + + org.onap.ccsdk.sli.northbound + ccsdk-northbound-lighty + ${project.version} + + + org.onap.ccsdk.sli.plugins + ccsdk-plugins-lighty + ${project.version} + + + + org.onap.ccsdk.sli.core + sli-recording + ${project.version} + + + + org.opendaylight.aaa + aaa-encrypt-service + + + + org.apache.httpcomponents + httpclient + 4.5.2 + + + + org.glassfish.jersey.core + jersey-common + ${jersey.version} + + + org.glassfish.jersey.inject + jersey-hk2 + ${jersey.version} + + + diff --git a/lighty/ccsdk-lighty-module/src/main/java/org/onap/ccsdk/distribution/lighty/AAAEncryptionServiceLightyImpl.java b/lighty/ccsdk-lighty-module/src/main/java/org/onap/ccsdk/distribution/lighty/AAAEncryptionServiceLightyImpl.java new file mode 100644 index 00000000..2610544a --- /dev/null +++ b/lighty/ccsdk-lighty-module/src/main/java/org/onap/ccsdk/distribution/lighty/AAAEncryptionServiceLightyImpl.java @@ -0,0 +1,116 @@ +/* + * ============LICENSE_START========================================== + * Copyright (c) 2019 PANTHEON.tech s.r.o. + * =================================================================== + * 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.ccsdk.distribution.lighty; + +import java.nio.charset.Charset; +import javax.crypto.BadPaddingException; +import javax.crypto.Cipher; +import javax.crypto.IllegalBlockSizeException; +import javax.xml.bind.DatatypeConverter; +import org.onap.ccsdk.sli.core.dblib.DBLIBResourceProvider; +import org.onap.ccsdk.sli.core.dblib.DBLIBResourceProviderLighty; +import org.opendaylight.aaa.encrypt.AAAEncryptionService; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Custom implementation of the {@link AAAEncryptionService}. Original class {@link DBLIBResourceProvider} was accessing + * instance of this interface via OGSi (BundleContext) and java reflection. The implementation of + * the {@link AAAEncryptionService} has to be injected via constructor into the lighty.io version of the class with + * removed OSGi dependency {@link DBLIBResourceProviderLighty}. + */ +public class AAAEncryptionServiceLightyImpl implements AAAEncryptionService { + + private static final Logger LOG = LoggerFactory.getLogger(AAAEncryptionServiceLightyImpl.class); + + private final Cipher encryptCipher; + private final Cipher decryptCipher; + + public AAAEncryptionServiceLightyImpl(Cipher encryptCipher, Cipher decryptCipher) { + this.encryptCipher = encryptCipher; + this.decryptCipher = decryptCipher; + } + + @Override + public String encrypt(String data) { + if (data != null && data.length() != 0 ) { + try { + synchronized (encryptCipher) { + byte[] cryptobytes = encryptCipher.doFinal(data.getBytes(Charset.defaultCharset())); + String cryptostring = DatatypeConverter.printBase64Binary(cryptobytes); + return cryptostring; + } + } catch (IllegalBlockSizeException | BadPaddingException e) { + LOG.error("Failed to encrypt data.", e); + return data; + } + } else { + LOG.warn("data is empty or null."); + return data; + } + } + + @Override + public byte[] encrypt(byte[] data) { + if (data != null && data.length != 0) { + try { + synchronized (encryptCipher) { + return encryptCipher.doFinal(data); + } + } catch (IllegalBlockSizeException | BadPaddingException e) { + LOG.error("Failed to encrypt data.", e); + return data; + } + } else { + LOG.warn("data is empty or null."); + return data; + } + } + + @Override + public String decrypt(String encryptedData) { + if (encryptedData != null && encryptedData.length() != 0) { + try { + byte[] cryptobytes = DatatypeConverter.parseBase64Binary(encryptedData); + byte[] clearbytes = decryptCipher.doFinal(cryptobytes); + return new String(clearbytes, Charset.defaultCharset()); + } catch (IllegalBlockSizeException | BadPaddingException e) { + LOG.error("Failed to decrypt encoded data", e); + return encryptedData; + } + } else { + LOG.warn("encryptedData is empty or null."); + return encryptedData; + } + } + + @Override + public byte[] decrypt(byte[] encryptedData) { + if (encryptedData != null && encryptedData.length != 0) { + try { + return decryptCipher.doFinal(encryptedData); + } catch (IllegalBlockSizeException | BadPaddingException e) { + LOG.error("Failed to decrypt encoded data", e); + return encryptedData; + } + } else { + LOG.warn("encryptedData is empty or null."); + return encryptedData; + } + } + +} diff --git a/lighty/ccsdk-lighty-module/src/main/java/org/onap/ccsdk/distribution/lighty/CcsdkLightyApplication.java b/lighty/ccsdk-lighty-module/src/main/java/org/onap/ccsdk/distribution/lighty/CcsdkLightyApplication.java new file mode 100644 index 00000000..efecb3f1 --- /dev/null +++ b/lighty/ccsdk-lighty-module/src/main/java/org/onap/ccsdk/distribution/lighty/CcsdkLightyApplication.java @@ -0,0 +1,170 @@ +/* + * ============LICENSE_START========================================== + * Copyright (c) 2019 PANTHEON.tech s.r.o. + * =================================================================== + * 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.ccsdk.distribution.lighty; + +import io.lighty.core.controller.api.AbstractLightyModule; +import io.lighty.core.controller.api.LightyController; +import io.lighty.core.controller.impl.LightyControllerBuilder; +import io.lighty.core.controller.impl.config.ConfigurationException; +import io.lighty.core.controller.impl.config.ControllerConfiguration; +import io.lighty.modules.northbound.restconf.community.impl.CommunityRestConf; +import io.lighty.modules.northbound.restconf.community.impl.CommunityRestConfBuilder; +import io.lighty.modules.northbound.restconf.community.impl.config.RestConfConfiguration; +import io.lighty.modules.northbound.restconf.community.impl.util.RestConfConfigUtils; +import java.security.InvalidAlgorithmParameterException; +import java.security.InvalidKeyException; +import java.security.NoSuchAlgorithmException; +import java.security.spec.InvalidKeySpecException; +import java.security.spec.KeySpec; +import java.util.Base64; +import javax.crypto.Cipher; +import javax.crypto.NoSuchPaddingException; +import javax.crypto.SecretKey; +import javax.crypto.SecretKeyFactory; +import javax.crypto.spec.IvParameterSpec; +import javax.crypto.spec.PBEKeySpec; +import javax.crypto.spec.SecretKeySpec; +import org.onap.ccsdk.sli.core.lighty.common.CcsdkLightyUtils; +import org.opendaylight.aaa.encrypt.AAAEncryptionService; +import org.opendaylight.controller.md.sal.binding.api.DataBroker; +import org.opendaylight.controller.md.sal.binding.api.NotificationPublishService; +import org.opendaylight.controller.sal.binding.api.RpcProviderRegistry; +import org.opendaylight.yang.gen.v1.config.aaa.authn.encrypt.service.config.rev160915.AaaEncryptServiceConfig; +import org.opendaylight.yang.gen.v1.config.aaa.authn.encrypt.service.config.rev160915.AaaEncryptServiceConfigBuilder; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * The implementation of the {@link io.lighty.core.controller.api.LightyModule} that groups all necessary components + * needed to start the CCSDK lighty.io application. + */ +public class CcsdkLightyApplication extends AbstractLightyModule { + + private static final Logger LOG = LoggerFactory.getLogger(CcsdkLightyApplication.class); + + private ControllerConfiguration controllerConfiguration; + private RestConfConfiguration restConfConfiguration; + + private LightyController lightyController; + private CommunityRestConf communityRestConf; + private CcsdkLightyModule ccsdkLightyModule; + + public CcsdkLightyApplication(ControllerConfiguration controllerConfiguration, + RestConfConfiguration restConfConfiguration) { + this.controllerConfiguration = controllerConfiguration; + this.restConfConfiguration = restConfConfiguration; + } + + @Override + protected boolean initProcedure() { + // Start Lighty Controller with base OLD services + LightyControllerBuilder lightyControllerBuilder = new LightyControllerBuilder(); + try { + lightyController = lightyControllerBuilder.from(controllerConfiguration).build(); + } catch (ConfigurationException e) { + LOG.error("Exception thrown while starting Lighty controller!", e); + return false; + } + if (!CcsdkLightyUtils.startLightyModule(lightyController)) { + LOG.error("Unable to start Lighty controller!"); + return false; + } + + // Start RestConf + CommunityRestConfBuilder communityRestConfBuilder = new CommunityRestConfBuilder(); + communityRestConf = communityRestConfBuilder + .from(RestConfConfigUtils.getRestConfConfiguration(restConfConfiguration, + lightyController.getServices())) + .build(); + if (!CcsdkLightyUtils.startLightyModule(communityRestConf)) { + LOG.error("Unable to start RestConf!"); + return false; + } + + // Start Lighty CCSDK + AAAEncryptionService aaaEncryptionService = null; + try { + aaaEncryptionService = createAAAEncryptionService(getDefaultAaaEncryptServiceConfig()); + } catch (ConfigurationException e) { + LOG.error("Exception thrown while initializing {}!", AAAEncryptionService.class, e); + } + DataBroker dataBroker = lightyController.getServices().getControllerBindingDataBroker(); + NotificationPublishService notificationPublishService = lightyController.getServices() + .getControllerBindingNotificationPublishService(); + RpcProviderRegistry rpcProviderRegistry = lightyController.getServices().getControllerRpcProviderRegistry(); + ccsdkLightyModule = new CcsdkLightyModule(dataBroker, notificationPublishService, + rpcProviderRegistry, aaaEncryptionService); + if (!CcsdkLightyUtils.startLightyModule(ccsdkLightyModule)) { + LOG.error("Unable to start CCSDK Lighty module!"); + return false; + } + + return true; + } + + @Override + protected boolean stopProcedure() { + boolean stopSuccessful = true; + + if (!CcsdkLightyUtils.stopLightyModule(ccsdkLightyModule)) { + stopSuccessful = false; + } + + if (!CcsdkLightyUtils.stopLightyModule(communityRestConf)) { + stopSuccessful = false; + } + + if (!CcsdkLightyUtils.stopLightyModule(lightyController)) { + stopSuccessful = false; + } + + return stopSuccessful; + } + + private AAAEncryptionService createAAAEncryptionService(AaaEncryptServiceConfig encrySrvConfig) + throws ConfigurationException { + final byte[] encryptionKeySalt = Base64.getDecoder().decode(encrySrvConfig.getEncryptSalt()); + try { + final SecretKeyFactory keyFactory = SecretKeyFactory.getInstance(encrySrvConfig.getEncryptMethod()); + final KeySpec keySpec = new PBEKeySpec(encrySrvConfig.getEncryptKey().toCharArray(), encryptionKeySalt, + encrySrvConfig.getEncryptIterationCount(), encrySrvConfig.getEncryptKeyLength()); + SecretKey key = new SecretKeySpec(keyFactory.generateSecret(keySpec).getEncoded(), + encrySrvConfig.getEncryptType()); + IvParameterSpec ivParameterSpec = new IvParameterSpec(encryptionKeySalt); + + Cipher encryptCipher = Cipher.getInstance(encrySrvConfig.getCipherTransforms()); + encryptCipher.init(Cipher.ENCRYPT_MODE, key, ivParameterSpec); + + Cipher decryptCipher = Cipher.getInstance(encrySrvConfig.getCipherTransforms()); + decryptCipher.init(Cipher.DECRYPT_MODE, key, ivParameterSpec); + + return new AAAEncryptionServiceLightyImpl(encryptCipher, decryptCipher); + + } catch (NoSuchAlgorithmException | InvalidKeySpecException | NoSuchPaddingException + | InvalidAlgorithmParameterException | InvalidKeyException e) { + throw new ConfigurationException(e); + } + } + + private AaaEncryptServiceConfig getDefaultAaaEncryptServiceConfig() { + return new AaaEncryptServiceConfigBuilder().setEncryptKey("V1S1ED4OMeEh") + .setPasswordLength(12).setEncryptSalt("TdtWeHbch/7xP52/rp3Usw==") + .setEncryptMethod("PBKDF2WithHmacSHA1").setEncryptType("AES") + .setEncryptIterationCount(32768).setEncryptKeyLength(128) + .setCipherTransforms("AES/CBC/PKCS5Padding").build(); + } +} diff --git a/lighty/ccsdk-lighty-module/src/main/java/org/onap/ccsdk/distribution/lighty/CcsdkLightyModule.java b/lighty/ccsdk-lighty-module/src/main/java/org/onap/ccsdk/distribution/lighty/CcsdkLightyModule.java new file mode 100644 index 00000000..061afc8b --- /dev/null +++ b/lighty/ccsdk-lighty-module/src/main/java/org/onap/ccsdk/distribution/lighty/CcsdkLightyModule.java @@ -0,0 +1,206 @@ +/* + * ============LICENSE_START========================================== + * Copyright (c) 2019 PANTHEON.tech s.r.o. + * =================================================================== + * 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.ccsdk.distribution.lighty; + +import com.google.common.collect.ImmutableSet; +import io.lighty.core.controller.api.AbstractLightyModule; +import java.util.Set; +import org.onap.ccsdk.sli.adaptors.lighty.CcsdkAdaptorsLightyModule; +import org.onap.ccsdk.sli.core.dblib.lighty.DblibModule; +import org.onap.ccsdk.sli.core.lighty.common.CcsdkLightyUtils; +import org.onap.ccsdk.sli.core.sli.lighty.SliModule; +import org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder; +import org.onap.ccsdk.sli.core.sliapi.lighty.SliApiModule; +import org.onap.ccsdk.sli.core.slipluginutils.lighty.SliPluginUtilsModule; +import org.onap.ccsdk.sli.northbound.lighty.CcsdkNorhboundLightyModule; +import org.onap.ccsdk.sli.plugins.lighty.CcsdkPluginsLightyModule; +import org.opendaylight.aaa.encrypt.AAAEncryptionService; +import org.opendaylight.controller.md.sal.binding.api.DataBroker; +import org.opendaylight.controller.md.sal.binding.api.NotificationPublishService; +import org.opendaylight.controller.sal.binding.api.RpcProviderRegistry; +import org.opendaylight.yangtools.yang.binding.YangModuleInfo; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * The implementation of the {@link io.lighty.core.controller.api.LightyModule} that groups all other LightyModules + * from the CCSDK project so they can be all treated as one component (for example started/stopped at once). + * For more information about the lighty.io visit the website https://lighty.io. + */ +public class CcsdkLightyModule extends AbstractLightyModule { + + private static final Logger LOG = LoggerFactory.getLogger(CcsdkLightyModule.class); + + public static final Set YANG_MODELS = ImmutableSet.of( + org.opendaylight.yang.gen.v1.org.onap.ccsdk.sli.core.sliapi.rev161110.$YangModuleInfoImpl.getInstance(), + org.opendaylight.yang.gen.v1.org.onap.ccsdk.sli.northbound.lcm.rev180329.$YangModuleInfoImpl.getInstance(), + org.opendaylight.yang.gen.v1.org.onap.ccsdk.sli.northbound.datachange.rev150519.$YangModuleInfoImpl.getInstance(), + org.opendaylight.yang.gen.v1.org.onap.ccsdk.sli.northbound.asdcapi.common.rev170201.$YangModuleInfoImpl.getInstance(), + org.opendaylight.yang.gen.v1.http.xmlns.onap.org.asdc.license.model._1._0.rev160427.$YangModuleInfoImpl.getInstance(), + org.opendaylight.yang.gen.v1.org.onap.ccsdk.rev170201.$YangModuleInfoImpl.getInstance() + ); + + private final DataBroker dataBroker; + private final NotificationPublishService notificationPublishService; + private final RpcProviderRegistry rpcProviderRegistry; + private final AAAEncryptionService aaaEncryptionService; + + private CcsdkAdaptorsLightyModule ccsdkAdaptorsLightyModule; + private CcsdkNorhboundLightyModule ccsdkNorhboundLightyModule; + private CcsdkPluginsLightyModule ccsdkPluginsLightyModule; + private DblibModule dblibModule; + private SliModule sliModule; + private SliApiModule sliApiModule; + private SliPluginUtilsModule sliPluginUtilsModule; + + public CcsdkLightyModule(DataBroker dataBroker, NotificationPublishService notificationPublishService, + RpcProviderRegistry rpcProviderRegistry, AAAEncryptionService aaaEncryptionService) { + this.dataBroker = dataBroker; + this.notificationPublishService = notificationPublishService; + this.rpcProviderRegistry = rpcProviderRegistry; + this.aaaEncryptionService = aaaEncryptionService; + } + + protected boolean initProcedure() { + // FIXME modules from CcsdkCoreLightyModule need to be started separately (not through CcsdkCoreLightyModule + // itself) because SliApiModule is dependent on the adaptors + try { + LOG.debug("Initializing CCSDK Lighty module..."); + + this.dblibModule = new DblibModule(aaaEncryptionService); + if (!CcsdkLightyUtils.startLightyModule(dblibModule)) { + LOG.error("Unable to start DblibModule in CCSDK Core Lighty module!"); + return false; + } + + this.ccsdkAdaptorsLightyModule = new CcsdkAdaptorsLightyModule(dblibModule.getDbLibService()); + if (!CcsdkLightyUtils.startLightyModule(ccsdkAdaptorsLightyModule)) { + LOG.error("Unable to start CcsdkAdaptorsLightyModule in CCSDK Lighty module!"); + return false; + } + + this.sliModule = new SliModule(dblibModule.getDbLibService(), + ccsdkAdaptorsLightyModule.getAaaServiceModule().getAAIService(), new Slf4jRecorder(), + ccsdkAdaptorsLightyModule.getAaaServiceModule().getAAIService(), null); + if (!CcsdkLightyUtils.startLightyModule(sliModule)) { + LOG.error("Unable to start SliModule in CCSDK Core Lighty module!"); + return false; + } + + this.sliApiModule = new SliApiModule(dataBroker, notificationPublishService, rpcProviderRegistry, sliModule.getSvcLogicServiceImpl()); + if (!CcsdkLightyUtils.startLightyModule(sliApiModule)) { + LOG.error("Unable to start SliApiModule in CCSDK Core Lighty module!"); + return false; + } + + this.sliPluginUtilsModule = new SliPluginUtilsModule(); + if (!CcsdkLightyUtils.startLightyModule(sliPluginUtilsModule)) { + LOG.error("Unable to start SliPluginUtilsModule in CCSDK Core Lighty module!"); + return false; + } + + this.ccsdkPluginsLightyModule = new CcsdkPluginsLightyModule(); + if (!CcsdkLightyUtils.startLightyModule(ccsdkPluginsLightyModule)) { + LOG.error("Unable to start CcsdkPluginsLightyModule in CCSDK Lighty module!"); + return false; + } + + this.ccsdkNorhboundLightyModule = + new CcsdkNorhboundLightyModule(sliModule.getSvcLogicServiceImpl(), dataBroker, + notificationPublishService, rpcProviderRegistry); + if (!CcsdkLightyUtils.startLightyModule(ccsdkNorhboundLightyModule)) { + LOG.error("Unable to start CcsdkNorhboundLightyModule in CCSDK Lighty module!"); + return false; + } + + LOG.debug("CCSDK Lighty module was initialized successfully"); + return true; + } catch (Exception e) { + LOG.error("Exception caught!", e); + throw e; + } + } + + protected boolean stopProcedure() { + LOG.debug("Stopping CCSDK Lighty module..."); + + boolean stopSuccessful = true; + + if (!CcsdkLightyUtils.stopLightyModule(ccsdkPluginsLightyModule)) { + stopSuccessful = false; + } + + if (!CcsdkLightyUtils.stopLightyModule(ccsdkNorhboundLightyModule)) { + stopSuccessful = false; + } + + if (!CcsdkLightyUtils.stopLightyModule(ccsdkAdaptorsLightyModule)) { + stopSuccessful = false; + } + + if (!CcsdkLightyUtils.stopLightyModule(sliPluginUtilsModule)) { + stopSuccessful = false; + } + + if (!CcsdkLightyUtils.stopLightyModule(sliApiModule)) { + stopSuccessful = false; + } + + if (!CcsdkLightyUtils.stopLightyModule(sliModule)) { + stopSuccessful = false; + } + + if (!CcsdkLightyUtils.stopLightyModule(dblibModule)) { + stopSuccessful = false; + } + + if (stopSuccessful) { + LOG.debug("CCSDK Lighty module was stopped successfully"); + } else { + LOG.error("CCSDK Lighty module was not stopped successfully!"); + } + return stopSuccessful; + } + + public CcsdkAdaptorsLightyModule getCcsdkAdaptorsLightyModule() { + return ccsdkAdaptorsLightyModule; + } + + public CcsdkNorhboundLightyModule getCcsdkNorhboundLightyModule() { + return ccsdkNorhboundLightyModule; + } + + public CcsdkPluginsLightyModule getCcsdkPluginsLightyModule() { + return ccsdkPluginsLightyModule; + } + + public DblibModule getDblibModule() { + return dblibModule; + } + + public SliModule getSliModule() { + return sliModule; + } + + public SliApiModule getSliApiModule() { + return sliApiModule; + } + + public SliPluginUtilsModule getSliPluginUtilsModule() { + return sliPluginUtilsModule; + } +} diff --git a/lighty/docs/README.md b/lighty/docs/README.md new file mode 100644 index 00000000..7212084d --- /dev/null +++ b/lighty/docs/README.md @@ -0,0 +1,122 @@ +## Integration of the lighty.io with the CCSDK + +These artifacts contain the examples of how can be the CCSDK integrated with the lighty.io. This +integration removes the dependency on the OSGi framework (Karaf) and the Blueprint +dependency injection - instead it uses only the plain java like _main_ method to start +the application and plain java constructors as DI (but it is ready to be integrated with +other frameworks). + +The CCSDK lighty.io modules can be all started at once (as in this example) or only the +selected group of them - in case there is no need to run them all. + +For more information about the lighty.io visit the official web-page +[https://lighty.io](https://lighty.io) or the +[GitHub repository](https://github.com/PantheonTechnologies/lighty-core). + + +### Artifact `ccsdk-lighty-module` + +The artifact `ccsdk-lighty-module` contains implementation of the lighty.io module that groups +all the other lighty.io modules from the other repositories (core, adaptors, plugins, +northbound). These grouped modules can be started all at once using just a few lines of code. + +In addition it contains implementation of the lighty.io module that +groups the lighty.io controller (base services from the ODL), the RESTCONF lighty.io module +(the RESTCONF from the ODL integrated with the lighty.io) and the CCSDK lighty.io module + +### Artifact `ccsdk-lighty-distribution` + +The CCSDK lighty.io application can be started via _main_ method from the _Main_ class. +This artifact generates the _.zip_ file containing the _.jar_ file and all other necessary +libraries. + +The path to the lighty.io configuration file can be passed to the _main_ method (or to +the _.jar_ file) as an argument. This configuration file contains configuration for the +lighty.io controller and the RESTCONF (for example the port or the IP address where should +the RESTCONF listen or the yang modules that should be imported into the application). +The example of the configuration file can be found in the _resources_ directory. +If path to the configuration file will not be passed through the _main_ method then +the default configuration will be used. + + +### Artifact `distribution-lighty-ubuntu-docker` + +The artifact `distribution-lighty-ubuntu-docker` contains the _Dockerfile_ and the _docker-compose.yml_ +files for the CCSDK lighty.io. _Dockerfile_ is very similar to the original file from +the `distribution-odlsli-ubuntu` artifact and the _docker-compose.yml_ to the original file from the +`src/main/yaml` directory in the root of this repository. + +Necessary configuration files and the _.zip_ file containing the CCSDK lighty.io application +are copied by the maven plugins into the respective directories during the the maven build. + +The _Dockerfile_ unpacks the _.zip_ distribution generated by the `ccsdk-lighty-distribution` +artifact and runs the _startODL.sh_ script that starts the CCSDK lighty.io _.jar_ file using +the `src/main/properties/lightyCcsdkConfig.json` configuration file. + +The _docker-compose.yml_ file contains three images - database, CCSDK lighty.io application +and the _DG builder_. + +### How to run + +In order to run the CCSDK lighty.io application build the `distribution-lighty` repository +using the maven with the _docker_ profile enabled (command: `mvn clean install -P docker`). +Then run the _docker-compose_ from the `src/main/docker` directory +(command: `docker-compose -f docker-compose.yml up`). + +After a few seconds CCSDK lighty.io application should be up and running together with the +database and the _DG builder_. + +_DG builder_ web UI can be accessed through the `http://localhost:3000` address and RESTCONF at +the `http://localhost:8383/restconf` address. + + +#### DG Builder and the CCSDK lighty.io application example + +In the browser open the `localhost:3000` URL. Login with the default username `dguser` and +the password `test123`. In the top right corner click on the menu -> import -> Clipboard. +Copy and paste the content of the `hello_world.json` file (from the same directory where is +this readme file located) to the text box. Then click on the OK button and place the graph +to the sheet. + +To upload and activate the imported graph click on the small empty square on the left side +of the `DGSTART` node and then click on the `Upload XML` button. Then click on the `ViewDG List` +button and on the `Activate` link in the row where imported graph is. + +After the graph is activated it can be called using the POST REST request on the address: + +`http:///restconf/operations/SLI-API:execute-graph` + +With the body like: + +``` +{ + "input": { + "module-name": "", + "rpc-name": "", + "mode": "sync", + "sli-parameter": [ + ] + } +} +``` + +So in order to call imported _hello world_ graph send the POST request to the address: + +`http://localhost:8383/restconf/operations/SLI-API:execute-graph` + +with the body: + +``` +{ + "input": { + "module-name": "Test", + "rpc-name": "helloWorld", + "mode": "sync", + "sli-parameter": [ + ] + } +} +``` + +Now the _hello world_ message should be displayed in the console where the CCSDK lighty.io +application is running. diff --git a/lighty/docs/hello_world.json b/lighty/docs/hello_world.json new file mode 100644 index 00000000..c461d8f4 --- /dev/null +++ b/lighty/docs/hello_world.json @@ -0,0 +1,66 @@ +[ + { + "id": "3b052d99.a24df2", + "type": "record", + "name": "record", + "xml": "\n\n\n", + "comments": "", + "outputs": 1, + "x": 779, + "y": 367, + "z": "fca901a.0d76d8", + "wires": [ + [ + + ] + ] + }, + { + "id": "1b3e7bbc.925914", + "type": "dgstart", + "name": "DGSTART", + "outputs": 1, + "x": 240, + "y": 168, + "z": "fca901a.0d76d8", + "wires": [ + [ + "9109b5dc.513d48" + ] + ] + }, + { + "id": "9109b5dc.513d48", + "type": "service-logic", + "name": "Test 1.0", + "module": "Test", + "version": "1.0", + "comments": "", + "xml": "", + "outputs": 1, + "x": 425, + "y": 232, + "z": "fca901a.0d76d8", + "wires": [ + [ + "54587071.4a0dc" + ] + ] + }, + { + "id": "54587071.4a0dc", + "type": "method", + "name": "method", + "xml": "\n", + "comments": "", + "outputs": 1, + "x": 610, + "y": 302, + "z": "fca901a.0d76d8", + "wires": [ + [ + "3b052d99.a24df2" + ] + ] + } +] diff --git a/lighty/lighty-ubuntu-docker/pom.xml b/lighty/lighty-ubuntu-docker/pom.xml new file mode 100644 index 00000000..53616037 --- /dev/null +++ b/lighty/lighty-ubuntu-docker/pom.xml @@ -0,0 +1,343 @@ + + + 4.0.0 + + + org.onap.ccsdk.distribution + distribution-lighty + 0.6.0-SNAPSHOT + + + distribution-lighty-ubuntu-docker + pom + + ccsdk-distribution :: lighty :: ${project.artifactId} + Creates Lighty container + + ONAP + + + + onap/ccsdk-lighty-ubuntu-image + ccsdk-lighty-distribution-${project.version} + ${lighty.app.name}-bin.zip + ${lighty.app.name}.jar + ${project.version} + ${maven.build.timestamp} + ${https_proxy} + deploy + + + + + + org.onap.ccsdk.sli.core + ccsdk-lighty-dependency-versions + ${project.version} + pom + import + + + + + + + + + + org.codehaus.groovy.maven + gmaven-plugin + + + validate + + execute + + + ${basedir}/../../src/main/scripts/TagVersion.groovy + + + + + + + + + org.apache.maven.plugins + maven-dependency-plugin + 3.0.2 + + + unpack dgs + generate-sources + + unpack + + + ${basedir}/target/docker-stage/opt/onap/ccsdk + + + ${project.groupId} + platform-logic-installer + ${project.version} + zip + + + + + + + + + maven-resources-plugin + 2.6 + + + copy-dockerfile + + copy-resources + + validate + + ${basedir}/target/docker-stage + + + src/main/docker + + Dockerfile + + true + + + + + + + copy-ccsdk-lighty-zip + + copy-resources + + validate + + ${basedir}/target/docker-stage + + + ${basedir}/../ccsdk-lighty-distribution/target + + ${lighty.app.zip} + + false + + + + + + + copy-scripts + + copy-resources + + validate + + ${basedir}/target/docker-stage/opt/onap/ccsdk/bin + + + ./src/main/scripts + + *.sh + + false + + + + + + + copy-odl-resources + + copy-resources + + validate + + ${basedir}/target/docker-stage + + + ./src/main/resources + + idmlight.db.mv.db + org.ops4j.pax.logging.cfg + install_ccsdk.yml + ansible-sources.list + + false + + + + + + copy-config + + copy-resources + + validate + + ${basedir}/target/docker-stage + + + ./src/main/resources + + org.ops4j.pax.logging.cfg + + false + + + + + + copy-data + + copy-resources + + validate + + ${basedir}/target/docker-stage/opt/onap/ccsdk/data + + + ./src/main/resources + + *.dump + + false + + + + + + copy-properties + + copy-resources + + validate + + ${basedir}/target/docker-stage/opt/onap/ccsdk/data/properties + + + ./src/main/properties + + *.properties + *.json + + false + + + + + + copy-keystores + + copy-resources + + validate + + ${basedir}/target/docker-stage/opt/onap/ccsdk/data/stores + + + ./src/main/stores + + *.jks + + false + + + + + + + + + org.codehaus.mojo + exec-maven-plugin + 1.5.0 + + + + change shell permissions + process-sources + + exec + + + /usr/bin/find + + ${basedir}/target/docker-stage/opt/onap/ccsdk + -name + *.sh + -exec + chmod + +x + {} + ; + + + + + + + + + + + + docker + + + + io.fabric8 + docker-maven-plugin + 0.28.0 + false + + + + ${image.name} + + try + ${basedir}/target/docker-stage + Dockerfile + + ${project.docker.latestminortag.version} + ${project.docker.latestfulltag.version} + ${project.docker.latesttagtimestamp.version} + + + + + + + + generate-images + package + + build + + + + + push-images + ${docker.push.phase} + + build + push + + + + + + + + + + + diff --git a/lighty/lighty-ubuntu-docker/src/main/docker/Dockerfile b/lighty/lighty-ubuntu-docker/src/main/docker/Dockerfile new file mode 100644 index 00000000..fbf9356f --- /dev/null +++ b/lighty/lighty-ubuntu-docker/src/main/docker/Dockerfile @@ -0,0 +1,16 @@ +# Base ubuntu with added packages needed for open ecomp +FROM onap/ccsdk-ubuntu-image:${project.docker.latestfulltag.version} +MAINTAINER CCSDK Team (onap-ccsdk@lists.onap.org) +ENV JAVA_HOME /usr/lib/jvm/java-8-openjdk-amd64 +ENV ODL_HOME /opt/opendaylight/current + +# copy the opendaylight tar and expand +COPY ${lighty.app.zip} /tmp/lighty/ +RUN mkdir -p /opt/lighty \ + && unzip /tmp/lighty/${lighty.app.zip} -d /opt/lighty \ + && rm -rf /tmp/lighty + +COPY opt /opt + +ENTRYPOINT /opt/onap/ccsdk/bin/startODL.sh +EXPOSE 8181 diff --git a/lighty/lighty-ubuntu-docker/src/main/docker/docker-compose.yml b/lighty/lighty-ubuntu-docker/src/main/docker/docker-compose.yml new file mode 100644 index 00000000..14c3dc32 --- /dev/null +++ b/lighty/lighty-ubuntu-docker/src/main/docker/docker-compose.yml @@ -0,0 +1,64 @@ +version: '2' + +services: + db: + image: mysql/mysql-server:5.6 + container_name: ccsdk_db_container + ports: + - "3306" + environment: + - MYSQL_ROOT_PASSWORD=openECOMP1.0 + - MYSQL_ROOT_HOST=% + logging: + driver: "json-file" + options: + max-size: "30m" + max-file: "5" + + + odlsli: + image: onap/ccsdk-lighty-ubuntu-image + depends_on : + - db + container_name: ccsdk_lighty_container + entrypoint: ["/opt/onap/ccsdk/bin/startODL.sh"] + ports: + - "8383:8181" + links: + - db:dbhost + - db:sdnctldb01 + - db:sdnctldb02 + environment: + - MYSQL_ROOT_PASSWORD=openECOMP1.0 + - SDNC_CONFIG_DIR=/opt/onap/ccsdk/data/properties + logging: + driver: "json-file" + options: + max-size: "30m" + max-file: "5" + + dgbuilder: + image: nexus3.onap.org:10001/onap/ccsdk-dgbuilder-image + depends_on: + - db + container_name: ccsdk_dgbuilder_container + entrypoint: + - "/bin/bash" + - "-c" + - "cd /opt/onap/ccsdk/dgbuilder/ && ./start.sh sdnc1.0 && wait" + ports: + - "3000:3100" + links: + - db:dbhost + - db:sdnctldb01 + - db:sdnctldb02 + - odlsli:sdnhost + environment: + - MYSQL_ROOT_PASSWORD=openECOMP1.0 + - SDNC_CONFIG_DIR=/opt/onap/ccsdk/data/properties + logging: + driver: "json-file" + options: + max-size: "30m" + max-file: "5" + diff --git a/lighty/lighty-ubuntu-docker/src/main/properties/aaiclient.properties b/lighty/lighty-ubuntu-docker/src/main/properties/aaiclient.properties new file mode 100755 index 00000000..4f27206f --- /dev/null +++ b/lighty/lighty-ubuntu-docker/src/main/properties/aaiclient.properties @@ -0,0 +1,82 @@ +### +# ============LICENSE_START======================================================= +# openECOMP : SDN-C +# ================================================================================ +# Copyright (C) 2017 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========================================================= +### + +# +# Configuration file for A&AI Client +# + +# +# Certificate keystore and truststore +# +org.onap.ccsdk.sli.adaptors.aai.ssl.trust=/opt/onap/ccsdk/data/stores/truststore.onap.client.jks +org.onap.ccsdk.sli.adaptors.aai.ssl.trust.psswd=adminadmin +org.onap.ccsdk.sli.adaptors.aai.host.certificate.ignore=true + +org.onap.ccsdk.sli.adaptors.aai.client.name=SDNC +org.onap.ccsdk.sli.adaptors.aai.client.psswd=SDNC + +org.onap.ccsdk.sli.adaptors.aai.application=openECOMP +# +# Configuration file for A&AI Client +# +org.onap.ccsdk.sli.adaptors.aai.uri=https://aai.api.simpledemo.onap.org:8443 +connection.timeout=60000 +read.timeout=60000 + +# query +org.onap.ccsdk.sli.adaptors.aai.path.query=/aai/v14/search/sdn-zone-query +org.onap.ccsdk.sli.adaptors.aai.query.nodes=/aai/v14/search/nodes-query?search-node-type={node-type}&filter={entity-identifier}:EQUALS:{entity-name} +org.onap.ccsdk.sli.adaptors.aai.query.generic=/aai/v14/search/generic-query?key={identifier}:{value}&start-node-type={start-node-type}&include=complex&depth=3 + +# named query +org.onap.ccsdk.sli.adaptors.aai.query.named=/aai/search/named-query + +#update +org.onap.ccsdk.sli.adaptors.aai.update=/aai/v14/actions/update + +# UBB Notify +org.onap.ccsdk.sli.adaptors.aai.path.notify=/aai/v14/actions/notify +org.onap.ccsdk.sli.adaptors.aai.notify.selflink.fqdn=<%= @ubbUri %>/restconf/config/L3SDN-API:services/layer3-service-list/{service-instance-id} +org.onap.ccsdk.sli.adaptors.aai.notify.selflink.avpn=<%= @ubbUri %>/restconf/config/L3AVPN-EVC-API:services/service-list/{service-instance-id}/service-data/avpn-logicalchannel-information + +# P-Interfaces +org.onap.ccsdk.sli.adaptors.aai.path.pserver.pinterfaces=/aai/v14/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces +org.onap.ccsdk.sli.adaptors.aai.path.pserver.pinterface=/aai/v14/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name} + +# VNF IMAGES +org.onap.ccsdk.sli.adaptors.aai.path.vnf.images=/aai/v14/service-design-and-creation/vnf-images +org.onap.ccsdk.sli.adaptors.aai.path.vnf.image=/aai/v14/service-design-and-creation/vnf-images/vnf-image/{att-uuid} +org.onap.ccsdk.sli.adaptors.aai.path.vnf.image.query=/aai/v14/service-design-and-creation/vnf-images/vnf-image?application={application_model}&application-vendor={application_vendor} + +# service instance +org.onap.ccsdk.sli.adaptors.aai.path.svcinst.query=/aai/v14/search/generic-query?key=service-instance.service-instance-id:{svc-instance-id}&start-node-type=service-instance&include=service-instance +org.onap.ccsdk.sli.adaptors.aai.path.service.instance=/aai/v14/business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type}/service-instances/service-instance/{service-instance-id} + +# VNF IMAGES QUERY +org.onap.ccsdk.sli.adaptors.aai.path.vnf.image.query=/aai/v14/service-design-and-creation/vnf-images/vnf-image?application={application_model}&application-vendor={application_vendor} + +# +# Formatting +# +org.onap.ccsdk.sli.adaptors.aai.param.format=filter=%s:%s +org.onap.ccsdk.sli.adaptors.aai.param.vnf_type=vnf-type +org.onap.ccsdk.sli.adaptors.aai.param.physical.location.id=physical-location-id +org.onap.ccsdk.sli.adaptors.aai.param.service.type=service-type diff --git a/lighty/lighty-ubuntu-docker/src/main/properties/admportal.json b/lighty/lighty-ubuntu-docker/src/main/properties/admportal.json new file mode 100755 index 00000000..8d567d0c --- /dev/null +++ b/lighty/lighty-ubuntu-docker/src/main/properties/admportal.json @@ -0,0 +1,68 @@ +{ + "MainMenu": "gamma", + "dbConnLimit": "100", + "home": "/opt/admportal", + "sslEnabled": "false", + "nonSslPort": "8843", + "ConexusNetworkPort": "8443", + "AppNetworkPort": "8543", + "clusterPort": "8443", + "serviceHomingServiceType": "SDN-ETHERNET-INTERNET", + "passwordKey": "QtfJMKggVk", + "preloadImportDirectory": "C:/data/csv", + "clusterPrefixURL": "/jolokia/read/org.opendaylight.controller:Category=Shards,name=member-", + "clusterMidURL": "-shard-", + "clusterSuffixURL": "-config,type=DistributedConfigDatastore", + "shards": [ + "default", + "inventory", + "topology" + ], + "dbFabric": "false", + "ip-addresses": { + "lo": "127.0.0.1", + "eth0": "127.0.0.1", + "docker0": "172.17.0.1", + "virbr0": "192.168.122.1" + }, + "svclogicPropertiesDb01": "/opt/onap/sdnc/data/properties/svclogic.properties.sdnctldb01", + "databases": [ + "dbhost|sdnctldb01" + ], + "dbFabricServer": "localhost", + "dbFabricPort": "32275", + "dbFabricGroupId": "hagroup1", + "dbFabricUser": "admin", + "dbFabricPassword": "admin", + "dbFabricDB": "mysql", + "dbUser": "sdnctl", + "dbPassword": "gamma", + "dbName": "sdnctl", + "odlProtocol": "http", + "odlHost": "sdnhost", + "odlConexusHost": "sdnhost", + "odlPort": "8181", + "odlConexusPort": "8181", + "odlUser": "admin", + "odlPasswd": "admin", + "ConexusNetwork_sslCert": "", + "ConexusNetwork_sslKey": "", + "AppNetwork_sslCert": "", + "AppNetwork_sslKey": "", + "hostnameList": [ + { + "hname": "localhost" + } + ], + "shard_list": [ + { + "shard_name": "default" + }, + { + "shard_name": "inventory" + }, + { + "shard_name": "topology" + } + ] +} diff --git a/lighty/lighty-ubuntu-docker/src/main/properties/admportal.log4js.json b/lighty/lighty-ubuntu-docker/src/main/properties/admportal.log4js.json new file mode 100755 index 00000000..0f41e564 --- /dev/null +++ b/lighty/lighty-ubuntu-docker/src/main/properties/admportal.log4js.json @@ -0,0 +1,169 @@ +{ + "appenders": [ + { + "category": "accesslog", + "type" : "file", + "absolute": true, + "filename": "/opt/admportal/logs/accesslog.log" + }, + { + "category" : "usertrace", + "type" : "file", + "absolute" : true, + "filename" : "/opt/admportal/logs/usertrace.log" + }, + { + "category": "tracelog", + "type" : "dateFile", + "absolute": true, + "filename": "/opt/admportal/logs/tracelog.log", + "pattern": "-yyyy-MM-dd", + "alwaysIncludePattern": true, + "backups" : 14 + }, + { + "category" : "tunnel", + "type" : "dateFile", + "absolute" : true, + "filename" : "/opt/admportal/logs/tunnel.log", + "pattern" : "-yyyy-MM-dd", + "alwaysIncludePattern": true, + "backups" : 14 + }, + { + "category" : "preload", + "type" : "dateFile", + "absolute" : true, + "filename" : "/opt/admportal/logs/preload.log", + "pattern" : "-yyyy-MM-dd", + "alwaysIncludePattern": true, + "backups" : 14 + }, + { + "category" : "eipam", + "type" : "dateFile", + "absolute" : true, + "filename" : "/opt/admportal/logs/eipam.log", + "pattern" : "-yyyy-MM-dd", + "alwaysIncludePattern": true, + "backups" : 14 + }, + { + "category" : "instar", + "type" : "dateFile", + "absolute" : true, + "filename" : "/opt/admportal/logs/instar.log", + "pattern" : "-yyyy-MM-dd", + "alwaysIncludePattern": true, + "backups" : 14 + }, + { + "category" : "app", + "type" : "dateFile", + "absolute" : true, + "filename" : "/opt/admportal/logs/app.log", + "pattern" : "-yyyy-MM-dd", + "alwaysIncludePattern": true, + "backups" : 14 + }, + { + "category" : "csp", + "type" : "dateFile", + "absolute" : true, + "filename" : "/opt/admportal/logs/csp.log", + "pattern" : "-yyyy-MM-dd", + "alwaysIncludePattern": true, + "backups" : 14 + }, + { + "category" : "db", + "type" : "dateFile", + "absolute" : true, + "filename" : "/opt/admportal/logs/db.log", + "pattern" : "-yyyy-MM-dd", + "alwaysIncludePattern": true, + "backups" : 14 + }, + { + "category" : "admin", + "type" : "dateFile", + "absolute" : true, + "filename" : "/opt/admportal/logs/admin.log", + "pattern" : "-yyyy-MM-dd", + "alwaysIncludePattern": true, + "backups" : 14 + }, + { + "category" : "resalloc", + "type" : "dateFile", + "absolute" : true, + "filename" : "/opt/admportal/logs/resalloc.log", + "pattern" : "-yyyy-MM-dd", + "alwaysIncludePattern": true, + "backups" : 14 + }, + { + "category" : "logs", + "type" : "dateFile", + "absolute" : true, + "filename" : "/opt/admportal/logs/applogs.log", + "pattern" : "-yyyy-MM-dd", + "alwaysIncludePattern": true, + "backups" : 14 + }, + { + "category" : "sla", + "type" : "dateFile", + "absolute" : true, + "filename" : "/opt/admportal/logs/sla.log", + "pattern" : "-yyyy-MM-dd", + "alwaysIncludePattern": true, + "backups" : 14 + }, + { + "category" : "gamma", + "type" : "dateFile", + "absolute" : true, + "filename" : "/opt/admportal/logs/gamma.log", + "pattern" : "-yyyy-MM-dd", + "alwaysIncludePattern": true, + "backups" : 14 + }, + { + "category" : "odl", + "type" : "dateFile", + "absolute" : true, + "filename" : "/opt/admportal/logs/odl.log", + "pattern" : "-yyyy-MM-dd", + "alwaysIncludePattern": true, + "backups" : 14 + }, + { + "category" : "mobility", + "type" : "dateFile", + "absolute" : true, + "filename" : "/opt/admportal/logs/mobility.log", + "pattern" : "-yyyy-MM-dd", + "alwaysIncludePattern": true, + "backups" : 14 + }, + { + "category" : "ucpe", + "type" : "dateFile", + "absolute" : true, + "filename" : "/opt/admportal/logs/ucpe.log", + "pattern" : "-yyyy-MM-dd", + "alwaysIncludePattern": true, + "backups" : 14 + }, + { + "category" : "user", + "type" : "dateFile", + "absolute" : true, + "filename" : "/opt/admportal/logs/user.log", + "pattern" : "-yyyy-MM-dd", + "alwaysIncludePattern": true, + "backups" : 14 + } + ] +} diff --git a/lighty/lighty-ubuntu-docker/src/main/properties/dblib.properties b/lighty/lighty-ubuntu-docker/src/main/properties/dblib.properties new file mode 100644 index 00000000..9506ac8d --- /dev/null +++ b/lighty/lighty-ubuntu-docker/src/main/properties/dblib.properties @@ -0,0 +1,38 @@ +### +# ============LICENSE_START======================================================= +# openECOMP : SDN-C +# ================================================================================ +# Copyright (C) 2017 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========================================================= +### + +# dblib.properrties +org.onap.ccsdk.sli.dbtype=jdbc + +org.onap.ccsdk.sli.jdbc.hosts=sdnctldb01 +org.onap.ccsdk.sli.jdbc.url=jdbc:mysql://dbhost:3306/sdnctl +org.onap.ccsdk.sli.jdbc.driver=org.mariadb.jdbc.Driver +org.onap.ccsdk.sli.jdbc.database=sdnctl +org.onap.ccsdk.sli.jdbc.user=sdnctl +org.onap.ccsdk.sli.jdbc.password=gamma +org.onap.ccsdk.sli.jdbc.connection.name=sdnctldb01 +org.onap.ccsdk.sli.jdbc.connection.timeout=50 +org.onap.ccsdk.sli.jdbc.request.timeout=100 +org.onap.ccsdk.sli.jdbc.limit.init=10 +org.onap.ccsdk.sli.jdbc.limit.min=10 +org.onap.ccsdk.sli.jdbc.limit.max=20 +org.onap.dblib.connection.recovery=false + diff --git a/lighty/lighty-ubuntu-docker/src/main/properties/grpc.properties b/lighty/lighty-ubuntu-docker/src/main/properties/grpc.properties new file mode 100644 index 00000000..797c67e2 --- /dev/null +++ b/lighty/lighty-ubuntu-docker/src/main/properties/grpc.properties @@ -0,0 +1,18 @@ +# +# Copyright (C) 2019 Bell Canada. +# +# 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. +# +org.onap.ccsdk.sli.adaptors.grpc.blueprint.processor.url=cds-blueprints-processor-grpc +org.onap.ccsdk.sli.adaptors.grpc.blueprint.processor.port=9111 +org.onap.ccsdk.sli.adaptors.grpc.blueprint.processor.auth=Basic Y2NzZGthcHBzOmNjc2RrYXBwcw== diff --git a/lighty/lighty-ubuntu-docker/src/main/properties/lightyCcsdkConfig.json b/lighty/lighty-ubuntu-docker/src/main/properties/lightyCcsdkConfig.json new file mode 100644 index 00000000..1abed344 --- /dev/null +++ b/lighty/lighty-ubuntu-docker/src/main/properties/lightyCcsdkConfig.json @@ -0,0 +1,74 @@ +{ + "controller":{ + "restoreDirectoryPath":"./clustered-datastore-restore", + "maxDataBrokerFutureCallbackQueueSize":1000, + "maxDataBrokerFutureCallbackPoolSize":10, + "metricCaptureEnabled":false, + "mailboxCapacity":1000, + "moduleShardsConfig": "configuration/initial/module-shards.conf", + "modulesConfig": "configuration/initial/modules.conf", + "domNotificationRouterConfig":{ + "queueDepth":65536, + "spinTime":0, + "parkTime":0, + "unit":"MILLISECONDS" + }, + "actorSystemConfig":{ + "akkaConfigPath":"singlenode/akka-default.conf", + "factoryAkkaConfigPath":"singlenode/factory-akka-default.conf" + }, + "schemaServiceConfig":{ + "topLevelModels":[ + { "nameSpace": "urn:TBD:params:xml:ns:yang:network:isis-topology", "name": "isis-topology", "revision": "2013-07-12" }, + { "nameSpace": "urn:opendaylight:params:xml:ns:yang:controller:md:sal:core:general-entity", "name": "general-entity", "revision": "2015-08-20" }, + { "nameSpace": "subscribe:to:notification", "name": "subscribe-to-notification", "revision": "2016-10-28" }, + { "nameSpace": "urn:opendaylight:params:xml:ns:yang:controller:md:sal:cluster:admin", "name": "cluster-admin", "revision": "2015-10-13" }, + { "nameSpace": "urn:ietf:params:xml:ns:yang:ietf-lisp-address-types", "name": "ietf-lisp-address-types", "revision": "2015-11-05" }, + { "nameSpace": "urn:opendaylight:params:xml:ns:yang:aaa", "name": "aaa", "revision": "2016-12-14" }, + { "nameSpace": "urn:opendaylight:params:xml:ns:yang:controller:config:actor-system-provider:impl", "name": "actor-system-provider-impl", "revision": "2015-10-05" }, + { "nameSpace": "urn:ietf:params:xml:ns:yang:ospf-topology", "name": "ospf-topology", "revision": "2013-07-12" }, + { "nameSpace": "urn:opendaylight:params:xml:ns:yang:controller:config:distributed-datastore-provider", "name": "distributed-datastore-provider", "revision": "2014-06-12" }, + { "nameSpace": "urn:ietf:params:xml:ns:yang:ietf-yang-library", "name": "ietf-yang-library", "revision": "2016-06-21" }, + { "nameSpace": "urn:TBD:params:xml:ns:yang:network:isis-topology", "name": "isis-topology", "revision": "2013-10-21" }, + { "nameSpace": "urn:opendaylight:params:xml:ns:yang:controller:inmemory-datastore-provider", "name": "opendaylight-inmemory-datastore-provider", "revision": "2014-06-17" }, + { "nameSpace": "urn:ietf:params:xml:ns:yang:ietf-restconf", "name": "ietf-restconf", "revision": "2013-10-19" }, + { "nameSpace": "urn:ietf:params:xml:ns:yang:iana-afn-safi", "name": "iana-afn-safi", "revision": "2013-07-04" }, + { "nameSpace": "urn:opendaylight:params:xml:ns:yang:controller:config:concurrent-data-broker", "name": "odl-concurrent-data-broker-cfg", "revision": "2014-11-24" }, + { "nameSpace": "urn:opendaylight:params:xml:ns:yang:controller:md:sal:clustering:entity-owners", "name": "entity-owners", "revision": "2015-08-04" }, + { "nameSpace": "urn:sal:restconf:event:subscription", "name": "sal-remote-augment", "revision": "2014-07-08" }, + { "nameSpace": "urn:ietf:params:xml:ns:yang:ietf-access-control-list", "name": "ietf-access-control-list", "revision": "2016-02-18" }, + { "nameSpace": "urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom:pingpong", "name": "opendaylight-pingpong-broker", "revision": "2014-11-07" }, + { "nameSpace": "instance:identifier:patch:module", "name": "instance-identifier-patch-module", "revision": "2015-11-21" }, + { "nameSpace": "urn:ietf:params:xml:ns:yang:ietf-network-topology", "name": "ietf-network-topology", "revision": "2015-06-08" }, + { "nameSpace": "urn:ietf:params:xml:ns:yang:ietf-yang-types", "name": "ietf-yang-types", "revision": "2010-09-24" }, + { "nameSpace": "urn:opendaylight:params:xml:ns:yang:mdsal:core:general-entity", "name": "odl-general-entity", "revision": "2015-09-30" }, + { "nameSpace": "urn:opendaylight:yang:extension:yang-ext", "name": "yang-ext", "revision": "2013-07-09" }, + { "nameSpace": "urn:opendaylight:l2:types", "name": "opendaylight-l2-types", "revision": "2013-08-27" }, + { "nameSpace": "urn:opendaylight:params:xml:ns:yang:md:sal:config:impl:cluster-singleton-service", "name": "cluster-singleton-service-impl", "revision": "2016-07-18" }, + { "nameSpace": "urn:TBD:params:xml:ns:yang:ospf-topology", "name": "ospf-topology", "revision": "2013-10-21" }, + { "nameSpace": "urn:ietf:params:xml:ns:yang:ietf-restconf-monitoring", "name": "ietf-restconf-monitoring", "revision": "2017-01-26" }, + { "nameSpace": "urn:opendaylight:params:xml:ns:yang:controller:md:sal:clustering:prefix-shard-configuration", "name": "prefix-shard-configuration", "revision": "2017-01-10" }, + { "nameSpace": "urn:opendaylight:aaa:app:config", "name": "aaa-app-config", "revision": "2017-06-19" }, + { "nameSpace": "urn:ietf:params:xml:ns:yang:ietf-restconf", "name": "ietf-restconf", "revision": "2017-01-26" }, + { "nameSpace": "urn:opendaylight:params:xml:ns:yang:controller:config:legacy-entity-ownership-service-provider", "name": "opendaylight-legacy-entity-ownership-service-provider", "revision": "2016-02-26" }, + { "nameSpace": "urn:ietf:params:xml:ns:yang:iana-if-type", "name": "iana-if-type", "revision": "2014-05-08" }, + { "nameSpace": "urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:impl", "name": "opendaylight-sal-binding-broker-impl", "revision": "2013-10-28" }, + + { "nameSpace": "org:onap:ccsdk:sli:core:sliapi", "name": "SLI-API", "revision": "2016-11-10" }, + { "nameSpace": "org:onap:ccsdk:sli:northbound:lcm", "name": "LCM", "revision": "2018-03-29" }, + { "nameSpace": "org:onap:ccsdk:sli:northbound:datachange", "name": "DataChange", "revision": "2015-05-19" }, + { "nameSpace": "org:onap:ccsdk:sli:northbound:asdcapi:common", "name": "asdc-api-common", "revision": "2017-02-01" }, + { "nameSpace": "http://xmlns.onap.org/asdc/license-model/1.0", "name": "asdc-license-model", "revision": "2016-04-27" }, + { "nameSpace": "org:onap:ccsdk", "name": "ASDC-API", "revision": "2017-02-01" } + + ] + } + }, + "restconf":{ + "httpPort":8181, + "webSocketPort": 8185, + "restconfServletContextPath":"/restconf", + "jsonRestconfServiceType": "DRAFT_18", + "inetAddress": "0.0.0.0" + } +} diff --git a/lighty/lighty-ubuntu-docker/src/main/properties/mdsal-resource.properties b/lighty/lighty-ubuntu-docker/src/main/properties/mdsal-resource.properties new file mode 100644 index 00000000..d8537471 --- /dev/null +++ b/lighty/lighty-ubuntu-docker/src/main/properties/mdsal-resource.properties @@ -0,0 +1,27 @@ +### +# ============LICENSE_START======================================================= +# openECOMP : SDN-C +# ================================================================================ +# Copyright (C) 2017 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========================================================= +### + +org.onap.ccsdk.sli.adaptors.resource.mdsal.sdnc-user=admin +org.onap.ccsdk.sli.adaptors.resource.mdsal.sdnc-passwd=admin +org.onap.ccsdk.sli.adaptors.resource.mdsal.sdnc-host=localhost +org.onap.ccsdk.sli.adaptors.resource.mdsal.sdnc-protocol=http +org.onap.ccsdk.sli.adaptors.resource.mdsal.sdnc-port=8181 + diff --git a/lighty/lighty-ubuntu-docker/src/main/properties/netbox.properties b/lighty/lighty-ubuntu-docker/src/main/properties/netbox.properties new file mode 100644 index 00000000..4346d177 --- /dev/null +++ b/lighty/lighty-ubuntu-docker/src/main/properties/netbox.properties @@ -0,0 +1,19 @@ +# +# Copyright (C) 2019 Bell Canada. +# +# 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. +# + +# Configuration file for Netbox client +org.onap.ccsdk.sli.adaptors.netbox.url=http://netbox-nginx:8080 +org.onap.ccsdk.sli.adaptors.netbox.apikey=onceuponatimeiplayedwithnetbox20180814 \ No newline at end of file diff --git a/lighty/lighty-ubuntu-docker/src/main/properties/partners.json b/lighty/lighty-ubuntu-docker/src/main/properties/partners.json new file mode 100755 index 00000000..9a17a1ac --- /dev/null +++ b/lighty/lighty-ubuntu-docker/src/main/properties/partners.json @@ -0,0 +1,16 @@ +{ + "partnerOne": { + "url": "http://localhost:7001", + "test": "/metrics" + }, + "partnerTwo": { + "url": "http://localhost:7002", + "user": "controller_user", + "password": "P@ssword", + "test": "/metrics" + }, + "partnerThree": { + "url": "http://localhost:7003", + "user": "controller_admin" + } +} diff --git a/lighty/lighty-ubuntu-docker/src/main/properties/sdnr-oofpcipoc-api-dg.properties b/lighty/lighty-ubuntu-docker/src/main/properties/sdnr-oofpcipoc-api-dg.properties new file mode 100644 index 00000000..d4f7e3cb --- /dev/null +++ b/lighty/lighty-ubuntu-docker/src/main/properties/sdnr-oofpcipoc-api-dg.properties @@ -0,0 +1,35 @@ +restapi.templateDir=/opt/onap/ccsdk/restapi/templates +controller.url=http://localhost:8181 +controller.user=admin +controller.pwd=Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U +honeycomb.url=http://{honeycomb-instance-ip}:8183 +honeycomb.user=admin +honeycomb.pwd=admin +restapi.trustStoreFileName=/opt/onap/sdnc/data/stores/truststore.openecomp.client.jks +restapi.trustStorePassword=adminadmin +restapi.keyStoreFileName=/opt/onap/sdnc/data/stores/sdnc.p12 +restapi.keyStorePassword=adminadmin +restapi.connection-oof-url=http://oof.api.simpledemo.onap.org:8698/api/oof/v1/route +naming.gen-name.url=http://neng-serv:8080 +naming.gen-name.user=ccsdkapps +naming.gen-name.pwd=ccsdkapps + + +#Patch Targets +oofpcipoc.patch.pci.target=/oofpcipoc:phy-cell-id-in-use +oofpcipoc.patch.pci.target2=/oofpcipoc:fap-service[oofpcipoc:alias='{alias}']/oofpcipoc:x-0005b9-lte + + +# Templates +restapi.pci-patch.templatefile=oofpcipoc-pci-patch.json +restapi.neighbor-add.templatefile=oofpcipoc-addNeighbor.json +restapi.neighbor-delete.templatefile=oofpcipoc-deleteNeighbor.json +restapi.generic-neighbor-patch.template=oofpcipoc-generic-neighbor-patch.json + +# URLs +restapi.config=/restconf/config +restapi.radio-access=/restconf/config/oofpcipoc:radio-access +restapi.fap-service=/restconf/config/oofpcipoc:radio-access/fap-service/{alias} +restapi.x-005b9-lte=/restconf/config/oofpcipoc:radio-access/fap-service/{alias}/x-0005b9-lte +restapi.lte-ran-neighbor-list-in-use=/restconf/config/oofpcipoc:radio-access/fap-service/{alias}/cell-config/lte/lte-ran/lte-ran-neighbor-list-in-use +restapi.lte-ran-neighbor-in-use=/restconf/config/oofpcipoc:radio-access/fap-service/{alias}/cell-config/lte/lte-ran/lte-ran-neighbor-list-in-use/lte-ran-neighbor-list-in-use-lte-cell/{plmnid}/{cid} diff --git a/lighty/lighty-ubuntu-docker/src/main/properties/sql-resource.properties b/lighty/lighty-ubuntu-docker/src/main/properties/sql-resource.properties new file mode 100644 index 00000000..ac32f773 --- /dev/null +++ b/lighty/lighty-ubuntu-docker/src/main/properties/sql-resource.properties @@ -0,0 +1,23 @@ +### +# ============LICENSE_START======================================================= +# openECOMP : SDN-C +# ================================================================================ +# Copyright (C) 2017 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========================================================= +### + +org.openecomp.sdnc.resource.sql.cryptkey=QtfJMKggVk + diff --git a/lighty/lighty-ubuntu-docker/src/main/properties/svclogic.properties b/lighty/lighty-ubuntu-docker/src/main/properties/svclogic.properties new file mode 100644 index 00000000..54d667cf --- /dev/null +++ b/lighty/lighty-ubuntu-docker/src/main/properties/svclogic.properties @@ -0,0 +1,29 @@ +### +# ============LICENSE_START======================================================= +# openECOMP : SDN-C +# ================================================================================ +# Copyright (C) 2017 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========================================================= +### + +org.onap.ccsdk.sli.dbtype = dblib +#Note : the next 4 fields are only used if org.onap.ccsdk.sli.dbtype = jdbc +org.onap.ccsdk.sli.jdbc.url=jdbc:mysql://dbhost:3306/sdnctl +org.onap.ccsdk.sli.jdbc.database=sdnctl +org.onap.ccsdk.sli.jdbc.user=sdnctl +org.onap.ccsdk.sli.jdbc.password=gamma + +org.xml.sax.driver=org.apache.xerces.parsers.SAXParser diff --git a/lighty/lighty-ubuntu-docker/src/main/properties/svclogic.properties.sdnctldb01 b/lighty/lighty-ubuntu-docker/src/main/properties/svclogic.properties.sdnctldb01 new file mode 100755 index 00000000..54d667cf --- /dev/null +++ b/lighty/lighty-ubuntu-docker/src/main/properties/svclogic.properties.sdnctldb01 @@ -0,0 +1,29 @@ +### +# ============LICENSE_START======================================================= +# openECOMP : SDN-C +# ================================================================================ +# Copyright (C) 2017 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========================================================= +### + +org.onap.ccsdk.sli.dbtype = dblib +#Note : the next 4 fields are only used if org.onap.ccsdk.sli.dbtype = jdbc +org.onap.ccsdk.sli.jdbc.url=jdbc:mysql://dbhost:3306/sdnctl +org.onap.ccsdk.sli.jdbc.database=sdnctl +org.onap.ccsdk.sli.jdbc.user=sdnctl +org.onap.ccsdk.sli.jdbc.password=gamma + +org.xml.sax.driver=org.apache.xerces.parsers.SAXParser diff --git a/lighty/lighty-ubuntu-docker/src/main/properties/template-node.properties b/lighty/lighty-ubuntu-docker/src/main/properties/template-node.properties new file mode 100644 index 00000000..1199a0cd --- /dev/null +++ b/lighty/lighty-ubuntu-docker/src/main/properties/template-node.properties @@ -0,0 +1,4 @@ +velocity.resource.loader=class +velocity.file.resource.loader.path=/home/my/example +velocity.file.resource.loader.cache=true +velocity.custom.property=customValue \ No newline at end of file diff --git a/lighty/lighty-ubuntu-docker/src/main/properties/ueb.properties b/lighty/lighty-ubuntu-docker/src/main/properties/ueb.properties new file mode 100644 index 00000000..88711306 --- /dev/null +++ b/lighty/lighty-ubuntu-docker/src/main/properties/ueb.properties @@ -0,0 +1,4 @@ +poolMembers=10.147.29.67:3904 +topic.read=APPC-TEST1 +topic.read.timeout=2500 +topic.write=APPC-TEST1 diff --git a/lighty/lighty-ubuntu-docker/src/main/resources/ansible-sources.list b/lighty/lighty-ubuntu-docker/src/main/resources/ansible-sources.list new file mode 100644 index 00000000..7e166f23 --- /dev/null +++ b/lighty/lighty-ubuntu-docker/src/main/resources/ansible-sources.list @@ -0,0 +1,2 @@ +deb http://ppa.launchpad.net/ansible/ansible/ubuntu xenial main +deb-src http://ppa.launchpad.net/ansible/ansible/ubuntu xenial main \ No newline at end of file diff --git a/lighty/lighty-ubuntu-docker/src/main/resources/idmlight.db.mv.db b/lighty/lighty-ubuntu-docker/src/main/resources/idmlight.db.mv.db new file mode 100644 index 00000000..c0b7b499 Binary files /dev/null and b/lighty/lighty-ubuntu-docker/src/main/resources/idmlight.db.mv.db differ diff --git a/lighty/lighty-ubuntu-docker/src/main/resources/install_ccsdk.yml b/lighty/lighty-ubuntu-docker/src/main/resources/install_ccsdk.yml new file mode 100644 index 00000000..e09eceba --- /dev/null +++ b/lighty/lighty-ubuntu-docker/src/main/resources/install_ccsdk.yml @@ -0,0 +1,16 @@ +--- +- hosts: all + become: yes + roles: + - role: ansible-opendaylight + # ODL is already installed, so no need to specify installation method. Specify extra features to install + extra_features: + - odl-restconf-all + - odl-mdsal-all + - odl-mdsal-apidocs + - odl-daexim-all + - odl-restconf-nb-rfc8040 + - ccsdk-sli-core-all + - ccsdk-sli-adaptors-all + - ccsdk-sli-northbound-all + - ccsdk-sli-plugins-all \ No newline at end of file diff --git a/lighty/lighty-ubuntu-docker/src/main/resources/odlsli.dump b/lighty/lighty-ubuntu-docker/src/main/resources/odlsli.dump new file mode 100644 index 00000000..e6b6222a --- /dev/null +++ b/lighty/lighty-ubuntu-docker/src/main/resources/odlsli.dump @@ -0,0 +1,1418 @@ +-- MySQL dump 10.13 Distrib 5.6.22, for Linux (x86_64) +-- +-- Host: sdnctldb01 Database: sdnctl +-- ------------------------------------------------------ +-- Server version 5.6.27-enterprise-commercial-advanced-log + +/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; +/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; +/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; +/*!40101 SET NAMES utf8 */; +/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; +/*!40103 SET TIME_ZONE='+00:00' */; +/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; +/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; +/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; +/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; +SET @MYSQLDUMP_TEMP_LOG_BIN = @@SESSION.SQL_LOG_BIN; +SET @@SESSION.SQL_LOG_BIN= 0; + +-- +-- Table structure for table `ALLOCATION_ITEM` +-- + +DROP TABLE IF EXISTS `ALLOCATION_ITEM`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `ALLOCATION_ITEM` ( + `allocation_item_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `resource_id` bigint(20) NOT NULL, + `application_id` varchar(50) NOT NULL, + `resource_set_id` varchar(200) NOT NULL, + `resource_union_id` varchar(200) NOT NULL, + `resource_share_group_list` varchar(200) DEFAULT NULL, + `lt_used` bigint(20) DEFAULT NULL, + `ll_label` varchar(50) DEFAULT NULL, + `rr_used` varchar(200) DEFAULT NULL, + `allocation_time` datetime NOT NULL, + PRIMARY KEY (`allocation_item_id`), + UNIQUE KEY `allocation_item_id` (`allocation_item_id`), + UNIQUE KEY `IX2_ALLOCATION_ITEM` (`resource_id`,`resource_set_id`), + KEY `IX1_ALLOCATION_ITEM` (`resource_id`) +) ENGINE=InnoDB AUTO_INCREMENT=10104 DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + + +-- +-- Table structure for table `DATA_OBJECT_MAPPING` +-- + +DROP TABLE IF EXISTS `DATA_OBJECT_MAPPING`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `DATA_OBJECT_MAPPING` ( + `serial_key` int(11) NOT NULL AUTO_INCREMENT, + `data_object_key` varchar(100) NOT NULL, + `data_object_type` varchar(50) NOT NULL, + `service_type` varchar(50) NOT NULL, + `data_object_key2` varchar(100) NOT NULL, + `data_object_key2_type` varchar(50) NOT NULL, + PRIMARY KEY (`serial_key`), + KEY `IX1_DATA_OBJECT_MAPPING` (`data_object_key`,`data_object_type`,`service_type`), + KEY `IX2_DATA_OBJECT_MAPPING` (`service_type`,`data_object_key2`,`data_object_key2_type`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `DEVICE2CONNECTION_MAPPING` +-- + +DROP TABLE IF EXISTS `DEVICE2CONNECTION_MAPPING`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `DEVICE2CONNECTION_MAPPING` ( + `vnf_host_name` varchar(100) NOT NULL, + `e2e_vpn_key` varchar(30) NOT NULL, + `service_type` varchar(30) NOT NULL, + `connection_id` bigint(20) NOT NULL, + PRIMARY KEY (`vnf_host_name`,`e2e_vpn_key`,`service_type`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `DEVICE2IPADDRESS_CONSUMPTION` +-- + +DROP TABLE IF EXISTS `DEVICE2IPADDRESS_CONSUMPTION`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `DEVICE2IPADDRESS_CONSUMPTION` ( + `serial_key` int(11) NOT NULL AUTO_INCREMENT, + `device_id` varchar(100) NOT NULL, + `device_type` varchar(30) NOT NULL, + `ip_version` varchar(10) NOT NULL, + `consumption_key` varchar(100) NOT NULL, + `logical_interface_service_id` varchar(100) NOT NULL, + `address_type` varchar(30) NOT NULL, + `ip_consumed` varchar(50) NOT NULL, + `vnf_type` varchar(30) NOT NULL, + PRIMARY KEY (`serial_key`), + KEY `IX1_DEVICEIPADDRESS_CONSUMPTION` (`device_id`,`device_type`,`ip_version`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `DEVICE2IPADDRESS_MAPPING` +-- + +DROP TABLE IF EXISTS `DEVICE2IPADDRESS_MAPPING`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `DEVICE2IPADDRESS_MAPPING` ( + `serial_key` int(11) NOT NULL AUTO_INCREMENT, + `device_id` varchar(100) NOT NULL, + `device_type` varchar(30) NOT NULL, + `secondary_key` varchar(100) NOT NULL, + `secondary_key_type` varchar(30) NOT NULL, + `address` varchar(50) NOT NULL, + `address_type` varchar(30) NOT NULL, + `ip_version` varchar(10) NOT NULL, + `length` int(11) NOT NULL, + `status` varchar(30) NOT NULL, + PRIMARY KEY (`serial_key`), + KEY `IX1_DEVICE2IPADDRESS_MAPPING` (`device_id`,`device_type`,`secondary_key`,`secondary_key_type`,`address`,`address_type`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `EIPAM_IP_ASSIGNMENTS` +-- + +DROP TABLE IF EXISTS `EIPAM_IP_ASSIGNMENTS`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `EIPAM_IP_ASSIGNMENTS` ( + `plan_name` varchar(40) NOT NULL, + `client_key` varchar(100) NOT NULL, + `service_type` varchar(40) NOT NULL, + `ip_address` varchar(40) DEFAULT NULL, + `prefix_length` int(2) DEFAULT NULL, + `status` varchar(20) DEFAULT NULL, + `service_instance_id` varchar(80) DEFAULT NULL, + `last_modified_ts` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + `prev_status` varchar(20) DEFAULT NULL, + PRIMARY KEY (`plan_name`,`client_key`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `EIPAM_IP_SUBNETS` +-- + +DROP TABLE IF EXISTS `EIPAM_IP_SUBNETS`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `EIPAM_IP_SUBNETS` ( + `entity_id` int(6) NOT NULL, + `service_type` varchar(40) NOT NULL, + `plan_name` varchar(40) NOT NULL, + `address_family` varchar(10) NOT NULL, + `ip_address` varchar(40) NOT NULL, + `prefix_length` int(3) NOT NULL, + `status` varchar(20) NOT NULL, + `last_modified_ts` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + PRIMARY KEY (`entity_id`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `EIPAM_IP_SUBNET_KEYS` +-- + +DROP TABLE IF EXISTS `EIPAM_IP_SUBNET_KEYS`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `EIPAM_IP_SUBNET_KEYS` ( + `entity_id` int(6) NOT NULL, + `key_name` varchar(255) NOT NULL, + `key_value` varchar(50) NOT NULL, + `level` int(2) NOT NULL, + PRIMARY KEY (`entity_id`,`key_name`,`key_value`,`level`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `EIPAM_REQUEST_KEY` +-- + +DROP TABLE IF EXISTS `EIPAM_REQUEST_KEY`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `EIPAM_REQUEST_KEY` ( + `key_name_1` varchar(50) NOT NULL, + `address_family` varchar(4) NOT NULL, + `serial_key` int(2) NOT NULL AUTO_INCREMENT, + `plan_name` varchar(50) NOT NULL, + `request_length` int(2) NOT NULL, + `pools_length` int(2) NOT NULL, + `plan_length` int(2) NOT NULL, + `key_name_0` varchar(50) NOT NULL, + `key_name_type_0` varchar(255) NOT NULL, + `key_name_type_1` varchar(255) NOT NULL, + `prefix_length` int(2) NOT NULL, + `group_flag` char(1) NOT NULL, + `address_type` varchar(20) DEFAULT NULL, + PRIMARY KEY (`key_name_1`,`address_family`), + UNIQUE KEY `IX1_EIPAM_REQUEST_KEY` (`serial_key`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `GENERIC_L3_NETWORK` +-- + +DROP TABLE IF EXISTS `GENERIC_L3_NETWORK`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `GENERIC_L3_NETWORK` ( + `network_id` varchar(80) NOT NULL, + `network_name` varchar(80) DEFAULT NULL, + `network_type` varchar(80) DEFAULT NULL, + `network_role` varchar(80) DEFAULT NULL, + `network_technology` varchar(80) DEFAULT NULL, + `neutron_network_id` varchar(80) DEFAULT NULL, + `is_bound_to_vpn` tinyint(1) DEFAULT NULL, + `orchestration_status` varchar(20) DEFAULT NULL, + `heat_stack_id` varchar(80) DEFAULT NULL, + `mso_catalog_key` varchar(80) DEFAULT NULL, + `service_id` varchar(80) NOT NULL, + `tenant_id` varchar(80) NOT NULL, + `physical_location_id` varchar(20) DEFAULT NULL, + `network_role_instance` varchar(80) NOT NULL, + PRIMARY KEY (`network_id`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `GENERIC_L3_NETWORK_SUBNET` +-- + +DROP TABLE IF EXISTS `GENERIC_L3_NETWORK_SUBNET`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `GENERIC_L3_NETWORK_SUBNET` ( + `network_id` varchar(80) NOT NULL, + `subnet_id` varchar(80) NOT NULL, + `neutron_subnet_id` varchar(80) DEFAULT NULL, + `gateway_address` varchar(45) NOT NULL, + `network_start_address` varchar(45) NOT NULL, + `cidr_mask` varchar(20) NOT NULL, + `ip_version` char(1) NOT NULL, + `orchestration_status` varchar(64) NOT NULL, + `dhcp_enabled` tinyint(1) NOT NULL, + `dhcp_start` varchar(45) DEFAULT NULL, + `dhcp_end` varchar(45) DEFAULT NULL, + PRIMARY KEY (`network_id`,`subnet_id`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `GENERIC_L3_NETWORK_VPN_BINDING` +-- + +DROP TABLE IF EXISTS `GENERIC_L3_NETWORK_VPN_BINDING`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `GENERIC_L3_NETWORK_VPN_BINDING` ( + `network_id` varchar(80) NOT NULL, + `vpn_id` varchar(80) NOT NULL, + PRIMARY KEY (`network_id`,`vpn_id`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `GENERIC_VNF` +-- + +DROP TABLE IF EXISTS `GENERIC_VNF`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `GENERIC_VNF` ( + `vnf_id` varchar(80) NOT NULL, + `vnf_name` varchar(80) NOT NULL, + `vnf_type` varchar(200) NOT NULL, + `vnf_name2` varchar(80) DEFAULT NULL, + `service_id` varchar(80) NOT NULL, + `equipment_role` varchar(80) NOT NULL, + `orchestration_status` varchar(20) DEFAULT NULL, + `prov_status` varchar(20) DEFAULT NULL, + `heat_stack_id` varchar(80) DEFAULT NULL, + `mso_catalog_key` varchar(80) DEFAULT NULL, + `regional_resource_zone` varchar(80) DEFAULT NULL, + `operational_state` varchar(80) DEFAULT NULL, + `license_key` varchar(80) DEFAULT NULL, + `ipv4_oam_address` varchar(20) DEFAULT NULL, + `ipv4_loopback0_address` varchar(20) DEFAULT NULL, + `nm_lan_v6_address` varchar(40) DEFAULT NULL, + `management_v6_address` varchar(40) DEFAULT NULL, + `management_option` varchar(45) DEFAULT NULL, + `vcpu` varchar(45) DEFAULT NULL, + `vmemory` varchar(45) DEFAULT NULL, + `vdisk` varchar(45) DEFAULT NULL, + `vcpu_units` varchar(45) DEFAULT NULL, + `vmemory_units` varchar(45) DEFAULT NULL, + `vdisk_units` varchar(45) DEFAULT NULL, + PRIMARY KEY (`vnf_id`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `GENERIC_VNF_L3_NETWORK` +-- + +DROP TABLE IF EXISTS `GENERIC_VNF_L3_NETWORK`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `GENERIC_VNF_L3_NETWORK` ( + `vnf_id` varchar(80) NOT NULL, + `network_id` varchar(80) NOT NULL, + PRIMARY KEY (`vnf_id`,`network_id`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `GENERIC_VNF_LICENSE_MANAGEMENT` +-- + +DROP TABLE IF EXISTS `GENERIC_VNF_LICENSE_MANAGEMENT`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `GENERIC_VNF_LICENSE_MANAGEMENT` ( + `vnf_id` varchar(80) NOT NULL, + `att_uuid` varchar(80) NOT NULL, + PRIMARY KEY (`vnf_id`,`att_uuid`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `GENERIC_VNF_LINTERFACE` +-- + +DROP TABLE IF EXISTS `GENERIC_VNF_LINTERFACE`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `GENERIC_VNF_LINTERFACE` ( + `vnf_id` varchar(80) NOT NULL, + `interface_name` varchar(255) NOT NULL, + `interface_role` varchar(45) DEFAULT NULL, + `v6_wan_link_ip` varchar(45) DEFAULT NULL, + `selflink` varchar(128) DEFAULT NULL, + `interface_id` varchar(45) DEFAULT NULL, + `macaddr` varchar(64) DEFAULT NULL, + `network_name` varchar(255) DEFAULT NULL, + PRIMARY KEY (`vnf_id`,`interface_name`), + KEY `FK_GENERIC_VNF_LINTERFACE_GENERIC_VNF_IDX` (`vnf_id`), + CONSTRAINT `FK_GENERIC_VNF_LINTERFACE_GENERIC_VNF` FOREIGN KEY (`vnf_id`) REFERENCES `GENERIC_VNF` (`vnf_id`) ON DELETE NO ACTION ON UPDATE NO ACTION +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `GENERIC_VNF_PSERVER` +-- + +DROP TABLE IF EXISTS `GENERIC_VNF_PSERVER`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `GENERIC_VNF_PSERVER` ( + `vnf_id` varchar(64) NOT NULL, + `hostname` varchar(255) NOT NULL, + PRIMARY KEY (`vnf_id`,`hostname`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `GENERIC_VNF_SERVICE_INSTANCE` +-- + +DROP TABLE IF EXISTS `GENERIC_VNF_SERVICE_INSTANCE`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `GENERIC_VNF_SERVICE_INSTANCE` ( + `vnf_id` varchar(64) NOT NULL, + `service_instance_id` varchar(255) NOT NULL, + `relationship_key` varchar(64) NOT NULL, + `relationship_value` varchar(64) DEFAULT NULL, + `global_customer_id` varchar(255) DEFAULT NULL, + `service_type` varchar(255) DEFAULT NULL, + PRIMARY KEY (`vnf_id`,`service_instance_id`,`relationship_key`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `GENERIC_VNF_VNF_IMAGE` +-- + +DROP TABLE IF EXISTS `GENERIC_VNF_VNF_IMAGE`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `GENERIC_VNF_VNF_IMAGE` ( + `vnf_id` varchar(64) NOT NULL, + `att_uuid` varchar(255) NOT NULL, + PRIMARY KEY (`vnf_id`,`att_uuid`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `GENERIC_VNF_VSERVER` +-- + +DROP TABLE IF EXISTS `GENERIC_VNF_VSERVER`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `GENERIC_VNF_VSERVER` ( + `vnf_id` varchar(80) NOT NULL, + `vserver_id` varchar(128) NOT NULL, + `tenant_id` varchar(128) DEFAULT NULL, + PRIMARY KEY (`vnf_id`,`vserver_id`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `GENERIC_VPN_BINDING` +-- + +DROP TABLE IF EXISTS `GENERIC_VPN_BINDING`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `GENERIC_VPN_BINDING` ( + `vpn_id` varchar(80) NOT NULL, + `vpn_name` varchar(80) NOT NULL, + `global_route_target` varchar(80) NOT NULL, + PRIMARY KEY (`vpn_id`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `HOSTNAME` +-- + +DROP TABLE IF EXISTS `HOSTNAME`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `HOSTNAME` ( + `hostname` varchar(21) NOT NULL, + `parent_hostname` varchar(21) DEFAULT NULL, + `cust_id` int(11) NOT NULL, + `loc_id` int(11) NOT NULL, + `site_sequence` varchar(2) NOT NULL, + `server_sequence` varchar(2) NOT NULL, + `activation_code` varchar(11) DEFAULT NULL, + `vnf_sequence` varchar(2) DEFAULT NULL, + `vendor_code` varchar(1) NOT NULL, + `virtual_device_type` varchar(2) DEFAULT NULL, + `device_sequence` varchar(3) DEFAULT NULL, + `create_date` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, + PRIMARY KEY (`hostname`), + KEY `IN1_HOSTNAME` (`cust_id`), + KEY `IN2_HOSTNAME` (`loc_id`), + KEY `IN3_HOSTNAME` (`vendor_code`), + KEY `IN4_HOSTNAME` (`parent_hostname`), + CONSTRAINT `FK1_HOSTNAME` FOREIGN KEY (`cust_id`) REFERENCES `CUSTOMER` (`cust_id`) ON DELETE NO ACTION ON UPDATE NO ACTION, + CONSTRAINT `FK2_HOSTNAME` FOREIGN KEY (`loc_id`) REFERENCES `LOCATION` (`loc_id`) ON DELETE NO ACTION ON UPDATE NO ACTION, + CONSTRAINT `FK3_HOSTNAME` FOREIGN KEY (`vendor_code`) REFERENCES `VENDOR_CODE` (`vendor_code`) ON DELETE NO ACTION ON UPDATE NO ACTION, + CONSTRAINT `FK4_HOSTNAME` FOREIGN KEY (`parent_hostname`) REFERENCES `HOSTNAME` (`hostname`) ON DELETE NO ACTION ON UPDATE NO ACTION +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `IPV4_ADDRESS_POOL` +-- + +DROP TABLE IF EXISTS `IPV4_ADDRESS_POOL`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `IPV4_ADDRESS_POOL` ( + `aic_site_id` varchar(100) NOT NULL, + `universe` varchar(40) NOT NULL, + `status` varchar(40) NOT NULL, + `ipv4_addr` varchar(20) NOT NULL, + PRIMARY KEY (`ipv4_addr`,`universe`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `LINTERFACE_VLAN` +-- + +DROP TABLE IF EXISTS `LINTERFACE_VLAN`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `LINTERFACE_VLAN` ( + `vnf_id` varchar(80) NOT NULL, + `interface_name` varchar(255) NOT NULL, + `vlan_interface` varchar(255) NOT NULL, + `vlan_id_inner` varchar(64) DEFAULT NULL, + `vlan_id_outer` varchar(64) DEFAULT NULL, + PRIMARY KEY (`vnf_id`,`interface_name`,`vlan_interface`), + KEY `FK_LINTERFACE_VLAN_GENERIC_VNF_LINTERFACE_IDX` (`vnf_id`,`interface_name`), + CONSTRAINT `FK_LINTERFACE_VLAN_GENERIC_VNF_LINTERFACE` FOREIGN KEY (`vnf_id`, `interface_name`) REFERENCES `GENERIC_VNF_LINTERFACE` (`vnf_id`, `interface_name`) ON DELETE NO ACTION ON UPDATE NO ACTION +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `LOCATION` +-- + +DROP TABLE IF EXISTS `LOCATION`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `LOCATION` ( + `loc_id` int(11) NOT NULL AUTO_INCREMENT, + `address` varchar(150) NOT NULL, + `city_code_id` int(11) NOT NULL, + `create_date` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, + PRIMARY KEY (`loc_id`), + KEY `IN1_LOCATION_IDX` (`city_code_id`), + CONSTRAINT `FK1_LOCATION` FOREIGN KEY (`city_code_id`) REFERENCES `CITY_CODE` (`city_code_id`) ON DELETE NO ACTION ON UPDATE NO ACTION +) ENGINE=InnoDB AUTO_INCREMENT=112 DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `MAX_PORT_SPEED` +-- + +DROP TABLE IF EXISTS `MAX_PORT_SPEED`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `MAX_PORT_SPEED` ( + `max_port_speed_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `image_file_name` varchar(50) NOT NULL, + `end_point_position` varchar(50) NOT NULL, + `interface_name` varchar(100) NOT NULL, + `max_speed` bigint(20) NOT NULL, + `unit` varchar(10) NOT NULL, + PRIMARY KEY (`max_port_speed_id`), + UNIQUE KEY `max_port_speed_id` (`max_port_speed_id`) +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `MAX_SERVER_SPEED` +-- + +DROP TABLE IF EXISTS `MAX_SERVER_SPEED`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `MAX_SERVER_SPEED` ( + `max_server_speed_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `server_model` varchar(50) NOT NULL, + `evc_count` smallint(6) NOT NULL, + `max_speed` bigint(20) NOT NULL, + `unit` varchar(10) NOT NULL, + `description` varchar(500) DEFAULT NULL, + PRIMARY KEY (`max_server_speed_id`), + UNIQUE KEY `max_server_speed_id` (`max_server_speed_id`) +) ENGINE=InnoDB AUTO_INCREMENT=25 DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + + + +-- +-- Table structure for table `NETWORK_PROFILE` +-- + +DROP TABLE IF EXISTS `NETWORK_PROFILE`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `NETWORK_PROFILE` ( + `network_type` varchar(100) NOT NULL, + `technology` varchar(100) NOT NULL, + PRIMARY KEY (`network_type`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `NETWORK_ROLE_VPN_BINDING` +-- + +DROP TABLE IF EXISTS `NETWORK_ROLE_VPN_BINDING`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `NETWORK_ROLE_VPN_BINDING` ( + `network_role` varchar(80) NOT NULL, + `vpn_id` varchar(80) NOT NULL, + PRIMARY KEY (`network_role`,`vpn_id`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `NODE_TYPES` +-- + +DROP TABLE IF EXISTS `NODE_TYPES`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `NODE_TYPES` ( + `nodetype` varchar(80) NOT NULL, + PRIMARY KEY (`nodetype`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `PARAMETERS` +-- + +DROP TABLE IF EXISTS `PARAMETERS`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `PARAMETERS` ( + `name` varchar(100) NOT NULL, + `value` varchar(24) NOT NULL, + `category` varchar(24) DEFAULT NULL, + `memo` varchar(128) DEFAULT NULL, + PRIMARY KEY (`name`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `PHYSICAL_LINK` +-- + +DROP TABLE IF EXISTS `PHYSICAL_LINK`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `PHYSICAL_LINK` ( + `link_name` varchar(255) NOT NULL, + `speed_value` varchar(64) DEFAULT NULL, + `speed_units` varchar(64) DEFAULT NULL, + `circuit_id` varchar(255) NOT NULL, + `dual_mode` varchar(64) NOT NULL, + PRIMARY KEY (`link_name`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `PHYSICAL_LINK_PINTERFACE` +-- + +DROP TABLE IF EXISTS `PHYSICAL_LINK_PINTERFACE`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `PHYSICAL_LINK_PINTERFACE` ( + `link_name` varchar(255) NOT NULL, + `hostname` varchar(255) NOT NULL, + `port_name_ft` varchar(255) NOT NULL, + PRIMARY KEY (`link_name`,`hostname`,`port_name_ft`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `PINTERFACE` +-- + +DROP TABLE IF EXISTS `PINTERFACE`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `PINTERFACE` ( + `hostname` varchar(255) NOT NULL, + `port_name_ft` varchar(255) NOT NULL, + `interface_name` varchar(255) DEFAULT '', + `physical_speed` varchar(255) DEFAULT '', + `physical_units` varchar(255) DEFAULT '', + `port_description` varchar(255) DEFAULT '', + PRIMARY KEY (`hostname`,`port_name_ft`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `PORTAL_USERS` +-- + +DROP TABLE IF EXISTS `PORTAL_USERS`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `PORTAL_USERS` ( + `email` varchar(64) NOT NULL, + `password` varbinary(255) NOT NULL, + `privilege` char(1) NOT NULL, + PRIMARY KEY (`email`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + + +-- +-- Table structure for table `PSERVER` +-- + +DROP TABLE IF EXISTS `PSERVER`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `PSERVER` ( + `hostname` varchar(255) NOT NULL, + `ptnii_equip_name` varchar(255) DEFAULT '', + `number_of_cpus` varchar(255) DEFAULT '', + `disk_in_gigabytes` varchar(255) DEFAULT '', + `ram_in_megabytes` varchar(255) DEFAULT '', + `equip_type` varchar(255) DEFAULT '', + `equip_vendor` varchar(255) DEFAULT '', + `equip_model` varchar(255) DEFAULT '', + `fqdn` varchar(255) DEFAULT '', + `pserver_selflink` varchar(255) DEFAULT '', + `ipv4_oam_address` varchar(40) DEFAULT NULL, + `serial_number` varchar(255) DEFAULT '', + `pserver_id` varchar(255) DEFAULT '', + `internet_topology` varchar(40) DEFAULT '', + `aic_site_id` varchar(100) DEFAULT '', + `in_maint` varchar(5) DEFAULT '', + `pserver_name2` varchar(255) DEFAULT '', + `purpose` varchar(255) DEFAULT '', + PRIMARY KEY (`hostname`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `RANGE_RULE` +-- + +DROP TABLE IF EXISTS `RANGE_RULE`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `RANGE_RULE` ( + `range_rule_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `range_name` varchar(50) NOT NULL, + `service_model` varchar(50) NOT NULL, + `end_point_position` varchar(50) NOT NULL, + `equipment_level` varchar(50) NOT NULL, + `equipment_expression` varchar(2000) NOT NULL, + `ranges` varchar(100) NOT NULL, + PRIMARY KEY (`range_rule_id`) +) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `RESOURCE` +-- + +DROP TABLE IF EXISTS `RESOURCE`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `RESOURCE` ( + `resource_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `asset_id` varchar(100) NOT NULL, + `resource_name` varchar(50) NOT NULL, + `resource_type` enum('Limit','Label','Range') NOT NULL, + `lt_used` bigint(20) DEFAULT NULL, + `ll_label` varchar(50) DEFAULT NULL, + `ll_reference_count` smallint(6) DEFAULT NULL, + `rr_used` varchar(4000) DEFAULT NULL, + PRIMARY KEY (`resource_id`), + UNIQUE KEY `resource_id` (`resource_id`), + UNIQUE KEY `IX1_RESOURCE` (`asset_id`,`resource_name`) +) ENGINE=InnoDB AUTO_INCREMENT=14 DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `RESOURCE_LOAD` +-- + +DROP TABLE IF EXISTS `RESOURCE_LOAD`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `RESOURCE_LOAD` ( + `resource_load_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `resource_id` bigint(20) NOT NULL, + `application_id` varchar(20) NOT NULL, + `resource_load_time` datetime NOT NULL, + `resource_expiration_time` datetime DEFAULT NULL, + PRIMARY KEY (`resource_load_id`), + UNIQUE KEY `resource_load_id` (`resource_load_id`), + UNIQUE KEY `IX2_RESOURCE_LOAD` (`resource_id`,`application_id`), + KEY `IX1_RESOURCE_LOAD` (`resource_id`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `RESOURCE_LOCK` +-- + +DROP TABLE IF EXISTS `RESOURCE_LOCK`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `RESOURCE_LOCK` ( + `resource_lock_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `resource_name` varchar(50) NOT NULL, + `lock_holder` varchar(100) NOT NULL, + `lock_count` smallint(6) NOT NULL, + `lock_time` datetime NOT NULL, + `expiration_time` datetime NOT NULL, + PRIMARY KEY (`resource_lock_id`), + UNIQUE KEY `resource_lock_id` (`resource_lock_id`), + UNIQUE KEY `IX1_RESOURCE_LOCK` (`resource_name`) +) ENGINE=InnoDB AUTO_INCREMENT=2951 DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `RESOURCE_RULE` +-- + +DROP TABLE IF EXISTS `RESOURCE_RULE`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `RESOURCE_RULE` ( + `resource_rule_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `resource_name` varchar(50) NOT NULL, + `service_model` varchar(50) NOT NULL, + `end_point_position` varchar(50) NOT NULL, + `service_expression` varchar(2000) NOT NULL, + `equipment_level` varchar(50) NOT NULL, + `equipment_expression` varchar(2000) NOT NULL, + `allocation_expression` varchar(2000) NOT NULL, + `soft_limit_expression` varchar(2000) NOT NULL, + `hard_limit_expression` varchar(2000) NOT NULL, + PRIMARY KEY (`resource_rule_id`), + UNIQUE KEY `resource_rule_id` (`resource_rule_id`) +) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `RESOURCE_THRESHOLD` +-- + +DROP TABLE IF EXISTS `RESOURCE_THRESHOLD`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `RESOURCE_THRESHOLD` ( + `resource_threshold_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `resource_rule_id` bigint(20) NOT NULL, + `threshold_expression` varchar(2000) NOT NULL, + `threshold_message` varchar(2000) NOT NULL, + PRIMARY KEY (`resource_threshold_id`) +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + + +-- +-- Table structure for table `SERVICE_RESOURCE` +-- + +DROP TABLE IF EXISTS `SERVICE_RESOURCE`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `SERVICE_RESOURCE` ( + `service_resource_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `service_instance_id` varchar(80) NOT NULL, + `service_status` enum('Active','Pending') NOT NULL, + `service_change_number` smallint(6) NOT NULL, + `resource_set_id` varchar(100) NOT NULL, + `resource_union_id` varchar(100) NOT NULL, + PRIMARY KEY (`service_instance_id`,`service_change_number`), + UNIQUE KEY `service_resource_id` (`service_resource_id`), + KEY `IX1_SERVICE_RESOURCE` (`service_instance_id`) +) ENGINE=InnoDB AUTO_INCREMENT=2203 DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `SVC_LOGIC` +-- + +DROP TABLE IF EXISTS `SVC_LOGIC`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `SVC_LOGIC` ( + `module` varchar(80) NOT NULL, + `rpc` varchar(80) NOT NULL, + `version` varchar(40) NOT NULL, + `mode` varchar(5) NOT NULL, + `active` varchar(1) NOT NULL, + `graph` longblob, + `modified_timestamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + `md5sum` varchar(128) DEFAULT NULL, + PRIMARY KEY (`module`,`rpc`,`version`,`mode`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `TENANT` +-- + +DROP TABLE IF EXISTS `TENANT`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `TENANT` ( + `tenant_id` varchar(255) NOT NULL, + `tenant_name` varchar(255) NOT NULL, + `service_instance_id` varchar(255) NOT NULL, + PRIMARY KEY (`tenant_id`,`tenant_name`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `THRESHOLD_NOTIFICATION` +-- + +DROP TABLE IF EXISTS `THRESHOLD_NOTIFICATION`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `THRESHOLD_NOTIFICATION` ( + `resource_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `threshold_expression` varchar(2000) DEFAULT NULL, + `threshold_message` varchar(500) DEFAULT NULL, + PRIMARY KEY (`resource_id`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + + +-- +-- Table structure for table `VENDOR_CODE` +-- + +DROP TABLE IF EXISTS `VENDOR_CODE`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `VENDOR_CODE` ( + `vendor_code` varchar(1) NOT NULL, + `vendor` varchar(45) DEFAULT NULL, + PRIMARY KEY (`vendor_code`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `VLAN_ID_POOL` +-- + +DROP TABLE IF EXISTS `VLAN_ID_POOL`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `VLAN_ID_POOL` ( + `aic_site_id` varchar(100) NOT NULL, + `purpose` varchar(40) NOT NULL, + `status` varchar(40) NOT NULL, + `vlan_id` int(4) NOT NULL, + `svc_instance_id` varchar(80) DEFAULT NULL, + `availability_zone` varchar(100) DEFAULT NULL, + `vplspe_name` varchar(80) DEFAULT NULL, + PRIMARY KEY (`vlan_id`,`aic_site_id`,`purpose`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `VLAN_L3INTERFACE_IPV4_ADDRESS` +-- + +DROP TABLE IF EXISTS `VLAN_L3INTERFACE_IPV4_ADDRESS`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `VLAN_L3INTERFACE_IPV4_ADDRESS` ( + `vnf_id` varchar(80) NOT NULL, + `interface_name` varchar(255) NOT NULL, + `vlan_interface` varchar(255) NOT NULL, + `l3_interface_ipv4_address` varchar(64) NOT NULL, + `l3_interface_ipv4_prefix_length` varchar(45) DEFAULT NULL, + `vlan_id_inner` varchar(45) DEFAULT NULL, + `vlan_id_outer` varchar(45) DEFAULT NULL, + `is_floating` varchar(1) DEFAULT NULL, + PRIMARY KEY (`vnf_id`,`interface_name`,`vlan_interface`,`l3_interface_ipv4_address`), + KEY `FK_VLAN_L3INTERFACE_IPV4_ADDRESS_LINTERFACE_VLAN_IDX` (`vnf_id`,`interface_name`), + CONSTRAINT `FK_VLAN_L3INTERFACE_IPV4_ADDRESS_LINTERFACE_VLAN` FOREIGN KEY (`vnf_id`, `interface_name`, `vlan_interface`) REFERENCES `LINTERFACE_VLAN` (`vnf_id`, `interface_name`, `vlan_interface`) ON DELETE NO ACTION ON UPDATE NO ACTION +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `VLAN_L3INTERFACE_IPV6_ADDRESS` +-- + +DROP TABLE IF EXISTS `VLAN_L3INTERFACE_IPV6_ADDRESS`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `VLAN_L3INTERFACE_IPV6_ADDRESS` ( + `vnf_id` varchar(80) NOT NULL, + `interface_name` varchar(255) NOT NULL, + `vlan_interface` varchar(255) NOT NULL, + `l3_interface_ipv6_address` varchar(64) NOT NULL, + `l3_interface_ipv6_prefix_length` varchar(45) DEFAULT NULL, + `vlan_id_inner` varchar(45) DEFAULT NULL, + `vlan_id_outer` varchar(45) DEFAULT NULL, + `is_floating` varchar(1) DEFAULT NULL, + PRIMARY KEY (`vnf_id`,`interface_name`,`vlan_interface`,`l3_interface_ipv6_address`), + KEY `FK_VLAN_L3INTERFACE_IPV6_ADDRESS_LINTERFACE_VLAN_IDX` (`vnf_id`,`interface_name`,`vlan_interface`), + CONSTRAINT `FK_VLAN_L3INTERFACE_IPV6_ADDRESS_LINTERFACE_VLAN` FOREIGN KEY (`vnf_id`, `interface_name`, `vlan_interface`) REFERENCES `LINTERFACE_VLAN` (`vnf_id`, `interface_name`, `vlan_interface`) ON DELETE NO ACTION ON UPDATE NO ACTION +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `VLAN_PLAN_ID` +-- + +DROP TABLE IF EXISTS `VLAN_PLAN_ID`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `VLAN_PLAN_ID` ( + `plan_type` varchar(40) NOT NULL, + `purpose` varchar(40) NOT NULL, + `vlan_plan_id_count` int(4) NOT NULL, + PRIMARY KEY (`vlan_plan_id_count`,`plan_type`,`purpose`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `VLAN_POOL` +-- + +DROP TABLE IF EXISTS `VLAN_POOL`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `VLAN_POOL` ( + `aic_site_id` varchar(100) NOT NULL, + `availability_zone` varchar(100) NOT NULL, + `vlan_plan_id` varchar(100) NOT NULL, + `plan_type` varchar(40) NOT NULL, + `purpose` varchar(40) NOT NULL, + `vlan_id` int(4) NOT NULL, + `status` varchar(40) NOT NULL, + `reserved_id` varchar(80) DEFAULT NULL, + PRIMARY KEY (`aic_site_id`,`availability_zone`,`vlan_plan_id`,`plan_type`,`purpose`,`vlan_id`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `VLAN_RANGES` +-- + +DROP TABLE IF EXISTS `VLAN_RANGES`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `VLAN_RANGES` ( + `vlan_plan_id` varchar(100) NOT NULL, + `plan_type` varchar(40) NOT NULL, + `purpose` varchar(40) NOT NULL, + `range_start` int(4) NOT NULL, + `range_end` int(4) NOT NULL, + `generated` char(1) DEFAULT NULL, + PRIMARY KEY (`vlan_plan_id`,`plan_type`,`purpose`,`range_start`,`range_end`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `VM_NETWORKS` +-- + +DROP TABLE IF EXISTS `VM_NETWORKS`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `VM_NETWORKS` ( + `vnf_type` varchar(200) NOT NULL, + `vm_type` varchar(45) NOT NULL, + `network_role` varchar(45) NOT NULL, + `assign_ips` tinyint(1) NOT NULL, + `assign_macs` tinyint(1) NOT NULL, + `assign_floating_ip` tinyint(1) NOT NULL, + `ip_count` int(11) DEFAULT NULL, + PRIMARY KEY (`vnf_type`,`vm_type`,`network_role`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `VM_PROFILE` +-- + +DROP TABLE IF EXISTS `VM_PROFILE`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `VM_PROFILE` ( + `vnf_type` varchar(200) NOT NULL, + `vm_type` varchar(45) NOT NULL, + `vm_count` int(11) NOT NULL, + PRIMARY KEY (`vnf_type`,`vm_type`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `VNF` +-- + +DROP TABLE IF EXISTS `VNF`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `VNF` ( + `vnf_id` varchar(80) NOT NULL, + `vnf_name` varchar(80) NOT NULL, + `vnf_type` varchar(10) NOT NULL, + `orchestration_status` varchar(20) DEFAULT NULL, + `heat_stack_id` varchar(80) DEFAULT NULL, + `mso_catalog_key` varchar(80) DEFAULT NULL, + `availability_zone` varchar(80) DEFAULT NULL, + `aic_site_id` varchar(80) DEFAULT NULL, + `oam_ipv4_address` varchar(20) DEFAULT NULL, + `vnf_name2` varchar(80) DEFAULT NULL, + `vpe_id` varchar(80) NOT NULL, + `ipv4_loopback0_address` varchar(80) DEFAULT NULL, + `license_key` varchar(256) DEFAULT NULL, + `entitlement_resource_uuid` varchar(256) DEFAULT NULL, + PRIMARY KEY (`vnf_id`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `VNF_IMAGE` +-- + +DROP TABLE IF EXISTS `VNF_IMAGE`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `VNF_IMAGE` ( + `application_vendor` varchar(255) NOT NULL, + `application_version` varchar(255) NOT NULL, + `att_uuid` varchar(255) NOT NULL, + `application` varchar(255) DEFAULT NULL, + `selflink` varchar(255) DEFAULT NULL, + PRIMARY KEY (`application_vendor`,`application_version`,`att_uuid`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `VNF_MODEL_LICENSES` +-- + +DROP TABLE IF EXISTS `VNF_MODEL_LICENSES`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `VNF_MODEL_LICENSES` ( + `att_part_number` varchar(255) NOT NULL, + `license_assignment_group` varchar(255) NOT NULL, + `license_required` tinyint(1) DEFAULT NULL, + `entitlement_assignment_group` varchar(255) DEFAULT NULL, + `entitlement_required` tinyint(1) DEFAULT NULL, + `feature_group_uuid` varchar(255) DEFAULT NULL, + PRIMARY KEY (`att_part_number`,`license_assignment_group`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `VNF_MODEL_LICENSE_FEATURES` +-- + +DROP TABLE IF EXISTS `VNF_MODEL_LICENSE_FEATURES`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `VNF_MODEL_LICENSE_FEATURES` ( + `att_part_number` varchar(255) NOT NULL, + `license_assignment_group` varchar(255) NOT NULL, + `feature` varchar(255) NOT NULL, + PRIMARY KEY (`att_part_number`,`license_assignment_group`,`feature`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `VNF_NETWORKS` +-- + +DROP TABLE IF EXISTS `VNF_NETWORKS`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `VNF_NETWORKS` ( + `vnf_type` varchar(200) NOT NULL, + `network_role` varchar(45) NOT NULL, + PRIMARY KEY (`vnf_type`,`network_role`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `VNF_NETWORK_CONNECTION` +-- + +DROP TABLE IF EXISTS `VNF_NETWORK_CONNECTION`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `VNF_NETWORK_CONNECTION` ( + `connection_uuid` varchar(80) NOT NULL, + `vnf_id` varchar(80) NOT NULL, + `connection_id` varchar(80) DEFAULT NULL, + `connection_type` varchar(20) DEFAULT NULL, + `neutron_network_id` varchar(80) DEFAULT NULL, + `neutron_network_name` varchar(80) DEFAULT NULL, + `orchestration_status` varchar(20) DEFAULT NULL, + `switch_id` varchar(40) DEFAULT NULL, + `heat_stack_id` varchar(80) DEFAULT NULL, + `mso_catalog_key` varchar(80) DEFAULT NULL, + `provider_network` varchar(80) DEFAULT NULL, + `port_group_id` varchar(80) DEFAULT NULL, + `port_group_name` varchar(80) DEFAULT NULL, + PRIMARY KEY (`connection_uuid`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `VNF_NETWORK_CONNECTION_VLAN` +-- + +DROP TABLE IF EXISTS `VNF_NETWORK_CONNECTION_VLAN`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `VNF_NETWORK_CONNECTION_VLAN` ( + `vlan_uuid` varchar(80) NOT NULL, + `vlan_id` int(4) NOT NULL, + `vlan_type` varchar(5) NOT NULL, + `connection_uuid` varchar(80) DEFAULT NULL, + PRIMARY KEY (`vlan_uuid`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `VNF_PROFILE` +-- + +DROP TABLE IF EXISTS `VNF_PROFILE`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `VNF_PROFILE` ( + `vnf_type` varchar(200) NOT NULL, + `availability_zone_count` int(11) NOT NULL, + `equipment_role` varchar(80) NOT NULL, + PRIMARY KEY (`vnf_type`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `VPE_LOCK` +-- + +DROP TABLE IF EXISTS `VPE_LOCK`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `VPE_LOCK` ( + `vpe_name` varchar(20) NOT NULL, + `vpn_lock` varchar(20) NOT NULL, + PRIMARY KEY (`vpe_name`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `VPE_POOL` +-- + +DROP TABLE IF EXISTS `VPE_POOL`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `VPE_POOL` ( + `vpe_name` varchar(20) NOT NULL, + `ipv4_oam_address` varchar(20) NOT NULL, + `loopback0_ipv4_address` varchar(20) NOT NULL, + `provisioning_status` varchar(10) NOT NULL, + `aic_site_id` varchar(100) NOT NULL, + `availability_zone` varchar(100) NOT NULL, + `vlan_id_outer` varchar(20) NOT NULL, + `vendor` varchar(20) NOT NULL, + `physical_intf_name` varchar(40) NOT NULL, + `physical_intf_speed` varchar(20) NOT NULL, + `physical_intf_units` varchar(20) NOT NULL, + `vpe_uuid` varchar(80) DEFAULT NULL, + `vpe_id` varchar(80) NOT NULL, + `image_filename` varchar(100) DEFAULT NULL, + `as_number` varchar(20) NOT NULL, + `loopback5000` varchar(16) DEFAULT NULL, + `loopback10` varchar(16) DEFAULT NULL, + PRIMARY KEY (`aic_site_id`,`vpe_name`,`availability_zone`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `VPLSPE_POOL` +-- + +DROP TABLE IF EXISTS `VPLSPE_POOL`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `VPLSPE_POOL` ( + `vplspe_name` varchar(20) NOT NULL, + `aic_site_id` varchar(100) NOT NULL, + `availability_zone` varchar(100) NOT NULL, + `physical_intf_name` varchar(40) NOT NULL, + `physical_intf_speed` varchar(20) NOT NULL, + `physical_intf_units` varchar(20) NOT NULL, + `loopback0_ipv4_address` varchar(20) NOT NULL, + `vlan_id_outer` varchar(20) NOT NULL, + `vplspe_uuid` varchar(80) DEFAULT NULL, + `image_filename` varchar(100) DEFAULT NULL, + `provisioning_status` varchar(10) DEFAULT NULL, + `vendor` varchar(20) DEFAULT NULL, + PRIMARY KEY (`vplspe_name`,`aic_site_id`,`availability_zone`,`physical_intf_name`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `VSERVER` +-- + +DROP TABLE IF EXISTS `VSERVER`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `VSERVER` ( + `tenant_id` varchar(40) NOT NULL, + `vserver_id` varchar(40) NOT NULL, + `aic_site_id` varchar(100) NOT NULL, + `vendor` varchar(20) NOT NULL, + `image_name` varchar(100) NOT NULL, + `vnf_type` varchar(10) NOT NULL, + `vnf_id` varchar(80) NOT NULL, + PRIMARY KEY (`tenant_id`,`vserver_id`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `VSERVER2` +-- + +DROP TABLE IF EXISTS `VSERVER2`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `VSERVER2` ( + `tenant_id` varchar(255) NOT NULL, + `vserver_id` varchar(128) NOT NULL, + `vserver_name` varchar(255) NOT NULL, + `vserver_name2` varchar(255) DEFAULT NULL, + `prov_status` varchar(20) DEFAULT NULL, + `selflink` varchar(255) DEFAULT NULL, + PRIMARY KEY (`tenant_id`,`vserver_id`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `VSERVER_PSERVER` +-- + +DROP TABLE IF EXISTS `VSERVER_PSERVER`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `VSERVER_PSERVER` ( + `vserver_id` varchar(128) NOT NULL, + `pserver_hostname` varchar(255) DEFAULT NULL, + PRIMARY KEY (`vserver_id`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `WAN_COMBO_ALLOWABLE` +-- + +DROP TABLE IF EXISTS `WAN_COMBO_ALLOWABLE`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `WAN_COMBO_ALLOWABLE` ( + `combo_sequence` int(11) NOT NULL AUTO_INCREMENT, + `internet_topology` varchar(20) DEFAULT NULL, + `wan1` varchar(40) DEFAULT NULL, + `wan2` varchar(40) DEFAULT NULL, + `new_start_release` char(5) DEFAULT NULL, + `description` varchar(128) NOT NULL, + PRIMARY KEY (`combo_sequence`), + UNIQUE KEY `IX1_WAN_COMBO_ALLOWABLE` (`internet_topology`,`wan1`,`wan2`) +) ENGINE=InnoDB AUTO_INCREMENT=47 DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `emp1000` +-- + +DROP TABLE IF EXISTS `emp1000`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `emp1000` ( + `firstName` varchar(20) DEFAULT NULL, + `lastName` varchar(20) DEFAULT NULL +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `linda` +-- + +DROP TABLE IF EXISTS `linda`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `linda` ( + `c1` int(11) DEFAULT NULL +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `testit` +-- + +DROP TABLE IF EXISTS `testit`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `testit` ( + `c1` varchar(12) DEFAULT NULL, + `c2` int(11) DEFAULT NULL +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `testtable` +-- + +DROP TABLE IF EXISTS `testtable`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `testtable` ( + `city_code_id` int(11) NOT NULL AUTO_INCREMENT, + `city_code` varchar(3) NOT NULL, + `city` varchar(150) NOT NULL, + `state` varchar(10) NOT NULL, + `country_code` varchar(10) NOT NULL, + PRIMARY KEY (`city_code_id`), + KEY `IN1_testtable` (`city`,`state`,`country_code`) +) ENGINE=InnoDB AUTO_INCREMENT=37756 DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; +SET @@SESSION.SQL_LOG_BIN = @MYSQLDUMP_TEMP_LOG_BIN; +/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; + +/*!40101 SET SQL_MODE=@OLD_SQL_MODE */; +/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; +/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; +/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; +/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; +/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; +/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; + +-- Dump completed on 2016-11-23 16:01:55 diff --git a/lighty/lighty-ubuntu-docker/src/main/resources/org.ops4j.pax.logging.cfg b/lighty/lighty-ubuntu-docker/src/main/resources/org.ops4j.pax.logging.cfg new file mode 100644 index 00000000..ee35ef70 --- /dev/null +++ b/lighty/lighty-ubuntu-docker/src/main/resources/org.ops4j.pax.logging.cfg @@ -0,0 +1,92 @@ +################################################################################ +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You 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. +# +################################################################################ + +# Common pattern layout for appenders +log4j2.pattern = %d{ISO8601} | %-5p | %-16t | %-32c{1} | %X{bundle.id} - %X{bundle.name} - %X{bundle.version} | %X{currentGraph} - %X{nodeId} | %m%n + +# Root logger +log4j2.rootLogger.level = INFO +# uncomment to use asynchronous loggers, which require mvn:com.lmax/disruptor/3.3.2 library +#log4j2.rootLogger.type = asyncRoot +#log4j2.rootLogger.includeLocation = false +log4j2.rootLogger.appenderRef.RollingFile.ref = RollingFile +log4j2.rootLogger.appenderRef.PaxOsgi.ref = PaxOsgi +log4j2.rootLogger.appenderRef.Console.ref = Console +log4j2.rootLogger.appenderRef.Console.filter.threshold.type = ThresholdFilter +log4j2.rootLogger.appenderRef.Console.filter.threshold.level = ${karaf.log.console:-OFF} + +# Loggers configuration + +# Spifly logger +log4j2.logger.spifly.name = org.apache.aries.spifly +log4j2.logger.spifly.level = WARN + +# Security audit logger +log4j2.logger.audit.name = org.apache.karaf.jaas.modules.audit +log4j2.logger.audit.level = INFO +log4j2.logger.audit.additivity = false +log4j2.logger.audit.appenderRef.AuditRollingFile.ref = AuditRollingFile + +# Appenders configuration + +# Console appender not used by default (see log4j2.rootLogger.appenderRefs) +log4j2.appender.console.type = Console +log4j2.appender.console.name = Console +log4j2.appender.console.layout.type = PatternLayout +log4j2.appender.console.layout.pattern = ${log4j2.pattern} + +# Rolling file appender +log4j2.appender.rolling.type = RollingRandomAccessFile +log4j2.appender.rolling.name = RollingFile +log4j2.appender.rolling.fileName = ${karaf.data}/log/karaf.log +log4j2.appender.rolling.filePattern = ${karaf.data}/log/karaf.log.%i +# uncomment to not force a disk flush +#log4j2.appender.rolling.immediateFlush = false +log4j2.appender.rolling.append = true +log4j2.appender.rolling.layout.type = PatternLayout +log4j2.appender.rolling.layout.pattern = ${log4j2.pattern} +log4j2.appender.rolling.policies.type = Policies +log4j2.appender.rolling.policies.size.type = SizeBasedTriggeringPolicy +log4j2.appender.rolling.policies.size.size = 16MB + +# Audit file appender +log4j2.appender.audit.type = RollingRandomAccessFile +log4j2.appender.audit.name = AuditRollingFile +log4j2.appender.audit.fileName = ${karaf.data}/security/audit.log +log4j2.appender.audit.filePattern = ${karaf.data}/security/audit.log.%i +log4j2.appender.audit.append = true +log4j2.appender.audit.layout.type = PatternLayout +log4j2.appender.audit.layout.pattern = ${log4j2.pattern} +log4j2.appender.audit.policies.type = Policies +log4j2.appender.audit.policies.size.type = SizeBasedTriggeringPolicy +log4j2.appender.audit.policies.size.size = 8MB + +# OSGi appender +log4j2.appender.osgi.type = PaxOsgi +log4j2.appender.osgi.name = PaxOsgi +log4j2.appender.osgi.filter = * + + +# help with identification of maven-related problems with pax-url-aether +#log4j2.logger.aether.name = shaded.org.eclipse.aether +#log4j2.logger.aether.level = TRACE +#log4j2.logger.http-headers.name = shaded.org.apache.http.headers +#log4j2.logger.http-headers.level = DEBUG +#log4j2.logger.maven.name = org.ops4j.pax.url.mvn +#log4j2.logger.maven.level = TRACE diff --git a/lighty/lighty-ubuntu-docker/src/main/scripts/installSdncDb.sh b/lighty/lighty-ubuntu-docker/src/main/scripts/installSdncDb.sh new file mode 100644 index 00000000..efd7fe02 --- /dev/null +++ b/lighty/lighty-ubuntu-docker/src/main/scripts/installSdncDb.sh @@ -0,0 +1,45 @@ +#!/bin/bash + +### +# ============LICENSE_START======================================================= +# openECOMP : SDN-C +# ================================================================================ +# Copyright (C) 2017 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========================================================= +### + +CCSDK_HOME=${CCSDK_HOME:-/opt/onap/ccsdk} +MYSQL_PASSWD=${MYSQL_PASSWD:-openECOMP1.0} + +SDNC_DB_USER=${SDNC_DB_USER:-sdnctl} +SDNC_DB_PASSWD=${SDNC_DB_PASSWD:-gamma} +SDNC_DB_DATABASE=${SDN_DB_DATABASE:-sdnctl} + + +# Create tablespace and user account +mysql -h dbhost -u root -p${MYSQL_PASSWD} mysql <<-END +CREATE DATABASE ${SDNC_DB_DATABASE}; +CREATE USER '${SDNC_DB_USER}'@'localhost' IDENTIFIED BY '${SDNC_DB_PASSWD}'; +CREATE USER '${SDNC_DB_USER}'@'%' IDENTIFIED BY '${SDNC_DB_PASSWD}'; +GRANT ALL PRIVILEGES ON ${SDNC_DB_DATABASE}.* TO '${SDNC_DB_USER}'@'localhost' WITH GRANT OPTION; +GRANT ALL PRIVILEGES ON ${SDNC_DB_DATABASE}.* TO '${SDNC_DB_USER}'@'%' WITH GRANT OPTION; +commit; +END + +if [ -f ${CCSDK_HOME}/data/odlsli.dump ] +then +mysql -h dbhost -u root -p${MYSQL_PASSWD} sdnctl < ${CCSDK_HOME}/data/odlsli.dump +fi diff --git a/lighty/lighty-ubuntu-docker/src/main/scripts/startODL.sh b/lighty/lighty-ubuntu-docker/src/main/scripts/startODL.sh new file mode 100644 index 00000000..d3e8b7c6 --- /dev/null +++ b/lighty/lighty-ubuntu-docker/src/main/scripts/startODL.sh @@ -0,0 +1,52 @@ +#!/bin/bash + +### +# ============LICENSE_START======================================================= +# openECOMP : SDN-C +# ================================================================================ +# Copyright (C) 2017 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========================================================= +### + + +# Install SDN-C platform components if not already installed and start container + +ODL_ADMIN_PASSWORD=${ODL_ADMIN_PASSWORD:-Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U} +CCSDK_HOME=${CCSDK_HOME:-/opt/onap/ccsdk} +SLEEP_TIME=${SLEEP_TIME:-120} +MYSQL_PASSWD=${MYSQL_PASSWD:-openECOMP1.0} + + +# +# Wait for database +# +echo "Waiting for mysql" +until mysql -h dbhost -u root -p${MYSQL_PASSWD} mysql &> /dev/null +do + printf "." + sleep 1 +done +echo -e "\nmysql ready" + +echo "Installing SDN-C database" +${CCSDK_HOME}/bin/installSdncDb.sh +if [ -x ${CCSDK_HOME}/svclogic/bin/install.sh ] +then + echo "Installing directed graphs" + ${CCSDK_HOME}/svclogic/bin/install.sh +fi + +exec java -jar opt/lighty/ccsdk-lighty-distribution-0.5.0-SNAPSHOT/ccsdk-lighty-distribution-0.5.0-SNAPSHOT.jar /opt/onap/ccsdk/data/properties/lightyCcsdkConfig.json diff --git a/lighty/lighty-ubuntu-docker/src/main/stores/truststore.onap.client.jks b/lighty/lighty-ubuntu-docker/src/main/stores/truststore.onap.client.jks new file mode 100755 index 00000000..28afd8fa Binary files /dev/null and b/lighty/lighty-ubuntu-docker/src/main/stores/truststore.onap.client.jks differ diff --git a/lighty/pom.xml b/lighty/pom.xml new file mode 100644 index 00000000..ef790214 --- /dev/null +++ b/lighty/pom.xml @@ -0,0 +1,22 @@ + + + 4.0.0 + + + org.onap.ccsdk.distribution + distribution-root + 0.6.0-SNAPSHOT + + + distribution-lighty + pom + + ccsdk-distribution :: lighty + Creates Lighty container + + + ccsdk-lighty-module + ccsdk-lighty-distribution + lighty-ubuntu-docker + + diff --git a/pom.xml b/pom.xml index b02e5d07..1c58eb5b 100644 --- a/pom.xml +++ b/pom.xml @@ -22,6 +22,7 @@ alpine ubuntu opendaylight + lighty odlsli dgbuilder dgbuilder-docker