Skip to content

Commit 333ccfd

Browse files
saiarcot895rameshraghupathy
authored andcommitted
Update bash completions for sonic-utilities commands (sonic-net#4163)
What I did Update the bash completion files for all sonic-utilities commands to make them compatible with the current Click version. Fixes sonic-net/sonic-buildimage#24594. How I did it Use Click's documentation to generate the bash completion script for each command that is packaged from sonic-utilities and uses Click. How to verify it Tested in KVM in Trixie image. admin@vlab-01:~$ sonic-package-manager install list manifests migrate repository reset show uninstall update admin@vlab-01:~$ sonic-package-manager install list manifests migrate repository reset show uninstall update admin@vlab-01:~$ sonic-package-manager install list manifests migrate repository reset show uninstall update admin@vlab-01:~$ spm install list manifests migrate repository reset show uninstall update admin@vlab-01:~$ spm ^C admin@vlab-01:~$ show Display all 105 possibilities? (y or n) aaa buffer_pool environment icmp macsec passw-hardening runningconfiguration suppress-fib-pending vlan acl chassis event-counters interfaces management_interface pbh serial_console switch vnet arp clock fabric ip mgmt-vrf pfc services switch-hash vrf asic-sdk-health-event copp feature ipv6 mirror_session pfcwd sflow switch-trimming vrrp auto-techsupport dhcp4relay-counters fg-nhg kdump mmu platform snmpagentaddress syslog vrrp6 auto-techsupport-feature dhcp6relay_counters fg-nhg-member kubernetes muxcable policer snmptrap system-health vxlan banner dhcp_relay fg-nhg-prefix ldap nat priority-group spanning-tree system-memory warm_restart bfd dhcp_server fgnhg ldap-server ndp processes srv6 tacacs watermark bgp dhcprelay_helper flowcnt-route line ntp queue ssh techsupport ztp bmp dns flowcnt-trap lldp nvgre-tunnel radius startupconfiguration uptime boot dropcounters headroom-pool logging nvgre-tunnel-map reboot-cause storm-control users buffer ecn history mac p4-table route-map subinterfaces version admin@vlab-01:~$ config aaa cbf dropcounters interface_naming_mode loopback nvgre-tunnel-map reload spanning-tree unique-ip acl chassis ecn ipv6 macsec override-config-table replace ssh vlan apply-patch checkpoint fabric kdump mclag passw-hardening rollback subinterface vnet asic-sdk-health-event clock feature kubernetes member pbh route suppress-fib-pending vrf auto-techsupport console fg-nhg ldap mirror_session pfcwd save switch-hash vxlan auto-techsupport-feature delete-checkpoint fg-nhg-member ldap-server mmu platform serial_console switch-trimming warm_restart banner dhcp_relay fg-nhg-prefix list-checkpoints muxcable portchannel sflow switchport watermark bgp dhcp_server flowcnt-route load nat qos snmp synchronous_mode yang_config_validation bmp dhcpv4_relay hostname load_mgmt_config ntp radius snmpagentaddress syslog ztp buffer dns interface load_minigraph nvgre-tunnel rate snmptrap tacac Note that these commands don't have a completion script generated, likely because an exception is being raised when just importing that module: Cannot generate completion for counterpoll.main:cli! Cannot generate completion for debug.main:cli! Cannot generate completion for fwutil.main:cli! Cannot generate completion for psuutil.main:cli! Cannot generate completion for sfputil.main:cli! Cannot generate completion for undebug.main:cli! Signed-off-by: Ramesh Raghupathy <[email protected]>
1 parent 6d107e0 commit 333ccfd

36 files changed

Lines changed: 216 additions & 253 deletions

azure-pipelines.yml

Lines changed: 118 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -185,3 +185,121 @@ stages:
185185
- publish: '$(System.DefaultWorkingDirectory)/gcu/dist/'
186186
artifact: gcu_wheels
187187
displayName: "Publish Python wheels for GCU"
188+
189+
- stage: BuildData
190+
191+
jobs:
192+
- job:
193+
displayName: "Build sonic-utilities-data"
194+
pool:
195+
vmImage: ubuntu-24.04
196+
197+
container:
198+
image: sonicdev-microsoft.azurecr.io:443/sonic-slave-bookworm:$(BUILD_BRANCH)
199+
200+
steps:
201+
- script: |
202+
set -ex
203+
sudo apt-get update
204+
sudo apt-get install -y python3-pip
205+
sudo apt-get install -y python3-protobuf
206+
displayName: "Install dependencies"
207+
208+
- script: |
209+
sourceBranch=$(Build.SourceBranchName)
210+
if [[ "$(Build.Reason)" == "PullRequest" ]];then
211+
sourceBranch=$(System.PullRequest.TargetBranch)
212+
fi
213+
echo "Download artifact branch: $sourceBranch"
214+
echo "##vso[task.setvariable variable=sourceBranch]$sourceBranch"
215+
displayName: "Get correct artifact downloading branch"
216+
217+
- task: DownloadPipelineArtifact@2
218+
inputs:
219+
source: specific
220+
project: build
221+
pipeline: 142
222+
artifact: sonic-buildimage.vs
223+
runVersion: 'latestFromBranch'
224+
runBranch: 'refs/heads/$(sourceBranch)'
225+
patterns: |
226+
**/*.deb
227+
**/*.whl
228+
displayName: "Download artifacts from latest sonic-buildimage build"
229+
230+
- script: |
231+
set -xe
232+
sudo apt-get -y purge libnl-3-dev libnl-route-3-dev || true
233+
sudo dpkg -i libnl-3-200_*.deb
234+
sudo dpkg -i libnl-genl-3-200_*.deb
235+
sudo dpkg -i libnl-route-3-200_*.deb
236+
sudo dpkg -i libnl-nf-3-200_*.deb
237+
sudo dpkg -i libyang_1.0.73_amd64.deb
238+
sudo dpkg -i libyang-cpp_1.0.73_amd64.deb
239+
sudo dpkg -i python3-yang_1.0.73_amd64.deb
240+
workingDirectory: $(Pipeline.Workspace)/target/debs/bookworm/
241+
displayName: 'Install Debian dependencies'
242+
243+
- task: DownloadPipelineArtifact@2
244+
inputs:
245+
source: specific
246+
project: build
247+
pipeline: 9
248+
artifact: sonic-swss-common-bookworm
249+
runVersion: 'latestFromBranch'
250+
runBranch: 'refs/heads/$(sourceBranch)'
251+
displayName: "Download sonic swss common deb packages"
252+
253+
- script: |
254+
set -xe
255+
sudo dpkg -i libswsscommon_1.0.0_amd64.deb
256+
sudo dpkg -i python3-swsscommon_1.0.0_amd64.deb
257+
workingDirectory: $(Pipeline.Workspace)/
258+
displayName: 'Install swss-common dependencies'
259+
260+
- task: DownloadPipelineArtifact@2
261+
inputs:
262+
source: specific
263+
project: build
264+
pipeline: sonic-net.sonic-dash-api
265+
artifact: sonic-dash-api
266+
runVersion: 'latestFromBranch'
267+
runBranch: 'refs/heads/$(BUILD_BRANCH)'
268+
path: $(Build.ArtifactStagingDirectory)/download
269+
patterns: |
270+
libdashapi*.deb
271+
displayName: "Download dash api"
272+
273+
- script: |
274+
set -xe
275+
sudo apt-get update
276+
sudo dpkg -i $(Build.ArtifactStagingDirectory)/download/libdashapi_*.deb
277+
workingDirectory: $(Pipeline.Workspace)/
278+
displayName: 'Install libdashapi libraries'
279+
280+
- script: |
281+
set -xe
282+
sudo pip3 install swsssdk-2.0.1-py3-none-any.whl
283+
sudo pip3 install sonic_py_common-1.0-py3-none-any.whl
284+
sudo pip3 install sonic_yang_mgmt-1.0-py3-none-any.whl
285+
sudo pip3 install sonic_yang_models-1.0-py3-none-any.whl
286+
sudo pip3 install sonic_config_engine-1.0-py3-none-any.whl
287+
sudo pip3 install sonic_platform_common-1.0-py3-none-any.whl
288+
workingDirectory: $(Pipeline.Workspace)/target/python-wheels/bookworm/
289+
displayName: 'Install Python dependencies'
290+
291+
- task: DownloadPipelineArtifact@2
292+
inputs:
293+
artifact: wheels
294+
path: $(Build.ArtifactStagingDirectory)/download
295+
displayName: "Download pre-stage built sonic-utilities"
296+
297+
- script: |
298+
sudo pip3 install sonic_utilities-1.2-py3-none-any.whl
299+
workingDirectory: $(Build.ArtifactStagingDirectory)/download
300+
displayName: 'Install sonic-utilities wheel'
301+
302+
- script: |
303+
cd sonic-utilities-data
304+
dpkg-buildpackage -b
305+
displayName: 'Build sonic-utilities-data package'

show/main.py

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -271,14 +271,17 @@ def is_gearbox_configured():
271271
Checks whether Gearbox is configured or not
272272
"""
273273
app_db = SonicV2Connector()
274-
app_db.connect(app_db.APPL_DB)
274+
try:
275+
app_db.connect(app_db.APPL_DB)
275276

276-
keys = app_db.keys(app_db.APPL_DB, '*')
277+
keys = app_db.keys(app_db.APPL_DB, '*')
277278

278-
# If any _GEARBOX_TABLE:phy:* records present in APPL_DB, then the gearbox is configured
279-
if any(re.match(GEARBOX_TABLE_PHY_PATTERN, key) for key in keys):
280-
return True
281-
else:
279+
# If any _GEARBOX_TABLE:phy:* records present in APPL_DB, then the gearbox is configured
280+
if any(re.match(GEARBOX_TABLE_PHY_PATTERN, key) for key in keys):
281+
return True
282+
else:
283+
return False
284+
except RuntimeError:
282285
return False
283286

284287
CONTEXT_SETTINGS = dict(help_option_names=['-h', '--help', '-?'])

sonic-utilities-data/bash_completion.d/acl-loader

Lines changed: 0 additions & 9 deletions
This file was deleted.

sonic-utilities-data/bash_completion.d/config

Lines changed: 0 additions & 8 deletions
This file was deleted.

sonic-utilities-data/bash_completion.d/connect

Lines changed: 0 additions & 8 deletions
This file was deleted.

sonic-utilities-data/bash_completion.d/consutil

Lines changed: 0 additions & 8 deletions
This file was deleted.

sonic-utilities-data/bash_completion.d/counterpoll

Lines changed: 0 additions & 8 deletions
This file was deleted.

sonic-utilities-data/bash_completion.d/crm

Lines changed: 0 additions & 8 deletions
This file was deleted.

sonic-utilities-data/bash_completion.d/debug

Lines changed: 0 additions & 8 deletions
This file was deleted.

sonic-utilities-data/bash_completion.d/dump

Lines changed: 0 additions & 8 deletions
This file was deleted.

0 commit comments

Comments
 (0)