func (s *serviceSuite) TestClientServiceUpdateAllParams(c *gc.C) { s.deployServiceForUpdateTests(c) curl, _ := s.UploadCharm(c, "precise/wordpress-3", "wordpress") err := service.AddCharmWithAuthorization(s.State, params.AddCharmWithAuthorization{URL: curl.String()}) c.Assert(err, jc.ErrorIsNil) // Update all the service attributes. minUnits := 3 cons, err := constraints.Parse("mem=4096", "cpu-cores=2") c.Assert(err, jc.ErrorIsNil) args := params.ServiceUpdate{ ServiceName: "service", CharmUrl: curl.String(), ForceCharmUrl: true, MinUnits: &minUnits, SettingsStrings: map[string]string{"blog-title": "string-title"}, SettingsYAML: "service:\n blog-title: yaml-title\n", Constraints: &cons, } err = s.serviceApi.ServiceUpdate(args) c.Assert(err, jc.ErrorIsNil) // Ensure the service has been correctly updated. service, err := s.State.Service("service") c.Assert(err, jc.ErrorIsNil) // Check the charm. ch, force, err := service.Charm() c.Assert(err, jc.ErrorIsNil) c.Assert(ch.URL().String(), gc.Equals, curl.String()) c.Assert(force, jc.IsTrue) // Check the minimum number of units. c.Assert(service.MinUnits(), gc.Equals, minUnits) // Check the settings: also ensure the YAML settings take precedence // over strings ones. expectedSettings := charm.Settings{"blog-title": "yaml-title"} obtainedSettings, err := service.ConfigSettings() c.Assert(err, jc.ErrorIsNil) c.Assert(obtainedSettings, gc.DeepEquals, expectedSettings) // Check the constraints. obtainedConstraints, err := service.Constraints() c.Assert(err, jc.ErrorIsNil) c.Assert(obtainedConstraints, gc.DeepEquals, cons) }
func (s *serviceSuite) TestClientServiceUpdateSetConstraints(c *gc.C) { service := s.AddTestingService(c, "dummy", s.AddTestingCharm(c, "dummy")) // Update constraints for the service. cons, err := constraints.Parse("mem=4096", "cpu-cores=2") c.Assert(err, jc.ErrorIsNil) args := params.ServiceUpdate{ ServiceName: "dummy", Constraints: &cons, } err = s.serviceApi.ServiceUpdate(args) c.Assert(err, jc.ErrorIsNil) // Ensure the constraints have been correctly updated. obtained, err := service.Constraints() c.Assert(err, jc.ErrorIsNil) c.Assert(obtained, gc.DeepEquals, cons) }