aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'master/setup-master.py')
-rwxr-xr-xmaster/setup-master.py55
1 files changed, 22 insertions, 33 deletions
diff --git a/master/setup-master.py b/master/setup-master.py
index 4f66699..5bfcfef 100755
--- a/master/setup-master.py
+++ b/master/setup-master.py
@@ -72,7 +72,7 @@ def install_master():
def syncdb_master():
"""Initialize the database"""
- from db_defaults import groups, providers, archs, stages, releases, mirrors
+ from db_defaults import groups, providers, archs, releases, mirrors
import copy
management.call_command('syncdb')
@@ -80,34 +80,26 @@ def syncdb_master():
for group in groups:
Group(name=group).save()
# Job-related defaults
+ for (gen_arch, spec_archs) in archs.iteritems():
+ gen_archobj = Arch(generic=gen_arch)
+ for spec_arch in spec_archs:
+ archobj = copy.copy(gen_archobj)
+ archobj.specific = spec_arch
+ archobj.save()
+ # Populate providers
for provider in providers:
- provobj = StageProvider(name=provider)
+ provobj = Provider(name=provider)
provobj.save()
- # Populate arch list
- for generic_arch in archs[provider]:
- gen_archobj = Arch(provider=provobj)
- # If (generic, (specific1, specific2))
- if isinstance(generic_arch, tuple):
- gen_archobj.generic = generic_arch[0]
- for arch in generic_arch[1]:
- archobj = copy.copy(gen_archobj)
- archobj.specific = arch
- archobj.save()
- # If (specific1, specific2, specific3)
- else:
- gen_archobj.generic = generic_arch
- gen_archobj.specific = generic_arch
- gen_archobj.save()
- # Populate stage list
- for stage in stages[provider]:
- stageobj = Stage(provider=provobj)
- stageobj.name = stage
- stageobj.save()
# Populate release list
- for release in releases[provider]:
- releaseobj = Release(provider=provobj)
- releaseobj.name = release
- releaseobj.save()
+ releaseobj = Release(provider=provobj)
+ for (release, relarchs) in releases[provider].iteritems():
+ relobj = copy.copy(releaseobj)
+ relobj.name = release
+ relobj.save()
+ for (relgen_arch, relspec_archs) in relarchs.iteritems():
+ for relspec_arch in relspec_archs:
+ relobj.archs.add(Arch.objects.get(generic=relgen_arch,
+ specific=relspec_arch))
# Populate mirror list
obj = Mirror(owner=provobj)
obj.structure = mirrors[provider]['structure']
@@ -127,13 +119,10 @@ def setup_sample_job():
job.maintainer = maintainers[0]
else:
job.maintainer = User.objects.create_user(*sample_job['maintainer'])
- job.provider = StageProvider.objects.get(name=sample_job['provider'])
- job.stage = Stage.objects.get(name=sample_job['stage'],
- provider=job.provider)
- job.arch = Arch.objects.get(specific=sample_job['arch'],
- provider=job.provider)
job.release = Release.objects.get(name=sample_job['release'],
- provider=job.provider)
+ provider=Provider.objects.get(name=sample_job['provider']))
+ job.arch = job.release.archs.get(specific=sample_job['arch'])
+ # If stage is not set, defaults to stage3
job.save()
if len(sys.argv) < 3:
@@ -163,7 +152,7 @@ elif sys.argv[1] == 'syncdb':
import settings
from django.core.management import setup_environ
setup_environ(settings)
- from master.models import User, Group, StageProvider, Arch, Stage, Release, Mirror, Job
+ from master.models import User, Group, Provider, Arch, Release, Mirror, Job, Slave
# Start stuff
syncdb_master()
setup_sample_job()