28
28
29
29
TIME_FORMAT = time .strftime ("%Y%m%d-%H%M%S" )
30
30
31
+ timeout = 180
32
+
31
33
API_RESOURCES = [
32
34
"RedisEnterpriseCluster" ,
33
35
"RedisEnterpriseDatabase" ,
@@ -75,7 +77,6 @@ def make_dir(directory):
75
77
76
78
77
79
def _get_namespaces_to_run_on (namespace ):
78
-
79
80
def _get_namespace_from_config ():
80
81
config_namespace = get_namespace_from_config ()
81
82
if not config_namespace :
@@ -96,6 +97,21 @@ def _get_namespace_from_config():
96
97
return namespace .split (',' )
97
98
98
99
100
+ def collect_from_ns (namespace , output_dir ):
101
+ "Collect the context of a specific namespace. Typically runs in parallel processes."
102
+ logger .info ("Started collecting from namespace '%s'" , namespace )
103
+ ns_output_dir = output_dir + ("/" + namespace if output_dir [- 1 ] != '/' else namespace )
104
+ make_dir (ns_output_dir )
105
+
106
+ get_redis_enterprise_debug_info (namespace , ns_output_dir )
107
+ collect_pod_rs_logs (namespace , ns_output_dir )
108
+ collect_resources_list (namespace , ns_output_dir )
109
+ collect_events (namespace , ns_output_dir )
110
+ collect_api_resources (namespace , ns_output_dir )
111
+ collect_api_resources_description (namespace , ns_output_dir )
112
+ collect_pods_logs (namespace , ns_output_dir )
113
+
114
+
99
115
def run (namespace_input , output_dir ):
100
116
"""
101
117
Collect logs
@@ -111,22 +127,9 @@ def run(namespace_input, output_dir):
111
127
make_dir (output_dir )
112
128
collect_cluster_info (output_dir )
113
129
114
- def collect_from_ns (namespace ):
115
- logger .info ("Started collecting from namespace '%s'" , namespace )
116
- ns_output_dir = output_dir + ("/" + namespace if output_dir [- 1 ] != '/' else namespace )
117
- make_dir (ns_output_dir )
118
-
119
- get_redis_enterprise_debug_info (namespace , ns_output_dir )
120
- collect_pod_rs_logs (namespace , ns_output_dir )
121
- collect_resources_list (namespace , ns_output_dir )
122
- collect_events (namespace , ns_output_dir )
123
- collect_api_resources (namespace , ns_output_dir )
124
- collect_api_resources_description (namespace , ns_output_dir )
125
- collect_pods_logs (namespace , ns_output_dir )
126
-
127
130
processes = []
128
131
for namespace in namespaces :
129
- p = Process (target = collect_from_ns , args = [namespace ])
132
+ p = Process (target = collect_from_ns , args = [namespace , output_dir ])
130
133
p .start ()
131
134
processes .append (p )
132
135
@@ -135,7 +138,7 @@ def collect_from_ns(namespace):
135
138
136
139
archive_files (output_dir , output_file_name )
137
140
logger .info ("Finished Redis Enterprise log collector" )
138
- logger .info ("--- Run time: %d minutes ---" , round (((time .time () - start_time )/ 60 ), 3 ))
141
+ logger .info ("--- Run time: %d minutes ---" , round (((time .time () - start_time ) / 60 ), 3 ))
139
142
140
143
141
144
def get_non_ready_rs_pod_names (namespace ):
@@ -576,7 +579,7 @@ def run_kubectl_describe(namespace, resource_type):
576
579
"when left empty will use namespace from kube config" )
577
580
parser .add_argument ('-o' , '--output_dir' , action = "store" , type = str )
578
581
parser .add_argument ('-t' , '--timeout' , action = "store" ,
579
- type = int , default = 180 ,
582
+ type = int , default = timeout ,
580
583
help = "time to wait for external commands to "
581
584
"finish execution "
582
585
"(default: 180s, specify 0 to not timeout) "
0 commit comments