func (s *serviceSuite) TestClientServiceDeploySubordinate(c *gc.C) { curl, ch := s.UploadCharm(c, "utopic/logging-47", "logging") err := service.AddCharmWithAuthorization(s.State, params.AddCharmWithAuthorization{URL: curl.String()}) c.Assert(err, jc.ErrorIsNil) results, err := s.serviceApi.ServicesDeploy(params.ServicesDeploy{ Services: []params.ServiceDeploy{{ CharmUrl: curl.String(), ServiceName: "service-name", }}}) c.Assert(err, jc.ErrorIsNil) c.Assert(results.Results, gc.HasLen, 1) c.Assert(results.Results[0].Error, gc.IsNil) service, err := s.State.Service("service-name") c.Assert(err, jc.ErrorIsNil) charm, force, err := service.Charm() c.Assert(err, jc.ErrorIsNil) c.Assert(force, jc.IsFalse) c.Assert(charm.URL(), gc.DeepEquals, curl) c.Assert(charm.Meta(), gc.DeepEquals, ch.Meta()) c.Assert(charm.Config(), gc.DeepEquals, ch.Config()) units, err := service.AllUnits() c.Assert(err, jc.ErrorIsNil) c.Assert(units, gc.HasLen, 0) }
func (s *serviceSuite) TestClientServiceDeployToMachine(c *gc.C) { curl, ch := s.UploadCharm(c, "precise/dummy-0", "dummy") err := service.AddCharmWithAuthorization(s.State, params.AddCharmWithAuthorization{URL: curl.String()}) c.Assert(err, jc.ErrorIsNil) machine, err := s.State.AddMachine("precise", state.JobHostUnits) c.Assert(err, jc.ErrorIsNil) results, err := s.serviceApi.ServicesDeploy(params.ServicesDeploy{ Services: []params.ServiceDeploy{{ CharmUrl: curl.String(), ServiceName: "service-name", NumUnits: 1, ConfigYAML: "service-name:\n username: fred", }}}) c.Assert(err, jc.ErrorIsNil) c.Assert(results.Results, gc.HasLen, 1) c.Assert(results.Results[0].Error, gc.IsNil) service, err := s.State.Service("service-name") c.Assert(err, jc.ErrorIsNil) charm, force, err := service.Charm() c.Assert(err, jc.ErrorIsNil) c.Assert(force, jc.IsFalse) c.Assert(charm.URL(), gc.DeepEquals, curl) c.Assert(charm.Meta(), gc.DeepEquals, ch.Meta()) c.Assert(charm.Config(), gc.DeepEquals, ch.Config()) errs, err := s.APIState.UnitAssigner().AssignUnits([]names.UnitTag{names.NewUnitTag("service-name/0")}) c.Assert(errs, gc.DeepEquals, []error{nil}) c.Assert(err, jc.ErrorIsNil) units, err := service.AllUnits() c.Assert(err, jc.ErrorIsNil) c.Assert(units, gc.HasLen, 1) mid, err := units[0].AssignedMachineId() c.Assert(err, jc.ErrorIsNil) c.Assert(mid, gc.Equals, machine.Id()) }