def test_returns_maintenance_status_if_pod_status_cannot_be_fetched(self): # Setup pod_status = PodStatus(status_dict=None) # Exercise juju_unit_status = domain.build_juju_unit_status(pod_status) # Assertions assert type(juju_unit_status) == MaintenanceStatus assert juju_unit_status.message == "Waiting for pod to appear"
def on_config_changed_handler(event, fw_adapter): juju_model = fw_adapter.get_model_name() juju_app = fw_adapter.get_app_name() juju_unit = fw_adapter.get_unit_name() pod_is_ready = False while not pod_is_ready: k8s_pod_status = k8s.get_pod_status(juju_model=juju_model, juju_app=juju_app, juju_unit=juju_unit) juju_unit_status = build_juju_unit_status(k8s_pod_status) fw_adapter.set_unit_status(juju_unit_status) pod_is_ready = isinstance(juju_unit_status, ActiveStatus)
def update_unit_status(fw_adapter): log.debug("Initializing update_unit_status") juju_model = fw_adapter.get_model_name() juju_app = fw_adapter.get_app_name() juju_unit = fw_adapter.get_unit_name() pod_is_ready = False while not pod_is_ready: k8s_pod_status = k8s.get_pod_status(juju_model=juju_model, juju_app=juju_app, juju_unit=juju_unit) juju_unit_status = build_juju_unit_status(k8s_pod_status) fw_adapter.set_unit_status(juju_unit_status) pod_is_ready = isinstance(juju_unit_status, ActiveStatus)
def on_config_changed_handler(event, fw_adapter, state): set_juju_pod_spec(fw_adapter) juju_model = fw_adapter.get_model_name() juju_app = fw_adapter.get_app_name() juju_unit = fw_adapter.get_unit_name() pod_is_ready = False # TODO: Fail by timeout, if pod will never go to the Ready state? while not pod_is_ready: logging.debug("Checking k8s pod readiness") k8s_pod_status = k8s.get_pod_status(juju_model=juju_model, juju_app=juju_app, juju_unit=juju_unit) logging.debug("Received k8s pod status: {0}".format(k8s_pod_status)) juju_unit_status = build_juju_unit_status(k8s_pod_status) logging.debug("Built unit status: {0}".format(juju_unit_status)) fw_adapter.set_unit_status(juju_unit_status) pod_is_ready = isinstance(juju_unit_status, ActiveStatus) time.sleep(1)
def test_returns_active_status_if_pod_is_ready(self): # Setup status_dict = { 'metadata': { 'annotations': { 'juju.io/unit': uuid4() } }, 'status': { 'phase': 'Running', 'conditions': [{ 'type': 'ContainersReady', 'status': 'True' }] } } pod_status = PodStatus(status_dict=status_dict) # Exercise juju_unit_status = domain.build_juju_unit_status(pod_status) # Assertions assert type(juju_unit_status) == ActiveStatus
def test_returns_maintenance_status_if_pod_is_not_ready(self): # Setup status_dict = { 'metadata': { 'annotations': { 'juju.io/unit': uuid4() } }, 'status': { 'phase': 'Running', 'conditions': [{ 'type': 'ContainersReady', 'status': 'False' }] } } pod_status = PodStatus(status_dict=status_dict) # Exercise juju_unit_status = domain.build_juju_unit_status(pod_status) # Assertions assert type(juju_unit_status) == MaintenanceStatus assert juju_unit_status.message == "Pod is getting ready"