You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by bh...@apache.org on 2014/09/22 21:44:26 UTC

[27/50] git commit: updated refs/heads/master to 1290e10

CLOUDSTACK-7143: use shar to inject cloud-scripts from working copy

The current build downloads its script from master by fetching a cloudstack
tarball. Besides being an unneeded load on the apache git server, this is a
problem when working on a branch and wanting to inject a different set of
scripts. It also makes it pretty likely that the injected copy of the script
will not match what a production release wants, so there is very little
chance of not needing to overwrite the scripts.

Ideally we would just rsync over some files. However, veewee does not provide
an option to do that. In order to keep a 'cleanly veewee-only' build possible,
and work with any recent veewee version, in this change we restor to using
shar (http://en.wikipedia.org/wiki/Shar) to produce an archive which can
execute as a script, which we feed to veewee to execute.


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/33fd6894
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/33fd6894
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/33fd6894

Branch: refs/heads/master
Commit: 33fd6894a0ecf6133a2271e44f55d61687d67b2d
Parents: 35ba684
Author: Leo Simons <ls...@schubergphilis.com>
Authored: Mon Jul 21 15:41:16 2014 +0200
Committer: Rohit Yadav <ro...@shapeblue.com>
Committed: Mon Sep 22 21:38:14 2014 +0200

----------------------------------------------------------------------
 tools/appliance/build.sh                        |  3 ++
 .../configure_systemvm_services.sh              | 24 +++------
 .../definitions/systemvmtemplate/definition.rb  |  1 +
 tools/appliance/shar_cloud_scripts.sh           | 53 ++++++++++++++++++++
 4 files changed, 65 insertions(+), 16 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/33fd6894/tools/appliance/build.sh
----------------------------------------------------------------------
diff --git a/tools/appliance/build.sh b/tools/appliance/build.sh
index d15d2ee..84d9648 100755
--- a/tools/appliance/build.sh
+++ b/tools/appliance/build.sh
@@ -244,6 +244,9 @@ function create_definition() {
     set -e
     add_on_exit rm -rf "definitions/${appliance_build_name}"
   fi
+
+  ./shar_cloud_scripts.sh
+  add_on_exit rm -f cloud_scripts_shar_archive.sh
 }
 
 function prepare() {

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/33fd6894/tools/appliance/definitions/systemvmtemplate/configure_systemvm_services.sh
----------------------------------------------------------------------
diff --git a/tools/appliance/definitions/systemvmtemplate/configure_systemvm_services.sh b/tools/appliance/definitions/systemvmtemplate/configure_systemvm_services.sh
index b9476b6..e682fc7 100644
--- a/tools/appliance/definitions/systemvmtemplate/configure_systemvm_services.sh
+++ b/tools/appliance/definitions/systemvmtemplate/configure_systemvm_services.sh
@@ -31,21 +31,13 @@ function configure_apache2() {
 }
 
 function install_cloud_scripts() {
-  # Get config files from master
-  snapshot_url="https://git-wip-us.apache.org/repos/asf?p=cloudstack.git;a=snapshot;h=HEAD;sf=tgz"
-  snapshot_dir="/opt/cloudstack*"
-  cd /opt
-  wget --no-check-certificate $snapshot_url -O cloudstack.tar.gz
-  tar -zxvf cloudstack.tar.gz --wildcards 'cloudstack-HEAD-???????/systemvm'
-  cp -rv $snapshot_dir/systemvm/patches/debian/config/* /
-  cp -rv $snapshot_dir/systemvm/patches/debian/vpn/* /
-  mkdir -p /usr/share/cloud/
-  cd $snapshot_dir/systemvm/patches/debian/config
-  tar -cvf /usr/share/cloud/cloud-scripts.tar *
-  cd $snapshot_dir/systemvm/patches/debian/vpn
-  tar -rvf /usr/share/cloud/cloud-scripts.tar *
-  cd /opt
-  rm -fr $snapshot_dir cloudstack.tar.gz
+  # ./cloud_scripts/ has been put there by ../../cloud_scripts_shar_archive.sh
+  rsync -av ./cloud_scripts/ /
+  chmod +x /opt/cloud/bin/* \
+    /root/{clearUsageRules.sh,reconfigLB.sh,monitorServices.py} \
+    /etc/init.d/{cloud,cloud-early-config,cloud-passwd-srvr,postinit} \
+    /etc/cron.daily/cloud-cleanup \
+    /etc/profile.d/cloud.sh
 
   chkconfig --add cloud-early-config
   chkconfig cloud-early-config on
@@ -73,6 +65,7 @@ configure_services() {
   mkdir -p /var/lib/haproxy
 
   install_cloud_scripts
+  do_signature
 
   chkconfig xl2tpd off
 
@@ -84,7 +77,6 @@ configure_services() {
   chkconfig radvd off
 
   configure_apache2
-  do_signature
 }
 
 return 2>/dev/null || configure_services

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/33fd6894/tools/appliance/definitions/systemvmtemplate/definition.rb
----------------------------------------------------------------------
diff --git a/tools/appliance/definitions/systemvmtemplate/definition.rb b/tools/appliance/definitions/systemvmtemplate/definition.rb
index 691952f..5965406 100644
--- a/tools/appliance/definitions/systemvmtemplate/definition.rb
+++ b/tools/appliance/definitions/systemvmtemplate/definition.rb
@@ -85,6 +85,7 @@ config = {
         # turning it into a systemvm
         'install_systemvm_packages.sh',
         'configure_conntrack.sh',
+        '../../cloud_scripts_shar_archive.sh',
         'configure_systemvm_services.sh',
         'authorized_keys.sh',
         # cleanup & space-saving

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/33fd6894/tools/appliance/shar_cloud_scripts.sh
----------------------------------------------------------------------
diff --git a/tools/appliance/shar_cloud_scripts.sh b/tools/appliance/shar_cloud_scripts.sh
new file mode 100755
index 0000000..33268e8
--- /dev/null
+++ b/tools/appliance/shar_cloud_scripts.sh
@@ -0,0 +1,53 @@
+#!/bin/bash
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+# since veewee wants .sh files to execute, we'll give it a shar
+
+set -e
+set -x
+
+# where we are running this script from
+CURR_DIR=${PWD}
+# where this script is
+SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
+# where cloudstack is checked out
+cd ${SCRIPT_DIR}/../..
+CLOUDSTACK_DIR=${PWD}
+cd ${CURR_DIR}
+# ensure we are running in isolation
+TEMP_DIR=`mktemp -d -t shar_cloud`
+
+cd ${TEMP_DIR}
+mkdir cloud_scripts
+mkdir -p cloud_scripts/opt/cloudstack
+cp -r ${CLOUDSTACK_DIR}/systemvm/patches/debian/config/* cloud_scripts/
+cp -r ${CLOUDSTACK_DIR}/systemvm/patches/debian/vpn/* cloud_scripts/
+
+mkdir -p cloud_scripts/usr/share/cloud
+cd ${CLOUDSTACK_DIR}/systemvm/patches/debian/config
+tar -cf ${TEMP_DIR}/cloud_scripts/usr/share/cloud/cloud-scripts.tar *
+cd ${CLOUDSTACK_DIR}/systemvm/patches/debian/vpn
+tar -rf ${TEMP_DIR}/cloud_scripts/usr/share/cloud/cloud-scripts.tar *
+
+cd ${TEMP_DIR}
+shar `find . -print` > ${CURR_DIR}/cloud_scripts_shar_archive.sh
+
+cd ${CURR_DIR}
+rm -rf ${TEMP_DIR}
+chmod +x cloud_scripts_shar_archive.sh
+echo cloud_scripts are in cloud_scripts_shar_archive.sh