SDNC Controller Blueprints Processor - Installer

Creating SDN Controller Blueprints Processor Installer

Change-Id: Ib95699d535361a7af40f38e76fddb81d48e2a4cb
Issue-ID: CCSDK-520
Signed-off-by: Singal, Kapil (ks220y) <ks220y@att.com>
diff --git a/blueprints-processor/installer/.gitignore b/blueprints-processor/installer/.gitignore
new file mode 100644
index 0000000..ae04cff
--- /dev/null
+++ b/blueprints-processor/installer/.gitignore
@@ -0,0 +1 @@
+/target-ide/

diff --git a/blueprints-processor/installer/pom.xml b/blueprints-processor/installer/pom.xml
new file mode 100644
index 0000000..f8a053e
--- /dev/null
+++ b/blueprints-processor/installer/pom.xml
@@ -0,0 +1,171 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<!--

+  Copyright © 2017-2018 AT&T Intellectual Property.

+  Modifications Copyright © 2018 IBM.

+  

+  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.

+-->

+

+<project xmlns="http://maven.apache.org/POM/4.0.0"

+	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

+	<modelVersion>4.0.0</modelVersion>

+	<parent>

+		<groupId>org.onap.ccsdk.config</groupId>

+		<artifactId>blueprints-processor</artifactId>

+		<version>0.0.1-SNAPSHOT</version>

+	</parent>

+

+	<artifactId>blueprints-processor-installer</artifactId>

+	<packaging>pom</packaging>

+	<name>Blueprints Processor :: ${project.artifactId}</name>

+

+	<properties>

+		<application.name>blueprints-processor</application.name>

+		<features.boot>blueprints-processor-features</features.boot>

+		<features.repositories>mvn:org.onap.ccsdk.config/blueprints-processor-features/${project.version}/xml/features</features.repositories>

+		<include.transitive.dependencies>false</include.transitive.dependencies>

+	</properties>

+

+	<dependencies>

+		<dependency>

+			<groupId>org.onap.ccsdk.config</groupId>

+			<artifactId>blueprints-processor-features</artifactId>

+			<classifier>features</classifier>

+			<type>xml</type>

+			<exclusions>

+				<exclusion>

+					<groupId>*</groupId>

+					<artifactId>*</artifactId>

+				</exclusion>

+			</exclusions>

+		</dependency>

+		<dependency>

+			<groupId>org.onap.ccsdk.config</groupId>

+			<artifactId>blueprints-data-adaptor-provider</artifactId>

+		</dependency>

+		<dependency>

+			<groupId>org.onap.ccsdk.config</groupId>

+			<artifactId>blueprints-rest-adaptor-provider</artifactId>

+		</dependency>

+		<dependency>

+			<groupId>org.onap.ccsdk.config</groupId>

+			<artifactId>blueprints-assignment-provider</artifactId>

+		</dependency>

+		<dependency>

+			<groupId>org.onap.ccsdk.config</groupId>

+			<artifactId>blueprints-generator-provider</artifactId>

+		</dependency>

+		<dependency>

+			<groupId>org.onap.ccsdk.config</groupId>

+			<artifactId>blueprints-model-provider</artifactId>

+		</dependency>

+	</dependencies>

+

+	<build>

+		<plugins>

+			<plugin>

+				<artifactId>maven-assembly-plugin</artifactId>

+				<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>

+							<includeArtifactIds>

+								blueprints-processor-features,

+								blueprints-data-adaptor-provider,

+								blueprints-rest-adaptor-provider,

+								blueprints-assignment-provider,

+								blueprints-generator-provider,commons-lang,commons-collections,

+								blueprints-model-provider,

+							</includeArtifactIds>

+							<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>

+		</plugins>

+	</build>

+</project>

diff --git a/blueprints-processor/installer/src/assembly/assemble_installer_zip.xml b/blueprints-processor/installer/src/assembly/assemble_installer_zip.xml
new file mode 100644
index 0000000..88a6bb7
--- /dev/null
+++ b/blueprints-processor/installer/src/assembly/assemble_installer_zip.xml
@@ -0,0 +1,54 @@
+<!--

+  Copyright © 2017-2018 AT&T Intellectual Property.

+  Modifications Copyright © 2018 IBM.

+  

+  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.

+-->

+

+<!-- 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">

+	<id>bin</id>

+	<formats>

+		<format>zip</format>

+	</formats>

+

+	<!-- we want "system" and related files right at the root level as this 

+		file is suppose to be unzip on top of a karaf distro. -->

+	<includeBaseDirectory>false</includeBaseDirectory>

+

+	<fileSets>

+		<fileSet>

+			<directory>target/stage/</directory>

+			<outputDirectory>${application.name}</outputDirectory>

+			<fileMode>755</fileMode>

+			<includes>

+				<include>*.sh</include>

+			</includes>

+		</fileSet>

+		<fileSet>

+			<directory>target/stage/</directory>

+			<outputDirectory>${application.name}</outputDirectory>

+			<fileMode>644</fileMode>

+			<excludes>

+				<exclude>*.sh</exclude>

+			</excludes>

+		</fileSet>

+	</fileSets>

+

+

+

+</assembly>

diff --git a/blueprints-processor/installer/src/assembly/assemble_mvnrepo_zip.xml b/blueprints-processor/installer/src/assembly/assemble_mvnrepo_zip.xml
new file mode 100644
index 0000000..44237ae
--- /dev/null
+++ b/blueprints-processor/installer/src/assembly/assemble_mvnrepo_zip.xml
@@ -0,0 +1,44 @@
+<!--

+  Copyright © 2017-2018 AT&T Intellectual Property.

+  Modifications Copyright © 2018 IBM.

+  

+  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.

+-->

+

+<!-- 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">

+	<id>bin</id>

+	<formats>

+		<format>zip</format>

+	</formats>

+

+	<!-- we want "system" and related files right at the root level as this 

+		file is suppose to be unzip on top of a karaf distro. -->

+	<includeBaseDirectory>false</includeBaseDirectory>

+

+	<fileSets>

+		<fileSet>

+			<directory>target/assembly/</directory>

+			<outputDirectory>.</outputDirectory>

+			<excludes>

+			</excludes>

+		</fileSet>

+	</fileSets>

+

+

+

+</assembly>

diff --git a/blueprints-processor/installer/src/main/resources/scripts/install-feature.sh b/blueprints-processor/installer/src/main/resources/scripts/install-feature.sh
new file mode 100644
index 0000000..9241bc4
--- /dev/null
+++ b/blueprints-processor/installer/src/main/resources/scripts/install-feature.sh
@@ -0,0 +1,36 @@
+#!/bin/bash

+

+###

+#

+#  Copyright © 2017-2018 AT&T Intellectual Property.

+#  

+#  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.

+#

+###

+

+ODL_HOME=${ODL_HOME:-/opt/opendaylight/current}

+ODL_KARAF_CLIENT=${ODL_KARAF_CLIENT:-${ODL_HOME}/bin/client}

+INSTALLERDIR=$(dirname $0)

+

+REPOZIP=${INSTALLERDIR}/${features.boot}-${project.version}.zip

+

+if [ -f ${REPOZIP} ]

+then

+	unzip -d ${ODL_HOME} ${REPOZIP}

+else

+	echo "ERROR : repo zip ($REPOZIP) not found!"

+	exit 1

+fi

+

+${ODL_KARAF_CLIENT} feature:repo-add ${features.repositories}

+${ODL_KARAF_CLIENT} feature:install ${features.boot}