aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/ruby/bin/noproto_server.rb
diff options
context:
space:
mode:
authorGravatar temiola <temiola@google.com>2015-01-07 18:43:40 -0800
committerGravatar Tim Emiola <temiola@google.com>2015-01-08 13:27:44 -0800
commit6e48a4258ac4958e4392d8091d16267c1c1c2320 (patch)
treebf4903217abb61b666ab772ce17b0ca5b33c6d7d /src/ruby/bin/noproto_server.rb
parent228ad9b85373f57ad6ef45740163fad25534b4da (diff)
Switches to using protobuf-ruby.
- Adds a dependency to protobuf-ruby in the gemfile - Updates math.proto to proto3 - Updates math server and client to use protoc protos - Updates interop server and client to use protoc protos Also - Fixes/Updates the noproto samples TESTED: math_server and math_client can communicate locally. Change on 2015/01/07 by temiola <temiola@google.com> ------------- Created by MOE: http://code.google.com/p/moe-java MOE_MIGRATED_REVID=83483448
Diffstat (limited to 'src/ruby/bin/noproto_server.rb')
-rw-r--r--src/ruby/bin/noproto_server.rb54
1 files changed, 45 insertions, 9 deletions
diff --git a/src/ruby/bin/noproto_server.rb b/src/ruby/bin/noproto_server.rb
index 7b74fa13ec..d410827b22 100644
--- a/src/ruby/bin/noproto_server.rb
+++ b/src/ruby/bin/noproto_server.rb
@@ -37,23 +37,24 @@ lib_dir = File.join(File.dirname(this_dir), 'lib')
$LOAD_PATH.unshift(lib_dir) unless $LOAD_PATH.include?(lib_dir)
require 'grpc'
+require 'optparse'
-class EchoMsg
- def marshal
+class NoProtoMsg
+ def self.marshal(o)
''
end
def self.unmarshal(o)
- EchoMsg.new
+ NoProtoMsg.new
end
end
-class EchoService
+class NoProtoService
include GRPC::GenericService
- rpc :AnRPC, EchoMsg, EchoMsg
+ rpc :AnRPC, NoProtoMsg, NoProtoMsg
end
-class Echo < EchoService
+class NoProto < NoProtoService
def initialize(default_var='ignored')
end
@@ -63,11 +64,46 @@ class Echo < EchoService
end
end
+def load_test_certs
+ this_dir = File.expand_path(File.dirname(__FILE__))
+ data_dir = File.join(File.dirname(this_dir), 'spec/testdata')
+ files = ['ca.pem', 'server1.key', 'server1.pem']
+ files.map { |f| File.open(File.join(data_dir, f)).read }
+end
+
+def test_server_creds
+ certs = load_test_certs
+ server_creds = GRPC::Core::ServerCredentials.new(nil, certs[1], certs[2])
+end
+
def main
- s = GRPC::RpcServer.new()
- s.add_http2_port('localhost:9090')
- s.handle(Echo)
+ options = {
+ 'host' => 'localhost:9090',
+ 'secure' => false
+ }
+ OptionParser.new do |opts|
+ opts.banner = 'Usage: [--host <hostname>:<port>] [--secure|-s]'
+ opts.on('--host HOST', '<hostname>:<port>') do |v|
+ options['host'] = v
+ end
+ opts.on('-s', '--secure', 'access using test creds') do |v|
+ options['secure'] = true
+ end
+ end.parse!
+
+ if options['secure']
+ s = GRPC::RpcServer.new(creds: test_server_creds)
+ s.add_http2_port(options['host'], true)
+ logger.info("... running securely on #{options['host']}")
+ else
+ s = GRPC::RpcServer.new
+ s.add_http2_port(options['host'])
+ logger.info("... running insecurely on #{options['host']}")
+ end
+
+ s.handle(NoProto)
s.run
end
+
main