cassie 1.0.0.beta.15 → 1.0.0.beta.16

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 0e721aa1ae662ceda68b8697144f11d97f34dba6
4
- data.tar.gz: 3d20bae28f27b55de84ad4e09fae5d1784f56c56
3
+ metadata.gz: e364e17d96eba783aa9410dc6e5ef856bfa6be12
4
+ data.tar.gz: f4f0fdfb2a8a27522d26dc417746b77b8b7f4b2b
5
5
  SHA512:
6
- metadata.gz: 943b14b4e9cf8ce70aef2a68b5867491ea9f1beb8bd8c2b15927c292f68b74e7b77d34c5577bbb29ab88f3b83a876e4a03598a7d473d94083c852b480068fa0b
7
- data.tar.gz: 228d3abb2b48ca6c4e846ae3d130293c2134d51a5292552df7b541639361bec3d874d4c6a3b82b7738e15af4953eceb072285be883b646cf4a1af38b11007c54
6
+ metadata.gz: 9b72f96d2170b75c6d01cd5c212bc3b3cefcbe49a01f940eb6121b290076e614fd5d9d658f4c02c4e8b834ea65fb576752297c8607387a13d45bac15905329a7
7
+ data.tar.gz: a59f96bbf2615c064893e6f8f8dc58810e17ed5aa9e4c90c60c6123aa7cf2a45b48d56d77346e3622856adc1702ffe38bf1372f006ddaa8afcfd48bd46eec8fe
data/bin/cassie CHANGED
@@ -1,10 +1,56 @@
1
1
  #! ruby
2
- def color(message)
3
- "\e[1;31m#{message}\e[0m"
2
+ require_relative '../lib/cassie'
3
+
4
+ def start
5
+ runner = Cassie::Support::CommandRunner.new("cassandra")
6
+ puts("Starting Cassandra...")
7
+ runner.run
8
+ runner.fail unless runner.finished?
9
+
10
+ if runner.output =~ /state jump to NORMAL/
11
+ puts "[#{green('✓')}] Cassandra Running"
12
+ else
13
+ runner.output.split("\n").grep(/ERROR/).each{|e| puts red(" " + e.gsub("; nested exception is:", "")) }
14
+ puts "[#{red('✘')}] Cassandra Failed to Start"
15
+ end
16
+ end
17
+
18
+ def stop
19
+ runner = Cassie::Support::CommandRunner.new("ps", ["-awx"])
20
+ runner.run!
21
+ # | grep cassandra | grep -v grep | awk '{print $1}'`
22
+ cassandra_awx = runner.output.split("\n").grep(/cassandra/)
23
+ pid = case cassandra_awx.length
24
+ when 0
25
+ puts red("No Cassandra process was found. Is Cassandra running?")
26
+ exit(1)
27
+ when 1
28
+ cassandra_awx.first.split(' ').first.to_i
29
+ else
30
+ puts red("Couldn't single out a Cassandra process:\n#{cassandra_awx}")
31
+ exit(1)
32
+ end
33
+
34
+ puts("Stopping Cassandra...")
35
+ Process.kill("TERM", pid)
36
+ loop do
37
+ sleep(0.1)
38
+ begin
39
+ Process.getpgid( pid )
40
+ rescue Errno::ESRCH
41
+ break
42
+ end
43
+ end
44
+
45
+ puts "[#{green('✓')}] Cassandra Stopped"
46
+ end
47
+
48
+ def kick
49
+ stop
50
+ start
4
51
  end
5
52
 
6
53
  def generate_config
7
- require_relative '../lib/cassie'
8
54
  opts = {}
9
55
  if ARGV[1]
10
56
  opts[:destination_path] = if ARGV[1][0] == "/"
@@ -23,7 +69,6 @@ def generate_config
23
69
  end
24
70
 
25
71
  def dump_structure
26
- require_relative '../lib/cassie'
27
72
  opts = {}
28
73
  opts[:destination_path] = Cassie.paths[:schema_structure]
29
74
 
@@ -41,7 +86,6 @@ def dump_structure
41
86
  end
42
87
 
43
88
  def load_structure
44
- require_relative '../lib/cassie'
45
89
  opts = {}
46
90
  opts[:source_path] = Cassie.paths[:schema_structure]
47
91
 
@@ -53,7 +97,20 @@ def load_structure
53
97
  puts "[✓] Cassandra schema loaded from #{opts[:source_path]}"
54
98
  end
55
99
 
100
+ def red(message)
101
+ "\e[1;31m#{message}\e[0m"
102
+ end
103
+ def green(message)
104
+ "\e[1;32m#{message}\e[0m"
105
+ end
106
+
56
107
  case ARGV[0]
108
+ when "start"
109
+ start
110
+ when "stop"
111
+ stop
112
+ when "kick"
113
+ kick
57
114
  when "configuration:generate"
58
115
  generate_config
59
116
  when "structure:dump"
@@ -61,5 +118,5 @@ when "structure:dump"
61
118
  when "structure:load"
62
119
  load_structure
63
120
  else
64
- puts color("`#{ARGV[0]}` is not a supported command.")
121
+ puts red("`#{ARGV[0]}` is not a supported command.")
65
122
  end
@@ -30,7 +30,11 @@ module Cassie::Support
30
30
 
31
31
  # Runs the command and raises if doesn't exit 0
32
32
  def run!
33
- Kernel.fail error_message unless exitcode == 0
33
+ fail unless exitcode == 0
34
+ end
35
+
36
+ def fail
37
+ Kernel.fail error_message
34
38
  end
35
39
 
36
40
  # Returns false if the command hasn't been executed yet
@@ -59,14 +63,14 @@ module Cassie::Support
59
63
 
60
64
  def error_message
61
65
  msg = "\n"
62
- msg << color(output)
66
+ msg << red(output)
63
67
  msg << "\n---------------------"
64
68
  msg << "\n\nfailed to execute `#{command}`.\n"
65
69
  msg << "Please check the output above for any errors and make sure that `#{binary}` is installed in your PATH with proper permissions.\n"
66
70
  msg
67
71
  end
68
72
 
69
- def color(message)
73
+ def red(message)
70
74
  "\e[1m\e[31m#{message}\e[0m\e[22m"
71
75
  end
72
76
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cassie
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0.beta.15
4
+ version: 1.0.0.beta.16
5
5
  platform: ruby
6
6
  authors:
7
7
  - Evan Prothro
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-08-29 00:00:00.000000000 Z
11
+ date: 2016-09-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: cassandra-driver