Example #1
0
    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
Example #2
0
    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