Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -14,4 +14,5 @@ dist
*.stackdump
dist/
.venv*/
venv/
venv/
package/build/
2 changes: 1 addition & 1 deletion package/cloudshell/cm/customscript/customscript_shell.py
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ def execute_script(self, command_context, script_conf_json, cancellation_context
self._connect(service, cancel_sampler, script_conf.timeout_minutes)
logger.info('Done.')

service.execute(script_file, script_conf.host_conf.parameters, output_writer, script_conf.print_output)
return service.execute(script_file, script_conf.host_conf.parameters, output_writer, script_conf.print_output)

def _download_script(self, script_repo, logger, cancel_sampler, verify_certificate):
"""
Expand Down
20 changes: 15 additions & 5 deletions package/cloudshell/cm/customscript/domain/linux_script_executor.py
Original file line number Diff line number Diff line change
Expand Up @@ -86,9 +86,9 @@ def execute(self, script_file, env_vars, output_writer, print_output=True):
self.logger.info('Done.')

self.logger.info('Running "%s" on target machine ...' % script_file.name)
self.run_script(tmp_folder, script_file, env_vars, output_writer, print_output)
output = self.run_script(tmp_folder, script_file, env_vars, output_writer, self.logger, print_output)
self.logger.info('Done.')

return output
finally:
self.logger.info('Deleting "%s" folder from target machine ...' % tmp_folder)
self.delete_temp_folder(tmp_folder)
Expand Down Expand Up @@ -122,13 +122,14 @@ def copy_script(self, tmp_folder, script_file):
scp.close()
fl.close()

def run_script(self, tmp_folder, script_file, env_vars, output_writer, print_output=True):
def run_script(self, tmp_folder, script_file, env_vars, output_writer, logger, print_output=True):
"""
:type tmp_folder: str
:type script_file: ScriptFile
:type env_vars: dict
:type output_writer: ReservationOutputWriter
:type print_output: bool
:type logger: logging.Logger
"""
code = ''
for key, value in (env_vars or {}).items():
Expand All @@ -138,11 +139,20 @@ def run_script(self, tmp_folder, script_file, env_vars, output_writer, print_out
code += 'sh '+tmp_folder+'/'+script_file.name
print(code)
result = self._run_cancelable(code)
logger.info("std_out:")
logger.info(result.std_out)
if result.std_err:
logger.error("std_error:")
logger.error(result.std_err)
if print_output:
output_writer.write(result.std_out)
output_writer.write(result.std_err)
try:
output_writer.write(result.std_out)
output_writer.write(result.std_err)
except Exception as e:
logger.error(f"Issue printing output to console. {type(e).__name__}: {str(e)}")
if not result.success:
raise Exception(ErrorMsg.RUN_SCRIPT % result.std_err)
return result.std_out

def delete_temp_folder(self, tmp_folder):
"""
Expand Down
2 changes: 1 addition & 1 deletion package/version.txt
Original file line number Diff line number Diff line change
@@ -1 +1 @@
2.2.0
2.2.1