rda-python-metrics 2.0.4__py3-none-any.whl → 2.0.5__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -20,7 +20,7 @@ from .pg_ipinfo import PgIPInfo
20
20
  class FillAWSUsage(PgIPInfo, PgFile):
21
21
 
22
22
  def __init__(self):
23
- super().__init()
23
+ super().__init__()
24
24
  self.USAGE = {
25
25
  'PGTBL' : "awsusage",
26
26
  'AWSDIR' : self.PGLOG["TRANSFER"] + "/AWSera5log",
@@ -19,7 +19,7 @@ from .pg_ipinfo import PgIPInfo
19
19
  class FillCDGUsage(PgSplit, PgIPInfo):
20
20
 
21
21
  def __init__(self):
22
- super().__init()
22
+ super().__init__()
23
23
  self.USAGE = {
24
24
  'TDSTBL' : "tdsusage",
25
25
  'WEBTBL' : "wusage",
@@ -19,7 +19,7 @@ from .pg_ipinfo import PgIPInfo
19
19
  class FillCODUsage(PgIPInfo):
20
20
 
21
21
  def __init__(self):
22
- super().__init()
22
+ super().__init__()
23
23
  # the define options for gathering COD data usage, one at a time
24
24
  self.MONTH = 0x02 # fet COD data usages for given months
25
25
  self.YEARS = 0x04 # get COD data usages for given years
@@ -21,7 +21,7 @@ from .pg_ipinfo import PgIPInfo
21
21
  class FillGlobusUsage(PgIPInfo, PgSplit, PgFile):
22
22
 
23
23
  def __init__(self):
24
- super().__init()
24
+ super().__init__()
25
25
  self.USAGE = {
26
26
  'PGTBL' : "wusage",
27
27
  'GBSDIR' : self.PGLOG["GDEXWORK"] + "/logs/gridftp/",
@@ -13,8 +13,9 @@
13
13
  import sys
14
14
  import re
15
15
  from rda_python_common.pg_util import PgUtil
16
+ from rda_python_common.pg_dbi import PgDBI
16
17
 
17
- class FillRDADB(PgUtil):
18
+ class FillRDADB(PgUtil, PgDBI):
18
19
 
19
20
  def __init__(self):
20
21
  super().__init__()
@@ -33,90 +34,90 @@ class FillRDADB(PgUtil):
33
34
  }
34
35
  self.params = [] # array of input values
35
36
 
36
- # function to read parameters
37
- def read_paramers(self):
38
- argv = sys.argv[1:]
39
- for arg in argv:
40
- if arg == "-b":
41
- self.PGLOG['BCKGRND'] = "-b"
42
- self.RDADB['BCKGRND'] = " -b"
43
- elif arg == "-n":
44
- self.RDADB['DOMAIL'] = 0
45
- self.PGLOG['LOGMASK'] &= ~(self.EMLALL)
46
- elif re.match(r'^-[cdmNy]$', arg) and not self.RDADB['OPTVAL']:
47
- self.RDADB['OPTVAL'] = arg
48
- if arg == "-c":
49
- self.RDADB['OPTION'] |= self.CLNFL
50
- elif arg == "-d":
51
- self.RDADB['OPTION'] |= self.DATES
52
- elif arg == "-m":
53
- self.RDADB['OPTION'] |= self.MONTH
54
- elif arg == "-y":
55
- self.RDADB['OPTION'] |= self.YEARS
56
- elif arg == "-N":
57
- self.RDADB['OPTION'] |= self.NDAYS
58
- elif re.match(r'^-.*', arg):
59
- self.pglog(arg + ": Invalid Option", self.LGWNEX)
37
+ # function to read parameters
38
+ def read_parameters(self):
39
+ argv = sys.argv[1:]
40
+ for arg in argv:
41
+ if arg == "-b":
42
+ self.PGLOG['BCKGRND'] = "-b"
43
+ self.RDADB['BCKGRND'] = " -b"
44
+ elif arg == "-n":
45
+ self.RDADB['DOMAIL'] = 0
46
+ self.PGLOG['LOGMASK'] &= ~(self.EMLALL)
47
+ elif re.match(r'^-[cdmNy]$', arg) and not self.RDADB['OPTVAL']:
48
+ self.RDADB['OPTVAL'] = arg
49
+ if arg == "-c":
50
+ self.RDADB['OPTION'] |= self.CLNFL
51
+ elif arg == "-d":
52
+ self.RDADB['OPTION'] |= self.DATES
53
+ elif arg == "-m":
54
+ self.RDADB['OPTION'] |= self.MONTH
55
+ elif arg == "-y":
56
+ self.RDADB['OPTION'] |= self.YEARS
57
+ elif arg == "-N":
58
+ self.RDADB['OPTION'] |= self.NDAYS
59
+ elif re.match(r'^-.*', arg):
60
+ self.pglog(arg + ": Invalid Option", self.LGWNEX)
61
+ elif self.RDADB['OPTION']&self.MASKS:
62
+ self.params.append(arg)
63
+ else:
64
+ self.pglog(arg + ": Invalid Parameter", self.LGWNEX)
65
+ if not self.RDADB['OPTION'] or (self.RDADB['OPTION']&self.MASKS and not self.params):
66
+ self.show_usage('fillrdadb')
67
+ self.cmdlog("fillrdadb {}".format(' '.join(argv)))
68
+
69
+ # function to start actions
70
+ def start_actions(self):
71
+ self.dssdb_dbname()
72
+ if self.RDADB['OPTION']&self.CLNFL: # clean unused file only
73
+ self.clean_unused_files()
60
74
  elif self.RDADB['OPTION']&self.MASKS:
61
- self.params.append(arg)
62
- else:
63
- self.pglog(arg + ": Invalid Parameter", self.LGWNEX)
64
- if not self.RDADB['OPTION'] or (self.RDADB['OPTION']&self.MASKS and not self.params):
65
- self.show_usage('fillrdadb')
66
- self.cmdlog("fillrdadb {}".format(' '.join(argv)))
67
-
68
- # function to start actions
69
- def start_actions(self):
70
- self.dssdb_dbname()
71
- if self.RDADB['OPTION']&self.CLNFL: # clean unused file only
72
- self.clean_unused_files()
73
- elif self.RDADB['OPTION']&self.MASKS:
74
- self.fill_rdadb(self.RDADB['OPTVAL'])
75
-
76
- # Fill self.RDADB info for given condition
77
- def fill_rdadb(self, option):
78
- filecond = '{} {}'.format(option, ' '.join(self.params))
79
- self.pglog("Filling self.RDADB info for '{}' at {}".format(filecond, self.current_datetime()), self.LOGWRN)
80
- # fill available custom OPeNDAP usages
81
- self.pgsystem("fillcodusage {} {}".format(self.RDADB['BCKGRND'], filecond), self.LGWNEM, 5)
82
- # fill available globus web data usages
83
- self.pgsystem("fillglobususage {} {}".format(self.RDADB['BCKGRND'], filecond), self.LGWNEM, 5)
84
- # fill available AWS web data usages
85
- self.pgsystem("fillawsusage {} {}".format(self.RDADB['BCKGRND'], filecond), self.LGWNEM, 5)
86
- # fill available OSDF web data usages
87
- self.pgsystem("fillosdfusage {} {}".format(self.RDADB['BCKGRND'], filecond), self.LGWNEM, 5)
88
- if self.RDADB['DOMAIL']: self.send_email_notice()
89
- self.pglog("End Filling self.RDADB info at {}".format(self.current_datetime()), self.LGWNEM)
90
-
91
- # clean unused MSS and Web files
92
- def clean_unused_files(self):
93
- self.pglog("Check and clean deleted Web files that never been used at {}".format(self.current_datetime()), self.LOGWRN)
94
- pgrecs = self.pgmget("wfile", "wid", "status = 'D'", self.LGWNEX)
95
- allcnt = len(pgrecs['wid']) if pgrecs else 0
96
- self.pglog("{} record(s) retrieved from Table 'wfile' at {}".format(allcnt, self.current_datetime()), self.LOGWRN)
97
- procnt = delcnt = 0
98
- if allcnt:
99
- fcond = r"wid = {} AND org_type <> 'DSS' AND wuid_read = wuid"
100
- for fid in pgrecs['wid']:
101
- procnt += 1
102
- if procnt%5000 == 0:
103
- self.pglog("{}/{} record(s) processed/removed from Table 'wfile'".format(procnt, delcnt), self.WARNLG)
104
- if not self.pgget("wusage, wuser", "", fcond.format(fid), self.LGWNEX):
105
- # deleted web file never been used
106
- delcnt += self.pgdel("wfile", "wid = {}".format(fid), self.LGWNEX)
107
- self.pglog("{} record(s) removed from Table 'wfile' at {}".format(delcnt, self.current_datetime()), self.LOGWRN)
108
-
109
- # email notice of job done
110
- def send_email_notice(self):
111
- msg = ("Hi All,\n\nself.RDADB weekly data usage gathering is done at {}.\n\n".format(self.current_datetime()) +
112
- "Please Let me know if you notice any problem.\n\nThanks,\n\nHua\n")
113
- pgrecs = self.pgmget("dssgrp", "logname", "email_flag = 'Y'", self.LGWNEX)
114
- if pgrecs:
115
- receiver = ""
116
- for logname in pgrecs['logname']:
117
- if receiver: receiver += ', '
118
- receiver += (logname + "@ucar.edu")
119
- self.send_email("self.RDADB Weekly Data Usage Gathered on " + self.curdate(), receiver, msg)
75
+ self.fill_rdadb(self.RDADB['OPTVAL'])
76
+
77
+ # Fill self.RDADB info for given condition
78
+ def fill_rdadb(self, option):
79
+ filecond = '{} {}'.format(option, ' '.join(self.params))
80
+ self.pglog("Filling RDADB info for '{}' at {}".format(filecond, self.current_datetime()), self.LOGWRN)
81
+ # fill available custom OPeNDAP usages
82
+ self.pgsystem("fillcodusage {} {}".format(self.RDADB['BCKGRND'], filecond), self.LGWNEM, 5)
83
+ # fill available globus web data usages
84
+ self.pgsystem("fillglobususage {} {}".format(self.RDADB['BCKGRND'], filecond), self.LGWNEM, 5)
85
+ # fill available AWS web data usages
86
+ self.pgsystem("fillawsusage {} {}".format(self.RDADB['BCKGRND'], filecond), self.LGWNEM, 5)
87
+ # fill available OSDF web data usages
88
+ self.pgsystem("fillosdfusage {} {}".format(self.RDADB['BCKGRND'], filecond), self.LGWNEM, 5)
89
+ if self.RDADB['DOMAIL']: self.send_email_notice()
90
+ self.pglog("End Filling RDADB info at {}".format(self.current_datetime()), self.LGWNEM)
91
+
92
+ # clean unused MSS and Web files
93
+ def clean_unused_files(self):
94
+ self.pglog("Check and clean deleted Web files that never been used at {}".format(self.current_datetime()), self.LOGWRN)
95
+ pgrecs = self.pgmget("wfile", "wid", "status = 'D'", self.LGWNEX)
96
+ allcnt = len(pgrecs['wid']) if pgrecs else 0
97
+ self.pglog("{} record(s) retrieved from Table 'wfile' at {}".format(allcnt, self.current_datetime()), self.LOGWRN)
98
+ procnt = delcnt = 0
99
+ if allcnt:
100
+ fcond = r"wid = {} AND org_type <> 'DSS' AND wuid_read = wuid"
101
+ for fid in pgrecs['wid']:
102
+ procnt += 1
103
+ if procnt%5000 == 0:
104
+ self.pglog("{}/{} record(s) processed/removed from Table 'wfile'".format(procnt, delcnt), self.WARNLG)
105
+ if not self.pgget("wusage, wuser", "", fcond.format(fid), self.LGWNEX):
106
+ # deleted web file never been used
107
+ delcnt += self.pgdel("wfile", "wid = {}".format(fid), self.LGWNEX)
108
+ self.pglog("{} record(s) removed from Table 'wfile' at {}".format(delcnt, self.current_datetime()), self.LOGWRN)
109
+
110
+ # email notice of job done
111
+ def send_email_notice(self):
112
+ msg = ("Hi All,\n\nRDADB weekly data usage gathering is done at {}.\n\n".format(self.current_datetime()) +
113
+ "Please Let me know if you notice any problem.\n\nThanks,\n\nHua\n")
114
+ pgrecs = self.pgmget("dssgrp", "logname", "email_flag = 'Y'", self.LGWNEX)
115
+ if pgrecs:
116
+ receiver = ""
117
+ for logname in pgrecs['logname']:
118
+ if receiver: receiver += ', '
119
+ receiver += (logname + "@ucar.edu")
120
+ self.send_email("RDADB Weekly Data Usage Gathered on " + self.curdate(), receiver, msg)
120
121
 
121
122
  # main function to excecute this script
122
123
  def main():
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: rda_python_metrics
3
- Version: 2.0.4
3
+ Version: 2.0.5
4
4
  Summary: RDA Python Package to gather and view data usage metrics
5
5
  Author-email: Zaihua Ji <zji@ucar.edu>
6
6
  Project-URL: Homepage, https://github.com/NCAR/rda-python-metrics
@@ -13,17 +13,17 @@ rda_python_metrics/fill_osdfusage.py,sha256=lSSzQiQ3sElfT0c_IWcnhcJHfPaIsgzHCWo1
13
13
  rda_python_metrics/fill_rdadb.py,sha256=5OIzLUo-MHWVIA3sQE7CRMQSW8tX9PH7DocDy4rvbYA,5282
14
14
  rda_python_metrics/fill_tdsusage.py,sha256=HWcfnl226pGY2JigpJmMOr4k6Ddfu8pWky6J30QCEQI,10463
15
15
  rda_python_metrics/fill_user.py,sha256=CvaMRaUPaR9nxJAExkLTb3Ci4sD7RQMOpWhWJdbyMF0,8907
16
- rda_python_metrics/fillawsusage.py,sha256=pokixxcI7daD5nbpTYXdvzy5XXNuil5EjX-0qbQje9o,7809
16
+ rda_python_metrics/fillawsusage.py,sha256=sCdrM7Rx0jJTkUTG3JELxpqhVs7_OK2sTpZ9LLFUNMA,7811
17
17
  rda_python_metrics/fillawsusage.usg,sha256=-lLTRLTaEPL2rSQ4mhpIekhyYrLGahy7NWtaq_8PCDM,611
18
- rda_python_metrics/fillcdgusage.py,sha256=gHIbdf96WncAbEvQHO3qydbkyvEPhLlkBCc0Va3QpXs,18639
18
+ rda_python_metrics/fillcdgusage.py,sha256=wj-6LZb4AwiNXaeNjiXcHqigHmVlFxHyN14DPRCM1nw,18641
19
19
  rda_python_metrics/fillcdgusage.usg,sha256=5lkd4Zdi72nQcha-JtbaLnxl66V4wBDykKwQtUOtMrw,667
20
- rda_python_metrics/fillcodusage.py,sha256=525yvcRVwnsIheg7maJwt94g6eqPzR7EdM8bagfKyWI,9329
20
+ rda_python_metrics/fillcodusage.py,sha256=ap-MrUlrppCYxVA9bRrTN3I-ZWDs285TDTxtc0zzhWE,9331
21
21
  rda_python_metrics/fillcodusage.usg,sha256=3B5IkQ4uwylqY8uEfUdnZ_MXqhYudeylMp5ulhUGXH8,678
22
22
  rda_python_metrics/fillcountry.py,sha256=QYQ3fShTsbiDW3pKLkuT4Pl-WGTiRy0S82ONhRi8zxo,2728
23
23
  rda_python_metrics/fillendtime.py,sha256=VLL8nTES_ijRqRKeU1Xj_a7zbZNUnYaE8jlSqcF8GYk,2453
24
24
  rda_python_metrics/fillgdexusage.py,sha256=9U8k2WykGAmnyKvY6ZiYqzpw9MXpE1fpyJUjFDMb_Fc,38258
25
25
  rda_python_metrics/fillgdexusage.usg,sha256=mVYtK0pIYmvma0skT-wXM-NOEpkN_i3E61UdWgQWLfs,648
26
- rda_python_metrics/fillglobususage.py,sha256=2k87on9RVlJEyRJ0i77HVfQ4H6z9VH5T0kvrecPWUtI,9478
26
+ rda_python_metrics/fillglobususage.py,sha256=oT-1AKe6FVP2XUNHq7FTANzFf3UfuSgwX-Wm0MUHGps,9480
27
27
  rda_python_metrics/fillglobususage.usg,sha256=mgo6LPFTJNy5h7codAA_HK0JSmrV_QvAcH-t_gJHVBE,727
28
28
  rda_python_metrics/fillipinfo.py,sha256=93ojnj_EHKlgl9D85H83FuBU8dHnk85EtlslKb-nzLM,7696
29
29
  rda_python_metrics/fillipinfo.usg,sha256=YeCR58xGv0emqHUZ_9R977HrqaeBwbd6j5QRF2Lc7TA,702
@@ -31,7 +31,7 @@ rda_python_metrics/filloneorder.py,sha256=oiar5FFElBFoO9gUGd-MMdR-HNFfudfD1Cg4VK
31
31
  rda_python_metrics/filloneorder.usg,sha256=mtOySKx6-D4k2bbTcmi6cSYtINiycRyHQkHozi0CQu0,1466
32
32
  rda_python_metrics/fillosdfusage.py,sha256=TtRCP8sW1rXFTTOxddYbgxGcg3aZs7HhCgrQHDtc8SA,7977
33
33
  rda_python_metrics/fillosdfusage.usg,sha256=Qc5YdUuOiAH74FfVdkwkrQRDYXcASVbxMdBsVQj4X1k,635
34
- rda_python_metrics/fillrdadb.py,sha256=lbQ_hMssecJ1cP6dOUSu7sMhrMF6NDVSsUoZJUVPqgY,5669
34
+ rda_python_metrics/fillrdadb.py,sha256=-HxCuOhLXSy2k7I0Y3mzPnD2fhwG8EN_nFp2N_1ggdk,5953
35
35
  rda_python_metrics/fillrdadb.usg,sha256=E_Bf4G8yVABogjRmIOaIbTGgnII2W6RltaFad2XEV2Q,1228
36
36
  rda_python_metrics/filltdsusage.py,sha256=xb-t4hXyPazJ7OzoBXPjUWIXC5lHxQKPd-o-wZeXcsE,8539
37
37
  rda_python_metrics/filltdsusage.usg,sha256=HhqJnju6iqKrsB7AQfdwDxXnZ_NOykkDA0vsKEso4xY,588
@@ -78,9 +78,9 @@ rda_python_metrics/viewwebfile.py,sha256=1BWXfwyWEOuftky5caRU-Y2bkyBvKwTYWo6SG4Q
78
78
  rda_python_metrics/viewwebfile.usg,sha256=lTNi8Yu8BUJuExEDJX-vsJyWUSUIQTS-DiiBEVFo33s,10054
79
79
  rda_python_metrics/viewwebusage.py,sha256=-huycTw5X-qgwMC_7IpW6Yg0KHJ4q-lHHdnOwnODxZA,18741
80
80
  rda_python_metrics/viewwebusage.usg,sha256=OVDZ78p87E3HLW34ZhasNJ7Zmw8XXjmZPPWZfRhPLXo,9936
81
- rda_python_metrics-2.0.4.dist-info/licenses/LICENSE,sha256=1dck4EAQwv8QweDWCXDx-4Or0S8YwiCstaso_H57Pno,1097
82
- rda_python_metrics-2.0.4.dist-info/METADATA,sha256=_0ILgRUyyvvPJfM6O1dk34yoY4KBtBjTuQ3UuElbKpQ,785
83
- rda_python_metrics-2.0.4.dist-info/WHEEL,sha256=YCfwYGOYMi5Jhw2fU4yNgwErybb2IX5PEwBKV4ZbdBo,91
84
- rda_python_metrics-2.0.4.dist-info/entry_points.txt,sha256=fv4wjyEdiLFYNaJzhmet0SxZcF_J6M42koft2Na1XMs,1403
85
- rda_python_metrics-2.0.4.dist-info/top_level.txt,sha256=aoBgbR_o70TP0QmMW0U6inRHYtfKld47OBmnWnLnDOs,19
86
- rda_python_metrics-2.0.4.dist-info/RECORD,,
81
+ rda_python_metrics-2.0.5.dist-info/licenses/LICENSE,sha256=1dck4EAQwv8QweDWCXDx-4Or0S8YwiCstaso_H57Pno,1097
82
+ rda_python_metrics-2.0.5.dist-info/METADATA,sha256=YWhwLmVzyx8XLpzxn6HLjdyzaeb_REYwDh389UDXwu8,785
83
+ rda_python_metrics-2.0.5.dist-info/WHEEL,sha256=aeYiig01lYGDzBgS8HxWXOg3uV61G9ijOsup-k9o1sk,91
84
+ rda_python_metrics-2.0.5.dist-info/entry_points.txt,sha256=fv4wjyEdiLFYNaJzhmet0SxZcF_J6M42koft2Na1XMs,1403
85
+ rda_python_metrics-2.0.5.dist-info/top_level.txt,sha256=aoBgbR_o70TP0QmMW0U6inRHYtfKld47OBmnWnLnDOs,19
86
+ rda_python_metrics-2.0.5.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (82.0.0)
2
+ Generator: setuptools (82.0.1)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5