← Back to team overview

sts-sponsors team mailing list archive

[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