Use default plugin list when listing Forbidden
Listing the plugins installed on a Jenkins instance requires full administrative permissions. For cases where we don't have permission to read the plugin list, we should just fall back to the default list. Story: 2000618 Task: 3052 Change-Id: I924f237f5f175216200668d133092f2357f6d9d3
This commit is contained in:
parent
8d3d915aa0
commit
cc200dade0
@ -112,7 +112,7 @@ class JenkinsManager(object):
|
||||
plugins_list = self.jenkins.get_plugins().values()
|
||||
|
||||
except jenkins.JenkinsException as e:
|
||||
if re.search("Connection refused", str(e)):
|
||||
if re.search("(Connection refused|Forbidden)", str(e)):
|
||||
logger.warning(
|
||||
"Unable to retrieve Jenkins Plugin Info from {0},"
|
||||
" using default empty plugins info list.".format(
|
||||
|
@ -68,3 +68,17 @@ class TestCaseTestJenkinsManager(base.BaseTestCase):
|
||||
|
||||
self.builder.delete_old_managed()
|
||||
self.assertEquals(patches['delete_job'].call_count, 2)
|
||||
|
||||
def _get_plugins_info_error_test(self, error_string):
|
||||
builder = jenkins_jobs.builder.JenkinsManager(self.jjb_config)
|
||||
exception = jenkins_jobs.builder.jenkins.JenkinsException(error_string)
|
||||
with mock.patch.object(builder.jenkins, 'get_plugins',
|
||||
side_effect=exception):
|
||||
plugins_info = builder.get_plugins_info()
|
||||
self.assertEqual([_plugins_info['plugin1']], plugins_info)
|
||||
|
||||
def test_get_plugins_info_handles_connectionrefused_errors(self):
|
||||
self._get_plugins_info_error_test('Connection refused')
|
||||
|
||||
def test_get_plugins_info_handles_forbidden_errors(self):
|
||||
self._get_plugins_info_error_test('Forbidden')
|
||||
|
Loading…
Reference in New Issue
Block a user