25 Commits

Author SHA1 Message Date
Heitor Matsui
3f59325270 Print deb packages on software show
This commit:
1. Changes metadata parsing to store package + version information
2. Changes output print function from software show to print the
   packages contained in the release metadata

Test Plan
PASS: run "software show" for releases, verify the output shows
      the name and version for deb packages included in the release

Story: 2010676
Task: 49573

Signed-off-by: Heitor Matsui <heitorvieira.matsui@windriver.com>
Change-Id: I782c2d04ec665ea2330150add91f68182394a1b9
2024-02-14 16:01:20 -03:00
Zuul
6c96e5d766 Merge "Add version to software-api and software client" 2024-02-08 18:21:16 +00:00
Joseph Vazhappilly
617a379659 Add version to software-api and software client
The software-api is versioned in order to allow for future upgrades.
This implementation add 'v1' version to all software REST APIs and
modify software client to use the updated 'v1' APIs.

Example:
	- POST    /v1/software/upload
	- GET     /v1/software/query
	- GET     /v1/software/show/<release>
	- GET     /v1/software/commit_patch/<release>
	...

Story: 2010676
Task: 49478

Test Plan:
PASS: Verify REST interfaces of software APIs
PASS: Verify software client with new APIs
PASS: Verify client with sudo, without keystone auth prior bootstrap
PASS: Verify client without sudo, with keystone auth prior bootstrap

Change-Id: I10250676fbbcf7501913f21dedea769b581128af
Signed-off-by: Joseph Vazhappilly <joseph.vazhappillypaily@windriver.com>
2024-02-08 04:23:29 -05:00
junfeng-li
7932b021b2 Fix software delete traceback error
This commit is to hide the traceback error messages when
there is no release to show in the 'software list'

[sysadmin@controller-0 ~(keystone_admin)]$ software list
No data
[sysadmin@controller-0 ~(keystone_admin)]$

Test Plan:

PASS: Remove all releases and run 'software list'
PASS: Upload one release and run 'software list'

Task: 49525
Story: 2010676
Change-Id: I7a00bfa6902c86acba46a9af2c593d86cac28813
Signed-off-by: junfeng-li <junfeng.li@windriver.com>
2024-02-06 19:53:55 +00:00
junfeng-li
e3fcdda680 Fix traceback on software upload missing file
This commit is to hide the error traceback messages when
respond only contains error messages.

Test Plan:

PASS: uploaded only sig file and verified no traceback message
PASS: uploaded sig and iso files and verified correct result is displayed.
Change-Id: I0f997c861f45d7e59642833b13d23e6518ca7a69
Signed-off-by: junfeng-li <junfeng.li@windriver.com>
2024-02-02 15:31:00 +00:00
Heitor Matsui
5a15baf2e0 Sort commands output before printing
After [1] the "software list" command is printing the
result in a random order, like:

     Release       RR    State
=================  ==  =========
starlingx-24.09.0  Y   available
starlingx-24.03.2  Y   available
starlingx-24.03.1  Y   available
starlingx-24.03.0  Y    deployed
starlingx-24.03.3  Y   available

This commit enables sorting the output given a sort key,
which by default is the first element of each data row.

[1] https://review.opendev.org/c/starlingx/update/+/905320

Test Plan
PASS: run "software list" and verify the output is sorted
PASS: run "software upload" with multiple files and verify
      the output is sorted

Story: 2010676
Task: 49491

Change-Id: Idbc4c59885ef3d8b8775da0271fb1ed301974969
Signed-off-by: Heitor Matsui <heitorvieira.matsui@windriver.com>
2024-02-01 12:27:46 -03:00
Zuul
75212da467 Merge "cleanup: remove version col, remove upload record" 2024-01-26 20:41:02 +00:00
junfeng-li
e31455cbc5 cleanup: remove version col, remove upload record
This commit includes the cleanup below:
 1. remove the sig file from the upload list

        Uploaded File                  Id
=============================  =================
starlingx-intel-x86-64-cd.iso  starlingx-24.03.0

2. remove the software version column
from software list
     Release       RR    State
=================  ==  =========
starlingx-23.09.0  Y    deployed
starlingx-24.03.0  Y   available

Test Plan:

PASS: ran upload iso and sig file to check the list
PASS: ran software list to check the list

Task: 49396
Story: 2010676
Change-Id: I3f49a491ef7d1de0a108afa90da354392dbc44e6
Signed-off-by: junfeng-li <junfeng.li@windriver.com>
2024-01-26 20:05:57 +00:00
Zuul
dfd78be7ff Merge "Support keystone auth in software-client" 2024-01-16 16:47:38 +00:00
Zuul
347527a13a Merge "Fix software upload wrong error message" 2024-01-16 15:06:46 +00:00
Jessica Castelino
37bded2e7b Support keystone auth in software-client
This commit supports keystone authentication for software client.

Test Plan:
[PASS] software CLI commands via remote CLI
[PASS] software CLI commands with sudo
[PASS] software CLI restricted commands without sudo give an error
[PASS] software CLI non-restricted commands without sudo work as
       expected

Story: 2010676
Task: 49400
Change-Id: I608e32f905418698e784e89aa070a82bddeb3f49
Signed-off-by: Jessica Castelino <jessica.castelino@windriver.com>
2024-01-12 21:05:02 +00:00
Bin Qian
2609d8c998 Add software deploy start --force option
Add --force option to software deploy start command to skip non-service
impact alarms to start deploy.

TCs:
    passed: software deploy start with --force option to start deploy.
    passed: software deploy start without --force to start deploy.

Story: 2010676
Task: 49076

Change-Id: Ie4bc0e2af6b3170471929025a8f3dc8a857c0a15
Signed-off-by: Bin Qian <bin.qian@windriver.com>
2024-01-11 15:15:53 +00:00
junfeng-li
18a2a30bbc Fix software upload wrong error message
When the valid files are being uploaded, the error messages were
mistakenly displayed due to missing absolute file path. The fix is
to ensure the absolute file path is added when filtering invalid files.

Test Plan:

PASS: uploaded valid files and no error message displayed.
PASS: uploaded invalid files and error message displayed.

Task: 49380
Story: 2010676

Change-Id: I6e5a68056892cbfdc3377e511974d7bfdb50b240
Signed-off-by: junfeng-li <junfeng.li@windriver.com>
2024-01-04 20:50:33 +00:00
Zuul
fe2c3329f1 Merge "software upload --local implementation" 2024-01-02 16:20:45 +00:00
junfeng-li
de5a023b27 software upload --local implementation
This new --local option in software upload can take the
pre-uploaded files in active controller and import them
to the system.

It takes the absolute path to the file and upload the path string
to the software upload endpoint. The path is used to find the file
on the active controller and then proceed to load import.

Test Plan:
PASS: used --local to upload iso, sig and patch files
PASS: not use --local to upload iso, sig and patch files
PASS: uploaded a dir and unsupported file

Story:  2010676
Task: 49224

Change-Id: Ibdc7e603de79f43d3e6b57a6845942a0e7b9a6f1
Signed-off-by: junfeng-li <junfeng.li@windriver.com>
2023-12-15 16:19:08 +00:00
junfeng-li
8aed4785a3 software upload return uploaded file info
This commit is to add uploaded file info into 'software upload'
respond, in addition to existing respond messages.

This newly added uploaded file info is a list of dictionaries. Each
dictionary is taking the file name as the key and its value is a
dictionary in which id and sw_version are the keys.

    Uploaded File             Id        SW Version
=====================  ===============  ==========
23.09_ALL_NODES.patch  23.09_ALL_NODES    23.09

Test Plan:
PASS: uploaded iso, sig and patch file and got response

Story: 2010676
Task: 49241

Change-Id: I5332268d238aa9e787dea68f8a23c6be42feb4cd
Signed-off-by: junfeng-li <junfeng.li@windriver.com>
2023-12-14 20:51:28 +00:00
Luis Eduardo Bonatti
65296ce662 Software deploy host list implementation
This commit changes the software query-hosts command to software
host-list for usm. For the dict it keeps the previous one from
query_hosts, just added new values. The output of the command
has been changed, the from release and to release info is from deploy
entity.

Test Plan:
Command returning information according to host state.

Story: 2010676
Task: 49054

Change-Id: I5a9380c8c08b48d6f486caadb21d4f6203386687
Signed-off-by: Luis Eduardo Bonatti <LuizEduardo.Bonatti@windriver.com>
2023-12-05 20:43:05 -03:00
junfeng-li
38b4953e05 software deploy show implementation
This commit is to implement 'software deploy show'
Only one upgrade is allowed in the deployment every time.

[sysadmin@controller-0 ~(keystone_admin)]$ software deploy show
From Release  To Release  Reboot Required    State
============  ==========  ===============  =========
   23.09        24.03           Yes        deploying

Test Plan:
PASS: built and installed the iso and ran the command
          with deploy in progress
PASS: built and installed the iso and ran the command
          without deploy in progress

Task: 49134
Story: 2010676

Change-Id: I292837f1b9b39afbc589a9cae08b4c4b7f363b5e
Signed-off-by: junfeng-li <junfeng.li@windriver.com>
2023-12-05 15:34:40 +00:00
Zuul
169e36b686 Merge "Add upgrade support to software upload-dir" 2023-11-07 20:48:13 +00:00
Zuul
d8a10335bc Merge "Add --force option to deploy precheck" 2023-11-07 14:11:20 +00:00
Heitor Matsui
31ed091cbc Add --force option to deploy precheck
This commit adds an optional parameter '--force' to command
"software deploy precheck" to ignore alarms with lower severity
and non-mgmt affecting.

Test Plan:
PASS: force creation of a non-mgmt affecting alarm, such as [1],
      run deploy precheck without '--force' option and verify the
      command returns failure by the presence of alarms
PASS: same operation as the previous test case, but using '--force'
      option, and verify the command returns success and absence of
      alarms
PASS: force creation of a mgmt affecting alarm, such as [2], run
      deploy precheck with and without '--force' option and verify
      the command returns failure by the presence of mgmt affecting
      alarms in both cases

[1] Non Mgmt Affecting Alarm Example:
Alarm ID: 100.104
Text: File System threshold exceeded ; threshold 80.00%, actual 84.12%

[2] Mgmt Affecting Alarm Example:
Alarm ID: 100.101
Text: Platform CPU threshold exceeded ; threshold 95.00%, actual 100.00%

Depends-on: https://review.opendev.org/c/starlingx/config/+/899750

Story: 2010676
Task: 49032

Change-Id: Ic4d327c3b072ce0f60e20ba7467ae6d9f4eb5bd4
Signed-off-by: Heitor Matsui <heitorvieira.matsui@windriver.com>
2023-11-06 12:29:28 -03:00
Jessica Castelino
23b2afdc15 Support is-available, is-deployed and is-committed software CLI
This commit enables 'software is-available', 'software is-deployed'
and 'software is-committed' CLI commands and API endpoints within
USM.

Test Plan:
[PASS] software is-applied <release list>
[PASS] software is-deployed <release list>
[PASS] software is-committed <release-list>

Story: 2010676
Task: 49033
Change-Id: I9b718a2dbbbd53ce999724cfd4d549e65d680df1
Signed-off-by: Jessica Castelino <jessica.castelino@windriver.com>
2023-11-03 20:33:33 +00:00
junfeng-li
7cf3496453 Add upgrade support to software upload-dir
Details: This commit allows 'software upload-dir' to upload
release iso and sig files from the given folder.

Test Plan:

PASS: upload iso/sig files from a folder
PASS: upload patches from a different folder

Task: 48983
Story: 2010676
Change-Id: Ie6179b6f0f9193983556ab6eae4353154aba6ca8
Signed-off-by: junfeng-li <junfeng.li@windriver.com>
2023-10-23 18:19:58 +00:00
Heitor Matsui
ef0fe15e2d Create software deploy precheck endpoint
This commit:
- Creates the "software deploy precheck" endpoint
- Implements a couple TODOs on the precheck code
- Replaces some hard-coded variables for constants
- Replaces "system" commands to retrieve system health
  for sysinv client calls
- Creates separate health check classes for general and
  upgrade-specific health checks
- Renames standalone precheck module to "deploy-precheck"
- Allows precheck module to receive keystone credentials
  as parameters so that the precheck can be run against a
  remote host (Use Case: system controller running precheck
  against subclouds, but mind that DC support will be added
  on a future commit)
- Creates an utility module that can be imported by standalone
  USM upgrade scripts (copied to the ISO by [1])

Test Plan
PASS: run "software deploy precheck" and verify it returning
      correctly, and verify that health checks output are valid
      given the current system status

Story: 2010676
Task: 48902

Depends-on: https://review.opendev.org/c/starlingx/update/+/898474
Relates-to: [1] https://review.opendev.org/c/starlingx/tools/+/897484

Change-Id: I4d04804c1b1e147f486434df23a291c6d315842b
Signed-off-by: Heitor Matsui <heitorvieira.matsui@windriver.com>
2023-10-18 16:22:50 -03:00
Jessica Castelino
af133fec2f Build Software Client python wheels package
USM needs to build a python wheels package containing ONLY the
‘software’ cli client for inclusion in the Remote CLI Container.

Test Plan:
PASS Build software-client package
PASS Build ISO
PASS Install ISO
PASS Run "software list" and "software upload"

Story: 2010676
Task: 48851
Change-Id: Idb6d69a66d625291094501cacdb0bb84f511f81d
Signed-off-by: Jessica Castelino <jessica.castelino@windriver.com>
2023-10-05 20:16:14 +00:00