Ignore more exceptions in quota list
Additional exceptions can be thrown here, ignore additional project lookup exceptions, but still not all. Server failures are still interesting, for example. Change-Id: I9a750ae8e8efa29a36bbd1e34b50b6ace0658260
This commit is contained in:
		@@ -135,7 +135,10 @@ class ListQuota(command.Lister):
 | 
			
		||||
                try:
 | 
			
		||||
                    data = compute_client.quotas.get(p)
 | 
			
		||||
                except Exception as ex:
 | 
			
		||||
                    if type(ex).__name__ == 'NotFound':
 | 
			
		||||
                    if (
 | 
			
		||||
                        type(ex).__name__ == 'NotFound' or
 | 
			
		||||
                        ex.http_status >= 400 and ex.http_status <= 499
 | 
			
		||||
                    ):
 | 
			
		||||
                        # Project not found, move on to next one
 | 
			
		||||
                        LOG.warning("Project %s not found: %s" % (p, ex))
 | 
			
		||||
                        continue
 | 
			
		||||
 
 | 
			
		||||
@@ -242,7 +242,7 @@ class TestQuotaList(TestQuota):
 | 
			
		||||
        self.assertEqual(self.compute_reference_data, ret_quotas[0])
 | 
			
		||||
        self.assertEqual(1, len(ret_quotas))
 | 
			
		||||
 | 
			
		||||
    def test_quota_list_compute_no_project(self):
 | 
			
		||||
    def test_quota_list_compute_no_project_not_found(self):
 | 
			
		||||
        # Make one of the projects disappear
 | 
			
		||||
        self.compute.quotas.get = mock.Mock(
 | 
			
		||||
            side_effect=[
 | 
			
		||||
@@ -266,6 +266,53 @@ class TestQuotaList(TestQuota):
 | 
			
		||||
        self.assertEqual(self.compute_reference_data, ret_quotas[0])
 | 
			
		||||
        self.assertEqual(1, len(ret_quotas))
 | 
			
		||||
 | 
			
		||||
    def test_quota_list_compute_no_project_4xx(self):
 | 
			
		||||
        # Make one of the projects disappear
 | 
			
		||||
        self.compute.quotas.get = mock.Mock(
 | 
			
		||||
            side_effect=[
 | 
			
		||||
                self.compute_quotas[0],
 | 
			
		||||
                exceptions.BadRequest("Bad request"),
 | 
			
		||||
            ],
 | 
			
		||||
        )
 | 
			
		||||
 | 
			
		||||
        arglist = [
 | 
			
		||||
            '--compute',
 | 
			
		||||
        ]
 | 
			
		||||
        verifylist = [
 | 
			
		||||
            ('compute', True),
 | 
			
		||||
        ]
 | 
			
		||||
        parsed_args = self.check_parser(self.cmd, arglist, verifylist)
 | 
			
		||||
 | 
			
		||||
        columns, data = self.cmd.take_action(parsed_args)
 | 
			
		||||
        ret_quotas = list(data)
 | 
			
		||||
 | 
			
		||||
        self.assertEqual(self.compute_column_header, columns)
 | 
			
		||||
        self.assertEqual(self.compute_reference_data, ret_quotas[0])
 | 
			
		||||
        self.assertEqual(1, len(ret_quotas))
 | 
			
		||||
 | 
			
		||||
    def test_quota_list_compute_no_project_5xx(self):
 | 
			
		||||
        # Make one of the projects disappear
 | 
			
		||||
        self.compute.quotas.get = mock.Mock(
 | 
			
		||||
            side_effect=[
 | 
			
		||||
                self.compute_quotas[0],
 | 
			
		||||
                exceptions.HTTPNotImplemented("Not implemented??"),
 | 
			
		||||
            ],
 | 
			
		||||
        )
 | 
			
		||||
 | 
			
		||||
        arglist = [
 | 
			
		||||
            '--compute',
 | 
			
		||||
        ]
 | 
			
		||||
        verifylist = [
 | 
			
		||||
            ('compute', True),
 | 
			
		||||
        ]
 | 
			
		||||
        parsed_args = self.check_parser(self.cmd, arglist, verifylist)
 | 
			
		||||
 | 
			
		||||
        self.assertRaises(
 | 
			
		||||
            exceptions.HTTPNotImplemented,
 | 
			
		||||
            self.cmd.take_action,
 | 
			
		||||
            parsed_args,
 | 
			
		||||
        )
 | 
			
		||||
 | 
			
		||||
    def test_quota_list_network(self):
 | 
			
		||||
        # Two projects with non-default quotas
 | 
			
		||||
        self.network.get_quota = mock.Mock(
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user