Pluralize radio
This commit is contained in:
+2
-2
@@ -2,8 +2,8 @@ host: 192.168.2.1
|
|||||||
username: admin
|
username: admin
|
||||||
password: admin
|
password: admin
|
||||||
authentication_method: MD5
|
authentication_method: MD5
|
||||||
# disable-wifi-radio:
|
# disable-wifi-radios:
|
||||||
# radio:
|
# radios:
|
||||||
# - RADIO2G4
|
# - RADIO2G4
|
||||||
# - RADIO5G
|
# - RADIO5G
|
||||||
# - RADIO6G
|
# - RADIO6G
|
||||||
@@ -120,20 +120,20 @@ async def set_dns_servers(client: SagemcomClient, dns_servers: tuple[IPv4Address
|
|||||||
|
|
||||||
|
|
||||||
@cli.command()
|
@cli.command()
|
||||||
@click.option('-r', '--radio', multiple=True)
|
@click.option('-r', '--radios', multiple=True)
|
||||||
@click.pass_obj
|
@click.pass_obj
|
||||||
async def disable_wifi_radio(client: SagemcomClient, radio: tuple | list) -> None:
|
async def disable_wifi_radios(client: SagemcomClient, radios: tuple[str] | list[str]) -> None:
|
||||||
try:
|
try:
|
||||||
value = await client.get_value_by_xpath('Device/WiFi/Radios')
|
value = await client.get_value_by_xpath('Device/WiFi/Radios')
|
||||||
active_radios = {radio['Alias'] for radio in value if 'Alias' in radio and \
|
active_radios = {radio['Alias'] for radio in value if 'Alias' in radio and \
|
||||||
'Enable' in radio and radio['Enable']}
|
'Enable' in radio and radio['Enable']}
|
||||||
if radio is None or not len(radio):
|
if not len(radios):
|
||||||
radio = click.prompt('Choose radio', type=click.Choice(active_radios), show_choices=True),
|
radios = click.prompt('Choose radio', type=click.Choice(active_radios), show_choices=True),
|
||||||
radios = set(radio) - active_radios
|
invalid_radios = set(radios) - active_radios
|
||||||
if len(radios):
|
if len(invalid_radios):
|
||||||
raise click.BadParameter("Invalid radio(s): {0}".format(", ".join(radios)))
|
raise click.BadParameter("Invalid radio(s): {0}".format(", ".join(invalid_radios)))
|
||||||
radios = set(radio) & active_radios
|
disable_radios = set(radios) & active_radios
|
||||||
for alias in radios:
|
for alias in disable_radios:
|
||||||
await client.set_value_by_xpath(f"Device/WiFi/Radios/Radio[Alias='{alias}']/Enable", False)
|
await client.set_value_by_xpath(f"Device/WiFi/Radios/Radio[Alias='{alias}']/Enable", False)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
click.echo(e, err=True)
|
click.echo(e, err=True)
|
||||||
|
|||||||
Reference in New Issue
Block a user