summaryrefslogtreecommitdiffstats
path: root/lib/dominoRPC/Communication-remote
blob: 77a96d7397a8e2da31a045c5c753d6e99ab92581 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
#!/usr/bin/env python
#
# Autogenerated by Thrift Compiler (0.9.3)
#
# DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
#
#  options string: py
#

import sys
import pprint
from urlparse import urlparse
from thrift.transport import TTransport
from thrift.transport import TSocket
from thrift.transport import TSSLSocket
from thrift.transport import THttpClient
from thrift.protocol import TBinaryProtocol

from domino import Communication
from domino.ttypes import *

if len(sys.argv) <= 1 or sys.argv[1] == '--help':
  print('')
  print('Usage: ' + sys.argv[0] + ' [-h host[:port]] [-u url] [-f[ramed]] [-s[sl]] function [arg1 [arg2...]]')
  print('')
  print('Functions:')
  print('  HeartBeatMessage d_heartbeat(HeartBeatMessage msg)')
  print('  RegisterResponseMessage d_register(RegisterMessage msg)')
  print('  SubscribeResponseMessage d_subscribe(SubscribeMessage msg)')
  print('  PublishResponseMessage d_publish(PublishMessage msg)')
  print('  PushResponseMessage d_push(PushMessage msg)')
  print('  QueryResponseMessage d_query(QueryMessage msg)')
  print('')
  sys.exit(0)

pp = pprint.PrettyPrinter(indent = 2)
host = 'localhost'
port = 9090
uri = ''
framed = False
ssl = False
http = False
argi = 1

if sys.argv[argi] == '-h':
  parts = sys.argv[argi+1].split(':')
  host = parts[0]
  if len(parts) > 1:
    port = int(parts[1])
  argi += 2

if sys.argv[argi] == '-u':
  url = urlparse(sys.argv[argi+1])
  parts = url[1].split(':')
  host = parts[0]
  if len(parts) > 1:
    port = int(parts[1])
  else:
    port = 80
  uri = url[2]
  if url[4]:
    uri += '?%s' % url[4]
  http = True
  argi += 2

if sys.argv[argi] == '-f' or sys.argv[argi] == '-framed':
  framed = True
  argi += 1

if sys.argv[argi] == '-s' or sys.argv[argi] == '-ssl':
  ssl = True
  argi += 1

cmd = sys.argv[argi]
args = sys.argv[argi+1:]

if http:
  transport = THttpClient.THttpClient(host, port, uri)
else:
  socket = TSSLSocket.TSSLSocket(host, port, validate=False) if ssl else TSocket.TSocket(host, port)
  if framed:
    transport = TTransport.TFramedTransport(socket)
  else:
    transport = TTransport.TBufferedTransport(socket)
protocol = TBinaryProtocol.TBinaryProtocol(transport)
client = Communication.Client(protocol)
transport.open()

if cmd == 'd_heartbeat':
  if len(args) != 1:
    print('d_heartbeat requires 1 args')
    sys.exit(1)
  pp.pprint(client.d_heartbeat(eval(args[0]),))

elif cmd == 'd_register':
  if len(args) != 1:
    print('d_register requires 1 args')
    sys.exit(1)
  pp.pprint(client.d_register(eval(args[0]),))

elif cmd == 'd_subscribe':
  if len(args) != 1:
    print('d_subscribe requires 1 args')
    sys.exit(1)
  pp.pprint(client.d_subscribe(eval(args[0]),))

elif cmd == 'd_publish':
  if len(args) != 1:
    print('d_publish requires 1 args')
    sys.exit(1)
  pp.pprint(client.d_publish(eval(args[0]),))

elif cmd == 'd_push':
  if len(args) != 1:
    print('d_push requires 1 args')
    sys.exit(1)
  pp.pprint(client.d_push(eval(args[0]),))

elif cmd == 'd_query':
  if len(args) != 1:
    print('d_query requires 1 args')
    sys.exit(1)
  pp.pprint(client.d_query(eval(args[0]),))

else:
  print('Unrecognized method %s' % cmd)
  sys.exit(1)

transport.close()