"pattern" : r"^.{,80}$",
},
"root_size" : {
- "type" : "number",
+ "type" : ["number", "null"],
},
"vendor" : {
"type" : ["string", "null"],
def release(self):
return self.blob.get("release")
+ # Memory
+
+ @property
+ def memory(self):
+ return self.blob.get("memory") * 1024
+
+ @property
+ def friendly_memory(self):
+ return util.format_size(self.memory or 0)
+
@property
def storage(self):
return self.blob.get("storage_size", 0)
def processor(self):
return Processor(self.backend, self.blob.get("cpu", {}))
- # Memory
-
- @property
- def memory(self):
- return self.blob.get("memory")
-
- @property
- def friendly_memory(self):
- return util.format_size(self.memory or 0)
-
# Virtual
def is_virtual(self):
else:
res = self.db.query("""
SELECT
- blob->'cpu'->'vendor' AS vendor,
+ NULLIF(blob->'cpu'->'vendor', '""'::jsonb) AS vendor,
fireinfo_percentage(
COUNT(*), SUM(COUNT(*)) OVER ()
) AS p
expired_at IS NULL
AND
blob IS NOT NULL
- AND
- blob->'cpu'->'vendor' IS NOT NULL
GROUP BY
- blob->'cpu'->'vendor'
+ NULLIF(blob->'cpu'->'vendor', '""'::jsonb)
""")
return { CPU_VENDORS.get(row.vendor, row.vendor) : row.p for row in res }
else:
res = self.db.query("""
SELECT
- blob->'system'->'kernel' AS kernel,
+ COALESCE(
+ blob->'system'->'kernel_release',
+ blob->'system'->'kernel'
+ ) AS kernel,
fireinfo_percentage(
COUNT(*), SUM(COUNT(*)) OVER ()
) AS p
AND
blob IS NOT NULL
AND
- blob->'system'->'kernel' IS NOT NULL
+ (
+ blob->'system'->'kernel_release' IS NOT NULL
+ OR
+ blob->'system'->'kernel' IS NOT NULL
+ )
GROUP BY
- blob->'system'->'kernel'
+ COALESCE(
+ blob->'system'->'kernel_release',
+ blob->'system'->'kernel'
+ )
""")
return { row.kernel : row.p for row in res }