def os_execute_command(cmd_buf, print_out=0, print_err=0, ignore_err=0, fork=0, quiet=None, test_mode=None, time_out=None): r""" Run the given command in an OS SSH session and return the stdout, stderr and the return code. This function will obtain the global values for OS_HOST, OS_USERNAME, etc. Description of arguments: cmd_buf The command string to be run in an SSH session. print_out If this is set, this function will print the stdout/stderr generated by the shell command. print_err If show_err is set, this function will print a standardized error report if the shell command returns non-zero. ignore_err Indicates that errors encountered on the sshlib.execute_command are to be ignored. fork Indicates that sshlib.start is to be used rather than sshlib.execute_command. quiet Indicates whether this function should run the pissuing() function prints an "Issuing: <cmd string>" to stdout. This defaults to the global quiet value. test_mode If test_mode is set, this function will not actually run the command. This defaults to the global test_mode value. time_out The amount of time to allow for the execution of cmd_buf. A value of None means that there is no limit to how long the command may take. """ # Get global OS variable values. os_host = BuiltIn().get_variable_value("${OS_HOST}", default="") os_username = BuiltIn().get_variable_value("${OS_USERNAME}", default="") os_password = BuiltIn().get_variable_value("${OS_PASSWORD}", default="") if not gv.valid_value(os_host): return "", "", 1 if not gv.valid_value(os_username): return "", "", 1 if not gv.valid_value(os_password): return "", "", 1 open_connection_args = {'host': os_host, 'alias': 'os_connection'} login_args = {'username': os_username, 'password': os_password} return grs.execute_ssh_command(cmd_buf, open_connection_args, login_args, print_out, print_err, ignore_err, fork, quiet, test_mode, time_out)
def device_write(cmd_buf, print_out=0, quiet=None, test_mode=None): r""" Write the given command in a device SSH session and return the stdout, stderr and the return code. This function is useful for writing to a switch. This function will obtain the global values for DEVICE_HOST, DEVICE_USERNAME, etc. Description of arguments: cmd_buf The command string to be run in an SSH session. print_out If this is set, this function will print the stdout/stderr generated by the shell command. print_err If show_err is set, this function will print a standardized error report if the shell command returns non-zero. ignore_err Indicates that errors encountered on the sshlib.execute_command are to be ignored. fork Indicates that sshlib.start is to be used rather than sshlib.execute_command. quiet Indicates whether this function should run the pissuing() function prints an "Issuing: <cmd string>" to stdout. This defaults to the global quiet value. test_mode If test_mode is set, this function will not actually run the command. This defaults to the global test_mode value. """ # Get global DEVICE variable values. device_host = BuiltIn().get_variable_value("${DEVICE_HOST}", default="") device_username = BuiltIn().get_variable_value("${DEVICE_USERNAME}", default="") device_password = BuiltIn().get_variable_value("${DEVICE_PASSWORD}", default="") device_port = BuiltIn().get_variable_value("${DEVICE_PORT}", default="22") if not gv.valid_value(device_host): return "", "", 1 if not gv.valid_value(device_username): return "", "", 1 if not gv.valid_value(device_password): return "", "", 1 if not gv.valid_value(device_port): return "", "", 1 open_connection_args = {'host': device_host, 'alias': 'device_connection', 'port': device_port} login_args = {'username': device_username, 'password': device_password} return grs.execute_ssh_command(cmd_buf, open_connection_args, login_args, print_out, print_err=0, ignore_err=1, fork=0, quiet=quiet, test_mode=test_mode)