965
965
func (s *StateSuite) TestAddService(c *gc.C) {
966
966
charm := s.AddTestingCharm(c, "dummy")
967
_, err := s.State.AddService("haha/borken", "user-admin", charm)
967
_, err := s.State.AddService("haha/borken", "user-admin", charm, nil, nil)
968
968
c.Assert(err, gc.ErrorMatches, `cannot add service "haha/borken": invalid name`)
969
969
_, err = s.State.Service("haha/borken")
970
970
c.Assert(err, gc.ErrorMatches, `"haha/borken" is not a valid service name`)
972
972
// set that a nil charm is handled correctly
973
_, err = s.State.AddService("umadbro", "user-admin", nil)
973
_, err = s.State.AddService("umadbro", "user-admin", nil, nil, nil)
974
974
c.Assert(err, gc.ErrorMatches, `cannot add service "umadbro": charm is nil`)
976
wordpress, err := s.State.AddService("wordpress", "user-admin", charm)
976
wordpress, err := s.State.AddService("wordpress", "user-admin", charm, nil, nil)
977
977
c.Assert(err, gc.IsNil)
978
978
c.Assert(wordpress.Name(), gc.Equals, "wordpress")
979
mysql, err := s.State.AddService("mysql", "user-admin", charm)
979
mysql, err := s.State.AddService("mysql", "user-admin", charm, nil, nil)
980
980
c.Assert(err, gc.IsNil)
981
981
c.Assert(mysql.Name(), gc.Equals, "mysql")
1003
1003
c.Assert(err, gc.IsNil)
1004
1004
err = env.Destroy()
1005
1005
c.Assert(err, gc.IsNil)
1006
_, err = s.State.AddService("s1", "user-admin", charm)
1006
_, err = s.State.AddService("s1", "user-admin", charm, nil, nil)
1007
1007
c.Assert(err, gc.ErrorMatches, `cannot add service "s1": environment is no longer alive`)
1018
1018
c.Assert(env.Life(), gc.Equals, state.Alive)
1019
1019
c.Assert(env.Destroy(), gc.IsNil)
1021
_, err = s.State.AddService("s1", "user-admin", charm)
1021
_, err = s.State.AddService("s1", "user-admin", charm, nil, nil)
1022
1022
c.Assert(err, gc.ErrorMatches, `cannot add service "s1": environment is no longer alive`)
1031
1031
func (s *StateSuite) TestAddServiceNoTag(c *gc.C) {
1032
1032
charm := s.AddTestingCharm(c, "dummy")
1033
_, err := s.State.AddService("wordpress", state.AdminUser, charm)
1033
_, err := s.State.AddService("wordpress", state.AdminUser, charm, nil, nil)
1034
1034
c.Assert(err, gc.ErrorMatches, "cannot add service \"wordpress\": Invalid ownertag admin")
1037
1037
func (s *StateSuite) TestAddServiceNotUserTag(c *gc.C) {
1038
1038
charm := s.AddTestingCharm(c, "dummy")
1039
_, err := s.State.AddService("wordpress", "machine-3", charm)
1039
_, err := s.State.AddService("wordpress", "machine-3", charm, nil, nil)
1040
1040
c.Assert(err, gc.ErrorMatches, "cannot add service \"wordpress\": Invalid ownertag machine-3")
1043
1043
func (s *StateSuite) TestAddServiceNonExistentUser(c *gc.C) {
1044
1044
charm := s.AddTestingCharm(c, "dummy")
1045
_, err := s.State.AddService("wordpress", "user-notAuser", charm)
1045
_, err := s.State.AddService("wordpress", "user-notAuser", charm, nil, nil)
1046
1046
c.Assert(err, gc.ErrorMatches, "cannot add service \"wordpress\": user notAuser doesn't exist")
1053
1053
c.Assert(len(services), gc.Equals, 0)
1055
1055
// Check that after adding services the result is ok.
1056
_, err = s.State.AddService("wordpress", "user-admin", charm)
1056
_, err = s.State.AddService("wordpress", "user-admin", charm, nil, nil)
1057
1057
c.Assert(err, gc.IsNil)
1058
1058
services, err = s.State.AllServices()
1059
1059
c.Assert(err, gc.IsNil)
1060
1060
c.Assert(len(services), gc.Equals, 1)
1062
_, err = s.State.AddService("mysql", "user-admin", charm)
1062
_, err = s.State.AddService("mysql", "user-admin", charm, nil, nil)
1063
1063
c.Assert(err, gc.IsNil)
1064
1064
services, err = s.State.AllServices()
1065
1065
c.Assert(err, gc.IsNil)
2524
2524
// Add a service and 4 units: one with a different version, one
2525
2525
// with an empty version, one with the current version, and one
2526
2526
// with the new version.
2527
service, err := s.State.AddService("wordpress", "user-admin", s.AddTestingCharm(c, "wordpress"))
2527
service, err := s.State.AddService("wordpress", "user-admin", s.AddTestingCharm(c, "wordpress"), nil, nil)
2528
2528
c.Assert(err, gc.IsNil)
2529
2529
unit0, err := service.AddUnit()
2530
2530
c.Assert(err, gc.IsNil)
2574
2574
// Add a machine and a unit with the current version.
2575
2575
machine, err := s.State.AddMachine("series", state.JobHostUnits)
2576
2576
c.Assert(err, gc.IsNil)
2577
service, err := s.State.AddService("wordpress", "user-admin", s.AddTestingCharm(c, "wordpress"))
2577
service, err := s.State.AddService("wordpress", "user-admin", s.AddTestingCharm(c, "wordpress"), nil, nil)
2578
2578
c.Assert(err, gc.IsNil)
2579
2579
unit, err := service.AddUnit()
2580
2580
c.Assert(err, gc.IsNil)
2853
func (s *StateSuite) TestStateServingInfo(c *gc.C) {
2854
info, err := s.State.StateServingInfo()
2855
c.Assert(info, jc.DeepEquals, params.StateServingInfo{})
2856
// no error because empty doc created by default
2857
c.Assert(err, gc.IsNil)
2859
data := params.StateServingInfo{
2863
PrivateKey: "Some key",
2864
SharedSecret: "Some Keyfile",
2866
err = s.State.SetStateServingInfo(data)
2867
c.Assert(err, gc.IsNil)
2869
info, err = s.State.StateServingInfo()
2870
c.Assert(err, gc.IsNil)
2871
c.Assert(info, jc.DeepEquals, data)
2874
func (s *StateSuite) TestOpenCreatesStateServingInfoDoc(c *gc.C) {
2875
// Delete the stateServers collection to pretend this
2876
// is an older environment that had not created it
2878
err := s.stateServers.DropCollection()
2879
c.Assert(err, gc.IsNil)
2881
st, err := state.Open(state.TestingStateInfo(), state.TestingDialOpts(), state.Policy(nil))
2882
c.Assert(err, gc.IsNil)
2885
info, err := st.StateServingInfo()
2886
c.Assert(err, gc.IsNil)
2887
c.Assert(info, gc.DeepEquals, params.StateServingInfo{})
2853
2890
func (s *StateSuite) TestSetAPIHostPorts(c *gc.C) {
2854
2891
addrs, err := s.State.APIHostPorts()
2855
2892
c.Assert(err, gc.IsNil)