github.com/graywolf-at-work-2/terraform-vendor@v1.4.5/internal/backend/remote-state/kubernetes/client_test.go (about)

     1  package kubernetes
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/hashicorp/terraform/internal/backend"
     7  	"github.com/hashicorp/terraform/internal/states/remote"
     8  	"github.com/hashicorp/terraform/internal/states/statemgr"
     9  )
    10  
    11  func TestRemoteClient_impl(t *testing.T) {
    12  	var _ remote.Client = new(RemoteClient)
    13  	var _ remote.ClientLocker = new(RemoteClient)
    14  }
    15  
    16  func TestRemoteClient(t *testing.T) {
    17  	testACC(t)
    18  	defer cleanupK8sResources(t)
    19  
    20  	b := backend.TestBackendConfig(t, New(), backend.TestWrapConfig(map[string]interface{}{
    21  		"secret_suffix": secretSuffix,
    22  	}))
    23  
    24  	state, err := b.StateMgr(backend.DefaultStateName)
    25  	if err != nil {
    26  		t.Fatal(err)
    27  	}
    28  
    29  	remote.TestClient(t, state.(*remote.State).Client)
    30  }
    31  
    32  func TestRemoteClientLocks(t *testing.T) {
    33  	testACC(t)
    34  	defer cleanupK8sResources(t)
    35  
    36  	b1 := backend.TestBackendConfig(t, New(), backend.TestWrapConfig(map[string]interface{}{
    37  		"secret_suffix": secretSuffix,
    38  	}))
    39  
    40  	b2 := backend.TestBackendConfig(t, New(), backend.TestWrapConfig(map[string]interface{}{
    41  		"secret_suffix": secretSuffix,
    42  	}))
    43  
    44  	s1, err := b1.StateMgr(backend.DefaultStateName)
    45  	if err != nil {
    46  		t.Fatal(err)
    47  	}
    48  
    49  	s2, err := b2.StateMgr(backend.DefaultStateName)
    50  	if err != nil {
    51  		t.Fatal(err)
    52  	}
    53  
    54  	remote.TestRemoteLocks(t, s1.(*remote.State).Client, s2.(*remote.State).Client)
    55  }
    56  
    57  func TestForceUnlock(t *testing.T) {
    58  	testACC(t)
    59  	defer cleanupK8sResources(t)
    60  
    61  	b1 := backend.TestBackendConfig(t, New(), backend.TestWrapConfig(map[string]interface{}{
    62  		"secret_suffix": secretSuffix,
    63  	}))
    64  
    65  	b2 := backend.TestBackendConfig(t, New(), backend.TestWrapConfig(map[string]interface{}{
    66  		"secret_suffix": secretSuffix,
    67  	}))
    68  
    69  	// first test with default
    70  	s1, err := b1.StateMgr(backend.DefaultStateName)
    71  	if err != nil {
    72  		t.Fatal(err)
    73  	}
    74  
    75  	info := statemgr.NewLockInfo()
    76  	info.Operation = "test"
    77  	info.Who = "clientA"
    78  
    79  	lockID, err := s1.Lock(info)
    80  	if err != nil {
    81  		t.Fatal("unable to get initial lock:", err)
    82  	}
    83  
    84  	// s1 is now locked, get the same state through s2 and unlock it
    85  	s2, err := b2.StateMgr(backend.DefaultStateName)
    86  	if err != nil {
    87  		t.Fatal("failed to get default state to force unlock:", err)
    88  	}
    89  
    90  	if err := s2.Unlock(lockID); err != nil {
    91  		t.Fatal("failed to force-unlock default state")
    92  	}
    93  
    94  	// now try the same thing with a named state
    95  	// first test with default
    96  	s1, err = b1.StateMgr("test")
    97  	if err != nil {
    98  		t.Fatal(err)
    99  	}
   100  
   101  	info = statemgr.NewLockInfo()
   102  	info.Operation = "test"
   103  	info.Who = "clientA"
   104  
   105  	lockID, err = s1.Lock(info)
   106  	if err != nil {
   107  		t.Fatal("unable to get initial lock:", err)
   108  	}
   109  
   110  	// s1 is now locked, get the same state through s2 and unlock it
   111  	s2, err = b2.StateMgr("test")
   112  	if err != nil {
   113  		t.Fatal("failed to get named state to force unlock:", err)
   114  	}
   115  
   116  	if err = s2.Unlock(lockID); err != nil {
   117  		t.Fatal("failed to force-unlock named state")
   118  	}
   119  }