mirror of
https://github.com/opentofu/opentofu.git
synced 2025-02-25 18:45:20 -06:00
Reuse 'etcd' client.
This commit is contained in:
parent
6daf1d9d84
commit
c8ff10f603
@ -60,12 +60,14 @@ type Backend struct {
|
||||
*schema.Backend
|
||||
|
||||
// The fields below are set from configure.
|
||||
client *etcdv3.Client
|
||||
data *schema.ResourceData
|
||||
lock bool
|
||||
prefix string
|
||||
}
|
||||
|
||||
func (b *Backend) configure(ctx context.Context) error {
|
||||
var err error
|
||||
// Grab the resource data.
|
||||
b.data = schema.FromContextBackendConfig(ctx)
|
||||
// Store the lock information.
|
||||
@ -73,7 +75,7 @@ func (b *Backend) configure(ctx context.Context) error {
|
||||
// Store the prefix information.
|
||||
b.prefix = b.data.Get("prefix").(string)
|
||||
// Initialize a client to test config.
|
||||
_, err := b.rawClient()
|
||||
b.client, err = b.rawClient()
|
||||
// Return err, if any.
|
||||
return err
|
||||
}
|
||||
|
@ -14,12 +14,7 @@ import (
|
||||
)
|
||||
|
||||
func (b *Backend) States() ([]string, error) {
|
||||
client, err := b.rawClient()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
res, err := client.Get(context.TODO(), b.prefix, etcdv3.WithPrefix(), etcdv3.WithKeysOnly())
|
||||
res, err := b.client.Get(context.TODO(), b.prefix, etcdv3.WithPrefix(), etcdv3.WithKeysOnly())
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@ -39,26 +34,16 @@ func (b *Backend) DeleteState(name string) error {
|
||||
return fmt.Errorf("Can't delete default state.")
|
||||
}
|
||||
|
||||
client, err := b.rawClient()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
key := b.determineKey(name)
|
||||
|
||||
_, err = client.Delete(context.TODO(), key)
|
||||
_, err := b.client.Delete(context.TODO(), key)
|
||||
return err
|
||||
}
|
||||
|
||||
func (b *Backend) State(name string) (state.State, error) {
|
||||
client, err := b.rawClient()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
var stateMgr state.State = &remote.State{
|
||||
Client: &RemoteClient{
|
||||
Client: client,
|
||||
Client: b.client,
|
||||
DoLock: b.lock,
|
||||
Key: b.determineKey(name),
|
||||
},
|
||||
|
Loading…
Reference in New Issue
Block a user