avd

package
v0.0.64 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 30, 2025 License: MIT Imports: 25 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func GenerateNextName

func GenerateNextName(highestSuffix string, maxSequences int) (string, error)

Types

type AzureVirtualDesktopManager

type AzureVirtualDesktopManager struct {
	Name string

	Credentials *cloudyazure.AzureCredentials
	Config      *AzureVirtualDesktopManagerConfig
	// contains filtered or unexported fields
}

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 (avd *AzureVirtualDesktopManager) AssignRoleToUser(ctx context.Context, roleID string, upn string) error

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 (avd *AzureVirtualDesktopManager) CreatePooledWorkspace(ctx context.Context, teamName string, tags map[string]*string) (*armdesktopvirtualization.Workspace, error)

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 (avd *AzureVirtualDesktopManager) DeleteUserSession(ctx context.Context, hostPoolName string, sessionHost string, upn string) error

func (*AzureVirtualDesktopManager) DisconnectUserSession added in v0.0.61

func (avd *AzureVirtualDesktopManager) DisconnectUserSession(ctx context.Context, hostPoolName string, sessionHost string, upn string) error

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 (avd *AzureVirtualDesktopManager) EnsureWorkspace(
	ctx context.Context,
	suffix string,
	tags map[string]*string,
) (*armdesktopvirtualization.Workspace, error)

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 (avd *AzureVirtualDesktopManager) GetAllDesktopApplications(ctx context.Context, resourceGroupName string) ([]string, error)

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

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 (avd *AzureVirtualDesktopManager) RemovePrincipalFromAppGroup(ctx context.Context, appGroupName string, roleAssignmentName string) error

func (*AzureVirtualDesktopManager) RetrieveRegistrationToken

func (avd *AzureVirtualDesktopManager) RetrieveRegistrationToken(ctx context.Context, hpName string) (*string, error)

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
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL