def update_node_labels(self): # Called on config update by main thread upon init or config-change or # it was not connected during last config update # NOTE: remote-server-handler forces a config update notification upon # join. # Or it could be called by timer thread, if last upate to API server # failed. # self.pending = False ret = kube_commands.kube_write_labels(self.set_labels) if (ret != 0): self.pending = True pause = remote_ctr_config[LABEL_RETRY] ts = (datetime.datetime.now() + datetime.timedelta(seconds=pause)) self.server.register_timer(ts, self.update_node_labels) log_debug("ret={} set={} pending={}".format(ret, str(self.set_labels), self.pending)) return
def test_write_labels(self, mock_subproc): self.init() common_test.set_kube_mock(mock_subproc) for (i, ct_data) in write_labels_test_data.items(): common_test.do_start_test("kube:write-labels", i, ct_data) ret = kube_commands.kube_write_labels(ct_data[common_test.ARGS]) if common_test.RETVAL in ct_data: assert ret == ct_data[common_test.RETVAL] if common_test.PROC_KILLED in ct_data: assert (common_test.procs_killed == ct_data[ common_test.PROC_KILLED]) if (common_test.POST in ct_data and (ct_data[common_test.POST] != labels)): print("expect={} labels={} mismatch".format( json.dumps(ct_data[common_test.POST], indent=4), json.dumps(labels, indent=4))) assert False