rda-python-metrics 2.0.0__tar.gz → 2.0.1__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 (93) hide show
  1. {rda_python_metrics-2.0.0/src/rda_python_metrics.egg-info → rda_python_metrics-2.0.1}/PKG-INFO +1 -1
  2. {rda_python_metrics-2.0.0 → rda_python_metrics-2.0.1}/pyproject.toml +1 -1
  3. {rda_python_metrics-2.0.0 → rda_python_metrics-2.0.1}/src/rda_python_metrics/PgIPInfo.py +2 -2
  4. {rda_python_metrics-2.0.0 → rda_python_metrics-2.0.1}/src/rda_python_metrics/fillosdfusage.py +1 -1
  5. {rda_python_metrics-2.0.0 → rda_python_metrics-2.0.1}/src/rda_python_metrics/pg_ipinfo.py +14 -8
  6. {rda_python_metrics-2.0.0 → rda_python_metrics-2.0.1/src/rda_python_metrics.egg-info}/PKG-INFO +1 -1
  7. {rda_python_metrics-2.0.0 → rda_python_metrics-2.0.1}/LICENSE +0 -0
  8. {rda_python_metrics-2.0.0 → rda_python_metrics-2.0.1}/MANIFEST.in +0 -0
  9. {rda_python_metrics-2.0.0 → rda_python_metrics-2.0.1}/README.md +0 -0
  10. {rda_python_metrics-2.0.0 → rda_python_metrics-2.0.1}/setup.cfg +0 -0
  11. {rda_python_metrics-2.0.0 → rda_python_metrics-2.0.1}/src/rda_python_metrics/PgView.py +0 -0
  12. {rda_python_metrics-2.0.0 → rda_python_metrics-2.0.1}/src/rda_python_metrics/__init__.py +0 -0
  13. {rda_python_metrics-2.0.0 → rda_python_metrics-2.0.1}/src/rda_python_metrics/fill_awsusage.py +0 -0
  14. {rda_python_metrics-2.0.0 → rda_python_metrics-2.0.1}/src/rda_python_metrics/fill_cdgusage.py +0 -0
  15. {rda_python_metrics-2.0.0 → rda_python_metrics-2.0.1}/src/rda_python_metrics/fill_codusage.py +0 -0
  16. {rda_python_metrics-2.0.0 → rda_python_metrics-2.0.1}/src/rda_python_metrics/fill_country.py +0 -0
  17. {rda_python_metrics-2.0.0 → rda_python_metrics-2.0.1}/src/rda_python_metrics/fill_endtime.py +0 -0
  18. {rda_python_metrics-2.0.0 → rda_python_metrics-2.0.1}/src/rda_python_metrics/fill_globususage.py +0 -0
  19. {rda_python_metrics-2.0.0 → rda_python_metrics-2.0.1}/src/rda_python_metrics/fill_ipinfo.py +0 -0
  20. {rda_python_metrics-2.0.0 → rda_python_metrics-2.0.1}/src/rda_python_metrics/fill_oneorder.py +0 -0
  21. {rda_python_metrics-2.0.0 → rda_python_metrics-2.0.1}/src/rda_python_metrics/fill_osdfusage.py +0 -0
  22. {rda_python_metrics-2.0.0 → rda_python_metrics-2.0.1}/src/rda_python_metrics/fill_rdadb.py +0 -0
  23. {rda_python_metrics-2.0.0 → rda_python_metrics-2.0.1}/src/rda_python_metrics/fill_tdsusage.py +0 -0
  24. {rda_python_metrics-2.0.0 → rda_python_metrics-2.0.1}/src/rda_python_metrics/fill_user.py +0 -0
  25. {rda_python_metrics-2.0.0 → rda_python_metrics-2.0.1}/src/rda_python_metrics/fillawsusage.py +0 -0
  26. {rda_python_metrics-2.0.0 → rda_python_metrics-2.0.1}/src/rda_python_metrics/fillawsusage.usg +0 -0
  27. {rda_python_metrics-2.0.0 → rda_python_metrics-2.0.1}/src/rda_python_metrics/fillcdgusage.py +0 -0
  28. {rda_python_metrics-2.0.0 → rda_python_metrics-2.0.1}/src/rda_python_metrics/fillcdgusage.usg +0 -0
  29. {rda_python_metrics-2.0.0 → rda_python_metrics-2.0.1}/src/rda_python_metrics/fillcodusage.py +0 -0
  30. {rda_python_metrics-2.0.0 → rda_python_metrics-2.0.1}/src/rda_python_metrics/fillcodusage.usg +0 -0
  31. {rda_python_metrics-2.0.0 → rda_python_metrics-2.0.1}/src/rda_python_metrics/fillcountry.py +0 -0
  32. {rda_python_metrics-2.0.0 → rda_python_metrics-2.0.1}/src/rda_python_metrics/fillendtime.py +0 -0
  33. {rda_python_metrics-2.0.0 → rda_python_metrics-2.0.1}/src/rda_python_metrics/fillgdexusage.py +0 -0
  34. {rda_python_metrics-2.0.0 → rda_python_metrics-2.0.1}/src/rda_python_metrics/fillgdexusage.usg +0 -0
  35. {rda_python_metrics-2.0.0 → rda_python_metrics-2.0.1}/src/rda_python_metrics/fillglobususage.py +0 -0
  36. {rda_python_metrics-2.0.0 → rda_python_metrics-2.0.1}/src/rda_python_metrics/fillglobususage.usg +0 -0
  37. {rda_python_metrics-2.0.0 → rda_python_metrics-2.0.1}/src/rda_python_metrics/fillipinfo.py +0 -0
  38. {rda_python_metrics-2.0.0 → rda_python_metrics-2.0.1}/src/rda_python_metrics/fillipinfo.usg +0 -0
  39. {rda_python_metrics-2.0.0 → rda_python_metrics-2.0.1}/src/rda_python_metrics/filloneorder.py +0 -0
  40. {rda_python_metrics-2.0.0 → rda_python_metrics-2.0.1}/src/rda_python_metrics/filloneorder.usg +0 -0
  41. {rda_python_metrics-2.0.0 → rda_python_metrics-2.0.1}/src/rda_python_metrics/fillosdfusage.usg +0 -0
  42. {rda_python_metrics-2.0.0 → rda_python_metrics-2.0.1}/src/rda_python_metrics/fillrdadb.py +0 -0
  43. {rda_python_metrics-2.0.0 → rda_python_metrics-2.0.1}/src/rda_python_metrics/fillrdadb.usg +0 -0
  44. {rda_python_metrics-2.0.0 → rda_python_metrics-2.0.1}/src/rda_python_metrics/filltdsusage.py +0 -0
  45. {rda_python_metrics-2.0.0 → rda_python_metrics-2.0.1}/src/rda_python_metrics/filltdsusage.usg +0 -0
  46. {rda_python_metrics-2.0.0 → rda_python_metrics-2.0.1}/src/rda_python_metrics/filluser.py +0 -0
  47. {rda_python_metrics-2.0.0 → rda_python_metrics-2.0.1}/src/rda_python_metrics/filluser.usg +0 -0
  48. {rda_python_metrics-2.0.0 → rda_python_metrics-2.0.1}/src/rda_python_metrics/fillzenodousage.py +0 -0
  49. {rda_python_metrics-2.0.0 → rda_python_metrics-2.0.1}/src/rda_python_metrics/log_arch.py +0 -0
  50. {rda_python_metrics-2.0.0 → rda_python_metrics-2.0.1}/src/rda_python_metrics/logarch.py +0 -0
  51. {rda_python_metrics-2.0.0 → rda_python_metrics-2.0.1}/src/rda_python_metrics/logarch.usg +0 -0
  52. {rda_python_metrics-2.0.0 → rda_python_metrics-2.0.1}/src/rda_python_metrics/pg_person.py +0 -0
  53. {rda_python_metrics-2.0.0 → rda_python_metrics-2.0.1}/src/rda_python_metrics/pg_username.py +0 -0
  54. {rda_python_metrics-2.0.0 → rda_python_metrics-2.0.1}/src/rda_python_metrics/pg_view.py +0 -0
  55. {rda_python_metrics-2.0.0 → rda_python_metrics-2.0.1}/src/rda_python_metrics/pgperson.py +0 -0
  56. {rda_python_metrics-2.0.0 → rda_python_metrics-2.0.1}/src/rda_python_metrics/pgsyspath.py +0 -0
  57. {rda_python_metrics-2.0.0 → rda_python_metrics-2.0.1}/src/rda_python_metrics/pgusername.py +0 -0
  58. {rda_python_metrics-2.0.0 → rda_python_metrics-2.0.1}/src/rda_python_metrics/view_allusage.py +0 -0
  59. {rda_python_metrics-2.0.0 → rda_python_metrics-2.0.1}/src/rda_python_metrics/view_awsusage.py +0 -0
  60. {rda_python_metrics-2.0.0 → rda_python_metrics-2.0.1}/src/rda_python_metrics/view_checkusage.py +0 -0
  61. {rda_python_metrics-2.0.0 → rda_python_metrics-2.0.1}/src/rda_python_metrics/view_codusage.py +0 -0
  62. {rda_python_metrics-2.0.0 → rda_python_metrics-2.0.1}/src/rda_python_metrics/view_ordusage.py +0 -0
  63. {rda_python_metrics-2.0.0 → rda_python_metrics-2.0.1}/src/rda_python_metrics/view_osdfusage.py +0 -0
  64. {rda_python_metrics-2.0.0 → rda_python_metrics-2.0.1}/src/rda_python_metrics/view_rqstusage.py +0 -0
  65. {rda_python_metrics-2.0.0 → rda_python_metrics-2.0.1}/src/rda_python_metrics/view_tdsusage.py +0 -0
  66. {rda_python_metrics-2.0.0 → rda_python_metrics-2.0.1}/src/rda_python_metrics/view_webfile.py +0 -0
  67. {rda_python_metrics-2.0.0 → rda_python_metrics-2.0.1}/src/rda_python_metrics/view_webusage.py +0 -0
  68. {rda_python_metrics-2.0.0 → rda_python_metrics-2.0.1}/src/rda_python_metrics/viewallusage.py +0 -0
  69. {rda_python_metrics-2.0.0 → rda_python_metrics-2.0.1}/src/rda_python_metrics/viewallusage.usg +0 -0
  70. {rda_python_metrics-2.0.0 → rda_python_metrics-2.0.1}/src/rda_python_metrics/viewawsusage.py +0 -0
  71. {rda_python_metrics-2.0.0 → rda_python_metrics-2.0.1}/src/rda_python_metrics/viewawsusage.usg +0 -0
  72. {rda_python_metrics-2.0.0 → rda_python_metrics-2.0.1}/src/rda_python_metrics/viewcheckusage.py +0 -0
  73. {rda_python_metrics-2.0.0 → rda_python_metrics-2.0.1}/src/rda_python_metrics/viewcheckusage.usg +0 -0
  74. {rda_python_metrics-2.0.0 → rda_python_metrics-2.0.1}/src/rda_python_metrics/viewcodusage.py +0 -0
  75. {rda_python_metrics-2.0.0 → rda_python_metrics-2.0.1}/src/rda_python_metrics/viewcodusage.usg +0 -0
  76. {rda_python_metrics-2.0.0 → rda_python_metrics-2.0.1}/src/rda_python_metrics/viewordusage.py +0 -0
  77. {rda_python_metrics-2.0.0 → rda_python_metrics-2.0.1}/src/rda_python_metrics/viewordusage.usg +0 -0
  78. {rda_python_metrics-2.0.0 → rda_python_metrics-2.0.1}/src/rda_python_metrics/viewosdfusage.py +0 -0
  79. {rda_python_metrics-2.0.0 → rda_python_metrics-2.0.1}/src/rda_python_metrics/viewosdfusage.usg +0 -0
  80. {rda_python_metrics-2.0.0 → rda_python_metrics-2.0.1}/src/rda_python_metrics/viewrqstusage.py +0 -0
  81. {rda_python_metrics-2.0.0 → rda_python_metrics-2.0.1}/src/rda_python_metrics/viewrqstusage.usg +0 -0
  82. {rda_python_metrics-2.0.0 → rda_python_metrics-2.0.1}/src/rda_python_metrics/viewtdsusage.py +0 -0
  83. {rda_python_metrics-2.0.0 → rda_python_metrics-2.0.1}/src/rda_python_metrics/viewtdsusage.usg +0 -0
  84. {rda_python_metrics-2.0.0 → rda_python_metrics-2.0.1}/src/rda_python_metrics/viewwebfile.py +0 -0
  85. {rda_python_metrics-2.0.0 → rda_python_metrics-2.0.1}/src/rda_python_metrics/viewwebfile.usg +0 -0
  86. {rda_python_metrics-2.0.0 → rda_python_metrics-2.0.1}/src/rda_python_metrics/viewwebusage.py +0 -0
  87. {rda_python_metrics-2.0.0 → rda_python_metrics-2.0.1}/src/rda_python_metrics/viewwebusage.usg +0 -0
  88. {rda_python_metrics-2.0.0 → rda_python_metrics-2.0.1}/src/rda_python_metrics.egg-info/SOURCES.txt +0 -0
  89. {rda_python_metrics-2.0.0 → rda_python_metrics-2.0.1}/src/rda_python_metrics.egg-info/dependency_links.txt +0 -0
  90. {rda_python_metrics-2.0.0 → rda_python_metrics-2.0.1}/src/rda_python_metrics.egg-info/entry_points.txt +0 -0
  91. {rda_python_metrics-2.0.0 → rda_python_metrics-2.0.1}/src/rda_python_metrics.egg-info/requires.txt +0 -0
  92. {rda_python_metrics-2.0.0 → rda_python_metrics-2.0.1}/src/rda_python_metrics.egg-info/top_level.txt +0 -0
  93. {rda_python_metrics-2.0.0 → rda_python_metrics-2.0.1}/tests/test_metrics.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: rda_python_metrics
3
- Version: 2.0.0
3
+ Version: 2.0.1
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 = "2.0.0"
9
+ version = "2.0.1"
10
10
  authors = [
11
11
  { name="Zaihua Ji", email="zji@ucar.edu" },
12
12
  ]
@@ -272,13 +272,13 @@ def get_missing_ipinfo(ip, email = None):
272
272
  if not ip:
273
273
  if email and '@' in email: ip = dns_to_ip(email.split('@')[1])
274
274
  if not ip: return None
275
-
275
+ ip = ip[0]
276
276
  ipinfo = set_ipinfo(ip)
277
277
  if ipinfo:
278
278
  record = {'org_type' : ipinfo['org_type'],
279
279
  'country' : ipinfo['country'],
280
280
  'region' : ipinfo['region'],
281
- 'hostname' : ipinfo['hostname'],
281
+ # 'hostname' : ipinfo['hostname'],
282
282
  'ip' : ipinfo['ip']}
283
283
  if not email or re.search(r'-$', email):
284
284
  record['email'] = 'unknown@' + ipinfo['hostname']
@@ -111,7 +111,7 @@ class FillOSDFUsage(PgIPInfo, PgFile, PgSplit):
111
111
  if entcnt%20000 == 0:
112
112
  dcnt = len(records)
113
113
  self.pglog("{}: {}/{} OSDF log entries processed/records added".format(logfile, entcnt, dcnt), self.WARNLG)
114
- ms = re.match(r'^\[(\S+)\] \[Objectname:\/ncar\/rda\/([a-z]\d{6})\/\S+\].* \[Site:(\S+)\].* \[Host:(\S+)\].* \[AppInfo:(\S+)\].* \[Read:(\d+)\]', line)
114
+ ms = re.match(r'^\[(\S+)\] \[Objectname:\/ncar\/rda\/([a-z]\d{6})\/\S+\].* \[Site:(\S+)\].* \[Host:(\S+)\].* \[AppInfo:(\S*)\].* \[Read:(\d+)\]', line)
115
115
  if not ms: continue
116
116
  dt = ms.group(1)
117
117
  dsid = ms.group(2)
@@ -34,6 +34,7 @@ class PgIPInfo(PgUtil):
34
34
  self.IPDB = None
35
35
  self.G2DB = None
36
36
  self.IPRECS = {}
37
+ self.DMRECS = {}
37
38
  self.COUNTRIES = {}
38
39
 
39
40
  # get save a global dns.resolver.Resolver object
@@ -43,17 +44,20 @@ class PgIPInfo(PgUtil):
43
44
 
44
45
  # Resolve a domain name to an IP address (A record)
45
46
  def dns_to_ip(self, dmname, type = 'A'):
47
+ if dmname in self.DMRECS: return self.DMRECS[dmname]
46
48
  ipdns = self.get_dns_resolver()
49
+ dm = None
47
50
  try:
48
51
  answers = ipdns.resolve(dmname, type)
49
- return [str(rdata) for rdata in answers]
52
+ dm = [str(rdata) for rdata in answers]
50
53
  except dns.resolver.NXDOMAIN:
51
- self.pglog(f"{dmname}: the domain name does not exist", self.LOGERR)
54
+ self.pglog(f"{dmname}: the domain name does not exist", self.LOGWRN)
52
55
  except dns.resolver.Timeout:
53
- self.pglog(f"{dmname}: the domain name request timed out", self.LOGERR)
56
+ self.pglog(f"{dmname}: the domain name request timed out", self.LOGWRN)
54
57
  except dns.exception.DNSException as e:
55
- self.pglog(f"{dmname}: error domain name request: {e}", self.LOGERR)
56
- return None
58
+ self.pglog(f"{dmname}: error domain name request: {e}", self.LOGWRN)
59
+ self.DMRECS[dmname] = dm
60
+ return dm
57
61
 
58
62
  # Get country token name for given two-character domain id
59
63
  def get_country_name_code(self, dm):
@@ -62,7 +66,7 @@ class PgIPInfo(PgUtil):
62
66
  self.COUNTRIES[dm] = pgrec['token'] if pgrec else 'Unknown'
63
67
  return self.COUNTRIES[dm]
64
68
 
65
- # get contry code from name
69
+ # get country code from name
66
70
  def get_country_record_code(self, cname, kname = None):
67
71
  name = cname[kname] if kname else cname
68
72
  name = name.replace(' ', '.').upper() if name else 'UNITED.STATES'
@@ -209,21 +213,23 @@ class PgIPInfo(PgUtil):
209
213
  return record
210
214
 
211
215
  # fill the missing info for given ip
212
- def get_missing_ipinfo(self, ip, email = None):
216
+ def get_missing_ipinfo(self, ip, email = None, gethost = False):
213
217
  if not ip:
214
218
  if email and '@' in email: ip = self.dns_to_ip(email.split('@')[1])
215
219
  if not ip: return None
220
+ ip = ip[0]
216
221
  ipinfo = self.set_ipinfo(ip)
217
222
  if ipinfo:
218
223
  record = {'org_type' : ipinfo['org_type'],
219
224
  'country' : ipinfo['country'],
220
225
  'region' : ipinfo['region'],
221
- 'hostname' : ipinfo['hostname'],
222
226
  'ip' : ipinfo['ip']}
223
227
  if not email or re.search(r'-$', email):
224
228
  record['email'] = 'unknown@' + ipinfo['hostname']
225
229
  else:
226
230
  record['email'] = email
231
+ if gethost: record['hostname'] = ipinfo['hostname']
232
+
227
233
  return record
228
234
  else:
229
235
  return None
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: rda_python_metrics
3
- Version: 2.0.0
3
+ Version: 2.0.1
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