Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel Narvaez <dwnarvaez@gmail.com>2013-01-08 17:28:34 (GMT)
committer Daniel Narvaez <dwnarvaez@gmail.com>2013-01-08 17:28:34 (GMT)
commitf32a342323e279a2b04158b81f7245c2ef1ed764 (patch)
treee3b3047f301505ac1ac4855263892fce52bdb44b
parent58ee57573bd6a26cd1a4f8cc864a265103b2f0ac (diff)
Setup separate sandboxes for production/testing
-rw-r--r--fabfile/common.py8
-rw-r--r--fabfile/master.py17
-rw-r--r--fabfile/slave.py15
3 files changed, 21 insertions, 19 deletions
diff --git a/fabfile/common.py b/fabfile/common.py
index e4ca44b..55bbf65 100644
--- a/fabfile/common.py
+++ b/fabfile/common.py
@@ -4,6 +4,7 @@ from fabric.api import local
instances = {"production":
{"master_dir": "master",
"slave_dir": "slave",
+ "sandbox_dir": "sandbox",
"config":
{"distribute": True,
"nightly_builds": True,
@@ -13,6 +14,7 @@ instances = {"production":
"testing":
{"master_dir": "master-testing",
"slave_dir": "slave-testing",
+ "sandbox_dir": "sandbox-testing",
"config":
{"branch": "testing",
"check_system": False,
@@ -31,11 +33,13 @@ slaves = {"buildbot@debian-wheezy-32bit.local": "debian-wheezy-32bit",
slave_gateway = "dnarvaez@bender.sugarlabs.org"
-activate_virtualenv = "source sandbox/bin/activate"
-
_instance_name = None
+def get_virtualenv_activate(instance_name):
+ return "source %s/bin/activate" % instances[instance_name][sandbox_dir]
+
+
def get_instance_name():
global _instance_name
diff --git a/fabfile/master.py b/fabfile/master.py
index dda6da8..d46f6ef 100644
--- a/fabfile/master.py
+++ b/fabfile/master.py
@@ -20,12 +20,11 @@ from common import slaves
from common import slave_gateway
from common import instances
from common import get_instance_name
+from common import get_virtualenv_activate
repos = ["git://git.sugarlabs.org/sugar-buildbot/sugar-buildbot.git",
"git://git.sugarlabs.org/sugar-build/sugar-build.git"]
-activate_virtualenv = "source ~/sandbox/bin/activate"
-
env.roledefs["master"] = ["dnarvaez@shell.sugarlabs.org"]
master_settings = {"sudo_user": "buildbot",
@@ -38,10 +37,10 @@ master_settings = {"sudo_user": "buildbot",
def create(instance_name=get_instance_name()):
instance_info = instances[instance_name]
- sudo("rm -rf ~/sandbox")
- sudo("virtualenv ~/sandbox")
+ sudo("rm -rf ~/%s" % instance_info["sandbox_dir"])
+ sudo("virtualenv ~/%s" % instance_info["sandbox_dir"])
- with prefix(activate_virtualenv):
+ with prefix(get_virtualenv_activate(instance_name)):
sudo("pip install SQLAlchemy==0.7.9")
sudo("pip install buildbot")
@@ -58,7 +57,7 @@ def create(instance_name=get_instance_name()):
def update(instance_name=get_instance_name()):
instance_info = instances[instance_name]
- with prefix(activate_virtualenv):
+ with prefix(get_virtualenv_activate(instance_name)):
sudo("rm -rf ~/git")
sudo("mkdir ~/git")
@@ -106,7 +105,7 @@ def configure(instance_name=get_instance_name()):
@roles("master")
@with_settings(**master_settings)
def start(instance_name=get_instance_name()):
- with prefix(activate_virtualenv):
+ with prefix(get_virtualenv_activate(instance_name)):
sudo("buildbot start ~/%s" % instances[instance_name]["master_dir"])
@@ -114,7 +113,7 @@ def start(instance_name=get_instance_name()):
@roles("master")
@with_settings(**master_settings)
def stop(instance_name=get_instance_name()):
- with prefix(activate_virtualenv):
+ with prefix(get_virtualenv_activate(instance_name)):
sudo("buildbot stop ~/%s" % instances[instance_name]["master_dir"])
@@ -122,5 +121,5 @@ def stop(instance_name=get_instance_name()):
@roles("master")
@with_settings(**master_settings)
def restart(instance_name=get_instance_name()):
- with prefix(activate_virtualenv):
+ with prefix(get_virtualenv_activate(instance_name)):
sudo("buildbot restart ~/%s" % instances[instance_name]["master_dir"])
diff --git a/fabfile/slave.py b/fabfile/slave.py
index e441eb9..0faba47 100644
--- a/fabfile/slave.py
+++ b/fabfile/slave.py
@@ -14,7 +14,7 @@ from fabric.api import with_settings
from common import slaves
from common import slave_gateway
from common import instances
-from common import activate_virtualenv
+from common import get_virtualenv_activate
from common import get_instance_name
@@ -31,14 +31,13 @@ settings = {"gateway": slave_gateway}
def create(instance_name=get_instance_name()):
instance_info = instances[instance_name]
- run("rm -rf sandbox")
-
- run("virtualenv --system-site-packages sandbox")
+ run("rm -rf %s" % instance_info["sandbox_dir"])
+ run("virtualenv --system-site-packages %s" % instance_info["sandbox_dir"])
chars = string.ascii_lowercase + string.ascii_uppercase + string.digits
password = ''.join(random.choice(chars) for x in range(16))
- with prefix(activate_virtualenv):
+ with prefix(get_virtualenv_activate(instance_name)):
run("pip install buildbot-slave")
name = slaves[env.host_string]
@@ -61,7 +60,7 @@ def create(instance_name=get_instance_name()):
@roles("slave")
@with_settings(**settings)
def start(instance_name=get_instance_name()):
- with prefix(activate_virtualenv):
+ with prefix(get_virtualenv_activate(instance_name)):
run("buildslave start %s" % instances[instance_name]["slave_dir"])
@@ -69,7 +68,7 @@ def start(instance_name=get_instance_name()):
@roles("slave")
@with_settings(**settings)
def stop(instance_name=get_instance_name()):
- with prefix(activate_virtualenv):
+ with prefix(get_virtualenv_activate(instance_name)):
run("buildslave stop %s" % instances[instance_name]["slave_dir"])
@@ -77,5 +76,5 @@ def stop(instance_name=get_instance_name()):
@roles("slave")
@with_settings(**settings)
def restart(instance_name=get_instance_name()):
- with prefix(activate_virtualenv):
+ with prefix(get_virtualenv_activate(instance_name)):
run("buildslave restart %s" % instances[instance_name]["slave_dir"])