Even more logging fixes (#757)

Hopefully the last one for a bit.

This only output the cmdline if log_file is present (ie, not to stdout).  It also fixes a bug where the log_file was not passed in one line.

Reviewed-on: cerc-io/stack-orchestrator#757
Co-authored-by: Thomas E Lackey <telackey@bozemanpass.com>
Co-committed-by: Thomas E Lackey <telackey@bozemanpass.com>
This commit is contained in:
Thomas E Lackey 2024-02-22 01:24:44 +00:00 committed by Thomas E Lackey
parent 4a4d48ddb9
commit 6bd77c893a

View File

@ -40,13 +40,18 @@ class AttrDict(dict):
def logged_cmd(log_file, *vargs):
result = None
try:
print(" ".join(vargs), file=log_file)
result = subprocess.run(vargs, capture_output=True, stdout=log_file, stderr=log_file)
if log_file:
print(" ".join(vargs), file=log_file)
result = subprocess.run(vargs, capture_output=True)
result.check_returncode()
return result.stdout.decode()
except Exception as err:
print(str(err), file=log_file)
if result:
print(result.stderr.decode(), file=log_file)
else:
print(str(err), file=log_file)
raise err
@ -184,7 +189,7 @@ class LaconicRegistryClient:
self.set_name(name, new_record_id)
return new_record_id
finally:
logged_cmd("rm", "-rf", tmpdir)
logged_cmd(self.log_file, "rm", "-rf", tmpdir)
def set_name(self, name, record_id):
logged_cmd(self.log_file, "laconic", "-c", self.config_file, "cns", "name", "set", name, record_id)