in treeherder/model/management/commands/import_reference_data.py [0:0]
def handle(self, *args, **options):
c = TreeherderClient(server_url=options["server"])
# options / option collection hashes
for uuid, props in c.get_option_collection_hash().items():
for prop in props:
option, _ = Option.objects.get_or_create(name=prop["name"])
OptionCollection.objects.get_or_create(option_collection_hash=uuid, option=option)
# machine platforms
for machine_platform in c.get_machine_platforms():
MachinePlatform.objects.get_or_create(
os_name=machine_platform["os_name"],
platform=machine_platform["platform"],
architecture=machine_platform["architecture"],
)
# machine
for machine in c.get_machines():
Machine.objects.get_or_create(
id=machine["id"],
name=machine["name"],
defaults={
"first_timestamp": machine["first_timestamp"],
"last_timestamp": machine["last_timestamp"],
},
)
# job group
for job_group in c.get_job_groups():
JobGroup.objects.get_or_create(
id=job_group["id"],
symbol=job_group["symbol"],
name=job_group["name"],
defaults={"description": job_group["description"]},
)
# job type
for job_type in c.get_job_types():
JobType.objects.get_or_create(
id=job_type["id"],
symbol=job_type["symbol"],
name=job_type["name"],
defaults={"description": job_type["description"]},
)
# product
for product in c.get_products():
Product.objects.get_or_create(
id=product["id"],
name=product["name"],
defaults={"description": product["description"]},
)
# failure classification
for failure_classification in c.get_failure_classifications():
FailureClassification.objects.get_or_create(
id=failure_classification["id"],
name=failure_classification["name"],
defaults={"description": failure_classification["description"]},
)
# build platform
for build_platform in c.get_build_platforms():
BuildPlatform.objects.get_or_create(
id=build_platform["id"],
os_name=build_platform["os_name"],
defaults={
"platform": build_platform["platform"],
"architecture": build_platform["architecture"],
},
)
# repository and repository group
for repository in c.get_repositories():
rgroup, _ = RepositoryGroup.objects.get_or_create(
name=repository["repository_group"]["name"],
description=repository["repository_group"]["description"],
)
Repository.objects.get_or_create(
id=repository["id"],
repository_group=rgroup,
name=repository["name"],
dvcs_type=repository["dvcs_type"],
url=repository["url"],
defaults={
"codebase": repository["codebase"],
"description": repository["description"],
"active_status": repository["active_status"],
},
)