mirror of
https://github.com/opentffoundation/opentf.git
synced 2026-03-13 10:01:08 -04:00
* Remove `make updatedeps` from Travis build. We'll follow up with more specific plans around dependency updating in subsequent PRs. * Update all `make` targets to set `GO15VENDOREXPERIMENT=1` and to filter out `/vendor/` from `./...` where appropriate. * Temporarily remove `vet` from the `make test` target until we can figure out how to get it to not vet `vendor/`. (Initial experimentation failed to yield the proper incantation.) Everything is pinned to current master, with the exception of: * Azure/azure-sdk-for-go which is pinned before the breaking change today * aws/aws-sdk-go which is pinned to the most recent tag The documentation still needs to be updated, which we can do in a follow up PR. The goal here is to unblock release.
92 lines
2.5 KiB
Go
92 lines
2.5 KiB
Go
package vmutils
|
|
|
|
import (
|
|
"fmt"
|
|
|
|
vm "github.com/Azure/azure-sdk-for-go/management/virtualmachine"
|
|
)
|
|
|
|
// ConfigureDeploymentFromRemoteImage configures VM Role to deploy from a remote
|
|
// image source. "remoteImageSourceURL" can be any publically accessible URL to
|
|
// a VHD file, including but not limited to a SAS Azure Storage blob url. "os"
|
|
// needs to be either "Linux" or "Windows". "label" is optional.
|
|
func ConfigureDeploymentFromRemoteImage(
|
|
role *vm.Role,
|
|
remoteImageSourceURL string,
|
|
os string,
|
|
newDiskName string,
|
|
destinationVhdStorageURL string,
|
|
label string) error {
|
|
if role == nil {
|
|
return fmt.Errorf(errParamNotSpecified, "role")
|
|
}
|
|
|
|
role.OSVirtualHardDisk = &vm.OSVirtualHardDisk{
|
|
RemoteSourceImageLink: remoteImageSourceURL,
|
|
MediaLink: destinationVhdStorageURL,
|
|
DiskName: newDiskName,
|
|
OS: os,
|
|
DiskLabel: label,
|
|
}
|
|
return nil
|
|
}
|
|
|
|
// ConfigureDeploymentFromPlatformImage configures VM Role to deploy from a
|
|
// platform image. See osimage package for methods to retrieve a list of the
|
|
// available platform images. "label" is optional.
|
|
func ConfigureDeploymentFromPlatformImage(
|
|
role *vm.Role,
|
|
imageName string,
|
|
mediaLink string,
|
|
label string) error {
|
|
if role == nil {
|
|
return fmt.Errorf(errParamNotSpecified, "role")
|
|
}
|
|
|
|
role.OSVirtualHardDisk = &vm.OSVirtualHardDisk{
|
|
SourceImageName: imageName,
|
|
MediaLink: mediaLink,
|
|
}
|
|
return nil
|
|
}
|
|
|
|
// ConfigureDeploymentFromPublishedVMImage configures VM Role to deploy from
|
|
// a published (public) VM image.
|
|
func ConfigureDeploymentFromPublishedVMImage(
|
|
role *vm.Role,
|
|
vmImageName string,
|
|
mediaLocation string,
|
|
provisionGuestAgent bool) error {
|
|
if role == nil {
|
|
return fmt.Errorf(errParamNotSpecified, "role")
|
|
}
|
|
|
|
role.VMImageName = vmImageName
|
|
role.MediaLocation = mediaLocation
|
|
role.ProvisionGuestAgent = provisionGuestAgent
|
|
return nil
|
|
}
|
|
|
|
// ConfigureDeploymentFromUserVMImage configures VM Role to deploy from a previously
|
|
// captured (user generated) VM image.
|
|
func ConfigureDeploymentFromUserVMImage(
|
|
role *vm.Role,
|
|
vmImageName string) error {
|
|
if role == nil {
|
|
return fmt.Errorf(errParamNotSpecified, "role")
|
|
}
|
|
|
|
role.VMImageName = vmImageName
|
|
return nil
|
|
}
|
|
|
|
// ConfigureDeploymentFromExistingOSDisk configures VM Role to deploy from an
|
|
// existing disk. 'label' is optional.
|
|
func ConfigureDeploymentFromExistingOSDisk(role *vm.Role, osDiskName, label string) error {
|
|
role.OSVirtualHardDisk = &vm.OSVirtualHardDisk{
|
|
DiskName: osDiskName,
|
|
DiskLabel: label,
|
|
}
|
|
return nil
|
|
}
|