Example #1
0
// NewRenderOptions creates render options using the base OS
// registry with any provided overrides.
func NewRenderOptions(osname string, edition string, config *configuration.InductorConfiguration) (*RenderOptions, error) {
	os, ok := config.Get(osname)
	if !ok {
		return nil, fmt.Errorf("Couldn't find OS configuration for '%s'", osname)
	}

	// set global config
	opts := NewDefaultRenderOptions()
	opts.Communicator = config.Communicator
	opts.Headless = config.Headless
	opts.WindowsUpdates = config.WindowsUpdates
	opts.Username = config.Username
	opts.Password = config.Password
	opts.DiskSize = config.DiskSize
	opts.RAM = config.RAM
	opts.CPU = config.CPU

	// default all rendering options to values in the OS registry
	opts.OSName = os.Name
	opts.IsoChecksum = os.IsoChecksum
	opts.IsoChecksumType = os.IsoChecksumType
	opts.IsoURL = os.IsoURL
	opts.VirtualboxGuestOsType = os.VirtualboxGuestOsType
	opts.VmwareGuestOsType = os.VmwareGuestOsType

	// edition specific attributes
	if len(edition) == 0 {
		for k := range os.Editions {
			edition = k
			break
		}
	}

	// TODO: validate that the edition is valid
	opts.Edition = edition
	opts.WindowsImageName = os.Editions[edition].WindowsImageName
	opts.ProductKey = os.Editions[edition].ProductKey

	return opts, nil
}
		It("should return windows10 as the first entry", func() {
			Expect(oses[0]).To(Equal("windows10"))
		})
		It("should return windows2008r2 as the second entry", func() {
			Expect(oses[1]).To(Equal("windows2008r2"))
		})
	})
	Describe("Get operating system configuration", func() {
		var (
			os      *configuration.OperatingSystem
			found   bool
			edition configuration.Edition
		)
		Context("windows 10", func() {
			BeforeEach(func() {
				os, found = config.Get("windows10")
			})
			It("should have found windows10", func() {
				Expect(found).To(BeTrue())
			})
			It("should have correct name", func() {
				Expect(os.Name).To(Equal("windows10"))
			})
			It("should have correct iso url", func() {
				Expect(os.IsoURL).To(Equal("http://care.dlservice.microsoft.com/dl/download/C/3/9/C399EEA8-135D-4207-92C9-6AAB3259F6EF/10240.16384.150709-1700.TH1_CLIENTENTERPRISEEVAL_OEMRET_X64FRE_EN-US.ISO"))
			})
			It("should have correct iso checksum", func() {
				Expect(os.IsoChecksum).To(Equal("56ab095075be28a90bc0b510835280975c6bb2ce"))
			})
			It("should have correct iso checksum type", func() {
				Expect(os.IsoChecksumType).To(Equal("sha1"))