Skip to content

Commit 5ef1c0a

Browse files
author
Matthew Fisher
committed
Merge pull request #1168 from deis/499-git-repo
fix(builder): delete the git repo on `apps:destroy`
2 parents 0b5810d + f15b923 commit 5ef1c0a

6 files changed

Lines changed: 50 additions & 0 deletions

File tree

builder/conf.d/check-repos.toml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
[template]
2+
src = "check-repos"
3+
dest = "/home/git/check-repos"
4+
uid = 0
5+
gid = 0
6+
mode = "0755"
7+
keys = [
8+
"/deis/services",
9+
]
10+
reload_cmd = "/home/git/check-repos"

builder/templates/check-repos

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
#!/usr/bin/env bash
2+
3+
listcontains() {
4+
for word in $1; do
5+
[[ $word = $2 ]] && return 0
6+
done
7+
return 1
8+
}
9+
10+
cd $(dirname $0) # absolute path
11+
12+
for repo in *.git;
13+
do
14+
reponame="${repo%.*}"
15+
if ! listcontains "{{ range $services := .deis_services }}{{ Base $services.Key }} {{ end }}" "$reponame";
16+
then
17+
rm -rf "$repo"
18+
fi
19+
done

builder/tests/builder_test.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ func TestBuilder(t *testing.T) {
4949
"/deis/database",
5050
"/deis/registry",
5151
"/deis/domains",
52+
"/deis/services",
5253
}
5354
testID := utils.NewUuid()
5455
err := dockercliutils.BuildImage(t, "../", "deis/builder:"+testID)

controller/api/models.py

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -632,6 +632,17 @@ def _etcd_purge_user(**kwargs):
632632
pass
633633

634634

635+
def _etcd_create_app(**kwargs):
636+
appname = kwargs['instance']
637+
if kwargs['created']:
638+
_etcd_client.write('/deis/services/{}'.format(appname), None, dir=True)
639+
640+
641+
def _etcd_purge_app(**kwargs):
642+
appname = kwargs['instance']
643+
_etcd_client.delete('/deis/services/{}'.format(appname), dir=True, recursive=True)
644+
645+
635646
def _etcd_publish_domains(**kwargs):
636647
app = kwargs['instance'].app
637648
app_domains = app.domain_set.all()
@@ -670,3 +681,5 @@ def _save_transition(**kwargs):
670681
post_delete.connect(_etcd_purge_user, sender=User, dispatch_uid='api.models')
671682
post_save.connect(_etcd_publish_domains, sender=Domain, dispatch_uid='api.models')
672683
post_delete.connect(_etcd_publish_domains, sender=Domain, dispatch_uid='api.models')
684+
post_save.connect(_etcd_create_app, sender=App, dispatch_uid='api.models')
685+
post_delete.connect(_etcd_purge_app, sender=App, dispatch_uid='api.models')

controller/bin/boot

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,11 +28,17 @@ function etcd_set_default {
2828
etcdctl --no-sync -C $ETCD mk $ETCD_PATH/$1 $2 >/dev/null 2>&1 || true
2929
}
3030

31+
function etcd_safe_mkdir {
32+
etcdctl --no-sync -C $ETCD mkdir $1 >/dev/null 2>&1 || true
33+
}
34+
3135
etcd_set_default protocol ${DEIS_PROTOCOL:-http}
3236
etcd_set_default secretKey ${DEIS_SECRET_KEY:-`openssl rand -base64 64 | tr -d '\n'`}
3337
etcd_set_default builderKey ${DEIS_BUILDER_KEY:-`openssl rand -base64 64 | tr -d '\n'`}
3438
etcd_set_default registrationEnabled 1
3539
etcd_set_default webEnabled 0
40+
# create path for application metadata
41+
etcd_safe_mkdir /deis/services
3642

3743
# wait for confd to run once and install initial templates
3844
until confd -onetime -node $ETCD -config-file /app/confd.toml 2>/dev/null; do

docs/managing_deis/builder_settings.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ setting description
4040
/deis/controller/protocol protocol of the controller component (set by controller)
4141
/deis/registry/host host of the controller component (set by registry)
4242
/deis/registry/port port of the controller component (set by registry)
43+
/deis/services/* application metadata (set by controller)
4344
==================================== ===========================================================
4445

4546
Using a custom builder image

0 commit comments

Comments
 (0)