summaryrefslogtreecommitdiffstats
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
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>
-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
-rw-r--r--pom.xml1
37 files changed, 3775 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>
diff --git a/pom.xml b/pom.xml
index b02e5d07..1c58eb5b 100644
--- a/pom.xml
+++ b/pom.xml
@@ -22,6 +22,7 @@
<module>alpine</module>
<module>ubuntu</module>
<module>opendaylight</module>
+ <module>lighty</module>
<module>odlsli</module>
<module>dgbuilder</module>
<module>dgbuilder-docker</module>