mirror of
https://github.com/home-assistant/supervisor.git
synced 2025-06-27 04:16:30 +00:00
Add support for hostname change. (#68)
* Add support for hostname change. * Fix lint * Fix lint p2 * Update network.py
This commit is contained in:
parent
0cdef0d118
commit
97853d1691
5
API.md
5
API.md
@ -176,6 +176,11 @@ Optional:
|
|||||||
### Network
|
### Network
|
||||||
|
|
||||||
- GET `/network/info`
|
- GET `/network/info`
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"hostname": ""
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
- POST `/network/options`
|
- POST `/network/options`
|
||||||
```json
|
```json
|
||||||
|
@ -1,11 +1,19 @@
|
|||||||
"""Init file for HassIO network rest api."""
|
"""Init file for HassIO network rest api."""
|
||||||
import logging
|
import logging
|
||||||
|
|
||||||
from .util import api_process_hostcontrol
|
import voluptuous as vol
|
||||||
|
|
||||||
|
from .util import api_process, api_process_hostcontrol, api_validate
|
||||||
|
from ..const import ATTR_HOSTNAME
|
||||||
|
|
||||||
_LOGGER = logging.getLogger(__name__)
|
_LOGGER = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
||||||
|
SCHEMA_OPTIONS = vol.Schema({
|
||||||
|
vol.Optional(ATTR_HOSTNAME): vol.Coerce(str),
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
class APINetwork(object):
|
class APINetwork(object):
|
||||||
"""Handle rest api for network functions."""
|
"""Handle rest api for network functions."""
|
||||||
|
|
||||||
@ -15,12 +23,21 @@ class APINetwork(object):
|
|||||||
self.loop = loop
|
self.loop = loop
|
||||||
self.host_control = host_control
|
self.host_control = host_control
|
||||||
|
|
||||||
@api_process_hostcontrol
|
@api_process
|
||||||
def info(self, request):
|
async def info(self, request):
|
||||||
"""Show network settings."""
|
"""Show network settings."""
|
||||||
pass
|
return {
|
||||||
|
ATTR_HOSTNAME: self.host_control.hostname,
|
||||||
|
}
|
||||||
|
|
||||||
@api_process_hostcontrol
|
@api_process_hostcontrol
|
||||||
def options(self, request):
|
async def options(self, request):
|
||||||
"""Edit network settings."""
|
"""Edit network settings."""
|
||||||
pass
|
body = await api_validate(SCHEMA_OPTIONS, request)
|
||||||
|
|
||||||
|
# hostname
|
||||||
|
if ATTR_HOSTNAME in body:
|
||||||
|
if self.host_control.hostname != body[ATTR_HOSTNAME]:
|
||||||
|
await self.host_control.set_hostname(body[ATTR_HOSTNAME])
|
||||||
|
|
||||||
|
return True
|
||||||
|
@ -17,6 +17,7 @@ UNKNOWN = 'unknown'
|
|||||||
FEATURES_SHUTDOWN = 'shutdown'
|
FEATURES_SHUTDOWN = 'shutdown'
|
||||||
FEATURES_REBOOT = 'reboot'
|
FEATURES_REBOOT = 'reboot'
|
||||||
FEATURES_UPDATE = 'update'
|
FEATURES_UPDATE = 'update'
|
||||||
|
FEATURES_HOSTNAME = 'hostname'
|
||||||
FEATURES_NETWORK_INFO = 'network_info'
|
FEATURES_NETWORK_INFO = 'network_info'
|
||||||
FEATURES_NETWORK_CONTROL = 'network_control'
|
FEATURES_NETWORK_CONTROL = 'network_control'
|
||||||
|
|
||||||
@ -117,3 +118,7 @@ class HostControl(object):
|
|||||||
if version:
|
if version:
|
||||||
return self._send_command("update {}".format(version))
|
return self._send_command("update {}".format(version))
|
||||||
return self._send_command("update")
|
return self._send_command("update")
|
||||||
|
|
||||||
|
def set_hostname(self, hostname):
|
||||||
|
"""Update hostname on host."""
|
||||||
|
return self._send_command("hostname {}".format(hostname))
|
||||||
|
Loading…
x
Reference in New Issue
Block a user