mirror of
				https://github.com/edgelesssys/constellation.git
				synced 2025-10-31 11:49:02 -04:00 
			
		
		
		
	
		
			
				
	
	
		
			414 lines
		
	
	
	
		
			15 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			414 lines
		
	
	
	
		
			15 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| package client
 | |
| 
 | |
| import (
 | |
| 	"context"
 | |
| 	"time"
 | |
| 
 | |
| 	"github.com/Azure/azure-sdk-for-go/profiles/latest/authorization/mgmt/authorization"
 | |
| 	"github.com/Azure/azure-sdk-for-go/sdk/azcore/to"
 | |
| 	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/applicationinsights/armapplicationinsights"
 | |
| 	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/compute/armcompute"
 | |
| 	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork"
 | |
| 	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resources/armresources"
 | |
| 	"github.com/Azure/azure-sdk-for-go/services/graphrbac/1.6/graphrbac"
 | |
| 	"github.com/Azure/go-autorest/autorest"
 | |
| )
 | |
| 
 | |
| type stubNetworksAPI struct {
 | |
| 	createErr    error
 | |
| 	stubResponse stubVirtualNetworksCreateOrUpdatePollerResponse
 | |
| }
 | |
| 
 | |
| type stubVirtualNetworksCreateOrUpdatePollerResponse struct {
 | |
| 	armnetwork.VirtualNetworksClientCreateOrUpdatePollerResponse
 | |
| 	pollerErr error
 | |
| }
 | |
| 
 | |
| func (r stubVirtualNetworksCreateOrUpdatePollerResponse) PollUntilDone(ctx context.Context, freq time.Duration,
 | |
| ) (armnetwork.VirtualNetworksClientCreateOrUpdateResponse, error) {
 | |
| 	return armnetwork.VirtualNetworksClientCreateOrUpdateResponse{
 | |
| 		VirtualNetworksClientCreateOrUpdateResult: armnetwork.VirtualNetworksClientCreateOrUpdateResult{
 | |
| 			VirtualNetwork: armnetwork.VirtualNetwork{
 | |
| 				Properties: &armnetwork.VirtualNetworkPropertiesFormat{
 | |
| 					Subnets: []*armnetwork.Subnet{
 | |
| 						{
 | |
| 							ID: to.StringPtr("virtual-network-subnet-id"),
 | |
| 						},
 | |
| 					},
 | |
| 				},
 | |
| 			},
 | |
| 		},
 | |
| 	}, r.pollerErr
 | |
| }
 | |
| 
 | |
| func (a stubNetworksAPI) BeginCreateOrUpdate(ctx context.Context, resourceGroupName string,
 | |
| 	virtualNetworkName string, parameters armnetwork.VirtualNetwork,
 | |
| 	options *armnetwork.VirtualNetworksClientBeginCreateOrUpdateOptions) (
 | |
| 	virtualNetworksCreateOrUpdatePollerResponse, error,
 | |
| ) {
 | |
| 	return a.stubResponse, a.createErr
 | |
| }
 | |
| 
 | |
| type stubLoadBalancersAPI struct {
 | |
| 	createErr    error
 | |
| 	stubResponse stubLoadBalancersClientCreateOrUpdatePollerResponse
 | |
| }
 | |
| 
 | |
| type stubLoadBalancersClientCreateOrUpdatePollerResponse struct {
 | |
| 	pollResponse armnetwork.LoadBalancersClientCreateOrUpdateResponse
 | |
| 	pollErr      error
 | |
| }
 | |
| 
 | |
| func (r stubLoadBalancersClientCreateOrUpdatePollerResponse) PollUntilDone(ctx context.Context, freq time.Duration,
 | |
| ) (armnetwork.LoadBalancersClientCreateOrUpdateResponse, error) {
 | |
| 	return r.pollResponse, r.pollErr
 | |
| }
 | |
| 
 | |
| func (a stubLoadBalancersAPI) BeginCreateOrUpdate(ctx context.Context, resourceGroupName string,
 | |
| 	loadBalancerName string, parameters armnetwork.LoadBalancer,
 | |
| 	options *armnetwork.LoadBalancersClientBeginCreateOrUpdateOptions) (
 | |
| 	loadBalancersClientCreateOrUpdatePollerResponse, error,
 | |
| ) {
 | |
| 	return a.stubResponse, a.createErr
 | |
| }
 | |
| 
 | |
| type stubNetworkSecurityGroupsCreateOrUpdatePollerResponse struct {
 | |
| 	armnetwork.SecurityGroupsClientCreateOrUpdatePollerResponse
 | |
| 	pollerErr error
 | |
| }
 | |
| 
 | |
| func (r stubNetworkSecurityGroupsCreateOrUpdatePollerResponse) PollUntilDone(ctx context.Context, freq time.Duration,
 | |
| ) (armnetwork.SecurityGroupsClientCreateOrUpdateResponse, error) {
 | |
| 	return armnetwork.SecurityGroupsClientCreateOrUpdateResponse{
 | |
| 		SecurityGroupsClientCreateOrUpdateResult: armnetwork.SecurityGroupsClientCreateOrUpdateResult{
 | |
| 			SecurityGroup: armnetwork.SecurityGroup{
 | |
| 				ID: to.StringPtr("network-security-group-id"),
 | |
| 			},
 | |
| 		},
 | |
| 	}, r.pollerErr
 | |
| }
 | |
| 
 | |
| type stubNetworkSecurityGroupsAPI struct {
 | |
| 	createErr  error
 | |
| 	stubPoller stubNetworkSecurityGroupsCreateOrUpdatePollerResponse
 | |
| }
 | |
| 
 | |
| func (a stubNetworkSecurityGroupsAPI) BeginCreateOrUpdate(ctx context.Context, resourceGroupName string,
 | |
| 	networkSecurityGroupName string, parameters armnetwork.SecurityGroup,
 | |
| 	options *armnetwork.SecurityGroupsClientBeginCreateOrUpdateOptions) (
 | |
| 	networkSecurityGroupsCreateOrUpdatePollerResponse, error,
 | |
| ) {
 | |
| 	return a.stubPoller, a.createErr
 | |
| }
 | |
| 
 | |
| type stubResourceGroupAPI struct {
 | |
| 	terminateErr     error
 | |
| 	createErr        error
 | |
| 	getErr           error
 | |
| 	getResourceGroup armresources.ResourceGroup
 | |
| 	stubResponse     stubResourceGroupsDeletePollerResponse
 | |
| }
 | |
| 
 | |
| func (a stubResourceGroupAPI) CreateOrUpdate(ctx context.Context, resourceGroupName string,
 | |
| 	parameters armresources.ResourceGroup,
 | |
| 	options *armresources.ResourceGroupsClientCreateOrUpdateOptions) (
 | |
| 	armresources.ResourceGroupsClientCreateOrUpdateResponse, error,
 | |
| ) {
 | |
| 	return armresources.ResourceGroupsClientCreateOrUpdateResponse{}, a.createErr
 | |
| }
 | |
| 
 | |
| func (a stubResourceGroupAPI) Get(ctx context.Context, resourceGroupName string, options *armresources.ResourceGroupsClientGetOptions) (armresources.ResourceGroupsClientGetResponse, error) {
 | |
| 	return armresources.ResourceGroupsClientGetResponse{
 | |
| 		ResourceGroupsClientGetResult: armresources.ResourceGroupsClientGetResult{
 | |
| 			ResourceGroup: a.getResourceGroup,
 | |
| 		},
 | |
| 	}, a.getErr
 | |
| }
 | |
| 
 | |
| type stubResourceGroupsDeletePollerResponse struct {
 | |
| 	armresources.ResourceGroupsClientDeletePollerResponse
 | |
| 	pollerErr error
 | |
| }
 | |
| 
 | |
| func (r stubResourceGroupsDeletePollerResponse) PollUntilDone(ctx context.Context, freq time.Duration) (
 | |
| 	armresources.ResourceGroupsClientDeleteResponse, error,
 | |
| ) {
 | |
| 	return armresources.ResourceGroupsClientDeleteResponse{}, r.pollerErr
 | |
| }
 | |
| 
 | |
| func (a stubResourceGroupAPI) BeginDelete(ctx context.Context, resourceGroupName string,
 | |
| 	options *armresources.ResourceGroupsClientBeginDeleteOptions) (
 | |
| 	resourceGroupsDeletePollerResponse, error,
 | |
| ) {
 | |
| 	return a.stubResponse, a.terminateErr
 | |
| }
 | |
| 
 | |
| type stubScaleSetsAPI struct {
 | |
| 	createErr    error
 | |
| 	stubResponse stubVirtualMachineScaleSetsCreateOrUpdatePollerResponse
 | |
| }
 | |
| 
 | |
| type stubVirtualMachineScaleSetsCreateOrUpdatePollerResponse struct {
 | |
| 	pollResponse armcompute.VirtualMachineScaleSetsClientCreateOrUpdateResponse
 | |
| 	pollErr      error
 | |
| }
 | |
| 
 | |
| func (r stubVirtualMachineScaleSetsCreateOrUpdatePollerResponse) PollUntilDone(ctx context.Context, freq time.Duration) (
 | |
| 	armcompute.VirtualMachineScaleSetsClientCreateOrUpdateResponse, error,
 | |
| ) {
 | |
| 	return r.pollResponse, r.pollErr
 | |
| }
 | |
| 
 | |
| func (a stubScaleSetsAPI) BeginCreateOrUpdate(ctx context.Context, resourceGroupName string,
 | |
| 	vmScaleSetName string, parameters armcompute.VirtualMachineScaleSet,
 | |
| 	options *armcompute.VirtualMachineScaleSetsClientBeginCreateOrUpdateOptions) (
 | |
| 	virtualMachineScaleSetsCreateOrUpdatePollerResponse, error,
 | |
| ) {
 | |
| 	return a.stubResponse, a.createErr
 | |
| }
 | |
| 
 | |
| type stubPublicIPAddressesAPI struct {
 | |
| 	createErr          error
 | |
| 	getErr             error
 | |
| 	stubCreateResponse stubPublicIPAddressesClientCreateOrUpdatePollerResponse
 | |
| }
 | |
| 
 | |
| type stubPublicIPAddressesClientCreateOrUpdatePollerResponse struct {
 | |
| 	armnetwork.PublicIPAddressesClientCreateOrUpdatePollerResponse
 | |
| 	pollErr error
 | |
| }
 | |
| 
 | |
| func (r stubPublicIPAddressesClientCreateOrUpdatePollerResponse) PollUntilDone(ctx context.Context, freq time.Duration) (
 | |
| 	armnetwork.PublicIPAddressesClientCreateOrUpdateResponse, error,
 | |
| ) {
 | |
| 	return armnetwork.PublicIPAddressesClientCreateOrUpdateResponse{
 | |
| 		PublicIPAddressesClientCreateOrUpdateResult: armnetwork.PublicIPAddressesClientCreateOrUpdateResult{
 | |
| 			PublicIPAddress: armnetwork.PublicIPAddress{
 | |
| 				ID: to.StringPtr("pubIP-id"),
 | |
| 				Properties: &armnetwork.PublicIPAddressPropertiesFormat{
 | |
| 					IPAddress: to.StringPtr("192.0.2.1"),
 | |
| 				},
 | |
| 			},
 | |
| 		},
 | |
| 	}, r.pollErr
 | |
| }
 | |
| 
 | |
| type stubPublicIPAddressesListVirtualMachineScaleSetVMPublicIPAddressesPager struct {
 | |
| 	pagesCounter int
 | |
| 	PagesMax     int
 | |
| }
 | |
| 
 | |
| func (p *stubPublicIPAddressesListVirtualMachineScaleSetVMPublicIPAddressesPager) NextPage(ctx context.Context) bool {
 | |
| 	p.pagesCounter++
 | |
| 	return p.pagesCounter <= p.PagesMax
 | |
| }
 | |
| 
 | |
| func (p *stubPublicIPAddressesListVirtualMachineScaleSetVMPublicIPAddressesPager) PageResponse() armnetwork.PublicIPAddressesClientListVirtualMachineScaleSetVMPublicIPAddressesResponse {
 | |
| 	return armnetwork.PublicIPAddressesClientListVirtualMachineScaleSetVMPublicIPAddressesResponse{
 | |
| 		PublicIPAddressesClientListVirtualMachineScaleSetVMPublicIPAddressesResult: armnetwork.PublicIPAddressesClientListVirtualMachineScaleSetVMPublicIPAddressesResult{
 | |
| 			PublicIPAddressListResult: armnetwork.PublicIPAddressListResult{
 | |
| 				Value: []*armnetwork.PublicIPAddress{
 | |
| 					{
 | |
| 						Properties: &armnetwork.PublicIPAddressPropertiesFormat{
 | |
| 							IPAddress: to.StringPtr("192.0.2.1"),
 | |
| 						},
 | |
| 					},
 | |
| 				},
 | |
| 			},
 | |
| 		},
 | |
| 	}
 | |
| }
 | |
| 
 | |
| func (a stubPublicIPAddressesAPI) ListVirtualMachineScaleSetVMPublicIPAddresses(resourceGroupName string,
 | |
| 	virtualMachineScaleSetName string, virtualmachineIndex string,
 | |
| 	networkInterfaceName string, ipConfigurationName string,
 | |
| 	options *armnetwork.PublicIPAddressesClientListVirtualMachineScaleSetVMPublicIPAddressesOptions,
 | |
| ) publicIPAddressesListVirtualMachineScaleSetVMPublicIPAddressesPager {
 | |
| 	return &stubPublicIPAddressesListVirtualMachineScaleSetVMPublicIPAddressesPager{pagesCounter: 0, PagesMax: 1}
 | |
| }
 | |
| 
 | |
| func (a stubPublicIPAddressesAPI) BeginCreateOrUpdate(ctx context.Context, resourceGroupName string, publicIPAddressName string,
 | |
| 	parameters armnetwork.PublicIPAddress, options *armnetwork.PublicIPAddressesClientBeginCreateOrUpdateOptions) (
 | |
| 	publicIPAddressesClientCreateOrUpdatePollerResponse, error,
 | |
| ) {
 | |
| 	return a.stubCreateResponse, a.createErr
 | |
| }
 | |
| 
 | |
| func (a stubPublicIPAddressesAPI) Get(ctx context.Context, resourceGroupName string, publicIPAddressName string, options *armnetwork.PublicIPAddressesClientGetOptions) (
 | |
| 	armnetwork.PublicIPAddressesClientGetResponse, error,
 | |
| ) {
 | |
| 	return armnetwork.PublicIPAddressesClientGetResponse{
 | |
| 		PublicIPAddressesClientGetResult: armnetwork.PublicIPAddressesClientGetResult{
 | |
| 			PublicIPAddress: armnetwork.PublicIPAddress{
 | |
| 				Properties: &armnetwork.PublicIPAddressPropertiesFormat{
 | |
| 					IPAddress: to.StringPtr("192.0.2.1"),
 | |
| 				},
 | |
| 			},
 | |
| 		},
 | |
| 	}, a.getErr
 | |
| }
 | |
| 
 | |
| type stubNetworkInterfacesAPI struct {
 | |
| 	getErr    error
 | |
| 	createErr error
 | |
| 	stubResp  stubInterfacesClientCreateOrUpdatePollerResponse
 | |
| }
 | |
| 
 | |
| func (a stubNetworkInterfacesAPI) GetVirtualMachineScaleSetNetworkInterface(ctx context.Context, resourceGroupName string,
 | |
| 	virtualMachineScaleSetName string, virtualmachineIndex string, networkInterfaceName string,
 | |
| 	options *armnetwork.InterfacesClientGetVirtualMachineScaleSetNetworkInterfaceOptions,
 | |
| ) (armnetwork.InterfacesClientGetVirtualMachineScaleSetNetworkInterfaceResponse, error) {
 | |
| 	if a.getErr != nil {
 | |
| 		return armnetwork.InterfacesClientGetVirtualMachineScaleSetNetworkInterfaceResponse{}, a.getErr
 | |
| 	}
 | |
| 	return armnetwork.InterfacesClientGetVirtualMachineScaleSetNetworkInterfaceResponse{
 | |
| 		InterfacesClientGetVirtualMachineScaleSetNetworkInterfaceResult: armnetwork.InterfacesClientGetVirtualMachineScaleSetNetworkInterfaceResult{
 | |
| 			Interface: armnetwork.Interface{
 | |
| 				Properties: &armnetwork.InterfacePropertiesFormat{
 | |
| 					IPConfigurations: []*armnetwork.InterfaceIPConfiguration{
 | |
| 						{
 | |
| 							Properties: &armnetwork.InterfaceIPConfigurationPropertiesFormat{
 | |
| 								PrivateIPAddress: to.StringPtr("192.0.2.1"),
 | |
| 							},
 | |
| 						},
 | |
| 					},
 | |
| 				},
 | |
| 			},
 | |
| 		},
 | |
| 	}, nil
 | |
| }
 | |
| 
 | |
| // TODO: deprecate as soon as scale sets are available.
 | |
| type stubInterfacesClientCreateOrUpdatePollerResponse struct {
 | |
| 	pollErr error
 | |
| }
 | |
| 
 | |
| // TODO: deprecate as soon as scale sets are available.
 | |
| func (r stubInterfacesClientCreateOrUpdatePollerResponse) PollUntilDone(ctx context.Context, freq time.Duration) (
 | |
| 	armnetwork.InterfacesClientCreateOrUpdateResponse, error,
 | |
| ) {
 | |
| 	return armnetwork.InterfacesClientCreateOrUpdateResponse{
 | |
| 		InterfacesClientCreateOrUpdateResult: armnetwork.InterfacesClientCreateOrUpdateResult{
 | |
| 			Interface: armnetwork.Interface{
 | |
| 				ID: to.StringPtr("interface-id"),
 | |
| 				Properties: &armnetwork.InterfacePropertiesFormat{
 | |
| 					IPConfigurations: []*armnetwork.InterfaceIPConfiguration{
 | |
| 						{
 | |
| 							Properties: &armnetwork.InterfaceIPConfigurationPropertiesFormat{
 | |
| 								PrivateIPAddress: to.StringPtr("192.0.2.1"),
 | |
| 							},
 | |
| 						},
 | |
| 					},
 | |
| 				},
 | |
| 			},
 | |
| 		},
 | |
| 	}, r.pollErr
 | |
| }
 | |
| 
 | |
| // TODO: deprecate as soon as scale sets are available.
 | |
| func (a stubNetworkInterfacesAPI) BeginCreateOrUpdate(ctx context.Context, resourceGroupName string, networkInterfaceName string,
 | |
| 	parameters armnetwork.Interface, options *armnetwork.InterfacesClientBeginCreateOrUpdateOptions) (
 | |
| 	interfacesClientCreateOrUpdatePollerResponse, error,
 | |
| ) {
 | |
| 	return a.stubResp, a.createErr
 | |
| }
 | |
| 
 | |
| // TODO: deprecate as soon as scale sets are available.
 | |
| type stubVirtualMachinesAPI struct {
 | |
| 	stubResponse stubVirtualMachinesClientCreateOrUpdatePollerResponse
 | |
| 	createErr    error
 | |
| }
 | |
| 
 | |
| // TODO: deprecate as soon as scale sets are available.
 | |
| type stubVirtualMachinesClientCreateOrUpdatePollerResponse struct {
 | |
| 	pollResponse armcompute.VirtualMachinesClientCreateOrUpdateResponse
 | |
| 	pollErr      error
 | |
| }
 | |
| 
 | |
| // TODO: deprecate as soon as scale sets are available.
 | |
| func (r stubVirtualMachinesClientCreateOrUpdatePollerResponse) PollUntilDone(ctx context.Context, freq time.Duration) (
 | |
| 	armcompute.VirtualMachinesClientCreateOrUpdateResponse, error,
 | |
| ) {
 | |
| 	return r.pollResponse, r.pollErr
 | |
| }
 | |
| 
 | |
| // TODO: deprecate as soon as scale sets are available.
 | |
| func (a stubVirtualMachinesAPI) BeginCreateOrUpdate(ctx context.Context, resourceGroupName string, vmName string, parameters armcompute.VirtualMachine,
 | |
| 	options *armcompute.VirtualMachinesClientBeginCreateOrUpdateOptions,
 | |
| ) (virtualMachinesClientCreateOrUpdatePollerResponse, error) {
 | |
| 	return a.stubResponse, a.createErr
 | |
| }
 | |
| 
 | |
| type stubApplicationsAPI struct {
 | |
| 	createErr            error
 | |
| 	deleteErr            error
 | |
| 	updateCredentialsErr error
 | |
| 	createApplication    *graphrbac.Application
 | |
| }
 | |
| 
 | |
| func (a stubApplicationsAPI) Create(ctx context.Context, parameters graphrbac.ApplicationCreateParameters) (graphrbac.Application, error) {
 | |
| 	if a.createErr != nil {
 | |
| 		return graphrbac.Application{}, a.createErr
 | |
| 	}
 | |
| 	if a.createApplication != nil {
 | |
| 		return *a.createApplication, nil
 | |
| 	}
 | |
| 	return graphrbac.Application{
 | |
| 		AppID:    to.StringPtr("00000000-0000-0000-0000-000000000000"),
 | |
| 		ObjectID: to.StringPtr("00000000-0000-0000-0000-000000000001"),
 | |
| 	}, nil
 | |
| }
 | |
| 
 | |
| func (a stubApplicationsAPI) Delete(ctx context.Context, applicationObjectID string) (autorest.Response, error) {
 | |
| 	if a.deleteErr != nil {
 | |
| 		return autorest.Response{}, a.deleteErr
 | |
| 	}
 | |
| 	return autorest.Response{}, nil
 | |
| }
 | |
| 
 | |
| func (a stubApplicationsAPI) UpdatePasswordCredentials(ctx context.Context, objectID string, parameters graphrbac.PasswordCredentialsUpdateParameters) (autorest.Response, error) {
 | |
| 	if a.updateCredentialsErr != nil {
 | |
| 		return autorest.Response{}, a.updateCredentialsErr
 | |
| 	}
 | |
| 	return autorest.Response{}, nil
 | |
| }
 | |
| 
 | |
| type stubServicePrincipalsAPI struct {
 | |
| 	createErr              error
 | |
| 	createServicePrincipal *graphrbac.ServicePrincipal
 | |
| }
 | |
| 
 | |
| func (a stubServicePrincipalsAPI) Create(ctx context.Context, parameters graphrbac.ServicePrincipalCreateParameters) (graphrbac.ServicePrincipal, error) {
 | |
| 	if a.createErr != nil {
 | |
| 		return graphrbac.ServicePrincipal{}, a.createErr
 | |
| 	}
 | |
| 	if a.createServicePrincipal != nil {
 | |
| 		return *a.createServicePrincipal, nil
 | |
| 	}
 | |
| 	return graphrbac.ServicePrincipal{
 | |
| 		AppID:    to.StringPtr("00000000-0000-0000-0000-000000000000"),
 | |
| 		ObjectID: to.StringPtr("00000000-0000-0000-0000-000000000002"),
 | |
| 	}, nil
 | |
| }
 | |
| 
 | |
| type stubRoleAssignmentsAPI struct {
 | |
| 	createCounter int
 | |
| 	createErrors  []error
 | |
| }
 | |
| 
 | |
| func (a *stubRoleAssignmentsAPI) Create(ctx context.Context, scope string, roleAssignmentName string, parameters authorization.RoleAssignmentCreateParameters) (authorization.RoleAssignment, error) {
 | |
| 	a.createCounter++
 | |
| 	if len(a.createErrors) == 0 {
 | |
| 		return authorization.RoleAssignment{}, nil
 | |
| 	}
 | |
| 	return authorization.RoleAssignment{}, a.createErrors[(a.createCounter-1)%len(a.createErrors)]
 | |
| }
 | |
| 
 | |
| type stubApplicationInsightsAPI struct {
 | |
| 	err error
 | |
| }
 | |
| 
 | |
| func (a *stubApplicationInsightsAPI) CreateOrUpdate(ctx context.Context, resourceGroupName string, resourceName string, insightProperties armapplicationinsights.Component, options *armapplicationinsights.ComponentsClientCreateOrUpdateOptions) (armapplicationinsights.ComponentsClientCreateOrUpdateResponse, error) {
 | |
| 	resp := armapplicationinsights.ComponentsClientCreateOrUpdateResponse{}
 | |
| 	return resp, a.err
 | |
| }
 | 
