sts-sponsors team mailing list archive
-
sts-sponsors team
-
Mailing list archive
-
Message #03840
[Merge] ~lloydwaltersj/maas:last-deploy-mock-data into maas:master
Jack Lloyd-Walters has proposed merging ~lloydwaltersj/maas:last-deploy-mock-data into maas:master.
Commit message:
add mock deployment data
Requested reviews:
MAAS Maintainers (maas-maintainers)
For more details, see:
https://code.launchpad.net/~lloydwaltersj/maas/+git/maas/+merge/434244
--
Your team MAAS Maintainers is requested to review the proposed merge of ~lloydwaltersj/maas:last-deploy-mock-data into maas:master.
diff --git a/src/maasserver/models/bootresource.py b/src/maasserver/models/bootresource.py
index 9389830..209b177 100644
--- a/src/maasserver/models/bootresource.py
+++ b/src/maasserver/models/bootresource.py
@@ -16,6 +16,7 @@ from django.db.models import (
Prefetch,
Sum,
)
+from django.utils import timezone
from maasserver.enum import (
BOOT_RESOURCE_FILE_TYPE,
@@ -114,7 +115,7 @@ class BootResourceManager(Manager):
def get_usable_architectures(self):
"""Return the set of usable architectures.
- Return the architectures for which the has at least one
+ Return the architectures for which the resource has at least one
commissioning image and at least one install image.
"""
arches = set()
@@ -515,6 +516,16 @@ class BootResource(CleanSave, TimestampedModel):
"""Return rtype text as displayed to the user."""
return BOOT_RESOURCE_TYPE_CHOICES_DICT[self.rtype]
+ @property
+ def deployed_time(self) -> timezone.datetime:
+ """Returns the most recent time of deplyment for an image."""
+ # Mock data: Generates a random time based on the hash of the
+ # resource name.
+ ms_py = 3153600000000
+ return timezone.datetime(2022, 6, 1) + timezone.timedelta(
+ microseconds=hash(self.name) % ms_py
+ )
+
def clean(self):
"""Validate the model.
diff --git a/src/maasserver/websockets/handlers/bootresource.py b/src/maasserver/websockets/handlers/bootresource.py
index 89d3fd3..6a45551 100644
--- a/src/maasserver/websockets/handlers/bootresource.py
+++ b/src/maasserver/websockets/handlers/bootresource.py
@@ -250,6 +250,8 @@ class BootResourceHandler(Handler):
resource.number_of_nodes = self.get_number_of_nodes_deployed_for(
resource
)
+ resource.last_deployed = resource.deplyed_time()
+ # resource.machine_deployed_count = self.get_number_of_nodes_currently_deplyed_with(resource)
resource_set = resource.get_latest_set()
if resource_set is None:
resource.size = human_readable_bytes(0)
@@ -597,6 +599,10 @@ class BootResourceHandler(Handler):
"lastUpdate": resource.last_update.strftime(
"%a, %d %b. %Y %H:%M:%S"
),
+ "lastDeployed": resource.last_deployed.strftime(
+ "%a, %d %b. %Y %H:%M:%S"
+ ),
+ # "machineDeployedCount": resource.machine_deployed_count,
}
for resource in self.combine_resources(
BootResource.objects.filter(bootloader_type=None)
Follow ups