예제 #1
0
 def test_list_pod_with_continue_token(self, load_incluster_config,
                                       list_namespaced_pod, delete_pod):
     pod1 = MagicMock()
     pod1.metadata.name = 'dummy'
     pod1.status.phase = 'Succeeded'
     pod1.status.reason = None
     pods = MagicMock()
     pods.metadata._continue = 'dummy-token'
     pods.items = [pod1]
     next_pods = MagicMock()
     next_pods.metadata._continue = None
     next_pods.items = [pod1]
     list_namespaced_pod.side_effect = [pods, next_pods]
     kubernetes_command.cleanup_pods(
         self.parser.parse_args([
             'kubernetes', 'cleanup-pods', '--namespace',
             'awesome-namespace'
         ]))
     calls = [
         call.first(namespace='awesome-namespace', limit=500),
         call.second(namespace='awesome-namespace',
                     limit=500,
                     _continue='dummy-token'),
     ]
     list_namespaced_pod.assert_has_calls(calls)
     delete_pod.assert_called_with('dummy', 'awesome-namespace')
     load_incluster_config.assert_called_once()
예제 #2
0
 def test_cleanup_succeeded_pods(self, load_incluster_config, list_namespaced_pod, delete_pod):
     pod1 = MagicMock()
     pod1.metadata.name = 'dummy'
     pod1.status.phase = 'Succeeded'
     pod1.status.reason = None
     pods = list_namespaced_pod()
     pods.metadata._continue = None
     pods.items = [pod1]
     kubernetes_command.cleanup_pods(
         self.parser.parse_args(['kubernetes', 'cleanup-pods', '--namespace', 'awesome-namespace'])
     )
     delete_pod.assert_called_with('dummy', 'awesome-namespace')
     load_incluster_config.assert_called_once()
예제 #3
0
 def test_cleanup_api_exception_continue(self, load_incluster_config, list_namespaced_pod, delete_pod):
     delete_pod.side_effect = kubernetes.client.rest.ApiException(status=0)
     pod1 = MagicMock()
     pod1.metadata.name = 'dummy'
     pod1.status.phase = 'Succeeded'
     pod1.status.reason = None
     pods = list_namespaced_pod()
     pods.metadata._continue = None
     pods.items = [pod1]
     kubernetes_command.cleanup_pods(
         self.parser.parse_args(['kubernetes', 'cleanup-pods', '--namespace', 'awesome-namespace'])
     )
     load_incluster_config.assert_called_once()
예제 #4
0
 def test_no_cleanup_failed_pods_wo_restart_policy_never(
     self, load_incluster_config, list_namespaced_pod, delete_pod
 ):
     pod1 = MagicMock()
     pod1.metadata.name = 'dummy2'
     pod1.status.phase = 'Failed'
     pod1.status.reason = None
     pod1.spec.restart_policy = 'Always'
     pods = list_namespaced_pod()
     pods.metadata._continue = None
     pods.items = [pod1]
     kubernetes_command.cleanup_pods(
         self.parser.parse_args(['kubernetes', 'cleanup-pods', '--namespace', 'awesome-namespace'])
     )
     delete_pod.assert_not_called()
     load_incluster_config.assert_called_once()
예제 #5
0
 def test_running_pods_are_not_cleaned(self, load_incluster_config,
                                       list_namespaced_pod, delete_pod):
     pod1 = MagicMock()
     pod1.metadata.name = 'dummy'
     pod1.status.phase = 'Running'
     pod1.status.reason = None
     pods = MagicMock()
     pods.metadata._continue = None
     pods.items = [pod1]
     list_namespaced_pod.return_value = pods
     kubernetes_command.cleanup_pods(
         self.parser.parse_args([
             'kubernetes', 'cleanup-pods', '--namespace',
             'awesome-namespace'
         ]))
     list_namespaced_pod.assert_called_once_with(
         namespace='awesome-namespace', limit=500)
     delete_pod.assert_not_called()
     load_incluster_config.assert_called_once()
예제 #6
0
 def test_cleanup_evicted_pods(self, load_incluster_config,
                               list_namespaced_pod, delete_pod):
     pod1 = MagicMock()
     pod1.metadata.name = 'dummy4'
     pod1.status.phase = 'Failed'
     pod1.status.reason = 'Evicted'
     pod1.spec.restart_policy = 'Never'
     pods = MagicMock()
     pods.metadata._continue = None
     pods.items = [pod1]
     list_namespaced_pod.return_value = pods
     kubernetes_command.cleanup_pods(
         self.parser.parse_args([
             'kubernetes', 'cleanup-pods', '--namespace',
             'awesome-namespace'
         ]))
     list_namespaced_pod.assert_called_once_with(
         namespace='awesome-namespace', limit=500)
     delete_pod.assert_called_with('dummy4', 'awesome-namespace')
     load_incluster_config.assert_called_once()