rda-python-metrics 1.0.23__py3-none-any.whl → 1.0.24__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.

Potentially problematic release.


This version of rda-python-metrics might be problematic. Click here for more details.

@@ -104,6 +104,23 @@ def domain_ipinfo_record(dmname):
104
104
 
105
105
  return None
106
106
 
107
+ #
108
+ # try to get hostname via socket for given ip address
109
+ #
110
+ def get_ip_hostname(ip, iprec, record):
111
+
112
+ if iprec and 'hostname' in iprec:
113
+ record['hostname'] = iprec['hostname']
114
+ record['org_type'] = PgDBI.get_org_type(None, record['hostname'])
115
+ else:
116
+ record['hostname'] = ip
117
+ try:
118
+ hostrec = socket.gethostbyaddr(ip)
119
+ record['hostname'] = hostrec[1][0] if hostrec[1] else hostrec[0]
120
+ record['org_type'] = PgDBI.get_org_type(None, record['hostname'])
121
+ except Exception as e:
122
+ PgLOG.pglog("socket: {} - {}".format(ip, str(e)), PgLOG.LOGWRN)
123
+
107
124
  #
108
125
  # get a ipinfo record for given ip address
109
126
  #
@@ -117,9 +134,7 @@ def get_ipinfo_record(ip):
117
134
  return None
118
135
 
119
136
  record = {'ip' : ip, 'stat_flag' : 'A', 'hostname' : ip, 'org_type' : '-'}
120
- if 'hostname' in iprec:
121
- record['hostname'] = iprec['hostname']
122
- record['org_type'] = PgDBI.get_org_type(None, record['hostname'])
137
+ get_ip_hostname(ip, iprec, record)
123
138
  record['lat'] = float(iprec['latitude']) if iprec['latitude'] else 0
124
139
  record['lon'] = float(iprec['longitude']) if iprec['longitude'] else 0
125
140
  if 'org' in iprec: record['org_name'] = iprec['org']
@@ -153,6 +168,7 @@ def get_geoip2_record(ip):
153
168
  return None
154
169
 
155
170
  record = {'ip' : ip, 'stat_flag' : 'M', 'org_type' : '-'}
171
+ get_ip_hostname(ip, None, record)
156
172
  record['lat'] = float(city.location.latitude) if city.location.latitude else 0
157
173
  record['lon'] = float(city.location.longitude) if city.location.longitude else 0
158
174
  record['country'] = get_country_name_code(city.country.name)
@@ -160,17 +176,8 @@ def get_geoip2_record(ip):
160
176
  record['region'] = PgLOG.convert_chars(city.subdivisions.most_specific.name) if city.subdivisions.most_specific.name else None
161
177
  record['postal'] = city.postal.code
162
178
  record['timezone'] = city.location.time_zone
163
- record['hostname'] = ip
164
179
  record['ipinfo'] = json.dumps(object_to_dict(city))
165
180
 
166
- try:
167
- hostrec = socket.gethostbyaddr(ip)
168
- except Exception as e:
169
- PgLOG.pglog("socket: {} - {}".format(ip, str(e)), PgLOG.LOGWRN)
170
- return record
171
- record['hostname'] = hostrec[1][0] if hostrec[1] else hostrec[0]
172
- record['org_type'] = PgDBI.get_org_type(None, record['hostname'])
173
-
174
181
  return record
175
182
 
176
183
  #
@@ -223,11 +230,11 @@ def set_ipinfo(ip, ipopt = True):
223
230
 
224
231
  if ip in IPRECS:
225
232
  pgrec = IPRECS[ip]
226
- if not pgrec or not ipopt or pgrec['stat_flag'] == 'A': return pgrec
233
+ if pgrec or not ipopt: return pgrec
227
234
  else:
228
235
  pgrec = PgDBI.pgget('ipinfo', '*', "ip = '{}'".format(ip))
229
236
 
230
- if not pgrec or ipopt and pgrec['stat_flag'] == 'M':
237
+ if not pgrec:
231
238
  record = get_ipinfo_record(ip) if ipopt else None
232
239
  if not record: record = get_geoip2_record(ip)
233
240
  if record and update_ipinfo_record(record, pgrec): pgrec = record
@@ -101,9 +101,10 @@ def fill_ip_info(option, inputs, table):
101
101
  else:
102
102
  date = input + "-01-01"
103
103
  edate = input + "-12-31"
104
- while date <= edate:
104
+ while True:
105
105
  (ndate, cond) = get_next_date(date, edate)
106
106
  cntall += func(date, cond)
107
+ if ndate >= edate: break
107
108
  date = PgUtil.adddate(ndate, 0, 0, 1)
108
109
 
109
110
  if cntall > 2:
@@ -113,13 +114,13 @@ def get_next_date(date, edate):
113
114
 
114
115
  if date < edate:
115
116
  ndate = PgUtil.enddate(date, 'M')
116
- if ndate > edate: ndate = edate
117
- if date < ndate:
118
- cond = f"BETWEEN '{date}' AND '{ndate}'"
117
+ if ndate < edate: edate = ndate
118
+ if date < edate:
119
+ cond = f"BETWEEN '{date}' AND '{edate}'"
119
120
  else:
120
121
  cond = f"= '{date}'"
121
122
 
122
- return (ndate, cond)
123
+ return (edate, cond)
123
124
 
124
125
 
125
126
  def fix_allusage_records(date, cnd):
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: rda_python_metrics
3
- Version: 1.0.23
3
+ Version: 1.0.24
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
@@ -1,4 +1,4 @@
1
- rda_python_metrics/PgIPInfo.py,sha256=SP8vTyCV6owV942xwLvS4CqnyPdkMTEVuQzyB-dkeNk,8644
1
+ rda_python_metrics/PgIPInfo.py,sha256=mvNIgHY-2fpGbGkrzM244x02Ab2OyiV2JVq7XqInwW4,8772
2
2
  rda_python_metrics/PgView.py,sha256=r6otb3DjfiaQJdg0z8bZQAOlhr4JnrXJzp9wgWh_8qQ,24369
3
3
  rda_python_metrics/__init__.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
4
4
  rda_python_metrics/fillawsusage.py,sha256=SZH9G4jruKvavqSr9DiVmHVW929E60tJGUkv8CK3GQI,8152
@@ -11,7 +11,7 @@ rda_python_metrics/fillcountry.py,sha256=7i5LNi3scRoyRCT6t7aeNTGKOpxzJ2mA9tnvUqj
11
11
  rda_python_metrics/fillendtime.py,sha256=skZttlpoY19g0dGwqGQI8t_1YPPTPEXwg3EfNlfL90I,2533
12
12
  rda_python_metrics/fillglobususage.py,sha256=ahz8XnnJdD_AbSYqJ34lWmDuzws_-SNmCR8QE20aovA,8539
13
13
  rda_python_metrics/fillglobususage.usg,sha256=1GgmCP22IQZdADwL5Mmkz3v8Ws-G7U3teQ1AxRJfV_4,637
14
- rda_python_metrics/fillipinfo.py,sha256=w3IEyxFo8oVGWw8ILAr_GHZ4d8BOf1wWcChIp6OQAtk,6745
14
+ rda_python_metrics/fillipinfo.py,sha256=wFqyGYlD1gvIZ3e5qlIwjAz8LrhMKDfB-WWY5yE97-c,6770
15
15
  rda_python_metrics/fillipinfo.usg,sha256=YeCR58xGv0emqHUZ_9R977HrqaeBwbd6j5QRF2Lc7TA,702
16
16
  rda_python_metrics/filloneorder.py,sha256=ADHbcKCDh9bJunnxYbkbjwU2QpC43hvGlLWaURHNxkg,5433
17
17
  rda_python_metrics/filloneorder.usg,sha256=mtOySKx6-D4k2bbTcmi6cSYtINiycRyHQkHozi0CQu0,1466
@@ -44,9 +44,9 @@ rda_python_metrics/viewwebfile.py,sha256=HSMNkQQawonu6W3blV7g9UbJuNy9VAOn9COqgmj
44
44
  rda_python_metrics/viewwebfile.usg,sha256=lTNi8Yu8BUJuExEDJX-vsJyWUSUIQTS-DiiBEVFo33s,10054
45
45
  rda_python_metrics/viewwebusage.py,sha256=ES2lI8NaCeCpTGi94HU-cDRBxHMiUBbplyYsZf2KqF0,16650
46
46
  rda_python_metrics/viewwebusage.usg,sha256=OVDZ78p87E3HLW34ZhasNJ7Zmw8XXjmZPPWZfRhPLXo,9936
47
- rda_python_metrics-1.0.23.dist-info/licenses/LICENSE,sha256=1dck4EAQwv8QweDWCXDx-4Or0S8YwiCstaso_H57Pno,1097
48
- rda_python_metrics-1.0.23.dist-info/METADATA,sha256=FIeMLBkhmlMKHNmm7Uq74ipwiT6L-u4lTL5lVGl8AjI,761
49
- rda_python_metrics-1.0.23.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
50
- rda_python_metrics-1.0.23.dist-info/entry_points.txt,sha256=YfFLzlE3rdufSV471VsDnfYptnt1lR08aSrxPXlKqlY,1185
51
- rda_python_metrics-1.0.23.dist-info/top_level.txt,sha256=aoBgbR_o70TP0QmMW0U6inRHYtfKld47OBmnWnLnDOs,19
52
- rda_python_metrics-1.0.23.dist-info/RECORD,,
47
+ rda_python_metrics-1.0.24.dist-info/licenses/LICENSE,sha256=1dck4EAQwv8QweDWCXDx-4Or0S8YwiCstaso_H57Pno,1097
48
+ rda_python_metrics-1.0.24.dist-info/METADATA,sha256=ye_l-YywMIqo8DOKhp0tpRAbkDoM-h6ofixlnWcY43U,761
49
+ rda_python_metrics-1.0.24.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
50
+ rda_python_metrics-1.0.24.dist-info/entry_points.txt,sha256=YfFLzlE3rdufSV471VsDnfYptnt1lR08aSrxPXlKqlY,1185
51
+ rda_python_metrics-1.0.24.dist-info/top_level.txt,sha256=aoBgbR_o70TP0QmMW0U6inRHYtfKld47OBmnWnLnDOs,19
52
+ rda_python_metrics-1.0.24.dist-info/RECORD,,