1
2
3
4 """
5 Spots missing file ingests in the database, by comparing the given transfer
6 log to the list of files presently stored in the database for a given
7 cuEventID.
8
9 @author: R.S. Collins
10 @org: WFAU, IfA, University of Edinburgh
11 """
12
13 import os
14
15 from wsatools.CLI import CLI
16 from wsatools.DbConnect.DbSession import DbSession
17 from wsatools.Logger import Logger
18
19
20
21
22 if __name__ == "__main__":
23 CLI.progOpts.remove("test")
24 CLI.progOpts.remove("user")
25 CLI.progArgs += [
26 CLI.Argument("xferlog", "June05Av3_filelist20050608to14.log"),
27 CLI.Argument("cuEventID", "1830", isValOK=lambda x: x.isdigit())]
28 CLI.progOpts.append(
29 CLI.Option('o', "output",
30 "Name of file to write results to", "NAME"))
31
32 cli = CLI("SpotMissingIngests", "$Revision: 6773 $", __doc__)
33 Logger.isVerbose = False
34 Logger.addMessage(cli.getProgDetails())
35
36 db = DbSession(cli.getArg("database"))
37
38 ingestedList = db.query("fileName", "Multiframe",
39 "multiframeID>0 AND cuEventID="+cli.getArg("cuEventID"))
40
41 transList = file(os.path.join("/disk01/wsa/ingest/logs/",
42 cli.getArg("xferlog"))).readlines()
43 transSet = set(line.rstrip() for line in transList
44 if not line.endswith("_cat.fits\n"))
45
46 ingestedSet = set(file.split(':')[-1] for file in ingestedList)
47 notIngestedSet = transSet - ingestedSet
48
49 if not cli.getOpt("output"):
50 print('\n'.join(notIngestedSet))
51 else:
52 Logger.addMessage("Writing results to " + cli.getOpt("output"))
53 open(cli.getOpt("output"), 'w').write('\n'.join(notIngestedSet))
54
55
56
57
58
59