murmur-rpc 0.0.8 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
metadata CHANGED
@@ -1,75 +1,77 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: murmur-rpc
3
- version: !ruby/object:Gem::Version
4
- prerelease:
5
- version: 0.0.8
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.1
6
5
  platform: ruby
7
- authors:
6
+ authors:
8
7
  - Brian Stolz
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
-
13
- date: 2011-05-05 00:00:00 +00:00
14
- default_executable:
15
- dependencies:
16
- - !ruby/object:Gem::Dependency
17
- name: rspec
11
+ date: 2015-10-21 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: zeroc-ice
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - '='
18
+ - !ruby/object:Gem::Version
19
+ version: 3.6.1
20
+ type: :runtime
18
21
  prerelease: false
19
- requirement: &id001 !ruby/object:Gem::Requirement
20
- none: false
21
- requirements:
22
- - - "="
23
- - !ruby/object:Gem::Version
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - '='
25
+ - !ruby/object:Gem::Version
26
+ version: 3.6.1
27
+ - !ruby/object:Gem::Dependency
28
+ name: rspec
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - '='
32
+ - !ruby/object:Gem::Version
24
33
  version: 1.3.0
25
34
  type: :development
26
- version_requirements: *id001
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - '='
39
+ - !ruby/object:Gem::Version
40
+ version: 1.3.0
27
41
  description: RPC interface for Murmur
28
42
  email: brian@tecnobrat.com
29
43
  executables: []
30
-
31
44
  extensions: []
32
-
33
- extra_rdoc_files:
34
- - README.rdoc
35
- files:
36
- - README.rdoc
45
+ extra_rdoc_files: []
46
+ files:
47
+ - README.md
37
48
  - Rakefile
38
49
  - lib/murmur-rpc.rb
39
- - lib/interfaces/ice.rb
40
- - vendor/ice/Murmur.rb
50
+ - lib/murmur-rpc/interfaces/ice.rb
51
+ - lib/murmur-rpc/version.rb
41
52
  - vendor/ice/Murmur.ice
42
- has_rdoc: true
53
+ - vendor/ice/Murmur.rb
43
54
  homepage: http://github.com/tecnobrat/murmur-rpc
44
55
  licenses: []
45
-
56
+ metadata: {}
46
57
  post_install_message:
47
- rdoc_options:
48
- - --quiet
49
- - --title
50
- - Murmur Ruby RPC
51
- - --main
52
- - README.rdoc
53
- require_paths:
58
+ rdoc_options: []
59
+ require_paths:
54
60
  - lib
55
- required_ruby_version: !ruby/object:Gem::Requirement
56
- none: false
57
- requirements:
61
+ required_ruby_version: !ruby/object:Gem::Requirement
62
+ requirements:
58
63
  - - ">="
59
- - !ruby/object:Gem::Version
64
+ - !ruby/object:Gem::Version
60
65
  version: 1.8.6
61
- required_rubygems_version: !ruby/object:Gem::Requirement
62
- none: false
63
- requirements:
66
+ required_rubygems_version: !ruby/object:Gem::Requirement
67
+ requirements:
64
68
  - - ">="
65
- - !ruby/object:Gem::Version
66
- version: "0"
69
+ - !ruby/object:Gem::Version
70
+ version: '0'
67
71
  requirements: []
68
-
69
72
  rubyforge_project:
70
- rubygems_version: 1.6.2
73
+ rubygems_version: 2.2.2
71
74
  signing_key:
72
- specification_version: 3
75
+ specification_version: 4
73
76
  summary: RPC interface for Murmur
74
77
  test_files: []
75
-
data/README.rdoc DELETED
@@ -1,83 +0,0 @@
1
- h1. Ruby Murmur Manager
2
-
3
- This is a quick library and control script for managing a murmur daemon. It supports both DBus and ICE (though you should really use ICE).
4
-
5
- h3. Getting and installing
6
-
7
- pre. git clone git://github.com/cheald/murmur-manager.git
8
- git submodule init
9
- git submodule update
10
-
11
- h3. Commands
12
-
13
- pre. [server-id] List a server's config
14
- [server-id] set [key] [val] Set a server's config value
15
- [server-id] start Start a server
16
- [server-id] stop Stop a server
17
- [server-id] destroy Permanently destroy a server
18
- new Create a new server
19
- list List existing servers
20
-
21
- h3. Example usage: Creating and configuring a new virtual server
22
-
23
- pre.. # ./manager.rb list
24
-
25
- Server ID Running
26
- --------- ------
27
- 1 true
28
- 2 true
29
-
30
- # ./manager.rb new
31
-
32
- Server created. New ID is 2
33
-
34
- Server config:
35
- -------------
36
- allowhtml true
37
- obfuscate false
38
- registerhostname
39
- certificate ...
40
- port 64738
41
- registerurl
42
- timeout 30
43
- defaultchannel 0
44
- textmessagelength 5000
45
- username [-=\w\[\]\{\}\(\)\@\|\.]+
46
- welcometext <br />Welcome to this server running <b>Murmur</b>.<br />Enjoy your stay!<br />
47
- bonjour true
48
- certrequired false
49
- channelname [ \-=\w\#\[\]\{\}\(\)\@\|]+
50
- registername
51
- bandwidth 72000
52
- host 0:0:0:0:0:0:0:0
53
- registerpassword
54
- users 100
55
- key ...
56
- password
57
-
58
- # ./manager.rb list
59
-
60
- Server ID Running
61
- --------- ------
62
- 1 true
63
- 2 true
64
- 3 false
65
-
66
- # ./manager.rb 3 set port 54321
67
-
68
- Server ID 3: port set to 612312
69
- Server restarted
70
-
71
- # ./manager.rb 3 set welcometext "Welcome to my Mumble server"
72
-
73
- Server ID 3: welcometext set to Welcome to my Mumble server
74
- Server restarted
75
-
76
- # ./manager.rb 3 set superuser_password mynewpassword
77
-
78
- Server ID 3: superuser_password set to mynewpassword
79
- Server restarted
80
-
81
- # ./manager.rb 3 start
82
-
83
- p. Tada! A new virtual server has been spawned.
@@ -1,159 +0,0 @@
1
- require 'timeout'
2
- require 'benchmark'
3
- require 'Glacier2'
4
- require File.join(File.expand_path(File.dirname(__FILE__)), "..", "..", "vendor", "ice", "Murmur.rb")
5
- module Murmur
6
- module Ice
7
- class ::InvalidMetaException < Exception; end
8
- class ::Murmur::Ice::InvalidServerException < Exception; end
9
- class Meta
10
- def initialize(glacierHost = nil, glacierPort = nil, user = nil, pass = nil, host = "127.0.0.1", port = "6502", icesecret = nil, connect_timeout=nil, idletime = nil)
11
- ic = nil
12
- if icesecret and icesecret != ""
13
- props = ::Ice::createProperties
14
- props.setProperty "Ice.ImplicitContext", "Shared"
15
- props.setProperty "Ice.Override.ConnectTimeout", connect_timeout.to_s unless connect_timeout == nil
16
- props.setProperty "Ice.MessageSizeMax", "65536"
17
- props.setProperty "Ice.ACM.Client", idletime.to_s unless idletime == nil
18
- idd = ::Ice::InitializationData.new
19
- idd.properties = props
20
- ic = ::Ice::initialize idd
21
- ic.getImplicitContext.put("secret", icesecret)
22
- else
23
- ic = ::Ice::initialize
24
- end
25
-
26
- if glacierHost and glacierHost != "" then
27
- @glacierHost = glacierHost
28
- @glacierPort = glacierPort
29
- validate_connection(glacierHost, glacierPort)
30
- prx = ic.stringToProxy("Glacier2/router:tcp -h #{glacierHost} -p #{glacierPort}")
31
- @router = ::Glacier2::RouterPrx::uncheckedCast(prx).ice_router(nil)
32
- @session = @router.createSession(user, pass)
33
- end
34
- conn = "tcp -h #{host} -p #{port}"
35
- @meta = add_proxy_router(Murmur::MetaPrx::checkedCast(ic.stringToProxy("Meta:#{conn}")))
36
- raise "Invalid proxy" unless @meta
37
-
38
- @servers = {}
39
- end
40
-
41
- def destroy
42
- begin
43
- @router.destroySession @session unless @router.nil?
44
- rescue ::Ice::ConnectionLostException
45
- # Expected - Ice raises this when the connection is terminated. Yay for exceptions as flow control?
46
- end
47
- return nil
48
- end
49
-
50
- def add_proxy_router(prx)
51
- @router ? prx.ice_router(@router) : prx
52
- end
53
-
54
- def get_server(id)
55
- @servers[id] ||= Server.new(self, @meta, id)
56
- end
57
-
58
- def uncache_server(id)
59
- @servers[id] = nil
60
- end
61
-
62
- def list_servers(only_booted = false)
63
- method = only_booted ? :getBootedServers : :getAllServers
64
- @meta.send(method).collect do |server|
65
- server = add_proxy_router(server)
66
- @servers[server.id] ||= Server.new(self, @meta, nil, server)
67
- end
68
- end
69
-
70
- def validate
71
- @meta.getVersion
72
- return true
73
- end
74
-
75
- def new_server(port = nil)
76
- server = @meta.newServer
77
- @servers[server.id] = Server.new(self, @meta, nil, add_proxy_router(server))
78
- end
79
-
80
- def method_missing(method, *args)
81
- method = method.to_s
82
- method.gsub!(/_([a-z])/) { $1.upcase }
83
- @meta.send method, *args
84
- end
85
-
86
- def validate_connection(host, port)
87
- Timeout::timeout(2) do
88
- begin
89
- s = TCPSocket.new(host, port)
90
- s.close
91
- rescue Errno::ECONNREFUSED, Errno::EHOSTUNREACH
92
- raise InvalidMetaException
93
- end
94
- end
95
- rescue Timeout::Error
96
- raise InvalidMetaException
97
- end
98
- end
99
-
100
- class Server
101
- def initialize(host, meta, id = nil, interface = nil)
102
- @meta = meta
103
- @host = host
104
- if id.nil? and interface.nil? then
105
- raise "Must pass either a server ID or a server interface instance"
106
- end
107
- @interface = interface || begin
108
- server = @meta.getServer(id)
109
- raise ::Murmur::Ice::InvalidServerException if server.nil?
110
- host.add_proxy_router(server)
111
- end
112
- end
113
-
114
- def id
115
- @interface.id
116
- end
117
-
118
- def running?
119
- @interface.isRunning
120
- end
121
-
122
- def config
123
- @config = @meta.getDefaultConf.merge(@interface.getAllConf)
124
- end
125
-
126
- def destroy!
127
- @interface.stop if running?
128
- @host.uncache_server @interface.id
129
- @interface.delete
130
- end
131
- alias :delete :destroy!
132
-
133
- def restart!
134
- @interface.stop if running?
135
- @interface.start
136
- @running = nil
137
- end
138
-
139
- def [](key)
140
- config[key]
141
- end
142
-
143
- def []=(key, val)
144
- @interface.setConf(key, val.to_s)
145
- @config = nil
146
- end
147
-
148
- def setConf(key, val)
149
- self[key] = val
150
- end
151
-
152
- def method_missing(method, *args)
153
- method = method.to_s
154
- method.gsub!(/_([a-z])/) { $1.upcase }
155
- ret = @interface.send method, *args
156
- end
157
- end
158
- end
159
- end