Update SDNC NB to depend on CCSDK 77/9577/1
authorMarcus G K Williams <marcus.williams@intel.com>
Thu, 31 Aug 2017 02:32:32 +0000 (19:32 -0700)
committerMarcus G K Williams <marcus.williams@intel.com>
Thu, 31 Aug 2017 02:32:41 +0000 (19:32 -0700)
Refactor code to use CCSDK

Issue-Id: SDNC-50
Change-Id: If637d1a0609ec5ae9df60939f72eb64888e61e71
Signed-off-by: Marcus G K Williams <marcus.williams@intel.com>
25 files changed:
pom.xml
vnfapi/features/pom.xml
vnfapi/features/src/main/resources/features.xml
vnfapi/installer/pom.xml
vnfapi/model/pom.xml
vnfapi/model/src/main/yang/VNF-API.yang
vnfapi/pom.xml
vnfapi/provider/pom.xml
vnfapi/provider/src/main/java/org/onap/sdnc/vnfapi/VNFSDNSvcLogicServiceClient.java [new file with mode: 0644]
vnfapi/provider/src/main/java/org/onap/sdnc/vnfapi/VnfSdnUtil.java [new file with mode: 0644]
vnfapi/provider/src/main/java/org/onap/sdnc/vnfapi/vnfapiProvider.java [new file with mode: 0644]
vnfapi/provider/src/main/java/org/opendaylight/yang/gen/v1/org/onap/sdnc/vnfapi/provider/impl/rev140523/VnfapiProviderModule.java [moved from vnfapi/provider/src/main/java/org/opendaylight/yang/gen/v1/org/openecomp/sdnc/vnfapi/provider/impl/rev140523/VnfapiProviderModule.java with 85% similarity]
vnfapi/provider/src/main/java/org/opendaylight/yang/gen/v1/org/onap/sdnc/vnfapi/provider/impl/rev140523/VnfapiProviderModuleFactory.java [moved from vnfapi/provider/src/main/java/org/opendaylight/yang/gen/v1/org/openecomp/sdnc/vnfapi/provider/impl/rev140523/VnfapiProviderModuleFactory.java with 88% similarity]
vnfapi/provider/src/main/java/org/openecomp/sdnc/vnfapi/VNFSDNSvcLogicServiceClient.java [deleted file]
vnfapi/provider/src/main/java/org/openecomp/sdnc/vnfapi/VnfSdnUtil.java [deleted file]
vnfapi/provider/src/main/java/org/openecomp/sdnc/vnfapi/vnfapiProvider.java [deleted file]
vnfapi/provider/src/main/yang/vnfapi-provider-impl.yang
vnfapi/provider/src/test/java/org/openecomp/sdnc/vnfapi/TestPropertyList.java
vnftools/features/pom.xml
vnftools/features/src/main/resources/features.xml
vnftools/installer/pom.xml
vnftools/pom.xml
vnftools/provider/pom.xml
vnftools/provider/src/main/java/org/onap/sdnc/vnftools/VnfTools.java [moved from vnftools/provider/src/main/java/org/openecomp/sdnc/vnftools/VnfTools.java with 96% similarity]
vnftools/provider/src/main/java/org/onap/sdnc/vnftools/VnfToolsActivator.java [moved from vnftools/provider/src/main/java/org/openecomp/sdnc/vnftools/VnfToolsActivator.java with 96% similarity]

diff --git a/pom.xml b/pom.xml
index acddd47..9827b82 100644 (file)
--- a/pom.xml
+++ b/pom.xml
@@ -3,14 +3,15 @@
        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
 
        <parent>
-               <groupId>org.openecomp.sdnc.core</groupId>
-               <artifactId>root-boron-sr1</artifactId>
-               <version>1.1.0</version>
+               <groupId>org.onap.ccsdk.parent</groupId>
+               <artifactId>odlparent-carbon-sr1</artifactId>
+               <version>0.0.1-SNAPSHOT</version>
+
        </parent>
 
        <modelVersion>4.0.0</modelVersion>
        <packaging>pom</packaging>
-       <groupId>org.openecomp.sdnc.northbound</groupId>
+       <groupId>org.onap.sdnc.northbound</groupId>
        <artifactId>sdnc-northbound</artifactId>
 
        <name>SDN-C Northbound APIs</name>
                <module>vnftools</module>
        </modules>
        <organization>
-               <name>AT&amp;T</name>
+               <name>ONAP</name>
        </organization>
        <version>1.2.0-SNAPSHOT</version>
 
index e9d253a..f9a80f0 100644 (file)
 <?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>
-               <artifactId>vnfapi</artifactId>
-               <groupId>org.openecomp.sdnc.northbound</groupId>
-               <version>1.2.0-SNAPSHOT</version>
-       </parent>
-       <artifactId>vnfapi-features</artifactId>
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <artifactId>vnfapi</artifactId>
+        <groupId>org.onap.sdnc.northbound</groupId>
+        <version>1.2.0-SNAPSHOT</version>
+    </parent>
+    <artifactId>vnfapi-features</artifactId>
 
-       <packaging>jar</packaging>
+    <packaging>jar</packaging>
 
-       <dependencies>
-               <dependency>
-                       <groupId>org.openecomp.sdnc.northbound</groupId>
-                       <artifactId>vnfapi-model</artifactId>
-                       <version>${project.version}</version>
-               </dependency>
-               <dependency>
-                       <groupId>org.openecomp.sdnc.northbound</groupId>
-                       <artifactId>vnfapi-provider</artifactId>
-                       <classifier>config</classifier>
-                       <type>xml</type>
-               </dependency>
-               <dependency>
-                       <groupId>org.openecomp.sdnc.northbound</groupId>
-                       <artifactId>vnfapi-provider</artifactId>
-                       <version>${project.version}</version>
-               </dependency>
+    <dependencies>
+        <dependency>
+            <groupId>org.onap.sdnc.northbound</groupId>
+            <artifactId>vnfapi-model</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.onap.sdnc.northbound</groupId>
+            <artifactId>vnfapi-provider</artifactId>
+            <classifier>config</classifier>
+            <type>xml</type>
+        </dependency>
+        <dependency>
+            <groupId>org.onap.sdnc.northbound</groupId>
+            <artifactId>vnfapi-provider</artifactId>
+            <version>${project.version}</version>
+        </dependency>
 
-               <dependency>
-                       <groupId>org.opendaylight.mdsal</groupId>
-                       <artifactId>features-mdsal</artifactId>
-                       <version>${odl.mdsal.features.version}</version>
-                       <classifier>features</classifier>
-                       <type>xml</type>
+        <dependency>
+            <groupId>org.opendaylight.mdsal</groupId>
+            <artifactId>features-mdsal</artifactId>
+            <version>${odl.mdsal.features.version}</version>
+            <classifier>features</classifier>
+            <type>xml</type>
 
-                       <scope>runtime</scope>
-               </dependency>
+            <scope>runtime</scope>
+        </dependency>
 
 
 
-               <!-- dependency for opendaylight-karaf-empty for use by testing -->
-               <dependency>
-                       <groupId>org.opendaylight.controller</groupId>
-                       <artifactId>opendaylight-karaf-empty</artifactId>
-                       <version>${odl.karaf.empty.distro.version}</version>
-                       <type>zip</type>
-               </dependency>
+        <!-- dependency for opendaylight-karaf-empty for use by testing -->
+        <dependency>
+            <groupId>org.opendaylight.controller</groupId>
+            <artifactId>opendaylight-karaf-empty</artifactId>
+            <version>${odl.karaf.empty.distro.version}</version>
+            <type>zip</type>
+        </dependency>
 
 
-               <dependency>
-                   <!-- Required for launching the feature tests-->
-                       <groupId>org.opendaylight.odlparent</groupId>
-                       <artifactId>features-test</artifactId>
-                       <scope>test</scope>
-                       <version>${odl.commons.opendaylight.version}</version>
-               </dependency>
+        <dependency>
+            <!-- Required for launching the feature tests-->
+            <groupId>org.opendaylight.odlparent</groupId>
+            <artifactId>features-test</artifactId>
+            <scope>test</scope>
+            <version>${odl.commons.opendaylight.version}</version>
+        </dependency>
 
-               <dependency>
-                       <groupId>org.opendaylight.yangtools</groupId>
-                       <artifactId>features-yangtools</artifactId>
-                       <version>${odl.yangtools.version}</version>
-                       <classifier>features</classifier>
-                       <type>xml</type>
-                       <scope>runtime</scope>
-               </dependency>
-       </dependencies>
+        <dependency>
+            <groupId>org.opendaylight.yangtools</groupId>
+            <artifactId>features-yangtools</artifactId>
+            <version>${odl.yangtools.version}</version>
+            <classifier>features</classifier>
+            <type>xml</type>
+            <scope>runtime</scope>
+        </dependency>
+    </dependencies>
 
-       <build>
-               <resources>
-                       <resource>
-                               <filtering>true</filtering>
-                               <directory>src/main/resources</directory>
-                       </resource>
-               </resources>
-               <plugins>
-                       <plugin>
-                               <groupId>org.apache.maven.plugins</groupId>
-                               <artifactId>maven-resources-plugin</artifactId>
-                               <executions>
-                                       <execution>
-                                               <id>filter</id>
-                                               <goals>
-                                                       <goal>resources</goal>
-                                               </goals>
-                                               <phase>generate-resources</phase>
-                                       </execution>
-                               </executions>
-                       </plugin>
-                       <!--
-                       <plugin>
-                           launches the feature test, which validates that your karaf feature can
-                                be installed inside of a karaf container. It doesn't validate that your
-                                functionality works correctly, just that you have all of the dependent
-                                bundles defined correctly.
-                               <groupId>org.apache.maven.plugins</groupId>
-                               <artifactId>maven-surefire-plugin</artifactId>
-                               <version>2.16</version>
-                               <configuration>
-                                       <systemPropertyVariables>
-                                               <karaf.distro.groupId>org.opendaylight.controller</karaf.distro.groupId>
-                                               <karaf.distro.artifactId>opendaylight-karaf-empty</karaf.distro.artifactId>
-                                               <karaf.distro.version>${odl.karaf.empty.distro.version}</karaf.distro.version>
-                                       </systemPropertyVariables>
-                                       <dependenciesToScan>
-                                               <dependency>org.opendaylight.yangtools:features-test</dependency>
-                                       </dependenciesToScan>
-                               </configuration>
-                       </plugin>
-                       -->
-                       <plugin>
-                               <groupId>org.codehaus.mojo</groupId>
-                               <artifactId>build-helper-maven-plugin</artifactId>
-                               <executions>
-                                       <execution>
-                                               <id>attach-artifacts</id>
-                                               <goals>
-                                                       <goal>attach-artifact</goal>
-                                               </goals>
-                                               <phase>package</phase>
-                                               <configuration>
-                                                       <artifacts>
-                                                               <artifact>
-                                                                       <file>${project.build.directory}/classes/${features.file}</file>
-                                                                       <type>xml</type>
-                                                                       <classifier>features</classifier>
-                                                               </artifact>
-                                                       </artifacts>
-                                               </configuration>
-                                       </execution>
-                               </executions>
-                       </plugin>
-               </plugins>
-       </build>
+    <build>
+        <resources>
+            <resource>
+                <filtering>true</filtering>
+                <directory>src/main/resources</directory>
+            </resource>
+        </resources>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-resources-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <id>filter</id>
+                        <goals>
+                            <goal>resources</goal>
+                        </goals>
+                        <phase>generate-resources</phase>
+                    </execution>
+                </executions>
+            </plugin>
+            <!--
+            <plugin>
+                launches the feature test, which validates that your karaf feature can
+                     be installed inside of a karaf container. It doesn't validate that your
+                     functionality works correctly, just that you have all of the dependent
+                     bundles defined correctly.
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-surefire-plugin</artifactId>
+                <version>2.16</version>
+                <configuration>
+                    <systemPropertyVariables>
+                        <karaf.distro.groupId>org.opendaylight.controller</karaf.distro.groupId>
+                        <karaf.distro.artifactId>opendaylight-karaf-empty</karaf.distro.artifactId>
+                        <karaf.distro.version>${odl.karaf.empty.distro.version}</karaf.distro.version>
+                    </systemPropertyVariables>
+                    <dependenciesToScan>
+                        <dependency>org.opendaylight.yangtools:features-test</dependency>
+                    </dependenciesToScan>
+                </configuration>
+            </plugin>
+            -->
+            <plugin>
+                <groupId>org.codehaus.mojo</groupId>
+                <artifactId>build-helper-maven-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <id>attach-artifacts</id>
+                        <goals>
+                            <goal>attach-artifact</goal>
+                        </goals>
+                        <phase>package</phase>
+                        <configuration>
+                            <artifacts>
+                                <artifact>
+                                    <file>${project.build.directory}/classes/${features.file}</file>
+                                    <type>xml</type>
+                                    <classifier>features</classifier>
+                                </artifact>
+                            </artifacts>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
 </project>
index 813459d..5ea0700 100644 (file)
@@ -31,8 +31,8 @@
         <!-- Most applications will have a dependency on the ODL MD-SAL Broker -->
         <feature version="${odl.mdsal.version}">odl-mdsal-broker</feature>
         <feature version="${sdnctl.sli.version}">sdnc-sli</feature>
-        <bundle>mvn:org.openecomp.sdnc.northbound/vnfapi-model/${project.version}</bundle>
-        <bundle>mvn:org.openecomp.sdnc.northbound/vnfapi-provider/${project.version}</bundle>
+        <bundle>mvn:org.onap.sdnc.northbound/vnfapi-model/${project.version}</bundle>
+        <bundle>mvn:org.onap.sdnc.northbound/vnfapi-provider/${project.version}</bundle>
         <configfile finalname="etc/opendaylight/karaf/200-vnfapi-provider.xml">mvn:org.openecomp.sdnc.northbound/vnfapi-provider/${project.version}/xml/config</configfile>
     </feature>
 
index 18b4d9f..ab17492 100755 (executable)
 <?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>
-               <artifactId>vnfapi</artifactId>
-               <groupId>org.openecomp.sdnc.northbound</groupId>
-               <version>1.2.0-SNAPSHOT</version>
-       </parent>
-       <artifactId>vnfapi-installer</artifactId>
-       <name>VNF API  - Karaf  Installer</name>
-       <packaging>pom</packaging>
+    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>
+        <artifactId>vnfapi</artifactId>
+        <groupId>org.onap.sdnc.northbound</groupId>
+        <version>1.2.0-SNAPSHOT</version>
+    </parent>
+    <artifactId>vnfapi-installer</artifactId>
+    <name>VNF API  - Karaf  Installer</name>
+    <packaging>pom</packaging>
 
-       <properties>
-               <application.name>sdnc-vnfapi</application.name>
-               <features.boot>sdnc-vnfapi</features.boot>
-               <features.repositories>mvn:org.openecomp.sdnc.northbound/vnfapi-features/${project.version}/xml/features</features.repositories>
-               <include.transitive.dependencies>false</include.transitive.dependencies>
-       </properties>
+    <properties>
+        <application.name>sdnc-vnfapi</application.name>
+        <features.boot>sdnc-vnfapi</features.boot>
+        <features.repositories>mvn:org.onap.sdnc.northbound/vnfapi-features/${project.version}/xml/features</features.repositories>
+        <include.transitive.dependencies>false</include.transitive.dependencies>
+    </properties>
 
-       <dependencies>
+    <dependencies>
 
-               <dependency>
-                       <groupId>org.openecomp.sdnc.northbound</groupId>
-                       <artifactId>vnfapi-features</artifactId>
-                       <version>${project.version}</version>
-                       <classifier>features</classifier>
-                       <type>xml</type>
-                       <exclusions>
-                               <exclusion>
-                                       <groupId>*</groupId>
-                                       <artifactId>*</artifactId>
-                               </exclusion>
-                       </exclusions>
-               </dependency>
+        <dependency>
+            <groupId>org.onap.sdnc.northbound</groupId>
+            <artifactId>vnfapi-features</artifactId>
+            <version>${project.version}</version>
+            <classifier>features</classifier>
+            <type>xml</type>
+            <exclusions>
+                <exclusion>
+                    <groupId>*</groupId>
+                    <artifactId>*</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
 
-               <dependency>
-                       <groupId>org.openecomp.sdnc.northbound</groupId>
-                       <artifactId>vnfapi-provider</artifactId>
-                       <version>${project.version}</version>
-               </dependency>
+        <dependency>
+            <groupId>org.onap.sdnc.northbound</groupId>
+            <artifactId>vnfapi-provider</artifactId>
+            <version>${project.version}</version>
+        </dependency>
 
 
-       </dependencies>
+    </dependencies>
 
-       <build>
-               <plugins>
-                       <plugin>
-                               <artifactId>maven-assembly-plugin</artifactId>
-                               <version>2.6</version>
-                               <executions>
-                                       <execution>
-                                               <id>maven-repo-zip</id>
-                                               <goals>
-                                                       <goal>single</goal>
-                                               </goals>
-                                               <phase>package</phase>
-                                               <configuration>
-                                                       <attach>false</attach>
-                                                       <finalName>stage/${application.name}-${project.version}</finalName>
-                                                       <descriptors>
-                                                               <descriptor>src/assembly/assemble_mvnrepo_zip.xml</descriptor>
-                                                       </descriptors>
-                                                       <appendAssemblyId>false</appendAssemblyId>
-                                               </configuration>
-                                       </execution>
-                                       <execution>
-                                               <id>installer-zip</id>
-                                               <goals>
-                                                       <goal>single</goal>
-                                               </goals>
-                                               <phase>package</phase>
-                                               <configuration>
-                                                       <attach>true</attach>
-                                                       <finalName>${application.name}-${project.version}-installer</finalName>
-                                                       <descriptors>
-                                                               <descriptor>src/assembly/assemble_installer_zip.xml</descriptor>
-                                                       </descriptors>
-                                                       <appendAssemblyId>false</appendAssemblyId>
-                                               </configuration>
-                                       </execution>
-                               </executions>
-                       </plugin>
-                       <plugin>
-                               <groupId>org.apache.maven.plugins</groupId>
-                               <artifactId>maven-dependency-plugin</artifactId>
-                               <executions>
-                                       <execution>
-                                               <id>copy-dependencies</id>
-                                               <goals>
-                                                       <goal>copy-dependencies</goal>
-                                               </goals>
-                                               <phase>prepare-package</phase>
-                                               <configuration>
-                                                       <transitive>false</transitive>
-                                                       <outputDirectory>${project.build.directory}/assembly/system</outputDirectory>
-                                                       <overWriteReleases>false</overWriteReleases>
-                                                       <overWriteSnapshots>true</overWriteSnapshots>
-                                                       <overWriteIfNewer>true</overWriteIfNewer>
-                                                       <useRepositoryLayout>true</useRepositoryLayout>
-                                                       <addParentPoms>false</addParentPoms>
-                                                       <copyPom>false</copyPom>
-                                                       <includeGroupIds>org.openecomp.sdnc</includeGroupIds>
-                                                       <excludeArtifactIds>sli-common,sli-provider,dblib-common,dblib-provider</excludeArtifactIds>
-                                                       <scope>provided</scope>
-                                               </configuration>
-                                       </execution>
-                               </executions>
-                       </plugin>
-                       <plugin>
-                               <artifactId>maven-resources-plugin</artifactId>
-                               <version>2.6</version>
-                               <executions>
-                                       <execution>
-                                               <id>copy-version</id>
-                                               <goals>
-                                                       <goal>copy-resources</goal>
-                                               </goals><!-- here the phase you need -->
-                                               <phase>validate</phase>
-                                               <configuration>
-                                                       <outputDirectory>${basedir}/target/stage</outputDirectory>
-                                                       <resources>
-                                                               <resource>
-                                                                       <directory>src/main/resources/scripts</directory>
-                                                                       <includes>
-                                                                               <include>install-feature.sh</include>
-                                                                       </includes>
-                                                                       <filtering>true</filtering>
-                                                               </resource>
-                                                       </resources>
-                                               </configuration>
-                                       </execution>
+    <build>
+        <plugins>
+            <plugin>
+                <artifactId>maven-assembly-plugin</artifactId>
+                <version>2.6</version>
+                <executions>
+                    <execution>
+                        <id>maven-repo-zip</id>
+                        <goals>
+                            <goal>single</goal>
+                        </goals>
+                        <phase>package</phase>
+                        <configuration>
+                            <attach>false</attach>
+                            <finalName>stage/${application.name}-${project.version}</finalName>
+                            <descriptors>
+                                <descriptor>src/assembly/assemble_mvnrepo_zip.xml</descriptor>
+                            </descriptors>
+                            <appendAssemblyId>false</appendAssemblyId>
+                        </configuration>
+                    </execution>
+                    <execution>
+                        <id>installer-zip</id>
+                        <goals>
+                            <goal>single</goal>
+                        </goals>
+                        <phase>package</phase>
+                        <configuration>
+                            <attach>true</attach>
+                            <finalName>${application.name}-${project.version}-installer</finalName>
+                            <descriptors>
+                                <descriptor>src/assembly/assemble_installer_zip.xml</descriptor>
+                            </descriptors>
+                            <appendAssemblyId>false</appendAssemblyId>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-dependency-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <id>copy-dependencies</id>
+                        <goals>
+                            <goal>copy-dependencies</goal>
+                        </goals>
+                        <phase>prepare-package</phase>
+                        <configuration>
+                            <transitive>false</transitive>
+                            <outputDirectory>${project.build.directory}/assembly/system</outputDirectory>
+                            <overWriteReleases>false</overWriteReleases>
+                            <overWriteSnapshots>true</overWriteSnapshots>
+                            <overWriteIfNewer>true</overWriteIfNewer>
+                            <useRepositoryLayout>true</useRepositoryLayout>
+                            <addParentPoms>false</addParentPoms>
+                            <copyPom>false</copyPom>
+                            <includeGroupIds>org.onap.sdnc</includeGroupIds>
+                            <excludeArtifactIds>sli-common,sli-provider,dblib-common,dblib-provider</excludeArtifactIds>
+                            <scope>provided</scope>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+            <plugin>
+                <artifactId>maven-resources-plugin</artifactId>
+                <version>2.6</version>
+                <executions>
+                    <execution>
+                        <id>copy-version</id>
+                        <goals>
+                            <goal>copy-resources</goal>
+                        </goals><!-- here the phase you need -->
+                        <phase>validate</phase>
+                        <configuration>
+                            <outputDirectory>${basedir}/target/stage</outputDirectory>
+                            <resources>
+                                <resource>
+                                    <directory>src/main/resources/scripts</directory>
+                                    <includes>
+                                        <include>install-feature.sh</include>
+                                    </includes>
+                                    <filtering>true</filtering>
+                                </resource>
+                            </resources>
+                        </configuration>
+                    </execution>
 
-                               </executions>
-                       </plugin>
+                </executions>
+            </plugin>
 
-               </plugins>
-       </build>
+        </plugins>
+    </build>
 
 </project>
index b8ba006..91d2014 100644 (file)
@@ -1,57 +1,57 @@
 <?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>
-               <artifactId>vnfapi</artifactId>
-               <groupId>org.openecomp.sdnc.northbound</groupId>
-               <version>1.2.0-SNAPSHOT</version>
-       </parent>
-       <artifactId>vnfapi-model</artifactId>
-       <packaging>bundle</packaging>
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <artifactId>vnfapi</artifactId>
+        <groupId>org.onap.sdnc.northbound</groupId>
+        <version>1.2.0-SNAPSHOT</version>
+    </parent>
+    <artifactId>vnfapi-model</artifactId>
+    <packaging>bundle</packaging>
 
-       <build>
+    <build>
 
-               <plugins>
-                       <plugin>
-                               <groupId>org.apache.felix</groupId>
-                               <artifactId>maven-bundle-plugin</artifactId>
-                               <extensions>true</extensions>
-                               <configuration>
-                                       <instructions>
-                                               <Import-Package>*</Import-Package>
-                                       </instructions>
-                               </configuration>
-                       </plugin>
-                       <plugin>
-                               <groupId>org.opendaylight.yangtools</groupId>
-                               <artifactId>yang-maven-plugin</artifactId>
-                               <version>${odl.yangtools.yang.maven.plugin.version}</version>
-                               <dependencies>
-                                       <dependency>
-                                               <groupId>org.opendaylight.mdsal</groupId>
-                                               <artifactId>maven-sal-api-gen-plugin</artifactId>
-                                               <version>${odl.sal.api.gen.plugin.version}</version>
-                                               <type>jar</type>
-                                       </dependency>
-                               </dependencies>
-                               <executions>
-                                       <execution>
-                                               <goals>
-                                                       <goal>generate-sources</goal>
-                                               </goals>
-                                               <configuration>
-                                                       <yangFilesRootDir>${yang.file.directory}</yangFilesRootDir>
-                                                       <codeGenerators>
-                                                               <generator>
-                                                                       <codeGeneratorClass>org.opendaylight.yangtools.maven.sal.api.gen.plugin.CodeGeneratorImpl</codeGeneratorClass>
-                                                                       <outputBaseDir>${salGeneratorPath}</outputBaseDir>
-                                                               </generator>
-                                                       </codeGenerators>
-                                                       <inspectDependencies>true</inspectDependencies>
-                                               </configuration>
-                                       </execution>
-                               </executions>
-                       </plugin>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.felix</groupId>
+                <artifactId>maven-bundle-plugin</artifactId>
+                <extensions>true</extensions>
+                <configuration>
+                    <instructions>
+                        <Import-Package>*</Import-Package>
+                    </instructions>
+                </configuration>
+            </plugin>
+            <plugin>
+                <groupId>org.opendaylight.yangtools</groupId>
+                <artifactId>yang-maven-plugin</artifactId>
+                <version>${odl.yangtools.yang.maven.plugin.version}</version>
+                <dependencies>
+                    <dependency>
+                        <groupId>org.opendaylight.mdsal</groupId>
+                        <artifactId>maven-sal-api-gen-plugin</artifactId>
+                        <version>${odl.sal.api.gen.plugin.version}</version>
+                        <type>jar</type>
+                    </dependency>
+                </dependencies>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>generate-sources</goal>
+                        </goals>
+                        <configuration>
+                            <yangFilesRootDir>${yang.file.directory}</yangFilesRootDir>
+                            <codeGenerators>
+                                <generator>
+                                    <codeGeneratorClass>org.opendaylight.mdsal.binding.maven.api.gen.plugin.CodeGeneratorImpl</codeGeneratorClass>
+                                    <outputBaseDir>${salGeneratorPath}</outputBaseDir>
+                                </generator>
+                            </codeGenerators>
+                            <inspectDependencies>true</inspectDependencies>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
                         <plugin>
                                 <groupId>org.codehaus.mojo</groupId>
                                 <artifactId>exec-maven-plugin</artifactId>
                                 </executions>
                         </plugin>
 
-               </plugins>
-       </build>
-       <dependencies>
-               <dependency>
-                       <groupId>org.opendaylight.mdsal</groupId>
-                       <artifactId>yang-binding</artifactId>
-                       <version>${odl.mdsal.yang.binding.version}</version>
-               </dependency>
-               <dependency>
-                       <groupId>org.opendaylight.yangtools</groupId>
-                       <artifactId>yang-common</artifactId>
-                       <version>${odl.yangtools.version}</version>
-               </dependency>
-               <dependency>
-                       <groupId>org.opendaylight.mdsal.model</groupId>
-                       <artifactId>ietf-inet-types</artifactId>
-                       <version>${odl.ietf-inet-types.version}</version>
-               </dependency>
-               <dependency>
-                       <groupId>org.opendaylight.mdsal.model</groupId>
-                       <artifactId>ietf-yang-types</artifactId>
-                       <version>${odl.ietf-yang-types.version}</version>
-               </dependency>
-       </dependencies>
+        </plugins>
+    </build>
+    <dependencies>
+        <dependency>
+            <groupId>org.opendaylight.mdsal</groupId>
+            <artifactId>yang-binding</artifactId>
+            <version>${odl.mdsal.yang.binding.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.opendaylight.yangtools</groupId>
+            <artifactId>yang-common</artifactId>
+            <version>${odl.yangtools.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.opendaylight.mdsal.model</groupId>
+            <artifactId>ietf-inet-types</artifactId>
+            <version>${odl.ietf-inet-types.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.opendaylight.mdsal.model</groupId>
+            <artifactId>ietf-yang-types</artifactId>
+            <version>${odl.ietf-yang-types.version}</version>
+        </dependency>
+    </dependencies>
 </project>
index 83e3e4c..1b44413 100755 (executable)
@@ -2,7 +2,7 @@ module VNF-API {
 \r
     yang-version 1;\r
 \r
-    namespace "org:openecomp:sdnctl:vnf";\r
+    namespace "org:onap:sdnctl:vnf";\r
 \r
     prefix vnfapi;\r
 \r
@@ -10,10 +10,10 @@ module VNF-API {
 \r
     include "vnfsubmodule";\r
 \r
-    organization "OpenECOMP";\r
+    organization "ONAP";\r
 \r
     contact\r
-       "Network Controller <sdnc@lists.openecomp.org>";\r
+       "Network Controller <onap-sdnc@lists.onap.org>";\r
 \r
     description\r
         "Defines API interface for VNF Orchestration";\r
index 4646492..2b0f53a 100644 (file)
@@ -1,53 +1,53 @@
 <?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/maven-v4_0_0.xsd">
-       <modelVersion>4.0.0</modelVersion>
-
-       <parent>
-           <groupId>org.openecomp.sdnc.northbound</groupId>
-               <artifactId>sdnc-northbound</artifactId>
-           <version>1.2.0-SNAPSHOT</version>
-       </parent>
-
-       <packaging>pom</packaging>
-       <groupId>org.openecomp.sdnc.northbound</groupId>
-       <artifactId>vnfapi</artifactId>
-       <version>1.2.0-SNAPSHOT</version>
-
-       <properties>
-               <feature-name>vnfapi</feature-name>
-       </properties>
-
-       <dependencyManagement>
-
-               <dependencies>
-                       <dependency>
-                               <groupId>org.openecomp.sdnc.northbound</groupId>
-                               <artifactId>vnfapi-features</artifactId>
-                               <classifier>features</classifier>
-                               <type>xml</type>
-                               <version>${project.version}</version>
-                       </dependency>
-
-                       <dependency>
-                               <groupId>org.openecomp.sdnc.northbound</groupId>
-                               <artifactId>vnfapi-model</artifactId>
-                               <version>${project.version}</version>
-                       </dependency>
-                       <dependency>
-                               <groupId>org.openecomp.sdnc.northbound</groupId>
-                               <artifactId>vnfapi-provider</artifactId>
-                               <version>${project.version}</version>
-                               <classifier>config</classifier>
-                               <type>xml</type>
-                       </dependency>
-                       <dependency>
-                               <groupId>org.openecomp.sdnc.northbound</groupId>
-                               <artifactId>vnfapi-provider</artifactId>
-                               <version>${project.version}</version>
-                       </dependency>
-               </dependencies>
-
-       </dependencyManagement>
+    <modelVersion>4.0.0</modelVersion>
+
+    <parent>
+        <groupId>org.onap.sdnc.northbound</groupId>
+        <artifactId>sdnc-northbound</artifactId>
+        <version>1.2.0-SNAPSHOT</version>
+    </parent>
+
+    <packaging>pom</packaging>
+    <groupId>org.onap.sdnc.northbound</groupId>
+    <artifactId>vnfapi</artifactId>
+    <version>1.2.0-SNAPSHOT</version>
+
+    <properties>
+        <feature-name>vnfapi</feature-name>
+    </properties>
+
+    <dependencyManagement>
+
+        <dependencies>
+            <dependency>
+                <groupId>org.onap.sdnc.northbound</groupId>
+                <artifactId>vnfapi-features</artifactId>
+                <classifier>features</classifier>
+                <type>xml</type>
+                <version>${project.version}</version>
+            </dependency>
+
+            <dependency>
+                <groupId>org.onap.sdnc.northbound</groupId>
+                <artifactId>vnfapi-model</artifactId>
+                <version>${project.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.onap.sdnc.northbound</groupId>
+                <artifactId>vnfapi-provider</artifactId>
+                <version>${project.version}</version>
+                <classifier>config</classifier>
+                <type>xml</type>
+            </dependency>
+            <dependency>
+                <groupId>org.onap.sdnc.northbound</groupId>
+                <artifactId>vnfapi-provider</artifactId>
+                <version>${project.version}</version>
+            </dependency>
+        </dependencies>
+
+    </dependencyManagement>
 
   <modules>
     <module>model</module>
index bacf813..c603b4d 100644 (file)
 <?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>
-               <artifactId>vnfapi</artifactId>
-               <groupId>org.openecomp.sdnc.northbound</groupId>
-               <version>1.2.0-SNAPSHOT</version>
-       </parent>
-       <artifactId>vnfapi-provider</artifactId>
-       <packaging>bundle</packaging>
-       <build>
-               <plugins>
-                       <plugin>
-                               <groupId>org.apache.felix</groupId>
-                               <artifactId>maven-bundle-plugin</artifactId>
-                               <extensions>true</extensions>
-                               <configuration>
-                                       <instructions>
-                                               <Export-Package>org.opendaylight.controller.config.yang.config.vnfapi_provider.impl</Export-Package>
-                                               <Import-Package>*</Import-Package>
-                                       </instructions>
-                               </configuration>
-                       </plugin>
-                       <plugin>
-                               <groupId>org.opendaylight.yangtools</groupId>
-                               <artifactId>yang-maven-plugin</artifactId>
-                               <version>${odl.yangtools.yang.maven.plugin.version}</version>
-                               <executions>
-                                       <execution>
-                                               <id>config</id>
-                                               <goals>
-                                                       <goal>generate-sources</goal>
-                                               </goals>
-                                               <configuration>
-                                                       <codeGenerators>
-                                                               <generator>
-                                                                       <codeGeneratorClass>org.opendaylight.controller.config.yangjmxgenerator.plugin.JMXGenerator</codeGeneratorClass>
-                                                                       <outputBaseDir>${jmxGeneratorPath}</outputBaseDir>
-                                                                       <additionalConfiguration>
-                                                                               <namespaceToPackage1>urn:opendaylight:params:xml:ns:yang:controller==org.opendaylight.controller.config.yang</namespaceToPackage1>
-                                                                       </additionalConfiguration>
-                                                               </generator>
-                                                               <generator>
-                                                                       <codeGeneratorClass>org.opendaylight.yangtools.maven.sal.api.gen.plugin.CodeGeneratorImpl</codeGeneratorClass>
-                                                                       <outputBaseDir>${salGeneratorPath}</outputBaseDir>
-                                                               </generator>
-                                                       </codeGenerators>
-                                                       <inspectDependencies>true</inspectDependencies>
-                                               </configuration>
-                                       </execution>
-                               </executions>
-                               <dependencies>
-                                       <dependency>
-                                               <groupId>org.opendaylight.mdsal</groupId>
-                                               <artifactId>maven-sal-api-gen-plugin</artifactId>
-                                               <version>${odl.sal.api.gen.plugin.version}</version>
-                                               <type>jar</type>
-                                       </dependency>
-                                       <dependency>
-                                               <groupId>org.opendaylight.controller</groupId>
-                                               <artifactId>yang-jmx-generator-plugin</artifactId>
-                                               <version>${odl.yang.jmx.generator.version}</version>
-                                       </dependency>
-                               </dependencies>
-                       </plugin>
-                       <plugin>
-                               <groupId>org.codehaus.mojo</groupId>
-                               <artifactId>build-helper-maven-plugin</artifactId>
-                               <executions>
-                                       <execution>
-                                               <id>attach-artifacts</id>
-                                               <goals>
-                                                       <goal>attach-artifact</goal>
-                                               </goals>
-                                               <phase>package</phase>
-                                               <configuration>
-                                                       <artifacts>
-                                                               <artifact>
-                                                                       <file>${project.build.directory}/classes/initial/vnfapi-provider.xml</file>
-                                                                       <type>xml</type>
-                                                                       <classifier>config</classifier>
-                                                               </artifact>
-                                                       </artifacts>
-                                               </configuration>
-                                       </execution>
-                               </executions>
-                       </plugin>
-               </plugins>
-       </build>
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <artifactId>vnfapi</artifactId>
+        <groupId>org.onap.sdnc.northbound</groupId>
+        <version>1.2.0-SNAPSHOT</version>
+    </parent>
+    <artifactId>vnfapi-provider</artifactId>
+    <packaging>bundle</packaging>
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.felix</groupId>
+                <artifactId>maven-bundle-plugin</artifactId>
+                <extensions>true</extensions>
+                <configuration>
+                    <instructions>
+                        <Export-Package>org.opendaylight.controller.config.yang.config.vnfapi_provider.impl</Export-Package>
+                        <Import-Package>*</Import-Package>
+                    </instructions>
+                </configuration>
+            </plugin>
+            <plugin>
+                <groupId>org.opendaylight.yangtools</groupId>
+                <artifactId>yang-maven-plugin</artifactId>
+                <version>${odl.yangtools.yang.maven.plugin.version}</version>
+                <executions>
+                    <execution>
+                        <id>config</id>
+                        <goals>
+                            <goal>generate-sources</goal>
+                        </goals>
+                        <configuration>
+                            <codeGenerators>
+                                <generator>
+                                    <codeGeneratorClass>org.opendaylight.controller.config.yangjmxgenerator.plugin.JMXGenerator</codeGeneratorClass>
+                                    <outputBaseDir>${jmxGeneratorPath}</outputBaseDir>
+                                    <additionalConfiguration>
+                                        <namespaceToPackage1>urn:opendaylight:params:xml:ns:yang:controller==org.opendaylight.controller.config.yang</namespaceToPackage1>
+                                    </additionalConfiguration>
+                                </generator>
+                                <generator>
+                                    <codeGeneratorClass>org.opendaylight.mdsal.binding.maven.api.gen.plugin.CodeGeneratorImpl</codeGeneratorClass>
+                                    <outputBaseDir>${salGeneratorPath}</outputBaseDir>
+                                </generator>
+                            </codeGenerators>
+                            <inspectDependencies>true</inspectDependencies>
+                        </configuration>
+                    </execution>
+                </executions>
+                <dependencies>
+                    <dependency>
+                        <groupId>org.opendaylight.mdsal</groupId>
+                        <artifactId>maven-sal-api-gen-plugin</artifactId>
+                        <version>${odl.sal.api.gen.plugin.version}</version>
+                        <type>jar</type>
+                    </dependency>
+                    <dependency>
+                        <groupId>org.opendaylight.controller</groupId>
+                        <artifactId>yang-jmx-generator-plugin</artifactId>
+                        <version>${odl.yang.jmx.generator.version}</version>
+                    </dependency>
+                </dependencies>
+            </plugin>
+            <plugin>
+                <groupId>org.codehaus.mojo</groupId>
+                <artifactId>build-helper-maven-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <id>attach-artifacts</id>
+                        <goals>
+                            <goal>attach-artifact</goal>
+                        </goals>
+                        <phase>package</phase>
+                        <configuration>
+                            <artifacts>
+                                <artifact>
+                                    <file>${project.build.directory}/classes/initial/vnfapi-provider.xml</file>
+                                    <type>xml</type>
+                                    <classifier>config</classifier>
+                                </artifact>
+                            </artifacts>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
 
-       <dependencies>
-               <dependency>
-                       <groupId>org.openecomp.sdnc.northbound</groupId>
-                       <artifactId>vnfapi-model</artifactId>
-               </dependency>
-               <dependency>
-                       <groupId>org.opendaylight.controller</groupId>
-                       <artifactId>config-api</artifactId>
-                       <version>${odl.controller.config.api.version}</version>
-               </dependency>
-               <dependency>
-                       <groupId>org.opendaylight.controller</groupId>
-                       <artifactId>sal-binding-config</artifactId>
-                       <version>${odl.mdsal.version}</version>
-               </dependency>
-               <dependency>
-                       <groupId>org.opendaylight.controller</groupId>
-                       <artifactId>sal-binding-api</artifactId>
-                       <version>${odl.mdsal.version}</version>
-               </dependency>
-               <dependency>
-                       <groupId>org.opendaylight.controller</groupId>
-                       <artifactId>sal-common-util</artifactId>
-                       <version>${odl.mdsal.version}</version>
-               </dependency>
-               <dependency>
-                       <groupId>org.openecomp.sdnc.core</groupId>
-                       <artifactId>sli-common</artifactId>
-                       <version>${sdnctl.sli.version}</version>
-               </dependency>
-               <dependency>
-                       <groupId>org.openecomp.sdnc.core</groupId>
-                       <artifactId>sli-provider</artifactId>
-                       <version>${sdnctl.sli.version}</version>
-               </dependency>
-               <dependency>
-                       <groupId>junit</groupId>
-                       <artifactId>junit</artifactId>
-                       <version>${junit.version}</version>
-                       <scope>test</scope>
-               </dependency>
-       </dependencies>
+    <dependencies>
+        <dependency>
+            <groupId>org.onap.sdnc.northbound</groupId>
+            <artifactId>vnfapi-model</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.opendaylight.controller</groupId>
+            <artifactId>config-api</artifactId>
+            <version>${odl.controller.config.api.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.opendaylight.controller</groupId>
+            <artifactId>sal-binding-config</artifactId>
+            <version>${odl.mdsal.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.opendaylight.controller</groupId>
+            <artifactId>sal-binding-api</artifactId>
+            <version>${odl.mdsal.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.opendaylight.controller</groupId>
+            <artifactId>sal-common-util</artifactId>
+            <version>${odl.mdsal.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.onap.ccsdk.sli.core</groupId>
+            <artifactId>sli-common</artifactId>
+            <version>${sdnctl.sli.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.onap.ccsdk.sli.core</groupId>
+            <artifactId>sli-provider</artifactId>
+            <version>${sdnctl.sli.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+            <version>${junit.version}</version>
+            <scope>test</scope>
+        </dependency>
+    </dependencies>
 </project>
diff --git a/vnfapi/provider/src/main/java/org/onap/sdnc/vnfapi/VNFSDNSvcLogicServiceClient.java b/vnfapi/provider/src/main/java/org/onap/sdnc/vnfapi/VNFSDNSvcLogicServiceClient.java
new file mode 100644 (file)
index 0000000..9f8696f
--- /dev/null
@@ -0,0 +1,379 @@
+/*-
+ * ============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=========================================================
+ */
+
+package org.onap.sdnc.vnfapi;
+
+import java.util.Properties;
+
+import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.preload.data.PreloadDataBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.service.data.ServiceDataBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.vf.module.preload.data.VfModulePreloadDataBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.vf.module.service.data.VfModuleServiceDataBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.vnf.instance.preload.data.VnfInstancePreloadDataBuilder;
+//1610
+import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.vnf.instance.service.data.VnfInstanceServiceDataBuilder;
+import org.onap.ccsdk.sli.core.sli.SvcLogicException;
+import org.onap.ccsdk.sli.core.sli.provider.SvcLogicService;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.FrameworkUtil;
+import org.osgi.framework.ServiceReference;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class VNFSDNSvcLogicServiceClient {
+
+    private static final Logger LOG = LoggerFactory
+            .getLogger(VNFSDNSvcLogicServiceClient.class);
+
+    private SvcLogicService svcLogic = null;
+
+    public VNFSDNSvcLogicServiceClient()
+    {
+        BundleContext bctx = FrameworkUtil.getBundle(SvcLogicService.class).getBundleContext();
+
+        // Get SvcLogicService reference
+        ServiceReference sref = bctx.getServiceReference(SvcLogicService.NAME);
+        if (sref  != null)
+        {
+            svcLogic =  (SvcLogicService) bctx.getService(sref);
+
+        }
+        else
+        {
+            LOG.warn("Cannot find service reference for "+SvcLogicService.NAME);
+
+        }
+    }
+
+    public boolean hasGraph(String module, String rpc, String version, String mode) throws SvcLogicException
+    {
+        return(svcLogic.hasGraph(module, rpc, version, mode));
+    }
+
+    public Properties execute(String module, String rpc, String version, String mode, ServiceDataBuilder serviceData)
+            throws SvcLogicException {
+
+        Properties parms = new Properties();
+
+        return execute(module,rpc,version, mode,serviceData,parms);
+    }
+
+    public Properties execute(String module, String rpc, String version, String mode, PreloadDataBuilder serviceData)
+            throws SvcLogicException {
+
+        Properties parms = new Properties();
+
+        return execute(module,rpc,version, mode,serviceData,parms);
+    }
+
+
+    public Properties execute(String module, String rpc, String version, String mode, ServiceDataBuilder serviceData, Properties parms)
+                throws SvcLogicException {
+
+        parms = VnfSdnUtil.toProperties(parms, serviceData);
+
+        if (LOG.isDebugEnabled())
+        {
+            LOG.debug("Parameters passed to SLI");
+
+            for (Object key : parms.keySet()) {
+                String parmName = (String) key;
+                String parmValue = parms.getProperty(parmName);
+
+                LOG.debug(parmName+" = "+parmValue);
+
+            }
+        }
+
+        Properties respProps = svcLogic.execute(module, rpc, version, mode, parms);
+
+        if (LOG.isDebugEnabled())
+        {
+            LOG.debug("Parameters returned by SLI");
+
+            for (Object key : respProps.keySet()) {
+                String parmName = (String) key;
+                String parmValue = respProps.getProperty(parmName);
+
+                LOG.debug(parmName+" = "+parmValue);
+
+            }
+        }
+        if ("failure".equalsIgnoreCase(respProps.getProperty("SvcLogic.status"))) {
+            return (respProps);
+        }
+
+        VnfSdnUtil.toBuilder(respProps, serviceData);
+
+        return (respProps);
+    }
+
+
+    public Properties execute(String module, String rpc, String version, String mode, PreloadDataBuilder serviceData, Properties parms)
+                throws SvcLogicException {
+
+        parms = VnfSdnUtil.toProperties(parms, serviceData);
+
+        if (LOG.isDebugEnabled())
+        {
+            LOG.debug("Parameters passed to SLI");
+
+            for (Object key : parms.keySet()) {
+                String parmName = (String) key;
+                String parmValue = parms.getProperty(parmName);
+
+                LOG.debug(parmName+" = "+parmValue);
+
+            }
+        }
+
+        Properties respProps = svcLogic.execute(module, rpc, version, mode, parms);
+
+        if (LOG.isDebugEnabled())
+        {
+            LOG.debug("Parameters returned by SLI");
+
+            for (Object key : respProps.keySet()) {
+                String parmName = (String) key;
+                String parmValue = respProps.getProperty(parmName);
+
+                LOG.debug(parmName+" = "+parmValue);
+
+            }
+        }
+        if ("failure".equalsIgnoreCase(respProps.getProperty("SvcLogic.status"))) {
+            return (respProps);
+        }
+
+        VnfSdnUtil.toBuilder(respProps, serviceData);
+
+        return (respProps);
+    }
+
+
+    //1610 vnf-instance
+    public Properties execute(String module, String rpc, String version, String mode, VnfInstanceServiceDataBuilder serviceData)
+            throws SvcLogicException {
+
+        Properties parms = new Properties();
+
+        return execute(module,rpc,version, mode,serviceData,parms);
+    }
+
+    //1610 vnf-instance
+    public Properties execute(String module, String rpc, String version, String mode, VnfInstanceServiceDataBuilder serviceData, Properties parms)
+                throws SvcLogicException {
+
+        parms = VnfSdnUtil.toProperties(parms, serviceData);
+
+        if (LOG.isDebugEnabled())
+        {
+            LOG.debug("Parameters passed to SLI");
+
+            for (Object key : parms.keySet()) {
+                String parmName = (String) key;
+                String parmValue = parms.getProperty(parmName);
+
+                LOG.debug(parmName+" = "+parmValue);
+
+            }
+        }
+
+        Properties respProps = svcLogic.execute(module, rpc, version, mode, parms);
+
+        if (LOG.isDebugEnabled())
+        {
+            LOG.debug("Parameters returned by SLI");
+
+            for (Object key : respProps.keySet()) {
+                String parmName = (String) key;
+                String parmValue = respProps.getProperty(parmName);
+
+                LOG.debug(parmName+" = "+parmValue);
+
+            }
+        }
+        if ("failure".equalsIgnoreCase(respProps.getProperty("SvcLogic.status"))) {
+            return (respProps);
+        }
+
+        VnfSdnUtil.toBuilder(respProps, serviceData);
+
+        return (respProps);
+    }
+
+    //1610 vf-module
+    public Properties execute(String module, String rpc, String version, String mode, VfModuleServiceDataBuilder serviceData)
+            throws SvcLogicException {
+
+        Properties parms = new Properties();
+
+        return execute(module,rpc,version, mode,serviceData,parms);
+    }
+
+    //1610 vf-module
+    public Properties execute(String module, String rpc, String version, String mode, VfModuleServiceDataBuilder serviceData, Properties parms)
+                throws SvcLogicException {
+
+        parms = VnfSdnUtil.toProperties(parms, serviceData);
+
+        if (LOG.isDebugEnabled())
+        {
+            LOG.debug("Parameters passed to SLI");
+
+            for (Object key : parms.keySet()) {
+                String parmName = (String) key;
+                String parmValue = parms.getProperty(parmName);
+
+                LOG.debug(parmName+" = "+parmValue);
+
+            }
+        }
+
+        Properties respProps = svcLogic.execute(module, rpc, version, mode, parms);
+
+        if (LOG.isDebugEnabled())
+        {
+            LOG.debug("Parameters returned by SLI");
+
+            for (Object key : respProps.keySet()) {
+                String parmName = (String) key;
+                String parmValue = respProps.getProperty(parmName);
+
+                LOG.debug(parmName+" = "+parmValue);
+
+            }
+        }
+        if ("failure".equalsIgnoreCase(respProps.getProperty("SvcLogic.status"))) {
+            return (respProps);
+        }
+
+        VnfSdnUtil.toBuilder(respProps, serviceData);
+
+        return (respProps);
+    }
+
+    //1610 vnf-instance-preload
+    public Properties execute(String module, String rpc, String version, String mode, VnfInstancePreloadDataBuilder serviceData)
+            throws SvcLogicException {
+
+        Properties parms = new Properties();
+
+        return execute(module,rpc,version, mode,serviceData,parms);
+    }
+
+
+    //1610 vnf-instance-preload
+    public Properties execute(String module, String rpc, String version, String mode, VnfInstancePreloadDataBuilder serviceData, Properties parms)
+                throws SvcLogicException {
+
+        parms = VnfSdnUtil.toProperties(parms, serviceData);
+
+        if (LOG.isDebugEnabled())
+        {
+            LOG.debug("Parameters passed to SLI");
+
+            for (Object key : parms.keySet()) {
+                String parmName = (String) key;
+                String parmValue = parms.getProperty(parmName);
+
+                LOG.debug(parmName+" = "+parmValue);
+
+            }
+        }
+
+        Properties respProps = svcLogic.execute(module, rpc, version, mode, parms);
+
+        if (LOG.isDebugEnabled())
+        {
+            LOG.debug("Parameters returned by SLI");
+
+            for (Object key : respProps.keySet()) {
+                String parmName = (String) key;
+                String parmValue = respProps.getProperty(parmName);
+
+                LOG.debug(parmName+" = "+parmValue);
+
+            }
+        }
+        if ("failure".equalsIgnoreCase(respProps.getProperty("SvcLogic.status"))) {
+            return (respProps);
+        }
+
+        VnfSdnUtil.toBuilder(respProps, serviceData);
+
+        return (respProps);
+    }
+
+    //1610 vf-module-preload
+    public Properties execute(String module, String rpc, String version, String mode, VfModulePreloadDataBuilder serviceData)
+            throws SvcLogicException {
+
+        Properties parms = new Properties();
+
+        return execute(module,rpc,version, mode,serviceData,parms);
+    }
+
+
+    //1610 vf-module-preload
+    public Properties execute(String module, String rpc, String version, String mode, VfModulePreloadDataBuilder serviceData, Properties parms)
+                throws SvcLogicException {
+
+        parms = VnfSdnUtil.toProperties(parms, serviceData);
+
+        if (LOG.isDebugEnabled())
+        {
+            LOG.debug("Parameters passed to SLI");
+
+            for (Object key : parms.keySet()) {
+                String parmName = (String) key;
+                String parmValue = parms.getProperty(parmName);
+
+                LOG.debug(parmName+" = "+parmValue);
+
+            }
+        }
+
+        Properties respProps = svcLogic.execute(module, rpc, version, mode, parms);
+
+        if (LOG.isDebugEnabled())
+        {
+            LOG.debug("Parameters returned by SLI");
+
+            for (Object key : respProps.keySet()) {
+                String parmName = (String) key;
+                String parmValue = respProps.getProperty(parmName);
+
+                LOG.debug(parmName+" = "+parmValue);
+
+            }
+        }
+        if ("failure".equalsIgnoreCase(respProps.getProperty("SvcLogic.status"))) {
+            return (respProps);
+        }
+
+        VnfSdnUtil.toBuilder(respProps, serviceData);
+
+        return (respProps);
+    }
+
+
+}
diff --git a/vnfapi/provider/src/main/java/org/onap/sdnc/vnfapi/VnfSdnUtil.java b/vnfapi/provider/src/main/java/org/onap/sdnc/vnfapi/VnfSdnUtil.java
new file mode 100644 (file)
index 0000000..69f5922
--- /dev/null
@@ -0,0 +1,233 @@
+/*-
+ * ============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=========================================================
+ */
+
+package org.onap.sdnc.vnfapi;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.Properties;
+
+import org.onap.ccsdk.sli.core.sli.provider.MdsalHelper;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class VnfSdnUtil extends MdsalHelper {
+
+    private static final Logger LOG = LoggerFactory.getLogger(VnfSdnUtil.class);
+
+    public static File ODLHOME = null;
+
+    private static Properties properties;
+
+
+    public static void loadProperties() {
+
+        if (ODLHOME == null) {
+            ODLHOME = new File("/opt/opendaylight/current");
+
+            if (!ODLHOME.isDirectory()) {
+                ODLHOME = new File("/opt/bvc/controller");
+            }
+        }
+
+        File propFile = new File(ODLHOME.getAbsolutePath() + "/configuration/vnfapi.properties");
+        String propFileName = propFile.getAbsolutePath();
+        properties = new Properties();
+        InputStream input = null;
+        if (propFile.isFile() && propFile.canRead()) {
+            try    {
+                input = new FileInputStream(propFile);
+                properties.load(input);
+                LOG.info("Loaded properties from " + propFileName );
+                setProperties(properties);
+            } catch (Exception e) {
+                LOG.error("Failed to load properties " + propFileName +"\n",e);
+            } finally {
+                if (input != null) {
+                    try {
+                        input.close();
+                    } catch (IOException e) {
+                        LOG.error("Failed to close properties file " + propFileName +"\n",e);
+                    }
+                }
+            }
+        }
+    }
+
+    static {
+
+        // Trick class loader into loading builders. Some of
+        // these will be needed later by Reflection classes, but need
+        // to explicitly "new" them here to get class loader to load them.
+        org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.network.information.NetworkInformationBuilder u1 =
+            new org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.network.information.NetworkInformationBuilder();
+        org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.network.policy.NetworkPolicyBuilder u2 =
+            new org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.network.policy.NetworkPolicyBuilder();
+        org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.network.request.information.NetworkRequestInformationBuilder u3 =
+            new org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.network.request.information.NetworkRequestInformationBuilder();
+        org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.network.topology.identifier.NetworkTopologyIdentifierBuilder u4 =
+            new org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.network.topology.identifier.NetworkTopologyIdentifierBuilder();
+        org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.network.topology.information.NetworkTopologyInformationBuilder u5 =
+            new org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.network.topology.information.NetworkTopologyInformationBuilder();
+        org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.NetworkTopologyOperationInputBuilder u6 =
+            new org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.NetworkTopologyOperationInputBuilder();
+        org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.NetworkTopologyOperationOutputBuilder u7 =
+            new org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.NetworkTopologyOperationOutputBuilder();
+        org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.oper.status.OperStatusBuilder u8 =
+            new org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.oper.status.OperStatusBuilder();
+        org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.preload.data.PreloadDataBuilder u9 =
+            new org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.preload.data.PreloadDataBuilder();
+        org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.preload.model.information.VnfPreloadListBuilder u10 =
+            new org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.preload.model.information.VnfPreloadListBuilder();
+        org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.PreloadNetworkTopologyOperationInputBuilder u11 =
+            new org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.PreloadNetworkTopologyOperationInputBuilder();
+        org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.PreloadNetworkTopologyOperationOutputBuilder u12 =
+            new org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.PreloadNetworkTopologyOperationOutputBuilder();
+        org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.preload.vf.module.model.information.VfModulePreloadListBuilder u13 =
+            new org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.preload.vf.module.model.information.VfModulePreloadListBuilder();
+        org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.PreloadVfModulesBuilder u14 =
+            new org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.PreloadVfModulesBuilder();
+        org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.PreloadVfModuleTopologyOperationInputBuilder u15 =
+            new org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.PreloadVfModuleTopologyOperationInputBuilder();
+        org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.PreloadVfModuleTopologyOperationOutputBuilder u16 =
+            new org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.PreloadVfModuleTopologyOperationOutputBuilder();
+        org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.preload.vnf.instance.model.information.VnfInstancePreloadListBuilder u17 =
+            new org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.preload.vnf.instance.model.information.VnfInstancePreloadListBuilder();
+        org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.PreloadVnfInstancesBuilder u18 =
+            new org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.PreloadVnfInstancesBuilder();
+        org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.PreloadVnfInstanceTopologyOperationInputBuilder u19 =
+            new org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.PreloadVnfInstanceTopologyOperationInputBuilder();
+        org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.PreloadVnfInstanceTopologyOperationOutputBuilder u20 =
+            new org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.PreloadVnfInstanceTopologyOperationOutputBuilder();
+        org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.PreloadVnfsBuilder u21 =
+            new org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.PreloadVnfsBuilder();
+        org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.PreloadVnfTopologyOperationInputBuilder u22 =
+            new org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.PreloadVnfTopologyOperationInputBuilder();
+        org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.PreloadVnfTopologyOperationOutputBuilder u23 =
+            new org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.PreloadVnfTopologyOperationOutputBuilder();
+        org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.provider.network.information.ProviderNetworkInformationBuilder u24 =
+            new org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.provider.network.information.ProviderNetworkInformationBuilder();
+        org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.request.information.RequestInformationBuilder u25 =
+            new org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.request.information.RequestInformationBuilder();
+        org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.route.table.reference.RouteTableReferenceBuilder u26 =
+            new org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.route.table.reference.RouteTableReferenceBuilder();
+        org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.sdnc.request.header.SdncRequestHeaderBuilder u27 =
+            new org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.sdnc.request.header.SdncRequestHeaderBuilder();
+        org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.service.data.ServiceDataBuilder u28 =
+            new org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.service.data.ServiceDataBuilder();
+        org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.service.information.ServiceInformationBuilder u29 =
+            new org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.service.information.ServiceInformationBuilder();
+        org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.service.status.ServiceStatusBuilder u30 =
+            new org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.service.status.ServiceStatusBuilder();
+        org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.sriov.vlan.filter.list.SriovVlanFilterListBuilder u31 =
+            new org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.sriov.vlan.filter.list.SriovVlanFilterListBuilder();
+        org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.subnets.SubnetsBuilder u32 =
+            new org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.subnets.SubnetsBuilder();
+        org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.vf.module.identifiers.VfModuleIdentifiersBuilder u33 =
+            new org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.vf.module.identifiers.VfModuleIdentifiersBuilder();
+        org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.vf.module.information.VfModuleInformationBuilder u34 =
+            new org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.vf.module.information.VfModuleInformationBuilder();
+        org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.vf.module.model.infrastructure.VfModuleListBuilder u35 =
+            new org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.vf.module.model.infrastructure.VfModuleListBuilder();
+        org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.vf.module.preload.data.VfModulePreloadDataBuilder u36 =
+            new org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.vf.module.preload.data.VfModulePreloadDataBuilder();
+        org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.vf.module.relationship.list.VfModuleRelationshipListBuilder u37 =
+            new org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.vf.module.relationship.list.VfModuleRelationshipListBuilder();
+        org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.vf.module.request.information.VfModuleRequestInformationBuilder u38 =
+            new org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.vf.module.request.information.VfModuleRequestInformationBuilder();
+        org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.VfModulesBuilder u39 =
+            new org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.VfModulesBuilder();
+        org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.vf.module.service.data.VfModuleServiceDataBuilder u40 =
+            new org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.vf.module.service.data.VfModuleServiceDataBuilder();
+        org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.vf.module.topology.information.VfModuleTopologyInformationBuilder u41 =
+            new org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.vf.module.topology.information.VfModuleTopologyInformationBuilder();
+        org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.VfModuleTopologyOperationInputBuilder u42 =
+            new org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.VfModuleTopologyOperationInputBuilder();
+        org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.VfModuleTopologyOperationOutputBuilder u43 =
+            new org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.VfModuleTopologyOperationOutputBuilder();
+        org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.vm.network.InterfaceRoutePrefixesBuilder u44 =
+            new org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.vm.network.InterfaceRoutePrefixesBuilder();
+        org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.vm.network.NetworkIpsBuilder u45 =
+            new org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.vm.network.NetworkIpsBuilder();
+        org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.vm.network.NetworkIpsV6Builder u46 =
+            new org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.vm.network.NetworkIpsV6Builder();
+        org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.vm.network.NetworkMacsBuilder u47 =
+            new org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.vm.network.NetworkMacsBuilder();
+        org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.vm.topology.VnfVmsBuilder u48 =
+            new org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.vm.topology.VnfVmsBuilder();
+        org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.vm.topology.vnf.vms.VmNamesBuilder u49 =
+            new org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.vm.topology.vnf.vms.VmNamesBuilder();
+        org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.vm.topology.vnf.vms.VmNetworksBuilder u50 =
+            new org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.vm.topology.vnf.vms.VmNetworksBuilder();
+        org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.vnf.assignments.vnf.assignments.AvailabilityZonesBuilder u51 =
+            new org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.vnf.assignments.vnf.assignments.AvailabilityZonesBuilder();
+        org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.vnf.assignments.VnfAssignmentsBuilder u52 =
+            new org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.vnf.assignments.VnfAssignmentsBuilder();
+        org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.vnf.assignments.vnf.assignments.VnfNetworksBuilder u53 =
+            new org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.vnf.assignments.vnf.assignments.VnfNetworksBuilder();
+        org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.vnf.information.VnfInformationBuilder u54 =
+            new org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.vnf.information.VnfInformationBuilder();
+        org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.vnf.instance.identifiers.VnfInstanceIdentifiersBuilder u55 =
+            new org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.vnf.instance.identifiers.VnfInstanceIdentifiersBuilder();
+        org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.vnf.instance.information.VnfInstanceInformationBuilder u56 =
+            new org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.vnf.instance.information.VnfInstanceInformationBuilder();
+        org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.vnf.instance.model.infrastructure.VnfInstanceListBuilder u57 =
+            new org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.vnf.instance.model.infrastructure.VnfInstanceListBuilder();
+        org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.vnf.instance.preload.data.VnfInstancePreloadDataBuilder u58 =
+            new org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.vnf.instance.preload.data.VnfInstancePreloadDataBuilder();
+        org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.vnf.instance.request.information.VnfInstanceRequestInformationBuilder u59 =
+            new org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.vnf.instance.request.information.VnfInstanceRequestInformationBuilder();
+        org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.vnf.instance.request.information.vnf.instance.request.information.VnfNetworksBuilder u60 =
+            new org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.vnf.instance.request.information.vnf.instance.request.information.VnfNetworksBuilder();
+        org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.VnfInstancesBuilder u61 =
+            new org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.VnfInstancesBuilder();
+        org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.vnf.instance.service.data.VnfInstanceServiceDataBuilder u62 =
+            new org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.vnf.instance.service.data.VnfInstanceServiceDataBuilder();
+        org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.vnf.instance.topology.information.VnfInstanceTopologyInformationBuilder u63 =
+            new org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.vnf.instance.topology.information.VnfInstanceTopologyInformationBuilder();
+        org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.VnfInstanceTopologyOperationInputBuilder u64 =
+            new org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.VnfInstanceTopologyOperationInputBuilder();
+        org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.VnfInstanceTopologyOperationOutputBuilder u65 =
+            new org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.VnfInstanceTopologyOperationOutputBuilder();
+        org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.vnf.model.infrastructure.VnfListBuilder u66 =
+            new org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.vnf.model.infrastructure.VnfListBuilder();
+        org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.vnf.parameters.VnfParametersBuilder u67 =
+            new org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.vnf.parameters.VnfParametersBuilder();
+        org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.vnf.request.information.VnfRequestInformationBuilder u68 =
+            new org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.vnf.request.information.VnfRequestInformationBuilder();
+        org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.vnf.request.information.vnf.request.information.VnfNetworksBuilder u69 =
+            new org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.vnf.request.information.vnf.request.information.VnfNetworksBuilder();
+        org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.VnfsBuilder u70 =
+            new org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.VnfsBuilder();
+        org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.vnf.topology.identifier.VnfTopologyIdentifierBuilder u71 =
+            new org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.vnf.topology.identifier.VnfTopologyIdentifierBuilder();
+        org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.vnf.topology.information.VnfTopologyInformationBuilder u72 =
+            new org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.vnf.topology.information.VnfTopologyInformationBuilder();
+        org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.VnfTopologyOperationInputBuilder u73 =
+            new org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.VnfTopologyOperationInputBuilder();
+        org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.VnfTopologyOperationOutputBuilder u74 =
+            new org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.VnfTopologyOperationOutputBuilder();
+        org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.vpn.bindings.VpnBindingsBuilder u75 =
+            new org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.vpn.bindings.VpnBindingsBuilder();
+    }
+}
diff --git a/vnfapi/provider/src/main/java/org/onap/sdnc/vnfapi/vnfapiProvider.java b/vnfapi/provider/src/main/java/org/onap/sdnc/vnfapi/vnfapiProvider.java
new file mode 100644 (file)
index 0000000..a86def1
--- /dev/null
@@ -0,0 +1,2651 @@
+/*-
+ * ============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=========================================================
+ */
+
+package org.onap.sdnc.vnfapi;
+
+import java.text.DateFormat;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.Properties;
+import java.util.TimeZone;
+import java.util.concurrent.ExecutionException;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+import java.util.concurrent.Future;
+
+import org.opendaylight.controller.md.sal.binding.api.DataBroker;
+import org.opendaylight.controller.md.sal.binding.api.DataChangeListener;
+import org.opendaylight.controller.md.sal.binding.api.ReadOnlyTransaction;
+import org.opendaylight.controller.md.sal.binding.api.WriteTransaction;
+import org.opendaylight.controller.md.sal.common.api.data.AsyncDataChangeEvent;
+import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
+import org.opendaylight.controller.md.sal.common.api.data.OptimisticLockFailedException;
+import org.opendaylight.controller.md.sal.common.api.data.TransactionCommitFailedException;
+import org.opendaylight.controller.sal.binding.api.BindingAwareBroker;
+import org.opendaylight.controller.sal.binding.api.NotificationProviderService;
+import org.opendaylight.controller.sal.binding.api.RpcProviderRegistry;
+import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.NetworkTopologyOperationInput;
+import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.NetworkTopologyOperationInputBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.NetworkTopologyOperationOutput;
+import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.NetworkTopologyOperationOutputBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.PreloadNetworkTopologyOperationInput;
+import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.PreloadNetworkTopologyOperationInputBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.PreloadNetworkTopologyOperationOutput;
+import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.PreloadNetworkTopologyOperationOutputBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.PreloadVfModuleTopologyOperationInput;
+import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.PreloadVfModuleTopologyOperationInputBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.PreloadVfModuleTopologyOperationOutput;
+import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.PreloadVfModuleTopologyOperationOutputBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.PreloadVfModules;
+import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.PreloadVfModulesBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.PreloadVnfInstanceTopologyOperationInput;
+import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.PreloadVnfInstanceTopologyOperationInputBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.PreloadVnfInstanceTopologyOperationOutput;
+import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.PreloadVnfInstanceTopologyOperationOutputBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.PreloadVnfInstances;
+import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.PreloadVnfInstancesBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.PreloadVnfTopologyOperationInput;
+import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.PreloadVnfTopologyOperationInputBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.PreloadVnfTopologyOperationOutput;
+import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.PreloadVnfTopologyOperationOutputBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.PreloadVnfs;
+import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.PreloadVnfsBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.VNFAPIService;
+import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.VfModuleTopologyOperationInput;
+import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.VfModuleTopologyOperationInputBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.VfModuleTopologyOperationOutput;
+import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.VfModuleTopologyOperationOutputBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.VfModules;
+import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.VfModulesBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.VnfInstanceTopologyOperationInput;
+import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.VnfInstanceTopologyOperationInputBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.VnfInstanceTopologyOperationOutput;
+import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.VnfInstanceTopologyOperationOutputBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.VnfInstances;
+import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.VnfInstancesBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.VnfTopologyOperationInput;
+import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.VnfTopologyOperationInputBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.VnfTopologyOperationOutput;
+import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.VnfTopologyOperationOutputBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.Vnfs;
+import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.VnfsBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.network.information.NetworkInformationBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.preload.data.PreloadData;
+import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.preload.data.PreloadDataBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.preload.model.information.VnfPreloadList;
+import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.preload.model.information.VnfPreloadListBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.preload.model.information.VnfPreloadListKey;
+import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.preload.vf.module.model.information.VfModulePreloadList;
+import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.preload.vf.module.model.information.VfModulePreloadListBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.preload.vf.module.model.information.VfModulePreloadListKey;
+import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.preload.vnf.instance.model.information.VnfInstancePreloadList;
+import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.preload.vnf.instance.model.information.VnfInstancePreloadListBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.preload.vnf.instance.model.information.VnfInstancePreloadListKey;
+import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.request.information.RequestInformation;
+import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.sdnc.request.header.SdncRequestHeader;
+import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.sdnc.request.header.SdncRequestHeader.SvcAction;
+import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.service.data.ServiceData;
+import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.service.data.ServiceDataBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.service.status.ServiceStatus;
+import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.service.status.ServiceStatus.RequestStatus;
+import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.service.status.ServiceStatus.RpcAction;
+import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.service.status.ServiceStatus.RpcName;
+import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.service.status.ServiceStatus.VnfsdnAction;
+import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.service.status.ServiceStatus.VnfsdnSubaction;
+import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.service.status.ServiceStatusBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.vf.module.information.VfModuleInformationBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.vf.module.model.infrastructure.VfModuleList;
+import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.vf.module.model.infrastructure.VfModuleListBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.vf.module.model.infrastructure.VfModuleListKey;
+import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.vf.module.preload.data.VfModulePreloadData;
+import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.vf.module.preload.data.VfModulePreloadDataBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.vf.module.service.data.VfModuleServiceData;
+import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.vf.module.service.data.VfModuleServiceDataBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.vnf.information.VnfInformationBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.vnf.instance.information.VnfInstanceInformationBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.vnf.instance.model.infrastructure.VnfInstanceList;
+import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.vnf.instance.model.infrastructure.VnfInstanceListBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.vnf.instance.model.infrastructure.VnfInstanceListKey;
+import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.vnf.instance.preload.data.VnfInstancePreloadData;
+import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.vnf.instance.preload.data.VnfInstancePreloadDataBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.vnf.instance.service.data.VnfInstanceServiceData;
+import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.vnf.instance.service.data.VnfInstanceServiceDataBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.vnf.model.infrastructure.VnfList;
+import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.vnf.model.infrastructure.VnfListBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.vnf.model.infrastructure.VnfListKey;
+import org.opendaylight.yangtools.concepts.ListenerRegistration;
+import org.opendaylight.yangtools.yang.binding.DataObject;
+import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+import org.opendaylight.yangtools.yang.common.RpcResult;
+import org.opendaylight.yangtools.yang.common.RpcResultBuilder;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import com.google.common.base.Optional;
+import com.google.common.util.concurrent.CheckedFuture;
+import com.google.common.util.concurrent.FutureCallback;
+import com.google.common.util.concurrent.Futures;
+import com.google.common.util.concurrent.SettableFuture;
+
+
+/**
+ * Defines a base implementation for your provider. This class extends from a helper class
+ * which provides storage for the most commonly used components of the MD-SAL. Additionally the
+ * base class provides some basic logging and initialization / clean up methods.
+ *
+ */
+
+public class vnfapiProvider implements AutoCloseable, VNFAPIService, DataChangeListener{
+
+    private final Logger log = LoggerFactory.getLogger( vnfapiProvider.class );
+    private final String appName = "vnfapi";
+    private final ExecutorService executor;
+
+
+    private ListenerRegistration<DataChangeListener> dclServices;
+
+    protected DataBroker dataBroker;
+    protected NotificationProviderService notificationService;
+    protected RpcProviderRegistry rpcRegistry;
+    protected BindingAwareBroker.RpcRegistration<VNFAPIService> rpcRegistration;
+
+
+
+    public vnfapiProvider(DataBroker dataBroker2,
+            NotificationProviderService notificationProviderService,
+            RpcProviderRegistry rpcProviderRegistry) {
+        this.log.info( "Creating provider for " + appName );
+        executor = Executors.newFixedThreadPool(1);
+        dataBroker = dataBroker2;
+        notificationService = notificationProviderService;
+        rpcRegistry = rpcProviderRegistry;
+        initialize();
+
+    }
+
+    public void initialize(){
+        log.info( "Initializing provider for " + appName );
+        // Create the top level containers
+        createContainers();
+        try {
+            VnfSdnUtil.loadProperties();
+        } catch (Exception e) {
+            log.error("Caught Exception while trying to load properties file");
+        }
+        rpcRegistration = rpcRegistry.addRpcImplementation(VNFAPIService.class, this);
+
+        log.info( "Initialization complete for " + appName );
+    }
+
+    private void createContainers() {
+        final WriteTransaction t = dataBroker.newReadWriteTransaction();
+
+        // Create the Vnfs container
+        t.merge(LogicalDatastoreType.CONFIGURATION, InstanceIdentifier.create(Vnfs.class),
+                new VnfsBuilder().build());
+        t.merge(LogicalDatastoreType.OPERATIONAL, InstanceIdentifier.create(Vnfs.class),
+                new VnfsBuilder().build());
+
+        // Create the PreloadVnfs container
+        t.merge(LogicalDatastoreType.CONFIGURATION, InstanceIdentifier.create(PreloadVnfs.class),
+                new PreloadVnfsBuilder().build());
+        t.merge(LogicalDatastoreType.OPERATIONAL, InstanceIdentifier.create(PreloadVnfs.class),
+                new PreloadVnfsBuilder().build());
+
+        // 1610 Create the PreloadVnfInstances container
+        t.merge(LogicalDatastoreType.CONFIGURATION, InstanceIdentifier.create(PreloadVnfInstances.class),
+                new PreloadVnfInstancesBuilder().build());
+        t.merge(LogicalDatastoreType.OPERATIONAL, InstanceIdentifier.create(PreloadVnfInstances.class),
+                new PreloadVnfInstancesBuilder().build());
+
+        // 1610 Create the VnfInstances container
+        t.merge(LogicalDatastoreType.CONFIGURATION, InstanceIdentifier.create(VnfInstances.class),
+                new VnfInstancesBuilder().build());
+        t.merge(LogicalDatastoreType.OPERATIONAL, InstanceIdentifier.create(VnfInstances.class),
+                new VnfInstancesBuilder().build());
+
+        // 1610 Create the PreloadVfModules container
+        t.merge(LogicalDatastoreType.CONFIGURATION, InstanceIdentifier.create(PreloadVfModules.class),
+                new PreloadVfModulesBuilder().build());
+        t.merge(LogicalDatastoreType.OPERATIONAL, InstanceIdentifier.create(PreloadVfModules.class),
+                new PreloadVfModulesBuilder().build());
+
+        // 1610 Create the VfModules container
+        t.merge(LogicalDatastoreType.CONFIGURATION, InstanceIdentifier.create(VfModules.class),
+                new VfModulesBuilder().build());
+        t.merge(LogicalDatastoreType.OPERATIONAL, InstanceIdentifier.create(VfModules.class),
+                new VfModulesBuilder().build());
+
+        try {
+            CheckedFuture<Void, TransactionCommitFailedException> checkedFuture = t.submit();
+            checkedFuture.get();
+            log.info("Create Containers succeeded!: ");
+
+        } catch (InterruptedException | ExecutionException e) {
+            log.error("Create Containers Failed: " + e);
+            e.printStackTrace();
+        }
+    }
+
+
+
+    protected void initializeChild() {
+        //Override if you have custom initialization intelligence
+    }
+
+    @Override
+    public void close() throws Exception {
+        log.info( "Closing provider for " + appName );
+        executor.shutdown();
+        rpcRegistration.close();
+        // dclServices.close();
+        log.info( "Successfully closed provider for " + appName );
+    }
+
+    // On data change not used
+    @Override
+    public void onDataChanged(
+            AsyncDataChangeEvent<InstanceIdentifier<?>, DataObject> change) {
+        boolean changed = false;
+        log.info("   IN ON DATA CHANGE: ");
+        WriteTransaction writeTransaction = dataBroker
+                .newWriteOnlyTransaction();
+
+        DataObject updatedSubTree = change.getUpdatedSubtree();
+
+        if (updatedSubTree != null) {
+            if (log.isDebugEnabled())
+            {
+                log.debug("updatedSubTree was non-null:" + updatedSubTree);
+            }
+            if ( updatedSubTree instanceof Vnfs ) {
+                ArrayList<VnfList> vnfList = (ArrayList<VnfList>) ((Vnfs) updatedSubTree).getVnfList();
+                if (vnfList != null) {
+                    for (VnfList entry : vnfList) {
+                        ServiceData serviceData = entry.getServiceData();
+                        ServiceStatus serviceStatus = entry.getServiceStatus();
+                        if (serviceData != null && serviceStatus != null) {
+                            //
+                            // ServiceData change detected, check the AckFinal indicator and request-status to see if we need to proceed.
+                            //
+                            if ((! "Y".equals(serviceStatus.getFinalIndicator())) && (RequestStatus.Synccomplete.equals(serviceStatus.getRequestStatus()))) {
+                                if (log.isDebugEnabled())
+                                {
+                                    log.debug("Final Indicator is not Y, calling handleServiceDataUpdated");
+                                }
+                                //handleServiceDataUpdated(serviceData, serviceStatus, writeTransaction);
+                                changed = true;
+                            }
+                        }
+                    }
+                }
+            }
+            if ( updatedSubTree instanceof PreloadVnfs ) {
+                ArrayList<VnfPreloadList> vnfList = (ArrayList<VnfPreloadList>) ((PreloadVnfs) updatedSubTree).getVnfPreloadList();
+                if (vnfList != null) {
+                    for (VnfPreloadList entry : vnfList) {
+                        PreloadData preloadData = entry.getPreloadData();
+                        if (preloadData != null ) {
+                            //
+                            // PreloadData change detected
+                            //
+                            // handlePreloadDataUpdated(preloadData, writeTransaction);
+                            changed = true;
+                        }
+                    }
+                }
+            }
+            //1610
+            if ( updatedSubTree instanceof PreloadVnfInstances ) {
+                ArrayList<VnfInstancePreloadList> vnfInstanceList = (ArrayList<VnfInstancePreloadList>) ((PreloadVnfInstances) updatedSubTree).getVnfInstancePreloadList();
+                if (vnfInstanceList != null) {
+                    for (VnfInstancePreloadList entry : vnfInstanceList) {
+                        VnfInstancePreloadData vnfInstancePreloadData = entry.getVnfInstancePreloadData();
+                        if (vnfInstancePreloadData != null ) {
+                            //
+                            // PreloadData change detected
+                            //
+                            // handlePreloadDataUpdated(preloadData, writeTransaction);
+                            changed = true;
+                        }
+                    }
+                }
+            }
+            //1610
+            if ( updatedSubTree instanceof VnfInstances ) {
+                ArrayList<VnfInstanceList> vnfInstanceList = (ArrayList<VnfInstanceList>) ((VnfInstances) updatedSubTree).getVnfInstanceList();
+                if (vnfInstanceList != null) {
+                    for (VnfInstanceList entry : vnfInstanceList) {
+                        VnfInstanceServiceData vnfInstanceServiceData = entry.getVnfInstanceServiceData();
+                        ServiceStatus serviceStatus = entry.getServiceStatus();
+                        if (vnfInstanceServiceData != null && serviceStatus != null) {
+                            //
+                            // VnfInstanceServiceData change detected, check the AckFinal indicator and request-status to see if we need to proceed.
+                            //
+                            if ((! "Y".equals(serviceStatus.getFinalIndicator())) && (RequestStatus.Synccomplete.equals(serviceStatus.getRequestStatus()))) {
+                                if (log.isDebugEnabled())
+                                {
+                                    log.debug("Final Indicator is not Y, calling handleServiceDataUpdated");
+                                }
+                                //handleServiceDataUpdated(serviceData, serviceStatus, writeTransaction);
+                                changed = true;
+                            }
+                        }
+                    }
+                }
+            }
+            //1610
+            if ( updatedSubTree instanceof PreloadVfModules ) {
+                ArrayList<VfModulePreloadList> vnfInstanceList = (ArrayList<VfModulePreloadList>) ((PreloadVfModules) updatedSubTree).getVfModulePreloadList();
+                if (vnfInstanceList != null) {
+                    for (VfModulePreloadList entry : vnfInstanceList) {
+                        VfModulePreloadData vnfInstancePreloadData = entry.getVfModulePreloadData();
+                        if (vnfInstancePreloadData != null ) {
+                            //
+                            // PreloadData change detected
+                            //
+                            // handlePreloadDataUpdated(preloadData, writeTransaction);
+                            changed = true;
+                        }
+                    }
+                }
+            }
+            //1610
+            if ( updatedSubTree instanceof VfModules ) {
+                ArrayList<VfModuleList> vfModuleList = (ArrayList<VfModuleList>) ((VfModules) updatedSubTree).getVfModuleList();
+                if (vfModuleList != null) {
+                    for (VfModuleList entry : vfModuleList) {
+                        VfModuleServiceData vfModuleServiceData = entry.getVfModuleServiceData();
+                        ServiceStatus serviceStatus = entry.getServiceStatus();
+                        if (vfModuleServiceData != null && serviceStatus != null) {
+                            //
+                            // VfModuleServiceData change detected, check the AckFinal indicator and request-status to see if we need to proceed.
+                            //
+                            if ((! "Y".equals(serviceStatus.getFinalIndicator())) && (RequestStatus.Synccomplete.equals(serviceStatus.getRequestStatus()))) {
+                                if (log.isDebugEnabled())
+                                {
+                                    log.debug("Final Indicator is not Y, calling handleServiceDataUpdated");
+                                }
+                                //handleServiceDataUpdated(serviceData, serviceStatus, writeTransaction);
+                                changed = true;
+                            }
+                        }
+                    }
+                }
+            }
+        }
+        // Do the write transaction only if something changed.
+        if (changed) {
+            CheckedFuture<Void, TransactionCommitFailedException> checkedFuture = writeTransaction
+                    .submit();
+            Futures.addCallback(checkedFuture, new FutureCallback<Void>() {
+
+                @Override
+                public void onSuccess(Void arg0) {
+                    log.debug("Successfully updated Service Status");
+                }
+
+                @Override
+                public void onFailure(Throwable ex) {
+                    log.debug(
+                            "Failed updating Service Status",
+                            ex);
+                }
+            }, executor);
+        }
+    }
+
+    private static class Iso8601Util
+    {
+        private static TimeZone tz = TimeZone.getTimeZone("UTC");
+        private static DateFormat df = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'");
+
+        static
+        {
+            df.setTimeZone(tz);
+        }
+
+        private static String now()
+        {
+            return df.format(new Date());
+        }
+    }
+
+    private void setServiceStatus(ServiceStatusBuilder serviceStatusBuilder, String errorCode, String errorMessage, String ackFinal)
+    {
+        serviceStatusBuilder.setResponseCode(errorCode);
+        serviceStatusBuilder.setResponseMessage(errorMessage);
+        serviceStatusBuilder.setFinalIndicator(ackFinal);
+        serviceStatusBuilder.setResponseTimestamp(Iso8601Util.now());
+    }
+
+    private void setServiceStatus(ServiceStatusBuilder serviceStatusBuilder,  RequestInformation requestInformation)
+    {
+        if (requestInformation != null && requestInformation.getRequestAction() != null) {
+            switch (requestInformation.getRequestAction())
+            {
+            case VNFActivateRequest:
+                serviceStatusBuilder.setVnfsdnAction(VnfsdnAction.VNFActivateRequest);
+                break;
+            case ChangeVNFActivateRequest:
+                serviceStatusBuilder.setVnfsdnAction(VnfsdnAction.ChangeVNFActivateRequest);
+                break;
+            case DisconnectVNFRequest:
+                serviceStatusBuilder.setVnfsdnAction(VnfsdnAction.DisconnectVNFRequest);
+                break;
+            case PreloadVNFRequest:
+                serviceStatusBuilder.setVnfsdnAction(VnfsdnAction.PreloadVNFRequest);
+                break;
+            case DeletePreloadVNFRequest:
+                serviceStatusBuilder.setVnfsdnAction(VnfsdnAction.DeletePreloadVNFRequest);
+                break;
+        // 1610 vnf-instance Requests
+            case VnfInstanceActivateRequest:
+                serviceStatusBuilder.setVnfsdnAction(VnfsdnAction.VnfInstanceActivateRequest);
+                break;
+            case ChangeVnfInstanceActivateRequest:
+                serviceStatusBuilder.setVnfsdnAction(VnfsdnAction.ChangeVnfInstanceActivateRequest);
+                break;
+            case DisconnectVnfInstanceRequest:
+                serviceStatusBuilder.setVnfsdnAction(VnfsdnAction.DisconnectVnfInstanceRequest);
+                break;
+            case PreloadVnfInstanceRequest:
+                serviceStatusBuilder.setVnfsdnAction(VnfsdnAction.PreloadVnfInstanceRequest);
+                break;
+        // 1610 vf-module Requests
+            case VfModuleActivateRequest:
+                serviceStatusBuilder.setVnfsdnAction(VnfsdnAction.VfModuleActivateRequest);
+                break;
+            case ChangeVfModuleActivateRequest:
+                serviceStatusBuilder.setVnfsdnAction(VnfsdnAction.ChangeVfModuleActivateRequest);
+                break;
+            case DisconnectVfModuleRequest:
+                serviceStatusBuilder.setVnfsdnAction(VnfsdnAction.DisconnectVfModuleRequest);
+                break;
+            case PreloadVfModuleRequest:
+                serviceStatusBuilder.setVnfsdnAction(VnfsdnAction.PreloadVfModuleRequest);
+                break;
+            default:
+                log.error("Unknown RequestAction: " + requestInformation.getRequestAction() );
+                break;
+            };
+        }
+        if (requestInformation != null && requestInformation.getRequestSubAction() != null) {
+            switch (requestInformation.getRequestSubAction())
+            {
+            case SUPP:
+                serviceStatusBuilder.setVnfsdnSubaction(VnfsdnSubaction.SUPP);
+                break;
+            case CANCEL:
+                serviceStatusBuilder.setVnfsdnSubaction(VnfsdnSubaction.CANCEL);
+                break;
+            default:
+                log.error("Unknown RequestSubAction: " + requestInformation.getRequestSubAction() );
+                break;
+            };
+        }
+    }
+
+    private void setServiceStatus(ServiceStatusBuilder serviceStatusBuilder,  SdncRequestHeader requestHeader)
+    {
+        if (requestHeader != null && requestHeader.getSvcAction() != null) {
+            switch (requestHeader.getSvcAction())
+            {
+            case Reserve:
+                serviceStatusBuilder.setRpcAction(RpcAction.Reserve);
+                break;
+            case Activate:
+                serviceStatusBuilder.setRpcAction(RpcAction.Activate);
+                break;
+            case Assign:
+                serviceStatusBuilder.setRpcAction(RpcAction.Assign);
+                break;
+            case Delete:
+                serviceStatusBuilder.setRpcAction(RpcAction.Delete);
+                break;
+            case Changeassign:
+                serviceStatusBuilder.setRpcAction(RpcAction.Changeassign);
+                break;
+            case Changedelete:
+                serviceStatusBuilder.setRpcAction(RpcAction.Changedelete);
+                break;
+            case Rollback:
+                serviceStatusBuilder.setRpcAction(RpcAction.Rollback);
+                break;
+            default:
+                log.error("Unknown SvcAction: " + requestHeader.getSvcAction() );
+                break;
+            };
+        }
+    }
+
+    private void getServiceData(String siid, ServiceDataBuilder serviceDataBuilder)
+    {
+        // default to config
+        getServiceData(siid,serviceDataBuilder,LogicalDatastoreType.CONFIGURATION);
+    }
+
+
+    private void getServiceData(String siid, ServiceDataBuilder serviceDataBuilder, LogicalDatastoreType type)
+    {
+        // See if any data exists yet for this siid, if so grab it.
+        InstanceIdentifier serviceInstanceIdentifier =
+                InstanceIdentifier.<Vnfs>builder(Vnfs.class)
+                .child(VnfList.class, new VnfListKey(siid)).toInstance();
+        ReadOnlyTransaction readTx = dataBroker.newReadOnlyTransaction();
+        Optional<VnfList> data = null;
+        try {
+            data = (Optional<VnfList>) readTx.read(type, serviceInstanceIdentifier).get();
+        } catch (InterruptedException | ExecutionException e) {
+            log.error("Caught Exception reading MD-SAL ("+type+") for ["+siid+"] " ,e);
+        }
+
+        if ( data.isPresent()) {
+            ServiceData serviceData = (ServiceData) data.get().getServiceData();
+            if (serviceData != null) {
+                log.info("Read MD-SAL ("+type+") data for ["+siid+"] ServiceData: " + serviceData);
+                serviceDataBuilder.setSdncRequestHeader(serviceData.getSdncRequestHeader());
+                serviceDataBuilder.setRequestInformation(serviceData.getRequestInformation());
+                serviceDataBuilder.setServiceInformation(serviceData.getServiceInformation());
+                serviceDataBuilder.setVnfRequestInformation(serviceData.getVnfRequestInformation());
+                serviceDataBuilder.setVnfId(serviceData.getVnfId());
+                serviceDataBuilder.setVnfTopologyInformation(serviceData.getVnfTopologyInformation());
+                serviceDataBuilder.setOperStatus(serviceData.getOperStatus());
+            } else {
+                log.info("No service-data found in MD-SAL ("+type+") for ["+siid+"] ");
+            }
+        } else {
+            log.info("No data found in MD-SAL ("+type+") for ["+siid+"] ");
+        }
+    }
+
+    //1610 vnf-instance
+    private void getVnfInstanceServiceData(String siid, VnfInstanceServiceDataBuilder vnfInstanceServiceDataBuilder)
+    {
+        // default to config
+        getVnfInstanceServiceData(siid,vnfInstanceServiceDataBuilder,LogicalDatastoreType.CONFIGURATION);
+    }
+    //1610 vnf-instance
+    private void getVnfInstanceServiceData(String siid, VnfInstanceServiceDataBuilder vnfInstanceServiceDataBuilder, LogicalDatastoreType type)
+    {
+        // See if any data exists yet for this siid, if so grab it.
+        InstanceIdentifier vnfInstanceIdentifier =
+                InstanceIdentifier.<VnfInstances>builder(VnfInstances.class)
+                .child(VnfInstanceList.class, new VnfInstanceListKey(siid)).toInstance();
+        ReadOnlyTransaction readTx = dataBroker.newReadOnlyTransaction();
+        Optional<VnfInstanceList> data = null;
+        try {
+            data = (Optional<VnfInstanceList>) readTx.read(type, vnfInstanceIdentifier).get();
+        } catch (InterruptedException | ExecutionException e) {
+            log.error("Caught Exception reading MD-SAL ("+type+") for ["+siid+"] " ,e);
+        }
+
+        if ( data.isPresent()) {
+            VnfInstanceServiceData vnfInstanceServiceData = (VnfInstanceServiceData) data.get().getVnfInstanceServiceData();
+            if (vnfInstanceServiceData != null) {
+                log.info("Read MD-SAL ("+type+") data for ["+siid+"] VnfInstanceServiceData: " + vnfInstanceServiceData);
+                vnfInstanceServiceDataBuilder.setSdncRequestHeader(vnfInstanceServiceData.getSdncRequestHeader());
+                vnfInstanceServiceDataBuilder.setRequestInformation(vnfInstanceServiceData.getRequestInformation());
+                vnfInstanceServiceDataBuilder.setServiceInformation(vnfInstanceServiceData.getServiceInformation());
+                vnfInstanceServiceDataBuilder.setVnfInstanceRequestInformation(vnfInstanceServiceData.getVnfInstanceRequestInformation());
+                vnfInstanceServiceDataBuilder.setVnfInstanceId(vnfInstanceServiceData.getVnfInstanceId());
+                vnfInstanceServiceDataBuilder.setVnfInstanceTopologyInformation(vnfInstanceServiceData.getVnfInstanceTopologyInformation());
+                vnfInstanceServiceDataBuilder.setOperStatus(vnfInstanceServiceData.getOperStatus());
+            } else {
+                log.info("No vnf-instance-service-data found in MD-SAL ("+type+") for ["+siid+"] ");
+            }
+        } else {
+            log.info("No data found in MD-SAL ("+type+") for ["+siid+"] ");
+        }
+    }
+
+    //1610 vf-module
+    private void getVfModuleServiceData(String siid, VfModuleServiceDataBuilder vfModuleServiceDataBuilder)
+    {
+        // default to config
+        getVfModuleServiceData(siid,vfModuleServiceDataBuilder,LogicalDatastoreType.CONFIGURATION);
+    }
+    //1610 vf-module
+    private void getVfModuleServiceData(String siid, VfModuleServiceDataBuilder vfModuleServiceDataBuilder, LogicalDatastoreType type)
+    {
+        // See if any data exists yet for this siid, if so grab it.
+        InstanceIdentifier vfModuleIdentifier =
+                InstanceIdentifier.<VfModules>builder(VfModules.class)
+                .child(VfModuleList.class, new VfModuleListKey(siid)).toInstance();
+        ReadOnlyTransaction readTx = dataBroker.newReadOnlyTransaction();
+        Optional<VfModuleList> data = null;
+        try {
+            data = (Optional<VfModuleList>) readTx.read(type, vfModuleIdentifier).get();
+        } catch (InterruptedException | ExecutionException e) {
+            log.error("Caught Exception reading MD-SAL ("+type+") for ["+siid+"] " ,e);
+        }
+
+        if ( data.isPresent()) {
+            VfModuleServiceData vfModuleServiceData = (VfModuleServiceData) data.get().getVfModuleServiceData();
+            if (vfModuleServiceData != null) {
+                log.info("Read MD-SAL ("+type+") data for ["+siid+"] VfModuleServiceData: " + vfModuleServiceData);
+                vfModuleServiceDataBuilder.setSdncRequestHeader(vfModuleServiceData.getSdncRequestHeader());
+                vfModuleServiceDataBuilder.setRequestInformation(vfModuleServiceData.getRequestInformation());
+                vfModuleServiceDataBuilder.setServiceInformation(vfModuleServiceData.getServiceInformation());
+                vfModuleServiceDataBuilder.setVfModuleRequestInformation(vfModuleServiceData.getVfModuleRequestInformation());
+                vfModuleServiceDataBuilder.setVfModuleId(vfModuleServiceData.getVfModuleId());
+                vfModuleServiceDataBuilder.setVfModuleTopologyInformation(vfModuleServiceData.getVfModuleTopologyInformation());
+                vfModuleServiceDataBuilder.setOperStatus(vfModuleServiceData.getOperStatus());
+            } else {
+                log.info("No vf-module-service-data found in MD-SAL ("+type+") for ["+siid+"] ");
+            }
+        } else {
+            log.info("No data found in MD-SAL ("+type+") for ["+siid+"] ");
+        }
+    }
+
+
+    private void getPreloadData(String vnf_name, String vnf_type, PreloadDataBuilder preloadDataBuilder)
+    {
+        // default to config
+        getPreloadData(vnf_name, vnf_type ,preloadDataBuilder,LogicalDatastoreType.CONFIGURATION);
+    }
+
+    private void getPreloadData(String preload_name, String preload_type, PreloadDataBuilder preloadDataBuilder, LogicalDatastoreType type)
+    {
+        // See if any data exists yet for this name/type, if so grab it.
+        InstanceIdentifier preloadInstanceIdentifier =
+                InstanceIdentifier.<PreloadVnfs>builder(PreloadVnfs.class)
+                .child(VnfPreloadList.class, new VnfPreloadListKey(preload_name, preload_type)).toInstance();
+        ReadOnlyTransaction readTx = dataBroker.newReadOnlyTransaction();
+        Optional<VnfPreloadList> data = null;
+        try {
+            data = (Optional<VnfPreloadList>) readTx.read(type, preloadInstanceIdentifier).get();
+        } catch (InterruptedException | ExecutionException e) {
+            log.error("Caught Exception reading MD-SAL ("+type+") for ["+preload_name+","+preload_type+"] " ,e);
+        }
+
+        if ( data.isPresent()) {
+            PreloadData preloadData = (PreloadData) data.get().getPreloadData();
+            if (preloadData != null) {
+                log.info("Read MD-SAL ("+type+") data for ["+preload_name+","+preload_type+"] PreloadData: " + preloadData);
+                preloadDataBuilder.setVnfTopologyInformation(preloadData.getVnfTopologyInformation());
+                preloadDataBuilder.setNetworkTopologyInformation(preloadData.getNetworkTopologyInformation());
+                preloadDataBuilder.setOperStatus(preloadData.getOperStatus());
+            } else {
+                log.info("No preload-data found in MD-SAL ("+type+") for ["+preload_name+","+preload_type+"] ");
+            }
+        } else {
+            log.info("No data found in MD-SAL ("+type+") for ["+preload_name+","+preload_type+"] ");
+        }
+    }
+
+    //1610 preload-vnf-instance
+    private void getVnfInstancePreloadData(String vnf_name, String vnf_type, VnfInstancePreloadDataBuilder preloadDataBuilder)
+    {
+        // default to config
+        getVnfInstancePreloadData(vnf_name, vnf_type ,preloadDataBuilder,LogicalDatastoreType.CONFIGURATION);
+    }
+
+    //1610 preload-vnf-instance
+    private void getVnfInstancePreloadData(String preload_name, String preload_type, VnfInstancePreloadDataBuilder preloadDataBuilder, LogicalDatastoreType type)
+    {
+        // See if any data exists yet for this name/type, if so grab it.
+        InstanceIdentifier preloadInstanceIdentifier =
+                InstanceIdentifier.<PreloadVnfInstances>builder(PreloadVnfInstances.class)
+                .child(VnfInstancePreloadList.class, new VnfInstancePreloadListKey(preload_name, preload_type)).toInstance();
+        ReadOnlyTransaction readTx = dataBroker.newReadOnlyTransaction();
+        Optional<VnfInstancePreloadList> data = null;
+        try {
+            data = (Optional<VnfInstancePreloadList>) readTx.read(type, preloadInstanceIdentifier).get();
+        } catch (InterruptedException | ExecutionException e) {
+            log.error("Caught Exception reading MD-SAL ("+type+") for ["+preload_name+","+preload_type+"] " ,e);
+        }
+
+        if ( data.isPresent()) {
+            VnfInstancePreloadData preloadData = (VnfInstancePreloadData) data.get().getVnfInstancePreloadData();
+            if (preloadData != null) {
+                log.info("Read MD-SAL ("+type+") data for ["+preload_name+","+preload_type+"] VnfInstancePreloadData: " + preloadData);
+                preloadDataBuilder.setVnfInstanceTopologyInformation(preloadData.getVnfInstanceTopologyInformation());
+                preloadDataBuilder.setOperStatus(preloadData.getOperStatus());
+            } else {
+                log.info("No vnf-instance-preload-data found in MD-SAL ("+type+") for ["+preload_name+","+preload_type+"] ");
+            }
+        } else {
+            log.info("No data found in MD-SAL ("+type+") for ["+preload_name+","+preload_type+"] ");
+        }
+    }
+
+    // 1610 preload-vf-module
+    private void getVfModulePreloadData(String vnf_name, String vnf_type, VfModulePreloadDataBuilder preloadDataBuilder)
+    {
+        // default to config
+        getVfModulePreloadData(vnf_name, vnf_type ,preloadDataBuilder,LogicalDatastoreType.CONFIGURATION);
+    }
+
+    private void getVfModulePreloadData(String preload_name, String preload_type, VfModulePreloadDataBuilder preloadDataBuilder, LogicalDatastoreType type)
+    {
+        // See if any data exists yet for this name/type, if so grab it.
+        InstanceIdentifier preloadInstanceIdentifier =
+                InstanceIdentifier.<PreloadVfModules>builder(PreloadVfModules.class)
+                .child(VfModulePreloadList.class, new VfModulePreloadListKey(preload_name, preload_type)).toInstance();
+        ReadOnlyTransaction readTx = dataBroker.newReadOnlyTransaction();
+        Optional<VfModulePreloadList> data = null;
+        try {
+            data = (Optional<VfModulePreloadList>) readTx.read(type, preloadInstanceIdentifier).get();
+        } catch (InterruptedException | ExecutionException e) {
+            log.error("Caught Exception reading MD-SAL ("+type+") for ["+preload_name+","+preload_type+"] " ,e);
+        }
+
+        if ( data.isPresent()) {
+            VfModulePreloadData preloadData = (VfModulePreloadData) data.get().getVfModulePreloadData();
+            if (preloadData != null) {
+                log.info("Read MD-SAL ("+type+") data for ["+preload_name+","+preload_type+"] VfModulePreloadData: " + preloadData);
+                preloadDataBuilder.setVfModuleTopologyInformation(preloadData.getVfModuleTopologyInformation());
+                preloadDataBuilder.setOperStatus(preloadData.getOperStatus());
+            } else {
+                log.info("No preload-data found in MD-SAL ("+type+") for ["+preload_name+","+preload_type+"] ");
+            }
+        } else {
+            log.info("No data found in MD-SAL ("+type+") for ["+preload_name+","+preload_type+"] ");
+        }
+    }
+
+    private void SaveVnfList (final VnfList entry, boolean merge, LogicalDatastoreType storeType) throws IllegalStateException {
+        // Each entry will be identifiable by a unique key, we have to create that identifier
+        InstanceIdentifier.InstanceIdentifierBuilder<VnfList> vnfListIdBuilder =
+                InstanceIdentifier.<Vnfs>builder(Vnfs.class)
+                .child(VnfList.class, entry.getKey());
+        InstanceIdentifier<VnfList> path = vnfListIdBuilder.toInstance();
+
+        int tries = 2;
+        while(true) {
+            try {
+                WriteTransaction tx = dataBroker.newWriteOnlyTransaction();
+                if (merge) {
+                    tx.merge(storeType, path, entry);
+                } else {
+                    tx.put(storeType, path, entry);
+                }
+                tx.submit().checkedGet();
+                log.debug("Update DataStore succeeded");
+                break;
+            } catch (final TransactionCommitFailedException e) {
+                if(e instanceof OptimisticLockFailedException) {
+                    if(--tries <= 0) {
+                        log.debug("Got OptimisticLockFailedException on last try - failing ");
+                        throw new IllegalStateException(e);
+                    }
+                    log.debug("Got OptimisticLockFailedException - trying again ");
+                } else {
+                    log.debug("Update DataStore failed");
+                    throw new IllegalStateException(e);
+                }
+            }
+        }
+
+    }
+    private void DeleteVnfList (final VnfList entry, LogicalDatastoreType storeType) throws IllegalStateException {
+        // Each entry will be identifiable by a unique key, we have to create that identifier
+        InstanceIdentifier.InstanceIdentifierBuilder<VnfList> vnfListIdBuilder =
+                InstanceIdentifier.<Vnfs>builder(Vnfs.class)
+                .child(VnfList.class, entry.getKey());
+        InstanceIdentifier<VnfList> path = vnfListIdBuilder.toInstance();
+
+        int tries = 2;
+        while (true) {
+            try {
+                WriteTransaction tx = dataBroker.newWriteOnlyTransaction();
+                tx.delete(storeType, path);
+                tx.submit().checkedGet();
+                log.debug("DataStore delete succeeded");
+                break;
+            } catch (final TransactionCommitFailedException e) {
+                if (e instanceof OptimisticLockFailedException) {
+                    if (--tries <= 0) {
+                        log.debug("Got OptimisticLockFailedException on last try - failing ");
+                        throw new IllegalStateException(e);
+                    }
+                    log.debug("Got OptimisticLockFailedException - trying again ");
+                } else {
+                    log.debug("Delete DataStore failed");
+                    throw new IllegalStateException(e);
+                }
+            }
+        }
+    }
+
+    //1610 vnf-instance
+    private void SaveVnfInstanceList (final VnfInstanceList entry, boolean merge, LogicalDatastoreType storeType) throws IllegalStateException {
+        // Each entry will be identifiable by a unique key, we have to create that identifier
+        InstanceIdentifier.InstanceIdentifierBuilder<VnfInstanceList> vnfInstanceListIdBuilder =
+                InstanceIdentifier.<VnfInstances>builder(VnfInstances.class)
+                .child(VnfInstanceList.class, entry.getKey());
+        InstanceIdentifier<VnfInstanceList> path = vnfInstanceListIdBuilder.toInstance();
+
+        int tries = 2;
+        while(true) {
+            try {
+                WriteTransaction tx = dataBroker.newWriteOnlyTransaction();
+                if (merge) {
+                    tx.merge(storeType, path, entry);
+                } else {
+                    tx.put(storeType, path, entry);
+                }
+                tx.submit().checkedGet();
+                log.debug("Update DataStore succeeded");
+                break;
+            } catch (final TransactionCommitFailedException e) {
+                if(e instanceof OptimisticLockFailedException) {
+                    if(--tries <= 0) {
+                        log.debug("Got OptimisticLockFailedException on last try - failing ");
+                        throw new IllegalStateException(e);
+                    }
+                    log.debug("Got OptimisticLockFailedException - trying again ");
+                } else {
+                    log.debug("Update DataStore failed");
+                    throw new IllegalStateException(e);
+                }
+            }
+        }
+    }
+
+    //1610 vf-module
+    private void SaveVfModuleList (final VfModuleList entry, boolean merge, LogicalDatastoreType storeType) throws IllegalStateException {
+        // Each entry will be identifiable by a unique key, we have to create that identifier
+        InstanceIdentifier.InstanceIdentifierBuilder<VfModuleList> vfModuleListIdBuilder =
+                InstanceIdentifier.<VfModules>builder(VfModules.class)
+                .child(VfModuleList.class, entry.getKey());
+        InstanceIdentifier<VfModuleList> path = vfModuleListIdBuilder.toInstance();
+
+        int tries = 2;
+        while(true) {
+            try {
+                WriteTransaction tx = dataBroker.newWriteOnlyTransaction();
+                if (merge) {
+                    tx.merge(storeType, path, entry);
+                } else {
+                    tx.put(storeType, path, entry);
+                }
+                tx.submit().checkedGet();
+                log.debug("Update DataStore succeeded");
+                break;
+            } catch (final TransactionCommitFailedException e) {
+                if(e instanceof OptimisticLockFailedException) {
+                    if(--tries <= 0) {
+                        log.debug("Got OptimisticLockFailedException on last try - failing ");
+                        throw new IllegalStateException(e);
+                    }
+                    log.debug("Got OptimisticLockFailedException - trying again ");
+                } else {
+                    log.debug("Update DataStore failed");
+                    throw new IllegalStateException(e);
+                }
+            }
+        }
+    }
+
+    private void SavePreloadList(final VnfPreloadList entry, boolean merge, LogicalDatastoreType storeType) throws IllegalStateException{
+
+        // Each entry will be identifiable by a unique key, we have to create that identifier
+        InstanceIdentifier.InstanceIdentifierBuilder<VnfPreloadList> vnfListIdBuilder =
+                InstanceIdentifier.<PreloadVnfs>builder(PreloadVnfs.class)
+                .child(VnfPreloadList.class, entry.getKey());
+        InstanceIdentifier<VnfPreloadList> path = vnfListIdBuilder.toInstance();
+        int tries = 2;
+        while(true) {
+            try {
+                WriteTransaction tx = dataBroker.newWriteOnlyTransaction();
+                if (merge) {
+                    tx.merge(storeType, path, entry);
+                } else {
+                    tx.put(storeType, path, entry);
+                }
+                tx.submit().checkedGet();
+                log.debug("Update DataStore succeeded");
+                break;
+            } catch (final TransactionCommitFailedException e) {
+                if(e instanceof OptimisticLockFailedException) {
+                    if(--tries <= 0) {
+                        log.debug("Got OptimisticLockFailedException on last try - failing ");
+                        throw new IllegalStateException(e);
+                    }
+                    log.debug("Got OptimisticLockFailedException - trying again ");
+                } else {
+                    log.debug("Update DataStore failed");
+                    throw new IllegalStateException(e);
+                }
+            }
+        }
+    }
+
+    //1610 preload vnf-instance
+    private void SaveVnfInstancePreloadList(final VnfInstancePreloadList entry, boolean merge, LogicalDatastoreType storeType) throws IllegalStateException{
+
+        // Each entry will be identifiable by a unique key, we have to create that identifier
+        InstanceIdentifier.InstanceIdentifierBuilder<VnfInstancePreloadList> vnfInstanceListIdBuilder =
+                InstanceIdentifier.<PreloadVnfInstances>builder(PreloadVnfInstances.class)
+                .child(VnfInstancePreloadList.class, entry.getKey());
+        InstanceIdentifier<VnfInstancePreloadList> path = vnfInstanceListIdBuilder.toInstance();
+        int tries = 2;
+        while(true) {
+            try {
+                WriteTransaction tx = dataBroker.newWriteOnlyTransaction();
+                if (merge) {
+                    tx.merge(storeType, path, entry);
+                } else {
+                    tx.put(storeType, path, entry);
+                }
+                tx.submit().checkedGet();
+                log.debug("Update DataStore succeeded");
+                break;
+            } catch (final TransactionCommitFailedException e) {
+                if(e instanceof OptimisticLockFailedException) {
+                    if(--tries <= 0) {
+                        log.debug("Got OptimisticLockFailedException on last try - failing ");
+                        throw new IllegalStateException(e);
+                    }
+                    log.debug("Got OptimisticLockFailedException - trying again ");
+                } else {
+                    log.debug("Update DataStore failed");
+                    throw new IllegalStateException(e);
+                }
+            }
+        }
+    }
+
+    //1610 preload vf-module
+    private void SaveVfModulePreloadList(final VfModulePreloadList entry, boolean merge, LogicalDatastoreType storeType) throws IllegalStateException{
+
+        // Each entry will be identifiable by a unique key, we have to create that identifier
+        InstanceIdentifier.InstanceIdentifierBuilder<VfModulePreloadList> vfModuleListIdBuilder =
+                InstanceIdentifier.<PreloadVfModules>builder(PreloadVfModules.class)
+                .child(VfModulePreloadList.class, entry.getKey());
+        InstanceIdentifier<VfModulePreloadList> path = vfModuleListIdBuilder.toInstance();
+        int tries = 2;
+        while(true) {
+            try {
+                WriteTransaction tx = dataBroker.newWriteOnlyTransaction();
+                if (merge) {
+                    tx.merge(storeType, path, entry);
+                } else {
+                    tx.put(storeType, path, entry);
+                }
+                tx.submit().checkedGet();
+                log.debug("Update DataStore succeeded");
+                break;
+            } catch (final TransactionCommitFailedException e) {
+                if(e instanceof OptimisticLockFailedException) {
+                    if(--tries <= 0) {
+                        log.debug("Got OptimisticLockFailedException on last try - failing ");
+                        throw new IllegalStateException(e);
+                    }
+                    log.debug("Got OptimisticLockFailedException - trying again ");
+                } else {
+                    log.debug("Update DataStore failed");
+                    throw new IllegalStateException(e);
+                }
+            }
+        }
+    }
+
+    //1610 vnf-instance-topology-operation
+    @Override
+    public Future<RpcResult<VnfInstanceTopologyOperationOutput>> vnfInstanceTopologyOperation(
+            VnfInstanceTopologyOperationInput input) {
+
+        final String SVC_OPERATION = "vnf-instance-topology-operation";
+        VnfInstanceServiceData vnfInstanceServiceData = null;
+        ServiceStatusBuilder serviceStatusBuilder = new ServiceStatusBuilder();
+        Properties parms = new Properties();
+
+        log.info( SVC_OPERATION +" called." );
+        // create a new response object
+        VnfInstanceTopologyOperationOutputBuilder responseBuilder = new VnfInstanceTopologyOperationOutputBuilder();
+
+        //if(input == null || input.getVnfInstanceRequestInformation().getVnfInstanceTopologyIdentifier().getVnfInstanceId() == null )
+        if(input == null ||
+            input.getVnfInstanceRequestInformation() == null  ||
+                input.getVnfInstanceRequestInformation().getVnfInstanceId() == null )
+        {
+            log.debug("exiting " +SVC_OPERATION+ " because of invalid input, null or empty vnf-instance-id");
+            responseBuilder.setResponseCode("403");
+            responseBuilder.setResponseMessage("invalid input, null or empty vnf-instance-id");
+            responseBuilder.setAckFinalIndicator("Y");
+            RpcResult<VnfInstanceTopologyOperationOutput> rpcResult =
+                    RpcResultBuilder.<VnfInstanceTopologyOperationOutput> status(true).withResult(responseBuilder.build()).build();
+            // return error
+            return Futures.immediateFuture(rpcResult);
+        }
+
+        // Grab the service instance ID from the input buffer
+        String viid = input.getVnfInstanceRequestInformation().getVnfInstanceId();
+        String preload_name  = input.getVnfInstanceRequestInformation().getVnfInstanceName();
+        String preload_type = input.getVnfInstanceRequestInformation().getVnfModelId();
+
+        // Make sure we have a valid viid
+        if(viid == null || viid.length() == 0 ) {
+            log.debug("exiting "+SVC_OPERATION+" because of invalid vnf-instance-id");
+            responseBuilder.setResponseCode("403");
+            responseBuilder.setResponseMessage("invalid input, null or empty vnf-instance-id");
+            responseBuilder.setAckFinalIndicator("Y");
+            RpcResult<VnfInstanceTopologyOperationOutput> rpcResult =
+                    RpcResultBuilder.<VnfInstanceTopologyOperationOutput> status(true).withResult(responseBuilder.build()).build();
+            // return error
+            return Futures.immediateFuture(rpcResult);
+        }
+
+        if (input.getSdncRequestHeader() != null) {
+            responseBuilder.setSvcRequestId(input.getSdncRequestHeader().getSvcRequestId());
+        }
+
+        // Get vnf-instance-preload-data
+        VnfInstancePreloadDataBuilder vnfInstancePreloadDataBuilder = new VnfInstancePreloadDataBuilder();
+        getVnfInstancePreloadData(preload_name, preload_type, vnfInstancePreloadDataBuilder);
+
+        // Get service-data
+        VnfInstanceServiceDataBuilder vnfInstanceServiceDataBuilder = new VnfInstanceServiceDataBuilder();
+        getVnfInstanceServiceData(viid,vnfInstanceServiceDataBuilder);
+
+        // Get operational-data
+        VnfInstanceServiceDataBuilder operDataBuilder = new VnfInstanceServiceDataBuilder();
+        getVnfInstanceServiceData(viid,operDataBuilder, LogicalDatastoreType.OPERATIONAL );
+
+        // Set the serviceStatus based on input
+        setServiceStatus(serviceStatusBuilder, input.getSdncRequestHeader());
+        setServiceStatus(serviceStatusBuilder, input.getRequestInformation());
+
+        //
+        // setup a service-data object builder
+        // ACTION vnf-topology-operation
+        // INPUT:
+        //  USES sdnc-request-header;
+        //  USES request-information;
+        //  USES service-information;
+        //  USES vnf-request-information
+        // OUTPUT:
+        //  USES vnf-topology-response-body;
+        //  USES vnf-information
+        //  USES service-information
+        //
+        // container service-data
+        //   uses vnf-configuration-information;
+        //   uses oper-status;
+
+        log.info("Adding INPUT data for "+SVC_OPERATION+" ["+viid+"] input: " + input);
+        VnfInstanceTopologyOperationInputBuilder inputBuilder = new VnfInstanceTopologyOperationInputBuilder(input);
+        VnfSdnUtil.toProperties(parms, inputBuilder.build());
+
+        log.info("Adding OPERATIONAL data for "+SVC_OPERATION+" ["+viid+"] operational-data: " + operDataBuilder.build());
+        VnfSdnUtil.toProperties(parms, "operational-data", operDataBuilder);
+
+        log.info("Adding CONFIG data for "+SVC_OPERATION+" ["+preload_name+","+preload_type+"] preload-data: " + vnfInstancePreloadDataBuilder.build());
+        VnfSdnUtil.toProperties(parms, "vnf-instance-preload-data", vnfInstancePreloadDataBuilder);
+
+        // Call SLI sync method
+        // Get SvcLogicService reference
+
+        VNFSDNSvcLogicServiceClient svcLogicClient = new VNFSDNSvcLogicServiceClient();
+        Properties respProps = null;
+
+        String errorCode = "200";
+        String errorMessage = null;
+        String ackFinal = "Y";
+
+
+        try
+        {
+            if (svcLogicClient.hasGraph("VNF-API", SVC_OPERATION , null, "sync"))
+            {
+
+                try
+                {
+                    respProps = svcLogicClient.execute("VNF-API", SVC_OPERATION, null, "sync", vnfInstanceServiceDataBuilder, parms);
+                }
+                catch (Exception e)
+                {
+                    log.error("Caught exception executing service logic for "+ SVC_OPERATION, e);
+                    errorMessage = e.getMessage();
+                    errorCode = "500";
+                }
+            } else {
+                errorMessage = "No service logic active for VNF-API: '" + SVC_OPERATION + "'";
+                errorCode = "503";
+            }
+        }
+        catch (Exception e)
+        {
+            errorCode = "500";
+            errorMessage = e.getMessage();
+            log.error("Caught exception looking for service logic", e);
+        }
+
+
+        if (respProps != null)
+        {
+            errorCode = respProps.getProperty("error-code");
+            errorMessage = respProps.getProperty("error-message");
+            ackFinal = respProps.getProperty("ack-final", "Y");
+        }
+
+        setServiceStatus(serviceStatusBuilder,errorCode, errorMessage, ackFinal);
+        serviceStatusBuilder.setRequestStatus(RequestStatus.Synccomplete);
+        serviceStatusBuilder.setRpcName(RpcName.VnfInstanceTopologyOperation);
+
+        if ( errorCode != null && errorCode.length() != 0 && !( errorCode.equals("0")|| errorCode.equals("200"))) {
+            responseBuilder.setResponseCode(errorCode);
+            responseBuilder.setResponseMessage(errorMessage);
+            responseBuilder.setAckFinalIndicator(ackFinal);
+            VnfInstanceListBuilder vnfInstanceListBuilder = new VnfInstanceListBuilder();
+            vnfInstanceListBuilder.setVnfInstanceId(viid);
+            vnfInstanceListBuilder.setServiceStatus(serviceStatusBuilder.build());
+            try {
+                SaveVnfInstanceList (vnfInstanceListBuilder.build(), true,LogicalDatastoreType.CONFIGURATION);
+            } catch (Exception e) {
+                log.error("Caught Exception updating MD-SAL for "+SVC_OPERATION+" ["+viid+"] \n",e);
+            }
+            log.error("Returned FAILED for "+SVC_OPERATION+" ["+viid+"] " + responseBuilder.build());
+            RpcResult<VnfInstanceTopologyOperationOutput> rpcResult =
+                    RpcResultBuilder.<VnfInstanceTopologyOperationOutput> status(true).withResult(responseBuilder.build()).build();
+            // return error
+            return Futures.immediateFuture(rpcResult);
+        }
+
+        // Got success from SLI
+        try {
+            vnfInstanceServiceData = vnfInstanceServiceDataBuilder.build();
+            log.info("Updating MD-SAL for "+SVC_OPERATION+" ["+viid+"] VnfInstanceServiceData: " + vnfInstanceServiceData);
+            // svc-configuration-list
+            VnfInstanceListBuilder vnfInstanceListBuilder = new VnfInstanceListBuilder();
+            vnfInstanceListBuilder.setVnfInstanceServiceData(vnfInstanceServiceData);
+            vnfInstanceListBuilder.setVnfInstanceId(vnfInstanceServiceData.getVnfInstanceId());
+            //siid = vnfInstanceServiceData.getVnfInstanceId();
+            vnfInstanceListBuilder.setServiceStatus(serviceStatusBuilder.build());
+            SaveVnfInstanceList (vnfInstanceListBuilder.build(), false,LogicalDatastoreType.CONFIGURATION);
+            if (input.getSdncRequestHeader() != null && input.getSdncRequestHeader().getSvcAction() != null)
+            {
+                // Only update operational tree on Delete or Activate
+                if (input.getSdncRequestHeader().getSvcAction().equals(SvcAction.Delete) ||
+                    input.getSdncRequestHeader().getSvcAction().equals(SvcAction.Activate))
+                {
+                    log.info("Updating OPERATIONAL tree.");
+                    SaveVnfInstanceList (vnfInstanceListBuilder.build(), false, LogicalDatastoreType.OPERATIONAL);
+                }
+            }
+            VnfInstanceInformationBuilder vnfInstanceInformationBuilder = new VnfInstanceInformationBuilder();
+            vnfInstanceInformationBuilder.setVnfInstanceId(viid);
+            responseBuilder.setVnfInstanceInformation(vnfInstanceInformationBuilder.build());
+            responseBuilder.setServiceInformation(vnfInstanceServiceData.getServiceInformation());
+        } catch (Exception e) {
+            log.error("Caught Exception updating MD-SAL for "+SVC_OPERATION+" ["+viid+"] \n",e);
+            responseBuilder.setResponseCode("500");
+            responseBuilder.setResponseMessage(e.toString());
+            responseBuilder.setAckFinalIndicator("Y");
+            log.error("Returned FAILED for "+SVC_OPERATION+" ["+viid+"] " + responseBuilder.build());
+            RpcResult<VnfInstanceTopologyOperationOutput> rpcResult =
+                    RpcResultBuilder.<VnfInstanceTopologyOperationOutput> status(true).withResult(responseBuilder.build()).build();
+            // return error
+            return Futures.immediateFuture(rpcResult);
+        }
+
+        // Update succeeded
+        responseBuilder.setResponseCode(errorCode);
+        responseBuilder.setAckFinalIndicator(ackFinal);
+        if (errorMessage != null)
+        {
+            responseBuilder.setResponseMessage(errorMessage);
+        }
+        log.info("Updated MD-SAL for "+SVC_OPERATION+" ["+viid+"] ");
+        log.info("Returned SUCCESS for "+SVC_OPERATION+" ["+viid+"] " + responseBuilder.build());
+
+        RpcResult<VnfInstanceTopologyOperationOutput> rpcResult =
+                RpcResultBuilder.<VnfInstanceTopologyOperationOutput> status(true).withResult(responseBuilder.build()).build();
+        // return success
+        return Futures.immediateFuture(rpcResult);
+    }
+
+    //1610 vf-module-topology-operation
+    @Override
+    public Future<RpcResult<VfModuleTopologyOperationOutput>> vfModuleTopologyOperation(
+            VfModuleTopologyOperationInput input) {
+
+        final String SVC_OPERATION = "vf-module-topology-operation";
+        VfModuleServiceData vfModuleServiceData = null;
+        VnfInstanceServiceData vnfInstanceServiceData = null;
+        ServiceStatusBuilder serviceStatusBuilder = new ServiceStatusBuilder();
+        Properties parms = new Properties();
+
+        log.info( SVC_OPERATION +" called." );
+        // create a new response object
+        VfModuleTopologyOperationOutputBuilder responseBuilder = new VfModuleTopologyOperationOutputBuilder();
+
+        // Validate vf-module-id from vf-module-request-information
+        if(input == null ||
+            input.getVfModuleRequestInformation() == null ||
+                input.getVfModuleRequestInformation().getVfModuleId() == null)
+        {
+            log.debug("exiting " +SVC_OPERATION+ " because of invalid input, null or empty vf-module-id");
+            responseBuilder.setResponseCode("403");
+            responseBuilder.setResponseMessage("invalid input, null or empty vf-module-id");
+            responseBuilder.setAckFinalIndicator("Y");
+            RpcResult<VfModuleTopologyOperationOutput> rpcResult =
+                    RpcResultBuilder.<VfModuleTopologyOperationOutput> status(true).withResult(responseBuilder.build()).build();
+            // return error
+            return Futures.immediateFuture(rpcResult);
+        }
+
+        // Grab the vf-module-request-information.vf-module-id from the input buffer
+        String vfid  = input.getVfModuleRequestInformation().getVfModuleId();
+        String preload_name  = input.getVfModuleRequestInformation().getVfModuleName();
+        String preload_type = input.getVfModuleRequestInformation().getVfModuleModelId();
+
+        // Make sure we have a valid siid
+        if(vfid == null || vfid.length() == 0 ) {
+            log.debug("exiting "+SVC_OPERATION+" because of invalid vf-module-id");
+            responseBuilder.setResponseCode("403");
+            responseBuilder.setResponseMessage("invalid input, null or empty vf-module-id");
+            responseBuilder.setAckFinalIndicator("Y");
+            RpcResult<VfModuleTopologyOperationOutput> rpcResult =
+                    RpcResultBuilder.<VfModuleTopologyOperationOutput> status(true).withResult(responseBuilder.build()).build();
+            // return error
+            return Futures.immediateFuture(rpcResult);
+        }
+
+        // 1610 add vf-module-id to vnf-instance-list.vf-module-relationship-list
+        String viid = input.getVfModuleRequestInformation().getVnfInstanceId();
+
+        if(viid == null || viid.length() == 0 ) {
+            log.debug("exiting "+SVC_OPERATION+" because of invalid vnf-instance-id");
+            responseBuilder.setResponseCode("403");
+            responseBuilder.setResponseMessage("invalid input, null or empty vnf-instance-id");
+            responseBuilder.setAckFinalIndicator("Y");
+            RpcResult<VfModuleTopologyOperationOutput> rpcResult =
+                    RpcResultBuilder.<VfModuleTopologyOperationOutput> status(true).withResult(responseBuilder.build()).build();
+            // return error
+            return Futures.immediateFuture(rpcResult);
+        }
+
+        if (input.getSdncRequestHeader() != null) {
+            responseBuilder.setSvcRequestId(input.getSdncRequestHeader().getSvcRequestId());
+        }
+
+        // Get vf-module-preload-data
+        VfModulePreloadDataBuilder vfModulePreloadDataBuilder = new VfModulePreloadDataBuilder();
+        getVfModulePreloadData(preload_name, preload_type, vfModulePreloadDataBuilder);
+
+        // Get vf-module-service-data
+        VfModuleServiceDataBuilder vfModuleServiceDataBuilder = new VfModuleServiceDataBuilder();
+        getVfModuleServiceData(vfid,vfModuleServiceDataBuilder);
+
+        // Get vf-module operation-data
+        VfModuleServiceDataBuilder operDataBuilder = new VfModuleServiceDataBuilder();
+        getVfModuleServiceData(vfid,operDataBuilder, LogicalDatastoreType.OPERATIONAL );
+
+        // save service-data builder object for rollback
+        VfModuleServiceDataBuilder rb_vfModuleServiceDataBuilder = vfModuleServiceDataBuilder;
+        VfModuleServiceDataBuilder rb_operDataBuilder = operDataBuilder;
+
+        // 1610 Need to pull vnf-instance-list.vf-module-relationship-list from MD-SAL
+        VnfInstanceServiceDataBuilder vnfInstanceServiceDataBuilder = new VnfInstanceServiceDataBuilder();
+        getVnfInstanceServiceData(viid, vnfInstanceServiceDataBuilder);
+
+        // vnf-instance operational-data
+        VnfInstanceServiceDataBuilder vnfInstanceOperDataBuilder = new VnfInstanceServiceDataBuilder();
+        getVnfInstanceServiceData(viid, vnfInstanceOperDataBuilder, LogicalDatastoreType.OPERATIONAL );
+
+        // save operational builder object for rollback
+        VnfInstanceServiceDataBuilder rb_vnfInstanceServiceDataBuilder = vnfInstanceServiceDataBuilder;
+        VnfInstanceServiceDataBuilder rb_vnfInstanceOperDataBuilder = vnfInstanceOperDataBuilder;
+
+        // Set the serviceStatus based on input
+        setServiceStatus(serviceStatusBuilder, input.getSdncRequestHeader());
+        setServiceStatus(serviceStatusBuilder, input.getRequestInformation());
+
+        //
+        // setup a service-data object builder
+        // ACTION vnf-topology-operation
+        // INPUT:
+        //  USES sdnc-request-header;
+        //  USES request-information;
+        //  USES service-information;
+        //  USES vnf-request-information
+        // OUTPUT:
+        //  USES vnf-topology-response-body;
+        //  USES vnf-information
+        //  USES service-information
+        //
+        // container service-data
+        //   uses vnf-configuration-information;
+        //   uses oper-status;
+
+        log.info("Adding INPUT data for "+SVC_OPERATION+" ["+vfid+"] input: " + input);
+        VfModuleTopologyOperationInputBuilder inputBuilder = new VfModuleTopologyOperationInputBuilder(input);
+        VnfSdnUtil.toProperties(parms, inputBuilder.build());
+
+        log.info("Adding OPERATIONAL data for "+SVC_OPERATION+" ["+vfid+"] vf-module operational-data: " + operDataBuilder.build());
+        VnfSdnUtil.toProperties(parms, "operational-data", operDataBuilder);
+
+        log.info("Adding CONFIG data for "+SVC_OPERATION+" ["+preload_name+","+preload_type+"] vf-module-preload-data: " + vfModulePreloadDataBuilder.build());
+        VnfSdnUtil.toProperties(parms, "vf-module-preload-data", vfModulePreloadDataBuilder);
+
+        log.info("Adding vnf-instance CONFIG data for "+SVC_OPERATION+" ["+viid+"] vnf-instance-service-data: " + vnfInstanceServiceDataBuilder.build());
+        VnfSdnUtil.toProperties(parms, "vnf-instance-service-data", vnfInstanceServiceDataBuilder);
+
+        log.info("Adding vnf-instance OPERATIONAL data for "+SVC_OPERATION+" ["+viid+"] vnf-instance operational-data: " + vnfInstanceOperDataBuilder.build());
+        VnfSdnUtil.toProperties(parms, "vnf-instance-operational-data", vnfInstanceOperDataBuilder);
+
+        // Call SLI sync method
+        // Get SvcLogicService reference
+
+        VNFSDNSvcLogicServiceClient svcLogicClient = new VNFSDNSvcLogicServiceClient();
+        Properties respProps = null;
+
+        String errorCode = "200";
+        String errorMessage = null;
+        String ackFinal = "Y";
+
+
+        try
+        {
+            if (svcLogicClient.hasGraph("VNF-API", SVC_OPERATION , null, "sync"))
+            {
+
+                try
+                {
+                    respProps = svcLogicClient.execute("VNF-API", SVC_OPERATION, null, "sync", vfModuleServiceDataBuilder, parms);
+                }
+                catch (Exception e)
+                {
+                    log.error("Caught exception executing service logic on vf-module for "+ SVC_OPERATION, e);
+                    errorMessage = e.getMessage();
+                    errorCode = "500";
+                }
+
+            } else {
+                errorMessage = "No service logic active for VNF-API: '" + SVC_OPERATION + "'";
+                errorCode = "503";
+            }
+        }
+        catch (Exception e)
+        {
+            errorCode = "500";
+            errorMessage = e.getMessage();
+            log.error("Caught exception looking for service logic", e);
+        }
+
+
+        if (respProps != null) {
+            errorCode = respProps.getProperty("error-code");
+            errorMessage = respProps.getProperty("error-message");
+            ackFinal = respProps.getProperty("ack-final", "Y");
+        }
+
+        setServiceStatus(serviceStatusBuilder,errorCode, errorMessage, ackFinal);
+        serviceStatusBuilder.setRequestStatus(RequestStatus.Synccomplete);
+        serviceStatusBuilder.setRpcName(RpcName.VfModuleTopologyOperation);
+
+        if ( errorCode != null && errorCode.length() != 0 && !( errorCode.equals("0")|| errorCode.equals("200"))) {
+            responseBuilder.setResponseCode(errorCode);
+            responseBuilder.setResponseMessage(errorMessage);
+            responseBuilder.setAckFinalIndicator(ackFinal);
+            VfModuleListBuilder vfModuleListBuilder = new VfModuleListBuilder();
+            vfModuleListBuilder.setVfModuleId(vfid);
+            vfModuleListBuilder.setServiceStatus(serviceStatusBuilder.build());
+            try {
+                SaveVfModuleList (vfModuleListBuilder.build(), true,LogicalDatastoreType.CONFIGURATION);
+            } catch (Exception e) {
+                log.error("Caught Exception updating MD-SAL for "+SVC_OPERATION+" ["+vfid+"] \n",e);
+            }
+            log.error("Returned FAILED for "+SVC_OPERATION+" ["+vfid+"] " + responseBuilder.build());
+            RpcResult<VfModuleTopologyOperationOutput> rpcResult =
+                    RpcResultBuilder.<VfModuleTopologyOperationOutput> status(true).withResult(responseBuilder.build()).build();
+            // return error
+            return Futures.immediateFuture(rpcResult);
+        }
+
+        // Got success from SLI
+        // save vf-module-service-data in MD-SAL
+        try {
+            vfModuleServiceData = vfModuleServiceDataBuilder.build();
+            log.info("Updating MD-SAL for "+SVC_OPERATION+" ["+vfid+"] VfModuleServiceData: " + vfModuleServiceData);
+            // vf-module-list
+            VfModuleListBuilder vfModuleListBuilder = new VfModuleListBuilder();
+            vfModuleListBuilder.setVfModuleServiceData(vfModuleServiceData);
+            vfModuleListBuilder.setVfModuleId(vfModuleServiceData.getVfModuleId());
+            //vfid = vfModuleServiceData.getVfModuleId();
+            vfModuleListBuilder.setServiceStatus(serviceStatusBuilder.build());
+            SaveVfModuleList (vfModuleListBuilder.build(), false,LogicalDatastoreType.CONFIGURATION);
+            if (input.getSdncRequestHeader() != null && input.getSdncRequestHeader().getSvcAction() != null)
+            {
+                // Only update operational tree on Delete or Activate
+                if (input.getSdncRequestHeader().getSvcAction().equals(SvcAction.Delete) ||
+                    input.getSdncRequestHeader().getSvcAction().equals(SvcAction.Activate))
+                {
+                    log.info("Updating OPERATIONAL tree.");
+                    SaveVfModuleList (vfModuleListBuilder.build(), false, LogicalDatastoreType.OPERATIONAL);
+                }
+            }
+            VfModuleInformationBuilder vfModuleInformationBuilder = new VfModuleInformationBuilder();
+            vfModuleInformationBuilder.setVfModuleId(vfid);
+            responseBuilder.setVfModuleInformation(vfModuleInformationBuilder.build());
+            responseBuilder.setServiceInformation(vfModuleServiceData.getServiceInformation());
+        } catch (Exception e) {
+            log.error("Caught Exception updating MD-SAL for "+SVC_OPERATION+" ["+vfid+"] \n",e);
+            responseBuilder.setResponseCode("500");
+            responseBuilder.setResponseMessage(e.toString());
+            responseBuilder.setAckFinalIndicator("Y");
+            log.error("Returned FAILED for "+SVC_OPERATION+" ["+vfid+"] " + responseBuilder.build());
+            RpcResult<VfModuleTopologyOperationOutput> rpcResult =
+                    RpcResultBuilder.<VfModuleTopologyOperationOutput> status(true).withResult(responseBuilder.build()).build();
+            // return error
+            return Futures.immediateFuture(rpcResult);
+        }
+
+        // Update succeeded
+        responseBuilder.setResponseCode(errorCode);
+        responseBuilder.setAckFinalIndicator(ackFinal);
+        if (errorMessage != null)
+        {
+            responseBuilder.setResponseMessage(errorMessage);
+        }
+        log.info("Updated vf-module in MD-SAL for "+SVC_OPERATION+" ["+vfid+"] ");
+        log.info("Returned SUCCESS for "+SVC_OPERATION+" ["+vfid+"] " + responseBuilder.build());
+
+        RpcResult<VfModuleTopologyOperationOutput> rpcResult =
+                RpcResultBuilder.<VfModuleTopologyOperationOutput> status(true).withResult(responseBuilder.build()).build();
+        // return success
+        return Futures.immediateFuture(rpcResult);
+    }
+
+
+    @Override
+    public Future<RpcResult<VnfTopologyOperationOutput>> vnfTopologyOperation(
+            VnfTopologyOperationInput input) {
+
+        final String SVC_OPERATION = "vnf-topology-operation";
+        ServiceData serviceData = null;
+        ServiceStatusBuilder serviceStatusBuilder = new ServiceStatusBuilder();
+        Properties parms = new Properties();
+
+        log.info( SVC_OPERATION +" called." );
+        // create a new response object
+        VnfTopologyOperationOutputBuilder responseBuilder = new VnfTopologyOperationOutputBuilder();
+
+        if(input == null ||
+            input.getServiceInformation() == null ||
+                input.getServiceInformation().getServiceInstanceId() == null ||
+                    input.getServiceInformation().getServiceInstanceId().length() == 0)
+        {
+            log.debug("exiting " +SVC_OPERATION+ " because of invalid input, null or empty service-instance-id");
+            responseBuilder.setResponseCode("403");
+            responseBuilder.setResponseMessage("invalid input, null or empty service-instance-id");
+            responseBuilder.setAckFinalIndicator("Y");
+            RpcResult<VnfTopologyOperationOutput> rpcResult =
+                    RpcResultBuilder.<VnfTopologyOperationOutput> status(true).withResult(responseBuilder.build()).build();
+            // return error
+            return Futures.immediateFuture(rpcResult);
+        }
+
+        if(input.getVnfRequestInformation() == null ||
+                input.getVnfRequestInformation().getVnfId() == null ||
+                    input.getVnfRequestInformation().getVnfId().length() == 0)
+        {
+            log.debug("exiting " +SVC_OPERATION+ " because of invalid input, null or empty vf-module-id");
+            responseBuilder.setResponseCode("403");
+            responseBuilder.setResponseMessage("invalid input, null or empty vf-module-id");
+            responseBuilder.setAckFinalIndicator("Y");
+            RpcResult<VnfTopologyOperationOutput> rpcResult =
+                    RpcResultBuilder.<VnfTopologyOperationOutput> status(true).withResult(responseBuilder.build()).build();
+            // return error
+            return Futures.immediateFuture(rpcResult);
+        }
+
+        // Grab the service instance ID from the input buffer
+        String siid = input.getVnfRequestInformation().getVnfId();
+        String preload_name  = input.getVnfRequestInformation().getVnfName();
+        String preload_type = input.getVnfRequestInformation().getVnfType();
+
+        /*
+        // Make sure we have a valid siid
+        if(siid == null || siid.length() == 0 ) {
+            log.debug("exiting "+SVC_OPERATION+" because of invalid siid");
+            responseBuilder.setResponseCode("403");
+            responseBuilder.setResponseMessage("invalid input, null or empty service-instance-id");
+            responseBuilder.setAckFinalIndicator("Y");
+            RpcResult<VnfTopologyOperationOutput> rpcResult =
+                    RpcResultBuilder.<VnfTopologyOperationOutput> status(true).withResult(responseBuilder.build()).build();
+            // return error
+            return Futures.immediateFuture(rpcResult);
+        }
+        */
+
+        if (input.getSdncRequestHeader() != null) {
+            responseBuilder.setSvcRequestId(input.getSdncRequestHeader().getSvcRequestId());
+        }
+
+        PreloadDataBuilder preloadDataBuilder = new PreloadDataBuilder();
+        getPreloadData(preload_name, preload_type, preloadDataBuilder);
+
+        ServiceDataBuilder serviceDataBuilder = new ServiceDataBuilder();
+        getServiceData(siid,serviceDataBuilder);
+
+        ServiceDataBuilder operDataBuilder = new ServiceDataBuilder();
+        getServiceData(siid,operDataBuilder, LogicalDatastoreType.OPERATIONAL );
+
+        // Set the serviceStatus based on input
+        setServiceStatus(serviceStatusBuilder, input.getSdncRequestHeader());
+        setServiceStatus(serviceStatusBuilder, input.getRequestInformation());
+
+        //
+        // setup a service-data object builder
+        // ACTION vnf-topology-operation
+        // INPUT:
+        //  USES sdnc-request-header;
+        //  USES request-information;
+        //  USES service-information;
+        //  USES vnf-request-information
+        // OUTPUT:
+        //  USES vnf-topology-response-body;
+        //  USES vnf-information
+        //  USES service-information
+        //
+        // container service-data
+        //   uses vnf-configuration-information;
+        //   uses oper-status;
+
+        log.info("Adding INPUT data for "+SVC_OPERATION+" ["+siid+"] input: " + input);
+        VnfTopologyOperationInputBuilder inputBuilder = new VnfTopologyOperationInputBuilder(input);
+        VnfSdnUtil.toProperties(parms, inputBuilder.build());
+
+        log.info("Adding OPERATIONAL data for "+SVC_OPERATION+" ["+siid+"] operational-data: " + operDataBuilder.build());
+        VnfSdnUtil.toProperties(parms, "operational-data", operDataBuilder);
+
+        log.info("Adding CONFIG data for "+SVC_OPERATION+" ["+preload_name+","+preload_type+"] preload-data: " + preloadDataBuilder.build());
+        VnfSdnUtil.toProperties(parms, "preload-data", preloadDataBuilder);
+
+        // Call SLI sync method
+        // Get SvcLogicService reference
+
+        VNFSDNSvcLogicServiceClient svcLogicClient = new VNFSDNSvcLogicServiceClient();
+        Properties respProps = null;
+
+        String errorCode = "200";
+        String errorMessage = null;
+        String ackFinal = "Y";
+
+
+        try
+        {
+            if (svcLogicClient.hasGraph("VNF-API", SVC_OPERATION , null, "sync"))
+            {
+
+                try
+                {
+                    respProps = svcLogicClient.execute("VNF-API", SVC_OPERATION, null, "sync", serviceDataBuilder, parms);
+                }
+                catch (Exception e)
+                {
+                    log.error("Caught exception executing service logic for "+ SVC_OPERATION, e);
+                    errorMessage = e.getMessage();
+                    errorCode = "500";
+                }
+            } else {
+                errorMessage = "No service logic active for VNF-API: '" + SVC_OPERATION + "'";
+                errorCode = "503";
+            }
+        }
+        catch (Exception e)
+        {
+            errorCode = "500";
+            errorMessage = e.getMessage();
+            log.error("Caught exception looking for service logic", e);
+        }
+
+
+        if (respProps != null)
+        {
+            errorCode = respProps.getProperty("error-code");
+            errorMessage = respProps.getProperty("error-message");
+            ackFinal = respProps.getProperty("ack-final", "Y");
+        }
+
+        setServiceStatus(serviceStatusBuilder,errorCode, errorMessage, ackFinal);
+        serviceStatusBuilder.setRequestStatus(RequestStatus.Synccomplete);
+        serviceStatusBuilder.setRpcName(RpcName.VnfTopologyOperation);
+
+        if ( errorCode != null && errorCode.length() != 0 && !( errorCode.equals("0")|| errorCode.equals("200"))) {
+            responseBuilder.setResponseCode(errorCode);
+            responseBuilder.setResponseMessage(errorMessage);
+            responseBuilder.setAckFinalIndicator(ackFinal);
+            VnfListBuilder vnfListBuilder = new VnfListBuilder();
+            vnfListBuilder.setVnfId(siid);
+            vnfListBuilder.setServiceStatus(serviceStatusBuilder.build());
+            try {
+                SaveVnfList (vnfListBuilder.build(), true,LogicalDatastoreType.CONFIGURATION);
+            } catch (Exception e) {
+                log.error("Caught Exception updating MD-SAL for "+SVC_OPERATION+" ["+siid+"] \n",e);
+            }
+            log.error("Returned FAILED for "+SVC_OPERATION+" ["+siid+"] " + responseBuilder.build());
+            RpcResult<VnfTopologyOperationOutput> rpcResult =
+                    RpcResultBuilder.<VnfTopologyOperationOutput> status(true).withResult(responseBuilder.build()).build();
+            // return error
+            return Futures.immediateFuture(rpcResult);
+        }
+
+        // Got success from SLI
+        try {
+            serviceData = serviceDataBuilder.build();
+            log.info("Updating MD-SAL for "+SVC_OPERATION+" ["+siid+"] ServiceData: " + serviceData);
+            // svc-configuration-list
+            VnfListBuilder vnfListBuilder = new VnfListBuilder();
+            vnfListBuilder.setServiceData(serviceData);
+            vnfListBuilder.setVnfId(serviceData.getVnfId());
+            siid = serviceData.getVnfId();
+            vnfListBuilder.setServiceStatus(serviceStatusBuilder.build());
+            SaveVnfList (vnfListBuilder.build(), false,LogicalDatastoreType.CONFIGURATION);
+            if (input.getSdncRequestHeader() != null && input.getSdncRequestHeader().getSvcAction() != null)
+            {
+                // Only update operational tree on Delete or Activate
+                if (input.getSdncRequestHeader().getSvcAction().equals(SvcAction.Activate)) {
+                    log.info("Updating OPERATIONAL tree.");
+                    SaveVnfList (vnfListBuilder.build(), false, LogicalDatastoreType.OPERATIONAL);
+                }
+                else if (input.getSdncRequestHeader().getSvcAction().equals(SvcAction.Delete) ||
+                    input.getSdncRequestHeader().getSvcAction().equals(SvcAction.Rollback)) {
+                        log.info("Delete OPERATIONAL tree.");
+                        DeleteVnfList (vnfListBuilder.build(), LogicalDatastoreType.CONFIGURATION);
+                        DeleteVnfList (vnfListBuilder.build(), LogicalDatastoreType.OPERATIONAL);
+                }
+            }
+            VnfInformationBuilder vnfInformationBuilder = new VnfInformationBuilder();
+            vnfInformationBuilder.setVnfId(siid);
+            responseBuilder.setVnfInformation(vnfInformationBuilder.build());
+            responseBuilder.setServiceInformation(serviceData.getServiceInformation());
+        } catch (Exception e) {
+            log.error("Caught Exception updating MD-SAL for "+SVC_OPERATION+" ["+siid+"] \n",e);
+            responseBuilder.setResponseCode("500");
+            responseBuilder.setResponseMessage(e.toString());
+            responseBuilder.setAckFinalIndicator("Y");
+            log.error("Returned FAILED for "+SVC_OPERATION+" ["+siid+"] " + responseBuilder.build());
+            RpcResult<VnfTopologyOperationOutput> rpcResult =
+                    RpcResultBuilder.<VnfTopologyOperationOutput> status(true).withResult(responseBuilder.build()).build();
+            // return error
+            return Futures.immediateFuture(rpcResult);
+        }
+
+        // Update succeeded
+        responseBuilder.setResponseCode(errorCode);
+        responseBuilder.setAckFinalIndicator(ackFinal);
+        if (errorMessage != null)
+        {
+            responseBuilder.setResponseMessage(errorMessage);
+        }
+        log.info("Updated MD-SAL for "+SVC_OPERATION+" ["+siid+"] ");
+        log.info("Returned SUCCESS for "+SVC_OPERATION+" ["+siid+"] " + responseBuilder.build());
+
+        RpcResult<VnfTopologyOperationOutput> rpcResult =
+                RpcResultBuilder.<VnfTopologyOperationOutput> status(true).withResult(responseBuilder.build()).build();
+        // return success
+        return Futures.immediateFuture(rpcResult);
+    }
+
+
+    @Override
+    public Future<RpcResult<NetworkTopologyOperationOutput>> networkTopologyOperation(
+            NetworkTopologyOperationInput input) {
+
+        final String SVC_OPERATION = "network-topology-operation";
+        ServiceData serviceData = null;
+        ServiceStatusBuilder serviceStatusBuilder = new ServiceStatusBuilder();
+        Properties parms = new Properties();
+
+        log.info( SVC_OPERATION +" called." );
+        // create a new response object
+        NetworkTopologyOperationOutputBuilder responseBuilder = new NetworkTopologyOperationOutputBuilder();
+
+        if(input == null ||
+            input.getServiceInformation() == null ||
+                input.getServiceInformation().getServiceInstanceId() == null ||
+                    input.getServiceInformation().getServiceInstanceId().length() == 0)
+        {
+            log.debug("exiting " +SVC_OPERATION+ " because of invalid input, null or empty service-instance-id");
+            responseBuilder.setResponseCode("403");
+            responseBuilder.setResponseMessage("invalid input, null or empty service-instance-id");
+            responseBuilder.setAckFinalIndicator("Y");
+            RpcResult<NetworkTopologyOperationOutput> rpcResult =
+                    RpcResultBuilder.<NetworkTopologyOperationOutput> status(true).withResult(responseBuilder.build()).build();
+            // return error
+            return Futures.immediateFuture(rpcResult);
+        }
+
+        if(input.getNetworkRequestInformation() == null || input.getNetworkRequestInformation().getNetworkName() == null) {
+            log.debug("exiting " +SVC_OPERATION+ " because of invalid input, null or empty service-instance-id");
+            responseBuilder.setResponseCode("403");
+            responseBuilder.setResponseMessage("invalid input, null or empty service-instance-id");
+            responseBuilder.setAckFinalIndicator("Y");
+            RpcResult<NetworkTopologyOperationOutput> rpcResult =
+                    RpcResultBuilder.<NetworkTopologyOperationOutput> status(true).withResult(responseBuilder.build()).build();
+            // return error
+            return Futures.immediateFuture(rpcResult);
+        }
+
+        // Grab the service instance ID from the input buffer
+        String siid = null;
+        if (input.getSdncRequestHeader().getSvcAction().equals("assign")) {
+            siid = input.getNetworkRequestInformation().getNetworkName();
+        }
+        else {
+            siid = input.getNetworkRequestInformation().getNetworkId();
+        }
+        String preload_name  = input.getNetworkRequestInformation().getNetworkName();
+        String preload_type = input.getNetworkRequestInformation().getNetworkType();
+
+        /*
+        if(siid == null || siid.length() == 0 ) {
+            log.debug("exiting "+SVC_OPERATION+" because of invalid siid");
+            responseBuilder.setResponseCode("403");
+            responseBuilder.setResponseMessage("invalid input, null or empty service-instance-id");
+            responseBuilder.setAckFinalIndicator("Y");
+            RpcResult<NetworkTopologyOperationOutput> rpcResult =
+                    RpcResultBuilder.<NetworkTopologyOperationOutput> status(true).withResult(responseBuilder.build()).build();
+            // return error
+            return Futures.immediateFuture(rpcResult);
+        }
+        */
+
+        if (input.getSdncRequestHeader() != null) {
+            responseBuilder.setSvcRequestId(input.getSdncRequestHeader().getSvcRequestId());
+        }
+
+        PreloadDataBuilder preloadDataBuilder = new PreloadDataBuilder();
+        getPreloadData(preload_name, preload_type, preloadDataBuilder);
+
+        log.info("Adding INPUT data for "+SVC_OPERATION+" ["+siid+"] input: " + input);
+        NetworkTopologyOperationInputBuilder inputBuilder = new NetworkTopologyOperationInputBuilder(input);
+        VnfSdnUtil.toProperties(parms, inputBuilder.build());
+
+/*
+        log.info("Adding OPERATIONAL data for "+SVC_OPERATION+" ["+siid+"] operational-data: " + operDataBuilder.build());
+        VnfSdnUtil.toProperties(parms, "operational-data", operDataBuilder);
+
+        log.info("Adding CONFIG data for "+SVC_OPERATION+" ["+preload_name+","+preload_type+"] preload-data: " + preloadDataBuilder.build());
+        VnfSdnUtil.toProperties(parms, "preload-data", preloadDataBuilder);
+*/
+
+        // Call SLI sync method
+        // Get SvcLogicService reference
+
+        VNFSDNSvcLogicServiceClient svcLogicClient = new VNFSDNSvcLogicServiceClient();
+        Properties respProps = null;
+
+        String errorCode = "200";
+        String errorMessage = null;
+        String ackFinal = "Y";
+        String networkId = "error";
+
+
+        try
+        {
+            if (svcLogicClient.hasGraph("VNF-API", SVC_OPERATION , null, "sync"))
+            {
+
+                try
+                {
+                    respProps = svcLogicClient.execute("VNF-API", SVC_OPERATION, null, "sync", preloadDataBuilder, parms);
+                }
+                catch (Exception e)
+                {
+                    log.error("Caught exception executing service logic for "+ SVC_OPERATION, e);
+                    errorMessage = e.getMessage();
+                    errorCode = "500";
+                }
+            } else {
+                errorMessage = "No service logic active for VNF-API: '" + SVC_OPERATION + "'";
+                errorCode = "503";
+            }
+        }
+        catch (Exception e)
+        {
+            errorCode = "500";
+            errorMessage = e.getMessage();
+            log.error("Caught exception looking for service logic", e);
+        }
+
+
+        if (respProps != null)
+        {
+            errorCode = respProps.getProperty("error-code");
+            errorMessage = respProps.getProperty("error-message");
+            ackFinal = respProps.getProperty("ack-final", "Y");
+            networkId = respProps.getProperty("networkId","0");
+        }
+
+        if ( errorCode != null && errorCode.length() != 0 && !( errorCode.equals("0")|| errorCode.equals("200"))) {
+            responseBuilder.setResponseCode(errorCode);
+            responseBuilder.setResponseMessage(errorMessage);
+            responseBuilder.setAckFinalIndicator(ackFinal);
+
+            log.error("Returned FAILED for "+SVC_OPERATION+" ["+siid+"] " + responseBuilder.build());
+
+            RpcResult<NetworkTopologyOperationOutput> rpcResult =
+                    RpcResultBuilder.<NetworkTopologyOperationOutput> status(true).withResult(responseBuilder.build()).build();
+            // return error
+            return Futures.immediateFuture(rpcResult);
+        }
+
+        // Got success from SLI
+        try {
+            NetworkInformationBuilder networkInformationBuilder = new NetworkInformationBuilder();
+            networkInformationBuilder.setNetworkId(networkId);
+            responseBuilder.setNetworkInformation(networkInformationBuilder.build());
+            responseBuilder.setServiceInformation(input.getServiceInformation());
+        } catch (IllegalStateException e) {
+            log.error("Caught Exception updating MD-SAL for "+SVC_OPERATION+" ["+siid+"] \n",e);
+            responseBuilder.setResponseCode("500");
+            responseBuilder.setResponseMessage(e.toString());
+            responseBuilder.setAckFinalIndicator("Y");
+            log.error("Returned FAILED for "+SVC_OPERATION+" ["+siid+"] " + responseBuilder.build());
+            RpcResult<NetworkTopologyOperationOutput> rpcResult =
+                    RpcResultBuilder.<NetworkTopologyOperationOutput> status(true).withResult(responseBuilder.build()).build();
+            // return error
+            return Futures.immediateFuture(rpcResult);
+        }
+
+        // Update succeeded
+        responseBuilder.setResponseCode(errorCode);
+        responseBuilder.setAckFinalIndicator(ackFinal);
+        if (errorMessage != null)
+        {
+            responseBuilder.setResponseMessage(errorMessage);
+        }
+        log.info("Updated MD-SAL for "+SVC_OPERATION+" ["+siid+"] ");
+        log.info("Returned SUCCESS for "+SVC_OPERATION+" ["+siid+"] " + responseBuilder.build());
+
+        RpcResult<NetworkTopologyOperationOutput> rpcResult =
+                RpcResultBuilder.<NetworkTopologyOperationOutput> status(true).withResult(responseBuilder.build()).build();
+        // return success
+        return Futures.immediateFuture(rpcResult);
+    }
+
+    @Override
+    public Future<RpcResult<PreloadVnfTopologyOperationOutput>> preloadVnfTopologyOperation(
+            PreloadVnfTopologyOperationInput input) {
+
+        final String SVC_OPERATION = "preload-vnf-topology-operation";
+        PreloadData preloadData = null;
+        Properties parms = new Properties();
+
+        log.info( SVC_OPERATION +" called." );
+        // create a new response object
+        PreloadVnfTopologyOperationOutputBuilder responseBuilder = new PreloadVnfTopologyOperationOutputBuilder();
+
+        // Result from savePreloadData
+        final SettableFuture<RpcResult<Void>> futureResult = SettableFuture.create();
+
+        if(input == null || input.getVnfTopologyInformation() == null || input.getVnfTopologyInformation().getVnfTopologyIdentifier() == null || input.getVnfTopologyInformation().getVnfTopologyIdentifier().getVnfName() == null || input.getVnfTopologyInformation().getVnfTopologyIdentifier().getVnfType() == null) {
+            log.debug("exiting " +SVC_OPERATION+ " because of invalid input, null or empty vnf-name and vnf-type");
+            responseBuilder.setResponseCode("403");
+            responseBuilder.setResponseMessage("invalid input, null or empty vnf-name and vnf-type");
+            responseBuilder.setAckFinalIndicator("Y");
+            RpcResult<PreloadVnfTopologyOperationOutput> rpcResult =
+                RpcResultBuilder.<PreloadVnfTopologyOperationOutput> status(true).withResult(responseBuilder.build()).build();
+            return Futures.immediateFuture(rpcResult);
+        }
+
+        // Grab the name and type from the input buffer
+        String preload_name = input.getVnfTopologyInformation().getVnfTopologyIdentifier().getVnfName();
+        String preload_type = input.getVnfTopologyInformation().getVnfTopologyIdentifier().getVnfType();
+
+        // Make sure we have a preload_name and preload_type
+        if(preload_name == null || preload_name.length() == 0 ) {
+            log.debug("exiting "+SVC_OPERATION+" because of invalid preload-name");
+            responseBuilder.setResponseCode("403");
+            responseBuilder.setResponseMessage("invalid input, invalid preload-name");
+            responseBuilder.setAckFinalIndicator("Y");
+            RpcResult<PreloadVnfTopologyOperationOutput> rpcResult =
+                RpcResultBuilder.<PreloadVnfTopologyOperationOutput> status(true).withResult(responseBuilder.build()).build();
+            return Futures.immediateFuture(rpcResult);
+        }
+        if(preload_type == null || preload_type.length() == 0 ) {
+            log.debug("exiting "+SVC_OPERATION+" because of invalid preload-type");
+            responseBuilder.setResponseCode("403");
+            responseBuilder.setResponseMessage("invalid input, invalid preload-type");
+            responseBuilder.setAckFinalIndicator("Y");
+            RpcResult<PreloadVnfTopologyOperationOutput> rpcResult =
+                RpcResultBuilder.<PreloadVnfTopologyOperationOutput> status(true).withResult(responseBuilder.build()).build();
+            return Futures.immediateFuture(rpcResult);
+        }
+
+        if (input.getSdncRequestHeader() != null) {
+            responseBuilder.setSvcRequestId(input.getSdncRequestHeader().getSvcRequestId());
+        }
+
+        PreloadDataBuilder preloadDataBuilder = new PreloadDataBuilder();
+        getPreloadData(preload_name, preload_type, preloadDataBuilder);
+        //preloadData = preloadDataBuilder.build();
+
+        PreloadDataBuilder operDataBuilder = new PreloadDataBuilder();
+        getPreloadData(preload_name, preload_type, operDataBuilder, LogicalDatastoreType.OPERATIONAL );
+
+        //
+        // setup a preload-data object builder
+        // ACTION vnf-topology-operation
+        // INPUT:
+        //  USES sdnc-request-header;
+        //  USES request-information;
+        //  uses vnf-topology-information;
+        // OUTPUT:
+        //  USES vnf-topology-response-body;
+        //
+        // container preload-data
+        //   uses vnf-configuration-information;
+
+
+        log.info("Adding INPUT data for "+SVC_OPERATION+" ["+preload_name+","+preload_type+"] input: " + input);
+        PreloadVnfTopologyOperationInputBuilder inputBuilder = new PreloadVnfTopologyOperationInputBuilder(input);
+        VnfSdnUtil.toProperties(parms, inputBuilder.build());
+        log.info("Adding OPERATIONAL data for "+SVC_OPERATION+" ["+preload_name+","+preload_type +"] operational-data: " + operDataBuilder.build());
+        VnfSdnUtil.toProperties(parms, "operational-data", operDataBuilder);
+
+        // Call SLI sync method
+        // Get SvcLogicService reference
+
+        VNFSDNSvcLogicServiceClient svcLogicClient = new VNFSDNSvcLogicServiceClient();
+        Properties respProps = null;
+
+        String errorCode = "200";
+        String errorMessage = null;
+        String ackFinal = "Y";
+
+
+        try
+        {
+            if (svcLogicClient.hasGraph("VNF-API", SVC_OPERATION , null, "sync"))
+            {
+
+                try
+                {
+                    respProps = svcLogicClient.execute("VNF-API", SVC_OPERATION, null, "sync", preloadDataBuilder, parms);
+                }
+                catch (Exception e)
+                {
+                    log.error("Caught exception executing service logic for "+ SVC_OPERATION, e);
+                    errorMessage = e.getMessage();
+                    errorCode = "500";
+                }
+            } else {
+                errorMessage = "No service logic active for VNF-API: '" + SVC_OPERATION + "'";
+                errorCode = "503";
+            }
+        }
+        catch (Exception e)
+        {
+            errorCode = "500";
+            errorMessage = e.getMessage();
+            log.error("Caught exception looking for service logic", e);
+        }
+
+
+        if (respProps != null)
+        {
+            errorCode = respProps.getProperty("error-code");
+            errorMessage = respProps.getProperty("error-message");
+            ackFinal = respProps.getProperty("ack-final", "Y");
+            // internalError = respProps.getProperty("internal-error", "false");
+        }
+
+        if ( errorCode != null && errorCode.length() != 0 && !( errorCode.equals("0")|| errorCode.equals("200"))) {
+
+            responseBuilder.setResponseCode(errorCode);
+            responseBuilder.setResponseMessage(errorMessage);
+            responseBuilder.setAckFinalIndicator(ackFinal);
+
+            VnfPreloadListBuilder preloadVnfListBuilder = new VnfPreloadListBuilder();
+            preloadVnfListBuilder.setVnfName(preload_name);
+            preloadVnfListBuilder.setVnfType(preload_type);
+            preloadVnfListBuilder.setPreloadData(preloadDataBuilder.build());
+            log.error("Returned FAILED for "+SVC_OPERATION+" ["+preload_name+","+preload_type+"] error code: '" + errorCode + "', Reason: '" + errorMessage + "'");
+            try {
+                SavePreloadList (preloadVnfListBuilder.build(), true,LogicalDatastoreType.CONFIGURATION);
+            } catch (Exception e) {
+                log.error("Caught Exception updating MD-SAL for "+SVC_OPERATION+" ["+preload_name+","+preload_type+"] \n",e);
+            }
+            log.debug("Sending Success rpc result due to external error");
+            RpcResult<PreloadVnfTopologyOperationOutput> rpcResult =
+                RpcResultBuilder.<PreloadVnfTopologyOperationOutput> status(true).withResult(responseBuilder.build()).build();
+            return Futures.immediateFuture(rpcResult);
+        }
+
+        // Got success from SLI
+        try {
+            preloadData = preloadDataBuilder.build();
+            log.info("Updating MD-SAL for "+SVC_OPERATION+" ["+preload_name+","+preload_type+"] preloadData: " + preloadData);
+            // svc-configuration-list
+            VnfPreloadListBuilder preloadVnfListBuilder = new VnfPreloadListBuilder();
+            preloadVnfListBuilder.setVnfName(preload_name);
+            preloadVnfListBuilder.setVnfType(preload_type);
+            preloadVnfListBuilder.setPreloadData(preloadData);
+
+            // SDNGC-989 set merge flag to false
+            SavePreloadList (preloadVnfListBuilder.build(), false, LogicalDatastoreType.CONFIGURATION);
+            log.info("Updating OPERATIONAL tree.");
+            SavePreloadList (preloadVnfListBuilder.build(), false, LogicalDatastoreType.OPERATIONAL);
+        } catch (Exception e) {
+            log.error("Caught Exception updating MD-SAL for "+SVC_OPERATION+" ["+preload_name+","+preload_type+"] \n",e);
+            responseBuilder.setResponseCode("500");
+            responseBuilder.setResponseMessage(e.toString());
+            responseBuilder.setAckFinalIndicator("Y");
+            log.error("Returned FAILED for "+SVC_OPERATION+" ["+preload_name+","+preload_type+"] " + responseBuilder.build());
+            RpcResult<PreloadVnfTopologyOperationOutput> rpcResult =
+                RpcResultBuilder.<PreloadVnfTopologyOperationOutput> status(false).withResult(responseBuilder.build()).build();
+            return Futures.immediateFuture(rpcResult);
+        }
+
+        // Update succeeded
+        responseBuilder.setResponseCode(errorCode);
+        responseBuilder.setAckFinalIndicator(ackFinal);
+        if (errorMessage != null)
+        {
+            responseBuilder.setResponseMessage(errorMessage);
+        }
+        log.info("Updated MD-SAL for "+SVC_OPERATION+" ["+preload_name+","+preload_type+"] ");
+        log.info("Returned SUCCESS for "+SVC_OPERATION+" ["+preload_name+","+preload_type+"] " + responseBuilder.build());
+
+        RpcResult<PreloadVnfTopologyOperationOutput> rpcResult =
+                RpcResultBuilder.<PreloadVnfTopologyOperationOutput> status(true).withResult(responseBuilder.build()).build();
+        return Futures.immediateFuture(rpcResult);
+    }
+
+    //1610 preload-vnf-instance-topology-operation
+    @Override
+    public Future<RpcResult<PreloadVnfInstanceTopologyOperationOutput>> preloadVnfInstanceTopologyOperation(
+            PreloadVnfInstanceTopologyOperationInput input) {
+
+        final String SVC_OPERATION = "preload-vnf-instance-topology-operation";
+        VnfInstancePreloadData vnfInstancePreloadData = null;
+        Properties parms = new Properties();
+
+        log.info( SVC_OPERATION +" called." );
+        // create a new response object
+        PreloadVnfInstanceTopologyOperationOutputBuilder responseBuilder = new PreloadVnfInstanceTopologyOperationOutputBuilder();
+
+        // Result from savePreloadData
+        final SettableFuture<RpcResult<Void>> futureResult = SettableFuture.create();
+
+        if(input == null ||
+            input.getVnfInstanceTopologyInformation() == null ||
+                input.getVnfInstanceTopologyInformation().getVnfInstanceIdentifiers().getVnfInstanceName() == null ||
+                    input.getVnfInstanceTopologyInformation().getVnfInstanceIdentifiers().getVnfModelId() == null)
+        {
+            log.debug("exiting " +SVC_OPERATION+ " because of invalid input, null or empty vnf-instance-name and vnf-model-id");
+            responseBuilder.setResponseCode("403");
+            responseBuilder.setResponseMessage("invalid input, null or empty vnf-instance-name and vnf-model-id");
+            responseBuilder.setAckFinalIndicator("Y");
+            RpcResult<PreloadVnfInstanceTopologyOperationOutput> rpcResult =
+                RpcResultBuilder.<PreloadVnfInstanceTopologyOperationOutput> status(true).withResult(responseBuilder.build()).build();
+            return Futures.immediateFuture(rpcResult);
+        }
+
+        // Grab the name and type from the input buffer
+        String preload_name = input.getVnfInstanceTopologyInformation().getVnfInstanceIdentifiers().getVnfInstanceName();
+        String preload_type = input.getVnfInstanceTopologyInformation().getVnfInstanceIdentifiers().getVnfModelId();
+
+        // Make sure we have a preload_name and preload_type
+        if(preload_name == null || preload_name.length() == 0 ) {
+            log.debug("exiting "+SVC_OPERATION+" because of invalid preload-name");
+            responseBuilder.setResponseCode("403");
+            responseBuilder.setResponseMessage("invalid input, invalid preload-name");
+            responseBuilder.setAckFinalIndicator("Y");
+            RpcResult<PreloadVnfInstanceTopologyOperationOutput> rpcResult =
+                RpcResultBuilder.<PreloadVnfInstanceTopologyOperationOutput> status(true).withResult(responseBuilder.build()).build();
+            return Futures.immediateFuture(rpcResult);
+        }
+        if(preload_type == null || preload_type.length() == 0 ) {
+            log.debug("exiting "+SVC_OPERATION+" because of invalid preload-type");
+            responseBuilder.setResponseCode("403");
+            responseBuilder.setResponseMessage("invalid input, invalid preload-type");
+            responseBuilder.setAckFinalIndicator("Y");
+            RpcResult<PreloadVnfInstanceTopologyOperationOutput> rpcResult =
+                RpcResultBuilder.<PreloadVnfInstanceTopologyOperationOutput> status(true).withResult(responseBuilder.build()).build();
+            return Futures.immediateFuture(rpcResult);
+        }
+
+        if (input.getSdncRequestHeader() != null) {
+            responseBuilder.setSvcRequestId(input.getSdncRequestHeader().getSvcRequestId());
+        }
+
+        VnfInstancePreloadDataBuilder vnfInstancePreloadDataBuilder = new VnfInstancePreloadDataBuilder();
+        getVnfInstancePreloadData(preload_name, preload_type, vnfInstancePreloadDataBuilder);
+        //preloadData = preloadDataBuilder.build();
+
+        VnfInstancePreloadDataBuilder operDataBuilder = new VnfInstancePreloadDataBuilder();
+        getVnfInstancePreloadData(preload_name, preload_type, operDataBuilder, LogicalDatastoreType.OPERATIONAL );
+
+        //
+        // setup a preload-data object builder
+        // ACTION vnf-topology-operation
+        // INPUT:
+        //  USES sdnc-request-header;
+        //  USES request-information;
+        //  uses vnf-topology-information;
+        // OUTPUT:
+        //  USES vnf-topology-response-body;
+        //
+        // container preload-data
+        //   uses vnf-configuration-information;
+
+
+        log.info("Adding INPUT data for "+SVC_OPERATION+" ["+preload_name+","+preload_type+"] input: " + input);
+        PreloadVnfInstanceTopologyOperationInputBuilder inputBuilder = new PreloadVnfInstanceTopologyOperationInputBuilder(input);
+        VnfSdnUtil.toProperties(parms, inputBuilder.build());
+        log.info("Adding OPERATIONAL data for "+SVC_OPERATION+" ["+preload_name+","+preload_type +"] operational-data: " + operDataBuilder.build());
+        VnfSdnUtil.toProperties(parms, "operational-data", operDataBuilder);
+
+        // Call SLI sync method
+        // Get SvcLogicService reference
+
+        VNFSDNSvcLogicServiceClient svcLogicClient = new VNFSDNSvcLogicServiceClient();
+        Properties respProps = null;
+
+        String errorCode = "200";
+        String errorMessage = null;
+        String ackFinal = "Y";
+
+
+        try
+        {
+            if (svcLogicClient.hasGraph("VNF-API", SVC_OPERATION , null, "sync"))
+            {
+
+                try
+                {
+                    respProps = svcLogicClient.execute("VNF-API", SVC_OPERATION, null, "sync", vnfInstancePreloadDataBuilder, parms);
+                }
+                catch (Exception e)
+                {
+                    log.error("Caught exception executing service logic for "+ SVC_OPERATION, e);
+                    errorMessage = e.getMessage();
+                    errorCode = "500";
+                }
+            } else {
+                errorMessage = "No service logic active for VNF-API: '" + SVC_OPERATION + "'";
+                errorCode = "503";
+            }
+        }
+        catch (Exception e)
+        {
+            errorCode = "500";
+            errorMessage = e.getMessage();
+            log.error("Caught exception looking for service logic", e);
+        }
+
+
+        if (respProps != null)
+        {
+            errorCode = respProps.getProperty("error-code");
+            errorMessage = respProps.getProperty("error-message");
+            ackFinal = respProps.getProperty("ack-final", "Y");
+            // internalError = respProps.getProperty("internal-error", "false");
+        }
+
+        if ( errorCode != null && errorCode.length() != 0 && !( errorCode.equals("0")|| errorCode.equals("200"))) {
+
+            responseBuilder.setResponseCode(errorCode);
+            responseBuilder.setResponseMessage(errorMessage);
+            responseBuilder.setAckFinalIndicator(ackFinal);
+
+            VnfInstancePreloadListBuilder vnfInstancePreloadListBuilder = new VnfInstancePreloadListBuilder();
+            vnfInstancePreloadListBuilder.setVnfInstanceName(preload_name);
+            vnfInstancePreloadListBuilder.setVnfModelId(preload_type);
+            vnfInstancePreloadListBuilder.setVnfInstancePreloadData(vnfInstancePreloadDataBuilder.build());
+            log.error("Returned FAILED for "+SVC_OPERATION+" ["+preload_name+","+preload_type+"] error code: '" + errorCode + "', Reason: '" + errorMessage + "'");
+            try {
+                SaveVnfInstancePreloadList (vnfInstancePreloadListBuilder.build(), true,LogicalDatastoreType.CONFIGURATION);
+            } catch (Exception e) {
+                log.error("Caught Exception updating MD-SAL for "+SVC_OPERATION+" ["+preload_name+","+preload_type+"] \n",e);
+            }
+            log.debug("Sending Success rpc result due to external error");
+            RpcResult<PreloadVnfInstanceTopologyOperationOutput> rpcResult =
+                RpcResultBuilder.<PreloadVnfInstanceTopologyOperationOutput> status(true).withResult(responseBuilder.build()).build();
+            return Futures.immediateFuture(rpcResult);
+        }
+
+        // Got success from SLI
+        try {
+            vnfInstancePreloadData = vnfInstancePreloadDataBuilder.build();
+            log.info("Updating MD-SAL for "+SVC_OPERATION+" ["+preload_name+","+preload_type+"] preloadData: " + vnfInstancePreloadData);
+            // svc-configuration-list
+            VnfInstancePreloadListBuilder vnfInstancePreloadListBuilder = new VnfInstancePreloadListBuilder();
+            vnfInstancePreloadListBuilder.setVnfInstanceName(preload_name);
+            vnfInstancePreloadListBuilder.setVnfModelId(preload_type);
+            vnfInstancePreloadListBuilder.setVnfInstancePreloadData(vnfInstancePreloadData);
+
+            // SDNGC-989 set merge flag to false
+            SaveVnfInstancePreloadList (vnfInstancePreloadListBuilder.build(), false, LogicalDatastoreType.CONFIGURATION);
+            log.info("Updating OPERATIONAL tree.");
+            SaveVnfInstancePreloadList (vnfInstancePreloadListBuilder.build(), false, LogicalDatastoreType.OPERATIONAL);
+        } catch (Exception e) {
+            log.error("Caught Exception updating MD-SAL for "+SVC_OPERATION+" ["+preload_name+","+preload_type+"] \n",e);
+            responseBuilder.setResponseCode("500");
+            responseBuilder.setResponseMessage(e.toString());
+            responseBuilder.setAckFinalIndicator("Y");
+            log.error("Returned FAILED for "+SVC_OPERATION+" ["+preload_name+","+preload_type+"] " + responseBuilder.build());
+            RpcResult<PreloadVnfInstanceTopologyOperationOutput> rpcResult =
+                RpcResultBuilder.<PreloadVnfInstanceTopologyOperationOutput> status(false).withResult(responseBuilder.build()).build();
+            return Futures.immediateFuture(rpcResult);
+        }
+
+        // Update succeeded
+        responseBuilder.setResponseCode(errorCode);
+        responseBuilder.setAckFinalIndicator(ackFinal);
+        if (errorMessage != null)
+        {
+            responseBuilder.setResponseMessage(errorMessage);
+        }
+        log.info("Updated MD-SAL for "+SVC_OPERATION+" ["+preload_name+","+preload_type+"] ");
+        log.info("Returned SUCCESS for "+SVC_OPERATION+" ["+preload_name+","+preload_type+"] " + responseBuilder.build());
+
+        RpcResult<PreloadVnfInstanceTopologyOperationOutput> rpcResult =
+                RpcResultBuilder.<PreloadVnfInstanceTopologyOperationOutput> status(true).withResult(responseBuilder.build()).build();
+        return Futures.immediateFuture(rpcResult);
+    }
+
+
+    //1610 preload-vf-module-topology-operation
+    @Override
+    public Future<RpcResult<PreloadVfModuleTopologyOperationOutput>> preloadVfModuleTopologyOperation(
+            PreloadVfModuleTopologyOperationInput input) {
+
+        final String SVC_OPERATION = "preload-vf-module-topology-operation";
+        VfModulePreloadData vfModulePreloadData = null;
+        Properties parms = new Properties();
+
+        log.info( SVC_OPERATION +" called." );
+        // create a new response object
+        PreloadVfModuleTopologyOperationOutputBuilder responseBuilder = new PreloadVfModuleTopologyOperationOutputBuilder();
+
+        // Result from savePreloadData
+        final SettableFuture<RpcResult<Void>> futureResult = SettableFuture.create();
+
+        if(input == null ||
+            input.getVfModuleTopologyInformation() == null ||
+                input.getVfModuleTopologyInformation().getVfModuleIdentifiers().getVfModuleName() == null ||
+                    input.getVfModuleTopologyInformation().getVfModuleIdentifiers().getVfModuleModelId() == null)
+        {
+            log.debug("exiting " +SVC_OPERATION+ " because of invalid input, null or empty vnf-instance-name and vnf-model-id");
+            responseBuilder.setResponseCode("403");
+            responseBuilder.setResponseMessage("invalid input, null or empty vnf-instance-name and vnf-model-id");
+            responseBuilder.setAckFinalIndicator("Y");
+            RpcResult<PreloadVfModuleTopologyOperationOutput> rpcResult =
+                RpcResultBuilder.<PreloadVfModuleTopologyOperationOutput> status(true).withResult(responseBuilder.build()).build();
+            return Futures.immediateFuture(rpcResult);
+        }
+
+        // Grab the name and type from the input buffer
+        String preload_name = input.getVfModuleTopologyInformation().getVfModuleIdentifiers().getVfModuleName();
+        String preload_type = input.getVfModuleTopologyInformation().getVfModuleIdentifiers().getVfModuleModelId();
+
+        // Make sure we have a preload_name and preload_type
+        if(preload_name == null || preload_name.length() == 0 ) {
+            log.debug("exiting "+SVC_OPERATION+" because of invalid preload-name");
+            responseBuilder.setResponseCode("403");
+            responseBuilder.setResponseMessage("invalid input, invalid preload-name");
+            responseBuilder.setAckFinalIndicator("Y");
+            RpcResult<PreloadVfModuleTopologyOperationOutput> rpcResult =
+                RpcResultBuilder.<PreloadVfModuleTopologyOperationOutput> status(true).withResult(responseBuilder.build()).build();
+            return Futures.immediateFuture(rpcResult);
+        }
+        if(preload_type == null || preload_type.length() == 0 ) {
+            log.debug("exiting "+SVC_OPERATION+" because of invalid preload-type");
+            responseBuilder.setResponseCode("403");
+            responseBuilder.setResponseMessage("invalid input, invalid preload-type");
+            responseBuilder.setAckFinalIndicator("Y");
+            RpcResult<PreloadVfModuleTopologyOperationOutput> rpcResult =
+                RpcResultBuilder.<PreloadVfModuleTopologyOperationOutput> status(true).withResult(responseBuilder.build()).build();
+            return Futures.immediateFuture(rpcResult);
+        }
+
+        if (input.getSdncRequestHeader() != null) {
+            responseBuilder.setSvcRequestId(input.getSdncRequestHeader().getSvcRequestId());
+        }
+
+        VfModulePreloadDataBuilder vfModulePreloadDataBuilder = new VfModulePreloadDataBuilder();
+        getVfModulePreloadData(preload_name, preload_type, vfModulePreloadDataBuilder);
+        //preloadData = preloadDataBuilder.build();
+
+        VfModulePreloadDataBuilder operDataBuilder = new VfModulePreloadDataBuilder();
+        getVfModulePreloadData(preload_name, preload_type, operDataBuilder, LogicalDatastoreType.OPERATIONAL );
+
+        //
+        // setup a preload-data object builder
+        // ACTION vnf-topology-operation
+        // INPUT:
+        //  USES sdnc-request-header;
+        //  USES request-information;
+        //  uses vnf-topology-information;
+        // OUTPUT:
+        //  USES vnf-topology-response-body;
+        //
+        // container preload-data
+        //   uses vnf-configuration-information;
+
+
+        log.info("Adding INPUT data for "+SVC_OPERATION+" ["+preload_name+","+preload_type+"] input: " + input);
+        PreloadVfModuleTopologyOperationInputBuilder inputBuilder = new PreloadVfModuleTopologyOperationInputBuilder(input);
+        VnfSdnUtil.toProperties(parms, inputBuilder.build());
+        log.info("Adding OPERATIONAL data for "+SVC_OPERATION+" ["+preload_name+","+preload_type +"] operational-data: " + operDataBuilder.build());
+        VnfSdnUtil.toProperties(parms, "operational-data", operDataBuilder);
+
+        // Call SLI sync method
+        // Get SvcLogicService reference
+
+        VNFSDNSvcLogicServiceClient svcLogicClient = new VNFSDNSvcLogicServiceClient();
+        Properties respProps = null;
+
+        String errorCode = "200";
+        String errorMessage = null;
+        String ackFinal = "Y";
+
+
+        try
+        {
+            if (svcLogicClient.hasGraph("VNF-API", SVC_OPERATION , null, "sync"))
+            {
+
+                try
+                {
+                    respProps = svcLogicClient.execute("VNF-API", SVC_OPERATION, null, "sync", vfModulePreloadDataBuilder, parms);
+                }
+                catch (Exception e)
+                {
+                    log.error("Caught exception executing service logic for "+ SVC_OPERATION, e);
+                    errorMessage = e.getMessage();
+                    errorCode = "500";
+                }
+            } else {
+                errorMessage = "No service logic active for VNF-API: '" + SVC_OPERATION + "'";
+                errorCode = "503";
+            }
+        }
+        catch (Exception e)
+        {
+            errorCode = "500";
+            errorMessage = e.getMessage();
+            log.error("Caught exception looking for service logic", e);
+        }
+
+
+        if (respProps != null)
+        {
+            errorCode = respProps.getProperty("error-code");
+            errorMessage = respProps.getProperty("error-message");
+            ackFinal = respProps.getProperty("ack-final", "Y");
+            // internalError = respProps.getProperty("internal-error", "false");
+        }
+
+        if ( errorCode != null && errorCode.length() != 0 && !( errorCode.equals("0")|| errorCode.equals("200"))) {
+
+            responseBuilder.setResponseCode(errorCode);
+            responseBuilder.setResponseMessage(errorMessage);
+            responseBuilder.setAckFinalIndicator(ackFinal);
+
+            VfModulePreloadListBuilder vfModulePreloadListBuilder = new VfModulePreloadListBuilder();
+            vfModulePreloadListBuilder.setVfModuleName(preload_name);
+            vfModulePreloadListBuilder.setVfModuleModelId(preload_type);
+            vfModulePreloadListBuilder.setVfModulePreloadData(vfModulePreloadDataBuilder.build());
+            log.error("Returned FAILED for "+SVC_OPERATION+" ["+preload_name+","+preload_type+"] error code: '" + errorCode + "', Reason: '" + errorMessage + "'");
+            try {
+                SaveVfModulePreloadList (vfModulePreloadListBuilder.build(), true,LogicalDatastoreType.CONFIGURATION);
+            } catch (Exception e) {
+                log.error("Caught Exception updating MD-SAL for "+SVC_OPERATION+" ["+preload_name+","+preload_type+"] \n",e);
+            }
+            log.debug("Sending Success rpc result due to external error");
+            RpcResult<PreloadVfModuleTopologyOperationOutput> rpcResult =
+                RpcResultBuilder.<PreloadVfModuleTopologyOperationOutput> status(true).withResult(responseBuilder.build()).build();
+            return Futures.immediateFuture(rpcResult);
+        }
+
+        // Got success from SLI
+        try {
+            vfModulePreloadData = vfModulePreloadDataBuilder.build();
+            log.info("Updating MD-SAL for "+SVC_OPERATION+" ["+preload_name+","+preload_type+"] preloadData: " + vfModulePreloadData);
+            // svc-configuration-list
+            VfModulePreloadListBuilder vfModulePreloadListBuilder = new VfModulePreloadListBuilder();
+            vfModulePreloadListBuilder.setVfModuleName(preload_name);
+            vfModulePreloadListBuilder.setVfModuleModelId(preload_type);
+            vfModulePreloadListBuilder.setVfModulePreloadData(vfModulePreloadData);
+
+            // SDNGC-989 set merge flag to false
+            SaveVfModulePreloadList (vfModulePreloadListBuilder.build(), false, LogicalDatastoreType.CONFIGURATION);
+            log.info("Updating OPERATIONAL tree.");
+            SaveVfModulePreloadList (vfModulePreloadListBuilder.build(), false, LogicalDatastoreType.OPERATIONAL);
+        } catch (Exception e) {
+            log.error("Caught Exception updating MD-SAL for "+SVC_OPERATION+" ["+preload_name+","+preload_type+"] \n",e);
+            responseBuilder.setResponseCode("500");
+            responseBuilder.setResponseMessage(e.toString());
+            responseBuilder.setAckFinalIndicator("Y");
+            log.error("Returned FAILED for "+SVC_OPERATION+" ["+preload_name+","+preload_type+"] " + responseBuilder.build());
+            RpcResult<PreloadVfModuleTopologyOperationOutput> rpcResult =
+                RpcResultBuilder.<PreloadVfModuleTopologyOperationOutput> status(false).withResult(responseBuilder.build()).build();
+            return Futures.immediateFuture(rpcResult);
+        }
+
+        // Update succeeded
+        responseBuilder.setResponseCode(errorCode);
+        responseBuilder.setAckFinalIndicator(ackFinal);
+        if (errorMessage != null)
+        {
+            responseBuilder.setResponseMessage(errorMessage);
+        }
+        log.info("Updated MD-SAL for "+SVC_OPERATION+" ["+preload_name+","+preload_type+"] ");
+        log.info("Returned SUCCESS for "+SVC_OPERATION+" ["+preload_name+","+preload_type+"] " + responseBuilder.build());
+
+        RpcResult<PreloadVfModuleTopologyOperationOutput> rpcResult =
+                RpcResultBuilder.<PreloadVfModuleTopologyOperationOutput> status(true).withResult(responseBuilder.build()).build();
+        return Futures.immediateFuture(rpcResult);
+    }
+
+
+    @Override
+    public Future<RpcResult<PreloadNetworkTopologyOperationOutput>> preloadNetworkTopologyOperation(
+            PreloadNetworkTopologyOperationInput input) {
+
+        final String SVC_OPERATION = "preload-network-topology-operation";
+        PreloadData preloadData = null;
+        Properties parms = new Properties();
+
+        log.info( SVC_OPERATION +" called." );
+        // create a new response object
+        PreloadNetworkTopologyOperationOutputBuilder responseBuilder = new PreloadNetworkTopologyOperationOutputBuilder();
+
+        // Result from savePreloadData
+        final SettableFuture<RpcResult<Void>> futureResult = SettableFuture.create();
+
+        if(input == null || input.getNetworkTopologyInformation() == null || input.getNetworkTopologyInformation().getNetworkTopologyIdentifier() == null || input.getNetworkTopologyInformation().getNetworkTopologyIdentifier().getNetworkName() == null || input.getNetworkTopologyInformation().getNetworkTopologyIdentifier().getNetworkType() == null) {
+            log.debug("exiting " +SVC_OPERATION+ " because of invalid input, null or empty vnf-name and vnf-type");
+            responseBuilder.setResponseCode("403");
+            responseBuilder.setResponseMessage("input, null or empty vnf-name and vnf-type");
+            responseBuilder.setAckFinalIndicator("Y");
+            RpcResult<PreloadNetworkTopologyOperationOutput> rpcResult =
+                                RpcResultBuilder.<PreloadNetworkTopologyOperationOutput> status(true).withResult(responseBuilder.build()).build();
+                        return Futures.immediateFuture(rpcResult);
+        }
+
+        // Grab the name and type from the input buffer
+        String preload_name = input.getNetworkTopologyInformation().getNetworkTopologyIdentifier().getNetworkName();
+        String preload_type = input.getNetworkTopologyInformation().getNetworkTopologyIdentifier().getNetworkType();
+
+        // Make sure we have a preload_name and preload_type
+        if(preload_name == null || preload_name.length() == 0 ) {
+            log.debug("exiting "+SVC_OPERATION+" because of invalid preload-name");
+            responseBuilder.setResponseCode("403");
+            responseBuilder.setResponseMessage("input, invalid preload-name");
+            responseBuilder.setAckFinalIndicator("Y");
+            RpcResult<PreloadNetworkTopologyOperationOutput> rpcResult =
+                                RpcResultBuilder.<PreloadNetworkTopologyOperationOutput> status(true).withResult(responseBuilder.build()).build();
+                        return Futures.immediateFuture(rpcResult);
+        }
+        if(preload_type == null || preload_type.length() == 0 ) {
+            log.debug("exiting "+SVC_OPERATION+" because of invalid preload-type");
+            responseBuilder.setResponseCode("403");
+            responseBuilder.setResponseMessage("input, invalid preload-type");
+            responseBuilder.setAckFinalIndicator("Y");
+            RpcResult<PreloadNetworkTopologyOperationOutput> rpcResult =
+                                RpcResultBuilder.<PreloadNetworkTopologyOperationOutput> status(true).withResult(responseBuilder.build()).build();
+                        return Futures.immediateFuture(rpcResult);
+        }
+
+        if (input.getSdncRequestHeader() != null) {
+            responseBuilder.setSvcRequestId(input.getSdncRequestHeader().getSvcRequestId());
+        }
+
+        PreloadDataBuilder preloadDataBuilder = new PreloadDataBuilder();
+        getPreloadData(preload_name, preload_type, preloadDataBuilder);
+
+        PreloadDataBuilder operDataBuilder = new PreloadDataBuilder();
+        getPreloadData(preload_name, preload_type, operDataBuilder, LogicalDatastoreType.OPERATIONAL );
+
+        //
+        // setup a preload-data object builder
+        // ACTION vnf-topology-operation
+        // INPUT:
+        //  USES sdnc-request-header;
+        //  USES request-information;
+        //  uses vnf-topology-information;
+        // OUTPUT:
+        //  USES vnf-topology-response-body;
+        //
+        // container preload-data
+        //   uses vnf-configuration-information;
+
+
+        log.info("Adding INPUT data for "+SVC_OPERATION+" ["+preload_name+","+preload_type+"] input: " + input);
+        PreloadNetworkTopologyOperationInputBuilder inputBuilder = new PreloadNetworkTopologyOperationInputBuilder(input);
+        VnfSdnUtil.toProperties(parms, inputBuilder.build());
+        log.info("Adding OPERATIONAL data for "+SVC_OPERATION+" ["+preload_name+","+preload_type +"] operational-data: " + operDataBuilder.build());
+        VnfSdnUtil.toProperties(parms, "operational-data", operDataBuilder);
+
+        // Call SLI sync method
+        // Get SvcLogicService reference
+
+        VNFSDNSvcLogicServiceClient svcLogicClient = new VNFSDNSvcLogicServiceClient();
+        Properties respProps = null;
+
+        String errorCode = "200";
+        String errorMessage = null;
+        String ackFinal = "Y";
+
+
+        try
+        {
+            if (svcLogicClient.hasGraph("VNF-API", SVC_OPERATION , null, "sync"))
+            {
+
+                try
+                {
+                    respProps = svcLogicClient.execute("VNF-API", SVC_OPERATION, null, "sync", preloadDataBuilder, parms);
+                }
+                catch (Exception e)
+                {
+                    log.error("Caught exception executing service logic for "+ SVC_OPERATION, e);
+                    errorMessage = e.getMessage();
+                    errorCode = "500";
+                }
+            } else {
+                errorMessage = "No service logic active for VNF-API: '" + SVC_OPERATION + "'";
+                errorCode = "503";
+            }
+        }
+        catch (Exception e)
+        {
+            errorCode = "500";
+            errorMessage = e.getMessage();
+            log.error("Caught exception looking for service logic", e);
+        }
+
+
+        if (respProps != null)
+        {
+            errorCode = respProps.getProperty("error-code");
+            errorMessage = respProps.getProperty("error-message");
+            ackFinal = respProps.getProperty("ack-final", "Y");
+            // internalError = respProps.getProperty("internal-error", "false");
+        }
+
+        if ( errorCode != null && errorCode.length() != 0 && !( errorCode.equals("0")|| errorCode.equals("200"))) {
+
+            responseBuilder.setResponseCode(errorCode);
+            responseBuilder.setResponseMessage(errorMessage);
+            responseBuilder.setAckFinalIndicator(ackFinal);
+
+            VnfPreloadListBuilder preloadVnfListBuilder = new VnfPreloadListBuilder();
+            preloadVnfListBuilder.setVnfName(preload_name);
+            preloadVnfListBuilder.setVnfType(preload_type);
+            preloadVnfListBuilder.setPreloadData(preloadDataBuilder.build());
+            log.error("Returned FAILED for "+SVC_OPERATION+" ["+preload_name+","+preload_type+"] error code: '" + errorCode + "', Reason: '" + errorMessage + "'");
+            try {
+                SavePreloadList (preloadVnfListBuilder.build(),true,LogicalDatastoreType.CONFIGURATION);
+            } catch (Exception e) {
+                log.error("Caught Exception updating MD-SAL for "+SVC_OPERATION+" ["+preload_name+","+preload_type+"] \n",e);
+
+            }
+            log.debug("Sending Success rpc result due to external error");
+            RpcResult<PreloadNetworkTopologyOperationOutput> rpcResult =
+                RpcResultBuilder.<PreloadNetworkTopologyOperationOutput> status(true).withResult(responseBuilder.build()).build();
+            return Futures.immediateFuture(rpcResult);
+        }
+
+        // Got success from SLI
+        try {
+            preloadData = preloadDataBuilder.build();
+            log.info("Updating MD-SAL for "+SVC_OPERATION+" ["+preload_name+","+preload_type+"] preloadData: " + preloadData);
+            // svc-configuration-list
+            VnfPreloadListBuilder preloadVnfListBuilder = new VnfPreloadListBuilder();
+            preloadVnfListBuilder.setVnfName(preload_name);
+            preloadVnfListBuilder.setVnfType(preload_type);
+            preloadVnfListBuilder.setPreloadData(preloadData);
+
+            // SDNGC-989 set merge flag to false
+            SavePreloadList (preloadVnfListBuilder.build(), false, LogicalDatastoreType.CONFIGURATION);
+            log.info("Updating OPERATIONAL tree.");
+            SavePreloadList (preloadVnfListBuilder.build(), false, LogicalDatastoreType.OPERATIONAL);
+        } catch (Exception e) {
+            log.error("Caught Exception updating MD-SAL for "+SVC_OPERATION+" ["+preload_name+","+preload_type+"] \n",e);
+            responseBuilder.setResponseCode("500");
+            responseBuilder.setResponseMessage(e.toString());
+            responseBuilder.setAckFinalIndicator("Y");
+            log.error("Returned FAILED for "+SVC_OPERATION+" ["+preload_name+","+preload_type+"] " + responseBuilder.build());
+            RpcResult<PreloadNetworkTopologyOperationOutput> rpcResult =
+                RpcResultBuilder.<PreloadNetworkTopologyOperationOutput> status(false).withResult(responseBuilder.build()).build();
+            return Futures.immediateFuture(rpcResult);
+        }
+
+        // Update succeeded
+        responseBuilder.setResponseCode(errorCode);
+        responseBuilder.setAckFinalIndicator(ackFinal);
+        if (errorMessage != null)
+        {
+            responseBuilder.setResponseMessage(errorMessage);
+        }
+        log.info("Updated MD-SAL for "+SVC_OPERATION+" ["+preload_name+","+preload_type+"] ");
+        log.info("Returned SUCCESS for "+SVC_OPERATION+" ["+preload_name+","+preload_type+"] " + responseBuilder.build());
+
+        RpcResult<PreloadNetworkTopologyOperationOutput> rpcResult =
+                RpcResultBuilder.<PreloadNetworkTopologyOperationOutput> status(true).withResult(responseBuilder.build()).build();
+        return Futures.immediateFuture(rpcResult);
+    }
+}
  * ============LICENSE_END=========================================================
  */
 
-package org.opendaylight.yang.gen.v1.org.openecomp.sdnc.vnfapi.provider.impl.rev140523;
+package org.opendaylight.yang.gen.v1.org.onap.sdnc.vnfapi.provider.impl.rev140523;
 
-import org.openecomp.sdnc.vnfapi.vnfapiProvider;
+import org.onap.sdnc.vnfapi.vnfapiProvider;
 
-public class VnfapiProviderModule extends org.opendaylight.yang.gen.v1.org.openecomp.sdnc.vnfapi.provider.impl.rev140523.AbstractVnfapiProviderModule {
+public class VnfapiProviderModule extends org.opendaylight.yang.gen.v1.org.onap.sdnc.vnfapi.provider.impl.rev140523.AbstractVnfapiProviderModule {
     public VnfapiProviderModule(org.opendaylight.controller.config.api.ModuleIdentifier identifier, org.opendaylight.controller.config.api.DependencyResolver dependencyResolver) {
         super(identifier, dependencyResolver);
     }
 
-    public VnfapiProviderModule(org.opendaylight.controller.config.api.ModuleIdentifier identifier, org.opendaylight.controller.config.api.DependencyResolver dependencyResolver, org.opendaylight.yang.gen.v1.org.openecomp.sdnc.vnfapi.provider.impl.rev140523.VnfapiProviderModule oldModule, java.lang.AutoCloseable oldInstance) {
+    public VnfapiProviderModule(org.opendaylight.controller.config.api.ModuleIdentifier identifier, org.opendaylight.controller.config.api.DependencyResolver dependencyResolver, org.opendaylight.yang.gen.v1.org.onap.sdnc.vnfapi.provider.impl.rev140523.VnfapiProviderModule oldModule, java.lang.AutoCloseable oldInstance) {
         super(identifier, dependencyResolver, oldModule, oldInstance);
     }
 
@@ -28,7 +28,7 @@
 *
 * Do not modify this file unless it is present under src/main directory
 */
-package org.opendaylight.yang.gen.v1.org.openecomp.sdnc.vnfapi.provider.impl.rev140523;
-public class VnfapiProviderModuleFactory extends org.opendaylight.yang.gen.v1.org.openecomp.sdnc.vnfapi.provider.impl.rev140523.AbstractVnfapiProviderModuleFactory {
+package org.opendaylight.yang.gen.v1.org.onap.sdnc.vnfapi.provider.impl.rev140523;
+public class VnfapiProviderModuleFactory extends org.opendaylight.yang.gen.v1.org.onap.sdnc.vnfapi.provider.impl.rev140523.AbstractVnfapiProviderModuleFactory {
 
 }
diff --git a/vnfapi/provider/src/main/java/org/openecomp/sdnc/vnfapi/VNFSDNSvcLogicServiceClient.java b/vnfapi/provider/src/main/java/org/openecomp/sdnc/vnfapi/VNFSDNSvcLogicServiceClient.java
deleted file mode 100644 (file)
index e356baa..0000000
+++ /dev/null
@@ -1,379 +0,0 @@
-/*-
- * ============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=========================================================
- */
-
-package org.openecomp.sdnc.vnfapi;
-
-import java.util.Properties;
-
-import org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.preload.data.PreloadDataBuilder;
-import org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.service.data.ServiceDataBuilder;
-import org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.vf.module.preload.data.VfModulePreloadDataBuilder;
-import org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.vf.module.service.data.VfModuleServiceDataBuilder;
-import org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.vnf.instance.preload.data.VnfInstancePreloadDataBuilder;
-//1610
-import org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.vnf.instance.service.data.VnfInstanceServiceDataBuilder;
-import org.openecomp.sdnc.sli.SvcLogicException;
-import org.openecomp.sdnc.sli.provider.SvcLogicService;
-import org.osgi.framework.BundleContext;
-import org.osgi.framework.FrameworkUtil;
-import org.osgi.framework.ServiceReference;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class VNFSDNSvcLogicServiceClient {
-
-       private static final Logger LOG = LoggerFactory
-                       .getLogger(VNFSDNSvcLogicServiceClient.class);
-
-       private SvcLogicService svcLogic = null;
-
-       public VNFSDNSvcLogicServiceClient()
-       {
-               BundleContext bctx = FrameworkUtil.getBundle(SvcLogicService.class).getBundleContext();
-
-       // Get SvcLogicService reference
-               ServiceReference sref = bctx.getServiceReference(SvcLogicService.NAME);
-               if (sref  != null)
-               {
-                       svcLogic =  (SvcLogicService) bctx.getService(sref);
-
-               }
-               else
-               {
-                       LOG.warn("Cannot find service reference for "+SvcLogicService.NAME);
-
-               }
-       }
-
-       public boolean hasGraph(String module, String rpc, String version, String mode) throws SvcLogicException
-       {
-               return(svcLogic.hasGraph(module, rpc, version, mode));
-       }
-
-       public Properties execute(String module, String rpc, String version, String mode, ServiceDataBuilder serviceData)
-                       throws SvcLogicException {
-
-               Properties parms = new Properties();
-
-               return execute(module,rpc,version, mode,serviceData,parms);
-       }
-
-       public Properties execute(String module, String rpc, String version, String mode, PreloadDataBuilder serviceData)
-                       throws SvcLogicException {
-
-               Properties parms = new Properties();
-
-               return execute(module,rpc,version, mode,serviceData,parms);
-       }
-
-
-       public Properties execute(String module, String rpc, String version, String mode, ServiceDataBuilder serviceData, Properties parms)
-                               throws SvcLogicException {
-
-               parms = VnfSdnUtil.toProperties(parms, serviceData);
-
-               if (LOG.isDebugEnabled())
-               {
-                       LOG.debug("Parameters passed to SLI");
-
-                       for (Object key : parms.keySet()) {
-                               String parmName = (String) key;
-                               String parmValue = parms.getProperty(parmName);
-
-                               LOG.debug(parmName+" = "+parmValue);
-
-                       }
-               }
-
-               Properties respProps = svcLogic.execute(module, rpc, version, mode, parms);
-
-               if (LOG.isDebugEnabled())
-               {
-                       LOG.debug("Parameters returned by SLI");
-
-                       for (Object key : respProps.keySet()) {
-                               String parmName = (String) key;
-                               String parmValue = respProps.getProperty(parmName);
-
-                               LOG.debug(parmName+" = "+parmValue);
-
-                       }
-               }
-               if ("failure".equalsIgnoreCase(respProps.getProperty("SvcLogic.status"))) {
-                       return (respProps);
-               }
-
-               VnfSdnUtil.toBuilder(respProps, serviceData);
-
-               return (respProps);
-       }
-
-
-       public Properties execute(String module, String rpc, String version, String mode, PreloadDataBuilder serviceData, Properties parms)
-                               throws SvcLogicException {
-
-               parms = VnfSdnUtil.toProperties(parms, serviceData);
-
-               if (LOG.isDebugEnabled())
-               {
-                       LOG.debug("Parameters passed to SLI");
-
-                       for (Object key : parms.keySet()) {
-                               String parmName = (String) key;
-                               String parmValue = parms.getProperty(parmName);
-
-                               LOG.debug(parmName+" = "+parmValue);
-
-                       }
-               }
-
-               Properties respProps = svcLogic.execute(module, rpc, version, mode, parms);
-
-               if (LOG.isDebugEnabled())
-               {
-                       LOG.debug("Parameters returned by SLI");
-
-                       for (Object key : respProps.keySet()) {
-                               String parmName = (String) key;
-                               String parmValue = respProps.getProperty(parmName);
-
-                               LOG.debug(parmName+" = "+parmValue);
-
-                       }
-               }
-               if ("failure".equalsIgnoreCase(respProps.getProperty("SvcLogic.status"))) {
-                       return (respProps);
-               }
-
-               VnfSdnUtil.toBuilder(respProps, serviceData);
-
-               return (respProps);
-       }
-
-
-       //1610 vnf-instance
-       public Properties execute(String module, String rpc, String version, String mode, VnfInstanceServiceDataBuilder serviceData)
-                       throws SvcLogicException {
-
-               Properties parms = new Properties();
-
-               return execute(module,rpc,version, mode,serviceData,parms);
-       }
-
-       //1610 vnf-instance
-       public Properties execute(String module, String rpc, String version, String mode, VnfInstanceServiceDataBuilder serviceData, Properties parms)
-                               throws SvcLogicException {
-
-               parms = VnfSdnUtil.toProperties(parms, serviceData);
-
-               if (LOG.isDebugEnabled())
-               {
-                       LOG.debug("Parameters passed to SLI");
-
-                       for (Object key : parms.keySet()) {
-                               String parmName = (String) key;
-                               String parmValue = parms.getProperty(parmName);
-
-                               LOG.debug(parmName+" = "+parmValue);
-
-                       }
-               }
-
-               Properties respProps = svcLogic.execute(module, rpc, version, mode, parms);
-
-               if (LOG.isDebugEnabled())
-               {
-                       LOG.debug("Parameters returned by SLI");
-
-                       for (Object key : respProps.keySet()) {
-                               String parmName = (String) key;
-                               String parmValue = respProps.getProperty(parmName);
-
-                               LOG.debug(parmName+" = "+parmValue);
-
-                       }
-               }
-               if ("failure".equalsIgnoreCase(respProps.getProperty("SvcLogic.status"))) {
-                       return (respProps);
-               }
-
-               VnfSdnUtil.toBuilder(respProps, serviceData);
-
-               return (respProps);
-       }
-
-       //1610 vf-module
-       public Properties execute(String module, String rpc, String version, String mode, VfModuleServiceDataBuilder serviceData)
-                       throws SvcLogicException {
-
-               Properties parms = new Properties();
-
-               return execute(module,rpc,version, mode,serviceData,parms);
-       }
-
-       //1610 vf-module
-       public Properties execute(String module, String rpc, String version, String mode, VfModuleServiceDataBuilder serviceData, Properties parms)
-                               throws SvcLogicException {
-
-               parms = VnfSdnUtil.toProperties(parms, serviceData);
-
-               if (LOG.isDebugEnabled())
-               {
-                       LOG.debug("Parameters passed to SLI");
-
-                       for (Object key : parms.keySet()) {
-                               String parmName = (String) key;
-                               String parmValue = parms.getProperty(parmName);
-
-                               LOG.debug(parmName+" = "+parmValue);
-
-                       }
-               }
-
-               Properties respProps = svcLogic.execute(module, rpc, version, mode, parms);
-
-               if (LOG.isDebugEnabled())
-               {
-                       LOG.debug("Parameters returned by SLI");
-
-                       for (Object key : respProps.keySet()) {
-                               String parmName = (String) key;
-                               String parmValue = respProps.getProperty(parmName);
-
-                               LOG.debug(parmName+" = "+parmValue);
-
-                       }
-               }
-               if ("failure".equalsIgnoreCase(respProps.getProperty("SvcLogic.status"))) {
-                       return (respProps);
-               }
-
-               VnfSdnUtil.toBuilder(respProps, serviceData);
-
-               return (respProps);
-       }
-
-    //1610 vnf-instance-preload
-       public Properties execute(String module, String rpc, String version, String mode, VnfInstancePreloadDataBuilder serviceData)
-                       throws SvcLogicException {
-
-               Properties parms = new Properties();
-
-               return execute(module,rpc,version, mode,serviceData,parms);
-       }
-
-
-    //1610 vnf-instance-preload
-       public Properties execute(String module, String rpc, String version, String mode, VnfInstancePreloadDataBuilder serviceData, Properties parms)
-                               throws SvcLogicException {
-
-               parms = VnfSdnUtil.toProperties(parms, serviceData);
-
-               if (LOG.isDebugEnabled())
-               {
-                       LOG.debug("Parameters passed to SLI");
-
-                       for (Object key : parms.keySet()) {
-                               String parmName = (String) key;
-                               String parmValue = parms.getProperty(parmName);
-
-                               LOG.debug(parmName+" = "+parmValue);
-
-                       }
-               }
-
-               Properties respProps = svcLogic.execute(module, rpc, version, mode, parms);
-
-               if (LOG.isDebugEnabled())
-               {
-                       LOG.debug("Parameters returned by SLI");
-
-                       for (Object key : respProps.keySet()) {
-                               String parmName = (String) key;
-                               String parmValue = respProps.getProperty(parmName);
-
-                               LOG.debug(parmName+" = "+parmValue);
-
-                       }
-               }
-               if ("failure".equalsIgnoreCase(respProps.getProperty("SvcLogic.status"))) {
-                       return (respProps);
-               }
-
-               VnfSdnUtil.toBuilder(respProps, serviceData);
-
-               return (respProps);
-       }
-
-    //1610 vf-module-preload
-       public Properties execute(String module, String rpc, String version, String mode, VfModulePreloadDataBuilder serviceData)
-                       throws SvcLogicException {
-
-               Properties parms = new Properties();
-
-               return execute(module,rpc,version, mode,serviceData,parms);
-       }
-
-
-    //1610 vf-module-preload
-       public Properties execute(String module, String rpc, String version, String mode, VfModulePreloadDataBuilder serviceData, Properties parms)
-                               throws SvcLogicException {
-
-               parms = VnfSdnUtil.toProperties(parms, serviceData);
-
-               if (LOG.isDebugEnabled())
-               {
-                       LOG.debug("Parameters passed to SLI");
-
-                       for (Object key : parms.keySet()) {
-                               String parmName = (String) key;
-                               String parmValue = parms.getProperty(parmName);
-
-                               LOG.debug(parmName+" = "+parmValue);
-
-                       }
-               }
-
-               Properties respProps = svcLogic.execute(module, rpc, version, mode, parms);
-
-               if (LOG.isDebugEnabled())
-               {
-                       LOG.debug("Parameters returned by SLI");
-
-                       for (Object key : respProps.keySet()) {
-                               String parmName = (String) key;
-                               String parmValue = respProps.getProperty(parmName);
-
-                               LOG.debug(parmName+" = "+parmValue);
-
-                       }
-               }
-               if ("failure".equalsIgnoreCase(respProps.getProperty("SvcLogic.status"))) {
-                       return (respProps);
-               }
-
-               VnfSdnUtil.toBuilder(respProps, serviceData);
-
-               return (respProps);
-       }
-
-
-}
diff --git a/vnfapi/provider/src/main/java/org/openecomp/sdnc/vnfapi/VnfSdnUtil.java b/vnfapi/provider/src/main/java/org/openecomp/sdnc/vnfapi/VnfSdnUtil.java
deleted file mode 100644 (file)
index 4a41aac..0000000
+++ /dev/null
@@ -1,233 +0,0 @@
-/*-
- * ============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=========================================================
- */
-
-package org.openecomp.sdnc.vnfapi;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.Properties;
-
-import org.openecomp.sdnc.sli.provider.MdsalHelper;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class VnfSdnUtil extends MdsalHelper {
-
-    private static final Logger LOG = LoggerFactory.getLogger(VnfSdnUtil.class);
-
-    public static File ODLHOME = null;
-
-    private static Properties properties;
-
-
-    public static void loadProperties() {
-
-               if (ODLHOME == null) {
-                       ODLHOME = new File("/opt/opendaylight/current");
-
-                       if (!ODLHOME.isDirectory()) {
-                               ODLHOME = new File("/opt/bvc/controller");
-                       }
-               }
-
-               File propFile = new File(ODLHOME.getAbsolutePath() + "/configuration/vnfapi.properties");
-        String propFileName = propFile.getAbsolutePath();
-        properties = new Properties();
-        InputStream input = null;
-        if (propFile.isFile() && propFile.canRead()) {
-            try    {
-                input = new FileInputStream(propFile);
-                properties.load(input);
-                LOG.info("Loaded properties from " + propFileName );
-                setProperties(properties);
-            } catch (Exception e) {
-                LOG.error("Failed to load properties " + propFileName +"\n",e);
-            } finally {
-                if (input != null) {
-                    try {
-                        input.close();
-                    } catch (IOException e) {
-                        LOG.error("Failed to close properties file " + propFileName +"\n",e);
-                    }
-                }
-            }
-        }
-    }
-
-    static {
-
-        // Trick class loader into loading builders. Some of
-        // these will be needed later by Reflection classes, but need
-        // to explicitly "new" them here to get class loader to load them.
-        org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.network.information.NetworkInformationBuilder u1 =
-            new org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.network.information.NetworkInformationBuilder();
-        org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.network.policy.NetworkPolicyBuilder u2 =
-            new org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.network.policy.NetworkPolicyBuilder();
-        org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.network.request.information.NetworkRequestInformationBuilder u3 =
-            new org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.network.request.information.NetworkRequestInformationBuilder();
-        org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.network.topology.identifier.NetworkTopologyIdentifierBuilder u4 =
-            new org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.network.topology.identifier.NetworkTopologyIdentifierBuilder();
-        org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.network.topology.information.NetworkTopologyInformationBuilder u5 =
-            new org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.network.topology.information.NetworkTopologyInformationBuilder();
-        org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.NetworkTopologyOperationInputBuilder u6 =
-            new org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.NetworkTopologyOperationInputBuilder();
-        org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.NetworkTopologyOperationOutputBuilder u7 =
-            new org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.NetworkTopologyOperationOutputBuilder();
-        org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.oper.status.OperStatusBuilder u8 =
-            new org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.oper.status.OperStatusBuilder();
-        org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.preload.data.PreloadDataBuilder u9 =
-            new org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.preload.data.PreloadDataBuilder();
-        org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.preload.model.information.VnfPreloadListBuilder u10 =
-            new org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.preload.model.information.VnfPreloadListBuilder();
-        org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.PreloadNetworkTopologyOperationInputBuilder u11 =
-            new org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.PreloadNetworkTopologyOperationInputBuilder();
-        org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.PreloadNetworkTopologyOperationOutputBuilder u12 =
-            new org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.PreloadNetworkTopologyOperationOutputBuilder();
-        org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.preload.vf.module.model.information.VfModulePreloadListBuilder u13 =
-            new org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.preload.vf.module.model.information.VfModulePreloadListBuilder();
-        org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.PreloadVfModulesBuilder u14 =
-            new org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.PreloadVfModulesBuilder();
-        org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.PreloadVfModuleTopologyOperationInputBuilder u15 =
-            new org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.PreloadVfModuleTopologyOperationInputBuilder();
-        org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.PreloadVfModuleTopologyOperationOutputBuilder u16 =
-            new org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.PreloadVfModuleTopologyOperationOutputBuilder();
-        org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.preload.vnf.instance.model.information.VnfInstancePreloadListBuilder u17 =
-            new org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.preload.vnf.instance.model.information.VnfInstancePreloadListBuilder();
-        org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.PreloadVnfInstancesBuilder u18 =
-            new org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.PreloadVnfInstancesBuilder();
-        org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.PreloadVnfInstanceTopologyOperationInputBuilder u19 =
-            new org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.PreloadVnfInstanceTopologyOperationInputBuilder();
-        org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.PreloadVnfInstanceTopologyOperationOutputBuilder u20 =
-            new org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.PreloadVnfInstanceTopologyOperationOutputBuilder();
-        org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.PreloadVnfsBuilder u21 =
-            new org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.PreloadVnfsBuilder();
-        org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.PreloadVnfTopologyOperationInputBuilder u22 =
-            new org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.PreloadVnfTopologyOperationInputBuilder();
-        org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.PreloadVnfTopologyOperationOutputBuilder u23 =
-            new org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.PreloadVnfTopologyOperationOutputBuilder();
-        org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.provider.network.information.ProviderNetworkInformationBuilder u24 =
-            new org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.provider.network.information.ProviderNetworkInformationBuilder();
-        org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.request.information.RequestInformationBuilder u25 =
-            new org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.request.information.RequestInformationBuilder();
-        org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.route.table.reference.RouteTableReferenceBuilder u26 =
-            new org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.route.table.reference.RouteTableReferenceBuilder();
-        org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.sdnc.request.header.SdncRequestHeaderBuilder u27 =
-            new org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.sdnc.request.header.SdncRequestHeaderBuilder();
-        org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.service.data.ServiceDataBuilder u28 =
-            new org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.service.data.ServiceDataBuilder();
-        org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.service.information.ServiceInformationBuilder u29 =
-            new org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.service.information.ServiceInformationBuilder();
-        org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.service.status.ServiceStatusBuilder u30 =
-            new org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.service.status.ServiceStatusBuilder();
-        org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.sriov.vlan.filter.list.SriovVlanFilterListBuilder u31 =
-            new org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.sriov.vlan.filter.list.SriovVlanFilterListBuilder();
-        org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.subnets.SubnetsBuilder u32 =
-            new org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.subnets.SubnetsBuilder();
-        org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.vf.module.identifiers.VfModuleIdentifiersBuilder u33 =
-            new org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.vf.module.identifiers.VfModuleIdentifiersBuilder();
-        org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.vf.module.information.VfModuleInformationBuilder u34 =
-            new org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.vf.module.information.VfModuleInformationBuilder();
-        org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.vf.module.model.infrastructure.VfModuleListBuilder u35 =
-            new org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.vf.module.model.infrastructure.VfModuleListBuilder();
-        org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.vf.module.preload.data.VfModulePreloadDataBuilder u36 =
-            new org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.vf.module.preload.data.VfModulePreloadDataBuilder();
-        org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.vf.module.relationship.list.VfModuleRelationshipListBuilder u37 =
-            new org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.vf.module.relationship.list.VfModuleRelationshipListBuilder();
-        org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.vf.module.request.information.VfModuleRequestInformationBuilder u38 =
-            new org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.vf.module.request.information.VfModuleRequestInformationBuilder();
-        org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.VfModulesBuilder u39 =
-            new org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.VfModulesBuilder();
-        org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.vf.module.service.data.VfModuleServiceDataBuilder u40 =
-            new org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.vf.module.service.data.VfModuleServiceDataBuilder();
-        org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.vf.module.topology.information.VfModuleTopologyInformationBuilder u41 =
-            new org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.vf.module.topology.information.VfModuleTopologyInformationBuilder();
-        org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.VfModuleTopologyOperationInputBuilder u42 =
-            new org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.VfModuleTopologyOperationInputBuilder();
-        org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.VfModuleTopologyOperationOutputBuilder u43 =
-            new org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.VfModuleTopologyOperationOutputBuilder();
-        org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.vm.network.InterfaceRoutePrefixesBuilder u44 =
-            new org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.vm.network.InterfaceRoutePrefixesBuilder();
-        org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.vm.network.NetworkIpsBuilder u45 =
-            new org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.vm.network.NetworkIpsBuilder();
-        org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.vm.network.NetworkIpsV6Builder u46 =
-            new org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.vm.network.NetworkIpsV6Builder();
-        org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.vm.network.NetworkMacsBuilder u47 =
-            new org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.vm.network.NetworkMacsBuilder();
-        org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.vm.topology.VnfVmsBuilder u48 =
-            new org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.vm.topology.VnfVmsBuilder();
-        org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.vm.topology.vnf.vms.VmNamesBuilder u49 =
-            new org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.vm.topology.vnf.vms.VmNamesBuilder();
-        org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.vm.topology.vnf.vms.VmNetworksBuilder u50 =
-            new org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.vm.topology.vnf.vms.VmNetworksBuilder();
-        org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.vnf.assignments.vnf.assignments.AvailabilityZonesBuilder u51 =
-            new org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.vnf.assignments.vnf.assignments.AvailabilityZonesBuilder();
-        org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.vnf.assignments.VnfAssignmentsBuilder u52 =
-            new org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.vnf.assignments.VnfAssignmentsBuilder();
-        org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.vnf.assignments.vnf.assignments.VnfNetworksBuilder u53 =
-            new org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.vnf.assignments.vnf.assignments.VnfNetworksBuilder();
-        org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.vnf.information.VnfInformationBuilder u54 =
-            new org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.vnf.information.VnfInformationBuilder();
-        org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.vnf.instance.identifiers.VnfInstanceIdentifiersBuilder u55 =
-            new org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.vnf.instance.identifiers.VnfInstanceIdentifiersBuilder();
-        org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.vnf.instance.information.VnfInstanceInformationBuilder u56 =
-            new org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.vnf.instance.information.VnfInstanceInformationBuilder();
-        org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.vnf.instance.model.infrastructure.VnfInstanceListBuilder u57 =
-            new org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.vnf.instance.model.infrastructure.VnfInstanceListBuilder();
-        org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.vnf.instance.preload.data.VnfInstancePreloadDataBuilder u58 =
-            new org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.vnf.instance.preload.data.VnfInstancePreloadDataBuilder();
-        org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.vnf.instance.request.information.VnfInstanceRequestInformationBuilder u59 =
-            new org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.vnf.instance.request.information.VnfInstanceRequestInformationBuilder();
-        org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.vnf.instance.request.information.vnf.instance.request.information.VnfNetworksBuilder u60 =
-            new org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.vnf.instance.request.information.vnf.instance.request.information.VnfNetworksBuilder();
-        org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.VnfInstancesBuilder u61 =
-            new org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.VnfInstancesBuilder();
-        org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.vnf.instance.service.data.VnfInstanceServiceDataBuilder u62 =
-            new org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.vnf.instance.service.data.VnfInstanceServiceDataBuilder();
-        org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.vnf.instance.topology.information.VnfInstanceTopologyInformationBuilder u63 =
-            new org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.vnf.instance.topology.information.VnfInstanceTopologyInformationBuilder();
-        org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.VnfInstanceTopologyOperationInputBuilder u64 =
-            new org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.VnfInstanceTopologyOperationInputBuilder();
-        org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.VnfInstanceTopologyOperationOutputBuilder u65 =
-            new org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.VnfInstanceTopologyOperationOutputBuilder();
-        org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.vnf.model.infrastructure.VnfListBuilder u66 =
-            new org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.vnf.model.infrastructure.VnfListBuilder();
-        org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.vnf.parameters.VnfParametersBuilder u67 =
-            new org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.vnf.parameters.VnfParametersBuilder();
-        org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.vnf.request.information.VnfRequestInformationBuilder u68 =
-            new org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.vnf.request.information.VnfRequestInformationBuilder();
-        org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.vnf.request.information.vnf.request.information.VnfNetworksBuilder u69 =
-            new org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.vnf.request.information.vnf.request.information.VnfNetworksBuilder();
-        org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.VnfsBuilder u70 =
-            new org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.VnfsBuilder();
-        org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.vnf.topology.identifier.VnfTopologyIdentifierBuilder u71 =
-            new org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.vnf.topology.identifier.VnfTopologyIdentifierBuilder();
-        org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.vnf.topology.information.VnfTopologyInformationBuilder u72 =
-            new org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.vnf.topology.information.VnfTopologyInformationBuilder();
-        org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.VnfTopologyOperationInputBuilder u73 =
-            new org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.VnfTopologyOperationInputBuilder();
-        org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.VnfTopologyOperationOutputBuilder u74 =
-            new org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.VnfTopologyOperationOutputBuilder();
-        org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.vpn.bindings.VpnBindingsBuilder u75 =
-            new org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.vpn.bindings.VpnBindingsBuilder();
-    }
-}
diff --git a/vnfapi/provider/src/main/java/org/openecomp/sdnc/vnfapi/vnfapiProvider.java b/vnfapi/provider/src/main/java/org/openecomp/sdnc/vnfapi/vnfapiProvider.java
deleted file mode 100644 (file)
index 92ba08d..0000000
+++ /dev/null
@@ -1,2651 +0,0 @@
-/*-
- * ============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=========================================================
- */
-
-package org.openecomp.sdnc.vnfapi;
-
-import java.text.DateFormat;
-import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.Properties;
-import java.util.TimeZone;
-import java.util.concurrent.ExecutionException;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Executors;
-import java.util.concurrent.Future;
-
-import org.opendaylight.controller.md.sal.binding.api.DataBroker;
-import org.opendaylight.controller.md.sal.binding.api.DataChangeListener;
-import org.opendaylight.controller.md.sal.binding.api.ReadOnlyTransaction;
-import org.opendaylight.controller.md.sal.binding.api.WriteTransaction;
-import org.opendaylight.controller.md.sal.common.api.data.AsyncDataChangeEvent;
-import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
-import org.opendaylight.controller.md.sal.common.api.data.OptimisticLockFailedException;
-import org.opendaylight.controller.md.sal.common.api.data.TransactionCommitFailedException;
-import org.opendaylight.controller.sal.binding.api.BindingAwareBroker;
-import org.opendaylight.controller.sal.binding.api.NotificationProviderService;
-import org.opendaylight.controller.sal.binding.api.RpcProviderRegistry;
-import org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.NetworkTopologyOperationInput;
-import org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.NetworkTopologyOperationInputBuilder;
-import org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.NetworkTopologyOperationOutput;
-import org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.NetworkTopologyOperationOutputBuilder;
-import org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.PreloadNetworkTopologyOperationInput;
-import org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.PreloadNetworkTopologyOperationInputBuilder;
-import org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.PreloadNetworkTopologyOperationOutput;
-import org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.PreloadNetworkTopologyOperationOutputBuilder;
-import org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.PreloadVfModuleTopologyOperationInput;
-import org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.PreloadVfModuleTopologyOperationInputBuilder;
-import org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.PreloadVfModuleTopologyOperationOutput;
-import org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.PreloadVfModuleTopologyOperationOutputBuilder;
-import org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.PreloadVfModules;
-import org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.PreloadVfModulesBuilder;
-import org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.PreloadVnfInstanceTopologyOperationInput;
-import org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.PreloadVnfInstanceTopologyOperationInputBuilder;
-import org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.PreloadVnfInstanceTopologyOperationOutput;
-import org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.PreloadVnfInstanceTopologyOperationOutputBuilder;
-import org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.PreloadVnfInstances;
-import org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.PreloadVnfInstancesBuilder;
-import org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.PreloadVnfTopologyOperationInput;
-import org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.PreloadVnfTopologyOperationInputBuilder;
-import org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.PreloadVnfTopologyOperationOutput;
-import org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.PreloadVnfTopologyOperationOutputBuilder;
-import org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.PreloadVnfs;
-import org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.PreloadVnfsBuilder;
-import org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.VNFAPIService;
-import org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.VfModuleTopologyOperationInput;
-import org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.VfModuleTopologyOperationInputBuilder;
-import org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.VfModuleTopologyOperationOutput;
-import org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.VfModuleTopologyOperationOutputBuilder;
-import org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.VfModules;
-import org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.VfModulesBuilder;
-import org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.VnfInstanceTopologyOperationInput;
-import org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.VnfInstanceTopologyOperationInputBuilder;
-import org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.VnfInstanceTopologyOperationOutput;
-import org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.VnfInstanceTopologyOperationOutputBuilder;
-import org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.VnfInstances;
-import org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.VnfInstancesBuilder;
-import org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.VnfTopologyOperationInput;
-import org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.VnfTopologyOperationInputBuilder;
-import org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.VnfTopologyOperationOutput;
-import org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.VnfTopologyOperationOutputBuilder;
-import org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.Vnfs;
-import org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.VnfsBuilder;
-import org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.network.information.NetworkInformationBuilder;
-import org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.preload.data.PreloadData;
-import org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.preload.data.PreloadDataBuilder;
-import org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.preload.model.information.VnfPreloadList;
-import org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.preload.model.information.VnfPreloadListBuilder;
-import org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.preload.model.information.VnfPreloadListKey;
-import org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.preload.vf.module.model.information.VfModulePreloadList;
-import org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.preload.vf.module.model.information.VfModulePreloadListBuilder;
-import org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.preload.vf.module.model.information.VfModulePreloadListKey;
-import org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.preload.vnf.instance.model.information.VnfInstancePreloadList;
-import org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.preload.vnf.instance.model.information.VnfInstancePreloadListBuilder;
-import org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.preload.vnf.instance.model.information.VnfInstancePreloadListKey;
-import org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.request.information.RequestInformation;
-import org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.sdnc.request.header.SdncRequestHeader;
-import org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.sdnc.request.header.SdncRequestHeader.SvcAction;
-import org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.service.data.ServiceData;
-import org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.service.data.ServiceDataBuilder;
-import org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.service.status.ServiceStatus;
-import org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.service.status.ServiceStatus.RequestStatus;
-import org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.service.status.ServiceStatus.RpcAction;
-import org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.service.status.ServiceStatus.RpcName;
-import org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.service.status.ServiceStatus.VnfsdnAction;
-import org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.service.status.ServiceStatus.VnfsdnSubaction;
-import org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.service.status.ServiceStatusBuilder;
-import org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.vf.module.information.VfModuleInformationBuilder;
-import org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.vf.module.model.infrastructure.VfModuleList;
-import org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.vf.module.model.infrastructure.VfModuleListBuilder;
-import org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.vf.module.model.infrastructure.VfModuleListKey;
-import org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.vf.module.preload.data.VfModulePreloadData;
-import org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.vf.module.preload.data.VfModulePreloadDataBuilder;
-import org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.vf.module.service.data.VfModuleServiceData;
-import org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.vf.module.service.data.VfModuleServiceDataBuilder;
-import org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.vnf.information.VnfInformationBuilder;
-import org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.vnf.instance.information.VnfInstanceInformationBuilder;
-import org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.vnf.instance.model.infrastructure.VnfInstanceList;
-import org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.vnf.instance.model.infrastructure.VnfInstanceListBuilder;
-import org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.vnf.instance.model.infrastructure.VnfInstanceListKey;
-import org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.vnf.instance.preload.data.VnfInstancePreloadData;
-import org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.vnf.instance.preload.data.VnfInstancePreloadDataBuilder;
-import org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.vnf.instance.service.data.VnfInstanceServiceData;
-import org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.vnf.instance.service.data.VnfInstanceServiceDataBuilder;
-import org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.vnf.model.infrastructure.VnfList;
-import org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.vnf.model.infrastructure.VnfListBuilder;
-import org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.vnf.model.infrastructure.VnfListKey;
-import org.opendaylight.yangtools.concepts.ListenerRegistration;
-import org.opendaylight.yangtools.yang.binding.DataObject;
-import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
-import org.opendaylight.yangtools.yang.common.RpcResult;
-import org.opendaylight.yangtools.yang.common.RpcResultBuilder;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import com.google.common.base.Optional;
-import com.google.common.util.concurrent.CheckedFuture;
-import com.google.common.util.concurrent.FutureCallback;
-import com.google.common.util.concurrent.Futures;
-import com.google.common.util.concurrent.SettableFuture;
-
-
-/**
- * Defines a base implementation for your provider. This class extends from a helper class
- * which provides storage for the most commonly used components of the MD-SAL. Additionally the
- * base class provides some basic logging and initialization / clean up methods.
- *
- */
-
-public class vnfapiProvider implements AutoCloseable, VNFAPIService, DataChangeListener{
-
-       private final Logger log = LoggerFactory.getLogger( vnfapiProvider.class );
-       private final String appName = "vnfapi";
-       private final ExecutorService executor;
-
-
-       private ListenerRegistration<DataChangeListener> dclServices;
-
-       protected DataBroker dataBroker;
-       protected NotificationProviderService notificationService;
-       protected RpcProviderRegistry rpcRegistry;
-       protected BindingAwareBroker.RpcRegistration<VNFAPIService> rpcRegistration;
-
-
-
-       public vnfapiProvider(DataBroker dataBroker2,
-                       NotificationProviderService notificationProviderService,
-                       RpcProviderRegistry rpcProviderRegistry) {
-               this.log.info( "Creating provider for " + appName );
-               executor = Executors.newFixedThreadPool(1);
-               dataBroker = dataBroker2;
-               notificationService = notificationProviderService;
-               rpcRegistry = rpcProviderRegistry;
-               initialize();
-
-       }
-
-       public void initialize(){
-               log.info( "Initializing provider for " + appName );
-               // Create the top level containers
-               createContainers();
-               try {
-                       VnfSdnUtil.loadProperties();
-               } catch (Exception e) {
-                       log.error("Caught Exception while trying to load properties file");
-               }
-               rpcRegistration = rpcRegistry.addRpcImplementation(VNFAPIService.class, this);
-
-               log.info( "Initialization complete for " + appName );
-       }
-
-       private void createContainers() {
-               final WriteTransaction t = dataBroker.newReadWriteTransaction();
-
-               // Create the Vnfs container
-               t.merge(LogicalDatastoreType.CONFIGURATION, InstanceIdentifier.create(Vnfs.class),
-                               new VnfsBuilder().build());
-               t.merge(LogicalDatastoreType.OPERATIONAL, InstanceIdentifier.create(Vnfs.class),
-                               new VnfsBuilder().build());
-
-               // Create the PreloadVnfs container
-               t.merge(LogicalDatastoreType.CONFIGURATION, InstanceIdentifier.create(PreloadVnfs.class),
-                               new PreloadVnfsBuilder().build());
-               t.merge(LogicalDatastoreType.OPERATIONAL, InstanceIdentifier.create(PreloadVnfs.class),
-                               new PreloadVnfsBuilder().build());
-
-               // 1610 Create the PreloadVnfInstances container
-               t.merge(LogicalDatastoreType.CONFIGURATION, InstanceIdentifier.create(PreloadVnfInstances.class),
-                               new PreloadVnfInstancesBuilder().build());
-               t.merge(LogicalDatastoreType.OPERATIONAL, InstanceIdentifier.create(PreloadVnfInstances.class),
-                               new PreloadVnfInstancesBuilder().build());
-
-               // 1610 Create the VnfInstances container
-               t.merge(LogicalDatastoreType.CONFIGURATION, InstanceIdentifier.create(VnfInstances.class),
-                               new VnfInstancesBuilder().build());
-               t.merge(LogicalDatastoreType.OPERATIONAL, InstanceIdentifier.create(VnfInstances.class),
-                               new VnfInstancesBuilder().build());
-
-               // 1610 Create the PreloadVfModules container
-               t.merge(LogicalDatastoreType.CONFIGURATION, InstanceIdentifier.create(PreloadVfModules.class),
-                               new PreloadVfModulesBuilder().build());
-               t.merge(LogicalDatastoreType.OPERATIONAL, InstanceIdentifier.create(PreloadVfModules.class),
-                               new PreloadVfModulesBuilder().build());
-
-               // 1610 Create the VfModules container
-               t.merge(LogicalDatastoreType.CONFIGURATION, InstanceIdentifier.create(VfModules.class),
-                               new VfModulesBuilder().build());
-               t.merge(LogicalDatastoreType.OPERATIONAL, InstanceIdentifier.create(VfModules.class),
-                               new VfModulesBuilder().build());
-
-               try {
-                       CheckedFuture<Void, TransactionCommitFailedException> checkedFuture = t.submit();
-                       checkedFuture.get();
-                       log.info("Create Containers succeeded!: ");
-
-               } catch (InterruptedException | ExecutionException e) {
-                       log.error("Create Containers Failed: " + e);
-                       e.printStackTrace();
-               }
-       }
-
-
-
-       protected void initializeChild() {
-               //Override if you have custom initialization intelligence
-       }
-
-       @Override
-       public void close() throws Exception {
-               log.info( "Closing provider for " + appName );
-           executor.shutdown();
-           rpcRegistration.close();
-               // dclServices.close();
-               log.info( "Successfully closed provider for " + appName );
-       }
-
-       // On data change not used
-       @Override
-       public void onDataChanged(
-                       AsyncDataChangeEvent<InstanceIdentifier<?>, DataObject> change) {
-               boolean changed = false;
-               log.info("   IN ON DATA CHANGE: ");
-               WriteTransaction writeTransaction = dataBroker
-                               .newWriteOnlyTransaction();
-
-               DataObject updatedSubTree = change.getUpdatedSubtree();
-
-               if (updatedSubTree != null) {
-                       if (log.isDebugEnabled())
-                       {
-                               log.debug("updatedSubTree was non-null:" + updatedSubTree);
-                       }
-                       if ( updatedSubTree instanceof Vnfs ) {
-                               ArrayList<VnfList> vnfList = (ArrayList<VnfList>) ((Vnfs) updatedSubTree).getVnfList();
-                               if (vnfList != null) {
-                                       for (VnfList entry : vnfList) {
-                                               ServiceData serviceData = entry.getServiceData();
-                                               ServiceStatus serviceStatus = entry.getServiceStatus();
-                                               if (serviceData != null && serviceStatus != null) {
-                                                       //
-                                                       // ServiceData change detected, check the AckFinal indicator and request-status to see if we need to proceed.
-                                                       //
-                                                       if ((! "Y".equals(serviceStatus.getFinalIndicator())) && (RequestStatus.Synccomplete.equals(serviceStatus.getRequestStatus()))) {
-                                                               if (log.isDebugEnabled())
-                                                               {
-                                                                       log.debug("Final Indicator is not Y, calling handleServiceDataUpdated");
-                                                               }
-                                                               //handleServiceDataUpdated(serviceData, serviceStatus, writeTransaction);
-                                                               changed = true;
-                                                       }
-                                               }
-                                       }
-                               }
-                       }
-                       if ( updatedSubTree instanceof PreloadVnfs ) {
-                               ArrayList<VnfPreloadList> vnfList = (ArrayList<VnfPreloadList>) ((PreloadVnfs) updatedSubTree).getVnfPreloadList();
-                               if (vnfList != null) {
-                                       for (VnfPreloadList entry : vnfList) {
-                                               PreloadData preloadData = entry.getPreloadData();
-                                               if (preloadData != null ) {
-                                                       //
-                                                       // PreloadData change detected
-                                                       //
-                                                       // handlePreloadDataUpdated(preloadData, writeTransaction);
-                                                       changed = true;
-                                               }
-                                       }
-                               }
-                       }
-                       //1610
-                       if ( updatedSubTree instanceof PreloadVnfInstances ) {
-                               ArrayList<VnfInstancePreloadList> vnfInstanceList = (ArrayList<VnfInstancePreloadList>) ((PreloadVnfInstances) updatedSubTree).getVnfInstancePreloadList();
-                               if (vnfInstanceList != null) {
-                                       for (VnfInstancePreloadList entry : vnfInstanceList) {
-                                               VnfInstancePreloadData vnfInstancePreloadData = entry.getVnfInstancePreloadData();
-                                               if (vnfInstancePreloadData != null ) {
-                                                       //
-                                                       // PreloadData change detected
-                                                       //
-                                                       // handlePreloadDataUpdated(preloadData, writeTransaction);
-                                                       changed = true;
-                                               }
-                                       }
-                               }
-                       }
-            //1610
-                       if ( updatedSubTree instanceof VnfInstances ) {
-                               ArrayList<VnfInstanceList> vnfInstanceList = (ArrayList<VnfInstanceList>) ((VnfInstances) updatedSubTree).getVnfInstanceList();
-                               if (vnfInstanceList != null) {
-                                       for (VnfInstanceList entry : vnfInstanceList) {
-                                               VnfInstanceServiceData vnfInstanceServiceData = entry.getVnfInstanceServiceData();
-                                               ServiceStatus serviceStatus = entry.getServiceStatus();
-                                               if (vnfInstanceServiceData != null && serviceStatus != null) {
-                                                       //
-                                                       // VnfInstanceServiceData change detected, check the AckFinal indicator and request-status to see if we need to proceed.
-                                                       //
-                                                       if ((! "Y".equals(serviceStatus.getFinalIndicator())) && (RequestStatus.Synccomplete.equals(serviceStatus.getRequestStatus()))) {
-                                                               if (log.isDebugEnabled())
-                                                               {
-                                                                       log.debug("Final Indicator is not Y, calling handleServiceDataUpdated");
-                                                               }
-                                                               //handleServiceDataUpdated(serviceData, serviceStatus, writeTransaction);
-                                                               changed = true;
-                                                       }
-                                               }
-                                       }
-                               }
-                       }
-                       //1610
-                       if ( updatedSubTree instanceof PreloadVfModules ) {
-                               ArrayList<VfModulePreloadList> vnfInstanceList = (ArrayList<VfModulePreloadList>) ((PreloadVfModules) updatedSubTree).getVfModulePreloadList();
-                               if (vnfInstanceList != null) {
-                                       for (VfModulePreloadList entry : vnfInstanceList) {
-                                               VfModulePreloadData vnfInstancePreloadData = entry.getVfModulePreloadData();
-                                               if (vnfInstancePreloadData != null ) {
-                                                       //
-                                                       // PreloadData change detected
-                                                       //
-                                                       // handlePreloadDataUpdated(preloadData, writeTransaction);
-                                                       changed = true;
-                                               }
-                                       }
-                               }
-            }
-            //1610
-                       if ( updatedSubTree instanceof VfModules ) {
-                               ArrayList<VfModuleList> vfModuleList = (ArrayList<VfModuleList>) ((VfModules) updatedSubTree).getVfModuleList();
-                               if (vfModuleList != null) {
-                                       for (VfModuleList entry : vfModuleList) {
-                                               VfModuleServiceData vfModuleServiceData = entry.getVfModuleServiceData();
-                                               ServiceStatus serviceStatus = entry.getServiceStatus();
-                                               if (vfModuleServiceData != null && serviceStatus != null) {
-                                                       //
-                                                       // VfModuleServiceData change detected, check the AckFinal indicator and request-status to see if we need to proceed.
-                                                       //
-                                                       if ((! "Y".equals(serviceStatus.getFinalIndicator())) && (RequestStatus.Synccomplete.equals(serviceStatus.getRequestStatus()))) {
-                                                               if (log.isDebugEnabled())
-                                                               {
-                                                                       log.debug("Final Indicator is not Y, calling handleServiceDataUpdated");
-                                                               }
-                                                               //handleServiceDataUpdated(serviceData, serviceStatus, writeTransaction);
-                                                               changed = true;
-                                                       }
-                                               }
-                                       }
-                               }
-                       }
-               }
-               // Do the write transaction only if something changed.
-               if (changed) {
-                       CheckedFuture<Void, TransactionCommitFailedException> checkedFuture = writeTransaction
-                                       .submit();
-                       Futures.addCallback(checkedFuture, new FutureCallback<Void>() {
-
-                               @Override
-                               public void onSuccess(Void arg0) {
-                                       log.debug("Successfully updated Service Status");
-                               }
-
-                               @Override
-                               public void onFailure(Throwable ex) {
-                                       log.debug(
-                                                       "Failed updating Service Status",
-                                                       ex);
-                               }
-                       }, executor);
-               }
-       }
-
-       private static class Iso8601Util
-       {
-           private static TimeZone tz = TimeZone.getTimeZone("UTC");
-           private static DateFormat df = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'");
-
-           static
-           {
-               df.setTimeZone(tz);
-           }
-
-           private static String now()
-           {
-               return df.format(new Date());
-           }
-       }
-
-       private void setServiceStatus(ServiceStatusBuilder serviceStatusBuilder, String errorCode, String errorMessage, String ackFinal)
-       {
-               serviceStatusBuilder.setResponseCode(errorCode);
-               serviceStatusBuilder.setResponseMessage(errorMessage);
-               serviceStatusBuilder.setFinalIndicator(ackFinal);
-               serviceStatusBuilder.setResponseTimestamp(Iso8601Util.now());
-       }
-
-       private void setServiceStatus(ServiceStatusBuilder serviceStatusBuilder,  RequestInformation requestInformation)
-       {
-               if (requestInformation != null && requestInformation.getRequestAction() != null) {
-                       switch (requestInformation.getRequestAction())
-                       {
-                       case VNFActivateRequest:
-                               serviceStatusBuilder.setVnfsdnAction(VnfsdnAction.VNFActivateRequest);
-                               break;
-                       case ChangeVNFActivateRequest:
-                               serviceStatusBuilder.setVnfsdnAction(VnfsdnAction.ChangeVNFActivateRequest);
-                               break;
-                       case DisconnectVNFRequest:
-                               serviceStatusBuilder.setVnfsdnAction(VnfsdnAction.DisconnectVNFRequest);
-                               break;
-                       case PreloadVNFRequest:
-                               serviceStatusBuilder.setVnfsdnAction(VnfsdnAction.PreloadVNFRequest);
-                               break;
-                       case DeletePreloadVNFRequest:
-                               serviceStatusBuilder.setVnfsdnAction(VnfsdnAction.DeletePreloadVNFRequest);
-                               break;
-        // 1610 vnf-instance Requests
-                       case VnfInstanceActivateRequest:
-                               serviceStatusBuilder.setVnfsdnAction(VnfsdnAction.VnfInstanceActivateRequest);
-                               break;
-                       case ChangeVnfInstanceActivateRequest:
-                               serviceStatusBuilder.setVnfsdnAction(VnfsdnAction.ChangeVnfInstanceActivateRequest);
-                               break;
-                       case DisconnectVnfInstanceRequest:
-                               serviceStatusBuilder.setVnfsdnAction(VnfsdnAction.DisconnectVnfInstanceRequest);
-                               break;
-                       case PreloadVnfInstanceRequest:
-                               serviceStatusBuilder.setVnfsdnAction(VnfsdnAction.PreloadVnfInstanceRequest);
-                               break;
-        // 1610 vf-module Requests
-                       case VfModuleActivateRequest:
-                               serviceStatusBuilder.setVnfsdnAction(VnfsdnAction.VfModuleActivateRequest);
-                               break;
-                       case ChangeVfModuleActivateRequest:
-                               serviceStatusBuilder.setVnfsdnAction(VnfsdnAction.ChangeVfModuleActivateRequest);
-                               break;
-                       case DisconnectVfModuleRequest:
-                               serviceStatusBuilder.setVnfsdnAction(VnfsdnAction.DisconnectVfModuleRequest);
-                               break;
-                       case PreloadVfModuleRequest:
-                               serviceStatusBuilder.setVnfsdnAction(VnfsdnAction.PreloadVfModuleRequest);
-                               break;
-                       default:
-                               log.error("Unknown RequestAction: " + requestInformation.getRequestAction() );
-                               break;
-                       };
-               }
-               if (requestInformation != null && requestInformation.getRequestSubAction() != null) {
-                       switch (requestInformation.getRequestSubAction())
-                       {
-                       case SUPP:
-                               serviceStatusBuilder.setVnfsdnSubaction(VnfsdnSubaction.SUPP);
-                               break;
-                       case CANCEL:
-                               serviceStatusBuilder.setVnfsdnSubaction(VnfsdnSubaction.CANCEL);
-                               break;
-                       default:
-                               log.error("Unknown RequestSubAction: " + requestInformation.getRequestSubAction() );
-                               break;
-                       };
-               }
-       }
-
-       private void setServiceStatus(ServiceStatusBuilder serviceStatusBuilder,  SdncRequestHeader requestHeader)
-       {
-               if (requestHeader != null && requestHeader.getSvcAction() != null) {
-                       switch (requestHeader.getSvcAction())
-                       {
-                       case Reserve:
-                               serviceStatusBuilder.setRpcAction(RpcAction.Reserve);
-                               break;
-                       case Activate:
-                               serviceStatusBuilder.setRpcAction(RpcAction.Activate);
-                               break;
-                       case Assign:
-                               serviceStatusBuilder.setRpcAction(RpcAction.Assign);
-                               break;
-                       case Delete:
-                               serviceStatusBuilder.setRpcAction(RpcAction.Delete);
-                               break;
-                       case Changeassign:
-                               serviceStatusBuilder.setRpcAction(RpcAction.Changeassign);
-                               break;
-                       case Changedelete:
-                               serviceStatusBuilder.setRpcAction(RpcAction.Changedelete);
-                               break;
-                       case Rollback:
-                               serviceStatusBuilder.setRpcAction(RpcAction.Rollback);
-                               break;
-                       default:
-                               log.error("Unknown SvcAction: " + requestHeader.getSvcAction() );
-                               break;
-                       };
-               }
-       }
-
-       private void getServiceData(String siid, ServiceDataBuilder serviceDataBuilder)
-       {
-               // default to config
-               getServiceData(siid,serviceDataBuilder,LogicalDatastoreType.CONFIGURATION);
-       }
-
-
-       private void getServiceData(String siid, ServiceDataBuilder serviceDataBuilder, LogicalDatastoreType type)
-       {
-               // See if any data exists yet for this siid, if so grab it.
-               InstanceIdentifier serviceInstanceIdentifier =
-                               InstanceIdentifier.<Vnfs>builder(Vnfs.class)
-                               .child(VnfList.class, new VnfListKey(siid)).toInstance();
-               ReadOnlyTransaction readTx = dataBroker.newReadOnlyTransaction();
-               Optional<VnfList> data = null;
-               try {
-                       data = (Optional<VnfList>) readTx.read(type, serviceInstanceIdentifier).get();
-               } catch (InterruptedException | ExecutionException e) {
-                       log.error("Caught Exception reading MD-SAL ("+type+") for ["+siid+"] " ,e);
-               }
-
-               if ( data.isPresent()) {
-                       ServiceData serviceData = (ServiceData) data.get().getServiceData();
-                       if (serviceData != null) {
-                               log.info("Read MD-SAL ("+type+") data for ["+siid+"] ServiceData: " + serviceData);
-                               serviceDataBuilder.setSdncRequestHeader(serviceData.getSdncRequestHeader());
-                               serviceDataBuilder.setRequestInformation(serviceData.getRequestInformation());
-                               serviceDataBuilder.setServiceInformation(serviceData.getServiceInformation());
-                               serviceDataBuilder.setVnfRequestInformation(serviceData.getVnfRequestInformation());
-                               serviceDataBuilder.setVnfId(serviceData.getVnfId());
-                               serviceDataBuilder.setVnfTopologyInformation(serviceData.getVnfTopologyInformation());
-                               serviceDataBuilder.setOperStatus(serviceData.getOperStatus());
-                       } else {
-                               log.info("No service-data found in MD-SAL ("+type+") for ["+siid+"] ");
-                       }
-               } else {
-                       log.info("No data found in MD-SAL ("+type+") for ["+siid+"] ");
-               }
-       }
-
-       //1610 vnf-instance
-       private void getVnfInstanceServiceData(String siid, VnfInstanceServiceDataBuilder vnfInstanceServiceDataBuilder)
-       {
-               // default to config
-               getVnfInstanceServiceData(siid,vnfInstanceServiceDataBuilder,LogicalDatastoreType.CONFIGURATION);
-       }
-       //1610 vnf-instance
-       private void getVnfInstanceServiceData(String siid, VnfInstanceServiceDataBuilder vnfInstanceServiceDataBuilder, LogicalDatastoreType type)
-       {
-               // See if any data exists yet for this siid, if so grab it.
-               InstanceIdentifier vnfInstanceIdentifier =
-                               InstanceIdentifier.<VnfInstances>builder(VnfInstances.class)
-                               .child(VnfInstanceList.class, new VnfInstanceListKey(siid)).toInstance();
-               ReadOnlyTransaction readTx = dataBroker.newReadOnlyTransaction();
-               Optional<VnfInstanceList> data = null;
-               try {
-                       data = (Optional<VnfInstanceList>) readTx.read(type, vnfInstanceIdentifier).get();
-               } catch (InterruptedException | ExecutionException e) {
-                       log.error("Caught Exception reading MD-SAL ("+type+") for ["+siid+"] " ,e);
-               }
-
-               if ( data.isPresent()) {
-                       VnfInstanceServiceData vnfInstanceServiceData = (VnfInstanceServiceData) data.get().getVnfInstanceServiceData();
-                       if (vnfInstanceServiceData != null) {
-                               log.info("Read MD-SAL ("+type+") data for ["+siid+"] VnfInstanceServiceData: " + vnfInstanceServiceData);
-                               vnfInstanceServiceDataBuilder.setSdncRequestHeader(vnfInstanceServiceData.getSdncRequestHeader());
-                               vnfInstanceServiceDataBuilder.setRequestInformation(vnfInstanceServiceData.getRequestInformation());
-                               vnfInstanceServiceDataBuilder.setServiceInformation(vnfInstanceServiceData.getServiceInformation());
-                               vnfInstanceServiceDataBuilder.setVnfInstanceRequestInformation(vnfInstanceServiceData.getVnfInstanceRequestInformation());
-                               vnfInstanceServiceDataBuilder.setVnfInstanceId(vnfInstanceServiceData.getVnfInstanceId());
-                               vnfInstanceServiceDataBuilder.setVnfInstanceTopologyInformation(vnfInstanceServiceData.getVnfInstanceTopologyInformation());
-                               vnfInstanceServiceDataBuilder.setOperStatus(vnfInstanceServiceData.getOperStatus());
-                       } else {
-                               log.info("No vnf-instance-service-data found in MD-SAL ("+type+") for ["+siid+"] ");
-                       }
-               } else {
-                       log.info("No data found in MD-SAL ("+type+") for ["+siid+"] ");
-               }
-       }
-
-       //1610 vf-module
-       private void getVfModuleServiceData(String siid, VfModuleServiceDataBuilder vfModuleServiceDataBuilder)
-       {
-               // default to config
-               getVfModuleServiceData(siid,vfModuleServiceDataBuilder,LogicalDatastoreType.CONFIGURATION);
-       }
-       //1610 vf-module
-       private void getVfModuleServiceData(String siid, VfModuleServiceDataBuilder vfModuleServiceDataBuilder, LogicalDatastoreType type)
-       {
-               // See if any data exists yet for this siid, if so grab it.
-               InstanceIdentifier vfModuleIdentifier =
-                               InstanceIdentifier.<VfModules>builder(VfModules.class)
-                               .child(VfModuleList.class, new VfModuleListKey(siid)).toInstance();
-               ReadOnlyTransaction readTx = dataBroker.newReadOnlyTransaction();
-               Optional<VfModuleList> data = null;
-               try {
-                       data = (Optional<VfModuleList>) readTx.read(type, vfModuleIdentifier).get();
-               } catch (InterruptedException | ExecutionException e) {
-                       log.error("Caught Exception reading MD-SAL ("+type+") for ["+siid+"] " ,e);
-               }
-
-               if ( data.isPresent()) {
-                       VfModuleServiceData vfModuleServiceData = (VfModuleServiceData) data.get().getVfModuleServiceData();
-                       if (vfModuleServiceData != null) {
-                               log.info("Read MD-SAL ("+type+") data for ["+siid+"] VfModuleServiceData: " + vfModuleServiceData);
-                               vfModuleServiceDataBuilder.setSdncRequestHeader(vfModuleServiceData.getSdncRequestHeader());
-                               vfModuleServiceDataBuilder.setRequestInformation(vfModuleServiceData.getRequestInformation());
-                               vfModuleServiceDataBuilder.setServiceInformation(vfModuleServiceData.getServiceInformation());
-                               vfModuleServiceDataBuilder.setVfModuleRequestInformation(vfModuleServiceData.getVfModuleRequestInformation());
-                               vfModuleServiceDataBuilder.setVfModuleId(vfModuleServiceData.getVfModuleId());
-                               vfModuleServiceDataBuilder.setVfModuleTopologyInformation(vfModuleServiceData.getVfModuleTopologyInformation());
-                               vfModuleServiceDataBuilder.setOperStatus(vfModuleServiceData.getOperStatus());
-                       } else {
-                               log.info("No vf-module-service-data found in MD-SAL ("+type+") for ["+siid+"] ");
-                       }
-               } else {
-                       log.info("No data found in MD-SAL ("+type+") for ["+siid+"] ");
-               }
-       }
-
-
-       private void getPreloadData(String vnf_name, String vnf_type, PreloadDataBuilder preloadDataBuilder)
-       {
-               // default to config
-               getPreloadData(vnf_name, vnf_type ,preloadDataBuilder,LogicalDatastoreType.CONFIGURATION);
-       }
-
-       private void getPreloadData(String preload_name, String preload_type, PreloadDataBuilder preloadDataBuilder, LogicalDatastoreType type)
-       {
-               // See if any data exists yet for this name/type, if so grab it.
-               InstanceIdentifier preloadInstanceIdentifier =
-                               InstanceIdentifier.<PreloadVnfs>builder(PreloadVnfs.class)
-                               .child(VnfPreloadList.class, new VnfPreloadListKey(preload_name, preload_type)).toInstance();
-               ReadOnlyTransaction readTx = dataBroker.newReadOnlyTransaction();
-               Optional<VnfPreloadList> data = null;
-               try {
-                       data = (Optional<VnfPreloadList>) readTx.read(type, preloadInstanceIdentifier).get();
-               } catch (InterruptedException | ExecutionException e) {
-                       log.error("Caught Exception reading MD-SAL ("+type+") for ["+preload_name+","+preload_type+"] " ,e);
-               }
-
-               if ( data.isPresent()) {
-                       PreloadData preloadData = (PreloadData) data.get().getPreloadData();
-                       if (preloadData != null) {
-                               log.info("Read MD-SAL ("+type+") data for ["+preload_name+","+preload_type+"] PreloadData: " + preloadData);
-                               preloadDataBuilder.setVnfTopologyInformation(preloadData.getVnfTopologyInformation());
-                               preloadDataBuilder.setNetworkTopologyInformation(preloadData.getNetworkTopologyInformation());
-                               preloadDataBuilder.setOperStatus(preloadData.getOperStatus());
-                       } else {
-                               log.info("No preload-data found in MD-SAL ("+type+") for ["+preload_name+","+preload_type+"] ");
-                       }
-               } else {
-                       log.info("No data found in MD-SAL ("+type+") for ["+preload_name+","+preload_type+"] ");
-               }
-       }
-
-    //1610 preload-vnf-instance
-       private void getVnfInstancePreloadData(String vnf_name, String vnf_type, VnfInstancePreloadDataBuilder preloadDataBuilder)
-       {
-               // default to config
-               getVnfInstancePreloadData(vnf_name, vnf_type ,preloadDataBuilder,LogicalDatastoreType.CONFIGURATION);
-       }
-
-       //1610 preload-vnf-instance
-       private void getVnfInstancePreloadData(String preload_name, String preload_type, VnfInstancePreloadDataBuilder preloadDataBuilder, LogicalDatastoreType type)
-       {
-               // See if any data exists yet for this name/type, if so grab it.
-               InstanceIdentifier preloadInstanceIdentifier =
-                               InstanceIdentifier.<PreloadVnfInstances>builder(PreloadVnfInstances.class)
-                               .child(VnfInstancePreloadList.class, new VnfInstancePreloadListKey(preload_name, preload_type)).toInstance();
-               ReadOnlyTransaction readTx = dataBroker.newReadOnlyTransaction();
-               Optional<VnfInstancePreloadList> data = null;
-               try {
-                       data = (Optional<VnfInstancePreloadList>) readTx.read(type, preloadInstanceIdentifier).get();
-               } catch (InterruptedException | ExecutionException e) {
-                       log.error("Caught Exception reading MD-SAL ("+type+") for ["+preload_name+","+preload_type+"] " ,e);
-               }
-
-               if ( data.isPresent()) {
-                       VnfInstancePreloadData preloadData = (VnfInstancePreloadData) data.get().getVnfInstancePreloadData();
-                       if (preloadData != null) {
-                               log.info("Read MD-SAL ("+type+") data for ["+preload_name+","+preload_type+"] VnfInstancePreloadData: " + preloadData);
-                               preloadDataBuilder.setVnfInstanceTopologyInformation(preloadData.getVnfInstanceTopologyInformation());
-                               preloadDataBuilder.setOperStatus(preloadData.getOperStatus());
-                       } else {
-                               log.info("No vnf-instance-preload-data found in MD-SAL ("+type+") for ["+preload_name+","+preload_type+"] ");
-                       }
-               } else {
-                       log.info("No data found in MD-SAL ("+type+") for ["+preload_name+","+preload_type+"] ");
-               }
-       }
-
-    // 1610 preload-vf-module
-       private void getVfModulePreloadData(String vnf_name, String vnf_type, VfModulePreloadDataBuilder preloadDataBuilder)
-       {
-               // default to config
-               getVfModulePreloadData(vnf_name, vnf_type ,preloadDataBuilder,LogicalDatastoreType.CONFIGURATION);
-       }
-
-       private void getVfModulePreloadData(String preload_name, String preload_type, VfModulePreloadDataBuilder preloadDataBuilder, LogicalDatastoreType type)
-       {
-               // See if any data exists yet for this name/type, if so grab it.
-               InstanceIdentifier preloadInstanceIdentifier =
-                               InstanceIdentifier.<PreloadVfModules>builder(PreloadVfModules.class)
-                               .child(VfModulePreloadList.class, new VfModulePreloadListKey(preload_name, preload_type)).toInstance();
-               ReadOnlyTransaction readTx = dataBroker.newReadOnlyTransaction();
-               Optional<VfModulePreloadList> data = null;
-               try {
-                       data = (Optional<VfModulePreloadList>) readTx.read(type, preloadInstanceIdentifier).get();
-               } catch (InterruptedException | ExecutionException e) {
-                       log.error("Caught Exception reading MD-SAL ("+type+") for ["+preload_name+","+preload_type+"] " ,e);
-               }
-
-               if ( data.isPresent()) {
-                       VfModulePreloadData preloadData = (VfModulePreloadData) data.get().getVfModulePreloadData();
-                       if (preloadData != null) {
-                               log.info("Read MD-SAL ("+type+") data for ["+preload_name+","+preload_type+"] VfModulePreloadData: " + preloadData);
-                               preloadDataBuilder.setVfModuleTopologyInformation(preloadData.getVfModuleTopologyInformation());
-                               preloadDataBuilder.setOperStatus(preloadData.getOperStatus());
-                       } else {
-                               log.info("No preload-data found in MD-SAL ("+type+") for ["+preload_name+","+preload_type+"] ");
-                       }
-               } else {
-                       log.info("No data found in MD-SAL ("+type+") for ["+preload_name+","+preload_type+"] ");
-               }
-       }
-
-       private void SaveVnfList (final VnfList entry, boolean merge, LogicalDatastoreType storeType) throws IllegalStateException {
-               // Each entry will be identifiable by a unique key, we have to create that identifier
-               InstanceIdentifier.InstanceIdentifierBuilder<VnfList> vnfListIdBuilder =
-                               InstanceIdentifier.<Vnfs>builder(Vnfs.class)
-                               .child(VnfList.class, entry.getKey());
-               InstanceIdentifier<VnfList> path = vnfListIdBuilder.toInstance();
-
-               int tries = 2;
-               while(true) {
-                       try {
-                               WriteTransaction tx = dataBroker.newWriteOnlyTransaction();
-                               if (merge) {
-                                       tx.merge(storeType, path, entry);
-                               } else {
-                                       tx.put(storeType, path, entry);
-                               }
-                               tx.submit().checkedGet();
-                               log.debug("Update DataStore succeeded");
-                               break;
-                       } catch (final TransactionCommitFailedException e) {
-                               if(e instanceof OptimisticLockFailedException) {
-                                       if(--tries <= 0) {
-                                               log.debug("Got OptimisticLockFailedException on last try - failing ");
-                                               throw new IllegalStateException(e);
-                                       }
-                                       log.debug("Got OptimisticLockFailedException - trying again ");
-                               } else {
-                                       log.debug("Update DataStore failed");
-                                       throw new IllegalStateException(e);
-                               }
-                       }
-               }
-
-       }
-    private void DeleteVnfList (final VnfList entry, LogicalDatastoreType storeType) throws IllegalStateException {
-        // Each entry will be identifiable by a unique key, we have to create that identifier
-               InstanceIdentifier.InstanceIdentifierBuilder<VnfList> vnfListIdBuilder =
-                               InstanceIdentifier.<Vnfs>builder(Vnfs.class)
-                               .child(VnfList.class, entry.getKey());
-               InstanceIdentifier<VnfList> path = vnfListIdBuilder.toInstance();
-
-        int tries = 2;
-        while (true) {
-            try {
-                WriteTransaction tx = dataBroker.newWriteOnlyTransaction();
-                tx.delete(storeType, path);
-                tx.submit().checkedGet();
-                log.debug("DataStore delete succeeded");
-                break;
-            } catch (final TransactionCommitFailedException e) {
-                if (e instanceof OptimisticLockFailedException) {
-                    if (--tries <= 0) {
-                        log.debug("Got OptimisticLockFailedException on last try - failing ");
-                        throw new IllegalStateException(e);
-                    }
-                    log.debug("Got OptimisticLockFailedException - trying again ");
-                } else {
-                    log.debug("Delete DataStore failed");
-                    throw new IllegalStateException(e);
-                }
-            }
-        }
-    }
-
-       //1610 vnf-instance
-       private void SaveVnfInstanceList (final VnfInstanceList entry, boolean merge, LogicalDatastoreType storeType) throws IllegalStateException {
-               // Each entry will be identifiable by a unique key, we have to create that identifier
-               InstanceIdentifier.InstanceIdentifierBuilder<VnfInstanceList> vnfInstanceListIdBuilder =
-                               InstanceIdentifier.<VnfInstances>builder(VnfInstances.class)
-                               .child(VnfInstanceList.class, entry.getKey());
-               InstanceIdentifier<VnfInstanceList> path = vnfInstanceListIdBuilder.toInstance();
-
-               int tries = 2;
-               while(true) {
-                       try {
-                               WriteTransaction tx = dataBroker.newWriteOnlyTransaction();
-                               if (merge) {
-                                       tx.merge(storeType, path, entry);
-                               } else {
-                                       tx.put(storeType, path, entry);
-                               }
-                               tx.submit().checkedGet();
-                               log.debug("Update DataStore succeeded");
-                               break;
-                       } catch (final TransactionCommitFailedException e) {
-                               if(e instanceof OptimisticLockFailedException) {
-                                       if(--tries <= 0) {
-                                               log.debug("Got OptimisticLockFailedException on last try - failing ");
-                                               throw new IllegalStateException(e);
-                                       }
-                                       log.debug("Got OptimisticLockFailedException - trying again ");
-                               } else {
-                                       log.debug("Update DataStore failed");
-                                       throw new IllegalStateException(e);
-                               }
-                       }
-               }
-       }
-
-       //1610 vf-module
-       private void SaveVfModuleList (final VfModuleList entry, boolean merge, LogicalDatastoreType storeType) throws IllegalStateException {
-               // Each entry will be identifiable by a unique key, we have to create that identifier
-               InstanceIdentifier.InstanceIdentifierBuilder<VfModuleList> vfModuleListIdBuilder =
-                               InstanceIdentifier.<VfModules>builder(VfModules.class)
-                               .child(VfModuleList.class, entry.getKey());
-               InstanceIdentifier<VfModuleList> path = vfModuleListIdBuilder.toInstance();
-
-               int tries = 2;
-               while(true) {
-                       try {
-                               WriteTransaction tx = dataBroker.newWriteOnlyTransaction();
-                               if (merge) {
-                                       tx.merge(storeType, path, entry);
-                               } else {
-                                       tx.put(storeType, path, entry);
-                               }
-                               tx.submit().checkedGet();
-                               log.debug("Update DataStore succeeded");
-                               break;
-                       } catch (final TransactionCommitFailedException e) {
-                               if(e instanceof OptimisticLockFailedException) {
-                                       if(--tries <= 0) {
-                                               log.debug("Got OptimisticLockFailedException on last try - failing ");
-                                               throw new IllegalStateException(e);
-                                       }
-                                       log.debug("Got OptimisticLockFailedException - trying again ");
-                               } else {
-                                       log.debug("Update DataStore failed");
-                                       throw new IllegalStateException(e);
-                               }
-                       }
-               }
-       }
-
-       private void SavePreloadList(final VnfPreloadList entry, boolean merge, LogicalDatastoreType storeType) throws IllegalStateException{
-
-               // Each entry will be identifiable by a unique key, we have to create that identifier
-               InstanceIdentifier.InstanceIdentifierBuilder<VnfPreloadList> vnfListIdBuilder =
-                               InstanceIdentifier.<PreloadVnfs>builder(PreloadVnfs.class)
-                               .child(VnfPreloadList.class, entry.getKey());
-               InstanceIdentifier<VnfPreloadList> path = vnfListIdBuilder.toInstance();
-               int tries = 2;
-               while(true) {
-                       try {
-                               WriteTransaction tx = dataBroker.newWriteOnlyTransaction();
-                               if (merge) {
-                                       tx.merge(storeType, path, entry);
-                               } else {
-                                       tx.put(storeType, path, entry);
-                               }
-                               tx.submit().checkedGet();
-                               log.debug("Update DataStore succeeded");
-                               break;
-                       } catch (final TransactionCommitFailedException e) {
-                               if(e instanceof OptimisticLockFailedException) {
-                                       if(--tries <= 0) {
-                                               log.debug("Got OptimisticLockFailedException on last try - failing ");
-                                               throw new IllegalStateException(e);
-                                       }
-                                       log.debug("Got OptimisticLockFailedException - trying again ");
-                               } else {
-                                       log.debug("Update DataStore failed");
-                                       throw new IllegalStateException(e);
-                               }
-                       }
-               }
-       }
-
-    //1610 preload vnf-instance
-       private void SaveVnfInstancePreloadList(final VnfInstancePreloadList entry, boolean merge, LogicalDatastoreType storeType) throws IllegalStateException{
-
-               // Each entry will be identifiable by a unique key, we have to create that identifier
-               InstanceIdentifier.InstanceIdentifierBuilder<VnfInstancePreloadList> vnfInstanceListIdBuilder =
-                               InstanceIdentifier.<PreloadVnfInstances>builder(PreloadVnfInstances.class)
-                               .child(VnfInstancePreloadList.class, entry.getKey());
-               InstanceIdentifier<VnfInstancePreloadList> path = vnfInstanceListIdBuilder.toInstance();
-               int tries = 2;
-               while(true) {
-                       try {
-                               WriteTransaction tx = dataBroker.newWriteOnlyTransaction();
-                               if (merge) {
-                                       tx.merge(storeType, path, entry);
-                               } else {
-                                       tx.put(storeType, path, entry);
-                               }
-                               tx.submit().checkedGet();
-                               log.debug("Update DataStore succeeded");
-                               break;
-                       } catch (final TransactionCommitFailedException e) {
-                               if(e instanceof OptimisticLockFailedException) {
-                                       if(--tries <= 0) {
-                                               log.debug("Got OptimisticLockFailedException on last try - failing ");
-                                               throw new IllegalStateException(e);
-                                       }
-                                       log.debug("Got OptimisticLockFailedException - trying again ");
-                               } else {
-                                       log.debug("Update DataStore failed");
-                                       throw new IllegalStateException(e);
-                               }
-                       }
-               }
-       }
-
-    //1610 preload vf-module
-       private void SaveVfModulePreloadList(final VfModulePreloadList entry, boolean merge, LogicalDatastoreType storeType) throws IllegalStateException{
-
-               // Each entry will be identifiable by a unique key, we have to create that identifier
-               InstanceIdentifier.InstanceIdentifierBuilder<VfModulePreloadList> vfModuleListIdBuilder =
-                               InstanceIdentifier.<PreloadVfModules>builder(PreloadVfModules.class)
-                               .child(VfModulePreloadList.class, entry.getKey());
-               InstanceIdentifier<VfModulePreloadList> path = vfModuleListIdBuilder.toInstance();
-               int tries = 2;
-               while(true) {
-                       try {
-                               WriteTransaction tx = dataBroker.newWriteOnlyTransaction();
-                               if (merge) {
-                                       tx.merge(storeType, path, entry);
-                               } else {
-                                       tx.put(storeType, path, entry);
-                               }
-                               tx.submit().checkedGet();
-                               log.debug("Update DataStore succeeded");
-                               break;
-                       } catch (final TransactionCommitFailedException e) {
-                               if(e instanceof OptimisticLockFailedException) {
-                                       if(--tries <= 0) {
-                                               log.debug("Got OptimisticLockFailedException on last try - failing ");
-                                               throw new IllegalStateException(e);
-                                       }
-                                       log.debug("Got OptimisticLockFailedException - trying again ");
-                               } else {
-                                       log.debug("Update DataStore failed");
-                                       throw new IllegalStateException(e);
-                               }
-                       }
-               }
-       }
-
-       //1610 vnf-instance-topology-operation
-       @Override
-       public Future<RpcResult<VnfInstanceTopologyOperationOutput>> vnfInstanceTopologyOperation(
-                       VnfInstanceTopologyOperationInput input) {
-
-               final String SVC_OPERATION = "vnf-instance-topology-operation";
-               VnfInstanceServiceData vnfInstanceServiceData = null;
-               ServiceStatusBuilder serviceStatusBuilder = new ServiceStatusBuilder();
-               Properties parms = new Properties();
-
-               log.info( SVC_OPERATION +" called." );
-               // create a new response object
-               VnfInstanceTopologyOperationOutputBuilder responseBuilder = new VnfInstanceTopologyOperationOutputBuilder();
-
-               //if(input == null || input.getVnfInstanceRequestInformation().getVnfInstanceTopologyIdentifier().getVnfInstanceId() == null )
-               if(input == null ||
-            input.getVnfInstanceRequestInformation() == null  ||
-                       input.getVnfInstanceRequestInformation().getVnfInstanceId() == null )
-        {
-                       log.debug("exiting " +SVC_OPERATION+ " because of invalid input, null or empty vnf-instance-id");
-                       responseBuilder.setResponseCode("403");
-                       responseBuilder.setResponseMessage("invalid input, null or empty vnf-instance-id");
-                       responseBuilder.setAckFinalIndicator("Y");
-                       RpcResult<VnfInstanceTopologyOperationOutput> rpcResult =
-                                       RpcResultBuilder.<VnfInstanceTopologyOperationOutput> status(true).withResult(responseBuilder.build()).build();
-                       // return error
-                       return Futures.immediateFuture(rpcResult);
-               }
-
-               // Grab the service instance ID from the input buffer
-               String viid = input.getVnfInstanceRequestInformation().getVnfInstanceId();
-               String preload_name  = input.getVnfInstanceRequestInformation().getVnfInstanceName();
-               String preload_type = input.getVnfInstanceRequestInformation().getVnfModelId();
-
-               // Make sure we have a valid viid
-               if(viid == null || viid.length() == 0 ) {
-                       log.debug("exiting "+SVC_OPERATION+" because of invalid vnf-instance-id");
-                       responseBuilder.setResponseCode("403");
-                       responseBuilder.setResponseMessage("invalid input, null or empty vnf-instance-id");
-                       responseBuilder.setAckFinalIndicator("Y");
-                       RpcResult<VnfInstanceTopologyOperationOutput> rpcResult =
-                                       RpcResultBuilder.<VnfInstanceTopologyOperationOutput> status(true).withResult(responseBuilder.build()).build();
-                       // return error
-                       return Futures.immediateFuture(rpcResult);
-               }
-
-               if (input.getSdncRequestHeader() != null) {
-                       responseBuilder.setSvcRequestId(input.getSdncRequestHeader().getSvcRequestId());
-               }
-
-        // Get vnf-instance-preload-data
-               VnfInstancePreloadDataBuilder vnfInstancePreloadDataBuilder = new VnfInstancePreloadDataBuilder();
-               getVnfInstancePreloadData(preload_name, preload_type, vnfInstancePreloadDataBuilder);
-
-        // Get service-data
-               VnfInstanceServiceDataBuilder vnfInstanceServiceDataBuilder = new VnfInstanceServiceDataBuilder();
-               getVnfInstanceServiceData(viid,vnfInstanceServiceDataBuilder);
-
-        // Get operational-data
-               VnfInstanceServiceDataBuilder operDataBuilder = new VnfInstanceServiceDataBuilder();
-               getVnfInstanceServiceData(viid,operDataBuilder, LogicalDatastoreType.OPERATIONAL );
-
-               // Set the serviceStatus based on input
-               setServiceStatus(serviceStatusBuilder, input.getSdncRequestHeader());
-               setServiceStatus(serviceStatusBuilder, input.getRequestInformation());
-
-               //
-               // setup a service-data object builder
-               // ACTION vnf-topology-operation
-               // INPUT:
-               //  USES sdnc-request-header;
-               //  USES request-information;
-               //  USES service-information;
-               //  USES vnf-request-information
-               // OUTPUT:
-               //  USES vnf-topology-response-body;
-               //  USES vnf-information
-               //  USES service-information
-               //
-               // container service-data
-        //   uses vnf-configuration-information;
-        //   uses oper-status;
-
-               log.info("Adding INPUT data for "+SVC_OPERATION+" ["+viid+"] input: " + input);
-               VnfInstanceTopologyOperationInputBuilder inputBuilder = new VnfInstanceTopologyOperationInputBuilder(input);
-               VnfSdnUtil.toProperties(parms, inputBuilder.build());
-
-               log.info("Adding OPERATIONAL data for "+SVC_OPERATION+" ["+viid+"] operational-data: " + operDataBuilder.build());
-               VnfSdnUtil.toProperties(parms, "operational-data", operDataBuilder);
-
-               log.info("Adding CONFIG data for "+SVC_OPERATION+" ["+preload_name+","+preload_type+"] preload-data: " + vnfInstancePreloadDataBuilder.build());
-               VnfSdnUtil.toProperties(parms, "vnf-instance-preload-data", vnfInstancePreloadDataBuilder);
-
-               // Call SLI sync method
-               // Get SvcLogicService reference
-
-               VNFSDNSvcLogicServiceClient svcLogicClient = new VNFSDNSvcLogicServiceClient();
-               Properties respProps = null;
-
-               String errorCode = "200";
-               String errorMessage = null;
-               String ackFinal = "Y";
-
-
-               try
-               {
-                       if (svcLogicClient.hasGraph("VNF-API", SVC_OPERATION , null, "sync"))
-                       {
-
-                               try
-                               {
-                                       respProps = svcLogicClient.execute("VNF-API", SVC_OPERATION, null, "sync", vnfInstanceServiceDataBuilder, parms);
-                               }
-                               catch (Exception e)
-                               {
-                                       log.error("Caught exception executing service logic for "+ SVC_OPERATION, e);
-                                       errorMessage = e.getMessage();
-                                       errorCode = "500";
-                               }
-                       } else {
-                               errorMessage = "No service logic active for VNF-API: '" + SVC_OPERATION + "'";
-                               errorCode = "503";
-                       }
-               }
-               catch (Exception e)
-               {
-                       errorCode = "500";
-                       errorMessage = e.getMessage();
-                       log.error("Caught exception looking for service logic", e);
-               }
-
-
-               if (respProps != null)
-               {
-                       errorCode = respProps.getProperty("error-code");
-                       errorMessage = respProps.getProperty("error-message");
-                       ackFinal = respProps.getProperty("ack-final", "Y");
-               }
-
-               setServiceStatus(serviceStatusBuilder,errorCode, errorMessage, ackFinal);
-               serviceStatusBuilder.setRequestStatus(RequestStatus.Synccomplete);
-               serviceStatusBuilder.setRpcName(RpcName.VnfInstanceTopologyOperation);
-
-               if ( errorCode != null && errorCode.length() != 0 && !( errorCode.equals("0")|| errorCode.equals("200"))) {
-                       responseBuilder.setResponseCode(errorCode);
-                       responseBuilder.setResponseMessage(errorMessage);
-                       responseBuilder.setAckFinalIndicator(ackFinal);
-                       VnfInstanceListBuilder vnfInstanceListBuilder = new VnfInstanceListBuilder();
-                       vnfInstanceListBuilder.setVnfInstanceId(viid);
-                       vnfInstanceListBuilder.setServiceStatus(serviceStatusBuilder.build());
-                       try {
-                               SaveVnfInstanceList (vnfInstanceListBuilder.build(), true,LogicalDatastoreType.CONFIGURATION);
-                       } catch (Exception e) {
-                               log.error("Caught Exception updating MD-SAL for "+SVC_OPERATION+" ["+viid+"] \n",e);
-                       }
-                       log.error("Returned FAILED for "+SVC_OPERATION+" ["+viid+"] " + responseBuilder.build());
-                       RpcResult<VnfInstanceTopologyOperationOutput> rpcResult =
-                                       RpcResultBuilder.<VnfInstanceTopologyOperationOutput> status(true).withResult(responseBuilder.build()).build();
-                       // return error
-                       return Futures.immediateFuture(rpcResult);
-               }
-
-               // Got success from SLI
-               try {
-                       vnfInstanceServiceData = vnfInstanceServiceDataBuilder.build();
-                       log.info("Updating MD-SAL for "+SVC_OPERATION+" ["+viid+"] VnfInstanceServiceData: " + vnfInstanceServiceData);
-                       // svc-configuration-list
-                       VnfInstanceListBuilder vnfInstanceListBuilder = new VnfInstanceListBuilder();
-                       vnfInstanceListBuilder.setVnfInstanceServiceData(vnfInstanceServiceData);
-                       vnfInstanceListBuilder.setVnfInstanceId(vnfInstanceServiceData.getVnfInstanceId());
-                       //siid = vnfInstanceServiceData.getVnfInstanceId();
-                       vnfInstanceListBuilder.setServiceStatus(serviceStatusBuilder.build());
-                       SaveVnfInstanceList (vnfInstanceListBuilder.build(), false,LogicalDatastoreType.CONFIGURATION);
-                       if (input.getSdncRequestHeader() != null && input.getSdncRequestHeader().getSvcAction() != null)
-                       {
-                               // Only update operational tree on Delete or Activate
-                               if (input.getSdncRequestHeader().getSvcAction().equals(SvcAction.Delete) ||
-                                   input.getSdncRequestHeader().getSvcAction().equals(SvcAction.Activate))
-                               {
-                                       log.info("Updating OPERATIONAL tree.");
-                                       SaveVnfInstanceList (vnfInstanceListBuilder.build(), false, LogicalDatastoreType.OPERATIONAL);
-                               }
-                       }
-                       VnfInstanceInformationBuilder vnfInstanceInformationBuilder = new VnfInstanceInformationBuilder();
-                       vnfInstanceInformationBuilder.setVnfInstanceId(viid);
-                       responseBuilder.setVnfInstanceInformation(vnfInstanceInformationBuilder.build());
-                       responseBuilder.setServiceInformation(vnfInstanceServiceData.getServiceInformation());
-               } catch (Exception e) {
-                       log.error("Caught Exception updating MD-SAL for "+SVC_OPERATION+" ["+viid+"] \n",e);
-                       responseBuilder.setResponseCode("500");
-                       responseBuilder.setResponseMessage(e.toString());
-                       responseBuilder.setAckFinalIndicator("Y");
-                       log.error("Returned FAILED for "+SVC_OPERATION+" ["+viid+"] " + responseBuilder.build());
-                       RpcResult<VnfInstanceTopologyOperationOutput> rpcResult =
-                                       RpcResultBuilder.<VnfInstanceTopologyOperationOutput> status(true).withResult(responseBuilder.build()).build();
-                       // return error
-                       return Futures.immediateFuture(rpcResult);
-               }
-
-               // Update succeeded
-               responseBuilder.setResponseCode(errorCode);
-               responseBuilder.setAckFinalIndicator(ackFinal);
-               if (errorMessage != null)
-               {
-                       responseBuilder.setResponseMessage(errorMessage);
-               }
-               log.info("Updated MD-SAL for "+SVC_OPERATION+" ["+viid+"] ");
-               log.info("Returned SUCCESS for "+SVC_OPERATION+" ["+viid+"] " + responseBuilder.build());
-
-               RpcResult<VnfInstanceTopologyOperationOutput> rpcResult =
-                               RpcResultBuilder.<VnfInstanceTopologyOperationOutput> status(true).withResult(responseBuilder.build()).build();
-               // return success
-               return Futures.immediateFuture(rpcResult);
-       }
-
-       //1610 vf-module-topology-operation
-       @Override
-       public Future<RpcResult<VfModuleTopologyOperationOutput>> vfModuleTopologyOperation(
-                       VfModuleTopologyOperationInput input) {
-
-               final String SVC_OPERATION = "vf-module-topology-operation";
-               VfModuleServiceData vfModuleServiceData = null;
-               VnfInstanceServiceData vnfInstanceServiceData = null;
-               ServiceStatusBuilder serviceStatusBuilder = new ServiceStatusBuilder();
-               Properties parms = new Properties();
-
-               log.info( SVC_OPERATION +" called." );
-               // create a new response object
-               VfModuleTopologyOperationOutputBuilder responseBuilder = new VfModuleTopologyOperationOutputBuilder();
-
-        // Validate vf-module-id from vf-module-request-information
-        if(input == null ||
-            input.getVfModuleRequestInformation() == null ||
-                input.getVfModuleRequestInformation().getVfModuleId() == null)
-        {
-                       log.debug("exiting " +SVC_OPERATION+ " because of invalid input, null or empty vf-module-id");
-                       responseBuilder.setResponseCode("403");
-                       responseBuilder.setResponseMessage("invalid input, null or empty vf-module-id");
-                       responseBuilder.setAckFinalIndicator("Y");
-                       RpcResult<VfModuleTopologyOperationOutput> rpcResult =
-                                       RpcResultBuilder.<VfModuleTopologyOperationOutput> status(true).withResult(responseBuilder.build()).build();
-                       // return error
-                       return Futures.immediateFuture(rpcResult);
-               }
-
-               // Grab the vf-module-request-information.vf-module-id from the input buffer
-               String vfid  = input.getVfModuleRequestInformation().getVfModuleId();
-               String preload_name  = input.getVfModuleRequestInformation().getVfModuleName();
-               String preload_type = input.getVfModuleRequestInformation().getVfModuleModelId();
-
-               // Make sure we have a valid siid
-               if(vfid == null || vfid.length() == 0 ) {
-                       log.debug("exiting "+SVC_OPERATION+" because of invalid vf-module-id");
-                       responseBuilder.setResponseCode("403");
-                       responseBuilder.setResponseMessage("invalid input, null or empty vf-module-id");
-                       responseBuilder.setAckFinalIndicator("Y");
-                       RpcResult<VfModuleTopologyOperationOutput> rpcResult =
-                                       RpcResultBuilder.<VfModuleTopologyOperationOutput> status(true).withResult(responseBuilder.build()).build();
-                       // return error
-                       return Futures.immediateFuture(rpcResult);
-               }
-
-        // 1610 add vf-module-id to vnf-instance-list.vf-module-relationship-list
-               String viid = input.getVfModuleRequestInformation().getVnfInstanceId();
-
-               if(viid == null || viid.length() == 0 ) {
-                       log.debug("exiting "+SVC_OPERATION+" because of invalid vnf-instance-id");
-                       responseBuilder.setResponseCode("403");
-                       responseBuilder.setResponseMessage("invalid input, null or empty vnf-instance-id");
-                       responseBuilder.setAckFinalIndicator("Y");
-                       RpcResult<VfModuleTopologyOperationOutput> rpcResult =
-                                       RpcResultBuilder.<VfModuleTopologyOperationOutput> status(true).withResult(responseBuilder.build()).build();
-                       // return error
-                       return Futures.immediateFuture(rpcResult);
-               }
-
-               if (input.getSdncRequestHeader() != null) {
-                       responseBuilder.setSvcRequestId(input.getSdncRequestHeader().getSvcRequestId());
-               }
-
-        // Get vf-module-preload-data
-               VfModulePreloadDataBuilder vfModulePreloadDataBuilder = new VfModulePreloadDataBuilder();
-               getVfModulePreloadData(preload_name, preload_type, vfModulePreloadDataBuilder);
-
-        // Get vf-module-service-data
-               VfModuleServiceDataBuilder vfModuleServiceDataBuilder = new VfModuleServiceDataBuilder();
-               getVfModuleServiceData(vfid,vfModuleServiceDataBuilder);
-
-        // Get vf-module operation-data
-               VfModuleServiceDataBuilder operDataBuilder = new VfModuleServiceDataBuilder();
-               getVfModuleServiceData(vfid,operDataBuilder, LogicalDatastoreType.OPERATIONAL );
-
-        // save service-data builder object for rollback
-               VfModuleServiceDataBuilder rb_vfModuleServiceDataBuilder = vfModuleServiceDataBuilder;
-               VfModuleServiceDataBuilder rb_operDataBuilder = operDataBuilder;
-
-        // 1610 Need to pull vnf-instance-list.vf-module-relationship-list from MD-SAL
-               VnfInstanceServiceDataBuilder vnfInstanceServiceDataBuilder = new VnfInstanceServiceDataBuilder();
-               getVnfInstanceServiceData(viid, vnfInstanceServiceDataBuilder);
-
-        // vnf-instance operational-data
-               VnfInstanceServiceDataBuilder vnfInstanceOperDataBuilder = new VnfInstanceServiceDataBuilder();
-               getVnfInstanceServiceData(viid, vnfInstanceOperDataBuilder, LogicalDatastoreType.OPERATIONAL );
-
-        // save operational builder object for rollback
-               VnfInstanceServiceDataBuilder rb_vnfInstanceServiceDataBuilder = vnfInstanceServiceDataBuilder;
-               VnfInstanceServiceDataBuilder rb_vnfInstanceOperDataBuilder = vnfInstanceOperDataBuilder;
-
-               // Set the serviceStatus based on input
-               setServiceStatus(serviceStatusBuilder, input.getSdncRequestHeader());
-               setServiceStatus(serviceStatusBuilder, input.getRequestInformation());
-
-               //
-               // setup a service-data object builder
-               // ACTION vnf-topology-operation
-               // INPUT:
-               //  USES sdnc-request-header;
-               //  USES request-information;
-               //  USES service-information;
-               //  USES vnf-request-information
-               // OUTPUT:
-               //  USES vnf-topology-response-body;
-               //  USES vnf-information
-               //  USES service-information
-               //
-               // container service-data
-        //   uses vnf-configuration-information;
-        //   uses oper-status;
-
-               log.info("Adding INPUT data for "+SVC_OPERATION+" ["+vfid+"] input: " + input);
-               VfModuleTopologyOperationInputBuilder inputBuilder = new VfModuleTopologyOperationInputBuilder(input);
-               VnfSdnUtil.toProperties(parms, inputBuilder.build());
-
-               log.info("Adding OPERATIONAL data for "+SVC_OPERATION+" ["+vfid+"] vf-module operational-data: " + operDataBuilder.build());
-               VnfSdnUtil.toProperties(parms, "operational-data", operDataBuilder);
-
-               log.info("Adding CONFIG data for "+SVC_OPERATION+" ["+preload_name+","+preload_type+"] vf-module-preload-data: " + vfModulePreloadDataBuilder.build());
-               VnfSdnUtil.toProperties(parms, "vf-module-preload-data", vfModulePreloadDataBuilder);
-
-               log.info("Adding vnf-instance CONFIG data for "+SVC_OPERATION+" ["+viid+"] vnf-instance-service-data: " + vnfInstanceServiceDataBuilder.build());
-               VnfSdnUtil.toProperties(parms, "vnf-instance-service-data", vnfInstanceServiceDataBuilder);
-
-               log.info("Adding vnf-instance OPERATIONAL data for "+SVC_OPERATION+" ["+viid+"] vnf-instance operational-data: " + vnfInstanceOperDataBuilder.build());
-               VnfSdnUtil.toProperties(parms, "vnf-instance-operational-data", vnfInstanceOperDataBuilder);
-
-               // Call SLI sync method
-               // Get SvcLogicService reference
-
-               VNFSDNSvcLogicServiceClient svcLogicClient = new VNFSDNSvcLogicServiceClient();
-               Properties respProps = null;
-
-               String errorCode = "200";
-               String errorMessage = null;
-               String ackFinal = "Y";
-
-
-               try
-               {
-                       if (svcLogicClient.hasGraph("VNF-API", SVC_OPERATION , null, "sync"))
-                       {
-
-                               try
-                               {
-                                       respProps = svcLogicClient.execute("VNF-API", SVC_OPERATION, null, "sync", vfModuleServiceDataBuilder, parms);
-                               }
-                               catch (Exception e)
-                               {
-                                       log.error("Caught exception executing service logic on vf-module for "+ SVC_OPERATION, e);
-                                       errorMessage = e.getMessage();
-                                       errorCode = "500";
-                               }
-
-                       } else {
-                               errorMessage = "No service logic active for VNF-API: '" + SVC_OPERATION + "'";
-                               errorCode = "503";
-                       }
-               }
-               catch (Exception e)
-               {
-                       errorCode = "500";
-                       errorMessage = e.getMessage();
-                       log.error("Caught exception looking for service logic", e);
-               }
-
-
-               if (respProps != null) {
-                       errorCode = respProps.getProperty("error-code");
-                       errorMessage = respProps.getProperty("error-message");
-                       ackFinal = respProps.getProperty("ack-final", "Y");
-               }
-
-               setServiceStatus(serviceStatusBuilder,errorCode, errorMessage, ackFinal);
-               serviceStatusBuilder.setRequestStatus(RequestStatus.Synccomplete);
-               serviceStatusBuilder.setRpcName(RpcName.VfModuleTopologyOperation);
-
-               if ( errorCode != null && errorCode.length() != 0 && !( errorCode.equals("0")|| errorCode.equals("200"))) {
-                       responseBuilder.setResponseCode(errorCode);
-                       responseBuilder.setResponseMessage(errorMessage);
-                       responseBuilder.setAckFinalIndicator(ackFinal);
-                       VfModuleListBuilder vfModuleListBuilder = new VfModuleListBuilder();
-                       vfModuleListBuilder.setVfModuleId(vfid);
-                       vfModuleListBuilder.setServiceStatus(serviceStatusBuilder.build());
-                       try {
-                               SaveVfModuleList (vfModuleListBuilder.build(), true,LogicalDatastoreType.CONFIGURATION);
-                       } catch (Exception e) {
-                               log.error("Caught Exception updating MD-SAL for "+SVC_OPERATION+" ["+vfid+"] \n",e);
-                       }
-                       log.error("Returned FAILED for "+SVC_OPERATION+" ["+vfid+"] " + responseBuilder.build());
-                       RpcResult<VfModuleTopologyOperationOutput> rpcResult =
-                                       RpcResultBuilder.<VfModuleTopologyOperationOutput> status(true).withResult(responseBuilder.build()).build();
-                       // return error
-                       return Futures.immediateFuture(rpcResult);
-               }
-
-               // Got success from SLI
-        // save vf-module-service-data in MD-SAL
-               try {
-                       vfModuleServiceData = vfModuleServiceDataBuilder.build();
-                       log.info("Updating MD-SAL for "+SVC_OPERATION+" ["+vfid+"] VfModuleServiceData: " + vfModuleServiceData);
-                       // vf-module-list
-                       VfModuleListBuilder vfModuleListBuilder = new VfModuleListBuilder();
-                       vfModuleListBuilder.setVfModuleServiceData(vfModuleServiceData);
-                       vfModuleListBuilder.setVfModuleId(vfModuleServiceData.getVfModuleId());
-                       //vfid = vfModuleServiceData.getVfModuleId();
-                       vfModuleListBuilder.setServiceStatus(serviceStatusBuilder.build());
-                       SaveVfModuleList (vfModuleListBuilder.build(), false,LogicalDatastoreType.CONFIGURATION);
-                       if (input.getSdncRequestHeader() != null && input.getSdncRequestHeader().getSvcAction() != null)
-                       {
-                               // Only update operational tree on Delete or Activate
-                               if (input.getSdncRequestHeader().getSvcAction().equals(SvcAction.Delete) ||
-                                   input.getSdncRequestHeader().getSvcAction().equals(SvcAction.Activate))
-                               {
-                                       log.info("Updating OPERATIONAL tree.");
-                                       SaveVfModuleList (vfModuleListBuilder.build(), false, LogicalDatastoreType.OPERATIONAL);
-                               }
-                       }
-                       VfModuleInformationBuilder vfModuleInformationBuilder = new VfModuleInformationBuilder();
-                       vfModuleInformationBuilder.setVfModuleId(vfid);
-                       responseBuilder.setVfModuleInformation(vfModuleInformationBuilder.build());
-                       responseBuilder.setServiceInformation(vfModuleServiceData.getServiceInformation());
-               } catch (Exception e) {
-                       log.error("Caught Exception updating MD-SAL for "+SVC_OPERATION+" ["+vfid+"] \n",e);
-                       responseBuilder.setResponseCode("500");
-                       responseBuilder.setResponseMessage(e.toString());
-                       responseBuilder.setAckFinalIndicator("Y");
-                       log.error("Returned FAILED for "+SVC_OPERATION+" ["+vfid+"] " + responseBuilder.build());
-                       RpcResult<VfModuleTopologyOperationOutput> rpcResult =
-                                       RpcResultBuilder.<VfModuleTopologyOperationOutput> status(true).withResult(responseBuilder.build()).build();
-                       // return error
-                       return Futures.immediateFuture(rpcResult);
-               }
-
-               // Update succeeded
-               responseBuilder.setResponseCode(errorCode);
-               responseBuilder.setAckFinalIndicator(ackFinal);
-               if (errorMessage != null)
-               {
-                       responseBuilder.setResponseMessage(errorMessage);
-               }
-               log.info("Updated vf-module in MD-SAL for "+SVC_OPERATION+" ["+vfid+"] ");
-               log.info("Returned SUCCESS for "+SVC_OPERATION+" ["+vfid+"] " + responseBuilder.build());
-
-               RpcResult<VfModuleTopologyOperationOutput> rpcResult =
-                               RpcResultBuilder.<VfModuleTopologyOperationOutput> status(true).withResult(responseBuilder.build()).build();
-               // return success
-               return Futures.immediateFuture(rpcResult);
-       }
-
-
-       @Override
-       public Future<RpcResult<VnfTopologyOperationOutput>> vnfTopologyOperation(
-                       VnfTopologyOperationInput input) {
-
-               final String SVC_OPERATION = "vnf-topology-operation";
-               ServiceData serviceData = null;
-               ServiceStatusBuilder serviceStatusBuilder = new ServiceStatusBuilder();
-               Properties parms = new Properties();
-
-               log.info( SVC_OPERATION +" called." );
-               // create a new response object
-               VnfTopologyOperationOutputBuilder responseBuilder = new VnfTopologyOperationOutputBuilder();
-
-               if(input == null ||
-            input.getServiceInformation() == null ||
-                input.getServiceInformation().getServiceInstanceId() == null ||
-                    input.getServiceInformation().getServiceInstanceId().length() == 0)
-        {
-                       log.debug("exiting " +SVC_OPERATION+ " because of invalid input, null or empty service-instance-id");
-                       responseBuilder.setResponseCode("403");
-                       responseBuilder.setResponseMessage("invalid input, null or empty service-instance-id");
-                       responseBuilder.setAckFinalIndicator("Y");
-                       RpcResult<VnfTopologyOperationOutput> rpcResult =
-                                       RpcResultBuilder.<VnfTopologyOperationOutput> status(true).withResult(responseBuilder.build()).build();
-                       // return error
-                       return Futures.immediateFuture(rpcResult);
-               }
-
-               if(input.getVnfRequestInformation() == null ||
-                input.getVnfRequestInformation().getVnfId() == null ||
-                    input.getVnfRequestInformation().getVnfId().length() == 0)
-        {
-                       log.debug("exiting " +SVC_OPERATION+ " because of invalid input, null or empty vf-module-id");
-                       responseBuilder.setResponseCode("403");
-                       responseBuilder.setResponseMessage("invalid input, null or empty vf-module-id");
-                       responseBuilder.setAckFinalIndicator("Y");
-                       RpcResult<VnfTopologyOperationOutput> rpcResult =
-                                       RpcResultBuilder.<VnfTopologyOperationOutput> status(true).withResult(responseBuilder.build()).build();
-                       // return error
-                       return Futures.immediateFuture(rpcResult);
-               }
-
-               // Grab the service instance ID from the input buffer
-               String siid = input.getVnfRequestInformation().getVnfId();
-               String preload_name  = input.getVnfRequestInformation().getVnfName();
-               String preload_type = input.getVnfRequestInformation().getVnfType();
-
-        /*
-               // Make sure we have a valid siid
-               if(siid == null || siid.length() == 0 ) {
-                       log.debug("exiting "+SVC_OPERATION+" because of invalid siid");
-                       responseBuilder.setResponseCode("403");
-                       responseBuilder.setResponseMessage("invalid input, null or empty service-instance-id");
-                       responseBuilder.setAckFinalIndicator("Y");
-                       RpcResult<VnfTopologyOperationOutput> rpcResult =
-                                       RpcResultBuilder.<VnfTopologyOperationOutput> status(true).withResult(responseBuilder.build()).build();
-                       // return error
-                       return Futures.immediateFuture(rpcResult);
-               }
-        */
-
-               if (input.getSdncRequestHeader() != null) {
-                       responseBuilder.setSvcRequestId(input.getSdncRequestHeader().getSvcRequestId());
-               }
-
-               PreloadDataBuilder preloadDataBuilder = new PreloadDataBuilder();
-               getPreloadData(preload_name, preload_type, preloadDataBuilder);
-
-               ServiceDataBuilder serviceDataBuilder = new ServiceDataBuilder();
-               getServiceData(siid,serviceDataBuilder);
-
-               ServiceDataBuilder operDataBuilder = new ServiceDataBuilder();
-               getServiceData(siid,operDataBuilder, LogicalDatastoreType.OPERATIONAL );
-
-               // Set the serviceStatus based on input
-               setServiceStatus(serviceStatusBuilder, input.getSdncRequestHeader());
-               setServiceStatus(serviceStatusBuilder, input.getRequestInformation());
-
-               //
-               // setup a service-data object builder
-               // ACTION vnf-topology-operation
-               // INPUT:
-               //  USES sdnc-request-header;
-               //  USES request-information;
-               //  USES service-information;
-               //  USES vnf-request-information
-               // OUTPUT:
-               //  USES vnf-topology-response-body;
-               //  USES vnf-information
-               //  USES service-information
-               //
-               // container service-data
-        //   uses vnf-configuration-information;
-        //   uses oper-status;
-
-               log.info("Adding INPUT data for "+SVC_OPERATION+" ["+siid+"] input: " + input);
-               VnfTopologyOperationInputBuilder inputBuilder = new VnfTopologyOperationInputBuilder(input);
-               VnfSdnUtil.toProperties(parms, inputBuilder.build());
-
-               log.info("Adding OPERATIONAL data for "+SVC_OPERATION+" ["+siid+"] operational-data: " + operDataBuilder.build());
-               VnfSdnUtil.toProperties(parms, "operational-data", operDataBuilder);
-
-               log.info("Adding CONFIG data for "+SVC_OPERATION+" ["+preload_name+","+preload_type+"] preload-data: " + preloadDataBuilder.build());
-               VnfSdnUtil.toProperties(parms, "preload-data", preloadDataBuilder);
-
-               // Call SLI sync method
-               // Get SvcLogicService reference
-
-               VNFSDNSvcLogicServiceClient svcLogicClient = new VNFSDNSvcLogicServiceClient();
-               Properties respProps = null;
-
-               String errorCode = "200";
-               String errorMessage = null;
-               String ackFinal = "Y";
-
-
-               try
-               {
-                       if (svcLogicClient.hasGraph("VNF-API", SVC_OPERATION , null, "sync"))
-                       {
-
-                               try
-                               {
-                                       respProps = svcLogicClient.execute("VNF-API", SVC_OPERATION, null, "sync", serviceDataBuilder, parms);
-                               }
-                               catch (Exception e)
-                               {
-                                       log.error("Caught exception executing service logic for "+ SVC_OPERATION, e);
-                                       errorMessage = e.getMessage();
-                                       errorCode = "500";
-                               }
-                       } else {
-                               errorMessage = "No service logic active for VNF-API: '" + SVC_OPERATION + "'";
-                               errorCode = "503";
-                       }
-               }
-               catch (Exception e)
-               {
-                       errorCode = "500";
-                       errorMessage = e.getMessage();
-                       log.error("Caught exception looking for service logic", e);
-               }
-
-
-               if (respProps != null)
-               {
-                       errorCode = respProps.getProperty("error-code");
-                       errorMessage = respProps.getProperty("error-message");
-                       ackFinal = respProps.getProperty("ack-final", "Y");
-               }
-
-               setServiceStatus(serviceStatusBuilder,errorCode, errorMessage, ackFinal);
-               serviceStatusBuilder.setRequestStatus(RequestStatus.Synccomplete);
-               serviceStatusBuilder.setRpcName(RpcName.VnfTopologyOperation);
-
-               if ( errorCode != null && errorCode.length() != 0 && !( errorCode.equals("0")|| errorCode.equals("200"))) {
-                       responseBuilder.setResponseCode(errorCode);
-                       responseBuilder.setResponseMessage(errorMessage);
-                       responseBuilder.setAckFinalIndicator(ackFinal);
-                       VnfListBuilder vnfListBuilder = new VnfListBuilder();
-                       vnfListBuilder.setVnfId(siid);
-                       vnfListBuilder.setServiceStatus(serviceStatusBuilder.build());
-                       try {
-                               SaveVnfList (vnfListBuilder.build(), true,LogicalDatastoreType.CONFIGURATION);
-                       } catch (Exception e) {
-                               log.error("Caught Exception updating MD-SAL for "+SVC_OPERATION+" ["+siid+"] \n",e);
-                       }
-                       log.error("Returned FAILED for "+SVC_OPERATION+" ["+siid+"] " + responseBuilder.build());
-                       RpcResult<VnfTopologyOperationOutput> rpcResult =
-                                       RpcResultBuilder.<VnfTopologyOperationOutput> status(true).withResult(responseBuilder.build()).build();
-                       // return error
-                       return Futures.immediateFuture(rpcResult);
-               }
-
-               // Got success from SLI
-               try {
-                       serviceData = serviceDataBuilder.build();
-                       log.info("Updating MD-SAL for "+SVC_OPERATION+" ["+siid+"] ServiceData: " + serviceData);
-                       // svc-configuration-list
-                       VnfListBuilder vnfListBuilder = new VnfListBuilder();
-                       vnfListBuilder.setServiceData(serviceData);
-                       vnfListBuilder.setVnfId(serviceData.getVnfId());
-                       siid = serviceData.getVnfId();
-                       vnfListBuilder.setServiceStatus(serviceStatusBuilder.build());
-                       SaveVnfList (vnfListBuilder.build(), false,LogicalDatastoreType.CONFIGURATION);
-                       if (input.getSdncRequestHeader() != null && input.getSdncRequestHeader().getSvcAction() != null)
-                       {
-                               // Only update operational tree on Delete or Activate
-                               if (input.getSdncRequestHeader().getSvcAction().equals(SvcAction.Activate)) {
-                                       log.info("Updating OPERATIONAL tree.");
-                                       SaveVnfList (vnfListBuilder.build(), false, LogicalDatastoreType.OPERATIONAL);
-                               }
-                               else if (input.getSdncRequestHeader().getSvcAction().equals(SvcAction.Delete) ||
-                                   input.getSdncRequestHeader().getSvcAction().equals(SvcAction.Rollback)) {
-                                           log.info("Delete OPERATIONAL tree.");
-                                           DeleteVnfList (vnfListBuilder.build(), LogicalDatastoreType.CONFIGURATION);
-                                           DeleteVnfList (vnfListBuilder.build(), LogicalDatastoreType.OPERATIONAL);
-                }
-                       }
-                       VnfInformationBuilder vnfInformationBuilder = new VnfInformationBuilder();
-                       vnfInformationBuilder.setVnfId(siid);
-                       responseBuilder.setVnfInformation(vnfInformationBuilder.build());
-                       responseBuilder.setServiceInformation(serviceData.getServiceInformation());
-               } catch (Exception e) {
-                       log.error("Caught Exception updating MD-SAL for "+SVC_OPERATION+" ["+siid+"] \n",e);
-                       responseBuilder.setResponseCode("500");
-                       responseBuilder.setResponseMessage(e.toString());
-                       responseBuilder.setAckFinalIndicator("Y");
-                       log.error("Returned FAILED for "+SVC_OPERATION+" ["+siid+"] " + responseBuilder.build());
-                       RpcResult<VnfTopologyOperationOutput> rpcResult =
-                                       RpcResultBuilder.<VnfTopologyOperationOutput> status(true).withResult(responseBuilder.build()).build();
-                       // return error
-                       return Futures.immediateFuture(rpcResult);
-               }
-
-               // Update succeeded
-               responseBuilder.setResponseCode(errorCode);
-               responseBuilder.setAckFinalIndicator(ackFinal);
-               if (errorMessage != null)
-               {
-                       responseBuilder.setResponseMessage(errorMessage);
-               }
-               log.info("Updated MD-SAL for "+SVC_OPERATION+" ["+siid+"] ");
-               log.info("Returned SUCCESS for "+SVC_OPERATION+" ["+siid+"] " + responseBuilder.build());
-
-               RpcResult<VnfTopologyOperationOutput> rpcResult =
-                               RpcResultBuilder.<VnfTopologyOperationOutput> status(true).withResult(responseBuilder.build()).build();
-               // return success
-               return Futures.immediateFuture(rpcResult);
-       }
-
-
-       @Override
-       public Future<RpcResult<NetworkTopologyOperationOutput>> networkTopologyOperation(
-                       NetworkTopologyOperationInput input) {
-
-               final String SVC_OPERATION = "network-topology-operation";
-               ServiceData serviceData = null;
-               ServiceStatusBuilder serviceStatusBuilder = new ServiceStatusBuilder();
-               Properties parms = new Properties();
-
-               log.info( SVC_OPERATION +" called." );
-               // create a new response object
-               NetworkTopologyOperationOutputBuilder responseBuilder = new NetworkTopologyOperationOutputBuilder();
-
-               if(input == null ||
-            input.getServiceInformation() == null ||
-                input.getServiceInformation().getServiceInstanceId() == null ||
-                    input.getServiceInformation().getServiceInstanceId().length() == 0)
-        {
-                       log.debug("exiting " +SVC_OPERATION+ " because of invalid input, null or empty service-instance-id");
-                       responseBuilder.setResponseCode("403");
-                       responseBuilder.setResponseMessage("invalid input, null or empty service-instance-id");
-                       responseBuilder.setAckFinalIndicator("Y");
-                       RpcResult<NetworkTopologyOperationOutput> rpcResult =
-                                       RpcResultBuilder.<NetworkTopologyOperationOutput> status(true).withResult(responseBuilder.build()).build();
-                       // return error
-                       return Futures.immediateFuture(rpcResult);
-               }
-
-               if(input.getNetworkRequestInformation() == null || input.getNetworkRequestInformation().getNetworkName() == null) {
-                       log.debug("exiting " +SVC_OPERATION+ " because of invalid input, null or empty service-instance-id");
-                       responseBuilder.setResponseCode("403");
-                       responseBuilder.setResponseMessage("invalid input, null or empty service-instance-id");
-                       responseBuilder.setAckFinalIndicator("Y");
-                       RpcResult<NetworkTopologyOperationOutput> rpcResult =
-                                       RpcResultBuilder.<NetworkTopologyOperationOutput> status(true).withResult(responseBuilder.build()).build();
-                       // return error
-                       return Futures.immediateFuture(rpcResult);
-               }
-
-               // Grab the service instance ID from the input buffer
-               String siid = null;
-        if (input.getSdncRequestHeader().getSvcAction().equals("assign")) {
-                   siid = input.getNetworkRequestInformation().getNetworkName();
-        }
-        else {
-                   siid = input.getNetworkRequestInformation().getNetworkId();
-        }
-               String preload_name  = input.getNetworkRequestInformation().getNetworkName();
-               String preload_type = input.getNetworkRequestInformation().getNetworkType();
-
-        /*
-               if(siid == null || siid.length() == 0 ) {
-                       log.debug("exiting "+SVC_OPERATION+" because of invalid siid");
-                       responseBuilder.setResponseCode("403");
-                       responseBuilder.setResponseMessage("invalid input, null or empty service-instance-id");
-                       responseBuilder.setAckFinalIndicator("Y");
-                       RpcResult<NetworkTopologyOperationOutput> rpcResult =
-                                       RpcResultBuilder.<NetworkTopologyOperationOutput> status(true).withResult(responseBuilder.build()).build();
-                       // return error
-                       return Futures.immediateFuture(rpcResult);
-               }
-        */
-
-               if (input.getSdncRequestHeader() != null) {
-                       responseBuilder.setSvcRequestId(input.getSdncRequestHeader().getSvcRequestId());
-               }
-
-               PreloadDataBuilder preloadDataBuilder = new PreloadDataBuilder();
-               getPreloadData(preload_name, preload_type, preloadDataBuilder);
-
-               log.info("Adding INPUT data for "+SVC_OPERATION+" ["+siid+"] input: " + input);
-               NetworkTopologyOperationInputBuilder inputBuilder = new NetworkTopologyOperationInputBuilder(input);
-               VnfSdnUtil.toProperties(parms, inputBuilder.build());
-
-/*
-               log.info("Adding OPERATIONAL data for "+SVC_OPERATION+" ["+siid+"] operational-data: " + operDataBuilder.build());
-               VnfSdnUtil.toProperties(parms, "operational-data", operDataBuilder);
-
-               log.info("Adding CONFIG data for "+SVC_OPERATION+" ["+preload_name+","+preload_type+"] preload-data: " + preloadDataBuilder.build());
-               VnfSdnUtil.toProperties(parms, "preload-data", preloadDataBuilder);
-*/
-
-               // Call SLI sync method
-               // Get SvcLogicService reference
-
-               VNFSDNSvcLogicServiceClient svcLogicClient = new VNFSDNSvcLogicServiceClient();
-               Properties respProps = null;
-
-               String errorCode = "200";
-               String errorMessage = null;
-               String ackFinal = "Y";
-               String networkId = "error";
-
-
-               try
-               {
-                       if (svcLogicClient.hasGraph("VNF-API", SVC_OPERATION , null, "sync"))
-                       {
-
-                               try
-                               {
-                                       respProps = svcLogicClient.execute("VNF-API", SVC_OPERATION, null, "sync", preloadDataBuilder, parms);
-                               }
-                               catch (Exception e)
-                               {
-                                       log.error("Caught exception executing service logic for "+ SVC_OPERATION, e);
-                                       errorMessage = e.getMessage();
-                                       errorCode = "500";
-                               }
-                       } else {
-                               errorMessage = "No service logic active for VNF-API: '" + SVC_OPERATION + "'";
-                               errorCode = "503";
-                       }
-               }
-               catch (Exception e)
-               {
-                       errorCode = "500";
-                       errorMessage = e.getMessage();
-                       log.error("Caught exception looking for service logic", e);
-               }
-
-
-               if (respProps != null)
-               {
-                       errorCode = respProps.getProperty("error-code");
-                       errorMessage = respProps.getProperty("error-message");
-                       ackFinal = respProps.getProperty("ack-final", "Y");
-                       networkId = respProps.getProperty("networkId","0");
-               }
-
-               if ( errorCode != null && errorCode.length() != 0 && !( errorCode.equals("0")|| errorCode.equals("200"))) {
-                       responseBuilder.setResponseCode(errorCode);
-                       responseBuilder.setResponseMessage(errorMessage);
-                       responseBuilder.setAckFinalIndicator(ackFinal);
-
-                       log.error("Returned FAILED for "+SVC_OPERATION+" ["+siid+"] " + responseBuilder.build());
-
-                       RpcResult<NetworkTopologyOperationOutput> rpcResult =
-                                       RpcResultBuilder.<NetworkTopologyOperationOutput> status(true).withResult(responseBuilder.build()).build();
-                       // return error
-                       return Futures.immediateFuture(rpcResult);
-               }
-
-               // Got success from SLI
-               try {
-                       NetworkInformationBuilder networkInformationBuilder = new NetworkInformationBuilder();
-                       networkInformationBuilder.setNetworkId(networkId);
-                       responseBuilder.setNetworkInformation(networkInformationBuilder.build());
-                       responseBuilder.setServiceInformation(input.getServiceInformation());
-               } catch (IllegalStateException e) {
-                       log.error("Caught Exception updating MD-SAL for "+SVC_OPERATION+" ["+siid+"] \n",e);
-                       responseBuilder.setResponseCode("500");
-                       responseBuilder.setResponseMessage(e.toString());
-                       responseBuilder.setAckFinalIndicator("Y");
-                       log.error("Returned FAILED for "+SVC_OPERATION+" ["+siid+"] " + responseBuilder.build());
-                       RpcResult<NetworkTopologyOperationOutput> rpcResult =
-                                       RpcResultBuilder.<NetworkTopologyOperationOutput> status(true).withResult(responseBuilder.build()).build();
-                       // return error
-                       return Futures.immediateFuture(rpcResult);
-               }
-
-               // Update succeeded
-               responseBuilder.setResponseCode(errorCode);
-               responseBuilder.setAckFinalIndicator(ackFinal);
-               if (errorMessage != null)
-               {
-                       responseBuilder.setResponseMessage(errorMessage);
-               }
-               log.info("Updated MD-SAL for "+SVC_OPERATION+" ["+siid+"] ");
-               log.info("Returned SUCCESS for "+SVC_OPERATION+" ["+siid+"] " + responseBuilder.build());
-
-               RpcResult<NetworkTopologyOperationOutput> rpcResult =
-                               RpcResultBuilder.<NetworkTopologyOperationOutput> status(true).withResult(responseBuilder.build()).build();
-               // return success
-               return Futures.immediateFuture(rpcResult);
-       }
-
-       @Override
-       public Future<RpcResult<PreloadVnfTopologyOperationOutput>> preloadVnfTopologyOperation(
-                       PreloadVnfTopologyOperationInput input) {
-
-               final String SVC_OPERATION = "preload-vnf-topology-operation";
-               PreloadData preloadData = null;
-               Properties parms = new Properties();
-
-               log.info( SVC_OPERATION +" called." );
-               // create a new response object
-               PreloadVnfTopologyOperationOutputBuilder responseBuilder = new PreloadVnfTopologyOperationOutputBuilder();
-
-               // Result from savePreloadData
-               final SettableFuture<RpcResult<Void>> futureResult = SettableFuture.create();
-
-               if(input == null || input.getVnfTopologyInformation() == null || input.getVnfTopologyInformation().getVnfTopologyIdentifier() == null || input.getVnfTopologyInformation().getVnfTopologyIdentifier().getVnfName() == null || input.getVnfTopologyInformation().getVnfTopologyIdentifier().getVnfType() == null) {
-                       log.debug("exiting " +SVC_OPERATION+ " because of invalid input, null or empty vnf-name and vnf-type");
-                       responseBuilder.setResponseCode("403");
-                       responseBuilder.setResponseMessage("invalid input, null or empty vnf-name and vnf-type");
-                       responseBuilder.setAckFinalIndicator("Y");
-                       RpcResult<PreloadVnfTopologyOperationOutput> rpcResult =
-                               RpcResultBuilder.<PreloadVnfTopologyOperationOutput> status(true).withResult(responseBuilder.build()).build();
-                       return Futures.immediateFuture(rpcResult);
-               }
-
-               // Grab the name and type from the input buffer
-               String preload_name = input.getVnfTopologyInformation().getVnfTopologyIdentifier().getVnfName();
-               String preload_type = input.getVnfTopologyInformation().getVnfTopologyIdentifier().getVnfType();
-
-               // Make sure we have a preload_name and preload_type
-               if(preload_name == null || preload_name.length() == 0 ) {
-                       log.debug("exiting "+SVC_OPERATION+" because of invalid preload-name");
-                       responseBuilder.setResponseCode("403");
-                       responseBuilder.setResponseMessage("invalid input, invalid preload-name");
-                       responseBuilder.setAckFinalIndicator("Y");
-                       RpcResult<PreloadVnfTopologyOperationOutput> rpcResult =
-                               RpcResultBuilder.<PreloadVnfTopologyOperationOutput> status(true).withResult(responseBuilder.build()).build();
-                       return Futures.immediateFuture(rpcResult);
-               }
-               if(preload_type == null || preload_type.length() == 0 ) {
-                       log.debug("exiting "+SVC_OPERATION+" because of invalid preload-type");
-                       responseBuilder.setResponseCode("403");
-                       responseBuilder.setResponseMessage("invalid input, invalid preload-type");
-                       responseBuilder.setAckFinalIndicator("Y");
-                       RpcResult<PreloadVnfTopologyOperationOutput> rpcResult =
-                               RpcResultBuilder.<PreloadVnfTopologyOperationOutput> status(true).withResult(responseBuilder.build()).build();
-                       return Futures.immediateFuture(rpcResult);
-               }
-
-               if (input.getSdncRequestHeader() != null) {
-                       responseBuilder.setSvcRequestId(input.getSdncRequestHeader().getSvcRequestId());
-               }
-
-               PreloadDataBuilder preloadDataBuilder = new PreloadDataBuilder();
-               getPreloadData(preload_name, preload_type, preloadDataBuilder);
-               //preloadData = preloadDataBuilder.build();
-
-               PreloadDataBuilder operDataBuilder = new PreloadDataBuilder();
-               getPreloadData(preload_name, preload_type, operDataBuilder, LogicalDatastoreType.OPERATIONAL );
-
-               //
-               // setup a preload-data object builder
-               // ACTION vnf-topology-operation
-               // INPUT:
-               //  USES sdnc-request-header;
-               //  USES request-information;
-        //  uses vnf-topology-information;
-               // OUTPUT:
-               //  USES vnf-topology-response-body;
-               //
-               // container preload-data
-        //   uses vnf-configuration-information;
-
-
-               log.info("Adding INPUT data for "+SVC_OPERATION+" ["+preload_name+","+preload_type+"] input: " + input);
-               PreloadVnfTopologyOperationInputBuilder inputBuilder = new PreloadVnfTopologyOperationInputBuilder(input);
-               VnfSdnUtil.toProperties(parms, inputBuilder.build());
-               log.info("Adding OPERATIONAL data for "+SVC_OPERATION+" ["+preload_name+","+preload_type +"] operational-data: " + operDataBuilder.build());
-               VnfSdnUtil.toProperties(parms, "operational-data", operDataBuilder);
-
-               // Call SLI sync method
-               // Get SvcLogicService reference
-
-               VNFSDNSvcLogicServiceClient svcLogicClient = new VNFSDNSvcLogicServiceClient();
-               Properties respProps = null;
-
-               String errorCode = "200";
-               String errorMessage = null;
-               String ackFinal = "Y";
-
-
-               try
-               {
-                       if (svcLogicClient.hasGraph("VNF-API", SVC_OPERATION , null, "sync"))
-                       {
-
-                               try
-                               {
-                                       respProps = svcLogicClient.execute("VNF-API", SVC_OPERATION, null, "sync", preloadDataBuilder, parms);
-                               }
-                               catch (Exception e)
-                               {
-                                       log.error("Caught exception executing service logic for "+ SVC_OPERATION, e);
-                                       errorMessage = e.getMessage();
-                                       errorCode = "500";
-                               }
-                       } else {
-                               errorMessage = "No service logic active for VNF-API: '" + SVC_OPERATION + "'";
-                               errorCode = "503";
-                       }
-               }
-               catch (Exception e)
-               {
-                       errorCode = "500";
-                       errorMessage = e.getMessage();
-                       log.error("Caught exception looking for service logic", e);
-               }
-
-
-               if (respProps != null)
-               {
-                       errorCode = respProps.getProperty("error-code");
-                       errorMessage = respProps.getProperty("error-message");
-                       ackFinal = respProps.getProperty("ack-final", "Y");
-                       // internalError = respProps.getProperty("internal-error", "false");
-               }
-
-               if ( errorCode != null && errorCode.length() != 0 && !( errorCode.equals("0")|| errorCode.equals("200"))) {
-
-                       responseBuilder.setResponseCode(errorCode);
-                       responseBuilder.setResponseMessage(errorMessage);
-                       responseBuilder.setAckFinalIndicator(ackFinal);
-
-                       VnfPreloadListBuilder preloadVnfListBuilder = new VnfPreloadListBuilder();
-                       preloadVnfListBuilder.setVnfName(preload_name);
-                       preloadVnfListBuilder.setVnfType(preload_type);
-                       preloadVnfListBuilder.setPreloadData(preloadDataBuilder.build());
-                       log.error("Returned FAILED for "+SVC_OPERATION+" ["+preload_name+","+preload_type+"] error code: '" + errorCode + "', Reason: '" + errorMessage + "'");
-                       try {
-                               SavePreloadList (preloadVnfListBuilder.build(), true,LogicalDatastoreType.CONFIGURATION);
-                       } catch (Exception e) {
-                               log.error("Caught Exception updating MD-SAL for "+SVC_OPERATION+" ["+preload_name+","+preload_type+"] \n",e);
-                       }
-                       log.debug("Sending Success rpc result due to external error");
-                       RpcResult<PreloadVnfTopologyOperationOutput> rpcResult =
-                               RpcResultBuilder.<PreloadVnfTopologyOperationOutput> status(true).withResult(responseBuilder.build()).build();
-                       return Futures.immediateFuture(rpcResult);
-               }
-
-               // Got success from SLI
-               try {
-                       preloadData = preloadDataBuilder.build();
-                       log.info("Updating MD-SAL for "+SVC_OPERATION+" ["+preload_name+","+preload_type+"] preloadData: " + preloadData);
-                       // svc-configuration-list
-                       VnfPreloadListBuilder preloadVnfListBuilder = new VnfPreloadListBuilder();
-                       preloadVnfListBuilder.setVnfName(preload_name);
-                       preloadVnfListBuilder.setVnfType(preload_type);
-                       preloadVnfListBuilder.setPreloadData(preloadData);
-
-                       // SDNGC-989 set merge flag to false
-                       SavePreloadList (preloadVnfListBuilder.build(), false, LogicalDatastoreType.CONFIGURATION);
-                       log.info("Updating OPERATIONAL tree.");
-                       SavePreloadList (preloadVnfListBuilder.build(), false, LogicalDatastoreType.OPERATIONAL);
-               } catch (Exception e) {
-                       log.error("Caught Exception updating MD-SAL for "+SVC_OPERATION+" ["+preload_name+","+preload_type+"] \n",e);
-                       responseBuilder.setResponseCode("500");
-                       responseBuilder.setResponseMessage(e.toString());
-                       responseBuilder.setAckFinalIndicator("Y");
-                       log.error("Returned FAILED for "+SVC_OPERATION+" ["+preload_name+","+preload_type+"] " + responseBuilder.build());
-                       RpcResult<PreloadVnfTopologyOperationOutput> rpcResult =
-                               RpcResultBuilder.<PreloadVnfTopologyOperationOutput> status(false).withResult(responseBuilder.build()).build();
-                       return Futures.immediateFuture(rpcResult);
-               }
-
-               // Update succeeded
-               responseBuilder.setResponseCode(errorCode);
-               responseBuilder.setAckFinalIndicator(ackFinal);
-               if (errorMessage != null)
-               {
-                       responseBuilder.setResponseMessage(errorMessage);
-               }
-               log.info("Updated MD-SAL for "+SVC_OPERATION+" ["+preload_name+","+preload_type+"] ");
-               log.info("Returned SUCCESS for "+SVC_OPERATION+" ["+preload_name+","+preload_type+"] " + responseBuilder.build());
-
-               RpcResult<PreloadVnfTopologyOperationOutput> rpcResult =
-                               RpcResultBuilder.<PreloadVnfTopologyOperationOutput> status(true).withResult(responseBuilder.build()).build();
-               return Futures.immediateFuture(rpcResult);
-       }
-
-    //1610 preload-vnf-instance-topology-operation
-       @Override
-       public Future<RpcResult<PreloadVnfInstanceTopologyOperationOutput>> preloadVnfInstanceTopologyOperation(
-                       PreloadVnfInstanceTopologyOperationInput input) {
-
-               final String SVC_OPERATION = "preload-vnf-instance-topology-operation";
-               VnfInstancePreloadData vnfInstancePreloadData = null;
-               Properties parms = new Properties();
-
-               log.info( SVC_OPERATION +" called." );
-               // create a new response object
-               PreloadVnfInstanceTopologyOperationOutputBuilder responseBuilder = new PreloadVnfInstanceTopologyOperationOutputBuilder();
-
-               // Result from savePreloadData
-               final SettableFuture<RpcResult<Void>> futureResult = SettableFuture.create();
-
-               if(input == null ||
-            input.getVnfInstanceTopologyInformation() == null ||
-                input.getVnfInstanceTopologyInformation().getVnfInstanceIdentifiers().getVnfInstanceName() == null ||
-                    input.getVnfInstanceTopologyInformation().getVnfInstanceIdentifiers().getVnfModelId() == null)
-        {
-                       log.debug("exiting " +SVC_OPERATION+ " because of invalid input, null or empty vnf-instance-name and vnf-model-id");
-                       responseBuilder.setResponseCode("403");
-                       responseBuilder.setResponseMessage("invalid input, null or empty vnf-instance-name and vnf-model-id");
-                       responseBuilder.setAckFinalIndicator("Y");
-                       RpcResult<PreloadVnfInstanceTopologyOperationOutput> rpcResult =
-                               RpcResultBuilder.<PreloadVnfInstanceTopologyOperationOutput> status(true).withResult(responseBuilder.build()).build();
-                       return Futures.immediateFuture(rpcResult);
-               }
-
-               // Grab the name and type from the input buffer
-               String preload_name = input.getVnfInstanceTopologyInformation().getVnfInstanceIdentifiers().getVnfInstanceName();
-               String preload_type = input.getVnfInstanceTopologyInformation().getVnfInstanceIdentifiers().getVnfModelId();
-
-               // Make sure we have a preload_name and preload_type
-               if(preload_name == null || preload_name.length() == 0 ) {
-                       log.debug("exiting "+SVC_OPERATION+" because of invalid preload-name");
-                       responseBuilder.setResponseCode("403");
-                       responseBuilder.setResponseMessage("invalid input, invalid preload-name");
-                       responseBuilder.setAckFinalIndicator("Y");
-                       RpcResult<PreloadVnfInstanceTopologyOperationOutput> rpcResult =
-                               RpcResultBuilder.<PreloadVnfInstanceTopologyOperationOutput> status(true).withResult(responseBuilder.build()).build();
-                       return Futures.immediateFuture(rpcResult);
-               }
-               if(preload_type == null || preload_type.length() == 0 ) {
-                       log.debug("exiting "+SVC_OPERATION+" because of invalid preload-type");
-                       responseBuilder.setResponseCode("403");
-                       responseBuilder.setResponseMessage("invalid input, invalid preload-type");
-                       responseBuilder.setAckFinalIndicator("Y");
-                       RpcResult<PreloadVnfInstanceTopologyOperationOutput> rpcResult =
-                               RpcResultBuilder.<PreloadVnfInstanceTopologyOperationOutput> status(true).withResult(responseBuilder.build()).build();
-                       return Futures.immediateFuture(rpcResult);
-               }
-
-               if (input.getSdncRequestHeader() != null) {
-                       responseBuilder.setSvcRequestId(input.getSdncRequestHeader().getSvcRequestId());
-               }
-
-               VnfInstancePreloadDataBuilder vnfInstancePreloadDataBuilder = new VnfInstancePreloadDataBuilder();
-               getVnfInstancePreloadData(preload_name, preload_type, vnfInstancePreloadDataBuilder);
-               //preloadData = preloadDataBuilder.build();
-
-               VnfInstancePreloadDataBuilder operDataBuilder = new VnfInstancePreloadDataBuilder();
-               getVnfInstancePreloadData(preload_name, preload_type, operDataBuilder, LogicalDatastoreType.OPERATIONAL );
-
-               //
-               // setup a preload-data object builder
-               // ACTION vnf-topology-operation
-               // INPUT:
-               //  USES sdnc-request-header;
-               //  USES request-information;
-        //  uses vnf-topology-information;
-               // OUTPUT:
-               //  USES vnf-topology-response-body;
-               //
-               // container preload-data
-        //   uses vnf-configuration-information;
-
-
-               log.info("Adding INPUT data for "+SVC_OPERATION+" ["+preload_name+","+preload_type+"] input: " + input);
-               PreloadVnfInstanceTopologyOperationInputBuilder inputBuilder = new PreloadVnfInstanceTopologyOperationInputBuilder(input);
-               VnfSdnUtil.toProperties(parms, inputBuilder.build());
-               log.info("Adding OPERATIONAL data for "+SVC_OPERATION+" ["+preload_name+","+preload_type +"] operational-data: " + operDataBuilder.build());
-               VnfSdnUtil.toProperties(parms, "operational-data", operDataBuilder);
-
-               // Call SLI sync method
-               // Get SvcLogicService reference
-
-               VNFSDNSvcLogicServiceClient svcLogicClient = new VNFSDNSvcLogicServiceClient();
-               Properties respProps = null;
-
-               String errorCode = "200";
-               String errorMessage = null;
-               String ackFinal = "Y";
-
-
-               try
-               {
-                       if (svcLogicClient.hasGraph("VNF-API", SVC_OPERATION , null, "sync"))
-                       {
-
-                               try
-                               {
-                                       respProps = svcLogicClient.execute("VNF-API", SVC_OPERATION, null, "sync", vnfInstancePreloadDataBuilder, parms);
-                               }
-                               catch (Exception e)
-                               {
-                                       log.error("Caught exception executing service logic for "+ SVC_OPERATION, e);
-                                       errorMessage = e.getMessage();
-                                       errorCode = "500";
-                               }
-                       } else {
-                               errorMessage = "No service logic active for VNF-API: '" + SVC_OPERATION + "'";
-                               errorCode = "503";
-                       }
-               }
-               catch (Exception e)
-               {
-                       errorCode = "500";
-                       errorMessage = e.getMessage();
-                       log.error("Caught exception looking for service logic", e);
-               }
-
-
-               if (respProps != null)
-               {
-                       errorCode = respProps.getProperty("error-code");
-                       errorMessage = respProps.getProperty("error-message");
-                       ackFinal = respProps.getProperty("ack-final", "Y");
-                       // internalError = respProps.getProperty("internal-error", "false");
-               }
-
-               if ( errorCode != null && errorCode.length() != 0 && !( errorCode.equals("0")|| errorCode.equals("200"))) {
-
-                       responseBuilder.setResponseCode(errorCode);
-                       responseBuilder.setResponseMessage(errorMessage);
-                       responseBuilder.setAckFinalIndicator(ackFinal);
-
-                       VnfInstancePreloadListBuilder vnfInstancePreloadListBuilder = new VnfInstancePreloadListBuilder();
-                       vnfInstancePreloadListBuilder.setVnfInstanceName(preload_name);
-                       vnfInstancePreloadListBuilder.setVnfModelId(preload_type);
-                       vnfInstancePreloadListBuilder.setVnfInstancePreloadData(vnfInstancePreloadDataBuilder.build());
-                       log.error("Returned FAILED for "+SVC_OPERATION+" ["+preload_name+","+preload_type+"] error code: '" + errorCode + "', Reason: '" + errorMessage + "'");
-                       try {
-                               SaveVnfInstancePreloadList (vnfInstancePreloadListBuilder.build(), true,LogicalDatastoreType.CONFIGURATION);
-                       } catch (Exception e) {
-                               log.error("Caught Exception updating MD-SAL for "+SVC_OPERATION+" ["+preload_name+","+preload_type+"] \n",e);
-                       }
-                       log.debug("Sending Success rpc result due to external error");
-                       RpcResult<PreloadVnfInstanceTopologyOperationOutput> rpcResult =
-                               RpcResultBuilder.<PreloadVnfInstanceTopologyOperationOutput> status(true).withResult(responseBuilder.build()).build();
-                       return Futures.immediateFuture(rpcResult);
-               }
-
-               // Got success from SLI
-               try {
-                       vnfInstancePreloadData = vnfInstancePreloadDataBuilder.build();
-                       log.info("Updating MD-SAL for "+SVC_OPERATION+" ["+preload_name+","+preload_type+"] preloadData: " + vnfInstancePreloadData);
-                       // svc-configuration-list
-                       VnfInstancePreloadListBuilder vnfInstancePreloadListBuilder = new VnfInstancePreloadListBuilder();
-                       vnfInstancePreloadListBuilder.setVnfInstanceName(preload_name);
-                       vnfInstancePreloadListBuilder.setVnfModelId(preload_type);
-                       vnfInstancePreloadListBuilder.setVnfInstancePreloadData(vnfInstancePreloadData);
-
-                       // SDNGC-989 set merge flag to false
-                       SaveVnfInstancePreloadList (vnfInstancePreloadListBuilder.build(), false, LogicalDatastoreType.CONFIGURATION);
-                       log.info("Updating OPERATIONAL tree.");
-                       SaveVnfInstancePreloadList (vnfInstancePreloadListBuilder.build(), false, LogicalDatastoreType.OPERATIONAL);
-               } catch (Exception e) {
-                       log.error("Caught Exception updating MD-SAL for "+SVC_OPERATION+" ["+preload_name+","+preload_type+"] \n",e);
-                       responseBuilder.setResponseCode("500");
-                       responseBuilder.setResponseMessage(e.toString());
-                       responseBuilder.setAckFinalIndicator("Y");
-                       log.error("Returned FAILED for "+SVC_OPERATION+" ["+preload_name+","+preload_type+"] " + responseBuilder.build());
-                       RpcResult<PreloadVnfInstanceTopologyOperationOutput> rpcResult =
-                               RpcResultBuilder.<PreloadVnfInstanceTopologyOperationOutput> status(false).withResult(responseBuilder.build()).build();
-                       return Futures.immediateFuture(rpcResult);
-               }
-
-               // Update succeeded
-               responseBuilder.setResponseCode(errorCode);
-               responseBuilder.setAckFinalIndicator(ackFinal);
-               if (errorMessage != null)
-               {
-                       responseBuilder.setResponseMessage(errorMessage);
-               }
-               log.info("Updated MD-SAL for "+SVC_OPERATION+" ["+preload_name+","+preload_type+"] ");
-               log.info("Returned SUCCESS for "+SVC_OPERATION+" ["+preload_name+","+preload_type+"] " + responseBuilder.build());
-
-               RpcResult<PreloadVnfInstanceTopologyOperationOutput> rpcResult =
-                               RpcResultBuilder.<PreloadVnfInstanceTopologyOperationOutput> status(true).withResult(responseBuilder.build()).build();
-               return Futures.immediateFuture(rpcResult);
-       }
-
-
-    //1610 preload-vf-module-topology-operation
-       @Override
-       public Future<RpcResult<PreloadVfModuleTopologyOperationOutput>> preloadVfModuleTopologyOperation(
-                       PreloadVfModuleTopologyOperationInput input) {
-
-               final String SVC_OPERATION = "preload-vf-module-topology-operation";
-               VfModulePreloadData vfModulePreloadData = null;
-               Properties parms = new Properties();
-
-               log.info( SVC_OPERATION +" called." );
-               // create a new response object
-               PreloadVfModuleTopologyOperationOutputBuilder responseBuilder = new PreloadVfModuleTopologyOperationOutputBuilder();
-
-               // Result from savePreloadData
-               final SettableFuture<RpcResult<Void>> futureResult = SettableFuture.create();
-
-               if(input == null ||
-            input.getVfModuleTopologyInformation() == null ||
-                input.getVfModuleTopologyInformation().getVfModuleIdentifiers().getVfModuleName() == null ||
-                    input.getVfModuleTopologyInformation().getVfModuleIdentifiers().getVfModuleModelId() == null)
-        {
-                       log.debug("exiting " +SVC_OPERATION+ " because of invalid input, null or empty vnf-instance-name and vnf-model-id");
-                       responseBuilder.setResponseCode("403");
-                       responseBuilder.setResponseMessage("invalid input, null or empty vnf-instance-name and vnf-model-id");
-                       responseBuilder.setAckFinalIndicator("Y");
-                       RpcResult<PreloadVfModuleTopologyOperationOutput> rpcResult =
-                               RpcResultBuilder.<PreloadVfModuleTopologyOperationOutput> status(true).withResult(responseBuilder.build()).build();
-                       return Futures.immediateFuture(rpcResult);
-               }
-
-               // Grab the name and type from the input buffer
-               String preload_name = input.getVfModuleTopologyInformation().getVfModuleIdentifiers().getVfModuleName();
-               String preload_type = input.getVfModuleTopologyInformation().getVfModuleIdentifiers().getVfModuleModelId();
-
-               // Make sure we have a preload_name and preload_type
-               if(preload_name == null || preload_name.length() == 0 ) {
-                       log.debug("exiting "+SVC_OPERATION+" because of invalid preload-name");
-                       responseBuilder.setResponseCode("403");
-                       responseBuilder.setResponseMessage("invalid input, invalid preload-name");
-                       responseBuilder.setAckFinalIndicator("Y");
-                       RpcResult<PreloadVfModuleTopologyOperationOutput> rpcResult =
-                               RpcResultBuilder.<PreloadVfModuleTopologyOperationOutput> status(true).withResult(responseBuilder.build()).build();
-                       return Futures.immediateFuture(rpcResult);
-               }
-               if(preload_type == null || preload_type.length() == 0 ) {
-                       log.debug("exiting "+SVC_OPERATION+" because of invalid preload-type");
-                       responseBuilder.setResponseCode("403");
-                       responseBuilder.setResponseMessage("invalid input, invalid preload-type");
-                       responseBuilder.setAckFinalIndicator("Y");
-                       RpcResult<PreloadVfModuleTopologyOperationOutput> rpcResult =
-                               RpcResultBuilder.<PreloadVfModuleTopologyOperationOutput> status(true).withResult(responseBuilder.build()).build();
-                       return Futures.immediateFuture(rpcResult);
-               }
-
-               if (input.getSdncRequestHeader() != null) {
-                       responseBuilder.setSvcRequestId(input.getSdncRequestHeader().getSvcRequestId());
-               }
-
-               VfModulePreloadDataBuilder vfModulePreloadDataBuilder = new VfModulePreloadDataBuilder();
-               getVfModulePreloadData(preload_name, preload_type, vfModulePreloadDataBuilder);
-               //preloadData = preloadDataBuilder.build();
-
-               VfModulePreloadDataBuilder operDataBuilder = new VfModulePreloadDataBuilder();
-               getVfModulePreloadData(preload_name, preload_type, operDataBuilder, LogicalDatastoreType.OPERATIONAL );
-
-               //
-               // setup a preload-data object builder
-               // ACTION vnf-topology-operation
-               // INPUT:
-               //  USES sdnc-request-header;
-               //  USES request-information;
-        //  uses vnf-topology-information;
-               // OUTPUT:
-               //  USES vnf-topology-response-body;
-               //
-               // container preload-data
-        //   uses vnf-configuration-information;
-
-
-               log.info("Adding INPUT data for "+SVC_OPERATION+" ["+preload_name+","+preload_type+"] input: " + input);
-               PreloadVfModuleTopologyOperationInputBuilder inputBuilder = new PreloadVfModuleTopologyOperationInputBuilder(input);
-               VnfSdnUtil.toProperties(parms, inputBuilder.build());
-               log.info("Adding OPERATIONAL data for "+SVC_OPERATION+" ["+preload_name+","+preload_type +"] operational-data: " + operDataBuilder.build());
-               VnfSdnUtil.toProperties(parms, "operational-data", operDataBuilder);
-
-               // Call SLI sync method
-               // Get SvcLogicService reference
-
-               VNFSDNSvcLogicServiceClient svcLogicClient = new VNFSDNSvcLogicServiceClient();
-               Properties respProps = null;
-
-               String errorCode = "200";
-               String errorMessage = null;
-               String ackFinal = "Y";
-
-
-               try
-               {
-                       if (svcLogicClient.hasGraph("VNF-API", SVC_OPERATION , null, "sync"))
-                       {
-
-                               try
-                               {
-                                       respProps = svcLogicClient.execute("VNF-API", SVC_OPERATION, null, "sync", vfModulePreloadDataBuilder, parms);
-                               }
-                               catch (Exception e)
-                               {
-                                       log.error("Caught exception executing service logic for "+ SVC_OPERATION, e);
-                                       errorMessage = e.getMessage();
-                                       errorCode = "500";
-                               }
-                       } else {
-                               errorMessage = "No service logic active for VNF-API: '" + SVC_OPERATION + "'";
-                               errorCode = "503";
-                       }
-               }
-               catch (Exception e)
-               {
-                       errorCode = "500";
-                       errorMessage = e.getMessage();
-                       log.error("Caught exception looking for service logic", e);
-               }
-
-
-               if (respProps != null)
-               {
-                       errorCode = respProps.getProperty("error-code");
-                       errorMessage = respProps.getProperty("error-message");
-                       ackFinal = respProps.getProperty("ack-final", "Y");
-                       // internalError = respProps.getProperty("internal-error", "false");
-               }
-
-               if ( errorCode != null && errorCode.length() != 0 && !( errorCode.equals("0")|| errorCode.equals("200"))) {
-
-                       responseBuilder.setResponseCode(errorCode);
-                       responseBuilder.setResponseMessage(errorMessage);
-                       responseBuilder.setAckFinalIndicator(ackFinal);
-
-                       VfModulePreloadListBuilder vfModulePreloadListBuilder = new VfModulePreloadListBuilder();
-                       vfModulePreloadListBuilder.setVfModuleName(preload_name);
-                       vfModulePreloadListBuilder.setVfModuleModelId(preload_type);
-                       vfModulePreloadListBuilder.setVfModulePreloadData(vfModulePreloadDataBuilder.build());
-                       log.error("Returned FAILED for "+SVC_OPERATION+" ["+preload_name+","+preload_type+"] error code: '" + errorCode + "', Reason: '" + errorMessage + "'");
-                       try {
-                               SaveVfModulePreloadList (vfModulePreloadListBuilder.build(), true,LogicalDatastoreType.CONFIGURATION);
-                       } catch (Exception e) {
-                               log.error("Caught Exception updating MD-SAL for "+SVC_OPERATION+" ["+preload_name+","+preload_type+"] \n",e);
-                       }
-                       log.debug("Sending Success rpc result due to external error");
-                       RpcResult<PreloadVfModuleTopologyOperationOutput> rpcResult =
-                               RpcResultBuilder.<PreloadVfModuleTopologyOperationOutput> status(true).withResult(responseBuilder.build()).build();
-                       return Futures.immediateFuture(rpcResult);
-               }
-
-               // Got success from SLI
-               try {
-                       vfModulePreloadData = vfModulePreloadDataBuilder.build();
-                       log.info("Updating MD-SAL for "+SVC_OPERATION+" ["+preload_name+","+preload_type+"] preloadData: " + vfModulePreloadData);
-                       // svc-configuration-list
-                       VfModulePreloadListBuilder vfModulePreloadListBuilder = new VfModulePreloadListBuilder();
-                       vfModulePreloadListBuilder.setVfModuleName(preload_name);
-                       vfModulePreloadListBuilder.setVfModuleModelId(preload_type);
-                       vfModulePreloadListBuilder.setVfModulePreloadData(vfModulePreloadData);
-
-                       // SDNGC-989 set merge flag to false
-                       SaveVfModulePreloadList (vfModulePreloadListBuilder.build(), false, LogicalDatastoreType.CONFIGURATION);
-                       log.info("Updating OPERATIONAL tree.");
-                       SaveVfModulePreloadList (vfModulePreloadListBuilder.build(), false, LogicalDatastoreType.OPERATIONAL);
-               } catch (Exception e) {
-                       log.error("Caught Exception updating MD-SAL for "+SVC_OPERATION+" ["+preload_name+","+preload_type+"] \n",e);
-                       responseBuilder.setResponseCode("500");
-                       responseBuilder.setResponseMessage(e.toString());
-                       responseBuilder.setAckFinalIndicator("Y");
-                       log.error("Returned FAILED for "+SVC_OPERATION+" ["+preload_name+","+preload_type+"] " + responseBuilder.build());
-                       RpcResult<PreloadVfModuleTopologyOperationOutput> rpcResult =
-                               RpcResultBuilder.<PreloadVfModuleTopologyOperationOutput> status(false).withResult(responseBuilder.build()).build();
-                       return Futures.immediateFuture(rpcResult);
-               }
-
-               // Update succeeded
-               responseBuilder.setResponseCode(errorCode);
-               responseBuilder.setAckFinalIndicator(ackFinal);
-               if (errorMessage != null)
-               {
-                       responseBuilder.setResponseMessage(errorMessage);
-               }
-               log.info("Updated MD-SAL for "+SVC_OPERATION+" ["+preload_name+","+preload_type+"] ");
-               log.info("Returned SUCCESS for "+SVC_OPERATION+" ["+preload_name+","+preload_type+"] " + responseBuilder.build());
-
-               RpcResult<PreloadVfModuleTopologyOperationOutput> rpcResult =
-                               RpcResultBuilder.<PreloadVfModuleTopologyOperationOutput> status(true).withResult(responseBuilder.build()).build();
-               return Futures.immediateFuture(rpcResult);
-       }
-
-
-       @Override
-       public Future<RpcResult<PreloadNetworkTopologyOperationOutput>> preloadNetworkTopologyOperation(
-                       PreloadNetworkTopologyOperationInput input) {
-
-               final String SVC_OPERATION = "preload-network-topology-operation";
-               PreloadData preloadData = null;
-               Properties parms = new Properties();
-
-               log.info( SVC_OPERATION +" called." );
-               // create a new response object
-               PreloadNetworkTopologyOperationOutputBuilder responseBuilder = new PreloadNetworkTopologyOperationOutputBuilder();
-
-               // Result from savePreloadData
-               final SettableFuture<RpcResult<Void>> futureResult = SettableFuture.create();
-
-               if(input == null || input.getNetworkTopologyInformation() == null || input.getNetworkTopologyInformation().getNetworkTopologyIdentifier() == null || input.getNetworkTopologyInformation().getNetworkTopologyIdentifier().getNetworkName() == null || input.getNetworkTopologyInformation().getNetworkTopologyIdentifier().getNetworkType() == null) {
-                       log.debug("exiting " +SVC_OPERATION+ " because of invalid input, null or empty vnf-name and vnf-type");
-                       responseBuilder.setResponseCode("403");
-                       responseBuilder.setResponseMessage("input, null or empty vnf-name and vnf-type");
-                       responseBuilder.setAckFinalIndicator("Y");
-                       RpcResult<PreloadNetworkTopologyOperationOutput> rpcResult =
-                                RpcResultBuilder.<PreloadNetworkTopologyOperationOutput> status(true).withResult(responseBuilder.build()).build();
-                        return Futures.immediateFuture(rpcResult);
-               }
-
-               // Grab the name and type from the input buffer
-               String preload_name = input.getNetworkTopologyInformation().getNetworkTopologyIdentifier().getNetworkName();
-               String preload_type = input.getNetworkTopologyInformation().getNetworkTopologyIdentifier().getNetworkType();
-
-               // Make sure we have a preload_name and preload_type
-               if(preload_name == null || preload_name.length() == 0 ) {
-                       log.debug("exiting "+SVC_OPERATION+" because of invalid preload-name");
-                       responseBuilder.setResponseCode("403");
-                       responseBuilder.setResponseMessage("input, invalid preload-name");
-                       responseBuilder.setAckFinalIndicator("Y");
-                       RpcResult<PreloadNetworkTopologyOperationOutput> rpcResult =
-                                RpcResultBuilder.<PreloadNetworkTopologyOperationOutput> status(true).withResult(responseBuilder.build()).build();
-                        return Futures.immediateFuture(rpcResult);
-               }
-               if(preload_type == null || preload_type.length() == 0 ) {
-                       log.debug("exiting "+SVC_OPERATION+" because of invalid preload-type");
-                       responseBuilder.setResponseCode("403");
-                       responseBuilder.setResponseMessage("input, invalid preload-type");
-                       responseBuilder.setAckFinalIndicator("Y");
-                       RpcResult<PreloadNetworkTopologyOperationOutput> rpcResult =
-                                RpcResultBuilder.<PreloadNetworkTopologyOperationOutput> status(true).withResult(responseBuilder.build()).build();
-                        return Futures.immediateFuture(rpcResult);
-               }
-
-               if (input.getSdncRequestHeader() != null) {
-                       responseBuilder.setSvcRequestId(input.getSdncRequestHeader().getSvcRequestId());
-               }
-
-               PreloadDataBuilder preloadDataBuilder = new PreloadDataBuilder();
-               getPreloadData(preload_name, preload_type, preloadDataBuilder);
-
-               PreloadDataBuilder operDataBuilder = new PreloadDataBuilder();
-               getPreloadData(preload_name, preload_type, operDataBuilder, LogicalDatastoreType.OPERATIONAL );
-
-               //
-               // setup a preload-data object builder
-               // ACTION vnf-topology-operation
-               // INPUT:
-               //  USES sdnc-request-header;
-               //  USES request-information;
-        //  uses vnf-topology-information;
-               // OUTPUT:
-               //  USES vnf-topology-response-body;
-               //
-               // container preload-data
-        //   uses vnf-configuration-information;
-
-
-               log.info("Adding INPUT data for "+SVC_OPERATION+" ["+preload_name+","+preload_type+"] input: " + input);
-               PreloadNetworkTopologyOperationInputBuilder inputBuilder = new PreloadNetworkTopologyOperationInputBuilder(input);
-               VnfSdnUtil.toProperties(parms, inputBuilder.build());
-               log.info("Adding OPERATIONAL data for "+SVC_OPERATION+" ["+preload_name+","+preload_type +"] operational-data: " + operDataBuilder.build());
-               VnfSdnUtil.toProperties(parms, "operational-data", operDataBuilder);
-
-               // Call SLI sync method
-               // Get SvcLogicService reference
-
-               VNFSDNSvcLogicServiceClient svcLogicClient = new VNFSDNSvcLogicServiceClient();
-               Properties respProps = null;
-
-               String errorCode = "200";
-               String errorMessage = null;
-               String ackFinal = "Y";
-
-
-               try
-               {
-                       if (svcLogicClient.hasGraph("VNF-API", SVC_OPERATION , null, "sync"))
-                       {
-
-                               try
-                               {
-                                       respProps = svcLogicClient.execute("VNF-API", SVC_OPERATION, null, "sync", preloadDataBuilder, parms);
-                               }
-                               catch (Exception e)
-                               {
-                                       log.error("Caught exception executing service logic for "+ SVC_OPERATION, e);
-                                       errorMessage = e.getMessage();
-                                       errorCode = "500";
-                               }
-                       } else {
-                               errorMessage = "No service logic active for VNF-API: '" + SVC_OPERATION + "'";
-                               errorCode = "503";
-                       }
-               }
-               catch (Exception e)
-               {
-                       errorCode = "500";
-                       errorMessage = e.getMessage();
-                       log.error("Caught exception looking for service logic", e);
-               }
-
-
-               if (respProps != null)
-               {
-                       errorCode = respProps.getProperty("error-code");
-                       errorMessage = respProps.getProperty("error-message");
-                       ackFinal = respProps.getProperty("ack-final", "Y");
-                       // internalError = respProps.getProperty("internal-error", "false");
-               }
-
-               if ( errorCode != null && errorCode.length() != 0 && !( errorCode.equals("0")|| errorCode.equals("200"))) {
-
-                       responseBuilder.setResponseCode(errorCode);
-                       responseBuilder.setResponseMessage(errorMessage);
-                       responseBuilder.setAckFinalIndicator(ackFinal);
-
-                       VnfPreloadListBuilder preloadVnfListBuilder = new VnfPreloadListBuilder();
-                       preloadVnfListBuilder.setVnfName(preload_name);
-                       preloadVnfListBuilder.setVnfType(preload_type);
-                       preloadVnfListBuilder.setPreloadData(preloadDataBuilder.build());
-                       log.error("Returned FAILED for "+SVC_OPERATION+" ["+preload_name+","+preload_type+"] error code: '" + errorCode + "', Reason: '" + errorMessage + "'");
-                       try {
-                               SavePreloadList (preloadVnfListBuilder.build(),true,LogicalDatastoreType.CONFIGURATION);
-                       } catch (Exception e) {
-                               log.error("Caught Exception updating MD-SAL for "+SVC_OPERATION+" ["+preload_name+","+preload_type+"] \n",e);
-
-                       }
-                       log.debug("Sending Success rpc result due to external error");
-                       RpcResult<PreloadNetworkTopologyOperationOutput> rpcResult =
-                               RpcResultBuilder.<PreloadNetworkTopologyOperationOutput> status(true).withResult(responseBuilder.build()).build();
-                       return Futures.immediateFuture(rpcResult);
-               }
-
-               // Got success from SLI
-               try {
-                       preloadData = preloadDataBuilder.build();
-                       log.info("Updating MD-SAL for "+SVC_OPERATION+" ["+preload_name+","+preload_type+"] preloadData: " + preloadData);
-                       // svc-configuration-list
-                       VnfPreloadListBuilder preloadVnfListBuilder = new VnfPreloadListBuilder();
-                       preloadVnfListBuilder.setVnfName(preload_name);
-                       preloadVnfListBuilder.setVnfType(preload_type);
-                       preloadVnfListBuilder.setPreloadData(preloadData);
-
-                       // SDNGC-989 set merge flag to false
-                       SavePreloadList (preloadVnfListBuilder.build(), false, LogicalDatastoreType.CONFIGURATION);
-                       log.info("Updating OPERATIONAL tree.");
-                       SavePreloadList (preloadVnfListBuilder.build(), false, LogicalDatastoreType.OPERATIONAL);
-               } catch (Exception e) {
-                       log.error("Caught Exception updating MD-SAL for "+SVC_OPERATION+" ["+preload_name+","+preload_type+"] \n",e);
-                       responseBuilder.setResponseCode("500");
-                       responseBuilder.setResponseMessage(e.toString());
-                       responseBuilder.setAckFinalIndicator("Y");
-                       log.error("Returned FAILED for "+SVC_OPERATION+" ["+preload_name+","+preload_type+"] " + responseBuilder.build());
-                       RpcResult<PreloadNetworkTopologyOperationOutput> rpcResult =
-                               RpcResultBuilder.<PreloadNetworkTopologyOperationOutput> status(false).withResult(responseBuilder.build()).build();
-                       return Futures.immediateFuture(rpcResult);
-               }
-
-               // Update succeeded
-               responseBuilder.setResponseCode(errorCode);
-               responseBuilder.setAckFinalIndicator(ackFinal);
-               if (errorMessage != null)
-               {
-                       responseBuilder.setResponseMessage(errorMessage);
-               }
-               log.info("Updated MD-SAL for "+SVC_OPERATION+" ["+preload_name+","+preload_type+"] ");
-               log.info("Returned SUCCESS for "+SVC_OPERATION+" ["+preload_name+","+preload_type+"] " + responseBuilder.build());
-
-               RpcResult<PreloadNetworkTopologyOperationOutput> rpcResult =
-                               RpcResultBuilder.<PreloadNetworkTopologyOperationOutput> status(true).withResult(responseBuilder.build()).build();
-               return Futures.immediateFuture(rpcResult);
-       }
-}
index 3749d83..c472b65 100644 (file)
@@ -1,7 +1,7 @@
 module vnfapi-provider-impl {
 
     yang-version 1;
-    namespace "org:openecomp:sdnc:vnfapi:provider:impl";
+    namespace "org:onap:sdnc:vnfapi:provider:impl";
     prefix "vnfapi-provider-impl";
 
     import config { prefix config; revision-date 2013-04-05; }
index 320f30d..04c30ab 100644 (file)
@@ -19,7 +19,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.sdnc.vnfapi;
+package org.onap.sdnc.vnfapi;
 
 import java.io.FileNotFoundException;
 import java.io.FileOutputStream;
@@ -30,14 +30,14 @@ import java.util.Properties;
 
 import junit.framework.TestCase;
 
-import org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.VnfTopologyOperationInput;
-import org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.VnfTopologyOperationInputBuilder;
-import org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.service.data.ServiceDataBuilder;
-import org.openecomp.sdnc.vnfapi.VnfSdnUtil;
-import org.openecomp.sdnc.vnfapi.vnfapiProvider;
-import org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.PreloadVnfTopologyOperationInput;
-import org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.PreloadVnfTopologyOperationInputBuilder;
-import org.opendaylight.yang.gen.v1.org.openecomp.sdnctl.vnf.rev150720.preload.data.PreloadDataBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.VnfTopologyOperationInput;
+import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.VnfTopologyOperationInputBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.service.data.ServiceDataBuilder;
+import org.onap.sdnc.vnfapi.VnfSdnUtil;
+import org.onap.sdnc.vnfapi.vnfapiProvider;
+import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.PreloadVnfTopologyOperationInput;
+import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.PreloadVnfTopologyOperationInputBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.sdnctl.vnf.rev150720.preload.data.PreloadDataBuilder;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
index e17ec6a..452737f 100644 (file)
@@ -3,7 +3,7 @@
        <modelVersion>4.0.0</modelVersion>
        <parent>
                <artifactId>vnftools</artifactId>
-               <groupId>org.openecomp.sdnc.northbound</groupId>
+               <groupId>org.onap.sdnc.northbound</groupId>
                <version>1.2.0-SNAPSHOT</version>
        </parent>
        <artifactId>vnftools-features</artifactId>
@@ -15,7 +15,7 @@
 
 
                <dependency>
-                       <groupId>org.openecomp.sdnc.northbound</groupId>
+                       <groupId>org.onap.sdnc.northbound</groupId>
                        <artifactId>vnftools-provider</artifactId>
                        <version>${project.version}</version>
                </dependency>
index f90e401..742efb4 100644 (file)
@@ -32,7 +32,7 @@
         <!-- Most applications will have a dependency on the ODL MD-SAL Broker -->
         <feature version="${odl.mdsal.version}">odl-mdsal-broker</feature>
         <feature>sdnc-sli</feature>
-        <bundle>mvn:org.openecomp.sdnc.northbound/vnftools-provider/${project.version}</bundle>
+        <bundle>mvn:org.onap.sdnc.northbound/vnftools-provider/${project.version}</bundle>
     </feature>
 
 </features>
index 50d4975..196b6bd 100755 (executable)
@@ -4,7 +4,7 @@
        <modelVersion>4.0.0</modelVersion>
        <parent>
                <artifactId>vnftools</artifactId>
-               <groupId>org.openecomp.sdnc.northbound</groupId>
+               <groupId>org.onap.sdnc.northbound</groupId>
                <version>1.2.0-SNAPSHOT</version>
        </parent>
        <artifactId>vnftools-installer</artifactId>
        <properties>
                <application.name>sdnc-vnftools</application.name>
                <features.boot>sdnc-vnftools</features.boot>
-               <features.repositories>mvn:org.openecomp.sdnc.northbound/vnftools-features/${project.version}/xml/features</features.repositories>
+               <features.repositories>mvn:org.onap.sdnc.northbound/vnftools-features/${project.version}/xml/features</features.repositories>
                <include.transitive.dependencies>false</include.transitive.dependencies>
        </properties>
 
        <dependencies>
 
                <dependency>
-                       <groupId>org.openecomp.sdnc.northbound</groupId>
+                       <groupId>org.onap.sdnc.northbound</groupId>
                        <artifactId>vnftools-features</artifactId>
                        <version>${project.version}</version>
                        <classifier>features</classifier>
@@ -35,7 +35,7 @@
                </dependency>
 
                <dependency>
-                       <groupId>org.openecomp.sdnc.northbound</groupId>
+                       <groupId>org.onap.sdnc.northbound</groupId>
                        <artifactId>vnftools-provider</artifactId>
                        <version>${project.version}</version>
                </dependency>
                                                        <useRepositoryLayout>true</useRepositoryLayout>
                                                        <addParentPoms>false</addParentPoms>
                                                        <copyPom>false</copyPom>
-                                                       <includeGroupIds>org.openecomp.sdnc</includeGroupIds>
+                                                       <includeGroupIds>org.onap.sdnc</includeGroupIds>
                                                        <excludeArtifactIds>sli-common,sli-provider,dblib-common,dblib-provider,sliPluginUtils-provider</excludeArtifactIds>
                                                        <scope>provided</scope>
                                                </configuration>
index e8f5f03..c9ed979 100644 (file)
@@ -1,14 +1,14 @@
 <?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/maven-v4_0_0.xsd">
        <parent>
-               <groupId>org.openecomp.sdnc.northbound</groupId>
+               <groupId>org.onap.sdnc.northbound</groupId>
                <artifactId>sdnc-northbound</artifactId>
                <version>1.2.0-SNAPSHOT</version>
        </parent>
 
        <modelVersion>4.0.0</modelVersion>
        <packaging>pom</packaging>
-       <groupId>org.openecomp.sdnc.northbound</groupId>
+       <groupId>org.onap.sdnc.northbound</groupId>
        <artifactId>vnftools</artifactId>
 
        <properties>
@@ -24,7 +24,7 @@
 
                 <dependencies>
                         <dependency>
-                                <groupId>org.openecomp.sdnc.northbound</groupId>
+                                <groupId>org.onap.sdnc.northbound</groupId>
                                 <artifactId>vnftools-features</artifactId>
                                 <classifier>features</classifier>
                                 <type>xml</type>
@@ -32,7 +32,7 @@
                         </dependency>
 
                         <dependency>
-                                <groupId>org.openecomp.sdnc.northbound</groupId>
+                                <groupId>org.onap.sdnc.northbound</groupId>
                                 <artifactId>vnftools-provider</artifactId>
                                 <version>${project.version}</version>
                         </dependency>
index 22512d0..146453e 100644 (file)
@@ -2,7 +2,7 @@
 <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.openecomp.sdnc.northbound</groupId>
+               <groupId>org.onap.sdnc.northbound</groupId>
                <artifactId>vnftools</artifactId>
                <version>1.2.0-SNAPSHOT</version>
        </parent>
                        <scope>test</scope>
                </dependency>
                <dependency>
-                       <groupId>org.openecomp.sdnc.core</groupId>
+                       <groupId>org.onap.ccsdk.sli.core</groupId>
                        <artifactId>sli-common</artifactId>
                        <version>${sdnctl.sli.version}</version>
                        <scope>compile</scope>
                </dependency>
                <dependency>
-                       <groupId>org.openecomp.sdnc.core</groupId>
+                       <groupId>org.onap.ccsdk.sli.core</groupId>
                        <artifactId>sli-provider</artifactId>
                        <version>${sdnctl.sli.version}</version>
                        <scope>compile</scope>
@@ -49,7 +49,7 @@
                </dependency>
 
                <dependency>
-                       <groupId>org.openecomp.sdnc.core</groupId>
+                       <groupId>org.onap.ccsdk.sli.core</groupId>
                        <artifactId>sliPluginUtils-provider</artifactId>
                        <version>${sdnctl.slipluginutils.version}</version>
                        <type>jar</type>
                                <extensions>true</extensions>
                                <configuration>
                                        <instructions>
-                                               <Bundle-SymbolicName>org.openecomp.sdnc.vnftools</Bundle-SymbolicName>
-                                               <Bundle-Activator>org.openecomp.sdnc.vnftools.VnfToolsActivator</Bundle-Activator>
-                                               <Export-Package>org.openecomp.sdnc.vnftools</Export-Package>
-                                               <Import-Package>org.openecomp.sdnc.*,org.osgi.framework.*,org.slf4j.*,java.net.*,org.apache.commons.*</Import-Package>
+                                               <Bundle-SymbolicName>org.onap.sdnc.vnftools</Bundle-SymbolicName>
+                                               <Bundle-Activator>org.onap.sdnc.vnftools.VnfToolsActivator</Bundle-Activator>
+                                               <Export-Package>org.onap.sdnc.vnftools</Export-Package>
+                                               <Import-Package>org.onap.sdnc.*,org.osgi.framework.*,org.slf4j.*,java.net.*,org.apache.commons.*</Import-Package>
                                                <Embed-Dependency>*;scope=compile|runtime;artifactId=!sli-common|org.eclipse.osgi|mysql-connector-java|slf4j-api|jcl-over-slf4j|xml-apis|InetAddress|commons-lang3</Embed-Dependency>
                                                <Embed-Transitive>true</Embed-Transitive>
                                        </instructions>
@@ -19,7 +19,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.sdnc.vnftools;
+package org.onap.sdnc.vnftools;
 
 import java.io.File;
 import java.io.FileOutputStream;
@@ -29,10 +29,10 @@ import java.util.List;
 import java.util.Map;
 import java.util.Properties;
 
-import org.openecomp.sdnc.sli.SvcLogicContext;
-import org.openecomp.sdnc.sli.SvcLogicException;
-import org.openecomp.sdnc.sli.SvcLogicJavaPlugin;
-import org.openecomp.sdnc.sli.SliPluginUtils.SliPluginUtils;
+import org.onap.ccsdk.sli.core.sli.SvcLogicContext;
+import org.onap.ccsdk.sli.core.sli.SvcLogicException;
+import org.onap.ccsdk.sli.core.sli.SvcLogicJavaPlugin;
+import org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -19,7 +19,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.sdnc.vnftools;
+package org.onap.sdnc.vnftools;
 
 import java.io.File;
 import java.io.FileInputStream;
@@ -27,7 +27,7 @@ import java.util.LinkedList;
 import java.util.List;
 import java.util.Properties;
 
-import org.openecomp.sdnc.sli.ConfigurationException;
+import org.onap.ccsdk.sli.core.sli.ConfigurationException;
 import org.osgi.framework.BundleActivator;
 import org.osgi.framework.BundleContext;
 import org.osgi.framework.ServiceRegistration;