func (i *importer) makeMachineDoc(m description.Machine) (*machineDoc, error) { id := m.Id() supported, supportedSet := m.SupportedContainers() supportedContainers := make([]instance.ContainerType, len(supported)) for j, c := range supported { supportedContainers[j] = instance.ContainerType(c) } jobs, err := i.makeMachineJobs(m.Jobs()) if err != nil { return nil, errors.Trace(err) } machineTag := m.Tag() return &machineDoc{ DocID: i.st.docID(id), Id: id, ModelUUID: i.st.ModelUUID(), Nonce: m.Nonce(), Series: m.Series(), ContainerType: m.ContainerType(), Principals: nil, // Set during unit import. Life: Alive, Tools: i.makeTools(m.Tools()), Jobs: jobs, NoVote: true, // State servers can't be migrated yet. HasVote: false, // State servers can't be migrated yet. PasswordHash: m.PasswordHash(), Clean: !i.machineHasUnits(machineTag), Volumes: i.machineVolumes(machineTag), Filesystems: i.machineFilesystems(machineTag), Addresses: i.makeAddresses(m.ProviderAddresses()), MachineAddresses: i.makeAddresses(m.MachineAddresses()), PreferredPrivateAddress: i.makeAddress(m.PreferredPrivateAddress()), PreferredPublicAddress: i.makeAddress(m.PreferredPublicAddress()), SupportedContainersKnown: supportedSet, SupportedContainers: supportedContainers, Placement: m.Placement(), }, nil }