Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[sonic-package-manager] add support for multiple CLI plugin files #2753

Merged
merged 2 commits into from
Apr 30, 2023

Conversation

stepanblyschak
Copy link
Contributor

What I did

Use case for some application extensions we develop is to have multiple features as part of a single container. Therefore we want to have ability to install multiple CLI plugins from a single extension.

How I did it

Allowed to specify few CLI plugins in the manifest.

How to verify it

Build extension with multiple CLI plugins and install. Verified all plugins are installed.

Previous command output (if the output of a command-line utility has changed)

New command output (if the output of a command-line utility has changed)

@stepanblyschak
Copy link
Contributor Author

@qiluo-msft @volodymyrsamotiy @liat-grozovik Request for 202211 (I have no permissions to add labels)

@qiluo-msft qiluo-msft merged commit 522c3a9 into sonic-net:master Apr 30, 2023
dprital added a commit to dprital/sonic-buildimage that referenced this pull request May 1, 2023
Update sonic-utilities submodule pointer to include the following:
* 88ffb167 [config]config reload should generate sysinfo if missing ([sonic-net#2778](sonic-net/sonic-utilities#2778))
* 7443b9e5 [sonic-package-manager] support extension with multiple YANG modules ([sonic-net#2752](sonic-net/sonic-utilities#2752))
* 522c3a9e [sonic-package-manager] add support for multiple CLI plugin files ([sonic-net#2753](sonic-net/sonic-utilities#2753))
* b38fcfd1 [show][muxcable] fix  RC ([sonic-net#2812](sonic-net/sonic-utilities#2812))
* 7e24463f [chassis]: remote cli commands infra for sonic chassis ([sonic-net#2701](sonic-net/sonic-utilities#2701))
* bee593e4 [DPB]Fixing typo in config breakout output ([sonic-net#2802](sonic-net/sonic-utilities#2802))
* ada603c5 [config]Support multi-asic  Golden Config override ([sonic-net#2738](sonic-net/sonic-utilities#2738))
* 88a7daa8 [show][barefoot] replace shell=True ([sonic-net#2699](sonic-net/sonic-utilities#2699))
* 5e99edb5 [sonic_package_manager] replace shell=True ([sonic-net#2726](sonic-net/sonic-utilities#2726))
* b547bb45 [acl-loader] Only add default deny rule when table is L3 or L3V6 ([sonic-net#2796](sonic-net/sonic-utilities#2796))

Signed-off-by: dprital <[email protected]>
@yaqiangz
Copy link
Contributor

Hi @stepanblyschak I found that if we want to add a docker image in sonic-buildimage without providing cli files would encounter error like below while building iamge:

Failed to install target/docker-test.gz: Failed to install test: 400 Client Error for http+docker://localhost/v1.43/containers/8ab1827ec142e397bbf6fd26f50b0965914bccc9d6f4642b5a3785bc8be74147/archive?path=: Bad Request ("bad parameter: pathcannot be empty")

I found that failed at manager.py#L991 because the value was set to '' in manifest.json.j2 in sonic-buildimage because cli path is not provided.

Not sure if I miss something or cli files for docker image installed by sonic-package-manager are mandatory... Could you pls help to take a look?

PeterTSW-EC added a commit to PeterTSW-EC/sonic-utilities-community that referenced this pull request Jul 16, 2024
… Install

* In 17/05/2023, SONiC updates the format of CLI section in the manifest.json.
* The implementation was updated in 202311 or later branches.
* However, the PR sonic-net#2753 reported there is a error occur when the CLI migration.
* The root cause is occurred while a CLI field (show/config/clear) is empty ('').
* This PR modifies the parser of the cli_plugins field in the manifest.py.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants