func (s *CommonProvisionerSuite) checkStartInstanceCustom(c *C, m *state.Machine, secret string, cons constraints.Value) (inst instance.Instance) { s.State.StartSync() for { select { case o := <-s.op: switch o := o.(type) { case dummy.OpStartInstance: inst = o.Instance s.waitInstanceId(c, m, inst.Id()) // Check the instance was started with the expected params. c.Assert(o.MachineId, Equals, m.Id()) nonceParts := strings.SplitN(o.MachineNonce, ":", 2) c.Assert(nonceParts, HasLen, 2) c.Assert(nonceParts[0], Equals, state.MachineTag("0")) c.Assert(nonceParts[1], checkers.Satisfies, utils.IsValidUUIDString) c.Assert(o.Secret, Equals, secret) c.Assert(o.Constraints, DeepEquals, cons) // Check we can connect to the state with // the machine's entity name and password. info := s.StateInfo(c) info.Tag = m.Tag() c.Assert(o.Info.Password, Not(HasLen), 0) info.Password = o.Info.Password c.Assert(o.Info, DeepEquals, info) // Check we can connect to the state with // the machine's entity name and password. st, err := state.Open(o.Info, state.DefaultDialOpts()) c.Assert(err, IsNil) // All provisioned machines in this test suite have their hardware characteristics // attributes set to the same values as the constraints due to the dummy environment being used. hc, err := m.HardwareCharacteristics() c.Assert(err, IsNil) c.Assert(*hc, DeepEquals, instance.HardwareCharacteristics{ Arch: cons.Arch, Mem: cons.Mem, CpuCores: cons.CpuCores, CpuPower: cons.CpuPower, }) st.Close() return default: c.Logf("ignoring unexpected operation %#v", o) } case <-time.After(2 * time.Second): c.Fatalf("provisioner did not start an instance") return } } return }
func (p *Provisioner) setupAuthentication(m *state.Machine) (*state.Info, *api.Info, error) { password, err := utils.RandomPassword() if err != nil { return nil, nil, fmt.Errorf("cannot make password for machine %v: %v", m, err) } if err := m.SetMongoPassword(password); err != nil { return nil, nil, fmt.Errorf("cannot set password for machine %v: %v", m, err) } stateInfo := *p.stateInfo stateInfo.Tag = m.Tag() stateInfo.Password = password apiInfo := *p.apiInfo apiInfo.Tag = m.Tag() apiInfo.Password = password return &stateInfo, &apiInfo, nil }
func (auth *simpleAuth) SetupAuthentication(machine *state.Machine) (*state.Info, *api.Info, error) { password, err := utils.RandomPassword() if err != nil { return nil, nil, fmt.Errorf("cannot make password for machine %v: %v", machine, err) } if err := machine.SetPassword(password); err != nil { return nil, nil, fmt.Errorf("cannot set API password for machine %v: %v", machine, err) } if err := machine.SetMongoPassword(password); err != nil { return nil, nil, fmt.Errorf("cannot set mongo password for machine %v: %v", machine, err) } stateInfo := *auth.stateInfo stateInfo.Tag = machine.Tag() stateInfo.Password = password apiInfo := *auth.apiInfo apiInfo.Tag = machine.Tag() apiInfo.Password = password return &stateInfo, &apiInfo, nil }
func (s *ProvisionerSuite) checkStartInstanceCustom(c *C, m *state.Machine, secret string, cons constraints.Value) { s.State.StartSync() for { select { case o := <-s.op: switch o := o.(type) { case dummy.OpStartInstance: s.waitInstanceId(c, m, o.Instance.Id()) // Check the instance was started with the expected params. c.Assert(o.MachineId, Equals, m.Id()) nonceParts := strings.SplitN(o.MachineNonce, ":", 2) c.Assert(nonceParts, HasLen, 2) c.Assert(nonceParts[0], Equals, state.MachineTag("0")) c.Assert(utils.IsValidUUIDString(nonceParts[1]), Equals, true) c.Assert(o.Secret, Equals, secret) c.Assert(o.Constraints, DeepEquals, cons) // Check we can connect to the state with // the machine's entity name and password. info := s.StateInfo(c) info.Tag = m.Tag() c.Assert(o.Info.Password, Not(HasLen), 0) info.Password = o.Info.Password c.Assert(o.Info, DeepEquals, info) // Check we can connect to the state with // the machine's entity name and password. st, err := state.Open(o.Info, state.DefaultDialOpts()) c.Assert(err, IsNil) st.Close() return default: c.Logf("ignoring unexpected operation %#v", o) } case <-time.After(2 * time.Second): c.Fatalf("provisioner did not start an instance") return } } }