...
1
2
3 package vmutils
4
5
6
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
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
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
46
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