Skip to content

Commit

Permalink
Added git and pip functions to be used in the new nova module
Browse files Browse the repository at this point in the history
  • Loading branch information
Bogdan Gaza committed Dec 30, 2011
1 parent 249ecf3 commit 8a52af9
Show file tree
Hide file tree
Showing 3 changed files with 106 additions and 1 deletion.
55 changes: 54 additions & 1 deletion manifests/util.pp
Expand Up @@ -40,7 +40,7 @@
path => "/bin:/usr/bin",
refreshonly => true,
subscribe => User[$username],
unless => "cat /etc/shadow | grep $username| cut -f 2 -d : | grep -v '!'",
unless => "cat /etc/shadow | grep $username | cut -f 2 -d : | grep -v '!'",
require => [Class["tools"],User[$username]]
}

Expand Down Expand Up @@ -69,3 +69,56 @@
}
} # create_user

define git::clone( $source,
$localtree = "/opt/stack/",
$real_name = false,
$branch = false) {
if $real_name {
$_name = $real_name
}
else {
$_name = $name
}

exec { "git_clone_exec_$localtree/$_name":
path => "/bin:/usr/bin",
cwd => $localtree,
command => "git clone $source $_name",
unless => "test -d $localtree/$_name",
timeout => 0
}

case $branch {
false: {}
default: {
exec { "git_clone_checkout_$branch_$localtree/$_name":
path => "/bin:/usr/bin",
cwd => "$localtree",
command => "git checkout --track -b $branch origin/$branch",
unless => "test -d $localtree/$_name",
timeout => 0
}
}
}
}

define pip($ensure = installed) {
case $ensure {
installed: {
exec { "pip install $name":
path => "/usr/local/bin:/usr/bin:/bin",
environment => "PIP_DOWNLOAD_CACHE=/var/cache/pip"
}
}
latest: {
exec { "pip install --upgrade $name":
path => "/usr/local/bin:/usr/bin:/bin",
}
}
default: {
exec { "pip install $name==$ensure":
path => "/usr/local/bin:/usr/bin:/bin",
}
}
}
}
5 changes: 5 additions & 0 deletions modules/nova/manifests/init.pp
@@ -0,0 +1,5 @@
class nova {
require "nova-common"

include nova::install
}
47 changes: 47 additions & 0 deletions modules/nova/manifests/install.pp
@@ -0,0 +1,47 @@
class nova::install {

require 'mysql'
require 'rabbitmq'

$nova_packages = [ "lvm2", "open-iscsi", "open-iscsi-utils" ]
$nova_baseline = ["dnsmasq-base", "dnsmasq-utils", "kpartx", "parted", "arping", "iputils-arping", "python-mysqldb", "python-xattr", "python-lxml", "gawk", "iptables", "ebtables", "sqlite3", "sudo", "kvm", "vlan", "socat", "python-mox", "python-paste", "python-migrate", "python-gflags", "python-libvirt", "python-libxml2", "python-routes", "python-netaddr", "python-pastedeploy", "python-eventlet", "python-cheetah", "python-carrot", "python-tempita", "python-sqlalchemy", "python-suds", "python-lockfile", "python-m2crypto", "python-boto", "python-kombu", "python-feedparser"]

package { $nova_packages :
ensure => latest
}

package { $nova_baseline :
ensure => latest
}

git::clone { "nova" :
source => "https://github.com/openstack/nova.git",
real_name => "nova",
localtree => "/opt/stack",
branch => "master"
}

git::clone { "nova-client" :
source => "https://github.com/openstack/python-novaclient.git",
real_name => "python-novaclient",
localtree => "/opt/stack",
branch => "master"
}

exec { "python-install-nova-client":
path => "/usr/local/bin:/usr/bin:/bin",
cwd => "/opt/stack/python-novaclient",
command => "python setup.py develop",
timeout => 0,
require => Package["build-essential"]
}

exec { "python-install-nova":
path => "/usr/local/bin:/usr/bin:/bin",
cwd => "/opt/stack/nova",
command => "python setup.py develop",
timeout => 0,
require => Package["build-essential"]
}

}

0 comments on commit 8a52af9

Please sign in to comment.