Skip to content

Commit

Permalink
optionally merge secrets.host.json with secrets.json if it exists.
Browse files Browse the repository at this point in the history
  • Loading branch information
toolness committed Sep 2, 2011
1 parent f393dcf commit a0665de
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 5 deletions.
2 changes: 1 addition & 1 deletion fabfile/deployment.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
MY_DIR = os.path.dirname(__file__)

def deploy(server):
secrets.build_secrets_manifest()
secrets.build_secrets_manifest(server)

# We're going to have to use tar here instead of git archive,
# as git archive doesn't deal with submodules and the
Expand Down
6 changes: 4 additions & 2 deletions fabfile/jsbin.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,8 @@
def backup():
"retrieve an SQL dump of webpad/jsbin data"

run('mysqldump -u jsbin -p%(jsbin_pw)s jsbin > jsbin.sql' % secrets)
pw = secrets.load_secrets(env['host'])['jsbin_pw']
run('mysqldump -u jsbin -p%s jsbin > jsbin.sql' % pw)
get('jsbin.sql', 'jsbin.%(host)s.dump.sql')
run('rm jsbin.sql')

Expand All @@ -17,5 +18,6 @@ def restore(filename=None):
if filename is None:
filename = 'jsbin.%(host)s.dump.sql' % env
put(filename, 'jsbin.sql')
run('mysql -u jsbin -p%(jsbin_pw)s jsbin < jsbin.sql' % secrets)
pw = secrets.load_secrets(env['host'])['jsbin_pw']
run('mysql -u jsbin -p%s jsbin < jsbin.sql' % pw)
run('rm jsbin.sql')
11 changes: 9 additions & 2 deletions fabfile/secrets.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,13 @@
def path(*x):
return os.path.join(ROOT, *x)

secrets = json.load(open(path('..', 'secrets.json')))
def load_secrets(host=None):
secrets = json.load(open(path('..', 'secrets.json')))
if host is not None:
host_filename = path('..', 'secrets.%s.json' % host)
if os.path.exists(host_filename):
secrets.update(json.load(open(host_filename)))
return secrets

def _make_manifest_text(secrets):
lines = ["class secrets {"]
Expand All @@ -16,10 +22,11 @@ def _make_manifest_text(secrets):
lines.append("}")
return "\n".join(lines)

def build_secrets_manifest():
def build_secrets_manifest(host=None):
dirname = path("..", "modules", "secrets", "manifests")
filename = os.path.join(dirname, "init.pp")
mkpath(dirname)
secrets = load_secrets(host)
open(filename, 'w').write(_make_manifest_text(secrets))
print "generated %s" % filename

Expand Down

0 comments on commit a0665de

Please sign in to comment.