8
8
"launchpad.net/juju-core/charm"
9
9
"launchpad.net/juju-core/constraints"
10
10
"launchpad.net/juju-core/errors"
11
"launchpad.net/juju-core/instance"
11
12
"launchpad.net/juju-core/juju/testing"
12
13
"launchpad.net/juju-core/state"
13
14
coretesting "launchpad.net/juju-core/testing"
43
44
err: `--num-units must be a positive integer`,
45
46
args: []string{"craziness", "burble1", "--force-machine", "bigglesplop"},
46
err: `invalid machine id "bigglesplop"`,
47
err: `invalid --force-machine parameter "bigglesplop"`,
48
49
args: []string{"craziness", "burble1", "-n", "2", "--force-machine", "123"},
49
err: `cannot use --num-units with --force-machine`,
50
err: `cannot use --num-units > 1 with --force-machine`,
51
52
args: []string{"craziness", "burble1", "--constraints", "gibber=plop"},
52
53
err: `invalid value "gibber=plop" for flag --constraints: unknown constraint "gibber"`,
171
172
c.Assert(err, ErrorMatches, `service "dummy" not found`)
174
func (s *DeploySuite) TestForceMachine(c *C) {
175
coretesting.Charms.BundlePath(s.SeriesPath, "dummy")
176
machine, err := s.State.AddMachine("precise", state.JobHostUnits)
178
err = runDeploy(c, "--force-machine", machine.Id(), "local:dummy", "portlandia")
175
func (s *DeploySuite) assertForceMachine(c *C, machineId string) {
180
176
svc, err := s.State.Service("portlandia")
181
177
c.Assert(err, IsNil)
182
178
units, err := svc.AllUnits()
184
180
c.Assert(units, HasLen, 1)
185
181
mid, err := units[0].AssignedMachineId()
186
182
c.Assert(err, IsNil)
187
c.Assert(mid, Equals, machine.Id())
183
c.Assert(mid, Equals, machineId)
186
func (s *DeploySuite) TestForceMachine(c *C) {
187
coretesting.Charms.BundlePath(s.SeriesPath, "dummy")
188
machine, err := s.State.AddMachine("precise", state.JobHostUnits)
190
err = runDeploy(c, "--force-machine", machine.Id(), "local:dummy", "portlandia")
192
s.assertForceMachine(c, machine.Id())
195
func (s *DeploySuite) TestForceMachineExistingContainer(c *C) {
196
coretesting.Charms.BundlePath(s.SeriesPath, "dummy")
197
params := &state.AddMachineParams{
199
ContainerType: instance.LXC,
200
Jobs: []state.MachineJob{state.JobHostUnits},
202
container, err := s.State.AddMachineWithConstraints(params)
204
err = runDeploy(c, "--force-machine", container.Id(), "local:dummy", "portlandia")
206
s.assertForceMachine(c, container.Id())
207
machines, err := s.State.AllMachines()
209
c.Assert(machines, HasLen, 2)
212
func (s *DeploySuite) TestForceMachineNewContainer(c *C) {
213
coretesting.Charms.BundlePath(s.SeriesPath, "dummy")
214
machine, err := s.State.AddMachine("precise", state.JobHostUnits)
216
err = runDeploy(c, "--force-machine", "lxc:"+machine.Id(), "local:dummy", "portlandia")
218
s.assertForceMachine(c, machine.Id()+"/lxc/0")
219
machines, err := s.State.AllMachines()
221
c.Assert(machines, HasLen, 2)
190
224
func (s *DeploySuite) TestForceMachineNotFound(c *C) {