Skip to content

Commit 232be02

Browse files
authored
Bug 1933847 - ParseUri updates needed for stub installer exit code enhancements (#2707)
Corresponding code change for the stub installer and documentation: https://phabricator.services.mozilla.com/D230471 Corresponding schema change: mozilla-services/mozilla-pipeline-schemas#834
1 parent 8ed1d0a commit 232be02

File tree

2 files changed

+158
-100
lines changed

2 files changed

+158
-100
lines changed

ingestion-beam/src/main/java/com/mozilla/telemetry/decoder/ParseUri.java

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -263,12 +263,21 @@ private static class InvalidIntegerException extends InvalidUriException {
263263
appendString(Attribute.OS_VERSION, "."), //
264264
putString("service_pack"), putBool("server_os"),
265265
// Exit code
266-
putBoolPerCodeSet(new ImmutableMap.Builder<String, Set<Integer>>()
267-
.put("succeeded", ImmutableSet.of(0)).put("user_cancelled", ImmutableSet.of(10))
268-
.put("out_of_retries", ImmutableSet.of(11)).put("file_error", ImmutableSet.of(20))
269-
.put("sig_not_trusted", ImmutableSet.of(21, 23))
270-
.put("sig_unexpected", ImmutableSet.of(22, 23))
271-
.put("install_timeout", ImmutableSet.of(30)).build()),
266+
putBoolPerCodeSet(new ImmutableMap.Builder<String, Set<Integer>>() //
267+
.put("succeeded", ImmutableSet.of(0)) //
268+
.put("user_cancelled", ImmutableSet.of(10)) //
269+
.put("out_of_retries", ImmutableSet.of(11)) //
270+
.put("file_error", ImmutableSet.of(20)) //
271+
.put("sig_not_trusted", ImmutableSet.of(21, 23)) //
272+
.put("sig_unexpected", ImmutableSet.of(22, 23)) //
273+
.put("install_timeout", ImmutableSet.of(30)) //
274+
.put("unknown_error", ImmutableSet.of(1)) //
275+
.put("sig_check_timeout", ImmutableSet.of(24)) //
276+
.put("hardware_req_not_met", ImmutableSet.of(25)) //
277+
.put("os_version_req_not_met", ImmutableSet.of(26)) //
278+
.put("disk_space_req_not_met", ImmutableSet.of(27)) //
279+
.put("writeable_req_not_met", ImmutableSet.of(28)) //
280+
.build()),
272281
// Launch code
273282
putBoolPerCode(ImmutableMap.of("old_running", 1, "new_launched", 2)),
274283
putInteger("download_retries"), putInteger("bytes_downloaded"), putInteger("download_size"),

ingestion-beam/src/test/java/com/mozilla/telemetry/decoder/ParseUriTest.java

Lines changed: 143 additions & 94 deletions
Original file line numberDiff line numberDiff line change
@@ -150,100 +150,149 @@ private static Map<String, String> joinCases(List<Map<String, String>> cases) {
150150
}
151151
}
152152

153-
private static final Map<String, String> VALID_V6_DIMENSIONS = joinCases(
154-
Arrays.asList(validStringCases("build_channel"), //
155-
validStringCases("update_channel"), //
156-
validStringCases("locale"), //
157-
// Build architecture code
158-
ImmutableMap.of(//
159-
"0", "\"64bit_build\":false", //
160-
"1", "\"64bit_build\":true"),
161-
// OS architecture code
162-
ImmutableMap.of(//
163-
"0", "\"64bit_os\":false", //
164-
"1", "\"64bit_os\":true"), //
165-
ImmutableMap.of("1/2/3", "\"os_version\":\"1.2.3\""), //
166-
validStringCases("service_pack"), //
167-
validBoolCases("server_os"), //
168-
// Exit code
169-
new ImmutableMap.Builder<String, String>() //
170-
.put("0",
171-
"\"succeeded\":true,\"user_cancelled\":false,\"out_of_retries\":false,"
172-
+ "\"file_error\":false,\"sig_not_trusted\":false,\"sig_unexpected\":false,"
173-
+ "\"install_timeout\":false")
174-
.put("1",
175-
"\"succeeded\":false,\"user_cancelled\":false,\"out_of_retries\":false,"
176-
+ "\"file_error\":false,\"sig_not_trusted\":false,\"sig_unexpected\":false,"
177-
+ "\"install_timeout\":false")
178-
.put("10",
179-
"\"succeeded\":false,\"user_cancelled\":true,\"out_of_retries\":false,"
180-
+ "\"file_error\":false,\"sig_not_trusted\":false,\"sig_unexpected\":false,"
181-
+ "\"install_timeout\":false")
182-
.put("11",
183-
"\"succeeded\":false,\"user_cancelled\":false,\"out_of_retries\":true,"
184-
+ "\"file_error\":false,\"sig_not_trusted\":false,\"sig_unexpected\":false,"
185-
+ "\"install_timeout\":false")
186-
.put("20",
187-
"\"succeeded\":false,\"user_cancelled\":false,\"out_of_retries\":false,"
188-
+ "\"file_error\":true,\"sig_not_trusted\":false,\"sig_unexpected\":false,"
189-
+ "\"install_timeout\":false")
190-
.put("21",
191-
"\"succeeded\":false,\"user_cancelled\":false,\"out_of_retries\":false,"
192-
+ "\"file_error\":false,\"sig_not_trusted\":true,\"sig_unexpected\":false,"
193-
+ "\"install_timeout\":false")
194-
.put("22",
195-
"\"succeeded\":false,\"user_cancelled\":false,\"out_of_retries\":false,"
196-
+ "\"file_error\":false,\"sig_not_trusted\":false,\"sig_unexpected\":true,"
197-
+ "\"install_timeout\":false")
198-
.put("23",
199-
"\"succeeded\":false,\"user_cancelled\":false,\"out_of_retries\":false,"
200-
+ "\"file_error\":false,\"sig_not_trusted\":true,\"sig_unexpected\":true,"
201-
+ "\"install_timeout\":false")
202-
.put("30",
203-
"\"succeeded\":false,\"user_cancelled\":false,\"out_of_retries\":false,"
204-
+ "\"file_error\":false,\"sig_not_trusted\":false,\"sig_unexpected\":false,"
205-
+ "\"install_timeout\":true")
206-
.build(), //
207-
// Launch code
208-
ImmutableMap.of(//
209-
"0", "\"old_running\":false,\"new_launched\":false", //
210-
"1", "\"old_running\":true,\"new_launched\":false", //
211-
"2", "\"old_running\":false,\"new_launched\":true"), //
212-
validIntCases("download_retries"), //
213-
validIntCases("bytes_downloaded"), //
214-
validIntCases("download_size"), //
215-
validIntCases("intro_time"), //
216-
validIntCases("options_time"), //
217-
validIntCases("download_time"), //
218-
ImmutableMap.of("", ""), // ignored field
219-
validIntCases("download_latency"), //
220-
validIntCases("preinstall_time"), //
221-
validIntCases("install_time"), //
222-
validIntCases("finish_time"), //
223-
// Initial install requirements code
224-
ImmutableMap.of(//
225-
"0", "\"disk_space_error\":false,\"no_write_access\":false", //
226-
"1", "\"disk_space_error\":true,\"no_write_access\":false", //
227-
"2", "\"disk_space_error\":false,\"no_write_access\":true"), //
228-
validBoolCases("manual_download"), //
229-
validBoolCases("had_old_install"), //
230-
validStringCases("old_version"), //
231-
validStringCases("old_build_id"), //
232-
validStringCases("version"), //
233-
validStringCases("build_id"), //
234-
validBoolCases("default_path"), //
235-
validBoolCases("admin_user"), //
236-
// Default browser status code
237-
ImmutableMap.of(//
238-
"0", "\"new_default\":false,\"old_default\":false", //
239-
"1", "\"new_default\":true,\"old_default\":false", //
240-
"2", "\"new_default\":false,\"old_default\":true"), //
241-
// Default browser setting code
242-
ImmutableMap.of(//
243-
"0", "\"set_default\":false", //
244-
"1", "\"set_default\":false", //
245-
"2", "\"set_default\":true"), //
246-
validStringCases("download_ip")));
153+
private static final Map<String, String> VALID_V6_DIMENSIONS = joinCases(Arrays.asList(
154+
validStringCases("build_channel"), //
155+
validStringCases("update_channel"), //
156+
validStringCases("locale"), //
157+
// Build architecture code
158+
ImmutableMap.of(//
159+
"0", "\"64bit_build\":false", //
160+
"1", "\"64bit_build\":true"),
161+
// OS architecture code
162+
ImmutableMap.of(//
163+
"0", "\"64bit_os\":false", //
164+
"1", "\"64bit_os\":true"), //
165+
ImmutableMap.of("1/2/3", "\"os_version\":\"1.2.3\""), //
166+
validStringCases("service_pack"), //
167+
validBoolCases("server_os"), //
168+
// Exit code
169+
new ImmutableMap.Builder<String, String>() //
170+
.put("0",
171+
"\"succeeded\":true,\"user_cancelled\":false,\"out_of_retries\":false,"
172+
+ "\"file_error\":false,\"sig_not_trusted\":false,\"sig_unexpected\":false,"
173+
+ "\"install_timeout\":false,\"unknown_error\":false,\"sig_check_timeout\":false,"
174+
+ "\"hardware_req_not_met\":false,\"os_version_req_not_met\":false,"
175+
+ "\"disk_space_req_not_met\":false,\"writeable_req_not_met\":false")
176+
.put("1",
177+
"\"succeeded\":false,\"user_cancelled\":false,\"out_of_retries\":false,"
178+
+ "\"file_error\":false,\"sig_not_trusted\":false,\"sig_unexpected\":false,"
179+
+ "\"install_timeout\":false,\"unknown_error\":true,\"sig_check_timeout\":false,"
180+
+ "\"hardware_req_not_met\":false,\"os_version_req_not_met\":false,"
181+
+ "\"disk_space_req_not_met\":false,\"writeable_req_not_met\":false")
182+
.put("10",
183+
"\"succeeded\":false,\"user_cancelled\":true,\"out_of_retries\":false,"
184+
+ "\"file_error\":false,\"sig_not_trusted\":false,\"sig_unexpected\":false,"
185+
+ "\"install_timeout\":false,\"unknown_error\":false,\"sig_check_timeout\":false,"
186+
+ "\"hardware_req_not_met\":false,\"os_version_req_not_met\":false,"
187+
+ "\"disk_space_req_not_met\":false,\"writeable_req_not_met\":false")
188+
.put("11",
189+
"\"succeeded\":false,\"user_cancelled\":false,\"out_of_retries\":true,"
190+
+ "\"file_error\":false,\"sig_not_trusted\":false,\"sig_unexpected\":false,"
191+
+ "\"install_timeout\":false,\"unknown_error\":false,\"sig_check_timeout\":false,"
192+
+ "\"hardware_req_not_met\":false,\"os_version_req_not_met\":false,"
193+
+ "\"disk_space_req_not_met\":false,\"writeable_req_not_met\":false")
194+
.put("20",
195+
"\"succeeded\":false,\"user_cancelled\":false,\"out_of_retries\":false,"
196+
+ "\"file_error\":true,\"sig_not_trusted\":false,\"sig_unexpected\":false,"
197+
+ "\"install_timeout\":false,\"unknown_error\":false,\"sig_check_timeout\":false,"
198+
+ "\"hardware_req_not_met\":false,\"os_version_req_not_met\":false,"
199+
+ "\"disk_space_req_not_met\":false,\"writeable_req_not_met\":false")
200+
.put("21",
201+
"\"succeeded\":false,\"user_cancelled\":false,\"out_of_retries\":false,"
202+
+ "\"file_error\":false,\"sig_not_trusted\":true,\"sig_unexpected\":false,"
203+
+ "\"install_timeout\":false,\"unknown_error\":false,\"sig_check_timeout\":false,"
204+
+ "\"hardware_req_not_met\":false,\"os_version_req_not_met\":false,"
205+
+ "\"disk_space_req_not_met\":false,\"writeable_req_not_met\":false")
206+
.put("22",
207+
"\"succeeded\":false,\"user_cancelled\":false,\"out_of_retries\":false,"
208+
+ "\"file_error\":false,\"sig_not_trusted\":false,\"sig_unexpected\":true,"
209+
+ "\"install_timeout\":false,\"unknown_error\":false,\"sig_check_timeout\":false,"
210+
+ "\"hardware_req_not_met\":false,\"os_version_req_not_met\":false,"
211+
+ "\"disk_space_req_not_met\":false,\"writeable_req_not_met\":false")
212+
.put("23",
213+
"\"succeeded\":false,\"user_cancelled\":false,\"out_of_retries\":false,"
214+
+ "\"file_error\":false,\"sig_not_trusted\":true,\"sig_unexpected\":true,"
215+
+ "\"install_timeout\":false,\"unknown_error\":false,\"sig_check_timeout\":false,"
216+
+ "\"hardware_req_not_met\":false,\"os_version_req_not_met\":false,"
217+
+ "\"disk_space_req_not_met\":false,\"writeable_req_not_met\":false")
218+
219+
.put("24",
220+
"\"succeeded\":false,\"user_cancelled\":false,\"out_of_retries\":false,"
221+
+ "\"file_error\":false,\"sig_not_trusted\":false,\"sig_unexpected\":false,"
222+
+ "\"install_timeout\":false,\"unknown_error\":false,\"sig_check_timeout\":true,"
223+
+ "\"hardware_req_not_met\":false,\"os_version_req_not_met\":false,"
224+
+ "\"disk_space_req_not_met\":false,\"writeable_req_not_met\":false")
225+
.put("25",
226+
"\"succeeded\":false,\"user_cancelled\":false,\"out_of_retries\":false,"
227+
+ "\"file_error\":false,\"sig_not_trusted\":false,\"sig_unexpected\":false,"
228+
+ "\"install_timeout\":false,\"unknown_error\":false,\"sig_check_timeout\":false,"
229+
+ "\"hardware_req_not_met\":true,\"os_version_req_not_met\":false,"
230+
+ "\"disk_space_req_not_met\":false,\"writeable_req_not_met\":false")
231+
.put("26",
232+
"\"succeeded\":false,\"user_cancelled\":false,\"out_of_retries\":false,"
233+
+ "\"file_error\":false,\"sig_not_trusted\":false,\"sig_unexpected\":false,"
234+
+ "\"install_timeout\":false,\"unknown_error\":false,\"sig_check_timeout\":false,"
235+
+ "\"hardware_req_not_met\":false,\"os_version_req_not_met\":true,"
236+
+ "\"disk_space_req_not_met\":false,\"writeable_req_not_met\":false")
237+
.put("27",
238+
"\"succeeded\":false,\"user_cancelled\":false,\"out_of_retries\":false,"
239+
+ "\"file_error\":false,\"sig_not_trusted\":false,\"sig_unexpected\":false,"
240+
+ "\"install_timeout\":false,\"unknown_error\":false,\"sig_check_timeout\":false,"
241+
+ "\"hardware_req_not_met\":false,\"os_version_req_not_met\":false,"
242+
+ "\"disk_space_req_not_met\":true,\"writeable_req_not_met\":false")
243+
.put("28",
244+
"\"succeeded\":false,\"user_cancelled\":false,\"out_of_retries\":false,"
245+
+ "\"file_error\":false,\"sig_not_trusted\":false,\"sig_unexpected\":false,"
246+
+ "\"install_timeout\":false,\"unknown_error\":false,\"sig_check_timeout\":false,"
247+
+ "\"hardware_req_not_met\":false,\"os_version_req_not_met\":false,"
248+
+ "\"disk_space_req_not_met\":false,\"writeable_req_not_met\":true")
249+
.put("30",
250+
"\"succeeded\":false,\"user_cancelled\":false,\"out_of_retries\":false,"
251+
+ "\"file_error\":false,\"sig_not_trusted\":false,\"sig_unexpected\":false,"
252+
+ "\"install_timeout\":true,\"unknown_error\":false,\"sig_check_timeout\":false,"
253+
+ "\"hardware_req_not_met\":false,\"os_version_req_not_met\":false,"
254+
+ "\"disk_space_req_not_met\":false,\"writeable_req_not_met\":false")
255+
.build(), //
256+
// Launch code
257+
ImmutableMap.of(//
258+
"0", "\"old_running\":false,\"new_launched\":false", //
259+
"1", "\"old_running\":true,\"new_launched\":false", //
260+
"2", "\"old_running\":false,\"new_launched\":true"), //
261+
validIntCases("download_retries"), //
262+
validIntCases("bytes_downloaded"), //
263+
validIntCases("download_size"), //
264+
validIntCases("intro_time"), //
265+
validIntCases("options_time"), //
266+
validIntCases("download_time"), //
267+
ImmutableMap.of("", ""), // ignored field
268+
validIntCases("download_latency"), //
269+
validIntCases("preinstall_time"), //
270+
validIntCases("install_time"), //
271+
validIntCases("finish_time"), //
272+
// Initial install requirements code
273+
ImmutableMap.of(//
274+
"0", "\"disk_space_error\":false,\"no_write_access\":false", //
275+
"1", "\"disk_space_error\":true,\"no_write_access\":false", //
276+
"2", "\"disk_space_error\":false,\"no_write_access\":true"), //
277+
validBoolCases("manual_download"), //
278+
validBoolCases("had_old_install"), //
279+
validStringCases("old_version"), //
280+
validStringCases("old_build_id"), //
281+
validStringCases("version"), //
282+
validStringCases("build_id"), //
283+
validBoolCases("default_path"), //
284+
validBoolCases("admin_user"), //
285+
// Default browser status code
286+
ImmutableMap.of(//
287+
"0", "\"new_default\":false,\"old_default\":false", //
288+
"1", "\"new_default\":true,\"old_default\":false", //
289+
"2", "\"new_default\":false,\"old_default\":true"), //
290+
// Default browser setting code
291+
ImmutableMap.of(//
292+
"0", "\"set_default\":false", //
293+
"1", "\"set_default\":false", //
294+
"2", "\"set_default\":true"), //
295+
validStringCases("download_ip")));
247296

248297
private static final Map<String, String> VALID_V7_DIMENSIONS = joinCases(
249298
Arrays.asList(VALID_V6_DIMENSIONS, validStringCases("attribution")));

0 commit comments

Comments
 (0)