lita-pulp 0.1.2 → 0.1.3

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.
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