File x2gopgwrapper_net of Package x2go

#!/bin/bash

cd ~
#use only with sudo !!

SERVER=$1
UNAME=$SUDO_USER

case "$2" in

getdisplays)
  ssh -i /root/.x2go/ssh/.pg/id_dsa postgres@$SERVER "echo \"select '|'||display||'|' from sessions;\"|psql -t x2go_sessions"
  ;;

getports)
  ssh -i /root/.x2go/ssh/.pg/id_dsa postgres@$SERVER "echo \"select '|'||port||'|' from used_ports;\"|psql -t x2go_sessions"
  ;;

getservers)
  ssh -i /root/.x2go/ssh/.pg/id_dsa postgres@$SERVER "echo \"select server,count(*) from sessions where status != 'F' group by server;\"|psql -t x2go_sessions"
  ;;

listsessions)
  ssh -i /root/.x2go/ssh/.pg/id_dsa postgres@$SERVER "echo \"select agent_pid, session_id, display, server, status,\
   to_char(init_time,'DD.MM.YY*HH24:MI:SS'),cookie,client,gr_port,\
   sound_port,to_char(last_time,'DD.MM.YY*HH24:MI:SS'),uname,\
   to_char(now()-init_time,'SSSS'),fs_port from  sessions  \
   where status !='F' and server='$3' and uname='$UNAME' order by status desc;\"|psql -t x2go_sessions"
  ;;

listsessions_all)
  ssh -i /root/.x2go/ssh/.pg/id_dsa postgres@$SERVER "echo \"select agent_pid, session_id, display, server, status,\
   to_char(init_time,'DD.MM.YY*HH24:MI:SS'),cookie,client,gr_port,\
   sound_port,to_char(last_time,'DD.MM.YY*HH24:MI:SS'),uname,\
   to_char(now()-init_time,'SSSS'),fs_port  from  sessions  \
   where status !='F' and uname='$UNAME' order by status desc;\"|psql -t x2go_sessions"
  ;;

listsessionsroot)
  if [ "$UNAME" != "root" ]
  then
    echo "$UNAME, You have not permission to do this job!"
    exit  
  fi
  ssh -i /root/.x2go/ssh/.pg/id_dsa postgres@$SERVER "echo \"select agent_pid, session_id, display, server, status,\
   to_char(init_time,'DD.MM.YY*HH24:MI:SS'),cookie,client,gr_port,\
   sound_port,to_char(last_time,'DD.MM.YY*HH24:MI:SS'),uname,\
   to_char(now()-init_time,'SSSS'),fs_port  from  sessions  \
   where server='$3'  order by status desc;\"|psql -t x2go_sessions"
  ;;

listsessionsroot_all)
  if [ "$UNAME" != "root" ]
  then
    echo "$UNAME, You have not permission to do this job!"
    exit  
  fi
  ssh -i /root/.x2go/ssh/.pg/id_dsa postgres@$SERVER "echo \"select agent_pid, session_id, display, server, status,\
   to_char(init_time,'DD.MM.YY*HH24:MI:SS'),cookie,client,gr_port,\
   sound_port,to_char(last_time,'DD.MM.YY*HH24:MI:SS'),uname,\
   to_char(now()-init_time,'SSSS'),fs_port  from  sessions  \
   order by status desc;\"|psql -t x2go_sessions"
  ;;

listsusp)
  if [ "$UNAME" != "root" ]
  then
    echo "$UNAME, You have not permission to do this job!"
    exit  
  fi
  ssh -i /root/.x2go/ssh/.pg/id_dsa postgres@$SERVER "echo \"select session_id, display, uname, server,extract( day from now()-last_time)*24*60+extract(hour from now()-last_time)*60+extract(minute from now()-last_time)\
  from sessions where server='$3' and status='S';\"|psql -t x2go_sessions"
  ;;


listallrunning)
  if [ "$UNAME" != "root" ]
  then
    echo "$UNAME, You have not permission to do this job!"
    exit  
  fi
  ssh -i /root/.x2go/ssh/.pg/id_dsa postgres@$SERVER "echo \"select agent_pid, session_id, display, server, status,\
   to_char(init_time,'DD.MM.YY*HH24:MI:SS'),cookie,client,gr_port,\
   sound_port,to_char(last_time,'DD.MM.YY*HH24:MI:SS'),uname,\
   to_char(now()-init_time,'SSSS'),fs_port  from  sessions  \
   where status='R';\"|psql -t x2go_sessions"
  ;;

listmails)
  if [ "$UNAME" != "root" ]
  then
    echo "$UNAME, You have not permission to do this job!"
    exit  
  fi
  ssh -i /root/.x2go/ssh/.pg/id_dsa postgres@$SERVER "echo \"select user_messages.mess_id,sessions.session_id,\
      sessions.uname,sessions.display from sessions,user_messages,\
      messages where sessions.uname=user_messages.uname and sessions.status!='F'\
      and messages.mess_id=user_messages.mess_id and sessions.server='$3';\"|psql -t x2go_sessions"
  ;;

getmail)
  if [ "$UNAME" != "root" ]
  then
    echo "$UNAME, You have not permission to do this job!"
    exit  
  fi
  ssh -i /root/.x2go/ssh/.pg/id_dsa postgres@$SERVER "echo \"select message\
      from messages where mess_id='$3';\"|psql -t x2go_sessions"
  ;;


rmmail)
  if [ "$UNAME" != "root" ]
  then
    echo "$UNAME, You have not permission to do this job!"
    exit  
  fi
  ssh -i /root/.x2go/ssh/.pg/id_dsa postgres@$SERVER "echo \"delete from \
  user_messages where mess_id='$3' and uname='$4';\"|psql -t x2go_sessions"
  ;;


rmsessionsroot)
  if [ "$UNAME" != "root" ]
  then
    echo "$UNAME, You have not permission to do this job!"
    exit  
  fi
  ssh -i /root/.x2go/ssh/.pg/id_dsa postgres@$SERVER "echo \"delete from  sessions  \
   where session_id='$3' ;\"|psql -t x2go_sessions"
  ;;


getagent)
  ssh -i /root/.x2go/ssh/.pg/id_dsa postgres@$SERVER "echo \"select agent_pid from sessions  where session_id = '$3';\"|psql -t x2go_sessions"
  ;;

getdisplay)
  ssh -i /root/.x2go/ssh/.pg/id_dsa postgres@$SERVER "echo \"select display from sessions  where session_id = '$3';\"|psql -t x2go_sessions"
  ;;

changestatus)
  ssh -i /root/.x2go/ssh/.pg/id_dsa postgres@$SERVER "echo \"update sessions set last_time=now(),status='$3' where session_id = '$4' and uname='$UNAME';\"|psql -t x2go_sessions"
  ;;

resume)
  ssh -i /root/.x2go/ssh/.pg/id_dsa postgres@$SERVER "echo \"update sessions set last_time=now(),status='R',client='$3' where session_id = '$4' and uname='$UNAME';\"|psql -t x2go_sessions"
  ;;

insertsession)
  ssh -i /root/.x2go/ssh/.pg/id_dsa postgres@$SERVER "echo \"insert into sessions (display,server,uname,session_id) values \
  ('$3','$4','$UNAME','$5');\"|psql x2go_sessions"
  ;;

createsession)
  ssh -i /root/.x2go/ssh/.pg/id_dsa postgres@$SERVER "echo \"update sessions set status='R',last_time=now(),cookie='$3',agent_pid='$4',\
   client='$5',gr_port='$6',sound_port='$7',fs_port='$8' where session_id='$9' and uname='$UNAME';\"|psql x2go_sessions"
  ;;

insertport)
  ssh -i /root/.x2go/ssh/.pg/id_dsa postgres@$SERVER "echo \"insert into used_ports (server,session_id,port) values \
  ('$3','$4','$5');\"|psql x2go_sessions"
  ;;

insertmount)
  ssh -i /root/.x2go/ssh/.pg/id_dsa postgres@$SERVER "echo \"insert into mounts (session_id,path,client) values \
  ('$3','$4','$5');\"|psql x2go_sessions"
  ;;

deletemount)
  ssh -i /root/.x2go/ssh/.pg/id_dsa postgres@$SERVER "echo \"delete from mounts where session_id='$3' and path='$4';\"|psql x2go_sessions"
  ;;

getmounts)
  ssh -i /root/.x2go/ssh/.pg/id_dsa postgres@$SERVER "echo \"select client,path from mounts where session_id = '$3';\"|psql -t x2go_sessions"
  ;;

*)
  echo "$2: wrong argument"
  ;;

esac

openSUSE Build Service is sponsored by