corosync-ruby 0.0.4 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. checksums.yaml +7 -0
  2. data/lib/corosync-ruby/cluster.rb +14 -7
  3. metadata +21 -43
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: ccf8476a70dcc4ae66fcf38be96c3e49f92bb40e
4
+ data.tar.gz: 476eb05e0fc2bfbfe9194c6870d44d09176e5188
5
+ SHA512:
6
+ metadata.gz: 365d721fc88a3db876b671792005c1f0f73eb81eb20dc828d027927a1a63f1ddf6758155de176a4b7d4fa9d13838a803e3571071f15001b761772d58726e69bf
7
+ data.tar.gz: e7158b83d421aaeefade04b8de6971dd22b01e6692e487523b9ac3006f8d2c911b934ad1dce0daf726c8bc78cd0c7dccf345ea0afc01a29b7e50525be4105e51
@@ -2,6 +2,9 @@ module Corosync
2
2
  class Cluster
3
3
  COMMAND = "sudo crm"
4
4
 
5
+ attr_reader :nodes_configured, :resources_configured, :online, :offline
6
+ attr_reader :resources_started, :resources_stopped, :failed_actions
7
+
5
8
  def initialize
6
9
  parse
7
10
  end
@@ -61,34 +64,36 @@ module Corosync
61
64
 
62
65
  # parse output
63
66
  @nodes_configured = []
64
- if /(\d+) Nodes configured/.match(output)
67
+ if /(\d+) [Nn]odes.*?configured/.match(output)
65
68
  @nodes_configured = Regexp.last_match[1].to_i
66
69
  else
67
70
  raise "Can't parse output"
68
71
  end
69
72
 
70
73
  @resources_configured = []
71
- if /(\d+) Resources configured/.match(output)
74
+ if /(\d+) [Rr]esources.*?configured/.match(output)
72
75
  @resources_configured = Regexp.last_match[1].to_i
73
76
  else
74
77
  raise "Can't parse output"
75
78
  end
76
79
 
77
80
  @online = []
78
- if /Online: \[ ([\w ]*) \]/.match(output)
81
+ if (/online:\s+\[\s+(.+?)\s+\]/i).match(output)
79
82
  @online = Regexp.last_match[1].split(' ')
80
83
  end
81
84
 
82
85
  @offline = []
83
- if /OFFLINE: \[ ([\w ]*) \]/.match(output)
86
+ if (/offline:\s+\[\s+(.+?)\s+\]/i).match(output)
84
87
  @offline = Regexp.last_match[1].split(' ')
85
88
  end
86
89
 
87
- raise "Can't parse output" if @online.empty? && @offline.empty?
90
+ if @online.empty? && @offline.empty?
91
+ raise "Can't parse output"
92
+ end
88
93
 
89
94
  @resources_started = []
90
95
  @resources_stopped = []
91
- resources = output.scan(/^\s*(\w+)\s*\([\w:]+\):\s*([\w ]*)$/)
96
+ resources = output.scan(/^\s*(.+?)\s+\(.+?\):\s+(.+?)$/)
92
97
  resources.each do |res|
93
98
  status = res[1].split(' ')
94
99
  if status.include? 'Started'
@@ -98,7 +103,9 @@ module Corosync
98
103
  end
99
104
  end
100
105
 
101
- raise "Can't parse output" if @resources_started.empty? && @resources_stopped.empty?
106
+ if @resources_started.empty? && @resources_stopped.empty?
107
+ raise "Can't parse output"
108
+ end
102
109
 
103
110
  @failed_actions = []
104
111
  if (/Failed actions:.*/m).match(output)
metadata CHANGED
@@ -1,67 +1,45 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: corosync-ruby
3
- version: !ruby/object:Gem::Version
4
- hash: 23
5
- prerelease:
6
- segments:
7
- - 0
8
- - 0
9
- - 4
10
- version: 0.0.4
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
11
5
  platform: ruby
12
- authors:
6
+ authors:
13
7
  - Pavel Ivanov
14
8
  autorequire:
15
9
  bindir: bin
16
10
  cert_chain: []
17
-
18
- date: 2013-05-06 00:00:00 Z
11
+ date: 2016-05-12 00:00:00.000000000 Z
19
12
  dependencies: []
20
-
21
13
  description:
22
14
  email: ivpavig@gmail.com
23
15
  executables: []
24
-
25
16
  extensions: []
26
-
27
17
  extra_rdoc_files: []
28
-
29
- files:
18
+ files:
30
19
  - lib/corosync-ruby.rb
31
20
  - lib/corosync-ruby/resource.rb
32
21
  - lib/corosync-ruby/cluster.rb
33
- homepage:
22
+ homepage: https://github.com/schfkt/corosync-ruby
34
23
  licenses: []
35
-
24
+ metadata: {}
36
25
  post_install_message:
37
26
  rdoc_options: []
38
-
39
- require_paths:
27
+ require_paths:
40
28
  - lib
41
- required_ruby_version: !ruby/object:Gem::Requirement
42
- none: false
43
- requirements:
44
- - - ">="
45
- - !ruby/object:Gem::Version
46
- hash: 3
47
- segments:
48
- - 0
49
- version: "0"
50
- required_rubygems_version: !ruby/object:Gem::Requirement
51
- none: false
52
- requirements:
53
- - - ">="
54
- - !ruby/object:Gem::Version
55
- hash: 3
56
- segments:
57
- - 0
58
- version: "0"
29
+ required_ruby_version: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ required_rubygems_version: !ruby/object:Gem::Requirement
35
+ requirements:
36
+ - - '>='
37
+ - !ruby/object:Gem::Version
38
+ version: '0'
59
39
  requirements: []
60
-
61
40
  rubyforge_project:
62
- rubygems_version: 1.8.25
41
+ rubygems_version: 2.0.14.1
63
42
  signing_key:
64
- specification_version: 3
43
+ specification_version: 4
65
44
  summary: A simple wrapper for corosync cmd tool 'crm'
66
45
  test_files: []
67
-