Skip to content

Commit ac124d7

Browse files
authored
Merge pull request #138 from saksham-gera/dev
(Revised PR #132) Fixing Issue #124 , Implemented Logging for debugging in mkconcore.py
2 parents c95d9df + 8d6481e commit ac124d7

1 file changed

Lines changed: 48 additions & 50 deletions

File tree

mkconcore.py

Lines changed: 48 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,11 @@
2828
INDIRNAME = ":/in"
2929
OUTDIRNAME = ":/out"
3030

31+
logging.basicConfig(
32+
level=logging.INFO,
33+
format='%(message)s' if TRIMMED_LOGS else '%(asctime)s %(levelname)-8s %(message)s',
34+
datefmt='%Y-%m-%d %H:%M:%S'
35+
)
3136

3237
if os.path.exists(CONCOREPATH+"/concore.octave"):
3338
M_IS_OCTAVE = True #treat .m as octave 9/27/21
@@ -46,20 +51,20 @@
4651
sourcedir = sys.argv[2]
4752
outdir = sys.argv[3]
4853
if not os.path.isdir(sourcedir):
49-
print(sourcedir+" does not exist")
54+
logging.error(f"{sourcedir} does not exist")
5055
quit()
5156

5257
if len(sys.argv) < 4:
53-
print("usage: py mkconcore.py file.graphml sourcedir outdir [type]")
54-
print(" type must be posix (macos or ubuntu), windows, or docker")
58+
logging.error("usage: py mkconcore.py file.graphml sourcedir outdir [type]")
59+
logging.error(" type must be posix (macos or ubuntu), windows, or docker")
5560
quit()
5661
elif len(sys.argv) == 4:
5762
prefixedgenode = outdir+"_" #nodes and edges prefixed with outdir_ only in case no type specified 3/24/21
5863
concoretype = "docker"
5964
else:
6065
concoretype = sys.argv[4]
6166
if not (concoretype in ["posix","windows","docker","macos","ubuntu"]):
62-
print(" type must be posix (macos or ubuntu), windows, or docker")
67+
logging.error(" type must be posix (macos or ubuntu), windows, or docker")
6368
quit()
6469
ubuntu = False #6/24/21
6570
if concoretype == "ubuntu":
@@ -69,8 +74,8 @@
6974
concoretype = "posix"
7075

7176
if os.path.exists(outdir):
72-
print(outdir+" already exists")
73-
print("if intended, remove or rename "+outdir+" first")
77+
logging.error(f"{outdir} already exists")
78+
logging.error(f"if intended, Remove/Rename {outdir} first")
7479
quit()
7580

7681
os.mkdir(outdir)
@@ -97,22 +102,16 @@
97102

98103
os.mkdir("src")
99104
os.chdir("..")
100-
101-
print("mkconcore "+MKCONCORE_VER)
102-
print("concore path: "+CONCOREPATH)
103-
print("graphml input: "+GRAPHML_FILE)
104-
print("source directory: "+sourcedir)
105-
print("output directory: "+outdir)
106-
print("control core type: "+concoretype)
107-
print("treat .m as octave:"+str(M_IS_OCTAVE))
108-
print("MCR path: "+MCRPATH)
109-
print("Docker repository: "+DOCKEREPO)
110-
111-
# Output in a preferred format.
112-
if TRIMMED_LOGS:
113-
logging.basicConfig(level=logging.INFO, format='%(message)s')
114-
else:
115-
logging.basicConfig(level=logging.INFO, format='%(asctime)s %(levelname)-8s %(message)s', datefmt='%Y-%m-%d %H:%M:%S')
105+
106+
logging.info(f"mkconcore {MKCONCORE_VER}")
107+
logging.info(f"Concore path: {CONCOREPATH}")
108+
logging.info(f"graphml input: {GRAPHML_FILE}")
109+
logging.info(f"source directory: {sourcedir}")
110+
logging.info(f"output directory: {outdir}")
111+
logging.info(f"control core type: {concoretype}")
112+
logging.info(f"treat .m as octave: {str(M_IS_OCTAVE)}")
113+
logging.info(f"MCR path: {MCRPATH}")
114+
logging.info(f"Docker repository: {DOCKEREPO}")
116115

117116
f = open(GRAPHML_FILE, "r")
118117
text_str = f.read()
@@ -181,7 +180,7 @@
181180
ms += mp
182181

183182
if (ms == 0).any():
184-
print("not all nodes reachable")
183+
logging.warning("Unreachable nodes detected")
185184

186185
#not right for PM2_1_1 and PM2_1_2
187186
volswr = len(nodes_dict)*['']
@@ -211,7 +210,7 @@
211210
try:
212211
fsource = open(sourcedir+"/"+sourcecode)
213212
except:
214-
print(sourcecode+" does not exist in "+sourcedir)
213+
logging.error(f"{sourcecode} not found in {sourcedir}")
215214
quit()
216215
with open(outdir+"/src/"+sourcecode,"w") as fcopy:
217216
fcopy.write(fsource.read())
@@ -221,9 +220,9 @@
221220
fsource = open(sourcedir+"/Dockerfile."+dockername)
222221
with open(outdir+"/src/Dockerfile."+dockername,"w") as fcopy:
223222
fcopy.write(fsource.read())
224-
print(" Using custom Dockerfile for "+dockername)
223+
logging.info(f"Using custom Dockerfile for {dockername}")
225224
except:
226-
print(" Using default Dockerfile for "+dockername)
225+
logging.info(f"Using default Dockerfile for {dockername}")
227226
fsource.close()
228227
if os.path.isdir(sourcedir+"/"+dockername+".dir"):
229228
shutil.copytree(sourcedir+"/"+dockername+".dir",outdir+"/src/"+dockername+".dir")
@@ -235,7 +234,7 @@
235234
else:
236235
fsource = open(CONCOREPATH+"/concore.py")
237236
except:
238-
print(CONCOREPATH+" is not correct path to concore")
237+
logging.error(f"{CONCOREPATH} is not correct path to concore")
239238
quit()
240239
with open(outdir+"/src/concore.py","w") as fcopy:
241240
fcopy.write(fsource.read())
@@ -248,7 +247,7 @@
248247
else:
249248
fsource = open(CONCOREPATH+"/concore.hpp")
250249
except:
251-
print(CONCOREPATH+" is not correct path to concore")
250+
logging.error(f"{CONCOREPATH} is not correct path to concore")
252251
quit()
253252
with open(outdir+"/src/concore.hpp","w") as fcopy:
254253
fcopy.write(fsource.read())
@@ -261,7 +260,7 @@
261260
else:
262261
fsource = open(CONCOREPATH+"/concore.v")
263262
except:
264-
print(CONCOREPATH+" is not correct path to concore")
263+
logging.error(f"{CONCOREPATH} is not correct path to concore")
265264
quit()
266265
with open(outdir+"/src/concore.v","w") as fcopy:
267266
fcopy.write(fsource.read())
@@ -271,7 +270,7 @@
271270
try:
272271
fsource = open(CONCOREPATH+"/mkcompile")
273272
except:
274-
print(CONCOREPATH+" is not correct path to concore")
273+
logging.error(f"{CONCOREPATH} is not correct path to concore")
275274
quit()
276275
with open(outdir+"/src/mkcompile","w") as fcopy:
277276
fcopy.write(fsource.read())
@@ -282,55 +281,55 @@
282281
try: #maxtime in matlab 11/22/21
283282
fsource = open(CONCOREPATH+"/concore_default_maxtime.m")
284283
except:
285-
print(CONCOREPATH+" is not correct path to concore")
284+
logging.error(f"{CONCOREPATH} is not correct path to concore")
286285
quit()
287286
with open(outdir+"/src/concore_default_maxtime.m","w") as fcopy:
288287
fcopy.write(fsource.read())
289288
fsource.close()
290289
try:
291290
fsource = open(CONCOREPATH+"/concore_unchanged.m")
292291
except:
293-
print(CONCOREPATH+" is not correct path to concore")
292+
logging.error(f"{CONCOREPATH} is not correct path to concore")
294293
quit()
295294
with open(outdir+"/src/concore_unchanged.m","w") as fcopy:
296295
fcopy.write(fsource.read())
297296
fsource.close()
298297
try:
299298
fsource = open(CONCOREPATH+"/concore_read.m")
300299
except:
301-
print(CONCOREPATH+" is not correct path to concore")
300+
logging.error(f"{CONCOREPATH} is not correct path to concore")
302301
quit()
303302
with open(outdir+"/src/concore_read.m","w") as fcopy:
304303
fcopy.write(fsource.read())
305304
fsource.close()
306305
try:
307306
fsource = open(CONCOREPATH+"/concore_write.m")
308307
except:
309-
print(CONCOREPATH+" is not correct path to concore")
308+
logging.error(f"{CONCOREPATH} is not correct path to concore")
310309
quit()
311310
with open(outdir+"/src/concore_write.m","w") as fcopy:
312311
fcopy.write(fsource.read())
313312
fsource.close()
314313
try: #4/9/21
315314
fsource = open(CONCOREPATH+"/concore_initval.m")
316315
except:
317-
print(CONCOREPATH+" is not correct path to concore")
316+
logging.error(f"{CONCOREPATH} is not correct path to concore")
318317
quit()
319318
with open(outdir+"/src/concore_initval.m","w") as fcopy:
320319
fcopy.write(fsource.read())
321320
fsource.close()
322321
try: #11/19/21
323322
fsource = open(CONCOREPATH+"/concore_iport.m")
324323
except:
325-
print(CONCOREPATH+" is not correct path to concore")
324+
logging.error(f"{CONCOREPATH} is not correct path to concore")
326325
quit()
327326
with open(outdir+"/src/concore_iport.m","w") as fcopy:
328327
fcopy.write(fsource.read())
329328
fsource.close()
330329
try: #11/19/21
331330
fsource = open(CONCOREPATH+"/concore_oport.m")
332331
except:
333-
print(CONCOREPATH+" is not correct path to concore")
332+
logging.error(f"{CONCOREPATH} is not correct path to concore")
334333
quit()
335334
with open(outdir+"/src/concore_oport.m","w") as fcopy:
336335
fcopy.write(fsource.read())
@@ -341,7 +340,7 @@
341340
else:
342341
fsource = open(CONCOREPATH+"/import_concore.m")
343342
except:
344-
print(CONCOREPATH+" is not correct path to concore")
343+
logging.error(f"{CONCOREPATH} is not correct path to concore")
345344
quit()
346345
with open(outdir+"/src/import_concore.m","w") as fcopy:
347346
fcopy.write(fsource.read())
@@ -359,7 +358,7 @@
359358
if len(sourcecode)!=0 and sourcecode.find(".")!=-1: #3/28/21
360359
dockername,langext = sourcecode.split(".")
361360
if os.path.exists(outdir+"/src/"+dockername+".iport"):
362-
print("warning: "+dockername+" has multiple instantiations; iport/oport may be invalid")
361+
logging.warning(f"{dockername} has multiple instantiations ; iport/oport may be invalid")
363362
with open(outdir+"/src/"+dockername+".iport", "w") as fport:
364363
if prefixedgenode == "": # 5/18/21
365364
fport.write(str(iportmap_dict))
@@ -400,21 +399,21 @@
400399
try:
401400
if langext=="py":
402401
fsource = open(CONCOREPATH+"/Dockerfile.py")
403-
print("assuming .py extension for Dockerfile")
402+
logging.info("assuming .py extension for Dockerfile")
404403
elif langext == "cpp": # 6/22/21
405404
fsource = open(CONCOREPATH+"/Dockerfile.cpp")
406-
print("assuming .cpp extension for Dockerfile")
405+
logging.info("assuming .cpp extension for Dockerfile")
407406
elif langext == "v": # 6/26/21
408407
fsource = open(CONCOREPATH+"/Dockerfile.v")
409-
print("assuming .v extension for Dockerfile")
408+
logging.info("assuming .v extension for Dockerfile")
410409
elif langext == "sh": # 5/19/21
411410
fsource = open(CONCOREPATH+"/Dockerfile.sh")
412-
print("assuming .sh extension for Dockerfile")
411+
logging.info("assuming .sh extension for Dockerfile")
413412
else:
414-
print("assuming .m extension for Dockerfile")
415413
fsource = open(CONCOREPATH+"/Dockerfile.m")
414+
logging.info("assuming .m extension for Dockerfile")
416415
except:
417-
print(CONCOREPATH+" is not correct path to concore")
416+
logging.error(f"{CONCOREPATH} is not correct path to concore")
418417
quit()
419418
with open(outdir+"/src/Dockerfile."+dockername,"w") as fcopy:
420419
fcopy.write(fsource.read())
@@ -467,11 +466,11 @@
467466
containername,sourcecode = nodes_dict[node].split(':')
468467
if len(sourcecode)!=0:
469468
if sourcecode.find(".")==-1:
470-
print(DOCKEREXE+' run --name='+containername+volswr[i]+volsro[i]+" "+DOCKEREPO+"/docker-"+sourcecode)
469+
logging.debug(f"Generating Docker run command: {DOCKEREXE} run --name={containername+volswr[i]+volsro[i]} {DOCKEREPO}/docker- {sourcecode}")
471470
frun.write(DOCKEREXE+' run --name='+containername+volswr[i]+volsro[i]+" "+DOCKEREPO+"/docker-"+sourcecode+"&\n")
472471
else:
473472
dockername,langext = sourcecode.split(".")
474-
print(DOCKEREXE+' run --name='+containername+volswr[i]+volsro[i]+" docker-"+dockername)
473+
logging.debug(f"Generating Docker run command for {dockername}: {DOCKEREXE} run --name={containername+volswr[i]+volsro[i]} docker-{dockername}")
475474
frun.write(DOCKEREXE+' run --name='+containername+volswr[i]+volsro[i]+" docker-"+dockername+"&\n")
476475
#if langext != "m": #3/27/21
477476
# print(DOCKEREXE+' run --name='+containername+volswr[i]+volsro[i]+" docker-"+dockername)
@@ -651,7 +650,7 @@
651650
containername,sourcecode = nodes_dict[node].split(':')
652651
if len(sourcecode)!=0:
653652
if sourcecode.find(".")==-1:
654-
print("cannot pull container "+sourcecode+" with control core type "+concoretype) #3/28/21
653+
logging.error("cannot pull container "+sourcecode+" with control core type "+concoretype) #3/28/21
655654
quit()
656655
dockername,langext = sourcecode.split(".")
657656
fbuild.write('mkdir '+containername+"\n")
@@ -696,7 +695,6 @@
696695

697696
#make directories equivalent to volumes
698697
for edges in edges_dict:
699-
#print("mkdir "+edges)
700698
fbuild.write("mkdir "+edges+"\n")
701699

702700
#make links for out directories
@@ -741,7 +739,7 @@
741739
if len(sourcecode)!=0:
742740
dockername,langext = sourcecode.split(".")
743741
if not (langext in ["py","m","sh","cpp","v"]): # 6/22/21
744-
print("."+langext+" not supported (Yet)")
742+
logging.error(f"Extension .{langext} is unsupported")
745743
quit()
746744
if concoretype=="windows":
747745
if langext=="py":

0 commit comments

Comments
 (0)