-
-
{{ vendor }} {{ name }}
-
{{ form_factor }} system certified with Ubuntu
- {% if hardware_website %}
Visit the website {% endif %}
-
-
- {% if category == "Desktop" or category == "Laptop" %}
- {{ image(url="https://assets.ubuntu.com/v1/4b732966-Laptop.svg",
- alt="",
- width="132",
- height="77",
- hi_def=True,
- loading="auto") | safe
- }}
- {% endif %}
- {% if category == "Server" %}
- {{ image(url="https://assets.ubuntu.com/v1/fdf83d49-Server.svg",
- alt="Server",
- width="80",
- height="96",
- hi_def=True,
- loading="auto") | safe
- }}
- {% endif %}
- {% if category == "Ubuntu Core" %}
- {{ image(url="https://assets.ubuntu.com/v1/f9f8ace9-gateway.svg",
- alt="Gateway",
- width="96",
- height="100",
- hi_def=True,
- loading="auto") | safe
- }}
- {% endif %}
- {% if category == "Server SoC" %}
- {{ image(url="https://assets.ubuntu.com/v1/4e0399a1-chip.svg",
- alt="Chip",
- width="84",
- height="100",
- hi_def=True,
- loading="auto") | safe
- }}
- {% endif %}
+
+
-
-
- Release{% if release_details["releases"]|length > 1 %}s{% endif %}
-
-
-
- {% for release in release_details["releases"] %}
-
- {% if release_details['releases']|length > 1 %}
-
- {{ release.name }}
-
- {% else %}
- {{ release.name }}
- {% endif %}
- {% if release_details['releases']|length > 1 %}
-
- {% else %}
-
- {% endif %}
- {% if release.level == "Certified Pre-Install" %}
-
- Pre-installed in some regions with a custom Ubuntu image that takes advantage of the system's hardware features and may include additional software. Standard images of Ubuntu may not work well, or at all.
-
- {% if vendor == "Xilinx" %}
-
- Download
-
- {% endif %}
- {% elif release.level == "Certified" %}
-
- The {{ vendor }} {{ name }} with the components described below has been awarded the status of certified for Ubuntu.
-
-
- Download
-
- {% endif %}
- {% if release.kernel %}
- Kernel
- This system was tested with {{ release.version }}, running the {{ release.kernel }} kernel.
- {% endif %}
- {% if release.bios %}
- BIOS
- {{ release.bios }}
- {% endif %}
- {% if release.notes %}
- Notes
- {% for note in release.notes %}
-
- {{ note.comment | replace('\n', ' ') | safe }}
-
- {% endfor %}
- {% endif %}
- Hardware
-
-
- {% for hardware_subtitle, values in release["components"].items() %}
-
- {{ hardware_subtitle }}
-
- {% for value in values %}
-
- {{ value.name }}
- {% if value.bus in ["usb", "pci"] %}
- {{ value.bus }} ({{ value.identifier }}
- {% if value.subsystem != '' %}{{ value.subsystem }}{% endif %}
- )
- {% endif %}
-
- {% endfor %}
-
-
- {% endfor %}
-
-
-
- Hardware details ›
-
-
-
- {% endfor %}
-
-
+
+
+ {% with category=category %}
+ {% include "certified/shared/category-image.html" %}
+ {% endwith %}
+
+
+
+
+
{{ vendor }} {{ name }}
+ {{ form_factor|capitalize }} system certified with Ubuntu
+
+ {% if hardware_website %}
+
+ {% endif %}
- {# djlint: on #}
+
+ {% if release_details["releases"]|length > 1 %}
+
+
+
+
+ {% for release in release_details["releases"]|sort(attribute='version')|reverse %}
+
+ {{ release.version }}
+
+ {% endfor %}
+
+
+
+
+ {% else %}
+
+ {% endif %}
- {% if components %}
-
-
-
Components certified with this system
-
-
-
- Component
- 14.04 ESM
- 16.04 LTS
- 18.04 LTS
- 20.04 LTS
- 22.04 LTS
- Comments
-
-
-
- {% for component in components %}
-
-
- {{ component.vendor_name }} {{ component.model }}
-
- {% if '14.04 ESM' in component.lts_releases %}
- {% if component.lts_releases['14.04 ESM'][0].third_party_driver %}
-
- {{ image(url="https://assets.ubuntu.com/v1/8dd0626d-3rd-party-icon.svg",
- alt="May require third-party driver",
- width="21",
- height="14",
- hi_def=True,
- loading="lazy") | safe
- }}
-
- {% elif component.lts_releases['14.04 ESM'][0].status == 'inprogress' %}
-
- In progress
-
- {% elif component.lts_releases['14.04 ESM'][0].status == 'certified' %}
-
- Supported
-
- {% endif %}
- {% else %}
-
- {% endif %}
- {% if '16.04 LTS' in component.lts_releases %}
- {% if component.lts_releases['16.04 LTS'][0].third_party_driver %}
-
- {{ image(url="https://assets.ubuntu.com/v1/8dd0626d-3rd-party-icon.svg",
- alt="May require third-party driver",
- width="21",
- height="14",
- hi_def=True,
- attrs={"style":"margin-left: 0.45rem;"},
- loading="lazy") | safe
- }}
-
- {% elif component.lts_releases['16.04 LTS'][0].status == 'inprogress' %}
-
- Untested
-
- {% elif component.lts_releases['16.04 LTS'][0].status == 'certified' %}
-
- Supported
-
- {% endif %}
- {% else %}
-
- {% endif %}
- {% if '18.04 LTS' in component.lts_releases %}
- {% if component.lts_releases['18.04 LTS'][0].third_party_driver %}
-
- {{ image(url="https://assets.ubuntu.com/v1/8dd0626d-3rd-party-icon.svg",
- alt="May require third-party driver",
- width="21",
- height="14",
- hi_def=True,
- attrs={"style":"margin-left: 0.45rem;"},
- loading="lazy") | safe
- }}
-
- {% elif component.lts_releases['18.04 LTS'][0].status == 'inprogress' %}
-
- In progress
-
- {% elif component.lts_releases['18.04 LTS'][0].status == 'certified' %}
-
- Supported
-
- {% endif %}
- {% else %}
-
- {% endif %}
- {% if '20.04 LTS' in component.lts_releases %}
- {% if component.lts_releases['20.04 LTS'][0].third_party_driver %}
-
- {{ image(url="https://assets.ubuntu.com/v1/8dd0626d-3rd-party-icon.svg",
- alt="May require third-party driver",
- width="21",
- height="14",
- hi_def=True,
- attrs={"style":"margin-left: 0.45rem;"},
- loading="lazy") | safe
- }}
-
- {% elif component.lts_releases['20.04 LTS'][0].status == 'inprogress' %}
-
- In progress
-
- {% elif component.lts_releases['20.04 LTS'][0].status == 'certified' %}
-
- Supported
-
+
+
+ {{ image(url="https://assets.ubuntu.com/v1/d9c2c5bf-ubuntu_certified.png",
+ alt="Ubuntu Hardware Certification",
+ width="112",
+ height="157",
+ hi_def=True,
+ loading="auto") | safe
+ }}
+
+
+ {% for release in release_details["releases"]|sort(attribute='version')|reverse %}
+
+
Ubuntu {{ release.version }}
+ {% if release.level == "Certified Pre-Install" %}
+
+ Pre-installed in some regions with a custom Ubuntu image that takes advantage of the system's hardware features and may include additional software. Standard images of Ubuntu may not work well, or at all.
+
+ {% if vendor == "Xilinx" %}
+
+ Download
+
+ {% endif %}
+ {% elif release.level == "Certified" %}
+
+ The {{ vendor }} {{ name }} with the components described below has been awarded the status of certified for Ubuntu.
+
+
+ Download
+
+ {% endif %}
+
+ {% for note in release.notes %}
+
+ {{ note.comment | replace('\n', ' ') | safe }}
+
+ {% endfor %}
+
+
+
+
+ {% if release.kernel %}
+
+ Kernel
+ {{ release.kernel }}
+
{% endif %}
- {% else %}
-
- {% endif %}
- {% if '22.04 LTS' in component.lts_releases %}
- {% if component.lts_releases['22.04 LTS'][0].third_party_driver %}
-
- {{ image(url="https://assets.ubuntu.com/v1/8dd0626d-3rd-party-icon.svg",
- alt="May require third-party driver",
- width="21",
- height="14",
- hi_def=True,
- attrs={"style":"margin-left: 0.45rem;"},
- loading="lazy") | safe
- }}
-
- {% elif component.lts_releases['22.04 LTS'][0].status == 'inprogress' %}
-
- In progress
-
- {% elif component.lts_releases['22.04 LTS'][0].status == 'certified' %}
-
- Supported
-
+ {% if release.bios %}
+
+ BIOS
+ {{ release.bios }}
+
{% endif %}
- {% else %}
-
-
-
- {% endif %}
- {{ component.note }}
-
- {% endfor %}
-
-
-
-
- Supported
-
-
-
- May require 3rd-party driver
-
-
- In progress
-
-
+
+
+
+
+
+
Hardware
+
+
+ {% for hardware_subtitle, values in release["components"].items() %}
+
+ {{ hardware_subtitle }}
+
+
+ {% for value in values %}
+
+ {{ value.name }}
+ {% if value.bus in ["usb", "pci"] %}
+ {{ value.bus }} ({{ value.identifier }}
+ {% if value.subsystem != '' %}{{ value.subsystem }}{% endif %}
+ )
+ {% endif %}
+
+ {% endfor %}
+
+
+
+ {% endfor %}
+
+
+
+
+ All hardware details ›
+
+
+ {% if platform_certified_configuration_count > 1 %}
+
+ {% endif %}
+
+ {% endfor %}
+
+
+
+
+
Issues? Let us know
+
+
+
+
-
- {% endif %}
-
-
-
Issues? Let us know
-
- If there is an issue with the information for this system,
- please let us know .
-
-
+
+
+ {% if components %}
+ {% with components=components %}
+ {% include "certified/model-details/_components-section.html" %}
+ {% endwith %}
+ {% endif %}
+
+
+
{% endblock %}
diff --git a/templates/certified/model-details/_components-section.html b/templates/certified/model-details/_components-section.html
new file mode 100644
index 00000000000..72077b93a13
--- /dev/null
+++ b/templates/certified/model-details/_components-section.html
@@ -0,0 +1,113 @@
+
+
+
+
Components certified with this system
+
+
+
+ Component
+ 18.04 LTS
+ 20.04 LTS
+ 22.04 LTS
+ 24.04 LTS
+ Comments
+
+
+
+ {% for component in components %}
+
+
+ {{ component.vendor_name }} {{ component.model }}
+
+ {% if '18.04 LTS' in component.lts_releases %}
+ {% if component.lts_releases['18.04 LTS'][0].third_party_driver %}
+
+ {{ image(url="https://assets.ubuntu.com/v1/8dd0626d-3rd-party-icon.svg", alt="May require third-party driver", width="21", height="14", hi_def=True, attrs={"style":"margin-left: 0.45rem;"}, loading="lazy") | safe }}
+
+ {% elif component.lts_releases['18.04 LTS'][0].status == 'inprogress' %}
+
+ In progress
+
+ {% elif component.lts_releases['18.04 LTS'][0].status == 'certified' %}
+
+ Supported
+
+ {% endif %}
+ {% else %}
+
+ {% endif %}
+ {% if '20.04 LTS' in component.lts_releases %}
+ {% if component.lts_releases['20.04 LTS'][0].third_party_driver %}
+
+ {{ image(url="https://assets.ubuntu.com/v1/8dd0626d-3rd-party-icon.svg",alt="May require third-party driver",width="21",height="14",hi_def=True,attrs={"style":"margin-left: 0.45rem;"},loading="lazy") | safe }}
+
+ {% elif component.lts_releases['20.04 LTS'][0].status == 'inprogress' %}
+
+ In progress
+
+ {% elif component.lts_releases['20.04 LTS'][0].status == 'certified' %}
+
+ Supported
+
+ {% endif %}
+ {% else %}
+
+ {% endif %}
+ {% if '22.04 LTS' in component.lts_releases %}
+ {% if component.lts_releases['22.04 LTS'][0].third_party_driver %}
+
+ {{ image(url="https://assets.ubuntu.com/v1/8dd0626d-3rd-party-icon.svg", alt="May require third-party driver", width="21", height="14", hi_def=True, attrs={"style":"margin-left: 0.45rem;"}, loading="lazy") | safe }}
+
+ {% elif component.lts_releases['22.04 LTS'][0].status == 'inprogress' %}
+
+ In progress
+
+ {% elif component.lts_releases['22.04 LTS'][0].status == 'certified' %}
+
+ Supported
+
+ {% endif %}
+ {% else %}
+
+
+
+ {% endif %}
+ {% if '24.04 LTS' in component.lts_releases %}
+ {% if component.lts_releases['24.04 LTS'][0].third_party_driver %}
+
+ {{ image(url="https://assets.ubuntu.com/v1/8dd0626d-3rd-party-icon.svg", alt="May require third-party driver", width="21", height="14", hi_def=True, attrs={"style":"margin-left: 0.45rem;"}, loading="lazy") | safe }}
+
+ {% elif component.lts_releases['24.04 LTS'][0].status == 'inprogress' %}
+
+ In progress
+
+ {% elif component.lts_releases['24.04 LTS'][0].status == 'certified' %}
+
+ Supported
+
+ {% endif %}
+ {% else %}
+
+
+
+ {% endif %}
+ {{ component.note }}
+
+ {% endfor %}
+
+
+
+
+ Supported
+
+
+
+ May require 3rd-party driver
+
+
+ In progress
+
+
+
+
\ No newline at end of file
diff --git a/templates/certified/platforms/platform-details.html b/templates/certified/platforms/platform-details.html
new file mode 100644
index 00000000000..23f017e5adf
--- /dev/null
+++ b/templates/certified/platforms/platform-details.html
@@ -0,0 +1,228 @@
+{% extends "templates/base.html" %}
+
+{% block title %} {{ platform.vendor }} {{ platform.name }} certified with Ubuntu.{% endblock %}
+
+{% block meta_description %}Platform that is certified for use with Ubuntu.{% endblock meta_description %}
+
+{% block body_class %}is-paper{% endblock body_class %}
+
+{% block outer_content %}
+
+
+
+
+
+
+
+
+ {% with category=platform.category %}
+ {% include "certified/shared/category-image.html" %}
+ {% endwith %}
+
+
+
+
+
{{ platform.vendor }} {{ platform.name }}
+ {% if platform.certificates|length == 1 %}
+ 1 certified configuration
+ {% else %}
+ {{ platform.certificates|length }} certified configurations
+ {% endif %}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {% for canonical_id, certificate in platform.certificates.items() %}
+ {{ certificate.name }} ›
+ {% endfor %}
+
+
+
+
+ Certified Ubuntu Release
+ {% for canonical_id, certificate in platform.certificates.items() %}
+
+
+ {% for release in certificate.releases|sort|reverse %}
+
+ {{ release }}
+
+ {% endfor %}
+
+
+ {% endfor %}
+
+
+
+
+ Processor
+ {% with device_category = "processor" %}
+ {% include "certified/shared/_device-template.html" %}
+ {% endwith %}
+
+
+
+
+ Graphics
+ {% with device_category = "video" %}
+ {% include "certified/shared/_device-template.html" %}
+ {% endwith %}
+
+
+
+
+ Network
+ {% with device_category = "network" %}
+ {% include "certified/shared/_device-template.html" %}
+ {% endwith %}
+
+
+
+
+ Wireless
+ {% with device_category = "wireless" %}
+ {% include "certified/shared/_device-template.html" %}
+ {% endwith %}
+
+
+
+
+ Certification date
+ {% for canonical_id, certificate in platform.certificates.items() %}
+
+ {{ certificate.date }}
+
+ {% endfor %}
+
+
+
+
+
+
+
+
+
+
+
+
+
+{% endblock %}
diff --git a/templates/certified/shared/_device-template.html b/templates/certified/shared/_device-template.html
new file mode 100644
index 00000000000..828df47c69f
--- /dev/null
+++ b/templates/certified/shared/_device-template.html
@@ -0,0 +1,11 @@
+{% for canonical_id, certificate in platform.certificates.items() %}
+
+
+ {% for device in certificate[device_category] %}
+
+ {{ device.name }} {% if device.bus in ["usb", "pci"] %}({{ device.identifier }}{% if device.subsystem %} {{ device.subsystem }}{% endif %}){% endif %}
+
+ {% endfor %}
+
+
+{% endfor %}
\ No newline at end of file
diff --git a/templates/certified/shared/category-image.html b/templates/certified/shared/category-image.html
new file mode 100644
index 00000000000..37673afb4c4
--- /dev/null
+++ b/templates/certified/shared/category-image.html
@@ -0,0 +1,45 @@
+{% if category == "Desktop" %}
+ {{ image(url="https://assets.ubuntu.com/v1/21efb2ec-desktop.svg",
+ alt="",
+ width="126",
+ height="82",
+ hi_def=True,
+ loading="auto") | safe
+ }}
+{% endif %}
+{% if category == "Laptop" %}
+ {{ image(url="https://assets.ubuntu.com/v1/4b732966-Laptop.svg",
+ alt="",
+ width="132",
+ height="77",
+ hi_def=True,
+ loading="auto") | safe
+ }}
+{% endif %}
+{% if category == "Server" %}
+ {{ image(url="https://assets.ubuntu.com/v1/fdf83d49-Server.svg",
+ alt="Server",
+ width="80",
+ height="96",
+ hi_def=True,
+ loading="auto") | safe
+ }}
+{% endif %}
+{% if category == "Ubuntu Core" %}
+ {{ image(url="https://assets.ubuntu.com/v1/f9f8ace9-gateway.svg",
+ alt="Gateway",
+ width="96",
+ height="100",
+ hi_def=True,
+ loading="auto") | safe
+ }}
+{% endif %}
+{% if category == "Server SoC" %}
+ {{ image(url="https://assets.ubuntu.com/v1/4e0399a1-chip.svg",
+ alt="Chip",
+ width="84",
+ height="100",
+ hi_def=True,
+ loading="auto") | safe
+ }}
+{% endif %}
diff --git a/tests/cassettes/TestCertification.test_component_details.yaml b/tests/cassettes/TestCertification.test_component_details.yaml
index b413d438bea..611138779cd 100644
--- a/tests/cassettes/TestCertification.test_component_details.yaml
+++ b/tests/cassettes/TestCertification.test_component_details.yaml
@@ -28,7 +28,7 @@ interactions:
Content-Type:
- application/json
Date:
- - Tue, 30 Apr 2024 09:47:18 GMT
+ - Tue, 03 Sep 2024 15:26:39 GMT
Strict-Transport-Security:
- max-age=15724800; includeSubDomains
Vary:
@@ -38,9 +38,9 @@ interactions:
X-QueryInspect-Num-SQL-Queries:
- '6'
X-QueryInspect-Total-Request-Time:
- - 30 ms
+ - 31 ms
X-QueryInspect-Total-SQL-Time:
- - 16 ms
+ - 19 ms
status:
code: 200
message: OK
@@ -78,7 +78,7 @@ interactions:
Content-Type:
- application/json
Date:
- - Tue, 30 Apr 2024 09:47:18 GMT
+ - Tue, 03 Sep 2024 15:26:39 GMT
Strict-Transport-Security:
- max-age=15724800; includeSubDomains
Vary:
@@ -86,11 +86,11 @@ interactions:
X-QueryInspect-Duplicate-SQL-Queries:
- '0'
X-QueryInspect-Num-SQL-Queries:
- - '6'
+ - '8'
X-QueryInspect-Total-Request-Time:
- - 60 ms
+ - 90 ms
X-QueryInspect-Total-SQL-Time:
- - 45 ms
+ - 65 ms
status:
code: 200
message: OK
diff --git a/tests/cassettes/TestCertification.test_filters_json.yaml b/tests/cassettes/TestCertification.test_filters_json.yaml
index 7dd3ab79b7c..43705f4d56b 100644
--- a/tests/cassettes/TestCertification.test_filters_json.yaml
+++ b/tests/cassettes/TestCertification.test_filters_json.yaml
@@ -14,25 +14,26 @@ interactions:
uri: https://certification.canonical.com/api/v2/certified-releases/?format=json&limit=0&pagination=limitoffset
response:
body:
- string: '{"count":8,"next":null,"previous":null,"results":[{"release":"Core
+ string: '{"count":9,"next":null,"previous":null,"results":[{"release":"Core
22","desktops":5,"laptops":0,"servers":0,"soc":0,"smart_core":13,"total":18},{"release":"24.04
- LTS","desktops":0,"laptops":0,"servers":2,"soc":0,"smart_core":8,"total":10},{"release":"20.04
- LTS","desktops":204,"laptops":431,"servers":460,"soc":5,"smart_core":45,"total":1165},{"release":"Core
+ LTS","desktops":0,"laptops":0,"servers":140,"soc":1,"smart_core":8,"total":149},{"release":"20.04
+ LTS","desktops":208,"laptops":431,"servers":455,"soc":5,"smart_core":45,"total":1159},{"release":"Core
20","desktops":0,"laptops":0,"servers":0,"soc":0,"smart_core":26,"total":26},{"release":"Core
18","desktops":2,"laptops":0,"servers":0,"soc":0,"smart_core":5,"total":7},{"release":"18.04
LTS","desktops":115,"laptops":254,"servers":397,"soc":10,"smart_core":6,"total":792},{"release":"18.04","desktops":0,"laptops":0,"servers":2,"soc":0,"smart_core":0,"total":2},{"release":"22.04
- LTS","desktops":145,"laptops":269,"servers":496,"soc":0,"smart_core":48,"total":1015}]}'
+ LTS","desktops":229,"laptops":366,"servers":509,"soc":0,"smart_core":52,"total":1158},{"release":"Core
+ 24","desktops":0,"laptops":0,"servers":0,"soc":0,"smart_core":8,"total":8}]}'
headers:
Allow:
- GET, HEAD, OPTIONS
Connection:
- keep-alive
Content-Length:
- - '827'
+ - '922'
Content-Type:
- application/json
Date:
- - Tue, 30 Apr 2024 09:47:19 GMT
+ - Tue, 03 Sep 2024 15:26:39 GMT
Strict-Transport-Security:
- max-age=15724800; includeSubDomains
Vary:
@@ -42,9 +43,9 @@ interactions:
X-QueryInspect-Num-SQL-Queries:
- '2'
X-QueryInspect-Total-Request-Time:
- - 84 ms
+ - 106 ms
X-QueryInspect-Total-SQL-Time:
- - 75 ms
+ - 93 ms
status:
code: 200
message: OK
@@ -63,49 +64,48 @@ interactions:
uri: https://certification.canonical.com/api/v2/certified-vendors/?format=json&limit=0&pagination=limitoffset
response:
body:
- string: '{"count":52,"next":null,"previous":null,"results":[{"make":"Dell","desktops":143,"laptops":494,"servers":15,"soc":0,"smart_core":9,"total":697},{"make":"Lenovo","desktops":136,"laptops":245,"servers":119,"soc":0,"smart_core":5,"total":526},{"make":"HP","desktops":137,"laptops":170,"servers":2,"soc":0,"smart_core":0,"total":326},{"make":"Supermicro","desktops":0,"laptops":0,"servers":111,"soc":0,"smart_core":0,"total":111},{"make":"HPE","desktops":0,"laptops":0,"servers":100,"soc":0,"smart_core":0,"total":100},{"make":"Dell
- Technologies","desktops":0,"laptops":0,"servers":98,"soc":0,"smart_core":0,"total":98},{"make":"ASUSTeK
+ string: '{"count":52,"next":null,"previous":null,"results":[{"make":"Dell","desktops":164,"laptops":507,"servers":15,"soc":0,"smart_core":14,"total":716},{"make":"Lenovo","desktops":171,"laptops":275,"servers":123,"soc":0,"smart_core":5,"total":575},{"make":"HP","desktops":170,"laptops":222,"servers":2,"soc":0,"smart_core":0,"total":394},{"make":"Supermicro","desktops":0,"laptops":0,"servers":111,"soc":0,"smart_core":0,"total":111},{"make":"Dell
+ Technologies","desktops":0,"laptops":0,"servers":107,"soc":0,"smart_core":0,"total":107},{"make":"HPE","desktops":0,"laptops":0,"servers":94,"soc":0,"smart_core":0,"total":94},{"make":"ASUSTeK
Computer Inc.","desktops":0,"laptops":0,"servers":74,"soc":0,"smart_core":1,"total":75},{"make":"New
- H3C Technologies Co., Ltd","desktops":0,"laptops":0,"servers":58,"soc":0,"smart_core":0,"total":58},{"make":"IBM","desktops":0,"laptops":0,"servers":51,"soc":0,"smart_core":0,"total":51},{"make":"Huawei
+ H3C Technologies Co., Ltd","desktops":0,"laptops":0,"servers":64,"soc":0,"smart_core":0,"total":64},{"make":"IBM","desktops":0,"laptops":0,"servers":56,"soc":0,"smart_core":0,"total":56},{"make":"Huawei
Technologies Co., Ltd.","desktops":0,"laptops":0,"servers":44,"soc":6,"smart_core":0,"total":50},{"make":"Cisco
- UCS","desktops":0,"laptops":0,"servers":36,"soc":0,"smart_core":0,"total":36},{"make":"QUANTA
- Computer Inc","desktops":0,"laptops":0,"servers":35,"soc":0,"smart_core":0,"total":35},{"make":"Fujitsu
- Limited.","desktops":0,"laptops":0,"servers":35,"soc":0,"smart_core":0,"total":35},{"make":"Inspur
+ UCS","desktops":0,"laptops":0,"servers":36,"soc":0,"smart_core":0,"total":36},{"make":"Fujitsu
+ Limited.","desktops":0,"laptops":0,"servers":35,"soc":0,"smart_core":0,"total":35},{"make":"QUANTA
+ Computer Inc","desktops":0,"laptops":0,"servers":35,"soc":0,"smart_core":0,"total":35},{"make":"Inspur
Electronic Information Industry Co., Ltd.","desktops":0,"laptops":0,"servers":26,"soc":0,"smart_core":0,"total":26},{"make":"xFusion
- Digital Technologies Co., Ltd.","desktops":0,"laptops":0,"servers":24,"soc":0,"smart_core":0,"total":24},{"make":"ADVANTECH","desktops":0,"laptops":0,"servers":0,"soc":0,"smart_core":23,"total":23},{"make":"Giga
- Computing","desktops":0,"laptops":0,"servers":19,"soc":0,"smart_core":0,"total":19},{"make":"IEIT
- SYSTEMS Co.,Ltd.","desktops":0,"laptops":0,"servers":18,"soc":0,"smart_core":0,"total":18},{"make":"Raspberry
- Pi Foundation","desktops":0,"laptops":0,"servers":0,"soc":0,"smart_core":17,"total":17},{"make":"NEC
- Corporation","desktops":0,"laptops":0,"servers":12,"soc":0,"smart_core":0,"total":12},{"make":"Asus","desktops":0,"laptops":0,"servers":11,"soc":0,"smart_core":1,"total":12},{"make":"ADLink
- Technology, Inc.","desktops":5,"laptops":0,"servers":0,"soc":0,"smart_core":5,"total":10},{"make":"Ericsson,
- Inc.","desktops":0,"laptops":0,"servers":7,"soc":0,"smart_core":0,"total":7},{"make":"Intel
- Corp.","desktops":2,"laptops":0,"servers":0,"soc":0,"smart_core":4,"total":6},{"make":"Xilinx","desktops":2,"laptops":0,"servers":0,"soc":0,"smart_core":4,"total":6},{"make":"nVidia","desktops":0,"laptops":0,"servers":5,"soc":0,"smart_core":0,"total":6},{"make":"Kontron","desktops":0,"laptops":0,"servers":5,"soc":0,"smart_core":0,"total":5},{"make":"AAEON
- Technology Inc.","desktops":0,"laptops":0,"servers":0,"soc":0,"smart_core":5,"total":5},{"make":"Cavium,
- Inc.","desktops":0,"laptops":0,"servers":3,"soc":2,"smart_core":0,"total":5},{"make":"Eurotech","desktops":0,"laptops":0,"servers":0,"soc":0,"smart_core":5,"total":5},{"make":"OnLogic","desktops":0,"laptops":0,"servers":0,"soc":0,"smart_core":4,"total":4},{"make":"Mediatek
- Inc.","desktops":0,"laptops":0,"servers":0,"soc":0,"smart_core":4,"total":4},{"make":"DFI","desktops":0,"laptops":0,"servers":0,"soc":0,"smart_core":4,"total":4},{"make":"Fujitsu","desktops":0,"laptops":0,"servers":4,"soc":0,"smart_core":0,"total":4},{"make":"Cisco
+ Digital Technologies Co., Ltd.","desktops":0,"laptops":0,"servers":25,"soc":0,"smart_core":0,"total":25},{"make":"ADVANTECH","desktops":0,"laptops":0,"servers":0,"soc":0,"smart_core":23,"total":23},{"make":"Giga
+ Computing","desktops":0,"laptops":0,"servers":22,"soc":0,"smart_core":0,"total":22},{"make":"Raspberry
+ Pi Foundation","desktops":0,"laptops":0,"servers":0,"soc":0,"smart_core":18,"total":18},{"make":"IEIT
+ SYSTEMS Co.,Ltd.","desktops":0,"laptops":0,"servers":18,"soc":0,"smart_core":0,"total":18},{"make":"Asus","desktops":0,"laptops":0,"servers":11,"soc":0,"smart_core":1,"total":12},{"make":"NEC
+ Corporation","desktops":0,"laptops":0,"servers":12,"soc":0,"smart_core":0,"total":12},{"make":"Fujitsu","desktops":0,"laptops":0,"servers":8,"soc":0,"smart_core":0,"total":8},{"make":"NVIDIA","desktops":0,"laptops":0,"servers":5,"soc":1,"smart_core":0,"total":8},{"make":"Ericsson,
+ Inc.","desktops":0,"laptops":0,"servers":7,"soc":0,"smart_core":0,"total":7},{"make":"Netweb","desktops":0,"laptops":0,"servers":7,"soc":0,"smart_core":0,"total":7},{"make":"Intel
+ Corp.","desktops":2,"laptops":0,"servers":0,"soc":0,"smart_core":4,"total":6},{"make":"Xilinx","desktops":2,"laptops":0,"servers":0,"soc":0,"smart_core":4,"total":6},{"make":"Eurotech","desktops":0,"laptops":0,"servers":0,"soc":0,"smart_core":5,"total":5},{"make":"Kontron","desktops":0,"laptops":0,"servers":5,"soc":0,"smart_core":0,"total":5},{"make":"AAEON
+ Technology Inc.","desktops":0,"laptops":0,"servers":0,"soc":0,"smart_core":5,"total":5},{"make":"ADLink
+ Technology, Inc.","desktops":0,"laptops":0,"servers":0,"soc":0,"smart_core":5,"total":5},{"make":"Cavium,
+ Inc.","desktops":0,"laptops":0,"servers":3,"soc":2,"smart_core":0,"total":5},{"make":"DFI","desktops":0,"laptops":0,"servers":0,"soc":0,"smart_core":4,"total":4},{"make":"OnLogic","desktops":0,"laptops":0,"servers":0,"soc":0,"smart_core":4,"total":4},{"make":"Mediatek
+ Inc.","desktops":0,"laptops":0,"servers":0,"soc":0,"smart_core":4,"total":4},{"make":"Cisco
Systems","desktops":0,"laptops":0,"servers":3,"soc":0,"smart_core":0,"total":3},{"make":"Mellanox
Technologies","desktops":0,"laptops":0,"servers":0,"soc":0,"smart_core":1,"total":3},{"make":"Honeywell,
- Inc.","desktops":0,"laptops":0,"servers":0,"soc":0,"smart_core":3,"total":3},{"make":"Ampere
- Computing, LLC","desktops":0,"laptops":0,"servers":0,"soc":2,"smart_core":0,"total":2},{"make":"Wiwynn","desktops":0,"laptops":0,"servers":2,"soc":0,"smart_core":0,"total":2},{"make":"GIGA-BYTE
- TECHNOLOGY CO., LTD.","desktops":0,"laptops":0,"servers":2,"soc":0,"smart_core":0,"total":2},{"make":"ASRock
- Industrial","desktops":0,"laptops":0,"servers":0,"soc":0,"smart_core":2,"total":2},{"make":"ZTE","desktops":0,"laptops":0,"servers":2,"soc":0,"smart_core":0,"total":2},{"make":"Rigado","desktops":0,"laptops":0,"servers":0,"soc":0,"smart_core":2,"total":2},{"make":"InoNet
- Computer GmbH","desktops":0,"laptops":0,"servers":0,"soc":0,"smart_core":1,"total":1},{"make":"Siemens
- AG","desktops":0,"laptops":0,"servers":0,"soc":0,"smart_core":1,"total":1},{"make":"Axiomtek","desktops":0,"laptops":0,"servers":0,"soc":0,"smart_core":1,"total":1},{"make":"Interactive
- Strength Inc","desktops":0,"laptops":0,"servers":0,"soc":0,"smart_core":1,"total":1},{"make":"Element
- Biosciences","desktops":0,"laptops":0,"servers":0,"soc":0,"smart_core":1,"total":1},{"make":"IEI","desktops":1,"laptops":0,"servers":0,"soc":0,"smart_core":0,"total":1},{"make":"FETCi","desktops":0,"laptops":0,"servers":1,"soc":0,"smart_core":0,"total":1},{"make":"Avnet
- IoT Gateway","desktops":0,"laptops":0,"servers":0,"soc":0,"smart_core":1,"total":1},{"make":"Tyrone
- Systems","desktops":0,"laptops":0,"servers":1,"soc":0,"smart_core":0,"total":1}]}'
+ Inc.","desktops":0,"laptops":0,"servers":0,"soc":0,"smart_core":3,"total":3},{"make":"Wiwynn","desktops":0,"laptops":0,"servers":2,"soc":0,"smart_core":0,"total":2},{"make":"Tyrone
+ Systems","desktops":0,"laptops":0,"servers":2,"soc":0,"smart_core":0,"total":2},{"make":"GIGA-BYTE
+ TECHNOLOGY CO., LTD.","desktops":0,"laptops":0,"servers":2,"soc":0,"smart_core":0,"total":2},{"make":"ZTE","desktops":0,"laptops":0,"servers":2,"soc":0,"smart_core":0,"total":2},{"make":"Rigado","desktops":0,"laptops":0,"servers":0,"soc":0,"smart_core":2,"total":2},{"make":"Ampere
+ Computing, LLC","desktops":0,"laptops":0,"servers":0,"soc":2,"smart_core":0,"total":2},{"make":"ASRock
+ Industrial","desktops":0,"laptops":0,"servers":0,"soc":0,"smart_core":2,"total":2},{"make":"IEI","desktops":1,"laptops":0,"servers":0,"soc":0,"smart_core":0,"total":1},{"make":"Element
+ Biosciences","desktops":0,"laptops":0,"servers":0,"soc":0,"smart_core":1,"total":1},{"make":"Interactive
+ Strength Inc","desktops":0,"laptops":0,"servers":0,"soc":0,"smart_core":1,"total":1},{"make":"FETCi","desktops":0,"laptops":0,"servers":1,"soc":0,"smart_core":0,"total":1},{"make":"Axiomtek","desktops":0,"laptops":0,"servers":0,"soc":0,"smart_core":1,"total":1},{"make":"InoNet
+ Computer GmbH","desktops":0,"laptops":0,"servers":0,"soc":0,"smart_core":1,"total":1},{"make":"Avnet
+ IoT Gateway","desktops":0,"laptops":0,"servers":0,"soc":0,"smart_core":1,"total":1}]}'
headers:
Allow:
- GET, HEAD, OPTIONS
Connection:
- keep-alive
Content-Length:
- - '5108'
+ - '5104'
Content-Type:
- application/json
Date:
- - Tue, 30 Apr 2024 09:47:19 GMT
+ - Tue, 03 Sep 2024 15:26:40 GMT
Strict-Transport-Security:
- max-age=15724800; includeSubDomains
Vary:
@@ -115,9 +115,9 @@ interactions:
X-QueryInspect-Num-SQL-Queries:
- '2'
X-QueryInspect-Total-Request-Time:
- - 87 ms
+ - 112 ms
X-QueryInspect-Total-SQL-Time:
- - 72 ms
+ - 100 ms
status:
code: 200
message: OK
@@ -136,25 +136,26 @@ interactions:
uri: https://certification.canonical.com/api/v2/certified-releases/?format=json&limit=0&pagination=limitoffset
response:
body:
- string: '{"count":8,"next":null,"previous":null,"results":[{"release":"Core
+ string: '{"count":9,"next":null,"previous":null,"results":[{"release":"Core
22","desktops":5,"laptops":0,"servers":0,"soc":0,"smart_core":13,"total":18},{"release":"24.04
- LTS","desktops":0,"laptops":0,"servers":2,"soc":0,"smart_core":8,"total":10},{"release":"20.04
- LTS","desktops":204,"laptops":431,"servers":460,"soc":5,"smart_core":45,"total":1165},{"release":"Core
+ LTS","desktops":0,"laptops":0,"servers":140,"soc":1,"smart_core":8,"total":149},{"release":"20.04
+ LTS","desktops":208,"laptops":431,"servers":455,"soc":5,"smart_core":45,"total":1159},{"release":"Core
20","desktops":0,"laptops":0,"servers":0,"soc":0,"smart_core":26,"total":26},{"release":"Core
18","desktops":2,"laptops":0,"servers":0,"soc":0,"smart_core":5,"total":7},{"release":"18.04
LTS","desktops":115,"laptops":254,"servers":397,"soc":10,"smart_core":6,"total":792},{"release":"18.04","desktops":0,"laptops":0,"servers":2,"soc":0,"smart_core":0,"total":2},{"release":"22.04
- LTS","desktops":145,"laptops":269,"servers":496,"soc":0,"smart_core":48,"total":1015}]}'
+ LTS","desktops":229,"laptops":366,"servers":509,"soc":0,"smart_core":52,"total":1158},{"release":"Core
+ 24","desktops":0,"laptops":0,"servers":0,"soc":0,"smart_core":8,"total":8}]}'
headers:
Allow:
- GET, HEAD, OPTIONS
Connection:
- keep-alive
Content-Length:
- - '827'
+ - '922'
Content-Type:
- application/json
Date:
- - Tue, 30 Apr 2024 09:47:20 GMT
+ - Tue, 03 Sep 2024 15:26:40 GMT
Strict-Transport-Security:
- max-age=15724800; includeSubDomains
Vary:
@@ -164,9 +165,9 @@ interactions:
X-QueryInspect-Num-SQL-Queries:
- '2'
X-QueryInspect-Total-Request-Time:
- - 126 ms
+ - 130 ms
X-QueryInspect-Total-SQL-Time:
- - 109 ms
+ - 120 ms
status:
code: 200
message: OK
@@ -185,49 +186,48 @@ interactions:
uri: https://certification.canonical.com/api/v2/certified-vendors/?format=json&limit=0&pagination=limitoffset
response:
body:
- string: '{"count":52,"next":null,"previous":null,"results":[{"make":"Dell","desktops":143,"laptops":494,"servers":15,"soc":0,"smart_core":9,"total":697},{"make":"Lenovo","desktops":136,"laptops":245,"servers":119,"soc":0,"smart_core":5,"total":526},{"make":"HP","desktops":137,"laptops":170,"servers":2,"soc":0,"smart_core":0,"total":326},{"make":"Supermicro","desktops":0,"laptops":0,"servers":111,"soc":0,"smart_core":0,"total":111},{"make":"HPE","desktops":0,"laptops":0,"servers":100,"soc":0,"smart_core":0,"total":100},{"make":"Dell
- Technologies","desktops":0,"laptops":0,"servers":98,"soc":0,"smart_core":0,"total":98},{"make":"ASUSTeK
+ string: '{"count":52,"next":null,"previous":null,"results":[{"make":"Dell","desktops":164,"laptops":507,"servers":15,"soc":0,"smart_core":14,"total":716},{"make":"Lenovo","desktops":171,"laptops":275,"servers":123,"soc":0,"smart_core":5,"total":575},{"make":"HP","desktops":170,"laptops":222,"servers":2,"soc":0,"smart_core":0,"total":394},{"make":"Supermicro","desktops":0,"laptops":0,"servers":111,"soc":0,"smart_core":0,"total":111},{"make":"Dell
+ Technologies","desktops":0,"laptops":0,"servers":107,"soc":0,"smart_core":0,"total":107},{"make":"HPE","desktops":0,"laptops":0,"servers":94,"soc":0,"smart_core":0,"total":94},{"make":"ASUSTeK
Computer Inc.","desktops":0,"laptops":0,"servers":74,"soc":0,"smart_core":1,"total":75},{"make":"New
- H3C Technologies Co., Ltd","desktops":0,"laptops":0,"servers":58,"soc":0,"smart_core":0,"total":58},{"make":"IBM","desktops":0,"laptops":0,"servers":51,"soc":0,"smart_core":0,"total":51},{"make":"Huawei
+ H3C Technologies Co., Ltd","desktops":0,"laptops":0,"servers":64,"soc":0,"smart_core":0,"total":64},{"make":"IBM","desktops":0,"laptops":0,"servers":56,"soc":0,"smart_core":0,"total":56},{"make":"Huawei
Technologies Co., Ltd.","desktops":0,"laptops":0,"servers":44,"soc":6,"smart_core":0,"total":50},{"make":"Cisco
- UCS","desktops":0,"laptops":0,"servers":36,"soc":0,"smart_core":0,"total":36},{"make":"QUANTA
- Computer Inc","desktops":0,"laptops":0,"servers":35,"soc":0,"smart_core":0,"total":35},{"make":"Fujitsu
- Limited.","desktops":0,"laptops":0,"servers":35,"soc":0,"smart_core":0,"total":35},{"make":"Inspur
+ UCS","desktops":0,"laptops":0,"servers":36,"soc":0,"smart_core":0,"total":36},{"make":"Fujitsu
+ Limited.","desktops":0,"laptops":0,"servers":35,"soc":0,"smart_core":0,"total":35},{"make":"QUANTA
+ Computer Inc","desktops":0,"laptops":0,"servers":35,"soc":0,"smart_core":0,"total":35},{"make":"Inspur
Electronic Information Industry Co., Ltd.","desktops":0,"laptops":0,"servers":26,"soc":0,"smart_core":0,"total":26},{"make":"xFusion
- Digital Technologies Co., Ltd.","desktops":0,"laptops":0,"servers":24,"soc":0,"smart_core":0,"total":24},{"make":"ADVANTECH","desktops":0,"laptops":0,"servers":0,"soc":0,"smart_core":23,"total":23},{"make":"Giga
- Computing","desktops":0,"laptops":0,"servers":19,"soc":0,"smart_core":0,"total":19},{"make":"IEIT
- SYSTEMS Co.,Ltd.","desktops":0,"laptops":0,"servers":18,"soc":0,"smart_core":0,"total":18},{"make":"Raspberry
- Pi Foundation","desktops":0,"laptops":0,"servers":0,"soc":0,"smart_core":17,"total":17},{"make":"NEC
- Corporation","desktops":0,"laptops":0,"servers":12,"soc":0,"smart_core":0,"total":12},{"make":"Asus","desktops":0,"laptops":0,"servers":11,"soc":0,"smart_core":1,"total":12},{"make":"ADLink
- Technology, Inc.","desktops":5,"laptops":0,"servers":0,"soc":0,"smart_core":5,"total":10},{"make":"Ericsson,
- Inc.","desktops":0,"laptops":0,"servers":7,"soc":0,"smart_core":0,"total":7},{"make":"Intel
- Corp.","desktops":2,"laptops":0,"servers":0,"soc":0,"smart_core":4,"total":6},{"make":"Xilinx","desktops":2,"laptops":0,"servers":0,"soc":0,"smart_core":4,"total":6},{"make":"nVidia","desktops":0,"laptops":0,"servers":5,"soc":0,"smart_core":0,"total":6},{"make":"Kontron","desktops":0,"laptops":0,"servers":5,"soc":0,"smart_core":0,"total":5},{"make":"AAEON
- Technology Inc.","desktops":0,"laptops":0,"servers":0,"soc":0,"smart_core":5,"total":5},{"make":"Cavium,
- Inc.","desktops":0,"laptops":0,"servers":3,"soc":2,"smart_core":0,"total":5},{"make":"Eurotech","desktops":0,"laptops":0,"servers":0,"soc":0,"smart_core":5,"total":5},{"make":"OnLogic","desktops":0,"laptops":0,"servers":0,"soc":0,"smart_core":4,"total":4},{"make":"Mediatek
- Inc.","desktops":0,"laptops":0,"servers":0,"soc":0,"smart_core":4,"total":4},{"make":"DFI","desktops":0,"laptops":0,"servers":0,"soc":0,"smart_core":4,"total":4},{"make":"Fujitsu","desktops":0,"laptops":0,"servers":4,"soc":0,"smart_core":0,"total":4},{"make":"Cisco
+ Digital Technologies Co., Ltd.","desktops":0,"laptops":0,"servers":25,"soc":0,"smart_core":0,"total":25},{"make":"ADVANTECH","desktops":0,"laptops":0,"servers":0,"soc":0,"smart_core":23,"total":23},{"make":"Giga
+ Computing","desktops":0,"laptops":0,"servers":22,"soc":0,"smart_core":0,"total":22},{"make":"Raspberry
+ Pi Foundation","desktops":0,"laptops":0,"servers":0,"soc":0,"smart_core":18,"total":18},{"make":"IEIT
+ SYSTEMS Co.,Ltd.","desktops":0,"laptops":0,"servers":18,"soc":0,"smart_core":0,"total":18},{"make":"Asus","desktops":0,"laptops":0,"servers":11,"soc":0,"smart_core":1,"total":12},{"make":"NEC
+ Corporation","desktops":0,"laptops":0,"servers":12,"soc":0,"smart_core":0,"total":12},{"make":"Fujitsu","desktops":0,"laptops":0,"servers":8,"soc":0,"smart_core":0,"total":8},{"make":"NVIDIA","desktops":0,"laptops":0,"servers":5,"soc":1,"smart_core":0,"total":8},{"make":"Ericsson,
+ Inc.","desktops":0,"laptops":0,"servers":7,"soc":0,"smart_core":0,"total":7},{"make":"Netweb","desktops":0,"laptops":0,"servers":7,"soc":0,"smart_core":0,"total":7},{"make":"Intel
+ Corp.","desktops":2,"laptops":0,"servers":0,"soc":0,"smart_core":4,"total":6},{"make":"Xilinx","desktops":2,"laptops":0,"servers":0,"soc":0,"smart_core":4,"total":6},{"make":"Eurotech","desktops":0,"laptops":0,"servers":0,"soc":0,"smart_core":5,"total":5},{"make":"Kontron","desktops":0,"laptops":0,"servers":5,"soc":0,"smart_core":0,"total":5},{"make":"AAEON
+ Technology Inc.","desktops":0,"laptops":0,"servers":0,"soc":0,"smart_core":5,"total":5},{"make":"ADLink
+ Technology, Inc.","desktops":0,"laptops":0,"servers":0,"soc":0,"smart_core":5,"total":5},{"make":"Cavium,
+ Inc.","desktops":0,"laptops":0,"servers":3,"soc":2,"smart_core":0,"total":5},{"make":"DFI","desktops":0,"laptops":0,"servers":0,"soc":0,"smart_core":4,"total":4},{"make":"OnLogic","desktops":0,"laptops":0,"servers":0,"soc":0,"smart_core":4,"total":4},{"make":"Mediatek
+ Inc.","desktops":0,"laptops":0,"servers":0,"soc":0,"smart_core":4,"total":4},{"make":"Cisco
Systems","desktops":0,"laptops":0,"servers":3,"soc":0,"smart_core":0,"total":3},{"make":"Mellanox
Technologies","desktops":0,"laptops":0,"servers":0,"soc":0,"smart_core":1,"total":3},{"make":"Honeywell,
- Inc.","desktops":0,"laptops":0,"servers":0,"soc":0,"smart_core":3,"total":3},{"make":"Ampere
- Computing, LLC","desktops":0,"laptops":0,"servers":0,"soc":2,"smart_core":0,"total":2},{"make":"Wiwynn","desktops":0,"laptops":0,"servers":2,"soc":0,"smart_core":0,"total":2},{"make":"GIGA-BYTE
- TECHNOLOGY CO., LTD.","desktops":0,"laptops":0,"servers":2,"soc":0,"smart_core":0,"total":2},{"make":"ASRock
- Industrial","desktops":0,"laptops":0,"servers":0,"soc":0,"smart_core":2,"total":2},{"make":"ZTE","desktops":0,"laptops":0,"servers":2,"soc":0,"smart_core":0,"total":2},{"make":"Rigado","desktops":0,"laptops":0,"servers":0,"soc":0,"smart_core":2,"total":2},{"make":"InoNet
- Computer GmbH","desktops":0,"laptops":0,"servers":0,"soc":0,"smart_core":1,"total":1},{"make":"Siemens
- AG","desktops":0,"laptops":0,"servers":0,"soc":0,"smart_core":1,"total":1},{"make":"Axiomtek","desktops":0,"laptops":0,"servers":0,"soc":0,"smart_core":1,"total":1},{"make":"Interactive
- Strength Inc","desktops":0,"laptops":0,"servers":0,"soc":0,"smart_core":1,"total":1},{"make":"Element
- Biosciences","desktops":0,"laptops":0,"servers":0,"soc":0,"smart_core":1,"total":1},{"make":"IEI","desktops":1,"laptops":0,"servers":0,"soc":0,"smart_core":0,"total":1},{"make":"FETCi","desktops":0,"laptops":0,"servers":1,"soc":0,"smart_core":0,"total":1},{"make":"Avnet
- IoT Gateway","desktops":0,"laptops":0,"servers":0,"soc":0,"smart_core":1,"total":1},{"make":"Tyrone
- Systems","desktops":0,"laptops":0,"servers":1,"soc":0,"smart_core":0,"total":1}]}'
+ Inc.","desktops":0,"laptops":0,"servers":0,"soc":0,"smart_core":3,"total":3},{"make":"Wiwynn","desktops":0,"laptops":0,"servers":2,"soc":0,"smart_core":0,"total":2},{"make":"Tyrone
+ Systems","desktops":0,"laptops":0,"servers":2,"soc":0,"smart_core":0,"total":2},{"make":"GIGA-BYTE
+ TECHNOLOGY CO., LTD.","desktops":0,"laptops":0,"servers":2,"soc":0,"smart_core":0,"total":2},{"make":"ZTE","desktops":0,"laptops":0,"servers":2,"soc":0,"smart_core":0,"total":2},{"make":"Rigado","desktops":0,"laptops":0,"servers":0,"soc":0,"smart_core":2,"total":2},{"make":"Ampere
+ Computing, LLC","desktops":0,"laptops":0,"servers":0,"soc":2,"smart_core":0,"total":2},{"make":"ASRock
+ Industrial","desktops":0,"laptops":0,"servers":0,"soc":0,"smart_core":2,"total":2},{"make":"IEI","desktops":1,"laptops":0,"servers":0,"soc":0,"smart_core":0,"total":1},{"make":"Element
+ Biosciences","desktops":0,"laptops":0,"servers":0,"soc":0,"smart_core":1,"total":1},{"make":"Interactive
+ Strength Inc","desktops":0,"laptops":0,"servers":0,"soc":0,"smart_core":1,"total":1},{"make":"FETCi","desktops":0,"laptops":0,"servers":1,"soc":0,"smart_core":0,"total":1},{"make":"Axiomtek","desktops":0,"laptops":0,"servers":0,"soc":0,"smart_core":1,"total":1},{"make":"InoNet
+ Computer GmbH","desktops":0,"laptops":0,"servers":0,"soc":0,"smart_core":1,"total":1},{"make":"Avnet
+ IoT Gateway","desktops":0,"laptops":0,"servers":0,"soc":0,"smart_core":1,"total":1}]}'
headers:
Allow:
- GET, HEAD, OPTIONS
Connection:
- keep-alive
Content-Length:
- - '5108'
+ - '5104'
Content-Type:
- application/json
Date:
- - Tue, 30 Apr 2024 09:47:20 GMT
+ - Tue, 03 Sep 2024 15:26:41 GMT
Strict-Transport-Security:
- max-age=15724800; includeSubDomains
Vary:
@@ -237,9 +237,9 @@ interactions:
X-QueryInspect-Num-SQL-Queries:
- '2'
X-QueryInspect-Total-Request-Time:
- - 110 ms
+ - 125 ms
X-QueryInspect-Total-SQL-Time:
- - 98 ms
+ - 112 ms
status:
code: 200
message: OK
diff --git a/tests/cassettes/TestCertification.test_hardware_details.yaml b/tests/cassettes/TestCertification.test_hardware_details.yaml
index 1723bcdfb63..7df652e277c 100644
--- a/tests/cassettes/TestCertification.test_hardware_details.yaml
+++ b/tests/cassettes/TestCertification.test_hardware_details.yaml
@@ -27,7 +27,7 @@ interactions:
Content-Type:
- application/json
Date:
- - Tue, 30 Apr 2024 09:47:21 GMT
+ - Tue, 03 Sep 2024 15:26:42 GMT
Strict-Transport-Security:
- max-age=15724800; includeSubDomains
Vary:
@@ -35,11 +35,11 @@ interactions:
X-QueryInspect-Duplicate-SQL-Queries:
- '0'
X-QueryInspect-Num-SQL-Queries:
- - '6'
+ - '8'
X-QueryInspect-Total-Request-Time:
- - 60 ms
+ - 66 ms
X-QueryInspect-Total-SQL-Time:
- - 41 ms
+ - 50 ms
status:
code: 200
message: OK
@@ -59,23 +59,23 @@ interactions:
response:
body:
string: '{"count":1,"next":null,"previous":null,"results":[{"id":11539,"canonical_id":"201906-27091","architecture":"amd64","bios":null,"hardware_website":"","category":"Desktop","kernel_version":"4.15.0-1037-oem","notes":[],"make":"Dell","model":"OptiPlex
- 7071","processor":[{"name":"Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz","make":"Intel
- Corp.","bus":"dmi","identifier":"dmi:Intel(R)Core(TM)i9-9900KCPU@3.60GHz","subsystem":"","subproduct_name":"","vendor_id":4103,"subvendor_id":"","category":"PROCESSOR"}],"network":[{"name":"AQC108
+ 7071","platform_name":"OptiPlex 7071","platform_id":"9953","processor":[{"name":"Intel(R)
+ Core(TM) i9-9900K CPU @ 3.60GHz","make":"Intel Corp.","bus":"dmi","identifier":"dmi:Intel(R)Core(TM)i9-9900KCPU@3.60GHz","subsystem":"","subproduct_name":"","vendor_id":4103,"subvendor_id":"","category":"PROCESSOR"}],"network":[{"name":"AQC108
NBase-T/IEEE 802.3bz Ethernet Controller [AQtion]","make":"Aquantia Corp.","bus":"pci","identifier":"1d6a:d108","subsystem":"1d6a:0001","subproduct_name":"","vendor_id":5483,"subvendor_id":"","category":"NETWORK"},{"name":"Intel(R)
Ethernet Connection (7) I219-LM","make":"Intel Corp.","bus":"pci","identifier":"8086:15bb","subsystem":"","subproduct_name":"","vendor_id":4103,"subvendor_id":"","category":"NETWORK"}],"video":[{"name":"UHD
Graphics 630 (Desktop 9 Series)","make":"Intel Corp.","bus":"pci","identifier":"8086:3e98","subsystem":"1028:094b","subproduct_name":"","vendor_id":4103,"subvendor_id":"","category":"VIDEO"}],"wireless":[],"certified_release":"18.04
- LTS","level":"Certified Pre-Install","name":"1909-11539","form_factor":"Desktop"}]}'
+ LTS","level":"Certified Pre-Install","name":"1909-11539","form_factor":"Desktop","platform_certified_configuration_count":1}]}'
headers:
Allow:
- GET, HEAD, OPTIONS
Connection:
- keep-alive
Content-Length:
- - '1284'
+ - '1380'
Content-Type:
- application/json
Date:
- - Tue, 30 Apr 2024 09:47:21 GMT
+ - Tue, 03 Sep 2024 15:26:42 GMT
Strict-Transport-Security:
- max-age=15724800; includeSubDomains
Vary:
@@ -83,11 +83,11 @@ interactions:
X-QueryInspect-Duplicate-SQL-Queries:
- '0'
X-QueryInspect-Num-SQL-Queries:
- - '7'
+ - '8'
X-QueryInspect-Total-Request-Time:
- - 88 ms
+ - 93 ms
X-QueryInspect-Total-SQL-Time:
- - 54 ms
+ - 57 ms
status:
code: 200
message: OK
@@ -106,7 +106,7 @@ interactions:
uri: https://certification.canonical.com/api/v2/certified-configuration-devices/?format=json&limit=0&canonical_id=201906-27091&pagination=limitoffset
response:
body:
- string: '{"count":33,"next":null,"previous":null,"results":[{"canonical_id":"201906-27091","bus":"pci","identifier":"8086:a348","subsystem":"1028:094b","vendor_id":4103,"subvendor_id":null,"make":"Intel
+ string: '{"count":32,"next":null,"previous":null,"results":[{"canonical_id":"201906-27091","bus":"pci","identifier":"8086:a348","subsystem":"1028:094b","vendor_id":4103,"subvendor_id":null,"make":"Intel
Corp.","name":"Cannon Lake PCH cAVS","subproduct_name":null,"category":"AUDIO","raw_name":"Cannon
Lake PCH cAVS","raw_make":"Intel Corp."},{"canonical_id":"201906-27091","bus":"sound","identifier":"sound:Unknown","subsystem":null,"vendor_id":4103,"subvendor_id":null,"make":"Intel
Corp.","name":"Unknown","subproduct_name":null,"category":"AUDIO","raw_name":"Unknown","raw_make":"Intel
@@ -156,9 +156,7 @@ interactions:
Corp.","name":"Sky Lake PCIe Controller (x16)","subproduct_name":null,"category":"OTHER","raw_name":"Sky
Lake PCIe Controller (x16)","raw_make":"Intel Corp."},{"canonical_id":"201906-27091","bus":"pci","identifier":"8086:1911","subsystem":null,"vendor_id":4103,"subvendor_id":null,"make":"Intel
Corp.","name":"Sky Lake Gaussian Mixture Model","subproduct_name":null,"category":"OTHER","raw_name":"Sky
- Lake Gaussian Mixture Model","raw_make":"Intel Corp."},{"canonical_id":"201906-27091","bus":"pci","identifier":"8086:a36f","subsystem":"8086:7270","vendor_id":4103,"subvendor_id":null,"make":"Intel
- Corp.","name":"Cannon Lake PCH Shared SRAM","subproduct_name":null,"category":"OTHER","raw_name":"Cannon
- Lake PCH Shared SRAM","raw_make":"Intel Corp."},{"canonical_id":"201906-27091","bus":"tty","identifier":"tty:Multiportserialcontroller","subsystem":null,"vendor_id":1787,"subvendor_id":null,"make":"SUNIX
+ Lake Gaussian Mixture Model","raw_make":"Intel Corp."},{"canonical_id":"201906-27091","bus":"tty","identifier":"tty:Multiportserialcontroller","subsystem":null,"vendor_id":1787,"subvendor_id":null,"make":"SUNIX
Co., Ltd.","name":"Multiport serial controller","subproduct_name":null,"category":"OTHER","raw_name":"Multiport
serial controller","raw_make":"SUNIX Co., Ltd."},{"canonical_id":"201906-27091","bus":"tty","identifier":"tty:Unknown","subsystem":null,"vendor_id":4103,"subvendor_id":null,"make":"Intel
Corp.","name":"Unknown","subproduct_name":null,"category":"OTHER","raw_name":"Unknown","raw_make":"Intel
@@ -179,11 +177,11 @@ interactions:
Connection:
- keep-alive
Content-Length:
- - '10253'
+ - '9957'
Content-Type:
- application/json
Date:
- - Tue, 30 Apr 2024 09:47:21 GMT
+ - Tue, 03 Sep 2024 15:26:42 GMT
Strict-Transport-Security:
- max-age=15724800; includeSubDomains
Vary:
@@ -193,9 +191,9 @@ interactions:
X-QueryInspect-Num-SQL-Queries:
- '2'
X-QueryInspect-Total-Request-Time:
- - 302 ms
+ - 68 ms
X-QueryInspect-Total-SQL-Time:
- - 38 ms
+ - 50 ms
status:
code: 200
message: OK
diff --git a/tests/cassettes/TestCertification.test_home.yaml b/tests/cassettes/TestCertification.test_home.yaml
index 621e592ed4a..4430a82d6b9 100644
--- a/tests/cassettes/TestCertification.test_home.yaml
+++ b/tests/cassettes/TestCertification.test_home.yaml
@@ -14,25 +14,26 @@ interactions:
uri: https://certification.canonical.com/api/v2/certified-releases/?format=json&limit=0&pagination=limitoffset
response:
body:
- string: '{"count":8,"next":null,"previous":null,"results":[{"release":"Core
+ string: '{"count":9,"next":null,"previous":null,"results":[{"release":"Core
22","desktops":5,"laptops":0,"servers":0,"soc":0,"smart_core":13,"total":18},{"release":"24.04
- LTS","desktops":0,"laptops":0,"servers":2,"soc":0,"smart_core":8,"total":10},{"release":"20.04
- LTS","desktops":204,"laptops":431,"servers":460,"soc":5,"smart_core":45,"total":1165},{"release":"Core
+ LTS","desktops":0,"laptops":0,"servers":140,"soc":1,"smart_core":8,"total":149},{"release":"20.04
+ LTS","desktops":208,"laptops":431,"servers":455,"soc":5,"smart_core":45,"total":1159},{"release":"Core
20","desktops":0,"laptops":0,"servers":0,"soc":0,"smart_core":26,"total":26},{"release":"Core
18","desktops":2,"laptops":0,"servers":0,"soc":0,"smart_core":5,"total":7},{"release":"18.04
LTS","desktops":115,"laptops":254,"servers":397,"soc":10,"smart_core":6,"total":792},{"release":"18.04","desktops":0,"laptops":0,"servers":2,"soc":0,"smart_core":0,"total":2},{"release":"22.04
- LTS","desktops":145,"laptops":269,"servers":496,"soc":0,"smart_core":48,"total":1015}]}'
+ LTS","desktops":229,"laptops":366,"servers":509,"soc":0,"smart_core":52,"total":1158},{"release":"Core
+ 24","desktops":0,"laptops":0,"servers":0,"soc":0,"smart_core":8,"total":8}]}'
headers:
Allow:
- GET, HEAD, OPTIONS
Connection:
- keep-alive
Content-Length:
- - '827'
+ - '922'
Content-Type:
- application/json
Date:
- - Tue, 30 Apr 2024 09:47:22 GMT
+ - Tue, 03 Sep 2024 15:26:43 GMT
Strict-Transport-Security:
- max-age=15724800; includeSubDomains
Vary:
@@ -42,9 +43,9 @@ interactions:
X-QueryInspect-Num-SQL-Queries:
- '2'
X-QueryInspect-Total-Request-Time:
- - 117 ms
+ - 136 ms
X-QueryInspect-Total-SQL-Time:
- - 106 ms
+ - 125 ms
status:
code: 200
message: OK
@@ -63,49 +64,48 @@ interactions:
uri: https://certification.canonical.com/api/v2/certified-vendors/?format=json&limit=0&pagination=limitoffset
response:
body:
- string: '{"count":52,"next":null,"previous":null,"results":[{"make":"Dell","desktops":143,"laptops":494,"servers":15,"soc":0,"smart_core":9,"total":697},{"make":"Lenovo","desktops":136,"laptops":245,"servers":119,"soc":0,"smart_core":5,"total":526},{"make":"HP","desktops":137,"laptops":170,"servers":2,"soc":0,"smart_core":0,"total":326},{"make":"Supermicro","desktops":0,"laptops":0,"servers":111,"soc":0,"smart_core":0,"total":111},{"make":"HPE","desktops":0,"laptops":0,"servers":100,"soc":0,"smart_core":0,"total":100},{"make":"Dell
- Technologies","desktops":0,"laptops":0,"servers":98,"soc":0,"smart_core":0,"total":98},{"make":"ASUSTeK
+ string: '{"count":52,"next":null,"previous":null,"results":[{"make":"Dell","desktops":164,"laptops":507,"servers":15,"soc":0,"smart_core":14,"total":716},{"make":"Lenovo","desktops":171,"laptops":275,"servers":123,"soc":0,"smart_core":5,"total":575},{"make":"HP","desktops":170,"laptops":222,"servers":2,"soc":0,"smart_core":0,"total":394},{"make":"Supermicro","desktops":0,"laptops":0,"servers":111,"soc":0,"smart_core":0,"total":111},{"make":"Dell
+ Technologies","desktops":0,"laptops":0,"servers":107,"soc":0,"smart_core":0,"total":107},{"make":"HPE","desktops":0,"laptops":0,"servers":94,"soc":0,"smart_core":0,"total":94},{"make":"ASUSTeK
Computer Inc.","desktops":0,"laptops":0,"servers":74,"soc":0,"smart_core":1,"total":75},{"make":"New
- H3C Technologies Co., Ltd","desktops":0,"laptops":0,"servers":58,"soc":0,"smart_core":0,"total":58},{"make":"IBM","desktops":0,"laptops":0,"servers":51,"soc":0,"smart_core":0,"total":51},{"make":"Huawei
+ H3C Technologies Co., Ltd","desktops":0,"laptops":0,"servers":64,"soc":0,"smart_core":0,"total":64},{"make":"IBM","desktops":0,"laptops":0,"servers":56,"soc":0,"smart_core":0,"total":56},{"make":"Huawei
Technologies Co., Ltd.","desktops":0,"laptops":0,"servers":44,"soc":6,"smart_core":0,"total":50},{"make":"Cisco
- UCS","desktops":0,"laptops":0,"servers":36,"soc":0,"smart_core":0,"total":36},{"make":"QUANTA
- Computer Inc","desktops":0,"laptops":0,"servers":35,"soc":0,"smart_core":0,"total":35},{"make":"Fujitsu
- Limited.","desktops":0,"laptops":0,"servers":35,"soc":0,"smart_core":0,"total":35},{"make":"Inspur
+ UCS","desktops":0,"laptops":0,"servers":36,"soc":0,"smart_core":0,"total":36},{"make":"Fujitsu
+ Limited.","desktops":0,"laptops":0,"servers":35,"soc":0,"smart_core":0,"total":35},{"make":"QUANTA
+ Computer Inc","desktops":0,"laptops":0,"servers":35,"soc":0,"smart_core":0,"total":35},{"make":"Inspur
Electronic Information Industry Co., Ltd.","desktops":0,"laptops":0,"servers":26,"soc":0,"smart_core":0,"total":26},{"make":"xFusion
- Digital Technologies Co., Ltd.","desktops":0,"laptops":0,"servers":24,"soc":0,"smart_core":0,"total":24},{"make":"ADVANTECH","desktops":0,"laptops":0,"servers":0,"soc":0,"smart_core":23,"total":23},{"make":"Giga
- Computing","desktops":0,"laptops":0,"servers":19,"soc":0,"smart_core":0,"total":19},{"make":"IEIT
- SYSTEMS Co.,Ltd.","desktops":0,"laptops":0,"servers":18,"soc":0,"smart_core":0,"total":18},{"make":"Raspberry
- Pi Foundation","desktops":0,"laptops":0,"servers":0,"soc":0,"smart_core":17,"total":17},{"make":"NEC
- Corporation","desktops":0,"laptops":0,"servers":12,"soc":0,"smart_core":0,"total":12},{"make":"Asus","desktops":0,"laptops":0,"servers":11,"soc":0,"smart_core":1,"total":12},{"make":"ADLink
- Technology, Inc.","desktops":5,"laptops":0,"servers":0,"soc":0,"smart_core":5,"total":10},{"make":"Ericsson,
- Inc.","desktops":0,"laptops":0,"servers":7,"soc":0,"smart_core":0,"total":7},{"make":"Intel
- Corp.","desktops":2,"laptops":0,"servers":0,"soc":0,"smart_core":4,"total":6},{"make":"Xilinx","desktops":2,"laptops":0,"servers":0,"soc":0,"smart_core":4,"total":6},{"make":"nVidia","desktops":0,"laptops":0,"servers":5,"soc":0,"smart_core":0,"total":6},{"make":"Kontron","desktops":0,"laptops":0,"servers":5,"soc":0,"smart_core":0,"total":5},{"make":"AAEON
- Technology Inc.","desktops":0,"laptops":0,"servers":0,"soc":0,"smart_core":5,"total":5},{"make":"Cavium,
- Inc.","desktops":0,"laptops":0,"servers":3,"soc":2,"smart_core":0,"total":5},{"make":"Eurotech","desktops":0,"laptops":0,"servers":0,"soc":0,"smart_core":5,"total":5},{"make":"OnLogic","desktops":0,"laptops":0,"servers":0,"soc":0,"smart_core":4,"total":4},{"make":"Mediatek
- Inc.","desktops":0,"laptops":0,"servers":0,"soc":0,"smart_core":4,"total":4},{"make":"DFI","desktops":0,"laptops":0,"servers":0,"soc":0,"smart_core":4,"total":4},{"make":"Fujitsu","desktops":0,"laptops":0,"servers":4,"soc":0,"smart_core":0,"total":4},{"make":"Cisco
+ Digital Technologies Co., Ltd.","desktops":0,"laptops":0,"servers":25,"soc":0,"smart_core":0,"total":25},{"make":"ADVANTECH","desktops":0,"laptops":0,"servers":0,"soc":0,"smart_core":23,"total":23},{"make":"Giga
+ Computing","desktops":0,"laptops":0,"servers":22,"soc":0,"smart_core":0,"total":22},{"make":"Raspberry
+ Pi Foundation","desktops":0,"laptops":0,"servers":0,"soc":0,"smart_core":18,"total":18},{"make":"IEIT
+ SYSTEMS Co.,Ltd.","desktops":0,"laptops":0,"servers":18,"soc":0,"smart_core":0,"total":18},{"make":"Asus","desktops":0,"laptops":0,"servers":11,"soc":0,"smart_core":1,"total":12},{"make":"NEC
+ Corporation","desktops":0,"laptops":0,"servers":12,"soc":0,"smart_core":0,"total":12},{"make":"Fujitsu","desktops":0,"laptops":0,"servers":8,"soc":0,"smart_core":0,"total":8},{"make":"NVIDIA","desktops":0,"laptops":0,"servers":5,"soc":1,"smart_core":0,"total":8},{"make":"Ericsson,
+ Inc.","desktops":0,"laptops":0,"servers":7,"soc":0,"smart_core":0,"total":7},{"make":"Netweb","desktops":0,"laptops":0,"servers":7,"soc":0,"smart_core":0,"total":7},{"make":"Intel
+ Corp.","desktops":2,"laptops":0,"servers":0,"soc":0,"smart_core":4,"total":6},{"make":"Xilinx","desktops":2,"laptops":0,"servers":0,"soc":0,"smart_core":4,"total":6},{"make":"Eurotech","desktops":0,"laptops":0,"servers":0,"soc":0,"smart_core":5,"total":5},{"make":"Kontron","desktops":0,"laptops":0,"servers":5,"soc":0,"smart_core":0,"total":5},{"make":"AAEON
+ Technology Inc.","desktops":0,"laptops":0,"servers":0,"soc":0,"smart_core":5,"total":5},{"make":"ADLink
+ Technology, Inc.","desktops":0,"laptops":0,"servers":0,"soc":0,"smart_core":5,"total":5},{"make":"Cavium,
+ Inc.","desktops":0,"laptops":0,"servers":3,"soc":2,"smart_core":0,"total":5},{"make":"DFI","desktops":0,"laptops":0,"servers":0,"soc":0,"smart_core":4,"total":4},{"make":"OnLogic","desktops":0,"laptops":0,"servers":0,"soc":0,"smart_core":4,"total":4},{"make":"Mediatek
+ Inc.","desktops":0,"laptops":0,"servers":0,"soc":0,"smart_core":4,"total":4},{"make":"Cisco
Systems","desktops":0,"laptops":0,"servers":3,"soc":0,"smart_core":0,"total":3},{"make":"Mellanox
Technologies","desktops":0,"laptops":0,"servers":0,"soc":0,"smart_core":1,"total":3},{"make":"Honeywell,
- Inc.","desktops":0,"laptops":0,"servers":0,"soc":0,"smart_core":3,"total":3},{"make":"Ampere
- Computing, LLC","desktops":0,"laptops":0,"servers":0,"soc":2,"smart_core":0,"total":2},{"make":"Wiwynn","desktops":0,"laptops":0,"servers":2,"soc":0,"smart_core":0,"total":2},{"make":"GIGA-BYTE
- TECHNOLOGY CO., LTD.","desktops":0,"laptops":0,"servers":2,"soc":0,"smart_core":0,"total":2},{"make":"ASRock
- Industrial","desktops":0,"laptops":0,"servers":0,"soc":0,"smart_core":2,"total":2},{"make":"ZTE","desktops":0,"laptops":0,"servers":2,"soc":0,"smart_core":0,"total":2},{"make":"Rigado","desktops":0,"laptops":0,"servers":0,"soc":0,"smart_core":2,"total":2},{"make":"InoNet
- Computer GmbH","desktops":0,"laptops":0,"servers":0,"soc":0,"smart_core":1,"total":1},{"make":"Siemens
- AG","desktops":0,"laptops":0,"servers":0,"soc":0,"smart_core":1,"total":1},{"make":"Axiomtek","desktops":0,"laptops":0,"servers":0,"soc":0,"smart_core":1,"total":1},{"make":"Interactive
- Strength Inc","desktops":0,"laptops":0,"servers":0,"soc":0,"smart_core":1,"total":1},{"make":"Element
- Biosciences","desktops":0,"laptops":0,"servers":0,"soc":0,"smart_core":1,"total":1},{"make":"IEI","desktops":1,"laptops":0,"servers":0,"soc":0,"smart_core":0,"total":1},{"make":"FETCi","desktops":0,"laptops":0,"servers":1,"soc":0,"smart_core":0,"total":1},{"make":"Avnet
- IoT Gateway","desktops":0,"laptops":0,"servers":0,"soc":0,"smart_core":1,"total":1},{"make":"Tyrone
- Systems","desktops":0,"laptops":0,"servers":1,"soc":0,"smart_core":0,"total":1}]}'
+ Inc.","desktops":0,"laptops":0,"servers":0,"soc":0,"smart_core":3,"total":3},{"make":"Wiwynn","desktops":0,"laptops":0,"servers":2,"soc":0,"smart_core":0,"total":2},{"make":"Tyrone
+ Systems","desktops":0,"laptops":0,"servers":2,"soc":0,"smart_core":0,"total":2},{"make":"GIGA-BYTE
+ TECHNOLOGY CO., LTD.","desktops":0,"laptops":0,"servers":2,"soc":0,"smart_core":0,"total":2},{"make":"ZTE","desktops":0,"laptops":0,"servers":2,"soc":0,"smart_core":0,"total":2},{"make":"Rigado","desktops":0,"laptops":0,"servers":0,"soc":0,"smart_core":2,"total":2},{"make":"Ampere
+ Computing, LLC","desktops":0,"laptops":0,"servers":0,"soc":2,"smart_core":0,"total":2},{"make":"ASRock
+ Industrial","desktops":0,"laptops":0,"servers":0,"soc":0,"smart_core":2,"total":2},{"make":"IEI","desktops":1,"laptops":0,"servers":0,"soc":0,"smart_core":0,"total":1},{"make":"Element
+ Biosciences","desktops":0,"laptops":0,"servers":0,"soc":0,"smart_core":1,"total":1},{"make":"Interactive
+ Strength Inc","desktops":0,"laptops":0,"servers":0,"soc":0,"smart_core":1,"total":1},{"make":"FETCi","desktops":0,"laptops":0,"servers":1,"soc":0,"smart_core":0,"total":1},{"make":"Axiomtek","desktops":0,"laptops":0,"servers":0,"soc":0,"smart_core":1,"total":1},{"make":"InoNet
+ Computer GmbH","desktops":0,"laptops":0,"servers":0,"soc":0,"smart_core":1,"total":1},{"make":"Avnet
+ IoT Gateway","desktops":0,"laptops":0,"servers":0,"soc":0,"smart_core":1,"total":1}]}'
headers:
Allow:
- GET, HEAD, OPTIONS
Connection:
- keep-alive
Content-Length:
- - '5108'
+ - '5104'
Content-Type:
- application/json
Date:
- - Tue, 30 Apr 2024 09:47:22 GMT
+ - Tue, 03 Sep 2024 15:26:43 GMT
Strict-Transport-Security:
- max-age=15724800; includeSubDomains
Vary:
@@ -115,9 +115,9 @@ interactions:
X-QueryInspect-Num-SQL-Queries:
- '2'
X-QueryInspect-Total-Request-Time:
- - 95 ms
+ - 139 ms
X-QueryInspect-Total-SQL-Time:
- - 79 ms
+ - 112 ms
status:
code: 200
message: OK
diff --git a/tests/cassettes/TestCertification.test_model_details.yaml b/tests/cassettes/TestCertification.test_model_details.yaml
index f857a872bfe..990e7b2d9eb 100644
--- a/tests/cassettes/TestCertification.test_model_details.yaml
+++ b/tests/cassettes/TestCertification.test_model_details.yaml
@@ -15,25 +15,25 @@ interactions:
response:
body:
string: '{"count":1,"next":null,"previous":null,"results":[{"id":11209,"canonical_id":"201807-26311","architecture":"amd64","bios":null,"hardware_website":"http://e.huawei.com/en/products/cloud-computing-dc/servers","category":"Server","kernel_version":"4.15.0-46-generic","notes":[],"make":"Huawei
- Technologies Co., Ltd.","model":"2288 V5","processor":[{"name":"Intel(R) Xeon(R)
- Platinum 8153 CPU @ 2.00GHz","make":"Intel Corp.","bus":"dmi","identifier":"dmi:Intel(R)Xeon(R)Platinum8153CPU@2.00GHz","subsystem":"","subproduct_name":"","vendor_id":4103,"subvendor_id":"","category":"PROCESSOR"}],"network":[{"name":"Ethernet
+ Technologies Co., Ltd.","model":"2288 V5","platform_name":"2288 V5","platform_id":"9472","processor":[{"name":"Intel(R)
+ Xeon(R) Platinum 8153 CPU @ 2.00GHz","make":"Intel Corp.","bus":"dmi","identifier":"dmi:Intel(R)Xeon(R)Platinum8153CPU@2.00GHz","subsystem":"","subproduct_name":"","vendor_id":4103,"subvendor_id":"","category":"PROCESSOR"}],"network":[{"name":"Ethernet
Connection X722 for 1GbE","make":"Intel Corp.","bus":"pci","identifier":"8086:37d1","subsystem":"","subproduct_name":"","vendor_id":4103,"subvendor_id":"","category":"NETWORK"},{"name":"Ethernet
Connection X722 for 1GbE","make":"Intel Corp.","bus":"pci","identifier":"8086:37d1","subsystem":"","subproduct_name":"","vendor_id":4103,"subvendor_id":"","category":"NETWORK"}],"video":[{"name":"Hi1710
[iBMC Intelligent Management system chip w/VGA support] Note: huawei claims
to use an SM750 VGA controller integrated in this chip.","make":"Huawei Technologies
Co., Ltd.","bus":"pci","identifier":"19e5:1711","subsystem":"","subproduct_name":"","vendor_id":3654,"subvendor_id":"","category":"VIDEO"}],"wireless":[],"certified_release":"18.04
- LTS","level":"Certified","name":"1903-11209","form_factor":"Server"}]}'
+ LTS","level":"Certified","name":"1903-11209","form_factor":"Server","platform_certified_configuration_count":1}]}'
headers:
Allow:
- GET, HEAD, OPTIONS
Connection:
- keep-alive
Content-Length:
- - '1426'
+ - '1516'
Content-Type:
- application/json
Date:
- - Tue, 30 Apr 2024 09:47:23 GMT
+ - Tue, 03 Sep 2024 15:26:44 GMT
Strict-Transport-Security:
- max-age=15724800; includeSubDomains
Vary:
@@ -41,11 +41,11 @@ interactions:
X-QueryInspect-Duplicate-SQL-Queries:
- '0'
X-QueryInspect-Num-SQL-Queries:
- - '7'
+ - '8'
X-QueryInspect-Total-Request-Time:
- - 121 ms
+ - 125 ms
X-QueryInspect-Total-SQL-Time:
- - 57 ms
+ - 60 ms
status:
code: 200
message: OK
@@ -75,7 +75,7 @@ interactions:
Content-Type:
- application/json
Date:
- - Tue, 30 Apr 2024 09:47:23 GMT
+ - Tue, 03 Sep 2024 15:26:44 GMT
Strict-Transport-Security:
- max-age=15724800; includeSubDomains
Vary:
@@ -85,9 +85,9 @@ interactions:
X-QueryInspect-Num-SQL-Queries:
- '1'
X-QueryInspect-Total-Request-Time:
- - 17 ms
+ - 14 ms
X-QueryInspect-Total-SQL-Time:
- - 12 ms
+ - 9 ms
status:
code: 200
message: OK
diff --git a/tests/cassettes/TestCertification.test_platform_details.yaml b/tests/cassettes/TestCertification.test_platform_details.yaml
new file mode 100644
index 00000000000..cb96fcbaf3f
--- /dev/null
+++ b/tests/cassettes/TestCertification.test_platform_details.yaml
@@ -0,0 +1,72 @@
+interactions:
+- request:
+ body: null
+ headers:
+ Accept:
+ - '*/*'
+ Accept-Encoding:
+ - gzip, deflate
+ Connection:
+ - keep-alive
+ User-Agent:
+ - python-requests/2.28.2
+ method: GET
+ uri: https://certification.canonical.com/api/v2/certified-platforms/14169/?format=json&pagination=limitoffset
+ response:
+ body:
+ string: '{"id":14169,"name":"G15 5530","vendor":"Dell","certificates":{"202212-31027":{"canonical_id":"202212-31027","releases":["22.04
+ LTS"],"date":"26 June 2023","video":[{"name":"GN21-X4","make":"NVIDIA","bus":"pci","identifier":"10de:28e0","subsystem":"1028:0bf7","subproduct_name":"","vendor_id":4353,"subvendor_id":4755,"category":"VIDEO"},{"name":"Alder
+ Lake-HX GT1 [UHD Graphics 770]","make":"Intel Corp.","bus":"pci","identifier":"8086:4688","subsystem":"1028:0bf7","subproduct_name":"","vendor_id":4103,"subvendor_id":4755,"category":"VIDEO"}],"network":[{"name":"RTL8111/8168/8411
+ PCI Express Gigabit Ethernet Controller","make":"Realtek Semiconductor Co.,
+ Ltd.","bus":"pci","identifier":"10ec:8168","subsystem":"10ec:0123","subproduct_name":"","vendor_id":286,"subvendor_id":286,"category":"NETWORK"}],"processor":[{"name":"13th
+ Gen Intel(R) Core(TM) i7-13700HX","make":"Intel Corp.","bus":"dmi","identifier":"dmi:13thGenIntel(R)Core(TM)i7-13700HX","subsystem":"","subproduct_name":"","vendor_id":4103,"subvendor_id":"","category":"PROCESSOR"}],"wireless":[{"name":"Raptor
+ Lake-S PCH CNVi WiFi","make":"Intel Corp.","bus":"pci","identifier":"8086:7a70","subsystem":"8086:4090","subproduct_name":"","vendor_id":4103,"subvendor_id":4103,"category":"WIRELESS"}],"name":"G15
+ 5530 (Core i7-13700HX, RTX 4060)"},"202212-31028":{"canonical_id":"202212-31028","releases":["22.04
+ LTS"],"date":"26 June 2023","video":[{"name":"GN21-X4","make":"NVIDIA","bus":"pci","identifier":"10de:28e0","subsystem":"1028:0bf7","subproduct_name":"","vendor_id":4353,"subvendor_id":4755,"category":"VIDEO"},{"name":"Raptor
+ Lake-S UHD Graphics","make":"Intel Corp.","bus":"pci","identifier":"8086:a78b","subsystem":"1028:0bf7","subproduct_name":"","vendor_id":4103,"subvendor_id":4755,"category":"VIDEO"}],"network":[{"name":"RTL8111/8168/8411
+ PCI Express Gigabit Ethernet Controller","make":"Realtek Semiconductor Co.,
+ Ltd.","bus":"pci","identifier":"10ec:8168","subsystem":"10ec:0123","subproduct_name":"","vendor_id":286,"subvendor_id":286,"category":"NETWORK"}],"processor":[{"name":"13th
+ Gen Intel(R) Core(TM) i7-13650HX","make":"Intel Corp.","bus":"dmi","identifier":"dmi:13thGenIntel(R)Core(TM)i7-13650HX","subsystem":"","subproduct_name":"","vendor_id":4103,"subvendor_id":"","category":"PROCESSOR"}],"wireless":[{"name":"Raptor
+ Lake-S PCH CNVi WiFi","make":"Intel Corp.","bus":"pci","identifier":"8086:7a70","subsystem":"1a56:1652","subproduct_name":"","vendor_id":4103,"subvendor_id":1746,"category":"WIRELESS"}],"name":"G15
+ 5530 (Core i7-13650HX, RTX 4060)"},"202212-31031":{"canonical_id":"202212-31031","releases":["22.04
+ LTS"],"date":"26 June 2023","video":[{"name":"GN20-P0-R-K2","make":"NVIDIA","bus":"pci","identifier":"10de:25ec","subsystem":"1028:0bf8","subproduct_name":"","vendor_id":4353,"subvendor_id":4755,"category":"VIDEO"},{"name":"Raptor
+ Lake-S UHD Graphics","make":"Intel Corp.","bus":"pci","identifier":"8086:a78b","subsystem":"1028:0bf8","subproduct_name":"","vendor_id":4103,"subvendor_id":4755,"category":"VIDEO"}],"network":[{"name":"RTL8111/8168/8411
+ PCI Express Gigabit Ethernet Controller","make":"Realtek Semiconductor Co.,
+ Ltd.","bus":"pci","identifier":"10ec:8168","subsystem":"10ec:0123","subproduct_name":"","vendor_id":286,"subvendor_id":286,"category":"NETWORK"}],"processor":[{"name":"13th
+ Gen Intel(R) Core(TM) i5-13450HX","make":"Intel Corp.","bus":"dmi","identifier":"dmi:13thGenIntel(R)Core(TM)i5-13450HX","subsystem":"","subproduct_name":"","vendor_id":4103,"subvendor_id":"","category":"PROCESSOR"}],"wireless":[{"name":"Raptor
+ Lake-S PCH CNVi WiFi","make":"Intel Corp.","bus":"pci","identifier":"8086:7a70","subsystem":"8086:4070","subproduct_name":"","vendor_id":4103,"subvendor_id":4103,"category":"WIRELESS"}],"name":"G15
+ 5530 (Core i5-13450HX, RTX 3050)"},"202212-31025":{"canonical_id":"202212-31025","releases":["22.04
+ LTS"],"date":"26 June 2023","video":[{"name":"GN21-X2","make":"NVIDIA","bus":"pci","identifier":"10de:28e1","subsystem":"1028:0bf7","subproduct_name":"","vendor_id":4353,"subvendor_id":4755,"category":"VIDEO"},{"name":"Raptor
+ Lake-S UHD Graphics","make":"Intel Corp.","bus":"pci","identifier":"8086:a78b","subsystem":"1028:0bf7","subproduct_name":"","vendor_id":4103,"subvendor_id":4755,"category":"VIDEO"}],"network":[{"name":"RTL8111/8168/8411
+ PCI Express Gigabit Ethernet Controller","make":"Realtek Semiconductor Co.,
+ Ltd.","bus":"pci","identifier":"10ec:8168","subsystem":"1028:0bf7","subproduct_name":"","vendor_id":286,"subvendor_id":4755,"category":"NETWORK"}],"processor":[{"name":"13th
+ Gen Intel(R) Core(TM) i7-13650HX","make":"Intel Corp.","bus":"dmi","identifier":"dmi:13thGenIntel(R)Core(TM)i7-13650HX","subsystem":"","subproduct_name":"","vendor_id":4103,"subvendor_id":"","category":"PROCESSOR"}],"wireless":[{"name":"Raptor
+ Lake-S PCH CNVi WiFi","make":"Intel Corp.","bus":"pci","identifier":"8086:7a70","subsystem":"8086:4070","subproduct_name":"","vendor_id":4103,"subvendor_id":4103,"category":"WIRELESS"}],"name":"G15
+ 5530 (Core i7-13650HX , RTX 4050)"}},"category":"Laptop"}'
+ headers:
+ Allow:
+ - GET, HEAD, OPTIONS
+ Connection:
+ - keep-alive
+ Content-Length:
+ - '5048'
+ Content-Type:
+ - application/json
+ Date:
+ - Tue, 03 Sep 2024 15:26:44 GMT
+ Strict-Transport-Security:
+ - max-age=15724800; includeSubDomains
+ Vary:
+ - Accept, Cookie
+ X-QueryInspect-Duplicate-SQL-Queries:
+ - '0'
+ X-QueryInspect-Num-SQL-Queries:
+ - '10'
+ X-QueryInspect-Total-Request-Time:
+ - 140 ms
+ X-QueryInspect-Total-SQL-Time:
+ - 80 ms
+ status:
+ code: 200
+ message: OK
+version: 1
diff --git a/tests/cassettes/TestCertification.test_search_results.yaml b/tests/cassettes/TestCertification.test_search_results.yaml
index 675db4c2227..a3c08436ac6 100644
--- a/tests/cassettes/TestCertification.test_search_results.yaml
+++ b/tests/cassettes/TestCertification.test_search_results.yaml
@@ -14,25 +14,26 @@ interactions:
uri: https://certification.canonical.com/api/v2/certified-releases/?format=json&limit=0&pagination=limitoffset
response:
body:
- string: '{"count":8,"next":null,"previous":null,"results":[{"release":"Core
+ string: '{"count":9,"next":null,"previous":null,"results":[{"release":"Core
22","desktops":5,"laptops":0,"servers":0,"soc":0,"smart_core":13,"total":18},{"release":"24.04
- LTS","desktops":0,"laptops":0,"servers":2,"soc":0,"smart_core":8,"total":10},{"release":"20.04
- LTS","desktops":204,"laptops":431,"servers":460,"soc":5,"smart_core":45,"total":1165},{"release":"Core
+ LTS","desktops":0,"laptops":0,"servers":140,"soc":1,"smart_core":8,"total":149},{"release":"20.04
+ LTS","desktops":208,"laptops":431,"servers":455,"soc":5,"smart_core":45,"total":1159},{"release":"Core
20","desktops":0,"laptops":0,"servers":0,"soc":0,"smart_core":26,"total":26},{"release":"Core
18","desktops":2,"laptops":0,"servers":0,"soc":0,"smart_core":5,"total":7},{"release":"18.04
LTS","desktops":115,"laptops":254,"servers":397,"soc":10,"smart_core":6,"total":792},{"release":"18.04","desktops":0,"laptops":0,"servers":2,"soc":0,"smart_core":0,"total":2},{"release":"22.04
- LTS","desktops":145,"laptops":269,"servers":496,"soc":0,"smart_core":48,"total":1015}]}'
+ LTS","desktops":229,"laptops":366,"servers":509,"soc":0,"smart_core":52,"total":1158},{"release":"Core
+ 24","desktops":0,"laptops":0,"servers":0,"soc":0,"smart_core":8,"total":8}]}'
headers:
Allow:
- GET, HEAD, OPTIONS
Connection:
- keep-alive
Content-Length:
- - '827'
+ - '922'
Content-Type:
- application/json
Date:
- - Tue, 30 Apr 2024 09:47:23 GMT
+ - Tue, 03 Sep 2024 15:26:45 GMT
Strict-Transport-Security:
- max-age=15724800; includeSubDomains
Vary:
@@ -42,9 +43,9 @@ interactions:
X-QueryInspect-Num-SQL-Queries:
- '2'
X-QueryInspect-Total-Request-Time:
- - 108 ms
+ - 116 ms
X-QueryInspect-Total-SQL-Time:
- - 97 ms
+ - 107 ms
status:
code: 200
message: OK
@@ -63,49 +64,48 @@ interactions:
uri: https://certification.canonical.com/api/v2/certified-vendors/?format=json&limit=0&pagination=limitoffset
response:
body:
- string: '{"count":52,"next":null,"previous":null,"results":[{"make":"Dell","desktops":143,"laptops":494,"servers":15,"soc":0,"smart_core":9,"total":697},{"make":"Lenovo","desktops":136,"laptops":245,"servers":119,"soc":0,"smart_core":5,"total":526},{"make":"HP","desktops":137,"laptops":170,"servers":2,"soc":0,"smart_core":0,"total":326},{"make":"Supermicro","desktops":0,"laptops":0,"servers":111,"soc":0,"smart_core":0,"total":111},{"make":"HPE","desktops":0,"laptops":0,"servers":100,"soc":0,"smart_core":0,"total":100},{"make":"Dell
- Technologies","desktops":0,"laptops":0,"servers":98,"soc":0,"smart_core":0,"total":98},{"make":"ASUSTeK
+ string: '{"count":52,"next":null,"previous":null,"results":[{"make":"Dell","desktops":164,"laptops":507,"servers":15,"soc":0,"smart_core":14,"total":716},{"make":"Lenovo","desktops":171,"laptops":275,"servers":123,"soc":0,"smart_core":5,"total":575},{"make":"HP","desktops":170,"laptops":222,"servers":2,"soc":0,"smart_core":0,"total":394},{"make":"Supermicro","desktops":0,"laptops":0,"servers":111,"soc":0,"smart_core":0,"total":111},{"make":"Dell
+ Technologies","desktops":0,"laptops":0,"servers":107,"soc":0,"smart_core":0,"total":107},{"make":"HPE","desktops":0,"laptops":0,"servers":94,"soc":0,"smart_core":0,"total":94},{"make":"ASUSTeK
Computer Inc.","desktops":0,"laptops":0,"servers":74,"soc":0,"smart_core":1,"total":75},{"make":"New
- H3C Technologies Co., Ltd","desktops":0,"laptops":0,"servers":58,"soc":0,"smart_core":0,"total":58},{"make":"IBM","desktops":0,"laptops":0,"servers":51,"soc":0,"smart_core":0,"total":51},{"make":"Huawei
+ H3C Technologies Co., Ltd","desktops":0,"laptops":0,"servers":64,"soc":0,"smart_core":0,"total":64},{"make":"IBM","desktops":0,"laptops":0,"servers":56,"soc":0,"smart_core":0,"total":56},{"make":"Huawei
Technologies Co., Ltd.","desktops":0,"laptops":0,"servers":44,"soc":6,"smart_core":0,"total":50},{"make":"Cisco
- UCS","desktops":0,"laptops":0,"servers":36,"soc":0,"smart_core":0,"total":36},{"make":"QUANTA
- Computer Inc","desktops":0,"laptops":0,"servers":35,"soc":0,"smart_core":0,"total":35},{"make":"Fujitsu
- Limited.","desktops":0,"laptops":0,"servers":35,"soc":0,"smart_core":0,"total":35},{"make":"Inspur
+ UCS","desktops":0,"laptops":0,"servers":36,"soc":0,"smart_core":0,"total":36},{"make":"Fujitsu
+ Limited.","desktops":0,"laptops":0,"servers":35,"soc":0,"smart_core":0,"total":35},{"make":"QUANTA
+ Computer Inc","desktops":0,"laptops":0,"servers":35,"soc":0,"smart_core":0,"total":35},{"make":"Inspur
Electronic Information Industry Co., Ltd.","desktops":0,"laptops":0,"servers":26,"soc":0,"smart_core":0,"total":26},{"make":"xFusion
- Digital Technologies Co., Ltd.","desktops":0,"laptops":0,"servers":24,"soc":0,"smart_core":0,"total":24},{"make":"ADVANTECH","desktops":0,"laptops":0,"servers":0,"soc":0,"smart_core":23,"total":23},{"make":"Giga
- Computing","desktops":0,"laptops":0,"servers":19,"soc":0,"smart_core":0,"total":19},{"make":"IEIT
- SYSTEMS Co.,Ltd.","desktops":0,"laptops":0,"servers":18,"soc":0,"smart_core":0,"total":18},{"make":"Raspberry
- Pi Foundation","desktops":0,"laptops":0,"servers":0,"soc":0,"smart_core":17,"total":17},{"make":"NEC
- Corporation","desktops":0,"laptops":0,"servers":12,"soc":0,"smart_core":0,"total":12},{"make":"Asus","desktops":0,"laptops":0,"servers":11,"soc":0,"smart_core":1,"total":12},{"make":"ADLink
- Technology, Inc.","desktops":5,"laptops":0,"servers":0,"soc":0,"smart_core":5,"total":10},{"make":"Ericsson,
- Inc.","desktops":0,"laptops":0,"servers":7,"soc":0,"smart_core":0,"total":7},{"make":"Intel
- Corp.","desktops":2,"laptops":0,"servers":0,"soc":0,"smart_core":4,"total":6},{"make":"Xilinx","desktops":2,"laptops":0,"servers":0,"soc":0,"smart_core":4,"total":6},{"make":"nVidia","desktops":0,"laptops":0,"servers":5,"soc":0,"smart_core":0,"total":6},{"make":"Kontron","desktops":0,"laptops":0,"servers":5,"soc":0,"smart_core":0,"total":5},{"make":"AAEON
- Technology Inc.","desktops":0,"laptops":0,"servers":0,"soc":0,"smart_core":5,"total":5},{"make":"Cavium,
- Inc.","desktops":0,"laptops":0,"servers":3,"soc":2,"smart_core":0,"total":5},{"make":"Eurotech","desktops":0,"laptops":0,"servers":0,"soc":0,"smart_core":5,"total":5},{"make":"OnLogic","desktops":0,"laptops":0,"servers":0,"soc":0,"smart_core":4,"total":4},{"make":"Mediatek
- Inc.","desktops":0,"laptops":0,"servers":0,"soc":0,"smart_core":4,"total":4},{"make":"DFI","desktops":0,"laptops":0,"servers":0,"soc":0,"smart_core":4,"total":4},{"make":"Fujitsu","desktops":0,"laptops":0,"servers":4,"soc":0,"smart_core":0,"total":4},{"make":"Cisco
+ Digital Technologies Co., Ltd.","desktops":0,"laptops":0,"servers":25,"soc":0,"smart_core":0,"total":25},{"make":"ADVANTECH","desktops":0,"laptops":0,"servers":0,"soc":0,"smart_core":23,"total":23},{"make":"Giga
+ Computing","desktops":0,"laptops":0,"servers":22,"soc":0,"smart_core":0,"total":22},{"make":"Raspberry
+ Pi Foundation","desktops":0,"laptops":0,"servers":0,"soc":0,"smart_core":18,"total":18},{"make":"IEIT
+ SYSTEMS Co.,Ltd.","desktops":0,"laptops":0,"servers":18,"soc":0,"smart_core":0,"total":18},{"make":"Asus","desktops":0,"laptops":0,"servers":11,"soc":0,"smart_core":1,"total":12},{"make":"NEC
+ Corporation","desktops":0,"laptops":0,"servers":12,"soc":0,"smart_core":0,"total":12},{"make":"Fujitsu","desktops":0,"laptops":0,"servers":8,"soc":0,"smart_core":0,"total":8},{"make":"NVIDIA","desktops":0,"laptops":0,"servers":5,"soc":1,"smart_core":0,"total":8},{"make":"Ericsson,
+ Inc.","desktops":0,"laptops":0,"servers":7,"soc":0,"smart_core":0,"total":7},{"make":"Netweb","desktops":0,"laptops":0,"servers":7,"soc":0,"smart_core":0,"total":7},{"make":"Intel
+ Corp.","desktops":2,"laptops":0,"servers":0,"soc":0,"smart_core":4,"total":6},{"make":"Xilinx","desktops":2,"laptops":0,"servers":0,"soc":0,"smart_core":4,"total":6},{"make":"Eurotech","desktops":0,"laptops":0,"servers":0,"soc":0,"smart_core":5,"total":5},{"make":"Kontron","desktops":0,"laptops":0,"servers":5,"soc":0,"smart_core":0,"total":5},{"make":"AAEON
+ Technology Inc.","desktops":0,"laptops":0,"servers":0,"soc":0,"smart_core":5,"total":5},{"make":"ADLink
+ Technology, Inc.","desktops":0,"laptops":0,"servers":0,"soc":0,"smart_core":5,"total":5},{"make":"Cavium,
+ Inc.","desktops":0,"laptops":0,"servers":3,"soc":2,"smart_core":0,"total":5},{"make":"DFI","desktops":0,"laptops":0,"servers":0,"soc":0,"smart_core":4,"total":4},{"make":"OnLogic","desktops":0,"laptops":0,"servers":0,"soc":0,"smart_core":4,"total":4},{"make":"Mediatek
+ Inc.","desktops":0,"laptops":0,"servers":0,"soc":0,"smart_core":4,"total":4},{"make":"Cisco
Systems","desktops":0,"laptops":0,"servers":3,"soc":0,"smart_core":0,"total":3},{"make":"Mellanox
Technologies","desktops":0,"laptops":0,"servers":0,"soc":0,"smart_core":1,"total":3},{"make":"Honeywell,
- Inc.","desktops":0,"laptops":0,"servers":0,"soc":0,"smart_core":3,"total":3},{"make":"Ampere
- Computing, LLC","desktops":0,"laptops":0,"servers":0,"soc":2,"smart_core":0,"total":2},{"make":"Wiwynn","desktops":0,"laptops":0,"servers":2,"soc":0,"smart_core":0,"total":2},{"make":"GIGA-BYTE
- TECHNOLOGY CO., LTD.","desktops":0,"laptops":0,"servers":2,"soc":0,"smart_core":0,"total":2},{"make":"ASRock
- Industrial","desktops":0,"laptops":0,"servers":0,"soc":0,"smart_core":2,"total":2},{"make":"ZTE","desktops":0,"laptops":0,"servers":2,"soc":0,"smart_core":0,"total":2},{"make":"Rigado","desktops":0,"laptops":0,"servers":0,"soc":0,"smart_core":2,"total":2},{"make":"InoNet
- Computer GmbH","desktops":0,"laptops":0,"servers":0,"soc":0,"smart_core":1,"total":1},{"make":"Siemens
- AG","desktops":0,"laptops":0,"servers":0,"soc":0,"smart_core":1,"total":1},{"make":"Axiomtek","desktops":0,"laptops":0,"servers":0,"soc":0,"smart_core":1,"total":1},{"make":"Interactive
- Strength Inc","desktops":0,"laptops":0,"servers":0,"soc":0,"smart_core":1,"total":1},{"make":"Element
- Biosciences","desktops":0,"laptops":0,"servers":0,"soc":0,"smart_core":1,"total":1},{"make":"IEI","desktops":1,"laptops":0,"servers":0,"soc":0,"smart_core":0,"total":1},{"make":"FETCi","desktops":0,"laptops":0,"servers":1,"soc":0,"smart_core":0,"total":1},{"make":"Avnet
- IoT Gateway","desktops":0,"laptops":0,"servers":0,"soc":0,"smart_core":1,"total":1},{"make":"Tyrone
- Systems","desktops":0,"laptops":0,"servers":1,"soc":0,"smart_core":0,"total":1}]}'
+ Inc.","desktops":0,"laptops":0,"servers":0,"soc":0,"smart_core":3,"total":3},{"make":"Wiwynn","desktops":0,"laptops":0,"servers":2,"soc":0,"smart_core":0,"total":2},{"make":"Tyrone
+ Systems","desktops":0,"laptops":0,"servers":2,"soc":0,"smart_core":0,"total":2},{"make":"GIGA-BYTE
+ TECHNOLOGY CO., LTD.","desktops":0,"laptops":0,"servers":2,"soc":0,"smart_core":0,"total":2},{"make":"ZTE","desktops":0,"laptops":0,"servers":2,"soc":0,"smart_core":0,"total":2},{"make":"Rigado","desktops":0,"laptops":0,"servers":0,"soc":0,"smart_core":2,"total":2},{"make":"Ampere
+ Computing, LLC","desktops":0,"laptops":0,"servers":0,"soc":2,"smart_core":0,"total":2},{"make":"ASRock
+ Industrial","desktops":0,"laptops":0,"servers":0,"soc":0,"smart_core":2,"total":2},{"make":"IEI","desktops":1,"laptops":0,"servers":0,"soc":0,"smart_core":0,"total":1},{"make":"Element
+ Biosciences","desktops":0,"laptops":0,"servers":0,"soc":0,"smart_core":1,"total":1},{"make":"Interactive
+ Strength Inc","desktops":0,"laptops":0,"servers":0,"soc":0,"smart_core":1,"total":1},{"make":"FETCi","desktops":0,"laptops":0,"servers":1,"soc":0,"smart_core":0,"total":1},{"make":"Axiomtek","desktops":0,"laptops":0,"servers":0,"soc":0,"smart_core":1,"total":1},{"make":"InoNet
+ Computer GmbH","desktops":0,"laptops":0,"servers":0,"soc":0,"smart_core":1,"total":1},{"make":"Avnet
+ IoT Gateway","desktops":0,"laptops":0,"servers":0,"soc":0,"smart_core":1,"total":1}]}'
headers:
Allow:
- GET, HEAD, OPTIONS
Connection:
- keep-alive
Content-Length:
- - '5108'
+ - '5104'
Content-Type:
- application/json
Date:
- - Tue, 30 Apr 2024 09:47:23 GMT
+ - Tue, 03 Sep 2024 15:26:45 GMT
Strict-Transport-Security:
- max-age=15724800; includeSubDomains
Vary:
@@ -115,9 +115,9 @@ interactions:
X-QueryInspect-Num-SQL-Queries:
- '2'
X-QueryInspect-Total-Request-Time:
- - 119 ms
+ - 90 ms
X-QueryInspect-Total-SQL-Time:
- - 107 ms
+ - 76 ms
status:
code: 200
message: OK
@@ -187,7 +187,7 @@ interactions:
Content-Type:
- application/json
Date:
- - Tue, 30 Apr 2024 09:47:24 GMT
+ - Tue, 03 Sep 2024 15:26:45 GMT
Strict-Transport-Security:
- max-age=15724800; includeSubDomains
Vary:
@@ -195,11 +195,11 @@ interactions:
X-QueryInspect-Duplicate-SQL-Queries:
- '0'
X-QueryInspect-Num-SQL-Queries:
- - '6'
+ - '8'
X-QueryInspect-Total-Request-Time:
- - 228 ms
+ - 241 ms
X-QueryInspect-Total-SQL-Time:
- - 203 ms
+ - 221 ms
status:
code: 200
message: OK
diff --git a/tests/cassettes/TestCertification.test_vendor_pages.yaml b/tests/cassettes/TestCertification.test_vendor_pages.yaml
index 35dd36e26b9..7802e954f41 100644
--- a/tests/cassettes/TestCertification.test_vendor_pages.yaml
+++ b/tests/cassettes/TestCertification.test_vendor_pages.yaml
@@ -37,7 +37,7 @@ interactions:
cross-origin-opener-policy:
- same-origin
date:
- - Tue, 30 Apr 2024 09:47:24 GMT
+ - Tue, 03 Sep 2024 15:26:46 GMT
referrer-policy:
- same-origin
server:
@@ -45,13 +45,13 @@ interactions:
strict-transport-security:
- max-age=15724800
x-cache-status:
- - HIT from content-cache-il3/0
+ - HIT from content-cache-il3/1
x-content-type-options:
- nosniff
x-frame-options:
- DENY
x-request-id:
- - 95917deca2f681084e395d38289983cd
+ - 7f2f5927dc964fc5e7106ab758e78f4a
x-vcs-revision:
- 1697765408-2f1353b
status:
@@ -72,25 +72,26 @@ interactions:
uri: https://certification.canonical.com/api/v2/certified-releases/?format=json&limit=0&pagination=limitoffset
response:
body:
- string: '{"count":8,"next":null,"previous":null,"results":[{"release":"Core
+ string: '{"count":9,"next":null,"previous":null,"results":[{"release":"Core
22","desktops":5,"laptops":0,"servers":0,"soc":0,"smart_core":13,"total":18},{"release":"24.04
- LTS","desktops":0,"laptops":0,"servers":2,"soc":0,"smart_core":8,"total":10},{"release":"20.04
- LTS","desktops":204,"laptops":431,"servers":460,"soc":5,"smart_core":45,"total":1165},{"release":"Core
+ LTS","desktops":0,"laptops":0,"servers":140,"soc":1,"smart_core":8,"total":149},{"release":"20.04
+ LTS","desktops":208,"laptops":431,"servers":455,"soc":5,"smart_core":45,"total":1159},{"release":"Core
20","desktops":0,"laptops":0,"servers":0,"soc":0,"smart_core":26,"total":26},{"release":"Core
18","desktops":2,"laptops":0,"servers":0,"soc":0,"smart_core":5,"total":7},{"release":"18.04
LTS","desktops":115,"laptops":254,"servers":397,"soc":10,"smart_core":6,"total":792},{"release":"18.04","desktops":0,"laptops":0,"servers":2,"soc":0,"smart_core":0,"total":2},{"release":"22.04
- LTS","desktops":145,"laptops":269,"servers":496,"soc":0,"smart_core":48,"total":1015}]}'
+ LTS","desktops":229,"laptops":366,"servers":509,"soc":0,"smart_core":52,"total":1158},{"release":"Core
+ 24","desktops":0,"laptops":0,"servers":0,"soc":0,"smart_core":8,"total":8}]}'
headers:
Allow:
- GET, HEAD, OPTIONS
Connection:
- keep-alive
Content-Length:
- - '827'
+ - '922'
Content-Type:
- application/json
Date:
- - Tue, 30 Apr 2024 09:47:25 GMT
+ - Tue, 03 Sep 2024 15:26:46 GMT
Strict-Transport-Security:
- max-age=15724800; includeSubDomains
Vary:
@@ -100,9 +101,9 @@ interactions:
X-QueryInspect-Num-SQL-Queries:
- '2'
X-QueryInspect-Total-Request-Time:
- - 92 ms
+ - 108 ms
X-QueryInspect-Total-SQL-Time:
- - 81 ms
+ - 97 ms
status:
code: 200
message: OK
@@ -121,7 +122,7 @@ interactions:
uri: https://certification.canonical.com/api/v2/certified-configurations/?format=json&limit=20&offset=0&vendor=HP&pagination=limitoffset
response:
body:
- string: '{"count":326,"next":"https://certification.canonical.com/api/v2/certified-configurations/?format=json&limit=20&offset=20&pagination=limitoffset&vendor=HP","previous":null,"results":[{"canonical_id":"201810-26595","make":"HP","model":"240
+ string: '{"count":394,"next":"https://certification.canonical.com/api/v2/certified-configurations/?format=json&limit=20&offset=20&pagination=limitoffset&vendor=HP","previous":null,"results":[{"canonical_id":"201810-26595","make":"HP","model":"240
G7 Notebook PC","level":"Certified Pre-Install","release":"18.04 LTS","category":"Laptop","major_release":"18.04
LTS","completed":"2019-01-09T22:13:41.124824Z","resource_uri":"/api/v2/certified-configurations/201810-26595"},{"canonical_id":"201810-26602","make":"HP","model":"245
G7 Notebook PC","level":"Certified Pre-Install","release":"18.04 LTS","category":"Laptop","major_release":"18.04
@@ -139,7 +140,11 @@ interactions:
22-c042la/c043la","level":"Certified Pre-Install","release":"18.04 LTS","category":"Desktop","major_release":"18.04
LTS","completed":"2019-07-27T01:19:43.005881+01:00","resource_uri":"/api/v2/certified-configurations/201904-26983"},{"canonical_id":"202105-29123","make":"HP","model":"Elite
Dragonfly G2 Notebook PC","level":"Certified Pre-Install","release":"20.04
- LTS","category":"Laptop","major_release":"20.04 LTS","completed":"2021-07-27T12:20:14.983595+01:00","resource_uri":"/api/v2/certified-configurations/202105-29123"},{"canonical_id":"202111-29603","make":"HP","model":"Elite
+ LTS","category":"Laptop","major_release":"20.04 LTS","completed":"2021-07-27T12:20:14.983595+01:00","resource_uri":"/api/v2/certified-configurations/202105-29123"},{"canonical_id":"202404-33934","make":"HP","model":"Elite
+ Mini 800 G9 Desktop PC (Core i3-14100T)","level":"Certified Pre-Install","release":"22.04
+ LTS","category":"Desktop","major_release":"22.04 LTS","completed":"2024-06-11T09:29:47.903946+01:00","resource_uri":"/api/v2/certified-configurations/202404-33934"},{"canonical_id":"202404-33935","make":"HP","model":"Elite
+ Mini 800 G9 Desktop PC (Core i5-14600T)","level":"Certified Pre-Install","release":"22.04
+ LTS","category":"Desktop","major_release":"22.04 LTS","completed":"2024-06-11T10:49:27.757279+01:00","resource_uri":"/api/v2/certified-configurations/202404-33935"},{"canonical_id":"202111-29603","make":"HP","model":"Elite
Mini 800 G9 Desktop PC (Core i9-12900 + Intel Graphics)","level":"Certified
Pre-Install","release":"20.04 LTS","category":"Desktop","major_release":"20.04
LTS","completed":"2022-07-20T14:10:11.306834+01:00","resource_uri":"/api/v2/certified-configurations/202111-29603"},{"canonical_id":"202111-29604","make":"HP","model":"Elite
@@ -147,7 +152,9 @@ interactions:
Pre-Install","release":"20.04 LTS","category":"Desktop","major_release":"20.04
LTS","completed":"2022-07-20T14:10:49.936215+01:00","resource_uri":"/api/v2/certified-configurations/202111-29604"},{"canonical_id":"202201-29881","make":"HP","model":"Elite
Mini 800 G9 Desktop PC (Core i9-12900T + RTX 3050Ti)","level":"Certified Pre-Install","release":"20.04
- LTS","category":"Desktop","major_release":"20.04 LTS","completed":"2022-07-20T14:11:30.106045+01:00","resource_uri":"/api/v2/certified-configurations/202201-29881"},{"canonical_id":"202304-31492","make":"HP","model":"Elite
+ LTS","category":"Desktop","major_release":"20.04 LTS","completed":"2022-07-20T14:11:30.106045+01:00","resource_uri":"/api/v2/certified-configurations/202201-29881"},{"canonical_id":"202404-33933","make":"HP","model":"Elite
+ Mini 800 G9 Desktop PC (Core i9-14900T, RTX 3050Ti)","level":"Certified Pre-Install","release":"22.04
+ LTS","category":"Desktop","major_release":"22.04 LTS","completed":"2024-06-11T09:42:03.905170+01:00","resource_uri":"/api/v2/certified-configurations/202404-33933"},{"canonical_id":"202304-31492","make":"HP","model":"Elite
Mini 800 G9 Desktop PC (i3, 3050 Ti)","level":"Certified Pre-Install","release":"22.04
LTS","category":"Desktop","major_release":"22.04 LTS","completed":"2023-06-06T14:01:08.423831+01:00","resource_uri":"/api/v2/certified-configurations/202304-31492"},{"canonical_id":"202304-31497","make":"HP","model":"Elite
Mini 800 G9 Desktop PC (i7)","level":"Certified Pre-Install","release":"22.04
@@ -158,24 +165,18 @@ interactions:
LTS","completed":"2022-12-09T15:46:38.333326Z","resource_uri":"/api/v2/certified-configurations/202211-30885"},{"canonical_id":"202111-29620","make":"HP","model":"Elite
SFF 600 G9 Desktop PC ( Intel Graphics - Realtek Wireless)","level":"Certified
Pre-Install","release":"20.04 LTS","category":"Desktop","major_release":"20.04
- LTS","completed":"2022-04-08T16:07:11.029845+01:00","resource_uri":"/api/v2/certified-configurations/202111-29620"},{"canonical_id":"202111-29619","make":"HP","model":"Elite
- SFF 600 G9 Desktop PC ( Intel Graphics / Wireless)","level":"Certified Pre-Install","release":"20.04
- LTS","category":"Desktop","major_release":"20.04 LTS","completed":"2022-04-08T16:06:24.366781+01:00","resource_uri":"/api/v2/certified-configurations/202111-29619"},{"canonical_id":"202111-29618","make":"HP","model":"Elite
- SFF 600 G9 Desktop PC (T400 - Intel Wireless)","level":"Certified Pre-Install","release":"20.04
- LTS","category":"Desktop","major_release":"20.04 LTS","completed":"2022-04-08T16:05:34.571361+01:00","resource_uri":"/api/v2/certified-configurations/202111-29618"},{"canonical_id":"202111-29691","make":"HP","model":"Elite
- SFF 800 G9 Desktop PC (Intel Graphics)","level":"Certified Pre-Install","release":"20.04
- LTS","category":"Desktop","major_release":"20.04 LTS","completed":"2022-04-01T16:41:57.383501+01:00","resource_uri":"/api/v2/certified-configurations/202111-29691"}]}'
+ LTS","completed":"2022-04-08T16:07:11.029845+01:00","resource_uri":"/api/v2/certified-configurations/202111-29620"}]}'
headers:
Allow:
- GET, HEAD, OPTIONS
Connection:
- keep-alive
Content-Length:
- - '6238'
+ - '6234'
Content-Type:
- application/json
Date:
- - Tue, 30 Apr 2024 09:47:25 GMT
+ - Tue, 03 Sep 2024 15:26:46 GMT
Strict-Transport-Security:
- max-age=15724800; includeSubDomains
Vary:
@@ -183,11 +184,11 @@ interactions:
X-QueryInspect-Duplicate-SQL-Queries:
- '0'
X-QueryInspect-Num-SQL-Queries:
- - '6'
+ - '8'
X-QueryInspect-Total-Request-Time:
- - 130 ms
+ - 181 ms
X-QueryInspect-Total-SQL-Time:
- - 110 ms
+ - 164 ms
status:
code: 200
message: OK
diff --git a/tests/test_certification.py b/tests/test_certification.py
index 07aada5fa83..f3081ec6ef1 100644
--- a/tests/test_certification.py
+++ b/tests/test_certification.py
@@ -43,6 +43,10 @@ def test_component_details(self):
response = self.client.get("/certified/component/682")
self.assertEqual(response.status_code, 200)
+ def test_platform_details(self):
+ response = self.client.get("/certified/platforms/14169")
+ self.assertEqual(response.status_code, 200)
+
def test_vendor_pages(self):
response = self.client.get("/certified/vendors/HP")
self.assertEqual(response.status_code, 200)
diff --git a/webapp/certified/api.py b/webapp/certified/api.py
index 56b3e6683f7..f004351ad42 100644
--- a/webapp/certified/api.py
+++ b/webapp/certified/api.py
@@ -8,7 +8,7 @@ class CertificationAPI:
Method names and properties to describe and map directly
onto the Certification API
(at the time of writing, this API is available at
- https://certification.canonical.com/api/v1)
+ https://certification.canonical.com/api/v2)
"""
def __init__(self, base_url: str, session: Session):
@@ -33,6 +33,20 @@ def _get(self, path: str, params: dict = {}):
return response
+ def certified_platform_details(
+ self,
+ platform_id,
+ limit=None,
+ offset=None,
+ ):
+ return self._get(
+ f"certified-platforms/{platform_id}",
+ params={
+ "limit": limit,
+ "offset": offset,
+ },
+ ).json()
+
def certified_vendors(
self,
limit=None,
diff --git a/webapp/certified/helpers.py b/webapp/certified/helpers.py
index 25b23882bc3..f179286c430 100644
--- a/webapp/certified/helpers.py
+++ b/webapp/certified/helpers.py
@@ -50,3 +50,12 @@ def _get_clean_in_filter(filter_in):
if isinstance(filter_in, list):
return ",".join(filter_in)
return filter_in
+
+
+def _get_category_pathname(form_factor):
+ if form_factor == "Ubuntu Core":
+ return "iot"
+ elif form_factor == "Server SoC":
+ return "socs"
+ else:
+ return form_factor.lower() + "s"
diff --git a/webapp/certified/views.py b/webapp/certified/views.py
index 2c357a5f19b..f378fdf5898 100644
--- a/webapp/certified/views.py
+++ b/webapp/certified/views.py
@@ -16,7 +16,7 @@
from webapp.certified.api import CertificationAPI, PartnersAPI
from urllib.parse import urlencode
-from webapp.certified.helpers import get_download_url
+from webapp.certified.helpers import _get_category_pathname, get_download_url
session = Session()
talisker.requests.configure(session)
@@ -36,6 +36,14 @@ def certified_routes(app):
"""
app.add_url_rule("/certified", view_func=certified_home)
+ app.add_url_rule(
+ "/certified/platforms/
",
+ view_func=certified_platform_details,
+ )
+ app.add_url_rule(
+ "/certified/platforms//",
+ view_func=certified_platform_details_by_release,
+ )
app.add_url_rule(
"/certified/",
view_func=certified_model_details,
@@ -150,6 +158,60 @@ def _parse_query_params(all_releases, all_vendors):
return new_query_params
+def certified_platform_details(platform_id):
+ platform = api.certified_platform_details(platform_id)
+
+ # Get the set of all releases available for this platform
+ releases = set(
+ release
+ for _, certificate in platform["certificates"].items()
+ for release in certificate["releases"]
+ )
+ return render_template(
+ "certified/platforms/platform-details.html",
+ category_pathname=_get_category_pathname(platform["category"]),
+ platform=platform,
+ releases=releases,
+ selected_release=None,
+ )
+
+
+def certified_platform_details_by_release(platform_id, release):
+ platform = api.certified_platform_details(platform_id)
+
+ # Get the set of all releases available for this platform
+ releases = set(
+ release
+ for _, certificate in platform["certificates"].items()
+ for release in certificate["releases"]
+ )
+
+ # If the release specified in the URL is not available for this platform,
+ # render the page for all releases
+ if release not in releases:
+ return render_template(
+ "certified/platforms/platform-details.html",
+ category_pathname=_get_category_pathname(platform["category"]),
+ platform=platform,
+ releases=releases,
+ selected_release=None,
+ )
+
+ # Filter only certificates for the release specified in the URL
+ platform["certificates"] = {
+ canonical_id: certificate
+ for canonical_id, certificate in platform["certificates"].items()
+ if release in certificate["releases"]
+ }
+ return render_template(
+ "certified/platforms/platform-details.html",
+ category_pathname=_get_category_pathname(platform["category"]),
+ platform=platform,
+ releases=releases,
+ selected_release=release,
+ )
+
+
def get_vendors_releases_filters():
categories = request.args.getlist("category")
selected_vendors = request.args.getlist("vendor")
@@ -564,8 +626,14 @@ def certified_model_details(canonical_id):
canonical_id=canonical_id,
name=model_release["model"],
category=model_release["category"],
+ category_pathname=_get_category_pathname(model_release["category"]),
form_factor=form_factor,
vendor=model_release["make"],
+ platform_name=model_release["platform_name"],
+ platform_id=model_release["platform_id"],
+ platform_certified_configuration_count=model_release[
+ "platform_certified_configuration_count"
+ ],
major_release=model_release["certified_release"],
release_details=release_details,
has_enabled_releases=has_enabled_releases,