~dpb/pyjuju/dont-proxy-https

« back to all changes in this revision

Viewing changes to juju/control/remove_unit.py

Subordinate support in unit agent lifecycle [r=kapil] [f=805585,963355]

This branch lands the support in the unit agent which allows it to deploy 
subordinate services in its own container.

Show diffs side-by-side

added added

removed removed

Lines of Context:
3
3
from twisted.internet.defer import inlineCallbacks
4
4
 
5
5
from juju.errors import JujuError
 
6
from juju.state.errors import UnsupportedSubordinateServiceRemoval
6
7
from juju.state.service import ServiceStateManager, parse_service_name
7
8
from juju.control.utils import get_environment
8
9
 
40
41
            service_name = parse_service_name(unit_name)
41
42
            service_state = yield service_manager.get_service_state(
42
43
                service_name)
 
44
            unit_state = yield service_state.get_unit_state(unit_name)
43
45
            if (yield service_state.is_subordinate()):
44
 
                raise JujuError("Subordinate services acquire units from "
45
 
                                "their principal service.")
 
46
                container = yield unit_state.get_container()
 
47
                raise UnsupportedSubordinateServiceRemoval(
 
48
                    unit_state.unit_name,
 
49
                    container.unit_name)
46
50
 
47
 
            unit_state = yield service_state.get_unit_state(unit_name)
48
51
            yield service_state.remove_unit_state(unit_state)
49
52
            log.info("Unit %r removed from service %r",
50
53
                     unit_state.unit_name, service_state.service_name)