Documentation
¶
Index ¶
- func GenerateNextName(highestSuffix string, maxSequences int) (string, error)
- type AzureVirtualDesktopManager
- func (avd *AzureVirtualDesktopManager) AddApplicationGroupToWorkspace(ctx context.Context, workspaceName, appGroupName string) error
- func (avd *AzureVirtualDesktopManager) AssignAVDUserGroupToAppGroup(ctx context.Context, appGroupName string) error
- func (avd *AzureVirtualDesktopManager) AssignPrincipalToAppGroup(ctx context.Context, appGroupName string, principalID string) error
- func (avd *AzureVirtualDesktopManager) AssignRoleToUser(ctx context.Context, roleID string, upn string) error
- func (avd *AzureVirtualDesktopManager) AssignSessionHost(ctx context.Context, hpName string, shName string, userobjectid string) error
- func (avd *AzureVirtualDesktopManager) AssignUserToAppGroup(ctx context.Context, upn, appGroupName string) error
- func (avd *AzureVirtualDesktopManager) CanAssignUserToHostPool(ctx context.Context, hostPoolName, userName string) (bool, error)
- func (avd *AzureVirtualDesktopManager) Cleanup(ctx context.Context, vmID string) error
- func (avd *AzureVirtualDesktopManager) Configure(ctx context.Context) error
- func (avd *AzureVirtualDesktopManager) CreateApplicationGroup(ctx context.Context, appGroupName, hostPoolName string, ...) (*armdesktopvirtualization.ApplicationGroup, error)
- func (avd *AzureVirtualDesktopManager) CreateHostPool(ctx context.Context, suffix string, tags map[string]*string) (*armdesktopvirtualization.HostPool, error)
- func (avd *AzureVirtualDesktopManager) CreatePersonalDesktopApplicationGroup(ctx context.Context, suffix string, tags map[string]*string) (*armdesktopvirtualization.ApplicationGroup, error)
- func (avd *AzureVirtualDesktopManager) CreatePersonalWorkspaceForAppGroup(ctx context.Context, suffix, appGroupName string, tags map[string]*string) (*armdesktopvirtualization.Workspace, error)
- func (avd *AzureVirtualDesktopManager) CreatePooledRemoteAppApplicationGroup(ctx context.Context, vmID string, tags map[string]*string) (*armdesktopvirtualization.ApplicationGroup, error)
- func (avd *AzureVirtualDesktopManager) CreatePooledWorkspace(ctx context.Context, teamName string, tags map[string]*string) (*armdesktopvirtualization.Workspace, error)
- func (avd *AzureVirtualDesktopManager) CreateRDPApplication(ctx context.Context, applicationGroupName, appName, targetIP string) (*armdesktopvirtualization.Application, error)
- func (avd *AzureVirtualDesktopManager) DeleteApplicationGroup(ctx context.Context, appGroupName string) error
- func (avd *AzureVirtualDesktopManager) DeleteHostPool(ctx context.Context, hpName string) error
- func (avd *AzureVirtualDesktopManager) DeleteSessionHost(ctx context.Context, host *armdesktopvirtualization.SessionHost) error
- func (avd *AzureVirtualDesktopManager) DeleteUserSession(ctx context.Context, hostPoolName string, sessionHost string, upn string) error
- func (avd *AzureVirtualDesktopManager) DisconnectUserSession(ctx context.Context, hostPoolName string, sessionHost string, upn string) error
- func (avd *AzureVirtualDesktopManager) EnsurePooledHostPoolForRemoteApps(ctx context.Context, suffix string, ...) (*armdesktopvirtualization.HostPool, error)
- func (avd *AzureVirtualDesktopManager) EnsurePooledStack(ctx context.Context, ...) (*armdesktopvirtualization.HostPool, *armdesktopvirtualization.Workspace, error)
- func (avd *AzureVirtualDesktopManager) EnsureWorkspace(ctx context.Context, suffix string, tags map[string]*string) (*armdesktopvirtualization.Workspace, error)
- func (avd *AzureVirtualDesktopManager) FindFirstAvailableHostPool(ctx context.Context, upn string) (*armdesktopvirtualization.HostPool, error)
- func (avd *AzureVirtualDesktopManager) FindSessionHostByVMNameInHostPool(ctx context.Context, hostPoolName, vmID string) (*armdesktopvirtualization.SessionHost, error)
- func (avd *AzureVirtualDesktopManager) GenerateLinuxAVDAppGroupNameFromVMID(vmID string) (string, error)
- func (avd *AzureVirtualDesktopManager) GenerateWindowsClientURI(workspaceID, resourceID, upn, env, version string, useMultiMon bool) string
- func (avd *AzureVirtualDesktopManager) GetAllDesktopApplications(ctx context.Context, resourceGroupName string) ([]string, error)
- func (avd *AzureVirtualDesktopManager) GetAppGroupByName(ctx context.Context, appGroupName string) (*armdesktopvirtualization.ApplicationGroup, error)
- func (avd *AzureVirtualDesktopManager) GetDesktopAppGroupByName(ctx context.Context, desktopAppGroup string) (*armdesktopvirtualization.ApplicationGroup, error)
- func (avd *AzureVirtualDesktopManager) GetDesktopApplicationGroupFromHostpool(ctx context.Context, hpName string) (*armdesktopvirtualization.ApplicationGroup, error)
- func (avd *AzureVirtualDesktopManager) GetDesktopApplicationObjectIDFromAppGroup(ctx context.Context, appGroup *armdesktopvirtualization.ApplicationGroup) (string, error)
- func (avd *AzureVirtualDesktopManager) GetWorkspaceByName(ctx context.Context, workspaceName string) (*armdesktopvirtualization.Workspace, error)
- func (avd *AzureVirtualDesktopManager) Initialize(ctx context.Context) error
- func (avd *AzureVirtualDesktopManager) ListAppGroupAssignments(ctx context.Context, appGroupName string) ([]*armauthorization.RoleAssignment, error)
- func (avd *AzureVirtualDesktopManager) ListApplicationGroupsForHostPool(ctx context.Context, hostPoolName string) ([]*armdesktopvirtualization.ApplicationGroup, error)
- func (avd *AzureVirtualDesktopManager) ListSessionHosts(ctx context.Context, hostPoolName string) ([]*armdesktopvirtualization.SessionHost, error)
- func (avd *AzureVirtualDesktopManager) ParseSessionHostName(ctx context.Context, sessionHost *armdesktopvirtualization.SessionHost) (hostPoolName, sessionHostName, VMID string, err error)
- func (avd *AzureVirtualDesktopManager) ParseVMIDFromLinuxAVDAppGroupName(appGroupName string) (string, error)
- func (avd *AzureVirtualDesktopManager) PostRegister(ctx context.Context, vm *models.VirtualMachine, hpName string) (*models.VirtualMachine, error)
- func (avd *AzureVirtualDesktopManager) PreRegister(ctx context.Context, vm *models.VirtualMachine) (hostPoolName, token *string, err error)
- func (avd *AzureVirtualDesktopManager) RemoveApplicationGroupFromWorkspace(ctx context.Context, workspaceName, appGroupName string) error
- func (avd *AzureVirtualDesktopManager) RemovePrincipalFromAppGroup(ctx context.Context, appGroupName string, roleAssignmentName string) error
- func (avd *AzureVirtualDesktopManager) RetrieveRegistrationToken(ctx context.Context, hpName string) (*string, error)
- func (avd *AzureVirtualDesktopManager) UpdateHostPoolRegToken(ctx context.Context, hpName string) (*armdesktopvirtualization.HostPool, error)
- func (avd *AzureVirtualDesktopManager) WaitForSessionHost(ctx context.Context, hpName, vmID string, timeout time.Duration) (*armdesktopvirtualization.SessionHost, error)
- type AzureVirtualDesktopManagerConfig
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type AzureVirtualDesktopManager ¶
type AzureVirtualDesktopManager struct {
Name string
Credentials *cloudyazure.AzureCredentials
Config *AzureVirtualDesktopManagerConfig
// contains filtered or unexported fields
}
func NewAzureVirtualDesktopManager ¶
func NewAzureVirtualDesktopManager(ctx context.Context, name string, credentials *cloudyazure.AzureCredentials, config *AzureVirtualDesktopManagerConfig) (*AzureVirtualDesktopManager, error)
func (*AzureVirtualDesktopManager) AddApplicationGroupToWorkspace ¶ added in v0.0.61
func (avd *AzureVirtualDesktopManager) AddApplicationGroupToWorkspace(ctx context.Context, workspaceName, appGroupName string) error
func (*AzureVirtualDesktopManager) AssignAVDUserGroupToAppGroup ¶ added in v0.0.61
func (avd *AzureVirtualDesktopManager) AssignAVDUserGroupToAppGroup(ctx context.Context, appGroupName string) error
func (*AzureVirtualDesktopManager) AssignPrincipalToAppGroup ¶ added in v0.0.61
func (avd *AzureVirtualDesktopManager) AssignPrincipalToAppGroup(ctx context.Context, appGroupName string, principalID string) error
Used for assigning a role to a user or group in an application group
func (*AzureVirtualDesktopManager) AssignRoleToUser ¶
func (*AzureVirtualDesktopManager) AssignSessionHost ¶
func (avd *AzureVirtualDesktopManager) AssignSessionHost(ctx context.Context, hpName string, shName string, userobjectid string) error
Assigns a User to a session host
func (*AzureVirtualDesktopManager) AssignUserToAppGroup ¶ added in v0.0.62
func (avd *AzureVirtualDesktopManager) AssignUserToAppGroup(ctx context.Context, upn, appGroupName string) error
func (*AzureVirtualDesktopManager) CanAssignUserToHostPool ¶
func (avd *AzureVirtualDesktopManager) CanAssignUserToHostPool(ctx context.Context, hostPoolName, userName string) (bool, error)
CanAssignUserToHostPool checks if the specified user is already assigned to a session host in the given host pool.
func (*AzureVirtualDesktopManager) Cleanup ¶
func (avd *AzureVirtualDesktopManager) Cleanup(ctx context.Context, vmID string) error
To be completed when a VM is deleted. Removes the session host and cleans up empty host pools / app groups / workspaces
func (*AzureVirtualDesktopManager) Configure ¶
func (avd *AzureVirtualDesktopManager) Configure(ctx context.Context) error
Handles the configuration of the Azure Virtual Desktop Manager
func (*AzureVirtualDesktopManager) CreateApplicationGroup ¶
func (avd *AzureVirtualDesktopManager) CreateApplicationGroup(ctx context.Context, appGroupName, hostPoolName string, tags map[string]*string, appGroupType armdesktopvirtualization.ApplicationGroupType) (*armdesktopvirtualization.ApplicationGroup, error)
CreateApplicationGroupBase creates an application group for the given host pool and app group names.
func (*AzureVirtualDesktopManager) CreateHostPool ¶
func (avd *AzureVirtualDesktopManager) CreateHostPool(ctx context.Context, suffix string, tags map[string]*string) (*armdesktopvirtualization.HostPool, error)
CreateHostPool creates a new host pool.
func (*AzureVirtualDesktopManager) CreatePersonalDesktopApplicationGroup ¶ added in v0.0.61
func (avd *AzureVirtualDesktopManager) CreatePersonalDesktopApplicationGroup(ctx context.Context, suffix string, tags map[string]*string) (*armdesktopvirtualization.ApplicationGroup, error)
creates a personal application group for the given suffix.
func (*AzureVirtualDesktopManager) CreatePersonalWorkspaceForAppGroup ¶ added in v0.0.61
func (avd *AzureVirtualDesktopManager) CreatePersonalWorkspaceForAppGroup(ctx context.Context, suffix, appGroupName string, tags map[string]*string) (*armdesktopvirtualization.Workspace, error)
CreateWorkspace creates a new workspace for the given host pool.
func (*AzureVirtualDesktopManager) CreatePooledRemoteAppApplicationGroup ¶ added in v0.0.61
func (avd *AzureVirtualDesktopManager) CreatePooledRemoteAppApplicationGroup(ctx context.Context, vmID string, tags map[string]*string) (*armdesktopvirtualization.ApplicationGroup, error)
creates a pooled application group for the given suffix.
func (*AzureVirtualDesktopManager) CreatePooledWorkspace ¶ added in v0.0.61
func (*AzureVirtualDesktopManager) CreateRDPApplication ¶ added in v0.0.61
func (avd *AzureVirtualDesktopManager) CreateRDPApplication(ctx context.Context, applicationGroupName, appName, targetIP string) (*armdesktopvirtualization.Application, error)
func (*AzureVirtualDesktopManager) DeleteApplicationGroup ¶ added in v0.0.61
func (avd *AzureVirtualDesktopManager) DeleteApplicationGroup(ctx context.Context, appGroupName string) error
func (*AzureVirtualDesktopManager) DeleteHostPool ¶ added in v0.0.34
func (avd *AzureVirtualDesktopManager) DeleteHostPool(ctx context.Context, hpName string) error
func (*AzureVirtualDesktopManager) DeleteSessionHost ¶
func (avd *AzureVirtualDesktopManager) DeleteSessionHost(ctx context.Context, host *armdesktopvirtualization.SessionHost) error
removes session host from host pool, does not delete VM
func (*AzureVirtualDesktopManager) DeleteUserSession ¶
func (*AzureVirtualDesktopManager) DisconnectUserSession ¶ added in v0.0.61
func (*AzureVirtualDesktopManager) EnsurePooledHostPoolForRemoteApps ¶ added in v0.0.61
func (avd *AzureVirtualDesktopManager) EnsurePooledHostPoolForRemoteApps( ctx context.Context, suffix string, loadBalancerType armdesktopvirtualization.LoadBalancerType, maxSessionLimit int32, tags map[string]*string, ) (*armdesktopvirtualization.HostPool, error)
EnsurePooledHostPoolForRemoteApps makes sure one host pool of type "Pooled" (RailApplications) exists. If an existing host pool is found but doesn't match the expected configuration, we return an error (instead of updating it).
func (*AzureVirtualDesktopManager) EnsurePooledStack ¶ added in v0.0.61
func (avd *AzureVirtualDesktopManager) EnsurePooledStack( ctx context.Context, loadBalancerType armdesktopvirtualization.LoadBalancerType, maxSessionLimit int32, ) (*armdesktopvirtualization.HostPool, *armdesktopvirtualization.Workspace, error)
Validates that we have a valid AVD stack for RemoteApps.
func (*AzureVirtualDesktopManager) EnsureWorkspace ¶ added in v0.0.61
func (*AzureVirtualDesktopManager) FindFirstAvailableHostPool ¶
func (avd *AzureVirtualDesktopManager) FindFirstAvailableHostPool(ctx context.Context, upn string) (*armdesktopvirtualization.HostPool, error)
func (*AzureVirtualDesktopManager) FindSessionHostByVMNameInHostPool ¶
func (avd *AzureVirtualDesktopManager) FindSessionHostByVMNameInHostPool( ctx context.Context, hostPoolName, vmID string, ) (*armdesktopvirtualization.SessionHost, error)
FindSessionHostByVMNameInHostPool searches for a session host whose ResourceID contains the VM's ID.
func (*AzureVirtualDesktopManager) GenerateLinuxAVDAppGroupNameFromVMID ¶ added in v0.0.61
func (avd *AzureVirtualDesktopManager) GenerateLinuxAVDAppGroupNameFromVMID(vmID string) (string, error)
func (*AzureVirtualDesktopManager) GenerateWindowsClientURI ¶ added in v0.0.61
func (avd *AzureVirtualDesktopManager) GenerateWindowsClientURI(workspaceID, resourceID, upn, env, version string, useMultiMon bool) string
GenerateWindowsClientURI generates a URI for connecting to an AVD session with the Windows client. TODO: pass in workspace obj and app / desktop obj (need two different methods)
func (*AzureVirtualDesktopManager) GetAllDesktopApplications ¶
func (*AzureVirtualDesktopManager) GetAppGroupByName ¶ added in v0.0.61
func (avd *AzureVirtualDesktopManager) GetAppGroupByName(ctx context.Context, appGroupName string) (*armdesktopvirtualization.ApplicationGroup, error)
Retrieves an application group by its name. If the application group is not found, it returns nil.
func (*AzureVirtualDesktopManager) GetDesktopAppGroupByName ¶ added in v0.0.61
func (avd *AzureVirtualDesktopManager) GetDesktopAppGroupByName(ctx context.Context, desktopAppGroup string) (*armdesktopvirtualization.ApplicationGroup, error)
func (*AzureVirtualDesktopManager) GetDesktopApplicationGroupFromHostpool ¶
func (avd *AzureVirtualDesktopManager) GetDesktopApplicationGroupFromHostpool(ctx context.Context, hpName string) (*armdesktopvirtualization.ApplicationGroup, error)
Given a Host Pool, finds the Desktop Application Group linked to it
func (*AzureVirtualDesktopManager) GetDesktopApplicationObjectIDFromAppGroup ¶
func (avd *AzureVirtualDesktopManager) GetDesktopApplicationObjectIDFromAppGroup(ctx context.Context, appGroup *armdesktopvirtualization.ApplicationGroup) (string, error)
func (*AzureVirtualDesktopManager) GetWorkspaceByName ¶
func (avd *AzureVirtualDesktopManager) GetWorkspaceByName(ctx context.Context, workspaceName string) (*armdesktopvirtualization.Workspace, error)
func (*AzureVirtualDesktopManager) Initialize ¶ added in v0.0.61
func (avd *AzureVirtualDesktopManager) Initialize(ctx context.Context) error
func (*AzureVirtualDesktopManager) ListAppGroupAssignments ¶ added in v0.0.61
func (avd *AzureVirtualDesktopManager) ListAppGroupAssignments(ctx context.Context, appGroupName string) ([]*armauthorization.RoleAssignment, error)
func (*AzureVirtualDesktopManager) ListApplicationGroupsForHostPool ¶ added in v0.0.61
func (avd *AzureVirtualDesktopManager) ListApplicationGroupsForHostPool(ctx context.Context, hostPoolName string) ([]*armdesktopvirtualization.ApplicationGroup, error)
lists all application groups associated with the specified host pool.
func (*AzureVirtualDesktopManager) ListSessionHosts ¶ added in v0.0.61
func (avd *AzureVirtualDesktopManager) ListSessionHosts(ctx context.Context, hostPoolName string) ([]*armdesktopvirtualization.SessionHost, error)
func (*AzureVirtualDesktopManager) ParseSessionHostName ¶ added in v0.0.61
func (avd *AzureVirtualDesktopManager) ParseSessionHostName( ctx context.Context, sessionHost *armdesktopvirtualization.SessionHost, ) (hostPoolName, sessionHostName, VMID string, err error)
Parses session host name, VM name, and host pool name from a session host object. example:
sessionHost.Name = "E2E-TEST-JDUPRAS-HP-Pooled-_root/shvm-0m9rf333q1.dev.arkloud-pvf.local"
returns:
hostPoolName = "E2E-TEST-JDUPRAS-HP-Pooled-_root" sessionHostName = "shvm-0m9rf333q1.dev.arkloud-pvf.local" vmName = "shvm-0m9rf333q1"
func (*AzureVirtualDesktopManager) ParseVMIDFromLinuxAVDAppGroupName ¶ added in v0.0.61
func (avd *AzureVirtualDesktopManager) ParseVMIDFromLinuxAVDAppGroupName(appGroupName string) (string, error)
returns the vmID embedded in the app‑group name, or an error if the name doesn’t match the expected prefix.
func (*AzureVirtualDesktopManager) PostRegister ¶
func (avd *AzureVirtualDesktopManager) PostRegister(ctx context.Context, vm *models.VirtualMachine, hpName string) (*models.VirtualMachine, error)
After registering, the user must then be assigned to the new session host
func (*AzureVirtualDesktopManager) PreRegister ¶
func (avd *AzureVirtualDesktopManager) PreRegister(ctx context.Context, vm *models.VirtualMachine) (hostPoolName, token *string, err error)
Prior to VM registration, this process generates a token for a given host pool. This token will later be used in the registration process to join the VM to the host pool. The user is also assigned to the related desktop application group.
func (*AzureVirtualDesktopManager) RemoveApplicationGroupFromWorkspace ¶ added in v0.0.61
func (avd *AzureVirtualDesktopManager) RemoveApplicationGroupFromWorkspace(ctx context.Context, workspaceName, appGroupName string) error
func (*AzureVirtualDesktopManager) RemovePrincipalFromAppGroup ¶ added in v0.0.61
func (*AzureVirtualDesktopManager) RetrieveRegistrationToken ¶
func (*AzureVirtualDesktopManager) UpdateHostPoolRegToken ¶ added in v0.0.34
func (avd *AzureVirtualDesktopManager) UpdateHostPoolRegToken(ctx context.Context, hpName string) (*armdesktopvirtualization.HostPool, error)
func (*AzureVirtualDesktopManager) WaitForSessionHost ¶
func (avd *AzureVirtualDesktopManager) WaitForSessionHost( ctx context.Context, hpName, vmID string, timeout time.Duration, ) (*armdesktopvirtualization.SessionHost, error)
WaitForSessionHost waits for a VM to appear as a session host in a specified host pool and ensures its status is 'Available'.
type AzureVirtualDesktopManagerConfig ¶ added in v0.0.61
type AzureVirtualDesktopManagerConfig struct {
// required
AvdUsersGroupId string
DesktopApplicationUserRoleID string
UriEnv string
UriVersion string
UseMultipleMonitors string
PrefixBase string
PersonalHostPoolNamePrefix string
PersonalWorkspaceNamePrefix string
PersonalAppGroupNamePrefix string
PooledHostPoolNamePrefix string
PooledWorkspaceNamePrefix string
PooledAppGroupNamePrefix string
// optional
RDAgentURI *string
BootLoaderURI *string
DesktopNamePrefix *string
}