@@ -66,11 +66,24 @@ function mo_http_request($uri, $context) {
6666 return $ result ;
6767}
6868
69+ function json_decode_or_fail (/* json_decode() args */ )
70+ {
71+ $ decoded = call_user_func_array ('json_decode ' , func_get_args ());
72+
73+ if ($ decoded === NULL && json_last_error () !== JSON_ERROR_NONE ) {
74+ printf ("\njson_decode() failed: %s \n" , json_last_error_msg ());
75+ var_dump (func_get_arg (0 ));
76+ exit (1 );
77+ }
78+
79+ return $ decoded ;
80+ }
81+
6982printf ("Cleaning out previous processes, if any " );
7083lap ();
7184/* Remove all pre-existing ReplicaSets */
7285$ replicasets = mo_http_request (getMOUri () . "/replica_sets " , make_ctx (getMOPresetBase (), "GET " ));
73- $ replicasets = json_decode ($ replicasets , true );
86+ $ replicasets = json_decode_or_fail ($ replicasets , true );
7487foreach ($ replicasets ["replica_sets " ] as $ replicaset ) {
7588 $ uri = getMOUri () . "/replica_sets/ " . $ replicaset ["id " ];
7689 mo_http_request ($ uri , make_ctx (getMOPresetBase (), "DELETE " ));
@@ -79,7 +92,7 @@ function mo_http_request($uri, $context) {
7992echo " " ;
8093/* Remove all pre-existing servers */
8194$ servers = mo_http_request (getMOUri () . "/servers " , make_ctx (getMOPresetBase (), "GET " ));
82- $ servers = json_decode ($ servers , true );
95+ $ servers = json_decode_or_fail ($ servers , true );
8396foreach ($ servers ["servers " ] as $ server ) {
8497 $ uri = getMOUri () . "/servers/ " . $ server ["id " ];
8598 mo_http_request ($ uri , make_ctx (getMOPresetBase (), "DELETE " ));
@@ -89,11 +102,12 @@ function mo_http_request($uri, $context) {
89102
90103foreach ($ PRESETS ["standalone " ] as $ preset ) {
91104 lap ();
92- $ json = json_decode (file_get_contents ($ preset ), true );
105+ $ json = json_decode_or_fail (file_get_contents ($ preset ), true );
93106 printf ("Starting %-20s ... " , $ json ["id " ]);
94107
95108 $ result = mo_http_request (getMOUri () . "/servers " , make_ctx (getMOPresetBase () . $ preset ));
96- $ decode = json_decode ($ result , true );
109+ $ decode = json_decode_or_fail ($ result , true );
110+
97111 if (!isset ($ decode ["id " ])) {
98112 failed ($ decode );
99113 }
@@ -105,11 +119,12 @@ function mo_http_request($uri, $context) {
105119
106120foreach ($ PRESETS ["replicasets " ] as $ preset ) {
107121 lap ();
108- $ json = json_decode (file_get_contents ($ preset ), true );
122+ $ json = json_decode_or_fail (file_get_contents ($ preset ), true );
109123 printf ("Starting %-20s ... " , $ json ["id " ]);
110124
111125 $ result = mo_http_request (getMOUri () . "/replica_sets " , make_ctx (getMOPresetBase () . $ preset ));
112- $ decode = json_decode ($ result , true );
126+ $ decode = json_decode_or_fail ($ result , true );
127+
113128 if (!isset ($ decode ["id " ])) {
114129 failed ($ decode );
115130 }
0 commit comments