rda-python-metrics 1.0.49__tar.gz → 1.0.51__tar.gz

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.
Files changed (66) hide show
  1. {rda_python_metrics-1.0.49/src/rda_python_metrics.egg-info → rda_python_metrics-1.0.51}/PKG-INFO +1 -1
  2. {rda_python_metrics-1.0.49 → rda_python_metrics-1.0.51}/pyproject.toml +1 -1
  3. {rda_python_metrics-1.0.49 → rda_python_metrics-1.0.51}/src/rda_python_metrics/PgIPInfo.py +5 -2
  4. {rda_python_metrics-1.0.49 → rda_python_metrics-1.0.51}/src/rda_python_metrics/filltdsusage.py +17 -9
  5. {rda_python_metrics-1.0.49 → rda_python_metrics-1.0.51/src/rda_python_metrics.egg-info}/PKG-INFO +1 -1
  6. {rda_python_metrics-1.0.49 → rda_python_metrics-1.0.51}/LICENSE +0 -0
  7. {rda_python_metrics-1.0.49 → rda_python_metrics-1.0.51}/MANIFEST.in +0 -0
  8. {rda_python_metrics-1.0.49 → rda_python_metrics-1.0.51}/README.md +0 -0
  9. {rda_python_metrics-1.0.49 → rda_python_metrics-1.0.51}/setup.cfg +0 -0
  10. {rda_python_metrics-1.0.49 → rda_python_metrics-1.0.51}/src/rda_python_metrics/PgView.py +0 -0
  11. {rda_python_metrics-1.0.49 → rda_python_metrics-1.0.51}/src/rda_python_metrics/__init__.py +0 -0
  12. {rda_python_metrics-1.0.49 → rda_python_metrics-1.0.51}/src/rda_python_metrics/fillawsusage.py +0 -0
  13. {rda_python_metrics-1.0.49 → rda_python_metrics-1.0.51}/src/rda_python_metrics/fillawsusage.usg +0 -0
  14. {rda_python_metrics-1.0.49 → rda_python_metrics-1.0.51}/src/rda_python_metrics/fillcdgusage.py +0 -0
  15. {rda_python_metrics-1.0.49 → rda_python_metrics-1.0.51}/src/rda_python_metrics/fillcdgusage.usg +0 -0
  16. {rda_python_metrics-1.0.49 → rda_python_metrics-1.0.51}/src/rda_python_metrics/fillcodusage.py +0 -0
  17. {rda_python_metrics-1.0.49 → rda_python_metrics-1.0.51}/src/rda_python_metrics/fillcodusage.usg +0 -0
  18. {rda_python_metrics-1.0.49 → rda_python_metrics-1.0.51}/src/rda_python_metrics/fillcountry.py +0 -0
  19. {rda_python_metrics-1.0.49 → rda_python_metrics-1.0.51}/src/rda_python_metrics/fillendtime.py +0 -0
  20. {rda_python_metrics-1.0.49 → rda_python_metrics-1.0.51}/src/rda_python_metrics/fillgdexusage.py +0 -0
  21. {rda_python_metrics-1.0.49 → rda_python_metrics-1.0.51}/src/rda_python_metrics/fillgdexusage.usg +0 -0
  22. {rda_python_metrics-1.0.49 → rda_python_metrics-1.0.51}/src/rda_python_metrics/fillglobususage.py +0 -0
  23. {rda_python_metrics-1.0.49 → rda_python_metrics-1.0.51}/src/rda_python_metrics/fillglobususage.usg +0 -0
  24. {rda_python_metrics-1.0.49 → rda_python_metrics-1.0.51}/src/rda_python_metrics/fillipinfo.py +0 -0
  25. {rda_python_metrics-1.0.49 → rda_python_metrics-1.0.51}/src/rda_python_metrics/fillipinfo.usg +0 -0
  26. {rda_python_metrics-1.0.49 → rda_python_metrics-1.0.51}/src/rda_python_metrics/filloneorder.py +0 -0
  27. {rda_python_metrics-1.0.49 → rda_python_metrics-1.0.51}/src/rda_python_metrics/filloneorder.usg +0 -0
  28. {rda_python_metrics-1.0.49 → rda_python_metrics-1.0.51}/src/rda_python_metrics/fillosdfusage.py +0 -0
  29. {rda_python_metrics-1.0.49 → rda_python_metrics-1.0.51}/src/rda_python_metrics/fillosdfusage.usg +0 -0
  30. {rda_python_metrics-1.0.49 → rda_python_metrics-1.0.51}/src/rda_python_metrics/fillrdadb.py +0 -0
  31. {rda_python_metrics-1.0.49 → rda_python_metrics-1.0.51}/src/rda_python_metrics/fillrdadb.usg +0 -0
  32. {rda_python_metrics-1.0.49 → rda_python_metrics-1.0.51}/src/rda_python_metrics/filltdsusage.usg +0 -0
  33. {rda_python_metrics-1.0.49 → rda_python_metrics-1.0.51}/src/rda_python_metrics/filluser.py +0 -0
  34. {rda_python_metrics-1.0.49 → rda_python_metrics-1.0.51}/src/rda_python_metrics/filluser.usg +0 -0
  35. {rda_python_metrics-1.0.49 → rda_python_metrics-1.0.51}/src/rda_python_metrics/fillzenodousage.py +0 -0
  36. {rda_python_metrics-1.0.49 → rda_python_metrics-1.0.51}/src/rda_python_metrics/logarch.py +0 -0
  37. {rda_python_metrics-1.0.49 → rda_python_metrics-1.0.51}/src/rda_python_metrics/logarch.usg +0 -0
  38. {rda_python_metrics-1.0.49 → rda_python_metrics-1.0.51}/src/rda_python_metrics/pgperson.py +0 -0
  39. {rda_python_metrics-1.0.49 → rda_python_metrics-1.0.51}/src/rda_python_metrics/pgsyspath.py +0 -0
  40. {rda_python_metrics-1.0.49 → rda_python_metrics-1.0.51}/src/rda_python_metrics/pgusername.py +0 -0
  41. {rda_python_metrics-1.0.49 → rda_python_metrics-1.0.51}/src/rda_python_metrics/viewallusage.py +0 -0
  42. {rda_python_metrics-1.0.49 → rda_python_metrics-1.0.51}/src/rda_python_metrics/viewallusage.usg +0 -0
  43. {rda_python_metrics-1.0.49 → rda_python_metrics-1.0.51}/src/rda_python_metrics/viewawsusage.py +0 -0
  44. {rda_python_metrics-1.0.49 → rda_python_metrics-1.0.51}/src/rda_python_metrics/viewawsusage.usg +0 -0
  45. {rda_python_metrics-1.0.49 → rda_python_metrics-1.0.51}/src/rda_python_metrics/viewcheckusage.py +0 -0
  46. {rda_python_metrics-1.0.49 → rda_python_metrics-1.0.51}/src/rda_python_metrics/viewcheckusage.usg +0 -0
  47. {rda_python_metrics-1.0.49 → rda_python_metrics-1.0.51}/src/rda_python_metrics/viewcodusage.py +0 -0
  48. {rda_python_metrics-1.0.49 → rda_python_metrics-1.0.51}/src/rda_python_metrics/viewcodusage.usg +0 -0
  49. {rda_python_metrics-1.0.49 → rda_python_metrics-1.0.51}/src/rda_python_metrics/viewordusage.py +0 -0
  50. {rda_python_metrics-1.0.49 → rda_python_metrics-1.0.51}/src/rda_python_metrics/viewordusage.usg +0 -0
  51. {rda_python_metrics-1.0.49 → rda_python_metrics-1.0.51}/src/rda_python_metrics/viewosdfusage.py +0 -0
  52. {rda_python_metrics-1.0.49 → rda_python_metrics-1.0.51}/src/rda_python_metrics/viewosdfusage.usg +0 -0
  53. {rda_python_metrics-1.0.49 → rda_python_metrics-1.0.51}/src/rda_python_metrics/viewrqstusage.py +0 -0
  54. {rda_python_metrics-1.0.49 → rda_python_metrics-1.0.51}/src/rda_python_metrics/viewrqstusage.usg +0 -0
  55. {rda_python_metrics-1.0.49 → rda_python_metrics-1.0.51}/src/rda_python_metrics/viewtdsusage.py +0 -0
  56. {rda_python_metrics-1.0.49 → rda_python_metrics-1.0.51}/src/rda_python_metrics/viewtdsusage.usg +0 -0
  57. {rda_python_metrics-1.0.49 → rda_python_metrics-1.0.51}/src/rda_python_metrics/viewwebfile.py +0 -0
  58. {rda_python_metrics-1.0.49 → rda_python_metrics-1.0.51}/src/rda_python_metrics/viewwebfile.usg +0 -0
  59. {rda_python_metrics-1.0.49 → rda_python_metrics-1.0.51}/src/rda_python_metrics/viewwebusage.py +0 -0
  60. {rda_python_metrics-1.0.49 → rda_python_metrics-1.0.51}/src/rda_python_metrics/viewwebusage.usg +0 -0
  61. {rda_python_metrics-1.0.49 → rda_python_metrics-1.0.51}/src/rda_python_metrics.egg-info/SOURCES.txt +0 -0
  62. {rda_python_metrics-1.0.49 → rda_python_metrics-1.0.51}/src/rda_python_metrics.egg-info/dependency_links.txt +0 -0
  63. {rda_python_metrics-1.0.49 → rda_python_metrics-1.0.51}/src/rda_python_metrics.egg-info/entry_points.txt +0 -0
  64. {rda_python_metrics-1.0.49 → rda_python_metrics-1.0.51}/src/rda_python_metrics.egg-info/requires.txt +0 -0
  65. {rda_python_metrics-1.0.49 → rda_python_metrics-1.0.51}/src/rda_python_metrics.egg-info/top_level.txt +0 -0
  66. {rda_python_metrics-1.0.49 → rda_python_metrics-1.0.51}/tests/test_metrics.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: rda_python_metrics
3
- Version: 1.0.49
3
+ Version: 1.0.51
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
@@ -6,7 +6,7 @@ build-backend = "setuptools.build_meta"
6
6
 
7
7
  [project]
8
8
  name = "rda_python_metrics"
9
- version = "1.0.49"
9
+ version = "1.0.51"
10
10
  authors = [
11
11
  { name="Zaihua Ji", email="zji@ucar.edu" },
12
12
  ]
@@ -142,7 +142,8 @@ def get_ipinfo_record(ip):
142
142
 
143
143
  if 'bogon' in iprec and iprec['bogon']:
144
144
  PgLOG.pglog(f"ipinfo: {ip} - bogon, use {GIP}", PgLOG.LOGWRN)
145
- return set_ipinfo(GIP, False)
145
+ IPRECS[ip] = PgDBI.pgget('ipinfo', '*', f"ip = '{GIP}'", PgLOG.LGEREX)
146
+ return IPRECS[ip]
146
147
 
147
148
  record = {'ip' : ip, 'stat_flag' : 'A', 'hostname' : ip, 'org_type' : '-'}
148
149
  get_ip_hostname(ip, iprec, record)
@@ -245,7 +246,9 @@ def set_ipinfo(ip, ipopt = True):
245
246
  if not pgrec or ipopt and pgrec['stat_flag'] == 'M':
246
247
  record = get_ipinfo_record(ip) if ipopt else None
247
248
  if not record: record = get_geoip2_record(ip)
248
- if record and update_ipinfo_record(record, pgrec): pgrec = record
249
+ if record:
250
+ update_ipinfo_record(record, pgrec)
251
+ pgrec = record
249
252
 
250
253
  IPRECS[ip] = pgrec
251
254
  return pgrec
@@ -124,15 +124,17 @@ def fill_tds_usages(fnames):
124
124
 
125
125
  year = cntall = addall = 0
126
126
  for logfile in fnames:
127
- gzfile = USAGE['GZFILE'].format(logfile)
128
- linfo = PgFile.check_local_file(gzfile)
129
- if not linfo:
130
- PgLOG.pglog("{}: Not exists for Gathering TDS usage".format(gzfile), PgLOG.LOGWRN)
131
- continue
132
- PgLOG.pgsystem(USAGE['TDSGET'].format(gzfile, logfile), 5, PgLOG.LOGWRN)
133
127
  linfo = PgFile.check_local_file(logfile)
134
128
  if not linfo:
135
- PgLOG.pglog("{}: Error gunzip TDS usage".format(gzfile), PgLOG.LGEREX)
129
+ gzfile = USAGE['GZFILE'].format(logfile)
130
+ linfo = PgFile.check_local_file(gzfile)
131
+ if not linfo:
132
+ PgLOG.pglog("{}: Not exists for Gathering TDS usage".format(gzfile), PgLOG.LOGWRN)
133
+ continue
134
+ PgLOG.pgsystem(USAGE['TDSGET'].format(gzfile, logfile), 5, PgLOG.LOGWRN)
135
+ linfo = PgFile.check_local_file(logfile)
136
+ if not linfo:
137
+ PgLOG.pglog("{}: Error gunzip TDS usage".format(gzfile), PgLOG.LGEREX)
136
138
  PgLOG.pglog("{}: Gathering TDS usage at {}".format(logfile, PgLOG.current_datetime()), PgLOG.LOGWRN)
137
139
  tds = PgFile.open_local_file(logfile)
138
140
  if not tds: continue
@@ -155,6 +157,7 @@ def fill_tds_usages(fnames):
155
157
  ip = ms.group(1)
156
158
  email = ms.group(2)
157
159
  (date, time) = get_record_date_time(ms.group(3))
160
+ if not date: continue
158
161
  method = ms.group(4)
159
162
  etype = ms.group(6)[0].upper()
160
163
  dsid = PgUtil.format_dataset_id(ms.group(7))
@@ -162,6 +165,9 @@ def fill_tds_usages(fnames):
162
165
  ebuf = ms.group(9)
163
166
  ms = re.search(r' "(\w+.*\S+)" ', ebuf)
164
167
  engine = ms.group(1) if ms else 'Unknown'
168
+ iprec = PgIPInfo.set_ipinfo(ip)
169
+ if not iprec: continue
170
+ ip = iprec['ip']
165
171
  key = "{}:{}:{}:{}".format(ip, dsid, method, etype)
166
172
 
167
173
  if key in records:
@@ -173,6 +179,7 @@ def fill_tds_usages(fnames):
173
179
  tds.close()
174
180
  if records: cntadd += add_usage_records(records, date)
175
181
  cntall += entcnt
182
+ addall += cntadd
176
183
 
177
184
  PgLOG.pglog("{} TDS usage records added for {} entries at {}".format(addall, cntall, PgLOG.current_datetime()), PgLOG.LOGWRN)
178
185
 
@@ -187,7 +194,8 @@ def get_record_date_time(ctime):
187
194
  t = ms.group(4)
188
195
  return ("{}-{:02}-{:02}".format(y, m, d), t)
189
196
  else:
190
- PgLOG.pglog("time: Invalid date format", PgLOG.LGEREX)
197
+ PgLOG.pglog(f"{ctime}: Invalid time format", PgLOG.LGEREX)
198
+ return (None, None)
191
199
 
192
200
  def add_usage_records(records, date):
193
201
 
@@ -199,7 +207,7 @@ def add_usage_records(records, date):
199
207
  quarter = 1 + int((int(ms.group(2)) - 1)/3)
200
208
  for key in records:
201
209
  record = records[key]
202
- cond = "date = '{}' AND time = '{}' AND ip = '{}'".format(date, record['time'], record['ip'])
210
+ cond = "date = '{}' AND time = '{}' AND ip = '{}' AND dsid = '{}'".format(date, record['time'], record['ip'], record['dsid'])
203
211
  if PgDBI.pgget(USAGE['PGTBL'], '', cond, PgLOG.LGEREX): continue
204
212
  email = None if record['email'] == '-' else record['email']
205
213
  wurec = PgIPInfo.get_wuser_record(record['ip'], date)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: rda_python_metrics
3
- Version: 1.0.49
3
+ Version: 1.0.51
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