@@ -753,7 +753,7 @@ def call_service(self, command=[], # noqa: C901
753753 output = self .extra_output_process (output )
754754 output = output .replace (command , "" , 1 )
755755 # only strip first newline and leave formatting intact
756- output = re .sub (r"^\r?\r\n" , "" , output , 1 )
756+ output = re .sub (r"^\r?\r\n" , "" , output , count = 1 )
757757 output = output .rstrip ()
758758
759759 if command in command_output :
@@ -1083,9 +1083,6 @@ def __init__(self, connection, context, **kwargs):
10831083 self .timeout = connection .settings .RELOAD_TIMEOUT
10841084 self .dialog = Dialog (reload_statement_list + default_statement_list )
10851085 self .log_buffer = io .StringIO ()
1086- lb = UniconStreamHandler (self .log_buffer )
1087- lb .setFormatter (logging .Formatter (fmt = UNICON_LOG_FORMAT ))
1088- self .connection .log .addHandler (lb )
10891086 self .__dict__ .update (kwargs )
10901087
10911088 def call_service (self ,
@@ -1124,6 +1121,10 @@ def call_service(self,
11241121 raise ValueError ('append_error_pattern should be a list' )
11251122 self .error_pattern += append_error_pattern
11261123
1124+ lb = UniconStreamHandler (self .log_buffer )
1125+ lb .setFormatter (logging .Formatter (fmt = UNICON_LOG_FORMAT ))
1126+ self .connection .log .addHandler (lb )
1127+
11271128 # Clear log buffer
11281129 self .log_buffer .seek (0 )
11291130 self .log_buffer .truncate ()
@@ -1235,6 +1236,8 @@ def call_service(self,
12351236 # clear buffer
12361237 self .log_buffer .truncate ()
12371238
1239+ self .connection .log .removeHandler (lb )
1240+
12381241 if return_output :
12391242 self .result = ReloadResult (self .result , reload_output )
12401243
@@ -2053,6 +2056,7 @@ def __init__(self, connection, context, **kwargs):
20532056 self .timeout = connection .settings .HA_RELOAD_TIMEOUT
20542057 self .dialog = Dialog (ha_reload_statement_list + default_statement_list )
20552058 self .command = 'reload'
2059+ self .log_buffer = io .StringIO ()
20562060 self .__dict__ .update (kwargs )
20572061
20582062 def call_service (self , # noqa: C901
@@ -2085,6 +2089,14 @@ def call_service(self, # noqa: C901
20852089 raise ValueError ('append_error_pattern should be a list' )
20862090 self .error_pattern += append_error_pattern
20872091
2092+ lb = UniconStreamHandler (self .log_buffer )
2093+ lb .setFormatter (logging .Formatter (fmt = UNICON_LOG_FORMAT ))
2094+ self .connection .log .addHandler (lb )
2095+
2096+ # Clear log buffer
2097+ self .log_buffer .seek (0 )
2098+ self .log_buffer .truncate ()
2099+
20882100 if reply :
20892101 if dialog :
20902102 con .log .warning ("**** Both 'reply' and 'dialog' were provided "
@@ -2232,6 +2244,13 @@ def call_service(self, # noqa: C901
22322244 counter += 1
22332245
22342246 con .log .info ("+++ Reload Completed Successfully +++" )
2247+ self .log_buffer .seek (0 )
2248+ reload_output = self .log_buffer .read ()
2249+ # clear buffer
2250+ self .log_buffer .truncate ()
2251+
2252+ self .connection .log .removeHandler (lb )
2253+
22352254 self .result = True
22362255 if return_output :
22372256 self .result = ReloadResult (self .result , reload_output )
0 commit comments