Jeff Marcom has proposed merging 
lp:~jeffmarcom/cloud-testing/add-vagrant-bootstrap-testing-node into 
lp:cloud-testing/cloudbox.

Requested reviews:
  Cloud Certification (cloud-certification-team)

For more details, see:
https://code.launchpad.net/~jeffmarcom/cloud-testing/add-vagrant-bootstrap-testing-node/+merge/191094

This adds another Vagrant VM provisioning process to cloudbox source tree. The 
idea is that this (as of now will just install the cloudbox package for 
testing). A future merge request will include running a test case that adds the 
Vagrant VM as a node in a pre-installed/configured MAAS deployment, which will 
in turn function as the the juju bootstrap node for testing purposes.

Usage:

For cloudbox development with devstack simply:
vagrant up cloudbox_development
For a base testing VM/bootstrap Node:
vagrant up ubuntu_cloud_testing.
-- 
https://code.launchpad.net/~jeffmarcom/cloud-testing/add-vagrant-bootstrap-testing-node/+merge/191094
Your team Cloud Certification is requested to review the proposed merge of 
lp:~jeffmarcom/cloud-testing/add-vagrant-bootstrap-testing-node into 
lp:cloud-testing/cloudbox.
=== modified file 'Vagrantfile'
--- Vagrantfile	2013-08-20 04:36:18 +0000
+++ Vagrantfile	2013-10-15 04:02:11 +0000
@@ -6,98 +6,28 @@
   # options are documented and commented below. For a complete reference,
   # please see the online documentation at vagrantup.com.
 
-  config.vm.share_folder "cloudbox", "/tmp/source", "../cloudbox" 
-  config.vm.customize ["modifyvm", :id, "--memory", 4096]
-  config.vm.customize ["modifyvm", :id, "--cpus", 4]
-  # Every Vagrant virtual environment requires a box to build off of.
-  config.vm.box = "cloudbox"
-  config.vm.provision :shell, :path => "vagrant_test.sh"
-
-  # The url from where the 'config.vm.box' box will be fetched if it
-  # doesn't already exist on the user's system.
-  config.vm.box_url = "http://files.vagrantup.com/precise64.box";
-
-  # Boot with a GUI so you can see the screen. (Default is headless)
-  # config.vm.boot_mode = :gui
-
-  # Assign this VM to a host-only network IP, allowing you to access it
-  # via the IP. Host-only networks can talk to the host machine as well as
-  # any other machines on the same network, but cannot be accessed (through this
-  # network interface) by any external networks.
-  # config.vm.network :hostonly, "192.168.33.10"
-
-  # Assign this VM to a bridged network, allowing you to connect directly to a
-  # network using the host's network device. This makes the VM appear as another
-  # physical device on your network.
-  config.vm.network :bridged
-
-  # Forward a port from the guest to the host, which allows for outside
-  # computers to access the VM, whereas host only networking does not.
-  # config.vm.forward_port 80, 8080
-
-  # Share an additional folder to the guest VM. The first argument is
-  # an identifier, the second is the path on the guest to mount the
-  # folder, and the third is the path on the host to the actual folder.
-  # config.vm.share_folder "v-data", "/vagrant_data", "../data"
-
-  # Enable provisioning with Puppet stand alone.  Puppet manifests
-  # are contained in a directory path relative to this Vagrantfile.
-  # You will need to create the manifests directory and a manifest in
-  # the file cloudbox.pp in the manifests_path directory.
-  #
-  # An example Puppet manifest to provision the message of the day:
-  #
-  # # group { "puppet":
-  # #   ensure => "present",
-  # # }
-  # #
-  # # File { owner => 0, group => 0, mode => 0644 }
-  # #
-  # # file { '/etc/motd':
-  # #   content => "Welcome to your Vagrant-built virtual machine!
-  # #               Managed by Puppet.\n"
-  # # }
-  #
-  # config.vm.provision :puppet do |puppet|
-  #   puppet.manifests_path = "manifests"
-  #   puppet.manifest_file  = "cloudbox.pp"
-  # end
-
-  # Enable provisioning with chef solo, specifying a cookbooks path, roles
-  # path, and data_bags path (all relative to this Vagrantfile), and adding 
-  # some recipes and/or roles.
-  #
-  # config.vm.provision :chef_solo do |chef|
-  #   chef.cookbooks_path = "../my-recipes/cookbooks"
-  #   chef.roles_path = "../my-recipes/roles"
-  #   chef.data_bags_path = "../my-recipes/data_bags"
-  #   chef.add_recipe "mysql"
-  #   chef.add_role "web"
-  #
-  #   # You may also specify custom JSON attributes:
-  #   chef.json = { :mysql_password => "foo" }
-  # end
-
-  # Enable provisioning with chef server, specifying the chef server URL,
-  # and the path to the validation key (relative to this Vagrantfile).
-  #
-  # The Opscode Platform uses HTTPS. Substitute your organization for
-  # ORGNAME in the URL and validation key.
-  #
-  # If you have your own Chef Server, use the appropriate URL, which may be
-  # HTTP instead of HTTPS depending on your configuration. Also change the
-  # validation key to validation.pem.
-  #
-  # config.vm.provision :chef_client do |chef|
-  #   chef.chef_server_url = "https://api.opscode.com/organizations/ORGNAME";
-  #   chef.validation_key_path = "ORGNAME-validator.pem"
-  # end
-  #
-  # If you're using the Opscode platform, your validator client is
-  # ORGNAME-validator, replacing ORGNAME with your organization name.
-  #
-  # IF you have your own Chef Server, the default validation client name is
-  # chef-validator, unless you changed the configuration.
-  #
-  #   chef.validation_client_name = "ORGNAME-validator"
+  # Define an environment for devstack
+  config.vm.define :cloudbox_development do |cloudbox_development| 
+    cloudbox_development.vm.share_folder "cloudbox", "/tmp/source", "../cloudbox" 
+    cloudbox_development.vm.customize ["modifyvm", :id, "--memory", 4096]
+    cloudbox_development.vm.customize ["modifyvm", :id, "--cpus", 4]
+
+    cloudbox_development.vm.box = "cloudbox_development"
+    cloudbox_development.vm.provision :shell, :path => "test_with_devstack.sh"
+    cloudbox_development.vm.box_url = "http://files.vagrantup.com/precise64.box";
+
+    cloudbox_development.vm.network :bridged
+  end
+  # Define an environment for Ubuntu Cloud Test Suite
+  config.vm.define :ubuntu_cloud_testing do |ubuntu_cloud_testing| 
+    ubuntu_cloud_testing.vm.share_folder "cloudbox", "/tmp/source", "../cloudbox" 
+    ubuntu_cloud_testing.vm.customize ["modifyvm", :id, "--memory", 4096]
+    ubuntu_cloud_testing.vm.customize ["modifyvm", :id, "--cpus", 4]
+
+    ubuntu_cloud_testing.vm.box = "ubuntu_cloud_testing"
+    ubuntu_cloud_testing.vm.provision :shell, :path => "ubuntu_cloud_testing.sh"
+    ubuntu_cloud_testing.vm.box_url = "http://files.vagrantup.com/precise64.box";
+
+    config.vm.network :bridged
+  end
 end

=== renamed file 'vagrant_test.sh' => 'test_with_devstack.sh'
=== added file 'ubuntu_cloud_testing.sh'
--- ubuntu_cloud_testing.sh	1970-01-01 00:00:00 +0000
+++ ubuntu_cloud_testing.sh	2013-10-15 04:02:11 +0000
@@ -0,0 +1,28 @@
+#!/usr/bin/env bash
+apt-get update
+
+install_toolset(){
+   echo "Installing toolset"
+   apt-get install git bzr dpkg-dev expect python-software-properties vim -y
+}
+
+install_cloudbox(){
+    cp -r /tmp/source /cloudbox
+    cd /cloudbox
+
+    # Install ppa for dependencies
+    add-apt-repository ppa:cloud-certification-team/cloud-testing-ppa -y
+    apt-get update
+
+    # Get build dependencies
+    apt-get install dh-translations po-debconf python-distutils-extra python-setuptools python3-setuptools python3-all python3-distutils-extra python3-gi python3-pkg-resources -y
+    dpkg-buildpackage
+    dpkg -i install ../cloudbox*deb
+    apt-get install -f -y
+    cd -
+}
+
+install_toolset
+install_cloudbox
+echo "Finished bootstrap"
+

-- 
Mailing list: https://launchpad.net/~cloud-certification-team
Post to     : cloud-certification-team@lists.launchpad.net
Unsubscribe : https://launchpad.net/~cloud-certification-team
More help   : https://help.launchpad.net/ListHelp

Reply via email to