Ignore:
Timestamp:
Dec 15, 2009, 1:42:15 PM (17 years ago)
Author:
Jorge Pérez <josp.jorge@…>
Branches:
1941-docker-image-to-test, devel, master
Children:
8642d7e
Parents:
71d0868
Message:

refs #812 : merging changes from tolsh

git-svn-id: ​https://www.tol-project.org/svn/tolp/trunk@1811 be4846ae-f051-483a-831f-b64e7d08527f

File:
1 edited

Legend:

Unmodified
Added
Removed
  • tolbase/lib/rmtps_client/rmtps_client.tcl

    r71d0868 rbc98cf7  
    99
    1010package provide rmtps_client 1.0
     11
     12package require base64
     13
     14if { [ catch { package require tlogger } ] } {
     15  namespace eval tlogger {
     16    variable _level "error"
     17
     18    proc init { svc {logfile ""} } {
     19    }
     20   
     21    proc level { svc l } {
     22      variable _level $l
     23    }
     24
     25    proc log { l msg } {
     26      variable _level
     27
     28      if { $l eq $_level } {
     29        puts $msg
     30      }
     31    }
     32  }
     33}
    1134
    1235###############################################################################
    … …  
    3861  #
    3962  variable mydir [file normalize [file dir [info script]]]
     63
     64 
     65}
     66
     67proc ::rmtps_client::init { {logfile ""} } {
     68  ::tlogger::init  rmtps_client $logfile
     69  ::tlogger::level rmtps_client "error"
     70}
     71
     72proc ::rmtps_client::log { level msg } {
     73 
     74  ::tlogger::log rmtps_client $level $msg
    4075}
    4176
    … …  
    96131  variable error_reason
    97132
     133  log "debug" "wait_result $chan"
     134
    98135  if {![eof $chan]} {
    99136    if {[gets $chan data] == -1} {
     137      log "debug" "wait_result : incomplete data"
    100138      return;                   # only handle complete lines
    101139    }
    … …  
    106144    fileevent $chan readable {}
    107145    set error_reason "end of channel from server"
     146    log "warn" "wait_result : end of channel from server"
    108147    # Cancel vwait
    109148    #
    … …  
    116155  # Return the data via the vwaited variable
    117156  #
     157  log "debug" "wait_result read : $data"
    118158  set server_result $data
    119159}
    … …  
    128168  variable server_result
    129169  variable error_reason
     170
     171  log "debug" "handle_timeout $chan"
    130172
    131173  # Set result from server to empty to return from vwait
    … …  
    161203  variable asking_error
    162204
     205  log "debug" "enter ask_server $host $port $request"
     206
    163207  # open channel to server
    164208  #
    … …  
    190234  vwait ::rmtps_client::server_result
    191235 
    192 #  if {$asking_error} {
    193 #    set asking_error 0
    194 #  } elseif {[string is integer $server_result] && $server_result==0} {
    195 #    set asking_error 1
    196 #    set error_reason [ask_server $host $port "LERROR"]
    197 #  }
    198236  catch {close $chan}
     237
     238  log "debug" "enter ask_server $host $port $server_result"
     239 
    199240  set server_result
    200241}
    … …  
    218259proc ::rmtps_client::server_ping { host port } {
    219260
     261  log "debug" "enter server_ping $host $port"
     262
    220263  # send request to server
    221264  #
    222265  set ans [ask_server $host $port "PING"]
    223   expr {$ans eq "RMTPS_SERVER WORKING"}
     266  set result [expr {$ans eq "RMTPS_SERVER WORKING"}]
     267
     268  log "debug" "leave server_ping $host $port"
     269
     270  set result
    224271}
    225272
    … …  
    243290proc ::rmtps_client::ps_is_active { host port PID } {
    244291
     292  log "debug" "enter ps_is_active $host $port $PID"
     293
    245294  # send request to server
    246295  #
    247296  set result [ask_server $host $port "ALIVE $PID"]
    248   # Answer from server must be an integer or boolean value
    249   #
    250   if {![string is integer $result] || ![string is boolean $result]} {
     297
     298  log "debug" "from ask_server = '$result'"
     299
     300  # Answer from server must be an integer value
     301  #
     302  if { $result eq "" || ![string is integer $result] ||
     303      ![string is boolean $result] } {
    251304    set result -1
    252305  } else {
    … …  
    255308    set result [expr {!!$result}]
    256309  }
     310
     311  log "debug" "leave ps_is_active $host $port $PID : $result"
     312
     313  set result
    257314}
    258315
    … …  
    277334###############################################################################
    278335proc ::rmtps_client::ps_kill { host port PID } {
     336
     337  log "debug" "enter ps_kill $host $port $PID"
    279338
    280339  # send request to server
    … …  
    288347    # Make sure 0, 1 or -1 is returned
    289348    #
    290     expr {$result==-1?-1:$result!=0}
    291   }
     349    set result [expr {$result==-1?-1:$result!=0}]
     350  }
     351
     352  log "debug" "leave ps_kill $host $port $PID : $result"
     353
     354  set result
    292355}
    293356
    … …  
    310373proc ::rmtps_client::ps_run { host port cmdline } {
    311374
     375  log "debug" "enter ps_run $host $port $cmdline"
     376
    312377  # send request to server
    313378  #
    … …  
    318383    set result 0
    319384  }
     385
     386  log "debug" "leave ps_run $host $port $cmdline : $result"
     387
     388  set result
     389}
     390
     391
     392###############################################################################
     393#
     394#  ps_runtol -- execute a TOL process on a remote host
     395#
     396#   Arguments --
     397#
     398#     host        - computer (remote host) where RmtPS_Server is running
     399#     port        - port where the server socket is listening
     400#     cmdln_args  - TOL arguments
     401#
     402#   Return --
     403#
     404#     PID of the process if cmdline could be executed
     405#     0 if the command line could not be executed
     406#
     407###############################################################################
     408proc ::rmtps_client::ps_runtol { host port cmdln_args } {
     409
     410  log "debug" "enter ps_runtol $host $port $cmdln_args"
     411
     412  # send request to server
     413  #
     414  set cmdln64 [ base64::encode -wrapchar "" $cmdln_args ]
     415  #set cmdln64 $cmdln_args
     416  set result [ask_server $host $port "RUNTOL $cmdln64"]
     417  # Make sure that 0 or PID>0 is returned
     418  #
     419  if {![string is integer $result] || $result<0} {
     420    set result 0
     421  }
     422
     423  log "debug" "leave ps_runtol $host $port $cmdln_args : $result"
     424
    320425  set result
    321426}
Note: See TracChangeset for help on using the changeset viewer.