[PATCH] Github 663: software update improvements

From: Daniel Henrique Barboza <dhbarboza82@gmail.com> - started considering just the return code of yum check-update instead of the existence of error output - ignoring any package declared after the 'Obsoleting Packages' warning Signed-off-by: Daniel Henrique Barboza <dhbarboza82@gmail.com> --- src/kimchi/yumparser.py | 14 +++++++++++++- tests/test_yumparser.py | 5 ++--- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/src/kimchi/yumparser.py b/src/kimchi/yumparser.py index 8151f86..792c3ae 100644 --- a/src/kimchi/yumparser.py +++ b/src/kimchi/yumparser.py @@ -229,10 +229,21 @@ def _include_line_checkupdate_output(line): return True +def _ignore_obsoleting_packages_in(output): + out = '' + for l in output.split('\n'): + if 'Obsoleting ' in l: + break + out += l + '\n' + return out + + def _filter_lines_checkupdate_output(output): if output is None: return [] + output = _ignore_obsoleting_packages_in(output) + out = [l for l in output.split('\n') if _include_line_checkupdate_output(l)] return out @@ -244,7 +255,8 @@ def _get_yum_checkupdate_output(): stdout=subprocess.PIPE, stderr=subprocess.PIPE) out, error = yum_update_cmd.communicate() - if error != '': + return_code = yum_update_cmd.returncode + if return_code == 1: return None return out diff --git a/tests/test_yumparser.py b/tests/test_yumparser.py index 69f411a..53a2d80 100644 --- a/tests/test_yumparser.py +++ b/tests/test_yumparser.py @@ -154,9 +154,8 @@ class YumParserTests(unittest.TestCase): def test_yum_checkupdate_parsing(self): output = _generate_yumcheckupdate_output() packages = get_yum_packages_list_update(output) - self.assertEqual(len(packages), 5) + self.assertEqual(len(packages), 3) self.assertEqual(packages[0].ui_from_repo, 'REPOSITORY1') self.assertEqual(packages[1].version, '20150611.-no-FAKE2') self.assertEqual(packages[2].name, 'PACKAGE3.dot.dot') - self.assertEqual(packages[3].arch, 'i386') - self.assertEqual(packages[4].arch, 'fakearch') + self.assertEqual(packages[2].arch, 'i386') -- 2.4.3

Reviewed-By: Ramon Medeiros < ramonn@linux.vnet.ibm.com> make check-local tested On 06/25/2015 05:12 PM, dhbarboza82@gmail.com wrote:
From: Daniel Henrique Barboza <dhbarboza82@gmail.com>
- started considering just the return code of yum check-update instead of the existence of error output
- ignoring any package declared after the 'Obsoleting Packages' warning
Signed-off-by: Daniel Henrique Barboza <dhbarboza82@gmail.com> --- src/kimchi/yumparser.py | 14 +++++++++++++- tests/test_yumparser.py | 5 ++--- 2 files changed, 15 insertions(+), 4 deletions(-)
diff --git a/src/kimchi/yumparser.py b/src/kimchi/yumparser.py index 8151f86..792c3ae 100644 --- a/src/kimchi/yumparser.py +++ b/src/kimchi/yumparser.py @@ -229,10 +229,21 @@ def _include_line_checkupdate_output(line): return True
+def _ignore_obsoleting_packages_in(output): + out = '' + for l in output.split('\n'): + if 'Obsoleting ' in l: + break + out += l + '\n' + return out + + def _filter_lines_checkupdate_output(output): if output is None: return []
+ output = _ignore_obsoleting_packages_in(output) + out = [l for l in output.split('\n') if _include_line_checkupdate_output(l)] return out @@ -244,7 +255,8 @@ def _get_yum_checkupdate_output(): stdout=subprocess.PIPE, stderr=subprocess.PIPE) out, error = yum_update_cmd.communicate() - if error != '': + return_code = yum_update_cmd.returncode + if return_code == 1: return None
return out diff --git a/tests/test_yumparser.py b/tests/test_yumparser.py index 69f411a..53a2d80 100644 --- a/tests/test_yumparser.py +++ b/tests/test_yumparser.py @@ -154,9 +154,8 @@ class YumParserTests(unittest.TestCase): def test_yum_checkupdate_parsing(self): output = _generate_yumcheckupdate_output() packages = get_yum_packages_list_update(output) - self.assertEqual(len(packages), 5) + self.assertEqual(len(packages), 3) self.assertEqual(packages[0].ui_from_repo, 'REPOSITORY1') self.assertEqual(packages[1].version, '20150611.-no-FAKE2') self.assertEqual(packages[2].name, 'PACKAGE3.dot.dot') - self.assertEqual(packages[3].arch, 'i386') - self.assertEqual(packages[4].arch, 'fakearch') + self.assertEqual(packages[2].arch, 'i386')
-- Ramon Nunes Medeiros Kimchi Developer Linux Technology Center Brazil IBM Systems & Technology Group Phone : +55 19 2132 7878 ramonn@br.ibm.com

Applied. Thanks. Regards, Aline Manera
participants (3)
-
Aline Manera
-
dhbarboza82@gmail.com
-
Ramon Medeiros