Skip to content

Commit 859a663

Browse files
committed
Restore back libsuseconnect with the new Options
Fixes: 61e2f5a ("cmd: Remove any usage of the 'CFG' global variable") Signed-off-by: Miquel Sabaté Solà <msabate@suse.com>
1 parent e4e9184 commit 859a663

File tree

2 files changed

+35
-26
lines changed

2 files changed

+35
-26
lines changed

Makefile

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,8 +56,7 @@ build: clean out internal/connect/version.txt
5656
$(GO) build $(GOFLAGS) $(BINFLAGS) $(OUT) github.com/SUSE/connect-ng/cmd/suse-uptime-tracker
5757
$(GO) build $(GOFLAGS) $(BINFLAGS) $(OUT) github.com/SUSE/connect-ng/cmd/public-api-demo
5858
$(GO) build $(GOFLAGS) $(BINFLAGS) $(OUT) github.com/SUSE/connect-ng/cmd/validate-offline-certificate
59-
# TODO(mssola): skipped for now. Do we actually need this?
60-
#$(GO) build $(GOFLAGS) $(SOFLAGS) $(OUT) github.com/SUSE/connect-ng/third_party/libsuseconnect
59+
$(GO) build $(GOFLAGS) $(SOFLAGS) $(OUT) github.com/SUSE/connect-ng/third_party/libsuseconnect
6160

6261
# This "arm" means ARM64v8 little endian, the one being delivered currently on
6362
# OBS.

third_party/libsuseconnect/libsuseconnect.go

Lines changed: 34 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ func free_string(str *C.char) {
6363

6464
//export announce_system
6565
func announce_system(clientParams, distroTarget *C.char) *C.char {
66-
loadConfig(C.GoString(clientParams))
66+
_ = loadConfig(C.GoString(clientParams))
6767

6868
login, password, err := connect.AnnounceSystem(C.GoString(distroTarget), "", false)
6969
if err != nil {
@@ -80,7 +80,7 @@ func announce_system(clientParams, distroTarget *C.char) *C.char {
8080

8181
//export update_system
8282
func update_system(clientParams, distroTarget *C.char) *C.char {
83-
loadConfig(C.GoString(clientParams))
83+
_ = loadConfig(C.GoString(clientParams))
8484

8585
if err := connect.UpdateSystem(C.GoString(distroTarget), "", false, false); err != nil {
8686
return C.CString(errorToJSON(err))
@@ -91,7 +91,7 @@ func update_system(clientParams, distroTarget *C.char) *C.char {
9191

9292
//export deactivate_system
9393
func deactivate_system(clientParams *C.char) *C.char {
94-
loadConfig(C.GoString(clientParams))
94+
_ = loadConfig(C.GoString(clientParams))
9595

9696
err := connect.DeregisterSystem()
9797
if err != nil {
@@ -137,7 +137,7 @@ func curlrc_credentials() *C.char {
137137

138138
//export show_product
139139
func show_product(clientParams, product *C.char) *C.char {
140-
loadConfig(C.GoString(clientParams))
140+
_ = loadConfig(C.GoString(clientParams))
141141

142142
var productQuery connect.Product
143143
err := json.Unmarshal([]byte(C.GoString(product)), &productQuery)
@@ -157,7 +157,7 @@ func show_product(clientParams, product *C.char) *C.char {
157157

158158
//export activate_product
159159
func activate_product(clientParams, product, email *C.char) *C.char {
160-
loadConfig(C.GoString(clientParams))
160+
_ = loadConfig(C.GoString(clientParams))
161161

162162
var p connect.Product
163163
err := json.Unmarshal([]byte(C.GoString(product)), &p)
@@ -177,7 +177,7 @@ func activate_product(clientParams, product, email *C.char) *C.char {
177177

178178
//export activated_products
179179
func activated_products(clientParams *C.char) *C.char {
180-
loadConfig(C.GoString(clientParams))
180+
_ = loadConfig(C.GoString(clientParams))
181181

182182
products, err := connect.ActivatedProducts()
183183
if err != nil {
@@ -192,7 +192,7 @@ func activated_products(clientParams *C.char) *C.char {
192192

193193
//export deactivate_product
194194
func deactivate_product(clientParams, product *C.char) *C.char {
195-
loadConfig(C.GoString(clientParams))
195+
_ = loadConfig(C.GoString(clientParams))
196196

197197
var p connect.Product
198198
err := json.Unmarshal([]byte(C.GoString(product)), &p)
@@ -212,10 +212,8 @@ func deactivate_product(clientParams, product *C.char) *C.char {
212212

213213
//export get_config
214214
func get_config(path *C.char) *C.char {
215-
c := connect.NewConfig()
216-
c.Path = C.GoString(path)
217-
c.Load()
218-
jsn, err := json.Marshal(c)
215+
opts, _ := connect.ReadFromConfiguration(C.GoString(path))
216+
jsn, err := json.Marshal(opts)
219217
if err != nil {
220218
return C.CString(errorToJSON(err))
221219
}
@@ -224,15 +222,16 @@ func get_config(path *C.char) *C.char {
224222

225223
//export write_config
226224
func write_config(clientParams *C.char) *C.char {
227-
loadConfig(C.GoString(clientParams))
228-
err := connect.CFG.Save()
225+
opts := loadConfig(C.GoString(clientParams))
226+
227+
err := opts.SaveAsConfiguration()
229228
if err != nil {
230229
return C.CString(errorToJSON(err))
231230
}
232231
return C.CString("{}")
233232
}
234233

235-
func loadConfig(clientParams string) {
234+
func loadConfig(clientParams string) *connect.Options {
236235
// unmarshal extra config fields only for local use
237236
var extConfig struct {
238237
Debug string `json:"debug"`
@@ -242,8 +241,16 @@ func loadConfig(clientParams string) {
242241
if v, _ := strconv.ParseBool(extConfig.Debug); v {
243242
util.Debug.SetOutput(callbackWriter{llDebug})
244243
}
245-
connect.CFG.Load()
246-
connect.CFG.MergeJSON(clientParams)
244+
245+
// Read the options from the default configuration path and merge the
246+
// provided clientParams into as well.
247+
opts, _ := connect.ReadFromConfiguration(connect.DefaultConfigPath)
248+
_ = json.Unmarshal([]byte(clientParams), opts)
249+
250+
// TODO(mssola): to be removed by the end of RR4.
251+
connect.CFG = opts
252+
253+
return opts
247254
}
248255

249256
func certToPEM(cert *x509.Certificate) string {
@@ -340,7 +347,10 @@ func errorToJSON(err error) string {
340347

341348
//export getstatus
342349
func getstatus(format *C.char) *C.char {
343-
connect.CFG.Load()
350+
opts, _ := connect.ReadFromConfiguration(connect.DefaultConfigPath)
351+
// TODO(mssola): to be removed by the end of RR4.
352+
connect.CFG = opts
353+
344354
gFormat := C.GoString(format)
345355
output, err := connect.GetProductStatuses(gFormat)
346356
if err != nil {
@@ -369,7 +379,7 @@ func reload_certificates() *C.char {
369379

370380
//export list_installer_updates
371381
func list_installer_updates(clientParams, product *C.char) *C.char {
372-
loadConfig(C.GoString(clientParams))
382+
_ = loadConfig(C.GoString(clientParams))
373383

374384
var productQuery connect.Product
375385
err := json.Unmarshal([]byte(C.GoString(product)), &productQuery)
@@ -389,7 +399,7 @@ func list_installer_updates(clientParams, product *C.char) *C.char {
389399

390400
//export system_migrations
391401
func system_migrations(clientParams, products *C.char) *C.char {
392-
loadConfig(C.GoString(clientParams))
402+
_ = loadConfig(C.GoString(clientParams))
393403

394404
installed := make([]connect.Product, 0)
395405
err := json.Unmarshal([]byte(C.GoString(products)), &installed)
@@ -409,7 +419,7 @@ func system_migrations(clientParams, products *C.char) *C.char {
409419

410420
//export offline_system_migrations
411421
func offline_system_migrations(clientParams, products, targetBaseProduct *C.char) *C.char {
412-
loadConfig(C.GoString(clientParams))
422+
_ = loadConfig(C.GoString(clientParams))
413423

414424
installed := make([]connect.Product, 0)
415425
err := json.Unmarshal([]byte(C.GoString(products)), &installed)
@@ -433,7 +443,7 @@ func offline_system_migrations(clientParams, products, targetBaseProduct *C.char
433443

434444
//export upgrade_product
435445
func upgrade_product(clientParams, product *C.char) *C.char {
436-
loadConfig(C.GoString(clientParams))
446+
_ = loadConfig(C.GoString(clientParams))
437447

438448
var prod connect.Product
439449
err := json.Unmarshal([]byte(C.GoString(product)), &prod)
@@ -453,7 +463,7 @@ func upgrade_product(clientParams, product *C.char) *C.char {
453463

454464
//export synchronize
455465
func synchronize(clientParams, products *C.char) *C.char {
456-
loadConfig(C.GoString(clientParams))
466+
_ = loadConfig(C.GoString(clientParams))
457467

458468
prods := make([]connect.Product, 0)
459469
err := json.Unmarshal([]byte(C.GoString(products)), &prods)
@@ -473,7 +483,7 @@ func synchronize(clientParams, products *C.char) *C.char {
473483

474484
//export system_activations
475485
func system_activations(clientParams *C.char) *C.char {
476-
loadConfig(C.GoString(clientParams))
486+
_ = loadConfig(C.GoString(clientParams))
477487

478488
// converting from map to list as expected by Ruby clients
479489
actList := make([]connect.Activation, 0)
@@ -493,7 +503,7 @@ func system_activations(clientParams *C.char) *C.char {
493503

494504
//export search_package
495505
func search_package(clientParams, product, query *C.char) *C.char {
496-
loadConfig(C.GoString(clientParams))
506+
_ = loadConfig(C.GoString(clientParams))
497507

498508
var p connect.Product
499509
err := json.Unmarshal([]byte(C.GoString(product)), &p)

0 commit comments

Comments
 (0)