bellows 1.1.3 → 1.2.0

Sign up to get free protection for your applications and to get access to all the features.
data/CHANGELOG CHANGED
@@ -1,3 +1,9 @@
1
+ * Sat Nov 3 2012 Dan Prince <dprince@redhat.com> - 1.2.0
2
+ - Rename 'job_types' to 'comment_configs' in the config file.
3
+ - Add 'config_template_id' to 'comment_configs' sections. This
4
+ supports the ability to report comments when the same runner
5
+ is used w/ multiple SmokeStack configurations.
6
+
1
7
  * Sun Sep 23 2012 Dan Prince <dprince@redhat.com> - 1.1.3
2
8
  - Add support for per project job types in the config file.
3
9
 
data/LICENSE.txt CHANGED
@@ -1,5 +1,5 @@
1
1
  Copyright (c) 2011-2012 Dan Prince
2
- Copyright (c) 2012 Red Hat
2
+ Copyright (c) 2012 Red Hat Inc.
3
3
 
4
4
  Permission is hereby granted, free of charge, to any person obtaining
5
5
  a copy of this software and associated documentation files (the
data/README.md CHANGED
@@ -26,18 +26,20 @@ Installation
26
26
  test_suite_ids:
27
27
  - 1
28
28
 
29
- job_types:
29
+ comment_configs:
30
30
  - name: job_unit_tester
31
31
  auto_approved: Yes
32
32
  description: "Unit"
33
33
 
34
- - name: job_puppet_vpc
34
+ - name: job_puppet_libvirt
35
+ config_template_id: 1
35
36
  auto_approved: No
36
- description: "Libvirt (Fedora 16)"
37
+ description: "Fedora 17 Libvirt Quantum w/ OpenvSwitch"
37
38
 
38
- - name: job_chef_vpc_xen
39
+ - name: job_puppet_xen
40
+ config_template_id: 2
39
41
  auto_approved: No
40
- description: "XenServer (Ubuntu 11.10)"
42
+ description: "Fedora 17 Nova w/ XenServer"
41
43
  EOF_CAT
42
44
 
43
45
 
@@ -47,10 +49,12 @@ Examples
47
49
  Available bellows tasks:
48
50
 
49
51
  Tasks:
50
- bellows fire PROJECT # Run jobs for reviews without results.
51
- bellows help [TASK] # Describe available tasks or one specific task
52
- bellows purge PROJECT # Purge merged reviews from SmokeStack
53
- bellows sync PROJECT # Create tests & update refspecs for active reviews.
52
+ bellows comment PROJECT # Add gerrit comments for reviews w/ results.
53
+ bellows fire PROJECT # Run jobs for reviews without results.
54
+ bellows help [TASK] # Describe available tasks or one specific task
55
+ bellows purge PROJECT # Purge merged reviews from SmokeStack
56
+ bellows stream # Stream Gerrit events and sync data to SmokeStack.
57
+ bellows sync PROJECT # Create tests & update refspecs for active reviews.
54
58
 
55
59
  Run bellows sync to create smokestack test configurations and update refspecs for active reviews:
56
60
 
@@ -72,4 +76,4 @@ All commands support creating and maintaining test configs for nova, glance, and
72
76
 
73
77
  License
74
78
  -------
75
- Copyright (c) 2011 Dan Prince. See LICENSE.txt for further details.
79
+ Copyright (c) 2011-2012 Dan Prince. Copyright 2012 Red Hat Inc. See LICENSE.txt for further details.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.1.3
1
+ 1.2.0
@@ -26,33 +26,42 @@ module Bellows
26
26
  jobs_found
27
27
  end
28
28
 
29
- #Return a reference to the first job of the specified type.
30
- def self.job_data_for_type(jobs, job_type)
29
+ # Return a reference to the first job matching the criteria for
30
+ # the specified comment config
31
+ def self.job_data_for_comments(jobs, comment_config)
31
32
  jobs.each do |job|
32
- return job.values[0] if job.keys[0] == job_type
33
+ if job.keys[0] == comment_config['name']
34
+ job_values = job.values[0]
35
+ if comment_config['config_template_id'].nil? and job.keys[0] == 'job_unit_tester' then
36
+ # will be nil for unit tests (which don't use a config template)
37
+ return job_values
38
+ elsif comment_config['config_template_id'] and job_values['config_template_id'] == comment_config['config_template_id'] then
39
+ return job_values
40
+ end
41
+ end
33
42
  end
34
43
  nil
35
44
  end
36
45
 
37
- DEFAULT_JOB_TYPES=[{'name' => 'job_unit_tester', 'auto_approved' => false, 'description' => 'Unit'}]
38
- def self.job_types(project=nil)
46
+ DEFAULT_COMMENT_CONFIGS=[{'name' => 'job_unit_tester', 'auto_approved' => false, 'description' => 'Unit'}]
47
+ def self.comment_configs(project=nil)
39
48
  configs=Util.load_configs
40
49
 
41
- job_type_list = nil
50
+ comment_config_list = nil
42
51
 
43
52
  if not project.nil? and configs[project] then
44
- if configs[project]['job_types']
45
- job_type_list = configs[project]['job_types']
53
+ if configs[project]['comment_configs']
54
+ comment_config_list = configs[project]['comment_configs']
46
55
  end
47
56
  else
48
- job_type_list = configs['job_types']
57
+ comment_config_list = configs['comment_configs']
49
58
  end
50
59
 
51
- if job_type_list.nil? or job_type_list.empty? then
52
- job_type_list = DEFAULT_JOB_TYPES
60
+ if comment_config_list.nil? or comment_config_list.empty? then
61
+ comment_config_list = DEFAULT_COMMENT_CONFIGS
53
62
  end
54
63
 
55
- job_type_list
64
+ comment_config_list
56
65
 
57
66
  end
58
67
 
data/lib/bellows/tasks.rb CHANGED
@@ -128,6 +128,7 @@ module Bellows
128
128
  test = options[:test]
129
129
  cache_file = options[:cache_file]
130
130
  jobs = Bellows::SmokeStack.jobs
131
+ configs=Util.load_configs
131
132
 
132
133
  if cache_file.nil? or cache_file.empty?
133
134
  puts "ERROR: cache_file is required."
@@ -152,11 +153,11 @@ module Bellows
152
153
  jobs_for_rev = Bellows::SmokeStack.jobs_with_hash(revision, jobs)
153
154
  if jobs_for_rev.count > 0 then
154
155
 
155
- job_types = Bellows::SmokeStack.job_types(project)
156
+ comment_configs = Bellows::SmokeStack.comment_configs(project)
156
157
  job_datas = []
157
- job_types.each do |job_type|
158
- job_data=Bellows::SmokeStack.job_data_for_type(jobs_for_rev, job_type['name'])
159
- job_datas << [job_type, job_data]
158
+ comment_configs.each do |comment_config|
159
+ job_data=Bellows::SmokeStack.job_data_for_comments(jobs_for_rev, comment_config)
160
+ job_datas << [comment_config, job_data]
160
161
  end
161
162
 
162
163
  if Bellows::SmokeStack.complete?(job_datas) then
@@ -164,9 +165,9 @@ module Bellows
164
165
  message = "SmokeStack Results (patch set #{patchset_num}):\n"
165
166
  verify_vote = 1
166
167
  job_datas.each do |arr|
167
- job_type = arr[0]
168
+ comment_config = arr[0]
168
169
  job_data = arr[1]
169
- message += "\t#{job_type['description']} #{job_data['status']}:#{job_data['msg']} http://smokestack.openstack.org/?go=/jobs/#{job_data['id']}\n"
170
+ message += "\t#{comment_config['description']} #{job_data['status']}:#{job_data['msg']} #{configs['smokestack_url']}/?go=/jobs/#{job_data['id']}\n"
170
171
  verify_vote = -1 if job_data['status'] == 'Failed'
171
172
  end
172
173
  puts message if not options[:quiet]
data/lib/bellows/util.rb CHANGED
@@ -3,7 +3,7 @@ require 'yaml'
3
3
  module Bellows
4
4
  module Util
5
5
 
6
- DEFAULT_PROJECTS = ['nova', 'glance', 'keystone', 'swift']
6
+ DEFAULT_PROJECTS = ['nova', 'glance', 'keystone', 'swift', 'cinder', 'quantum']
7
7
  @@configs=nil
8
8
 
9
9
  def self.load_configs
@@ -9,15 +9,17 @@ config_template_ids:
9
9
  test_suite_ids:
10
10
  - 1
11
11
 
12
- job_types:
12
+ comment_configs:
13
13
  - name: job_unit_tester
14
14
  auto_approved: true
15
15
  description: "Unit"
16
16
 
17
17
  - name: job_puppet_vpc
18
+ config_template_id: 1
18
19
  auto_approved: false
19
20
  description: "Libvirt (Fedora 16)"
20
21
 
21
22
  - name: job_chef_vpc_xen
23
+ config_template_id: 2
22
24
  auto_approved: false
23
25
  description: "XenServer 5.6 SP2"
@@ -18,15 +18,17 @@ glance:
18
18
  - 2
19
19
 
20
20
  nova:
21
- job_types:
21
+ comment_configs:
22
22
  - name: job_unit_tester
23
23
  auto_approved: true
24
24
  description: "Unit"
25
25
 
26
26
  - name: job_puppet_vpc
27
+ config_template_id: 3
27
28
  auto_approved: false
28
29
  description: "Libvirt (Fedora 16)"
29
30
 
30
31
  - name: job_chef_vpc_xen
32
+ config_template_id: 4
31
33
  auto_approved: false
32
34
  description: "XenServer 5.6 SP2"
@@ -4,28 +4,30 @@ require 'yaml'
4
4
 
5
5
  class SmokeStackTest < Test::Unit::TestCase
6
6
 
7
- def test_job_types_default
7
+ def test_comment_configs_default
8
8
 
9
9
  Bellows::Util.stubs(:load_configs).returns({})
10
- assert_equal 1, Bellows::SmokeStack.job_types.size
10
+ assert_equal 1, Bellows::SmokeStack.comment_configs.size
11
11
 
12
12
  end
13
13
 
14
- def test_job_types_config
14
+ def test_comment_configs_config
15
15
 
16
16
  sample_config = fixture('config.yaml')
17
17
  Bellows::Util.stubs(:load_configs).returns(YAML::load(sample_config))
18
- assert_equal 3, Bellows::SmokeStack.job_types.size
18
+ assert_equal 3, Bellows::SmokeStack.comment_configs.size
19
19
 
20
- unit_tester_type = Bellows::SmokeStack.job_types[0]
20
+ unit_tester_type = Bellows::SmokeStack.comment_configs[0]
21
21
  assert_equal 'job_unit_tester', unit_tester_type['name']
22
22
  assert_equal 'Unit', unit_tester_type['description']
23
+ assert_nil unit_tester_type['config_template_id']
23
24
  assert_equal true, unit_tester_type['auto_approved']
24
25
 
25
- unit_tester_type = Bellows::SmokeStack.job_types[1]
26
- assert_equal 'job_puppet_vpc', unit_tester_type['name']
27
- assert_equal 'Libvirt (Fedora 16)', unit_tester_type['description']
28
- assert_equal false, unit_tester_type['auto_approved']
26
+ puppet_vpc_type = Bellows::SmokeStack.comment_configs[1]
27
+ assert_equal 'job_puppet_vpc', puppet_vpc_type['name']
28
+ assert_equal 1, puppet_vpc_type['config_template_id']
29
+ assert_equal 'Libvirt (Fedora 16)', puppet_vpc_type['description']
30
+ assert_equal false, puppet_vpc_type['auto_approved']
29
31
 
30
32
  end
31
33
 
@@ -35,21 +37,23 @@ class SmokeStackTest < Test::Unit::TestCase
35
37
  Bellows::Util.stubs(:load_configs).returns(YAML::load(sample_config))
36
38
 
37
39
  # there should only be 1 set for the default (no project)
38
- assert_equal 1, Bellows::SmokeStack.job_types.size
40
+ assert_equal 1, Bellows::SmokeStack.comment_configs.size
39
41
 
40
42
  # there should only be 1 set for the glance project
41
- assert_equal 1, Bellows::SmokeStack.job_types("glance").size
43
+ assert_equal 1, Bellows::SmokeStack.comment_configs("glance").size
42
44
 
43
45
  # the nova project should have custom job types defined
44
- unit_tester_type = Bellows::SmokeStack.job_types("nova")[0]
46
+ unit_tester_type = Bellows::SmokeStack.comment_configs("nova")[0]
45
47
  assert_equal 'job_unit_tester', unit_tester_type['name']
46
48
  assert_equal 'Unit', unit_tester_type['description']
49
+ assert_nil unit_tester_type['config_template_id']
47
50
  assert_equal true, unit_tester_type['auto_approved']
48
51
 
49
- unit_tester_type = Bellows::SmokeStack.job_types("nova")[1]
50
- assert_equal 'job_puppet_vpc', unit_tester_type['name']
51
- assert_equal 'Libvirt (Fedora 16)', unit_tester_type['description']
52
- assert_equal false, unit_tester_type['auto_approved']
52
+ puppet_vpc_type = Bellows::SmokeStack.comment_configs("nova")[1]
53
+ assert_equal 'job_puppet_vpc', puppet_vpc_type['name']
54
+ assert_equal 3, puppet_vpc_type['config_template_id']
55
+ assert_equal 'Libvirt (Fedora 16)', puppet_vpc_type['description']
56
+ assert_equal false, puppet_vpc_type['auto_approved']
53
57
 
54
58
  end
55
59
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bellows
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.3
4
+ version: 1.2.0
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-23 00:00:00.000000000 Z
12
+ date: 2012-11-04 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler
@@ -173,7 +173,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
173
173
  version: '0'
174
174
  segments:
175
175
  - 0
176
- hash: -4222018101242764028
176
+ hash: 2150126569573728096
177
177
  required_rubygems_version: !ruby/object:Gem::Requirement
178
178
  none: false
179
179
  requirements: