~fwereade/juju-core/move-hook-context

« back to all changes in this revision

Viewing changes to worker/firewaller/firewaller_test.go

state,worker: full lifecycle machines watcher

MachinesWatcher now returns a list of ids that have had their
lifecycle changed in any way. It's up to the consumer to work
out details.

R=TheMue, aram
CC=
https://codereview.appspot.com/6566066

Show diffs side-by-side

added added

removed removed

Lines of Context:
418
418
        s.assertPorts(c, inst1, m1.Id(), nil)
419
419
        s.assertPorts(c, inst2, m2.Id(), nil)
420
420
}
 
421
 
 
422
func (s *FirewallerSuite) TestDeadMachine(c *C) {
 
423
        fw := firewaller.NewFirewaller(s.State)
 
424
        defer func() { c.Assert(fw.Stop(), IsNil) }()
 
425
 
 
426
        svc, err := s.State.AddService("wordpress", s.charm)
 
427
        c.Assert(err, IsNil)
 
428
        err = svc.SetExposed()
 
429
        c.Assert(err, IsNil)
 
430
 
 
431
        u, m := s.addUnit(c, svc)
 
432
        inst := s.startInstance(c, m)
 
433
        err = u.OpenPort("tcp", 80)
 
434
        c.Assert(err, IsNil)
 
435
 
 
436
        s.assertPorts(c, inst, m.Id(), []state.Port{{"tcp", 80}})
 
437
 
 
438
        // Remove unit and service, also tested without. Has no effect.
 
439
        err = u.EnsureDead()
 
440
        c.Assert(err, IsNil)
 
441
        err = svc.RemoveUnit(u)
 
442
        c.Assert(err, IsNil)
 
443
        err = svc.EnsureDead()
 
444
        c.Assert(err, IsNil)
 
445
        err = s.State.RemoveService(svc)
 
446
        c.Assert(err, IsNil)
 
447
 
 
448
        // Kill machine.
 
449
        err = m.EnsureDead()
 
450
        c.Assert(err, IsNil)
 
451
 
 
452
        s.assertPorts(c, inst, m.Id(), nil)
 
453
}
 
454
 
 
455
func (s *FirewallerSuite) TestRemoveMachine(c *C) {
 
456
        fw := firewaller.NewFirewaller(s.State)
 
457
        defer func() { c.Assert(fw.Stop(), IsNil) }()
 
458
 
 
459
        svc, err := s.State.AddService("wordpress", s.charm)
 
460
        c.Assert(err, IsNil)
 
461
        err = svc.SetExposed()
 
462
        c.Assert(err, IsNil)
 
463
 
 
464
        u, m := s.addUnit(c, svc)
 
465
        inst := s.startInstance(c, m)
 
466
        err = u.OpenPort("tcp", 80)
 
467
        c.Assert(err, IsNil)
 
468
 
 
469
        s.assertPorts(c, inst, m.Id(), []state.Port{{"tcp", 80}})
 
470
 
 
471
        // Remove unit.
 
472
        err = u.EnsureDead()
 
473
        c.Assert(err, IsNil)
 
474
        err = svc.RemoveUnit(u)
 
475
        c.Assert(err, IsNil)
 
476
 
 
477
        // Remove machine. Nothing bad should happen, but can't
 
478
        // assert port state since the machine must have been
 
479
        // destroyed and we lost its reference.
 
480
        err = m.EnsureDead()
 
481
        c.Assert(err, IsNil)
 
482
        err = s.State.RemoveMachine(m.Id())
 
483
        c.Assert(err, IsNil)
 
484
}