neo4j-rake_tasks 0.6.1 → 0.7.0
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 +4 -4
- data/lib/neo4j/rake_tasks/neo4j_server.rake +20 -0
- data/lib/neo4j/rake_tasks/server_manager.rb +50 -5
- data/lib/neo4j/rake_tasks/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 914ebd590bc305c15848a3964495e2f48cb7b119
|
4
|
+
data.tar.gz: 715b564075c5248879dde37304bcb97f7cca61df
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 93ea085e16181e17f274dff8e0813a310191ba8dd9bf414e8c43da7c60b04cb8ad765becc282e7027bccd1c55a366d3ee5c091a20466bef7099a62bc13456ee0
|
7
|
+
data.tar.gz: 80a5d30d3c25b1b2f636a966de4b6e667757c0c7a9d36bf78450e17b9cbe4aa5b490336c725f1fd1296fd74fd07e02377c76a11efe744d81e42ce2c9a11576e7
|
@@ -110,6 +110,26 @@ namespace :neo4j do
|
|
110
110
|
server_manager.info
|
111
111
|
end
|
112
112
|
|
113
|
+
desc 'List indexes for the Neo4j server'
|
114
|
+
task :indexes, :environment do |_, args|
|
115
|
+
args.with_defaults(environment: :development)
|
116
|
+
|
117
|
+
puts "Getting Neo4j indexes for #{args[:environment]}..."
|
118
|
+
|
119
|
+
server_manager = server_manager(args[:environment])
|
120
|
+
server_manager.print_indexes
|
121
|
+
end
|
122
|
+
|
123
|
+
desc 'List constraints for the Neo4j server'
|
124
|
+
task :constraints, :environment do |_, args|
|
125
|
+
args.with_defaults(environment: :development)
|
126
|
+
|
127
|
+
puts "Getting Neo4j constraints for #{args[:environment]}..."
|
128
|
+
|
129
|
+
server_manager = server_manager(args[:environment])
|
130
|
+
server_manager.print_constraints
|
131
|
+
end
|
132
|
+
|
113
133
|
desc 'Restart the Neo4j Server'
|
114
134
|
task :restart, :environment do |_, args|
|
115
135
|
args.with_defaults(environment: :development)
|
@@ -22,7 +22,7 @@ module Neo4j
|
|
22
22
|
FileUtils.rm archive_path
|
23
23
|
end
|
24
24
|
|
25
|
-
config_port!(7474) if
|
25
|
+
config_port!(7474) if server_version_greater_than?('3.0.0')
|
26
26
|
|
27
27
|
puts "Neo4j installed to: #{@path}"
|
28
28
|
end
|
@@ -75,7 +75,7 @@ module Neo4j
|
|
75
75
|
|
76
76
|
stop
|
77
77
|
|
78
|
-
paths = if
|
78
|
+
paths = if server_version_greater_than?('3.0.0')
|
79
79
|
['data/databases/graph.db/*', 'logs/*']
|
80
80
|
else
|
81
81
|
['data/graph.db/*', 'data/log/*']
|
@@ -115,7 +115,7 @@ module Neo4j
|
|
115
115
|
def config_port!(port)
|
116
116
|
puts "Config ports #{port} (HTTP) / #{port - 1} (HTTPS) / #{port - 2} (Bolt)"
|
117
117
|
|
118
|
-
if
|
118
|
+
if server_version_greater_than?('3.0.0')
|
119
119
|
# These are not ideal, perhaps...
|
120
120
|
modify_config_file('dbms.connector.https.enabled' => false,
|
121
121
|
'dbms.connector.http.enabled' => true,
|
@@ -137,6 +137,15 @@ module Neo4j
|
|
137
137
|
File.open(property_configuration_path, 'w') { |file| file << modify_config_contents(contents, properties) }
|
138
138
|
end
|
139
139
|
|
140
|
+
def get_config_property(property)
|
141
|
+
lines = File.read(property_configuration_path).lines
|
142
|
+
config_lines = lines.grep(/^\s*[^#]/).map(&:strip).reject(&:empty?)
|
143
|
+
|
144
|
+
lines.find do |line|
|
145
|
+
line.match(/\s*#{property}=/)
|
146
|
+
end.split('=')[1]
|
147
|
+
end
|
148
|
+
|
140
149
|
def modify_config_contents(contents, properties)
|
141
150
|
properties.inject(contents) do |r, (property, value)|
|
142
151
|
r.gsub(/^\s*(#\s*)?#{property}\s*=\s*(.+)/, "#{property}=#{value}")
|
@@ -151,8 +160,29 @@ module Neo4j
|
|
151
160
|
class_for_os.new(path)
|
152
161
|
end
|
153
162
|
|
163
|
+
def print_indexes
|
164
|
+
print_indexes_or_constraints(:index)
|
165
|
+
end
|
166
|
+
|
167
|
+
def print_constraints
|
168
|
+
print_indexes_or_constraints(:constraint)
|
169
|
+
end
|
170
|
+
|
154
171
|
protected
|
155
172
|
|
173
|
+
def print_indexes_or_constraints(type)
|
174
|
+
url = File.join(server_url, "db/data/schema/#{type}")
|
175
|
+
data = JSON.load(open(url).read)
|
176
|
+
data.sort_by {|i| i['label'] }.chunk do |index|
|
177
|
+
index['label']
|
178
|
+
end.each do |label, indexes|
|
179
|
+
puts "\e[36m#{label}\e[0m"
|
180
|
+
indexes.each do |index|
|
181
|
+
puts ' ' + index['property_keys'].join(', ')
|
182
|
+
end
|
183
|
+
end
|
184
|
+
end
|
185
|
+
|
156
186
|
def start_argument(wait)
|
157
187
|
wait ? 'start' : 'start-no-wait'
|
158
188
|
end
|
@@ -173,8 +203,19 @@ module Neo4j
|
|
173
203
|
binary_command_path(neo4j_shell_binary_filename)
|
174
204
|
end
|
175
205
|
|
206
|
+
def server_url
|
207
|
+
if server_version_greater_than?('3.0.0')
|
208
|
+
get_config_property('dbms.connector.http.address').strip.tap do |address|
|
209
|
+
address.prepend('http://') unless address.match(/^http:\/\//)
|
210
|
+
end
|
211
|
+
else
|
212
|
+
port = get_config_property('org.neo4j.server.webserver.https.port')
|
213
|
+
"http://localhost:#{port}"
|
214
|
+
end.strip
|
215
|
+
end
|
216
|
+
|
176
217
|
def property_configuration_path
|
177
|
-
if
|
218
|
+
if server_version_greater_than?('3.0.0')
|
178
219
|
@path.join('conf', 'neo4j.conf')
|
179
220
|
else
|
180
221
|
@path.join('conf', 'neo4j-server.properties')
|
@@ -206,7 +247,7 @@ module Neo4j
|
|
206
247
|
end
|
207
248
|
|
208
249
|
def pid_path
|
209
|
-
if
|
250
|
+
if server_version_greater_than?('3.0.0')
|
210
251
|
@path.join('run/neo4j.pid')
|
211
252
|
else
|
212
253
|
@path.join('data/neo4j-service.pid')
|
@@ -217,6 +258,10 @@ module Neo4j
|
|
217
258
|
|
218
259
|
NEO4J_VERSIONS_URL = 'https://raw.githubusercontent.com/neo4jrb/neo4j-rake_tasks/master/neo4j_versions.yml'
|
219
260
|
|
261
|
+
def server_version_greater_than?(version)
|
262
|
+
Gem::Version.new(server_version) > Gem::Version.new(version)
|
263
|
+
end
|
264
|
+
|
220
265
|
def server_version
|
221
266
|
kernel_jar_path = Dir.glob(@path.join('lib/neo4j-kernel-*.jar'))[0]
|
222
267
|
kernel_jar_path.match(/neo4j-kernel-([\d\.]+)\.jar$/)[1]
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: neo4j-rake_tasks
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.7.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Brian Underwood
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-06-
|
11
|
+
date: 2016-06-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: colored
|