// newOSDisk creates a gwacl.OSVirtualHardDisk object suitable for an // Azure Virtual Machine. func (env *azureEnviron) newOSDisk(sourceImageName string) *gwacl.OSVirtualHardDisk { vhdName := gwacl.MakeRandomDiskName("juju") vhdPath := fmt.Sprintf("vhds/%s", vhdName) snap := env.getSnapshot() storageAccount := snap.ecfg.storageAccountName() mediaLink := gwacl.CreateVirtualHardDiskMediaLink(storageAccount, vhdPath) // The disk label is optional and the disk name can be omitted if // mediaLink is provided. return gwacl.NewOSVirtualHardDisk("", "", "", mediaLink, sourceImageName, "Linux") }
// newOSDisk creates a gwacl.OSVirtualHardDisk object suitable for an // Azure Virtual Machine. func (env *azureEnviron) newOSDisk(sourceImageName string, ser string) (*gwacl.OSVirtualHardDisk, error) { vhdName := gwacl.MakeRandomDiskName("juju") vhdPath := fmt.Sprintf("vhds/%s", vhdName) snap := env.getSnapshot() storageAccount := snap.ecfg.storageAccountName() mediaLink := gwacl.CreateVirtualHardDiskMediaLink(storageAccount, vhdPath) os, err := series.GetOSFromSeries(ser) if err != nil { return nil, errors.Trace(err) } var OSType string switch os { case jujuos.Windows: OSType = "Windows" default: OSType = "Linux" } // The disk label is optional and the disk name can be omitted if // mediaLink is provided. return gwacl.NewOSVirtualHardDisk("", "", "", mediaLink, sourceImageName, OSType), nil }