sts-sponsors team mailing list archive
-
sts-sponsors team
-
Mailing list archive
-
Message #08456
[Merge] ~r00ta/maas-site-manager:MAASENG-1627 into maas-site-manager:main
Jacopo Rota has proposed merging ~r00ta/maas-site-manager:MAASENG-1627 into maas-site-manager:main.
Commit message:
add other_machines column and total_machines property in response object
Requested reviews:
MAAS Committers (maas-committers)
For more details, see:
https://code.launchpad.net/~r00ta/maas-site-manager/+git/site-manager/+merge/443087
This PR aims to add `other_machines` column and `total_machines` property in the response object as per https://warthogs.atlassian.net/browse/MAASENG-1627
--
Your team MAAS Committers is requested to review the proposed merge of ~r00ta/maas-site-manager:MAASENG-1627 into maas-site-manager:main.
diff --git a/backend/msm/db/_tables.py b/backend/msm/db/_tables.py
index 1fa9662..e4c4677 100644
--- a/backend/msm/db/_tables.py
+++ b/backend/msm/db/_tables.py
@@ -69,5 +69,6 @@ SiteData = Table(
Column("deployed_machines", Integer),
Column("ready_machines", Integer),
Column("error_machines", Integer),
+ Column("other_machines", Integer),
Column("last_seen", DateTime),
)
diff --git a/backend/msm/db/models.py b/backend/msm/db/models.py
index ff3806f..078946a 100644
--- a/backend/msm/db/models.py
+++ b/backend/msm/db/models.py
@@ -14,10 +14,12 @@ from ..schema import TimeZone
class SiteData(BaseModel):
"""Data for a site."""
+ total_machines: int
allocated_machines: int
deployed_machines: int
ready_machines: int
error_machines: int
+ other_machines: int
last_seen: datetime
diff --git a/backend/msm/db/queries.py b/backend/msm/db/queries.py
index bb2e1a3..77b173e 100644
--- a/backend/msm/db/queries.py
+++ b/backend/msm/db/queries.py
@@ -164,6 +164,14 @@ async def get_sites(
(
SiteData.c.site_id != None, # noqa: E711
func.json_build_object(
+ "total_machines",
+ (
+ SiteData.c.allocated_machines
+ + SiteData.c.deployed_machines
+ + SiteData.c.ready_machines
+ + SiteData.c.error_machines
+ + SiteData.c.other_machines
+ ).label("total_machines"),
"allocated_machines",
SiteData.c.allocated_machines,
"deployed_machines",
@@ -172,6 +180,8 @@ async def get_sites(
SiteData.c.ready_machines,
"error_machines",
SiteData.c.error_machines,
+ "other_machines",
+ SiteData.c.other_machines,
"last_seen",
SiteData.c.last_seen,
),
diff --git a/backend/tests/user_api/test_handlers.py b/backend/tests/user_api/test_handlers.py
index a74ab8f..b4ae28c 100644
--- a/backend/tests/user_api/test_handlers.py
+++ b/backend/tests/user_api/test_handlers.py
@@ -158,6 +158,7 @@ class TestSitesHandler:
"deployed_machines": 20,
"ready_machines": 30,
"error_machines": 40,
+ "other_machines": 5,
"last_seen": datetime.utcnow(),
}
],
@@ -165,6 +166,7 @@ class TestSitesHandler:
del site_data["id"]
del site_data["site_id"]
site_data["last_seen"] = site_data["last_seen"].isoformat()
+ site_data["total_machines"] = 105
site["stats"] = site_data
del site["created"]
del site["accepted"]
diff --git a/test-data/import.sh b/test-data/import.sh
index f0163b1..c446345 100755
--- a/test-data/import.sh
+++ b/test-data/import.sh
@@ -38,5 +38,5 @@ fi
copy_cmd sites.csv 'site(id, city, country, latitude, longitude, name, name_unique, note, region, street, timezone, url, accepted, created)'
copy_cmd tokens.csv 'token(site_id, value, expired, created)'
copy_cmd users.csv '"user"(email, full_name, password)'
- copy_cmd site_data.csv 'site_data(site_id, allocated_machines, deployed_machines, ready_machines, error_machines, last_seen)'
+ copy_cmd site_data.csv 'site_data(site_id, allocated_machines, deployed_machines, ready_machines, error_machines, other_machines, last_seen)'
) | psql --single-transaction "postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@${POSTGRES_HOST}:${POSTGRES_PORT}/${POSTGRES_DB}"
diff --git a/test-data/site_data.csv b/test-data/site_data.csv
index e6a4960..bc9d7d7 100644
--- a/test-data/site_data.csv
+++ b/test-data/site_data.csv
@@ -1,7 +1,7 @@
-site_id, allocated_machines, deployed_machines, ready_machines, error_machines, last_seen
-1,10,1,8,1,"01-01-2023 08:00"
-2,11,0,8,3,"01-01-2023 09:00"
-3,12,2,4,6,"01-01-2023 10:00"
-4,13,0,13,0,"01-01-2023 11:00"
-5,14,13,1,0,"01-01-2023 12:00"
-6,15,2,10,3,"01-01-2023 13:00"
+site_id, allocated_machines, deployed_machines, ready_machines, error_machines, other_machines, last_seen
+1,10,1,8,1,2,"01-01-2023 08:00"
+2,11,0,8,3,0,"01-01-2023 09:00"
+3,12,2,4,6,1,"01-01-2023 10:00"
+4,13,0,13,0,0,"01-01-2023 11:00"
+5,14,13,1,0,4,"01-01-2023 12:00"
+6,15,2,10,3,7,"01-01-2023 13:00"