e2ab5cc2c8
Patch the python2-kubernetes-8.0.0-8.el7.noarch.rpm with recent bug fix commits required for proper kubernetes watch functionality. Patches watch.py up to commit 10ae476 in the 'base' repo (kubernetes-client/python-base). Commits are taken from the cloned github repo, saved in patch format, and applied as a patch to the source RPM. Reference: https://github.com/kubernetes-client/python-base/commits/master/watch/watch.py This patch includes commits beginning with d56fdbc, up to and including 10ae476 Testing: - Built and testing on local distributed cloud system - Similar testing to this patch but ased on locally modified package has been done on 1000 subcloud system - Examine/compare contents of installed package vs. expected - Generating events which trigger the watch conditions - Monitor watches for proper behaviour on expiry Story: 2008960 Task: 43053 Signed-off-by: Kyle MacLeod <kyle.macleod@windriver.com> Change-Id: I7ad78957b6ef61e7204c45f482f201d5c281385b
42 lines
1.4 KiB
Diff
42 lines
1.4 KiB
Diff
From 3c30a3099336a5976074c18ea61814646689b4a8 Mon Sep 17 00:00:00 2001
|
|
From: Julian Taylor <juliantaylor108@gmail.com>
|
|
Date: Sat, 19 Jan 2019 12:38:57 +0100
|
|
Subject: [PATCH 02/13] fix watching with a specified resource version
|
|
|
|
The watch code reset the version to the last found in the
|
|
response.
|
|
When you first list existing objects and then start watching from that
|
|
resource version the existing versions are older than the version you
|
|
wanted and the watch starts from the wrong version after the first
|
|
restart.
|
|
This leads to for example already deleted objects ending in the stream
|
|
again.
|
|
|
|
Fix this by setting the minimum resource version to reset from to the
|
|
input resource version. As long as k8s returns all objects in order in
|
|
the watch this should work.
|
|
We cannot use the integer value of the resource version to order it as
|
|
one should be treat the value as opaque.
|
|
|
|
Closes https://github.com/kubernetes-client/python/issues/700
|
|
---
|
|
watch/watch.py | 2 ++
|
|
1 file changed, 2 insertions(+)
|
|
|
|
diff --git a/watch/watch.py b/watch/watch.py
|
|
index 21899dd..a9c315c 100644
|
|
--- a/watch/watch.py
|
|
+++ b/watch/watch.py
|
|
@@ -122,6 +122,8 @@ class Watch(object):
|
|
return_type = self.get_return_type(func)
|
|
kwargs['watch'] = True
|
|
kwargs['_preload_content'] = False
|
|
+ if 'resource_version' in kwargs:
|
|
+ self.resource_version = kwargs['resource_version']
|
|
|
|
timeouts = ('timeout_seconds' in kwargs)
|
|
while True:
|
|
--
|
|
2.25.1
|
|
|