lib: Patch out the mess when using our magic option
This commit is contained in:
28
lib/main.go
28
lib/main.go
@@ -50,7 +50,9 @@ import (
|
|||||||
_ "github.com/purpleidea/mgmt/engine/resources" // let register's run
|
_ "github.com/purpleidea/mgmt/engine/resources" // let register's run
|
||||||
"github.com/purpleidea/mgmt/etcd"
|
"github.com/purpleidea/mgmt/etcd"
|
||||||
"github.com/purpleidea/mgmt/etcd/chooser"
|
"github.com/purpleidea/mgmt/etcd/chooser"
|
||||||
|
etcdClient "github.com/purpleidea/mgmt/etcd/client"
|
||||||
"github.com/purpleidea/mgmt/etcd/deployer"
|
"github.com/purpleidea/mgmt/etcd/deployer"
|
||||||
|
etcdInterfaces "github.com/purpleidea/mgmt/etcd/interfaces"
|
||||||
"github.com/purpleidea/mgmt/gapi"
|
"github.com/purpleidea/mgmt/gapi"
|
||||||
"github.com/purpleidea/mgmt/gapi/empty"
|
"github.com/purpleidea/mgmt/gapi/empty"
|
||||||
"github.com/purpleidea/mgmt/pgp"
|
"github.com/purpleidea/mgmt/pgp"
|
||||||
@@ -504,6 +506,8 @@ func (obj *Main) Run() error {
|
|||||||
} else {
|
} else {
|
||||||
Logf("seeds(%d): %+v", len(obj.seeds), obj.seeds)
|
Logf("seeds(%d): %+v", len(obj.seeds), obj.seeds)
|
||||||
}
|
}
|
||||||
|
var client etcdInterfaces.Client
|
||||||
|
if !obj.NoMagic {
|
||||||
obj.embdEtcd = &etcd.EmbdEtcd{
|
obj.embdEtcd = &etcd.EmbdEtcd{
|
||||||
Hostname: hostname,
|
Hostname: hostname,
|
||||||
Seeds: obj.seeds,
|
Seeds: obj.seeds,
|
||||||
@@ -569,12 +573,30 @@ func (obj *Main) Run() error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
// TODO: should getting a client from EmbdEtcd already come with the NS?
|
// TODO: should getting a client from EmbdEtcd already come with the NS?
|
||||||
etcdClient, err := obj.embdEtcd.MakeClientFromNamespace(NS)
|
client, err = obj.embdEtcd.MakeClientFromNamespace(NS)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return errwrap.Wrapf(err, "make Client failed")
|
return errwrap.Wrapf(err, "make Client failed")
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
c := etcdClient.NewClientFromSeedsNamespace(
|
||||||
|
obj.Seeds, // endpoints
|
||||||
|
NS,
|
||||||
|
)
|
||||||
|
if err := c.Init(); err != nil {
|
||||||
|
return errwrap.Wrapf(err, "client Init failed")
|
||||||
|
}
|
||||||
|
defer func() {
|
||||||
|
err := errwrap.Wrapf(c.Close(), "client Close failed")
|
||||||
|
if err != nil {
|
||||||
|
// TODO: cause the final exit code to be non-zero
|
||||||
|
Logf("client cleanup error: %+v", err)
|
||||||
|
}
|
||||||
|
}()
|
||||||
|
client = c
|
||||||
|
}
|
||||||
|
|
||||||
simpleDeploy := &deployer.SimpleDeploy{
|
simpleDeploy := &deployer.SimpleDeploy{
|
||||||
Client: etcdClient,
|
Client: client,
|
||||||
Debug: obj.Debug,
|
Debug: obj.Debug,
|
||||||
Logf: func(format string, v ...interface{}) {
|
Logf: func(format string, v ...interface{}) {
|
||||||
obj.Logf("deploy: "+format, v...)
|
obj.Logf("deploy: "+format, v...)
|
||||||
@@ -608,7 +630,7 @@ func (obj *Main) Run() error {
|
|||||||
// an etcd component from the etcd package added in.
|
// an etcd component from the etcd package added in.
|
||||||
world := &etcd.World{
|
world := &etcd.World{
|
||||||
Hostname: hostname,
|
Hostname: hostname,
|
||||||
Client: etcdClient,
|
Client: client,
|
||||||
MetadataPrefix: MetadataPrefix,
|
MetadataPrefix: MetadataPrefix,
|
||||||
StoragePrefix: StoragePrefix,
|
StoragePrefix: StoragePrefix,
|
||||||
StandaloneFs: obj.DeployFs, // used for static deploys
|
StandaloneFs: obj.DeployFs, // used for static deploys
|
||||||
|
|||||||
Reference in New Issue
Block a user