@@ -19,7 +19,6 @@ package pkg
19
19
import (
20
20
"encoding/json"
21
21
"fmt"
22
- "strings"
23
22
"time"
24
23
25
24
"gomodules.xyz/go-sh"
@@ -48,12 +47,11 @@ func setupConfigServer(configSVRDSN, secondaryHost string) error {
48
47
return err
49
48
}
50
49
51
- s := fmt .Sprintf (`/bin/echo '%s' | /usr/bin/tail -1` , strings .TrimSuffix (string (output ), "\n " ))
52
- output , err = sh .Command ("/bin/sh" , "-c" , s ).Output ()
50
+ output , err = extractJSON (string (output ))
53
51
if err != nil {
54
- klog .Errorf ("Error while running tail in findAndModify to lock configServer : %s ; output : %s \n " , err .Error (), output )
55
52
return err
56
53
}
54
+
57
55
err = json .Unmarshal (output , & v )
58
56
if err != nil {
59
57
klog .Errorf ("Unmarshal error while running findAndModify to lock configServer : %s \n " , err .Error ())
@@ -75,7 +73,18 @@ func setupConfigServer(configSVRDSN, secondaryHost string) error {
75
73
"--eval" , "rs.slaveOk(); db.BackupControl.find({ '_id' : 'BackupControlDocument' }).readConcern('majority');" ,
76
74
}, mongoCreds ... )
77
75
78
- if err := sh .Command (MongoCMD , args ... ).UnmarshalJSON (& v ); err != nil {
76
+ output , err := sh .Command (MongoCMD , args ... ).Command ("/usr/bin/tail" , "-1" ).Output ()
77
+ if err != nil {
78
+ return err
79
+ }
80
+
81
+ output , err = extractJSON (string (output ))
82
+ if err != nil {
83
+ return err
84
+ }
85
+
86
+ err = json .Unmarshal (output , & v )
87
+ if err != nil {
79
88
return err
80
89
}
81
90
@@ -118,6 +127,11 @@ func lockSecondaryMember(mongohost string) error {
118
127
return err
119
128
}
120
129
130
+ output , err = extractJSON (string (output ))
131
+ if err != nil {
132
+ return err
133
+ }
134
+
121
135
err = json .Unmarshal (output , & v )
122
136
if err != nil {
123
137
klog .Errorf ("Unmarshal error while running fsyncLock on secondary : %s \n " , err .Error ())
@@ -146,6 +160,12 @@ func checkIfSecondaryLockedAndSync(mongohost string) error {
146
160
klog .Errorf ("Error while running currentOp on secondary : %s ; output : %s \n " , err .Error (), output )
147
161
return err
148
162
}
163
+
164
+ output , err = extractJSON (string (output ))
165
+ if err != nil {
166
+ return err
167
+ }
168
+
149
169
err = json .Unmarshal (output , & x )
150
170
if err != nil {
151
171
klog .Errorf ("Unmarshal error while running currentOp on secondary : %s \n " , err .Error ())
@@ -178,8 +198,18 @@ func waitForSecondarySync(mongohost string) error {
178
198
"--eval" , "JSON.stringify(rs.status())" ,
179
199
}, mongoCreds ... )
180
200
181
- if err := sh .Command (MongoCMD , args ... ).Command ("/usr/bin/tail" , "-1" ).UnmarshalJSON (& status ); err != nil {
182
- klog .Errorf ("Error while running status on secondary : %s ; output : %s \n " , mongohost , err .Error ())
201
+ output , err := sh .Command (MongoCMD , args ... ).Command ("/usr/bin/tail" , "-1" ).Output ()
202
+ if err != nil {
203
+ return err
204
+ }
205
+
206
+ output , err = extractJSON (string (output ))
207
+ if err != nil {
208
+ return err
209
+ }
210
+
211
+ err = json .Unmarshal (output , & status )
212
+ if err != nil {
183
213
return err
184
214
}
185
215
@@ -268,6 +298,12 @@ func unlockSecondaryMember(mongohost string) error {
268
298
klog .Errorf ("Error while running fsyncUnlock on secondary : %s ; output : %s \n " , err .Error (), output )
269
299
return err
270
300
}
301
+
302
+ output , err = extractJSON (string (output ))
303
+ if err != nil {
304
+ return err
305
+ }
306
+
271
307
err = json .Unmarshal (output , & v )
272
308
if err != nil {
273
309
klog .Errorf ("Unmarshal error while running fsyncUnlock on secondary : %s \n " , err .Error ())
0 commit comments