[APPC-44] APPC Lifecycle Management refactor

Pull APPC lifecycle Management out of APPC dispatcher, so that it can be
used by both APPC dispatcher and APPC OAM. This is the pre-step of
introducing APPC OAM operations.

Issue-Id: APPC-44
Change-Id: Icbde399b5121fae9e1919cfdd5c77bbe55d61188
Signed-off-by: beili.zhou <beili.zhou@amdocs.com>
diff --git a/appc-lifecycle-management/appc-lifecycle-management-installer/src/assembly/assemble_installer_zip.xml b/appc-lifecycle-management/appc-lifecycle-management-installer/src/assembly/assemble_installer_zip.xml
new file mode 100644
index 0000000..4b7b6f3
--- /dev/null
+++ b/appc-lifecycle-management/appc-lifecycle-management-installer/src/assembly/assemble_installer_zip.xml
@@ -0,0 +1,60 @@
+<!--

+  ============LICENSE_START=======================================================
+  ONAP : APPC
+  ================================================================================
+  Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+  ================================================================================
+  Copyright (C) 2017 Amdocs

+  =============================================================================

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

+  

+  ECOMP is a trademark and service mark of AT&T Intellectual Property.
+  ============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">

+    <id>controller</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/appc-lifecycle-management/appc-lifecycle-management-installer/src/assembly/assemble_mvnrepo_zip.xml b/appc-lifecycle-management/appc-lifecycle-management-installer/src/assembly/assemble_mvnrepo_zip.xml
new file mode 100644
index 0000000..e735845
--- /dev/null
+++ b/appc-lifecycle-management/appc-lifecycle-management-installer/src/assembly/assemble_mvnrepo_zip.xml
@@ -0,0 +1,51 @@
+<!--

+  ============LICENSE_START=======================================================
+  ONAP : APPC
+  ================================================================================
+  Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+  ================================================================================
+  Copyright (C) 2017 Amdocs

+  =============================================================================

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

+  

+  ECOMP is a trademark and service mark of AT&T Intellectual Property.
+  ============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">

+    <id>controller</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/appc-lifecycle-management/appc-lifecycle-management-installer/src/main/resources/scripts/install-feature.sh b/appc-lifecycle-management/appc-lifecycle-management-installer/src/main/resources/scripts/install-feature.sh
new file mode 100644
index 0000000..4a7e7a1
--- /dev/null
+++ b/appc-lifecycle-management/appc-lifecycle-management-installer/src/main/resources/scripts/install-feature.sh
@@ -0,0 +1,63 @@
+###

+# ============LICENSE_START=======================================================
+# ONAP : APPC
+# ================================================================================
+# Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+# ================================================================================
+# Copyright (C) 2017 Amdocs

+# =============================================================================

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

+# 

+# ECOMP is a trademark and service mark of AT&T Intellectual Property.
+# ============LICENSE_END=========================================================

+###

+

+#!/bin/bash

+

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

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

+ODL_KARAF_CLIENT_OPTS=${ODL_KARAF_CLIENT_OPTS:-"-u karaf"}

+INSTALLERDIR=$(dirname $0)

+

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

+

+if [ -f ${REPOZIP} ]

+then

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

+else

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

+    exit 1

+fi

+

+COUNT=0

+while [ $COUNT -lt 10 ]; do

+    ${ODL_KARAF_CLIENT} ${ODL_KARAF_CLIENT_OPTS} feature:repo-add ${features.repositories} 2> /tmp/installErr

+    cat /tmp/installErr

+    if grep -q 'Failed to get the session' /tmp/installErr; then

+        sleep 10

+    else

+        let COUNT=10

+    fi

+    let COUNT=COUNT+1

+done

+COUNT=0

+while [ $COUNT -lt 10 ]; do

+    ${ODL_KARAF_CLIENT} ${ODL_KARAF_CLIENT_OPTS} feature:install ${features.boot} 2> /tmp/installErr

+        cat /tmp/installErr

+    if grep -q 'Failed to get the session' /tmp/installErr; then

+        sleep 10

+    else

+        let COUNT=10

+    fi

+    let COUNT=COUNT+1

+done