Skip to content

Commit 6e5d037

Browse files
authored
Merge pull request #60 from unity-sds/develop
FIX: validate datetime in dapa granule endpoint + dateVersion = collection_version
2 parents b6db13e + 337bc6e commit 6e5d037

File tree

7 files changed

+141
-5
lines changed

7 files changed

+141
-5
lines changed

cumulus_lambda_functions/cumulus_granules_dapa/cumulus_granules_dapa.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,8 @@ def __get_collection_id(self):
5353
return self
5454

5555
def __get_time_range(self):
56+
if self.__datetime is None:
57+
return
5658
if '/' not in self.__datetime:
5759
self.__cumulus.with_time(self.__datetime)
5860
return

cumulus_lambda_functions/cumulus_granules_dapa_ingest_cnm/cumulus_granules_dapa_ingest_cnm.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -169,7 +169,7 @@ def start(self):
169169
"version": '1.6.0', # TODO
170170
'product': {
171171
'name': each_granule['id'],
172-
'dataVersion': '1', # TODO
172+
'dataVersion': collection_id_version[1],
173173
'files': [{
174174
'name': os.path.basename(v['href']),
175175
'type': k,

cumulus_lambda_functions/snpp_level1a_generate_cmr/l1a_input_metadata.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,10 @@
2424
"type": "string",
2525
},
2626
"val": {
27-
"type": "string",
27+
"oneOf": [
28+
{"type": "string"},
29+
{"type": "array", "items": {"type": "string"}},
30+
]
2831
},
2932
}
3033
},

docker/docker-compose-granules-download.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
version: "3.7"
22
services:
33
cumulus_granules_download:
4-
image: cumulus_unity:1.0.0-t1
4+
image: ghcr.io/unity-sds/unity-data-services:1.5.15
55
volumes:
66
- /tmp/cumulus_granules:/etc/granules
77
command: ["download"]

docker/docker-compose-granules-upload.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
version: "3.7"
22
services:
33
cumulus_granules_upload:
4-
image: cumulus_unity:1.0.0-t1
4+
image: ghcr.io/unity-sds/unity-data-services:1.5.15
55
volumes:
66
- /tmp/snpp_upload_test_1:/etc/snpp_upload_test_1
77
command: ["upload"]

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616

1717
setup(
1818
name="cumulus_lambda_functions",
19-
version="1.5.15",
19+
version="1.5.16",
2020
packages=find_packages(),
2121
install_requires=install_requires,
2222
tests_require=['mock', 'nose', 'sphinx', 'sphinx_rtd_theme', 'coverage'],

tests/cumulus_lambda_functions/snpp_level1a_generate_cmr/test_l1a_input_metadata.py

Lines changed: 131 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,3 +108,134 @@ def test_01(self):
108108
self.assertEqual(l1a.prod_dt, '2020-12-14T13:50:00.000Z', 'wrong prod_dt')
109109
self.assertEqual(l1a.prod_name, 'SNDR.SNPP.ATMS.20160114T0954.m06.g100.L1A.L1AMw_nominal2.v03_15_00.D.201214135000.nc', 'wrong prod_name')
110110
return
111+
112+
def test_02(self):
113+
input_str = '''<?xml version="1.0" encoding="UTF-8" ?>
114+
<cas:metadata xmlns:cas="http://oodt.jpl.nasa.gov/1.0/cas">
115+
<keyval type="scalar">
116+
<key>AggregateDir</key>
117+
<val>snppatmsl1b</val>
118+
</keyval>
119+
<keyval type="vector">
120+
<key>AutomaticQualityFlag</key>
121+
<val>Passed</val>
122+
</keyval>
123+
<keyval type="vector">
124+
<key>BuildId</key>
125+
<val>v01.43.00</val>
126+
</keyval>
127+
<keyval type="vector">
128+
<key>CollectionLabel</key>
129+
<val>L1BMw_nominal</val>
130+
</keyval>
131+
<keyval type="scalar">
132+
<key>DataGroup</key>
133+
<val>sndr</val>
134+
</keyval>
135+
<keyval type="scalar">
136+
<key>EndDateTime</key>
137+
<val>2016-01-14T11:48:00.000Z</val>
138+
</keyval>
139+
<keyval type="scalar">
140+
<key>EndTAI93</key>
141+
<val>726925689.000</val>
142+
</keyval>
143+
<keyval type="scalar">
144+
<key>FileFormat</key>
145+
<val>nc4</val>
146+
</keyval>
147+
<keyval type="scalar">
148+
<key>FileLocation</key>
149+
<val>/ddlyVp</val>
150+
</keyval>
151+
<keyval type="scalar">
152+
<key>Filename</key>
153+
<val>test_file19.nc</val>
154+
</keyval>
155+
<keyval type="vector">
156+
<key>GranuleNumber</key>
157+
<val>118</val>
158+
</keyval>
159+
<keyval type="vector">
160+
<key>InputFiles</key>
161+
<val>SNDR.SNPP.ATMS.L1A.nominal2.01.nc</val>
162+
<val>SNDR.SNPP.ATMS.L1A.nominal2.02.nc</val>
163+
<val>SNDR.SNPP.ATMS.L1A.nominal2.03.nc</val>
164+
<val>SNDR.SNPP.ATMS.L1A.nominal2.04.nc</val>
165+
<val>SNDR.SNPP.ATMS.L1A.nominal2.05.nc</val>
166+
<val>SNDR.SNPP.ATMS.L1A.nominal2.06.nc</val>
167+
<val>SNDR.SNPP.ATMS.L1A.nominal2.07.nc</val>
168+
<val>SNDR.SNPP.ATMS.L1A.nominal2.08.nc</val>
169+
<val>SNDR.SNPP.ATMS.L1A.nominal2.09.nc</val>
170+
<val>SNDR.SNPP.ATMS.L1A.nominal2.10.nc</val>
171+
<val>SNDR.SNPP.ATMS.L1A.nominal2.11.nc</val>
172+
<val>SNDR.SNPP.ATMS.L1A.nominal2.12.nc</val>
173+
<val>SNDR.SNPP.ATMS.L1A.nominal2.13.nc</val>
174+
<val>SNDR.SNPP.ATMS.L1A.nominal2.14.nc</val>
175+
<val>SNDR.SNPP.ATMS.L1A.nominal2.15.nc</val>
176+
<val>SNDR.SNPP.ATMS.L1A.nominal2.16.nc</val>
177+
<val>SNDR.SNPP.ATMS.L1A.nominal2.17.nc</val>
178+
<val>SNDR.SNPP.ATMS.L1A.nominal2.18.nc</val>
179+
<val>SNDR.SNPP.ATMS.L1A.nominal2.19.nc</val>
180+
<val>SNDR.SNPP.ATMS.L1A.nominal2.20.nc</val>
181+
<val>SNDR.SNPP.L1bMw.apf.171115000000.xml</val>
182+
<val>SNDR.SNPP.L1bMw.template.201217000000.nc</val>
183+
</keyval>
184+
<keyval type="scalar">
185+
<key>JobId</key>
186+
<val>f163835c-9945-472f-bee2-2bc12673569f</val>
187+
</keyval>
188+
<keyval type="scalar">
189+
<key>ModelId</key>
190+
<val>urn:npp:SnppAtmsL1b</val>
191+
</keyval>
192+
<keyval type="scalar">
193+
<key>NominalDate</key>
194+
<val>2016-01-14</val>
195+
</keyval>
196+
<keyval type="vector">
197+
<key>ProductName</key>
198+
<val>SNDR.SNPP.ATMS.20160114T1142.m06.g118.L1B.L1BMw_nominal.v03_07.D.150520120000.nc</val>
199+
</keyval>
200+
<keyval type="scalar">
201+
<key>ProductType</key>
202+
<val>SNDR_SNPP_ATMS_L1B</val>
203+
</keyval>
204+
<keyval type="scalar">
205+
<key>ProductionDateTime</key>
206+
<val>2015-05-20T12:00:00.000Z</val>
207+
</keyval>
208+
<keyval type="vector">
209+
<key>ProductionLocation</key>
210+
<val>Sounder SIPS: JPL/Caltech (Dev)</val>
211+
</keyval>
212+
<keyval type="vector">
213+
<key>ProductionLocationCode</key>
214+
<val>D</val>
215+
</keyval>
216+
<keyval type="scalar">
217+
<key>RequestId</key>
218+
<val>12566</val>
219+
</keyval>
220+
<keyval type="scalar">
221+
<key>StartDateTime</key>
222+
<val>2016-01-14T11:42:00.000Z</val>
223+
</keyval>
224+
<keyval type="scalar">
225+
<key>StartTAI93</key>
226+
<val>726925329.000</val>
227+
</keyval>
228+
<keyval type="scalar">
229+
<key>TaskId</key>
230+
<val>8c3ae101-8f7c-46c8-b5c6-63e7b6d3c8cd</val>
231+
</keyval>
232+
</cas:metadata>
233+
'''
234+
l1a = L1AInputMetadata(xmltodict.parse(input_str)).load()
235+
self.assertEqual(l1a.beginning_dt, '2016-01-14T11:42:00.000Z', 'wrong beginning_dt')
236+
self.assertEqual(l1a.ending_dt, '2016-01-14T11:48:00.000Z', 'wrong ending_dt')
237+
self.assertEqual(l1a.prod_dt, '2015-05-20T12:00:00.000Z', 'wrong prod_dt')
238+
self.assertEqual(l1a.prod_name,
239+
'SNDR.SNPP.ATMS.20160114T1142.m06.g118.L1B.L1BMw_nominal.v03_07.D.150520120000.nc',
240+
'wrong prod_name')
241+
return

0 commit comments

Comments
 (0)