You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by du...@apache.org on 2015/04/11 17:19:03 UTC

[1/2] git commit: updated refs/heads/master to 66cded7

Repository: cloudstack
Updated Branches:
  refs/heads/master da233c7bf -> 66cded75e


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/66cded75/tools/devcloud4/common/development-installation/files/default/createtmplt.sh
----------------------------------------------------------------------
diff --git a/tools/devcloud4/common/development-installation/files/default/createtmplt.sh b/tools/devcloud4/common/development-installation/files/default/createtmplt.sh
new file mode 100755
index 0000000..6b31232
--- /dev/null
+++ b/tools/devcloud4/common/development-installation/files/default/createtmplt.sh
@@ -0,0 +1,239 @@
+#!/usr/bin/env 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.
+
+ 
+
+# $Id: createtmplt.sh 9132 2010-06-04 20:17:43Z manuel $ $HeadURL: svn://svn.lab.vmops.com/repos/vmdev/java/scripts/storage/secondary/createtmplt.sh $
+# createtmplt.sh -- install a template
+
+usage() {
+  printf "Usage: %s: -t <template-fs> -n <templatename> -f <root disk file> -c <md5 cksum> -d <descr> -h  [-u] [-v]\n" $(basename $0) >&2
+}
+
+
+#set -x
+ulimit -f 41943040 #40GiB in blocks
+ulimit -c 0
+
+rollback_if_needed() {
+  if [ $2 -gt 0 ]
+  then
+    printf "$3\n"
+    #back out all changes
+    rm -rf $1
+    exit 2
+fi
+}
+
+verify_cksum() {
+  echo  "$1  $2" | md5sum  -c --status
+  #printf "$1\t$2" | md5sum  -c --status
+  if [ $? -gt 0 ] 
+  then
+    printf "Checksum failed, not proceeding with install\n"
+    exit 3
+  fi
+}
+
+untar() {
+  local ft=$(file $1| awk -F" " '{print $2}')
+  case $ft in
+  USTAR) 
+     printf "tar archives not supported\n"  >&2
+     return 1
+          ;;
+  *) printf "$1"
+     return 0
+	  ;;
+  esac
+
+}
+
+is_compressed() {
+  local ft=$(file $1| awk -F" " '{print $2}')
+  local tmpfile=${1}.tmp
+
+  case $ft in
+  gzip)  ctype="gzip"
+         ;;
+  bzip2)  ctype="bz2"
+         ;;
+  ZIP)  ctype="zip"
+        ;;
+    *) echo "File $1 does not appear to be compressed" >&2
+        return 1
+	;;
+  esac
+  echo "Uncompressing to $tmpfile (type $ctype)...could take a long time" >&2
+  return 0
+}
+
+uncompress() {
+  local ft=$(file $1| awk -F" " '{print $2}')
+  local tmpfile=${1}.tmp
+
+  case $ft in
+  gzip)  gunzip -q -c $1 > $tmpfile
+         ;;
+  bzip2)  bunzip2 -q -c $1 > $tmpfile
+         ;;
+  ZIP)  unzip -q -p $1 | cat > $tmpfile
+        ;;
+    *) printf "$1"
+       return 0
+	;;
+  esac
+
+  if [ $? -gt 0 ] 
+  then
+    printf "Failed to uncompress file (filetype=$ft), exiting "
+    return 1 
+  fi
+ 
+  rm -f $1
+  printf $tmpfile
+
+  return 0
+}
+
+create_from_file() {
+  local tmpltfs=$1
+  local tmpltimg=$2
+  local tmpltname=$3
+
+  [ -n "$verbose" ] && echo "Moving to $tmpltfs/$tmpltname...could take a while" >&2
+  mv $tmpltimg /$tmpltfs/$tmpltname
+
+}
+
+tflag=
+nflag=
+fflag=
+sflag=
+hflag=
+hvm=false
+cleanup=false
+dflag=
+cflag=
+
+while getopts 'vuht:n:f:s:c:d:S:' OPTION
+do
+  case $OPTION in
+  t)	tflag=1
+		tmpltfs="$OPTARG"
+		;;
+  n)	nflag=1
+		tmpltname="$OPTARG"
+		;;
+  f)	fflag=1
+		tmpltimg="$OPTARG"
+		;;
+  s)	sflag=1
+		;;
+  c)	cflag=1
+		cksum="$OPTARG"
+		;;
+  d)	dflag=1
+		descr="$OPTARG"
+		;;
+  S)	Sflag=1
+		size=$OPTARG
+                let "size>>=10"
+		ulimit -f $size
+		;;
+  h)	hflag=1
+		hvm="true"
+		;;
+  u)	cleanup="true"
+		;;
+  v)	verbose="true"
+		;;
+  ?)	usage
+		exit 2
+		;;
+  esac
+done
+
+isCifs() {
+   #TO:DO incase of multiple zone where cifs and nfs exists, 
+   #then check if the template file is from cifs using df -P filename
+   #Currently only cifs is supported in hyperv zone.
+   mount | grep "type cifs" > /dev/null
+   echo $?
+}
+
+if [ "$tflag$nflag$fflag$sflag" != "1111" ]
+then
+ usage
+ exit 2
+fi
+
+mkdir -p $tmpltfs
+
+if [ ! -f $tmpltimg ] 
+then
+  printf "root disk file $tmpltimg doesn't exist\n"
+  exit 3
+fi
+
+if [ -n "$cksum" ]
+then
+  verify_cksum $cksum $tmpltimg
+fi
+[ -n "$verbose" ] && is_compressed $tmpltimg
+tmpltimg2=$(uncompress $tmpltimg)
+rollback_if_needed $tmpltfs $? "failed to uncompress $tmpltimg\n"
+
+tmpltimg2=$(untar $tmpltimg2)
+rollback_if_needed $tmpltfs $? "tar archives not supported\n"
+
+if [ ${tmpltname%.vhd} != ${tmpltname} ]
+then
+  if [ $(isCifs) -ne 0 ] ;
+  then
+      if  which  vhd-util &>/dev/null
+      then
+        vhd-util read -p -n ${tmpltimg2} > /dev/null
+        rollback_if_needed $tmpltfs $? "vhd check of $tmpltimg2 failed\n"
+        vhd-util set -n ${tmpltimg2} -f "hidden" -v "0" > /dev/null
+        rollback_if_needed $tmpltfs $? "vhd remove $tmpltimg2 hidden failed\n"
+     fi
+  fi
+fi
+
+imgsize=$(ls -l $tmpltimg2| awk -F" " '{print $5}')
+
+create_from_file $tmpltfs $tmpltimg2 $tmpltname
+
+touch /$tmpltfs/template.properties
+rollback_if_needed $tmpltfs $? "Failed to create template.properties file"
+echo -n "" > /$tmpltfs/template.properties
+
+today=$(date '+%m_%d_%Y')
+echo "filename=$tmpltname" > /$tmpltfs/template.properties
+echo "description=$descr" >> /$tmpltfs/template.properties
+echo "checksum=$cksum" >> /$tmpltfs/template.properties
+echo "hvm=$hvm" >> /$tmpltfs/template.properties
+echo "size=$imgsize" >> /$tmpltfs/template.properties
+
+if [ "$cleanup" == "true" ]
+then
+  rm -f $tmpltimg
+fi
+
+exit 0

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/66cded75/tools/devcloud4/common/development-installation/metadata.rb
----------------------------------------------------------------------
diff --git a/tools/devcloud4/common/development-installation/metadata.rb b/tools/devcloud4/common/development-installation/metadata.rb
new file mode 100644
index 0000000..c240755
--- /dev/null
+++ b/tools/devcloud4/common/development-installation/metadata.rb
@@ -0,0 +1,42 @@
+#
+#  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.
+#
+
+name 'development-installation'
+maintainer 'Ian Duffy'
+maintainer_email 'ian@ianduffy.ie'
+license 'Apache 2'
+description 'Wrapper around several different cookbooks.'
+long_description IO.read(File.join(File.dirname(__FILE__), 'README.md'))
+version '0.1.0'
+
+depends 'mysql', '= 5.6.1'
+depends 'cloudstack', '>= 3.0.0'
+depends 'nfs', '>= 2.0.0'
+
+supports 'centos'
+supports 'redhat'
+supports 'debian'
+supports 'ubuntu'
+supports 'fedora'
+supports 'oracle'
+
+provides 'development-installation::default'
+provides 'development-installation::database_server'
+provides 'development-installation::nfs_server'
+provides 'development-installation::system_templates.rb'

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/66cded75/tools/devcloud4/common/development-installation/recipes/database_server.rb
----------------------------------------------------------------------
diff --git a/tools/devcloud4/common/development-installation/recipes/database_server.rb b/tools/devcloud4/common/development-installation/recipes/database_server.rb
new file mode 100644
index 0000000..28a374c
--- /dev/null
+++ b/tools/devcloud4/common/development-installation/recipes/database_server.rb
@@ -0,0 +1,24 @@
+#
+#  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.
+#
+
+include_recipe 'mysql::server'
+include_recipe 'mysql::client'
+
+include_recipe 'cloudstack::mysql_conf'
+

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/66cded75/tools/devcloud4/common/development-installation/recipes/default.rb
----------------------------------------------------------------------
diff --git a/tools/devcloud4/common/development-installation/recipes/default.rb b/tools/devcloud4/common/development-installation/recipes/default.rb
new file mode 100644
index 0000000..617acc7
--- /dev/null
+++ b/tools/devcloud4/common/development-installation/recipes/default.rb
@@ -0,0 +1,27 @@
+#
+#  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.
+#
+
+service 'iptables' do
+  action [:disable, :stop]
+  only_if { platform?(%w{redhat centos fedora oracle}) }
+end
+
+include_recipe 'development-installation::nfsshares'
+include_recipe 'development-installation::system_templates'
+include_recipe 'development-installation::database_server'
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/66cded75/tools/devcloud4/common/development-installation/recipes/nfsshares.rb
----------------------------------------------------------------------
diff --git a/tools/devcloud4/common/development-installation/recipes/nfsshares.rb b/tools/devcloud4/common/development-installation/recipes/nfsshares.rb
new file mode 100644
index 0000000..100eab9
--- /dev/null
+++ b/tools/devcloud4/common/development-installation/recipes/nfsshares.rb
@@ -0,0 +1,48 @@
+#
+#  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.
+#
+
+include_recipe 'nfs::server'
+
+directory node['cloudstack']['secondary']['path'] do
+  owner 'root'
+  group 'root'
+  action :create
+  recursive true
+end
+
+nfs_export node['cloudstack']['secondary']['path'] do
+  network '*'
+  writeable true
+  sync false
+  options %w(no_root_squash no_subtree_check)
+end
+
+directory node['cloudstack']['primary']['path'] do
+  owner 'root'
+  group 'root'
+  action :create
+  recursive true
+end
+
+nfs_export node['cloudstack']['primary']['path'] do
+  network '*'
+  writeable true
+  sync false
+  options %w(no_root_squash no_subtree_check)
+end

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/66cded75/tools/devcloud4/common/development-installation/recipes/system_templates.rb
----------------------------------------------------------------------
diff --git a/tools/devcloud4/common/development-installation/recipes/system_templates.rb b/tools/devcloud4/common/development-installation/recipes/system_templates.rb
new file mode 100644
index 0000000..7723f26
--- /dev/null
+++ b/tools/devcloud4/common/development-installation/recipes/system_templates.rb
@@ -0,0 +1,38 @@
+#
+#  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.
+#
+
+cookbook_file 'cloud-install-sys-tmplt' do
+  action :create_if_missing
+  mode 0755
+  path node['cloudstack']['cloud-install-sys-tmplt']
+end
+
+cookbook_file 'createtmplt.sh' do
+  action :create_if_missing
+  mode 0755
+  path node['cloudstack']['createtmplt']
+end
+
+cloudstack_system_template 'xenserver' do
+  template_id '1'
+  nfs_path node['cloudstack']['secondary']['path']
+  nfs_server node['cloudstack']['secondary']['host']
+  url node['cloudstack']['hypervisor_tpl']['xenserver']
+  action :create
+end
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/66cded75/tools/devcloud4/pom.xml
----------------------------------------------------------------------
diff --git a/tools/devcloud4/pom.xml b/tools/devcloud4/pom.xml
new file mode 100644
index 0000000..6b1a84f
--- /dev/null
+++ b/tools/devcloud4/pom.xml
@@ -0,0 +1,112 @@
+<!-- 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. -->
+<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>
+  <artifactId>cloud-devcloud4</artifactId>
+  <name>Apache CloudStack DevCloud4</name>
+  <packaging>pom</packaging>
+  <parent>
+    <groupId>org.apache.cloudstack</groupId>
+    <artifactId>cloud-tools</artifactId>
+    <version>4.6.0-SNAPSHOT</version>
+    <relativePath>../pom.xml</relativePath>
+  </parent>
+  <dependencies>
+    <dependency>
+      <groupId>mysql</groupId>
+      <artifactId>mysql-connector-java</artifactId>
+      <scope>provided</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.cloudstack</groupId>
+      <artifactId>cloud-developer</artifactId>
+      <version>${project.version}</version>
+      <type>pom</type>
+      <optional>true</optional>
+      <scope>runtime</scope>
+    </dependency>
+  </dependencies>
+
+  <build>
+    <defaultGoal>install</defaultGoal>
+  </build>
+  <profiles>
+    <profile>
+      <id>deploydb</id>
+      <activation>
+        <property>
+          <name>deploydb</name>
+        </property>
+      </activation>
+      <build>
+        <plugins>
+          <plugin>
+            <groupId>org.codehaus.mojo</groupId>
+            <artifactId>properties-maven-plugin</artifactId>
+            <version>1.0-alpha-2</version>
+            <executions>
+              <execution>
+                <phase>initialize</phase>
+                <goals>
+                  <goal>read-project-properties</goal>
+                </goals>
+                <configuration>
+                  <files>
+                    <file>${project.parent.parent.basedir}/utils/conf/db.properties</file>
+                    <file>${project.parent.parent.basedir}/utils/conf/db.properties.override</file>
+                  </files>
+                  <quiet>true</quiet>
+                </configuration>
+              </execution>
+            </executions>
+          </plugin>
+          <plugin>
+            <groupId>org.codehaus.mojo</groupId>
+            <artifactId>sql-maven-plugin</artifactId>
+            <version>1.5</version>
+            <dependencies>
+              <!-- specify the dependent jdbc driver here -->
+              <dependency>
+                <groupId>mysql</groupId>
+                <artifactId>mysql-connector-java</artifactId>
+                <version>${cs.mysql.version}</version>
+              </dependency>
+            </dependencies>
+            <configuration>
+              <driver>org.gjt.mm.mysql.Driver</driver>
+              <url>jdbc:mysql://${db.cloud.host}:${db.cloud.port}/cloud</url>
+              <username>${db.cloud.username}</username>
+              <password>${db.cloud.password}</password>
+              <!--all executions are ignored if -Dmaven.test.skip=true -->
+              <skip>${maven.test.skip}</skip>
+              <forceMojoExecution>true</forceMojoExecution>
+            </configuration>
+            <executions>
+              <execution>
+                <id>create-schema</id>
+                <phase>process-resources</phase>
+                <goals>
+                  <goal>execute</goal>
+                </goals>
+                <configuration>
+                  <srcFiles>
+                    <srcFile>${basedir}/prefill.sql</srcFile>
+                  </srcFiles>
+                </configuration>
+              </execution>
+            </executions>
+          </plugin>
+        </plugins>
+      </build>
+    </profile>
+  </profiles>
+</project>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/66cded75/tools/devcloud4/prefill.sql
----------------------------------------------------------------------
diff --git a/tools/devcloud4/prefill.sql b/tools/devcloud4/prefill.sql
new file mode 100644
index 0000000..d06de50
--- /dev/null
+++ b/tools/devcloud4/prefill.sql
@@ -0,0 +1,34 @@
+-- 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.
+
+REPLACE INTO `cloud`.`disk_offering` (id, name, uuid, display_text, created, use_local_storage, type, disk_size) VALUES (17, 'Devcloud4 offering', UUID(), 'Devcloud4 offering', NOW(), 1, 'Service', 0);
+REPLACE INTO `cloud`.`service_offering` (id, cpu, speed, ram_size) VALUES (17, 1, 200, 256);
+REPLACE INTO `cloud`.`disk_offering` (name, uuid, display_text, created, use_local_storage, type, disk_size) VALUES ('Devcloud4 disk offering', UUID(), 'Devcloud4 disk offering', NOW(), 1, 'Disk', 1073741824);
+REPLACE INTO `cloud`.`configuration` (category, instance, component, name, value) VALUES ('Advanced', 'DEFAULT', 'management-server', 'integration.api.port', '8096');
+REPLACE INTO `cloud`.`configuration` (instance, name,value) VALUE('DEFAULT','router.ram.size', '256');
+REPLACE INTO `cloud`.`configuration` (instance, name,value) VALUE('DEFAULT','router.cpu.mhz','256');
+REPLACE INTO `cloud`.`configuration` (instance, name,value) VALUE('DEFAULT','console.ram.size','256');
+REPLACE INTO `cloud`.`configuration` (instance, name,value) VALUE('DEFAULT','console.cpu.mhz', '256');
+REPLACE INTO `cloud`.`configuration` (instance, name,value) VALUE('DEFAULT','ssvm.ram.size','256');
+REPLACE INTO `cloud`.`configuration` (instance, name,value) VALUE('DEFAULT','ssvm.cpu.mhz','256');
+REPLACE INTO `cloud`.`configuration` (instance, name, value) VALUE('DEFAULT', 'system.vm.use.local.storage', 'true');
+REPLACE INTO `cloud`.`configuration` (instance, name, value) VALUE('DEFAULT', 'expunge.workers', '3');
+REPLACE INTO `cloud`.`configuration` (instance, name, value) VALUE('DEFAULT', 'expunge.delay', '60');
+REPLACE INTO `cloud`.`configuration` (instance, name, value) VALUE('DEFAULT', 'expunge.interval', '60');
+REPLACE INTO `cloud`.`configuration` (instance, name, value) VALUE('DEFAULT', 'management.network.cidr', '0.0.0.0/0');
+REPLACE INTO `cloud`.`configuration` (instance, name, value) VALUE('DEFAULT', 'secstorage.allowed.internal.sites', '0.0.0.0/0');
+UPDATE `cloud`.`vm_template` SET unique_name="Macchinina",name="Macchinina",url="http://dl.openvm.eu/cloudstack/macchinina/x86_64/macchinina-xen.vhd.bz2",checksum="30985504bc31bf0cd3b9d2c6ca7944d3",display_text="Macchinina" where id=5;
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/66cded75/tools/pom.xml
----------------------------------------------------------------------
diff --git a/tools/pom.xml b/tools/pom.xml
index ed2d806..1885b9d 100644
--- a/tools/pom.xml
+++ b/tools/pom.xml
@@ -37,6 +37,7 @@
         <module>apidoc</module>
         <module>marvin</module>
         <module>devcloud</module>
-        <module>devcloud-kvm</module>
+        <module>devcloud4</module>
+	<module>devcloud-kvm</module>
     </modules>
 </project>


[2/2] git commit: updated refs/heads/master to 66cded7

Posted by du...@apache.org.
Move Devcloud4 into main repository


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

Branch: refs/heads/master
Commit: 66cded75e0f512b431d27cea2cffbc45deb3d859
Parents: da233c7
Author: Ian Duffy <ia...@ianduffy.ie>
Authored: Sat Apr 11 16:17:02 2015 +0100
Committer: Ian Duffy <ia...@ianduffy.ie>
Committed: Sat Apr 11 16:17:02 2015 +0100

----------------------------------------------------------------------
 tools/devcloud4/.gitignore                      |   4 +
 tools/devcloud4/README.md                       | 101 +++++++
 tools/devcloud4/advanced/Berksfile              |  27 ++
 tools/devcloud4/advanced/README.md              |  95 ++++++
 tools/devcloud4/advanced/Vagrantfile            | 115 ++++++++
 .../devcloud4/advanced/chef_configuration.json  |  24 ++
 tools/devcloud4/advanced/marvin.cfg             | 124 ++++++++
 tools/devcloud4/basic/Berksfile                 |  27 ++
 tools/devcloud4/basic/README.md                 |  83 ++++++
 tools/devcloud4/basic/Vagrantfile               |  81 ++++++
 tools/devcloud4/basic/chef_configuration.json   |  22 ++
 tools/devcloud4/basic/marvin.cfg                | 110 +++++++
 .../binary-installation-advanced/Berksfile      |  26 ++
 .../binary-installation-advanced/Vagrantfile    | 119 ++++++++
 .../chef_configuration.json                     |  37 +++
 .../binary-installation-advanced/marvin.cfg.erb | 123 ++++++++
 .../binary-installation-basic/Berksfile         |  26 ++
 .../binary-installation-basic/Vagrantfile       |  83 ++++++
 .../chef_configuration.json                     |  34 +++
 .../binary-installation-basic/marvin.cfg.erb    | 109 +++++++
 .../common/binary-installation/README.md        |   0
 .../attributes/database_server.rb               |  22 ++
 .../binary-installation/attributes/default.rb   |  38 +++
 .../common/binary-installation/metadata.rb      |  42 +++
 .../recipes/database_server.rb                  |  24 ++
 .../binary-installation/recipes/default.rb      |  27 ++
 .../recipes/management_server.rb                |  57 ++++
 .../binary-installation/recipes/nfsshares.rb    |  48 ++++
 tools/devcloud4/common/configure-network.sh     |  37 +++
 .../common/development-installation/README.md   |   0
 .../attributes/database_server.rb               |  22 ++
 .../attributes/default.rb                       |  29 ++
 .../files/default/cloud-install-sys-tmplt       | 288 +++++++++++++++++++
 .../files/default/createtmplt.sh                | 239 +++++++++++++++
 .../common/development-installation/metadata.rb |  42 +++
 .../recipes/database_server.rb                  |  24 ++
 .../development-installation/recipes/default.rb |  27 ++
 .../recipes/nfsshares.rb                        |  48 ++++
 .../recipes/system_templates.rb                 |  38 +++
 tools/devcloud4/pom.xml                         | 112 ++++++++
 tools/devcloud4/prefill.sql                     |  34 +++
 tools/pom.xml                                   |   3 +-
 42 files changed, 2570 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/66cded75/tools/devcloud4/.gitignore
----------------------------------------------------------------------
diff --git a/tools/devcloud4/.gitignore b/tools/devcloud4/.gitignore
new file mode 100644
index 0000000..3969b1b
--- /dev/null
+++ b/tools/devcloud4/.gitignore
@@ -0,0 +1,4 @@
+tmp
+cookbooks
+*.lock
+.vagrant
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/66cded75/tools/devcloud4/README.md
----------------------------------------------------------------------
diff --git a/tools/devcloud4/README.md b/tools/devcloud4/README.md
new file mode 100644
index 0000000..00d6756
--- /dev/null
+++ b/tools/devcloud4/README.md
@@ -0,0 +1,101 @@
+# Devcloud 4
+
+## Introduction
+
+The follow project aims to simplify getting a full Apache CloudStack environment running on your machine. You can either take the easy ride and run `vagrant up` in either one of the 'binary installation' directories or compile CloudStack yourself. See for instructions in the 'basic' and 'advanced' directories.
+
+The included VagrantFile will give you:
+
+ - Management
+     - NFS Server
+     - MySQL Server
+     - Router
+     - * Cloudstack Management Server * (Only given in binary installation)
+
+ - XenServer 6.2
+
+## Getting started
+
+1. Due to the large amount of data to be pulled from the Internet, it's probably not a good idea to do this over WiFi or Mobile data.
+
+1. Given the amount of virtual machines this brings up it is recommended you have atleast 8gb of ram before attempting this.
+
+1. Ensure your system has `git` installed.
+
+1. When on Windows, make sure you've set the git option `autocrlf` to `false`:
+
+      ```
+      git config --global core.autocrlf false
+      ```
+
+1. Clone the repository:
+
+	```
+	git clone https://github.com/imduffy15/devcloud4.git
+	```
+
+1. Download and Install [VirtualBox](https://www.virtualbox.org/wiki/Downloads)
+   
+   On Windows7, the Xenserver VM crashed immediately after booting with a General Protection Fault. 
+   Installing VirtualBox version 4.3.6r91406 (https://www.virtualbox.org/wiki/Download_Old_Builds_4_3) fixed the problem, but only downgrade if the latest version does not work for you.
+ 
+1. Download and install [Vagrant](https://www.vagrantup.com/downloads.html)
+
+1. Ensure all Vagrant Plugins are installed:
+
+	```bash
+	vagrant plugin install vagrant-berkshelf vagrant-omnibus
+	```
+
+1. Download and install [ChefDK](https://downloads.chef.io/chef-dk/)
+
+### Configure virtualbox
+
+1. Open virtualbox and navigate to its preferences/settings window. 
+
+1. Click onto the network tab and then onto the host only network tab. 
+
+1. Configure your adapters as follows:
+
+   - On Windows, the adapternames are different, and map as follows:
+     - vboxnet0: VirtualBox Host-Only Ethernet Adapter
+     - vboxnet1: VirtualBox Host-Only Ethernet Adapter 2
+     - vboxnet2: VirtualBox Host-Only Ethernet Adapter 3
+    
+    #### For Basic Networking you only need:
+
+    ##### vboxnet0
+    - IPv4 IP address of 192.168.22.1
+    - Subnet of 255.255.255.0
+    - DHCP server disabled
+    
+    #### For Advanced Networking you will need:
+    
+    
+    
+    ##### vboxnet1
+    - IPv4 IP address of 192.168.23.1
+    - Subnet of 255.255.255.0
+    - DHCP server disabled
+    
+    
+    
+    ##### vboxnet2
+    - IPv4 IP address of 192.168.24.1
+    - Subnet of 255.255.255.0
+    - DHCP server disabled
+
+## Defaults
+
+### Management Server
+
+ - IP: 192.168.22.5
+ - Username: vagrant or root
+ - Password: vagrant
+
+### Hypervisor
+
+ - IP: 192.168.22.10
+ - Username: root
+ - Password: password
+    

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/66cded75/tools/devcloud4/advanced/Berksfile
----------------------------------------------------------------------
diff --git a/tools/devcloud4/advanced/Berksfile b/tools/devcloud4/advanced/Berksfile
new file mode 100644
index 0000000..616ca68
--- /dev/null
+++ b/tools/devcloud4/advanced/Berksfile
@@ -0,0 +1,27 @@
+#
+#  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.
+#
+
+source "https://api.berkshelf.com"
+
+cookbook 'hostname'
+cookbook 'selinux'
+cookbook 'nat-router', git: 'http://github.com/imduffy15/cookbook_nat-router'
+cookbook 'cloudstack', git: 'https://github.com/imduffy15/cookbook_cloudstack-1'
+cookbook 'development-installation', path: '../common/development-installation'
+cookbook 'python', git: 'https://github.com/imduffy15/python.git'

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/66cded75/tools/devcloud4/advanced/README.md
----------------------------------------------------------------------
diff --git a/tools/devcloud4/advanced/README.md b/tools/devcloud4/advanced/README.md
new file mode 100644
index 0000000..6171839
--- /dev/null
+++ b/tools/devcloud4/advanced/README.md
@@ -0,0 +1,95 @@
+### Configure virtualbox
+
+1. Open virtualbox and navigate to its preferences/settings window. 
+
+1. Click onto the network tab and then onto the host only network tab. 
+
+1. Configure your adapters as follows:
+
+    ##### vboxnet0
+    - IPv4 IP address of 192.168.22.1
+    - Subnet of 255.255.255.0
+    - DHCP server disabled
+    
+    ##### vboxnet1
+    - IPv4 IP address of 192.168.23.1
+    - Subnet of 255.255.255.0
+    - DHCP server disabled
+    
+    ##### vboxnet2
+    - IPv4 IP address of 192.168.24.1
+    - Subnet of 255.255.255.0
+    - DHCP server disabled
+    
+   
+### Start the vagrant boxes
+
+```bash
+vagrant up
+```
+
+*** Common issues: ***
+
+- 'Cannot forward the specified ports on this VM': There could be MySQL or some other
+  service running on the host OS causing vagrant to fail setting up local port forwarding.
+
+
+### Start Cloudstack
+
+1. Clone the Cloudstack Repository:
+
+	```
+	git clone https://github.com/apache/cloudstack.git
+	```
+
+	*** Note: ***
+	
+	Personally I prefer to use the 4.3 codebase rather than master. If you wish to do the same:	
+
+	```
+	git reset --hard 0810029
+	```
+
+1. Download vhd-util:
+
+	```bash
+	cd /path/to/cloudstack/repo
+	wget http://download.cloud.com.s3.amazonaws.com/tools/vhd-util -P scripts/vm/hypervisor/xenserver/
+	chmod +x scripts/vm/hypervisor/xenserver/vhd-util
+	```
+
+1. Compile Cloudstack:
+
+	```bash
+	cd /path/to/cloudstack/repo
+	mvn -P developer,systemvm clean install -DskipTests=true
+	```
+	
+1. Deploy Cloudstack Database:
+
+	```bash
+	cd /path/to/cloudstack/repo
+	mvn -P developer -pl developer,tools/devcloud4 -Ddeploydb
+	```
+
+1. Start Cloudstack:
+
+	```bash
+	cd /path/to/cloudstack/repo
+	mvn -pl :cloud-client-ui jetty:run
+	```
+
+1. Install Marvin:
+
+	```
+	cd /path/to/cloudstack/repo
+	pip install tools/marvin/dist/Marvin-0.1.0.tar.gz
+	```
+
+1. Deploy:
+
+    ```
+    python -m marvin.deployDataCenter -i marvin.cfg 
+    ```
+
+

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/66cded75/tools/devcloud4/advanced/Vagrantfile
----------------------------------------------------------------------
diff --git a/tools/devcloud4/advanced/Vagrantfile b/tools/devcloud4/advanced/Vagrantfile
new file mode 100644
index 0000000..0bf843b
--- /dev/null
+++ b/tools/devcloud4/advanced/Vagrantfile
@@ -0,0 +1,115 @@
+# -*- mode: ruby -*-
+# vi: set ft=ruby :
+#
+#  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.
+#
+
+VAGRANTFILE_API_VERSION = '2'
+
+Vagrant.require_version '>= 1.5.0'
+
+unless Vagrant.has_plugin?('vagrant-berkshelf')
+  raise 'vagrant-berkshelf is not installed!'
+end
+
+unless Vagrant.has_plugin?('vagrant-omnibus')
+  raise 'vagrant-omnibus is not installed!'
+end
+
+xenserver_networking_script = File.join(File.dirname(__FILE__), '../common/', 'configure-network.sh')
+
+Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
+
+  config.vm.define 'xenserver' do |xenserver|
+    xenserver.vm.box = 'duffy/xenserver'
+
+    # Public Network (IP address is ignored.)
+    xenserver.vm.network :private_network, :auto_config => false, :ip => '192.168.23.10'
+
+    # Guest Network (IP address is ignored.)
+    xenserver.vm.network :private_network, :auto_config => false, :ip => '192.168.24.10'
+
+    # Configure Interfaces
+
+    ## Configure Management Interface
+    xenserver.vm.provision 'shell' do |s|
+      s.path = xenserver_networking_script
+      s.args = %w(eth1 192.168.22.10 255.255.255.0 MGMT)
+    end
+
+    ## Configure Public Interface
+    xenserver.vm.provision 'shell' do |s|
+      s.path = xenserver_networking_script
+      s.args = %w(eth2 na na PUBLIC)
+    end
+
+    ## Configure Guest Interface
+    xenserver.vm.provision 'shell' do |s|
+      s.path = xenserver_networking_script
+      s.args = %w(eth3 na na GUEST)
+    end
+
+    ## Tweak kernel
+    xenserver.vm.provision "shell", inline: "sed -i -e 's/net.bridge.bridge-nf-call-iptables = 1/net.bridge.bridge-nf-call-iptables = 0/g' -e 's/net.bridge.bridge-nf-call-arptables = 1/net.bridge.bridge-nf-call-arptables = 0/g' /etc/sysctl.conf && /sbin/sysctl -p /etc/sysctl.conf"
+
+    ## Map host only networks and the adapters
+    xenserver.vm.provider 'virtualbox' do |v|
+      v.customize ['modifyvm', :id, '--nicpromisc2', 'allow-all']
+      v.customize ['modifyvm', :id, '--nicpromisc3', 'allow-all']
+      v.customize ['modifyvm', :id, '--nicpromisc4', 'allow-all']
+      v.customize ['modifyvm', :id, '--hostonlyadapter2', 'vboxnet0']
+      v.customize ['modifyvm', :id, '--hostonlyadapter3', 'vboxnet1']
+      v.customize ['modifyvm', :id, '--hostonlyadapter4', 'vboxnet2']
+      v.customize ["modifyvm", :id, '--nictype2', 'Am79C973']
+      v.customize ["modifyvm", :id, '--nictype3', 'Am79C973']
+      v.customize ["modifyvm", :id, '--nictype4', 'Am79C973']
+    end
+  end
+
+  config.vm.define 'management' do |management|
+    management.vm.box = 'chef/centos-6.5'
+
+    # Configure management interface
+    management.vm.network :private_network, :auto_config => true, :ip => '192.168.22.5'
+
+    # Configure public interface
+    management.vm.network :private_network, :auto_config => true, :ip => '192.168.23.5'
+
+    # Port forward MySQL
+    management.vm.network 'forwarded_port', guest: 3306, host: 3306
+
+    management.vm.provider 'virtualbox' do |v|
+      v.customize ['modifyvm', :id, '--memory', 512]
+      v.customize ['modifyvm', :id, '--hostonlyadapter2', 'vboxnet0']
+      v.customize ['modifyvm', :id, '--hostonlyadapter3', 'vboxnet1']
+      v.customize ["modifyvm", :id, '--nictype2', 'Am79C973']
+      v.customize ["modifyvm", :id, '--nictype3', 'Am79C973']
+    end
+
+    management.omnibus.chef_version = "11.16.4" 
+    management.berkshelf.berksfile_path = File.join(File.dirname(__FILE__), 'Berksfile')
+    management.berkshelf.enabled = true
+
+    CHEF_CONFIGURATION = JSON.parse(Pathname(__FILE__).dirname.join('chef_configuration.json').read)
+
+    management.vm.provision 'chef_solo' do |chef|
+      chef.run_list = CHEF_CONFIGURATION.delete('run_list')
+      chef.json = CHEF_CONFIGURATION
+    end
+  end
+end

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/66cded75/tools/devcloud4/advanced/chef_configuration.json
----------------------------------------------------------------------
diff --git a/tools/devcloud4/advanced/chef_configuration.json b/tools/devcloud4/advanced/chef_configuration.json
new file mode 100644
index 0000000..40d5bce
--- /dev/null
+++ b/tools/devcloud4/advanced/chef_configuration.json
@@ -0,0 +1,24 @@
+{
+  "run_list": [
+    "recipe[development-installation]",
+    "recipe[nat-router]"
+  ],
+  "iptables": {
+    "lans": ["eth1", "eth2"]
+  },
+  "set_fqdn": "*.localdomain",
+  "selinux": {
+      "state": "permissive"
+  },
+  "cloudstack": {
+      "secondary": {
+        "path": "/exports/secondary"
+      },
+      "primary": {
+        "path": "/exports/primary"
+      },
+      "hypervisor_tpl": {
+        "xenserver": "http://jenkins.buildacloud.org/job/build-systemvm64-master/lastSuccessfulBuild/artifact/tools/appliance/dist/systemvm64template-master-4.6.0-xen.vhd.bz2"
+      }
+  }
+}

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/66cded75/tools/devcloud4/advanced/marvin.cfg
----------------------------------------------------------------------
diff --git a/tools/devcloud4/advanced/marvin.cfg b/tools/devcloud4/advanced/marvin.cfg
new file mode 100644
index 0000000..9e2ac56
--- /dev/null
+++ b/tools/devcloud4/advanced/marvin.cfg
@@ -0,0 +1,124 @@
+#
+#  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.
+#
+
+{
+    "zones": [
+        {
+            "name": "DevCloud-Advanced-01",
+            "guestcidraddress": "10.1.1.0/24",
+            "localstorageenabled": true,
+            "dns1": "8.8.8.8",
+            "physical_networks": [
+                {
+                    "broadcastdomainrange": "Zone",
+                    "vlan": "100-200",
+                    "name": "DevCloud-Network-01",
+                    "traffictypes": [
+                        {
+                            "xen": "GUEST",
+                            "typ": "Guest"
+                        },
+                        {
+                            "xen": "MGMT",
+                            "typ": "Management"
+                        },
+                        {
+                            "xen": "PUBLIC",
+                            "typ": "Public"
+                        }
+                    ],
+                    "providers": [
+                        {
+                            "broadcastdomainrange": "ZONE",
+                            "name": "VirtualRouter"
+                        },
+                        {
+                            "broadcastdomainrange": "ZONE",
+                            "name": "VpcVirtualRouter"
+                        },
+                        {
+                            "broadcastdomainrange": "ZONE",
+                            "name": "InternalLbVm"
+                        }
+                    ],
+                    "isolationmethods": [
+                        "VLAN"
+                    ]
+                }
+            ],
+            "ipranges": [
+                {
+                    "startip": "192.168.23.100",
+                    "endip": "192.168.23.120",
+                    "netmask": "255.255.255.0",
+                    "vlan": "untagged",
+                    "gateway": "192.168.23.5"
+                }
+            ],
+            "networktype": "Advanced",
+            "pods": [
+                {
+                    "startip": "192.168.22.100",
+                    "endip": "192.168.22.120",
+                    "name": "DevCloud-POD-01",
+                    "netmask": "255.255.255.0",
+                    "clusters": [
+                        {
+                            "clustername": "DevCloud-CLUSTER-01",
+                            "hypervisor": "XenServer",
+                            "hosts": [
+                                {
+                                    "username": "root",
+                                    "url": "http://192.168.22.10/",
+                                    "password": "password"
+                                }
+                            ],
+                            "clustertype": "CloudManaged"
+                        }
+                    ],
+                    "gateway": "192.168.22.5"
+                }
+            ],
+            "internaldns1": "8.8.8.8",
+            "secondaryStorages": [
+                {
+                    "url": "nfs://192.168.22.5/exports/secondary",
+                    "provider": "NFS",
+                    "details": [ ]
+                }
+            ]
+        }
+    ],
+    "logger": {
+        "LogFolderPath": "/tmp/"
+    },
+    "mgtSvr": [
+        {
+            "mgtSvrIp": "192.168.22.1",
+            "port": 8096
+        }
+    ],
+    "dbSvr": {
+        "dbSvr": "127.0.0.1",
+        "port": 3306,
+        "user": "cloud",
+        "passwd": "cloud",
+        "db": "cloud"
+    }
+}

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/66cded75/tools/devcloud4/basic/Berksfile
----------------------------------------------------------------------
diff --git a/tools/devcloud4/basic/Berksfile b/tools/devcloud4/basic/Berksfile
new file mode 100644
index 0000000..616ca68
--- /dev/null
+++ b/tools/devcloud4/basic/Berksfile
@@ -0,0 +1,27 @@
+#
+#  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.
+#
+
+source "https://api.berkshelf.com"
+
+cookbook 'hostname'
+cookbook 'selinux'
+cookbook 'nat-router', git: 'http://github.com/imduffy15/cookbook_nat-router'
+cookbook 'cloudstack', git: 'https://github.com/imduffy15/cookbook_cloudstack-1'
+cookbook 'development-installation', path: '../common/development-installation'
+cookbook 'python', git: 'https://github.com/imduffy15/python.git'

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/66cded75/tools/devcloud4/basic/README.md
----------------------------------------------------------------------
diff --git a/tools/devcloud4/basic/README.md b/tools/devcloud4/basic/README.md
new file mode 100644
index 0000000..31cb62d
--- /dev/null
+++ b/tools/devcloud4/basic/README.md
@@ -0,0 +1,83 @@
+### Configure virtualbox
+
+1. Open virtualbox and navigate to its preferences/settings window. 
+
+1. Click onto the network tab and then onto the host only network tab. 
+
+1. Configure your adapters as follows:
+
+    ##### vboxnet0
+    - IPv4 IP address of 192.168.22.1
+    - Subnet of 255.255.255.0
+    - DHCP server disabled
+    
+
+### Start the vagrant boxes
+
+```bash
+vagrant up
+```
+
+*** Common issues: ***
+
+- 'Cannot forward the specified ports on this VM': There could be MySQL or some other
+  service running on the host OS causing vagrant to fail setting up local port forwarding.
+
+
+### Start Cloudstack
+
+1. Clone the Cloudstack Repository:
+
+	```
+	git clone https://github.com/apache/cloudstack.git
+	```
+
+	*** Note: ***
+	
+	Personally I prefer to use the 4.3 codebase rather than master. If you wish to do the same:	
+
+	```
+	git reset --hard 0810029
+	```
+
+1. Download vhd-util:
+
+	```bash
+	cd /path/to/cloudstack/repo
+	wget http://download.cloud.com.s3.amazonaws.com/tools/vhd-util -P scripts/vm/hypervisor/xenserver/
+	chmod +x scripts/vm/hypervisor/xenserver/vhd-util
+	```
+
+1. Compile Cloudstack:
+
+	```bash
+	cd /path/to/cloudstack/repo
+	mvn -P developer,systemvm clean install -DskipTests=true
+	```
+	
+1. Deploy Cloudstack Database:
+
+	```bash
+	cd /path/to/cloudstack/repo
+	mvn -P developer -pl developer,tools/devcloud4 -Ddeploydb
+	```
+
+1. Start Cloudstack:
+
+	```bash
+	cd /path/to/cloudstack/repo
+	mvn -pl :cloud-client-ui jetty:run
+	```
+
+1. Install Marvin:
+
+	```
+	cd /path/to/cloudstack/repo
+	pip install tools/marvin/dist/Marvin-4.6.0-SNAPSHOT.tar.gz --allow-external mysql-connector-python
+	```
+
+1. Deploying:
+
+    ```
+    python -m marvin.deployDataCenter -i marvin.cfg 
+    ```

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/66cded75/tools/devcloud4/basic/Vagrantfile
----------------------------------------------------------------------
diff --git a/tools/devcloud4/basic/Vagrantfile b/tools/devcloud4/basic/Vagrantfile
new file mode 100644
index 0000000..5f22edc
--- /dev/null
+++ b/tools/devcloud4/basic/Vagrantfile
@@ -0,0 +1,81 @@
+# -*- mode: ruby -*-
+# vi: set ft=ruby :
+#
+#  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.
+#
+
+VAGRANTFILE_API_VERSION = '2'
+
+Vagrant.require_version '>= 1.5.0'
+
+unless Vagrant.has_plugin?('vagrant-berkshelf')
+  raise 'vagrant-berkshelf is not installed!'
+end
+
+unless Vagrant.has_plugin?('vagrant-omnibus')
+  raise 'vagrant-omnibus is not installed!'
+end
+
+xenserver_networking_script = File.join(File.dirname(__FILE__), '../common/', 'configure-network.sh')
+
+Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
+
+  config.vm.define 'xenserver' do |xenserver|
+    xenserver.vm.box = 'duffy/xenserver'
+
+    ## Map host only networks and the adapters
+    xenserver.vm.provider 'virtualbox' do |v|
+      v.customize ['modifyvm', :id, '--hostonlyadapter2', 'vboxnet0']
+      v.customize ['modifyvm', :id, '--nicpromisc2', 'allow-all']
+      v.customize ["modifyvm", :id, '--nictype2', 'Am79C973']
+    end
+
+    # Configure Interface
+    ## Configure Management Interface
+    xenserver.vm.provision 'shell' do |s|
+      s.path = xenserver_networking_script
+      s.args = %w(eth1 192.168.22.10 255.255.255.0 MGMT)
+    end
+
+  end
+
+  config.vm.define 'management' do |management|
+    management.vm.box = 'chef/centos-6.5'
+
+    management.vm.network :private_network, :auto_config => true, :ip => '192.168.22.5'
+
+    management.vm.network 'forwarded_port', guest: 3306, host: 3306
+
+    management.vm.provider 'virtualbox' do |v|
+      v.customize ['modifyvm', :id, '--memory', 512]
+      v.customize ['modifyvm', :id, '--hostonlyadapter2', 'vboxnet0']
+      v.customize ["modifyvm", :id, '--nictype2', 'Am79C973']
+    end
+
+    management.omnibus.chef_version = "11.16.4" 
+    management.berkshelf.berksfile_path = File.join(File.dirname(__FILE__), 'Berksfile')
+    management.berkshelf.enabled = true
+
+    CHEF_CONFIGURATION = JSON.parse(Pathname(__FILE__).dirname.join('chef_configuration.json').read)
+
+    management.vm.provision 'chef_solo' do |chef|
+      chef.run_list = CHEF_CONFIGURATION.delete('run_list')
+      chef.json = CHEF_CONFIGURATION
+    end
+  end
+end

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/66cded75/tools/devcloud4/basic/chef_configuration.json
----------------------------------------------------------------------
diff --git a/tools/devcloud4/basic/chef_configuration.json b/tools/devcloud4/basic/chef_configuration.json
new file mode 100644
index 0000000..507a0de
--- /dev/null
+++ b/tools/devcloud4/basic/chef_configuration.json
@@ -0,0 +1,22 @@
+
+{
+  "run_list": [
+    "recipe[development-installation]",
+    "recipe[nat-router]"
+  ],
+  "set_fqdn": "*.localdomain",
+  "selinux": {
+      "state": "permissive"
+  },
+  "cloudstack": {
+      "secondary": {
+        "path": "/exports/secondary"
+      },
+      "primary": {
+        "path": "/exports/primary"
+      },
+      "hypervisor_tpl": {
+        "xenserver": "http://jenkins.buildacloud.org/job/build-systemvm64-master/lastSuccessfulBuild/artifact/tools/appliance/dist/systemvm64template-master-4.6.0-xen.vhd.bz2"
+      }
+  }
+}

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/66cded75/tools/devcloud4/basic/marvin.cfg
----------------------------------------------------------------------
diff --git a/tools/devcloud4/basic/marvin.cfg b/tools/devcloud4/basic/marvin.cfg
new file mode 100644
index 0000000..dcc1b82
--- /dev/null
+++ b/tools/devcloud4/basic/marvin.cfg
@@ -0,0 +1,110 @@
+#
+#  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.
+#
+
+{
+    "zones": [
+        {
+            "name": "DevCloud-Basic-01",
+            "enabled": "True",
+            "physical_networks": [
+                {
+                    "broadcastdomainrange": "Zone",
+                    "name": "Devcloud-Network-01",
+                    "traffictypes": [
+                        {
+                            "typ": "Guest"
+                        },
+                        {
+                            "typ": "Management"
+                        }
+                    ],
+                    "providers": [
+                        {
+                            "broadcastdomainrange": "ZONE",
+                            "name": "VirtualRouter"
+                        },
+                        {
+                            "broadcastdomainrange": "Pod",
+                            "name": "SecurityGroupProvider"
+                        }
+                    ]
+                }
+            ],
+            "dns2": "8.8.4.4",
+            "dns1": "8.8.8.8",
+            "securitygroupenabled": "true",
+            "localstorageenabled": "true",
+            "networktype": "Basic",
+            "pods": [
+                {
+                    "endip": "192.168.22.220",
+                    "name": "DevCloud-POD-01",
+                    "startip": "192.168.22.200",
+                    "guestIpRanges": [
+                        {
+                            "startip": "192.168.22.100",
+                            "endip": "192.168.22.199",
+                            "netmask": "255.255.255.0",
+                            "gateway": "192.168.22.5"
+                        }
+                    ],
+                    "netmask": "255.255.255.0",
+                    "clusters": [
+                        {
+                            "clustername": "DevCloud-CLUSTER-01",
+                            "hypervisor": "XenServer",
+                            "hosts": [
+                                {
+                                    "username": "root",
+                                    "url": "http://192.168.22.10/",
+                                    "password": "password"
+                                }
+                            ],
+                            "clustertype": "CloudManaged"
+                        }
+                    ],
+                    "gateway": "192.168.22.5"
+                }
+            ],
+            "internaldns1": "8.8.8.8",
+            "secondaryStorages": [
+                {
+                    "url": "nfs://192.168.22.5/exports/secondary",
+                    "provider": "NFS"
+                }
+            ]
+        }
+    ],
+    "logger": {
+        "LogFolderPath": "/tmp/"
+    },
+    "mgtSvr": [
+        {
+            "mgtSvrIp": "192.168.22.1",
+            "port": 8096
+        }
+    ],
+    "dbSvr": {
+        "dbSvr": "127.0.0.1",
+        "port": 3306,
+        "user": "cloud",
+        "passwd": "cloud",
+        "db": "cloud"
+    }
+}

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/66cded75/tools/devcloud4/binary-installation-advanced/Berksfile
----------------------------------------------------------------------
diff --git a/tools/devcloud4/binary-installation-advanced/Berksfile b/tools/devcloud4/binary-installation-advanced/Berksfile
new file mode 100644
index 0000000..7ad09e1
--- /dev/null
+++ b/tools/devcloud4/binary-installation-advanced/Berksfile
@@ -0,0 +1,26 @@
+#
+#  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.
+#
+
+source "https://api.berkshelf.com"
+
+cookbook 'hostname'
+cookbook 'selinux'
+cookbook 'nat-router', git: 'http://github.com/imduffy15/cookbook_nat-router'
+cookbook 'cloudstack', git: 'https://github.com/imduffy15/cookbook_cloudstack-1'
+cookbook 'binary-installation', path: '../common/binary-installation'
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/66cded75/tools/devcloud4/binary-installation-advanced/Vagrantfile
----------------------------------------------------------------------
diff --git a/tools/devcloud4/binary-installation-advanced/Vagrantfile b/tools/devcloud4/binary-installation-advanced/Vagrantfile
new file mode 100644
index 0000000..255efc0
--- /dev/null
+++ b/tools/devcloud4/binary-installation-advanced/Vagrantfile
@@ -0,0 +1,119 @@
+# -*- mode: ruby -*-
+# vi: set ft=ruby :
+#
+#  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.
+#
+
+xenserver_networking_script = File.join(File.dirname(__FILE__), '../common/', 'configure-network.sh')
+
+is_windows = (RUBY_PLATFORM =~ /mswin|mingw|cygwin/)
+
+virtualbox_interface_0 = if is_windows then 'VirtualBox Host-Only Ethernet Adapter' else 'vboxnet0' end
+virtualbox_interface_1 = if is_windows then 'VirtualBox Host-Only Ethernet Adapter #2' else 'vboxnet1' end
+virtualbox_interface_2 = if is_windows then 'VirtualBox Host-Only Ethernet Adapter #3' else 'vboxnet2' end
+
+VAGRANTFILE_API_VERSION = '2'
+Vagrant.require_version '>= 1.5.0'
+
+unless Vagrant.has_plugin?('vagrant-berkshelf')
+  raise 'vagrant-berkshelf is not installed!'
+end
+
+unless Vagrant.has_plugin?('vagrant-omnibus')
+  raise 'vagrant-omnibus is not installed!'
+end
+
+Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
+
+  config.vm.define 'xenserver' do |xenserver|
+    xenserver.vm.box = 'duffy/xenserver'
+
+    # Public Network (IP address is ignored.)
+    xenserver.vm.network :private_network, :auto_config => false, :ip => '192.168.23.10'
+
+    # Guest Network (IP address is ignored.)
+    xenserver.vm.network :private_network, :auto_config => false, :ip => '192.168.24.10'
+
+    ## Configure Management Interface
+    xenserver.vm.provision 'shell' do |s|
+      s.path = xenserver_networking_script
+      s.args = %w(eth1 192.168.22.10 255.255.255.0 MGMT)
+    end
+
+    ## Configure Public Interface
+    xenserver.vm.provision 'shell' do |s|
+      s.path = xenserver_networking_script
+      s.args = %w(eth2 na na PUBLIC)
+    end
+
+    ## Configure Guest Interface
+    xenserver.vm.provision 'shell' do |s|
+      s.path = xenserver_networking_script
+      s.args = %w(eth3 na na GUEST)
+    end
+
+    ## Map host only networks and the adapters
+    xenserver.vm.provider 'virtualbox' do |v|
+      v.customize ['modifyvm', :id, '--nicpromisc2', 'allow-all']
+      v.customize ['modifyvm', :id, '--nicpromisc3', 'allow-all']
+      v.customize ['modifyvm', :id, '--nicpromisc4', 'allow-all']
+      v.customize ['modifyvm', :id, '--hostonlyadapter2', virtualbox_interface_0]
+      v.customize ['modifyvm', :id, '--hostonlyadapter3', virtualbox_interface_1]
+      v.customize ['modifyvm', :id, '--hostonlyadapter4', virtualbox_interface_2]
+      v.customize ['modifyvm', :id, '--memory', 6144]
+    end
+
+    ## Tweak kernel
+    xenserver.vm.provision "shell", inline: "sed -i -e 's/net.bridge.bridge-nf-call-iptables = 1/net.bridge.bridge-nf-call-iptables = 0/g' -e 's/net.bridge.bridge-nf-call-arptables = 1/net.bridge.bridge-nf-call-arptables = 0/g' /etc/sysctl.conf && /sbin/sysctl -p /etc/sysctl.conf"
+  end
+  
+  config.vm.define 'management' do |management|
+    management.vm.box = 'chef/centos-6.5'
+
+    management.vm.network :private_network, :auto_config => true, :ip => '192.168.22.5'
+    management.vm.network :private_network, :auto_config => true, :ip => '192.168.23.5'
+
+    management.vm.network 'forwarded_port', guest: 3306, host: 3306
+    management.vm.network 'forwarded_port', guest: 8080, host: 8080
+
+    management.vm.provider 'virtualbox' do |v|
+      v.customize ['modifyvm', :id, '--memory', 2048]
+      v.customize ['modifyvm', :id, '--hostonlyadapter2', virtualbox_interface_0]
+      v.customize ['modifyvm', :id, '--hostonlyadapter3', virtualbox_interface_1]
+    end
+
+    if Vagrant.has_plugin?('vagrant-cachier')
+      management.cache.scope = :box
+      management.cache.auto_detect = true
+      management.omnibus.cache_packages = true
+    end
+
+    management.omnibus.chef_version = "11.16.4" 
+    management.berkshelf.berksfile_path = File.join(File.dirname(__FILE__), 'Berksfile')
+    management.berkshelf.enabled = true
+
+
+    CHEF_CONFIGURATION = JSON.parse(Pathname(__FILE__).dirname.join('chef_configuration.json').read)
+
+    management.vm.provision :chef_solo do |chef|
+      chef.log_level = :debug
+      chef.run_list = CHEF_CONFIGURATION.delete('run_list')
+      chef.json = CHEF_CONFIGURATION
+    end
+  end
+end

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/66cded75/tools/devcloud4/binary-installation-advanced/chef_configuration.json
----------------------------------------------------------------------
diff --git a/tools/devcloud4/binary-installation-advanced/chef_configuration.json b/tools/devcloud4/binary-installation-advanced/chef_configuration.json
new file mode 100644
index 0000000..ceae5d4
--- /dev/null
+++ b/tools/devcloud4/binary-installation-advanced/chef_configuration.json
@@ -0,0 +1,37 @@
+{
+  "run_list": [
+    "recipe[binary-installation]",
+    "recipe[nat-router]"
+  ],
+  "set_fqdn": "*.localdomain",
+  "selinux": {
+      "state": "permissive"
+  },
+  "cloudstack": {
+      "db": {
+        "user": "cloud",
+        "password": "cloud",
+        "rootusername": "root",
+        "rootpassword": "password",
+        "management_server_key": "password",
+        "database_key": "password",
+        "prefill": "/vagrant/prefill.sql"
+      },
+      "secondary": {
+        "path": "/exports/secondary"
+      },
+      "primary": {
+        "path": "/exports/primary"
+      },
+      "hypervisor_tpl": {
+        "xenserver": "http://packages.shapeblue.com/systemvmtemplate/4.5/systemvm64template-4.5-xen.vhd.bz2"
+      },
+      "configuration": "/vagrant/marvin.cfg.erb",
+      "yum_repo": "http://packages.shapeblue.com/cloudstack/testing/centos/4.5/",
+      "apt_repo": "http://packages.shapeblue.com/cloudstack/testing/debian/4.5/",
+      "version": "4.5.0"
+  },
+  "iptables": {
+    "lans": ["eth1", "eth2"]
+  }
+}

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/66cded75/tools/devcloud4/binary-installation-advanced/marvin.cfg.erb
----------------------------------------------------------------------
diff --git a/tools/devcloud4/binary-installation-advanced/marvin.cfg.erb b/tools/devcloud4/binary-installation-advanced/marvin.cfg.erb
new file mode 100644
index 0000000..6c847fb
--- /dev/null
+++ b/tools/devcloud4/binary-installation-advanced/marvin.cfg.erb
@@ -0,0 +1,123 @@
+#  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.
+#
+
+{
+    "zones": [
+        {
+            "name": "DevCloud-Advanced-01",
+            "guestcidraddress": "10.1.1.0/24",
+            "localstorageenabled": true,
+            "dns1": "8.8.8.8",
+            "physical_networks": [
+                {
+                    "broadcastdomainrange": "Zone",
+                    "vlan": "100-200",
+                    "name": "DevCloud-Network-01",
+                    "traffictypes": [
+                        {
+                            "xen": "GUEST",
+                            "typ": "Guest"
+                        },
+                        {
+                            "xen": "MGMT",
+                            "typ": "Management"
+                        },
+                        {
+                            "xen": "PUBLIC",
+                            "typ": "Public"
+                        }
+                    ],
+                    "providers": [
+                        {
+                            "broadcastdomainrange": "ZONE",
+                            "name": "VirtualRouter"
+                        },
+                        {
+                            "broadcastdomainrange": "ZONE",
+                            "name": "VpcVirtualRouter"
+                        },
+                        {
+                            "broadcastdomainrange": "ZONE",
+                            "name": "InternalLbVm"
+                        }
+                    ],
+                    "isolationmethods": [
+                        "VLAN"
+                    ]
+                }
+            ],
+            "ipranges": [
+                {
+                    "startip": "192.168.23.100",
+                    "endip": "192.168.23.120",
+                    "netmask": "255.255.255.0",
+                    "vlan": "untagged",
+                    "gateway": "192.168.23.5"
+                }
+            ],
+            "networktype": "Advanced",
+            "pods": [
+                {
+                    "startip": "192.168.22.100",
+                    "endip": "192.168.22.120",
+                    "name": "DevCloud-POD-01",
+                    "netmask": "255.255.255.0",
+                    "clusters": [
+                        {
+                            "clustername": "DevCloud-CLUSTER-01",
+                            "hypervisor": "XenServer",
+                            "hosts": [
+                                {
+                                    "username": "root",
+                                    "url": "http://192.168.22.10/",
+                                    "password": "password"
+                                }
+                            ],
+                            "clustertype": "CloudManaged"
+                        }
+                    ],
+                    "gateway": "192.168.22.5"
+                }
+            ],
+            "internaldns1": "8.8.8.8",
+            "secondaryStorages": [
+                {
+                    "url": "nfs://192.168.22.5/exports/secondary",
+                    "provider": "NFS",
+                    "details": [ ]
+                }
+            ]
+        }
+    ],
+    "logger": {
+        "LogFolderPath": "/tmp/"
+    },
+    "mgtSvr": [
+        {
+            "mgtSvrIp": "<%= @management_server_ip %>",
+            "port": <%= @management_server_port %>
+        }
+    ],
+    "dbSvr": {
+        "dbSvr": "<%= @database_server_ip %>",
+        "port": <%= @database_server_port %>,
+        "user": "<%= @database_user %>",
+        "passwd": "<%= @database_password %>",
+        "db": "<%= @database %>"
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/66cded75/tools/devcloud4/binary-installation-basic/Berksfile
----------------------------------------------------------------------
diff --git a/tools/devcloud4/binary-installation-basic/Berksfile b/tools/devcloud4/binary-installation-basic/Berksfile
new file mode 100644
index 0000000..7ad09e1
--- /dev/null
+++ b/tools/devcloud4/binary-installation-basic/Berksfile
@@ -0,0 +1,26 @@
+#
+#  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.
+#
+
+source "https://api.berkshelf.com"
+
+cookbook 'hostname'
+cookbook 'selinux'
+cookbook 'nat-router', git: 'http://github.com/imduffy15/cookbook_nat-router'
+cookbook 'cloudstack', git: 'https://github.com/imduffy15/cookbook_cloudstack-1'
+cookbook 'binary-installation', path: '../common/binary-installation'
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/66cded75/tools/devcloud4/binary-installation-basic/Vagrantfile
----------------------------------------------------------------------
diff --git a/tools/devcloud4/binary-installation-basic/Vagrantfile b/tools/devcloud4/binary-installation-basic/Vagrantfile
new file mode 100644
index 0000000..acc9be7
--- /dev/null
+++ b/tools/devcloud4/binary-installation-basic/Vagrantfile
@@ -0,0 +1,83 @@
+# -*- mode: ruby -*-
+# vi: set ft=ruby :
+#
+#  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.
+#
+
+xenserver_networking_script = File.join(File.dirname(__FILE__), '../common/', 'configure-network.sh')
+
+is_windows = (RUBY_PLATFORM =~ /mswin|mingw|cygwin/)
+
+virtualbox_interface_0 = if is_windows then 'VirtualBox Host-Only Ethernet Adapter' else 'vboxnet0' end
+
+VAGRANTFILE_API_VERSION = '2'
+Vagrant.require_version '>= 1.5.0'
+
+unless Vagrant.has_plugin?('vagrant-berkshelf')
+  raise 'vagrant-berkshelf is not installed!'
+end
+
+unless Vagrant.has_plugin?('vagrant-omnibus')
+  raise 'vagrant-omnibus is not installed!'
+end
+
+Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
+
+  config.vm.define 'xenserver' do |xenserver|
+    xenserver.vm.box = 'duffy/xenserver'
+
+    ## Configure Management Interface
+    xenserver.vm.provision 'shell' do |s|
+      s.path = xenserver_networking_script
+      s.args = %w(eth1 192.168.22.10 255.255.255.0 MGMT)
+    end
+
+    ## Map host only networks and the adapters
+    xenserver.vm.provider 'virtualbox' do |v|
+      v.customize ['modifyvm', :id, '--nicpromisc2', 'allow-all']
+      v.customize ['modifyvm', :id, '--hostonlyadapter2', virtualbox_interface_0]
+      v.customize ['modifyvm', :id, '--memory', 6144]
+    end
+  end
+  
+  config.vm.define 'management' do |management|
+    management.vm.box = 'chef/centos-6.5'
+
+    management.vm.network :private_network, :auto_config => true, :ip => '192.168.22.5'
+
+    management.vm.network 'forwarded_port', guest: 3306, host: 3306
+    management.vm.network 'forwarded_port', guest: 8080, host: 8080
+
+    management.vm.provider 'virtualbox' do |v|
+      v.customize ['modifyvm', :id, '--memory', 2048]
+      v.customize ['modifyvm', :id, '--hostonlyadapter2', virtualbox_interface_0]
+    end
+
+    management.omnibus.chef_version = "11.16.4"
+    management.berkshelf.berksfile_path = File.join(File.dirname(__FILE__), 'Berksfile')
+    management.berkshelf.enabled = true
+
+
+    CHEF_CONFIGURATION = JSON.parse(Pathname(__FILE__).dirname.join('chef_configuration.json').read)
+
+    management.vm.provision :chef_solo do |chef|
+      chef.run_list = CHEF_CONFIGURATION.delete('run_list')
+      chef.json = CHEF_CONFIGURATION
+    end
+  end
+end

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/66cded75/tools/devcloud4/binary-installation-basic/chef_configuration.json
----------------------------------------------------------------------
diff --git a/tools/devcloud4/binary-installation-basic/chef_configuration.json b/tools/devcloud4/binary-installation-basic/chef_configuration.json
new file mode 100644
index 0000000..87464bf
--- /dev/null
+++ b/tools/devcloud4/binary-installation-basic/chef_configuration.json
@@ -0,0 +1,34 @@
+{
+  "run_list": [
+    "recipe[binary-installation]",
+    "recipe[nat-router]"
+  ],
+  "set_fqdn": "*.localdomain",
+  "selinux": {
+      "state": "permissive"
+  },
+  "cloudstack": {
+      "db": {
+        "user": "cloud",
+        "password": "cloud",
+        "rootusername": "root",
+        "rootpassword": "password",
+        "management_server_key": "password",
+        "database_key": "password",
+        "prefill": "/vagrant/prefill.sql"
+      },
+      "secondary": {
+        "path": "/exports/secondary"
+      },
+      "primary": {
+        "path": "/exports/primary"
+      },
+      "hypervisor_tpl": {
+        "xenserver": "http://packages.shapeblue.com/systemvmtemplate/4.5/systemvm64template-4.5-xen.vhd.bz2"
+      },
+      "configuration": "/vagrant/marvin.cfg.erb",
+      "yum_repo": "http://packages.shapeblue.com/cloudstack/testing/centos/4.5/",
+      "apt_repo": "http://packages.shapeblue.com/cloudstack/testing/debian/4.5/",
+      "version": "4.5.0"
+  }
+}

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/66cded75/tools/devcloud4/binary-installation-basic/marvin.cfg.erb
----------------------------------------------------------------------
diff --git a/tools/devcloud4/binary-installation-basic/marvin.cfg.erb b/tools/devcloud4/binary-installation-basic/marvin.cfg.erb
new file mode 100644
index 0000000..62415c9
--- /dev/null
+++ b/tools/devcloud4/binary-installation-basic/marvin.cfg.erb
@@ -0,0 +1,109 @@
+#  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.
+#
+
+{
+    "zones": [
+        {
+            "name": "DevCloud-Basic-01",
+            "enabled": "True",
+            "physical_networks": [
+                {
+                    "broadcastdomainrange": "Zone",
+                    "name": "Devcloud-Network-01",
+                    "traffictypes": [
+                        {
+                            "typ": "Guest"
+                        },
+                        {
+                            "typ": "Management"
+                        }
+                    ],
+                    "providers": [
+                        {
+                            "broadcastdomainrange": "ZONE",
+                            "name": "VirtualRouter"
+                        },
+                        {
+                            "broadcastdomainrange": "Pod",
+                            "name": "SecurityGroupProvider"
+                        }
+                    ]
+                }
+            ],
+            "dns2": "8.8.4.4",
+            "dns1": "8.8.8.8",
+            "securitygroupenabled": "true",
+            "localstorageenabled": "true",
+            "networktype": "Basic",
+            "pods": [
+                {
+                    "endip": "192.168.22.220",
+                    "name": "DevCloud-POD-01",
+                    "startip": "192.168.22.200",
+                    "guestIpRanges": [
+                        {
+                            "startip": "192.168.22.100",
+                            "endip": "192.168.22.199",
+                            "netmask": "255.255.255.0",
+                            "gateway": "192.168.22.5"
+                        }
+                    ],
+                    "netmask": "255.255.255.0",
+                    "clusters": [
+                        {
+                            "clustername": "DevCloud-CLUSTER-01",
+                            "hypervisor": "XenServer",
+                            "hosts": [
+                                {
+                                    "username": "root",
+                                    "url": "http://192.168.22.10/",
+                                    "password": "password"
+                                }
+                            ],
+                            "clustertype": "CloudManaged"
+                        }
+                    ],
+                    "gateway": "192.168.22.5"
+                }
+            ],
+            "internaldns1": "8.8.8.8",
+            "secondaryStorages": [
+                {
+                    "url": "nfs://192.168.22.5/exports/secondary",
+                    "provider": "NFS"
+                }
+            ]
+        }
+    ],
+    "logger": {
+        "LogFolderPath": "/tmp/"
+    },
+    "mgtSvr": [
+        {
+            "mgtSvrIp": "<%= @management_server_ip %>",
+            "port": <%= @management_server_port %>
+        }
+    ],
+    "dbSvr": {
+        "dbSvr": "<%= @database_server_ip %>",
+        "port": <%= @database_server_port %>,
+        "user": "<%= @database_user %>",
+        "passwd": "<%= @database_password %>",
+        "db": "<%= @database %>"
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/66cded75/tools/devcloud4/common/binary-installation/README.md
----------------------------------------------------------------------
diff --git a/tools/devcloud4/common/binary-installation/README.md b/tools/devcloud4/common/binary-installation/README.md
new file mode 100644
index 0000000..e69de29

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/66cded75/tools/devcloud4/common/binary-installation/attributes/database_server.rb
----------------------------------------------------------------------
diff --git a/tools/devcloud4/common/binary-installation/attributes/database_server.rb b/tools/devcloud4/common/binary-installation/attributes/database_server.rb
new file mode 100644
index 0000000..35a388f
--- /dev/null
+++ b/tools/devcloud4/common/binary-installation/attributes/database_server.rb
@@ -0,0 +1,22 @@
+#
+#  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.
+#
+
+default['mysql']['server_root_password'] = node['cloudstack']['db']['rootpassword']
+default['mysql']['allow_remote_root'] = true
+default['mysql']['data_dir'] = '/data/mysql'

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/66cded75/tools/devcloud4/common/binary-installation/attributes/default.rb
----------------------------------------------------------------------
diff --git a/tools/devcloud4/common/binary-installation/attributes/default.rb b/tools/devcloud4/common/binary-installation/attributes/default.rb
new file mode 100644
index 0000000..3b3eba0
--- /dev/null
+++ b/tools/devcloud4/common/binary-installation/attributes/default.rb
@@ -0,0 +1,38 @@
+#
+#  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.
+#
+
+default['cloudstack']['db']['host'] = '127.0.0.1'
+default['cloudstack']['db']['user'] = 'cloud'
+default['cloudstack']['db']['password'] = 'password'
+default['cloudstack']['db']['rootusername'] = 'root'
+default['cloudstack']['db']['rootpassword'] = 'cloud'
+default['cloudstack']['db']['management_server_key'] = 'password'
+default['cloudstack']['db']['database_key'] = 'password'
+default['cloudstack']['db']['prefill'] = '/vagrant/prefill.sql'
+
+default['cloudstack']['secondary']['host'] = node['ipaddress']
+default['cloudstack']['secondary']['path'] = '/data/secondary'
+default['cloudstack']['secondary']['mgt_path'] = node['cloudstack']['secondary']['path']
+
+default['cloudstack']['primary']['host'] = node['ipaddress']
+default['cloudstack']['primary']['path'] = '/data/primary'
+default['cloudstack']['primary']['mgt_path'] = node['cloudstack']['primary']['path']
+
+
+default['cloudstack']['configuration'] = '/vagrant/marvin.cfg.erb'
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/66cded75/tools/devcloud4/common/binary-installation/metadata.rb
----------------------------------------------------------------------
diff --git a/tools/devcloud4/common/binary-installation/metadata.rb b/tools/devcloud4/common/binary-installation/metadata.rb
new file mode 100644
index 0000000..bc2f515
--- /dev/null
+++ b/tools/devcloud4/common/binary-installation/metadata.rb
@@ -0,0 +1,42 @@
+#
+#  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.
+#
+
+name 'binary-installation'
+maintainer 'Ian Duffy'
+maintainer_email 'ian@ianduffy.ie'
+license 'Apache 2'
+description 'Wrapper around several different cookbooks.'
+long_description IO.read(File.join(File.dirname(__FILE__), 'README.md'))
+version '0.1.0'
+
+depends 'mysql', '= 5.6.1'
+depends 'cloudstack', '>= 3.0.0'
+depends 'nfs', '>= 2.0.0'
+
+supports 'centos'
+supports 'redhat'
+supports 'debian'
+supports 'ubuntu'
+supports 'fedora'
+supports 'oracle'
+
+provides 'binary-installation::default'
+provides 'binary-installation::management_server'
+provides 'binary-installation::database_server'
+provides 'binary-installation::nfs_server'

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/66cded75/tools/devcloud4/common/binary-installation/recipes/database_server.rb
----------------------------------------------------------------------
diff --git a/tools/devcloud4/common/binary-installation/recipes/database_server.rb b/tools/devcloud4/common/binary-installation/recipes/database_server.rb
new file mode 100644
index 0000000..28a374c
--- /dev/null
+++ b/tools/devcloud4/common/binary-installation/recipes/database_server.rb
@@ -0,0 +1,24 @@
+#
+#  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.
+#
+
+include_recipe 'mysql::server'
+include_recipe 'mysql::client'
+
+include_recipe 'cloudstack::mysql_conf'
+

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/66cded75/tools/devcloud4/common/binary-installation/recipes/default.rb
----------------------------------------------------------------------
diff --git a/tools/devcloud4/common/binary-installation/recipes/default.rb b/tools/devcloud4/common/binary-installation/recipes/default.rb
new file mode 100644
index 0000000..6dcd47c
--- /dev/null
+++ b/tools/devcloud4/common/binary-installation/recipes/default.rb
@@ -0,0 +1,27 @@
+#
+#  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.
+#
+
+service 'iptables' do
+  action [:disable, :stop]
+  only_if { platform?(%w{redhat centos fedora oracle}) }
+end
+
+include_recipe 'binary-installation::nfsshares'
+include_recipe 'binary-installation::database_server'
+include_recipe 'binary-installation::management_server'
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/66cded75/tools/devcloud4/common/binary-installation/recipes/management_server.rb
----------------------------------------------------------------------
diff --git a/tools/devcloud4/common/binary-installation/recipes/management_server.rb b/tools/devcloud4/common/binary-installation/recipes/management_server.rb
new file mode 100644
index 0000000..742f35f
--- /dev/null
+++ b/tools/devcloud4/common/binary-installation/recipes/management_server.rb
@@ -0,0 +1,57 @@
+#
+#  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.
+#
+
+include_recipe 'cloudstack::marvin'
+include_recipe 'cloudstack::management_server'
+
+cloudstack_setup_database node['cloudstack']['db']['host'] do
+  root_user node['cloudstack']['db']['rootusername']
+  root_password node['cloudstack']['db']['rootpassword']
+  user node['cloudstack']['db']['username']
+  password node['cloudstack']['db']['password']
+  action :create
+end
+
+cloudstack_prefill_database node['cloudstack']['db']['prefill'] do
+  ip node['cloudstack']['db']['host']
+  user node['cloudstack']['db']['username']
+  password node['cloudstack']['db']['password']
+end
+
+cloudstack_system_template 'xenserver' do
+  nfs_path node['cloudstack']['secondary']['path']
+  nfs_server node['cloudstack']['secondary']['host']
+  db_user node['cloudstack']['db']['username']
+  url node['cloudstack']['hypervisor_tpl']['xenserver']
+  db_password node['cloudstack']['db']['password']
+  db_host node['cloudstack']['db']['host']
+  action :create
+end
+
+cloudstack_setup_management node.name
+
+service 'cloudstack-management' do
+  action [:enable, :start]
+end
+
+cloudstack_configure_cloud node['cloudstack']['configuration'] do
+  database_server_ip node['cloudstack']['db']['host']
+  database_user node['cloudstack']['db']['username']
+  database_password node['cloudstack']['db']['password']
+end

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/66cded75/tools/devcloud4/common/binary-installation/recipes/nfsshares.rb
----------------------------------------------------------------------
diff --git a/tools/devcloud4/common/binary-installation/recipes/nfsshares.rb b/tools/devcloud4/common/binary-installation/recipes/nfsshares.rb
new file mode 100644
index 0000000..100eab9
--- /dev/null
+++ b/tools/devcloud4/common/binary-installation/recipes/nfsshares.rb
@@ -0,0 +1,48 @@
+#
+#  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.
+#
+
+include_recipe 'nfs::server'
+
+directory node['cloudstack']['secondary']['path'] do
+  owner 'root'
+  group 'root'
+  action :create
+  recursive true
+end
+
+nfs_export node['cloudstack']['secondary']['path'] do
+  network '*'
+  writeable true
+  sync false
+  options %w(no_root_squash no_subtree_check)
+end
+
+directory node['cloudstack']['primary']['path'] do
+  owner 'root'
+  group 'root'
+  action :create
+  recursive true
+end
+
+nfs_export node['cloudstack']['primary']['path'] do
+  network '*'
+  writeable true
+  sync false
+  options %w(no_root_squash no_subtree_check)
+end

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/66cded75/tools/devcloud4/common/configure-network.sh
----------------------------------------------------------------------
diff --git a/tools/devcloud4/common/configure-network.sh b/tools/devcloud4/common/configure-network.sh
new file mode 100644
index 0000000..dde115d
--- /dev/null
+++ b/tools/devcloud4/common/configure-network.sh
@@ -0,0 +1,37 @@
+#!/bin/bash
+# Usage ./reset-network.sh interface ip netmask
+#
+#  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.
+#
+
+[ $# -lt 3 ] && { echo -e "Missing arguments\nUsage: ./reset-network interface ip netmask label"; exit 1; }
+
+. /etc/xensource-inventory
+
+PIF=$(/usr/bin/xe pif-introduce device=$1 host-uuid=${INSTALLATION_UUID})
+
+NETWORKPIF=$(/usr/bin/xe pif-list uuid=${PIF} params="network-uuid" --minimal)
+/usr/bin/xe network-param-set uuid=${NETWORKPIF} name-label=${4}
+
+if [ ${4} == "MGMT" ]
+then
+	/usr/bin/xe pif-reconfigure-ip uuid=${PIF} mode=static ip=${2} netmask=${3}
+	/usr/bin/xe host-management-reconfigure pif-uuid=${PIF}
+else
+	/usr/bin/xe pif-plug uuid=${PIF}
+fi

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/66cded75/tools/devcloud4/common/development-installation/README.md
----------------------------------------------------------------------
diff --git a/tools/devcloud4/common/development-installation/README.md b/tools/devcloud4/common/development-installation/README.md
new file mode 100644
index 0000000..e69de29

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/66cded75/tools/devcloud4/common/development-installation/attributes/database_server.rb
----------------------------------------------------------------------
diff --git a/tools/devcloud4/common/development-installation/attributes/database_server.rb b/tools/devcloud4/common/development-installation/attributes/database_server.rb
new file mode 100644
index 0000000..314f9c1
--- /dev/null
+++ b/tools/devcloud4/common/development-installation/attributes/database_server.rb
@@ -0,0 +1,22 @@
+#
+#  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.
+#
+
+default['mysql']['server_root_password'] = ''
+default['mysql']['allow_remote_root'] = true
+default['mysql']['data_dir'] = '/data/mysql'

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/66cded75/tools/devcloud4/common/development-installation/attributes/default.rb
----------------------------------------------------------------------
diff --git a/tools/devcloud4/common/development-installation/attributes/default.rb b/tools/devcloud4/common/development-installation/attributes/default.rb
new file mode 100644
index 0000000..705423b
--- /dev/null
+++ b/tools/devcloud4/common/development-installation/attributes/default.rb
@@ -0,0 +1,29 @@
+#
+#  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.
+#
+
+default['cloudstack']['secondary']['host'] = node['ipaddress']
+default['cloudstack']['secondary']['path'] = '/data/secondary'
+default['cloudstack']['secondary']['mgt_path'] = node['cloudstack']['secondary']['path']
+
+default['cloudstack']['primary']['host'] = node['ipaddress']
+default['cloudstack']['primary']['path'] = '/data/primary'
+default['cloudstack']['primary']['mgt_path'] = node['cloudstack']['primary']['path']
+
+default['cloudstack']['cloud-install-sys-tmplt'] = "#{Chef::Config['file_cache_path']}/cloud-install-sys-tmplt"
+default['cloudstack']['createtmplt'] = "#{Chef::Config['file_cache_path']}/createtmplt.sh"
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/66cded75/tools/devcloud4/common/development-installation/files/default/cloud-install-sys-tmplt
----------------------------------------------------------------------
diff --git a/tools/devcloud4/common/development-installation/files/default/cloud-install-sys-tmplt b/tools/devcloud4/common/development-installation/files/default/cloud-install-sys-tmplt
new file mode 100755
index 0000000..313b599
--- /dev/null
+++ b/tools/devcloud4/common/development-installation/files/default/cloud-install-sys-tmplt
@@ -0,0 +1,288 @@
+#!/usr/bin/env bash
+# $Id: installrtng.sh 11251 2010-07-23 23:40:44Z abhishek $ $HeadURL: svn://svn.lab.vmops.com/repos/vmdev/java/scripts/storage/secondary/installrtng.sh $
+
+# 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.
+
+
+usage() {
+  printf "Usage: %s: -m <secondary storage mount point> -f <system vm template file> [-h <hypervisor name: kvm|vmware|xenserver|hyperv> ] [ -s <mgmt server secret key, if you specified any when running cloudstack-setup-database, default is password>][-u <Url to system vm template>] [-F <clean up system templates of specified hypervisor>] [-e <Template suffix, e.g vhd, ova, qcow2>] [-o <Database server hostname or ip, e.g localhost>] [-r <Database user name, e.g root>] [-d <Database password. Fllowed by nothing if the password is empty>]\n" $(basename $0) >&2
+  printf "or\n" >&2
+  printf "%s: -m <secondary storage mount point> -u <http url for system vm template> [-h <hypervisor name: kvm|vmware|xenserver|hyperv> ] [ -s <mgmt server secret key>]\n" $(basename $0) >&2
+}
+
+failed() {
+  echo "Installation failed"
+  exit $1
+}
+#set -x
+mflag=
+fflag=
+ext="vhd"
+templateId=
+hyper=
+msKey=password
+DISKSPACE=5120000  #free disk space required in kilobytes
+dbHost=
+dbUser=
+dbPassword=
+name=
+jasypt='/usr/share/cloudstack-common/lib/jasypt-1.9.0.jar'
+while getopts 'm:h:f:u:Ft:e:s:o:r:d:n:' OPTION
+do
+  case $OPTION in
+  m)	mflag=1
+		mntpoint="$OPTARG"
+		;;
+  f)	fflag=1
+		tmpltimg="$OPTARG"
+		;;
+  u)	uflag=1
+		url="$OPTARG"
+		;;
+  F)	Fflag=1 ;;
+  t)    templateId="$OPTARG"
+  		;;
+  e)    ext="$OPTARG"
+  		;;
+  h)    hyper="$OPTARG"
+  		;;
+  s)    sflag=1
+		msKey="$OPTARG"
+                ;;
+  o)    oflag=1
+        dbHost="$OPTARG"
+                ;;
+  r)    rflag=1
+        dbUser="$OPTARG"
+                ;;
+  d)    dflag=1
+        dbPassword="$OPTARG"
+                ;;
+  n)    nflag=1
+        name="$OPTARG"
+                ;;
+  ?)	usage
+		failed 2
+		;;
+  esac
+done
+
+if [[ "$mflag$fflag" != "11"  && "$mflag$uflag" != "11" ]]
+then
+  usage
+  failed 2
+fi
+
+if [ -z "$hyper" ]
+then
+  usage
+  failed 2
+fi
+
+if [ ! -d $mntpoint ] 
+then
+  echo "mount point $mntpoint doesn't exist\n"
+  failed 4
+fi
+
+if [[ "$fflag" == "1" && ! -f $tmpltimg ]] 
+then
+  echo "template image file $tmpltimg doesn't exist"
+  failed 3
+fi
+
+
+if [ "$oflag" != 1 ]; then
+    dbHost=$(sed '/^\#/d' /etc/cloudstack/management/db.properties | grep 'db.cloud.host'  | tail -n 1 | cut -d "=" -f2- | sed 's/^[[:space:]]*//;s/[[:space:]]*$//')
+fi
+if [ "$rflag" != 1 ]; then
+    dbUser=$(sed '/^\#/d' /etc/cloudstack/management/db.properties | grep 'db.cloud.username'  | tail -n 1 | cut -d "=" -f2- | sed 's/^[[:space:]]*//;s/[[:space:]]*$//')
+fi
+
+if [ -f /etc/cloudstack/management/db.properties ]; then
+    encType=$(sed '/^\#/d' /etc/cloudstack/management/db.properties | grep 'db.cloud.encryption.type'  | tail -n 1 | cut -d "=" -f2- | sed 's/^[[:space:]]*//;s/[[:space:]]*$//')
+    if [ "$encType" == "file" ]
+    then
+        msKey=$(cat /etc/cloudstack/management/key)
+    elif [ "$encType" == "web" ]
+    then
+        if [ ! "$sflag" == "1" ]
+        then
+            echo "Encryption type web requires mgmt secret key using -s option"
+            failed 9
+        fi
+    fi
+fi
+
+if [[ "$encType" == "file" || "$encType" == "web" ]]
+then
+	encPassword=$(sed '/^\#/d' /etc/cloudstack/management/db.properties | grep 'db.cloud.password'  | tail -n 1 | cut -d "=" -f2- | sed 's/^[[:space:]]*//;s/[[:space:]]*$//'i | sed 's/^ENC(\(.*\))/\1/')
+	if [ ! $encPassword == "" ]
+	then
+		dbPassword=(`java -classpath $jasypt org.jasypt.intf.cli.JasyptPBEStringDecryptionCLI decrypt.sh input=$encPassword password=$msKey verbose=false`)
+		if [ ! $dbPassword ]
+		then
+			echo "Failed to decrypt DB password from db.properties"
+			failed 9
+		fi
+	fi
+else
+    if [ "$dflag" != 1 ]; then
+        dbPassword=$(sed '/^\#/d' /etc/cloudstack/management/db.properties | grep 'db.cloud.password'  | tail -n 1 | cut -d "=" -f2- | sed 's/^[[:space:]]*//;s/[[:space:]]*$//'i )
+    fi
+fi
+
+if [ "$templateId" == "" ]
+then
+   if [ "$hyper" == "kvm" ]
+   then
+      ext="qcow2"
+      templateId=(`mysql -h $dbHost --user=$dbUser --password=$dbPassword --skip-column-names -U cloud -e "select max(id) from cloud.vm_template where type = \"SYSTEM\" and hypervisor_type = \"KVM\" and removed is null"`)
+   elif [ "$hyper" == "xenserver" ]
+   then
+      ext="vhd"
+      templateId=(`mysql -h $dbHost --user=$dbUser --password=$dbPassword --skip-column-names -U cloud -e "select max(id) from cloud.vm_template where type = \"SYSTEM\" and hypervisor_type = \"XenServer\" and removed is null"`)
+   elif [ "$hyper" == "vmware" ]
+   then
+      ext="ova"
+      templateId=(`mysql -h $dbHost --user=$dbUser --password=$dbPassword --skip-column-names -U cloud -e "select max(id) from cloud.vm_template where type = \"SYSTEM\" and hypervisor_type = \"VMware\" and removed is null"`)
+   elif [ "$hyper" == "lxc" ]
+   then
+      ext="qcow2"
+      templateId=(`mysql -h $dbHost --user=$dbUser --password=$dbPassword --skip-column-names -U cloud -e "select max(id) from cloud.vm_template where type = \"SYSTEM\" and hypervisor_type = \"LXC\" and removed is null"`)
+   elif [ "$hyper" == "hyperv" ]
+   then
+      ext="vhd"
+      templateId=(`mysql -h $dbHost --user=$dbUser --password=$dbPassword --skip-column-names -U cloud -e "select max(id) from cloud.vm_template where type = \"SYSTEM\" and hypervisor_type = \"Hyperv\" and removed is null"`)
+   else
+      usage
+      failed 2
+   fi
+fi
+
+if [ ! $templateId ]
+then
+	echo "Unable to get template Id from database"
+	failed 8
+fi
+
+localfile=$(uuidgen).$ext
+
+mntpoint=`echo "$mntpoint" | sed 's|/*$||'`
+
+destdir=$mntpoint/template/tmpl/1/$templateId/
+
+mkdir -p $destdir
+if [ $? -ne 0 ]
+then
+  printf "Failed to write to mount point $mntpoint -- is it mounted?\n"
+  failed 3
+fi
+
+if [ "$Fflag" == "1" ]
+then
+  rm -rf $destdir/*
+  if [ $? -ne 0 ]
+  then
+    echo "Failed to clean up template directory $destdir -- check permissions?"
+    failed 2
+  fi
+fi
+
+if [ -f $destdir/template.properties ]
+then
+  echo "Data already exists at destination $destdir -- use -F to force cleanup of old template"
+  echo "IF YOU ARE ATTEMPTING AN UPGRADE, YOU MAY NEED TO SPECIFY A TEMPLATE ID USING THE -t FLAG"
+  failed 4
+fi
+
+destvhdfiles=$(find $destdir -name \*.$ext)
+if [ "$destvhdfiles" != "" ]
+then
+  echo "Data already exists at destination $destdir -- use -F to force cleanup of old template"
+  failed 5
+fi
+
+tmpfile=$(dirname $0)/$localfile
+
+touch $tmpfile
+if [ $? -ne 0 ]
+then
+  printf "Failed to create temporary file in directory $(dirname $0) -- is it read-only or full?\n"
+  failed 4
+fi
+
+destcap=$(df -P $destdir | awk '{print $4}' | tail -1 )
+[ $destcap -lt $DISKSPACE ] && echo "Insufficient free disk space for target folder $destdir: avail=${destcap}k req=${DISKSPACE}k" && failed 4
+
+localcap=$(df -P $(dirname $0) | awk '{print $4}' | tail -1 )
+[ $localcap -lt $DISKSPACE ] && echo "Insufficient free disk space for local temporary folder $(dirname $0): avail=${localcap}k req=${DISKSPACE}k" && failed 4
+
+if [ "$uflag" == "1" ]
+then
+  wget -O $tmpfile $url
+  if [ $? -ne 0 ]
+  then
+    echo "Failed to fetch system vm template from $url"
+    failed 5
+  fi
+fi
+
+
+if [ "$fflag" == "1" ]
+then
+  cp $tmpltimg $tmpfile
+  if [ $? -ne 0 ]
+  then
+    printf "Failed to create temporary file in directory $(dirname $0) -- is it read-only or full?\n"
+    failed 6
+  fi
+fi
+
+
+installrslt=$($(dirname $0)/createtmplt.sh -s 2 -d 'SystemVM Template' -n $localfile -t $destdir/ -f $tmpfile -u -v)
+
+if [ $? -ne 0 ]
+then
+  echo "Failed to install system vm template $tmpltimg to $destdir: $installrslt"
+  failed 7
+fi
+
+if [ "$nflag" != "1" ]
+then
+  uniquename=routing-$templateId
+fi
+
+if [ "$ext" == "ova" ]
+then
+  tar xvf $destdir/$localfile -C $destdir &> /dev/null
+fi
+
+tmpltfile=$destdir/$localfile
+tmpltsize=$(ls -l $tmpltfile| awk -F" " '{print $5}')
+
+echo "$ext=true" >> $destdir/template.properties
+echo "id=$templateId" >> $destdir/template.properties
+echo "public=true" >> $destdir/template.properties
+echo "$ext.filename=$localfile" >> $destdir/template.properties
+echo "uniquename=$uniquename" >> $destdir/template.properties
+echo "$ext.virtualsize=$tmpltsize" >> $destdir/template.properties
+echo "virtualsize=$tmpltsize" >> $destdir/template.properties
+echo "$ext.size=$tmpltsize" >> $destdir/template.properties
+
+echo "Successfully installed system VM template $tmpltimg to $destdir"