From 1b62570466804a2fe0a21bbdccd7a289c8974496 Mon Sep 17 00:00:00 2001 From: Devaev Maxim Date: Wed, 30 Sep 2020 07:49:58 +0300 Subject: [PATCH] optional host_mac and kvm_mac --- kvmd/apps/__init__.py | 4 ++-- kvmd/apps/otg/__init__.py | 8 +++++--- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/kvmd/apps/__init__.py b/kvmd/apps/__init__.py index 2473fa72..149782c4 100644 --- a/kvmd/apps/__init__.py +++ b/kvmd/apps/__init__.py @@ -404,8 +404,8 @@ def _get_config_scheme() -> Dict: "ethernet": { "enabled": Option(False, type=valid_bool), - "host_mac": Option("", type=valid_mac, only_if="enabled"), - "kvm_mac": Option("", type=valid_mac, only_if="enabled"), + "host_mac": Option("", type=(lambda arg: (valid_mac(arg) if arg else ""))), + "kvm_mac": Option("", type=(lambda arg: (valid_mac(arg) if arg else ""))), }, "drives": { diff --git a/kvmd/apps/otg/__init__.py b/kvmd/apps/otg/__init__.py index 85db4b9d..6b98dc81 100644 --- a/kvmd/apps/otg/__init__.py +++ b/kvmd/apps/otg/__init__.py @@ -112,12 +112,14 @@ def _create_serial(gadget_path: str, config_path: str) -> None: def _create_ethernet(gadget_path: str, config_path: str, host_mac: str, kvm_mac: str) -> None: - if host_mac == kvm_mac: + if host_mac and kvm_mac and host_mac == kvm_mac: raise RuntimeError("Ethernet host_mac should not be equal to kvm_mac") func_path = join(gadget_path, "functions/ecm.usb0") _mkdir(func_path) - _write(join(func_path, "host_addr"), host_mac) - _write(join(func_path, "dev_addr"), kvm_mac) + if host_mac: + _write(join(func_path, "host_addr"), host_mac) + if kvm_mac: + _write(join(func_path, "dev_addr"), kvm_mac) _symlink(func_path, join(config_path, "ecm.usb0"))