pkg/armhelpers/interfaces.go (31 lines of code) (raw):

// Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT license. package armhelpers import ( "context" "time" "github.com/Azure/aks-engine-azurestack/pkg/kubernetes" authorization "github.com/Azure/azure-sdk-for-go/profile/p20200901/resourcemanager/authorization/armauthorization" compute "github.com/Azure/azure-sdk-for-go/profile/p20200901/resourcemanager/compute/armcompute" resources "github.com/Azure/azure-sdk-for-go/profile/p20200901/resourcemanager/resources/armresources" ) // VMImageFetcher is an extension of AKSEngine client allows us to operate on the virtual machine images in the environment type VMImageFetcher interface { // ListVirtualMachineImages return a list of images ListVirtualMachineImages(ctx context.Context, location, publisherName, offer, skus string) ([]*compute.VirtualMachineImageResource, error) // GetVirtualMachineImage return a virtual machine image GetVirtualMachineImage(ctx context.Context, location, publisherName, offer, skus, version string) (compute.VirtualMachineImage, error) } // AKSEngineClient is the interface used to talk to an Azure environment. // This interface exposes just the subset of Azure APIs and clients needed for // AKS Engine. type AKSEngineClient interface { // RESOURCES // DeployTemplate can deploy a template into Azure ARM DeployTemplate(ctx context.Context, resourceGroup, name string, template, parameters map[string]interface{}) (resources.DeploymentExtended, error) // EnsureResourceGroup ensures the specified resource group exists in the specified location EnsureResourceGroup(ctx context.Context, resourceGroup, location string, managedBy *string) (resources.ResourceGroup, error) // // COMPUTE // ListVirtualMachines lists VM resources ListVirtualMachines(ctx context.Context, resourceGroup string) ([]*compute.VirtualMachine, error) // GetVirtualMachine retrieves the specified virtual machine. GetVirtualMachine(ctx context.Context, resourceGroup, name string) (compute.VirtualMachine, error) // RestartVirtualMachine restarts the specified virtual machine. RestartVirtualMachine(ctx context.Context, resourceGroup, name string) error // DeleteVirtualMachine deletes the specified virtual machine. DeleteVirtualMachine(ctx context.Context, resourceGroup, name string) error // GetVirtualMachinePowerState returns the virtual machine's PowerState status code GetVirtualMachinePowerState(ctx context.Context, resourceGroup, name string) (string, error) // // STORAGE DeleteVirtualHardDisk(ctx context.Context, resourceGroup string, vhd *compute.VirtualHardDisk) error // // NETWORK // DeleteNetworkInterface deletes the specified network interface. DeleteNetworkInterface(ctx context.Context, resourceGroup, nicName string) error // // RBAC DeleteRoleAssignmentByID(ctx context.Context, roleAssignmentNameID string) (authorization.RoleAssignment, error) ListRoleAssignmentsForPrincipal(ctx context.Context, scope string, principalID string) ([]*authorization.RoleAssignment, error) // MANAGED DISKS DeleteManagedDisk(ctx context.Context, resourceGroupName string, diskName string) error ListManagedDisksByResourceGroup(ctx context.Context, resourceGroupName string) ([]*compute.Disk, error) GetKubernetesClient(apiserverURL, kubeConfig string, interval, timeout time.Duration) (kubernetes.Client, error) ListProviders(ctx context.Context) ([]*resources.Provider, error) // DEPLOYMENTS // ListDeploymentOperations gets all deployments operations for a deployment. ListDeploymentOperations(ctx context.Context, resourceGroupName string, deploymentName string) ([]*resources.DeploymentOperation, error) }