mirror of
https://github.com/GNS3/gns3-server.git
synced 2026-10-22 19:02:23 +03:00
refactor: use f-strings in docker compute modules
This commit is contained in:
parent
72fae7a1ce
commit
7f2c0c7e9c
@ -178,9 +178,9 @@ class Docker(BaseManager):
|
|||||||
else:
|
else:
|
||||||
# use the Min API version supported by the daemon
|
# use the Min API version supported by the daemon
|
||||||
self._api_version = docker_info["MinAPIVersion"]
|
self._api_version = docker_info["MinAPIVersion"]
|
||||||
log.warning("Using Docker client with the minimum API version {}".format(self._api_version))
|
log.warning(f"Using Docker client with the minimum API version {self._api_version}")
|
||||||
|
|
||||||
log.info("Connected to Docker daemon version {} using API version {}".format(version, self._api_version))
|
log.info(f"Connected to Docker daemon version {version} using API version {self._api_version}")
|
||||||
self._check_host_readiness()
|
self._check_host_readiness()
|
||||||
|
|
||||||
def _check_host_readiness(self):
|
def _check_host_readiness(self):
|
||||||
|
|||||||
@ -177,11 +177,7 @@ class DockerVM(BaseNode):
|
|||||||
|
|
||||||
self.mac_address = mac_address
|
self.mac_address = mac_address
|
||||||
|
|
||||||
log.debug(
|
log.debug(f"{self.manager.module_name}: {self.name} [{self._image}] initialized.")
|
||||||
"{module}: {name} [{image}] initialized.".format(
|
|
||||||
module=self.manager.module_name, name=self.name, image=self._image
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
def asdict(self):
|
def asdict(self):
|
||||||
return {
|
return {
|
||||||
@ -251,7 +247,7 @@ class DockerVM(BaseNode):
|
|||||||
Container name in Docker
|
Container name in Docker
|
||||||
"""
|
"""
|
||||||
|
|
||||||
return "GNS3.{}.{}".format(self.name, self._project.id)
|
return f"GNS3.{self.name}.{self._project.id}"
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def mac_address(self):
|
def mac_address(self):
|
||||||
@ -273,15 +269,11 @@ class DockerVM(BaseNode):
|
|||||||
|
|
||||||
if not mac_address:
|
if not mac_address:
|
||||||
# use the node UUID to generate a random MAC address
|
# use the node UUID to generate a random MAC address
|
||||||
self._mac_address = "02:42:{}:{}:{}:00".format(self.id[2:4], self.id[4:6], self.id[6:8])
|
self._mac_address = f"02:42:{self.id[2:4]}:{self.id[4:6]}:{self.id[6:8]}:00"
|
||||||
else:
|
else:
|
||||||
self._mac_address = mac_address
|
self._mac_address = mac_address
|
||||||
|
|
||||||
log.debug(
|
log.debug(f'Docker container "{self._name}" [{self._id}]: MAC address changed to {self._mac_address}')
|
||||||
'Docker container "{name}" [{id}]: MAC address changed to {mac_addr}'.format(
|
|
||||||
name=self._name, id=self._id, mac_addr=self._mac_address
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def start_command(self):
|
def start_command(self):
|
||||||
@ -468,7 +460,7 @@ class DockerVM(BaseNode):
|
|||||||
for volume in self._volumes:
|
for volume in self._volumes:
|
||||||
source = os.path.join(self.working_dir, os.path.relpath(volume, "/"))
|
source = os.path.join(self.working_dir, os.path.relpath(volume, "/"))
|
||||||
os.makedirs(source, exist_ok=True)
|
os.makedirs(source, exist_ok=True)
|
||||||
binds.append({"Type": "bind", "Source": source, "Target": "/gns3volumes{}".format(volume)})
|
binds.append({"Type": "bind", "Source": source, "Target": f"/gns3volumes{volume}"})
|
||||||
|
|
||||||
# Inject extra config files: write each to the node working directory and
|
# Inject extra config files: write each to the node working directory and
|
||||||
# bind-mount it read-only at its target path. Single-file binds are applied
|
# bind-mount it read-only at its target path. Single-file binds are applied
|
||||||
@ -536,7 +528,7 @@ class DockerVM(BaseNode):
|
|||||||
""")
|
""")
|
||||||
for adapter in range(0, self.adapters):
|
for adapter in range(0, self.adapters):
|
||||||
f.write(
|
f.write(
|
||||||
"""
|
f"""
|
||||||
# Static config for eth{adapter}
|
# Static config for eth{adapter}
|
||||||
#auto eth{adapter}
|
#auto eth{adapter}
|
||||||
#iface eth{adapter} inet static
|
#iface eth{adapter} inet static
|
||||||
@ -548,8 +540,8 @@ class DockerVM(BaseNode):
|
|||||||
# DHCP config for eth{adapter}
|
# DHCP config for eth{adapter}
|
||||||
#auto eth{adapter}
|
#auto eth{adapter}
|
||||||
#iface eth{adapter} inet dhcp
|
#iface eth{adapter} inet dhcp
|
||||||
#\thostname {hostname}
|
#\thostname {self._name}
|
||||||
""".format(adapter=adapter, hostname=self._name)
|
"""
|
||||||
)
|
)
|
||||||
return path
|
return path
|
||||||
|
|
||||||
@ -734,7 +726,7 @@ class DockerVM(BaseNode):
|
|||||||
var_value = var.get("value", "")
|
var_value = var.get("value", "")
|
||||||
|
|
||||||
formatted = self._format_env(variables, var_value)
|
formatted = self._format_env(variables, var_value)
|
||||||
params["Env"].append("{}={}".format(var_name, formatted))
|
params["Env"].append(f"{var_name}={formatted}")
|
||||||
|
|
||||||
if self._environment:
|
if self._environment:
|
||||||
for env in self._environment.strip().split("\n"):
|
for env in self._environment.strip().split("\n"):
|
||||||
@ -898,9 +890,7 @@ class DockerVM(BaseNode):
|
|||||||
state = await self._get_container_state()
|
state = await self._get_container_state()
|
||||||
except DockerHttp404Error:
|
except DockerHttp404Error:
|
||||||
raise DockerError(
|
raise DockerError(
|
||||||
"Docker container '{name}' with ID {cid} does not exist or is not ready yet. Please try again in a few seconds.".format(
|
f"Docker container '{self.name}' with ID {self._cid} does not exist or is not ready yet. Please try again in a few seconds."
|
||||||
name=self.name, cid=self._cid
|
|
||||||
)
|
|
||||||
)
|
)
|
||||||
if state == "paused":
|
if state == "paused":
|
||||||
await self.unpause()
|
await self.unpause()
|
||||||
@ -961,9 +951,7 @@ class DockerVM(BaseNode):
|
|||||||
self.status = "started"
|
self.status = "started"
|
||||||
await self._start_interface_monitor()
|
await self._start_interface_monitor()
|
||||||
log.debug(
|
log.debug(
|
||||||
"Docker container '{name}' [{image}] started listen for {console_type} on {console}".format(
|
f"Docker container '{self._name}' [{self._image}] started listen for {self.console_type} on {self.console}"
|
||||||
name=self._name, image=self._image, console=self.console, console_type=self.console_type
|
|
||||||
)
|
|
||||||
)
|
)
|
||||||
|
|
||||||
async def _start_console_server(self):
|
async def _start_console_server(self):
|
||||||
@ -1022,11 +1010,7 @@ class DockerVM(BaseNode):
|
|||||||
await self.manager.query("POST", f"containers/{self._cid}/start")
|
await self.manager.query("POST", f"containers/{self._cid}/start")
|
||||||
|
|
||||||
for volume in self._volumes:
|
for volume in self._volumes:
|
||||||
log.debug(
|
log.debug(f"Docker container '{self._name}' [{self._image}] fix ownership on {volume}")
|
||||||
"Docker container '{name}' [{image}] fix ownership on {path}".format(
|
|
||||||
name=self._name, image=self._image, path=volume
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
try:
|
try:
|
||||||
process = await asyncio.subprocess.create_subprocess_exec(
|
process = await asyncio.subprocess.create_subprocess_exec(
|
||||||
@ -1037,13 +1021,11 @@ class DockerVM(BaseNode):
|
|||||||
"sh",
|
"sh",
|
||||||
"-c",
|
"-c",
|
||||||
"("
|
"("
|
||||||
'/gns3/bin/busybox find "{path}" -depth -print0'
|
f'/gns3/bin/busybox find "{volume}" -depth -print0'
|
||||||
" | /gns3/bin/busybox xargs -0 /gns3/bin/busybox stat -c '%a:%u:%g:%n' > \"{path}/.gns3_perms\""
|
f" | /gns3/bin/busybox xargs -0 /gns3/bin/busybox stat -c '%a:%u:%g:%n' > \"{volume}/.gns3_perms\""
|
||||||
")"
|
")"
|
||||||
' && /gns3/bin/busybox chmod -R u+rX "{path}"'
|
f' && /gns3/bin/busybox chmod -R u+rX "{volume}"'
|
||||||
' && /gns3/bin/busybox chown {uid}:{gid} -R "{path}"'.format(
|
f' && /gns3/bin/busybox chown {os.getuid()}:{os.getgid()} -R "{volume}"',
|
||||||
uid=os.getuid(), gid=os.getgid(), path=volume
|
|
||||||
),
|
|
||||||
stderr=asyncio.subprocess.PIPE,
|
stderr=asyncio.subprocess.PIPE,
|
||||||
)
|
)
|
||||||
except OSError as e:
|
except OSError as e:
|
||||||
@ -1203,7 +1185,7 @@ class DockerVM(BaseNode):
|
|||||||
"None",
|
"None",
|
||||||
"-desktop",
|
"-desktop",
|
||||||
self.name,
|
self.name,
|
||||||
":{}".format(self._display),
|
f":{self._display}",
|
||||||
stdout=fd,
|
stdout=fd,
|
||||||
stderr=subprocess.STDOUT,
|
stderr=subprocess.STDOUT,
|
||||||
)
|
)
|
||||||
@ -1403,7 +1385,7 @@ class DockerVM(BaseNode):
|
|||||||
await self._stop_interface_monitor()
|
await self._stop_interface_monitor()
|
||||||
await self.manager.query("POST", f"containers/{self._cid}/restart")
|
await self.manager.query("POST", f"containers/{self._cid}/restart")
|
||||||
await self._start_interface_monitor()
|
await self._start_interface_monitor()
|
||||||
log.debug("Docker container '{name}' [{image}] restarted".format(name=self._name, image=self._image))
|
log.debug(f"Docker container '{self._name}' [{self._image}] restarted")
|
||||||
|
|
||||||
def _cleanup_console_resources(self):
|
def _cleanup_console_resources(self):
|
||||||
"""
|
"""
|
||||||
@ -1557,7 +1539,7 @@ class DockerVM(BaseNode):
|
|||||||
# Container deletion failed - log warning but don't block project close
|
# Container deletion failed - log warning but don't block project close
|
||||||
# The stale container will be cleaned up when the project is opened again
|
# The stale container will be cleaned up when the project is opened again
|
||||||
log.warning(f"Failed to delete Docker container '{self.docker_name}': {e}")
|
log.warning(f"Failed to delete Docker container '{self.docker_name}': {e}")
|
||||||
log.debug("Docker container '{name}' [{image}] removed".format(name=self._name, image=self._image))
|
log.debug(f"Docker container '{self._name}' [{self._image}] removed")
|
||||||
|
|
||||||
if release_nio_udp_ports:
|
if release_nio_udp_ports:
|
||||||
for adapter in self._ethernet_adapters:
|
for adapter in self._ethernet_adapters:
|
||||||
@ -1756,17 +1738,11 @@ class DockerVM(BaseNode):
|
|||||||
try:
|
try:
|
||||||
adapter = self._ethernet_adapters[adapter_number]
|
adapter = self._ethernet_adapters[adapter_number]
|
||||||
except IndexError:
|
except IndexError:
|
||||||
raise DockerError(
|
raise DockerError(f"Adapter {adapter_number} doesn't exist on Docker container '{self.name}'")
|
||||||
"Adapter {adapter_number} doesn't exist on Docker container '{name}'".format(
|
|
||||||
name=self.name, adapter_number=adapter_number
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
if port_number and adapter.interfaces == 1:
|
if port_number and adapter.interfaces == 1:
|
||||||
raise DockerError(
|
raise DockerError(
|
||||||
"Port {port_number} doesn't exist on adapter {adapter_number} of Docker container '{name}'".format(
|
f"Port {port_number} doesn't exist on adapter {adapter_number} of Docker container '{self.name}'"
|
||||||
name=self.name, port_number=port_number, adapter_number=adapter_number
|
|
||||||
)
|
|
||||||
)
|
)
|
||||||
|
|
||||||
for index in range(4096):
|
for index in range(4096):
|
||||||
@ -1775,16 +1751,12 @@ class DockerVM(BaseNode):
|
|||||||
break
|
break
|
||||||
if adapter.host_ifc is None:
|
if adapter.host_ifc is None:
|
||||||
raise DockerError(
|
raise DockerError(
|
||||||
"Adapter {adapter_number} couldn't allocate interface on Docker container '{name}'. Too many Docker interfaces already exists".format(
|
f"Adapter {adapter_number} couldn't allocate interface on Docker container '{self.name}'. Too many Docker interfaces already exists"
|
||||||
name=self.name, adapter_number=adapter_number
|
|
||||||
)
|
|
||||||
)
|
)
|
||||||
bridge_name = self._bridge_name(adapter_number, port_number)
|
bridge_name = self._bridge_name(adapter_number, port_number)
|
||||||
await self._ubridge_send(f"bridge create {bridge_name}")
|
await self._ubridge_send(f"bridge create {bridge_name}")
|
||||||
self._bridges.add(bridge_name)
|
self._bridges.add(bridge_name)
|
||||||
await self._ubridge_send(
|
await self._ubridge_send(f"bridge add_nio_tap {bridge_name} {adapter.host_ifc} off")
|
||||||
"bridge add_nio_tap {bridge_name} {hostif} off".format(bridge_name=bridge_name, hostif=adapter.host_ifc)
|
|
||||||
)
|
|
||||||
|
|
||||||
mac_address = int_to_macaddress(macaddress_to_int(self._mac_address) + adapter_number)
|
mac_address = int_to_macaddress(macaddress_to_int(self._mac_address) + adapter_number)
|
||||||
custom_adapter = self._get_custom_adapter_settings(adapter_number)
|
custom_adapter = self._get_custom_adapter_settings(adapter_number)
|
||||||
@ -1793,7 +1765,7 @@ class DockerVM(BaseNode):
|
|||||||
mac_address = custom_mac_address
|
mac_address = custom_mac_address
|
||||||
|
|
||||||
try:
|
try:
|
||||||
await self._ubridge_send("docker set_mac_addr {ifc} {mac}".format(ifc=adapter.host_ifc, mac=mac_address))
|
await self._ubridge_send(f"docker set_mac_addr {adapter.host_ifc} {mac_address}")
|
||||||
except UbridgeError:
|
except UbridgeError:
|
||||||
log.warning(f"Could not set MAC address {mac_address} on interface {adapter.host_ifc}")
|
log.warning(f"Could not set MAC address {mac_address} on interface {adapter.host_ifc}")
|
||||||
|
|
||||||
@ -1825,17 +1797,9 @@ class DockerVM(BaseNode):
|
|||||||
async def _connect_nio(self, adapter_number, nio, port_number=0):
|
async def _connect_nio(self, adapter_number, nio, port_number=0):
|
||||||
|
|
||||||
bridge_name = self._bridge_name(adapter_number, port_number)
|
bridge_name = self._bridge_name(adapter_number, port_number)
|
||||||
await self._ubridge_send(
|
await self._ubridge_send(f"bridge add_nio_udp {bridge_name} {nio.lport} {nio.rhost} {nio.rport}")
|
||||||
"bridge add_nio_udp {bridge_name} {lport} {rhost} {rport}".format(
|
|
||||||
bridge_name=bridge_name, lport=nio.lport, rhost=nio.rhost, rport=nio.rport
|
|
||||||
)
|
|
||||||
)
|
|
||||||
if nio.capturing:
|
if nio.capturing:
|
||||||
await self._ubridge_send(
|
await self._ubridge_send(f'bridge start_capture {bridge_name} "{nio.pcap_output_file}"')
|
||||||
'bridge start_capture {bridge_name} "{pcap_file}"'.format(
|
|
||||||
bridge_name=bridge_name, pcap_file=nio.pcap_output_file
|
|
||||||
)
|
|
||||||
)
|
|
||||||
await self._ubridge_send(f"bridge start {bridge_name}")
|
await self._ubridge_send(f"bridge start {bridge_name}")
|
||||||
await self._ubridge_apply_filters(bridge_name, nio.filters)
|
await self._ubridge_apply_filters(bridge_name, nio.filters)
|
||||||
await self._ubridge_apply_markers(bridge_name, nio)
|
await self._ubridge_apply_markers(bridge_name, nio)
|
||||||
@ -1852,17 +1816,11 @@ class DockerVM(BaseNode):
|
|||||||
try:
|
try:
|
||||||
adapter = self._ethernet_adapters[adapter_number]
|
adapter = self._ethernet_adapters[adapter_number]
|
||||||
except IndexError:
|
except IndexError:
|
||||||
raise DockerError(
|
raise DockerError(f"Adapter {adapter_number} doesn't exist on Docker container '{self.name}'")
|
||||||
"Adapter {adapter_number} doesn't exist on Docker container '{name}'".format(
|
|
||||||
name=self.name, adapter_number=adapter_number
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
if not adapter.port_exists(port_number):
|
if not adapter.port_exists(port_number):
|
||||||
raise DockerError(
|
raise DockerError(
|
||||||
"Port {port_number} doesn't exist on adapter {adapter_number} of Docker container '{name}'".format(
|
f"Port {port_number} doesn't exist on adapter {adapter_number} of Docker container '{self.name}'"
|
||||||
name=self.name, port_number=port_number, adapter_number=adapter_number
|
|
||||||
)
|
|
||||||
)
|
)
|
||||||
|
|
||||||
if self.status == "started" and self.ubridge:
|
if self.status == "started" and self.ubridge:
|
||||||
@ -1870,11 +1828,7 @@ class DockerVM(BaseNode):
|
|||||||
await self._set_adapter_carrier(adapter_number, not nio.suspend, port_number)
|
await self._set_adapter_carrier(adapter_number, not nio.suspend, port_number)
|
||||||
|
|
||||||
adapter.add_nio(port_number, nio)
|
adapter.add_nio(port_number, nio)
|
||||||
log.debug(
|
log.debug(f"Docker container '{self.name}' [{self._id}]: {nio} added to adapter {adapter_number}")
|
||||||
"Docker container '{name}' [{id}]: {nio} added to adapter {adapter_number}".format(
|
|
||||||
name=self.name, id=self._id, nio=nio, adapter_number=adapter_number
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
async def adapter_update_nio_binding(self, adapter_number, nio, port_number=0):
|
async def adapter_update_nio_binding(self, adapter_number, nio, port_number=0):
|
||||||
"""
|
"""
|
||||||
@ -1906,11 +1860,7 @@ class DockerVM(BaseNode):
|
|||||||
try:
|
try:
|
||||||
adapter = self._ethernet_adapters[adapter_number]
|
adapter = self._ethernet_adapters[adapter_number]
|
||||||
except IndexError:
|
except IndexError:
|
||||||
raise DockerError(
|
raise DockerError(f"Adapter {adapter_number} doesn't exist on Docker VM '{self.name}'")
|
||||||
"Adapter {adapter_number} doesn't exist on Docker VM '{name}'".format(
|
|
||||||
name=self.name, adapter_number=adapter_number
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
await self.stop_capture(adapter_number, port_number)
|
await self.stop_capture(adapter_number, port_number)
|
||||||
if self.ubridge:
|
if self.ubridge:
|
||||||
@ -1919,19 +1869,11 @@ class DockerVM(BaseNode):
|
|||||||
if self.status == "started":
|
if self.status == "started":
|
||||||
await self._set_adapter_carrier(adapter_number, False, port_number)
|
await self._set_adapter_carrier(adapter_number, False, port_number)
|
||||||
await self._ubridge_send(f"bridge stop {bridge_name}")
|
await self._ubridge_send(f"bridge stop {bridge_name}")
|
||||||
await self._ubridge_send(
|
await self._ubridge_send(f"bridge remove_nio_udp {bridge_name} {nio.lport} {nio.rhost} {nio.rport}")
|
||||||
"bridge remove_nio_udp {bridge_name} {lport} {rhost} {rport}".format(
|
|
||||||
bridge_name=bridge_name, lport=nio.lport, rhost=nio.rhost, rport=nio.rport
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
adapter.remove_nio(port_number)
|
adapter.remove_nio(port_number)
|
||||||
|
|
||||||
log.debug(
|
log.debug(f"Docker VM '{self.name}' [{self.id}]: {adapter.host_ifc} removed from adapter {adapter_number}")
|
||||||
"Docker VM '{name}' [{id}]: {nio} removed from adapter {adapter_number}".format(
|
|
||||||
name=self.name, id=self.id, nio=adapter.host_ifc, adapter_number=adapter_number
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
def get_nio(self, adapter_number, port_number=0):
|
def get_nio(self, adapter_number, port_number=0):
|
||||||
"""
|
"""
|
||||||
@ -1946,11 +1888,7 @@ class DockerVM(BaseNode):
|
|||||||
try:
|
try:
|
||||||
adapter = self._ethernet_adapters[adapter_number]
|
adapter = self._ethernet_adapters[adapter_number]
|
||||||
except KeyError:
|
except KeyError:
|
||||||
raise DockerError(
|
raise DockerError(f"Adapter {adapter_number} doesn't exist on Docker VM '{self.name}'")
|
||||||
"Adapter {adapter_number} doesn't exist on Docker VM '{name}'".format(
|
|
||||||
name=self.name, adapter_number=adapter_number
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
nio = adapter.get_nio(port_number)
|
nio = adapter.get_nio(port_number)
|
||||||
|
|
||||||
@ -1985,11 +1923,7 @@ class DockerVM(BaseNode):
|
|||||||
for adapter_number in range(0, adapters):
|
for adapter_number in range(0, adapters):
|
||||||
self._ethernet_adapters.append(EthernetAdapter())
|
self._ethernet_adapters.append(EthernetAdapter())
|
||||||
|
|
||||||
log.debug(
|
log.debug(f'Docker container "{self._name}" [{self._id}]: number of Ethernet adapters changed to {adapters}')
|
||||||
'Docker container "{name}" [{id}]: number of Ethernet adapters changed to {adapters}'.format(
|
|
||||||
name=self._name, id=self._id, adapters=adapters
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
async def _start_ubridge_capture(self, adapter_number, output_file, port_number=0):
|
async def _start_ubridge_capture(self, adapter_number, output_file, port_number=0):
|
||||||
"""
|
"""
|
||||||
@ -2035,11 +1969,7 @@ class DockerVM(BaseNode):
|
|||||||
if self.status == "started" and self.ubridge:
|
if self.status == "started" and self.ubridge:
|
||||||
await self._start_ubridge_capture(adapter_number, output_file, port_number)
|
await self._start_ubridge_capture(adapter_number, output_file, port_number)
|
||||||
|
|
||||||
log.debug(
|
log.debug(f"Docker VM '{self.name}' [{self.id}]: starting packet capture on adapter {adapter_number}")
|
||||||
"Docker VM '{name}' [{id}]: starting packet capture on adapter {adapter_number}".format(
|
|
||||||
name=self.name, id=self.id, adapter_number=adapter_number
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
async def stop_capture(self, adapter_number, port_number=0):
|
async def stop_capture(self, adapter_number, port_number=0):
|
||||||
"""
|
"""
|
||||||
@ -2056,11 +1986,7 @@ class DockerVM(BaseNode):
|
|||||||
if self.status == "started" and self.ubridge:
|
if self.status == "started" and self.ubridge:
|
||||||
await self._stop_ubridge_capture(adapter_number, port_number)
|
await self._stop_ubridge_capture(adapter_number, port_number)
|
||||||
|
|
||||||
log.debug(
|
log.debug(f"Docker VM '{self.name}' [{self.id}]: stopping packet capture on adapter {adapter_number}")
|
||||||
"Docker VM '{name}' [{id}]: stopping packet capture on adapter {adapter_number}".format(
|
|
||||||
name=self.name, id=self.id, adapter_number=adapter_number
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
async def _get_log(self):
|
async def _get_log(self):
|
||||||
"""
|
"""
|
||||||
|
|||||||
@ -418,11 +418,7 @@ class VendorDockerVM(DockerVM):
|
|||||||
try:
|
try:
|
||||||
adapter = self._ethernet_adapters[adapter_number]
|
adapter = self._ethernet_adapters[adapter_number]
|
||||||
except IndexError:
|
except IndexError:
|
||||||
raise DockerError(
|
raise DockerError(f"Adapter {adapter_number} doesn't exist on Docker container '{self.name}'")
|
||||||
"Adapter {adapter_number} doesn't exist on Docker container '{name}'".format(
|
|
||||||
name=self.name, adapter_number=adapter_number
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
interface_number = adapter_number * adapter.interfaces + port_number
|
interface_number = adapter_number * adapter.interfaces + port_number
|
||||||
bridge_name = self._bridge_name(adapter_number, port_number)
|
bridge_name = self._bridge_name(adapter_number, port_number)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user