...

Source file src/github.com/Azure/azure-sdk-for-go/services/classic/management/vmutils/datadisks.go

Documentation: github.com/Azure/azure-sdk-for-go/services/classic/management/vmutils

     1  // +build go1.7
     2  
     3  package vmutils
     4  
     5  // Copyright (c) Microsoft Corporation. All rights reserved.
     6  // Licensed under the MIT License. See License.txt in the project root for license information.
     7  
     8  import (
     9  	"fmt"
    10  
    11  	vm "github.com/Azure/azure-sdk-for-go/services/classic/management/virtualmachine"
    12  	vmdisk "github.com/Azure/azure-sdk-for-go/services/classic/management/virtualmachinedisk"
    13  )
    14  
    15  // ConfigureWithNewDataDisk adds configuration for a new (empty) data disk
    16  func ConfigureWithNewDataDisk(role *vm.Role, label, destinationVhdStorageURL string, sizeInGB int, cachingType vmdisk.HostCachingType) error {
    17  	if role == nil {
    18  		return fmt.Errorf(errParamNotSpecified, "role")
    19  	}
    20  
    21  	appendDataDisk(role, vm.DataVirtualHardDisk{
    22  		DiskLabel:           label,
    23  		HostCaching:         cachingType,
    24  		LogicalDiskSizeInGB: sizeInGB,
    25  		MediaLink:           destinationVhdStorageURL,
    26  	})
    27  
    28  	return nil
    29  }
    30  
    31  // ConfigureWithExistingDataDisk adds configuration for an existing data disk
    32  func ConfigureWithExistingDataDisk(role *vm.Role, diskName string, cachingType vmdisk.HostCachingType) error {
    33  	if role == nil {
    34  		return fmt.Errorf(errParamNotSpecified, "role")
    35  	}
    36  
    37  	appendDataDisk(role, vm.DataVirtualHardDisk{
    38  		DiskName:    diskName,
    39  		HostCaching: cachingType,
    40  	})
    41  
    42  	return nil
    43  }
    44  
    45  // ConfigureWithVhdDataDisk adds configuration for adding a vhd in a storage
    46  // account as a data disk
    47  func ConfigureWithVhdDataDisk(role *vm.Role, sourceVhdStorageURL string, cachingType vmdisk.HostCachingType) error {
    48  	if role == nil {
    49  		return fmt.Errorf(errParamNotSpecified, "role")
    50  	}
    51  
    52  	appendDataDisk(role, vm.DataVirtualHardDisk{
    53  		SourceMediaLink: sourceVhdStorageURL,
    54  		HostCaching:     cachingType,
    55  	})
    56  
    57  	return nil
    58  }
    59  
    60  func appendDataDisk(role *vm.Role, disk vm.DataVirtualHardDisk) {
    61  	disk.Lun = len(role.DataVirtualHardDisks)
    62  	role.DataVirtualHardDisks = append(role.DataVirtualHardDisks, disk)
    63  }
    64  

View as plain text