1
0
mirror of https://github.com/GNS3/gns3-server synced 2024-11-24 17:28:08 +00:00

Make logs for searching GNS3 VM vmware IP less noisy

Fix #765
This commit is contained in:
Julien Duponchelle 2016-11-11 11:41:16 +01:00
parent 65090c6f87
commit 1bb760d3f0
No known key found for this signature in database
GPG Key ID: CE8B29639E07F5E8
3 changed files with 10 additions and 9 deletions

View File

@ -357,19 +357,19 @@ class VMware(BaseManager):
return self._host_type return self._host_type
@asyncio.coroutine @asyncio.coroutine
def execute(self, subcommand, args, timeout=120): def execute(self, subcommand, args, timeout=120, log_level=logging.INFO):
try: try:
return (yield from self._execute(subcommand, args, timeout=timeout)) return (yield from self._execute(subcommand, args, timeout=timeout, log_level=log_level))
except VMwareError as e: except VMwareError as e:
# We can fail to detect that it's VMware player instead of Workstation (due to marketing change Player is now Player Workstation) # We can fail to detect that it's VMware player instead of Workstation (due to marketing change Player is now Player Workstation)
if self.host_type == "ws" and "VIX_SERVICEPROVIDER_VMWARE_WORKSTATION" in str(e): if self.host_type == "ws" and "VIX_SERVICEPROVIDER_VMWARE_WORKSTATION" in str(e):
self._host_type = "player" self._host_type = "player"
return (yield from self._execute(subcommand, args, timeout=timeout)) return (yield from self._execute(subcommand, args, timeout=timeout, log_level=log_level))
else: else:
raise e raise e
@asyncio.coroutine @asyncio.coroutine
def _execute(self, subcommand, args, timeout=120): def _execute(self, subcommand, args, timeout=120, log_level=logging.INFO):
if self.host_type is None: if self.host_type is None:
yield from self.check_vmware_version() yield from self.check_vmware_version()
@ -380,7 +380,7 @@ class VMware(BaseManager):
command = [vmrun_path, "-T", self.host_type, subcommand] command = [vmrun_path, "-T", self.host_type, subcommand]
command.extend(args) command.extend(args)
command_string = " ".join(command) command_string = " ".join(command)
log.info("Executing vmrun with command: {}".format(command_string)) log.log(log_level, "Executing vmrun with command: {}".format(command_string))
try: try:
process = yield from asyncio.create_subprocess_exec(*command, stdout=asyncio.subprocess.PIPE, stderr=asyncio.subprocess.PIPE) process = yield from asyncio.create_subprocess_exec(*command, stdout=asyncio.subprocess.PIPE, stderr=asyncio.subprocess.PIPE)
except (OSError, subprocess.SubprocessError) as e: except (OSError, subprocess.SubprocessError) as e:

View File

@ -279,7 +279,6 @@ class GNS3VM:
port=self.port, port=self.port,
user=self.user, user=self.user,
password=self.password) password=self.password)
print(compute.password)
@locked_coroutine @locked_coroutine
def _suspend(self): def _suspend(self):

View File

@ -44,10 +44,10 @@ class VMwareGNS3VM(BaseGNS3VM):
return self._vmx_path return self._vmx_path
@asyncio.coroutine @asyncio.coroutine
def _execute(self, subcommand, args, timeout=60): def _execute(self, subcommand, args, timeout=60, log_level=logging.INFO):
try: try:
result = yield from self._vmware_manager.execute(subcommand, args, timeout) result = yield from self._vmware_manager.execute(subcommand, args, timeout, log_level=log_level)
return (''.join(result)) return (''.join(result))
except VMwareError as e: except VMwareError as e:
raise GNS3VMError("Error while executing VMware command: {}".format(e)) raise GNS3VMError("Error while executing VMware command: {}".format(e))
@ -132,14 +132,16 @@ class VMwareGNS3VM(BaseGNS3VM):
# get the guest IP address (first adapter only) # get the guest IP address (first adapter only)
trial = 120 trial = 120
guest_ip_address = "" guest_ip_address = ""
log.info("Waiting for GNS3 VM IP")
while True: while True:
guest_ip_address = yield from self._execute("readVariable", [self._vmx_path, "guestVar", "gns3.eth0"], timeout=120) guest_ip_address = yield from self._execute("readVariable", [self._vmx_path, "guestVar", "gns3.eth0"], timeout=120, log_level=logging.DEBUG)
guest_ip_address = guest_ip_address.strip() guest_ip_address = guest_ip_address.strip()
if len(guest_ip_address) != 0: if len(guest_ip_address) != 0:
break break
trial -= 1 trial -= 1
# If ip not found fallback on old method # If ip not found fallback on old method
if trial == 0: if trial == 0:
log.warn("No IP found for the VM via readVariable fallback to getGuestIPAddress")
guest_ip_address = yield from self._execute("getGuestIPAddress", [self._vmx_path, "-wait"], timeout=120) guest_ip_address = yield from self._execute("getGuestIPAddress", [self._vmx_path, "-wait"], timeout=120)
break break
yield from asyncio.sleep(1) yield from asyncio.sleep(1)