func getProvisioningInfo(m *state.Machine) (*params.ProvisioningInfo, error) { cons, err := m.Constraints() if err != nil { return nil, err } // TODO(dimitern) For now, since network names and // provider ids are the same, we return what we got // from state. In the future, when networks can be // added before provisioning, we should convert both // slices from juju network names to provider-specific // ids before returning them. networks, err := m.RequestedNetworks() if err != nil { return nil, err } var jobs []params.MachineJob for _, job := range m.Jobs() { jobs = append(jobs, job.ToParams()) } return ¶ms.ProvisioningInfo{ Constraints: cons, Series: m.Series(), Placement: m.Placement(), Networks: networks, Jobs: jobs, }, nil }
func (p *ProvisionerAPI) getProvisioningInfo(m *state.Machine) (*params.ProvisioningInfo, error) { cons, err := m.Constraints() if err != nil { return nil, err } volumes, err := p.machineVolumeParams(m) if err != nil { return nil, errors.Trace(err) } // TODO(dimitern) Drop this once we only use spaces for // deployments. networks, err := m.RequestedNetworks() if err != nil { return nil, err } var jobs []multiwatcher.MachineJob for _, job := range m.Jobs() { jobs = append(jobs, job.ToParams()) } tags, err := p.machineTags(m, jobs) if err != nil { return nil, errors.Trace(err) } subnetsToZones, err := p.machineSubnetsAndZones(m) if err != nil { return nil, errors.Annotate(err, "cannot match subnets to zones") } endpointBindings, err := p.machineEndpointBindings(m) if err != nil { return nil, errors.Annotate(err, "cannot determine machine endpoint bindings") } imageMetadata, err := p.availableImageMetadata(m) if err != nil { return nil, errors.Annotate(err, "cannot get available image metadata") } return ¶ms.ProvisioningInfo{ Constraints: cons, Series: m.Series(), Placement: m.Placement(), Networks: networks, Jobs: jobs, Volumes: volumes, Tags: tags, SubnetsToZones: subnetsToZones, EndpointBindings: endpointBindings, ImageMetadata: imageMetadata, }, nil }