Skip to content

Commit c009dc9

Browse files
committed
Add set-client-name
1 parent 5576cd2 commit c009dc9

File tree

3 files changed

+52
-1
lines changed

3 files changed

+52
-1
lines changed

src/tplink_omada_client/cli/__init__.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,9 @@
2222
command_targets,
2323
command_switch_ports,
2424
command_unblock_client,
25-
command_set_device_led
25+
command_set_device_led,
26+
command_set_client_name
27+
2628
)
2729

2830
def main(argv: Union[Sequence[str], None] = None) -> int:
@@ -57,6 +59,7 @@ def main(argv: Union[Sequence[str], None] = None) -> int:
5759
command_targets.arg_parser(subparsers)
5860
command_unblock_client.arg_parser(subparsers)
5961
command_set_device_led.arg_parser(subparsers)
62+
command_set_client_name.arg_parser(subparsers)
6063

6164
try:
6265
args = parser.parse_args(args=argv)
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
"""Implementation for 'set-client-name' command"""
2+
3+
from argparse import _SubParsersAction
4+
import datetime
5+
from tplink_omada_client.clients import OmadaWiredClientDetails, OmadaWirelessClientDetails
6+
7+
from .config import get_target_config, to_omada_connection
8+
from .util import get_device_by_mac_or_name, get_target_argument
9+
10+
async def command_set_client_name(args) -> int:
11+
"""Executes 'set-client-name' command"""
12+
controller = get_target_argument(args)
13+
config = get_target_config(controller)
14+
15+
async with to_omada_connection(config) as client:
16+
site_client = await client.get_site_client(config.site)
17+
mac = await site_client.get_client(args['mac'])
18+
name = args['name']
19+
await site_client.set_client_name(mac, name)
20+
return 0
21+
22+
def arg_parser(subparsers: _SubParsersAction) -> None:
23+
"""Configures arguments parser for 'set-client-name' command"""
24+
parser = subparsers.add_parser(
25+
"set-client-name",
26+
help="Sets the name of an omada client")
27+
parser.add_argument(
28+
"mac",
29+
help="The MAC address of the client to set the name for",
30+
)
31+
parser.add_argument("name", help="The new name of the client")
32+
33+
parser.set_defaults(func=command_set_client_name)

src/tplink_omada_client/omadasiteclient.py

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -476,3 +476,18 @@ async def set_led_setting(self, mac_or_device: Union[str, OmadaDevice], setting:
476476
)
477477

478478
return True
479+
480+
async def set_client_name(self, mac_or_client: Union[str, OmadaNetworkClient], name):
481+
"""Sets the name of a client"""
482+
if isinstance(mac_or_client, OmadaConnectedClient):
483+
mac = mac_or_client.mac
484+
else:
485+
mac = mac_or_client
486+
payload = {"name": name }
487+
await self._api.request(
488+
"patch",
489+
self._api.format_url(f"clients/{mac}", self._site_id),
490+
payload=payload,
491+
)
492+
493+
return True

0 commit comments

Comments
 (0)