summaryrefslogtreecommitdiffstats
path: root/lighty
diff options
context:
space:
mode:
authorMatej Perina <matej.perina@pantheon.tech>2019-04-03 09:17:40 +0200
committerSamuel Kontris <samuel.kontris@pantheon.tech>2019-08-28 12:18:55 +0200
commite385a7a1d1934c6a3d22df3c3244678ca415134a (patch)
tree477dead11f726bd3b61d29e56654eaca49a38b20 /lighty
parent400d508da587d8c4fd5c19c15437b2fc2213c9b7 (diff)
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 <matej.perina@pantheon.tech> Signed-off-by: Samuel Kontris <samuel.kontris@pantheon.tech>
Diffstat (limited to 'lighty')
-rwxr-xr-xlighty/ccsdk-lighty-distribution/pom.xml79
-rw-r--r--lighty/ccsdk-lighty-distribution/src/main/java/org/onap/ccsdk/distribution/lighty/Main.java139
-rw-r--r--lighty/ccsdk-lighty-distribution/src/main/resources/lightyCcsdkConfig.json74
-rwxr-xr-xlighty/ccsdk-lighty-module/pom.xml97
-rw-r--r--lighty/ccsdk-lighty-module/src/main/java/org/onap/ccsdk/distribution/lighty/AAAEncryptionServiceLightyImpl.java116
-rw-r--r--lighty/ccsdk-lighty-module/src/main/java/org/onap/ccsdk/distribution/lighty/CcsdkLightyApplication.java170
-rw-r--r--lighty/ccsdk-lighty-module/src/main/java/org/onap/ccsdk/distribution/lighty/CcsdkLightyModule.java206
-rw-r--r--lighty/docs/README.md122
-rw-r--r--lighty/docs/hello_world.json66
-rw-r--r--lighty/lighty-ubuntu-docker/pom.xml343
-rw-r--r--lighty/lighty-ubuntu-docker/src/main/docker/Dockerfile16
-rw-r--r--lighty/lighty-ubuntu-docker/src/main/docker/docker-compose.yml64
-rwxr-xr-xlighty/lighty-ubuntu-docker/src/main/properties/aaiclient.properties82
-rwxr-xr-xlighty/lighty-ubuntu-docker/src/main/properties/admportal.json68
-rwxr-xr-xlighty/lighty-ubuntu-docker/src/main/properties/admportal.log4js.json169
-rw-r--r--lighty/lighty-ubuntu-docker/src/main/properties/dblib.properties38
-rw-r--r--lighty/lighty-ubuntu-docker/src/main/properties/grpc.properties18
-rw-r--r--lighty/lighty-ubuntu-docker/src/main/properties/lightyCcsdkConfig.json74
-rw-r--r--lighty/lighty-ubuntu-docker/src/main/properties/mdsal-resource.properties27
-rw-r--r--lighty/lighty-ubuntu-docker/src/main/properties/netbox.properties19
-rwxr-xr-xlighty/lighty-ubuntu-docker/src/main/properties/partners.json16
-rw-r--r--lighty/lighty-ubuntu-docker/src/main/properties/sdnr-oofpcipoc-api-dg.properties35
-rw-r--r--lighty/lighty-ubuntu-docker/src/main/properties/sql-resource.properties23
-rw-r--r--lighty/lighty-ubuntu-docker/src/main/properties/svclogic.properties29
-rwxr-xr-xlighty/lighty-ubuntu-docker/src/main/properties/svclogic.properties.sdnctldb0129
-rw-r--r--lighty/lighty-ubuntu-docker/src/main/properties/template-node.properties4
-rw-r--r--lighty/lighty-ubuntu-docker/src/main/properties/ueb.properties4
-rw-r--r--lighty/lighty-ubuntu-docker/src/main/resources/ansible-sources.list2
-rw-r--r--lighty/lighty-ubuntu-docker/src/main/resources/idmlight.db.mv.dbbin0 -> 40960 bytes
-rw-r--r--lighty/lighty-ubuntu-docker/src/main/resources/install_ccsdk.yml16
-rw-r--r--lighty/lighty-ubuntu-docker/src/main/resources/odlsli.dump1418
-rw-r--r--lighty/lighty-ubuntu-docker/src/main/resources/org.ops4j.pax.logging.cfg92
-rw-r--r--lighty/lighty-ubuntu-docker/src/main/scripts/installSdncDb.sh45
-rw-r--r--lighty/lighty-ubuntu-docker/src/main/scripts/startODL.sh52
-rwxr-xr-xlighty/lighty-ubuntu-docker/src/main/stores/truststore.onap.client.jksbin0 -> 117990 bytes
-rw-r--r--lighty/pom.xml22
36 files changed, 3774 insertions, 0 deletions
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 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>io.lighty.core</groupId>
+ <artifactId>lighty-app-parent</artifactId>
+ <version>10.1.0</version>
+ </parent>
+
+ <groupId>org.onap.ccsdk.distribution</groupId>
+ <artifactId>ccsdk-lighty-distribution</artifactId>
+ <version>0.6.0-SNAPSHOT</version>
+ <packaging>jar</packaging>
+
+ <properties>
+ <maven.compiler.source>1.8</maven.compiler.source>
+ <maven.compiler.target>1.8</maven.compiler.target>
+ <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+
+ <application.main.class>org.onap.ccsdk.distribution.lighty.Main</application.main.class>
+ <application.attach.zip>true</application.attach.zip>
+
+ <maven.deploy.skip>true</maven.deploy.skip>
+ </properties>
+
+ <dependencyManagement>
+ <dependencies>
+ <dependency>
+ <groupId>org.onap.ccsdk.sli.core</groupId>
+ <artifactId>ccsdk-lighty-dependency-versions</artifactId>
+ <version>${project.version}</version>
+ <type>pom</type>
+ <scope>import</scope>
+ </dependency>
+ </dependencies>
+ </dependencyManagement>
+
+ <dependencies>
+ <dependency>
+ <groupId>io.lighty.core</groupId>
+ <artifactId>lighty-controller</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>io.lighty.modules</groupId>
+ <artifactId>lighty-restconf-nb-community</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>io.lighty.resources</groupId>
+ <artifactId>singlenode-configuration</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.onap.ccsdk.distribution</groupId>
+ <artifactId>ccsdk-lighty-module</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.onap.ccsdk.sli.core</groupId>
+ <artifactId>sliapi-model</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.onap.ccsdk.sli.northbound</groupId>
+ <artifactId>dataChange-model</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.onap.ccsdk.sli.northbound</groupId>
+ <artifactId>asdcApi-model</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.onap.ccsdk.sli.northbound</groupId>
+ <artifactId>lcm-model</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+
+ </dependencies>
+</project>
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<YangModuleInfo> 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 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>org.onap.ccsdk.parent</groupId>
+ <artifactId>odlparent-lite</artifactId>
+ <version>1.4.0-SNAPSHOT</version>
+ <relativePath/>
+ </parent>
+
+ <groupId>org.onap.ccsdk.distribution</groupId>
+ <artifactId>ccsdk-lighty-module</artifactId>
+ <version>0.6.0-SNAPSHOT</version>
+ <packaging>jar</packaging>
+
+ <properties>
+ <jersey.version>2.26</jersey.version>
+ </properties>
+
+ <dependencyManagement>
+ <dependencies>
+ <dependency>
+ <groupId>org.onap.ccsdk.sli.core</groupId>
+ <artifactId>ccsdk-lighty-dependency-versions</artifactId>
+ <version>${project.version}</version>
+ <type>pom</type>
+ <scope>import</scope>
+ </dependency>
+ </dependencies>
+ </dependencyManagement>
+
+ <dependencies>
+ <dependency>
+ <groupId>io.lighty.core</groupId>
+ <artifactId>lighty-controller</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>io.lighty.modules</groupId>
+ <artifactId>lighty-restconf-nb-community</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.onap.ccsdk.sli.core</groupId>
+ <artifactId>ccsdk-core-lighty</artifactId>
+ <version>${project.version}</version>
+ <exclusions>
+ <exclusion>
+ <artifactId>org.apache.karaf.jaas.modules</artifactId>
+ <groupId>org.apache.karaf.jaas</groupId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>org.onap.ccsdk.sli.adaptors</groupId>
+ <artifactId>ccsdk-adaptors-lighty</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.onap.ccsdk.sli.northbound</groupId>
+ <artifactId>ccsdk-northbound-lighty</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.onap.ccsdk.sli.plugins</groupId>
+ <artifactId>ccsdk-plugins-lighty</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.onap.ccsdk.sli.core</groupId>
+ <artifactId>sli-recording</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.opendaylight.aaa</groupId>
+ <artifactId>aaa-encrypt-service</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.httpcomponents</groupId>
+ <artifactId>httpclient</artifactId>
+ <version>4.5.2</version>
+ </dependency>
+ <!-- version 2.26 is not backwards compatible - https://stackoverflow.com/a/46405129/4727422 -->
+ <dependency>
+ <groupId>org.glassfish.jersey.core</groupId>
+ <artifactId>jersey-common</artifactId>
+ <version>${jersey.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.glassfish.jersey.inject</groupId>
+ <artifactId>jersey-hk2</artifactId>
+ <version>${jersey.version}</version>
+ </dependency>
+ </dependencies>
+</project>
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<YangModuleInfo> 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_address:port>/restconf/operations/SLI-API:execute-graph`
+
+With the body like:
+
+```
+{
+ "input": {
+ "module-name": "<name of the module (service-logic type node)>",
+ "rpc-name": "<name of the rpc (method type node)>",
+ "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": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\" />\n<parameter name=\"level\" value=\"info\"/>\n<parameter name=\"field1\" value=\"Hello World!\"/>",
+ "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": "<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='Test' version='1.0'>",
+ "outputs": 1,
+ "x": 425,
+ "y": 232,
+ "z": "fca901a.0d76d8",
+ "wires": [
+ [
+ "54587071.4a0dc"
+ ]
+ ]
+ },
+ {
+ "id": "54587071.4a0dc",
+ "type": "method",
+ "name": "method",
+ "xml": "<method rpc='helloWorld' mode='sync'>\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 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>org.onap.ccsdk.distribution</groupId>
+ <artifactId>distribution-lighty</artifactId>
+ <version>0.6.0-SNAPSHOT</version>
+ </parent>
+
+ <artifactId>distribution-lighty-ubuntu-docker</artifactId>
+ <packaging>pom</packaging>
+
+ <name>ccsdk-distribution :: lighty :: ${project.artifactId}</name>
+ <description>Creates Lighty container</description>
+ <organization>
+ <name>ONAP</name>
+ </organization>
+
+ <properties>
+ <image.name>onap/ccsdk-lighty-ubuntu-image</image.name>
+ <lighty.app.name>ccsdk-lighty-distribution-${project.version}</lighty.app.name>
+ <lighty.app.zip>${lighty.app.name}-bin.zip</lighty.app.zip>
+ <lighty.app.jar>${lighty.app.name}.jar</lighty.app.jar>
+ <ccsdk.project.version>${project.version}</ccsdk.project.version>
+ <ccsdk.build.timestamp>${maven.build.timestamp}</ccsdk.build.timestamp>
+ <docker.buildArg.https_proxy>${https_proxy}</docker.buildArg.https_proxy>
+ <docker.push.phase>deploy</docker.push.phase>
+ </properties>
+
+ <dependencyManagement>
+ <dependencies>
+ <dependency>
+ <groupId>org.onap.ccsdk.sli.core</groupId>
+ <artifactId>ccsdk-lighty-dependency-versions</artifactId>
+ <version>${project.version}</version>
+ <type>pom</type>
+ <scope>import</scope>
+ </dependency>
+ </dependencies>
+ </dependencyManagement>
+
+ <build>
+ <plugins>
+
+
+ <plugin>
+ <groupId>org.codehaus.groovy.maven</groupId>
+ <artifactId>gmaven-plugin</artifactId>
+ <executions>
+ <execution>
+ <phase>validate</phase>
+ <goals>
+ <goal>execute</goal>
+ </goals>
+ <configuration>
+ <source>${basedir}/../../src/main/scripts/TagVersion.groovy</source>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+
+
+
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-dependency-plugin</artifactId>
+ <version>3.0.2</version>
+ <executions>
+ <execution>
+ <id>unpack dgs</id>
+ <phase>generate-sources</phase>
+ <goals>
+ <goal>unpack</goal>
+ </goals>
+ <configuration>
+ <outputDirectory>${basedir}/target/docker-stage/opt/onap/ccsdk</outputDirectory>
+ <artifactItems>
+ <artifactItem>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>platform-logic-installer</artifactId>
+ <version>${project.version}</version>
+ <type>zip</type>
+ </artifactItem>
+ </artifactItems>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+
+ <plugin>
+ <artifactId>maven-resources-plugin</artifactId>
+ <version>2.6</version>
+ <executions>
+ <execution>
+ <id>copy-dockerfile</id>
+ <goals>
+ <goal>copy-resources</goal>
+ </goals><!-- here the phase you need -->
+ <phase>validate</phase>
+ <configuration>
+ <outputDirectory>${basedir}/target/docker-stage</outputDirectory>
+ <resources>
+ <resource>
+ <directory>src/main/docker</directory>
+ <includes>
+ <include>Dockerfile</include>
+ </includes>
+ <filtering>true</filtering>
+ </resource>
+ </resources>
+ </configuration>
+ </execution>
+
+ <execution>
+ <id>copy-ccsdk-lighty-zip</id>
+ <goals>
+ <goal>copy-resources</goal>
+ </goals>
+ <phase>validate</phase>
+ <configuration>
+ <outputDirectory>${basedir}/target/docker-stage</outputDirectory>
+ <resources>
+ <resource>
+ <directory>${basedir}/../ccsdk-lighty-distribution/target</directory>
+ <includes>
+ <include>${lighty.app.zip}</include>
+ </includes>
+ <filtering>false</filtering>
+ </resource>
+ </resources>
+ </configuration>
+ </execution>
+
+ <execution>
+ <id>copy-scripts</id>
+ <goals>
+ <goal>copy-resources</goal>
+ </goals><!-- here the phase you need -->
+ <phase>validate</phase>
+ <configuration>
+ <outputDirectory>${basedir}/target/docker-stage/opt/onap/ccsdk/bin</outputDirectory>
+ <resources>
+ <resource>
+ <directory>./src/main/scripts</directory>
+ <includes>
+ <include>*.sh</include>
+ </includes>
+ <filtering>false</filtering>
+ </resource>
+ </resources>
+ </configuration>
+ </execution>
+
+ <execution>
+ <id>copy-odl-resources</id>
+ <goals>
+ <goal>copy-resources</goal>
+ </goals><!-- here the phase you need -->
+ <phase>validate</phase>
+ <configuration>
+ <outputDirectory>${basedir}/target/docker-stage</outputDirectory>
+ <resources>
+ <resource>
+ <directory>./src/main/resources</directory>
+ <includes>
+ <include>idmlight.db.mv.db</include>
+ <include>org.ops4j.pax.logging.cfg</include>
+ <include>install_ccsdk.yml</include>
+ <include>ansible-sources.list</include>
+ </includes>
+ <filtering>false</filtering>
+ </resource>
+ </resources>
+ </configuration>
+ </execution>
+ <execution>
+ <id>copy-config</id>
+ <goals>
+ <goal>copy-resources</goal>
+ </goals><!-- here the phase you need -->
+ <phase>validate</phase>
+ <configuration>
+ <outputDirectory>${basedir}/target/docker-stage</outputDirectory>
+ <resources>
+ <resource>
+ <directory>./src/main/resources</directory>
+ <includes>
+ <include>org.ops4j.pax.logging.cfg</include>
+ </includes>
+ <filtering>false</filtering>
+ </resource>
+ </resources>
+ </configuration>
+ </execution>
+ <execution>
+ <id>copy-data</id>
+ <goals>
+ <goal>copy-resources</goal>
+ </goals><!-- here the phase you need -->
+ <phase>validate</phase>
+ <configuration>
+ <outputDirectory>${basedir}/target/docker-stage/opt/onap/ccsdk/data</outputDirectory>
+ <resources>
+ <resource>
+ <directory>./src/main/resources</directory>
+ <includes>
+ <include>*.dump</include>
+ </includes>
+ <filtering>false</filtering>
+ </resource>
+ </resources>
+ </configuration>
+ </execution>
+ <execution>
+ <id>copy-properties</id>
+ <goals>
+ <goal>copy-resources</goal>
+ </goals><!-- here the phase you need -->
+ <phase>validate</phase>
+ <configuration>
+ <outputDirectory>${basedir}/target/docker-stage/opt/onap/ccsdk/data/properties</outputDirectory>
+ <resources>
+ <resource>
+ <directory>./src/main/properties</directory>
+ <includes>
+ <include>*.properties</include>
+ <include>*.json</include>
+ </includes>
+ <filtering>false</filtering>
+ </resource>
+ </resources>
+ </configuration>
+ </execution>
+ <execution>
+ <id>copy-keystores</id>
+ <goals>
+ <goal>copy-resources</goal>
+ </goals><!-- here the phase you need -->
+ <phase>validate</phase>
+ <configuration>
+ <outputDirectory>${basedir}/target/docker-stage/opt/onap/ccsdk/data/stores</outputDirectory>
+ <resources>
+ <resource>
+ <directory>./src/main/stores</directory>
+ <includes>
+ <include>*.jks</include>
+ </includes>
+ <filtering>false</filtering>
+ </resource>
+ </resources>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>exec-maven-plugin</artifactId>
+ <version>1.5.0</version>
+ <executions>
+
+ <execution>
+ <id>change shell permissions</id>
+ <phase>process-sources</phase>
+ <goals>
+ <goal>exec</goal>
+ </goals>
+ <configuration>
+ <executable>/usr/bin/find</executable>
+ <arguments>
+ <argument>${basedir}/target/docker-stage/opt/onap/ccsdk</argument>
+ <argument>-name</argument>
+ <argument>*.sh</argument>
+ <argument>-exec</argument>
+ <argument>chmod</argument>
+ <argument>+x</argument>
+ <argument>{}</argument>
+ <argument>;</argument>
+ </arguments>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+
+ </plugins>
+ </build>
+
+ <profiles>
+ <profile>
+ <id>docker</id>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>io.fabric8</groupId>
+ <artifactId>docker-maven-plugin</artifactId>
+ <version>0.28.0</version>
+ <inherited>false</inherited>
+ <configuration>
+ <images>
+ <image>
+ <name>${image.name}</name>
+ <build>
+ <cleanup>try</cleanup>
+ <dockerFileDir>${basedir}/target/docker-stage</dockerFileDir>
+ <dockerFile>Dockerfile</dockerFile>
+ <tags>
+ <tag>${project.docker.latestminortag.version}</tag>
+ <tag>${project.docker.latestfulltag.version}</tag>
+ <tag>${project.docker.latesttagtimestamp.version}</tag>
+ </tags>
+ </build>
+ </image>
+ </images>
+ </configuration>
+ <executions>
+ <execution>
+ <id>generate-images</id>
+ <phase>package</phase>
+ <goals>
+ <goal>build</goal>
+ </goals>
+ </execution>
+
+ <execution>
+ <id>push-images</id>
+ <phase>${docker.push.phase}</phase>
+ <goals>
+ <goal>build</goal>
+ <goal>push</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+
+ </plugins>
+ </build>
+ </profile>
+
+ </profiles>
+</project>
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
--- /dev/null
+++ b/lighty/lighty-ubuntu-docker/src/main/resources/idmlight.db.mv.db
Binary files 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
--- /dev/null
+++ b/lighty/lighty-ubuntu-docker/src/main/stores/truststore.onap.client.jks
Binary files 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 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>org.onap.ccsdk.distribution</groupId>
+ <artifactId>distribution-root</artifactId>
+ <version>0.6.0-SNAPSHOT</version>
+ </parent>
+
+ <artifactId>distribution-lighty</artifactId>
+ <packaging>pom</packaging>
+
+ <name>ccsdk-distribution :: lighty</name>
+ <description>Creates Lighty container</description>
+
+ <modules>
+ <module>ccsdk-lighty-module</module>
+ <module>ccsdk-lighty-distribution</module>
+ <module>lighty-ubuntu-docker</module>
+ </modules>
+</project>