Versions in this module Expand all Collapse all v1 v1.3.3 Jul 5, 2022 v1.3.2 Jul 19, 2021 v1.3.1 Jul 19, 2021 v1.3.0 Jul 16, 2021 Changes in this version + const PlanName + const PlanProductName + const PlanPublisherName + const SubscriptionIdEnvVar + func GetPrimaryStorageKey(ctx context.Context, resourceGroup string, accountName string) (string, error) + func GetSubscriptionID() (string, error) type WarmPathManager + WorkerCount int64 v1.2.0 Jul 14, 2021 Changes in this version + const B + const CacheWarmerVisibilityTimeout + const DefaultCacheWarmerMountPath + const GB + const KB + const MB + const MarketPlaceOffer + const MarketPlacePublisher + const MarketPlaceSku + const MaximumFilesToRead + const MaximumJobSize + const MinimumJobsBeforeRefill + const MinimumJobsOnDirRead + const MinimumSingleFileSize + const MountRetryCount + const MountRetrySleepSeconds + const NodesPerNFSMountAddress + const NumberOfMessagesToDequeue + const ReadPageSize + const VMSSNodeSize + const VmssName + const WarmPathJobQueueSuffix + const WorkQueueSuffix + const WorkerMultiplier + func AlreadyMounted(mountPath string) bool + func BashCommand(cmdstr string) (bytes.Buffer, bytes.Buffer, error) + func CreateVmss(ctx context.Context, azureClients *AzureClients, ...) (vmss compute.VirtualMachineScaleSet, err error) + func DeleteVmss(ctx context.Context, azureClients *AzureClients, name string) error + func EnsureWarmPath(jobMountAddress string, jobExportPath string, jobBasePath string) (string, error) + func FileMatches(inclusionList []string, exclusionList []string, maxFileSizeBytes int64, ...) bool + func GetLocalMountPath(jobMountAddress string, jobExportPath string) string + func GetResourceName(id string) string + func GetSubnetId(ctx context.Context, azureClients *AzureClients) (string, error) + func IsDirectory(path string) (bool, error) + func MountPath(address string, exportPath string, localPath string) error + func SwapResourceName(id string, resourceName string) string + func VmssExists(ctx context.Context, azureClients *AzureClients, name string) (bool, error) + type AzureClients struct + LocalMetadata ComputeMetadata + NICClient network.InterfacesClient + VMClient compute.VirtualMachinesClient + VMSSClient compute.VirtualMachineScaleSetsClient + func InitializeAzureClients() (*AzureClients, error) + type CacheWarmerCloudInit struct + BootstrapAddress string + BootstrapExportPath string + BootstrapScriptPath string + EnvVars string + LocalMountPath string + func InitializeCloutInit(bootstrapAddress string, bootstrapExportPath string, ...) *CacheWarmerCloudInit + func (c *CacheWarmerCloudInit) GetCacheWarmerCloudInit() (string, error) + type CacheWarmerQueues struct + func InitializeCacheWarmerQueues(ctx context.Context, storageAccount string, storageKey string, ...) (*CacheWarmerQueues, error) + func (q *CacheWarmerQueues) DeleteWarmPathJob(warmPathJob *WarmPathJob) error + func (q *CacheWarmerQueues) DeleteWorkerJob(workerJob *WorkerJob) error + func (q *CacheWarmerQueues) GetWarmPathJob() (*WarmPathJob, error) + func (q *CacheWarmerQueues) GetWorkerJob() (*WorkerJob, error) + func (q *CacheWarmerQueues) IsJobQueueEmpty() (bool, error) + func (q *CacheWarmerQueues) IsWorkQueueEmpty() (bool, error) + func (q *CacheWarmerQueues) PeekWorkerJob() (*WorkerJob, error) + func (q *CacheWarmerQueues) StillProcessingWarmPathJob(warmPathJob *WarmPathJob) error + func (q *CacheWarmerQueues) StillProcessingWorkerJob(workerJob *WorkerJob) error + func (q *CacheWarmerQueues) WriteWarmPathJob(job WarmPathJob) error + func (q *CacheWarmerQueues) WriteWorkerJob(workerjob *WorkerJob) error + type ComputeMetadata struct + Location string + Name string + ResourceGroup string + SubscriptionId string + func GetComputeMetadata() (*ComputeMetadata, error) + type FileToWarm struct + StartByte int64 + StopByte int64 + WarmFileFullPath string + func InitializeFileToWarm(warmFilePath string, startByte int64, stopByte int64) FileToWarm + type WarmPathJob struct + ExclusionList []string + InclusionList []string + MaxFileSizeBytes int64 + WarmTargetExportPath string + WarmTargetMountAddresses []string + WarmTargetPath string + func InitializeWarmPathJob(warmTargetMountAddresses string, warmTargetExportPath string, ...) *WarmPathJob + func InitializeWarmPathJobFromString(warmPathJobContents string) (*WarmPathJob, error) + func (j *WarmPathJob) FileMatches(filename string, filesize int64) bool + func (j *WarmPathJob) GetQueueMessageInfo() (azqueue.MessageID, azqueue.PopReceipt) + func (j *WarmPathJob) GetWarmPathJobFileContents() (string, error) + func (j *WarmPathJob) SetQueueMessageInfo(id azqueue.MessageID, popReceipt azqueue.PopReceipt) + type WarmPathManager struct + AzureClients *AzureClients + Queues *CacheWarmerQueues + func InitializeWarmPathManager(azureClients *AzureClients, queues *CacheWarmerQueues, ...) *WarmPathManager + func (m *WarmPathManager) EnsureVmssDeleted(ctx context.Context) + func (m *WarmPathManager) EnsureVmssRunning(ctx context.Context, mountCount int) + func (m *WarmPathManager) RunJobGenerator(ctx context.Context, syncWaitGroup *sync.WaitGroup) + func (m *WarmPathManager) RunVMSSManager(ctx context.Context, syncWaitGroup *sync.WaitGroup) + type WorkQueue struct + func InitializeWorkQueue() *WorkQueue + func (q *WorkQueue) AddWorkItem(fileToWarm FileToWarm) + func (q *WorkQueue) GetNextWorkItem() (FileToWarm, bool) + func (q *WorkQueue) IsEmpty() bool + func (q *WorkQueue) WorkItemCount() int + type Worker struct + Queues *CacheWarmerQueues + func InitializeWorker(queues *CacheWarmerQueues) *Worker + func (w *Worker) QueueWork(localPaths []string, filenames []string) int + func (w *Worker) RunWorkerManager(ctx context.Context, syncWaitGroup *sync.WaitGroup) + type WorkerJob struct + ApplyFilter bool + EndFileFilter string + ExclusionList []string + InclusionList []string + MaxFileSizeBytes int64 + StartByte int64 + StartFileFilter string + StopByte int64 + WarmTargetExportPath string + WarmTargetMountAddresses []string + WarmTargetPath string + func InitializeWorkerJob(warmTargetMountAddresses []string, warmTargetExportPath string, ...) *WorkerJob + func InitializeWorkerJobForLargeFile(warmTargetMountAddresses []string, warmTargetExportPath string, ...) *WorkerJob + func InitializeWorkerJobFromString(workerJobContents string) (*WorkerJob, error) + func InitializeWorkerJobWithFilter(warmTargetMountAddresses []string, warmTargetExportPath string, ...) *WorkerJob + func (j *WorkerJob) FilterFiles(dirEntries []os.FileInfo) []string + func (j *WorkerJob) GetQueueMessageInfo() (azqueue.MessageID, azqueue.PopReceipt) + func (j *WorkerJob) GetWorkerJobFileContents() (string, error) + func (j *WorkerJob) SetQueueMessageInfo(id azqueue.MessageID, popReceipt azqueue.PopReceipt)