Skip to content

Commit 29fabd9

Browse files
authored
Merge pull request #78 from emiliom/hads
hads collector update to support unverified SSL certs
2 parents e3f8479 + bf2a162 commit 29fabd9

1 file changed

Lines changed: 22 additions & 10 deletions

File tree

pyoos/collectors/hads/hads.py

Lines changed: 22 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -84,23 +84,23 @@ def list_features(self):
8484

8585
return station_codes
8686

87-
def collect(self):
87+
def collect(self, **kwargs):
8888
var_filter = None
8989
if hasattr(self, '_variables'):
9090
var_filter = self._variables
9191

9292
time_extents = (self.start_time if hasattr(self, 'start_time') else None, self.end_time if hasattr(self, 'end_time') else None)
9393

94-
metadata, raw_data = self.raw()
94+
metadata, raw_data = self.raw(**kwargs)
9595
return self.parser.parse(metadata, raw_data, var_filter, time_extents)
9696

97-
def raw(self, format=None):
97+
def raw(self, format=None, **kwargs):
9898
"""
9999
Returns a tuple of (metadata, raw data)
100100
"""
101101
station_codes = self._apply_features_filter(self._get_station_codes())
102-
metadata = self._get_metadata(station_codes)
103-
raw_data = self._get_raw_data(station_codes)
102+
metadata = self._get_metadata(station_codes, **kwargs)
103+
raw_data = self._get_raw_data(station_codes, **kwargs)
104104

105105
return (metadata, raw_data)
106106

@@ -116,12 +116,18 @@ def _apply_features_filter(self, station_codes):
116116

117117
return station_codes
118118

119-
def _get_metadata(self, station_codes):
119+
def _get_metadata(self, station_codes, **kwargs):
120+
if 'verify' in kwargs:
121+
verify_cert = kwargs['verify']
122+
else:
123+
verify_cert = True # the default for requests
124+
120125
resp = requests.post(self.metadata_url, data={'state' : 'nil',
121126
'hsa' : 'nil',
122127
'of' : '1',
123128
'extraids' : " ".join(station_codes),
124-
'data' : "Get Meta Data"})
129+
'data' : "Get Meta Data"},
130+
verify=verify_cert)
125131
resp.raise_for_status()
126132
return resp.text
127133

@@ -155,7 +161,7 @@ def _get_station_codes(self, force=False):
155161
self.station_codes.extend(self._get_stations_for_state(state_url))
156162

157163
if self.bbox:
158-
# retreive metadata for all stations to properly filter them
164+
# retrieve metadata for all stations to properly filter them
159165
metadata = self._get_metadata(self.station_codes)
160166
parsed_metadata = self.parser._parse_metadata(metadata)
161167

@@ -178,7 +184,12 @@ def _get_stations_for_state(self, state_url):
178184
state_root = BeautifulSoup(requests.get(state_url).text)
179185
return [x for x in [x.attrs['href'].split("nesdis_id=")[-1] for x in state_root.find_all('a')] if len(x) > 0]
180186

181-
def _get_raw_data(self, station_codes):
187+
def _get_raw_data(self, station_codes, **kwargs):
188+
if 'verify' in kwargs:
189+
verify_cert = kwargs['verify']
190+
else:
191+
verify_cert = True # the default for requests
192+
182193
since = 7
183194
if hasattr(self, 'start_time') and self.start_time is not None:
184195
# calc delta between now and start_time
@@ -196,7 +207,8 @@ def _get_raw_data(self, station_codes):
196207
'hsa' : 'nil',
197208
'of' : '1',
198209
'extraids' : " ".join(station_codes),
199-
'sinceday' : since})
210+
'sinceday' : since},
211+
verify=verify_cert)
200212
resp.raise_for_status()
201213

202214
return resp.text

0 commit comments

Comments
 (0)