vendor: add github.com/Azure/azure-sdk-for-go and dependencies
This commit is contained in:
+58
@@ -0,0 +1,58 @@
|
||||
package vmutils
|
||||
|
||||
import (
|
||||
"time"
|
||||
|
||||
"github.com/Azure/azure-sdk-for-go/management"
|
||||
vm "github.com/Azure/azure-sdk-for-go/management/virtualmachine"
|
||||
)
|
||||
|
||||
// WaitForDeploymentPowerState blocks until all role instances in deployment
|
||||
// reach desired power state.
|
||||
func WaitForDeploymentPowerState(client management.Client, cloudServiceName, deploymentName string, desiredPowerstate vm.PowerState) error {
|
||||
for {
|
||||
deployment, err := vm.NewClient(client).GetDeployment(cloudServiceName, deploymentName)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if allInstancesInPowerState(deployment.RoleInstanceList, desiredPowerstate) {
|
||||
return nil
|
||||
}
|
||||
time.Sleep(2 * time.Second)
|
||||
}
|
||||
}
|
||||
|
||||
func allInstancesInPowerState(instances []vm.RoleInstance, desiredPowerstate vm.PowerState) bool {
|
||||
for _, r := range instances {
|
||||
if r.PowerState != desiredPowerstate {
|
||||
return false
|
||||
}
|
||||
}
|
||||
|
||||
return true
|
||||
}
|
||||
|
||||
// WaitForDeploymentInstanceStatus blocks until all role instances in deployment
|
||||
// reach desired InstanceStatus.
|
||||
func WaitForDeploymentInstanceStatus(client management.Client, cloudServiceName, deploymentName string, desiredInstanceStatus vm.InstanceStatus) error {
|
||||
for {
|
||||
deployment, err := vm.NewClient(client).GetDeployment(cloudServiceName, deploymentName)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if allInstancesInInstanceStatus(deployment.RoleInstanceList, desiredInstanceStatus) {
|
||||
return nil
|
||||
}
|
||||
time.Sleep(2 * time.Second)
|
||||
}
|
||||
}
|
||||
|
||||
func allInstancesInInstanceStatus(instances []vm.RoleInstance, desiredInstancestatus vm.InstanceStatus) bool {
|
||||
for _, r := range instances {
|
||||
if r.InstanceStatus != desiredInstancestatus {
|
||||
return false
|
||||
}
|
||||
}
|
||||
|
||||
return true
|
||||
}
|
||||
Reference in New Issue
Block a user