summaryrefslogtreecommitdiffstats
path: root/platform-logic
diff options
context:
space:
mode:
authorPatrick Brady <pb071s@att.com>2017-02-13 11:57:08 -0800
committerPatrick Brady <pb071s@att.com>2017-02-13 11:58:35 -0800
commit835142575e76466d46e98fbf7e73c5b6d65a8afe (patch)
tree1ef44f1f45f5f6be774ec29c64997e1c4afe60eb /platform-logic
parentbf5aefe3c4206c00469b691a64d7707aa61ab150 (diff)
Initial OpenECOMP appc/deployment commit
Change-Id: I46850ced2a3ff7a55dd1e92ec4509bf728466ce9 Signed-off-by: Patrick Brady <pb071s@att.com>
Diffstat (limited to 'platform-logic')
-rw-r--r--platform-logic/.gitignore12
-rw-r--r--platform-logic/appc/pom.xml58
-rw-r--r--platform-logic/appc/src/main/json/APPC_method_topology_operation_all_2.0.0.json1
-rw-r--r--platform-logic/appc/src/main/resources/graph.versions1
-rw-r--r--platform-logic/appc/src/main/xml/APPC_method_topology_operation_all_2.0.0.xml76
-rw-r--r--platform-logic/installer/pom.xml126
-rw-r--r--platform-logic/installer/src/assembly/assemble_zip.xml70
-rw-r--r--platform-logic/installer/src/main/resources/svclogic.properties26
-rw-r--r--platform-logic/installer/src/main/scripts/install.sh27
-rw-r--r--platform-logic/installer/src/main/scripts/setenv.sh45
-rw-r--r--platform-logic/installer/src/main/scripts/showActiveGraphs.sh29
-rw-r--r--platform-logic/installer/src/main/scripts/svclogic.sh32
-rw-r--r--platform-logic/pom.xml35
13 files changed, 538 insertions, 0 deletions
diff --git a/platform-logic/.gitignore b/platform-logic/.gitignore
new file mode 100644
index 0000000..0f1b7db
--- /dev/null
+++ b/platform-logic/.gitignore
@@ -0,0 +1,12 @@
+org.eclipse.core.resources.prefs
+.classpath
+.project
+.settings
+.idea
+.externalToolBuilders
+maven-eclipse.xml
+*.class
+target/
+MANIFEST.MF
+.DS_STORE
+.metadata
diff --git a/platform-logic/appc/pom.xml b/platform-logic/appc/pom.xml
new file mode 100644
index 0000000..c29e455
--- /dev/null
+++ b/platform-logic/appc/pom.xml
@@ -0,0 +1,58 @@
+<?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.appc.deployment</groupId>
+ <artifactId>platform-logic</artifactId>
+ <version>1.0.0</version>
+ </parent>
+
+ <modelVersion>4.0.0</modelVersion>
+ <packaging>pom</packaging>
+ <groupId>org.openecomp.appc.deployment</groupId>
+ <artifactId>platform-logic-appc</artifactId>
+ <version>1.0.0</version>
+
+ <name>Platform Logic : APP-C</name>
+ <description>Contains platform-level service logic for the APP-C Platform</description>
+
+
+ <build>
+ <plugins>
+ <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>../target/graphs/appc</outputDirectory>
+ <resources>
+ <resource>
+ <directory>src/main/xml</directory>
+ <includes>
+ <include>*.xml</include>
+ </includes>
+ <filtering>true</filtering>
+ </resource>
+ <resource>
+ <directory>src/main/resources</directory>
+ <includes>
+ <include>graph.versions</include>
+ </includes>
+ <filtering>true</filtering>
+ </resource>
+ </resources>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+
+</project>
diff --git a/platform-logic/appc/src/main/json/APPC_method_topology_operation_all_2.0.0.json b/platform-logic/appc/src/main/json/APPC_method_topology_operation_all_2.0.0.json
new file mode 100644
index 0000000..46844ee
--- /dev/null
+++ b/platform-logic/appc/src/main/json/APPC_method_topology_operation_all_2.0.0.json
@@ -0,0 +1 @@
+[{"id":"7a758f5d.36f2a","type":"service-logic","name":"APPC 2.0.0","module":"APPC","version":"2.0.0","comments":"","xml":"<service-logic xmlns='http://www.att.com/sdnctl/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.att.com/sdnctl/svclogic ./svclogic.xsd' module='APPC' version='2.0.0'>","outputs":1,"x":140,"y":94,"z":"d1a301d8.219aa8","wires":[["1a700941.9439d7"]]},{"id":"9c06c4b3.52782","type":"dgstart","name":"DGSTART","outputs":1,"x":147,"y":44,"z":"d1a301d8.219aa8","wires":[["7a758f5d.36f2a"]]},{"id":"3c6a4d55.f97af2","type":"switchNode","name":"action","xml":"<switch test='`$org.openecomp.appc.action`'>\n","comments":"What method should we try to call. Closely maps to __action__Server()","outputs":1,"x":138,"y":176,"z":"d1a301d8.219aa8","wires":[["2c19128d.9d02d6","8be03d03.7d96b","dd9e6d46.07b738","6fb02e14.175a68","b08d9f4.1b17fe","291bda8a.1c712e","2166e9a9.37316e"]]},{"id":"2c19128d.9d02d6","type":"outcome","name":"restart","xml":"<outcome value='restart'>\n","comments":"","outputs":1,"x":293,"y":191,"z":"d1a301d8.219aa8","wires":[["a9607cbc.3e9d9"]]},{"id":"8be03d03.7d96b","type":"outcome","name":"rebuild","xml":"<outcome value='rebuild'>\n","comments":"","outputs":1,"x":304.25,"y":317,"z":"d1a301d8.219aa8","wires":[["aa907476.8ca3a8"]]},{"id":"56bd2e0d.61dd88","type":"returnFailure","name":"Unknown Action","xml":"<return status='failure'>\n<parameter name='error-code' value='404' />\n<parameter name='error-message' value='Unknown action specified' />\n","comments":"","x":911.75,"y":801,"z":"d1a301d8.219aa8","wires":[]},{"id":"a9607cbc.3e9d9","type":"execute","name":"restartServer()","xml":"<execute plugin='org.openecomp.appc.adapter.iaas.ProviderAdapter' method='restartServer'>\n<parameter name=\"org.openecomp.appc.provider.name\" value=\"OpenStack\" />\n<parameter name=\"org.openecomp.appc.instance.url\" value=\"`$org.openecomp.appc.vmid`\" />\n<parameter name=\"org.openecomp.appc.identity.url\" value=\"`$org.openecomp.appc.identity.url`\" />","comments":"","outputs":1,"x":456,"y":193,"z":"d1a301d8.219aa8","wires":[["50d932ab.8cca84","ebcec5e2.930378"]]},{"id":"50d932ab.8cca84","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":605,"y":194,"z":"d1a301d8.219aa8","wires":[["517fd692.1c6f3"]]},{"id":"517fd692.1c6f3","type":"returnSuccess","name":"return success","xml":"<return status='success'>\n","comments":"","x":948,"y":318,"z":"d1a301d8.219aa8","wires":[]},{"id":"cb7f2c34.1b0738","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<!--\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value='failed' />\n-->","comments":"","x":946,"y":494,"z":"d1a301d8.219aa8","wires":[]},{"id":"aa907476.8ca3a8","type":"execute","name":"rebuildServer()","xml":"<execute plugin='org.openecomp.appc.adapter.iaas.ProviderAdapter' method='rebuildServer'>\n<parameter name=\"org.openecomp.appc.provider.name\" value=\"OpenStack\" />\n<parameter name=\"org.openecomp.appc.instance.url\" value=\"`$org.openecomp.appc.vmid`\" />\n<parameter name=\"org.openecomp.appc.identity.url\" value=\"`$org.openecomp.appc.identity.url`\" />","comments":"","outputs":1,"x":467,"y":318,"z":"d1a301d8.219aa8","wires":[["342e7005.3e2bd8","7f14a01.4ac3e6"]]},{"id":"342e7005.3e2bd8","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":617,"y":317,"z":"d1a301d8.219aa8","wires":[["517fd692.1c6f3"]]},{"id":"1a700941.9439d7","type":"method","name":"method","xml":"<method rpc='topology-operation-all' mode='sync'>\n","comments":"","outputs":1,"x":298,"y":94,"z":"d1a301d8.219aa8","wires":[["3c6a4d55.f97af2"]]},{"id":"dd9e6d46.07b738","type":"outcome","name":"migrate","xml":"<outcome value='migrate'>\n","comments":"","outputs":1,"x":306.75,"y":437,"z":"d1a301d8.219aa8","wires":[["3355fed0.38abf2"]]},{"id":"3355fed0.38abf2","type":"execute","name":"migrateServer()","xml":"<execute plugin='org.openecomp.appc.adapter.iaas.ProviderAdapter' method='migrateServer'>\n<parameter name=\"org.openecomp.appc.provider.name\" value=\"OpenStack\" />\n<parameter name=\"org.openecomp.appc.instance.url\" value=\"`$org.openecomp.appc.vmid`\" />\n<parameter name=\"org.openecomp.appc.identity.url\" value=\"`$org.openecomp.appc.identity.url`\" />","comments":"","outputs":1,"x":469.75,"y":436,"z":"d1a301d8.219aa8","wires":[["af8c164c.f9e408","f2b9661b.faf0c8"]]},{"id":"af8c164c.f9e408","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":625.25,"y":436,"z":"d1a301d8.219aa8","wires":[["517fd692.1c6f3"]]},{"id":"f2b9661b.faf0c8","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":621.25,"y":476,"z":"d1a301d8.219aa8","wires":[["cb7f2c34.1b0738"]]},{"id":"7f14a01.4ac3e6","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":613,"y":355,"z":"d1a301d8.219aa8","wires":[["cb7f2c34.1b0738"]]},{"id":"c09eb09e.d88578","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":620.25,"y":716,"z":"d1a301d8.219aa8","wires":[["5cd5b3a.00a834c"]]},{"id":"ac9fdda8.635c5","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":623.25,"y":680,"z":"d1a301d8.219aa8","wires":[["5cd5b3a.00a834c"]]},{"id":"e4197510.21f14","type":"execute","name":"evacuateServer()","xml":"<execute plugin='org.openecomp.appc.adapter.iaas.ProviderAdapter' method='evacuateServer'>\n<parameter name=\"org.openecomp.appc.provider.name\" value=\"OpenStack\" />\n<parameter name=\"org.openecomp.appc.instance.url\" value=\"`$org.openecomp.appc.vmid`\" />\n<parameter name=\"org.openecomp.appc.identity.url\" value=\"`$org.openecomp.appc.identity.url`\" />","comments":"","outputs":1,"x":467.75,"y":680,"z":"d1a301d8.219aa8","wires":[["c09eb09e.d88578","ac9fdda8.635c5"]]},{"id":"6fb02e14.175a68","type":"outcome","name":"migrate","xml":"<outcome value='evacuate'>\n","comments":"","outputs":1,"x":304.75,"y":681,"z":"d1a301d8.219aa8","wires":[["e4197510.21f14"]]},{"id":"ebcec5e2.930378","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":608.25,"y":240,"z":"d1a301d8.219aa8","wires":[["cb7f2c34.1b0738"]]},{"id":"5cd5b3a.00a834c","type":"returnFailure","name":"Not Yet Implemented","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value='This action is not yet implemented' />\n","comments":"","x":923.25,"y":699,"z":"d1a301d8.219aa8","wires":[]},{"id":"b08d9f4.1b17fe","type":"outcome","name":"snapshot","xml":"<outcome value='snapshot'>\n","comments":"","outputs":1,"x":307.25,"y":549,"z":"d1a301d8.219aa8","wires":[["71679082.b68048"]]},{"id":"71679082.b68048","type":"execute","name":"createSnapshot()","xml":"<execute plugin='org.openecomp.appc.adapter.iaas.ProviderAdapter' method='createSnapshot'>\n<parameter name=\"org.openecomp.appc.provider.name\" value=\"OpenStack\" />\n<parameter name=\"org.openecomp.appc.instance.url\" value=\"`$org.openecomp.appc.vmid`\" />\n<parameter name=\"org.openecomp.appc.identity.url\" value=\"`$org.openecomp.appc.identity.url`\" />","comments":"","outputs":1,"x":470.25,"y":548,"z":"d1a301d8.219aa8","wires":[["ddb50ec9.42b61","e37701d0.ff4a"]]},{"id":"ddb50ec9.42b61","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":625.75,"y":548,"z":"d1a301d8.219aa8","wires":[["517fd692.1c6f3"]]},{"id":"e37701d0.ff4a","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":621.75,"y":588,"z":"d1a301d8.219aa8","wires":[["cb7f2c34.1b0738"]]},{"id":"e3b1885c.6ba198","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":987.25,"y":572,"z":"d1a301d8.219aa8","wires":[["80007c3f.79526"]]},{"id":"80007c3f.79526","type":"returnSuccess","name":"return success","xml":"<return status='success'>\n","comments":"","x":1300.25,"y":633,"z":"d1a301d8.219aa8","wires":[]},{"id":"4e5fecf4.18b5d4","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<!--\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value='failed' />\n-->","comments":"","x":1310.25,"y":828,"z":"d1a301d8.219aa8","wires":[]},{"id":"ac36b284.3e1bd8","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":999.25,"y":695,"z":"d1a301d8.219aa8","wires":[["80007c3f.79526"]]},{"id":"36c70977.075d06","type":"outcome","name":"migrate","xml":"<outcome value='migrate'>\n","comments":"","outputs":1,"x":689,"y":815,"z":"d1a301d8.219aa8","wires":[["6c21a87b.083fa8"]]},{"id":"6c21a87b.083fa8","type":"execute","name":"migrateServer()","xml":"<execute plugin='org.openecomp.appc.adapter.iaas.ProviderAdapter' method='migrateServer'>\n<parameter name=\"org.openecomp.appc.provider.name\" value=\"OpenStack\" />\n<parameter name=\"org.openecomp.appc.instance.url\" value=\"`$org.openecomp.appc.vmid`\" />\n<parameter name=\"org.openecomp.appc.identity.url\" value=\"`$org.openecomp.appc.identity.url`\" />","comments":"","outputs":1,"x":852,"y":814,"z":"d1a301d8.219aa8","wires":[["c6e55d06.34f05","8067dd14.127b68"]]},{"id":"c6e55d06.34f05","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":1007.5,"y":814,"z":"d1a301d8.219aa8","wires":[["80007c3f.79526"]]},{"id":"8067dd14.127b68","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1003.5,"y":854,"z":"d1a301d8.219aa8","wires":[["4e5fecf4.18b5d4"]]},{"id":"5a72cf37.b27dc8","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":995.25,"y":733,"z":"d1a301d8.219aa8","wires":[["4e5fecf4.18b5d4"]]},{"id":"f06b20cc.093cf","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1004.5,"y":970,"z":"d1a301d8.219aa8","wires":[["2423b8c0.937798"]]},{"id":"aa701723.a923d8","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":1007.5,"y":934,"z":"d1a301d8.219aa8","wires":[["2423b8c0.937798"]]},{"id":"23a53072.a495a8","type":"execute","name":"evacuateServer()","xml":"<execute plugin='org.openecomp.appc.adapter.iaas.ProviderAdapter' method='evacuateServer'>\n<parameter name=\"org.openecomp.appc.provider.name\" value=\"OpenStack\" />\n<parameter name=\"org.openecomp.appc.instance.url\" value=\"`$org.openecomp.appc.vmid`\" />\n<parameter name=\"org.openecomp.appc.identity.url\" value=\"`$org.openecomp.appc.identity.url`\" />","comments":"","outputs":1,"x":852,"y":934,"z":"d1a301d8.219aa8","wires":[["aa701723.a923d8","f06b20cc.093cf"]]},{"id":"fc6990e.a41c27","type":"outcome","name":"migrate","xml":"<outcome value='evacuate'>\n","comments":"","outputs":1,"x":689,"y":935,"z":"d1a301d8.219aa8","wires":[["23a53072.a495a8"]]},{"id":"ad4e7fd7.18b06","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":990.5,"y":618,"z":"d1a301d8.219aa8","wires":[["4e5fecf4.18b5d4"]]},{"id":"2423b8c0.937798","type":"returnFailure","name":"Not Yet Implemented","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value='This action is not yet implemented' />\n","comments":"","x":1307.5,"y":953,"z":"d1a301d8.219aa8","wires":[]},{"id":"291bda8a.1c712e","type":"other","name":"Unknown","xml":"<outcome value='Other'>\n","comments":"Unknown action provided. Fail","outputs":1,"x":310.25,"y":801,"z":"d1a301d8.219aa8","wires":[["56bd2e0d.61dd88"]]},{"id":"2166e9a9.37316e","type":"other","name":"modifyConfig","xml":"<outcome value='modifyConfig'>\n","comments":"","outputs":1,"x":97.60003662109375,"y":827.9198608398438,"z":"d1a301d8.219aa8","wires":[["2a6a5cbd.5b01ac"]]},{"id":"9585b4b9.8a925","type":"execute","name":"put","xml":"<execute plugin='org.openecomp.appc.adapter.rest.RestAdapter' method='commonPut' >\n<parameter name='org.openecomp.appc.instance.URI' value='`$org.openecomp.appc.configURL`'/>\n<parameter name='org.openecomp.appc.instance.requestBody' value='`$org.openecomp.appc.configJson`'/>\n<parameter name='org.openecomp.appc.instance.headers' value='{\"Content-type\":\"application/json\"}'/>\n<parameter name='org.openecomp.appc.instance.haveHeader' value='true'/>","comments":"","outputs":1,"x":464.8887939453125,"y":954.1331787109375,"z":"d1a301d8.219aa8","wires":[["31d65a7b.2f1536","77aa00df.6d5f3"]]},{"id":"77aa00df.6d5f3","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":672.0000305175781,"y":859.1199798583984,"z":"d1a301d8.219aa8","wires":[["517fd692.1c6f3"]]},{"id":"31d65a7b.2f1536","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":672.7111511230469,"y":899.5866088867188,"z":"d1a301d8.219aa8","wires":[["517fd692.1c6f3"]]},{"id":"c5f8933.239dff","type":"execute","name":"delete","xml":"<execute plugin='org.openecomp.appc.adapter.rest.RestAdapter' method='commonDelete' >\n<parameter name='org.openecomp.appc.instance.URI' value='`$org.openecomp.appc.configURL`'/>\n<parameter name='org.openecomp.appc.instance.haveHeader' value='false'/>\n","comments":"","outputs":1,"x":431.64447021484375,"y":889.9199829101562,"z":"d1a301d8.219aa8","wires":[[]]},{"id":"2a6a5cbd.5b01ac","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":228.066650390625,"y":888.4888610839844,"z":"d1a301d8.219aa8","wires":[["c5f8933.239dff","9585b4b9.8a925"]]}] \ No newline at end of file
diff --git a/platform-logic/appc/src/main/resources/graph.versions b/platform-logic/appc/src/main/resources/graph.versions
new file mode 100644
index 0000000..ae6e958
--- /dev/null
+++ b/platform-logic/appc/src/main/resources/graph.versions
@@ -0,0 +1 @@
+APPC topology-operation-all 2.0.0 sync
diff --git a/platform-logic/appc/src/main/xml/APPC_method_topology_operation_all_2.0.0.xml b/platform-logic/appc/src/main/xml/APPC_method_topology_operation_all_2.0.0.xml
new file mode 100644
index 0000000..fbd10b0
--- /dev/null
+++ b/platform-logic/appc/src/main/xml/APPC_method_topology_operation_all_2.0.0.xml
@@ -0,0 +1,76 @@
+<service-logic xmlns='http://www.att.com/sdnctl/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.att.com/sdnctl/svclogic ./svclogic.xsd' module='APPC' version='2.0.0'><method rpc='topology-operation-all' mode='sync'>
+<!--What method should we try to call. Closely maps to __action__Server()--><switch test='`$org.openecomp.appc.action`'>
+<outcome value='restart'>
+<execute plugin='org.openecomp.appc.adapter.iaas.ProviderAdapter' method='restartServer'>
+<parameter name="org.openecomp.appc.provider.name" value="OpenStack" />
+<parameter name="org.openecomp.appc.instance.url" value="`$org.openecomp.appc.vmid`" />
+<parameter name="org.openecomp.appc.identity.url" value="`$org.openecomp.appc.identity.url`" /><outcome value='success'>
+<return status='success'>
+</return></outcome><outcome value='failure'>
+<return status='failure'>
+<!--
+<parameter name='error-code' value='500' />
+<parameter name='error-message' value='failed' />
+--></return></outcome></execute></outcome><outcome value='rebuild'>
+<execute plugin='org.openecomp.appc.adapter.iaas.ProviderAdapter' method='rebuildServer'>
+<parameter name="org.openecomp.appc.provider.name" value="OpenStack" />
+<parameter name="org.openecomp.appc.instance.url" value="`$org.openecomp.appc.vmid`" />
+<parameter name="org.openecomp.appc.identity.url" value="`$org.openecomp.appc.identity.url`" /><outcome value='success'>
+<return status='success'>
+</return></outcome><outcome value='Other'>
+<return status='failure'>
+<!--
+<parameter name='error-code' value='500' />
+<parameter name='error-message' value='failed' />
+--></return></outcome></execute></outcome><outcome value='migrate'>
+<execute plugin='org.openecomp.appc.adapter.iaas.ProviderAdapter' method='migrateServer'>
+<parameter name="org.openecomp.appc.provider.name" value="OpenStack" />
+<parameter name="org.openecomp.appc.instance.url" value="`$org.openecomp.appc.vmid`" />
+<parameter name="org.openecomp.appc.identity.url" value="`$org.openecomp.appc.identity.url`" /><outcome value='success'>
+<return status='success'>
+</return></outcome><outcome value='Other'>
+<return status='failure'>
+<!--
+<parameter name='error-code' value='500' />
+<parameter name='error-message' value='failed' />
+--></return></outcome></execute></outcome><outcome value='snapshot'>
+<execute plugin='org.openecomp.appc.adapter.iaas.ProviderAdapter' method='createSnapshot'>
+<parameter name="org.openecomp.appc.provider.name" value="OpenStack" />
+<parameter name="org.openecomp.appc.instance.url" value="`$org.openecomp.appc.vmid`" />
+<parameter name="org.openecomp.appc.identity.url" value="`$org.openecomp.appc.identity.url`" /><outcome value='success'>
+<return status='success'>
+</return></outcome><outcome value='Other'>
+<return status='failure'>
+<!--
+<parameter name='error-code' value='500' />
+<parameter name='error-message' value='failed' />
+--></return></outcome></execute></outcome><outcome value='evacuate'>
+<execute plugin='org.openecomp.appc.adapter.iaas.ProviderAdapter' method='evacuateServer'>
+<parameter name="org.openecomp.appc.provider.name" value="OpenStack" />
+<parameter name="org.openecomp.appc.instance.url" value="`$org.openecomp.appc.vmid`" />
+<parameter name="org.openecomp.appc.identity.url" value="`$org.openecomp.appc.identity.url`" /><outcome value='success'>
+<return status='failure'>
+<parameter name='error-code' value='500' />
+<parameter name='error-message' value='This action is not yet implemented' />
+</return></outcome><outcome value='Other'>
+<return status='failure'>
+<parameter name='error-code' value='500' />
+<parameter name='error-message' value='This action is not yet implemented' />
+</return></outcome></execute></outcome><!--Unknown action provided. Fail--><outcome value='Other'>
+<return status='failure'>
+<parameter name='error-code' value='404' />
+<parameter name='error-message' value='Unknown action specified' />
+</return></outcome><outcome value='modifyConfig'>
+<block>
+<execute plugin='org.openecomp.appc.adapter.rest.RestAdapter' method='commonDelete' >
+<parameter name='org.openecomp.appc.instance.URI' value='`$org.openecomp.appc.configURL`'/>
+<parameter name='org.openecomp.appc.instance.haveHeader' value='false'/>
+</execute><execute plugin='org.openecomp.appc.adapter.rest.RestAdapter' method='commonPut' >
+<parameter name='org.openecomp.appc.instance.URI' value='`$org.openecomp.appc.configURL`'/>
+<parameter name='org.openecomp.appc.instance.requestBody' value='`$org.openecomp.appc.configJson`'/>
+<parameter name='org.openecomp.appc.instance.headers' value='{"Content-type":"application/json"}'/>
+<parameter name='org.openecomp.appc.instance.haveHeader' value='true'/><outcome value='success'>
+<return status='success'>
+</return></outcome><outcome value='Other'>
+<return status='success'>
+</return></outcome></execute></block></outcome></switch></method></service-logic> \ No newline at end of file
diff --git a/platform-logic/installer/pom.xml b/platform-logic/installer/pom.xml
new file mode 100644
index 0000000..0f59329
--- /dev/null
+++ b/platform-logic/installer/pom.xml
@@ -0,0 +1,126 @@
+<?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.appc.deployment</groupId>
+ <artifactId>platform-logic</artifactId>
+ <version>1.0.0</version>
+ </parent>
+
+ <modelVersion>4.0.0</modelVersion>
+ <packaging>pom</packaging>
+ <groupId>org.openecomp.appc.deployment</groupId>
+ <artifactId>platform-logic-installer</artifactId>
+ <version>1.0.0</version>
+
+ <name>Platform Logic Installer for APP-C</name>
+ <description>Contains platform-level service logic installer for APP-C</description>
+
+ <build>
+ <plugins>
+ <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>target/resources</outputDirectory>
+ <resources>
+ <resource>
+ <directory>src/main/resources</directory>
+ <includes>
+ <include>*</include>
+ </includes>
+ <filtering>true</filtering>
+ </resource>
+ </resources>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <artifactId>maven-assembly-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>create-zip</id>
+ <goals>
+ <goal>single</goal>
+ </goals>
+ <phase>package</phase>
+ <configuration>
+ <attach>true</attach>
+ <descriptors>
+ <descriptor>src/assembly/assemble_zip.xml</descriptor>
+ </descriptors>
+ </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}/lib</outputDirectory>
+ <overWriteReleases>false</overWriteReleases>
+ <overWriteSnapshots>true</overWriteSnapshots>
+ <overWriteIfNewer>true</overWriteIfNewer>
+ <useRepositoryLayout>false</useRepositoryLayout>
+ <addParentPoms>false</addParentPoms>
+ <copyPom>false</copyPom>
+ <scope>provided</scope>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+
+ </build>
+ <dependencies>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-api</artifactId>
+ <version>${slf4j.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-simple</artifactId>
+ <version>1.7.5</version>
+ <scope>compile</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdnc</groupId>
+ <artifactId>sli-common</artifactId>
+ <version>${sdnctl.sli.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.antlr</groupId>
+ <artifactId>antlr4</artifactId>
+ <version>${antlr.version}</version>
+ <type>jar</type>
+ <scope>compile</scope>
+ </dependency>
+ <dependency>
+ <groupId>mysql</groupId>
+ <artifactId>mysql-connector-java</artifactId>
+ <version>${mysql.connector.version}</version>
+ <type>jar</type>
+ <scope>compile</scope>
+ </dependency>
+ </dependencies>
+
+</project>
diff --git a/platform-logic/installer/src/assembly/assemble_zip.xml b/platform-logic/installer/src/assembly/assemble_zip.xml
new file mode 100644
index 0000000..9f1cd35
--- /dev/null
+++ b/platform-logic/installer/src/assembly/assemble_zip.xml
@@ -0,0 +1,70 @@
+<!--
+ ============LICENSE_START=======================================================
+ openECOMP : APP-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=========================================================
+ -->
+
+<!-- Defines how we build the .zip file which is our distribution. -->
+
+<assembly
+ xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0 http://maven.apache.org/xsd/assembly-1.1.0.xsd">
+ <formats>
+ <format>zip</format>
+ </formats>
+
+ <includeBaseDirectory>false</includeBaseDirectory>
+
+ <fileSets>
+ <fileSet>
+ <directory>../target/graphs</directory>
+ <outputDirectory>svclogic/graphs</outputDirectory>
+ <includes>
+ <include>**/*.xml</include>
+ <include>**/graph.versions</include>
+ </includes>
+ </fileSet>
+
+ <fileSet>
+ <directory>src/main/scripts</directory>
+ <outputDirectory>svclogic/bin</outputDirectory>
+ <includes>
+ <include>*.sh</include>
+ </includes>
+ <fileMode>0755</fileMode>
+ </fileSet>
+ <fileSet>
+ <directory>target/resources</directory>
+ <outputDirectory>svclogic/config</outputDirectory>
+ <includes>
+ <include>*</include>
+ </includes>
+ </fileSet>
+ <fileSet>
+ <directory>target/lib</directory>
+ <outputDirectory>svclogic/lib</outputDirectory>
+ <includes>
+ <include>*.jar</include>
+ </includes>
+ </fileSet>
+ </fileSets>
+
+
+
+</assembly>
diff --git a/platform-logic/installer/src/main/resources/svclogic.properties b/platform-logic/installer/src/main/resources/svclogic.properties
new file mode 100644
index 0000000..ec4f888
--- /dev/null
+++ b/platform-logic/installer/src/main/resources/svclogic.properties
@@ -0,0 +1,26 @@
+###
+# ============LICENSE_START=======================================================
+# openECOMP : SDN-C
+# ================================================================================
+# Copyright (C) 2017 AT&T Intellectual Property. All rights
+# reserved.
+# ================================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# ============LICENSE_END=========================================================
+###
+
+org.openecomp.sdnc.sli.dbtype = jdbc
+org.openecomp.sdnc.sli.jdbc.url = jdbc:mysql://sdnctldb01:3306/sdnctl
+org.openecomp.sdnc.sli.jdbc.database = sdnctl
+org.openecomp.sdnc.sli.jdbc.user = sdnctl
+org.openecomp.sdnc.sli.jdbc.password = gamma
diff --git a/platform-logic/installer/src/main/scripts/install.sh b/platform-logic/installer/src/main/scripts/install.sh
new file mode 100644
index 0000000..5aae115
--- /dev/null
+++ b/platform-logic/installer/src/main/scripts/install.sh
@@ -0,0 +1,27 @@
+#!/bin/bash
+
+# BASEDIR env variable points to /opt/openecomp/appc/svclogic
+BASEDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )/.." && pwd )"
+
+
+# Load directed graphs
+for graphlist in $(find $BASEDIR/graphs -name graph.versions -print)
+do
+ curdir=$(dirname $graphlist)
+
+ # Load files from directory containing graph.versions file
+ echo "Loading APP-C Directed Graphs from $curdir"
+ for file in $(ls $curdir/*.xml)
+ do
+ echo "Loading $file ..."
+ $BASEDIR/bin/svclogic.sh load $file $BASEDIR/config/svclogic.properties
+ done
+
+ # Activate directed graphs
+ while read module rpc version mode
+ do
+ echo "Activating APP-C DG $module $rpc $version $mode"
+ $BASEDIR/bin/svclogic.sh activate $module $rpc $version $mode $BASEDIR/config/svclogic.properties
+ done < <(cat $graphlist)
+done
+
diff --git a/platform-logic/installer/src/main/scripts/setenv.sh b/platform-logic/installer/src/main/scripts/setenv.sh
new file mode 100644
index 0000000..6c26f89
--- /dev/null
+++ b/platform-logic/installer/src/main/scripts/setenv.sh
@@ -0,0 +1,45 @@
+#!/bin/bash
+
+###
+# ============LICENSE_START=======================================================
+# openECOMP : SDN-C
+# ================================================================================
+# Copyright (C) 2017 AT&T Intellectual Property. All rights
+# reserved.
+# ================================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# ============LICENSE_END=========================================================
+###
+
+SDNC_CONFIG_DIR=${SDNC_CONFIG_DIR:-/opt/sdnc/data/properties}
+
+AAIURI=$(grep org.openecomp.sdnc.sli.aai.uri ${SDNC_CONFIG_DIR}/aaiclient.properties | grep -v '#' | cut -d'=' -f2)
+
+MYSQL_USER=$(grep org.openecomp.sdnc.sli.jdbc.user ${SDNC_CONFIG_DIR}/dblib.properties | grep -v '#' | cut -d'=' -f2)
+MYSQL_PWD=$(grep org.openecomp.sdnc.sli.jdbc.password ${SDNC_CONFIG_DIR}/dblib.properties | grep -v '#' | cut -d'=' -f2)
+MYSQL_DB=$(grep org.openecomp.sdnc.sli.jdbc.database ${SDNC_CONFIG_DIR}/dblib.properties | grep -v '#' | cut -d'=' -f2)
+MYSQL_SERVER=$(grep org.openecomp.sdnc.sli.jdbc.hosts ${SDNC_CONFIG_DIR}/dblib.properties | grep -v '#' | cut -d'=' -f2 | cut -d',' -f1)
+
+ODLUSER=$(grep controllerUser ${SDNC_CONFIG_DIR}/backup.properties | grep -v '#' | cut -d'=' -f2)
+ODLPWD=$(grep controllerPass ${SDNC_CONFIG_DIR}/backup.properties | grep -v '#' | cut -d'=' -f2)
+
+ODLHOST=$(grep odlNodes ${SDNC_CONFIG_DIR}/backup.properties | grep -v '#' | cut -d'=' -f2|cut -d',' -f1)
+ODLPORT=$(grep controllerPort ${SDNC_CONFIG_DIR}/backup.properties | grep -v '#' | cut -d'=' -f2)
+if [ $ODLPORT = 8443 ]
+then
+ ODLPROTO=https
+else
+ ODLPROTO=http
+fi
+
+unset HTTP_PROXY HTTPS_PROXY http_proxy https_proxy
diff --git a/platform-logic/installer/src/main/scripts/showActiveGraphs.sh b/platform-logic/installer/src/main/scripts/showActiveGraphs.sh
new file mode 100644
index 0000000..80cb4aa
--- /dev/null
+++ b/platform-logic/installer/src/main/scripts/showActiveGraphs.sh
@@ -0,0 +1,29 @@
+###
+# ============LICENSE_START=======================================================
+# openECOMP : SDN-C
+# ================================================================================
+# Copyright (C) 2017 AT&T Intellectual Property. All rights
+# reserved.
+# ================================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# ============LICENSE_END=========================================================
+###
+
+MYSQL_USER=${MYSQL_USER:-sdnctl}
+MYSQL_PWD=${MYSQL_PWD:-gamma}
+MYSQL_DB=${MYSQL_DB:-sdnctl}
+MYSQL_HOST=${MYSQL_HOST:-dbhost}
+
+mysql --user=${MYSQL_USER} --password=${MYSQL_PWD} --host=${MYSQL_HOST} ${MYSQL_DB} <<-END
+SELECT module, rpc, version, mode from SVC_LOGIC where active='Y';
+END
diff --git a/platform-logic/installer/src/main/scripts/svclogic.sh b/platform-logic/installer/src/main/scripts/svclogic.sh
new file mode 100644
index 0000000..464a71c
--- /dev/null
+++ b/platform-logic/installer/src/main/scripts/svclogic.sh
@@ -0,0 +1,32 @@
+#!/bin/bash
+
+###
+# ============LICENSE_START=======================================================
+# openECOMP : SDN-C
+# ================================================================================
+# Copyright (C) 2017 AT&T Intellectual Property. All rights
+# reserved.
+# ================================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# ============LICENSE_END=========================================================
+###
+
+BASEDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )/.." && pwd )"
+JARDIR=${BASEDIR}/lib
+
+for jar in $JARDIR/*.jar
+do
+ CLASSPATH=$CLASSPATH:${jar}
+done
+
+java -cp ${CLASSPATH}:${MYSQL_JDBC_DRIVER} org.openecomp.sdnc.sli.SvcLogicParser $*
diff --git a/platform-logic/pom.xml b/platform-logic/pom.xml
new file mode 100644
index 0000000..a9245b3
--- /dev/null
+++ b/platform-logic/pom.xml
@@ -0,0 +1,35 @@
+<?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.appc.deployment</groupId>
+ <artifactId>appc-docker-project</artifactId>
+ <version>1.0.0</version>
+ </parent>
+
+ <modelVersion>4.0.0</modelVersion>
+ <packaging>pom</packaging>
+ <groupId>org.openecomp.appc.deployment</groupId>
+ <artifactId>platform-logic</artifactId>
+ <version>1.0.0</version>
+
+ <name>Platform Logic</name>
+ <description>Contains platform-level service logic. Installs APP-C Directed Graphs during Docker instantiation.</description>
+
+ <properties>
+ <application.name>platform-logic</application.name>
+ <maven.build.timestamp.format>yyMMdd-HHmmss</maven.build.timestamp.format>
+ <build.number>${maven.build.timestamp}</build.number>
+ </properties>
+
+ <modules>
+ <module>appc</module>
+ <module>installer</module>
+ </modules>
+
+ <organization>
+ <name>openECOMP</name>
+ </organization>
+
+</project>