Skip to content

Commit f909009

Browse files
committed
cleanup workflow code
1 parent 445b56e commit f909009

File tree

1 file changed

+25
-22
lines changed

1 file changed

+25
-22
lines changed

kvirt/baseconfig.py

+25-22
Original file line numberDiff line numberDiff line change
@@ -1220,8 +1220,8 @@ def create_workflow(self, workflow, overrides={}, outputdir=None, run=True):
12201220
cwd = os.getcwd()
12211221
target = overrides.get('target')
12221222
if target is not None:
1223+
tunnel, tunnelhost, tunnelport, tunneluser, vmport = False, None, 22, 'root', None
12231224
if isinstance(target, str):
1224-
tunnel, tunnelhost, tunnelport, tunneluser, vmport = False, None, 22, 'root', None
12251225
user = None
12261226
if '@' in target:
12271227
if len(target) != 2:
@@ -1231,20 +1231,21 @@ def create_workflow(self, workflow, overrides={}, outputdir=None, run=True):
12311231
user, target = target.split('@')
12321232
if '.' not in target and not valid_ip(target):
12331233
credentials = common._ssh_credentials(self.k, target)
1234-
hostname = credentials[1]
12351234
user = user or credentials[0]
1235+
ip = credentials[1]
1236+
hostname = ip
12361237
else:
12371238
hostname, ip = target, target
12381239
user = user or 'root'
12391240
elif isinstance(target, dict):
1240-
hostname = target.get('hostname')
1241-
user = target.get('user')
1242-
ip = target.get('ip')
1241+
user = target.get('user', 'root')
1242+
hostname = target.get('hostname', 'localhost')
1243+
ip = target.get('ip', 'localhost')
12431244
vmport = target.get('vmport')
1244-
tunnel = self.tunnel
1245-
tunnelhost = self.tunnelhost
1246-
tunnelport = self.tunnelport
1247-
tunneluser = self.tunneluser
1245+
tunnel = target.get('tunnel', False)
1246+
tunnelhost = target.get('tunnelhost', None)
1247+
tunnelport = target.get('tunnelport', 22)
1248+
tunneluser = target.get('tunneluser', 'root')
12481249
requirefile = overrides.get('requirefile')
12491250
if requirefile is not None:
12501251
requirefile = os.path.expanduser(requirefile)
@@ -1261,8 +1262,7 @@ def create_workflow(self, workflow, overrides={}, outputdir=None, run=True):
12611262
msg = "No scripts provided"
12621263
error(msg)
12631264
return {'result': 'failure', 'reason': msg}
1264-
outputdir = os.path.realpath(outputdir or overrides.get('destdir'))
1265-
default_destdir = outputdir or '/root'
1265+
outputdir = os.path.realpath(outputdir or overrides.get('destdir', '.'))
12661266
directoryfiles = []
12671267
treatedfiles = []
12681268
directories = []
@@ -1273,7 +1273,7 @@ def create_workflow(self, workflow, overrides={}, outputdir=None, run=True):
12731273
if 'path' in entry:
12741274
destdir = os.path.dirname(entry['path'])
12751275
else:
1276-
destdir = f"{default_destdir}/{os.path.dirname(entry['origin'])}"
1276+
destdir = f"{destdir}/{os.path.dirname(entry['origin'])}"
12771277
if not os.path.exists(destdir):
12781278
pprint(f"Creating directory {destdir}")
12791279
os.makedirs(destdir)
@@ -1317,15 +1317,18 @@ def create_workflow(self, workflow, overrides={}, outputdir=None, run=True):
13171317
entrydir = os.path.dirname(entry)
13181318
entryname = os.path.basename(entry)
13191319
rendered = self.process_inputfile(workflow, entry, overrides=overrides)
1320-
destfile = f"{default_destdir}/{entrydir}/{entryname}"
1320+
destfile = f"{destdir}/{entrydir}/{entryname}"
13211321
with open(destfile, 'w') as f:
13221322
f.write(rendered)
13231323
os.chmod(destfile, stat.S_IMODE(os.stat(entry).st_mode))
13241324
finalscripts = []
13251325
tmpdir = None
1326-
if outputdir is None:
1326+
if 'destdir' in overrides:
1327+
outputdir = overrides['destdir']
1328+
elif outputdir is None:
13271329
tmpdir = TemporaryDirectory()
1328-
destdir = outputdir or tmpdir.name
1330+
outputdir = tmpdir.name
1331+
outputdir = os.path.realpath(outputdir)
13291332
for entry in scripts:
13301333
origin = os.path.expanduser(entry)
13311334
if not os.path.exists(origin):
@@ -1334,15 +1337,15 @@ def create_workflow(self, workflow, overrides={}, outputdir=None, run=True):
13341337
return {'result': 'failure', 'reason': msg}
13351338
elif os.path.isdir(origin):
13361339
origin = entry.get('origin')
1337-
if not os.path.exists(f"{destdir}/{origin}"):
1338-
os.makedirs(f"{destdir}/{origin}")
1340+
if not os.path.exists(f"{outputdir}/{origin}"):
1341+
os.makedirs(f"{outputdir}/{origin}")
13391342
directories.append(origin)
13401343
for _fic in os.listdir(origin):
13411344
directoryfiles.append(f'{origin}/{_fic}')
13421345
continue
13431346
scriptname = os.path.basename(origin)
13441347
rendered = self.process_inputfile(workflow, origin, overrides=overrides)
1345-
destfile = f"{destdir}/{scriptname}"
1348+
destfile = f"{outputdir}/{scriptname}"
13461349
if 'path' in destfile:
13471350
destfile = entry.get('path')
13481351
if not os.path.exists(os.path.dirname(destfile)):
@@ -1353,16 +1356,16 @@ def create_workflow(self, workflow, overrides={}, outputdir=None, run=True):
13531356
finalscripts.append(scriptname)
13541357
if cmds:
13551358
cmdscontent = '\n'.join(cmds)
1356-
destfile = f"{destdir}/cmds.sh"
1359+
destfile = f"{outputdir}/cmds.sh"
13571360
with open(destfile, 'w') as f:
13581361
f.write(cmdscontent)
13591362
finalscripts.append('cmds.sh')
13601363
if not run:
13611364
pprint("Not running as dry mode was requested")
13621365
return {'result': 'success'}
13631366
if target is not None:
1364-
remotedir = f"/tmp/{os.path.basename(destdir)}"
1365-
scpcmd = scp(hostname, ip=ip, user=user, source=destdir, destination=remotedir, download=False,
1367+
remotedir = f"/tmp/{os.path.basename(outputdir)}"
1368+
scpcmd = scp(hostname, ip=ip, user=user, source=outputdir, destination=remotedir, download=False,
13661369
insecure=True, tunnel=tunnel, tunnelhost=tunnelhost, tunnelport=tunnelport,
13671370
tunneluser=tunneluser, vmport=vmport)
13681371
os.system(scpcmd)
@@ -1376,7 +1379,7 @@ def create_workflow(self, workflow, overrides={}, outputdir=None, run=True):
13761379
tunnelport=tunnelport, tunneluser=tunneluser, vmport=vmport)
13771380
os.system(sshcommand)
13781381
else:
1379-
os.chdir(destdir)
1382+
os.chdir(outputdir)
13801383
for script in finalscripts:
13811384
os.chmod(script, 0o700)
13821385
pprint(f"Running script {script} locally")

0 commit comments

Comments
 (0)