lita-pulp 0.1.2 → 0.1.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (33) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -0
  3. data/.rspec +3 -0
  4. data/CHANGELOG.md +5 -0
  5. data/README.md +2 -0
  6. data/lib/lita/handlers/pulp.rb +140 -0
  7. data/lib/pulphelper/misc.rb +6 -0
  8. data/lib/pulphelper/repo.rb +105 -3
  9. data/lib/pulphelper/user.rb +56 -0
  10. data/lita-pulp.gemspec +2 -1
  11. data/locales/en.yml +6 -0
  12. data/spec/fixtures/docker-compose.yml +98 -0
  13. data/spec/lita/handlers/pulp_repo_spec.rb +51 -17
  14. data/spec/lita/handlers/pulp_unit_spec.rb +1 -1
  15. data/spec/spec_helper.rb +29 -4
  16. metadata +21 -36
  17. data/spec/fixtures/cassettes/Lita_Handlers_Pulp/_copy_puppet_between_repo/copy_puppet_module.yml +0 -86
  18. data/spec/fixtures/cassettes/Lita_Handlers_Pulp/_copy_puppet_between_repo/copy_puppet_module_delete_new_and_publish.yml +0 -217
  19. data/spec/fixtures/cassettes/Lita_Handlers_Pulp/_copy_rpm_between_repo/copy_rpm_package.yml +0 -86
  20. data/spec/fixtures/cassettes/Lita_Handlers_Pulp/_copy_rpm_between_repo/copy_rpm_package_delete_new_and_publish.yml +0 -264
  21. data/spec/fixtures/cassettes/Lita_Handlers_Pulp/_publish_repo/publish_a_repository.yml +0 -140
  22. data/spec/fixtures/cassettes/Lita_Handlers_Pulp/_puppet_repos/list_puppet_repos.yml +0 -88
  23. data/spec/fixtures/cassettes/Lita_Handlers_Pulp/_puppet_search/search_puppet_with_repo.yml +0 -134
  24. data/spec/fixtures/cassettes/Lita_Handlers_Pulp/_puppet_search/search_puppet_without_author_name.yml +0 -134
  25. data/spec/fixtures/cassettes/Lita_Handlers_Pulp/_puppet_search/search_puppet_without_repo.yml +0 -134
  26. data/spec/fixtures/cassettes/Lita_Handlers_Pulp/_rpm_repos/list_rpm_repos.yml +0 -593
  27. data/spec/fixtures/cassettes/Lita_Handlers_Pulp/_rpm_search/search_rpm_with_repo.yml +0 -152
  28. data/spec/fixtures/cassettes/Lita_Handlers_Pulp/_rpm_search/search_rpm_without_repo.yml +0 -152
  29. data/spec/fixtures/cassettes/Lita_Handlers_Pulp/_show_repo_detail/show_a_puppet_repo_detail.yml +0 -52
  30. data/spec/fixtures/cassettes/Lita_Handlers_Pulp/_show_repo_detail/show_a_rpm_repo_detail.yml +0 -57
  31. data/spec/fixtures/cassettes/Lita_Handlers_Pulp/_show_rpm_repo_detail/show_an_rpm_repo_detail.yml +0 -100
  32. data/spec/fixtures/cassettes/Lita_Handlers_Pulp/_sync_repo/sync_a_repository.yml +0 -44
  33. data/spec/fixtures/cassettes/Lita_Handlers_Pulp/_sync_repo/syncs_a_repository.yml +0 -44
@@ -0,0 +1,98 @@
1
+ version: '2'
2
+ services:
3
+ db:
4
+ image: pulp/mongodb
5
+ ports:
6
+ - "27017:27017"
7
+ container_name: pulp_db
8
+ qpid:
9
+ image: pulp/qpid
10
+ ports:
11
+ - "5672:5672"
12
+ container_name: pulp_qpid
13
+ data:
14
+ image: pulp/base
15
+ container_name: pulp_data
16
+ environment:
17
+ - DROOT=
18
+ command: bash -c "chown apache /var/log/httpd-pulpapi && /bin/rm -rf /etc/pulp/* && /setup.sh "
19
+ depends_on:
20
+ - db
21
+ - qpid
22
+ volumes:
23
+ - /dev/log:/dev/log
24
+ - /etc/pulp
25
+ - /etc/pki/pulp
26
+ - /var/lib/pulp
27
+ - /var/lib/pulp/celery
28
+ - /var/log/httpd-pulpapi
29
+ beat:
30
+ image: pulp/worker
31
+ container_name: pulp_beat
32
+ links:
33
+ - db
34
+ - qpid
35
+ volumes_from:
36
+ - data
37
+ depends_on:
38
+ - db
39
+ - qpid
40
+ - data
41
+ command: "beat"
42
+ resource_manager:
43
+ image: pulp/worker
44
+ container_name: pulp_resource_manager
45
+ links:
46
+ - db
47
+ - qpid
48
+ volumes_from:
49
+ - data
50
+ depends_on:
51
+ - db
52
+ - qpid
53
+ - beat
54
+ command: "resource_manager"
55
+ worker1:
56
+ image: pulp/worker
57
+ container_name: pulp_worker1
58
+ volumes_from:
59
+ - data
60
+ links:
61
+ - db
62
+ - qpid
63
+ command: "worker 1"
64
+ depends_on:
65
+ - db
66
+ - qpid
67
+ - beat
68
+ - resource_manager
69
+ worker2:
70
+ image: pulp/worker
71
+ container_name: pulp_worker2
72
+ volumes_from:
73
+ - data
74
+ links:
75
+ - db
76
+ - qpid
77
+ command: "worker 2"
78
+ depends_on:
79
+ - db
80
+ - qpid
81
+ - beat
82
+ - resource_manager
83
+ pulpapi:
84
+ image: pulp/apache
85
+ ports:
86
+ - "8843:443"
87
+ - "8800:80"
88
+ container_name: pulp_api
89
+ volumes_from:
90
+ - data
91
+ links:
92
+ - db
93
+ - qpid
94
+ depends_on:
95
+ - db
96
+ - qpid
97
+ - beat
98
+ - resource_manager
@@ -5,7 +5,7 @@ vcr_options = { :record => :new_episodes }
5
5
  describe Lita::Handlers::Pulp, lita_handler: true, :vcr => vcr_options do
6
6
 
7
7
  before do
8
- registry.config.handlers.pulp.url="https://pulp.co.epi.web"
8
+ registry.config.handlers.pulp.url="https://localhost:8843"
9
9
  registry.config.handlers.pulp.api_path="/pulp/api/v2/"
10
10
  registry.config.handlers.pulp.username="admin"
11
11
  registry.config.handlers.pulp.password="admin"
@@ -18,50 +18,84 @@ describe Lita::Handlers::Pulp, lita_handler: true, :vcr => vcr_options do
18
18
  is_expected.to route_command('pulp show repo test').to(:show_repo)
19
19
  is_expected.to route_command('pulp sync test').to(:repo_sync)
20
20
  is_expected.to route_command('pulp publish test').to(:repo_publish)
21
+ is_expected.to route_command('pulp create rpm repo --repo_id rpm_repo_1 --name "test rpm repo"').to(:cmd_create_rpm_repo)
22
+ is_expected.to route_command('pulp create puppet repo --repo_id puppet_repo_1 --name "test puppet repo"').to(:cmd_create_puppet_repo)
23
+ is_expected.to route_command('pulp delete repo test').to(:cmd_delete_repository)
24
+ end
25
+
26
+
27
+ describe '#create rpm repo' do
28
+ it 'should create repo_rpm_1 successfully' do
29
+ send_command('pulp create rpm repo --repo_id repo_rpm_1 --name "test repo" --description "Test REPO" --relative_url "rpm/test/x86_64" ')
30
+ puts replies
31
+ end
32
+ it 'should create repo_rpm_2 successfully' do
33
+ send_command('pulp create rpm repo --repo_id repo_rpm_2 --name "test repo 2" --description "Test REPO2" --relative_url "rpm/test2/x86_64" ')
34
+ puts replies
35
+ end
36
+ end
37
+
38
+ describe '#create puppet repo' do
39
+ it 'should create repo_puppet_1 successfully' do
40
+ send_command('pulp create puppet repo --repo_id repo_puppet_1 --name "test puppet repo 1" --description "Test Puppet REPO1" --remove_missing ')
41
+ puts replies
42
+ end
43
+ it 'should create repo_puppet_2 successfully' do
44
+ send_command('pulp create puppet repo --repo_id repo_puppet_2 --name "test puppet repo 2" --description "Test Puppet REPO2" --remove_missing ')
45
+ puts replies
46
+ end
21
47
  end
22
48
 
23
49
  describe '#rpm_repos' do
24
50
  it 'list rpm repos' do
25
51
  send_command("pulp rpm repos")
26
- puts "*********************"
27
- puts replies
52
+ expect(replies.last).to match(/repo_rpm_1|repo_rpm_2/)
28
53
  end
29
54
  end
30
55
 
31
56
  describe '#puppet_repos' do
32
57
  it 'list puppet repos' do
33
58
  send_command("pulp puppet repos")
34
- puts "*********************"
35
- puts replies
59
+ #puts replies
60
+ expect(replies.last).to match(/repo_puppet_1|repo_puppet_2/)
36
61
  end
37
62
  end
38
63
 
39
64
  describe '#show repo detail' do
40
65
  it 'show a rpm repo detail' do
41
- send_command('pulp show repo ent-cent7-dev')
42
- puts "************"
43
- puts replies
66
+ send_command('pulp show repo repo_rpm_1')
67
+ expect(replies.last).to match(/id.*repo_rpm_1/)
68
+ expect(replies.last).to match(/"http".*true/)
69
+ expect(replies.last).to match(/"https".*false/)
44
70
  end
45
71
  it 'show a puppet repo detail' do
46
- send_command('pulp show repo forge_dev')
47
- puts "************"
48
- puts replies
72
+ send_command('pulp show repo repo_puppet_1')
73
+ expect(replies.last).to match(/id.*repo_puppet_1/)
74
+ expect(replies.last).to match(/"serve_http".*true/)
75
+ expect(replies.last).to match(/"serve_https".*false/)
49
76
  end
50
77
  end
51
78
 
52
79
  describe '#sync repo' do
53
80
  it 'sync a repository' do
54
- send_command('pulp sync forge_dev')
55
- puts "***********"
56
- puts replies
81
+ send_command('pulp sync repo_rpm_1')
82
+ #puts replies
83
+ expect(replies.last).to match(/task_id/)
57
84
  end
58
85
  end
59
86
 
60
87
  describe '#publish repo' do
61
88
  it 'publish a repository' do
62
- send_command('pulp publish ent-cent7-qa')
63
- puts "***********"
64
- puts replies
89
+ send_command('pulp publish repo_rpm_1')
90
+ expect(replies.last).to match(/task_id/)
91
+ end
92
+ end
93
+
94
+ describe '#delete_repo' do
95
+ it 'delete rpm repo' do
96
+ send_command("pulp delete repo repo_rpm_2")
97
+ #puts replies
98
+ expect(replies.last).to match(/success/i)
65
99
  end
66
100
  end
67
101
 
@@ -5,7 +5,7 @@ vcr_options = { :record => :new_episodes }
5
5
  describe Lita::Handlers::Pulp, lita_handler: true , :vcr => vcr_options do
6
6
 
7
7
  before do
8
- registry.config.handlers.pulp.url="https://pulp.co.epi.web"
8
+ registry.config.handlers.pulp.url="https://localhost:8843"
9
9
  registry.config.handlers.pulp.api_path="/pulp/api/v2/"
10
10
  registry.config.handlers.pulp.username="admin"
11
11
  registry.config.handlers.pulp.password="admin"
data/spec/spec_helper.rb CHANGED
@@ -1,6 +1,7 @@
1
1
  require 'lita-keyword-arguments'
2
2
  require "lita-pulp"
3
3
  require "lita/rspec"
4
+ require "docker/compose"
4
5
 
5
6
  # A compatibility mode is provided for older plugins upgrading from Lita 3. Since this plugin
6
7
  # was generated with Lita 4, the compatibility mode should be left disabled.
@@ -10,6 +11,18 @@ require 'vcr'
10
11
 
11
12
 
12
13
  VCR.configure do |c|
14
+ c.default_cassette_options = {
15
+ :match_requests_on => [:method, :uri, :host, :headers, :query, :body, :path]
16
+ }
17
+ c.ignore_request do |request |
18
+ uri = request.uri
19
+ ignore = false
20
+ method = request.method
21
+ if uri.end_with?('repositories/') && method.to_s == 'post'
22
+ ignore = true
23
+ end
24
+ ignore == true
25
+ end
13
26
  c.cassette_library_dir = 'spec/fixtures/cassettes'
14
27
  c.hook_into :webmock
15
28
  c.configure_rspec_metadata!
@@ -17,12 +30,24 @@ end
17
30
 
18
31
 
19
32
  RSpec.configure do |config|
33
+ config.before :suite do
34
+ puts "before suite, set up"
35
+ work_dir = File.expand_path('../fixtures', __FILE__)
36
+ if ENV['LITA_provision'] != 'no'
37
+ @compose = Docker::Compose::Session.new dir:work_dir
38
+ @compose.up detached:true, no_build: true
39
+ end
40
+ end
41
+ config.after :suite do
42
+ puts "after suite, clean up"
43
+ if ENV['LITA_destroy'] != 'no'
44
+ @compose.stop
45
+ sleep 2
46
+ @compose.rm force:true, volumes:true
47
+ end
48
+ end
20
49
  config.before do
21
50
  registry.register_handler(Lita::Handlers::Pulp)
22
51
  registry.register_hook(:trigger_route, Lita::Extensions::KeywordArguments)
23
52
  end
24
53
  end
25
-
26
- # def grab_request(result)
27
- # allow(Runcible::Instance).to receive(:new) { result }
28
- # end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lita-pulp
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Wang, Dawei
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-06-30 00:00:00.000000000 Z
11
+ date: 2016-07-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: lita
@@ -150,6 +150,20 @@ dependencies:
150
150
  - - ">="
151
151
  - !ruby/object:Gem::Version
152
152
  version: '0'
153
+ - !ruby/object:Gem::Dependency
154
+ name: docker-compose
155
+ requirement: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - ">="
158
+ - !ruby/object:Gem::Version
159
+ version: '0'
160
+ type: :development
161
+ prerelease: false
162
+ version_requirements: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - ">="
165
+ - !ruby/object:Gem::Version
166
+ version: '0'
153
167
  description: Lita bot for pulp server
154
168
  email:
155
169
  - daweiwang.gatekeeper@gmail.com
@@ -158,6 +172,8 @@ extensions: []
158
172
  extra_rdoc_files: []
159
173
  files:
160
174
  - ".gitignore"
175
+ - ".rspec"
176
+ - CHANGELOG.md
161
177
  - Gemfile
162
178
  - README.md
163
179
  - Rakefile
@@ -166,25 +182,10 @@ files:
166
182
  - lib/pulphelper/misc.rb
167
183
  - lib/pulphelper/repo.rb
168
184
  - lib/pulphelper/unit.rb
185
+ - lib/pulphelper/user.rb
169
186
  - lita-pulp.gemspec
170
187
  - locales/en.yml
171
- - spec/fixtures/cassettes/Lita_Handlers_Pulp/_copy_puppet_between_repo/copy_puppet_module.yml
172
- - spec/fixtures/cassettes/Lita_Handlers_Pulp/_copy_puppet_between_repo/copy_puppet_module_delete_new_and_publish.yml
173
- - spec/fixtures/cassettes/Lita_Handlers_Pulp/_copy_rpm_between_repo/copy_rpm_package.yml
174
- - spec/fixtures/cassettes/Lita_Handlers_Pulp/_copy_rpm_between_repo/copy_rpm_package_delete_new_and_publish.yml
175
- - spec/fixtures/cassettes/Lita_Handlers_Pulp/_publish_repo/publish_a_repository.yml
176
- - spec/fixtures/cassettes/Lita_Handlers_Pulp/_puppet_repos/list_puppet_repos.yml
177
- - spec/fixtures/cassettes/Lita_Handlers_Pulp/_puppet_search/search_puppet_with_repo.yml
178
- - spec/fixtures/cassettes/Lita_Handlers_Pulp/_puppet_search/search_puppet_without_author_name.yml
179
- - spec/fixtures/cassettes/Lita_Handlers_Pulp/_puppet_search/search_puppet_without_repo.yml
180
- - spec/fixtures/cassettes/Lita_Handlers_Pulp/_rpm_repos/list_rpm_repos.yml
181
- - spec/fixtures/cassettes/Lita_Handlers_Pulp/_rpm_search/search_rpm_with_repo.yml
182
- - spec/fixtures/cassettes/Lita_Handlers_Pulp/_rpm_search/search_rpm_without_repo.yml
183
- - spec/fixtures/cassettes/Lita_Handlers_Pulp/_show_repo_detail/show_a_puppet_repo_detail.yml
184
- - spec/fixtures/cassettes/Lita_Handlers_Pulp/_show_repo_detail/show_a_rpm_repo_detail.yml
185
- - spec/fixtures/cassettes/Lita_Handlers_Pulp/_show_rpm_repo_detail/show_an_rpm_repo_detail.yml
186
- - spec/fixtures/cassettes/Lita_Handlers_Pulp/_sync_repo/sync_a_repository.yml
187
- - spec/fixtures/cassettes/Lita_Handlers_Pulp/_sync_repo/syncs_a_repository.yml
188
+ - spec/fixtures/docker-compose.yml
188
189
  - spec/lita/handlers/pulp_repo_spec.rb
189
190
  - spec/lita/handlers/pulp_unit_spec.rb
190
191
  - spec/spec_helper.rb
@@ -216,23 +217,7 @@ specification_version: 4
216
217
  summary: Lita bot for pulp server operation, like list repositories and search rpm
217
218
  or puppet modules.
218
219
  test_files:
219
- - spec/fixtures/cassettes/Lita_Handlers_Pulp/_copy_puppet_between_repo/copy_puppet_module.yml
220
- - spec/fixtures/cassettes/Lita_Handlers_Pulp/_copy_puppet_between_repo/copy_puppet_module_delete_new_and_publish.yml
221
- - spec/fixtures/cassettes/Lita_Handlers_Pulp/_copy_rpm_between_repo/copy_rpm_package.yml
222
- - spec/fixtures/cassettes/Lita_Handlers_Pulp/_copy_rpm_between_repo/copy_rpm_package_delete_new_and_publish.yml
223
- - spec/fixtures/cassettes/Lita_Handlers_Pulp/_publish_repo/publish_a_repository.yml
224
- - spec/fixtures/cassettes/Lita_Handlers_Pulp/_puppet_repos/list_puppet_repos.yml
225
- - spec/fixtures/cassettes/Lita_Handlers_Pulp/_puppet_search/search_puppet_with_repo.yml
226
- - spec/fixtures/cassettes/Lita_Handlers_Pulp/_puppet_search/search_puppet_without_author_name.yml
227
- - spec/fixtures/cassettes/Lita_Handlers_Pulp/_puppet_search/search_puppet_without_repo.yml
228
- - spec/fixtures/cassettes/Lita_Handlers_Pulp/_rpm_repos/list_rpm_repos.yml
229
- - spec/fixtures/cassettes/Lita_Handlers_Pulp/_rpm_search/search_rpm_with_repo.yml
230
- - spec/fixtures/cassettes/Lita_Handlers_Pulp/_rpm_search/search_rpm_without_repo.yml
231
- - spec/fixtures/cassettes/Lita_Handlers_Pulp/_show_repo_detail/show_a_puppet_repo_detail.yml
232
- - spec/fixtures/cassettes/Lita_Handlers_Pulp/_show_repo_detail/show_a_rpm_repo_detail.yml
233
- - spec/fixtures/cassettes/Lita_Handlers_Pulp/_show_rpm_repo_detail/show_an_rpm_repo_detail.yml
234
- - spec/fixtures/cassettes/Lita_Handlers_Pulp/_sync_repo/sync_a_repository.yml
235
- - spec/fixtures/cassettes/Lita_Handlers_Pulp/_sync_repo/syncs_a_repository.yml
220
+ - spec/fixtures/docker-compose.yml
236
221
  - spec/lita/handlers/pulp_repo_spec.rb
237
222
  - spec/lita/handlers/pulp_unit_spec.rb
238
223
  - spec/spec_helper.rb
@@ -1,86 +0,0 @@
1
- ---
2
- http_interactions:
3
- - request:
4
- method: post
5
- uri: https://pulp.co.epi.web/pulp/api/v2/content/units/puppet_module/search/
6
- body:
7
- encoding: UTF-8
8
- string: '{"criteria":{"filters":{"author":"entertainment","name":"cicd_test","version":"0.1.33-pre100079-rev159b6f9"},"sort":[["version","descending"]],"limit":1,"fields":["author","name","version"]},"include_repos":true}'
9
- headers:
10
- Accept:
11
- - application/json
12
- Accept-Encoding:
13
- - gzip, deflate
14
- Content-Type:
15
- - application/json
16
- Content-Length:
17
- - '212'
18
- User-Agent:
19
- - Ruby
20
- Authorization:
21
- - Basic YWRtaW46YWRtaW4=
22
- response:
23
- status:
24
- code: 200
25
- message: OK
26
- headers:
27
- Date:
28
- - Wed, 29 Jun 2016 14:43:58 GMT
29
- Server:
30
- - Apache/2.2.15 (CentOS)
31
- Content-Length:
32
- - '314'
33
- Connection:
34
- - close
35
- Content-Type:
36
- - application/json; charset=utf-8
37
- body:
38
- encoding: UTF-8
39
- string: '[{"repository_memberships": ["forge_qa", "forge_build", "forge_dev"],
40
- "version": "0.1.33-pre100079-rev159b6f9", "_href": "/pulp/api/v2/content/units/puppet_module/c3d5f09d-88a5-472e-880b-f4dbb4b5b7c8/",
41
- "author": "entertainment", "_id": "c3d5f09d-88a5-472e-880b-f4dbb4b5b7c8",
42
- "children": {}, "name": "cicd_test"}]'
43
- http_version:
44
- recorded_at: Wed, 29 Jun 2016 14:44:09 GMT
45
- - request:
46
- method: post
47
- uri: https://pulp.co.epi.web/pulp/api/v2/repositories/forge_qa/actions/associate/
48
- body:
49
- encoding: UTF-8
50
- string: '{"source_repo_id":"forge_dev","criteria":{"type_ids":["puppet_module"],"filters":{"association":{"unit_id":{"$in":["c3d5f09d-88a5-472e-880b-f4dbb4b5b7c8"]}}}}}'
51
- headers:
52
- Accept:
53
- - application/json
54
- Accept-Encoding:
55
- - gzip, deflate
56
- Content-Type:
57
- - application/json
58
- Content-Length:
59
- - '159'
60
- User-Agent:
61
- - Ruby
62
- Authorization:
63
- - Basic YWRtaW46YWRtaW4=
64
- response:
65
- status:
66
- code: 202
67
- message: ACCEPTED
68
- headers:
69
- Date:
70
- - Wed, 29 Jun 2016 14:43:59 GMT
71
- Server:
72
- - Apache/2.2.15 (CentOS)
73
- Content-Length:
74
- - '172'
75
- Connection:
76
- - close
77
- Content-Type:
78
- - application/json; charset=utf-8
79
- body:
80
- encoding: UTF-8
81
- string: '{"spawned_tasks": [{"_href": "/pulp/api/v2/tasks/1e4971b6-4cab-48ad-b774-7c1467b1e2f0/",
82
- "task_id": "1e4971b6-4cab-48ad-b774-7c1467b1e2f0"}], "result": null, "error":
83
- null}'
84
- http_version:
85
- recorded_at: Wed, 29 Jun 2016 14:44:09 GMT
86
- recorded_with: VCR 3.0.3