nexus_cli 0.8.1 → 0.8.2
Sign up to get free protection for your applications and to get access to all the features.
- data/VERSION +1 -1
- data/features/nexus_oss.feature +44 -2
- data/features/step_definitions/cli_steps.rb +2 -2
- data/lib/nexus_cli/errors.rb +1 -1
- data/lib/nexus_cli/nexus_oss_remote.rb +89 -1
- data/lib/nexus_cli/nexus_remote_factory.rb +1 -1
- data/lib/nexus_cli/tasks.rb +33 -0
- metadata +4 -4
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.8.
|
1
|
+
0.8.2
|
data/features/nexus_oss.feature
CHANGED
@@ -124,7 +124,7 @@ Feature: Use the Nexus CLI
|
|
124
124
|
And I call the nexus "get_repository_info Artifacts" command
|
125
125
|
Then the output should contain:
|
126
126
|
"""
|
127
|
-
The repository you
|
127
|
+
The repository you provided could not be found. Please ensure the repository exists.
|
128
128
|
"""
|
129
129
|
And the exit status should be 114
|
130
130
|
|
@@ -187,4 +187,46 @@ Feature: Use the Nexus CLI
|
|
187
187
|
"""
|
188
188
|
The logging level of Nexus has been set to INFO
|
189
189
|
"""
|
190
|
-
And the exit status should be 0
|
190
|
+
And the exit status should be 0
|
191
|
+
|
192
|
+
Scenario: Create a Nexus Group Repository
|
193
|
+
When I call the nexus "create_group_repository cucumber_group" command
|
194
|
+
Then the output should contain:
|
195
|
+
"""
|
196
|
+
A new group repository named cucumber_group has been created.
|
197
|
+
"""
|
198
|
+
And the exit status should be 0
|
199
|
+
|
200
|
+
Scenario: Get information about a Nexus Group Repository
|
201
|
+
When I call the nexus "get_group_repository cucumber_group" command
|
202
|
+
Then the output should contain:
|
203
|
+
"""
|
204
|
+
\"id\":\"cucumber_group\"
|
205
|
+
"""
|
206
|
+
And the exit status should be 0
|
207
|
+
|
208
|
+
Scenario: Add a repository to the Nexus Group Repository
|
209
|
+
When I call the nexus "add_to_group_repository cucumber_group releases" command
|
210
|
+
Then the output should contain:
|
211
|
+
"""
|
212
|
+
The repository releases has been added to the repository group cucumber_group
|
213
|
+
"""
|
214
|
+
And the exit status should be 0
|
215
|
+
|
216
|
+
Scenario: Remove a repository from a Nexus Group Repository
|
217
|
+
When I call the nexus "remove_from_group_repository cucumber_group releases" command
|
218
|
+
And I call the nexus "get_group_repository cucumber_group" command
|
219
|
+
Then the output should not contain:
|
220
|
+
"""
|
221
|
+
\"id\"=>\"releases\"
|
222
|
+
"""
|
223
|
+
And the exit status should be 0
|
224
|
+
|
225
|
+
Scenario: Delete a Nexus Group Repository
|
226
|
+
When I call the nexus "delete_group_repository cucumber_group" command
|
227
|
+
And I call the nexus "get_group_repository cucumber_group" command
|
228
|
+
Then the output should not contain:
|
229
|
+
"""
|
230
|
+
\"id\":\"cucumber_group\"
|
231
|
+
"""
|
232
|
+
And the exit status should be 114
|
@@ -70,14 +70,14 @@ P5KVneepzhtEt9G/uO4MU89cdUR0IMyUwdhq2dg=
|
|
70
70
|
-----END CERTIFICATE-----
|
71
71
|
")
|
72
72
|
end
|
73
|
-
step "I run `nexus-cli add_trusted_key --certificate=#{File.join(temp_dir, "cert.txt")} --description=cucumber`"
|
73
|
+
step "I run `nexus-cli add_trusted_key --certificate=#{File.join(temp_dir, "cert.txt")} --description=cucumber --overrides=#{get_overrides_string}`"
|
74
74
|
end
|
75
75
|
end
|
76
76
|
|
77
77
|
When /^I delete a trusted key in nexus$/ do
|
78
78
|
json = JSON.parse(nexus_remote.get_trusted_keys)
|
79
79
|
key_id = json["data"].first["id"]
|
80
|
-
step "I run `nexus-cli delete_trusted_key #{key_id}`"
|
80
|
+
step "I run `nexus-cli delete_trusted_key #{key_id} --overrides=#{get_overrides_string}`"
|
81
81
|
end
|
82
82
|
|
83
83
|
Then /^a file named "(.*?)" should exist in my nexus folder$/ do |file|
|
data/lib/nexus_cli/errors.rb
CHANGED
@@ -127,7 +127,7 @@ The output from the server was:
|
|
127
127
|
|
128
128
|
class RepositoryNotFoundException < NexusCliError
|
129
129
|
def message
|
130
|
-
"The repository you
|
130
|
+
"The repository you provided could not be found. Please ensure the repository exists."
|
131
131
|
end
|
132
132
|
status_code(114)
|
133
133
|
end
|
@@ -330,6 +330,62 @@ module NexusCli
|
|
330
330
|
end
|
331
331
|
end
|
332
332
|
|
333
|
+
def create_group_repository(name)
|
334
|
+
response = nexus.post(nexus_url("service/local/repo_groups"), :body => create_group_repository_json(name), :header => DEFAULT_CONTENT_TYPE_HEADER)
|
335
|
+
case response.status
|
336
|
+
when 201
|
337
|
+
return true
|
338
|
+
else
|
339
|
+
raise UnexpectedStatusCodeException.new(response.status)
|
340
|
+
end
|
341
|
+
end
|
342
|
+
|
343
|
+
def get_group_repository(group_id)
|
344
|
+
response = nexus.get(nexus_url("service/local/repo_groups/#{group_id}"), :header => DEFAULT_ACCEPT_HEADER)
|
345
|
+
case response.status
|
346
|
+
when 200
|
347
|
+
return response.content
|
348
|
+
when 404
|
349
|
+
raise RepositoryNotFoundException
|
350
|
+
else
|
351
|
+
raise UnexpectedStatusCodeException.new(response.status)
|
352
|
+
end
|
353
|
+
end
|
354
|
+
|
355
|
+
def add_to_group_repository(group_id, repository_to_add_id)
|
356
|
+
response = nexus.put(nexus_url("service/local/repo_groups/#{group_id}"), :body => create_add_to_group_repository_json(group_id, repository_to_add_id), :header => DEFAULT_CONTENT_TYPE_HEADER)
|
357
|
+
case response.status
|
358
|
+
when 200
|
359
|
+
return true
|
360
|
+
when 400
|
361
|
+
raise RepositoryNotFoundException
|
362
|
+
else
|
363
|
+
raise UnexpectedStatusCodeException.new(response.status)
|
364
|
+
end
|
365
|
+
end
|
366
|
+
|
367
|
+
def remove_from_group_repository(group_id, repository_to_remove_id)
|
368
|
+
response = nexus.put(nexus_url("service/local/repo_groups/#{group_id}"), :body => create_remove_from_group_repository_json(group_id, repository_to_remove_id), :header => DEFAULT_CONTENT_TYPE_HEADER)
|
369
|
+
case response.status
|
370
|
+
when 200
|
371
|
+
return true
|
372
|
+
else
|
373
|
+
raise UnexpectedStatusCodeException.new(response.status)
|
374
|
+
end
|
375
|
+
end
|
376
|
+
|
377
|
+
def delete_group_repository(group_id)
|
378
|
+
response = nexus.delete(nexus_url("service/local/repo_groups/#{group_id}"))
|
379
|
+
case response.status
|
380
|
+
when 204
|
381
|
+
return true
|
382
|
+
when 404
|
383
|
+
raise RepositoryNotFoundException
|
384
|
+
else
|
385
|
+
raise UnexpectedStatusCodeException.new(response.status)
|
386
|
+
end
|
387
|
+
end
|
388
|
+
|
333
389
|
private
|
334
390
|
|
335
391
|
def format_search_results(doc, group_id, artifact_id)
|
@@ -392,5 +448,37 @@ module NexusCli
|
|
392
448
|
params = {:rootLoggerLevel => level.upcase}
|
393
449
|
JSON.dump(:data => params)
|
394
450
|
end
|
451
|
+
|
452
|
+
def create_group_repository_json(name)
|
453
|
+
params = {:id => name.gsub(" ", "_").downcase}
|
454
|
+
params[:name] = name
|
455
|
+
params[:provider] = "maven2"
|
456
|
+
params[:exposed] = true
|
457
|
+
JSON.dump(:data => params)
|
458
|
+
end
|
459
|
+
|
460
|
+
def create_add_to_group_repository_json(group_id, repository_to_add_id)
|
461
|
+
group_repository_json = get_group_repository(group_id)
|
462
|
+
repositories = JSON.parse(group_repository_json)["data"]["repositories"]
|
463
|
+
repositories << {:id => repository_to_add_id}
|
464
|
+
params = {:repositories => repositories}
|
465
|
+
params[:id] = group_id
|
466
|
+
JSON.dump(:data => params)
|
467
|
+
end
|
468
|
+
|
469
|
+
def create_remove_from_group_repository_json(group_id, repository_to_remove_id)
|
470
|
+
group_repository_json = get_group_repository(group_id)
|
471
|
+
repositories = JSON.parse(group_repository_json)["data"]["repositories"]
|
472
|
+
|
473
|
+
entry_to_remove = repositories.find{|repository| repository["id"] == repository_to_remove_id}
|
474
|
+
if entry_to_remove.nil?
|
475
|
+
raise RepositoryNotFoundException
|
476
|
+
else
|
477
|
+
repositories.delete(entry_to_remove)
|
478
|
+
end
|
479
|
+
params = {:repositories => repositories}
|
480
|
+
params[:id] = group_id
|
481
|
+
JSON.dump(:data => params)
|
482
|
+
end
|
395
483
|
end
|
396
|
-
end
|
484
|
+
end
|
@@ -5,7 +5,7 @@ require 'yaml'
|
|
5
5
|
module NexusCli
|
6
6
|
class Factory
|
7
7
|
class << self
|
8
|
-
def create(overrides, ssl_verify)
|
8
|
+
def create(overrides, ssl_verify=false)
|
9
9
|
@configuration = Configuration::parse(overrides)
|
10
10
|
@ssl_verify = ssl_verify
|
11
11
|
running_nexus_pro? ? ProRemote.new(overrides, ssl_verify) : OSSRemote.new(overrides, ssl_verify)
|
data/lib/nexus_cli/tasks.rb
CHANGED
@@ -383,6 +383,39 @@ module NexusCli
|
|
383
383
|
end
|
384
384
|
end
|
385
385
|
|
386
|
+
desc "create_group_repository name", "Creates a new repository group with the given name."
|
387
|
+
def create_group_repository(name)
|
388
|
+
if @nexus_remote.create_group_repository(name)
|
389
|
+
say "A new group repository named #{name} has been created.", :blue
|
390
|
+
end
|
391
|
+
end
|
392
|
+
|
393
|
+
desc "get_group_repository group_id", "Gets information about the given group repository."
|
394
|
+
def get_group_repository(group_id)
|
395
|
+
say @nexus_remote.get_group_repository(group_id), :green
|
396
|
+
end
|
397
|
+
|
398
|
+
desc "add_to_group_repository group_id repository_to_add_id", "Adds a repository with the given id into the group repository."
|
399
|
+
def add_to_group_repository(group_id, repository_to_add_id)
|
400
|
+
if @nexus_remote.add_to_group_repository(group_id, repository_to_add_id)
|
401
|
+
say "The repository #{repository_to_add_id} has been added to the repository group #{group_id}", :blue
|
402
|
+
end
|
403
|
+
end
|
404
|
+
|
405
|
+
desc "remove_from_group_repository group_id repository_to_remove_id", "Remove a repository with the given id from the group repository."
|
406
|
+
def remove_from_group_repository(group_id, repository_to_remove_id)
|
407
|
+
if @nexus_remote.remove_from_group_repository(group_id, repository_to_remove_id)
|
408
|
+
say "The repository with an id of #{repository_to_remove_id} has been removed from the group repository, #{group_id}.", :blue
|
409
|
+
end
|
410
|
+
end
|
411
|
+
|
412
|
+
desc "delete_group_repository group_id","Deletes a group repository based on the given id."
|
413
|
+
def delete_group_repository(group_id)
|
414
|
+
if @nexus_remote.delete_group_repository(group_id)
|
415
|
+
say "The group repository, #{group_id} has been deleted.", :blue
|
416
|
+
end
|
417
|
+
end
|
418
|
+
|
386
419
|
private
|
387
420
|
|
388
421
|
def ask_user(params, ask_username=true, ask_password=true)
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: nexus_cli
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.8.
|
4
|
+
version: 0.8.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-09-
|
12
|
+
date: 2012-09-26 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: thor
|
@@ -253,7 +253,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
253
253
|
version: '0'
|
254
254
|
segments:
|
255
255
|
- 0
|
256
|
-
hash:
|
256
|
+
hash: 3888319830353730279
|
257
257
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
258
258
|
none: false
|
259
259
|
requirements:
|
@@ -262,7 +262,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
262
262
|
version: '0'
|
263
263
|
segments:
|
264
264
|
- 0
|
265
|
-
hash:
|
265
|
+
hash: 3888319830353730279
|
266
266
|
requirements: []
|
267
267
|
rubyforge_project:
|
268
268
|
rubygems_version: 1.8.21
|