diff --git a/templates/certified/hardware-details.html b/templates/certified/hardware-details.html index ae548991099..84028859b24 100644 --- a/templates/certified/hardware-details.html +++ b/templates/certified/hardware-details.html @@ -15,50 +15,9 @@

Hardware details

- {% if release_details.category == "Desktop" or release_details.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 release_details.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 release_details.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 release_details.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 %} + {% with category=release_details.category %} + {% include "certified/shared/category-image.html" %} + {% endwith %}
diff --git a/templates/certified/model-details.html b/templates/certified/model-details.html index a42fe82b1fe..badb592fdf4 100644 --- a/templates/certified/model-details.html +++ b/templates/certified/model-details.html @@ -8,323 +8,338 @@ {% block outer_content %} + + +
+ {# djlint: off #} -
-
-
-

{{ vendor }} {{ name }}

-

{{ form_factor }} system certified with Ubuntu

- {% if hardware_website %}Visit the website{% endif %} +
+
+
+
+

+ {{ category_pathname }}{{ platform_name }} + {% if platform_name != name %} + › {{ name }} + {% 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 - }} +
+
+
+
+ {% with category=category %} + {% include "certified/shared/category-image.html" %} + {% endwith %} +
+
+
+
+

+ {{ vendor }} {{ name }} +

+

+ {{ form_factor|capitalize }} system certified with Ubuntu +

+
+ {% if hardware_website %} + {% endif %}
-
-
-

- Release - {% if release_details["releases"]|length > 1 %}s{% endif %} -

-
+
+ {% if release_details["releases"]|length > 1 %} +
+
+
-
-{# djlint: on #} + {% else %} +
+ {% endif %} + +
+
+ {{ image(url="https://assets.ubuntu.com/v1/d9c2c5bf-ubuntu_certified.png", alt="Logo of the Ubuntu Certified project", width="112", height="157", hi_def=True, loading="auto") | safe }} +
+
+ {% for release in release_details["releases"]|sort(attribute='version') %} +
+

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 components %} -
-
-

Components certified with this system

- - +
+ + {% if release.kernel %} - - - - - - - + + - - - {% for component in components %} - - - {% if '14.04 ESM' in component.lts_releases %} - {% if component.lts_releases['14.04 ESM'][0].third_party_driver %} - - {% elif component.lts_releases['14.04 ESM'][0].status == 'inprogress' %} - - {% elif component.lts_releases['14.04 ESM'][0].status == 'certified' %} - - {% endif %} - {% else %} - - {% endif %} - {% if '16.04 LTS' in component.lts_releases %} - {% if component.lts_releases['16.04 LTS'][0].third_party_driver %} - - {% elif component.lts_releases['16.04 LTS'][0].status == 'inprogress' %} - - {% elif component.lts_releases['16.04 LTS'][0].status == 'certified' %} - - {% endif %} - {% else %} - - {% endif %} - {% if '18.04 LTS' in component.lts_releases %} - {% if component.lts_releases['18.04 LTS'][0].third_party_driver %} - - {% elif component.lts_releases['18.04 LTS'][0].status == 'inprogress' %} - - {% elif component.lts_releases['18.04 LTS'][0].status == 'certified' %} - - {% endif %} - {% else %} - - {% endif %} - {% if '20.04 LTS' in component.lts_releases %} - {% if component.lts_releases['20.04 LTS'][0].third_party_driver %} - - {% elif component.lts_releases['20.04 LTS'][0].status == 'inprogress' %} - - {% elif component.lts_releases['20.04 LTS'][0].status == 'certified' %} - - {% endif %} - {% else %} - - {% endif %} - {% if '22.04 LTS' in component.lts_releases %} - {% if component.lts_releases['22.04 LTS'][0].third_party_driver %} - - {% elif component.lts_releases['22.04 LTS'][0].status == 'inprogress' %} - - {% elif component.lts_releases['22.04 LTS'][0].status == 'certified' %} - - {% endif %} - {% else %} - - {% endif %} - - - {% endfor %} + {% endif %} + {% if release.bios %} + + + + + {% endif %}
Component14.04 ESM16.04 LTS18.04 LTS20.04 LTS22.04 LTSCommentsKernel + {{ release.kernel }} +
- {{ component.vendor_name }} {{ component.model }} - - {{ 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 - }} - - In progress - - Supported - - {{ 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 - }} - - Untested - - Supported - - {{ 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 - }} - - In progress - - Supported - - {{ 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 - }} - - In progress - - Supported - - {{ 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 - }} - - In progress - - Supported - - - {{ component.note }}
BIOS + {{ release.bios }} +
-
    -
  • - Supported -
  • -
  • - - May require 3rd-party driver -
  • -
  • - In progress -
  • -
+
+
+

Hardware

+ + + {% for hardware_subtitle, values in release["components"].items() %} + + + + + {% endfor %} + +
{{ 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 %} +
+
+
+

+ All hardware details › +

+ {% if platform_certified_configuration_count > 1 %} +

+ {{ platform_certified_configuration_count - 1 }} more certified {% if platform_certified_configuration_count == 2 %} configuration {% else %} configurations {% endif %} in the {{ platform_name }} platform › +

+ {% endif %} +
+
+ {% endfor %} +
+
+
+
+

Issues? Let us know

+
+
+

+ If there is an issue with the information for this system, + please let us know. +

+
+
+
-
- {% endif %} -
-
-
Issues? Let us know
-

- If there is an issue with the information for this system, - please let us know. -

-
+
+ +{# djlint: on #} + +{% if components %} +
+
+
+

Components certified with this system

+ + + + + + + + + + + + + {% for component in components %} + + + {% if '18.04 LTS' in component.lts_releases %} + {% if component.lts_releases['18.04 LTS'][0].third_party_driver %} + + {% elif component.lts_releases['18.04 LTS'][0].status == 'inprogress' %} + + {% elif component.lts_releases['18.04 LTS'][0].status == 'certified' %} + + {% endif %} + {% else %} + + {% endif %} + {% if '20.04 LTS' in component.lts_releases %} + {% if component.lts_releases['20.04 LTS'][0].third_party_driver %} + + {% elif component.lts_releases['20.04 LTS'][0].status == 'inprogress' %} + + {% elif component.lts_releases['20.04 LTS'][0].status == 'certified' %} + + {% endif %} + {% else %} + + {% endif %} + {% if '22.04 LTS' in component.lts_releases %} + {% if component.lts_releases['22.04 LTS'][0].third_party_driver %} + + {% elif component.lts_releases['22.04 LTS'][0].status == 'inprogress' %} + + {% elif component.lts_releases['22.04 LTS'][0].status == 'certified' %} + + {% endif %} + {% else %} + + {% endif %} + {% if '24.04 LTS' in component.lts_releases %} + {% if component.lts_releases['24.04 LTS'][0].third_party_driver %} + + {% elif component.lts_releases['24.04 LTS'][0].status == 'inprogress' %} + + {% elif component.lts_releases['24.04 LTS'][0].status == 'certified' %} + + {% endif %} + {% else %} + + {% endif %} + + + {% endfor %} + +
Component18.04 LTS20.04 LTS22.04 LTS24.04 LTSComments
+ {{ component.vendor_name }} {{ component.model }} + + {{ 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 }} + + In progress + + Supported + + {{ 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 }} + + In progress + + Supported + + {{ 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 }} + + In progress + + Supported + + + + {{ 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 }} + + In progress + + Supported + + + {{ component.note }}
+ +
+
+{% endif %} + + + + + {% endblock %} diff --git a/templates/certified/platforms/platform-details.html b/templates/certified/platforms/platform-details.html new file mode 100644 index 00000000000..ba34610e1d3 --- /dev/null +++ b/templates/certified/platforms/platform-details.html @@ -0,0 +1,229 @@ +{% 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 outer_content %} + + + +
+ +
+
+
+
+

{{ category_pathname }} › Platform

+
+
+
+
+
+ {% 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() %} + + {% endfor %} + + + + + + {% for canonical_id, certificate in platform.certificates.items() %} + + {% endfor %} + + + + + + {% with device_category = "processor" %} + {% include "certified/shared/_device-template.html" %} + {% endwith %} + + + + + + {% with device_category = "video" %} + {% include "certified/shared/_device-template.html" %} + {% endwith %} + + + + + + {% with device_category = "network" %} + {% include "certified/shared/_device-template.html" %} + {% endwith %} + + + + + + {% with device_category = "wireless" %} + {% include "certified/shared/_device-template.html" %} + {% endwith %} + + + + + + {% for canonical_id, certificate in platform.certificates.items() %} + + {% endfor %} + + + + +
{{ certificate.name }} ›
Certified Ubuntu Release +
    + {% for release in certificate.releases|sort %} +
  • + {{ release }} +
  • + {% endfor %} +
+
Processor
Graphics
Network
Wireless
Certification date + {{ certificate.date }} +
+ +
+ +
+ +
+ +
+
+
+ +
+ + + +{% 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() %} + + + +{% 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..2414e895275 --- /dev/null +++ b/templates/certified/shared/category-image.html @@ -0,0 +1,55 @@ +{% 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 %} \ No newline at end of file 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 7ef3c7f58ad..940f7b5b7c8 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,