Merge lp:~1chb1n/ubuntu-openstack-ci/mojo-runner-enhance into lp:ubuntu-openstack-ci

Proposed by Ryan Beisner on 2015-07-23
Status: Merged
Merged at revision: 156
Proposed branch: lp:~1chb1n/ubuntu-openstack-ci/mojo-runner-enhance
Merge into: lp:ubuntu-openstack-ci
Diff against target: 6525 lines (+2408/-2292)
64 files modified
Makefile (+0/-4)
README (+2/-0)
common/osci_utils.py (+487/-38)
deploy-uosci.py (+3/-3)
deployment/jobs/X_manual_trigger_deploy_openstack/config.xml (+0/-172)
deployment/jobs/charm_amulet_test/config.xml (+5/-5)
deployment/jobs/charm_lint_check/config.xml (+7/-7)
deployment/jobs/charm_unit_test/config.xml (+7/-7)
deployment/jobs/deploy_openstack/config.xml (+0/-143)
deployment/jobs/deploy_openstack_baremetal/config.xml (+0/-145)
deployment/jobs/deploy_with_deployer/config.xml (+4/-6)
deployment/jobs/deployer_quick_check/config.xml (+4/-4)
deployment/jobs/git_deploy_with_deployer/config.xml (+6/-6)
deployment/jobs/manual_deploy_single_charm/config.xml (+1/-1)
deployment/jobs/manual_trigger_deploy_with_deployer/config.xml (+0/-14)
deployment/jobs/manual_trigger_mojo/config.xml (+49/-25)
deployment/jobs/mojo_runner/config.xml (+7/-9)
deployment/jobs/mojo_runner_baremetal/config.xml (+10/-6)
deployment/jobs/openstack_lab_switcher/config.xml (+0/-229)
deployment/jobs/scheduled_trigger_amulet/config.xml (+6/-6)
deployment/jobs/scheduled_trigger_deploy/config.xml (+4/-4)
deployment/jobs/scheduled_trigger_lint/config.xml (+4/-4)
deployment/jobs/scheduled_trigger_mojo_charmhelper_upgrade_icehouse_precise/config.xml (+0/-86)
deployment/jobs/scheduled_trigger_mojo_charmhelper_upgrade_icehouse_trusty/config.xml (+0/-86)
deployment/jobs/scheduled_trigger_mojo_charmhelper_upgrade_kilo_vivid/config.xml (+0/-86)
deployment/jobs/scheduled_trigger_mojo_ha_phased_juno_trusty/config.xml (+0/-86)
deployment/jobs/scheduled_trigger_mojo_hot_all/config.xml (+88/-0)
deployment/jobs/scheduled_trigger_mojo_hot_metal/config.xml (+90/-0)
deployment/jobs/scheduled_trigger_mojo_hot_virtual/config.xml (+89/-0)
deployment/jobs/scheduled_trigger_mojo_stable_deploy/config.xml (+84/-0)
deployment/jobs/scheduled_trigger_single_charm/config.xml (+7/-7)
deployment/jobs/scheduled_trigger_single_charm_jdev/config.xml (+8/-8)
deployment/jobs/scheduled_trigger_single_charm_jprop/config.xml (+7/-7)
deployment/jobs/scheduled_trigger_sourcedeploy_trusty_icehouse/config.xml (+6/-8)
deployment/jobs/scheduled_trigger_sourcedeploy_trusty_juno/config.xml (+6/-8)
deployment/jobs/scheduled_trigger_sourcedeploy_trusty_kilo/config.xml (+6/-8)
deployment/jobs/scheduled_trigger_sourcedeploy_trusty_master/config.xml (+5/-7)
deployment/jobs/trigger_by_branch_scanner/config.xml (+10/-12)
deployment/jobs/trigger_by_mojo_group/config.xml (+152/-0)
deployment/jobs/trigger_by_mp_scanner/config.xml (+3/-5)
dev/mappings-dev.yaml (+26/-7)
job-parts/Z_DEPRECATE_build_mojo_runner_baremetal.sh (+1/-2)
job-parts/build_deployer_quickcheck.sh (+1/-1)
job-parts/build_juju_deploy_single_charm.sh (+1/-1)
job-parts/build_mojo_runner.sh (+39/-6)
job-parts/collect_charm_revno_info.sh (+3/-1)
job-parts/juju_bighammer_destroy.sh (+1/-1)
job-parts/juju_deploy_ok.sh (+9/-7)
job-parts/osci_job_common.sh (+72/-41)
job-parts/osci_mojo_common.sh (+21/-10)
job-parts/osci_tools_common.sh (+4/-1)
job-parts/trigger_by_branch_scanner.sh (+8/-9)
job-parts/trigger_by_mojo_group.sh (+144/-0)
job-parts/trigger_by_mp_scanner.sh (+8/-9)
populate/mappings.yaml (+70/-15)
populate/mojo-properties.tmpl (+3/-0)
tools/find_replace.py (+7/-5)
tools/juju_pull_logs.py (+63/-48)
tools/make_exec.py (+33/-40)
tools/mp_comment.py (+23/-19)
tools/nova_instances_summarize.py (+17/-30)
tools/scan_branch_revs.py (+120/-342)
tools/scan_merge_props.py (+249/-309)
tools/trigger_mojo_group.py (+318/-136)
To merge this branch: bzr merge lp:~1chb1n/ubuntu-openstack-ci/mojo-runner-enhance
Reviewer Review Type Date Requested Status
Ryan Beisner Pending
Review via email: mp+265726@code.launchpad.net

Description of the Change

Refactor branch_scanner tools
Fix make_exec.py to adhere to make target order in makefiles
Add mojo_trigger_groups.py tool
Add the notion of HOT U:OS combos
Improve launchpad comment subject with PASS/FAIL
Resolve multiple mojo runner issues

To post a comment you must log in.

charm_lint_check #7580 lp:ubuntu-openstack-ci for 1chb1n mp265726
    LINT OK: passed

Build: http://10.245.162.77:8080/job/charm_lint_check/7580/

197. By Ryan Beisner on 2015-08-05

fix mp scanner for non-charms

charm_lint_check #7581 lp:ubuntu-openstack-ci for 1chb1n mp265726
    LINT OK: passed

Build: http://10.245.162.77:8080/job/charm_lint_check/7581/

198. By Ryan Beisner on 2015-08-07

update mappings for object storage specs

charm_lint_check #7647 lp:ubuntu-openstack-ci for 1chb1n mp265726
    LINT OK: passed

Build: http://10.245.162.77:8080/job/charm_lint_check/7647/

199. By Ryan Beisner on 2015-08-10

re-enable stable charm triggers

charm_lint_check #7766 lp:ubuntu-openstack-ci for 1chb1n mp265726
    LINT OK: passed

Build: http://10.245.162.77:8080/job/charm_lint_check/7766/

200. By Ryan Beisner on 2015-08-11

update deploy trigger

charm_lint_check #7866 lp:ubuntu-openstack-ci for 1chb1n mp265726
    LINT OK: passed

Build: http://10.245.162.77:8080/job/charm_lint_check/7866/

201. By Ryan Beisner on 2015-08-12

add mojo to package version dump

charm_lint_check #7933 lp:ubuntu-openstack-ci for 1chb1n mp265726
    LINT OK: passed

Build: http://10.245.162.77:8080/job/charm_lint_check/7933/

202. By Ryan Beisner on 2015-08-28

improve launchpad comment subject detail

charm_lint_check #8936 lp:ubuntu-openstack-ci for 1chb1n mp265726
    LINT OK: passed

Build: http://10.245.162.77:8080/job/charm_lint_check/8936/

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'Makefile'
2--- Makefile 2014-10-28 14:37:55 +0000
3+++ Makefile 2015-08-28 16:23:16 +0000
4@@ -8,7 +8,3 @@
5 pylint:
6 @echo "Running pylint tests: "
7 @pylint -rn *.py deployment/*.py populate/*.py admin/*.py common/*.py
8-
9-unit_test:
10- @echo "Starting unit tests (none here yet):"
11- @$(PYTHON) /usr/bin/nosetests --nologcapture --with-coverage
12
13=== modified file 'README'
14--- README 2014-11-22 16:16:10 +0000
15+++ README 2015-08-28 16:23:16 +0000
16@@ -72,7 +72,9 @@
17
18 admin/ misc administrative and debug scripts
19 common/ shared code for admin, deployment, ongoing use
20+ dev/ work-in-progress or temporary work-arounds, patches, etc.
21 populate/ see README.jobs
22+ tools/ command line tools used in automation/manual testing
23
24
25 Notes:
26
27=== modified file 'common/osci_utils.py'
28--- common/osci_utils.py 2015-07-10 21:36:58 +0000
29+++ common/osci_utils.py 2015-08-28 16:23:16 +0000
30@@ -6,6 +6,7 @@
31 import distro_info
32 import logging
33 import multiprocessing
34+import optparse
35 import os
36 import random
37 import paramiko
38@@ -13,7 +14,13 @@
39 import string
40 import subprocess
41 import sys
42+import tempfile
43+import time
44+import uuid
45 import yaml
46+import bzrlib.errors
47+from bzrlib import branch
48+from bzrlib.plugin import load_plugins
49 from jinja2 import Environment, FileSystemLoader
50 from launchpadlib.launchpad import Launchpad
51
52@@ -21,7 +28,23 @@
53 MAP_FILE = 'populate/mappings.yaml'
54 LPL_CRED_FN = os.path.expanduser("~") + "/.config/tarmac/credentials"
55
56-
57+try:
58+ WORKSPACE = os.environ['WORKSPACE']
59+except KeyError:
60+ WORKSPACE = tempfile.mkdtemp()
61+
62+try:
63+ JENV_NAME = os.environ['JENV_NAME']
64+except KeyError:
65+ JENV_NAME = None
66+
67+try:
68+ BUILD_NUMBER = os.environ['BUILD_NUMBER']
69+except KeyError:
70+ BUILD_NUMBER = '000'
71+
72+
73+# Helpers
74 def rnd_str(length=32):
75 '''Return lower-case alpha-numeric random string, a la pwgen.
76
77@@ -34,9 +57,28 @@
78 return _str
79
80
81-def strip_chars(string, strip='+@~/\\'):
82- '''Strip certaing characters from string'''
83- return string.translate(None, strip)
84+def fill_dict_with_epoch_time(data):
85+ _d = {}
86+ for k in data.keys():
87+ _d[k] = time.time()
88+ return _d
89+
90+
91+def invert_dict_of_lists(d):
92+ """Inverts a dictionary of lists."""
93+ _inverted = {}
94+ for k, v in d.iteritems():
95+ for item in v:
96+ if item in _inverted.keys():
97+ _inverted[item].append(k)
98+ else:
99+ _inverted[item] = [k]
100+ return _inverted
101+
102+
103+def strip_chars(string, chars='+~/\\'):
104+ '''Strip characters from string'''
105+ return string.translate(None, chars)
106
107
108 def touch(file_name):
109@@ -103,8 +145,8 @@
110 cmd = 'timeout {} juju status --format=yaml'.format(timeout)
111 j_stat = yaml.load(subprocess.check_output(cmd.split()))
112 except subprocess.CalledProcessError:
113- logging.warning(' ! Juju status attempt returned non-zero, '
114- 'most likely no juju enviro bootstrapped.')
115+ logging.info('Juju status attempt returned non-zero, '
116+ 'most likely no juju enviro bootstrapped.')
117 j_stat = {}
118 return j_stat
119
120@@ -173,7 +215,7 @@
121
122 def get_networks(network, octet, quantity, bits):
123 '''Create a list of IPV4 networks in CIDR notation, generated by
124- incrementing a specified octet, the specified number of times.
125+ incrementing a specified octet, the specified number of times.
126
127 :param network: network string (eg, 192.168.7.0 or 10.200.0.0, non-CIDR)
128 :param octet: octet to increment (eg, 1.2.3.4)
129@@ -198,33 +240,40 @@
130
131
132 def get_os_creds():
133- '''Pull OpenStack credentials from environment variables,
134- return a dictionary for use with various openstack apis.
135- Since there is not consistent credential naming across
136- apis, return multiple types. Some of them are:
137- Type 0 = neutron, keystone
138- Type 1 = nova
139+ '''Pull OpenStack credentials from environment variables, return a
140+ dictionary for use with various openstack apis. Since there is not
141+ consistent credential naming across apis, return multiple types.
142+ Some of them are:
143+ Type 0 = neutron, keystone
144+ Type 1 = nova
145
146- :returns: list of dicts containing openstack credentials
147+ :returns: list of dicts containing openstack credentials
148 '''
149 creds = {}
150 creds[0] = {}
151 creds[1] = {}
152- creds[0]['auth_url'] = os.environ['OS_AUTH_URL']
153- creds[0]['username'] = os.environ['OS_USERNAME']
154- creds[0]['password'] = os.environ['OS_PASSWORD']
155- creds[0]['tenant_name'] = os.environ['OS_TENANT_NAME']
156- creds[0]['region_name'] = os.environ['OS_REGION_NAME']
157- creds[1]['auth_url'] = os.environ['OS_AUTH_URL']
158- creds[1]['username'] = os.environ['OS_USERNAME']
159- creds[1]['api_key'] = os.environ['OS_PASSWORD']
160- creds[1]['project_id'] = os.environ['OS_TENANT_NAME']
161+ creds[0]['auth_url'] = os.getenv('OS_AUTH_URL')
162+ creds[0]['username'] = os.getenv('OS_USERNAME')
163+ creds[0]['password'] = os.getenv('OS_PASSWORD')
164+ creds[0]['tenant_name'] = os.getenv('OS_TENANT_NAME')
165+ creds[0]['region_name'] = os.getenv('OS_REGION_NAME')
166+ creds[1]['auth_url'] = os.getenv('OS_AUTH_URL')
167+ creds[1]['username'] = os.getenv('OS_USERNAME')
168+ creds[1]['api_key'] = os.getenv('OS_PASSWORD')
169+ creds[1]['project_id'] = os.getenv('OS_TENANT_NAME')
170+
171+ validate = list(set(creds[0].values() + creds[1].values()))
172+
173+ if not validate[0]:
174+ logging.warn('OpenStack credential environment variables not found.')
175+ creds = {}
176+
177 return creds
178
179
180 def floating_ip_is_available(neutron):
181 '''Check if a floating ip is available to the tenant, using the
182- provided neutron client object.
183+ provided neutron client object.
184
185 :param neutron: neutron client object
186 :returns: True if a floating IP is available to the tenant
187@@ -240,7 +289,7 @@
188
189 def has_floating_ip(addresses, fip_str):
190 '''Inspect list of addresses for an item which starts with the specified
191- string. Returns the (first) matching item found, returns None if not.
192+ string. Returns the (first) matching item found, returns None if not.
193
194 :param addresses: list of dicts containing nova addresses data
195 :param fip_str: floating IP string to match, generally first 2 or 3 octets
196@@ -265,15 +314,15 @@
197 return False
198
199
200-def replace_line_with_lines(filename, str_find, with_lines):
201+def replace_line_with_lines(file_name, str_find, with_lines):
202 '''Inject lines into file, where string is found in exactly and
203 only one line. Return None if successful, return a message otherwise.
204
205- :param filename: file name as string, to read and write
206+ :param file_name: file name as string, to read and write
207 :param str_find: string to find in a line
208 :param str_lines: list of lines to inject
209 '''
210- with open(filename, 'r') as r_file:
211+ with open(file_name, 'r') as r_file:
212 lines = r_file.readlines()
213
214 indices = []
215@@ -283,10 +332,10 @@
216 if len(indices) > 1:
217 return 'Could not replace line, found more than one match.'
218 elif len(indices) == 0:
219- return 'Could not replace line, no match in {}'.format(filename)
220+ return 'Could not replace line, no match in {}'.format(file_name)
221 elif len(indices) == 1:
222 logging.info('string find for {}: {}'.format(str_find, indices))
223- with open(filename, 'w') as w_file:
224+ with open(file_name, 'w') as w_file:
225 out_lines = (lines[0:indices[0]] +
226 with_lines +
227 lines[indices[0] + 1:])
228@@ -295,7 +344,7 @@
229
230 def openstack_release(ubuntu_release):
231 '''Return the OpenStack release version shipped with a particular
232- release of Ubuntu.
233+ release of Ubuntu.
234
235 :param ubuntu_release: Ubuntu release codename (eg, utopic)
236 :returns: OpenStack release name as string
237@@ -312,7 +361,7 @@
238
239 def uca_openstack_releases(ubuntu_release):
240 '''Return a list of OpenStack releases available to particular release
241- of Ubuntu via cloud archives aka UCA.
242+ of Ubuntu via cloud archives aka UCA.
243
244 :param ubuntu_release: Ubuntu release codename (eg, utopic)
245 :returns: OpenStack release names as list
246@@ -349,9 +398,9 @@
247
248
249 def dict_compare(dict_old, dict_new):
250- '''Compare two dictionaries, return dict of list of keys which
251- have been added, removed, have had their values changed, or
252- have the same values.
253+ '''Compare two dictionaries, return dict of lists containing the
254+ original keys which have been added, removed, have changed values,
255+ or have the same values.
256 '''
257 dict_new_keys = frozenset(dict_new.keys())
258 dict_old_keys = frozenset(dict_old.keys())
259@@ -362,6 +411,19 @@
260 _d['diff'] = list(k for k in intersect_keys if dict_new[k] != dict_old[k])
261 _d['same'] = list(k for k in intersect_keys if dict_new[k] == dict_old[k])
262 _d['diff-rmvd'] = list(set(_d['diff']) - set(_d['rmvd']))
263+ _d['changed'] = list(set(_d['added'] + _d['diff'] + _d['rmvd']))
264+
265+ if _d['added']:
266+ logging.debug('Added: \n{}'.format(dict_to_yaml(_d['added'])))
267+
268+ if _d['rmvd']:
269+ logging.debug('Removed: \n{}'.format(dict_to_yaml(_d['rmvd'])))
270+
271+ if _d['diff']:
272+ logging.debug('Diff: \n{}'.format(dict_to_yaml(_d['diff'])))
273+
274+ if _d['same']:
275+ logging.debug('Same: \n{}'.format(dict_to_yaml(_d['same'])))
276 return _d
277
278
279@@ -393,6 +455,7 @@
280 _file.write(template.render(context))
281
282
283+# Launchpad helpers
284 def lpl_connect(anonymous=False):
285 '''Connect to launchpad, return a Launchpad object.
286 '''
287@@ -468,7 +531,7 @@
288
289
290 def pb_it(file_name):
291- '''pastebin a filename, return pastebin url
292+ '''pastebin a file_name, return pastebin url
293 '''
294 if os.path.isfile(file_name):
295 pb_url = subprocess.Popen(['pastebinit', file_name],
296@@ -568,13 +631,13 @@
297 logging.debug('SSH stdout: {}'.format(stdout_lines))
298 logging.debug('SSH stderr: {}'.format(stderr_lines))
299 except paramiko.ssh_exception.SSHException, e:
300- logging.debug('SSH session connect FAILED for host '
301+ logging.error('SSH session connect FAILED for host '
302 '{} ({})'.format(host, e))
303 if mpq:
304 mpq.put(False)
305 return False
306 except socket.error, e:
307- logging.debug('SSH socket connect FAIL for'
308+ logging.error('SSH socket connect FAIL for'
309 ' {} ({})'.format(host, e))
310 if mpq:
311 mpq.put(False)
312@@ -640,3 +703,389 @@
313 _queue_return = _queue.get()
314 logging.debug('func_timeout OK. Queue: {}'.format(_queue_return))
315 return _queue_return
316+
317+
318+# branch scanner helpers
319+def dict_to_yaml(dict_data):
320+ return yaml.dump(dict_data, default_flow_style=False)
321+
322+
323+def create_properties_files(contexts, source, out_file,
324+ templates_dir='populate'):
325+ '''Create properties files for targets defined in contexts dict.'''
326+ for idx, context in enumerate(contexts):
327+ if 'mojo_spec' in context.keys() and 'metal' in context['mojo_spec']:
328+ _file = 'baremetal-{}'.format(out_file)
329+ else:
330+ _file = out_file
331+
332+ target = os.path.join(WORKSPACE, _file.format(uuid.uuid4()))
333+ logging.debug('Rendering properties file: {}'.format(target))
334+ render(source, target, context, templates_dir)
335+ logging.info('Created {} properties files.'.format(len(contexts)))
336+
337+
338+def is_charm_branch(branch_str):
339+ '''Return true if the branch string looks like a charm.'''
340+ if '/charms/' in branch_str or 'lp:charms/' in branch_str:
341+ logging.debug(' + Looks like a charm: {}'.format(branch_str))
342+ return True
343+ else:
344+ logging.debug(' - Does not look like a charm: {}'.format(branch_str))
345+ return False
346+
347+
348+def is_next_branch(branch_str):
349+ '''Return True if the branch string looks like a next charm.'''
350+ if branch_str[-5:] == "/next" in branch_str:
351+ logging.debug(' + Looks like a next branch: {}'.format(branch_str))
352+ return True
353+ else:
354+ logging.debug(' - Does not look like a next branch: '
355+ '{}'.format(branch_str))
356+ return False
357+
358+
359+def get_tags(branch_str):
360+ '''Return a list of hash tags in a string.'''
361+ if '#' in branch_str:
362+ return branch_str.split('#')[1:]
363+ else:
364+ return None
365+
366+
367+def strip_tags(branch_str):
368+ '''Return a string without hash tags.'''
369+ if '#' in branch_str:
370+ return branch_str.split('#')[0]
371+ else:
372+ return branch_str
373+
374+
375+def dict_strip_tags(dict_data):
376+ '''Remove tags from keys in a dictionary.'''
377+ _d = {}
378+ for k, v in dict_data:
379+ _d[strip_tags(k)] = v
380+ return _d
381+
382+
383+def list_strip_tags(list_data):
384+ '''Remove tags from values in a list of strings.'''
385+ _list = []
386+ for v in list_data:
387+ _list.append(strip_tags(v))
388+ return _list
389+
390+
391+def is_tagged(my_string, tagged, tags):
392+ '''Check if a string contains any of a list of tags, based on
393+ a dict of tags to branch strings.
394+ '''
395+ for tag in tags:
396+ if my_string in tagged[tag]:
397+ logging.info('Tag: {} on {}'.format(tag, my_string))
398+ return True
399+ return False
400+
401+
402+def get_tagged_branches(conf_map):
403+ '''Get tagged branches from config map data. Return a dict of
404+ tag keys and branch values.
405+ '''
406+ # Available tags
407+ tagged = {
408+ 'NOAMULET': [],
409+ 'NODEPLOY': [],
410+ 'NOLINT': [],
411+ 'NOUNIT': [],
412+ }
413+
414+ for branch_str in conf_map['trigger-branches']:
415+ tags = get_tags(branch_str)
416+ if not tags:
417+ continue
418+ for tag in tags:
419+ if tag not in tagged.keys():
420+ raise ValueError('Invalid tag: {}. Valid tags '
421+ 'are: {}'.format(tag, tagged.keys()))
422+ tagged[tag].append(strip_tags(branch_str))
423+
424+ logging.debug('Tagged: \n{}'.format(dict_to_yaml(tagged)))
425+ return tagged
426+
427+
428+def get_next_base_name(branch_str):
429+ '''Return charm name, given a next branch string.'''
430+ return branch_str.split('/')[-2]
431+
432+
433+def get_stable_base_name(branch_str):
434+ '''Return charm name, given a non-next branch string.'''
435+ return strip_chars('-'.join(branch_str.split('/')[-1:]))
436+
437+
438+def create_properties_dict(changed, tagged={},
439+ blacktags=[], charms_only=False):
440+ '''Generate properties data which can be passed to a make lint-
441+ properties, unit-properties, amulet-properties files, routines, etc.
442+ for consumption by Jenkins parameterized jobs. Accepts dict of tagged
443+ branches and a list of blacklistedm, to skip matches. Optionally
444+ create properties only for charm branches.
445+ '''
446+ contexts = []
447+ changed.sort()
448+ for branch_str in changed:
449+
450+ # Skip branches tagged with blacktags
451+ if is_tagged(branch_str, tagged, blacktags):
452+ continue
453+
454+ is_charm = is_charm_branch(branch_str)
455+ is_next = is_next_branch(branch_str)
456+
457+ if is_charm and is_next:
458+ base_name = get_next_base_name(branch_str)
459+ display_name = '{}-next'.format(base_name)
460+ else:
461+ base_name = get_stable_base_name(branch_str)
462+ display_name = base_name
463+
464+ if (is_charm and charms_only) or not charms_only:
465+ contexts.append({
466+ 'branch': branch_str,
467+ 'base_name': base_name,
468+ 'display_name': display_name
469+ })
470+ return contexts
471+
472+
473+def create_deploy_properties_dict(deploy_group):
474+ '''Generate template context data for deploy targets in a provided dict.
475+ Return a dictionary which can be passed to a make deploy-properties
476+ files routine.
477+ '''
478+ rls_supp = get_u_supported()
479+ contexts = []
480+ for charm_set, targets in deploy_group.iteritems():
481+ targets.sort(reverse=True)
482+ for target in targets:
483+ target_split = target.split('-')
484+ u_rls = target_split[0]
485+ os_rls = target_split[1]
486+
487+ if len(target_split) == 3:
488+ inst_src = target_split[2]
489+
490+ elif len(target_split) == 2:
491+ inst_src = 'default'
492+ else:
493+ raise ValueError('Invalid target name: {}'.format(target))
494+
495+ if u_rls not in rls_supp:
496+ logging.warn('Detected an unsupported '
497+ 'release: {}'.format(u_rls))
498+
499+ contexts.append({
500+ 'charm_set': charm_set,
501+ 'u_rls': u_rls,
502+ 'os_rls': os_rls,
503+ 'inst_src': inst_src
504+ })
505+ return contexts
506+
507+
508+def get_state_file_name(conf_map, key='state-file'):
509+ '''Get branch scanner state file name based on config data.'''
510+ safe_mkdir(conf_map['misc-conf']['state-dir'])
511+ state_fn = os.path.join(conf_map['misc-conf']['state-dir'],
512+ conf_map['misc-conf'][key])
513+
514+ logging.info('State file: {}'.format(state_fn))
515+ return state_fn
516+
517+
518+def read_state_file(state_fn):
519+ '''Read state data from state file.'''
520+ logging.debug('Reading state data from: {}'.format(state_fn))
521+ if os.path.isfile(state_fn):
522+ state_prev = read_yaml(state_fn)
523+ else:
524+ state_prev = {}
525+ return state_prev
526+
527+
528+def write_state_file(state_data, state_fn):
529+ '''Commit state data to the state file.'''
530+ logging.debug('Writing state data to: {}'.format(state_fn))
531+ write_yaml(state_data, state_fn)
532+
533+
534+def write_changed_file(changed_data, changed_fn):
535+ '''Write a flat file containing new or changed branch strings.'''
536+ logging.debug('Writing added/changed info to: {}'.format(changed_fn))
537+ with open(changed_fn, 'w') as w_file:
538+ w_file.write('\n'.join(changed_data))
539+
540+
541+def fake_branch_states(branch_list):
542+ '''Construct a dict with branch strings as keys, and epoch time as
543+ values. Useful for forcing all to appear to be changed.
544+ '''
545+ state_fake = {}
546+ for branch_str in list_strip_tags(branch_list):
547+ logging.info('Forcing simulated change on: {}'.format(branch_str))
548+ state_fake[branch_str] = time.time()
549+ return state_fake
550+
551+
552+def query_branch_states(branch_list, max_tries=10):
553+ '''Get current state of a list of launchpad branches, return a dict.'''
554+ load_plugins()
555+ state_now = {}
556+ for branch_str in list_strip_tags(branch_list):
557+ logging.info('Querying revision info on: {}'.format(branch_str))
558+ ret_ok, tries = False, 0
559+
560+ # Check branches and handle bazaar http retries
561+ while not ret_ok and tries <= max_tries:
562+ try:
563+ this_br = branch.Branch.open(branch_str)
564+ ret_ok = True
565+ except bzrlib.errors.InvalidHttpResponse as exception:
566+ logging.debug('HTTP error checking {} on attempt {} of '
567+ '{}'.format(branch_str, tries, max_tries))
568+ logging.error('{} {}'.format(exception.path, exception.msg))
569+ time.sleep(3)
570+ tries += 1
571+
572+ if not ret_ok:
573+ raise ValueError('Query failed on: {}'.format(branch_str))
574+
575+ state_now[branch_str] = list(this_br.last_revision_info())
576+
577+ return state_now
578+
579+
580+def is_deploy_needed(changed, tagged={}, blacktags=[]):
581+ '''Analyze strings of changed branches to determine if any next
582+ or stable charms have changed, while excluding those blacklisted
583+ with a tag.'''
584+
585+ if not changed:
586+ return False
587+
588+ deploy_stable, deploy_next = False, False
589+ for branch_str in changed:
590+
591+ # Skip branches tagged with blacktags
592+ if is_tagged(branch_str, tagged, blacktags):
593+ continue
594+
595+ is_charm = is_charm_branch(branch_str)
596+ is_next = is_next_branch(branch_str)
597+
598+ if is_charm and is_next:
599+ deploy_next = True
600+ elif is_charm and not is_next:
601+ deploy_stable = True
602+
603+# TODO - trigger next and stable independently
604+# For now, a change in either with trigger both.
605+# logging.info('Deploy stable: {}'.format(deploy_stable))
606+# logging.info('Deploy next: {}'.format(deploy_next))
607+# return deploy_next, deploy_stable
608+
609+ logging.info('Deploy: {}'.format(deploy_stable or deploy_next))
610+
611+ if deploy_next or deploy_stable:
612+ return True
613+ else:
614+ return False
615+
616+
617+def define_scanner_command_options(USAGE):
618+ '''Define command line options.'''
619+ parser = optparse.OptionParser(USAGE)
620+ parser.add_option("-d", "--debug",
621+ help="Enable debug logging",
622+ dest="debug", action="store_true", default=False)
623+ parser.add_option('--XA', '--no-amulet-trigger',
624+ help='Do not create amulet job properties files.',
625+ dest='amulet', action='store_false', default=True)
626+ parser.add_option('--XD', '--no-deploy-trigger',
627+ help='Do not create deploy job properties files.',
628+ dest='deploy', action='store_false', default=True)
629+ parser.add_option('--XL', '--no-lint-trigger',
630+ help='Do not create lint job properties files.',
631+ dest='lint', action='store_false', default=True)
632+ parser.add_option('--XU', '--no-unit-trigger',
633+ help='Do not create unit test job properties files.',
634+ dest='unit', action='store_false', default=True)
635+ parser.add_option('-F', '--force-changed',
636+ help='Do not check branches, act like ALL were changed '
637+ 'regardless of actual state. Default False.',
638+ dest='force', action='store_true', default=False)
639+ parser.add_option('-X', '--no-scan',
640+ help='Do not check branches, act like NONE were changed '
641+ 'regardless of actual state. Default False.',
642+ dest='no_scan', action='store_true', default=False)
643+ parser.add_option('-N', '--no-state',
644+ help='Do not update state file. Has no effect if '
645+ 'used in combination with dry run.',
646+ dest='no_state', action='store_true', default=False)
647+ parser.add_option('-0', '--dry-run',
648+ help='Do not create properties files, and do not '
649+ 'update state file(s).',
650+ dest='dry', action='store_true', default=False)
651+
652+ return parser.parse_args()
653+
654+
655+def handle_scanner_command_options(opts, args):
656+ '''Handle command options and inform user.'''
657+ if opts.debug:
658+ logging.basicConfig(level=logging.DEBUG)
659+ logging.info('Logging level set to DEBUG!')
660+ logging.debug('parse opts: \n{}'.format(dict_to_yaml(vars(opts))))
661+ logging.debug('parse args: {}'.format(args))
662+ else:
663+ logging.basicConfig(level=logging.INFO)
664+
665+ logging.info('Workspace dir: {}'.format(WORKSPACE))
666+
667+ if opts.force:
668+ logging.info(' - Branch scanning disabled. Will force state to '
669+ 'CHANGED for all monitored branches!')
670+ else:
671+ logging.info(' + Branch scanning enabled.')
672+
673+ if opts.amulet:
674+ logging.info(' + Amulet trigger creation enabled.')
675+ else:
676+ logging.info(' - Amulet trigger creation disabled.')
677+
678+ if opts.unit:
679+ logging.info(' + Unit test trigger creation enabled.')
680+ else:
681+ logging.info(' - Unit test trigger creation disabled.')
682+
683+ if opts.lint:
684+ logging.info(' + Lint trigger creation enabled.')
685+ else:
686+ logging.info(' - Lint trigger creation disabled.')
687+
688+ if opts.deploy:
689+ logging.info(' + Deploy trigger creation enabled.')
690+ else:
691+ logging.info(' - Deploy trigger creation disabled.')
692+
693+ if opts.no_state:
694+ logging.info(' - No-Update enabled, state files will not be updated.')
695+
696+ if opts.dry:
697+ logging.info(' - Dry run enabled, properties files and state files '
698+ 'will not be created/updated.')
699+
700+ if opts.no_scan and opts.force:
701+ logging.warn('Specifying Force and No Scan makes no sense. YMMV')
702
703=== renamed file 'prep.sh' => 'deploy-prep.sh'
704=== renamed file 'deploy.py' => 'deploy-uosci.py'
705--- deploy.py 2015-01-27 16:29:47 +0000
706+++ deploy-uosci.py 2015-08-28 16:23:16 +0000
707@@ -1,13 +1,13 @@
708 #!/usr/bin/python
709 '''
710 Deploys/creates (or updates) jenkins environment, neutron networks, etc.
711- See README(s)! This is NOT to be incorporated into jenkins jobs/tests.
712+ See README(s)! This is not incorporated into jenkins jobs/tests.
713 '''
714+import logging
715 import os
716-import yaml
717 import subprocess
718-import logging
719 import uuid
720+import yaml
721 from copy import deepcopy
722 from netaddr import IPNetwork
723 from neutronclient.neutron import client as ne_client
724
725=== removed directory 'deployment/jobs/X_manual_trigger_deploy_openstack'
726=== removed file 'deployment/jobs/X_manual_trigger_deploy_openstack/config.xml'
727--- deployment/jobs/X_manual_trigger_deploy_openstack/config.xml 2015-02-05 22:19:52 +0000
728+++ deployment/jobs/X_manual_trigger_deploy_openstack/config.xml 1970-01-01 00:00:00 +0000
729@@ -1,172 +0,0 @@
730-<?xml version='1.0' encoding='UTF-8'?>
731-<project>
732- <actions/>
733- <description>THIS TRIGGER IS EXPERIMENTAL AND IN DEVELOPMENT&#xd;
734-BEST NOT USE IT JUST YET&#xd;
735-&#xd;
736-* Manually trigger a deployment with the chosen parameters.&#xd;
737-* Calls deploy_with_deployer.</description>
738- <logRotator class="hudson.tasks.LogRotator">
739- <daysToKeep>90</daysToKeep>
740- <numToKeep>-1</numToKeep>
741- <artifactDaysToKeep>-1</artifactDaysToKeep>
742- <artifactNumToKeep>-1</artifactNumToKeep>
743- </logRotator>
744- <keepDependencies>false</keepDependencies>
745- <properties>
746- <hudson.model.ParametersDefinitionProperty>
747- <parameterDefinitions>
748- <hudson.model.ChoiceParameterDefinition>
749- <name>UBUNTU_RELEASE</name>
750- <description>THIS TRIGGER IS EXPERIMENTAL AND IN DEVELOPMENT
751-BEST NOT USE IT JUST YET</description>
752- <choices class="java.util.Arrays$ArrayList">
753- <a class="string-array">
754- <string>vivid</string>
755- <string>utopic</string>
756- <string>trusty</string>
757- <string>precise</string>
758- </a>
759- </choices>
760- </hudson.model.ChoiceParameterDefinition>
761- <hudson.model.ChoiceParameterDefinition>
762- <name>OPENSTACK_RELEASE</name>
763- <description>THIS TRIGGER IS EXPERIMENTAL AND IN DEVELOPMENT
764-BEST NOT USE IT JUST YET</description>
765- <choices class="java.util.Arrays$ArrayList">
766- <a class="string-array">
767- <string>kilo</string>
768- <string>juno</string>
769- <string>icehouse</string>
770- <string>havana</string>
771- <string>grizzly</string>
772- <string>folsom</string>
773- <string>essex</string>
774- </a>
775- </choices>
776- </hudson.model.ChoiceParameterDefinition>
777- <hudson.model.ChoiceParameterDefinition>
778- <name>INSTALLATION_SOURCE</name>
779- <description>THIS TRIGGER IS EXPERIMENTAL AND IN DEVELOPMENT
780-BEST NOT USE IT JUST YET</description>
781- <choices class="java.util.Arrays$ArrayList">
782- <a class="string-array">
783- <string>default</string>
784- <string>proposed</string>
785- <string>staging</string>
786- <string>trunk</string>
787- </a>
788- </choices>
789- </hudson.model.ChoiceParameterDefinition>
790- <hudson.model.ChoiceParameterDefinition>
791- <name>CHARM_SET</name>
792- <description>Choose a pre-defined deployer bundle yaml from O-C-T branch,
793-or choose &quot;custom-other.yaml&quot; and upload an arbitrary deployer file to use it.
794-Custom bundle should have the same targets as the default and next yamls.</description>
795- <choices class="java.util.Arrays$ArrayList">
796- <a class="string-array">
797- <string>default.yaml</string>
798- <string>next.yaml</string>
799- <string>default-baremetal.yaml</string>
800- <string>next-baremetal.yaml</string>
801- <string>next-power8.yaml</string>
802- <string>default-power8.yaml</string>
803- <string>custom-other.yaml</string>
804- </a>
805- </choices>
806- </hudson.model.ChoiceParameterDefinition>
807- <hudson.model.FileParameterDefinition>
808- <name>custom-other.yaml</name>
809- <description></description>
810- </hudson.model.FileParameterDefinition>
811- <hudson.model.BooleanParameterDefinition>
812- <name>TEMPEST_SMOKE</name>
813- <description>Enable to run tempest smoke tests after deployment. Keep on by default.</description>
814- <defaultValue>true</defaultValue>
815- </hudson.model.BooleanParameterDefinition>
816- <hudson.model.BooleanParameterDefinition>
817- <name>NO_POST_DESTROY</name>
818- <description>Set true to skip destroy after deployment. Note that the enviro will most likely be torn down by the next job!</description>
819- <defaultValue>false</defaultValue>
820- </hudson.model.BooleanParameterDefinition>
821- <hudson.model.ChoiceParameterDefinition>
822- <name>JUJU_SOURCE</name>
823- <description>Source for juju packages (stable, devel or proposed).</description>
824- <choices class="java.util.Arrays$ArrayList">
825- <a class="string-array">
826- <string>ppa:juju/stable</string>
827- <string>ppa:juju/devel</string>
828- <string>ppa:juju/proposed</string>
829- </a>
830- </choices>
831- </hudson.model.ChoiceParameterDefinition>
832- <hudson.model.ChoiceParameterDefinition>
833- <name>LAB</name>
834- <description>/!\ CAUTION: LAB is a Work In Progress /!\
835-Where:
836- serverstack: deploys on OpenStack
837- dellstack: deploys on AMD64 baremetal via MAAS
838- dellstack-power: deploys on PPC64el Power8 via MAAS
839-
840-Must choose an appropriate CHARM_SET (bundle). Not all bundles will work in all labs.
841-
842-THIS TRIGGER IS EXPERIMENTAL AND IN DEVELOPMENT
843-BEST NOT USE IT JUST YET</description>
844- <choices class="java.util.Arrays$ArrayList">
845- <a class="string-array">
846- <string>serverstack</string>
847- <string>dellstack</string>
848- <string>dellstack-power</string>
849- </a>
850- </choices>
851- </hudson.model.ChoiceParameterDefinition>
852- </parameterDefinitions>
853- </hudson.model.ParametersDefinitionProperty>
854- <com.sonyericsson.rebuild.RebuildSettings plugin="rebuild@1.22">
855- <autoRebuild>false</autoRebuild>
856- </com.sonyericsson.rebuild.RebuildSettings>
857- <hudson.plugins.throttleconcurrents.ThrottleJobProperty plugin="throttle-concurrents@1.8.4">
858- <maxConcurrentPerNode>1</maxConcurrentPerNode>
859- <maxConcurrentTotal>0</maxConcurrentTotal>
860- <throttleEnabled>true</throttleEnabled>
861- <throttleOption>project</throttleOption>
862- </hudson.plugins.throttleconcurrents.ThrottleJobProperty>
863- <org.jvnet.hudson.plugins.shelveproject.ShelveProjectProperty plugin="shelve-project-plugin@1.5"/>
864- </properties>
865- <scm class="hudson.scm.NullSCM"/>
866- <canRoam>true</canRoam>
867- <disabled>false</disabled>
868- <blockBuildWhenDownstreamBuilding>false</blockBuildWhenDownstreamBuilding>
869- <blockBuildWhenUpstreamBuilding>false</blockBuildWhenUpstreamBuilding>
870- <triggers/>
871- <concurrentBuild>true</concurrentBuild>
872- <builders>
873- <hudson.plugins.parameterizedtrigger.TriggerBuilder plugin="parameterized-trigger@2.25">
874- <configs>
875- <hudson.plugins.parameterizedtrigger.BlockableBuildTriggerConfig>
876- <configs>
877- <hudson.plugins.parameterizedtrigger.CurrentBuildParameters/>
878- </configs>
879- <projects>openstack_lab_switcher</projects>
880- <condition>ALWAYS</condition>
881- <triggerWithNoParameters>false</triggerWithNoParameters>
882- <buildAllNodesWithLabel>false</buildAllNodesWithLabel>
883- </hudson.plugins.parameterizedtrigger.BlockableBuildTriggerConfig>
884- </configs>
885- </hudson.plugins.parameterizedtrigger.TriggerBuilder>
886- </builders>
887- <publishers>
888- <hudson.tasks.ArtifactArchiver>
889- <artifacts>*</artifacts>
890- <allowEmptyArchive>true</allowEmptyArchive>
891- <onlyIfSuccessful>false</onlyIfSuccessful>
892- <fingerprint>false</fingerprint>
893- <defaultExcludes>true</defaultExcludes>
894- </hudson.tasks.ArtifactArchiver>
895- </publishers>
896- <buildWrappers>
897- <org.jenkinsci.plugins.buildnamesetter.BuildNameSetter plugin="build-name-setter@1.3">
898- <template>#${BUILD_NUMBER} ${ENV,var=&quot;OPENSTACK_RELEASE&quot;} from ${ENV,var=&quot;INSTALLATION_SOURCE&quot;} on ${ENV,var=&quot;UBUNTU_RELEASE&quot;} via ${ENV,var=&quot;CHARM_SET&quot;}</template>
899- </org.jenkinsci.plugins.buildnamesetter.BuildNameSetter>
900- </buildWrappers>
901-</project>
902\ No newline at end of file
903
904=== modified file 'deployment/jobs/charm_amulet_test/config.xml'
905--- deployment/jobs/charm_amulet_test/config.xml 2015-07-09 21:17:57 +0000
906+++ deployment/jobs/charm_amulet_test/config.xml 2015-08-28 16:23:16 +0000
907@@ -5,10 +5,10 @@
908 * Use a trigger to hit this job with parameters.&#xd;
909 * Not intended to be run manually.</description>
910 <logRotator class="hudson.tasks.LogRotator">
911- <daysToKeep>90</daysToKeep>
912- <numToKeep>500</numToKeep>
913- <artifactDaysToKeep>-1</artifactDaysToKeep>
914- <artifactNumToKeep>-1</artifactNumToKeep>
915+ <daysToKeep>-1</daysToKeep>
916+ <numToKeep>-1</numToKeep>
917+ <artifactDaysToKeep>150</artifactDaysToKeep>
918+ <artifactNumToKeep>1500</artifactNumToKeep>
919 </logRotator>
920 <keepDependencies>false</keepDependencies>
921 <properties>
922@@ -66,7 +66,7 @@
923 </com.sonyericsson.rebuild.RebuildSettings>
924 <hudson.plugins.throttleconcurrents.ThrottleJobProperty plugin="throttle-concurrents@1.8.4">
925 <maxConcurrentPerNode>1</maxConcurrentPerNode>
926- <maxConcurrentTotal>7</maxConcurrentTotal>
927+ <maxConcurrentTotal>3</maxConcurrentTotal>
928 <throttleEnabled>true</throttleEnabled>
929 <throttleOption>project</throttleOption>
930 </hudson.plugins.throttleconcurrents.ThrottleJobProperty>
931
932=== modified file 'deployment/jobs/charm_lint_check/config.xml'
933--- deployment/jobs/charm_lint_check/config.xml 2015-01-21 05:51:34 +0000
934+++ deployment/jobs/charm_lint_check/config.xml 2015-08-28 16:23:16 +0000
935@@ -5,10 +5,10 @@
936 * Use a trigger to hit this job with parameters.&#xd;
937 * Not intended to be run manually.</description>
938 <logRotator class="hudson.tasks.LogRotator">
939- <daysToKeep>180</daysToKeep>
940- <numToKeep>500</numToKeep>
941- <artifactDaysToKeep>-1</artifactDaysToKeep>
942- <artifactNumToKeep>-1</artifactNumToKeep>
943+ <daysToKeep>-1</daysToKeep>
944+ <numToKeep>-1</numToKeep>
945+ <artifactDaysToKeep>150</artifactDaysToKeep>
946+ <artifactNumToKeep>1500</artifactNumToKeep>
947 </logRotator>
948 <keepDependencies>false</keepDependencies>
949 <properties>
950@@ -51,7 +51,7 @@
951 </com.sonyericsson.rebuild.RebuildSettings>
952 <hudson.plugins.throttleconcurrents.ThrottleJobProperty plugin="throttle-concurrents@1.8.4">
953 <maxConcurrentPerNode>1</maxConcurrentPerNode>
954- <maxConcurrentTotal>8</maxConcurrentTotal>
955+ <maxConcurrentTotal>12</maxConcurrentTotal>
956 <throttleEnabled>true</throttleEnabled>
957 <throttleOption>project</throttleOption>
958 </hudson.plugins.throttleconcurrents.ThrottleJobProperty>
959@@ -80,14 +80,14 @@
960 <fingerprint>false</fingerprint>
961 <defaultExcludes>true</defaultExcludes>
962 </hudson.tasks.ArtifactArchiver>
963- <hudson.plugins.descriptionsetter.DescriptionSetterPublisher plugin="description-setter@1.9">
964+ <hudson.plugins.descriptionsetter.DescriptionSetterPublisher plugin="description-setter@1.10">
965 <regexp>_:.*</regexp>
966 <regexpForFailed>_:.*</regexpForFailed>
967 <setForMatrix>false</setForMatrix>
968 </hudson.plugins.descriptionsetter.DescriptionSetterPublisher>
969 </publishers>
970 <buildWrappers>
971- <hudson.plugins.timestamper.TimestamperBuildWrapper plugin="timestamper@1.5.15"/>
972+ <hudson.plugins.timestamper.TimestamperBuildWrapper plugin="timestamper@1.6"/>
973 <org.jenkinsci.plugins.buildnamesetter.BuildNameSetter plugin="build-name-setter@1.3">
974 <template>#${BUILD_NUMBER} ${ENV,var=&quot;DISPLAY_NAME&quot;}</template>
975 </org.jenkinsci.plugins.buildnamesetter.BuildNameSetter>
976
977=== modified file 'deployment/jobs/charm_unit_test/config.xml'
978--- deployment/jobs/charm_unit_test/config.xml 2015-01-21 05:51:34 +0000
979+++ deployment/jobs/charm_unit_test/config.xml 2015-08-28 16:23:16 +0000
980@@ -5,10 +5,10 @@
981 * Use a trigger to hit this job with parameters.&#xd;
982 * Not intended to be run manually.</description>
983 <logRotator class="hudson.tasks.LogRotator">
984- <daysToKeep>180</daysToKeep>
985- <numToKeep>500</numToKeep>
986- <artifactDaysToKeep>-1</artifactDaysToKeep>
987- <artifactNumToKeep>-1</artifactNumToKeep>
988+ <daysToKeep>-1</daysToKeep>
989+ <numToKeep>-1</numToKeep>
990+ <artifactDaysToKeep>150</artifactDaysToKeep>
991+ <artifactNumToKeep>1500</artifactNumToKeep>
992 </logRotator>
993 <keepDependencies>false</keepDependencies>
994 <properties>
995@@ -51,7 +51,7 @@
996 </com.sonyericsson.rebuild.RebuildSettings>
997 <hudson.plugins.throttleconcurrents.ThrottleJobProperty plugin="throttle-concurrents@1.8.4">
998 <maxConcurrentPerNode>1</maxConcurrentPerNode>
999- <maxConcurrentTotal>8</maxConcurrentTotal>
1000+ <maxConcurrentTotal>12</maxConcurrentTotal>
1001 <throttleEnabled>true</throttleEnabled>
1002 <throttleOption>project</throttleOption>
1003 </hudson.plugins.throttleconcurrents.ThrottleJobProperty>
1004@@ -79,14 +79,14 @@
1005 <fingerprint>false</fingerprint>
1006 <defaultExcludes>true</defaultExcludes>
1007 </hudson.tasks.ArtifactArchiver>
1008- <hudson.plugins.descriptionsetter.DescriptionSetterPublisher plugin="description-setter@1.9">
1009+ <hudson.plugins.descriptionsetter.DescriptionSetterPublisher plugin="description-setter@1.10">
1010 <regexp>_:.*</regexp>
1011 <regexpForFailed>_:.*</regexpForFailed>
1012 <setForMatrix>false</setForMatrix>
1013 </hudson.plugins.descriptionsetter.DescriptionSetterPublisher>
1014 </publishers>
1015 <buildWrappers>
1016- <hudson.plugins.timestamper.TimestamperBuildWrapper plugin="timestamper@1.5.15"/>
1017+ <hudson.plugins.timestamper.TimestamperBuildWrapper plugin="timestamper@1.6"/>
1018 <org.jenkinsci.plugins.buildnamesetter.BuildNameSetter plugin="build-name-setter@1.3">
1019 <template>#${BUILD_NUMBER} ${ENV,var=&quot;DISPLAY_NAME&quot;}</template>
1020 </org.jenkinsci.plugins.buildnamesetter.BuildNameSetter>
1021
1022=== removed directory 'deployment/jobs/deploy_openstack'
1023=== removed file 'deployment/jobs/deploy_openstack/config.xml'
1024--- deployment/jobs/deploy_openstack/config.xml 2015-05-17 14:36:21 +0000
1025+++ deployment/jobs/deploy_openstack/config.xml 1970-01-01 00:00:00 +0000
1026@@ -1,143 +0,0 @@
1027-<?xml version='1.0' encoding='UTF-8'?>
1028-<project>
1029- <actions/>
1030- <description>* NOT intended to be run manually, although it can be REBUILT.&#xd;
1031-* Use a trigger to hit this job with parameters.&#xd;
1032-* Deploys Ubuntu OpenStack from ?.yaml bundle from openstack-charm-testing.&#xd;
1033-* Job PASSES if the bundle deploys cleanly.&#xd;
1034-* Other fails such as tempest will not cause job fail.&#xd;
1035-&#xd;
1036-</description>
1037- <logRotator class="hudson.tasks.LogRotator">
1038- <daysToKeep>180</daysToKeep>
1039- <numToKeep>-1</numToKeep>
1040- <artifactDaysToKeep>30</artifactDaysToKeep>
1041- <artifactNumToKeep>-1</artifactNumToKeep>
1042- </logRotator>
1043- <keepDependencies>false</keepDependencies>
1044- <properties>
1045- <hudson.model.ParametersDefinitionProperty>
1046- <parameterDefinitions>
1047- <hudson.model.StringParameterDefinition>
1048- <name>UBUNTU_RELEASE</name>
1049- <description></description>
1050- <defaultValue>utopic</defaultValue>
1051- </hudson.model.StringParameterDefinition>
1052- <hudson.model.StringParameterDefinition>
1053- <name>OPENSTACK_RELEASE</name>
1054- <description></description>
1055- <defaultValue>juno</defaultValue>
1056- </hudson.model.StringParameterDefinition>
1057- <hudson.model.StringParameterDefinition>
1058- <name>INSTALLATION_SOURCE</name>
1059- <description></description>
1060- <defaultValue>default</defaultValue>
1061- </hudson.model.StringParameterDefinition>
1062- <hudson.model.StringParameterDefinition>
1063- <name>CHARM_SET</name>
1064- <description></description>
1065- <defaultValue>next.yaml</defaultValue>
1066- </hudson.model.StringParameterDefinition>
1067- <hudson.model.FileParameterDefinition>
1068- <name>custom-other.yaml</name>
1069- <description></description>
1070- </hudson.model.FileParameterDefinition>
1071- <hudson.model.StringParameterDefinition>
1072- <name>DISPLAY_NAME</name>
1073- <description></description>
1074- <defaultValue></defaultValue>
1075- </hudson.model.StringParameterDefinition>
1076- <hudson.model.StringParameterDefinition>
1077- <name>MP_TRIGGER</name>
1078- <description></description>
1079- <defaultValue></defaultValue>
1080- </hudson.model.StringParameterDefinition>
1081- <hudson.model.StringParameterDefinition>
1082- <name>MP_SRC_BR</name>
1083- <description></description>
1084- <defaultValue></defaultValue>
1085- </hudson.model.StringParameterDefinition>
1086- <hudson.model.StringParameterDefinition>
1087- <name>MP_TGT_BR</name>
1088- <description>REBUILD is ok, but this job NOT intended to be run manually
1089-See the manual_trigger_deploy_with_deployer job instead if you need to kick off a deployment.
1090-</description>
1091- <defaultValue></defaultValue>
1092- </hudson.model.StringParameterDefinition>
1093- <hudson.model.BooleanParameterDefinition>
1094- <name>TEMPEST_SMOKE</name>
1095- <description>Enable to run tempest smoke tests after deployment. Keep on by default.</description>
1096- <defaultValue>true</defaultValue>
1097- </hudson.model.BooleanParameterDefinition>
1098- <hudson.model.BooleanParameterDefinition>
1099- <name>JUJU_SOURCE</name>
1100- <description>ppa to use for juju-core</description>
1101- <defaultValue>false</defaultValue>
1102- </hudson.model.BooleanParameterDefinition>
1103- <hudson.model.BooleanParameterDefinition>
1104- <name>NO_POST_DESTROY</name>
1105- <description>Set true to skip destroy after deployment. Note that the enviro will most likely be torn down by the next job!</description>
1106- <defaultValue>false</defaultValue>
1107- </hudson.model.BooleanParameterDefinition>
1108- </parameterDefinitions>
1109- </hudson.model.ParametersDefinitionProperty>
1110- <com.sonyericsson.rebuild.RebuildSettings plugin="rebuild@1.22">
1111- <autoRebuild>false</autoRebuild>
1112- </com.sonyericsson.rebuild.RebuildSettings>
1113- <hudson.plugins.throttleconcurrents.ThrottleJobProperty plugin="throttle-concurrents@1.8.4">
1114- <maxConcurrentPerNode>1</maxConcurrentPerNode>
1115- <maxConcurrentTotal>1</maxConcurrentTotal>
1116- <throttleEnabled>true</throttleEnabled>
1117- <throttleOption>project</throttleOption>
1118- </hudson.plugins.throttleconcurrents.ThrottleJobProperty>
1119- <org.jvnet.hudson.plugins.shelveproject.ShelveProjectProperty plugin="shelve-project-plugin@1.5"/>
1120- </properties>
1121- <scm class="hudson.scm.NullSCM"/>
1122- <assignedNode>x86_64 || slave || trusty-slave</assignedNode>
1123- <canRoam>false</canRoam>
1124- <disabled>false</disabled>
1125- <blockBuildWhenDownstreamBuilding>false</blockBuildWhenDownstreamBuilding>
1126- <blockBuildWhenUpstreamBuilding>false</blockBuildWhenUpstreamBuilding>
1127- <triggers/>
1128- <concurrentBuild>true</concurrentBuild>
1129- <builders>
1130- <hudson.tasks.Shell>
1131- <command>#!/bin/bash -e
1132-${OSCI_ROOT}/job-parts/part_workspace_cleanup.sh</command>
1133- </hudson.tasks.Shell>
1134- <hudson.plugins.copyartifact.CopyArtifact plugin="copyartifact@1.35">
1135- <project>manual_trigger_deploy_with_deployer</project>
1136- <filter>custom-other.yaml</filter>
1137- <target></target>
1138- <excludes></excludes>
1139- <selector class="hudson.plugins.copyartifact.StatusBuildSelector"/>
1140- <optional>true</optional>
1141- <doNotFingerprintArtifacts>false</doNotFingerprintArtifacts>
1142- </hudson.plugins.copyartifact.CopyArtifact>
1143- <hudson.tasks.Shell>
1144- <command>#!/bin/bash -e
1145-${OSCI_ROOT}/job-parts/build_deploy_test.sh
1146-</command>
1147- </hudson.tasks.Shell>
1148- </builders>
1149- <publishers>
1150- <hudson.tasks.ArtifactArchiver>
1151- <artifacts>*, logs/*</artifacts>
1152- <allowEmptyArchive>false</allowEmptyArchive>
1153- <onlyIfSuccessful>false</onlyIfSuccessful>
1154- <fingerprint>false</fingerprint>
1155- <defaultExcludes>true</defaultExcludes>
1156- </hudson.tasks.ArtifactArchiver>
1157- <hudson.plugins.descriptionsetter.DescriptionSetterPublisher plugin="description-setter@1.10">
1158- <regexp>_:.*</regexp>
1159- <regexpForFailed>_:.*</regexpForFailed>
1160- <setForMatrix>false</setForMatrix>
1161- </hudson.plugins.descriptionsetter.DescriptionSetterPublisher>
1162- </publishers>
1163- <buildWrappers>
1164- <hudson.plugins.timestamper.TimestamperBuildWrapper plugin="timestamper@1.6"/>
1165- <org.jenkinsci.plugins.buildnamesetter.BuildNameSetter plugin="build-name-setter@1.3">
1166- <template>#${BUILD_NUMBER} ${ENV,var=&quot;UBUNTU_RELEASE&quot;}-${ENV,var=&quot;OPENSTACK_RELEASE&quot;}-${ENV,var=&quot;INSTALLATION_SOURCE&quot;}-${ENV,var=&quot;CHARM_SET&quot;} ${ENV,var=&quot;DISPLAY_NAME&quot;}</template>
1167- </org.jenkinsci.plugins.buildnamesetter.BuildNameSetter>
1168- </buildWrappers>
1169-</project>
1170\ No newline at end of file
1171
1172=== removed directory 'deployment/jobs/deploy_openstack_baremetal'
1173=== removed file 'deployment/jobs/deploy_openstack_baremetal/config.xml'
1174--- deployment/jobs/deploy_openstack_baremetal/config.xml 2015-02-05 22:19:52 +0000
1175+++ deployment/jobs/deploy_openstack_baremetal/config.xml 1970-01-01 00:00:00 +0000
1176@@ -1,145 +0,0 @@
1177-<?xml version='1.0' encoding='UTF-8'?>
1178-<project>
1179- <actions/>
1180- <description>* NOT intended to be run manually, although it can be REBUILT.&#xd;
1181-* Use a trigger to hit this job with parameters.&#xd;
1182-* Deploys Ubuntu OpenStack from ?.yaml bundle from openstack-charm-testing.&#xd;
1183-* Job PASSES if the bundle deploys cleanly.&#xd;
1184-* Other fails such as tempest will not cause job fail.&#xd;
1185-&#xd;
1186-</description>
1187- <logRotator class="hudson.tasks.LogRotator">
1188- <daysToKeep>180</daysToKeep>
1189- <numToKeep>-1</numToKeep>
1190- <artifactDaysToKeep>30</artifactDaysToKeep>
1191- <artifactNumToKeep>-1</artifactNumToKeep>
1192- </logRotator>
1193- <keepDependencies>false</keepDependencies>
1194- <properties>
1195- <hudson.model.ParametersDefinitionProperty>
1196- <parameterDefinitions>
1197- <hudson.model.StringParameterDefinition>
1198- <name>UBUNTU_RELEASE</name>
1199- <description></description>
1200- <defaultValue>utopic</defaultValue>
1201- </hudson.model.StringParameterDefinition>
1202- <hudson.model.StringParameterDefinition>
1203- <name>OPENSTACK_RELEASE</name>
1204- <description></description>
1205- <defaultValue>juno</defaultValue>
1206- </hudson.model.StringParameterDefinition>
1207- <hudson.model.StringParameterDefinition>
1208- <name>INSTALLATION_SOURCE</name>
1209- <description></description>
1210- <defaultValue>default</defaultValue>
1211- </hudson.model.StringParameterDefinition>
1212- <hudson.model.StringParameterDefinition>
1213- <name>CHARM_SET</name>
1214- <description></description>
1215- <defaultValue>next.yaml</defaultValue>
1216- </hudson.model.StringParameterDefinition>
1217- <hudson.model.FileParameterDefinition>
1218- <name>custom-other.yaml</name>
1219- <description></description>
1220- </hudson.model.FileParameterDefinition>
1221- <hudson.model.StringParameterDefinition>
1222- <name>DISPLAY_NAME</name>
1223- <description></description>
1224- <defaultValue></defaultValue>
1225- </hudson.model.StringParameterDefinition>
1226- <hudson.model.StringParameterDefinition>
1227- <name>MP_TRIGGER</name>
1228- <description></description>
1229- <defaultValue></defaultValue>
1230- </hudson.model.StringParameterDefinition>
1231- <hudson.model.StringParameterDefinition>
1232- <name>MP_SRC_BR</name>
1233- <description></description>
1234- <defaultValue></defaultValue>
1235- </hudson.model.StringParameterDefinition>
1236- <hudson.model.StringParameterDefinition>
1237- <name>MP_TGT_BR</name>
1238- <description>REBUILD is ok, but this job NOT intended to be run manually
1239-See the manual_trigger_deploy_with_deployer job instead if you need to kick off a deployment.
1240-</description>
1241- <defaultValue></defaultValue>
1242- </hudson.model.StringParameterDefinition>
1243- <hudson.model.BooleanParameterDefinition>
1244- <name>TEMPEST_SMOKE</name>
1245- <description>Enable to run tempest smoke tests after deployment. Keep on by default.</description>
1246- <defaultValue>true</defaultValue>
1247- </hudson.model.BooleanParameterDefinition>
1248- <hudson.model.StringParameterDefinition>
1249- <name>JUJU_SOURCE</name>
1250- <description></description>
1251- <defaultValue></defaultValue>
1252- </hudson.model.StringParameterDefinition>
1253- <hudson.model.BooleanParameterDefinition>
1254- <name>NO_POST_DESTROY</name>
1255- <description>Set true to skip destroy after deployment. Note that the enviro will most likely be torn down by the next job!</description>
1256- <defaultValue>false</defaultValue>
1257- </hudson.model.BooleanParameterDefinition>
1258- </parameterDefinitions>
1259- </hudson.model.ParametersDefinitionProperty>
1260- <com.sonyericsson.rebuild.RebuildSettings plugin="rebuild@1.22">
1261- <autoRebuild>false</autoRebuild>
1262- </com.sonyericsson.rebuild.RebuildSettings>
1263- <hudson.plugins.throttleconcurrents.ThrottleJobProperty plugin="throttle-concurrents@1.8.4">
1264- <maxConcurrentPerNode>1</maxConcurrentPerNode>
1265- <maxConcurrentTotal>3</maxConcurrentTotal>
1266- <throttleEnabled>true</throttleEnabled>
1267- <throttleOption>project</throttleOption>
1268- </hudson.plugins.throttleconcurrents.ThrottleJobProperty>
1269- <org.jvnet.hudson.plugins.shelveproject.ShelveProjectProperty plugin="shelve-project-plugin@1.5"/>
1270- </properties>
1271- <scm class="hudson.scm.NullSCM"/>
1272- <assignedNode>baremetal || dellstack</assignedNode>
1273- <canRoam>false</canRoam>
1274- <disabled>false</disabled>
1275- <blockBuildWhenDownstreamBuilding>false</blockBuildWhenDownstreamBuilding>
1276- <blockBuildWhenUpstreamBuilding>false</blockBuildWhenUpstreamBuilding>
1277- <triggers/>
1278- <concurrentBuild>true</concurrentBuild>
1279- <builders>
1280- <hudson.tasks.Shell>
1281- <command>#!/bin/bash -e
1282-${OSCI_ROOT}/job-parts/part_workspace_cleanup.sh</command>
1283- </hudson.tasks.Shell>
1284- <hudson.plugins.copyartifact.CopyArtifact plugin="copyartifact@1.32.1">
1285- <project>manual_trigger_deploy_with_deployer</project>
1286- <filter>custom-other.yaml</filter>
1287- <target></target>
1288- <excludes></excludes>
1289- <selector class="hudson.plugins.copyartifact.StatusBuildSelector"/>
1290- <optional>true</optional>
1291- <doNotFingerprintArtifacts>false</doNotFingerprintArtifacts>
1292- </hudson.plugins.copyartifact.CopyArtifact>
1293- <hudson.tasks.Shell>
1294- <command>#!/bin/bash -e
1295-#${OSCI_ROOT}/job-parts/build_deploy_test.sh
1296-
1297-echo &quot;---------- would have deployed to dellstack ----------&quot;
1298-</command>
1299- </hudson.tasks.Shell>
1300- </builders>
1301- <publishers>
1302- <hudson.tasks.ArtifactArchiver>
1303- <artifacts>*, logs/*</artifacts>
1304- <allowEmptyArchive>false</allowEmptyArchive>
1305- <onlyIfSuccessful>false</onlyIfSuccessful>
1306- <fingerprint>false</fingerprint>
1307- <defaultExcludes>true</defaultExcludes>
1308- </hudson.tasks.ArtifactArchiver>
1309- <hudson.plugins.descriptionsetter.DescriptionSetterPublisher plugin="description-setter@1.9">
1310- <regexp>_:.*</regexp>
1311- <regexpForFailed>_:.*</regexpForFailed>
1312- <setForMatrix>false</setForMatrix>
1313- </hudson.plugins.descriptionsetter.DescriptionSetterPublisher>
1314- </publishers>
1315- <buildWrappers>
1316- <hudson.plugins.timestamper.TimestamperBuildWrapper plugin="timestamper@1.5.14"/>
1317- <org.jenkinsci.plugins.buildnamesetter.BuildNameSetter plugin="build-name-setter@1.3">
1318- <template>#${BUILD_NUMBER} ${ENV,var=&quot;UBUNTU_RELEASE&quot;}-${ENV,var=&quot;OPENSTACK_RELEASE&quot;}-${ENV,var=&quot;INSTALLATION_SOURCE&quot;}-${ENV,var=&quot;CHARM_SET&quot;} ${ENV,var=&quot;DISPLAY_NAME&quot;}</template>
1319- </org.jenkinsci.plugins.buildnamesetter.BuildNameSetter>
1320- </buildWrappers>
1321-</project>
1322\ No newline at end of file
1323
1324=== modified file 'deployment/jobs/deploy_with_deployer/config.xml'
1325--- deployment/jobs/deploy_with_deployer/config.xml 2015-05-17 14:36:21 +0000
1326+++ deployment/jobs/deploy_with_deployer/config.xml 2015-08-28 16:23:16 +0000
1327@@ -11,8 +11,8 @@
1328 <logRotator class="hudson.tasks.LogRotator">
1329 <daysToKeep>-1</daysToKeep>
1330 <numToKeep>-1</numToKeep>
1331- <artifactDaysToKeep>45</artifactDaysToKeep>
1332- <artifactNumToKeep>500</artifactNumToKeep>
1333+ <artifactDaysToKeep>60</artifactDaysToKeep>
1334+ <artifactNumToKeep>600</artifactNumToKeep>
1335 </logRotator>
1336 <keepDependencies>false</keepDependencies>
1337 <properties>
1338@@ -86,18 +86,16 @@
1339 </com.sonyericsson.rebuild.RebuildSettings>
1340 <hudson.plugins.throttleconcurrents.ThrottleJobProperty plugin="throttle-concurrents@1.8.4">
1341 <maxConcurrentPerNode>1</maxConcurrentPerNode>
1342- <maxConcurrentTotal>4</maxConcurrentTotal>
1343- <categories/>
1344+ <maxConcurrentTotal>2</maxConcurrentTotal>
1345 <throttleEnabled>true</throttleEnabled>
1346 <throttleOption>project</throttleOption>
1347- <configVersion>1</configVersion>
1348 </hudson.plugins.throttleconcurrents.ThrottleJobProperty>
1349 <org.jvnet.hudson.plugins.shelveproject.ShelveProjectProperty plugin="shelve-project-plugin@1.5"/>
1350 </properties>
1351 <scm class="hudson.scm.NullSCM"/>
1352 <assignedNode>x86_64 || slave || trusty-slave</assignedNode>
1353 <canRoam>false</canRoam>
1354- <disabled>false</disabled>
1355+ <disabled>true</disabled>
1356 <blockBuildWhenDownstreamBuilding>false</blockBuildWhenDownstreamBuilding>
1357 <blockBuildWhenUpstreamBuilding>false</blockBuildWhenUpstreamBuilding>
1358 <triggers/>
1359
1360=== modified file 'deployment/jobs/deployer_quick_check/config.xml'
1361--- deployment/jobs/deployer_quick_check/config.xml 2015-05-17 14:36:21 +0000
1362+++ deployment/jobs/deployer_quick_check/config.xml 2015-08-28 16:23:16 +0000
1363@@ -5,8 +5,8 @@
1364 <logRotator class="hudson.tasks.LogRotator">
1365 <daysToKeep>-1</daysToKeep>
1366 <numToKeep>-1</numToKeep>
1367- <artifactDaysToKeep>45</artifactDaysToKeep>
1368- <artifactNumToKeep>500</artifactNumToKeep>
1369+ <artifactDaysToKeep>60</artifactDaysToKeep>
1370+ <artifactNumToKeep>600</artifactNumToKeep>
1371 </logRotator>
1372 <keepDependencies>false</keepDependencies>
1373 <properties>
1374@@ -100,7 +100,7 @@
1375 </com.sonyericsson.rebuild.RebuildSettings>
1376 <hudson.plugins.throttleconcurrents.ThrottleJobProperty plugin="throttle-concurrents@1.8.4">
1377 <maxConcurrentPerNode>1</maxConcurrentPerNode>
1378- <maxConcurrentTotal>16</maxConcurrentTotal>
1379+ <maxConcurrentTotal>2</maxConcurrentTotal>
1380 <throttleEnabled>true</throttleEnabled>
1381 <throttleOption>project</throttleOption>
1382 </hudson.plugins.throttleconcurrents.ThrottleJobProperty>
1383@@ -145,7 +145,7 @@
1384 <buildWrappers>
1385 <hudson.plugins.timestamper.TimestamperBuildWrapper plugin="timestamper@1.6"/>
1386 <org.jenkinsci.plugins.buildnamesetter.BuildNameSetter plugin="build-name-setter@1.3">
1387- <template>#${BUILD_NUMBER} ${ENV,var=&quot;BUNDLE_FILE&quot;} ${ENV,var=&quot;BUNDLE_TARGET&quot;} ${ENV,var=&quot;DISPLAY_NAME&quot;}</template>
1388+ <template>#${BUILD_NUMBER} ${ENV,var=&quot;BUNDLE_FILE&quot;} ${ENV,var=&quot;BUNDLE_TARGET&quot;} ${ENV,var=&quot;DISPLAY_NAME&quot;} ${ENV,var=&quot;NODE_NAME&quot;}</template>
1389 </org.jenkinsci.plugins.buildnamesetter.BuildNameSetter>
1390 </buildWrappers>
1391 </project>
1392\ No newline at end of file
1393
1394=== modified file 'deployment/jobs/git_deploy_with_deployer/config.xml'
1395--- deployment/jobs/git_deploy_with_deployer/config.xml 2015-07-09 21:17:57 +0000
1396+++ deployment/jobs/git_deploy_with_deployer/config.xml 2015-08-28 16:23:16 +0000
1397@@ -3,10 +3,10 @@
1398 <actions/>
1399 <description></description>
1400 <logRotator class="hudson.tasks.LogRotator">
1401- <daysToKeep>100</daysToKeep>
1402- <numToKeep>100</numToKeep>
1403- <artifactDaysToKeep>45</artifactDaysToKeep>
1404- <artifactNumToKeep>500</artifactNumToKeep>
1405+ <daysToKeep>-1</daysToKeep>
1406+ <numToKeep>-1</numToKeep>
1407+ <artifactDaysToKeep>60</artifactDaysToKeep>
1408+ <artifactNumToKeep>600</artifactNumToKeep>
1409 </logRotator>
1410 <keepDependencies>false</keepDependencies>
1411 <properties>
1412@@ -59,7 +59,7 @@
1413 </com.sonyericsson.rebuild.RebuildSettings>
1414 <hudson.plugins.throttleconcurrents.ThrottleJobProperty plugin="throttle-concurrents@1.8.4">
1415 <maxConcurrentPerNode>1</maxConcurrentPerNode>
1416- <maxConcurrentTotal>2</maxConcurrentTotal>
1417+ <maxConcurrentTotal>1</maxConcurrentTotal>
1418 <throttleEnabled>true</throttleEnabled>
1419 <throttleOption>project</throttleOption>
1420 </hudson.plugins.throttleconcurrents.ThrottleJobProperty>
1421@@ -68,7 +68,7 @@
1422 <scm class="hudson.scm.NullSCM"/>
1423 <assignedNode>x86_64 || slave || trusty-slave</assignedNode>
1424 <canRoam>false</canRoam>
1425- <disabled>false</disabled>
1426+ <disabled>true</disabled>
1427 <blockBuildWhenDownstreamBuilding>false</blockBuildWhenDownstreamBuilding>
1428 <blockBuildWhenUpstreamBuilding>false</blockBuildWhenUpstreamBuilding>
1429 <triggers/>
1430
1431=== modified file 'deployment/jobs/manual_deploy_single_charm/config.xml'
1432--- deployment/jobs/manual_deploy_single_charm/config.xml 2015-05-17 14:36:21 +0000
1433+++ deployment/jobs/manual_deploy_single_charm/config.xml 2015-08-28 16:23:16 +0000
1434@@ -113,7 +113,7 @@
1435 </com.sonyericsson.rebuild.RebuildSettings>
1436 <hudson.plugins.throttleconcurrents.ThrottleJobProperty plugin="throttle-concurrents@1.8.4">
1437 <maxConcurrentPerNode>1</maxConcurrentPerNode>
1438- <maxConcurrentTotal>12</maxConcurrentTotal>
1439+ <maxConcurrentTotal>2</maxConcurrentTotal>
1440 <throttleEnabled>true</throttleEnabled>
1441 <throttleOption>project</throttleOption>
1442 </hudson.plugins.throttleconcurrents.ThrottleJobProperty>
1443
1444=== modified file 'deployment/jobs/manual_trigger_deploy_with_deployer/config.xml'
1445--- deployment/jobs/manual_trigger_deploy_with_deployer/config.xml 2015-05-17 14:36:21 +0000
1446+++ deployment/jobs/manual_trigger_deploy_with_deployer/config.xml 2015-08-28 16:23:16 +0000
1447@@ -98,20 +98,6 @@
1448 </a>
1449 </choices>
1450 </hudson.model.ChoiceParameterDefinition>
1451- <hudson.model.ChoiceParameterDefinition>
1452- <name>LAB</name>
1453- <description>/!\ CAUTION: LAB is a Work In Progress /!\
1454-serverstack (deploy on OpenStack)
1455-dellstack (deploy on baremetal via MAAS)
1456-dellstack-power (deploy on Power8 baremetal via MAAS)</description>
1457- <choices class="java.util.Arrays$ArrayList">
1458- <a class="string-array">
1459- <string>serverstack</string>
1460- <string>dellstack</string>
1461- <string>dellstack-power</string>
1462- </a>
1463- </choices>
1464- </hudson.model.ChoiceParameterDefinition>
1465 </parameterDefinitions>
1466 </hudson.model.ParametersDefinitionProperty>
1467 <com.sonyericsson.rebuild.RebuildSettings plugin="rebuild@1.22">
1468
1469=== modified file 'deployment/jobs/manual_trigger_mojo/config.xml'
1470--- deployment/jobs/manual_trigger_mojo/config.xml 2015-03-31 20:59:51 +0000
1471+++ deployment/jobs/manual_trigger_mojo/config.xml 2015-08-28 16:23:16 +0000
1472@@ -1,8 +1,9 @@
1473 <?xml version='1.0' encoding='UTF-8'?>
1474 <project>
1475 <actions/>
1476- <description>* Manually trigger a mojo run with the chosen parameters.&#xd;
1477-* Calls mojo_runner.</description>
1478+ <description>Manually trigger a single mojo run with the chosen parameters.&lt;br\&gt;&#xd;
1479+Calls mojo_runner. &lt;br\&gt;&#xd;
1480+&lt;i&gt;Consider trigger_by_mojo_group to fire off sets of specs, with many available pivot points.&lt;/i&gt;</description>
1481 <logRotator class="hudson.tasks.LogRotator">
1482 <daysToKeep>90</daysToKeep>
1483 <numToKeep>-1</numToKeep>
1484@@ -18,45 +19,67 @@
1485 <description>Spec to run.</description>
1486 <choices class="java.util.Arrays$ArrayList">
1487 <a class="string-array">
1488- <string>specs/full_stack/charmhelper_upgrade/icehouse</string>
1489- <string>specs/full_stack/charmhelper_upgrade/juno</string>
1490- <string>specs/full_stack/charmhelper_upgrade/kilo</string>
1491- <string>#</string>
1492- <string>specs/full_stack/charmhelper_upgrade_ha/icehouse</string>
1493- <string>specs/full_stack/charmhelper_upgrade_ha/juno</string>
1494- <string>specs/full_stack/charmhelper_upgrade_ha/kilo</string>
1495- <string>#</string>
1496+ <string>specs/full_stack/next_deploy/icehouse</string>
1497+ <string>specs/full_stack/next_deploy/juno</string>
1498+ <string>specs/full_stack/next_deploy/kilo</string>
1499+ <string>specs/full_stack/next_deploy/liberty</string>
1500 <string>specs/full_stack/ha_phased/icehouse</string>
1501 <string>specs/full_stack/ha_phased/juno</string>
1502 <string>specs/full_stack/ha_phased/kilo</string>
1503- <string>#</string>
1504+ <string>specs/full_stack/ha_phased/liberty</string>
1505 <string>specs/full_stack/ha_phased_chaos_pony/icehouse</string>
1506 <string>specs/full_stack/ha_phased_chaos_pony/juno</string>
1507 <string>specs/full_stack/ha_phased_chaos_pony/kilo</string>
1508- <string>#</string>
1509- <string>specs/full_stack/next_deploy/icehouse</string>
1510- <string>specs/full_stack/next_deploy/juno</string>
1511- <string>specs/full_stack/next_deploy/kilo</string>
1512- <string>#</string>
1513+ <string>specs/full_stack/ha_phased_chaos_pony/liberty</string>
1514 <string>specs/full_stack/next_deploy_ssl/icehouse</string>
1515 <string>specs/full_stack/next_deploy_ssl/juno</string>
1516 <string>specs/full_stack/next_deploy_ssl/kilo</string>
1517- <string>#</string>
1518+ <string>specs/full_stack/next_deploy_ssl/liberty</string>
1519+ <string>specs/full_stack/charmhelper_upgrade/icehouse</string>
1520+ <string>specs/full_stack/charmhelper_upgrade/juno</string>
1521+ <string>specs/full_stack/charmhelper_upgrade/kilo</string>
1522+ <string>specs/full_stack/charmhelper_upgrade/liberty</string>
1523 <string>specs/full_stack/stable_to_next/icehouse</string>
1524 <string>specs/full_stack/stable_to_next/juno</string>
1525 <string>specs/full_stack/stable_to_next/kilo</string>
1526- <string>#</string>
1527- <string>specs/dev/bug1389670</string>
1528- <string>specs/dev/dvr</string>
1529- <string>specs/dev/full_nrpe</string>
1530+ <string>specs/full_stack/stable_to_next/liberty</string>
1531+ <string>specs/full_stack/stable_deploy/icehouse</string>
1532+ <string>specs/full_stack/stable_deploy/juno</string>
1533+ <string>specs/full_stack/stable_deploy/kilo</string>
1534+ <string>specs/full_stack/stable_deploy/liberty</string>
1535+ <string>specs/full_stack/charmhelper_upgrade_ha/icehouse</string>
1536+ <string>specs/full_stack/charmhelper_upgrade_ha/juno</string>
1537+ <string>specs/full_stack/charmhelper_upgrade_ha/kilo</string>
1538+ <string>specs/full_stack/charmhelper_upgrade_ha/liberty</string>
1539+ <string>specs/full_stack/stable_to_next_ha/icehouse</string>
1540+ <string>specs/full_stack/stable_to_next_ha/juno</string>
1541+ <string>specs/full_stack/stable_to_next_ha/kilo</string>
1542+ <string>specs/full_stack/stable_to_next_ha/liberty</string>
1543+ <string>specs/object_storage/swift_proxy/ha_parallel_scaleout/icehouse</string>
1544+ <string>specs/object_storage/swift_proxy/ha_serial_scaleout/icehouse</string>
1545+ <string>specs/object_storage/swift_proxy/ha_serial_scaleout/juno</string>
1546+ <string>specs/object_storage/swift_proxy/ha_serial_scaleout/kilo</string>
1547+ <string>specs/object_storage/swift_proxy/simple_nonha/icehouse</string>
1548+ <string>specs/object_storage/swift_proxy/simple_nonha/juno</string>
1549+ <string>specs/object_storage/swift_proxy/simple_nonha/kilo</string>
1550+ <string>specs/object_storage/ceph_radosgw/simple_nonha/icehouse</string>
1551+ <string>specs/object_storage/ceph_radosgw/simple_nonha/juno</string>
1552+ <string>specs/object_storage/ceph_radosgw/simple_nonha/kilo</string>
1553+ <string>specs/object_storage/ceph_radosgw/ha/icehouse</string>
1554+ <string>specs/object_storage/ceph_radosgw/ha/juno</string>
1555+ <string>specs/object_storage/ceph_radosgw/ha/kilo</string>
1556 <string>specs/dev/haproxy_always</string>
1557 <string>specs/dev/keystone_ssl</string>
1558+ <string>specs/dev/bug1389670/mysql</string>
1559+ <string>specs/dev/bug1389670/percona-cluster</string>
1560 <string>specs/dev/multicast_port_change</string>
1561+ <string>specs/dev/nova_cc_legacy_neutron</string>
1562 <string>specs/dev/neutron_ha</string>
1563+ <string>specs/dev/swift_nrpe/simple_nonha</string>
1564 <string>specs/dev/novaccalch</string>
1565- <string>specs/dev/nova_cc_legacy_neutron</string>
1566- <string>specs/dev/swift_nrpe</string>
1567 <string>specs/dev/vxlan</string>
1568+ <string>specs/dev/full_nrpe</string>
1569+ <string>specs/dev/dvr</string>
1570 </a>
1571 </choices>
1572 </hudson.model.ChoiceParameterDefinition>
1573@@ -71,6 +94,7 @@
1574 <description></description>
1575 <choices class="java.util.Arrays$ArrayList">
1576 <a class="string-array">
1577+ <string>wily</string>
1578 <string>vivid</string>
1579 <string>utopic</string>
1580 <string>trusty</string>
1581@@ -86,7 +110,7 @@
1582 <hudson.model.StringParameterDefinition>
1583 <name>MOJO_OPENSTACK_SPECS_REPO</name>
1584 <description>Optionally override this with an arbitrary branch.</description>
1585- <defaultValue>lp:~ost-maintainers/openstack-mojo-specs/mojo-openstack-specs</defaultValue>
1586+ <defaultValue></defaultValue>
1587 </hudson.model.StringParameterDefinition>
1588 <hudson.model.ChoiceParameterDefinition>
1589 <name>JUJU_SOURCE</name>
1590@@ -127,7 +151,7 @@
1591 <triggers/>
1592 <concurrentBuild>true</concurrentBuild>
1593 <builders>
1594- <hudson.plugins.parameterizedtrigger.TriggerBuilder plugin="parameterized-trigger@2.25">
1595+ <hudson.plugins.parameterizedtrigger.TriggerBuilder plugin="parameterized-trigger@2.26">
1596 <configs>
1597 <hudson.plugins.parameterizedtrigger.BlockableBuildTriggerConfig>
1598 <configs>
1599
1600=== modified file 'deployment/jobs/mojo_runner/config.xml'
1601--- deployment/jobs/mojo_runner/config.xml 2015-07-09 21:17:57 +0000
1602+++ deployment/jobs/mojo_runner/config.xml 2015-08-28 16:23:16 +0000
1603@@ -4,10 +4,10 @@
1604 <description>* This is a runner/wrapper job for mojo specs.&#xd;
1605 * Use the manual_trigger_mojo to initiate manual runs.</description>
1606 <logRotator class="hudson.tasks.LogRotator">
1607- <daysToKeep>60</daysToKeep>
1608+ <daysToKeep>-1</daysToKeep>
1609 <numToKeep>-1</numToKeep>
1610- <artifactDaysToKeep>30</artifactDaysToKeep>
1611- <artifactNumToKeep>-1</artifactNumToKeep>
1612+ <artifactDaysToKeep>90</artifactDaysToKeep>
1613+ <artifactNumToKeep>1500</artifactNumToKeep>
1614 </logRotator>
1615 <keepDependencies>false</keepDependencies>
1616 <properties>
1617@@ -16,7 +16,7 @@
1618 <hudson.model.StringParameterDefinition>
1619 <name>MOJO_OPENSTACK_SPECS_REPO</name>
1620 <description>Optionally override with an arbitrary branch.</description>
1621- <defaultValue>lp:~ost-maintainers/openstack-mojo-specs/mojo-openstack-specs</defaultValue>
1622+ <defaultValue>lp:~1chb1n/openstack-mojo-specs/net-id-ext-port-fix</defaultValue>
1623 </hudson.model.StringParameterDefinition>
1624 <hudson.model.StringParameterDefinition>
1625 <name>MOJO_SPEC</name>
1626@@ -57,18 +57,16 @@
1627 </com.sonyericsson.rebuild.RebuildSettings>
1628 <hudson.plugins.throttleconcurrents.ThrottleJobProperty plugin="throttle-concurrents@1.8.4">
1629 <maxConcurrentPerNode>1</maxConcurrentPerNode>
1630- <maxConcurrentTotal>1</maxConcurrentTotal>
1631- <categories/>
1632+ <maxConcurrentTotal>2</maxConcurrentTotal>
1633 <throttleEnabled>true</throttleEnabled>
1634 <throttleOption>project</throttleOption>
1635- <configVersion>1</configVersion>
1636 </hudson.plugins.throttleconcurrents.ThrottleJobProperty>
1637 <org.jvnet.hudson.plugins.shelveproject.ShelveProjectProperty plugin="shelve-project-plugin@1.5"/>
1638 </properties>
1639 <scm class="hudson.scm.NullSCM"/>
1640 <assignedNode>x86_64 || slave || trusty-slave</assignedNode>
1641 <canRoam>false</canRoam>
1642- <disabled>false</disabled>
1643+ <disabled>true</disabled>
1644 <blockBuildWhenDownstreamBuilding>false</blockBuildWhenDownstreamBuilding>
1645 <blockBuildWhenUpstreamBuilding>false</blockBuildWhenUpstreamBuilding>
1646 <triggers/>
1647@@ -97,7 +95,7 @@
1648 <buildWrappers>
1649 <hudson.plugins.timestamper.TimestamperBuildWrapper plugin="timestamper@1.6"/>
1650 <org.jenkinsci.plugins.buildnamesetter.BuildNameSetter plugin="build-name-setter@1.3">
1651- <template>#${BUILD_NUMBER} ${ENV,var=&quot;MOJO_SPEC&quot;} ${ENV,var=&quot;MOJO_SPEC_CUSTOM&quot;} ${ENV,var=&quot;MOJO_SERIES&quot;} ${ENV,var=&quot;DISPLAY_NAME&quot;}</template>
1652+ <template>#${BUILD_NUMBER} ${ENV,var=&quot;DISPLAY_NAME&quot;}</template>
1653 </org.jenkinsci.plugins.buildnamesetter.BuildNameSetter>
1654 </buildWrappers>
1655 </project>
1656\ No newline at end of file
1657
1658=== modified file 'deployment/jobs/mojo_runner_baremetal/config.xml'
1659--- deployment/jobs/mojo_runner_baremetal/config.xml 2015-07-09 21:17:57 +0000
1660+++ deployment/jobs/mojo_runner_baremetal/config.xml 2015-08-28 16:23:16 +0000
1661@@ -17,7 +17,7 @@
1662 <hudson.model.StringParameterDefinition>
1663 <name>MOJO_OPENSTACK_SPECS_REPO</name>
1664 <description>Optionally override with an arbitrary branch.</description>
1665- <defaultValue>lp:~1chb1n/openstack-mojo-specs/baremetal-init</defaultValue>
1666+ <defaultValue>lp:~1chb1n/openstack-mojo-specs/net-id-ext-port-fix</defaultValue>
1667 </hudson.model.StringParameterDefinition>
1668 <hudson.model.ChoiceParameterDefinition>
1669 <name>MOJO_SPEC</name>
1670@@ -27,6 +27,11 @@
1671 <string>specs/full_stack/next_deploy_baremetal/icehouse</string>
1672 <string>specs/full_stack/next_deploy_baremetal/juno</string>
1673 <string>specs/full_stack/next_deploy_baremetal/kilo</string>
1674+ <string>specs/full_stack/next_deploy_baremetal/liberty</string>
1675+ <string>specs/full_stack/stable_deploy_baremetal/icehouse</string>
1676+ <string>specs/full_stack/stable_deploy_baremetal/juno</string>
1677+ <string>specs/full_stack/stable_deploy_baremetal/kilo</string>
1678+ <string>specs/full_stack/stable_deploy_baremetal/liberty</string>
1679 </a>
1680 </choices>
1681 </hudson.model.ChoiceParameterDefinition>
1682@@ -44,6 +49,7 @@
1683 <string>precise</string>
1684 <string>utopic</string>
1685 <string>vivid</string>
1686+ <string>wily</string>
1687 </a>
1688 </choices>
1689 </hudson.model.ChoiceParameterDefinition>
1690@@ -76,17 +82,15 @@
1691 <hudson.plugins.throttleconcurrents.ThrottleJobProperty plugin="throttle-concurrents@1.8.4">
1692 <maxConcurrentPerNode>1</maxConcurrentPerNode>
1693 <maxConcurrentTotal>1</maxConcurrentTotal>
1694- <categories/>
1695 <throttleEnabled>true</throttleEnabled>
1696 <throttleOption>project</throttleOption>
1697- <configVersion>1</configVersion>
1698 </hudson.plugins.throttleconcurrents.ThrottleJobProperty>
1699 <org.jvnet.hudson.plugins.shelveproject.ShelveProjectProperty plugin="shelve-project-plugin@1.5"/>
1700 </properties>
1701 <scm class="hudson.scm.NullSCM"/>
1702 <assignedNode>dellstack</assignedNode>
1703 <canRoam>false</canRoam>
1704- <disabled>false</disabled>
1705+ <disabled>true</disabled>
1706 <blockBuildWhenDownstreamBuilding>false</blockBuildWhenDownstreamBuilding>
1707 <blockBuildWhenUpstreamBuilding>false</blockBuildWhenUpstreamBuilding>
1708 <triggers/>
1709@@ -95,7 +99,7 @@
1710 <hudson.tasks.Shell>
1711 <command>#!/bin/bash -e
1712 # Mojo runner for OSCI
1713-${OSCI_ROOT}/job-parts/build_mojo_runner_baremetal.sh</command>
1714+${OSCI_ROOT}/job-parts/build_mojo_runner.sh</command>
1715 </hudson.tasks.Shell>
1716 </builders>
1717 <publishers>
1718@@ -115,7 +119,7 @@
1719 <buildWrappers>
1720 <hudson.plugins.timestamper.TimestamperBuildWrapper plugin="timestamper@1.6"/>
1721 <org.jenkinsci.plugins.buildnamesetter.BuildNameSetter plugin="build-name-setter@1.3">
1722- <template>#${BUILD_NUMBER} ${ENV,var=&quot;MOJO_SPEC&quot;} ${ENV,var=&quot;MOJO_SPEC_CUSTOM&quot;} ${ENV,var=&quot;MOJO_SERIES&quot;} ${ENV,var=&quot;DISPLAY_NAME&quot;}</template>
1723+ <template>#${BUILD_NUMBER} ${ENV,var=&quot;DISPLAY_NAME&quot;}</template>
1724 </org.jenkinsci.plugins.buildnamesetter.BuildNameSetter>
1725 </buildWrappers>
1726 </project>
1727\ No newline at end of file
1728
1729=== removed directory 'deployment/jobs/openstack_lab_switcher'
1730=== removed file 'deployment/jobs/openstack_lab_switcher/config.xml'
1731--- deployment/jobs/openstack_lab_switcher/config.xml 2015-02-05 22:19:52 +0000
1732+++ deployment/jobs/openstack_lab_switcher/config.xml 1970-01-01 00:00:00 +0000
1733@@ -1,229 +0,0 @@
1734-<?xml version='1.0' encoding='UTF-8'?>
1735-<project>
1736- <actions/>
1737- <description>THIS TRIGGER IS EXPERIMENTAL AND IN DEVELOPMENT&#xd;
1738-BEST NOT USE IT JUST YET&#xd;
1739-&#xd;
1740-* This LAB switcher sits between the TRIGGERS and the DEPLOYERS to determine where to deploy OpenStack.&#xd;
1741-* Not intended to be run manually.</description>
1742- <logRotator class="hudson.tasks.LogRotator">
1743- <daysToKeep>90</daysToKeep>
1744- <numToKeep>-1</numToKeep>
1745- <artifactDaysToKeep>30</artifactDaysToKeep>
1746- <artifactNumToKeep>-1</artifactNumToKeep>
1747- </logRotator>
1748- <keepDependencies>false</keepDependencies>
1749- <properties>
1750- <hudson.model.ParametersDefinitionProperty>
1751- <parameterDefinitions>
1752- <hudson.model.StringParameterDefinition>
1753- <name>UBUNTU_RELEASE</name>
1754- <description></description>
1755- <defaultValue>utopic</defaultValue>
1756- </hudson.model.StringParameterDefinition>
1757- <hudson.model.StringParameterDefinition>
1758- <name>OPENSTACK_RELEASE</name>
1759- <description></description>
1760- <defaultValue>juno</defaultValue>
1761- </hudson.model.StringParameterDefinition>
1762- <hudson.model.StringParameterDefinition>
1763- <name>INSTALLATION_SOURCE</name>
1764- <description></description>
1765- <defaultValue>default</defaultValue>
1766- </hudson.model.StringParameterDefinition>
1767- <hudson.model.StringParameterDefinition>
1768- <name>CHARM_SET</name>
1769- <description></description>
1770- <defaultValue>next.yaml</defaultValue>
1771- </hudson.model.StringParameterDefinition>
1772- <hudson.model.FileParameterDefinition>
1773- <name>custom-other.yaml</name>
1774- <description></description>
1775- </hudson.model.FileParameterDefinition>
1776- <hudson.model.StringParameterDefinition>
1777- <name>DISPLAY_NAME</name>
1778- <description></description>
1779- <defaultValue></defaultValue>
1780- </hudson.model.StringParameterDefinition>
1781- <hudson.model.StringParameterDefinition>
1782- <name>MP_TRIGGER</name>
1783- <description></description>
1784- <defaultValue></defaultValue>
1785- </hudson.model.StringParameterDefinition>
1786- <hudson.model.StringParameterDefinition>
1787- <name>MP_SRC_BR</name>
1788- <description></description>
1789- <defaultValue></defaultValue>
1790- </hudson.model.StringParameterDefinition>
1791- <hudson.model.StringParameterDefinition>
1792- <name>MP_TGT_BR</name>
1793- <description>REBUILD is ok, but this job NOT intended to be run manually.
1794-See the manual_trigger_deploy_with_deployer job instead if you need to kick off a deployment.
1795-</description>
1796- <defaultValue></defaultValue>
1797- </hudson.model.StringParameterDefinition>
1798- <hudson.model.BooleanParameterDefinition>
1799- <name>TEMPEST_SMOKE</name>
1800- <description>Enable to run tempest smoke tests after deployment. Keep on by default.</description>
1801- <defaultValue>true</defaultValue>
1802- </hudson.model.BooleanParameterDefinition>
1803- <hudson.model.BooleanParameterDefinition>
1804- <name>JUJU_DEVEL</name>
1805- <description>Use juju-devel to deploy.</description>
1806- <defaultValue>false</defaultValue>
1807- </hudson.model.BooleanParameterDefinition>
1808- <hudson.model.BooleanParameterDefinition>
1809- <name>NO_POST_DESTROY</name>
1810- <description>Set true to skip destroy after deployment. Note that the enviro will most likely be torn down by the next job!</description>
1811- <defaultValue>false</defaultValue>
1812- </hudson.model.BooleanParameterDefinition>
1813- <hudson.model.StringParameterDefinition>
1814- <name>LAB</name>
1815- <description>THIS TRIGGER IS EXPERIMENTAL AND IN DEVELOPMENT
1816-BEST NOT USE IT JUST YET</description>
1817- <defaultValue>serverstack</defaultValue>
1818- </hudson.model.StringParameterDefinition>
1819- </parameterDefinitions>
1820- </hudson.model.ParametersDefinitionProperty>
1821- <com.sonyericsson.rebuild.RebuildSettings plugin="rebuild@1.22">
1822- <autoRebuild>false</autoRebuild>
1823- </com.sonyericsson.rebuild.RebuildSettings>
1824- <hudson.plugins.throttleconcurrents.ThrottleJobProperty plugin="throttle-concurrents@1.8.4">
1825- <maxConcurrentPerNode>1</maxConcurrentPerNode>
1826- <maxConcurrentTotal>0</maxConcurrentTotal>
1827- <categories/>
1828- <throttleEnabled>true</throttleEnabled>
1829- <throttleOption>project</throttleOption>
1830- <configVersion>1</configVersion>
1831- </hudson.plugins.throttleconcurrents.ThrottleJobProperty>
1832- <org.jvnet.hudson.plugins.shelveproject.ShelveProjectProperty plugin="shelve-project-plugin@1.5"/>
1833- </properties>
1834- <scm class="hudson.scm.NullSCM"/>
1835- <canRoam>true</canRoam>
1836- <disabled>false</disabled>
1837- <blockBuildWhenDownstreamBuilding>false</blockBuildWhenDownstreamBuilding>
1838- <blockBuildWhenUpstreamBuilding>false</blockBuildWhenUpstreamBuilding>
1839- <triggers/>
1840- <concurrentBuild>false</concurrentBuild>
1841- <builders>
1842- <hudson.tasks.Shell>
1843- <command>#!/bin/bash -e
1844-
1845-# Source the common functions
1846-. ${OSCI_ROOT}/job-parts/osci_job_common.sh
1847-
1848-f_line &quot;LAB selector&quot;
1849-echo $LAB
1850-f_env_no_pass
1851-
1852-cd $OSCI_ROOT
1853-
1854-case &quot;$LAB&quot; in
1855- serverstack)
1856- echo &quot;serverstack: deploy on OpenStack undercloud.&quot;
1857- ;;
1858- dellstack)
1859- echo &quot;dellstack: deploy on AMD64 baremetal via MAAS.&quot;
1860- ;;
1861- dellstack-power)
1862- echo &quot;dellstack-power: deploy on Power8 via MAAS.&quot;
1863- ;;
1864- *)
1865- echo &quot;Unknown LAB value.&quot;
1866- exit 1
1867- ;;
1868-esac
1869-</command>
1870- </hudson.tasks.Shell>
1871- <hudson.plugins.copyartifact.CopyArtifact plugin="copyartifact@1.32.1">
1872- <project>X_manual_trigger_deploy_openstack</project>
1873- <filter>custom-other.yaml</filter>
1874- <target></target>
1875- <excludes></excludes>
1876- <selector class="hudson.plugins.copyartifact.StatusBuildSelector"/>
1877- <optional>true</optional>
1878- <doNotFingerprintArtifacts>false</doNotFingerprintArtifacts>
1879- </hudson.plugins.copyartifact.CopyArtifact>
1880- <org.jenkinsci.plugins.conditionalbuildstep.singlestep.SingleConditionalBuilder plugin="conditional-buildstep@1.3.3">
1881- <condition class="org.jenkins_ci.plugins.run_condition.core.StringsMatchCondition" plugin="run-condition@1.0">
1882- <arg1>${ENV,var=&quot;LAB&quot;}</arg1>
1883- <arg2>dellstack</arg2>
1884- <ignoreCase>true</ignoreCase>
1885- </condition>
1886- <buildStep class="hudson.plugins.parameterizedtrigger.TriggerBuilder" plugin="parameterized-trigger@2.25">
1887- <configs>
1888- <hudson.plugins.parameterizedtrigger.BlockableBuildTriggerConfig>
1889- <configs>
1890- <hudson.plugins.parameterizedtrigger.CurrentBuildParameters/>
1891- </configs>
1892- <projects>deploy_openstack_baremetal</projects>
1893- <condition>ALWAYS</condition>
1894- <triggerWithNoParameters>false</triggerWithNoParameters>
1895- <buildAllNodesWithLabel>false</buildAllNodesWithLabel>
1896- </hudson.plugins.parameterizedtrigger.BlockableBuildTriggerConfig>
1897- </configs>
1898- </buildStep>
1899- <runner class="org.jenkins_ci.plugins.run_condition.BuildStepRunner$Fail" plugin="run-condition@1.0"/>
1900- </org.jenkinsci.plugins.conditionalbuildstep.singlestep.SingleConditionalBuilder>
1901- <org.jenkinsci.plugins.conditionalbuildstep.singlestep.SingleConditionalBuilder plugin="conditional-buildstep@1.3.3">
1902- <condition class="org.jenkins_ci.plugins.run_condition.core.StringsMatchCondition" plugin="run-condition@1.0">
1903- <arg1>${ENV,var=&quot;LAB&quot;}</arg1>
1904- <arg2>dellstack-power</arg2>
1905- <ignoreCase>true</ignoreCase>
1906- </condition>
1907- <buildStep class="hudson.plugins.parameterizedtrigger.TriggerBuilder" plugin="parameterized-trigger@2.25">
1908- <configs>
1909- <hudson.plugins.parameterizedtrigger.BlockableBuildTriggerConfig>
1910- <configs>
1911- <hudson.plugins.parameterizedtrigger.CurrentBuildParameters/>
1912- </configs>
1913- <projects>_juju_stat_this</projects>
1914- <condition>ALWAYS</condition>
1915- <triggerWithNoParameters>false</triggerWithNoParameters>
1916- <buildAllNodesWithLabel>false</buildAllNodesWithLabel>
1917- </hudson.plugins.parameterizedtrigger.BlockableBuildTriggerConfig>
1918- </configs>
1919- </buildStep>
1920- <runner class="org.jenkins_ci.plugins.run_condition.BuildStepRunner$Fail" plugin="run-condition@1.0"/>
1921- </org.jenkinsci.plugins.conditionalbuildstep.singlestep.SingleConditionalBuilder>
1922- <org.jenkinsci.plugins.conditionalbuildstep.singlestep.SingleConditionalBuilder plugin="conditional-buildstep@1.3.3">
1923- <condition class="org.jenkins_ci.plugins.run_condition.core.StringsMatchCondition" plugin="run-condition@1.0">
1924- <arg1>${ENV,var=&quot;LAB&quot;}</arg1>
1925- <arg2>serverstack</arg2>
1926- <ignoreCase>true</ignoreCase>
1927- </condition>
1928- <buildStep class="hudson.plugins.parameterizedtrigger.TriggerBuilder" plugin="parameterized-trigger@2.25">
1929- <configs>
1930- <hudson.plugins.parameterizedtrigger.BlockableBuildTriggerConfig>
1931- <configs class="empty-list"/>
1932- <projects>deploy_with_deployer</projects>
1933- <condition>ALWAYS</condition>
1934- <triggerWithNoParameters>false</triggerWithNoParameters>
1935- <buildAllNodesWithLabel>false</buildAllNodesWithLabel>
1936- </hudson.plugins.parameterizedtrigger.BlockableBuildTriggerConfig>
1937- </configs>
1938- </buildStep>
1939- <runner class="org.jenkins_ci.plugins.run_condition.BuildStepRunner$Fail" plugin="run-condition@1.0"/>
1940- </org.jenkinsci.plugins.conditionalbuildstep.singlestep.SingleConditionalBuilder>
1941- </builders>
1942- <publishers>
1943- <hudson.tasks.ArtifactArchiver>
1944- <artifacts>*, logs/*</artifacts>
1945- <allowEmptyArchive>true</allowEmptyArchive>
1946- <onlyIfSuccessful>false</onlyIfSuccessful>
1947- <fingerprint>false</fingerprint>
1948- <defaultExcludes>true</defaultExcludes>
1949- </hudson.tasks.ArtifactArchiver>
1950- <hudson.plugins.descriptionsetter.DescriptionSetterPublisher plugin="description-setter@1.9">
1951- <regexp>_:.*</regexp>
1952- <regexpForFailed>_:.*</regexpForFailed>
1953- <setForMatrix>false</setForMatrix>
1954- </hudson.plugins.descriptionsetter.DescriptionSetterPublisher>
1955- </publishers>
1956- <buildWrappers>
1957- <hudson.plugins.timestamper.TimestamperBuildWrapper plugin="timestamper@1.5.14"/>
1958- <org.jenkinsci.plugins.buildnamesetter.BuildNameSetter plugin="build-name-setter@1.3">
1959- <template>#${BUILD_NUMBER} ${ENV,var=&quot;UBUNTU_RELEASE&quot;}-${ENV,var=&quot;OPENSTACK_RELEASE&quot;}-${ENV,var=&quot;INSTALLATION_SOURCE&quot;}-${ENV,var=&quot;CHARM_SET&quot;} ${ENV,var=&quot;LAB&quot;} ${ENV,var=&quot;DISPLAY_NAME&quot;}</template>
1960- </org.jenkinsci.plugins.buildnamesetter.BuildNameSetter>
1961- </buildWrappers>
1962-</project>
1963\ No newline at end of file
1964
1965=== modified file 'deployment/jobs/scheduled_trigger_amulet/config.xml'
1966--- deployment/jobs/scheduled_trigger_amulet/config.xml 2015-01-21 05:51:34 +0000
1967+++ deployment/jobs/scheduled_trigger_amulet/config.xml 2015-08-28 16:23:16 +0000
1968@@ -4,10 +4,10 @@
1969 <description>* Triggers amulet tests for all branches via branch_scanner job&#xd;
1970 * Weekly on Sunday</description>
1971 <logRotator class="hudson.tasks.LogRotator">
1972- <daysToKeep>90</daysToKeep>
1973- <numToKeep>90</numToKeep>
1974- <artifactDaysToKeep>-1</artifactDaysToKeep>
1975- <artifactNumToKeep>-1</artifactNumToKeep>
1976+ <daysToKeep>-1</daysToKeep>
1977+ <numToKeep>-1</numToKeep>
1978+ <artifactDaysToKeep>150</artifactDaysToKeep>
1979+ <artifactNumToKeep>1500</artifactNumToKeep>
1980 </logRotator>
1981 <keepDependencies>false</keepDependencies>
1982 <properties>
1983@@ -36,7 +36,7 @@
1984 </triggers>
1985 <concurrentBuild>false</concurrentBuild>
1986 <builders>
1987- <hudson.plugins.parameterizedtrigger.TriggerBuilder plugin="parameterized-trigger@2.25">
1988+ <hudson.plugins.parameterizedtrigger.TriggerBuilder plugin="parameterized-trigger@2.26">
1989 <configs>
1990 <hudson.plugins.parameterizedtrigger.BlockableBuildTriggerConfig>
1991 <configs>
1992@@ -75,7 +75,7 @@
1993 </builders>
1994 <publishers/>
1995 <buildWrappers>
1996- <hudson.plugins.timestamper.TimestamperBuildWrapper plugin="timestamper@1.5.15"/>
1997+ <hudson.plugins.timestamper.TimestamperBuildWrapper plugin="timestamper@1.6"/>
1998 <org.jenkinsci.plugins.buildnamesetter.BuildNameSetter plugin="build-name-setter@1.3">
1999 <template>#${BUILD_NUMBER}</template>
2000 </org.jenkinsci.plugins.buildnamesetter.BuildNameSetter>
2001
2002=== modified file 'deployment/jobs/scheduled_trigger_deploy/config.xml'
2003--- deployment/jobs/scheduled_trigger_deploy/config.xml 2015-07-09 21:17:57 +0000
2004+++ deployment/jobs/scheduled_trigger_deploy/config.xml 2015-08-28 16:23:16 +0000
2005@@ -4,10 +4,10 @@
2006 <description>* Triggers deployments for all branches via branch_scanner job&#xd;
2007 * Daily</description>
2008 <logRotator class="hudson.tasks.LogRotator">
2009- <daysToKeep>90</daysToKeep>
2010- <numToKeep>90</numToKeep>
2011- <artifactDaysToKeep>-1</artifactDaysToKeep>
2012- <artifactNumToKeep>-1</artifactNumToKeep>
2013+ <daysToKeep>-1</daysToKeep>
2014+ <numToKeep>-1</numToKeep>
2015+ <artifactDaysToKeep>150</artifactDaysToKeep>
2016+ <artifactNumToKeep>1500</artifactNumToKeep>
2017 </logRotator>
2018 <keepDependencies>false</keepDependencies>
2019 <properties>
2020
2021=== modified file 'deployment/jobs/scheduled_trigger_lint/config.xml'
2022--- deployment/jobs/scheduled_trigger_lint/config.xml 2015-07-09 21:17:57 +0000
2023+++ deployment/jobs/scheduled_trigger_lint/config.xml 2015-08-28 16:23:16 +0000
2024@@ -4,10 +4,10 @@
2025 <description>* Triggers lint check for all branches via branch_scanner job&#xd;
2026 * Daily</description>
2027 <logRotator class="hudson.tasks.LogRotator">
2028- <daysToKeep>90</daysToKeep>
2029- <numToKeep>90</numToKeep>
2030- <artifactDaysToKeep>-1</artifactDaysToKeep>
2031- <artifactNumToKeep>-1</artifactNumToKeep>
2032+ <daysToKeep>-1</daysToKeep>
2033+ <numToKeep>-1</numToKeep>
2034+ <artifactDaysToKeep>150</artifactDaysToKeep>
2035+ <artifactNumToKeep>1500</artifactNumToKeep>
2036 </logRotator>
2037 <keepDependencies>false</keepDependencies>
2038 <properties>
2039
2040=== removed directory 'deployment/jobs/scheduled_trigger_mojo_charmhelper_upgrade_icehouse_precise'
2041=== removed file 'deployment/jobs/scheduled_trigger_mojo_charmhelper_upgrade_icehouse_precise/config.xml'
2042--- deployment/jobs/scheduled_trigger_mojo_charmhelper_upgrade_icehouse_precise/config.xml 2015-07-09 21:17:57 +0000
2043+++ deployment/jobs/scheduled_trigger_mojo_charmhelper_upgrade_icehouse_precise/config.xml 1970-01-01 00:00:00 +0000
2044@@ -1,86 +0,0 @@
2045-<?xml version='1.0' encoding='UTF-8'?>
2046-<project>
2047- <actions/>
2048- <description></description>
2049- <logRotator class="hudson.tasks.LogRotator">
2050- <daysToKeep>90</daysToKeep>
2051- <numToKeep>90</numToKeep>
2052- <artifactDaysToKeep>-1</artifactDaysToKeep>
2053- <artifactNumToKeep>-1</artifactNumToKeep>
2054- </logRotator>
2055- <keepDependencies>false</keepDependencies>
2056- <properties>
2057- <com.sonyericsson.rebuild.RebuildSettings plugin="rebuild@1.22">
2058- <autoRebuild>false</autoRebuild>
2059- </com.sonyericsson.rebuild.RebuildSettings>
2060- <hudson.plugins.throttleconcurrents.ThrottleJobProperty plugin="throttle-concurrents@1.8.4">
2061- <maxConcurrentPerNode>1</maxConcurrentPerNode>
2062- <maxConcurrentTotal>1</maxConcurrentTotal>
2063- <categories/>
2064- <throttleEnabled>true</throttleEnabled>
2065- <throttleOption>project</throttleOption>
2066- <configVersion>1</configVersion>
2067- </hudson.plugins.throttleconcurrents.ThrottleJobProperty>
2068- <org.jvnet.hudson.plugins.shelveproject.ShelveProjectProperty plugin="shelve-project-plugin@1.5"/>
2069- </properties>
2070- <scm class="hudson.scm.NullSCM"/>
2071- <assignedNode>x86_64 || slave || trusty-slave</assignedNode>
2072- <canRoam>false</canRoam>
2073- <disabled>false</disabled>
2074- <blockBuildWhenDownstreamBuilding>false</blockBuildWhenDownstreamBuilding>
2075- <blockBuildWhenUpstreamBuilding>false</blockBuildWhenUpstreamBuilding>
2076- <triggers>
2077- <hudson.triggers.TimerTrigger>
2078- <spec>05 4 * * 6
2079-</spec>
2080- </hudson.triggers.TimerTrigger>
2081- </triggers>
2082- <concurrentBuild>false</concurrentBuild>
2083- <builders>
2084- <hudson.plugins.parameterizedtrigger.TriggerBuilder plugin="parameterized-trigger@2.26">
2085- <configs>
2086- <hudson.plugins.parameterizedtrigger.BlockableBuildTriggerConfig>
2087- <configs>
2088- <hudson.plugins.parameterizedtrigger.PredefinedBuildParameters>
2089- <properties>SCHEDULED_TRIGGER=TRUE
2090-MOJO_SPEC=specs/full_stack/charmhelper_upgrade/icehouse
2091-MOJO_SERIES=precise
2092-DISPLAY_NAME=sched</properties>
2093- </hudson.plugins.parameterizedtrigger.PredefinedBuildParameters>
2094- </configs>
2095- <projects>mojo_runner</projects>
2096- <condition>ALWAYS</condition>
2097- <triggerWithNoParameters>false</triggerWithNoParameters>
2098- <block>
2099- <buildStepFailureThreshold>
2100- <name>FAILURE</name>
2101- <ordinal>2</ordinal>
2102- <color>RED</color>
2103- <completeBuild>true</completeBuild>
2104- </buildStepFailureThreshold>
2105- <unstableThreshold>
2106- <name>UNSTABLE</name>
2107- <ordinal>1</ordinal>
2108- <color>YELLOW</color>
2109- <completeBuild>true</completeBuild>
2110- </unstableThreshold>
2111- <failureThreshold>
2112- <name>FAILURE</name>
2113- <ordinal>2</ordinal>
2114- <color>RED</color>
2115- <completeBuild>true</completeBuild>
2116- </failureThreshold>
2117- </block>
2118- <buildAllNodesWithLabel>false</buildAllNodesWithLabel>
2119- </hudson.plugins.parameterizedtrigger.BlockableBuildTriggerConfig>
2120- </configs>
2121- </hudson.plugins.parameterizedtrigger.TriggerBuilder>
2122- </builders>
2123- <publishers/>
2124- <buildWrappers>
2125- <hudson.plugins.timestamper.TimestamperBuildWrapper plugin="timestamper@1.6"/>
2126- <org.jenkinsci.plugins.buildnamesetter.BuildNameSetter plugin="build-name-setter@1.3">
2127- <template>#${BUILD_NUMBER}</template>
2128- </org.jenkinsci.plugins.buildnamesetter.BuildNameSetter>
2129- </buildWrappers>
2130-</project>
2131\ No newline at end of file
2132
2133=== removed directory 'deployment/jobs/scheduled_trigger_mojo_charmhelper_upgrade_icehouse_trusty'
2134=== removed file 'deployment/jobs/scheduled_trigger_mojo_charmhelper_upgrade_icehouse_trusty/config.xml'
2135--- deployment/jobs/scheduled_trigger_mojo_charmhelper_upgrade_icehouse_trusty/config.xml 2015-07-09 21:17:57 +0000
2136+++ deployment/jobs/scheduled_trigger_mojo_charmhelper_upgrade_icehouse_trusty/config.xml 1970-01-01 00:00:00 +0000
2137@@ -1,86 +0,0 @@
2138-<?xml version='1.0' encoding='UTF-8'?>
2139-<project>
2140- <actions/>
2141- <description></description>
2142- <logRotator class="hudson.tasks.LogRotator">
2143- <daysToKeep>90</daysToKeep>
2144- <numToKeep>90</numToKeep>
2145- <artifactDaysToKeep>-1</artifactDaysToKeep>
2146- <artifactNumToKeep>-1</artifactNumToKeep>
2147- </logRotator>
2148- <keepDependencies>false</keepDependencies>
2149- <properties>
2150- <com.sonyericsson.rebuild.RebuildSettings plugin="rebuild@1.22">
2151- <autoRebuild>false</autoRebuild>
2152- </com.sonyericsson.rebuild.RebuildSettings>
2153- <hudson.plugins.throttleconcurrents.ThrottleJobProperty plugin="throttle-concurrents@1.8.4">
2154- <maxConcurrentPerNode>1</maxConcurrentPerNode>
2155- <maxConcurrentTotal>1</maxConcurrentTotal>
2156- <categories/>
2157- <throttleEnabled>true</throttleEnabled>
2158- <throttleOption>project</throttleOption>
2159- <configVersion>1</configVersion>
2160- </hudson.plugins.throttleconcurrents.ThrottleJobProperty>
2161- <org.jvnet.hudson.plugins.shelveproject.ShelveProjectProperty plugin="shelve-project-plugin@1.5"/>
2162- </properties>
2163- <scm class="hudson.scm.NullSCM"/>
2164- <assignedNode>x86_64 || slave || trusty-slave</assignedNode>
2165- <canRoam>false</canRoam>
2166- <disabled>false</disabled>
2167- <blockBuildWhenDownstreamBuilding>false</blockBuildWhenDownstreamBuilding>
2168- <blockBuildWhenUpstreamBuilding>false</blockBuildWhenUpstreamBuilding>
2169- <triggers>
2170- <hudson.triggers.TimerTrigger>
2171- <spec>05 4 * * 6
2172-</spec>
2173- </hudson.triggers.TimerTrigger>
2174- </triggers>
2175- <concurrentBuild>false</concurrentBuild>
2176- <builders>
2177- <hudson.plugins.parameterizedtrigger.TriggerBuilder plugin="parameterized-trigger@2.26">
2178- <configs>
2179- <hudson.plugins.parameterizedtrigger.BlockableBuildTriggerConfig>
2180- <configs>
2181- <hudson.plugins.parameterizedtrigger.PredefinedBuildParameters>
2182- <properties>SCHEDULED_TRIGGER=TRUE
2183-MOJO_SPEC=specs/full_stack/charmhelper_upgrade/icehouse
2184-MOJO_SERIES=trusty
2185-DISPLAY_NAME=sched</properties>
2186- </hudson.plugins.parameterizedtrigger.PredefinedBuildParameters>
2187- </configs>
2188- <projects>mojo_runner</projects>
2189- <condition>ALWAYS</condition>
2190- <triggerWithNoParameters>false</triggerWithNoParameters>
2191- <block>
2192- <buildStepFailureThreshold>
2193- <name>FAILURE</name>
2194- <ordinal>2</ordinal>
2195- <color>RED</color>
2196- <completeBuild>true</completeBuild>
2197- </buildStepFailureThreshold>
2198- <unstableThreshold>
2199- <name>UNSTABLE</name>
2200- <ordinal>1</ordinal>
2201- <color>YELLOW</color>
2202- <completeBuild>true</completeBuild>
2203- </unstableThreshold>
2204- <failureThreshold>
2205- <name>FAILURE</name>
2206- <ordinal>2</ordinal>
2207- <color>RED</color>
2208- <completeBuild>true</completeBuild>
2209- </failureThreshold>
2210- </block>
2211- <buildAllNodesWithLabel>false</buildAllNodesWithLabel>
2212- </hudson.plugins.parameterizedtrigger.BlockableBuildTriggerConfig>
2213- </configs>
2214- </hudson.plugins.parameterizedtrigger.TriggerBuilder>
2215- </builders>
2216- <publishers/>
2217- <buildWrappers>
2218- <hudson.plugins.timestamper.TimestamperBuildWrapper plugin="timestamper@1.6"/>
2219- <org.jenkinsci.plugins.buildnamesetter.BuildNameSetter plugin="build-name-setter@1.3">
2220- <template>#${BUILD_NUMBER}</template>
2221- </org.jenkinsci.plugins.buildnamesetter.BuildNameSetter>
2222- </buildWrappers>
2223-</project>
2224\ No newline at end of file
2225
2226=== removed directory 'deployment/jobs/scheduled_trigger_mojo_charmhelper_upgrade_kilo_vivid'
2227=== removed file 'deployment/jobs/scheduled_trigger_mojo_charmhelper_upgrade_kilo_vivid/config.xml'
2228--- deployment/jobs/scheduled_trigger_mojo_charmhelper_upgrade_kilo_vivid/config.xml 2015-07-09 21:17:57 +0000
2229+++ deployment/jobs/scheduled_trigger_mojo_charmhelper_upgrade_kilo_vivid/config.xml 1970-01-01 00:00:00 +0000
2230@@ -1,86 +0,0 @@
2231-<?xml version='1.0' encoding='UTF-8'?>
2232-<project>
2233- <actions/>
2234- <description></description>
2235- <logRotator class="hudson.tasks.LogRotator">
2236- <daysToKeep>90</daysToKeep>
2237- <numToKeep>90</numToKeep>
2238- <artifactDaysToKeep>-1</artifactDaysToKeep>
2239- <artifactNumToKeep>-1</artifactNumToKeep>
2240- </logRotator>
2241- <keepDependencies>false</keepDependencies>
2242- <properties>
2243- <com.sonyericsson.rebuild.RebuildSettings plugin="rebuild@1.22">
2244- <autoRebuild>false</autoRebuild>
2245- </com.sonyericsson.rebuild.RebuildSettings>
2246- <hudson.plugins.throttleconcurrents.ThrottleJobProperty plugin="throttle-concurrents@1.8.4">
2247- <maxConcurrentPerNode>1</maxConcurrentPerNode>
2248- <maxConcurrentTotal>1</maxConcurrentTotal>
2249- <categories/>
2250- <throttleEnabled>true</throttleEnabled>
2251- <throttleOption>project</throttleOption>
2252- <configVersion>1</configVersion>
2253- </hudson.plugins.throttleconcurrents.ThrottleJobProperty>
2254- <org.jvnet.hudson.plugins.shelveproject.ShelveProjectProperty plugin="shelve-project-plugin@1.5"/>
2255- </properties>
2256- <scm class="hudson.scm.NullSCM"/>
2257- <assignedNode>x86_64 || slave || trusty-slave</assignedNode>
2258- <canRoam>false</canRoam>
2259- <disabled>false</disabled>
2260- <blockBuildWhenDownstreamBuilding>false</blockBuildWhenDownstreamBuilding>
2261- <blockBuildWhenUpstreamBuilding>false</blockBuildWhenUpstreamBuilding>
2262- <triggers>
2263- <hudson.triggers.TimerTrigger>
2264- <spec>05 4 * * 6
2265-</spec>
2266- </hudson.triggers.TimerTrigger>
2267- </triggers>
2268- <concurrentBuild>false</concurrentBuild>
2269- <builders>
2270- <hudson.plugins.parameterizedtrigger.TriggerBuilder plugin="parameterized-trigger@2.26">
2271- <configs>
2272- <hudson.plugins.parameterizedtrigger.BlockableBuildTriggerConfig>
2273- <configs>
2274- <hudson.plugins.parameterizedtrigger.PredefinedBuildParameters>
2275- <properties>SCHEDULED_TRIGGER=TRUE
2276-MOJO_SPEC=specs/full_stack/charmhelper_upgrade/kilo
2277-MOJO_SERIES=vivid
2278-DISPLAY_NAME=sched</properties>
2279- </hudson.plugins.parameterizedtrigger.PredefinedBuildParameters>
2280- </configs>
2281- <projects>mojo_runner</projects>
2282- <condition>ALWAYS</condition>
2283- <triggerWithNoParameters>false</triggerWithNoParameters>
2284- <block>
2285- <buildStepFailureThreshold>
2286- <name>FAILURE</name>
2287- <ordinal>2</ordinal>
2288- <color>RED</color>
2289- <completeBuild>true</completeBuild>
2290- </buildStepFailureThreshold>
2291- <unstableThreshold>
2292- <name>UNSTABLE</name>
2293- <ordinal>1</ordinal>
2294- <color>YELLOW</color>
2295- <completeBuild>true</completeBuild>
2296- </unstableThreshold>
2297- <failureThreshold>
2298- <name>FAILURE</name>
2299- <ordinal>2</ordinal>
2300- <color>RED</color>
2301- <completeBuild>true</completeBuild>
2302- </failureThreshold>
2303- </block>
2304- <buildAllNodesWithLabel>false</buildAllNodesWithLabel>
2305- </hudson.plugins.parameterizedtrigger.BlockableBuildTriggerConfig>
2306- </configs>
2307- </hudson.plugins.parameterizedtrigger.TriggerBuilder>
2308- </builders>
2309- <publishers/>
2310- <buildWrappers>
2311- <hudson.plugins.timestamper.TimestamperBuildWrapper plugin="timestamper@1.6"/>
2312- <org.jenkinsci.plugins.buildnamesetter.BuildNameSetter plugin="build-name-setter@1.3">
2313- <template>#${BUILD_NUMBER}</template>
2314- </org.jenkinsci.plugins.buildnamesetter.BuildNameSetter>
2315- </buildWrappers>
2316-</project>
2317\ No newline at end of file
2318
2319=== removed directory 'deployment/jobs/scheduled_trigger_mojo_ha_phased_juno_trusty'
2320=== removed file 'deployment/jobs/scheduled_trigger_mojo_ha_phased_juno_trusty/config.xml'
2321--- deployment/jobs/scheduled_trigger_mojo_ha_phased_juno_trusty/config.xml 2015-07-09 21:17:57 +0000
2322+++ deployment/jobs/scheduled_trigger_mojo_ha_phased_juno_trusty/config.xml 1970-01-01 00:00:00 +0000
2323@@ -1,86 +0,0 @@
2324-<?xml version='1.0' encoding='UTF-8'?>
2325-<project>
2326- <actions/>
2327- <description></description>
2328- <logRotator class="hudson.tasks.LogRotator">
2329- <daysToKeep>90</daysToKeep>
2330- <numToKeep>90</numToKeep>
2331- <artifactDaysToKeep>-1</artifactDaysToKeep>
2332- <artifactNumToKeep>-1</artifactNumToKeep>
2333- </logRotator>
2334- <keepDependencies>false</keepDependencies>
2335- <properties>
2336- <com.sonyericsson.rebuild.RebuildSettings plugin="rebuild@1.22">
2337- <autoRebuild>false</autoRebuild>
2338- </com.sonyericsson.rebuild.RebuildSettings>
2339- <hudson.plugins.throttleconcurrents.ThrottleJobProperty plugin="throttle-concurrents@1.8.4">
2340- <maxConcurrentPerNode>1</maxConcurrentPerNode>
2341- <maxConcurrentTotal>1</maxConcurrentTotal>
2342- <categories/>
2343- <throttleEnabled>true</throttleEnabled>
2344- <throttleOption>project</throttleOption>
2345- <configVersion>1</configVersion>
2346- </hudson.plugins.throttleconcurrents.ThrottleJobProperty>
2347- <org.jvnet.hudson.plugins.shelveproject.ShelveProjectProperty plugin="shelve-project-plugin@1.5"/>
2348- </properties>
2349- <scm class="hudson.scm.NullSCM"/>
2350- <assignedNode>x86_64 || slave || trusty-slave</assignedNode>
2351- <canRoam>false</canRoam>
2352- <disabled>false</disabled>
2353- <blockBuildWhenDownstreamBuilding>false</blockBuildWhenDownstreamBuilding>
2354- <blockBuildWhenUpstreamBuilding>false</blockBuildWhenUpstreamBuilding>
2355- <triggers>
2356- <hudson.triggers.TimerTrigger>
2357- <spec>05 2 * * 6
2358-</spec>
2359- </hudson.triggers.TimerTrigger>
2360- </triggers>
2361- <concurrentBuild>false</concurrentBuild>
2362- <builders>
2363- <hudson.plugins.parameterizedtrigger.TriggerBuilder plugin="parameterized-trigger@2.26">
2364- <configs>
2365- <hudson.plugins.parameterizedtrigger.BlockableBuildTriggerConfig>
2366- <configs>
2367- <hudson.plugins.parameterizedtrigger.PredefinedBuildParameters>
2368- <properties>SCHEDULED_TRIGGER=TRUE
2369-MOJO_SPEC=specs/full_stack/ha_phased/juno
2370-MOJO_SERIES=trusty
2371-DISPLAY_NAME=sched</properties>
2372- </hudson.plugins.parameterizedtrigger.PredefinedBuildParameters>
2373- </configs>
2374- <projects>mojo_runner</projects>
2375- <condition>ALWAYS</condition>
2376- <triggerWithNoParameters>false</triggerWithNoParameters>
2377- <block>
2378- <buildStepFailureThreshold>
2379- <name>FAILURE</name>
2380- <ordinal>2</ordinal>
2381- <color>RED</color>
2382- <completeBuild>true</completeBuild>
2383- </buildStepFailureThreshold>
2384- <unstableThreshold>
2385- <name>UNSTABLE</name>
2386- <ordinal>1</ordinal>
2387- <color>YELLOW</color>
2388- <completeBuild>true</completeBuild>
2389- </unstableThreshold>
2390- <failureThreshold>
2391- <name>FAILURE</name>
2392- <ordinal>2</ordinal>
2393- <color>RED</color>
2394- <completeBuild>true</completeBuild>
2395- </failureThreshold>
2396- </block>
2397- <buildAllNodesWithLabel>false</buildAllNodesWithLabel>
2398- </hudson.plugins.parameterizedtrigger.BlockableBuildTriggerConfig>
2399- </configs>
2400- </hudson.plugins.parameterizedtrigger.TriggerBuilder>
2401- </builders>
2402- <publishers/>
2403- <buildWrappers>
2404- <hudson.plugins.timestamper.TimestamperBuildWrapper plugin="timestamper@1.6"/>
2405- <org.jenkinsci.plugins.buildnamesetter.BuildNameSetter plugin="build-name-setter@1.3">
2406- <template>#${BUILD_NUMBER}</template>
2407- </org.jenkinsci.plugins.buildnamesetter.BuildNameSetter>
2408- </buildWrappers>
2409-</project>
2410\ No newline at end of file
2411
2412=== added directory 'deployment/jobs/scheduled_trigger_mojo_hot_all'
2413=== added file 'deployment/jobs/scheduled_trigger_mojo_hot_all/config.xml'
2414--- deployment/jobs/scheduled_trigger_mojo_hot_all/config.xml 1970-01-01 00:00:00 +0000
2415+++ deployment/jobs/scheduled_trigger_mojo_hot_all/config.xml 2015-08-28 16:23:16 +0000
2416@@ -0,0 +1,88 @@
2417+<?xml version='1.0' encoding='UTF-8'?>
2418+<project>
2419+ <actions/>
2420+ <description>Scheduled WEEKLY.&lt;br/&gt;&#xd;
2421+Runs ALL specs (!) for the HOT combos (those which we prioritize). &lt;br/&gt;&lt;br/&gt;&#xd;
2422+&#xd;
2423+Generally, hot combos are: &lt;br/&gt;&#xd;
2424+1. Ubuntu LTS releas(es) + OpenStack as shipped with LTS(s) &lt;br/&gt;&#xd;
2425+2. Most recent Ubuntu LTS release + Most recent OpenStack release (or current dev version if functional)&lt;br/&gt;&#xd;
2426+3. Current Ubuntu dev version + Current OpenStack dev version</description>
2427+ <logRotator class="hudson.tasks.LogRotator">
2428+ <daysToKeep>-1</daysToKeep>
2429+ <numToKeep>-1</numToKeep>
2430+ <artifactDaysToKeep>150</artifactDaysToKeep>
2431+ <artifactNumToKeep>1500</artifactNumToKeep>
2432+ </logRotator>
2433+ <keepDependencies>false</keepDependencies>
2434+ <properties>
2435+ <com.sonyericsson.rebuild.RebuildSettings plugin="rebuild@1.22">
2436+ <autoRebuild>false</autoRebuild>
2437+ </com.sonyericsson.rebuild.RebuildSettings>
2438+ <hudson.plugins.throttleconcurrents.ThrottleJobProperty plugin="throttle-concurrents@1.8.4">
2439+ <maxConcurrentPerNode>1</maxConcurrentPerNode>
2440+ <maxConcurrentTotal>1</maxConcurrentTotal>
2441+ <throttleEnabled>true</throttleEnabled>
2442+ <throttleOption>project</throttleOption>
2443+ </hudson.plugins.throttleconcurrents.ThrottleJobProperty>
2444+ <org.jvnet.hudson.plugins.shelveproject.ShelveProjectProperty plugin="shelve-project-plugin@1.5"/>
2445+ </properties>
2446+ <scm class="hudson.scm.NullSCM"/>
2447+ <assignedNode>x86_64 || slave || trusty-slave</assignedNode>
2448+ <canRoam>false</canRoam>
2449+ <disabled>false</disabled>
2450+ <blockBuildWhenDownstreamBuilding>false</blockBuildWhenDownstreamBuilding>
2451+ <blockBuildWhenUpstreamBuilding>false</blockBuildWhenUpstreamBuilding>
2452+ <triggers>
2453+ <hudson.triggers.TimerTrigger>
2454+ <spec>18 00 * * 5
2455+</spec>
2456+ </hudson.triggers.TimerTrigger>
2457+ </triggers>
2458+ <concurrentBuild>false</concurrentBuild>
2459+ <builders>
2460+ <hudson.plugins.parameterizedtrigger.TriggerBuilder plugin="parameterized-trigger@2.26">
2461+ <configs>
2462+ <hudson.plugins.parameterizedtrigger.BlockableBuildTriggerConfig>
2463+ <configs>
2464+ <hudson.plugins.parameterizedtrigger.PredefinedBuildParameters>
2465+ <properties>SCHEDULED_TRIGGER=TRUE
2466+TRIGGER_FINGER=HOT_ALL</properties>
2467+ </hudson.plugins.parameterizedtrigger.PredefinedBuildParameters>
2468+ </configs>
2469+ <projects>trigger_by_mojo_group</projects>
2470+ <condition>ALWAYS</condition>
2471+ <triggerWithNoParameters>false</triggerWithNoParameters>
2472+ <block>
2473+ <buildStepFailureThreshold>
2474+ <name>FAILURE</name>
2475+ <ordinal>2</ordinal>
2476+ <color>RED</color>
2477+ <completeBuild>true</completeBuild>
2478+ </buildStepFailureThreshold>
2479+ <unstableThreshold>
2480+ <name>UNSTABLE</name>
2481+ <ordinal>1</ordinal>
2482+ <color>YELLOW</color>
2483+ <completeBuild>true</completeBuild>
2484+ </unstableThreshold>
2485+ <failureThreshold>
2486+ <name>FAILURE</name>
2487+ <ordinal>2</ordinal>
2488+ <color>RED</color>
2489+ <completeBuild>true</completeBuild>
2490+ </failureThreshold>
2491+ </block>
2492+ <buildAllNodesWithLabel>false</buildAllNodesWithLabel>
2493+ </hudson.plugins.parameterizedtrigger.BlockableBuildTriggerConfig>
2494+ </configs>
2495+ </hudson.plugins.parameterizedtrigger.TriggerBuilder>
2496+ </builders>
2497+ <publishers/>
2498+ <buildWrappers>
2499+ <hudson.plugins.timestamper.TimestamperBuildWrapper plugin="timestamper@1.6"/>
2500+ <org.jenkinsci.plugins.buildnamesetter.BuildNameSetter plugin="build-name-setter@1.3">
2501+ <template>#${BUILD_NUMBER}</template>
2502+ </org.jenkinsci.plugins.buildnamesetter.BuildNameSetter>
2503+ </buildWrappers>
2504+</project>
2505\ No newline at end of file
2506
2507=== added directory 'deployment/jobs/scheduled_trigger_mojo_hot_metal'
2508=== added file 'deployment/jobs/scheduled_trigger_mojo_hot_metal/config.xml'
2509--- deployment/jobs/scheduled_trigger_mojo_hot_metal/config.xml 1970-01-01 00:00:00 +0000
2510+++ deployment/jobs/scheduled_trigger_mojo_hot_metal/config.xml 2015-08-28 16:23:16 +0000
2511@@ -0,0 +1,90 @@
2512+<?xml version='1.0' encoding='UTF-8'?>
2513+<project>
2514+ <actions/>
2515+ <description>Scheduled DAILY.&lt;br/&gt;&#xd;
2516+&#xd;
2517+Deploys next and stable charm sets against bare metal, only for the HOT combos (those which we prioritize). &lt;br/&gt;&lt;br/&gt;&#xd;
2518+&#xd;
2519+Generally, hot combos are: &lt;br/&gt;&#xd;
2520+1. Ubuntu LTS releas(es) + OpenStack as shipped with LTS(s) &lt;br/&gt;&#xd;
2521+2. Most recent Ubuntu LTS release + Most recent OpenStack release (or current dev version if functional)&lt;br/&gt;&#xd;
2522+3. Current Ubuntu dev version + Current OpenStack dev version&#xd;
2523+</description>
2524+ <logRotator class="hudson.tasks.LogRotator">
2525+ <daysToKeep>-1</daysToKeep>
2526+ <numToKeep>-1</numToKeep>
2527+ <artifactDaysToKeep>150</artifactDaysToKeep>
2528+ <artifactNumToKeep>1500</artifactNumToKeep>
2529+ </logRotator>
2530+ <keepDependencies>false</keepDependencies>
2531+ <properties>
2532+ <com.sonyericsson.rebuild.RebuildSettings plugin="rebuild@1.22">
2533+ <autoRebuild>false</autoRebuild>
2534+ </com.sonyericsson.rebuild.RebuildSettings>
2535+ <hudson.plugins.throttleconcurrents.ThrottleJobProperty plugin="throttle-concurrents@1.8.4">
2536+ <maxConcurrentPerNode>1</maxConcurrentPerNode>
2537+ <maxConcurrentTotal>1</maxConcurrentTotal>
2538+ <throttleEnabled>true</throttleEnabled>
2539+ <throttleOption>project</throttleOption>
2540+ </hudson.plugins.throttleconcurrents.ThrottleJobProperty>
2541+ <org.jvnet.hudson.plugins.shelveproject.ShelveProjectProperty plugin="shelve-project-plugin@1.5"/>
2542+ </properties>
2543+ <scm class="hudson.scm.NullSCM"/>
2544+ <assignedNode>x86_64 || slave || trusty-slave</assignedNode>
2545+ <canRoam>false</canRoam>
2546+ <disabled>false</disabled>
2547+ <blockBuildWhenDownstreamBuilding>false</blockBuildWhenDownstreamBuilding>
2548+ <blockBuildWhenUpstreamBuilding>false</blockBuildWhenUpstreamBuilding>
2549+ <triggers>
2550+ <hudson.triggers.TimerTrigger>
2551+ <spec>3 15 * * *
2552+</spec>
2553+ </hudson.triggers.TimerTrigger>
2554+ </triggers>
2555+ <concurrentBuild>false</concurrentBuild>
2556+ <builders>
2557+ <hudson.plugins.parameterizedtrigger.TriggerBuilder plugin="parameterized-trigger@2.26">
2558+ <configs>
2559+ <hudson.plugins.parameterizedtrigger.BlockableBuildTriggerConfig>
2560+ <configs>
2561+ <hudson.plugins.parameterizedtrigger.PredefinedBuildParameters>
2562+ <properties>SCHEDULED_TRIGGER=TRUE
2563+TRIGGER_FINGER=HOT_METAL</properties>
2564+ </hudson.plugins.parameterizedtrigger.PredefinedBuildParameters>
2565+ </configs>
2566+ <projects>trigger_by_mojo_group</projects>
2567+ <condition>ALWAYS</condition>
2568+ <triggerWithNoParameters>false</triggerWithNoParameters>
2569+ <block>
2570+ <buildStepFailureThreshold>
2571+ <name>FAILURE</name>
2572+ <ordinal>2</ordinal>
2573+ <color>RED</color>
2574+ <completeBuild>true</completeBuild>
2575+ </buildStepFailureThreshold>
2576+ <unstableThreshold>
2577+ <name>UNSTABLE</name>
2578+ <ordinal>1</ordinal>
2579+ <color>YELLOW</color>
2580+ <completeBuild>true</completeBuild>
2581+ </unstableThreshold>
2582+ <failureThreshold>
2583+ <name>FAILURE</name>
2584+ <ordinal>2</ordinal>
2585+ <color>RED</color>
2586+ <completeBuild>true</completeBuild>
2587+ </failureThreshold>
2588+ </block>
2589+ <buildAllNodesWithLabel>false</buildAllNodesWithLabel>
2590+ </hudson.plugins.parameterizedtrigger.BlockableBuildTriggerConfig>
2591+ </configs>
2592+ </hudson.plugins.parameterizedtrigger.TriggerBuilder>
2593+ </builders>
2594+ <publishers/>
2595+ <buildWrappers>
2596+ <hudson.plugins.timestamper.TimestamperBuildWrapper plugin="timestamper@1.6"/>
2597+ <org.jenkinsci.plugins.buildnamesetter.BuildNameSetter plugin="build-name-setter@1.3">
2598+ <template>#${BUILD_NUMBER}</template>
2599+ </org.jenkinsci.plugins.buildnamesetter.BuildNameSetter>
2600+ </buildWrappers>
2601+</project>
2602\ No newline at end of file
2603
2604=== added directory 'deployment/jobs/scheduled_trigger_mojo_hot_virtual'
2605=== added file 'deployment/jobs/scheduled_trigger_mojo_hot_virtual/config.xml'
2606--- deployment/jobs/scheduled_trigger_mojo_hot_virtual/config.xml 1970-01-01 00:00:00 +0000
2607+++ deployment/jobs/scheduled_trigger_mojo_hot_virtual/config.xml 2015-08-28 16:23:16 +0000
2608@@ -0,0 +1,89 @@
2609+<?xml version='1.0' encoding='UTF-8'?>
2610+<project>
2611+ <actions/>
2612+ <description>Scheduled DAILY.&lt;br/&gt;&#xd;
2613+&#xd;
2614+Deploys next and stable charm sets (os-on-os) only for the HOT combos (those which we prioritize). &lt;br/&gt;&lt;br/&gt;&#xd;
2615+&#xd;
2616+Generally, hot combos are: &lt;br/&gt;&#xd;
2617+1. Ubuntu LTS releas(es) + OpenStack as shipped with LTS(s) &lt;br/&gt;&#xd;
2618+2. Most recent Ubuntu LTS release + Most recent OpenStack release (or current dev version if functional)&lt;br/&gt;&#xd;
2619+3. Current Ubuntu dev version + Current OpenStack dev version</description>
2620+ <logRotator class="hudson.tasks.LogRotator">
2621+ <daysToKeep>-1</daysToKeep>
2622+ <numToKeep>-1</numToKeep>
2623+ <artifactDaysToKeep>150</artifactDaysToKeep>
2624+ <artifactNumToKeep>1500</artifactNumToKeep>
2625+ </logRotator>
2626+ <keepDependencies>false</keepDependencies>
2627+ <properties>
2628+ <com.sonyericsson.rebuild.RebuildSettings plugin="rebuild@1.22">
2629+ <autoRebuild>false</autoRebuild>
2630+ </com.sonyericsson.rebuild.RebuildSettings>
2631+ <hudson.plugins.throttleconcurrents.ThrottleJobProperty plugin="throttle-concurrents@1.8.4">
2632+ <maxConcurrentPerNode>1</maxConcurrentPerNode>
2633+ <maxConcurrentTotal>1</maxConcurrentTotal>
2634+ <throttleEnabled>true</throttleEnabled>
2635+ <throttleOption>project</throttleOption>
2636+ </hudson.plugins.throttleconcurrents.ThrottleJobProperty>
2637+ <org.jvnet.hudson.plugins.shelveproject.ShelveProjectProperty plugin="shelve-project-plugin@1.5"/>
2638+ </properties>
2639+ <scm class="hudson.scm.NullSCM"/>
2640+ <assignedNode>x86_64 || slave || trusty-slave</assignedNode>
2641+ <canRoam>false</canRoam>
2642+ <disabled>false</disabled>
2643+ <blockBuildWhenDownstreamBuilding>false</blockBuildWhenDownstreamBuilding>
2644+ <blockBuildWhenUpstreamBuilding>false</blockBuildWhenUpstreamBuilding>
2645+ <triggers>
2646+ <hudson.triggers.TimerTrigger>
2647+ <spec>3 15 * * *
2648+</spec>
2649+ </hudson.triggers.TimerTrigger>
2650+ </triggers>
2651+ <concurrentBuild>false</concurrentBuild>
2652+ <builders>
2653+ <hudson.plugins.parameterizedtrigger.TriggerBuilder plugin="parameterized-trigger@2.26">
2654+ <configs>
2655+ <hudson.plugins.parameterizedtrigger.BlockableBuildTriggerConfig>
2656+ <configs>
2657+ <hudson.plugins.parameterizedtrigger.PredefinedBuildParameters>
2658+ <properties>SCHEDULED_TRIGGER=TRUE
2659+TRIGGER_FINGER=HOT_NEXT_AND_STABLE_VIRTUAL_DEPLOY</properties>
2660+ </hudson.plugins.parameterizedtrigger.PredefinedBuildParameters>
2661+ </configs>
2662+ <projects>trigger_by_mojo_group</projects>
2663+ <condition>ALWAYS</condition>
2664+ <triggerWithNoParameters>false</triggerWithNoParameters>
2665+ <block>
2666+ <buildStepFailureThreshold>
2667+ <name>FAILURE</name>
2668+ <ordinal>2</ordinal>
2669+ <color>RED</color>
2670+ <completeBuild>true</completeBuild>
2671+ </buildStepFailureThreshold>
2672+ <unstableThreshold>
2673+ <name>UNSTABLE</name>
2674+ <ordinal>1</ordinal>
2675+ <color>YELLOW</color>
2676+ <completeBuild>true</completeBuild>
2677+ </unstableThreshold>
2678+ <failureThreshold>
2679+ <name>FAILURE</name>
2680+ <ordinal>2</ordinal>
2681+ <color>RED</color>
2682+ <completeBuild>true</completeBuild>
2683+ </failureThreshold>
2684+ </block>
2685+ <buildAllNodesWithLabel>false</buildAllNodesWithLabel>
2686+ </hudson.plugins.parameterizedtrigger.BlockableBuildTriggerConfig>
2687+ </configs>
2688+ </hudson.plugins.parameterizedtrigger.TriggerBuilder>
2689+ </builders>
2690+ <publishers/>
2691+ <buildWrappers>
2692+ <hudson.plugins.timestamper.TimestamperBuildWrapper plugin="timestamper@1.6"/>
2693+ <org.jenkinsci.plugins.buildnamesetter.BuildNameSetter plugin="build-name-setter@1.3">
2694+ <template>#${BUILD_NUMBER}</template>
2695+ </org.jenkinsci.plugins.buildnamesetter.BuildNameSetter>
2696+ </buildWrappers>
2697+</project>
2698\ No newline at end of file
2699
2700=== added directory 'deployment/jobs/scheduled_trigger_mojo_stable_deploy'
2701=== added file 'deployment/jobs/scheduled_trigger_mojo_stable_deploy/config.xml'
2702--- deployment/jobs/scheduled_trigger_mojo_stable_deploy/config.xml 1970-01-01 00:00:00 +0000
2703+++ deployment/jobs/scheduled_trigger_mojo_stable_deploy/config.xml 2015-08-28 16:23:16 +0000
2704@@ -0,0 +1,84 @@
2705+<?xml version='1.0' encoding='UTF-8'?>
2706+<project>
2707+ <actions/>
2708+ <description>Scheduled WEEKLY.&lt;br/&gt;&#xd;
2709+Deploys all currently-supported combos of Ubuntu/OpenStack (on top of OpenStack), using the stable charms.</description>
2710+ <logRotator class="hudson.tasks.LogRotator">
2711+ <daysToKeep>-1</daysToKeep>
2712+ <numToKeep>-1</numToKeep>
2713+ <artifactDaysToKeep>150</artifactDaysToKeep>
2714+ <artifactNumToKeep>1500</artifactNumToKeep>
2715+ </logRotator>
2716+ <keepDependencies>false</keepDependencies>
2717+ <properties>
2718+ <com.sonyericsson.rebuild.RebuildSettings plugin="rebuild@1.22">
2719+ <autoRebuild>false</autoRebuild>
2720+ </com.sonyericsson.rebuild.RebuildSettings>
2721+ <hudson.plugins.throttleconcurrents.ThrottleJobProperty plugin="throttle-concurrents@1.8.4">
2722+ <maxConcurrentPerNode>1</maxConcurrentPerNode>
2723+ <maxConcurrentTotal>1</maxConcurrentTotal>
2724+ <throttleEnabled>true</throttleEnabled>
2725+ <throttleOption>project</throttleOption>
2726+ </hudson.plugins.throttleconcurrents.ThrottleJobProperty>
2727+ <org.jvnet.hudson.plugins.shelveproject.ShelveProjectProperty plugin="shelve-project-plugin@1.5"/>
2728+ </properties>
2729+ <scm class="hudson.scm.NullSCM"/>
2730+ <assignedNode>x86_64 || slave || trusty-slave</assignedNode>
2731+ <canRoam>false</canRoam>
2732+ <disabled>false</disabled>
2733+ <blockBuildWhenDownstreamBuilding>false</blockBuildWhenDownstreamBuilding>
2734+ <blockBuildWhenUpstreamBuilding>false</blockBuildWhenUpstreamBuilding>
2735+ <triggers>
2736+ <hudson.triggers.TimerTrigger>
2737+ <spec>3 15 * * 5
2738+</spec>
2739+ </hudson.triggers.TimerTrigger>
2740+ </triggers>
2741+ <concurrentBuild>false</concurrentBuild>
2742+ <builders>
2743+ <hudson.plugins.parameterizedtrigger.TriggerBuilder plugin="parameterized-trigger@2.26">
2744+ <configs>
2745+ <hudson.plugins.parameterizedtrigger.BlockableBuildTriggerConfig>
2746+ <configs>
2747+ <hudson.plugins.parameterizedtrigger.PredefinedBuildParameters>
2748+ <properties>SCHEDULED_TRIGGER=TRUE
2749+TRIGGER_FINGER=STABLE_DEPLOY
2750+</properties>
2751+ </hudson.plugins.parameterizedtrigger.PredefinedBuildParameters>
2752+ </configs>
2753+ <projects>trigger_by_mojo_group</projects>
2754+ <condition>ALWAYS</condition>
2755+ <triggerWithNoParameters>false</triggerWithNoParameters>
2756+ <block>
2757+ <buildStepFailureThreshold>
2758+ <name>FAILURE</name>
2759+ <ordinal>2</ordinal>
2760+ <color>RED</color>
2761+ <completeBuild>true</completeBuild>
2762+ </buildStepFailureThreshold>
2763+ <unstableThreshold>
2764+ <name>UNSTABLE</name>
2765+ <ordinal>1</ordinal>
2766+ <color>YELLOW</color>
2767+ <completeBuild>true</completeBuild>
2768+ </unstableThreshold>
2769+ <failureThreshold>
2770+ <name>FAILURE</name>
2771+ <ordinal>2</ordinal>
2772+ <color>RED</color>
2773+ <completeBuild>true</completeBuild>
2774+ </failureThreshold>
2775+ </block>
2776+ <buildAllNodesWithLabel>false</buildAllNodesWithLabel>
2777+ </hudson.plugins.parameterizedtrigger.BlockableBuildTriggerConfig>
2778+ </configs>
2779+ </hudson.plugins.parameterizedtrigger.TriggerBuilder>
2780+ </builders>
2781+ <publishers/>
2782+ <buildWrappers>
2783+ <hudson.plugins.timestamper.TimestamperBuildWrapper plugin="timestamper@1.6"/>
2784+ <org.jenkinsci.plugins.buildnamesetter.BuildNameSetter plugin="build-name-setter@1.3">
2785+ <template>#${BUILD_NUMBER}</template>
2786+ </org.jenkinsci.plugins.buildnamesetter.BuildNameSetter>
2787+ </buildWrappers>
2788+</project>
2789\ No newline at end of file
2790
2791=== modified file 'deployment/jobs/scheduled_trigger_single_charm/config.xml'
2792--- deployment/jobs/scheduled_trigger_single_charm/config.xml 2015-02-05 22:19:52 +0000
2793+++ deployment/jobs/scheduled_trigger_single_charm/config.xml 2015-08-28 16:23:16 +0000
2794@@ -5,10 +5,10 @@
2795 * Useful as a health indicator for each node&apos;s juju environment and configuration.&#xd;
2796 * Runs daily.</description>
2797 <logRotator class="hudson.tasks.LogRotator">
2798- <daysToKeep>90</daysToKeep>
2799- <numToKeep>90</numToKeep>
2800- <artifactDaysToKeep>-1</artifactDaysToKeep>
2801- <artifactNumToKeep>-1</artifactNumToKeep>
2802+ <daysToKeep>-1</daysToKeep>
2803+ <numToKeep>-1</numToKeep>
2804+ <artifactDaysToKeep>150</artifactDaysToKeep>
2805+ <artifactNumToKeep>1500</artifactNumToKeep>
2806 </logRotator>
2807 <keepDependencies>false</keepDependencies>
2808 <properties>
2809@@ -36,7 +36,7 @@
2810 </triggers>
2811 <concurrentBuild>false</concurrentBuild>
2812 <builders>
2813- <hudson.plugins.parameterizedtrigger.TriggerBuilder plugin="parameterized-trigger@2.25">
2814+ <hudson.plugins.parameterizedtrigger.TriggerBuilder plugin="parameterized-trigger@2.26">
2815 <configs>
2816 <hudson.plugins.parameterizedtrigger.BlockableBuildTriggerConfig>
2817 <configs>
2818@@ -53,12 +53,12 @@
2819 </hudson.plugins.parameterizedtrigger.TriggerBuilder>
2820 </builders>
2821 <publishers>
2822- <hudson.tasks.test.AggregatedTestResultPublisher plugin="junit@1.0">
2823+ <hudson.tasks.test.AggregatedTestResultPublisher plugin="junit@1.2-beta-4">
2824 <includeFailedBuilds>true</includeFailedBuilds>
2825 </hudson.tasks.test.AggregatedTestResultPublisher>
2826 </publishers>
2827 <buildWrappers>
2828- <hudson.plugins.timestamper.TimestamperBuildWrapper plugin="timestamper@1.5.15"/>
2829+ <hudson.plugins.timestamper.TimestamperBuildWrapper plugin="timestamper@1.6"/>
2830 <org.jenkinsci.plugins.buildnamesetter.BuildNameSetter plugin="build-name-setter@1.3">
2831 <template>#${BUILD_NUMBER} ${ENV,var=&quot;NODE_NAME&quot;}</template>
2832 </org.jenkinsci.plugins.buildnamesetter.BuildNameSetter>
2833
2834=== modified file 'deployment/jobs/scheduled_trigger_single_charm_jdev/config.xml'
2835--- deployment/jobs/scheduled_trigger_single_charm_jdev/config.xml 2015-02-05 22:19:52 +0000
2836+++ deployment/jobs/scheduled_trigger_single_charm_jdev/config.xml 2015-08-28 16:23:16 +0000
2837@@ -6,10 +6,10 @@
2838 * Useful as a health indicator for each node&apos;s juju environment and configuration.&#xd;
2839 * Runs daily.</description>
2840 <logRotator class="hudson.tasks.LogRotator">
2841- <daysToKeep>90</daysToKeep>
2842- <numToKeep>90</numToKeep>
2843- <artifactDaysToKeep>-1</artifactDaysToKeep>
2844- <artifactNumToKeep>-1</artifactNumToKeep>
2845+ <daysToKeep>-1</daysToKeep>
2846+ <numToKeep>-1</numToKeep>
2847+ <artifactDaysToKeep>150</artifactDaysToKeep>
2848+ <artifactNumToKeep>1500</artifactNumToKeep>
2849 </logRotator>
2850 <keepDependencies>false</keepDependencies>
2851 <properties>
2852@@ -26,7 +26,7 @@
2853 </properties>
2854 <scm class="hudson.scm.NullSCM"/>
2855 <canRoam>true</canRoam>
2856- <disabled>false</disabled>
2857+ <disabled>true</disabled>
2858 <blockBuildWhenDownstreamBuilding>false</blockBuildWhenDownstreamBuilding>
2859 <blockBuildWhenUpstreamBuilding>false</blockBuildWhenUpstreamBuilding>
2860 <triggers>
2861@@ -37,7 +37,7 @@
2862 </triggers>
2863 <concurrentBuild>false</concurrentBuild>
2864 <builders>
2865- <hudson.plugins.parameterizedtrigger.TriggerBuilder plugin="parameterized-trigger@2.25">
2866+ <hudson.plugins.parameterizedtrigger.TriggerBuilder plugin="parameterized-trigger@2.26">
2867 <configs>
2868 <hudson.plugins.parameterizedtrigger.BlockableBuildTriggerConfig>
2869 <configs>
2870@@ -55,12 +55,12 @@
2871 </hudson.plugins.parameterizedtrigger.TriggerBuilder>
2872 </builders>
2873 <publishers>
2874- <hudson.tasks.test.AggregatedTestResultPublisher plugin="junit@1.0">
2875+ <hudson.tasks.test.AggregatedTestResultPublisher plugin="junit@1.2-beta-4">
2876 <includeFailedBuilds>true</includeFailedBuilds>
2877 </hudson.tasks.test.AggregatedTestResultPublisher>
2878 </publishers>
2879 <buildWrappers>
2880- <hudson.plugins.timestamper.TimestamperBuildWrapper plugin="timestamper@1.5.15"/>
2881+ <hudson.plugins.timestamper.TimestamperBuildWrapper plugin="timestamper@1.6"/>
2882 <org.jenkinsci.plugins.buildnamesetter.BuildNameSetter plugin="build-name-setter@1.3">
2883 <template>#${BUILD_NUMBER} ${ENV,var=&quot;NODE_NAME&quot;} jdev</template>
2884 </org.jenkinsci.plugins.buildnamesetter.BuildNameSetter>
2885
2886=== modified file 'deployment/jobs/scheduled_trigger_single_charm_jprop/config.xml'
2887--- deployment/jobs/scheduled_trigger_single_charm_jprop/config.xml 2015-02-05 22:19:52 +0000
2888+++ deployment/jobs/scheduled_trigger_single_charm_jprop/config.xml 2015-08-28 16:23:16 +0000
2889@@ -6,10 +6,10 @@
2890 * Useful as a health indicator for each node&apos;s juju environment and configuration.&#xd;
2891 * Runs daily.</description>
2892 <logRotator class="hudson.tasks.LogRotator">
2893- <daysToKeep>90</daysToKeep>
2894- <numToKeep>90</numToKeep>
2895- <artifactDaysToKeep>-1</artifactDaysToKeep>
2896- <artifactNumToKeep>-1</artifactNumToKeep>
2897+ <daysToKeep>-1</daysToKeep>
2898+ <numToKeep>-1</numToKeep>
2899+ <artifactDaysToKeep>150</artifactDaysToKeep>
2900+ <artifactNumToKeep>1500</artifactNumToKeep>
2901 </logRotator>
2902 <keepDependencies>false</keepDependencies>
2903 <properties>
2904@@ -37,7 +37,7 @@
2905 </triggers>
2906 <concurrentBuild>false</concurrentBuild>
2907 <builders>
2908- <hudson.plugins.parameterizedtrigger.TriggerBuilder plugin="parameterized-trigger@2.25">
2909+ <hudson.plugins.parameterizedtrigger.TriggerBuilder plugin="parameterized-trigger@2.26">
2910 <configs>
2911 <hudson.plugins.parameterizedtrigger.BlockableBuildTriggerConfig>
2912 <configs>
2913@@ -55,12 +55,12 @@
2914 </hudson.plugins.parameterizedtrigger.TriggerBuilder>
2915 </builders>
2916 <publishers>
2917- <hudson.tasks.test.AggregatedTestResultPublisher plugin="junit@1.3">
2918+ <hudson.tasks.test.AggregatedTestResultPublisher plugin="junit@1.2-beta-4">
2919 <includeFailedBuilds>true</includeFailedBuilds>
2920 </hudson.tasks.test.AggregatedTestResultPublisher>
2921 </publishers>
2922 <buildWrappers>
2923- <hudson.plugins.timestamper.TimestamperBuildWrapper plugin="timestamper@1.5.14"/>
2924+ <hudson.plugins.timestamper.TimestamperBuildWrapper plugin="timestamper@1.6"/>
2925 <org.jenkinsci.plugins.buildnamesetter.BuildNameSetter plugin="build-name-setter@1.3">
2926 <template>#${BUILD_NUMBER} ${ENV,var=&quot;NODE_NAME&quot;} jdev</template>
2927 </org.jenkinsci.plugins.buildnamesetter.BuildNameSetter>
2928
2929=== modified file 'deployment/jobs/scheduled_trigger_sourcedeploy_trusty_icehouse/config.xml'
2930--- deployment/jobs/scheduled_trigger_sourcedeploy_trusty_icehouse/config.xml 2015-07-09 21:17:57 +0000
2931+++ deployment/jobs/scheduled_trigger_sourcedeploy_trusty_icehouse/config.xml 2015-08-28 16:23:16 +0000
2932@@ -3,10 +3,10 @@
2933 <actions/>
2934 <description></description>
2935 <logRotator class="hudson.tasks.LogRotator">
2936- <daysToKeep>90</daysToKeep>
2937- <numToKeep>90</numToKeep>
2938- <artifactDaysToKeep>-1</artifactDaysToKeep>
2939- <artifactNumToKeep>-1</artifactNumToKeep>
2940+ <daysToKeep>-1</daysToKeep>
2941+ <numToKeep>-1</numToKeep>
2942+ <artifactDaysToKeep>150</artifactDaysToKeep>
2943+ <artifactNumToKeep>1500</artifactNumToKeep>
2944 </logRotator>
2945 <keepDependencies>false</keepDependencies>
2946 <properties>
2947@@ -73,7 +73,7 @@
2948 <blockBuildWhenUpstreamBuilding>false</blockBuildWhenUpstreamBuilding>
2949 <triggers>
2950 <hudson.triggers.TimerTrigger>
2951- <spec>00 01 * * 0</spec>
2952+ <spec>00 01 * * *</spec>
2953 </hudson.triggers.TimerTrigger>
2954 </triggers>
2955 <concurrentBuild>false</concurrentBuild>
2956@@ -82,9 +82,7 @@
2957 <configs>
2958 <hudson.plugins.parameterizedtrigger.BlockableBuildTriggerConfig>
2959 <configs>
2960- <hudson.plugins.parameterizedtrigger.PredefinedBuildParameters>
2961- <properties>SCHEDULED_TRIGGER=TRUE</properties>
2962- </hudson.plugins.parameterizedtrigger.PredefinedBuildParameters>
2963+ <hudson.plugins.parameterizedtrigger.CurrentBuildParameters/>
2964 </configs>
2965 <projects>git_deploy_with_deployer</projects>
2966 <condition>ALWAYS</condition>
2967
2968=== modified file 'deployment/jobs/scheduled_trigger_sourcedeploy_trusty_juno/config.xml'
2969--- deployment/jobs/scheduled_trigger_sourcedeploy_trusty_juno/config.xml 2015-07-09 21:17:57 +0000
2970+++ deployment/jobs/scheduled_trigger_sourcedeploy_trusty_juno/config.xml 2015-08-28 16:23:16 +0000
2971@@ -3,10 +3,10 @@
2972 <actions/>
2973 <description></description>
2974 <logRotator class="hudson.tasks.LogRotator">
2975- <daysToKeep>90</daysToKeep>
2976- <numToKeep>90</numToKeep>
2977- <artifactDaysToKeep>-1</artifactDaysToKeep>
2978- <artifactNumToKeep>-1</artifactNumToKeep>
2979+ <daysToKeep>-1</daysToKeep>
2980+ <numToKeep>-1</numToKeep>
2981+ <artifactDaysToKeep>150</artifactDaysToKeep>
2982+ <artifactNumToKeep>1500</artifactNumToKeep>
2983 </logRotator>
2984 <keepDependencies>false</keepDependencies>
2985 <properties>
2986@@ -73,7 +73,7 @@
2987 <blockBuildWhenUpstreamBuilding>false</blockBuildWhenUpstreamBuilding>
2988 <triggers>
2989 <hudson.triggers.TimerTrigger>
2990- <spec>00 01 * * 0</spec>
2991+ <spec>00 01 * * *</spec>
2992 </hudson.triggers.TimerTrigger>
2993 </triggers>
2994 <concurrentBuild>false</concurrentBuild>
2995@@ -82,9 +82,7 @@
2996 <configs>
2997 <hudson.plugins.parameterizedtrigger.BlockableBuildTriggerConfig>
2998 <configs>
2999- <hudson.plugins.parameterizedtrigger.PredefinedBuildParameters>
3000- <properties>SCHEDULED_TRIGGER=TRUE</properties>
3001- </hudson.plugins.parameterizedtrigger.PredefinedBuildParameters>
3002+ <hudson.plugins.parameterizedtrigger.CurrentBuildParameters/>
3003 </configs>
3004 <projects>git_deploy_with_deployer</projects>
3005 <condition>ALWAYS</condition>
3006
3007=== modified file 'deployment/jobs/scheduled_trigger_sourcedeploy_trusty_kilo/config.xml'
3008--- deployment/jobs/scheduled_trigger_sourcedeploy_trusty_kilo/config.xml 2015-07-09 21:17:57 +0000
3009+++ deployment/jobs/scheduled_trigger_sourcedeploy_trusty_kilo/config.xml 2015-08-28 16:23:16 +0000
3010@@ -3,10 +3,10 @@
3011 <actions/>
3012 <description></description>
3013 <logRotator class="hudson.tasks.LogRotator">
3014- <daysToKeep>90</daysToKeep>
3015- <numToKeep>90</numToKeep>
3016- <artifactDaysToKeep>-1</artifactDaysToKeep>
3017- <artifactNumToKeep>-1</artifactNumToKeep>
3018+ <daysToKeep>-1</daysToKeep>
3019+ <numToKeep>-1</numToKeep>
3020+ <artifactDaysToKeep>150</artifactDaysToKeep>
3021+ <artifactNumToKeep>1500</artifactNumToKeep>
3022 </logRotator>
3023 <keepDependencies>false</keepDependencies>
3024 <properties>
3025@@ -73,7 +73,7 @@
3026 <blockBuildWhenUpstreamBuilding>false</blockBuildWhenUpstreamBuilding>
3027 <triggers>
3028 <hudson.triggers.TimerTrigger>
3029- <spec>00 01 * * 0</spec>
3030+ <spec>00 01 * * *</spec>
3031 </hudson.triggers.TimerTrigger>
3032 </triggers>
3033 <concurrentBuild>false</concurrentBuild>
3034@@ -82,9 +82,7 @@
3035 <configs>
3036 <hudson.plugins.parameterizedtrigger.BlockableBuildTriggerConfig>
3037 <configs>
3038- <hudson.plugins.parameterizedtrigger.PredefinedBuildParameters>
3039- <properties>SCHEDULED_TRIGGER=TRUE</properties>
3040- </hudson.plugins.parameterizedtrigger.PredefinedBuildParameters>
3041+ <hudson.plugins.parameterizedtrigger.CurrentBuildParameters/>
3042 </configs>
3043 <projects>git_deploy_with_deployer</projects>
3044 <condition>ALWAYS</condition>
3045
3046=== modified file 'deployment/jobs/scheduled_trigger_sourcedeploy_trusty_master/config.xml'
3047--- deployment/jobs/scheduled_trigger_sourcedeploy_trusty_master/config.xml 2015-07-09 21:17:57 +0000
3048+++ deployment/jobs/scheduled_trigger_sourcedeploy_trusty_master/config.xml 2015-08-28 16:23:16 +0000
3049@@ -3,10 +3,10 @@
3050 <actions/>
3051 <description></description>
3052 <logRotator class="hudson.tasks.LogRotator">
3053- <daysToKeep>90</daysToKeep>
3054- <numToKeep>90</numToKeep>
3055- <artifactDaysToKeep>-1</artifactDaysToKeep>
3056- <artifactNumToKeep>-1</artifactNumToKeep>
3057+ <daysToKeep>-1</daysToKeep>
3058+ <numToKeep>-1</numToKeep>
3059+ <artifactDaysToKeep>150</artifactDaysToKeep>
3060+ <artifactNumToKeep>1500</artifactNumToKeep>
3061 </logRotator>
3062 <keepDependencies>false</keepDependencies>
3063 <properties>
3064@@ -82,9 +82,7 @@
3065 <configs>
3066 <hudson.plugins.parameterizedtrigger.BlockableBuildTriggerConfig>
3067 <configs>
3068- <hudson.plugins.parameterizedtrigger.PredefinedBuildParameters>
3069- <properties>SCHEDULED_TRIGGER=TRUE</properties>
3070- </hudson.plugins.parameterizedtrigger.PredefinedBuildParameters>
3071+ <hudson.plugins.parameterizedtrigger.CurrentBuildParameters/>
3072 </configs>
3073 <projects>git_deploy_with_deployer</projects>
3074 <condition>ALWAYS</condition>
3075
3076=== modified file 'deployment/jobs/trigger_by_branch_scanner/config.xml'
3077--- deployment/jobs/trigger_by_branch_scanner/config.xml 2015-05-17 14:36:21 +0000
3078+++ deployment/jobs/trigger_by_branch_scanner/config.xml 2015-08-28 16:23:16 +0000
3079@@ -1,18 +1,18 @@
3080 <?xml version='1.0' encoding='UTF-8'?>
3081 <project>
3082 <actions/>
3083- <description>* Automatically checks branches every 30 minutes, trigger jobs if changes are found.&#xd;
3084-* Can be manually triggered with various parameters for manual test chain or deployment kick off.&#xd;
3085-* Deployment jobs trigger positive if ANY branch defined in mappings.yaml has a change.&#xd;
3086-* Amulet &amp; lint jobs trigger positive if specific branches defined in mappings.yaml have a change.&#xd;
3087-* Calls external python routine, reading branch list from ubuntu-openstack-ci/populate/mappings.yaml.&#xd;
3088-* Creates properties files for job triggers.&#xd;
3089-* Additionally, if there are branch revisions, or new branches, a flat file is created at $HOME/state/branch-state.changed, with 1 LP:branch per line, can be parsed by jobs if necessary.</description>
3090+ <description>* Automatically checks branches every 30 minutes, trigger jobs if revision changes are found.&lt;br/&gt;&#xd;
3091+* Can be manually triggered with various parameters for manual test chain or deployment kick off.&lt;br/&gt;&#xd;
3092+* Deployment jobs trigger positive if ANY branch defined in mappings.yaml has a change.&lt;br/&gt;&#xd;
3093+* Amulet &amp; lint jobs trigger positive if specific branches defined in mappings.yaml have a change.&lt;br/&gt;&#xd;
3094+* Calls external python routine, reading branch list from ubuntu-openstack-ci/populate/mappings.yaml.&lt;br/&gt;&#xd;
3095+* Creates properties files for job triggers.&lt;br/&gt;&#xd;
3096+* Additionally, if there are branch revisions, or new branches, a flat file is created at $HOME/state/branch-state.changed, with 1 LP:branch per line, can be parsed by jobs if necessary.&lt;br/&gt;</description>
3097 <logRotator class="hudson.tasks.LogRotator">
3098 <daysToKeep>-1</daysToKeep>
3099- <numToKeep>480</numToKeep>
3100- <artifactDaysToKeep>-1</artifactDaysToKeep>
3101- <artifactNumToKeep>-1</artifactNumToKeep>
3102+ <numToKeep>-1</numToKeep>
3103+ <artifactDaysToKeep>150</artifactDaysToKeep>
3104+ <artifactNumToKeep>1500</artifactNumToKeep>
3105 </logRotator>
3106 <keepDependencies>false</keepDependencies>
3107 <properties>
3108@@ -61,10 +61,8 @@
3109 <hudson.plugins.throttleconcurrents.ThrottleJobProperty plugin="throttle-concurrents@1.8.4">
3110 <maxConcurrentPerNode>1</maxConcurrentPerNode>
3111 <maxConcurrentTotal>1</maxConcurrentTotal>
3112- <categories/>
3113 <throttleEnabled>true</throttleEnabled>
3114 <throttleOption>project</throttleOption>
3115- <configVersion>1</configVersion>
3116 </hudson.plugins.throttleconcurrents.ThrottleJobProperty>
3117 <org.jvnet.hudson.plugins.shelveproject.ShelveProjectProperty plugin="shelve-project-plugin@1.5"/>
3118 </properties>
3119
3120=== added directory 'deployment/jobs/trigger_by_mojo_group'
3121=== added file 'deployment/jobs/trigger_by_mojo_group/config.xml'
3122--- deployment/jobs/trigger_by_mojo_group/config.xml 1970-01-01 00:00:00 +0000
3123+++ deployment/jobs/trigger_by_mojo_group/config.xml 2015-08-28 16:23:16 +0000
3124@@ -0,0 +1,152 @@
3125+<?xml version='1.0' encoding='UTF-8'?>
3126+<project>
3127+ <actions/>
3128+ <description>Green/Red dots here do NOT indicate pass/fail of the actual deployments. That just means the trigger succeeded or failed.</description>
3129+ <logRotator class="hudson.tasks.LogRotator">
3130+ <daysToKeep>-1</daysToKeep>
3131+ <numToKeep>480</numToKeep>
3132+ <artifactDaysToKeep>-1</artifactDaysToKeep>
3133+ <artifactNumToKeep>-1</artifactNumToKeep>
3134+ </logRotator>
3135+ <keepDependencies>false</keepDependencies>
3136+ <properties>
3137+ <hudson.model.ParametersDefinitionProperty>
3138+ <parameterDefinitions>
3139+ <hudson.model.ChoiceParameterDefinition>
3140+ <name>TRIGGER_FINGER</name>
3141+ <description>&quot;ALL&quot; triggers will result in a TON of jobs, use with intent and caution.&lt;br/&gt;
3142+&quot;HOT&quot; filters to &quot;distro&quot; and most recent release of OpenStack, for the most recent Ubuntu LTS, and the current dev version of Ubuntu. All other combos are ignored.&lt;br/&gt;</description>
3143+ <choices class="java.util.Arrays$ArrayList">
3144+ <a class="string-array">
3145+ <string>HOT_NEXT_AND_STABLE_VIRTUAL_DEPLOY</string>
3146+ <string>HOT_NEXT_DEPLOY</string>
3147+ <string>HOT_STABLE_DEPLOY</string>
3148+ <string></string>
3149+ <string>HOT_METAL</string>
3150+ <string></string>
3151+ <string>HOT_NEXT_DEPLOY_BAREMETAL</string>
3152+ <string>HOT_STABLE_DEPLOY_BAREMETAL</string>
3153+ <string></string>
3154+ <string>HOT_NEXT_CHARMHELPER_SYNC</string>
3155+ <string>HOT_NEXT_CHARMHELPER_HA_SYNC</string>
3156+ <string></string>
3157+ <string>HOT_CHARM_UPGRADE</string>
3158+ <string>HOT_CHARM_UPGRADE_HA</string>
3159+ <string></string>
3160+ <string>HOT_OBJECT_STORAGE</string>
3161+ <string></string>
3162+ <string># All will be massive, use with intent and caution.</string>
3163+ <string>HOT_ALL</string>
3164+ <string>ALL</string>
3165+ <string>NEXT_ALL</string>
3166+ <string>STABLE_ALL</string>
3167+ <string>ICEHOUSE_ALL</string>
3168+ <string>JUNO_ALL</string>
3169+ <string>KILO_ALL</string>
3170+ <string>LIBERTY_ALL</string>
3171+ <string>PRECISE_ALL</string>
3172+ <string>TRUSTY_ALL</string>
3173+ <string>VIVID_ALL</string>
3174+ <string>WILY_ALL</string>
3175+ <string></string>
3176+ <string>CHARM_UPGRADE</string>
3177+ <string>CHARM_UPGRADE_HA</string>
3178+ <string>NEXT_DEPLOY</string>
3179+ <string>NEXT_DEPLOY_SSL</string>
3180+ <string>NEXT_DEPLOY_BAREMETAL</string>
3181+ <string>NEXT_CHARMHELPER_SYNC</string>
3182+ <string>NEXT_CHARMHELPER_HA_SYNC</string>
3183+ <string>STABLE_DEPLOY</string>
3184+ <string>STABLE_DEPLOY_BAREMETAL</string>
3185+ <string>STABLE_CHARMHELPER_UPGRADE</string>
3186+ <string>STABLE_CHARMHELPER_HA_UPGRADE</string>
3187+ <string>OBJECT_STORAGE</string>
3188+ <string>HA_PHASED</string>
3189+ <string>HA_PHASED_CHAOS_PONY</string>
3190+ </a>
3191+ </choices>
3192+ </hudson.model.ChoiceParameterDefinition>
3193+ <hudson.model.StringParameterDefinition>
3194+ <name>JUJU_SOURCE</name>
3195+ <description></description>
3196+ <defaultValue></defaultValue>
3197+ </hudson.model.StringParameterDefinition>
3198+ </parameterDefinitions>
3199+ </hudson.model.ParametersDefinitionProperty>
3200+ <com.sonyericsson.rebuild.RebuildSettings plugin="rebuild@1.22">
3201+ <autoRebuild>false</autoRebuild>
3202+ </com.sonyericsson.rebuild.RebuildSettings>
3203+ <hudson.plugins.throttleconcurrents.ThrottleJobProperty plugin="throttle-concurrents@1.8.4">
3204+ <maxConcurrentPerNode>1</maxConcurrentPerNode>
3205+ <maxConcurrentTotal>4</maxConcurrentTotal>
3206+ <throttleEnabled>true</throttleEnabled>
3207+ <throttleOption>project</throttleOption>
3208+ </hudson.plugins.throttleconcurrents.ThrottleJobProperty>
3209+ <org.jvnet.hudson.plugins.shelveproject.ShelveProjectProperty plugin="shelve-project-plugin@1.5"/>
3210+ </properties>
3211+ <scm class="hudson.scm.NullSCM"/>
3212+ <assignedNode>master || slave</assignedNode>
3213+ <canRoam>false</canRoam>
3214+ <disabled>false</disabled>
3215+ <blockBuildWhenDownstreamBuilding>true</blockBuildWhenDownstreamBuilding>
3216+ <blockBuildWhenUpstreamBuilding>true</blockBuildWhenUpstreamBuilding>
3217+ <triggers/>
3218+ <concurrentBuild>true</concurrentBuild>
3219+ <builders>
3220+ <hudson.tasks.Shell>
3221+ <command>#!/bin/bash -ex
3222+${OSCI_ROOT}/job-parts/trigger_by_mojo_group.sh</command>
3223+ </hudson.tasks.Shell>
3224+ <hudson.plugins.parameterizedtrigger.TriggerBuilder plugin="parameterized-trigger@2.26">
3225+ <configs>
3226+ <hudson.plugins.parameterizedtrigger.BlockableBuildTriggerConfig>
3227+ <configs>
3228+ <hudson.plugins.parameterizedtrigger.CurrentBuildParameters/>
3229+ </configs>
3230+ <configFactories>
3231+ <hudson.plugins.parameterizedtrigger.FileBuildParameterFactory>
3232+ <filePattern>mojo-properties.*</filePattern>
3233+ <noFilesFoundAction>SKIP</noFilesFoundAction>
3234+ </hudson.plugins.parameterizedtrigger.FileBuildParameterFactory>
3235+ </configFactories>
3236+ <projects>mojo_runner</projects>
3237+ <condition>ALWAYS</condition>
3238+ <triggerWithNoParameters>false</triggerWithNoParameters>
3239+ <buildAllNodesWithLabel>false</buildAllNodesWithLabel>
3240+ </hudson.plugins.parameterizedtrigger.BlockableBuildTriggerConfig>
3241+ </configs>
3242+ </hudson.plugins.parameterizedtrigger.TriggerBuilder>
3243+ <hudson.plugins.parameterizedtrigger.TriggerBuilder plugin="parameterized-trigger@2.26">
3244+ <configs>
3245+ <hudson.plugins.parameterizedtrigger.BlockableBuildTriggerConfig>
3246+ <configs class="empty-list"/>
3247+ <configFactories>
3248+ <hudson.plugins.parameterizedtrigger.FileBuildParameterFactory>
3249+ <filePattern>baremetal-mojo-properties.*</filePattern>
3250+ <noFilesFoundAction>SKIP</noFilesFoundAction>
3251+ </hudson.plugins.parameterizedtrigger.FileBuildParameterFactory>
3252+ </configFactories>
3253+ <projects>mojo_runner_baremetal</projects>
3254+ <condition>ALWAYS</condition>
3255+ <triggerWithNoParameters>false</triggerWithNoParameters>
3256+ <buildAllNodesWithLabel>false</buildAllNodesWithLabel>
3257+ </hudson.plugins.parameterizedtrigger.BlockableBuildTriggerConfig>
3258+ </configs>
3259+ </hudson.plugins.parameterizedtrigger.TriggerBuilder>
3260+ </builders>
3261+ <publishers>
3262+ <hudson.tasks.ArtifactArchiver>
3263+ <artifacts>*</artifacts>
3264+ <allowEmptyArchive>true</allowEmptyArchive>
3265+ <onlyIfSuccessful>false</onlyIfSuccessful>
3266+ <fingerprint>true</fingerprint>
3267+ <defaultExcludes>true</defaultExcludes>
3268+ </hudson.tasks.ArtifactArchiver>
3269+ </publishers>
3270+ <buildWrappers>
3271+ <hudson.plugins.timestamper.TimestamperBuildWrapper plugin="timestamper@1.6"/>
3272+ <org.jenkinsci.plugins.buildnamesetter.BuildNameSetter plugin="build-name-setter@1.3">
3273+ <template>#${BUILD_NUMBER} ${ENV,var=&quot;TRIGGER_FINGER&quot;}</template>
3274+ </org.jenkinsci.plugins.buildnamesetter.BuildNameSetter>
3275+ </buildWrappers>
3276+</project>
3277\ No newline at end of file
3278
3279=== modified file 'deployment/jobs/trigger_by_mp_scanner/config.xml'
3280--- deployment/jobs/trigger_by_mp_scanner/config.xml 2015-05-17 14:36:21 +0000
3281+++ deployment/jobs/trigger_by_mp_scanner/config.xml 2015-08-28 16:23:16 +0000
3282@@ -6,9 +6,9 @@
3283 </description>
3284 <logRotator class="hudson.tasks.LogRotator">
3285 <daysToKeep>-1</daysToKeep>
3286- <numToKeep>480</numToKeep>
3287- <artifactDaysToKeep>-1</artifactDaysToKeep>
3288- <artifactNumToKeep>-1</artifactNumToKeep>
3289+ <numToKeep>-1</numToKeep>
3290+ <artifactDaysToKeep>150</artifactDaysToKeep>
3291+ <artifactNumToKeep>1500</artifactNumToKeep>
3292 </logRotator>
3293 <keepDependencies>false</keepDependencies>
3294 <properties>
3295@@ -52,10 +52,8 @@
3296 <hudson.plugins.throttleconcurrents.ThrottleJobProperty plugin="throttle-concurrents@1.8.4">
3297 <maxConcurrentPerNode>1</maxConcurrentPerNode>
3298 <maxConcurrentTotal>1</maxConcurrentTotal>
3299- <categories/>
3300 <throttleEnabled>true</throttleEnabled>
3301 <throttleOption>project</throttleOption>
3302- <configVersion>1</configVersion>
3303 </hudson.plugins.throttleconcurrents.ThrottleJobProperty>
3304 <org.jvnet.hudson.plugins.shelveproject.ShelveProjectProperty plugin="shelve-project-plugin@1.5"/>
3305 </properties>
3306
3307=== renamed file 'charm-helpers.yaml' => 'dev/charm-helpers.yaml'
3308=== modified file 'dev/mappings-dev.yaml'
3309--- dev/mappings-dev.yaml 2015-07-08 19:44:46 +0000
3310+++ dev/mappings-dev.yaml 2015-08-28 16:23:16 +0000
3311@@ -3,29 +3,48 @@
3312
3313 # the openstack version which shipped with an ubuntu release
3314 # not used by OSCI code yet
3315-release-map:
3316+u-os-dlft-rls:
3317 precise: essex
3318 trusty: icehouse
3319 utopic: juno
3320 vivid: kilo
3321 wily: liberty
3322
3323-# openstack versions available to ubuntu releases via ubuntu cloudarchives
3324-# not used by OSCI code yet
3325-uca-map:
3326+# ubuntu-to-openstack supported release map
3327+u-os-map:
3328 precise:
3329 - icehouse
3330 trusty:
3331+ - icehouse
3332 - juno
3333- - vivid
3334+ - kilo
3335+ - liberty
3336+ vivid:
3337+ - kilo
3338+ wily:
3339 - liberty
3340
3341 # openstack installation sources
3342-# not used by OSCI code yet
3343 installation-sources:
3344 - default
3345+ - staging
3346 - proposed
3347- - trunk
3348+
3349+# (u-os-map x inst-sources) gets applied and iterated to each mojo group:
3350+mojo-spec-groups:
3351+ - full_stack:
3352+# - charmhelper_upgrade
3353+# - charmhelper_upgrade_ha
3354+# - ha_phased
3355+# - ha_phased_chaos_pony
3356+# - next_deploy
3357+ - next_deploy_baremetal
3358+# - next_deploy_ssl
3359+# - stable_deploy
3360+ - stable_deploy_baremetal
3361+# - stable_to_next
3362+# - stable_to_next_ha
3363+
3364
3365
3366 #
3367
3368=== renamed file 'populate.py' => 'dev/populate.py'
3369=== renamed file 'scan_url_group.py' => 'dev/scan_url_group.py'
3370=== renamed file 'job-parts/trigger_watch_juju_proposed.sh' => 'dev/trigger_watch_juju_proposed.sh'
3371=== renamed file 'job-parts/build_mojo_runner_baremetal.sh' => 'job-parts/Z_DEPRECATE_build_mojo_runner_baremetal.sh'
3372--- job-parts/build_mojo_runner_baremetal.sh 2015-07-17 18:16:16 +0000
3373+++ job-parts/Z_DEPRECATE_build_mojo_runner_baremetal.sh 2015-08-28 16:23:16 +0000
3374@@ -14,8 +14,7 @@
3375 [[ -z "$OPENSTACK_CHARM_TESTING_REPO" ]] && export OPENSTACK_CHARM_TESTING_REPO="lp:openstack-charm-testing"
3376 [[ -z "$OPENSTACK_CHARM_TESTING_ROOT" ]] && export OPENSTACK_CHARM_TESTING_ROOT="${HOME}/tools/openstack-charm-testing"
3377
3378-#[[ -z "$MOJO_OPENSTACK_SPECS_REPO" ]] && export MOJO_OPENSTACK_SPECS_REPO="lp:~ost-maintainers/openstack-mojo-specs/mojo-openstack-specs"
3379-[[ -z "$MOJO_OPENSTACK_SPECS_REPO" ]] && export MOJO_OPENSTACK_SPECS_REPO="lp:~1chb1n/openstack-mojo-specs/baremetal-bundle-constrainer"
3380+[[ -z "$MOJO_OPENSTACK_SPECS_REPO" ]] && export MOJO_OPENSTACK_SPECS_REPO="lp:~ost-maintainers/openstack-mojo-specs/mojo-openstack-specs"
3381
3382 [[ -z "$MOJO_SERIES" ]] && export MOJO_SERIES="trusty"
3383 [[ -z "$MOJO_SPEC" ]] && export MOJO_SPEC="specs/full_stack/next_deploy_baremetal/icehouse"
3384
3385=== modified file 'job-parts/build_deployer_quickcheck.sh'
3386--- job-parts/build_deployer_quickcheck.sh 2015-05-14 15:56:01 +0000
3387+++ job-parts/build_deployer_quickcheck.sh 2015-08-28 16:23:16 +0000
3388@@ -22,7 +22,7 @@
3389 f_line "Confirm deployment"
3390 juju_ok="$(${OSCI_ROOT}/job-parts/juju_deploy_ok.sh || true)"
3391 echo $juju_ok
3392-f_juju_status_health_check
3393+f_juju_status_health_check "-post-deploy"
3394
3395 if [[ "$juju_ok" == *DEPLOYED:* ]]; then
3396 echo " . Juju deployment succeeded."
3397
3398=== modified file 'job-parts/build_juju_deploy_single_charm.sh'
3399--- job-parts/build_juju_deploy_single_charm.sh 2015-04-02 16:17:25 +0000
3400+++ job-parts/build_juju_deploy_single_charm.sh 2015-08-28 16:23:16 +0000
3401@@ -29,7 +29,7 @@
3402
3403 # Confirm
3404 f_line "Confirm deployment"
3405-f_juju_status_health_check
3406+f_juju_status_health_check "-post-deploy"
3407
3408 if [[ "$ready" != *DEPLOYED:* ]]; then
3409 echo "Juju deployment not ready."
3410
3411=== modified file 'job-parts/build_mojo_runner.sh'
3412--- job-parts/build_mojo_runner.sh 2015-01-28 15:39:10 +0000
3413+++ job-parts/build_mojo_runner.sh 2015-08-28 16:23:16 +0000
3414@@ -1,26 +1,59 @@
3415 #!/bin/bash -e
3416-# Mojo runner for OSCI
3417-test="mojo"
3418+# Mojo runner for UOSCI
3419+
3420+# Define defaults for manual runs outside of a Jenkins environment
3421+#[[ -z "$" ]] && export =""
3422+[[ -z "$JENKINS_HOME" ]] && export JENKINS_HOME="$HOME"
3423+[[ -z "$WORKSPACE" ]] && export WORKSPACE="$(mktemp -d)"
3424+[[ -z "$BUILD_NUMBER" ]] && export BUILD_NUMBER="manual"
3425+
3426+[[ -z "$OSCI_REPO" ]] && export OSCI_REPO="lp:ubuntu-openstack-ci"
3427+[[ -z "$OSCI_ROOT" ]] && export OSCI_ROOT="${HOME}/tools/ubuntu-openstack-ci"
3428+
3429+[[ -z "$OPENSTACK_CHARM_TESTING_REPO" ]] && export OPENSTACK_CHARM_TESTING_REPO="lp:openstack-charm-testing"
3430+[[ -z "$OPENSTACK_CHARM_TESTING_ROOT" ]] && export OPENSTACK_CHARM_TESTING_ROOT="${HOME}/tools/openstack-charm-testing"
3431+
3432+# /!\ Temporary override for spec dev
3433+[[ -z "$MOJO_OPENSTACK_SPECS_REPO" ]] && export MOJO_OPENSTACK_SPECS_REPO="lp:~ost-maintainers/openstack-mojo-specs/mojo-openstack-specs"
3434+
3435+[[ -z "$MOJO_SERIES" ]] && export MOJO_SERIES="trusty"
3436+[[ -z "$MOJO_SPEC" ]] && export MOJO_SPEC="specs/full_stack/next_deploy_baremetal/icehouse"
3437+
3438+# Avoid environment teardown if run outside of a Jenkins environment
3439+[[ -z "$BUILD_URL" ]] && export NO_POST_DESTROY="true"
3440
3441 # Source the common functions
3442 . ${OSCI_ROOT}/job-parts/osci_job_common.sh
3443
3444 # Set common, constant mojo workspace and project names
3445-MOJO_WORKSPACE_NAME="osci-mojo"
3446-MOJO_PROJ="mojo-openstack-specs"
3447+export MOJO_WORKSPACE_NAME="osci-mojo"
3448+export MOJO_PROJ="mojo-openstack-specs"
3449
3450 # Prep environment
3451 f_fresh_clean_start
3452 f_env_no_pass
3453 f_mojo_install
3454
3455-# Mojo Go!
3456 f_line "validating mojo runner env vars"
3457 f_mojo_handle_env_vars
3458
3459 f_line "bootstrapping"
3460 f_juju_get_pkg_info juju-pkg-info.txt
3461-f_juju_bootstrap
3462+
3463+if [[ "$MOJO_SPEC" == *metal* ]]; then
3464+ # Handle baremetal specs
3465+ export UOSCI_JUJU_TAGS="arch=amd64 tags=uosci"
3466+# enviro switcher now handles metal detection
3467+# juju switch maas-${MOJO_SERIES}
3468+ juju bootstrap --upload-tools --constraints="${UOSCI_JUJU_TAGS}" 2>&1 | tee $WORKSPACE/juju-bootstrap.$BUILD_NUMBER
3469+ if [[ "${PIPESTATUS[0]}" != "0" ]]; then
3470+ echo " ! Bootstrap failed."
3471+ touch $WORKSPACE/fyi-${test:0:4}.${test}-bootstrap.failed
3472+ fi
3473+else
3474+ # Not baremetal
3475+ f_juju_bootstrap
3476+fi
3477
3478 f_line "defining new mojo project"
3479 f_mojo_new_project
3480
3481=== modified file 'job-parts/collect_charm_revno_info.sh'
3482--- job-parts/collect_charm_revno_info.sh 2015-01-21 22:47:28 +0000
3483+++ job-parts/collect_charm_revno_info.sh 2015-08-28 16:23:16 +0000
3484@@ -4,6 +4,8 @@
3485 [[ -z "$CHARM_SET" ]] && CHARM_SET="next.yaml"
3486 [[ -z "$UBUNTU_RELEASE" ]] && UBUNTU_RELEASE="trusty"
3487 [[ -z "$WORKSPACE" ]] && export WORKSPACE="$(mktemp -d)"
3488+[[ -z "$JENKINS_HOME" ]] && export JENKINS_HOME="$(mktemp -d)"
3489+[[ -z "$CO_DIR" ]] && CO_DIR="${JENKINS_HOME}/checkout/${BASE_NAME}"
3490 [[ -z "$BUILD_NUMBER" ]] && export BUILD_NUMBER="unknown"
3491 [[ -z "$OSCI_ROOT" ]] && export OSCI_ROOT="${HOME}/tools/ubuntu-openstack-ci"
3492 [[ -z "$OPENSTACK_CHARM_TESTING_ROOT" ]] && export OPENSTACK_CHARM_TESTING_ROOT="${HOME}/tools/openstack-charm-testing"
3493@@ -11,4 +13,4 @@
3494 # Source the common functions
3495 . ${OSCI_ROOT}/job-parts/osci_job_common.sh
3496
3497-f_collect_charm_revnos
3498+f_collect_asset_revnos
3499
3500=== modified file 'job-parts/juju_bighammer_destroy.sh'
3501--- job-parts/juju_bighammer_destroy.sh 2015-01-28 06:06:57 +0000
3502+++ job-parts/juju_bighammer_destroy.sh 2015-08-28 16:23:16 +0000
3503@@ -54,7 +54,7 @@
3504 f_get_env_files
3505 f_get_my_nova_instances
3506 tries=0
3507-while [[ -n "$env_files" ]] || [[ -n "$my_instances" ]] && [ $tries -le 10 ]
3508+while [[ -n "$env_files" ]] || [[ -n "$my_instances" ]] && [ $tries -le 20 ]
3509 do
3510 echo "Waiting for destroy..."
3511 sleep 12
3512
3513=== modified file 'job-parts/juju_deploy_ok.sh'
3514--- job-parts/juju_deploy_ok.sh 2015-07-23 16:15:55 +0000
3515+++ job-parts/juju_deploy_ok.sh 2015-08-28 16:23:16 +0000
3516@@ -31,9 +31,10 @@
3517 juju stat --format=tabular &> $WORKSPACE/juju-stat-bad-states.$BUILD_NUMBER || true
3518 exit 2
3519 elif [[ -n $bad_states ]] && [[ -z "$jenvs" ]]; then
3520- echo "! TEARDOWN-NEEDED: Juju environment, agent and/or instance states are bad, and Juju jenv file(s) do not exist for ${JENV_NAME}."
3521+ msg="! TEARDOWN-NEEDED: Juju environment, agent and/or instance states are bad, and Juju jenv file(s) do not exist for ${JENV_NAME}."
3522 echo $bad_states
3523- exit 3
3524+ while true; do echo "ERROR 3 - Manual intervention required. Undercloud issue? ${msg}"; sleep 120; done
3525+# exit 3
3526 elif [[ -z $bad_states ]] && [[ -n "$jenvs" ]] && [[ -z $bad_instances ]] && [[ -n $good_instances ]]; then
3527 echo " . DEPLOYED: Juju environment, agent and instance states are good, and Juju jenv file(s) exist for ${JENV_NAME}."
3528 exit 0
3529@@ -41,16 +42,17 @@
3530 echo " . CLEAR: Juju environment, agent and instance states not found, and Juju jenv file(s) do not exist for ${JENV_NAME}."
3531 exit 0
3532 elif [[ -z $good_instances ]] && [[ -z $bad_instances ]] && [[ -n "$jenvs" ]]; then
3533- echo " ! TEARDOWN-NEEDED: Funky state! Juju jenv file(s) exist, but there are no instances, and no bootstrapped environment for: ${JENV_NAME}."
3534+ msg=" ! TEARDOWN-NEEDED: Funky state! Juju jenv file(s) exist, but there are no instances, and no bootstrapped environment for: ${JENV_NAME}."
3535 echo "jenvs: ${jenvs}"
3536- exit 4
3537+ while true; do echo "ERROR 4 - Manual intervention required. Undercloud issue? ${msg}"; sleep 120; done
3538+# exit 4
3539 else
3540- echo " ! FAIL: Unknown state, need to debug or troubleshoot this node. Env name: ${JENV_NAME}"
3541- echo " Possibly a non-default juju environment deployed?"
3542+ msg=" ! FAIL: Unknown state, need to debug or troubleshoot this node. Env name: ${JENV_NAME}. Possibly a non-default juju environment deployed?"
3543 echo "1: ${JENV_NAME}"
3544 echo "2: ${bad_instances}"
3545 echo "3: ${good_instances}"
3546 echo "4: ${bad_states}"
3547 echo "5: ${jenvs}"
3548- exit 5
3549+ while true; do echo "ERROR 5 - Manual intervention required. Undercloud issue? ${msg}"; sleep 120; done
3550+# exit 5
3551 fi
3552
3553=== modified file 'job-parts/osci_job_common.sh'
3554--- job-parts/osci_job_common.sh 2015-07-24 18:13:21 +0000
3555+++ job-parts/osci_job_common.sh 2015-08-28 16:23:16 +0000
3556@@ -13,23 +13,42 @@
3557 function f_juju_determine_env_name() {
3558 # determine juju environment name to run with
3559 juju_enviro_file="${HOME}/.juju/environments.yaml"
3560- case "$JUJU_SOURCE" in
3561- $JUJU_STABLE)
3562- JENV_NAME="$(grep '^default:' ${juju_enviro_file} | cut -f2 -d ':' | xargs)"
3563- ;;
3564- $JUJU_PROPOSED)
3565- JENV_NAME="$(grep '.jprop:$' ${juju_enviro_file} | cut -f1 -d ':' | xargs)"
3566- ;;
3567- $JUJU_DEVEL)
3568- JENV_NAME="$(grep '.jdev:$' ${juju_enviro_file} | cut -f1 -d ':' | xargs)"
3569- ;;
3570- *)
3571- echo " ! Unknown JUJU_SOURCE value while determining jenv name."
3572- exit 1
3573- ;;
3574- esac
3575-
3576- # TO-DO: Insert MAAS env detection here.
3577+ if [[ "$MOJO_SPEC" != *metal* ]]; then
3578+ # Not bare metal
3579+ case "$JUJU_SOURCE" in
3580+ $JUJU_STABLE)
3581+ JENV_NAME="$(grep '^default:' ${juju_enviro_file} | head -n1 | cut -f2 -d ':' | xargs)"
3582+ ;;
3583+ $JUJU_PROPOSED)
3584+ JENV_NAME="$(grep '.jprop:$' ${juju_enviro_file} | head -n1 | cut -f1 -d ':' | xargs)"
3585+ ;;
3586+ $JUJU_DEVEL)
3587+ JENV_NAME="$(grep '.jdev:$' ${juju_enviro_file} | head -n1 | cut -f1 -d ':' | xargs)"
3588+ ;;
3589+ *)
3590+ echo " ! Unknown JUJU_SOURCE value while determining jenv name."
3591+ exit 1
3592+ ;;
3593+ esac
3594+ else
3595+ # Bare metal
3596+ echo " . Handling juju environment switcher for bare metal..."
3597+ case "$JUJU_SOURCE" in
3598+ $JUJU_STABLE)
3599+ JENV_NAME="$(grep "maas-${MOJO_SERIES}:$" ${juju_enviro_file} | head -n1 | cut -f1 -d ':' | xargs)"
3600+ ;;
3601+ $JUJU_PROPOSED)
3602+ JENV_NAME="$(grep .jprop:$ ${juju_enviro_file} | grep "maas-${MOJO_SERIES}" | head -n1 | cut -f1 -d ':' | xargs)"
3603+ ;;
3604+ $JUJU_DEVEL)
3605+ JENV_NAME="$(grep .jdev:$ ${juju_enviro_file} | grep "maas-${MOJO_SERIES}" | head -n1 | cut -f1 -d ':' | xargs)"
3606+ ;;
3607+ *)
3608+ echo " ! Unknown JUJU_SOURCE value while determining jenv name."
3609+ exit 1
3610+ ;;
3611+ esac
3612+ fi
3613
3614 # Validate as non-empty
3615 if [[ -z "$JENV_NAME" ]]; then
3616@@ -52,20 +71,21 @@
3617 case "$ret_code" in
3618 0)
3619 echo " . FYI - Deployment health (${PARAM1}) OK.";
3620-# Temporarily non-gating due to https://bugs.launchpad.net/bugs/1413540.
3621-# touch $WORKSPACE/fyi.deploy-health${PARAM1}.ok;
3622+ touch $WORKSPACE/fyi.deploy-health${PARAM1}.ok;
3623 ;;
3624 *)
3625- echo " ! FYI - Deployment health (${PARAM1}) BAD.";
3626-# Temporarily non-gating due to https://bugs.launchpad.net/bugs/1413540.
3627-# touch $WORKSPACE/fyi.deploy-health${PARAM1}.failed;
3628+ # Suppress error if running in the collection phase
3629+ if [[ "$PARAM1" != "-collect" ]]; then
3630+ echo " ! FYI - Deployment health (${PARAM1}) BAD.";
3631+ touch $WORKSPACE/fyi.deploy-health${PARAM1}.failed;
3632+ fi
3633 ;;
3634 esac
3635 }
3636
3637
3638 function f_node_sys_info() {
3639- echo "General node system info:"
3640+ f_line "General node system info"
3641 lsb_release -d
3642 uname -a
3643 uptime
3644@@ -124,6 +144,7 @@
3645 f_juju_source_set
3646 ${OSCI_ROOT}/job-parts/juju_bighammer_destroy.sh YES
3647 f_lxc_destroy_all
3648+ f_mojo_broom
3649 fi
3650 }
3651
3652@@ -146,6 +167,7 @@
3653 f_lxc_destroy_all
3654 ${OSCI_ROOT}/job-parts/juju_bighammer_destroy.sh YES
3655 f_juju_source_reset
3656+ f_mojo_broom
3657 fi
3658 f_juju_get_pkg_info juju-pkg-info-end.txt
3659 }
3660@@ -166,9 +188,8 @@
3661 function f_post_mp_comment() {
3662 # Post mp comment if triggered by a merge proposal
3663 if [[ -n "$MP_TRIGGER" ]]; then
3664- # Dry run, debug enabled, ftm.
3665 cd $OSCI_ROOT
3666- ./mp_comment.py || true
3667+ tools/mp_comment.py || true
3668 fi
3669 }
3670
3671@@ -254,7 +275,7 @@
3672 q_sstring_l=( "${sstring[@]/#/\"}" )
3673 q_sstring=( "${q_sstring_l[@]/%/\"}" )
3674 echo " . Running test from Makefile."
3675- cmd='${OSCI_ROOT}/make_exec.py Makefile '"${q_sstring[*]}"' 2>&1 | tee $WORKSPACE/${test}-test.$BUILD_NUMBER; ret_code=${PIPESTATUS[0]}'
3676+ cmd='${OSCI_ROOT}/tools/make_exec.py Makefile '"${q_sstring[*]}"' 2>&1 | tee $WORKSPACE/${test}-test.$BUILD_NUMBER; ret_code=${PIPESTATUS[0]}'
3677 echo $cmd
3678 eval $cmd
3679 echo "Returned: ${ret_code}"
3680@@ -386,22 +407,31 @@
3681 }
3682
3683
3684-function f_collect_charm_revnos() {
3685+function f_collect_asset_revnos() {
3686 # Collect charm branch revno info from O-C-T path
3687- echo "Collecting charm revno info (${tmp_file})..."
3688- [[ ! -d "$OPENSTACK_CHARM_TESTING_ROOT" ]] && { echo "Skipping, dir not found: ${OPENSTACK_CHARM_TESTING_ROOT}"; exit 0; }
3689-
3690- revno="$(bzr revno ${OPENSTACK_CHARM_TESTING_ROOT} || true)"
3691- echo "${OPENSTACK_CHARM_TESTING_ROOT}: ${revno}" | tee -a $WORKSPACE/charm-revnos.txt.$BUILD_NUMBER
3692- bzr info ${OPENSTACK_CHARM_TESTING_ROOT}/${UBUNTU_RELEASE}/${c} | egrep 'root|branch|checkout' | tee -a $WORKSPACE/charm-revnos.txt.$BUILD_NUMBER
3693- echo -e "\n" | tee -a $WORKSPACE/charm-revnos.txt.$BUILD_NUMBER
3694-
3695- [[ ! -d "${OPENSTACK_CHARM_TESTING_ROOT}/${UBUNTU_RELEASE}" ]] && { echo "Skipping charm revno collect, series dir not found."; exit 0; }
3696- for c in $(ls ${OPENSTACK_CHARM_TESTING_ROOT}/${UBUNTU_RELEASE} -1); do
3697- revno="$(bzr revno ${OPENSTACK_CHARM_TESTING_ROOT}/${UBUNTU_RELEASE}/${c} || true)"
3698- echo "${c}: ${revno}" 2>&1 | tee -a $WORKSPACE/charm-revnos.txt.$BUILD_NUMBER
3699- bzr info ${OPENSTACK_CHARM_TESTING_ROOT}/${UBUNTU_RELEASE}/${c} | egrep 'checkout of branch' | tee -a $WORKSPACE/charm-revnos.txt.$BUILD_NUMBER
3700- done
3701+ f_line "Collecting asset revno info"
3702+
3703+ if [[ -n "$CO_DIR" ]]; then
3704+ revno="$(bzr revno ${CO_DIR} || true)"
3705+ echo "${CO_DIR}: ${revno}" | tee -a $WORKSPACE/revnos.txt.$BUILD_NUMBER
3706+ bzr info ${CO_DIR} | egrep 'root|branch|checkout' | tee -a $WORKSPACE/revnos.txt.$BUILD_NUMBER
3707+ echo -e "\n" | tee -a $WORKSPACE/revnos.txt.$BUILD_NUMBER
3708+ fi
3709+
3710+ if [[ -d "${OPENSTACK_CHARM_TESTING_ROOT}/${UBUNTU_RELEASE}" ]]; then
3711+ revno="$(bzr revno ${OPENSTACK_CHARM_TESTING_ROOT} || true)"
3712+ echo "${OPENSTACK_CHARM_TESTING_ROOT}: ${revno}" | tee -a $WORKSPACE/revnos.txt.$BUILD_NUMBER
3713+ bzr info ${OPENSTACK_CHARM_TESTING_ROOT} | egrep 'root|branch|checkout' | tee -a $WORKSPACE/revnos.txt.$BUILD_NUMBER
3714+ echo -e "\n" | tee -a $WORKSPACE/revnos.txt.$BUILD_NUMBER
3715+
3716+ for c in $(ls ${OPENSTACK_CHARM_TESTING_ROOT}/${UBUNTU_RELEASE} -1); do
3717+ revno="$(bzr revno ${OPENSTACK_CHARM_TESTING_ROOT}/${UBUNTU_RELEASE}/${c} || true)"
3718+ echo "${c}: ${revno}" 2>&1 | tee -a $WORKSPACE/revnos.txt.$BUILD_NUMBER
3719+ bzr info ${OPENSTACK_CHARM_TESTING_ROOT}/${UBUNTU_RELEASE}/${c} | egrep 'checkout of branch' | tee -a $WORKSPACE/revnos.txt.$BUILD_NUMBER
3720+ done
3721+ else
3722+ echo " ! Skipping o-c-t/series/charm revno inspection, does not exist: ${OPENSTACK_CHARM_TESTING_ROOT}/${UBUNTU_RELEASE}"
3723+ fi
3724 }
3725
3726
3727@@ -413,6 +443,7 @@
3728 juju-deployer
3729 amulet
3730 charm-tools
3731+ mojo
3732 python-amqp
3733 python-ceilometerclient
3734 python-cinderclient
3735
3736=== modified file 'job-parts/osci_mojo_common.sh'
3737--- job-parts/osci_mojo_common.sh 2015-03-03 16:49:06 +0000
3738+++ job-parts/osci_mojo_common.sh 2015-08-28 16:23:16 +0000
3739@@ -2,6 +2,14 @@
3740 #
3741 # Common functions for UOSCI jobs, specific to mojo functionality.
3742
3743+function f_mojo_broom() {
3744+ if [[ -d "/srv/mojo/mojo-openstack-specs/" ]]; then
3745+ echo " - Purging /srv/mojo/mojo-openstack-specs ..."
3746+ rm -rf /srv/mojo/mojo-openstack-specs/*
3747+ fi
3748+}
3749+
3750+
3751 function f_mojo_install() {
3752 # Install or upgrade mojo
3753 echo "Installing or upgrading mojo..."
3754@@ -12,6 +20,8 @@
3755 echo " ! Mojo install failed."
3756 exit 1
3757 fi
3758+ echo "Mojo verison:"
3759+ mojo --version
3760 }
3761
3762
3763@@ -22,8 +32,8 @@
3764 touch $WORKSPACE/fyi-${test:0:4}.mojo-project-new.skipped
3765 else
3766 set -x
3767- sudo -E mojo project-new --series ${MOJO_SERIES} ${MOJO_PROJ} \
3768- 2>&1 | tee $WORKSPACE/mojo-project-new.$BUILD_NUMBER
3769+ sudo -E mojo project-new --series ${MOJO_SERIES} \
3770+ --container containerless ${MOJO_PROJ} 2>&1 | tee $WORKSPACE/mojo-project-new.$BUILD_NUMBER
3771 # Error trap
3772 if [[ "${PIPESTATUS[0]}" != "0" ]]; then
3773 echo " ! Failed to create new mojo project."
3774@@ -37,8 +47,8 @@
3775 function f_mojo_perms_workaround() {
3776 # Workaround for bug https://bugs.launchpad.net/mojo/+bug/1346873
3777 set -x
3778- sudo chmod 755 /var/lib/lxc/${MOJO_PROJ}.${MOJO_SERIES}
3779- sudo chmod 755 /var/lib/lxc
3780+ sudo chmod 755 /var/lib/lxc/${MOJO_PROJ}.${MOJO_SERIES} || true
3781+ sudo chmod 755 /var/lib/lxc || true
3782 set +x
3783 }
3784
3785@@ -46,7 +56,7 @@
3786 function f_mojo_new_workspace() {
3787 # Add mojo workspace.
3788 if [[ -n "$(ls $WORKSPACE -1 | egrep '.failed|.bad')" ]]; then
3789- echo " ! Skipping mojo workspacet-new, one or more preceding steps are failed or bad."
3790+ echo " ! Skipping mojo workspace-new, one or more preceding steps are failed or bad."
3791 touch $WORKSPACE/fyi-${test:0:4}.mojo-workspace-new.skipped
3792 else
3793 set -x
3794@@ -93,14 +103,15 @@
3795 echo " - Destroying all lxc containers:"
3796 for container in "$(sudo lxc-ls -1)"; do
3797 echo " - ${container}"
3798- sudo lxc-destroy --name ${container}
3799+ sudo lxc-destroy --name ${container} --force || true
3800+ sudo lxc-destroy --name ${container} --force || true
3801 done
3802
3803 # Confirm
3804- lxc_ls="$(sudo lxc-ls -1)"
3805- if [[ -n "$lxc_ls" ]]; then
3806- touch $WORKSPACE/fyi-${test:0:4}.${test}-lxc-destroy.failed
3807- fi
3808+# lxc_ls="$(sudo lxc-ls -1)"
3809+# if [[ -n "$lxc_ls" ]]; then
3810+# touch $WORKSPACE/fyi-${test:0:4}.${test}-lxc-destroy.failed
3811+# fi
3812 fi
3813 }
3814
3815
3816=== modified file 'job-parts/osci_tools_common.sh'
3817--- job-parts/osci_tools_common.sh 2015-05-01 13:03:11 +0000
3818+++ job-parts/osci_tools_common.sh 2015-08-28 16:23:16 +0000
3819@@ -10,6 +10,7 @@
3820 fi
3821 echo " + Creating new lightweight checkout of $OSCI_REPO @ $OSCI_ROOT."
3822 bzr co --lightweight $OSCI_REPO $OSCI_ROOT
3823+ echo "revno: $(bzr revno $OSCI_ROOT)"
3824 }
3825
3826
3827@@ -21,6 +22,7 @@
3828 fi
3829 echo " + Creating new lightweight checkout of $OPENSTACK_CHARM_TESTING_REPO @ $OPENSTACK_CHARM_TESTING_ROOT."
3830 bzr co --lightweight $OPENSTACK_CHARM_TESTING_REPO $OPENSTACK_CHARM_TESTING_ROOT
3831+ echo "revno: $(bzr revno $OPENSTACK_CHARM_TESTING_ROOT)"
3832 }
3833
3834
3835@@ -48,6 +50,7 @@
3836
3837
3838 function f_tools_refresh() {
3839+ f_line "Refreshing UOSCI & O-C-T branches..."
3840 f_tool_refresh_osci
3841 f_tool_refresh_oct
3842 }
3843@@ -62,5 +65,5 @@
3844 echo " ! Bundletester install failed."
3845 exit 1
3846 fi
3847-f_proxy_unset
3848+ f_proxy_unset
3849 }
3850
3851=== modified file 'job-parts/trigger_by_branch_scanner.sh'
3852--- job-parts/trigger_by_branch_scanner.sh 2015-01-28 06:06:57 +0000
3853+++ job-parts/trigger_by_branch_scanner.sh 2015-08-28 16:23:16 +0000
3854@@ -12,28 +12,28 @@
3855
3856 case "$TRIGGER_FINGER" in
3857 AUTO)
3858- ./scan_branches.py
3859+ tools/scan_branch_revs.py
3860 ;;
3861 AUTO_DRY_RUN)
3862- ./scan_branches.py -0 -d
3863+ tools/scan_branch_revs.py -0 -d
3864 ;;
3865 FORCE_AMULET_ONLY)
3866- ./scan_branches.py -F -N --XD --XL --XU
3867+ tools/scan_branch_revs.py -F -N --XD --XL --XU
3868 ;;
3869 FORCE_UNIT_ONLY)
3870- ./scan_branches.py -F -N --XD --XL --XA
3871+ tools/scan_branch_revs.py -F -N --XD --XL --XA
3872 ;;
3873 FORCE_DEPLOY_ONLY)
3874- ./scan_branches.py -F -N --XA --XL --XU
3875+ tools/scan_branch_revs.py -F -N --XA --XL --XU
3876 ;;
3877 FORCE_LINT_ONLY)
3878- ./scan_branches.py -F -N --XD --XA --XU
3879+ tools/scan_branch_revs.py -F -N --XD --XA --XU
3880 ;;
3881 FORCE_ALL)
3882- ./scan_branches.py -F -N
3883+ tools/scan_branch_revs.py -F -N
3884 ;;
3885 FORCE_ALL_DRY_RUN)
3886- ./scan_branches.py -F0d
3887+ tools/scan_branch_revs.py -F0d
3888 ;;
3889 *)
3890 echo "Unknown trigger option."
3891@@ -46,7 +46,6 @@
3892 # Echo build description regex pickup
3893 if [[ -f $WORKSPACE/branch-state.changed ]]; then
3894 echo "_:branch-state.changed"
3895- cat ${WORKSPACE}/branch-state.changed
3896 else
3897 echo "No changes detected."
3898 fi
3899
3900=== added file 'job-parts/trigger_by_mojo_group.sh'
3901--- job-parts/trigger_by_mojo_group.sh 1970-01-01 00:00:00 +0000
3902+++ job-parts/trigger_by_mojo_group.sh 2015-08-28 16:23:16 +0000
3903@@ -0,0 +1,144 @@
3904+#!/bin/bash -e
3905+#
3906+# Build script for triggering various groups of mojo specs
3907+
3908+. ${OSCI_ROOT}/job-parts/osci_job_common.sh
3909+f_skip_juju_lxc
3910+f_fresh_clean_start
3911+f_env_no_pass
3912+
3913+cd $OSCI_ROOT
3914+
3915+case "$TRIGGER_FINGER" in
3916+ HOT_NEXT_AND_STABLE_VIRTUAL_DEPLOY)
3917+ tools/trigger_mojo_group.py -s stable_deploy -H
3918+ tools/trigger_mojo_group.py -s next_deploy -H
3919+ ;;
3920+ HOT_NEXT_DEPLOY)
3921+ tools/trigger_mojo_group.py -s next_deploy -H
3922+ ;;
3923+ HOT_STABLE_DEPLOY)
3924+ tools/trigger_mojo_group.py -s stable_deploy -H
3925+ ;;
3926+ HOT_METAL)
3927+ tools/trigger_mojo_group.py -Ls baremetal -H
3928+ ;;
3929+ HOT_NEXT_DEPLOY_BAREMETAL)
3930+ tools/trigger_mojo_group.py -s next_deploy_baremetal -H
3931+ ;;
3932+ HOT_STABLE_DEPLOY_BAREMETAL)
3933+ tools/trigger_mojo_group.py -s stable_deploy_baremetal -H
3934+ ;;
3935+ HOT_NEXT_CHARMHELPER_SYNC)
3936+ tools/trigger_mojo_group.py -s charmhelper_upgrade -H
3937+ ;;
3938+ HOT_NEXT_CHARMHELPER_HA_SYNC)
3939+ tools/trigger_mojo_group.py -s charmhelper_upgrade_ha -H
3940+ ;;
3941+ HOT_CHARM_UPGRADE)
3942+ tools/trigger_mojo_group.py -s stable_to_next -H
3943+ ;;
3944+ HOT_CHARM_UPGRADE_HA)
3945+ tools/trigger_mojo_group.py -s stable_to_next_ha -H
3946+ ;;
3947+ HOT_OBJECT_STORAGE)
3948+ tools/trigger_mojo_group.py -g object_storage -H
3949+ ;;
3950+
3951+ HOT_ALL)
3952+ tools/trigger_mojo_group.py
3953+ ;;
3954+
3955+ ALL)
3956+ tools/trigger_mojo_group.py
3957+ ;;
3958+ NEXT_ALL)
3959+ tools/trigger_mojo_group.py
3960+ ;;
3961+ STABLE_ALL)
3962+ tools/trigger_mojo_group.py
3963+ ;;
3964+
3965+ ICEHOUSE_ALL)
3966+ tools/trigger_mojo_group.py -o icehouse
3967+ ;;
3968+ JUNO_ALL)
3969+ tools/trigger_mojo_group.py -o juno
3970+ ;;
3971+ KILO_ALL)
3972+ tools/trigger_mojo_group.py -o kilo
3973+ ;;
3974+ LIBERTY_ALL)
3975+ tools/trigger_mojo_group.py -o liberty
3976+ ;;
3977+
3978+ PRECISE_ALL)
3979+ tools/trigger_mojo_group.py -u precise
3980+ ;;
3981+ TRUSTY_ALL)
3982+ tools/trigger_mojo_group.py -u trusty
3983+ ;;
3984+ VIVID_ALL)
3985+ tools/trigger_mojo_group.py -u vivid
3986+ ;;
3987+ WILY_ALL)
3988+ tools/trigger_mojo_group.py -u wily
3989+ ;;
3990+
3991+ CHARM_UPGRADE)
3992+ tools/trigger_mojo_group.py
3993+ ;;
3994+ CHARM_UPGRADE_HA)
3995+ tools/trigger_mojo_group.py
3996+ ;;
3997+
3998+ NEXT_DEPLOY)
3999+ tools/trigger_mojo_group.py -s next_deploy
4000+ ;;
4001+ NEXT_DEPLOY_SSL)
4002+ tools/trigger_mojo_group.py -s next_deploy_ssl
4003+ ;;
4004+ NEXT_DEPLOY_BAREMETAL)
4005+ tools/trigger_mojo_group.py -s next_deploy_baremetal
4006+ ;;
4007+ NEXT_CHARMHELPER_SYNC)
4008+ tools/trigger_mojo_group.py -s charmhelper_upgrade
4009+ ;;
4010+ NEXT_CHARMHELPER_HA_SYNC)
4011+ tools/trigger_mojo_group.py -s charmhelper_upgrade_ha
4012+ ;;
4013+
4014+ STABLE_DEPLOY)
4015+ tools/trigger_mojo_group.py -s stable_deploy
4016+ ;;
4017+ STABLE_DEPLOY_BAREMETAL)
4018+ tools/trigger_mojo_group.py -s stable_deploy_baremetal
4019+ ;;
4020+ STABLE_CHARMHELPER_UPGRADE)
4021+ tools/trigger_mojo_group.py -s stable_to_next
4022+ ;;
4023+ STABLE_CHARMHELPER_HA_UPGRADE)
4024+ tools/trigger_mojo_group.py -s stable_to_next_ha
4025+ ;;
4026+
4027+ OBJECT_STORAGE)
4028+ tools/trigger_mojo_group.py -g object_storage
4029+ ;;
4030+
4031+ HA_PHASED)
4032+ tools/trigger_mojo_group.py -s ha_phased -u trusty
4033+ tools/trigger_mojo_group.py -s ha_phased -u vivid
4034+ ;;
4035+ HA_PHASED_CHAOS_PONY)
4036+ tools/trigger_mojo_group.py -s ha_phased_chaos_pony -u trusty
4037+ tools/trigger_mojo_group.py -s ha_phased_chaos_pony -u vivid
4038+ ;;
4039+
4040+ *)
4041+ echo "Unknown trigger option."
4042+ exit 1
4043+ ;;
4044+esac
4045+
4046+f_nice_finish
4047+f_check_fail
4048
4049=== modified file 'job-parts/trigger_by_mp_scanner.sh'
4050--- job-parts/trigger_by_mp_scanner.sh 2015-01-28 06:06:57 +0000
4051+++ job-parts/trigger_by_mp_scanner.sh 2015-08-28 16:23:16 +0000
4052@@ -12,28 +12,28 @@
4053
4054 case "$TRIGGER_FINGER" in
4055 AUTO)
4056- ./scan_merge_props.py
4057+ tools/scan_merge_props.py
4058 ;;
4059 AUTO_DRY_RUN)
4060- ./scan_merge_props.py -0 -d
4061+ tools/scan_merge_props.py -0 -d
4062 ;;
4063 FORCE_AMULET_ONLY)
4064- ./scan_merge_props.py -F -N --XD --XL --XU -d
4065+ tools/scan_merge_props.py -F -N --XD --XL --XU -d
4066 ;;
4067 FORCE_UNIT_ONLY)
4068- ./scan_merge_props.py -F -N --XD --XL --XA -d
4069+ tools/scan_merge_props.py -F -N --XD --XL --XA -d
4070 ;;
4071 FORCE_DEPLOY_ONLY)
4072- ./scan_merge_props.py -F -N --XA --XL --XU -d
4073+ tools/scan_merge_props.py -F -N --XA --XL --XU -d
4074 ;;
4075 FORCE_LINT_ONLY)
4076- ./scan_merge_props.py -F -N --XD --XA --XU -d
4077+ tools/scan_merge_props.py -F -N --XD --XA --XU -d
4078 ;;
4079 FORCE_ALL)
4080- ./scan_merge_props.py -F -N -d
4081+ tools/scan_merge_props.py -F -N -d
4082 ;;
4083 FORCE_ALL_DRY_RUN)
4084- ./scan_merge_props.py -F0d
4085+ tools/scan_merge_props.py -F0d
4086 ;;
4087 *)
4088 echo "Unknown trigger option."
4089@@ -46,7 +46,6 @@
4090 # Echo build description regex pickup
4091 if [[ -f $WORKSPACE/mp-state.changed ]]; then
4092 echo "_:mp-state.changed"
4093- cat ${WORKSPACE}/mp-state.changed
4094 else
4095 echo "No changes detected."
4096 fi
4097
4098=== modified file 'populate/mappings.yaml'
4099--- populate/mappings.yaml 2015-07-24 18:13:21 +0000
4100+++ populate/mappings.yaml 2015-08-28 16:23:16 +0000
4101@@ -21,6 +21,37 @@
4102 sandbox-lp-branch-url: 'lp:ubuntu-openstack-ci'
4103 sandbox-mp-url: None
4104
4105+# ubuntu-to-openstack supported release map
4106+# used to calculate test coverage
4107+u-os-map:
4108+ precise:
4109+ - icehouse
4110+ trusty:
4111+ - icehouse
4112+ - juno
4113+ - kilo
4114+# - liberty
4115+ vivid:
4116+ - kilo
4117+# wily:
4118+# - liberty
4119+
4120+# the things we care most about right now
4121+hot:
4122+# precise:
4123+# - icehouse
4124+ trusty:
4125+ - icehouse
4126+ - kilo
4127+ vivid:
4128+ - kilo
4129+
4130+# openstack installation sources
4131+inst-sources:
4132+ - default
4133+ - staging
4134+ - proposed
4135+
4136 # merge proposal status to trigger tests
4137 mp-status-filter:
4138 - 'Needs review'
4139@@ -33,21 +64,25 @@
4140 # - 'Superseded'
4141
4142 # branches to watch for revision bumps
4143+# optionally append #NODEPLOY to not trigger deployments
4144+# Optional tags: #NODEPLOY #NOLINT #NOUNIT #NOAMULET
4145+# Non-charm branches will not trigger deploy and amulet tests.
4146+# Charms not used in the next/default bundles are flagged NODEPLOY.
4147 trigger-branches:
4148 - lp:~openstack-charmers/charms/trusty/ceilometer-agent/next
4149 - lp:~openstack-charmers/charms/trusty/ceilometer/next
4150 - lp:~openstack-charmers/charms/trusty/ceph/next
4151- - lp:~openstack-charmers/charms/trusty/ceph-osd/next
4152- - lp:~openstack-charmers/charms/trusty/ceph-radosgw/next
4153+ - lp:~openstack-charmers/charms/trusty/ceph-osd/next#NODEPLOY
4154+ - lp:~openstack-charmers/charms/trusty/ceph-radosgw/next#NODEPLOY
4155 - lp:~openstack-charmers/charms/trusty/cinder-ceph/next
4156 - lp:~openstack-charmers/charms/trusty/cinder/next
4157 - lp:~openstack-charmers/charms/trusty/glance/next
4158- - lp:~openstack-charmers/charms/trusty/hacluster/next
4159+ - lp:~openstack-charmers/charms/trusty/hacluster/next#NODEPLOY
4160 - lp:~openstack-charmers/charms/trusty/heat/next
4161 - lp:~openstack-charmers/charms/trusty/keystone/next
4162 - lp:~openstack-charmers/charms/trusty/neutron-api/next
4163 - lp:~openstack-charmers/charms/trusty/neutron-openvswitch/next
4164- - lp:~openstack-charmers/charms/trusty/nova-cell/next
4165+ - lp:~openstack-charmers/charms/trusty/nova-cell/next#NODEPLOY
4166 - lp:~openstack-charmers/charms/trusty/nova-cloud-controller/next
4167 - lp:~openstack-charmers/charms/trusty/nova-compute/next
4168 - lp:~openstack-charmers/charms/trusty/openstack-dashboard/next
4169@@ -59,12 +94,12 @@
4170 - lp:charms/trusty/ceilometer
4171 - lp:charms/trusty/ceilometer-agent
4172 - lp:charms/trusty/ceph
4173- - lp:charms/trusty/ceph-osd
4174- - lp:charms/trusty/ceph-radosgw
4175+ - lp:charms/trusty/ceph-osd#NODEPLOY
4176+ - lp:charms/trusty/ceph-radosgw#NODEPLOY
4177 - lp:charms/trusty/cinder-ceph
4178 - lp:charms/trusty/cinder
4179 - lp:charms/trusty/glance
4180- - lp:charms/trusty/hacluster
4181+ - lp:charms/trusty/hacluster#NODEPLOY
4182 - lp:charms/trusty/heat
4183 - lp:charms/trusty/keystone
4184 - lp:charms/trusty/mongodb
4185@@ -75,11 +110,14 @@
4186 - lp:charms/trusty/nova-compute
4187 - lp:charms/trusty/openstack-dashboard
4188 - lp:charms/trusty/percona-cluster
4189- - lp:charms/trusty/quantum-gateway
4190+# - lp:charms/trusty/quantum-gateway#NODEPLOY#NOAMULET
4191 - lp:charms/trusty/rabbitmq-server
4192 - lp:charms/trusty/swift-proxy
4193 - lp:charms/trusty/swift-storage
4194-
4195+ - lp:ubuntu-openstack-ci#NOUNIT
4196+ - lp:charms/trusty/ubuntu#NODEPLOY#NOUNIT
4197+ - lp:charms/trusty/memcached#NODEPLOY
4198+ - lp:~ost-maintainers/openstack-mojo-specs/mojo-openstack-specs#NOUNIT
4199 # deployment set to trigger when ANY trigger branch change is detected
4200 # in relation to deployer bundles in the openstack-charm-testing branch
4201 trigger-deployments:
4202@@ -89,7 +127,6 @@
4203 - trusty-juno
4204 - trusty-kilo
4205 # - trusty-liberty
4206-# - utopic-juno
4207 - vivid-kilo
4208 # - wily-liberty
4209 next.yaml:
4210@@ -98,7 +135,6 @@
4211 - trusty-juno
4212 - trusty-kilo
4213 # - trusty-liberty
4214-# - utopic-juno
4215 - vivid-kilo
4216 # - wily-liberty
4217
4218@@ -106,11 +142,10 @@
4219 # the merge-proposed branch will be substituted for the target branch
4220 mp-trigger-deployments:
4221 next.yaml:
4222- - precise-icehouse
4223+# - precise-icehouse
4224 - trusty-icehouse
4225- - trusty-juno
4226+# - trusty-juno
4227 - trusty-kilo
4228-# - utopic-juno
4229 - vivid-kilo
4230 # default.yaml:
4231 # disabled as uosci runner only substitutes next branch strings currently
4232@@ -118,7 +153,6 @@
4233 # - trusty-icehouse
4234 # - trusty-juno
4235 # - trusty-kilo
4236-# - utopic-juno
4237 # - vivid-kilo
4238
4239 # controls pass/fail detection for MP commentary
4240@@ -159,3 +193,24 @@
4241 - 'fyi-depl.*.failed'
4242 - 'fyi-depl.*.missing'
4243 # - 'fyi-depl.*.bad'
4244+
4245+# (u-os-map x inst-sources) gets applied and iterated to each mojo group:
4246+mojo-spec-groups:
4247+ full_stack:
4248+ - charmhelper_upgrade
4249+ - charmhelper_upgrade_ha
4250+ - ha_phased
4251+ - ha_phased_chaos_pony
4252+ - next_deploy
4253+ - next_deploy_baremetal
4254+ - next_deploy_ssl
4255+ - stable_deploy
4256+ - stable_deploy_baremetal
4257+ - stable_to_next
4258+ - stable_to_next_ha
4259+ object_storage:
4260+ - ceph_radosgw/ha
4261+ - ceph_radosgw/simple_nonha
4262+ - swift_proxy/ha
4263+ - swift_proxy/simple_nonha
4264+
4265
4266=== added file 'populate/mojo-properties.tmpl'
4267--- populate/mojo-properties.tmpl 1970-01-01 00:00:00 +0000
4268+++ populate/mojo-properties.tmpl 2015-08-28 16:23:16 +0000
4269@@ -0,0 +1,3 @@
4270+MOJO_SPEC={{mojo_spec}}
4271+MOJO_SERIES={{mojo_series}}
4272+DISPLAY_NAME={{display_name}}
4273
4274=== modified file 'tools/find_replace.py'
4275--- tools/find_replace.py 2015-07-10 21:11:38 +0000
4276+++ tools/find_replace.py 2015-08-28 16:23:16 +0000
4277@@ -78,9 +78,9 @@
4278 logging.warning('Output file exists and will be '
4279 'overwritten: {}'.format(opts.out_file))
4280 elif os.path.isfile(opts.out_file) and not opts.overwrite:
4281- logging.warning('Output file exists and will NOT '
4282- 'be overwritten: {}'.format(opts.out_file))
4283- raise ValueError('Output file exists, overwrite option not set.')
4284+ logging.error('Output file exists and will NOT '
4285+ 'be overwritten: {}'.format(opts.out_file))
4286+ sys.exit(1)
4287
4288 if opts.in_file:
4289 if os.path.isfile(opts.in_file):
4290@@ -106,9 +106,11 @@
4291 out_file.writelines(out_lines)
4292 logging.info('replaced {} lines'.format(found))
4293 else:
4294- raise ValueError('No matches found, output file not written.')
4295+ logging.error('No matches found, output file not written.')
4296+ sys.exit(1)
4297 else:
4298- raise ValueError('Input file not found: {}'.format(opts.in_file))
4299+ logging.error('Input file not found: {}'.format(opts.in_file))
4300+ sys.exit(1)
4301
4302
4303 if __name__ == '__main__':
4304
4305=== modified file 'tools/juju_pull_logs.py'
4306--- tools/juju_pull_logs.py 2015-07-10 21:11:38 +0000
4307+++ tools/juju_pull_logs.py 2015-08-28 16:23:16 +0000
4308@@ -4,20 +4,13 @@
4309 else store in local temp directory.
4310 '''
4311 import os
4312-import subprocess
4313 import logging
4314-import tempfile
4315 import sys
4316 sys.path.insert(1, os.path.join(sys.path[0], '..'))
4317-from common import osci_utils
4318+from common import osci_utils as u
4319
4320 # Set default logging level
4321-logging.basicConfig(level=logging.INFO)
4322-
4323-try:
4324- WORKSPACE = os.environ['WORKSPACE']
4325-except KeyError:
4326- WORKSPACE = tempfile.mkdtemp()
4327+logging.basicConfig(level=logging.DEBUG)
4328
4329
4330 def run_cmds(cmds, fatal=False, dry_run=False, suppress=True):
4331@@ -25,7 +18,7 @@
4332 due to piping and redirection.
4333 '''
4334
4335- if len(cmds) == 0:
4336+ if not cmds:
4337 return False
4338
4339 all_passed = True
4340@@ -39,10 +32,10 @@
4341 ret = os.system(cmd)
4342
4343 # Handle exit code and fatal flag
4344- if fatal and ret != 0:
4345+ if fatal and ret:
4346 logging.warn('Aborting on failed command.')
4347 sys.exit(1)
4348- elif not fatal and ret != 0:
4349+ elif not fatal and ret:
4350 all_passed = False
4351 logging.warn('Ignoring failed command.')
4352
4353@@ -57,15 +50,12 @@
4354 '''
4355
4356 logging.info('Ubuntu OSCI Juju Log Puller')
4357- logging.info('Workspace dir: {}'.format(WORKSPACE))
4358- pkey = os.path.expanduser('~/.juju/ssh/juju_id_rsa')
4359+ logging.info('Workspace dir: {}'.format(u.WORKSPACE))
4360+# pkey = os.path.expanduser('~/.juju/ssh/juju_id_rsa')
4361 all_collected = True
4362
4363 # Determine output directory
4364- try:
4365- log_dir = os.path.join(os.environ['WORKSPACE'], 'logs')
4366- except KeyError:
4367- log_dir = os.path.join(tempfile.mkdtemp(), 'logs')
4368+ log_dir = os.path.join(u.WORKSPACE, 'logs')
4369
4370 if not os.path.exists(log_dir):
4371 os.makedirs(log_dir)
4372@@ -73,14 +63,22 @@
4373 logging.info('Logs dir: {}'.format(log_dir))
4374
4375 # Get juju status data
4376- try:
4377- j_stat = osci_utils.juju_stat()
4378- except subprocess.CalledProcessError:
4379- logging.error('Could not get juju status.')
4380+ j_stat = u.juju_stat()
4381+
4382+ # Basic jstat data validation
4383+ if not j_stat:
4384+ logging.info('No action taken. Exiting cleanly, '
4385+ 'presuming not bootstrapped.')
4386+ sys.exit(0)
4387+ elif j_stat and 'machines' not in j_stat.keys() or \
4388+ 'services' not in j_stat.keys():
4389+ logging.error('No juju status data to inspect, although '
4390+ 'an environment appears to be bootstrapped.')
4391 sys.exit(1)
4392
4393 # Add bootstrap machine to units dict
4394 found_bootstrap_node = False
4395+
4396 for machine, mach_data in j_stat['machines'].iteritems():
4397 if 'state-server-member-status' in mach_data:
4398 if mach_data['state-server-member-status'] == 'has-vote':
4399@@ -110,14 +108,19 @@
4400 clean_name = unit.replace('/', '-')
4401 machine_num = unit_data['machine']
4402
4403- if 'instance-id' in j_stat['machines'][machine_num]:
4404+ # Get nova console logs if instance is nova
4405+ if machine_num in j_stat['machines'] and \
4406+ 'instance-id' in j_stat['machines'][machine_num]:
4407 instance_id = j_stat['machines'][machine_num]['instance-id']
4408- cmds.append('nova console-log {} | bzip2 -9z | tee {}/{}'
4409- '-nova-console-{}.bz2'.format(
4410- instance_id,
4411- log_dir,
4412- clean_name,
4413- unit_data['machine']))
4414+ logging.info('Instance id for {}: {}'.format(machine_num,
4415+ instance_id))
4416+ if 'MAAS' not in instance_id:
4417+ cmds.append('nova console-log {} | bzip2 -9z | tee {}/{}'
4418+ '-nova-console-{}.bz2'.format(
4419+ instance_id,
4420+ log_dir,
4421+ clean_name,
4422+ unit_data['machine']))
4423
4424 # Temporarily disabled
4425 # if unit_data['agent-state'] != 'started':
4426@@ -126,28 +129,38 @@
4427 # all_collected = False
4428 # continue
4429
4430- if 'public-address' in unit_data.keys():
4431+# Check if ssh works before attempting to juju ssh
4432+# !Buggy! - paramiko old version
4433+# if 'public-address' in unit_data.keys():
4434 # SSH command check on unit's host address
4435 # Don't try to "juju ssh" to a unit that is defunct.
4436- host = unit_data['public-address']
4437- ret = osci_utils.func_timeout(
4438- timeout=10,
4439- func_call=osci_utils.ssh_command_check,
4440- kwargs={'host': host,
4441- 'username': 'ubuntu',
4442- 'pkey': pkey})
4443-
4444- if not ret:
4445- logging.warn('SSH command check failed for unit {} ({}), '
4446- 'not pulling its logs.'.format(unit, host))
4447- all_collected = False
4448- continue
4449+# host = unit_data['public-address']
4450+# logging.info('Host, key: {}, {}'.format(host, pkey))
4451+# ret = u.func_timeout(
4452+# timeout=10,
4453+# func_call=u.ssh_command_check,
4454+# kwargs={'host': host,
4455+# 'username': 'ubuntu',
4456+# 'pkey': pkey})
4457+#
4458+# if not ret:
4459+# logging.warn('SSH command check failed for unit {} ({}), '
4460+# 'not pulling its logs.'.format(unit, host))
4461+# all_collected = False
4462+# continue
4463
4464 cmds.append('juju ssh {} sudo tar -cjf '
4465 '/home/ubuntu/{}-var-log.tar.bz2 /var/log'.format(
4466 unit,
4467 clean_name))
4468
4469+ cmds.append('juju ssh {} sudo tar -cjf '
4470+ '/home/ubuntu/{}-etc.tar.bz2 /etc '
4471+ '--exclude="/etc/X11" --exclude="/etc/ssl" '
4472+ '--exclude="/etc/ssh" --exclude="shadow"'.format(
4473+ unit,
4474+ clean_name))
4475+
4476 cmds.append('juju ssh {} "dpkg -l | bzip2 -9z > '
4477 '/home/ubuntu/{}-dpkg-list.bz2"'.format(unit,
4478 clean_name))
4479@@ -156,19 +169,21 @@
4480 ' {}'.format(unit, log_dir))
4481
4482 # Run!
4483- fail_me = False
4484+ failed = False
4485 ret = run_cmds(cmds, dry_run=False)
4486
4487 # Final validation
4488 if not ret:
4489- logging.error('One or more commands failed')
4490- fail_me = True
4491+ logging.error('One or more commands failed.')
4492+ failed = True
4493
4494 if not all_collected:
4495 logging.error('One or more units were not reachable.')
4496- fail_me = True
4497+ failed = True
4498
4499- if fail_me:
4500+ if not failed:
4501+ logging.info('Unit log collection appeared to go well. Good day.')
4502+ else:
4503 sys.exit(1)
4504
4505
4506
4507=== renamed file 'make_exec.py' => 'tools/make_exec.py'
4508--- make_exec.py 2015-04-03 21:39:41 +0000
4509+++ tools/make_exec.py 2015-08-28 16:23:16 +0000
4510@@ -4,14 +4,16 @@
4511 makefile and execute it.
4512 '''
4513
4514+import collections
4515 import optparse
4516 import logging
4517-import yaml
4518 import os
4519+import subprocess
4520 import sys
4521-import tempfile
4522-import subprocess
4523-from common import osci_utils
4524+import yaml
4525+
4526+sys.path.insert(1, os.path.join(sys.path[0], '..'))
4527+from common import osci_utils as u
4528
4529 USAGE = '''Usage: %prog [options] MAKEFILENAME STRING1 [STRING2 STRING3]
4530
4531@@ -35,57 +37,49 @@
4532 '''
4533
4534
4535-try:
4536- WORKSPACE = os.environ['WORKSPACE']
4537-except KeyError:
4538- WORKSPACE = tempfile.mkdtemp()
4539-
4540-
4541 def makefile_to_dict(file_name):
4542 '''A rough little Makefile parser, to return a dictionary
4543 of make targets and subsequent commands.
4544 '''
4545
4546- _lines = osci_utils.read_file(file_name)
4547- if _lines:
4548- if len(_lines) == 0:
4549- return False
4550- else:
4551+ # Read the Makefile into a list of lines
4552+ lines = u.read_file(file_name)
4553+ if not lines:
4554 return False
4555
4556+ # Rough Makefile parser
4557 found_target, found_cmd = False, False
4558- _data = {}
4559- _cmds = []
4560- for _this_line in _lines:
4561- _line = _this_line.strip()
4562- _target = False
4563- if len(_line) != 0 and _line[0] != '#':
4564- if _this_line[0] != '\t' and ':' in _line:
4565+ _d = collections.OrderedDict()
4566+ cmds = []
4567+ for this_line in lines:
4568+ line = this_line.strip()
4569+ target = False
4570+ if len(line) != 0 and line[0] != '#':
4571+ if this_line[0] != '\t' and ':' in line:
4572 # Makefile target name found
4573- _target = _line.split(':')[0]
4574- _cmds = []
4575+ target = line.split(':')[0]
4576+ cmds = []
4577 found_target = True
4578- elif _this_line[0] == '\t':
4579+ elif this_line[0] == '\t':
4580 # Makefile command found
4581- _cmds.append(_line)
4582+ cmds.append(line)
4583 found_cmd = True
4584- if _target:
4585+ if target:
4586 # Add to dict with target name as key
4587- _data[_target] = _cmds
4588+ _d[target] = cmds
4589
4590 if found_target and found_cmd:
4591- return _data
4592+ return _d
4593 else:
4594 if not found_target:
4595- logging.debug('Found no apparent make target name(s)')
4596+ logging.debug('Found no make target name(s)')
4597 if not found_cmd:
4598- logging.debug('Found no apparent make target command(s)')
4599+ logging.debug('Found no target command(s)')
4600 return False
4601
4602
4603 def make_target(target, mf_filename):
4604- '''Call make target
4605- '''
4606+ '''Call make target'''
4607 cmd = 'make -f {} {}'.format(mf_filename, target)
4608 logging.info('command: {}'.format(cmd))
4609 cmd_split = cmd.split(' ')
4610@@ -105,8 +99,7 @@
4611
4612
4613 def main():
4614- '''Define and handle command line parameters
4615- '''
4616+ '''Define and handle command line parameters'''
4617 # Define command line options
4618 parser = optparse.OptionParser(USAGE)
4619 parser.add_option("-d", "--debug",
4620@@ -127,7 +120,7 @@
4621 logging.debug('parse args: {}'.format(args))
4622 else:
4623 logging.basicConfig(level=logging.INFO)
4624- logging.info('Workspace dir: {}'.format(WORKSPACE))
4625+ logging.info('Workspace dir: {}'.format(u.WORKSPACE))
4626
4627 # Validate arguments
4628 if len(args) < 2:
4629@@ -136,7 +129,7 @@
4630 parser.print_help()
4631 sys.exit(1)
4632
4633- # Read Makefile into dictionary
4634+ # Read Makefile into an ordered dictionary
4635 mf_filename = args[0]
4636 logging.info('Reading file: {}'.format(mf_filename))
4637 mf_data = makefile_to_dict(mf_filename)
4638@@ -149,7 +142,7 @@
4639 logging.debug('Makefile dict data:\n{}'.format(
4640 yaml.dump(mf_data, default_flow_style=False)))
4641
4642- # Search Makefile dict data for string in commands
4643+ # Search Makefile targets for matching string in commands
4644 mf_sstrings = args[1:]
4645 logging.info('Searching for: {}'.format(mf_sstrings))
4646 tgt_matches = []
4647@@ -159,10 +152,10 @@
4648 if mf_sstring in cmd and target not in tgt_matches:
4649 tgt_matches.append(target)
4650 break
4651- num_matches = len(tgt_matches)
4652
4653 # Handle matches
4654- if num_matches != 0:
4655+ if tgt_matches:
4656+ num_matches = len(tgt_matches)
4657 logging.debug('Found {} target match(es), first '
4658 'found wins: {}'.format(num_matches, tgt_matches[0]))
4659 logging.debug('Matches:\n{}'.format(tgt_matches))
4660
4661=== renamed file 'mp_comment.py' => 'tools/mp_comment.py'
4662--- mp_comment.py 2015-01-07 19:32:26 +0000
4663+++ tools/mp_comment.py 2015-08-28 16:23:16 +0000
4664@@ -11,7 +11,9 @@
4665 import sys
4666 import tempfile
4667 from glob import glob
4668-from common import osci_utils
4669+
4670+sys.path.insert(1, os.path.join(sys.path[0], '..'))
4671+from common import osci_utils as u
4672
4673 USAGE = '''Usage: %prog [options]
4674
4675@@ -32,11 +34,6 @@
4676
4677
4678 try:
4679- WORKSPACE = os.environ['WORKSPACE']
4680-except KeyError:
4681- WORKSPACE = tempfile.mkdtemp()
4682-
4683-try:
4684 MPC_SILENT = os.environ['MPC_SILENT']
4685 except KeyError:
4686 MPC_SILENT = False
4687@@ -78,9 +75,9 @@
4688
4689 templates_dir = 'populate'
4690 for idx, context in enumerate(contexts):
4691- target = os.path.join(WORKSPACE, out_file.format(idx))
4692+ target = os.path.join(u.WORKSPACE, out_file.format(idx))
4693 logging.info('Rendering file: {}'.format(target))
4694- osci_utils.render(source, target, context, templates_dir)
4695+ u.render(source, target, context, templates_dir)
4696 return target
4697
4698
4699@@ -116,9 +113,9 @@
4700 else:
4701 logging.basicConfig(level=logging.INFO)
4702
4703- logging.info('Workspace dir: {}'.format(WORKSPACE))
4704+ logging.info('Workspace dir: {}'.format(u.WORKSPACE))
4705
4706- conf_map = osci_utils.read_yaml(osci_utils.MAP_FILE)
4707+ conf_map = u.read_yaml(u.MAP_FILE)
4708
4709 # gather info and results for comment
4710 logging.info('Gathering env var items')
4711@@ -146,7 +143,7 @@
4712 try_files = []
4713 logging.debug('Checking for {} try files'.format(trigger_test))
4714 for try_mask in tt_attrs['try-mask']:
4715- these_try_files = glob(os.path.join(WORKSPACE, try_mask))
4716+ these_try_files = glob(os.path.join(u.WORKSPACE, try_mask))
4717 try_files.extend(these_try_files)
4718 if len(try_files) > 0:
4719 something_ran = True
4720@@ -162,7 +159,7 @@
4721 passed = True
4722 for fail_mask in tt_attrs['fail-mask']:
4723 logging.debug('Checking fail mask: {}'.format(fail_mask))
4724- fyis = glob(os.path.join(WORKSPACE, fail_mask))
4725+ fyis = glob(os.path.join(u.WORKSPACE, fail_mask))
4726 if len(fyis) > 0:
4727 passed = False
4728 logging.debug('Found {} fyi file(s)'.format(trigger_test))
4729@@ -187,13 +184,13 @@
4730 this_result = []
4731 logging.debug('Checking result mask for {}'.format(trigger_test))
4732 for res_mask in tt_attrs['result-mask']:
4733- these_res_files = glob(os.path.join(WORKSPACE, res_mask))
4734+ these_res_files = glob(os.path.join(u.WORKSPACE, res_mask))
4735 res_files.extend(these_res_files)
4736 if len(res_files) > 0:
4737 logging.info('Found {} results file(s)'.format(trigger_test))
4738 # handle results files
4739 for res_file in res_files:
4740- pbs[res_file] = osci_utils.pb_it(res_file)
4741+ pbs[res_file] = u.pb_it(res_file)
4742 logging.debug('pastebin for {}: {}'.format(res_file,
4743 pbs[res_file]))
4744 llimit = conf_map['mp-conf']['line-limit']
4745@@ -236,8 +233,15 @@
4746 params=params)
4747
4748 # read mp comment file and display to console
4749- subject = '[UOSCI] {} test result for {}'.format('/'.join(trigger_tests),
4750- DISPLAY_NAME)
4751+ if passed:
4752+ subject_result = "PASS"
4753+ else:
4754+ subject_result = "FAIL"
4755+
4756+ subject = '[UOSCI] {}: {} test, {}'.format(subject_result,
4757+ '/'.join(trigger_tests),
4758+ DISPLAY_NAME)
4759+
4760 logging.debug('Subject: {}'.format(subject))
4761 f = open(comment_filename, 'r')
4762 comment = f.read()
4763@@ -268,16 +272,16 @@
4764 if not opts.dry and not opts.no_post and not MPC_SILENT:
4765 # post mp comment
4766 logging.debug('Connecting to LP via API')
4767- launchpad = osci_utils.lpl_connect(anonymous=False)
4768+ launchpad = u.lpl_connect(anonymous=False)
4769 logging.debug('Looking up MP object from LP API')
4770 try:
4771- mp = osci_utils.lpl_get_mp(launchpad, mp_url, lp_branch_url)
4772+ mp = u.lpl_get_mp(launchpad, mp_url, lp_branch_url)
4773 except (AttributeError, TypeError):
4774 logging.error('Merge proposal not found for '
4775 '{} on {}'.format(mp_url, lp_branch_url))
4776 sys.exit(1)
4777 logging.info('Posting comment to {}'.format(mp_url))
4778- osci_utils.lpl_mp_post_comment(launchpad, mp, subject, comment)
4779+ u.lpl_mp_post_comment(launchpad, mp, subject, comment)
4780 else:
4781 logging.info('Not posting comment due to options')
4782
4783
4784=== modified file 'tools/nova_instances_summarize.py'
4785--- tools/nova_instances_summarize.py 2015-07-10 21:11:38 +0000
4786+++ tools/nova_instances_summarize.py 2015-08-28 16:23:16 +0000
4787@@ -3,33 +3,16 @@
4788 local default juju environment name, and writes a summary yaml text file.
4789 '''
4790
4791+import logging
4792 import os
4793 import sys
4794-import yaml
4795-import logging
4796-import tempfile
4797 from novaclient import client as nv_client
4798 sys.path.insert(1, os.path.join(sys.path[0], '..'))
4799-from common import osci_utils
4800+from common import osci_utils as u
4801
4802 # Set default logging level
4803 logging.basicConfig(level=logging.INFO)
4804
4805-try:
4806- WORKSPACE = os.environ['WORKSPACE']
4807-except KeyError:
4808- WORKSPACE = tempfile.mkdtemp()
4809-
4810-try:
4811- JENV_NAME = os.environ['JENV_NAME']
4812-except KeyError:
4813- JENV_NAME = None
4814-
4815-try:
4816- BUILD_NUMBER = os.environ['BUILD_NUMBER']
4817-except KeyError:
4818- BUILD_NUMBER = '000'
4819-
4820
4821 def summarize_nova_instances(creds, name_substr=''):
4822 '''Gather info about nova instances, optionally filtered by
4823@@ -66,7 +49,7 @@
4824 'img-id': str(server.image['id']),
4825 'img-name': img_name,
4826 'img-date': img_date,
4827- 'net': osci_utils.dict_unicode_to_str(server.addresses)
4828+ 'net': u.dict_unicode_to_str(server.addresses)
4829 }
4830
4831 logging.info('Instance count (all): {}'.format(len(servers)))
4832@@ -77,13 +60,13 @@
4833 def write_instance_summary_file(inst_summs):
4834 '''Write out instance summary data to yaml txt file
4835 '''
4836- out_file = 'nova-instance-summary.{}'.format(BUILD_NUMBER)
4837- target = os.path.join(WORKSPACE, out_file)
4838+ out_file = 'nova-instance-summary.{}'.format(u.BUILD_NUMBER)
4839+ target = os.path.join(u.WORKSPACE, out_file)
4840 logging.info(' + Creating nova instance summary file: {}'.format(target))
4841- osci_utils.write_yaml(inst_summs, target)
4842+ u.write_yaml(inst_summs, target)
4843
4844 # Quick confirmation of file success
4845- test_file = osci_utils.read_yaml(target)
4846+ test_file = u.read_yaml(target)
4847 if len(inst_summs) != len(test_file):
4848 msg = ' ! Instance summary file data may not be complete.'
4849 return msg
4850@@ -93,14 +76,18 @@
4851 '''Gather nova info about current nova instances, create summary file.
4852 '''
4853
4854- print 'Starting nova_instances_summarize.'
4855- logging.info('Workspace dir: {}'.format(WORKSPACE))
4856- creds = osci_utils.get_os_creds()
4857+ logging.info('UOSCI Nova Instance Summarizer')
4858+ logging.info('WORKSPACE dir: {}'.format(u.WORKSPACE))
4859+
4860+ creds = u.get_os_creds()
4861+ if not creds:
4862+ logging.error('Did you source novarc?')
4863+ sys.exit(1)
4864
4865 # get summary of matching nova instances
4866- inst_summs = summarize_nova_instances(creds, name_substr=JENV_NAME)
4867- logging.debug('instance summary data: \n{}'.format(
4868- yaml.dump(inst_summs, default_flow_style=False)))
4869+ inst_summs = summarize_nova_instances(creds, name_substr=u.JENV_NAME)
4870+ logging.debug('Instance summary data: \n{}'.format(
4871+ u.dict_to_yaml(inst_summs)))
4872
4873 # write summary to file in workspace
4874 ret = write_instance_summary_file(inst_summs)
4875
4876=== renamed file 'scan_branches.py' => 'tools/scan_branch_revs.py'
4877--- scan_branches.py 2015-01-29 19:44:45 +0000
4878+++ tools/scan_branch_revs.py 2015-08-28 16:23:16 +0000
4879@@ -1,33 +1,44 @@
4880 #!/usr/bin/env python
4881-'''Scans branches which are flagged as trigger branches in the
4882-mappings.yaml data, watching for branch changes by keeping a
4883-last state file.
4884-
4885-Creates properties files in context of the deployer bundles
4886-in openstack-charm-testing, for the current Ubuntu Dev release
4887-and the current Ubuntu LTS release, with the OpenStack release
4888-that shipped with them, respectively.
4889-'''
4890-
4891-import optparse
4892+'''
4893+UOSCI Launchpad Branch Scanner
4894+'''
4895+
4896 import logging
4897-import yaml
4898 import os
4899-import tempfile
4900-from bzrlib import branch
4901-from bzrlib.plugin import load_plugins
4902+import sys
4903 from copy import deepcopy
4904-import bzrlib.errors
4905-from common import osci_utils
4906-from time import sleep
4907+
4908+sys.path.insert(1, os.path.join(sys.path[0], '..'))
4909+from common import osci_utils as u
4910
4911 USAGE = '''Usage: %prog [options]
4912
4913-Default behavior:
4914- Scans branches for changes. Creates deployment, amulet, and
4915- lint properties files. Saves branch revid state to file.
4916-
4917-For example:
4918+UOSCI Launchpad Branch Scanner
4919+
4920+Scans trigger-branches from the mappings.yaml data, watching for
4921+changes to the launchpad branches, while keeping a simple state file.
4922+
4923+Creates deploy, unit, lint, amulet properties files for consumption
4924+by Jenkins parameterized builds.
4925+
4926+Assumes ubuntu-openstack-packagesource and other conventions used by
4927+bundles in lp:openstack-charm-testing.
4928+
4929+Amulet tests and bundle deploy tests will be automatically suppressed
4930+for any non-charm branches in the trigger list.
4931+
4932+Optionally handles per-branch overrides via hash tags appended to
4933+branch strings in the mappings.yaml control file.
4934+
4935+ ie. - lp:ubuntu-openstack-ci#NOUNIT
4936+ ie. - lp:charms/trusty/ubuntu#NODEPLOY#NOUNIT
4937+
4938+ #NODEPLOY Branch changes will not trigger deploy tests.
4939+ #NOAMULET Branch changes will not trigger amulet tests.
4940+ #NOUNIT Branch changes will not trigger unit tests.
4941+ #NOLINT Branch changes will not trigger lint tests.
4942+
4943+Example usage:
4944
4945 %prog
4946 Assumes True for amulet, lint, deploy and all other
4947@@ -38,358 +49,125 @@
4948 Performs all default actions (with debug output), leaving the
4949 state file as it was found.
4950
4951- %prog -F --XD --XA
4952+ %prog -FN --XD --XA
4953 Forces creation of trigger properties files, only for lint,
4954- without scanning any of the branches.
4955+ without scanning any of the branches, and without altering
4956+ the state file.
4957
4958 %prog --XD
4959 Scans branches and creates trigger properties files for
4960- all checks EXCEPT for the deployments.
4961+ all checks EXCEPT deployments.
4962 '''
4963
4964-try:
4965- WORKSPACE = os.environ['WORKSPACE']
4966-except KeyError:
4967- WORKSPACE = tempfile.mkdtemp()
4968-
4969-
4970-def branches_changed(conf_map, params, max_tries=10):
4971- '''Scan `trigger` branches in the provided dictionary,
4972- write current revision number and rev ID to state yaml file.
4973- compare with previous scan, create flat text file containing
4974- one LP branch per line, representing all added or changed
4975- branches (eg. different rev ID or revno).
4976- '''
4977-
4978- osci_utils.safe_mkdir(conf_map['misc-conf']['state-dir'])
4979- (opts, args) = params
4980- load_plugins()
4981-
4982- state_fn = os.path.join(conf_map['misc-conf']['state-dir'],
4983- conf_map['misc-conf']['state-file'])
4984-
4985- if not opts.force:
4986- # Read previous branch state from file
4987- if os.path.isfile(state_fn):
4988- state_prev = osci_utils.read_yaml(state_fn)
4989- else:
4990- state_prev = {}
4991- else:
4992- # Don't read due to Force or Dry Run option
4993- state_prev = {}
4994-
4995- # Get current branch state
4996- if not opts.no_scan:
4997- state_now = {}
4998- for branch_str in conf_map['trigger-branches']:
4999- if not opts.force:
5000- logging.info('checking {}'.format(branch_str))
The diff has been truncated for viewing.

Subscribers

People subscribed via source and target branches