tech:network:cml:2.2:issues:c9f47d0f:cml-p-2.2.1-cockpit-cml-administration-ui-stop-working-by-upgrading-the-base-os-procedure

Fixed: Issue: c9f47d0f CML-P 2.2.1 Cockpit CML Administration UI stop working by Upgrading the Base OS procedure

  1. ID: c9f47d0f-ce8b-49ec-a029-5114dfbef558
  2. Status:
    1. CML-P 2.0 base OVA unknown, but may stop working by Upgrading the Base OS
    2. CML-P 2.1.2 base OVA stop working by Upgrading the Base OS
    3. CML-P 2.2.1 base OVA unknown, but may stop working by Upgrading the Base OS
    4. CML-P 2.2.2 base OVA Fixed

Problem Description

After Upgrading the Base OS (CentOS 8), CML2 Cockpit UI reports JavaScript jQuery loading error.
So, CML2 Cockpit UI stop working.

maintenance.html:7 GET https://cml-controller.pg1x.net:9090/cockpit/$f025fe4da3a18487758c064b19aee860273c30bc0b8b4da329581c762531e04e/base1/jquery.js net::ERR_ABORTED 404 (Not Found)

Analysis

From my investigation, Ugrading Cockpit 238 over Cockpit 224,
Cockpit 233 removes base1/jquery.js support.
So, I think this problem related this base1/jquery.js removal.

pkg: Stop using base1/jquery.js · cockpit-project/cockpit@049e8b8

commit 049e8b8dceccaf46a43b91203dce1bd7696bb734
Author: Martin Pitt <mpitt@redhat.com>
Date:   Wed Nov 11 08:38:24 2020 +0100

    pkg: Stop using base1/jquery.js
    
    Stop using the deprecated base1/jquery.js file.  Our webpacks already
    bundle jQuery, and most of our code is using that.
    
    The global `jQuery` object is only necessary for various bootstrap and
    flot extensions of jQuery. Replace the global `<script>` import with
    expose-loader for the pages that use flot, and bootstrap-ui.
    
    That now exposes only pure jQuery, while our previous base1/jquery.js
    also had bootstrap bundled; so we now explicitly need to import
    bootstrap on the pages that use it. This also makes these dependencies
    more obvious and grep-able for porting to React.
    
    A special case arises for tuned: Both that and shutdown.js use bootstrap
    and require jQuery in the global namespace, but as tuned gets
    dynamically embedded into the overview, expose-loader complains about
    overriding the already existing jQuery symbol. This is ok, but create a
    separate webpack rule for tuned to avoid doing this on other pages (and
    in fact, let's port tuned to proper React ASAP).

Resolution

2021-06-20 Update

Upgrade to CML 2.2.2. CML 2.2.2 Fixed This Problem.
See following instruction:

Workaround

Detailed Analysis Log

References

tech/network/cml/2.2/issues/c9f47d0f/cml-p-2.2.1-cockpit-cml-administration-ui-stop-working-by-upgrading-the-base-os-procedure.txt · Last modified: 2021/06/20 11:45 by wnoguchi