~kirkland/pyjuju/tmux

« back to all changes in this revision

Viewing changes to ensemble/agents/provision.py

merged expose-provision-machines-reexpose [r=hazmat,niemeyer][f=812619]

Modifies the provisioning agent to enable re-exposing of a service.

Show diffs side-by-side

added added

removed removed

Lines of Context:
301
301
        def cb_watch_service_exposed_flag(exposed):
302
302
            if not self._running:
303
303
                raise StopWatcher()
 
304
 
 
305
            if exposed:
 
306
                log.debug("Service %r is exposed", service_name)
 
307
            else:
 
308
                log.debug("Service %r is unexposed", service_name)
 
309
 
 
310
            try:
 
311
                unit_states = yield service_state.get_all_unit_states()
 
312
            except StateChanged:
 
313
                log.debug("Stopping watch on %r, no longer in topology",
 
314
                          service_name)
 
315
                raise StopWatcher()
 
316
            for unit_state in unit_states:
 
317
                yield self.open_close_ports(unit_state)
 
318
 
304
319
            if not exposed:
305
320
                self._watched_services[service_name] = NotExposed
306
 
                try:
307
 
                    unit_states = yield service_state.get_all_unit_states()
308
 
                except StateChanged:
309
 
                    log.debug("Stopping watch on %r, no longer in topology",
310
 
                             service_name)
311
 
                    raise StopWatcher()
312
 
                for unit_state in unit_states:
313
 
                    yield self.open_close_ports(unit_state)
314
321
            else:
315
322
                self._watched_services[service_name] = set()
316
323
                yield self._setup_service_unit_watch(service_state)