mirror of
https://github.com/edgelesssys/constellation.git
synced 2025-06-19 19:54:22 -04:00
[node operator] Add Azure client
Signed-off-by: Malte Poll <mp@edgeless.systems>
This commit is contained in:
parent
a50cc2b64d
commit
c74360bf62
17 changed files with 1341 additions and 2 deletions
|
@ -0,0 +1,57 @@
|
|||
package client
|
||||
|
||||
import (
|
||||
armcomputev2 "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/compute/armcompute/v2"
|
||||
updatev1alpha1 "github.com/edgelesssys/constellation/operators/constellation-node-operator/api/v1alpha1"
|
||||
)
|
||||
|
||||
const (
|
||||
provisioningStateCreating = "ProvisioningState/creating"
|
||||
provisioningStateUpdating = "ProvisioningState/updating"
|
||||
provisioningStateMigrating = "ProvisioningState/migrating"
|
||||
provisioningStateFailed = "ProvisioningState/failed"
|
||||
provisioningStateDeleting = "ProvisioningState/deleting"
|
||||
powerStateStarting = "PowerState/starting"
|
||||
powerStateStopping = "PowerState/stopping"
|
||||
powerStateStopped = "PowerState/stopped"
|
||||
powerStateDeallocating = "PowerState/deallocating"
|
||||
powerStateDeallocated = "PowerState/deallocated"
|
||||
powerStateRunning = "PowerState/running"
|
||||
)
|
||||
|
||||
// nodeStateFromStatuses returns the node state from instance view statuses.
|
||||
// reference:
|
||||
// - https://docs.microsoft.com/en-us/azure/virtual-machines/states-billing#provisioning-states
|
||||
// - https://docs.microsoft.com/en-us/azure/virtual-machines/states-billing#power-states-and-billing
|
||||
func nodeStateFromStatuses(statuses []*armcomputev2.InstanceViewStatus) updatev1alpha1.CSPNodeState {
|
||||
for _, status := range statuses {
|
||||
if status == nil || status.Code == nil {
|
||||
continue
|
||||
}
|
||||
switch *status.Code {
|
||||
case provisioningStateCreating:
|
||||
return updatev1alpha1.NodeStateCreating
|
||||
case provisioningStateUpdating:
|
||||
return updatev1alpha1.NodeStateStopped
|
||||
case provisioningStateMigrating:
|
||||
return updatev1alpha1.NodeStateStopped
|
||||
case provisioningStateFailed:
|
||||
return updatev1alpha1.NodeStateFailed
|
||||
case provisioningStateDeleting:
|
||||
return updatev1alpha1.NodeStateTerminating
|
||||
case powerStateStarting:
|
||||
return updatev1alpha1.NodeStateCreating
|
||||
case powerStateStopping:
|
||||
return updatev1alpha1.NodeStateStopped
|
||||
case powerStateStopped:
|
||||
return updatev1alpha1.NodeStateStopped
|
||||
case powerStateDeallocating:
|
||||
return updatev1alpha1.NodeStateStopped
|
||||
case powerStateDeallocated:
|
||||
return updatev1alpha1.NodeStateStopped
|
||||
case powerStateRunning:
|
||||
return updatev1alpha1.NodeStateReady
|
||||
}
|
||||
}
|
||||
return updatev1alpha1.NodeStateUnknown
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue