solr_wrapper 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 4e14fa14a9312c6c712b005ec75a66ec5e03a403
4
- data.tar.gz: d3c1df1a8fe6020270d0292a332ac604cfd23375
3
+ metadata.gz: afbb108d004d57c73e68e21e9c4352d0249ec561
4
+ data.tar.gz: 3d11fa951e19ff35da4e686b047eafb270f2288a
5
5
  SHA512:
6
- metadata.gz: 29912c73b25928c7fbd87a64186a943d4a085e5ca1869e90677dcee225fe470df52264fe95570da6593165d25a6f1184d9fd51422ed21a31c4207a1cc7277a7b
7
- data.tar.gz: 398139305bf2facd9f5417b28ad6623f8480751c369270edf76f322967fea177a2a8e5d34b1cdc55a901d07cefe10e49aeced7c125a35954dc2de7b96344ea51
6
+ metadata.gz: fd9cbb7c32124dd36dd4f49e33a8f6248b42851022cc7981125dedb92334c1930570d9efe58d4a2b8327defa0359e0cdd1106f5cd11e14d7be1b8a09b835bd5a
7
+ data.tar.gz: dfff06a0df7ee5a7f550b6bbb0e956256d772624dcdae694865899394da99ae7c38038e7c2308d9e863fbc3081177725ce1c92857210dc121cd7f68e78ae7dcc
@@ -31,13 +31,17 @@ module SolrWrapper
31
31
  else
32
32
  IO.copy_stream(io, stringio)
33
33
  end
34
- _, status = Process.wait2(io.pid)
35
- if status != 0
34
+ _, exit_status = Process.wait2(io.pid)
35
+ if exit_status != 0
36
36
  stringio.rewind
37
37
  raise "Unable to start solr: #{stringio.read}"
38
38
  end
39
39
  end if managed?
40
40
 
41
+ # Wait for solr to start
42
+ unless status
43
+ sleep 1
44
+ end
41
45
  started!
42
46
  end
43
47
 
@@ -51,12 +55,17 @@ module SolrWrapper
51
55
  else
52
56
  IO.copy_stream(io, stringio)
53
57
  end
54
- _, status = Process.wait2(io.pid)
58
+ _, exit_status = Process.wait2(io.pid)
55
59
 
56
- if status != 0
60
+ if exit_status != 0
57
61
  stringio.rewind
58
62
  raise "Unable to start solr: #{stringio.read}"
59
63
  end
64
+
65
+ # Wait for solr to stop
66
+ while status
67
+ sleep 1
68
+ end
60
69
  end if managed?
61
70
  end
62
71
 
@@ -68,17 +77,16 @@ module SolrWrapper
68
77
  IO.popen([solr_binary, "status", "-p", port, err: [:child, :out]]) do |io|
69
78
  IO.copy_stream(io, stringio)
70
79
 
71
- _, status = Process.wait2(io.pid)
80
+ _, exit_status = Process.wait2(io.pid)
72
81
 
73
82
  stringio.rewind
74
83
 
75
- if status != 0
84
+ if exit_status != 0
76
85
  raise "Unable to query solr status: #{stringio.read}"
77
86
  end
78
87
  end
79
88
 
80
89
  out = stringio.read
81
-
82
90
  out =~ /running on port #{port}/
83
91
  end
84
92
 
@@ -87,6 +95,8 @@ module SolrWrapper
87
95
  end
88
96
 
89
97
  def extract
98
+ return solr_dir if File.exists?(solr_binary) and extracted_version == version
99
+
90
100
  zip_path = download
91
101
 
92
102
  begin
@@ -106,6 +116,7 @@ module SolrWrapper
106
116
  begin
107
117
  FileUtils.remove_dir(solr_dir,true)
108
118
  FileUtils.cp_r File.join(tmp_save_dir, File.basename(default_url, ".zip")), solr_dir
119
+ self.extracted_version = version
109
120
  FileUtils.chmod 0755, solr_binary
110
121
  rescue Exception => e
111
122
  abort "Unable to copy #{tmp_save_dir} to #{solr_dir}: #{e.message}"
@@ -113,7 +124,7 @@ module SolrWrapper
113
124
 
114
125
  solr_dir
115
126
  ensure
116
- FileUtils.remove_entry tmp_save_dir
127
+ FileUtils.remove_entry tmp_save_dir if File.exists? tmp_save_dir
117
128
  end
118
129
 
119
130
  def download
@@ -249,5 +260,19 @@ module SolrWrapper
249
260
  def managed?
250
261
  !!options.fetch(:managed, true)
251
262
  end
263
+
264
+ def version_file
265
+ options.fetch(:version_file, File.join(solr_dir, "VERSION"))
266
+ end
267
+
268
+ def extracted_version
269
+ File.read(version_file).strip if File.exists? version_file
270
+ end
271
+
272
+ def extracted_version= version
273
+ File.open(version_file, "w") do |f|
274
+ f.puts version
275
+ end
276
+ end
252
277
  end
253
278
  end
@@ -1,3 +1,3 @@
1
1
  module SolrWrapper
2
- VERSION = "0.0.3"
2
+ VERSION = "0.0.4"
3
3
  end
@@ -3,16 +3,12 @@ require 'spec_helper'
3
3
  describe SolrWrapper do
4
4
  describe ".wrap" do
5
5
  it "should launch solr" do
6
- SolrWrapper.wrap(download_path: './tmp') do |solr|
7
- expect(Timeout::timeout(15) do
8
- begin
9
- s = TCPSocket.new('127.0.0.1', solr.port)
10
- s.close
11
- true
12
- rescue
13
- false
6
+ SolrWrapper.wrap do |solr|
7
+ expect {
8
+ Timeout::timeout(15) do
9
+ TCPSocket.new('127.0.0.1', solr.port).close
14
10
  end
15
- end).to eq true
11
+ }.not_to raise_exception
16
12
  end
17
13
  end
18
14
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: solr_wrapper
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chris Beer