Skip to content
Snippets Groups Projects
Commit e35bc979 authored by Jorrit Schaap's avatar Jorrit Schaap
Browse files

Merge branch 'master' into TMSS-672

parents 14d68034 e951e61a
No related branches found
No related tags found
1 merge request!394Resolve TMSS-672
......@@ -133,36 +133,158 @@ def populate_test_data():
def populate_cycles(apps, schema_editor):
for nr in range(0, 18):
# Cycle 0 deviates from any patterns
cycle = models.Cycle.objects.create(name="Cycle 00",
description="Lofar Cycle 0",
start=datetime(2013, 2, 11, 0, 0, 0, 0, tzinfo=timezone.utc),
stop=datetime(2013, 11, 14, 0, 0, 0, 0, tzinfo=timezone.utc))
models.CycleQuota.objects.bulk_create([models.CycleQuota(cycle=cycle,
resource_type=ResourceType.objects.get(
name="LOFAR Observing Time"),
value=0.8 * cycle.duration.total_seconds()),
# rough guess. 80% of total time available for observing
models.CycleQuota(cycle=cycle,
resource_type=ResourceType.objects.get(
name="CEP Processing Time"),
value=0.8 * cycle.duration.total_seconds()),
models.CycleQuota(cycle=cycle,
resource_type=ResourceType.objects.get(name="LTA Storage"),
value=0), # needs to be filled in by user (SOS)
models.CycleQuota(cycle=cycle,
resource_type=ResourceType.objects.get(
name="LOFAR Support Time"),
value=0), # needs to be filled in by user (SOS)
models.CycleQuota(cycle=cycle,
resource_type=ResourceType.objects.get(
name="LOFAR Observing Time Commissioning"),
value=0.05 * cycle.duration.total_seconds()),
# rough guess. 5% of total time available for observing
models.CycleQuota(cycle=cycle,
resource_type=ResourceType.objects.get(
name="LOFAR Observing Time prio A"),
value=0), # needs to be filled in by user (SOS)
models.CycleQuota(cycle=cycle,
resource_type=ResourceType.objects.get(
name="LOFAR Observing Time prio B"),
value=0) # needs to be filled in by user (SOS)
])
# Cycles 1-10 follow the same pattern
for nr in range(1, 11):
cycle = models.Cycle.objects.create(name="Cycle %02d" % nr,
description="Lofar Cycle %s" % nr,
start=datetime(2013+nr//2, 6 if nr%2==0 else 11, 1, 0, 0, 0, 0, tzinfo=timezone.utc),
stop=datetime(2013+(nr+1)//2, 6 if nr%2==1 else 11, 1, 0, 0, 0, 0, tzinfo=timezone.utc))
start=datetime(2013+nr//2, 5 if nr%2==0 else 11, 15, 0, 0, 0, 0, tzinfo=timezone.utc),
stop=datetime(2013+(nr+1)//2, 5 if nr%2==1 else 11, 14, 0, 0, 0, 0, tzinfo=timezone.utc))
models.CycleQuota.objects.bulk_create([models.CycleQuota(cycle=cycle,
resource_type=ResourceType.objects.get(name="observing_time"),
resource_type=ResourceType.objects.get(name="LOFAR Observing Time"),
value=0.8*cycle.duration.total_seconds()), # rough guess. 80% of total time available for observing
models.CycleQuota(cycle=cycle,
resource_type=ResourceType.objects.get(name="cep_processing_time"),
resource_type=ResourceType.objects.get(name="CEP Processing Time"),
value=0.8*cycle.duration.total_seconds()),
models.CycleQuota(cycle=cycle,
resource_type=ResourceType.objects.get(name="lta_storage"),
resource_type=ResourceType.objects.get(name="LTA Storage"),
value=0), # needs to be filled in by user (SOS)
models.CycleQuota(cycle=cycle,
resource_type=ResourceType.objects.get(name="support_time"),
resource_type=ResourceType.objects.get(name="LOFAR Support Time"),
value=0), # needs to be filled in by user (SOS)
models.CycleQuota(cycle=cycle,
resource_type=ResourceType.objects.get(name="observing_time_commissioning"),
resource_type=ResourceType.objects.get(name="LOFAR Observing Time Commissioning"),
value=0.05*cycle.duration.total_seconds()), # rough guess. 5% of total time available for observing
models.CycleQuota(cycle=cycle,
resource_type=ResourceType.objects.get(name="observing_time_prio_a"),
resource_type=ResourceType.objects.get(name="LOFAR Observing Time prio A"),
value=0), # needs to be filled in by user (SOS)
models.CycleQuota(cycle=cycle,
resource_type=ResourceType.objects.get(name="observing_time_prio_b"),
resource_type=ResourceType.objects.get(name="LOFAR Observing Time prio B"),
value=0) # needs to be filled in by user (SOS)
])
# Cycle 11 deviates from any patterns
cycle = models.Cycle.objects.create(name="Cycle 11",
description="Lofar Cycle 11",
start=datetime(2018, 11, 15, 0, 0, 0, 0, tzinfo=timezone.utc),
stop=datetime(2019, 5, 31, 0, 0, 0, 0, tzinfo=timezone.utc))
models.CycleQuota.objects.bulk_create([models.CycleQuota(cycle=cycle,
resource_type=ResourceType.objects.get(
name="LOFAR Observing Time"),
value=0.8 * cycle.duration.total_seconds()),
# rough guess. 80% of total time available for observing
models.CycleQuota(cycle=cycle,
resource_type=ResourceType.objects.get(
name="CEP Processing Time"),
value=0.8 * cycle.duration.total_seconds()),
models.CycleQuota(cycle=cycle,
resource_type=ResourceType.objects.get(
name="LTA Storage"),
value=0), # needs to be filled in by user (SOS)
models.CycleQuota(cycle=cycle,
resource_type=ResourceType.objects.get(
name="LOFAR Support Time"),
value=0), # needs to be filled in by user (SOS)
models.CycleQuota(cycle=cycle,
resource_type=ResourceType.objects.get(
name="LOFAR Observing Time Commissioning"),
value=0.05 * cycle.duration.total_seconds()),
# rough guess. 5% of total time available for observing
models.CycleQuota(cycle=cycle,
resource_type=ResourceType.objects.get(
name="LOFAR Observing Time prio A"),
value=0), # needs to be filled in by user (SOS)
models.CycleQuota(cycle=cycle,
resource_type=ResourceType.objects.get(
name="LOFAR Observing Time prio B"),
value=0) # needs to be filled in by user (SOS)
])
# Cycles 12-19 follow the same pattern
for nr in range(12, 20):
cycle = models.Cycle.objects.create(name="Cycle %02d" % nr,
description="Lofar Cycle %s" % nr,
start=datetime(2013 + nr // 2, 6 if nr % 2 == 0 else 12, 1, 0, 0, 0, 0,
tzinfo=timezone.utc),
stop=datetime(2013 + (nr + 1) // 2, 5 if nr % 2 == 1 else 11,
30 if nr % 2 == 0 else 31, 0, 0,
0, 0, tzinfo=timezone.utc))
models.CycleQuota.objects.bulk_create([models.CycleQuota(cycle=cycle,
resource_type=ResourceType.objects.get(
name="LOFAR Observing Time"),
value=0.8 * cycle.duration.total_seconds()),
# rough guess. 80% of total time available for observing
models.CycleQuota(cycle=cycle,
resource_type=ResourceType.objects.get(
name="CEP Processing Time"),
value=0.8 * cycle.duration.total_seconds()),
models.CycleQuota(cycle=cycle,
resource_type=ResourceType.objects.get(
name="LTA Storage"),
value=0), # needs to be filled in by user (SOS)
models.CycleQuota(cycle=cycle,
resource_type=ResourceType.objects.get(
name="LOFAR Support Time"),
value=0), # needs to be filled in by user (SOS)
models.CycleQuota(cycle=cycle,
resource_type=ResourceType.objects.get(
name="LOFAR Observing Time Commissioning"),
value=0.05 * cycle.duration.total_seconds()),
# rough guess. 5% of total time available for observing
models.CycleQuota(cycle=cycle,
resource_type=ResourceType.objects.get(
name="LOFAR Observing Time prio A"),
value=0), # needs to be filled in by user (SOS)
models.CycleQuota(cycle=cycle,
resource_type=ResourceType.objects.get(
name="LOFAR Observing Time prio B"),
value=0) # needs to be filled in by user (SOS)
])
def populate_projects(apps, schema_editor):
from lofar.sas.tmss.test.tmss_test_data_django_models import SchedulingSet_test_data
......@@ -181,7 +303,7 @@ def populate_projects(apps, schema_editor):
# for convenience, create a schedulingset for each project
models.SchedulingSet.objects.create(**SchedulingSet_test_data(name="Test Scheduling Set", project=tmss_project))
project_quota = ProjectQuota.objects.create(project=tmss_project, value=1e12, resource_type=ResourceType.objects.get(name="lta_storage"))
project_quota = ProjectQuota.objects.create(project=tmss_project, value=1e12, resource_type=ResourceType.objects.get(name="LTA Storage"))
sara_fs = Filesystem.objects.get(name="Lofar Storage (SARA)")
models.ProjectQuotaArchiveLocation.objects.create(project_quota=project_quota, archive_location=sara_fs)
......@@ -191,18 +313,7 @@ def populate_resources(apps, schema_editor):
time_q = Quantity.objects.get(value=Quantity.Choices.TIME.value)
number_q = Quantity.objects.get(value=Quantity.Choices.NUMBER.value)
ResourceType.objects.bulk_create([ResourceType(name="lta_storage", description="Amount of storage in the LTA (in bytes)", quantity=bytes_q),
ResourceType(name="cep_storage", description="Amount of storage on the CEP processing cluster (in bytes)", quantity=bytes_q),
ResourceType(name="cep_processing_time", description="Processing time on the CEP processing cluster (in seconds)", quantity=time_q),
ResourceType(name="observing_time", description="Observing time (in seconds)", quantity=time_q),
ResourceType(name="observing_time_prio_a", description="Observing time with priority A (in seconds)", quantity=time_q),
ResourceType(name="observing_time_prio_b", description="Observing time with priority B (in seconds)", quantity=time_q),
ResourceType(name="observing_time_commissioning", description="Observing time for Commissioning/DDT (in seconds)", quantity=time_q),
ResourceType(name="support_time", description="Support time by human (in seconds)", quantity=time_q),
ResourceType(name="number_of_triggers", description="Number of trigger events (as integer)", quantity=number_q),
# TODO these duplicates have names that front-end expects.
# TODO We should not have doubles.
ResourceType(name="LTA Storage", description="Amount of storage in the LTA (in bytes)", quantity=bytes_q),
ResourceType.objects.bulk_create([ResourceType(name="LTA Storage", description="Amount of storage in the LTA (in bytes)", quantity=bytes_q),
ResourceType(name="CEP Storage", description="Amount of storage on the CEP processing cluster (in bytes)", quantity=bytes_q),
ResourceType(name="CEP Processing Time", description="Processing time on the CEP processing cluster (in seconds)", quantity=time_q),
ResourceType(name="LOFAR Observing Time", description="Observing time (in seconds)", quantity=time_q),
......
......@@ -171,6 +171,8 @@ class ProjectSerializer(DynamicRelationalHyperlinkedModelSerializer):
class ProjectQuotaSerializer(DynamicRelationalHyperlinkedModelSerializer):
project_quota_archive_location = serializers.HyperlinkedRelatedField('projectquotaarchivelocation-detail', source='*', read_only=True)
class Meta:
model = models.ProjectQuota
fields = '__all__'
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment