cloud/shepherd: rename shepherd.State to shepherd.Availability

Change-Id: I8e1fa243317bf4f97af98303b10b979b98943156
Reviewed-on: https://review.monogon.dev/c/monogon/+/2779
Reviewed-by: Serge Bazanski <serge@monogon.tech>
Tested-by: Jenkins CI
diff --git a/cloud/shepherd/manager/provider_test.go b/cloud/shepherd/manager/provider_test.go
index b08c8b7..b18dc45 100644
--- a/cloud/shepherd/manager/provider_test.go
+++ b/cloud/shepherd/manager/provider_test.go
@@ -17,7 +17,7 @@
 type dummyMachine struct {
 	id           shepherd.ProviderID
 	addr         netip.Addr
-	state        shepherd.State
+	availability shepherd.Availability
 	agentStarted bool
 }
 
@@ -33,8 +33,8 @@
 	return dm.addr
 }
 
-func (dm *dummyMachine) State() shepherd.State {
-	return dm.state
+func (dm *dummyMachine) Availability() shepherd.Availability {
+	return dm.availability
 }
 
 type dummySSHClient struct {
@@ -106,9 +106,9 @@
 		uid := uuid.Must(uuid.NewRandom())
 		m, err := dp.CreateMachine(ctx, session, shepherd.CreateMachineRequest{
 			UnusedMachine: &dummyMachine{
-				id:    shepherd.ProviderID(uid.String()),
-				state: shepherd.StateKnownUsed,
-				addr:  netip.AddrFrom16(uid),
+				id:           shepherd.ProviderID(uid.String()),
+				availability: shepherd.AvailabilityKnownUsed,
+				addr:         netip.AddrFrom16(uid),
 			},
 		})
 		if err != nil {
@@ -130,9 +130,9 @@
 	for i := 0; i < unusedMachineCount; i++ {
 		uid := uuid.Must(uuid.NewRandom())
 		machines = append(machines, &dummyMachine{
-			id:    shepherd.ProviderID(uid.String()),
-			state: shepherd.StateKnownUnused,
-			addr:  netip.AddrFrom16(uid),
+			id:           shepherd.ProviderID(uid.String()),
+			availability: shepherd.AvailabilityKnownUnused,
+			addr:         netip.AddrFrom16(uid),
 		})
 	}
 
@@ -175,7 +175,7 @@
 		return nil, err
 	}
 
-	dm.state = shepherd.StateKnownUsed
+	dm.availability = shepherd.AvailabilityKnownUsed
 	dp.machines[dm.id] = dm
 
 	return dm, nil
diff --git a/cloud/shepherd/manager/provisioner.go b/cloud/shepherd/manager/provisioner.go
index 5f19c6d..63f74f4 100644
--- a/cloud/shepherd/manager/provisioner.go
+++ b/cloud/shepherd/manager/provisioner.go
@@ -225,8 +225,8 @@
 	return addr
 }
 
-func (p providedMachine) State() shepherd.State {
-	return shepherd.StateKnownUsed
+func (p providedMachine) Availability() shepherd.Availability {
+	return shepherd.AvailabilityKnownUsed
 }
 
 // listInBMDB returns all the machines that the BMDB thinks we should be managing.
@@ -258,27 +258,27 @@
 	return res, nil
 }
 
-// resolvePossiblyUsed checks if the state is set to possibly used and finds out
-// which state is the correct one.
-func (p *Provisioner) resolvePossiblyUsed(machine shepherd.Machine, providedMachines map[shepherd.ProviderID]shepherd.Machine) shepherd.State {
-	state, id := machine.State(), machine.ID()
+// resolvePossiblyUsed checks if the availability is set to possibly used and
+// resolves it to the correct one.
+func (p *Provisioner) resolvePossiblyUsed(machine shepherd.Machine, providedMachines map[shepherd.ProviderID]shepherd.Machine) shepherd.Availability {
+	state, id := machine.Availability(), machine.ID()
 
-	// Bail out if this isn't a possibly used state.
-	if state != shepherd.StatePossiblyUsed {
+	// Bail out if this isn't possibly used.
+	if state != shepherd.AvailabilityPossiblyUsed {
 		return state
 	}
 
 	// If a machine does not have a valid id, its always seen as unused.
 	if !id.IsValid() {
-		return shepherd.StateKnownUnused
+		return shepherd.AvailabilityKnownUnused
 	}
 
 	// If the machine is not inside the bmdb, it's seen as unused.
 	if _, ok := providedMachines[id]; !ok {
-		return shepherd.StateKnownUnused
+		return shepherd.AvailabilityKnownUnused
 	}
 
-	return shepherd.StateKnownUsed
+	return shepherd.AvailabilityKnownUsed
 }
 
 // reconcile takes a list of machines that the provider thinks we should be
@@ -291,7 +291,7 @@
 
 	bmdb := make(map[shepherd.ProviderID]shepherd.Machine)
 	for _, machine := range bmdbMachines {
-		// Dont check the state here as its hardcoded to be known used.
+		// Dont check the availability here as its hardcoded to be known used.
 		bmdb[machine.ID()] = machine
 	}
 
@@ -301,14 +301,14 @@
 		state := p.resolvePossiblyUsed(machine, bmdb)
 
 		switch state {
-		case shepherd.StateKnownUnused:
+		case shepherd.AvailabilityKnownUnused:
 			availableMachines = append(availableMachines, machine)
 
-		case shepherd.StateKnownUsed:
+		case shepherd.AvailabilityKnownUsed:
 			provider[machine.ID()] = machine
 
 		default:
-			return fmt.Errorf("machine has invalid state (ID: %s, Addr: %s): %s", machine.ID(), machine.Addr(), state)
+			return fmt.Errorf("machine has invalid availability (ID: %s, Addr: %s): %s", machine.ID(), machine.Addr(), state)
 		}
 	}
 
@@ -411,7 +411,7 @@
 			UnusedMachine: machine,
 		})
 		if err != nil {
-			klog.Errorf("while creating new device (ID: %s, Addr: %s, State: %s): %w", machine.ID(), machine.Addr(), machine.State(), err)
+			klog.Errorf("while creating new device (ID: %s, Addr: %s, Availability: %s): %w", machine.ID(), machine.Addr(), machine.Availability(), err)
 			continue
 		}
 		klog.Infof("Created new machine with ID: %s", nd.ID())
diff --git a/cloud/shepherd/manager/provisioner_test.go b/cloud/shepherd/manager/provisioner_test.go
index a145bdc..079bf96 100644
--- a/cloud/shepherd/manager/provisioner_test.go
+++ b/cloud/shepherd/manager/provisioner_test.go
@@ -83,7 +83,7 @@
 	}
 }
 
-// TestProvisioner_resolvePossiblyUsed makes sure the PossiblyUsed state is
+// TestProvisioner_resolvePossiblyUsed makes sure the PossiblyUsed availability is
 // resolved correctly.
 func TestProvisioner_resolvePossiblyUsed(t *testing.T) {
 	const providedMachineID = "provided-machine"
@@ -93,45 +93,45 @@
 	}
 
 	tests := []struct {
-		name         string
-		machineID    shepherd.ProviderID
-		machineState shepherd.State
-		wantedState  shepherd.State
+		name                string
+		machineID           shepherd.ProviderID
+		machineAvailability shepherd.Availability
+		wantedAvailability  shepherd.Availability
 	}{
 		{
-			name:         "skip KnownUsed",
-			machineState: shepherd.StateKnownUsed,
-			wantedState:  shepherd.StateKnownUsed,
+			name:                "skip KnownUsed",
+			machineAvailability: shepherd.AvailabilityKnownUsed,
+			wantedAvailability:  shepherd.AvailabilityKnownUsed,
 		},
 		{
-			name:         "skip KnownUnused",
-			machineState: shepherd.StateKnownUnused,
-			wantedState:  shepherd.StateKnownUnused,
+			name:                "skip KnownUnused",
+			machineAvailability: shepherd.AvailabilityKnownUnused,
+			wantedAvailability:  shepherd.AvailabilityKnownUnused,
 		},
 		{
-			name:         "invalid ID",
-			machineID:    shepherd.InvalidProviderID,
-			machineState: shepherd.StatePossiblyUsed,
-			wantedState:  shepherd.StateKnownUnused,
+			name:                "invalid ID",
+			machineID:           shepherd.InvalidProviderID,
+			machineAvailability: shepherd.AvailabilityPossiblyUsed,
+			wantedAvailability:  shepherd.AvailabilityKnownUnused,
 		},
 		{
-			name:         "valid ID, not in providedMachines",
-			machineID:    "unused-machine",
-			machineState: shepherd.StatePossiblyUsed,
-			wantedState:  shepherd.StateKnownUnused,
+			name:                "valid ID, not in providedMachines",
+			machineID:           "unused-machine",
+			machineAvailability: shepherd.AvailabilityPossiblyUsed,
+			wantedAvailability:  shepherd.AvailabilityKnownUnused,
 		},
 		{
-			name:         "valid ID, in providedMachines",
-			machineID:    providedMachineID,
-			machineState: shepherd.StatePossiblyUsed,
-			wantedState:  shepherd.StateKnownUsed,
+			name:                "valid ID, in providedMachines",
+			machineID:           providedMachineID,
+			machineAvailability: shepherd.AvailabilityPossiblyUsed,
+			wantedAvailability:  shepherd.AvailabilityKnownUsed,
 		},
 	}
 	for _, tt := range tests {
 		t.Run(tt.name, func(t *testing.T) {
 			p := &Provisioner{}
-			if got := p.resolvePossiblyUsed(&dummyMachine{id: tt.machineID, state: tt.machineState}, providedMachines); got != tt.wantedState {
-				t.Errorf("resolvePossiblyUsed() = %v, want %v", got, tt.wantedState)
+			if got := p.resolvePossiblyUsed(&dummyMachine{id: tt.machineID, availability: tt.machineAvailability}, providedMachines); got != tt.wantedAvailability {
+				t.Errorf("resolvePossiblyUsed() = %v, want %v", got, tt.wantedAvailability)
 			}
 		})
 	}