Merge lp:~1chb1n/ubuntu-openstack-ci/ss8-redeploy into lp:ubuntu-openstack-ci
- ss8-redeploy
- Merge into trunk
Status: | Merged |
---|---|
Merged at revision: | 392 |
Proposed branch: | lp:~1chb1n/ubuntu-openstack-ci/ss8-redeploy |
Merge into: | lp:ubuntu-openstack-ci |
Diff against target: |
21600 lines (+3286/-14486) 210 files modified
.bzrignore (+9/-16) README.deploy (+0/-107) README.hacking (+0/-74) README.jobs (+0/-35) deploy-prep.sh (+0/-10) deploy/README.md (+11/-0) deploy/assets/bashrc (+0/-2) deploy/assets/environment-series.yaml (+1/-1) deploy/assets/environments.yaml (+1/-1) deploy/assets/osci-repo-boot-clean.sh (+6/-0) deploy/assets/osci-repo-boot.sh (+9/-0) deploy/assets/other_host_keys (+2/-0) deploy/assets/pip.conf (+1/-1) deploy/config/env-common (+28/-0) deploy/config/juju-apps/osci-lab.yaml (+4/-0) deploy/config/juju-apps/osci-master.yaml (+8/-0) deploy/config/juju-apps/osci-slave.yaml (+4/-0) deploy/config/juju-apps/osci-task.yaml (+4/-0) deploy/config/nets-and-models.yaml (+13/-24) deploy/jobs-static/_bak_jenkins_home_no_build_history/config.xml (+7/-18) deploy/jobs-static/_bootstrap/config.xml (+110/-0) deploy/jobs-static/_bucket_junk_cleanup/config.xml (+8/-19) deploy/jobs-static/_bucket_reset_object_headers/config.xml (+26/-86) deploy/jobs-static/_bucket_update_indices/config.xml (+9/-17) deploy/jobs-static/_destroy_controller/config.xml (+110/-0) deploy/jobs-static/_destroy_model/config.xml (+110/-0) deploy/jobs-static/_no_op/config.xml (+10/-158) deploy/jobs-static/_no_op2/config.xml (+25/-17) deploy/jobs-static/_no_op3/config.xml (+25/-17) deploy/jobs-static/_none/config.xml (+63/-0) deploy/jobs-static/_system_tools_init/config.xml (+10/-91) deploy/jobs-static/charm_build/config.xml (+34/-31) deploy/jobs-static/sim_sandbox_pipeline/config.xml (+49/-37) deploy/jobs-static/sim_sandbox_pipeline_full/config.xml (+20/-26) deploy/jobs-static/sim_sub_a/config.xml (+7/-18) deploy/jobs-static/sim_sub_b/config.xml (+11/-22) deploy/jobs-static/sim_sub_c/config.xml (+9/-20) deploy/jobs-static/sim_sub_d/config.xml (+9/-20) deploy/jobs-static/sim_sub_e/config.xml (+9/-20) deploy/jobs-static/test_charm_amulet_full/config.xml (+8/-16) deploy/jobs-static/test_charm_amulet_smoke/config.xml (+28/-25) deploy/jobs-static/test_charm_lint/config.xml (+9/-18) deploy/jobs-static/test_charm_pipeline/config.xml (+54/-51) deploy/jobs-static/test_charm_pipeline_amulet_full/config.xml (+45/-40) deploy/jobs-static/test_charm_single/config.xml (+12/-19) deploy/jobs-static/test_charm_unit/config.xml (+8/-18) deploy/lib/__init__.py (+3/-0) deploy/lib/osci_deploy_helpers.py (+355/-0) deploy/osci-controller-setup.sh (+19/-0) deploy/osci-float-all-instances.sh (+18/-0) deploy/osci-model-deploy.sh (+68/-0) deploy/osci-nets-and-models.py (+191/-547) deploy/osci-set-subnets-dns.sh (+14/-0) deploy/post-deploy/100-repo-boot.sh (+20/-0) deploy/post-deploy/101-ssh-imports.sh (+9/-0) deploy/post-deploy/102-ssh-creds.sh (+27/-28) deploy/post-deploy/103-cs-go-cookies.sh (+9/-15) deploy/post-deploy/104-dirs-and-packages.sh (+8/-21) deploy/post-deploy/105-novarc-artifactweb-credentials-distribute.sh (+12/-15) deploy/post-deploy/110-set-plugin-proxy-serverstack.sh (+14/-14) deploy/post-deploy/125-jobs-static-initial.sh (+19/-18) deploy/requirements.txt (+9/-0) deploy/templates/oscirc (+14/-0) deploy/tests/sample-juju-status.yaml (+591/-0) deploy/tox.ini (+33/-0) deploy/z-deprecated/100-jenkins-user.sh (+8/-8) deploy/z-deprecated/120-install-plugins.sh (+31/-32) deploy/z-deprecated/225-juju-gui-float.sh (+17/-18) deploy/z-deprecated/common/osci_utils.py (+3/-164) deploy/z-deprecated/dev/populate.py (+2/-1) deploy/z-deprecated/dev/scan_url_group.py (+1/-1) deploy/z-deprecated/tools/nova_instances_summarize.py (+1/-0) deploy/z-deprecated/tools/scan_branch_revs.py (+1/-0) deploy/z-deprecated/tools/scan_merge_props.py (+1/-0) deployment/111-osci1-xenial.yaml (+0/-63) deployment/jobs/charm_pusher_aodh_master/config.xml (+0/-143) deployment/jobs/charm_pusher_aodh_stable/config.xml (+0/-143) deployment/jobs/charm_pusher_barbican-softhsm_master/config.xml (+0/-143) deployment/jobs/charm_pusher_barbican-softhsm_stable/config.xml (+0/-143) deployment/jobs/charm_pusher_barbican_master/config.xml (+0/-143) deployment/jobs/charm_pusher_barbican_stable/config.xml (+0/-143) deployment/jobs/charm_pusher_ceilometer-agent_master/config.xml (+0/-143) deployment/jobs/charm_pusher_ceilometer-agent_stable/config.xml (+0/-143) deployment/jobs/charm_pusher_ceilometer_master/config.xml (+0/-143) deployment/jobs/charm_pusher_ceilometer_stable/config.xml (+0/-143) deployment/jobs/charm_pusher_ceph-fs_master/config.xml (+0/-143) deployment/jobs/charm_pusher_ceph-fs_stable/config.xml (+0/-143) deployment/jobs/charm_pusher_ceph-mon_master/config.xml (+0/-143) deployment/jobs/charm_pusher_ceph-mon_stable/config.xml (+0/-143) deployment/jobs/charm_pusher_ceph-osd_master/config.xml (+0/-143) deployment/jobs/charm_pusher_ceph-osd_stable/config.xml (+0/-143) deployment/jobs/charm_pusher_ceph-proxy_master/config.xml (+0/-143) deployment/jobs/charm_pusher_ceph-proxy_stable/config.xml (+0/-143) deployment/jobs/charm_pusher_ceph-radosgw_master/config.xml (+0/-143) deployment/jobs/charm_pusher_ceph-radosgw_stable/config.xml (+0/-143) deployment/jobs/charm_pusher_ceph_master/config.xml (+0/-143) deployment/jobs/charm_pusher_ceph_stable/config.xml (+0/-143) deployment/jobs/charm_pusher_cinder-backup_master/config.xml (+0/-143) deployment/jobs/charm_pusher_cinder-backup_stable/config.xml (+0/-143) deployment/jobs/charm_pusher_cinder-ceph_master/config.xml (+0/-143) deployment/jobs/charm_pusher_cinder-ceph_stable/config.xml (+0/-143) deployment/jobs/charm_pusher_cinder_master/config.xml (+0/-143) deployment/jobs/charm_pusher_cinder_stable/config.xml (+0/-143) deployment/jobs/charm_pusher_designate-bind_master/config.xml (+0/-143) deployment/jobs/charm_pusher_designate-bind_stable/config.xml (+0/-143) deployment/jobs/charm_pusher_designate_master/config.xml (+0/-143) deployment/jobs/charm_pusher_designate_stable/config.xml (+0/-143) deployment/jobs/charm_pusher_glance_master/config.xml (+0/-143) deployment/jobs/charm_pusher_glance_stable/config.xml (+0/-143) deployment/jobs/charm_pusher_hacluster_master/config.xml (+0/-143) deployment/jobs/charm_pusher_hacluster_stable/config.xml (+0/-143) deployment/jobs/charm_pusher_heat_master/config.xml (+0/-143) deployment/jobs/charm_pusher_heat_stable/config.xml (+0/-143) deployment/jobs/charm_pusher_keystone-ldap_master/config.xml (+0/-143) deployment/jobs/charm_pusher_keystone-ldap_stable/config.xml (+0/-143) deployment/jobs/charm_pusher_keystone_master/config.xml (+0/-143) deployment/jobs/charm_pusher_keystone_stable/config.xml (+0/-143) deployment/jobs/charm_pusher_lxd_master/config.xml (+0/-143) deployment/jobs/charm_pusher_lxd_stable/config.xml (+0/-143) deployment/jobs/charm_pusher_manila-generic_master/config.xml (+0/-143) deployment/jobs/charm_pusher_manila-generic_stable/config.xml (+0/-143) deployment/jobs/charm_pusher_manila_master/config.xml (+0/-143) deployment/jobs/charm_pusher_manila_stable/config.xml (+0/-143) deployment/jobs/charm_pusher_neutron-api-odl_master/config.xml (+0/-143) deployment/jobs/charm_pusher_neutron-api-odl_stable/config.xml (+0/-143) deployment/jobs/charm_pusher_neutron-api_master/config.xml (+0/-143) deployment/jobs/charm_pusher_neutron-api_stable/config.xml (+0/-143) deployment/jobs/charm_pusher_neutron-gateway_master/config.xml (+0/-143) deployment/jobs/charm_pusher_neutron-gateway_stable/config.xml (+0/-143) deployment/jobs/charm_pusher_neutron-openvswitch_master/config.xml (+0/-143) deployment/jobs/charm_pusher_neutron-openvswitch_stable/config.xml (+0/-143) deployment/jobs/charm_pusher_noop_debug/config.xml (+0/-143) deployment/jobs/charm_pusher_nova-cloud-controller_master/config.xml (+0/-143) deployment/jobs/charm_pusher_nova-cloud-controller_stable/config.xml (+0/-143) deployment/jobs/charm_pusher_nova-compute-proxy_master/config.xml (+0/-143) deployment/jobs/charm_pusher_nova-compute-proxy_stable/config.xml (+0/-143) deployment/jobs/charm_pusher_nova-compute_master/config.xml (+0/-143) deployment/jobs/charm_pusher_nova-compute_stable/config.xml (+0/-143) deployment/jobs/charm_pusher_odl-controller_master/config.xml (+0/-143) deployment/jobs/charm_pusher_odl-controller_stable/config.xml (+0/-143) deployment/jobs/charm_pusher_openstack-dashboard_master/config.xml (+0/-143) deployment/jobs/charm_pusher_openstack-dashboard_stable/config.xml (+0/-143) deployment/jobs/charm_pusher_openvswitch-odl_master/config.xml (+0/-143) deployment/jobs/charm_pusher_openvswitch-odl_stable/config.xml (+0/-143) deployment/jobs/charm_pusher_percona-cluster_master/config.xml (+0/-143) deployment/jobs/charm_pusher_percona-cluster_stable/config.xml (+0/-143) deployment/jobs/charm_pusher_rabbitmq-server_master/config.xml (+0/-143) deployment/jobs/charm_pusher_rabbitmq-server_stable/config.xml (+0/-143) deployment/jobs/charm_pusher_swift-proxy_master/config.xml (+0/-143) deployment/jobs/charm_pusher_swift-proxy_stable/config.xml (+0/-143) deployment/jobs/charm_pusher_swift-storage_master/config.xml (+0/-143) deployment/jobs/charm_pusher_swift-storage_stable/config.xml (+0/-143) deployment/jobs/charm_pusher_tempest_master/config.xml (+0/-143) deployment/jobs/charm_pusher_tempest_stable/config.xml (+0/-143) deployment/post-deploy.sh (+0/-39) env-common (+0/-28) operate/bare-copy-jobs.sh (+21/-15) operate/maint-relation-jig.sh (+17/-0) run/Makefile (+5/-1) run/job-parts/build_amulet_smoke.sh (+7/-8) run/job-parts/build_amulet_test.sh (+22/-34) run/job-parts/build_bak.sh (+14/-0) run/job-parts/build_bucket_junk_cleanup.sh (+18/-30) run/job-parts/build_bucket_reset_object_headers.sh (+3/-3) run/job-parts/build_bucket_update_indices.sh (+3/-2) run/job-parts/build_charm_build_and_archive.sh (+2/-2) run/job-parts/build_charm_pusher.sh (+3/-3) run/job-parts/build_charm_single.sh (+77/-86) run/job-parts/build_cs_deploy_charm.sh (+12/-0) run/job-parts/build_deploy_test.sh (+3/-4) run/job-parts/build_gerrit_change_ci_sandbox.sh (+2/-2) run/job-parts/build_git_deploy_test.sh (+3/-4) run/job-parts/build_juju_bootstrap.sh (+4/-0) run/job-parts/build_juju_destroy_controller.sh (+4/-0) run/job-parts/build_juju_destroy_model.sh (+4/-0) run/job-parts/build_lint_test.sh (+6/-31) run/job-parts/build_mojo_runner.sh (+3/-19) run/job-parts/build_none.sh (+3/-0) run/job-parts/build_prescribe.sh (+2/-2) run/job-parts/build_simulate.sh (+4/-5) run/job-parts/build_unit_test.sh (+22/-26) run/job-parts/deprecated/build_deployer_quickcheck.sh (+2/-3) run/job-parts/deprecated/build_juju_bootstrap.sh (+2/-2) run/job-parts/deprecated/build_juju_deploy_single_charm.sh (+4/-4) run/job-parts/deprecated/build_juju_stat.sh (+2/-2) run/job-parts/deprecated/build_maint_nodes.sh (+1/-1) run/job-parts/deprecated/build_nova_list_overcloud.sh (+1/-1) run/job-parts/deprecated/build_nova_list_undercloud.sh (+1/-1) run/job-parts/deprecated/build_osi.sh (+2/-2) run/job-parts/deprecated/build_sync_gh2lp.sh (+1/-1) run/job-parts/deprecated/build_sync_lp2gh.sh (+1/-1) run/job-parts/deprecated/juju1_bighammer_destroy.sh (+2/-2) run/job-parts/deprecated/osci_apt_common.sh (+0/-62) run/job-parts/deprecated/trigger_by_branch_scanner.sh (+1/-1) run/job-parts/deprecated/trigger_by_mojo_group.sh (+1/-1) run/job-parts/deprecated/trigger_by_mp_scanner.sh (+1/-1) run/job-parts/func_exec.sh (+5/-3) run/job-parts/get_pkg_info.sh (+1/-1) run/job-parts/osci_gerrit_common.sh (+5/-15) run/job-parts/osci_job_common.sh (+221/-402) run/job-parts/osci_juju1_common.sh (+92/-0) run/job-parts/osci_layerci_common.sh (+19/-0) run/job-parts/osci_mojo_common.sh (+1/-1) run/job-parts/osci_openstack_common.sh (+142/-213) run/job-parts/osci_repos_common.sh (+66/-90) run/job-parts/part_gerrit_review.sh (+3/-3) run/job-parts/part_workspace_cleanup.sh (+1/-1) run/populate/deprecated/create_credentials.py (+5/-5) run/test-requirements.txt (+1/-0) run/tox.ini (+14/-6) |
To merge this branch: | bzr merge lp:~1chb1n/ubuntu-openstack-ci/ss8-redeploy |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Andrew McLeod (community) | Approve | ||
Review via email: mp+322222@code.launchpad.net |
Commit message
[1chb1n, r=admcleod] Refactor for redeploy on serverstack8 with Juju2 below and on top
Rearrange directories to separate run-time from deploy-time
Switch to scripted deploy due to fat pack deb needs of the jenkins charms
Update deploy scripts
Refactor helpers
Update tox config
Refactor openstack client usage for ksv3
Update post-deploy scripts
Add func_exec tox coverage
Update charm-test-infra usage
Activate clients for gerrit review builder part
Update bucket junk cleanup
Remove references to juju1 bighammer destroyer
Move rsync backup snipped from job to script
Clean up lint runner script
Add layerci_
Add destroy builder
Add bootstrap builder
Update post-destroy info dump and juju status
Update juju-wait calls
Add cs_deploy_charm builder
Update amulet runners
Update amulet full runner
Use updated log puller
Update charm single runner for config file name
Description of the change
Beware - this was a major refactor and deprecation of a ton of legacy things.
OSCI has been running live on this since April, and gate jobs are A-OK.
- 468. By Ryan Beisner
-
Clean up _junk
- 469. By Ryan Beisner
-
Prefer py35 unit tests over p27
- 470. By Ryan Beisner
-
Revert to preferring py27 as py35 is not supported across all repos yet
- 471. By Ryan Beisner
-
Prefer py35 for layers and interfaces; py27 for classic charms
- 472. By Ryan Beisner
-
Switch oscirc back to official repo in prep for branch landing
- 473. By Ryan Beisner
-
Use merged bot-control master branch
Preview Diff
1 | === modified file '.bzrignore' |
2 | --- .bzrignore 2017-02-17 17:08:22 +0000 |
3 | +++ .bzrignore 2017-05-27 00:22:36 +0000 |
4 | @@ -1,20 +1,13 @@ |
5 | -deployment/precise |
6 | -deployment/trusty |
7 | -deployment/utopic |
8 | -precise |
9 | -trusty |
10 | -utopic |
11 | -deployment/out |
12 | -deployment/deploy-files/id_dsa |
13 | -deployment/deploy-files/id_dsa.pub |
14 | -deployment/deploy-files/id_rsa |
15 | -deployment/deploy-files/id_rsa.pub |
16 | -deployment/deploy-files/uosci-bot-go-cookies.tar.bz2 |
17 | -populate/credentials |
18 | +*.tmp |
19 | +id_* |
20 | +*cookies* |
21 | +credentials |
22 | hooks |
23 | bin |
24 | -deployment/jobs/jobs-static-initial.tgz |
25 | +jobs-static-initial.tgz |
26 | temp.py |
27 | .coverage |
28 | -deployment/deploy-files/novarc-artifactcloud |
29 | -*/.tox |
30 | +novarc* |
31 | +*.tox |
32 | +secrets |
33 | +deploy/jobs-static/charm_pusher* |
34 | |
35 | === removed file 'README.deploy' |
36 | --- README.deploy 2015-09-23 15:02:04 +0000 |
37 | +++ README.deploy 1970-01-01 00:00:00 +0000 |
38 | @@ -1,107 +0,0 @@ |
39 | -Ubuntu OpenStack CI - Jenkins Environment |
40 | - |
41 | -====={ DEPLOYMENT README }===== |
42 | - |
43 | -Purpose & requirements: |
44 | - * 'Deployment' in this doc and in the ./deployment directory is in relation |
45 | - to deployment of the jenkins environment, not the environments which may |
46 | - be deployed by tests controlled by that jenkins environment. |
47 | - |
48 | - * Creates a new jenkins master+slave(s) juju deployment in an openstack |
49 | - tenant, upgrades jenkins war to latest release (via war, not deb). |
50 | - |
51 | - * This will deploy the deployer bundle defined in config.yaml to your |
52 | - default local juju environment. |
53 | - |
54 | - * This will add new neutron networks and subnets, 1 per master and 1 per |
55 | - slave, and connect them to the router specified in config.yaml, unless |
56 | - networks splits are set to False in that config yaml. |
57 | - |
58 | - * Must have OpenStack credentials sourced. ie. source ~/novarc |
59 | - |
60 | - * Must have a local Juju environment configured for use with the host |
61 | - openstack environment. |
62 | - |
63 | - * Intended to be run from a bastion or other system admin instance within |
64 | - the tenant. This local unit will not participate in the jenkins enviro |
65 | - other than for admin purposes. |
66 | - |
67 | -Prep: |
68 | - * Review and adjust deploy-config.yaml and the |
69 | - deploy-files/environments.yaml template file. |
70 | - |
71 | - * Review and adjust deploy-files xml files. ie. build publish password |
72 | - is not set, but target is. Some jenkins config is/can be pre-populated |
73 | - there, such as plugin proxy. |
74 | - |
75 | - * Ensure that neutron network quotas and ip space make sense for your |
76 | - values, and be aware that this is only aware of /16 and /24 net blocks |
77 | - for the jenkins master & slave isolated networks. |
78 | - |
79 | - * For Jenkins on Trusty, it is advisable to download the jenkins.deb |
80 | - and deploy from a local branch of the charm specified in the deployer |
81 | - bundle yaml, as the jenkins repo seems to have some bad days. |
82 | - |
83 | - * For the launchpad librarian python routines to authenticate, you should |
84 | - create the OAUTH 'credentials' file using the |
85 | - ./populate/create_credentials.py and place it in |
86 | - /var/lib/jenkins/.config/tarmac/credentials on the jenkins master. The |
87 | - merge proposal scanner and tarmac require it. There is an admin script |
88 | - to push it to all units. |
89 | - |
90 | -Jenkins Infrastructure Deployment: |
91 | - ./deploy.py |
92 | - cd deployment |
93 | - ./post-deploy.sh |
94 | - |
95 | - Or use deployer without post-configuration: |
96 | - cd deployment |
97 | - juju-deployer -B -c 110-uosci-trusty.yaml |
98 | - |
99 | - |
100 | -Directories: |
101 | - ./ root of this branch |
102 | - env-common configurable environment variables for admin and deployment |
103 | - |
104 | - deployment/ infrastructure (jenkins) deployment & static system jobs |
105 | - bin/ deployment scripts |
106 | - deploy-files/ supporting content for deployment |
107 | - jobs/ initial static jenkins job(s) |
108 | - bundle-dev/ unused WIP / experimental files |
109 | - out/ output may be created by deploy or post-deploy routines |
110 | - |
111 | - admin/ misc administrative and debug scripts |
112 | - common/ shared code for admin, deployment, ongoing use |
113 | - dev/ work-in-progress or temporary work-arounds, patches, etc. |
114 | - populate/ see README.jobs |
115 | - tools/ command line tools used in automation/manual testing |
116 | - |
117 | - |
118 | -Notes: |
119 | - |
120 | - * See other READMEs for job creation, etc. |
121 | - |
122 | - * Jenkins admin login is ubuntu/ubuntu. |
123 | - |
124 | - * deploy.py is intended to be safe to run on top of a deployed environment, |
125 | - such as for updating juju environment yamls, IP scheme, etc. YMMV |
126 | - |
127 | - * While this is not a charm, it may be someday, this may use charm helpers. |
128 | - |
129 | - * Scripts use juju ssh instead of juju run for two reasons: |
130 | - - exit codes (it is desired stop on failure) |
131 | - - juju run --all isn't useful here as most of the methods don't apply to |
132 | - non-jenkins service units. |
133 | - |
134 | - * NOTE(beisner): The charms do not currently support configuration of the |
135 | - proxy.xml file which is necessary for installing plugins behind a proxy. |
136 | - Plugins and proxy configuration are handled in post-deploy. Bug #1356915: |
137 | - "jenkins charm needs proxy support for plugin installation..." Some |
138 | - manual/static accomodations exist here, specific to serverstack w/ proxy. |
139 | - |
140 | - * The deploy-files/plugins file is a list of plugins to install, 1 per line. |
141 | - The post-deploy script (via scripts in bin/) takes care of proxy.xml and |
142 | - plugin installation. |
143 | - |
144 | - * The deployed Jenkins version is likely out-dated. It is recommended to |
145 | - upgrade jenkins via the war from trunk. The post-deploy script does that. |
146 | |
147 | === removed file 'README.hacking' |
148 | --- README.hacking 2015-09-25 13:29:23 +0000 |
149 | +++ README.hacking 1970-01-01 00:00:00 +0000 |
150 | @@ -1,74 +0,0 @@ |
151 | -# Ubuntu OpenStack CI - Hacking Readme |
152 | - |
153 | -## Local Development |
154 | - |
155 | -/!\ BEWARE of BUILD SCRIPTS /!\ |
156 | -******************************* |
157 | -Most, if not all, of the build scripts are destructive by default: |
158 | - |
159 | - - All juju environments, juju deployments and lxc containers defined on all |
160 | - Jenkins slave units are ephemeral, throw-away bits. |
161 | - |
162 | - - If executing a build script locally, bad things WILL happen to existing |
163 | - environments, containers and/or deployments. |
164 | - |
165 | - - All detectable juju environments and lxc containers will be automatically |
166 | - and unequivocally destroyed and torn down without confirmation, |
167 | - including those found in ```~/.juju```, ```~/.cloud-install```, |
168 | - or by ```juju switch -l```. |
169 | - |
170 | - - The .ssh/known_hosts file will be cleaned and left with only launchpad entries. |
171 | - |
172 | - - The ~/workspace, ~/tools, ~/.juju/environments/, ~/checkout, and ~/.cloud-install |
173 | - directories will also be routinely wiped. |
174 | - |
175 | - - The ~/tools (uosci and o-c-t) checkouts will be purged and re-checked |
176 | - out on every run. If you have customized that locally, and fire |
177 | - off a build script manually in a console, those changes will vanish. |
178 | - |
179 | - - This big-hammer approach is the default behavior so that each job will |
180 | - always have a fresh and clean environment. |
181 | - |
182 | - |
183 | - |
184 | -### Environment Variables |
185 | -When developing and iterating a job or script outside of Jenkins, it may be helpful to |
186 | -have your tools checkout dir NOT blown away and refreshed. Or perhaps you need to |
187 | -leave the deployment intact after the script completes, and not automatically tear |
188 | -it down. There are a number of controls that can be exercised via env var exports: |
189 | -``` |
190 | -export NO_TOOLS_REFRESH="True" # Skip UOSCI and O-C-T branch removal and refresh. |
191 | -TODO - Not Implemented: NO_PRE_DESTROY # As a safety mechanism for devs. |
192 | -export NO_POST_DESTROY="True" # Skip post-deployment environment destruction. |
193 | -``` |
194 | - |
195 | -Notes: |
196 | - - Jenkins passes True (check boxes, etc.) as true, while Python likes True. Usage varies. |
197 | - - There are many env vars not yet documented here. See build_osi.sh, and osci_*.sh. |
198 | - |
199 | - |
200 | -## Running Individual Helpers |
201 | -The ```job-parts``` directory contains all of the job/script glue in the form of |
202 | -helpers in the ```osci_*.sh``` files. These helper functions can be manually |
203 | -called with ```./func_exec.sh``` (presuming you have crafted and exported all |
204 | -pertinent environment variables). |
205 | -``` |
206 | -$ ./func_exec.sh |
207 | -A tool to manually trigger functions from CLI. |
208 | - Presumes jenkins environment variables and the |
209 | - overcloud novarc are sourced. |
210 | -Usage: <this script> <function name> |
211 | -Available 'f_' functions: |
212 | - f_amulet_no_teardown |
213 | - f_amulet_patch_no_symbols |
214 | - f_amulet_patch_timeout_seconds_announce |
215 | - f_amulet_set_network_env_vars |
216 | - ...snip... |
217 | -``` |
218 | - |
219 | - |
220 | -## The Dual-Purpose Build Script |
221 | -A thoughtfully-constructed Jenkins build script can be functional when called |
222 | -manually in a local shell, as well as serve the purpose of the test automation. |
223 | -The ```job-parts/build_osi.sh``` makes use of default values when none are |
224 | -detected, as an example of how to achieve this. |
225 | |
226 | === removed file 'README.jobs' |
227 | --- README.jobs 2014-10-16 15:39:49 +0000 |
228 | +++ README.jobs 1970-01-01 00:00:00 +0000 |
229 | @@ -1,35 +0,0 @@ |
230 | -Ubuntu OpenStack CI - Jenkins Environment |
231 | - |
232 | - |
233 | -Purpose & requirements: |
234 | - The (re)populate scripts and methods are intended to be run as the jenkins |
235 | - user from the jenkins master unit console (not from bastion). |
236 | - |
237 | -Initial Population: |
238 | - At the moment, initial jobs are created from tarball in the post-deployment |
239 | - shell script. |
240 | - |
241 | -Updating: |
242 | - * The populate/mappings.yaml data file should be updated each development |
243 | - cycle. The branch scanner jobs utilize that data in triggering jobs. |
244 | - |
245 | - * Jenkins is set to run ./scan_branches.py every 30 minutes, which uses bzr |
246 | - to check the revno and revid of the trigger branches defined in |
247 | - mappings.yaml. If ANY of the branches change, a deployment of the trigger |
248 | - jobs commences. |
249 | - |
250 | - * ./scan_merge_props.py also runs every 30 minutes, which uses LP API |
251 | - to check for merge proposals agains the branches defined in mappings.yaml. |
252 | - |
253 | -Directories & Files: |
254 | - ./ root of this branch |
255 | - env-common configurable environment variables for admin and deployment |
256 | - scan_branches.py see above in 'Updating' |
257 | - populate.py testing only, generates tarmac conf file |
258 | - populate/ templates, scripts and config data related to jobs |
259 | - deployment/ infrastructure (jenkins) deployment and static system jobs |
260 | - admin/ misc administrative and debug scripts |
261 | - |
262 | -Notes: |
263 | - |
264 | - * See other READMEs for deployment, setup etc. |
265 | |
266 | === added directory 'deploy' |
267 | === removed file 'deploy-prep.sh' |
268 | --- deploy-prep.sh 2016-08-29 11:47:39 +0000 |
269 | +++ deploy-prep.sh 1970-01-01 00:00:00 +0000 |
270 | @@ -1,10 +0,0 @@ |
271 | -#!/bin/bash -e |
272 | - |
273 | -# Pre-deployment prep for bastion instance |
274 | - |
275 | -sudo apt-get update -y |
276 | -sudo apt-get install make python-flake8 python-distro-info python-jinja2 pastebinit distro-info |
277 | - |
278 | -# Depending on state of upstream jenkins repos, you may have to |
279 | -# download and place jenkins.deb in a local charm. Might add that |
280 | -# here as the standard installation method. |
281 | |
282 | === added file 'deploy/README.md' |
283 | --- deploy/README.md 1970-01-01 00:00:00 +0000 |
284 | +++ deploy/README.md 2017-05-27 00:22:36 +0000 |
285 | @@ -0,0 +1,11 @@ |
286 | +### OSCI Deployment |
287 | + |
288 | +For Juju 2.1.2, on a Xenial-Ocata HA KSV3 undercloud. |
289 | + |
290 | +* osci-controller-setup.sh |
291 | +* osci-model-deploy.sh |
292 | +* May have to `juju resolved osci-master/0` to trigger a hook retry. The jenkins charm as of 2017 Apr 13 has a race condition which consistently requires one re-run of the storage-attached hook. |
293 | +* osci-float-all-instances.sh |
294 | +* osci-nets-and-models.py |
295 | +* osci-set-subnets-dns.sh |
296 | +* post-deploy/* # Look first, use with intent and caution. |
297 | |
298 | === renamed directory 'deployment/deploy-files' => 'deploy/assets' |
299 | === modified file 'deploy/assets/bashrc' |
300 | --- deployment/deploy-files/bashrc 2016-08-29 18:45:24 +0000 |
301 | +++ deploy/assets/bashrc 2017-05-27 00:22:36 +0000 |
302 | @@ -116,6 +116,4 @@ |
303 | fi |
304 | fi |
305 | |
306 | - |
307 | export AMULET_HTTP_PROXY='http://squid.internal:3128' |
308 | -alias juju=juju-1 # Default to juju 1.x binary |
309 | |
310 | === modified file 'deploy/assets/environment-series.yaml' |
311 | --- deployment/deploy-files/environment-series.yaml 2016-07-14 19:49:34 +0000 |
312 | +++ deploy/assets/environment-series.yaml 2017-05-27 00:22:36 +0000 |
313 | @@ -1,5 +1,5 @@ |
314 | ubuntu: |
315 | + - zesty |
316 | - yakkety |
317 | - xenial |
318 | - trusty |
319 | - - precise |
320 | |
321 | === modified file 'deploy/assets/environments.yaml' |
322 | --- deployment/deploy-files/environments.yaml 2016-06-10 13:35:34 +0000 |
323 | +++ deploy/assets/environments.yaml 2017-05-27 00:22:36 +0000 |
324 | @@ -1,4 +1,4 @@ |
325 | -# Ubuntu OpenStack CI - juju environment |
326 | +# Ubuntu OpenStack CI - juju 1.x model/environment file |
327 | default: __ENVIRO__ |
328 | environments: |
329 | __ENVIRO__: |
330 | |
331 | === added file 'deploy/assets/osci-repo-boot-clean.sh' |
332 | --- deploy/assets/osci-repo-boot-clean.sh 1970-01-01 00:00:00 +0000 |
333 | +++ deploy/assets/osci-repo-boot-clean.sh 2017-05-27 00:22:36 +0000 |
334 | @@ -0,0 +1,6 @@ |
335 | +#!/bin/bash -ue |
336 | +# Remove existing code checkout if it exists and do a bare minimum code checkout for a job |
337 | +. ~/oscirc |
338 | +rm -rf $OSCI_ROOT ||: |
339 | +mkdir -vp $OSCI_ROOT |
340 | +bzr co --lightweight $OSCI_REPO $OSCI_ROOT |
341 | |
342 | === added file 'deploy/assets/osci-repo-boot.sh' |
343 | --- deploy/assets/osci-repo-boot.sh 1970-01-01 00:00:00 +0000 |
344 | +++ deploy/assets/osci-repo-boot.sh 2017-05-27 00:22:36 +0000 |
345 | @@ -0,0 +1,9 @@ |
346 | +#!/bin/bash -ue |
347 | +# Do a bare minimum code checkout for a job if it doesn't already exist. |
348 | +. ~/oscirc |
349 | +stat --format="%n %F %y" $OSCI_ROOT/run ||\ |
350 | +( |
351 | + rm -rf $OSCI_ROOT ||: |
352 | + mkdir -vp $OSCI_ROOT |
353 | + bzr co --lightweight $OSCI_REPO $OSCI_ROOT |
354 | +) |
355 | |
356 | === modified file 'deploy/assets/other_host_keys' |
357 | --- deployment/deploy-files/other_host_keys 2016-09-02 21:38:35 +0000 |
358 | +++ deploy/assets/other_host_keys 2017-05-27 00:22:36 +0000 |
359 | @@ -2,3 +2,5 @@ |
360 | |1|cmsiVx+RyX606psYhBnusb3Z1ZA=|D03P9eiFcN2uEL3ZKWQA/FPjQpo= ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBGSR3ogUx83TEhmaKks1IZDC287ry3Mc1N8x/hCS6HvUgsZuC3etBWRSqXSKGmzxotpBSU//eehf1YEQ/glkmFg= |
361 | |1|G7bqYoGs0/7WcgVONKheHbvjbW0=|EWaUmfiDVX5psurof0gbxBW6djs= ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBHfg+sp98jxYz9zhxM33ouLNx0rDhXrTLVWU2fZQiMmOCc91H376aU9VzDYd+GRjSewqyz67zpSqsDHd1t6e+J0= |
362 | |1|/uNVERTIWkRm/NIA2HQGM/e+WSs=|584GneqB0FnxjW4yPzufWpoZ3Xw= ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBHfg+sp98jxYz9zhxM33ouLNx0rDhXrTLVWU2fZQiMmOCc91H376aU9VzDYd+GRjSewqyz67zpSqsDHd1t6e+J0= |
363 | +|1|pJss/g21mdSvAv7PCtXEl6ikX8s=|lu9UENRQqyzTsGJdMPRJ3YPb4gQ= ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBDIYipSuaupaQ0PVZiaGWY8oc+r1SLI2PtVyXJA3WcfqrJ79Of7ZOSoHHwwNDkKnzOGj2yu7gohyWBJY2HP83WU= |
364 | + |
365 | |
366 | === modified file 'deploy/assets/pip.conf' |
367 | --- deployment/deploy-files/pip.conf 2016-02-09 11:59:39 +0000 |
368 | +++ deploy/assets/pip.conf 2017-05-27 00:22:36 +0000 |
369 | @@ -1,2 +1,2 @@ |
370 | # [global] |
371 | -# index-url = http://10.245.162.102:3141/root/pypi/+simple/ |
372 | +# index-url = http://t.b.d:3141/root/pypi/+simple/ |
373 | |
374 | === added directory 'deploy/config' |
375 | === added file 'deploy/config/env-common' |
376 | --- deploy/config/env-common 1970-01-01 00:00:00 +0000 |
377 | +++ deploy/config/env-common 2017-05-27 00:22:36 +0000 |
378 | @@ -0,0 +1,28 @@ |
379 | +#!/bin/bash |
380 | + |
381 | +# Mostly in place for the post-deploy script |
382 | + |
383 | +. ~/novarc |
384 | + |
385 | +MASTER='osci-master/0' |
386 | +JENKINS_HOME=/var/lib/jenkins |
387 | +U_HOME=/home/ubuntu |
388 | +#OPENSTACK_UBUNTU_ROOT=/var/lib/jenkins/openstack-ubuntu-testing |
389 | +#OPENSTACK_UBUNTU_REPO=lp:openstack-ubuntu-testing |
390 | +#http_proxy="http://squid.internal:3128" |
391 | +#https_proxy="https://squid.internal:3128" |
392 | +#HTTP_PROXY=$http_proxy |
393 | +#HTTPS_PROXY=$https_proxy |
394 | +FILE_TRIGGER_DIR="${JENKINS_HOME}/file-triggers" |
395 | + |
396 | +# master and all slaves |
397 | +UNITS=$(juju status --format=yaml | egrep "osci[-]?(master|slave|lab|task)?/[0-9]{1,10}:" \ |
398 | + | cut -d ":" -f 1 | sed 's/^ *//') |
399 | + |
400 | +LP_ID="uosci-testing-bot" |
401 | +BZR_WHOAMI="uoscibot <uosci-testing-bot@ubuntu.com>" |
402 | + |
403 | +# deployment/deploy-files |
404 | +PRIV_KEY=id_rsa |
405 | +PUB_KEY=id_rsa.pub |
406 | +SSH_CONF=config |
407 | |
408 | === added directory 'deploy/config/juju-apps' |
409 | === added file 'deploy/config/juju-apps/osci-lab.yaml' |
410 | --- deploy/config/juju-apps/osci-lab.yaml 1970-01-01 00:00:00 +0000 |
411 | +++ deploy/config/juju-apps/osci-lab.yaml 2017-05-27 00:22:36 +0000 |
412 | @@ -0,0 +1,4 @@ |
413 | +osci-lab: |
414 | + slave-executors: 1 |
415 | + tools: build-essential ubuntu-dev-tools bzr git git-review python-virtualenv python3-virtualenv tox snapd snapcraft iptraf htop colordiff nmap nload multitail wget ipcalc libffi-dev libssl-dev libdbus-1-dev libdbus-glib-1-dev python3-pytest lxd python-jinja2 python-launchpadlib python-pika pwgen ipcalc python3-dev tree |
416 | + labels: lab |
417 | |
418 | === added file 'deploy/config/juju-apps/osci-master.yaml' |
419 | --- deploy/config/juju-apps/osci-master.yaml 1970-01-01 00:00:00 +0000 |
420 | +++ deploy/config/juju-apps/osci-master.yaml 2017-05-27 00:22:36 +0000 |
421 | @@ -0,0 +1,8 @@ |
422 | +osci-master: |
423 | + master-executors: 1 |
424 | + remove-unlisted-plugins: "no" |
425 | + # place jenkins.deb in charm ./files/ dir before deploy |
426 | + release: bundle |
427 | + tools: build-essential ubuntu-dev-tools bzr git git-review python-virtualenv python3-virtualenv tox snapd snapcraft iptraf htop colordiff nmap nload multitail wget ipcalc libffi-dev libssl-dev libdbus-1-dev libdbus-glib-1-dev python3-pytest lxd python-jinja2 python-launchpadlib python-pika pwgen ipcalc python3-dev tree |
428 | + username: ubuntu |
429 | + password: ubuntu |
430 | |
431 | === added file 'deploy/config/juju-apps/osci-slave.yaml' |
432 | --- deploy/config/juju-apps/osci-slave.yaml 1970-01-01 00:00:00 +0000 |
433 | +++ deploy/config/juju-apps/osci-slave.yaml 2017-05-27 00:22:36 +0000 |
434 | @@ -0,0 +1,4 @@ |
435 | +osci-slave: |
436 | + slave-executors: 1 |
437 | + tools: build-essential ubuntu-dev-tools bzr git git-review python-virtualenv python3-virtualenv tox snapd snapcraft iptraf htop colordiff nmap nload multitail wget ipcalc libffi-dev libssl-dev libdbus-1-dev libdbus-glib-1-dev python3-pytest lxd python-jinja2 python-launchpadlib python-pika pwgen ipcalc python3-dev tree |
438 | + labels: slave |
439 | |
440 | === added file 'deploy/config/juju-apps/osci-task.yaml' |
441 | --- deploy/config/juju-apps/osci-task.yaml 1970-01-01 00:00:00 +0000 |
442 | +++ deploy/config/juju-apps/osci-task.yaml 2017-05-27 00:22:36 +0000 |
443 | @@ -0,0 +1,4 @@ |
444 | +osci-task: |
445 | + slave-executors: 16 |
446 | + tools: build-essential ubuntu-dev-tools bzr git git-review python-virtualenv python3-virtualenv tox snapd snapcraft iptraf htop colordiff nmap nload multitail wget ipcalc libffi-dev libssl-dev libdbus-1-dev libdbus-glib-1-dev python3-pytest lxd python-jinja2 python-launchpadlib python-pika pwgen ipcalc python3-dev tree |
447 | + labels: task |
448 | |
449 | === renamed file 'deployment/deploy-config.yaml' => 'deploy/config/nets-and-models.yaml' |
450 | --- deployment/deploy-config.yaml 2016-08-29 12:59:23 +0000 |
451 | +++ deploy/config/nets-and-models.yaml 2017-05-27 00:22:36 +0000 |
452 | @@ -1,24 +1,23 @@ |
453 | # Config options for deployment and post-deployment actions |
454 | osci: |
455 | - deployer-bundle: "deployment/111-osci1-xenial.yaml" |
456 | - |
457 | network: |
458 | # True causes creation of 1 new unique neutron network per jenkins slave, |
459 | # which is cooked into its juju model, and added to a single existing |
460 | # tenant router. False negates all of the following (leaves flat). |
461 | split: True |
462 | |
463 | - # Base network for jenkins slave juju models, to have its octet |
464 | - # incremented X number of times. Stick with /24 and /16! |
465 | + # Starting point for generating network CIDRs, to be used for OSCI slave |
466 | + # networks. Stick with /24 and /16! |
467 | cidr: "172.17.99.0/24" |
468 | |
469 | - # Define which octet to increment for each slave juju enviro: ie. 1.2.3.4 |
470 | + # Define which octet to increment for each slave juju model: ie. 1.2.3.4 |
471 | + # For /24, use 3; for /16, use 2. |
472 | var-octet: "3" |
473 | |
474 | - # Name of existing neutron router to wire new networks |
475 | + # Name of existing neutron router for wiring up the new networks |
476 | neutron-router: "osci_router" |
477 | |
478 | - # Name of default network for instance |
479 | + # Name of default network |
480 | default-network: "osci_admin_net" |
481 | |
482 | # Base name of new networks and subnets, to be appended by slave var-octet. |
483 | @@ -26,26 +25,16 @@ |
484 | neutron-sub: "oscisub" |
485 | |
486 | # DNS servers (comma separated) for the new subnet: |
487 | - neutron-dns: "10.5.0.3" |
488 | - |
489 | - # Neutron network name for creating floating IP(s), |
490 | - # And substring to identify existing floating IP (not cidr, just str): |
491 | - ext-net: "ext_net" |
492 | - fip-str: "10.245.162" |
493 | - |
494 | - enviro: |
495 | - # New juju model naming control: |
496 | - env-name-base: "osci" |
497 | + neutron-dns: "10.5.0.8" |
498 | + |
499 | + model: |
500 | + # Naming control for generated Juju model names: |
501 | + model-name-base: "auto-osci" |
502 | master-abbrv: "ma" |
503 | slave-abbrv: "sv" |
504 | task-abbrv: "tk" |
505 | lab-abbrv: "lb" |
506 | |
507 | - # Template for new juju environments.yaml files: |
508 | - env-template: "deployment/deploy-files/environments.yaml" |
509 | - |
510 | - # Local juju model; will pull apt proxy from first env found: |
511 | - env-reference: "/home/ubuntu/.juju/environments.yaml" |
512 | - |
513 | + other: |
514 | # Directory for misc output files: |
515 | - out-dir: "deployment/out" |
516 | + out-dir: "out.tmp" |
517 | |
518 | === added directory 'deploy/jobs-static' |
519 | === renamed directory 'deployment/jobs/_bak_jenkins_home_no_build_history' => 'deploy/jobs-static/_bak_jenkins_home_no_build_history' |
520 | === modified file 'deploy/jobs-static/_bak_jenkins_home_no_build_history/config.xml' |
521 | --- deployment/jobs/_bak_jenkins_home_no_build_history/config.xml 2016-09-21 19:36:25 +0000 |
522 | +++ deploy/jobs-static/_bak_jenkins_home_no_build_history/config.xml 2017-05-27 00:22:36 +0000 |
523 | @@ -19,9 +19,7 @@ |
524 | <hudson.plugins.throttleconcurrents.ThrottleJobProperty plugin="throttle-concurrents@1.9.0"> |
525 | <maxConcurrentPerNode>1</maxConcurrentPerNode> |
526 | <maxConcurrentTotal>1</maxConcurrentTotal> |
527 | - <categories class="java.util.concurrent.CopyOnWriteArrayList"> |
528 | - <string>false</string> |
529 | - </categories> |
530 | + <categories class="java.util.concurrent.CopyOnWriteArrayList"/> |
531 | <throttleEnabled>true</throttleEnabled> |
532 | <throttleOption>project</throttleOption> |
533 | <limitOneJobWithMatchingParams>false</limitOneJobWithMatchingParams> |
534 | @@ -43,29 +41,20 @@ |
535 | <concurrentBuild>false</concurrentBuild> |
536 | <builders> |
537 | <hudson.tasks.Shell> |
538 | - <command>#!/bin/bash -eu |
539 | - |
540 | -if [[ -z $BAK_REMOTE_BASE_DIR ]] || [[ -z $BAK_USER_HOST ]]; then |
541 | - echo " ! Missing one or more of the required env vars: BAK_REMOTE_BASE_DIR BAK_USER_HOST" |
542 | - exit 1 |
543 | -fi |
544 | - |
545 | -keep=50 |
546 | -date_str="$(date -I)-$(date +%s)" # YYYY-MM-DD-EPOCH |
547 | -excludes="--exclude builds --exclude lastStable --exclude lastSuccessful --exclude fingerprints --exclude jobs-* --exclude temp --exclude tools --exclude checkout" |
548 | -ssh $BAK_USER_HOST "mkdir -vp $BAK_REMOTE_BASE_DIR/$date_str" |
549 | -rsync -avE $excludes /var/lib/jenkins/ $BAK_USER_HOST:$BAK_REMOTE_BASE_DIR/$date_str |
550 | -ssh $BAK_USER_HOST "(cd $BAK_REMOTE_BASE_DIR; ls -1tr | head -n -$keep | xargs rm -rf;)" |
551 | + <command>#!/bin/bash -eux |
552 | +. ~/oscirc |
553 | +~/osci-repo-boot-clean.sh |
554 | +. $OSCI_ROOT/run/job-parts/build_bak.sh |
555 | </command> |
556 | </hudson.tasks.Shell> |
557 | </builders> |
558 | <publishers/> |
559 | <buildWrappers> |
560 | - <hudson.plugins.ws__cleanup.PreBuildCleanup plugin="ws-cleanup@0.30"> |
561 | + <hudson.plugins.ws__cleanup.PreBuildCleanup plugin="ws-cleanup@0.32"> |
562 | <deleteDirs>false</deleteDirs> |
563 | <cleanupParameter></cleanupParameter> |
564 | <externalDelete></externalDelete> |
565 | </hudson.plugins.ws__cleanup.PreBuildCleanup> |
566 | - <hudson.plugins.timestamper.TimestamperBuildWrapper plugin="timestamper@1.8.4"/> |
567 | + <hudson.plugins.timestamper.TimestamperBuildWrapper plugin="timestamper@1.8.8"/> |
568 | </buildWrappers> |
569 | </project> |
570 | \ No newline at end of file |
571 | |
572 | === added directory 'deploy/jobs-static/_bootstrap' |
573 | === added file 'deploy/jobs-static/_bootstrap/config.xml' |
574 | --- deploy/jobs-static/_bootstrap/config.xml 1970-01-01 00:00:00 +0000 |
575 | +++ deploy/jobs-static/_bootstrap/config.xml 2017-05-27 00:22:36 +0000 |
576 | @@ -0,0 +1,110 @@ |
577 | +<?xml version='1.0' encoding='UTF-8'?> |
578 | +<project> |
579 | + <actions/> |
580 | + <description>Use to initialize tools branches on master and slave nodes. Chicken, egg, chicken. Gotta have code there for the other jobs to call.</description> |
581 | + <keepDependencies>false</keepDependencies> |
582 | + <properties> |
583 | + <jenkins.model.BuildDiscarderProperty> |
584 | + <strategy class="hudson.tasks.LogRotator"> |
585 | + <daysToKeep>-1</daysToKeep> |
586 | + <numToKeep>100</numToKeep> |
587 | + <artifactDaysToKeep>90</artifactDaysToKeep> |
588 | + <artifactNumToKeep>90</artifactNumToKeep> |
589 | + </strategy> |
590 | + </jenkins.model.BuildDiscarderProperty> |
591 | + <com.sonyericsson.rebuild.RebuildSettings plugin="rebuild@1.25"> |
592 | + <autoRebuild>false</autoRebuild> |
593 | + <rebuildDisabled>false</rebuildDisabled> |
594 | + </com.sonyericsson.rebuild.RebuildSettings> |
595 | + <hudson.model.ParametersDefinitionProperty> |
596 | + <parameterDefinitions> |
597 | + <org.jvnet.jenkins.plugins.nodelabelparameter.NodeParameterDefinition plugin="nodelabelparameter@1.7.2"> |
598 | + <name></name> |
599 | + <description></description> |
600 | + <allowedSlaves> |
601 | + <string>master</string> |
602 | + <string>osci-lab-0</string> |
603 | + <string>osci-lab-1</string> |
604 | + <string>osci-lab-2</string> |
605 | + <string>osci-lab-3</string> |
606 | + <string>osci-slave-0</string> |
607 | + <string>osci-slave-1</string> |
608 | + <string>osci-slave-10</string> |
609 | + <string>osci-slave-11</string> |
610 | + <string>osci-slave-2</string> |
611 | + <string>osci-slave-3</string> |
612 | + <string>osci-slave-4</string> |
613 | + <string>osci-slave-5</string> |
614 | + <string>osci-slave-6</string> |
615 | + <string>osci-slave-7</string> |
616 | + <string>osci-slave-8</string> |
617 | + <string>osci-slave-9</string> |
618 | + </allowedSlaves> |
619 | + <defaultSlaves> |
620 | + <string>osci-lab-0</string> |
621 | + <string>osci-lab-1</string> |
622 | + <string>osci-lab-2</string> |
623 | + <string>osci-lab-3</string> |
624 | + <string>osci-slave-0</string> |
625 | + <string>osci-slave-1</string> |
626 | + <string>osci-slave-10</string> |
627 | + <string>osci-slave-11</string> |
628 | + <string>osci-slave-2</string> |
629 | + <string>osci-slave-3</string> |
630 | + <string>osci-slave-4</string> |
631 | + <string>osci-slave-5</string> |
632 | + <string>osci-slave-6</string> |
633 | + <string>osci-slave-7</string> |
634 | + <string>osci-slave-8</string> |
635 | + <string>osci-slave-9</string> |
636 | + </defaultSlaves> |
637 | + <triggerIfResult>allowMultiSelectionForConcurrentBuilds</triggerIfResult> |
638 | + <allowMultiNodeSelection>true</allowMultiNodeSelection> |
639 | + <triggerConcurrentBuilds>true</triggerConcurrentBuilds> |
640 | + <ignoreOfflineNodes>false</ignoreOfflineNodes> |
641 | + <nodeEligibility class="org.jvnet.jenkins.plugins.nodelabelparameter.node.AllNodeEligibility"/> |
642 | + </org.jvnet.jenkins.plugins.nodelabelparameter.NodeParameterDefinition> |
643 | + </parameterDefinitions> |
644 | + </hudson.model.ParametersDefinitionProperty> |
645 | + <hudson.plugins.throttleconcurrents.ThrottleJobProperty plugin="throttle-concurrents@1.9.0"> |
646 | + <maxConcurrentPerNode>1</maxConcurrentPerNode> |
647 | + <maxConcurrentTotal>6</maxConcurrentTotal> |
648 | + <categories class="java.util.concurrent.CopyOnWriteArrayList"/> |
649 | + <throttleEnabled>true</throttleEnabled> |
650 | + <throttleOption>project</throttleOption> |
651 | + <limitOneJobWithMatchingParams>false</limitOneJobWithMatchingParams> |
652 | + <paramsToUseForLimit></paramsToUseForLimit> |
653 | + </hudson.plugins.throttleconcurrents.ThrottleJobProperty> |
654 | + <org.jvnet.hudson.plugins.shelveproject.ShelveProjectProperty plugin="shelve-project-plugin@1.5"/> |
655 | + </properties> |
656 | + <scm class="hudson.scm.NullSCM"/> |
657 | + <canRoam>true</canRoam> |
658 | + <disabled>false</disabled> |
659 | + <blockBuildWhenDownstreamBuilding>false</blockBuildWhenDownstreamBuilding> |
660 | + <blockBuildWhenUpstreamBuilding>false</blockBuildWhenUpstreamBuilding> |
661 | + <triggers> |
662 | + <hudson.triggers.TimerTrigger> |
663 | + <spec>45 23 * * *</spec> |
664 | + </hudson.triggers.TimerTrigger> |
665 | + </triggers> |
666 | + <concurrentBuild>true</concurrentBuild> |
667 | + <builders> |
668 | + <hudson.tasks.Shell> |
669 | + <command>#!/bin/bash -uex |
670 | +. ~/oscirc |
671 | +~/osci-repo-boot-clean.sh |
672 | +. ${OSCI_ROOT}/run/job-parts/osci_job_common.sh |
673 | +${OSCI_ROOT}/run/job-parts/build_juju_bootstrap.sh |
674 | +</command> |
675 | + </hudson.tasks.Shell> |
676 | + </builders> |
677 | + <publishers/> |
678 | + <buildWrappers> |
679 | + <hudson.plugins.timestamper.TimestamperBuildWrapper plugin="timestamper@1.8.8"/> |
680 | + <org.jenkinsci.plugins.buildnamesetter.BuildNameSetter plugin="build-name-setter@1.6.5"> |
681 | + <template>#${BUILD_NUMBER} ${ENV,var="NODE_NAME"}-${ENV,var="EXECUTOR_NUMBER"}</template> |
682 | + <runAtStart>true</runAtStart> |
683 | + <runAtEnd>true</runAtEnd> |
684 | + </org.jenkinsci.plugins.buildnamesetter.BuildNameSetter> |
685 | + </buildWrappers> |
686 | +</project> |
687 | \ No newline at end of file |
688 | |
689 | === renamed directory 'deployment/jobs/_bucket_junk_cleanup' => 'deploy/jobs-static/_bucket_junk_cleanup' |
690 | === modified file 'deploy/jobs-static/_bucket_junk_cleanup/config.xml' |
691 | --- deployment/jobs/_bucket_junk_cleanup/config.xml 2016-09-21 19:36:25 +0000 |
692 | +++ deploy/jobs-static/_bucket_junk_cleanup/config.xml 2017-05-27 00:22:36 +0000 |
693 | @@ -28,7 +28,7 @@ |
694 | <org.jvnet.hudson.plugins.shelveproject.ShelveProjectProperty plugin="shelve-project-plugin@1.5"/> |
695 | </properties> |
696 | <scm class="hudson.scm.NullSCM"/> |
697 | - <assignedNode>slave||lab</assignedNode> |
698 | + <assignedNode>task</assignedNode> |
699 | <canRoam>false</canRoam> |
700 | <disabled>false</disabled> |
701 | <blockBuildWhenDownstreamBuilding>false</blockBuildWhenDownstreamBuilding> |
702 | @@ -41,33 +41,22 @@ |
703 | <concurrentBuild>false</concurrentBuild> |
704 | <builders> |
705 | <hudson.tasks.Shell> |
706 | - <command>#!/bin/bash -e |
707 | -# Ensure we have a checkout of UOSCI code |
708 | -if [[ ! -f $OSCI_ROOT/job-parts/osci_job_common.sh ]]; then |
709 | - echo " - Removing checkout @ $OSCI_ROOT if it exists" |
710 | - rm -rf $OSCI_ROOT ||: |
711 | - echo " + Creating new lightweight checkout of $OSCI_REPO @ $OSCI_ROOT." |
712 | - bzr co --lightweight $OSCI_REPO $OSCI_ROOT |
713 | -fi |
714 | -echo "UOSCI revno: $(bzr revno $OSCI_ROOT)" |
715 | -</command> |
716 | - </hudson.tasks.Shell> |
717 | - <hudson.tasks.Shell> |
718 | - <command>#!/bin/bash -e |
719 | -${OSCI_ROOT}/job-parts/build_bucket_junk_cleanup.sh |
720 | -</command> |
721 | + <command>#!/bin/bash -ue |
722 | +. ~/oscirc |
723 | +~/osci-repo-boot-clean.sh |
724 | +${OSCI_ROOT}/run/job-parts/build_bucket_junk_cleanup.sh</command> |
725 | </hudson.tasks.Shell> |
726 | </builders> |
727 | <publishers/> |
728 | <buildWrappers> |
729 | - <hudson.plugins.ws__cleanup.PreBuildCleanup plugin="ws-cleanup@0.30"> |
730 | + <hudson.plugins.ws__cleanup.PreBuildCleanup plugin="ws-cleanup@0.32"> |
731 | <deleteDirs>false</deleteDirs> |
732 | <cleanupParameter></cleanupParameter> |
733 | <externalDelete></externalDelete> |
734 | </hudson.plugins.ws__cleanup.PreBuildCleanup> |
735 | - <hudson.plugins.timestamper.TimestamperBuildWrapper plugin="timestamper@1.8.4"/> |
736 | + <hudson.plugins.timestamper.TimestamperBuildWrapper plugin="timestamper@1.8.8"/> |
737 | <org.jenkinsci.plugins.buildnamesetter.BuildNameSetter plugin="build-name-setter@1.6.5"> |
738 | - <template>#${BUILD_NUMBER} ${ENV,var="NODE_NAME"}</template> |
739 | + <template>#${BUILD_NUMBER} ${ENV,var="NODE_NAME"}-${ENV,var="EXECUTOR_NUMBER"}</template> |
740 | <runAtStart>true</runAtStart> |
741 | <runAtEnd>true</runAtEnd> |
742 | </org.jenkinsci.plugins.buildnamesetter.BuildNameSetter> |
743 | |
744 | === renamed directory 'deployment/jobs/_bucket_reset_object_headers' => 'deploy/jobs-static/_bucket_reset_object_headers' |
745 | === modified file 'deploy/jobs-static/_bucket_reset_object_headers/config.xml' |
746 | --- deployment/jobs/_bucket_reset_object_headers/config.xml 2016-05-19 21:18:38 +0000 |
747 | +++ deploy/jobs-static/_bucket_reset_object_headers/config.xml 2017-05-27 00:22:36 +0000 |
748 | @@ -3,14 +3,20 @@ |
749 | <actions/> |
750 | <description>Not scheduled. Use to reset .txt and .html content-type object headers in the swift/radosgw container.
 |
751 | </description> |
752 | - <logRotator class="hudson.tasks.LogRotator"> |
753 | - <daysToKeep>-1</daysToKeep> |
754 | - <numToKeep>100</numToKeep> |
755 | - <artifactDaysToKeep>90</artifactDaysToKeep> |
756 | - <artifactNumToKeep>90</artifactNumToKeep> |
757 | - </logRotator> |
758 | <keepDependencies>false</keepDependencies> |
759 | <properties> |
760 | + <jenkins.model.BuildDiscarderProperty> |
761 | + <strategy class="hudson.tasks.LogRotator"> |
762 | + <daysToKeep>-1</daysToKeep> |
763 | + <numToKeep>100</numToKeep> |
764 | + <artifactDaysToKeep>90</artifactDaysToKeep> |
765 | + <artifactNumToKeep>90</artifactNumToKeep> |
766 | + </strategy> |
767 | + </jenkins.model.BuildDiscarderProperty> |
768 | + <com.sonyericsson.rebuild.RebuildSettings plugin="rebuild@1.25"> |
769 | + <autoRebuild>false</autoRebuild> |
770 | + <rebuildDisabled>false</rebuildDisabled> |
771 | + </com.sonyericsson.rebuild.RebuildSettings> |
772 | <hudson.model.ParametersDefinitionProperty> |
773 | <parameterDefinitions> |
774 | <hudson.model.StringParameterDefinition> |
775 | @@ -20,20 +26,19 @@ |
776 | </hudson.model.StringParameterDefinition> |
777 | </parameterDefinitions> |
778 | </hudson.model.ParametersDefinitionProperty> |
779 | - <com.sonyericsson.rebuild.RebuildSettings plugin="rebuild@1.25"> |
780 | - <autoRebuild>false</autoRebuild> |
781 | - <rebuildDisabled>false</rebuildDisabled> |
782 | - </com.sonyericsson.rebuild.RebuildSettings> |
783 | - <hudson.plugins.throttleconcurrents.ThrottleJobProperty plugin="throttle-concurrents@1.8.4"> |
784 | + <hudson.plugins.throttleconcurrents.ThrottleJobProperty plugin="throttle-concurrents@1.9.0"> |
785 | <maxConcurrentPerNode>1</maxConcurrentPerNode> |
786 | <maxConcurrentTotal>2</maxConcurrentTotal> |
787 | + <categories class="java.util.concurrent.CopyOnWriteArrayList"/> |
788 | <throttleEnabled>true</throttleEnabled> |
789 | <throttleOption>project</throttleOption> |
790 | + <limitOneJobWithMatchingParams>false</limitOneJobWithMatchingParams> |
791 | + <paramsToUseForLimit></paramsToUseForLimit> |
792 | </hudson.plugins.throttleconcurrents.ThrottleJobProperty> |
793 | <org.jvnet.hudson.plugins.shelveproject.ShelveProjectProperty plugin="shelve-project-plugin@1.5"/> |
794 | </properties> |
795 | <scm class="hudson.scm.NullSCM"/> |
796 | - <assignedNode>slave</assignedNode> |
797 | + <assignedNode>task</assignedNode> |
798 | <canRoam>false</canRoam> |
799 | <disabled>false</disabled> |
800 | <blockBuildWhenDownstreamBuilding>false</blockBuildWhenDownstreamBuilding> |
801 | @@ -43,89 +48,24 @@ |
802 | <builders> |
803 | <hudson.tasks.Shell> |
804 | <command>#!/bin/bash -e |
805 | -# Ensure we have a checkout of UOSCI code |
806 | -if [[ ! -f $OSCI_ROOT/job-parts/osci_job_common.sh ]]; then |
807 | - echo " - Removing checkout @ $OSCI_ROOT if it exists" |
808 | - rm -rf $OSCI_ROOT ||: |
809 | - echo " + Creating new lightweight checkout of $OSCI_REPO @ $OSCI_ROOT." |
810 | - bzr co --lightweight $OSCI_REPO $OSCI_ROOT |
811 | -fi |
812 | -echo "UOSCI revno: $(bzr revno $OSCI_ROOT)" |
813 | +. ~/oscirc |
814 | +~/osci-repo-boot-clean.sh |
815 | +${OSCI_ROOT}/run/job-parts/build_bucket_reset_object_headers.sh |
816 | </command> |
817 | </hudson.tasks.Shell> |
818 | - <hudson.tasks.Shell> |
819 | - <command>#!/bin/bash -e |
820 | -#${OSCI_ROOT}/job-parts/build_bucket_reset_object_headers.sh |
821 | - |
822 | -. ${OSCI_ROOT}/job-parts/osci_job_common.sh |
823 | -f_skip_juju_lxc |
824 | - |
825 | -f_gerrit_set_blob_vars |
826 | -env | egrep "BUILD|JOB_|GERRIT|UOSCI|HUDSON|JENKINS|WORKSPACE" | sort |
827 | -f_novarc_undercloud |
828 | - |
829 | -function bucket_reset_txt_html_object_headers(){ |
830 | - # This is a quick and dirty fix to set object header data in radosgw/swift container. |
831 | - # Objects uploaded with >= liberty clients are likely set as binary content-type |
832 | - |
833 | - [[ -z "$OBJECT_MATCH_PATTERN" ]] && export OBJECT_MATCH_PATTERN="" |
834 | - |
835 | - f_line "Updating *.txt and *.html content-type object headers" |
836 | - |
837 | - work_dir="$(mktemp -d)" |
838 | - tmp_object_list="$(mktemp)" |
839 | - |
840 | - echo " . Selecting .txt and .html files in $UOSCI_BUCKET_NAME..." |
841 | - echo " . OBJECT_MATCH_PATTERN: $OBJECT_MATCH_PATTERN" |
842 | - swift list $UOSCI_BUCKET_NAME | egrep ".txt$|.html$" | grep "$OBJECT_MATCH_PATTERN" > $tmp_object_list ||: |
843 | - |
844 | - if [[ "$(wc -l $tmp_object_list)" == "0 $tmp_object_list" ]]; then |
845 | - echo " . No objects found to update" |
846 | - fi |
847 | - |
848 | - cd $work_dir |
849 | - |
850 | - while read -r line; do |
851 | - # Trim whitespace if it exists |
852 | - line="$(echo $line | sed 's/^[ \t]*//;s/[ \t]*$//')" |
853 | - |
854 | - # Update object |
855 | - if [[ -n "$line" ]]; then |
856 | - echo " - Updating object: $line" |
857 | - if [[ "$line" == *.html ]]; then |
858 | - swift post $UOSCI_BUCKET_NAME $line -H "content-type:text/html" |
859 | - elif [[ "$line" == *.txt ]]; then |
860 | - swift post $UOSCI_BUCKET_NAME $line -H "content-type:text/plain" |
861 | - else |
862 | - echo " ! Ignoring: $line" |
863 | - fi |
864 | - else |
865 | - # Let's not modify the container itself! |
866 | - echo " ! Skipping dangerous variable as read: $line" |
867 | - fi |
868 | - done < "$tmp_object_list" |
869 | - |
870 | - rm -fv $tmp_object_list |
871 | - |
872 | - f_line "END: Updating txt and html object headers" |
873 | -} |
874 | - |
875 | -bucket_reset_txt_html_object_headers |
876 | - |
877 | -f_nice_finish |
878 | -f_check_fail</command> |
879 | - </hudson.tasks.Shell> |
880 | </builders> |
881 | <publishers/> |
882 | <buildWrappers> |
883 | - <hudson.plugins.ws__cleanup.PreBuildCleanup plugin="ws-cleanup@0.28"> |
884 | + <hudson.plugins.ws__cleanup.PreBuildCleanup plugin="ws-cleanup@0.32"> |
885 | <deleteDirs>false</deleteDirs> |
886 | <cleanupParameter></cleanupParameter> |
887 | <externalDelete></externalDelete> |
888 | </hudson.plugins.ws__cleanup.PreBuildCleanup> |
889 | - <hudson.plugins.timestamper.TimestamperBuildWrapper plugin="timestamper@1.6"/> |
890 | - <org.jenkinsci.plugins.buildnamesetter.BuildNameSetter plugin="build-name-setter@1.3"> |
891 | - <template>#${BUILD_NUMBER} ${ENV,var="NODE_NAME"}</template> |
892 | + <hudson.plugins.timestamper.TimestamperBuildWrapper plugin="timestamper@1.8.8"/> |
893 | + <org.jenkinsci.plugins.buildnamesetter.BuildNameSetter plugin="build-name-setter@1.6.5"> |
894 | + <template>#${BUILD_NUMBER} ${ENV,var="NODE_NAME"}-${ENV,var="EXECUTOR_NUMBER"}</template> |
895 | + <runAtStart>true</runAtStart> |
896 | + <runAtEnd>true</runAtEnd> |
897 | </org.jenkinsci.plugins.buildnamesetter.BuildNameSetter> |
898 | </buildWrappers> |
899 | </project> |
900 | \ No newline at end of file |
901 | |
902 | === renamed directory 'deployment/jobs/_bucket_update_indices' => 'deploy/jobs-static/_bucket_update_indices' |
903 | === modified file 'deploy/jobs-static/_bucket_update_indices/config.xml' |
904 | --- deployment/jobs/_bucket_update_indices/config.xml 2016-09-21 19:36:25 +0000 |
905 | +++ deploy/jobs-static/_bucket_update_indices/config.xml 2017-05-27 00:22:36 +0000 |
906 | @@ -24,49 +24,41 @@ |
907 | <throttleOption>project</throttleOption> |
908 | <limitOneJobWithMatchingParams>false</limitOneJobWithMatchingParams> |
909 | <paramsToUseForLimit></paramsToUseForLimit> |
910 | + <configVersion>1</configVersion> |
911 | </hudson.plugins.throttleconcurrents.ThrottleJobProperty> |
912 | <org.jvnet.hudson.plugins.shelveproject.ShelveProjectProperty plugin="shelve-project-plugin@1.5"/> |
913 | </properties> |
914 | <scm class="hudson.scm.NullSCM"/> |
915 | - <assignedNode>master||slave||lab</assignedNode> |
916 | + <assignedNode>task</assignedNode> |
917 | <canRoam>false</canRoam> |
918 | <disabled>false</disabled> |
919 | <blockBuildWhenDownstreamBuilding>false</blockBuildWhenDownstreamBuilding> |
920 | <blockBuildWhenUpstreamBuilding>false</blockBuildWhenUpstreamBuilding> |
921 | <triggers> |
922 | <hudson.triggers.TimerTrigger> |
923 | - <spec>H/10 * * * *</spec> |
924 | + <spec>H * * * *</spec> |
925 | </hudson.triggers.TimerTrigger> |
926 | </triggers> |
927 | <concurrentBuild>false</concurrentBuild> |
928 | <builders> |
929 | <hudson.tasks.Shell> |
930 | <command>#!/bin/bash -e |
931 | -# Ensure we have a checkout of UOSCI code |
932 | -if [[ ! -f $OSCI_ROOT/job-parts/osci_job_common.sh ]]; then |
933 | - echo " - Removing checkout @ $OSCI_ROOT if it exists" |
934 | - rm -rf $OSCI_ROOT ||: |
935 | - echo " + Creating new lightweight checkout of $OSCI_REPO @ $OSCI_ROOT." |
936 | - bzr co --lightweight $OSCI_REPO $OSCI_ROOT |
937 | -fi |
938 | -echo "UOSCI revno: $(bzr revno $OSCI_ROOT)" |
939 | +. ~/oscirc |
940 | +~/osci-repo-boot-clean.sh |
941 | +. $OSCI_ROOT/run/job-parts/build_bucket_update_indices.sh |
942 | </command> |
943 | </hudson.tasks.Shell> |
944 | - <hudson.tasks.Shell> |
945 | - <command>#!/bin/bash -e |
946 | -${OSCI_ROOT}/job-parts/build_bucket_update_indices.sh</command> |
947 | - </hudson.tasks.Shell> |
948 | </builders> |
949 | <publishers/> |
950 | <buildWrappers> |
951 | - <hudson.plugins.ws__cleanup.PreBuildCleanup plugin="ws-cleanup@0.30"> |
952 | + <hudson.plugins.ws__cleanup.PreBuildCleanup plugin="ws-cleanup@0.32"> |
953 | <deleteDirs>false</deleteDirs> |
954 | <cleanupParameter></cleanupParameter> |
955 | <externalDelete></externalDelete> |
956 | </hudson.plugins.ws__cleanup.PreBuildCleanup> |
957 | - <hudson.plugins.timestamper.TimestamperBuildWrapper plugin="timestamper@1.8.4"/> |
958 | + <hudson.plugins.timestamper.TimestamperBuildWrapper plugin="timestamper@1.8.8"/> |
959 | <org.jenkinsci.plugins.buildnamesetter.BuildNameSetter plugin="build-name-setter@1.6.5"> |
960 | - <template>#${BUILD_NUMBER} ${ENV,var="NODE_NAME"}</template> |
961 | + <template>#${BUILD_NUMBER} ${ENV,var="NODE_NAME"}-${ENV,var="EXECUTOR_NUMBER"}</template> |
962 | <runAtStart>true</runAtStart> |
963 | <runAtEnd>true</runAtEnd> |
964 | </org.jenkinsci.plugins.buildnamesetter.BuildNameSetter> |
965 | |
966 | === added directory 'deploy/jobs-static/_destroy_controller' |
967 | === added file 'deploy/jobs-static/_destroy_controller/config.xml' |
968 | --- deploy/jobs-static/_destroy_controller/config.xml 1970-01-01 00:00:00 +0000 |
969 | +++ deploy/jobs-static/_destroy_controller/config.xml 2017-05-27 00:22:36 +0000 |
970 | @@ -0,0 +1,110 @@ |
971 | +<?xml version='1.0' encoding='UTF-8'?> |
972 | +<project> |
973 | + <actions/> |
974 | + <description></description> |
975 | + <keepDependencies>false</keepDependencies> |
976 | + <properties> |
977 | + <jenkins.model.BuildDiscarderProperty> |
978 | + <strategy class="hudson.tasks.LogRotator"> |
979 | + <daysToKeep>-1</daysToKeep> |
980 | + <numToKeep>100</numToKeep> |
981 | + <artifactDaysToKeep>90</artifactDaysToKeep> |
982 | + <artifactNumToKeep>90</artifactNumToKeep> |
983 | + </strategy> |
984 | + </jenkins.model.BuildDiscarderProperty> |
985 | + <com.sonyericsson.rebuild.RebuildSettings plugin="rebuild@1.25"> |
986 | + <autoRebuild>false</autoRebuild> |
987 | + <rebuildDisabled>false</rebuildDisabled> |
988 | + </com.sonyericsson.rebuild.RebuildSettings> |
989 | + <hudson.model.ParametersDefinitionProperty> |
990 | + <parameterDefinitions> |
991 | + <org.jvnet.jenkins.plugins.nodelabelparameter.NodeParameterDefinition plugin="nodelabelparameter@1.7.2"> |
992 | + <name></name> |
993 | + <description></description> |
994 | + <allowedSlaves> |
995 | + <string>master</string> |
996 | + <string>osci-lab-0</string> |
997 | + <string>osci-lab-1</string> |
998 | + <string>osci-lab-2</string> |
999 | + <string>osci-lab-3</string> |
1000 | + <string>osci-slave-0</string> |
1001 | + <string>osci-slave-1</string> |
1002 | + <string>osci-slave-10</string> |
1003 | + <string>osci-slave-11</string> |
1004 | + <string>osci-slave-2</string> |
1005 | + <string>osci-slave-3</string> |
1006 | + <string>osci-slave-4</string> |
1007 | + <string>osci-slave-5</string> |
1008 | + <string>osci-slave-6</string> |
1009 | + <string>osci-slave-7</string> |
1010 | + <string>osci-slave-8</string> |
1011 | + <string>osci-slave-9</string> |
1012 | + </allowedSlaves> |
1013 | + <defaultSlaves> |
1014 | + <string>osci-lab-0</string> |
1015 | + <string>osci-lab-1</string> |
1016 | + <string>osci-lab-2</string> |
1017 | + <string>osci-lab-3</string> |
1018 | + <string>osci-slave-0</string> |
1019 | + <string>osci-slave-1</string> |
1020 | + <string>osci-slave-10</string> |
1021 | + <string>osci-slave-11</string> |
1022 | + <string>osci-slave-2</string> |
1023 | + <string>osci-slave-3</string> |
1024 | + <string>osci-slave-4</string> |
1025 | + <string>osci-slave-5</string> |
1026 | + <string>osci-slave-6</string> |
1027 | + <string>osci-slave-7</string> |
1028 | + <string>osci-slave-8</string> |
1029 | + <string>osci-slave-9</string> |
1030 | + </defaultSlaves> |
1031 | + <triggerIfResult>allowMultiSelectionForConcurrentBuilds</triggerIfResult> |
1032 | + <allowMultiNodeSelection>true</allowMultiNodeSelection> |
1033 | + <triggerConcurrentBuilds>true</triggerConcurrentBuilds> |
1034 | + <ignoreOfflineNodes>false</ignoreOfflineNodes> |
1035 | + <nodeEligibility class="org.jvnet.jenkins.plugins.nodelabelparameter.node.AllNodeEligibility"/> |
1036 | + </org.jvnet.jenkins.plugins.nodelabelparameter.NodeParameterDefinition> |
1037 | + </parameterDefinitions> |
1038 | + </hudson.model.ParametersDefinitionProperty> |
1039 | + <hudson.plugins.throttleconcurrents.ThrottleJobProperty plugin="throttle-concurrents@1.9.0"> |
1040 | + <maxConcurrentPerNode>0</maxConcurrentPerNode> |
1041 | + <maxConcurrentTotal>32</maxConcurrentTotal> |
1042 | + <categories class="java.util.concurrent.CopyOnWriteArrayList"/> |
1043 | + <throttleEnabled>true</throttleEnabled> |
1044 | + <throttleOption>project</throttleOption> |
1045 | + <limitOneJobWithMatchingParams>false</limitOneJobWithMatchingParams> |
1046 | + <paramsToUseForLimit></paramsToUseForLimit> |
1047 | + </hudson.plugins.throttleconcurrents.ThrottleJobProperty> |
1048 | + <org.jvnet.hudson.plugins.shelveproject.ShelveProjectProperty plugin="shelve-project-plugin@1.5"/> |
1049 | + </properties> |
1050 | + <scm class="hudson.scm.NullSCM"/> |
1051 | + <canRoam>true</canRoam> |
1052 | + <disabled>false</disabled> |
1053 | + <blockBuildWhenDownstreamBuilding>false</blockBuildWhenDownstreamBuilding> |
1054 | + <blockBuildWhenUpstreamBuilding>false</blockBuildWhenUpstreamBuilding> |
1055 | + <triggers> |
1056 | + <hudson.triggers.TimerTrigger> |
1057 | + <spec>00 0 * * 5</spec> |
1058 | + </hudson.triggers.TimerTrigger> |
1059 | + </triggers> |
1060 | + <concurrentBuild>true</concurrentBuild> |
1061 | + <builders> |
1062 | + <hudson.tasks.Shell> |
1063 | + <command>#!/bin/bash -uex |
1064 | +. ~/oscirc |
1065 | +~/osci-repo-boot-clean.sh |
1066 | +. ${OSCI_ROOT}/run/job-parts/osci_job_common.sh |
1067 | +${OSCI_ROOT}/run/job-parts/build_juju_destroy_controller.sh |
1068 | +</command> |
1069 | + </hudson.tasks.Shell> |
1070 | + </builders> |
1071 | + <publishers/> |
1072 | + <buildWrappers> |
1073 | + <hudson.plugins.timestamper.TimestamperBuildWrapper plugin="timestamper@1.8.8"/> |
1074 | + <org.jenkinsci.plugins.buildnamesetter.BuildNameSetter plugin="build-name-setter@1.6.5"> |
1075 | + <template>#${BUILD_NUMBER} ${ENV,var="NODE_NAME"}-${ENV,var="EXECUTOR_NUMBER"}</template> |
1076 | + <runAtStart>true</runAtStart> |
1077 | + <runAtEnd>true</runAtEnd> |
1078 | + </org.jenkinsci.plugins.buildnamesetter.BuildNameSetter> |
1079 | + </buildWrappers> |
1080 | +</project> |
1081 | \ No newline at end of file |
1082 | |
1083 | === added directory 'deploy/jobs-static/_destroy_model' |
1084 | === added file 'deploy/jobs-static/_destroy_model/config.xml' |
1085 | --- deploy/jobs-static/_destroy_model/config.xml 1970-01-01 00:00:00 +0000 |
1086 | +++ deploy/jobs-static/_destroy_model/config.xml 2017-05-27 00:22:36 +0000 |
1087 | @@ -0,0 +1,110 @@ |
1088 | +<?xml version='1.0' encoding='UTF-8'?> |
1089 | +<project> |
1090 | + <actions/> |
1091 | + <description></description> |
1092 | + <keepDependencies>false</keepDependencies> |
1093 | + <properties> |
1094 | + <jenkins.model.BuildDiscarderProperty> |
1095 | + <strategy class="hudson.tasks.LogRotator"> |
1096 | + <daysToKeep>-1</daysToKeep> |
1097 | + <numToKeep>100</numToKeep> |
1098 | + <artifactDaysToKeep>90</artifactDaysToKeep> |
1099 | + <artifactNumToKeep>90</artifactNumToKeep> |
1100 | + </strategy> |
1101 | + </jenkins.model.BuildDiscarderProperty> |
1102 | + <com.sonyericsson.rebuild.RebuildSettings plugin="rebuild@1.25"> |
1103 | + <autoRebuild>false</autoRebuild> |
1104 | + <rebuildDisabled>false</rebuildDisabled> |
1105 | + </com.sonyericsson.rebuild.RebuildSettings> |
1106 | + <hudson.model.ParametersDefinitionProperty> |
1107 | + <parameterDefinitions> |
1108 | + <org.jvnet.jenkins.plugins.nodelabelparameter.NodeParameterDefinition plugin="nodelabelparameter@1.7.2"> |
1109 | + <name></name> |
1110 | + <description></description> |
1111 | + <allowedSlaves> |
1112 | + <string>master</string> |
1113 | + <string>osci-lab-0</string> |
1114 | + <string>osci-lab-1</string> |
1115 | + <string>osci-lab-2</string> |
1116 | + <string>osci-lab-3</string> |
1117 | + <string>osci-slave-0</string> |
1118 | + <string>osci-slave-1</string> |
1119 | + <string>osci-slave-10</string> |
1120 | + <string>osci-slave-11</string> |
1121 | + <string>osci-slave-2</string> |
1122 | + <string>osci-slave-3</string> |
1123 | + <string>osci-slave-4</string> |
1124 | + <string>osci-slave-5</string> |
1125 | + <string>osci-slave-6</string> |
1126 | + <string>osci-slave-7</string> |
1127 | + <string>osci-slave-8</string> |
1128 | + <string>osci-slave-9</string> |
1129 | + </allowedSlaves> |
1130 | + <defaultSlaves> |
1131 | + <string>osci-lab-0</string> |
1132 | + <string>osci-lab-1</string> |
1133 | + <string>osci-lab-2</string> |
1134 | + <string>osci-lab-3</string> |
1135 | + <string>osci-slave-0</string> |
1136 | + <string>osci-slave-1</string> |
1137 | + <string>osci-slave-10</string> |
1138 | + <string>osci-slave-11</string> |
1139 | + <string>osci-slave-2</string> |
1140 | + <string>osci-slave-3</string> |
1141 | + <string>osci-slave-4</string> |
1142 | + <string>osci-slave-5</string> |
1143 | + <string>osci-slave-6</string> |
1144 | + <string>osci-slave-7</string> |
1145 | + <string>osci-slave-8</string> |
1146 | + <string>osci-slave-9</string> |
1147 | + </defaultSlaves> |
1148 | + <triggerIfResult>allowMultiSelectionForConcurrentBuilds</triggerIfResult> |
1149 | + <allowMultiNodeSelection>true</allowMultiNodeSelection> |
1150 | + <triggerConcurrentBuilds>true</triggerConcurrentBuilds> |
1151 | + <ignoreOfflineNodes>false</ignoreOfflineNodes> |
1152 | + <nodeEligibility class="org.jvnet.jenkins.plugins.nodelabelparameter.node.AllNodeEligibility"/> |
1153 | + </org.jvnet.jenkins.plugins.nodelabelparameter.NodeParameterDefinition> |
1154 | + </parameterDefinitions> |
1155 | + </hudson.model.ParametersDefinitionProperty> |
1156 | + <hudson.plugins.throttleconcurrents.ThrottleJobProperty plugin="throttle-concurrents@1.9.0"> |
1157 | + <maxConcurrentPerNode>0</maxConcurrentPerNode> |
1158 | + <maxConcurrentTotal>32</maxConcurrentTotal> |
1159 | + <categories class="java.util.concurrent.CopyOnWriteArrayList"/> |
1160 | + <throttleEnabled>true</throttleEnabled> |
1161 | + <throttleOption>project</throttleOption> |
1162 | + <limitOneJobWithMatchingParams>false</limitOneJobWithMatchingParams> |
1163 | + <paramsToUseForLimit></paramsToUseForLimit> |
1164 | + </hudson.plugins.throttleconcurrents.ThrottleJobProperty> |
1165 | + <org.jvnet.hudson.plugins.shelveproject.ShelveProjectProperty plugin="shelve-project-plugin@1.5"/> |
1166 | + </properties> |
1167 | + <scm class="hudson.scm.NullSCM"/> |
1168 | + <canRoam>true</canRoam> |
1169 | + <disabled>false</disabled> |
1170 | + <blockBuildWhenDownstreamBuilding>false</blockBuildWhenDownstreamBuilding> |
1171 | + <blockBuildWhenUpstreamBuilding>false</blockBuildWhenUpstreamBuilding> |
1172 | + <triggers> |
1173 | + <hudson.triggers.TimerTrigger> |
1174 | + <spec>H 23 * * *</spec> |
1175 | + </hudson.triggers.TimerTrigger> |
1176 | + </triggers> |
1177 | + <concurrentBuild>true</concurrentBuild> |
1178 | + <builders> |
1179 | + <hudson.tasks.Shell> |
1180 | + <command>#!/bin/bash -uex |
1181 | +. ~/oscirc |
1182 | +~/osci-repo-boot-clean.sh |
1183 | +. ${OSCI_ROOT}/run/job-parts/osci_job_common.sh |
1184 | +${OSCI_ROOT}/run/job-parts/build_juju_destroy_model.sh |
1185 | +</command> |
1186 | + </hudson.tasks.Shell> |
1187 | + </builders> |
1188 | + <publishers/> |
1189 | + <buildWrappers> |
1190 | + <hudson.plugins.timestamper.TimestamperBuildWrapper plugin="timestamper@1.8.8"/> |
1191 | + <org.jenkinsci.plugins.buildnamesetter.BuildNameSetter plugin="build-name-setter@1.6.5"> |
1192 | + <template>#${BUILD_NUMBER} ${ENV,var="NODE_NAME"}-${ENV,var="EXECUTOR_NUMBER"}</template> |
1193 | + <runAtStart>true</runAtStart> |
1194 | + <runAtEnd>true</runAtEnd> |
1195 | + </org.jenkinsci.plugins.buildnamesetter.BuildNameSetter> |
1196 | + </buildWrappers> |
1197 | +</project> |
1198 | \ No newline at end of file |
1199 | |
1200 | === renamed directory 'deployment/jobs/_no_op' => 'deploy/jobs-static/_no_op' |
1201 | === modified file 'deploy/jobs-static/_no_op/config.xml' |
1202 | --- deployment/jobs/_no_op/config.xml 2016-12-09 21:50:02 +0000 |
1203 | +++ deploy/jobs-static/_no_op/config.xml 2017-05-27 00:22:36 +0000 |
1204 | @@ -43,9 +43,7 @@ |
1205 | <hudson.plugins.throttleconcurrents.ThrottleJobProperty plugin="throttle-concurrents@1.9.0"> |
1206 | <maxConcurrentPerNode>0</maxConcurrentPerNode> |
1207 | <maxConcurrentTotal>20</maxConcurrentTotal> |
1208 | - <categories class="java.util.concurrent.CopyOnWriteArrayList"> |
1209 | - <string>false</string> |
1210 | - </categories> |
1211 | + <categories class="java.util.concurrent.CopyOnWriteArrayList"/> |
1212 | <throttleEnabled>true</throttleEnabled> |
1213 | <throttleOption>project</throttleOption> |
1214 | <limitOneJobWithMatchingParams>false</limitOneJobWithMatchingParams> |
1215 | @@ -54,7 +52,7 @@ |
1216 | <org.jvnet.hudson.plugins.shelveproject.ShelveProjectProperty plugin="shelve-project-plugin@1.5"/> |
1217 | </properties> |
1218 | <scm class="hudson.scm.NullSCM"/> |
1219 | - <assignedNode>task</assignedNode> |
1220 | + <assignedNode>task||slave</assignedNode> |
1221 | <canRoam>false</canRoam> |
1222 | <disabled>false</disabled> |
1223 | <blockBuildWhenDownstreamBuilding>false</blockBuildWhenDownstreamBuilding> |
1224 | @@ -63,160 +61,14 @@ |
1225 | <concurrentBuild>true</concurrentBuild> |
1226 | <builders> |
1227 | <hudson.tasks.Shell> |
1228 | - <command>#!/bin/bash -e |
1229 | - |
1230 | -function f_tool_refresh_osci() { |
1231 | -# ubuntu_openstack_ci fresh |
1232 | - [[ -z "$OSCI_REPO" ]] && export OSCI_REPO="lp:ubuntu-openstack-ci" |
1233 | - export OSCI_ROOT="${HOME}/tools/$EXECUTOR_NUMBER/ubuntu-openstack-ci" |
1234 | - |
1235 | - if [[ -d $OSCI_ROOT ]]; then |
1236 | - echo " - Removing existing checkout @ $OSCI_ROOT" |
1237 | - rm -rf $OSCI_ROOT |
1238 | - fi |
1239 | - echo " + Creating new lightweight checkout of $OSCI_REPO @ $OSCI_ROOT." |
1240 | - mkdir -p $OSCI_ROOT |
1241 | - bzr co --lightweight $OSCI_REPO $OSCI_ROOT |
1242 | - echo "revno: $(bzr revno $OSCI_ROOT)" |
1243 | -} |
1244 | - |
1245 | - |
1246 | -function f_tool_refresh_oct() { |
1247 | -# keep openstack_charm_testing fresh |
1248 | - [[ -z "$OPENSTACK_CHARM_TESTING_REPO" ]] && export OPENSTACK_CHARM_TESTING_REPO="lp:openstack-charm-testing" |
1249 | - export OPENSTACK_CHARM_TESTING_ROOT="${HOME}/tools/$EXECUTOR_NUMBER/openstack-charm-testing" |
1250 | - |
1251 | - if [[ -d $OPENSTACK_CHARM_TESTING_ROOT ]]; then |
1252 | - echo " - Removing existing checkout of @ $OPENSTACK_CHARM_TESTING_ROOT" |
1253 | - rm -rf $OPENSTACK_CHARM_TESTING_ROOT |
1254 | - fi |
1255 | - echo " + Creating new lightweight checkout of $OPENSTACK_CHARM_TESTING_REPO @ $OPENSTACK_CHARM_TESTING_ROOT." |
1256 | - mkdir -p $OPENSTACK_CHARM_TESTING_ROOT |
1257 | - bzr co --lightweight $OPENSTACK_CHARM_TESTING_REPO $OPENSTACK_CHARM_TESTING_ROOT |
1258 | - echo "revno: $(bzr revno $OPENSTACK_CHARM_TESTING_ROOT)" |
1259 | -} |
1260 | - |
1261 | - |
1262 | -function f_tool_refresh_juju_wait() { |
1263 | -# keep juju_wait fresh |
1264 | - [[ -z "$JUJU_WAIT_REPO" ]] && export JUJU_WAIT_REPO="https://git.launchpad.net/juju-wait" |
1265 | - [[ -z "$JUJU_WAIT_BRANCH" ]] && export JUJU_WAIT_BRANCH="master" |
1266 | - export JUJU_WAIT_ROOT="${HOME}/tools/$EXECUTOR_NUMBER/juju-wait" |
1267 | - |
1268 | - if [[ -d $JUJU_WAIT_ROOT ]]; then |
1269 | - echo " - Removing existing dir @ $JUJU_WAIT_ROOT" |
1270 | - rm -rf $JUJU_WAIT_ROOT |
1271 | - fi |
1272 | - |
1273 | - echo " + Creating new shallow clone of $JUJU_WAIT_REPO @ $JUJU_WAIT_ROOT ($JUJU_WAIT_BRANCH)." |
1274 | - mkdir -p $JUJU_WAIT_BRANCH |
1275 | - git clone -q --depth=1 $JUJU_WAIT_REPO $JUJU_WAIT_ROOT -b $JUJU_WAIT_BRANCH |
1276 | - git -C $JUJU_WAIT_ROOT branch -av |
1277 | - git -C $JUJU_WAIT_ROOT remote -v |
1278 | -} |
1279 | - |
1280 | - |
1281 | -function f_tool_refresh_migration_tools() { |
1282 | -# Git the migration tools |
1283 | - [[ -z "$UOSCI_MIG_TOOLS_REPO" ]] && export UOSCI_MIG_TOOLS_REPO="https://github.com/openstack-charmers/migration-tools" |
1284 | - [[ -z "$UOSCI_MIG_TOOLS_BRANCH" ]] && export UOSCI_MIG_TOOLS_BRANCH="master" |
1285 | - export UOSCI_MIG_TOOLS_ROOT="$HOME/tools/$EXECUTOR_NUMBER/migration-tools" |
1286 | - |
1287 | - if [[ -d $UOSCI_MIG_TOOLS_ROOT ]]; then |
1288 | - echo " - Removing existing dir @ $UOSCI_MIG_TOOLS_ROOT" |
1289 | - rm -rf $UOSCI_MIG_TOOLS_ROOT |
1290 | - fi |
1291 | - |
1292 | - echo " + Creating new shallow clone of $UOSCI_MIG_TOOLS_REPO @ $UOSCI_MIG_TOOLS_ROOT ($UOSCI_MIG_TOOLS_BRANCH)." |
1293 | - mkdir -p $UOSCI_MIG_TOOLS_BRANCH |
1294 | - git clone -q --depth=1 $UOSCI_MIG_TOOLS_REPO $UOSCI_MIG_TOOLS_ROOT -b $UOSCI_MIG_TOOLS_BRANCH |
1295 | - git -C $UOSCI_MIG_TOOLS_ROOT branch -av |
1296 | - git -C $UOSCI_MIG_TOOLS_ROOT remote -v |
1297 | -} |
1298 | - |
1299 | - |
1300 | -function f_tool_refresh_bot_control() { |
1301 | -# Git the bot-control repo |
1302 | - [[ -z "$UOSCI_BOT_CONTROL_REPO" ]] && export UOSCI_BOT_CONTROL_REPO="https://github.com/openstack-charmers/bot-control.git" |
1303 | - [[ -z "$UOSCI_BOT_CONTROL_BRANCH" ]] && export UOSCI_BOT_CONTROL_BRANCH="master" |
1304 | - export UOSCI_BOT_CONTROL_ROOT="${HOME}/tools/$EXECUTOR_NUMBER/bot-control" |
1305 | - |
1306 | - if [[ -d $UOSCI_BOT_CONTROL_ROOT ]]; then |
1307 | - echo " - Removing existing dir @ $UOSCI_BOT_CONTROL_ROOT" |
1308 | - rm -rf $UOSCI_BOT_CONTROL_ROOT |
1309 | - fi |
1310 | - |
1311 | - echo " + Creating new shallow clone of $UOSCI_BOT_CONTROL_REPO @ $UOSCI_BOT_CONTROL_ROOT ($UOSCI_BOT_CONTROL_BRANCH)" |
1312 | - mkdir -p $UOSCI_BOT_CONTROL_BRANCH |
1313 | - git clone -q --depth=1 $UOSCI_BOT_CONTROL_REPO $UOSCI_BOT_CONTROL_ROOT -b $UOSCI_BOT_CONTROL_BRANCH |
1314 | - git -C $UOSCI_BOT_CONTROL_ROOT branch -av |
1315 | - git -C $UOSCI_BOT_CONTROL_ROOT remote -v |
1316 | -} |
1317 | - |
1318 | - |
1319 | -function f_tool_refresh_release_tools() { |
1320 | -# Git the release-tools repo |
1321 | - [[ -z "$UOSCI_RELEASE_TOOLS_REPO" ]] && export UOSCI_RELEASE_TOOLS_REPO="https://github.com/openstack-charmers/release-tools" |
1322 | - [[ -z "$UOSCI_RELEASE_TOOLS_BRANCH" ]] && export UOSCI_RELEASE_TOOLS_BRANCH="master" |
1323 | - export UOSCI_RELEASE_TOOLS_ROOT="${HOME}/tools/$EXECUTOR_NUMBER/release-tools" |
1324 | - |
1325 | - if [[ -d $UOSCI_RELEASE_TOOLS_ROOT ]]; then |
1326 | - echo " - Removing existing dir @ $UOSCI_RELEASE_TOOLS_ROOT" |
1327 | - rm -rf $UOSCI_RELEASE_TOOLS_ROOT |
1328 | - fi |
1329 | - |
1330 | - echo " + Creating shallow new clone of $UOSCI_RELEASE_TOOLS_REPO @ $UOSCI_RELEASE_TOOLS_ROOT ($UOSCI_RELEASE_TOOLS_BRANCH)" |
1331 | - mkdir -p $UOSCI_RELEASE_TOOLS_BRANCH |
1332 | - git clone -q --depth=1 $UOSCI_RELEASE_TOOLS_REPO $UOSCI_RELEASE_TOOLS_ROOT -b $UOSCI_RELEASE_TOOLS_BRANCH |
1333 | - git -C $UOSCI_RELEASE_TOOLS_ROOT branch -av |
1334 | - git -C $UOSCI_RELEASE_TOOLS_ROOT remote -v |
1335 | -} |
1336 | - |
1337 | - |
1338 | -function f_tools_refresh() { |
1339 | - if [[ "${NO_TOOLS_REFRESH^^}" != "TRUE" ]]; then |
1340 | - echo "Refreshing checkouts..." |
1341 | - f_tool_refresh_osci |
1342 | - f_tool_refresh_migration_tools |
1343 | - f_tool_refresh_bot_control |
1344 | - f_tool_refresh_release_tools |
1345 | - |
1346 | - if [[ "${SKIP_JUJU_LXC^^}" != "TRUE" ]]; then |
1347 | - f_tool_refresh_oct |
1348 | - f_tool_refresh_juju_wait |
1349 | - fi |
1350 | - |
1351 | - else |
1352 | - echo " - Not refreshing UOSCI & O-C-T branches due to env var." |
1353 | - fi |
1354 | -} |
1355 | - |
1356 | -f_tools_refresh |
1357 | - |
1358 | - |
1359 | -############### |
1360 | - |
1361 | -env | sort |
1362 | - |
1363 | -############### |
1364 | - |
1365 | -. ${OSCI_ROOT}/job-parts/osci_job_common.sh |
1366 | -f_line "${OSCI_ROOT}/job-parts/osci_job_common.sh" |
1367 | - |
1368 | - |
1369 | -# Not expected to work on multi-executor slaves |
1370 | -#f_line "Flip-flopping Juju major versions" |
1371 | -#juju version |
1372 | -#f_go_juju2 |
1373 | -#juju version |
1374 | -#f_go_juju1 |
1375 | -#juju version |
1376 | - |
1377 | -############### |
1378 | + <command>#!/bin/bash -ue |
1379 | +. ~/oscirc |
1380 | +~/osci-repo-boot.sh |
1381 | |
1382 | uname -a |
1383 | uptime |
1384 | -date > $WORKSPACE/foo.txt</command> |
1385 | +date > $WORKSPACE/foo.txt |
1386 | +sleep 4</command> |
1387 | </hudson.tasks.Shell> |
1388 | </builders> |
1389 | <publishers> |
1390 | @@ -230,14 +82,14 @@ |
1391 | </hudson.tasks.ArtifactArchiver> |
1392 | </publishers> |
1393 | <buildWrappers> |
1394 | - <hudson.plugins.ws__cleanup.PreBuildCleanup plugin="ws-cleanup@0.30"> |
1395 | + <hudson.plugins.ws__cleanup.PreBuildCleanup plugin="ws-cleanup@0.32"> |
1396 | <deleteDirs>false</deleteDirs> |
1397 | <cleanupParameter></cleanupParameter> |
1398 | <externalDelete></externalDelete> |
1399 | </hudson.plugins.ws__cleanup.PreBuildCleanup> |
1400 | - <hudson.plugins.timestamper.TimestamperBuildWrapper plugin="timestamper@1.8.4"/> |
1401 | + <hudson.plugins.timestamper.TimestamperBuildWrapper plugin="timestamper@1.8.8"/> |
1402 | <org.jenkinsci.plugins.buildnamesetter.BuildNameSetter plugin="build-name-setter@1.6.5"> |
1403 | - <template>#${BUILD_NUMBER} ${ENV,var="BASE_NAME"} ${ENV,var="GIT_BRANCH"} @ ${ENV,var="NODE_NAME"}:${ENV,var="EXECUTOR_NUMBER"} ${ENV,var="DISPLAY_NAME"}</template> |
1404 | + <template>#${BUILD_NUMBER} ${ENV,var="BASE_NAME"} ${ENV,var="GIT_BRANCH"} @ ${ENV,var="NODE_NAME"}-${ENV,var="EXECUTOR_NUMBER"} ${ENV,var="DISPLAY_NAME"}</template> |
1405 | <runAtStart>true</runAtStart> |
1406 | <runAtEnd>true</runAtEnd> |
1407 | </org.jenkinsci.plugins.buildnamesetter.BuildNameSetter> |
1408 | |
1409 | === renamed directory 'deployment/jobs/_no_op2' => 'deploy/jobs-static/_no_op2' |
1410 | === modified file 'deploy/jobs-static/_no_op2/config.xml' |
1411 | --- deployment/jobs/_no_op2/config.xml 2016-07-08 20:38:03 +0000 |
1412 | +++ deploy/jobs-static/_no_op2/config.xml 2017-05-27 00:22:36 +0000 |
1413 | @@ -2,14 +2,20 @@ |
1414 | <project> |
1415 | <actions/> |
1416 | <description></description> |
1417 | - <logRotator class="hudson.tasks.LogRotator"> |
1418 | - <daysToKeep>30</daysToKeep> |
1419 | - <numToKeep>-1</numToKeep> |
1420 | - <artifactDaysToKeep>90</artifactDaysToKeep> |
1421 | - <artifactNumToKeep>90</artifactNumToKeep> |
1422 | - </logRotator> |
1423 | <keepDependencies>false</keepDependencies> |
1424 | <properties> |
1425 | + <jenkins.model.BuildDiscarderProperty> |
1426 | + <strategy class="hudson.tasks.LogRotator"> |
1427 | + <daysToKeep>30</daysToKeep> |
1428 | + <numToKeep>-1</numToKeep> |
1429 | + <artifactDaysToKeep>90</artifactDaysToKeep> |
1430 | + <artifactNumToKeep>90</artifactNumToKeep> |
1431 | + </strategy> |
1432 | + </jenkins.model.BuildDiscarderProperty> |
1433 | + <com.sonyericsson.rebuild.RebuildSettings plugin="rebuild@1.25"> |
1434 | + <autoRebuild>false</autoRebuild> |
1435 | + <rebuildDisabled>false</rebuildDisabled> |
1436 | + </com.sonyericsson.rebuild.RebuildSettings> |
1437 | <hudson.model.ParametersDefinitionProperty> |
1438 | <parameterDefinitions> |
1439 | <hudson.model.StringParameterDefinition> |
1440 | @@ -29,20 +35,19 @@ |
1441 | </hudson.model.StringParameterDefinition> |
1442 | </parameterDefinitions> |
1443 | </hudson.model.ParametersDefinitionProperty> |
1444 | - <com.sonyericsson.rebuild.RebuildSettings plugin="rebuild@1.25"> |
1445 | - <autoRebuild>false</autoRebuild> |
1446 | - <rebuildDisabled>false</rebuildDisabled> |
1447 | - </com.sonyericsson.rebuild.RebuildSettings> |
1448 | - <hudson.plugins.throttleconcurrents.ThrottleJobProperty plugin="throttle-concurrents@1.8.4"> |
1449 | + <hudson.plugins.throttleconcurrents.ThrottleJobProperty plugin="throttle-concurrents@1.9.0"> |
1450 | <maxConcurrentPerNode>0</maxConcurrentPerNode> |
1451 | <maxConcurrentTotal>4</maxConcurrentTotal> |
1452 | + <categories class="java.util.concurrent.CopyOnWriteArrayList"/> |
1453 | <throttleEnabled>true</throttleEnabled> |
1454 | <throttleOption>project</throttleOption> |
1455 | + <limitOneJobWithMatchingParams>false</limitOneJobWithMatchingParams> |
1456 | + <paramsToUseForLimit></paramsToUseForLimit> |
1457 | </hudson.plugins.throttleconcurrents.ThrottleJobProperty> |
1458 | <org.jvnet.hudson.plugins.shelveproject.ShelveProjectProperty plugin="shelve-project-plugin@1.5"/> |
1459 | </properties> |
1460 | <scm class="hudson.scm.NullSCM"/> |
1461 | - <assignedNode>slave</assignedNode> |
1462 | + <assignedNode>task||slave</assignedNode> |
1463 | <canRoam>false</canRoam> |
1464 | <disabled>false</disabled> |
1465 | <blockBuildWhenDownstreamBuilding>false</blockBuildWhenDownstreamBuilding> |
1466 | @@ -55,7 +60,7 @@ |
1467 | uname -a |
1468 | uptime |
1469 | date > $WORKSPACE/foo.txt |
1470 | -sleep 3 |
1471 | +sleep 8 |
1472 | </command> |
1473 | </hudson.tasks.Shell> |
1474 | </builders> |
1475 | @@ -66,17 +71,20 @@ |
1476 | <onlyIfSuccessful>false</onlyIfSuccessful> |
1477 | <fingerprint>false</fingerprint> |
1478 | <defaultExcludes>true</defaultExcludes> |
1479 | + <caseSensitive>true</caseSensitive> |
1480 | </hudson.tasks.ArtifactArchiver> |
1481 | </publishers> |
1482 | <buildWrappers> |
1483 | - <hudson.plugins.ws__cleanup.PreBuildCleanup plugin="ws-cleanup@0.28"> |
1484 | + <hudson.plugins.ws__cleanup.PreBuildCleanup plugin="ws-cleanup@0.32"> |
1485 | <deleteDirs>false</deleteDirs> |
1486 | <cleanupParameter></cleanupParameter> |
1487 | <externalDelete></externalDelete> |
1488 | </hudson.plugins.ws__cleanup.PreBuildCleanup> |
1489 | - <hudson.plugins.timestamper.TimestamperBuildWrapper plugin="timestamper@1.6"/> |
1490 | - <org.jenkinsci.plugins.buildnamesetter.BuildNameSetter plugin="build-name-setter@1.3"> |
1491 | - <template>#${BUILD_NUMBER} ${ENV,var="NODE_NAME"}</template> |
1492 | + <hudson.plugins.timestamper.TimestamperBuildWrapper plugin="timestamper@1.8.8"/> |
1493 | + <org.jenkinsci.plugins.buildnamesetter.BuildNameSetter plugin="build-name-setter@1.6.5"> |
1494 | + <template>#${BUILD_NUMBER} ${ENV,var="BASE_NAME"} ${ENV,var="GIT_BRANCH"} @ ${ENV,var="NODE_NAME"}-${ENV,var="EXECUTOR_NUMBER"} ${ENV,var="DISPLAY_NAME"}</template> |
1495 | + <runAtStart>true</runAtStart> |
1496 | + <runAtEnd>true</runAtEnd> |
1497 | </org.jenkinsci.plugins.buildnamesetter.BuildNameSetter> |
1498 | </buildWrappers> |
1499 | </project> |
1500 | \ No newline at end of file |
1501 | |
1502 | === renamed directory 'deployment/jobs/_no_op3' => 'deploy/jobs-static/_no_op3' |
1503 | === modified file 'deploy/jobs-static/_no_op3/config.xml' |
1504 | --- deployment/jobs/_no_op3/config.xml 2016-07-08 20:38:03 +0000 |
1505 | +++ deploy/jobs-static/_no_op3/config.xml 2017-05-27 00:22:36 +0000 |
1506 | @@ -2,14 +2,20 @@ |
1507 | <project> |
1508 | <actions/> |
1509 | <description></description> |
1510 | - <logRotator class="hudson.tasks.LogRotator"> |
1511 | - <daysToKeep>30</daysToKeep> |
1512 | - <numToKeep>-1</numToKeep> |
1513 | - <artifactDaysToKeep>90</artifactDaysToKeep> |
1514 | - <artifactNumToKeep>90</artifactNumToKeep> |
1515 | - </logRotator> |
1516 | <keepDependencies>false</keepDependencies> |
1517 | <properties> |
1518 | + <jenkins.model.BuildDiscarderProperty> |
1519 | + <strategy class="hudson.tasks.LogRotator"> |
1520 | + <daysToKeep>30</daysToKeep> |
1521 | + <numToKeep>-1</numToKeep> |
1522 | + <artifactDaysToKeep>90</artifactDaysToKeep> |
1523 | + <artifactNumToKeep>90</artifactNumToKeep> |
1524 | + </strategy> |
1525 | + </jenkins.model.BuildDiscarderProperty> |
1526 | + <com.sonyericsson.rebuild.RebuildSettings plugin="rebuild@1.25"> |
1527 | + <autoRebuild>false</autoRebuild> |
1528 | + <rebuildDisabled>false</rebuildDisabled> |
1529 | + </com.sonyericsson.rebuild.RebuildSettings> |
1530 | <hudson.model.ParametersDefinitionProperty> |
1531 | <parameterDefinitions> |
1532 | <hudson.model.StringParameterDefinition> |
1533 | @@ -29,20 +35,19 @@ |
1534 | </hudson.model.StringParameterDefinition> |
1535 | </parameterDefinitions> |
1536 | </hudson.model.ParametersDefinitionProperty> |
1537 | - <com.sonyericsson.rebuild.RebuildSettings plugin="rebuild@1.25"> |
1538 | - <autoRebuild>false</autoRebuild> |
1539 | - <rebuildDisabled>false</rebuildDisabled> |
1540 | - </com.sonyericsson.rebuild.RebuildSettings> |
1541 | - <hudson.plugins.throttleconcurrents.ThrottleJobProperty plugin="throttle-concurrents@1.8.4"> |
1542 | + <hudson.plugins.throttleconcurrents.ThrottleJobProperty plugin="throttle-concurrents@1.9.0"> |
1543 | <maxConcurrentPerNode>0</maxConcurrentPerNode> |
1544 | <maxConcurrentTotal>4</maxConcurrentTotal> |
1545 | + <categories class="java.util.concurrent.CopyOnWriteArrayList"/> |
1546 | <throttleEnabled>true</throttleEnabled> |
1547 | <throttleOption>project</throttleOption> |
1548 | + <limitOneJobWithMatchingParams>false</limitOneJobWithMatchingParams> |
1549 | + <paramsToUseForLimit></paramsToUseForLimit> |
1550 | </hudson.plugins.throttleconcurrents.ThrottleJobProperty> |
1551 | <org.jvnet.hudson.plugins.shelveproject.ShelveProjectProperty plugin="shelve-project-plugin@1.5"/> |
1552 | </properties> |
1553 | <scm class="hudson.scm.NullSCM"/> |
1554 | - <assignedNode>slave</assignedNode> |
1555 | + <assignedNode>task||slave</assignedNode> |
1556 | <canRoam>false</canRoam> |
1557 | <disabled>false</disabled> |
1558 | <blockBuildWhenDownstreamBuilding>false</blockBuildWhenDownstreamBuilding> |
1559 | @@ -55,7 +60,7 @@ |
1560 | uname -a |
1561 | uptime |
1562 | date > $WORKSPACE/foo.txt |
1563 | -sleep 2</command> |
1564 | +sleep 10</command> |
1565 | </hudson.tasks.Shell> |
1566 | </builders> |
1567 | <publishers> |
1568 | @@ -65,17 +70,20 @@ |
1569 | <onlyIfSuccessful>false</onlyIfSuccessful> |
1570 | <fingerprint>false</fingerprint> |
1571 | <defaultExcludes>true</defaultExcludes> |
1572 | + <caseSensitive>true</caseSensitive> |
1573 | </hudson.tasks.ArtifactArchiver> |
1574 | </publishers> |
1575 | <buildWrappers> |
1576 | - <hudson.plugins.ws__cleanup.PreBuildCleanup plugin="ws-cleanup@0.28"> |
1577 | + <hudson.plugins.ws__cleanup.PreBuildCleanup plugin="ws-cleanup@0.32"> |
1578 | <deleteDirs>false</deleteDirs> |
1579 | <cleanupParameter></cleanupParameter> |
1580 | <externalDelete></externalDelete> |
1581 | </hudson.plugins.ws__cleanup.PreBuildCleanup> |
1582 | - <hudson.plugins.timestamper.TimestamperBuildWrapper plugin="timestamper@1.6"/> |
1583 | - <org.jenkinsci.plugins.buildnamesetter.BuildNameSetter plugin="build-name-setter@1.3"> |
1584 | - <template>#${BUILD_NUMBER} ${ENV,var="NODE_NAME"}</template> |
1585 | + <hudson.plugins.timestamper.TimestamperBuildWrapper plugin="timestamper@1.8.8"/> |
1586 | + <org.jenkinsci.plugins.buildnamesetter.BuildNameSetter plugin="build-name-setter@1.6.5"> |
1587 | + <template>#${BUILD_NUMBER} ${ENV,var="BASE_NAME"} ${ENV,var="GIT_BRANCH"} @ ${ENV,var="NODE_NAME"}-${ENV,var="EXECUTOR_NUMBER"} ${ENV,var="DISPLAY_NAME"}</template> |
1588 | + <runAtStart>true</runAtStart> |
1589 | + <runAtEnd>true</runAtEnd> |
1590 | </org.jenkinsci.plugins.buildnamesetter.BuildNameSetter> |
1591 | </buildWrappers> |
1592 | </project> |
1593 | \ No newline at end of file |
1594 | |
1595 | === added directory 'deploy/jobs-static/_none' |
1596 | === added file 'deploy/jobs-static/_none/config.xml' |
1597 | --- deploy/jobs-static/_none/config.xml 1970-01-01 00:00:00 +0000 |
1598 | +++ deploy/jobs-static/_none/config.xml 2017-05-27 00:22:36 +0000 |
1599 | @@ -0,0 +1,63 @@ |
1600 | +<?xml version='1.0' encoding='UTF-8'?> |
1601 | +<project> |
1602 | + <actions/> |
1603 | + <description></description> |
1604 | + <keepDependencies>false</keepDependencies> |
1605 | + <properties> |
1606 | + <com.sonyericsson.rebuild.RebuildSettings plugin="rebuild@1.25"> |
1607 | + <autoRebuild>false</autoRebuild> |
1608 | + <rebuildDisabled>false</rebuildDisabled> |
1609 | + </com.sonyericsson.rebuild.RebuildSettings> |
1610 | + <hudson.plugins.throttleconcurrents.ThrottleJobProperty plugin="throttle-concurrents@1.9.0"> |
1611 | + <maxConcurrentPerNode>0</maxConcurrentPerNode> |
1612 | + <maxConcurrentTotal>0</maxConcurrentTotal> |
1613 | + <categories class="java.util.concurrent.CopyOnWriteArrayList"/> |
1614 | + <throttleEnabled>false</throttleEnabled> |
1615 | + <throttleOption>project</throttleOption> |
1616 | + <limitOneJobWithMatchingParams>false</limitOneJobWithMatchingParams> |
1617 | + <paramsToUseForLimit></paramsToUseForLimit> |
1618 | + </hudson.plugins.throttleconcurrents.ThrottleJobProperty> |
1619 | + <org.jvnet.hudson.plugins.shelveproject.ShelveProjectProperty plugin="shelve-project-plugin@1.5"/> |
1620 | + </properties> |
1621 | + <scm class="hudson.scm.NullSCM"/> |
1622 | + <assignedNode>slave||lab</assignedNode> |
1623 | + <canRoam>false</canRoam> |
1624 | + <disabled>false</disabled> |
1625 | + <blockBuildWhenDownstreamBuilding>false</blockBuildWhenDownstreamBuilding> |
1626 | + <blockBuildWhenUpstreamBuilding>false</blockBuildWhenUpstreamBuilding> |
1627 | + <triggers/> |
1628 | + <concurrentBuild>false</concurrentBuild> |
1629 | + <builders> |
1630 | + <hudson.tasks.Shell> |
1631 | + <command>#!/bin/bash -ex |
1632 | +. ~/oscirc |
1633 | + |
1634 | +env | sort |
1635 | + |
1636 | +~/osci-repo-boot.sh |
1637 | + |
1638 | +tree -aL 4 $HOME |
1639 | + |
1640 | +ls -alh $OSCI_ROOT |
1641 | + |
1642 | +head $OSCI_ROOT/run/job-parts/build_none.sh |
1643 | + |
1644 | +$OSCI_ROOT/run/job-parts/build_none.sh || echo BAH! |
1645 | + |
1646 | +date |
1647 | + |
1648 | +uname -a</command> |
1649 | + </hudson.tasks.Shell> |
1650 | + </builders> |
1651 | + <publishers> |
1652 | + <hudson.tasks.ArtifactArchiver> |
1653 | + <artifacts>*, logs/*</artifacts> |
1654 | + <allowEmptyArchive>true</allowEmptyArchive> |
1655 | + <onlyIfSuccessful>false</onlyIfSuccessful> |
1656 | + <fingerprint>false</fingerprint> |
1657 | + <defaultExcludes>true</defaultExcludes> |
1658 | + <caseSensitive>true</caseSensitive> |
1659 | + </hudson.tasks.ArtifactArchiver> |
1660 | + </publishers> |
1661 | + <buildWrappers/> |
1662 | +</project> |
1663 | \ No newline at end of file |
1664 | |
1665 | === renamed directory 'deployment/jobs/_system_tools_init' => 'deploy/jobs-static/_system_tools_init' |
1666 | === modified file 'deploy/jobs-static/_system_tools_init/config.xml' |
1667 | --- deployment/jobs/_system_tools_init/config.xml 2017-04-05 11:51:52 +0000 |
1668 | +++ deploy/jobs-static/_system_tools_init/config.xml 2017-05-27 00:22:36 +0000 |
1669 | @@ -19,7 +19,7 @@ |
1670 | <hudson.model.ParametersDefinitionProperty> |
1671 | <parameterDefinitions> |
1672 | <org.jvnet.jenkins.plugins.nodelabelparameter.NodeParameterDefinition plugin="nodelabelparameter@1.7.2"> |
1673 | - <name>Concurrent Multiple Nodes</name> |
1674 | + <name></name> |
1675 | <description></description> |
1676 | <allowedSlaves> |
1677 | <string>ALL (no restriction)</string> |
1678 | @@ -29,17 +29,10 @@ |
1679 | <string>osci-lab-1</string> |
1680 | <string>osci-lab-2</string> |
1681 | <string>osci-lab-3</string> |
1682 | - <string>osci-mutuslab0</string> |
1683 | - <string>osci-mutuslab1</string> |
1684 | - <string>osci-mutuslab2</string> |
1685 | <string>osci-slave-0</string> |
1686 | <string>osci-slave-1</string> |
1687 | <string>osci-slave-10</string> |
1688 | <string>osci-slave-11</string> |
1689 | - <string>osci-slave-12</string> |
1690 | - <string>osci-slave-13</string> |
1691 | - <string>osci-slave-14</string> |
1692 | - <string>osci-slave-15</string> |
1693 | <string>osci-slave-2</string> |
1694 | <string>osci-slave-3</string> |
1695 | <string>osci-slave-4</string> |
1696 | @@ -61,11 +54,9 @@ |
1697 | </hudson.model.ParametersDefinitionProperty> |
1698 | <hudson.plugins.throttleconcurrents.ThrottleJobProperty plugin="throttle-concurrents@1.9.0"> |
1699 | <maxConcurrentPerNode>0</maxConcurrentPerNode> |
1700 | - <maxConcurrentTotal>0</maxConcurrentTotal> |
1701 | - <categories class="java.util.concurrent.CopyOnWriteArrayList"> |
1702 | - <string>false</string> |
1703 | - </categories> |
1704 | - <throttleEnabled>false</throttleEnabled> |
1705 | + <maxConcurrentTotal>32</maxConcurrentTotal> |
1706 | + <categories class="java.util.concurrent.CopyOnWriteArrayList"/> |
1707 | + <throttleEnabled>true</throttleEnabled> |
1708 | <throttleOption>project</throttleOption> |
1709 | <limitOneJobWithMatchingParams>false</limitOneJobWithMatchingParams> |
1710 | <paramsToUseForLimit></paramsToUseForLimit> |
1711 | @@ -79,94 +70,22 @@ |
1712 | <blockBuildWhenUpstreamBuilding>false</blockBuildWhenUpstreamBuilding> |
1713 | <triggers> |
1714 | <hudson.triggers.TimerTrigger> |
1715 | - <spec>45 23 * * *</spec> |
1716 | + <spec>30 23 * * *</spec> |
1717 | </hudson.triggers.TimerTrigger> |
1718 | </triggers> |
1719 | <concurrentBuild>true</concurrentBuild> |
1720 | <builders> |
1721 | <hudson.tasks.Shell> |
1722 | - <command>#!/bin/bash -e |
1723 | -# |
1724 | -# Common functions for UOSCI jobs, specific to refreshing tool branches. |
1725 | - |
1726 | -mkdir -vp /var/lib/jenkins/tools ||: |
1727 | - |
1728 | - |
1729 | -function f_tool_refresh_osci() { |
1730 | -# ubuntu_openstack_ci fresh |
1731 | - if [[ -d $OSCI_ROOT ]]; then |
1732 | - echo " - Removing existing checkout @ $OSCI_ROOT" |
1733 | - rm -rf $OSCI_ROOT |
1734 | - fi |
1735 | - echo " + Creating new lightweight checkout of $OSCI_REPO @ $OSCI_ROOT." |
1736 | - bzr co --lightweight $OSCI_REPO $OSCI_ROOT |
1737 | - echo "revno: $(bzr revno $OSCI_ROOT)" |
1738 | -} |
1739 | - |
1740 | - |
1741 | -function f_tool_refresh_oct() { |
1742 | -# keep openstack_charm_testing fresh |
1743 | - if [[ -d $OPENSTACK_CHARM_TESTING_ROOT ]]; then |
1744 | - echo " - Removing existing checkout of @ $OPENSTACK_CHARM_TESTING_ROOT" |
1745 | - rm -rf $OPENSTACK_CHARM_TESTING_ROOT |
1746 | - fi |
1747 | - echo " + Creating new lightweight checkout of $OPENSTACK_CHARM_TESTING_REPO @ $OPENSTACK_CHARM_TESTING_ROOT." |
1748 | - bzr co --lightweight $OPENSTACK_CHARM_TESTING_REPO $OPENSTACK_CHARM_TESTING_ROOT |
1749 | - echo "revno: $(bzr revno $OPENSTACK_CHARM_TESTING_ROOT)" |
1750 | -} |
1751 | - |
1752 | - |
1753 | -function f_tool_refresh_juju_wait() { |
1754 | -# keep juju_wait fresh |
1755 | - [[ -z "$JUJU_WAIT_REPO" ]] && export JUJU_WAIT_REPO="https://git.launchpad.net/juju-wait" |
1756 | - [[ -z "$JUJU_WAIT_ROOT" ]] && export JUJU_WAIT_ROOT="${HOME}/tools/juju-wait" |
1757 | - [[ -z "$JUJU_WAIT_BRANCH" ]] && export JUJU_WAIT_BRANCH="master" |
1758 | - |
1759 | - if [[ -d $JUJU_WAIT_ROOT ]]; then |
1760 | - echo " - Removing existing dir @ $JUJU_WAIT_ROOT" |
1761 | - rm -rf $JUJU_WAIT_ROOT |
1762 | - fi |
1763 | - |
1764 | - echo " + Creating new shallow clone of $JUJU_WAIT_REPO @ $JUJU_WAIT_ROOT ($JUJU_WAIT_BRANCH)." |
1765 | - git clone -q --depth=1 $JUJU_WAIT_REPO $JUJU_WAIT_ROOT -b $JUJU_WAIT_BRANCH |
1766 | - git -C $JUJU_WAIT_ROOT branch -av |
1767 | - git -C $JUJU_WAIT_ROOT remote -v |
1768 | -} |
1769 | - |
1770 | - |
1771 | -#function f_tool_refresh_tarmac() { |
1772 | -# keep tarmac fresh |
1773 | -#if [[ -d $TARMAC_ROOT ]]; then |
1774 | -# echo " - Removing existing checkout @ $TARMAC_ROOT" |
1775 | -# rm -rf $TARMAC_ROOT |
1776 | -#fi |
1777 | -#echo " + Creating new lightweight checkout of $TARMAC_REPO @ $TARMAC_ROOT." |
1778 | -#bzr co --lightweight $TARMAC_REPO $TARMAC_ROOT |
1779 | -#} |
1780 | - |
1781 | - |
1782 | -#function f_tool_refresh_osut() { |
1783 | -# Dump juju package info to a file. |
1784 | -# keep openstack_ubuntu_testing fresh |
1785 | -#if [[ -d $OPENSTACK_UBUNTU_ROOT ]]; then |
1786 | -# echo " - Removing existing checkout of @ $OPENSTACK_UBUNTU_ROOT" |
1787 | -# rm -rf $OPENSTACK_UBUNTU_ROOT |
1788 | -#fi |
1789 | -#echo " + Creating new lightweight checkout @ $OPENSTACK_UBUNTU_ROOT." |
1790 | -#bzr co --lightweight $OPENSTACK_UBUNTU_REPO $OPENSTACK_UBUNTU_ROOT |
1791 | -#} |
1792 | - |
1793 | - |
1794 | -f_tool_refresh_osci |
1795 | -f_tool_refresh_oct |
1796 | -f_tool_refresh_juju_wait</command> |
1797 | + <command>#!/bin/bash -uex |
1798 | +. ~/oscirc |
1799 | +~/osci-repo-boot-clean.sh</command> |
1800 | </hudson.tasks.Shell> |
1801 | </builders> |
1802 | <publishers/> |
1803 | <buildWrappers> |
1804 | - <hudson.plugins.timestamper.TimestamperBuildWrapper plugin="timestamper@1.8.4"/> |
1805 | + <hudson.plugins.timestamper.TimestamperBuildWrapper plugin="timestamper@1.8.8"/> |
1806 | <org.jenkinsci.plugins.buildnamesetter.BuildNameSetter plugin="build-name-setter@1.6.5"> |
1807 | - <template>#${BUILD_NUMBER} ${ENV,var="NODE_NAME"}</template> |
1808 | + <template>#${BUILD_NUMBER} ${ENV,var="NODE_NAME"}-${ENV,var="EXECUTOR_NUMBER"}</template> |
1809 | <runAtStart>true</runAtStart> |
1810 | <runAtEnd>true</runAtEnd> |
1811 | </org.jenkinsci.plugins.buildnamesetter.BuildNameSetter> |
1812 | |
1813 | === renamed directory 'deployment/jobs/charm_build' => 'deploy/jobs-static/charm_build' |
1814 | === modified file 'deploy/jobs-static/charm_build/config.xml' |
1815 | --- deployment/jobs/charm_build/config.xml 2016-06-15 04:31:10 +0000 |
1816 | +++ deploy/jobs-static/charm_build/config.xml 2017-05-27 00:22:36 +0000 |
1817 | @@ -2,14 +2,20 @@ |
1818 | <project> |
1819 | <actions/> |
1820 | <description>Build an asset and create an artifact archive file containing the built item.</description> |
1821 | - <logRotator class="hudson.tasks.LogRotator"> |
1822 | - <daysToKeep>-1</daysToKeep> |
1823 | - <numToKeep>-1</numToKeep> |
1824 | - <artifactDaysToKeep>30</artifactDaysToKeep> |
1825 | - <artifactNumToKeep>720</artifactNumToKeep> |
1826 | - </logRotator> |
1827 | <keepDependencies>false</keepDependencies> |
1828 | <properties> |
1829 | + <jenkins.model.BuildDiscarderProperty> |
1830 | + <strategy class="hudson.tasks.LogRotator"> |
1831 | + <daysToKeep>-1</daysToKeep> |
1832 | + <numToKeep>-1</numToKeep> |
1833 | + <artifactDaysToKeep>30</artifactDaysToKeep> |
1834 | + <artifactNumToKeep>720</artifactNumToKeep> |
1835 | + </strategy> |
1836 | + </jenkins.model.BuildDiscarderProperty> |
1837 | + <com.sonyericsson.rebuild.RebuildSettings plugin="rebuild@1.25"> |
1838 | + <autoRebuild>false</autoRebuild> |
1839 | + <rebuildDisabled>false</rebuildDisabled> |
1840 | + </com.sonyericsson.rebuild.RebuildSettings> |
1841 | <hudson.model.ParametersDefinitionProperty> |
1842 | <parameterDefinitions> |
1843 | <hudson.model.StringParameterDefinition> |
1844 | @@ -99,20 +105,19 @@ |
1845 | </hudson.model.StringParameterDefinition> |
1846 | </parameterDefinitions> |
1847 | </hudson.model.ParametersDefinitionProperty> |
1848 | - <com.sonyericsson.rebuild.RebuildSettings plugin="rebuild@1.25"> |
1849 | - <autoRebuild>false</autoRebuild> |
1850 | - <rebuildDisabled>false</rebuildDisabled> |
1851 | - </com.sonyericsson.rebuild.RebuildSettings> |
1852 | - <hudson.plugins.throttleconcurrents.ThrottleJobProperty plugin="throttle-concurrents@1.8.4"> |
1853 | - <maxConcurrentPerNode>1</maxConcurrentPerNode> |
1854 | - <maxConcurrentTotal>8</maxConcurrentTotal> |
1855 | + <hudson.plugins.throttleconcurrents.ThrottleJobProperty plugin="throttle-concurrents@1.9.0"> |
1856 | + <maxConcurrentPerNode>8</maxConcurrentPerNode> |
1857 | + <maxConcurrentTotal>12</maxConcurrentTotal> |
1858 | + <categories class="java.util.concurrent.CopyOnWriteArrayList"/> |
1859 | <throttleEnabled>true</throttleEnabled> |
1860 | <throttleOption>project</throttleOption> |
1861 | + <limitOneJobWithMatchingParams>false</limitOneJobWithMatchingParams> |
1862 | + <paramsToUseForLimit></paramsToUseForLimit> |
1863 | </hudson.plugins.throttleconcurrents.ThrottleJobProperty> |
1864 | <org.jvnet.hudson.plugins.shelveproject.ShelveProjectProperty plugin="shelve-project-plugin@1.5"/> |
1865 | </properties> |
1866 | <scm class="hudson.scm.NullSCM"/> |
1867 | - <assignedNode>slave</assignedNode> |
1868 | + <assignedNode>task</assignedNode> |
1869 | <canRoam>false</canRoam> |
1870 | <disabled>false</disabled> |
1871 | <blockBuildWhenDownstreamBuilding>false</blockBuildWhenDownstreamBuilding> |
1872 | @@ -121,20 +126,14 @@ |
1873 | <concurrentBuild>true</concurrentBuild> |
1874 | <builders> |
1875 | <hudson.tasks.Shell> |
1876 | - <command>#!/bin/bash -e |
1877 | -# Ensure we have a checkout of UOSCI code |
1878 | -if [[ ! -f $OSCI_ROOT/job-parts/osci_job_common.sh ]]; then |
1879 | - echo " - Removing checkout @ $OSCI_ROOT if it exists" |
1880 | - rm -rf $OSCI_ROOT ||: |
1881 | - echo " + Creating new lightweight checkout of $OSCI_REPO @ $OSCI_ROOT." |
1882 | - bzr co --lightweight $OSCI_REPO $OSCI_ROOT |
1883 | - echo "revno: $(bzr revno $OSCI_ROOT)" |
1884 | -fi |
1885 | -</command> |
1886 | + <command>#!/bin/bash -ue |
1887 | +. ~/oscirc |
1888 | +~/osci-repo-boot-clean.sh</command> |
1889 | </hudson.tasks.Shell> |
1890 | <hudson.tasks.Shell> |
1891 | - <command>#!/bin/bash -e |
1892 | -${OSCI_ROOT}/job-parts/build_charm_build_and_archive.sh</command> |
1893 | + <command>#!/bin/bash -ue |
1894 | +. ~/oscirc |
1895 | +${OSCI_ROOT}/run/job-parts/build_charm_build_and_archive.sh</command> |
1896 | </hudson.tasks.Shell> |
1897 | </builders> |
1898 | <publishers> |
1899 | @@ -144,13 +143,14 @@ |
1900 | <onlyIfSuccessful>false</onlyIfSuccessful> |
1901 | <fingerprint>false</fingerprint> |
1902 | <defaultExcludes>true</defaultExcludes> |
1903 | + <caseSensitive>true</caseSensitive> |
1904 | </hudson.tasks.ArtifactArchiver> |
1905 | - <jenkins.plugins.publish__over__ssh.BapSshPublisherPlugin plugin="publish-over-ssh@1.14"> |
1906 | + <jenkins.plugins.publish__over__ssh.BapSshPublisherPlugin plugin="publish-over-ssh@1.17"> |
1907 | <consolePrefix>SSH: </consolePrefix> |
1908 | <delegate> |
1909 | <publishers> |
1910 | <jenkins.plugins.publish__over__ssh.BapSshPublisher> |
1911 | - <configName>osci ephemeral (jenkins master)</configName> |
1912 | + <configName>osci-master ephemeral</configName> |
1913 | <verbose>false</verbose> |
1914 | <transfers> |
1915 | <jenkins.plugins.publish__over__ssh.BapSshTransfer> |
1916 | @@ -167,6 +167,7 @@ |
1917 | <execCommand></execCommand> |
1918 | <execTimeout>120000</execTimeout> |
1919 | <usePty>false</usePty> |
1920 | + <useAgentForwarding>false</useAgentForwarding> |
1921 | </jenkins.plugins.publish__over__ssh.BapSshTransfer> |
1922 | </transfers> |
1923 | <useWorkspaceInPromotion>false</useWorkspaceInPromotion> |
1924 | @@ -181,14 +182,16 @@ |
1925 | </jenkins.plugins.publish__over__ssh.BapSshPublisherPlugin> |
1926 | </publishers> |
1927 | <buildWrappers> |
1928 | - <hudson.plugins.ws__cleanup.PreBuildCleanup plugin="ws-cleanup@0.28"> |
1929 | + <hudson.plugins.ws__cleanup.PreBuildCleanup plugin="ws-cleanup@0.32"> |
1930 | <deleteDirs>false</deleteDirs> |
1931 | <cleanupParameter></cleanupParameter> |
1932 | <externalDelete></externalDelete> |
1933 | </hudson.plugins.ws__cleanup.PreBuildCleanup> |
1934 | - <hudson.plugins.timestamper.TimestamperBuildWrapper plugin="timestamper@1.6"/> |
1935 | - <org.jenkinsci.plugins.buildnamesetter.BuildNameSetter plugin="build-name-setter@1.3"> |
1936 | + <hudson.plugins.timestamper.TimestamperBuildWrapper plugin="timestamper@1.8.8"/> |
1937 | + <org.jenkinsci.plugins.buildnamesetter.BuildNameSetter plugin="build-name-setter@1.6.5"> |
1938 | <template>#${BUILD_NUMBER} ${ENV,var="GERRIT_PROJECT"} ${ENV,var="GERRIT_BRANCH"} ${ENV,var="GERRIT_CHANGE_NUMBER"} ${ENV,var="GERRIT_PATCHSET_NUMBER"} ${ENV,var="GERRIT_PATCHSET_UPLOADER_NAME"} ${ENV,var="BASE_NAME"} ${ENV,var="GIT_BRANCH"}</template> |
1939 | + <runAtStart>true</runAtStart> |
1940 | + <runAtEnd>true</runAtEnd> |
1941 | </org.jenkinsci.plugins.buildnamesetter.BuildNameSetter> |
1942 | </buildWrappers> |
1943 | </project> |
1944 | \ No newline at end of file |
1945 | |
1946 | === renamed directory 'deployment/jobs/sim_sandbox_pipeline' => 'deploy/jobs-static/sim_sandbox_pipeline' |
1947 | === modified file 'deploy/jobs-static/sim_sandbox_pipeline/config.xml' |
1948 | --- deployment/jobs/sim_sandbox_pipeline/config.xml 2016-12-09 21:50:02 +0000 |
1949 | +++ deploy/jobs-static/sim_sandbox_pipeline/config.xml 2017-05-27 00:22:36 +0000 |
1950 | @@ -87,19 +87,16 @@ |
1951 | <hudson.plugins.throttleconcurrents.ThrottleJobProperty plugin="throttle-concurrents@1.9.0"> |
1952 | <maxConcurrentPerNode>1</maxConcurrentPerNode> |
1953 | <maxConcurrentTotal>4</maxConcurrentTotal> |
1954 | - <categories class="java.util.concurrent.CopyOnWriteArrayList"> |
1955 | - <string>false</string> |
1956 | - </categories> |
1957 | + <categories class="java.util.concurrent.CopyOnWriteArrayList"/> |
1958 | <throttleEnabled>true</throttleEnabled> |
1959 | <throttleOption>project</throttleOption> |
1960 | <limitOneJobWithMatchingParams>false</limitOneJobWithMatchingParams> |
1961 | <paramsToUseForLimit></paramsToUseForLimit> |
1962 | - <configVersion>1</configVersion> |
1963 | </hudson.plugins.throttleconcurrents.ThrottleJobProperty> |
1964 | <org.jvnet.hudson.plugins.shelveproject.ShelveProjectProperty plugin="shelve-project-plugin@1.5"/> |
1965 | </properties> |
1966 | <scm class="hudson.scm.NullSCM"/> |
1967 | - <assignedNode>slave</assignedNode> |
1968 | + <assignedNode>task</assignedNode> |
1969 | <canRoam>false</canRoam> |
1970 | <disabled>false</disabled> |
1971 | <blockBuildWhenDownstreamBuilding>false</blockBuildWhenDownstreamBuilding> |
1972 | @@ -108,7 +105,7 @@ |
1973 | <hudson.triggers.TimerTrigger> |
1974 | <spec>H 0 * * *</spec> |
1975 | </hudson.triggers.TimerTrigger> |
1976 | - <com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.GerritTrigger plugin="gerrit-trigger@2.18.3"> |
1977 | + <com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.GerritTrigger plugin="gerrit-trigger@2.23.1"> |
1978 | <spec></spec> |
1979 | <gerritProjects> |
1980 | <com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.data.GerritProject> |
1981 | @@ -137,6 +134,7 @@ |
1982 | <dependencyJobsNames></dependencyJobsNames> |
1983 | <commitMessageParameterMode>BASE64</commitMessageParameterMode> |
1984 | <changeSubjectParameterMode>PLAIN</changeSubjectParameterMode> |
1985 | + <commentTextParameterMode>PLAIN</commentTextParameterMode> |
1986 | <buildStartMessage></buildStartMessage> |
1987 | <buildFailureMessage></buildFailureMessage> |
1988 | <buildSuccessfulMessage></buildSuccessfulMessage> |
1989 | @@ -144,7 +142,7 @@ |
1990 | <buildNotBuiltMessage></buildNotBuiltMessage> |
1991 | <buildUnsuccessfulFilepath></buildUnsuccessfulFilepath> |
1992 | <customUrl></customUrl> |
1993 | - <serverName>review.openstack.org</serverName> |
1994 | + <serverName>__ANY__</serverName> |
1995 | <triggerOnEvents> |
1996 | <com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.events.PluginPatchsetCreatedEvent> |
1997 | <excludeDrafts>false</excludeDrafts> |
1998 | @@ -169,18 +167,12 @@ |
1999 | <concurrentBuild>true</concurrentBuild> |
2000 | <builders> |
2001 | <hudson.tasks.Shell> |
2002 | - <command>#!/bin/bash -e |
2003 | -# Ensure we have a checkout of UOSCI code |
2004 | -if [[ ! -f $OSCI_ROOT/job-parts/osci_job_common.sh ]]; then |
2005 | - echo " - Removing checkout @ $OSCI_ROOT if it exists" |
2006 | - rm -rf $OSCI_ROOT ||: |
2007 | - echo " + Creating new lightweight checkout of $OSCI_REPO @ $OSCI_ROOT." |
2008 | - bzr co --lightweight $OSCI_REPO $OSCI_ROOT |
2009 | - echo "revno: $(bzr revno $OSCI_ROOT)" |
2010 | -fi</command> |
2011 | - </hudson.tasks.Shell> |
2012 | - <hudson.tasks.Shell> |
2013 | - <command>env | egrep "BUILD|JOB_|GERRIT|UOSCI|HUDSON|JENKINS|WORKSPACE" | sort</command> |
2014 | + <command>#!/bin/bash -ue |
2015 | +. ~/oscirc |
2016 | +~/osci-repo-boot-clean.sh |
2017 | + |
2018 | +set -x |
2019 | +sleep 8</command> |
2020 | </hudson.tasks.Shell> |
2021 | <org.jenkinsci.plugins.conditionalbuildstep.ConditionalBuilder plugin="conditional-buildstep@1.3.5"> |
2022 | <runner class="org.jenkins_ci.plugins.run_condition.BuildStepRunner$Fail" plugin="run-condition@1.0"/> |
2023 | @@ -199,7 +191,7 @@ |
2024 | </bestResult> |
2025 | </runCondition> |
2026 | <conditionalbuilders> |
2027 | - <hudson.plugins.parameterizedtrigger.TriggerBuilder plugin="parameterized-trigger@2.32"> |
2028 | + <hudson.plugins.parameterizedtrigger.TriggerBuilder plugin="parameterized-trigger@2.33"> |
2029 | <configs> |
2030 | <hudson.plugins.parameterizedtrigger.BlockableBuildTriggerConfig> |
2031 | <configs> |
2032 | @@ -208,6 +200,7 @@ |
2033 | <projects>sim_sub_a,sim_sub_b</projects> |
2034 | <condition>ALWAYS</condition> |
2035 | <triggerWithNoParameters>false</triggerWithNoParameters> |
2036 | + <triggerFromChildProjects>false</triggerFromChildProjects> |
2037 | <block> |
2038 | <unstableThreshold> |
2039 | <name>UNSTABLE</name> |
2040 | @@ -227,10 +220,15 @@ |
2041 | </configs> |
2042 | </hudson.plugins.parameterizedtrigger.TriggerBuilder> |
2043 | <hudson.tasks.Shell> |
2044 | - <command>#!/bin/bash -e |
2045 | -env | grep TRIGGERED_BUILD |
2046 | -wget ${JENKINS_URL}job/sim_sub_a/$TRIGGERED_BUILD_NUMBER_sim_sub_a/consoleText -O $WORKSPACE/consoleText.sim_sub_a.txt |
2047 | -wget ${JENKINS_URL}job/sim_sub_b/$TRIGGERED_BUILD_NUMBER_sim_sub_b/consoleText -O $WORKSPACE/consoleText.sim_sub_b.txt</command> |
2048 | + <command>#!/bin/bash -uex |
2049 | +. ~/oscirc |
2050 | + |
2051 | +set -x |
2052 | +sleep 8 |
2053 | + |
2054 | +env | egrep "JENKINS|TRIGGERED_BUILD" |
2055 | +wget http://${OSCI_MASTER_IP}:8080/job/sim_sub_a/$TRIGGERED_BUILD_NUMBER_sim_sub_a/consoleText -O $WORKSPACE/consoleText.sim_sub_a.txt |
2056 | +wget http://${OSCI_MASTER_IP}:8080/job/sim_sub_b/$TRIGGERED_BUILD_NUMBER_sim_sub_b/consoleText -O $WORKSPACE/consoleText.sim_sub_b.txt</command> |
2057 | </hudson.tasks.Shell> |
2058 | <hudson.plugins.copyartifact.CopyArtifact plugin="copyartifact@1.38.1"> |
2059 | <project>sim_sub_a</project> |
2060 | @@ -273,7 +271,7 @@ |
2061 | </bestResult> |
2062 | </runCondition> |
2063 | <conditionalbuilders> |
2064 | - <hudson.plugins.parameterizedtrigger.TriggerBuilder plugin="parameterized-trigger@2.32"> |
2065 | + <hudson.plugins.parameterizedtrigger.TriggerBuilder plugin="parameterized-trigger@2.33"> |
2066 | <configs> |
2067 | <hudson.plugins.parameterizedtrigger.BlockableBuildTriggerConfig> |
2068 | <configs> |
2069 | @@ -282,6 +280,7 @@ |
2070 | <projects>sim_sub_c</projects> |
2071 | <condition>ALWAYS</condition> |
2072 | <triggerWithNoParameters>false</triggerWithNoParameters> |
2073 | + <triggerFromChildProjects>false</triggerFromChildProjects> |
2074 | <block> |
2075 | <unstableThreshold> |
2076 | <name>UNSTABLE</name> |
2077 | @@ -301,9 +300,14 @@ |
2078 | </configs> |
2079 | </hudson.plugins.parameterizedtrigger.TriggerBuilder> |
2080 | <hudson.tasks.Shell> |
2081 | - <command>#!/bin/bash -e |
2082 | -env | grep TRIGGERED_BUILD |
2083 | -wget ${JENKINS_URL}job/sim_sub_c/$TRIGGERED_BUILD_NUMBER_sim_sub_c/consoleText -O $WORKSPACE/consoleText.sim_sub_c.txt</command> |
2084 | + <command>#!/bin/bash -uex |
2085 | +. ~/oscirc |
2086 | + |
2087 | +set -x |
2088 | +sleep 8 |
2089 | + |
2090 | +env | egrep "JENKINS|TRIGGERED_BUILD" |
2091 | +wget http://${OSCI_MASTER_IP}:8080/job/sim_sub_c/$TRIGGERED_BUILD_NUMBER_sim_sub_c/consoleText -O $WORKSPACE/consoleText.sim_sub_c.txt</command> |
2092 | </hudson.tasks.Shell> |
2093 | <hudson.plugins.copyartifact.CopyArtifact plugin="copyartifact@1.38.1"> |
2094 | <project>sim_sub_c</project> |
2095 | @@ -335,7 +339,7 @@ |
2096 | </bestResult> |
2097 | </runCondition> |
2098 | <conditionalbuilders> |
2099 | - <hudson.plugins.parameterizedtrigger.TriggerBuilder plugin="parameterized-trigger@2.32"> |
2100 | + <hudson.plugins.parameterizedtrigger.TriggerBuilder plugin="parameterized-trigger@2.33"> |
2101 | <configs> |
2102 | <hudson.plugins.parameterizedtrigger.BlockableBuildTriggerConfig> |
2103 | <configs> |
2104 | @@ -344,6 +348,7 @@ |
2105 | <projects>sim_sub_d</projects> |
2106 | <condition>ALWAYS</condition> |
2107 | <triggerWithNoParameters>false</triggerWithNoParameters> |
2108 | + <triggerFromChildProjects>false</triggerFromChildProjects> |
2109 | <block> |
2110 | <unstableThreshold> |
2111 | <name>UNSTABLE</name> |
2112 | @@ -363,9 +368,14 @@ |
2113 | </configs> |
2114 | </hudson.plugins.parameterizedtrigger.TriggerBuilder> |
2115 | <hudson.tasks.Shell> |
2116 | - <command>#!/bin/bash -e |
2117 | + <command>#!/bin/bash -ue |
2118 | +. ~/oscirc |
2119 | + |
2120 | +set -x |
2121 | +sleep 8 |
2122 | + |
2123 | env | grep TRIGGERED_BUILD |
2124 | -wget ${JENKINS_URL}job/sim_sub_d/$TRIGGERED_BUILD_NUMBER_sim_sub_d/consoleText -O $WORKSPACE/consoleText.sim_sub_d.txt</command> |
2125 | +wget http://${OSCI_MASTER_IP}:8080/job/sim_sub_d/$TRIGGERED_BUILD_NUMBER_sim_sub_d/consoleText -O $WORKSPACE/consoleText.sim_sub_d.txt</command> |
2126 | </hudson.tasks.Shell> |
2127 | <hudson.plugins.copyartifact.CopyArtifact plugin="copyartifact@1.38.1"> |
2128 | <project>sim_sub_d</project> |
2129 | @@ -396,9 +406,10 @@ |
2130 | </bestResult> |
2131 | </condition> |
2132 | <buildStep class="hudson.tasks.Shell"> |
2133 | - <command>#!/bin/bash -e |
2134 | + <command>#!/bin/bash -ue |
2135 | +. ~/oscirc |
2136 | export UOSCI_GERRIT_VERDICT="SUCCESS" |
2137 | -${OSCI_ROOT}/job-parts/part_gerrit_review.sh</command> |
2138 | +${OSCI_ROOT}/run/job-parts/part_gerrit_review.sh</command> |
2139 | </buildStep> |
2140 | <runner class="org.jenkins_ci.plugins.run_condition.BuildStepRunner$Fail" plugin="run-condition@1.0"/> |
2141 | </org.jenkinsci.plugins.conditionalbuildstep.singlestep.SingleConditionalBuilder> |
2142 | @@ -418,9 +429,10 @@ |
2143 | </bestResult> |
2144 | </condition> |
2145 | <buildStep class="hudson.tasks.Shell"> |
2146 | - <command>#!/bin/bash -e |
2147 | + <command>#!/bin/bash -ue |
2148 | +. ~/oscirc |
2149 | export UOSCI_GERRIT_VERDICT="FAILURE" |
2150 | -${OSCI_ROOT}/job-parts/part_gerrit_review.sh |
2151 | +${OSCI_ROOT}/run/job-parts/part_gerrit_review.sh |
2152 | </command> |
2153 | </buildStep> |
2154 | <runner class="org.jenkins_ci.plugins.run_condition.BuildStepRunner$Fail" plugin="run-condition@1.0"/> |
2155 | @@ -437,12 +449,12 @@ |
2156 | </hudson.tasks.ArtifactArchiver> |
2157 | </publishers> |
2158 | <buildWrappers> |
2159 | - <hudson.plugins.ws__cleanup.PreBuildCleanup plugin="ws-cleanup@0.30"> |
2160 | + <hudson.plugins.ws__cleanup.PreBuildCleanup plugin="ws-cleanup@0.32"> |
2161 | <deleteDirs>false</deleteDirs> |
2162 | <cleanupParameter></cleanupParameter> |
2163 | <externalDelete></externalDelete> |
2164 | </hudson.plugins.ws__cleanup.PreBuildCleanup> |
2165 | - <hudson.plugins.timestamper.TimestamperBuildWrapper plugin="timestamper@1.8.4"/> |
2166 | + <hudson.plugins.timestamper.TimestamperBuildWrapper plugin="timestamper@1.8.8"/> |
2167 | <org.jenkinsci.plugins.buildnamesetter.BuildNameSetter plugin="build-name-setter@1.6.5"> |
2168 | <template>#${BUILD_NUMBER} ${ENV,var="GERRIT_PROJECT"} ${ENV,var="GERRIT_CHANGE_NUMBER"},${ENV,var="GERRIT_PATCHSET_NUMBER"} for ${ENV,var="GERRIT_PATCHSET_UPLOADER_NAME"}</template> |
2169 | <runAtStart>true</runAtStart> |
2170 | |
2171 | === renamed directory 'deployment/jobs/sim_sandbox_pipeline_full' => 'deploy/jobs-static/sim_sandbox_pipeline_full' |
2172 | === modified file 'deploy/jobs-static/sim_sandbox_pipeline_full/config.xml' |
2173 | --- deployment/jobs/sim_sandbox_pipeline_full/config.xml 2016-12-09 21:50:02 +0000 |
2174 | +++ deploy/jobs-static/sim_sandbox_pipeline_full/config.xml 2017-05-27 00:22:36 +0000 |
2175 | @@ -77,25 +77,22 @@ |
2176 | <hudson.plugins.throttleconcurrents.ThrottleJobProperty plugin="throttle-concurrents@1.9.0"> |
2177 | <maxConcurrentPerNode>1</maxConcurrentPerNode> |
2178 | <maxConcurrentTotal>4</maxConcurrentTotal> |
2179 | - <categories class="java.util.concurrent.CopyOnWriteArrayList"> |
2180 | - <string>false</string> |
2181 | - </categories> |
2182 | + <categories class="java.util.concurrent.CopyOnWriteArrayList"/> |
2183 | <throttleEnabled>true</throttleEnabled> |
2184 | <throttleOption>project</throttleOption> |
2185 | <limitOneJobWithMatchingParams>false</limitOneJobWithMatchingParams> |
2186 | <paramsToUseForLimit></paramsToUseForLimit> |
2187 | - <configVersion>1</configVersion> |
2188 | </hudson.plugins.throttleconcurrents.ThrottleJobProperty> |
2189 | <org.jvnet.hudson.plugins.shelveproject.ShelveProjectProperty plugin="shelve-project-plugin@1.5"/> |
2190 | </properties> |
2191 | <scm class="hudson.scm.NullSCM"/> |
2192 | - <assignedNode>slave</assignedNode> |
2193 | + <assignedNode>task</assignedNode> |
2194 | <canRoam>false</canRoam> |
2195 | <disabled>false</disabled> |
2196 | <blockBuildWhenDownstreamBuilding>false</blockBuildWhenDownstreamBuilding> |
2197 | <blockBuildWhenUpstreamBuilding>false</blockBuildWhenUpstreamBuilding> |
2198 | <triggers> |
2199 | - <com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.GerritTrigger plugin="gerrit-trigger@2.18.3"> |
2200 | + <com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.GerritTrigger plugin="gerrit-trigger@2.23.1"> |
2201 | <spec></spec> |
2202 | <gerritProjects> |
2203 | <com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.data.GerritProject> |
2204 | @@ -124,6 +121,7 @@ |
2205 | <dependencyJobsNames></dependencyJobsNames> |
2206 | <commitMessageParameterMode>BASE64</commitMessageParameterMode> |
2207 | <changeSubjectParameterMode>PLAIN</changeSubjectParameterMode> |
2208 | + <commentTextParameterMode>PLAIN</commentTextParameterMode> |
2209 | <buildStartMessage></buildStartMessage> |
2210 | <buildFailureMessage></buildFailureMessage> |
2211 | <buildSuccessfulMessage></buildSuccessfulMessage> |
2212 | @@ -142,7 +140,7 @@ |
2213 | <commentAddedCommentContains>^Patch Set.*charm-recheck-full$</commentAddedCommentContains> |
2214 | </com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.events.PluginCommentAddedContainsEvent> |
2215 | <com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.events.PluginCommentAddedEvent> |
2216 | - <verdictCategory>Code-Review</verdictCategory> |
2217 | + <verdictCategory>Verified</verdictCategory> |
2218 | <commentAddedTriggerApprovalValue>1</commentAddedTriggerApprovalValue> |
2219 | </com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.events.PluginCommentAddedEvent> |
2220 | </triggerOnEvents> |
2221 | @@ -154,18 +152,12 @@ |
2222 | <concurrentBuild>true</concurrentBuild> |
2223 | <builders> |
2224 | <hudson.tasks.Shell> |
2225 | - <command>#!/bin/bash -e |
2226 | -# Ensure we have a checkout of UOSCI code |
2227 | -if [[ ! -f $OSCI_ROOT/job-parts/osci_job_common.sh ]]; then |
2228 | - echo " - Removing checkout @ $OSCI_ROOT if it exists" |
2229 | - rm -rf $OSCI_ROOT ||: |
2230 | - echo " + Creating new lightweight checkout of $OSCI_REPO @ $OSCI_ROOT." |
2231 | - bzr co --lightweight $OSCI_REPO $OSCI_ROOT |
2232 | - echo "revno: $(bzr revno $OSCI_ROOT)" |
2233 | -fi</command> |
2234 | + <command>#!/bin/bash -ue |
2235 | +. ~/oscirc |
2236 | +~/osci-repo-boot.sh</command> |
2237 | </hudson.tasks.Shell> |
2238 | <hudson.tasks.Shell> |
2239 | - <command>#!/bin/bash -e |
2240 | + <command>#!/bin/bash -ue |
2241 | env | egrep "BUILD|JOB_|GERRIT|UOSCI|HUDSON|JENKINS|WORKSPACE" | sort |
2242 | |
2243 | echo " . Always-run step 0"</command> |
2244 | @@ -188,7 +180,7 @@ |
2245 | </runCondition> |
2246 | <conditionalbuilders> |
2247 | <hudson.tasks.Shell> |
2248 | - <command>#!/bin/bash -e |
2249 | + <command>#!/bin/bash -ue |
2250 | echo " . Conditional step 1"</command> |
2251 | </hudson.tasks.Shell> |
2252 | </conditionalbuilders> |
2253 | @@ -211,7 +203,7 @@ |
2254 | </runCondition> |
2255 | <conditionalbuilders> |
2256 | <hudson.tasks.Shell> |
2257 | - <command>#!/bin/bash -e |
2258 | + <command>#!/bin/bash -ue |
2259 | echo " . Conditional step 2"</command> |
2260 | </hudson.tasks.Shell> |
2261 | </conditionalbuilders> |
2262 | @@ -234,7 +226,7 @@ |
2263 | </runCondition> |
2264 | <conditionalbuilders> |
2265 | <hudson.tasks.Shell> |
2266 | - <command>#!/bin/bash -e |
2267 | + <command>#!/bin/bash -ue |
2268 | echo " . Conditional step 3"</command> |
2269 | </hudson.tasks.Shell> |
2270 | </conditionalbuilders> |
2271 | @@ -255,9 +247,10 @@ |
2272 | </bestResult> |
2273 | </condition> |
2274 | <buildStep class="hudson.tasks.Shell"> |
2275 | - <command>#!/bin/bash -e |
2276 | + <command>#!/bin/bash -ue |
2277 | +. ~/oscirc |
2278 | export UOSCI_GERRIT_VERDICT="SUCCESS" |
2279 | -${OSCI_ROOT}/job-parts/part_gerrit_review.sh</command> |
2280 | +${OSCI_ROOT}/run/job-parts/part_gerrit_review.sh</command> |
2281 | </buildStep> |
2282 | <runner class="org.jenkins_ci.plugins.run_condition.BuildStepRunner$Fail" plugin="run-condition@1.0"/> |
2283 | </org.jenkinsci.plugins.conditionalbuildstep.singlestep.SingleConditionalBuilder> |
2284 | @@ -277,9 +270,10 @@ |
2285 | </bestResult> |
2286 | </condition> |
2287 | <buildStep class="hudson.tasks.Shell"> |
2288 | - <command>#!/bin/bash -e |
2289 | + <command>#!/bin/bash -ue |
2290 | +. ~/oscirc |
2291 | export UOSCI_GERRIT_VERDICT="FAILURE" |
2292 | -${OSCI_ROOT}/job-parts/part_gerrit_review.sh</command> |
2293 | +${OSCI_ROOT}/run/job-parts/part_gerrit_review.sh</command> |
2294 | </buildStep> |
2295 | <runner class="org.jenkins_ci.plugins.run_condition.BuildStepRunner$Fail" plugin="run-condition@1.0"/> |
2296 | </org.jenkinsci.plugins.conditionalbuildstep.singlestep.SingleConditionalBuilder> |
2297 | @@ -295,12 +289,12 @@ |
2298 | </hudson.tasks.ArtifactArchiver> |
2299 | </publishers> |
2300 | <buildWrappers> |
2301 | - <hudson.plugins.ws__cleanup.PreBuildCleanup plugin="ws-cleanup@0.30"> |
2302 | + <hudson.plugins.ws__cleanup.PreBuildCleanup plugin="ws-cleanup@0.32"> |
2303 | <deleteDirs>false</deleteDirs> |
2304 | <cleanupParameter></cleanupParameter> |
2305 | <externalDelete></externalDelete> |
2306 | </hudson.plugins.ws__cleanup.PreBuildCleanup> |
2307 | - <hudson.plugins.timestamper.TimestamperBuildWrapper plugin="timestamper@1.8.4"/> |
2308 | + <hudson.plugins.timestamper.TimestamperBuildWrapper plugin="timestamper@1.8.8"/> |
2309 | <org.jenkinsci.plugins.buildnamesetter.BuildNameSetter plugin="build-name-setter@1.6.5"> |
2310 | <template>#${BUILD_NUMBER} ${ENV,var="GERRIT_PROJECT"} ${ENV,var="GERRIT_CHANGE_NUMBER"},${ENV,var="GERRIT_PATCHSET_NUMBER"} for ${ENV,var="GERRIT_PATCHSET_UPLOADER_NAME"}</template> |
2311 | <runAtStart>true</runAtStart> |
2312 | |
2313 | === renamed directory 'deployment/jobs/sim_sub_a' => 'deploy/jobs-static/sim_sub_a' |
2314 | === modified file 'deploy/jobs-static/sim_sub_a/config.xml' |
2315 | --- deployment/jobs/sim_sub_a/config.xml 2016-10-04 02:28:38 +0000 |
2316 | +++ deploy/jobs-static/sim_sub_a/config.xml 2017-05-27 00:22:36 +0000 |
2317 | @@ -93,9 +93,7 @@ |
2318 | <hudson.plugins.throttleconcurrents.ThrottleJobProperty plugin="throttle-concurrents@1.9.0"> |
2319 | <maxConcurrentPerNode>1</maxConcurrentPerNode> |
2320 | <maxConcurrentTotal>6</maxConcurrentTotal> |
2321 | - <categories class="java.util.concurrent.CopyOnWriteArrayList"> |
2322 | - <string>false</string> |
2323 | - </categories> |
2324 | + <categories class="java.util.concurrent.CopyOnWriteArrayList"/> |
2325 | <throttleEnabled>true</throttleEnabled> |
2326 | <throttleOption>project</throttleOption> |
2327 | <limitOneJobWithMatchingParams>false</limitOneJobWithMatchingParams> |
2328 | @@ -104,7 +102,7 @@ |
2329 | <org.jvnet.hudson.plugins.shelveproject.ShelveProjectProperty plugin="shelve-project-plugin@1.5"/> |
2330 | </properties> |
2331 | <scm class="hudson.scm.NullSCM"/> |
2332 | - <assignedNode>slave</assignedNode> |
2333 | + <assignedNode>task</assignedNode> |
2334 | <canRoam>false</canRoam> |
2335 | <disabled>false</disabled> |
2336 | <blockBuildWhenDownstreamBuilding>false</blockBuildWhenDownstreamBuilding> |
2337 | @@ -113,19 +111,10 @@ |
2338 | <concurrentBuild>true</concurrentBuild> |
2339 | <builders> |
2340 | <hudson.tasks.Shell> |
2341 | - <command>#!/bin/bash -e |
2342 | -# Ensure we have a checkout of UOSCI code |
2343 | -if [[ ! -f $OSCI_ROOT/job-parts/osci_job_common.sh ]]; then |
2344 | - echo " - Removing checkout @ $OSCI_ROOT if it exists" |
2345 | - rm -rf $OSCI_ROOT ||: |
2346 | - echo " + Creating new lightweight checkout of $OSCI_REPO @ $OSCI_ROOT." |
2347 | - bzr co --lightweight $OSCI_REPO $OSCI_ROOT |
2348 | - echo "revno: $(bzr revno $OSCI_ROOT)" |
2349 | -fi |
2350 | -</command> |
2351 | - </hudson.tasks.Shell> |
2352 | - <hudson.tasks.Shell> |
2353 | - <command>${OSCI_ROOT}/job-parts/build_simulate.sh</command> |
2354 | + <command>#!/bin/bash -ue |
2355 | +. ~/oscirc |
2356 | +~/osci-repo-boot.sh |
2357 | +${OSCI_ROOT}/run/job-parts/build_simulate.sh</command> |
2358 | </hudson.tasks.Shell> |
2359 | </builders> |
2360 | <publishers> |
2361 | @@ -139,7 +128,7 @@ |
2362 | </hudson.tasks.ArtifactArchiver> |
2363 | </publishers> |
2364 | <buildWrappers> |
2365 | - <hudson.plugins.timestamper.TimestamperBuildWrapper plugin="timestamper@1.8.4"/> |
2366 | + <hudson.plugins.timestamper.TimestamperBuildWrapper plugin="timestamper@1.8.8"/> |
2367 | <org.jenkinsci.plugins.buildnamesetter.BuildNameSetter plugin="build-name-setter@1.6.5"> |
2368 | <template>#${BUILD_NUMBER} ${ENV,var="GERRIT_PROJECT"} ${ENV,var="GERRIT_CHANGE_NUMBER"},${ENV,var="GERRIT_PATCHSET_NUMBER"} for ${ENV,var="GERRIT_PATCHSET_UPLOADER_NAME"}</template> |
2369 | <runAtStart>true</runAtStart> |
2370 | |
2371 | === renamed directory 'deployment/jobs/sim_sub_b' => 'deploy/jobs-static/sim_sub_b' |
2372 | === modified file 'deploy/jobs-static/sim_sub_b/config.xml' |
2373 | --- deployment/jobs/sim_sub_b/config.xml 2016-10-04 02:28:38 +0000 |
2374 | +++ deploy/jobs-static/sim_sub_b/config.xml 2017-05-27 00:22:36 +0000 |
2375 | @@ -83,9 +83,7 @@ |
2376 | <hudson.plugins.throttleconcurrents.ThrottleJobProperty plugin="throttle-concurrents@1.9.0"> |
2377 | <maxConcurrentPerNode>1</maxConcurrentPerNode> |
2378 | <maxConcurrentTotal>6</maxConcurrentTotal> |
2379 | - <categories class="java.util.concurrent.CopyOnWriteArrayList"> |
2380 | - <string>false</string> |
2381 | - </categories> |
2382 | + <categories class="java.util.concurrent.CopyOnWriteArrayList"/> |
2383 | <throttleEnabled>true</throttleEnabled> |
2384 | <throttleOption>project</throttleOption> |
2385 | <limitOneJobWithMatchingParams>false</limitOneJobWithMatchingParams> |
2386 | @@ -94,7 +92,7 @@ |
2387 | <org.jvnet.hudson.plugins.shelveproject.ShelveProjectProperty plugin="shelve-project-plugin@1.5"/> |
2388 | </properties> |
2389 | <scm class="hudson.scm.NullSCM"/> |
2390 | - <assignedNode>slave</assignedNode> |
2391 | + <assignedNode>task</assignedNode> |
2392 | <canRoam>false</canRoam> |
2393 | <disabled>false</disabled> |
2394 | <blockBuildWhenDownstreamBuilding>false</blockBuildWhenDownstreamBuilding> |
2395 | @@ -103,19 +101,11 @@ |
2396 | <concurrentBuild>true</concurrentBuild> |
2397 | <builders> |
2398 | <hudson.tasks.Shell> |
2399 | - <command>#!/bin/bash -e |
2400 | -# Ensure we have a checkout of UOSCI code |
2401 | -if [[ ! -f $OSCI_ROOT/job-parts/osci_job_common.sh ]]; then |
2402 | - echo " - Removing checkout @ $OSCI_ROOT if it exists" |
2403 | - rm -rf $OSCI_ROOT ||: |
2404 | - echo " + Creating new lightweight checkout of $OSCI_REPO @ $OSCI_ROOT." |
2405 | - bzr co --lightweight $OSCI_REPO $OSCI_ROOT |
2406 | - echo "revno: $(bzr revno $OSCI_ROOT)" |
2407 | -fi |
2408 | -</command> |
2409 | - </hudson.tasks.Shell> |
2410 | - <hudson.tasks.Shell> |
2411 | - <command>set -x |
2412 | + <command>#!/bin/bash -ue |
2413 | +. ~/oscirc |
2414 | +~/osci-repo-boot.sh |
2415 | + |
2416 | +set -x |
2417 | mkdir -vp $WORKSPACE/logs |
2418 | mkdir -vp $WORKSPACE/other |
2419 | date > $WORKSPACE/logs/file1.txt |
2420 | @@ -129,10 +119,9 @@ |
2421 | |
2422 | cat $WORKSPACE/logs/file1.txt |
2423 | cat $WORKSPACE/other/file1.txt |
2424 | -ls $WORKSPACE -alr</command> |
2425 | - </hudson.tasks.Shell> |
2426 | - <hudson.tasks.Shell> |
2427 | - <command>${OSCI_ROOT}/job-parts/build_simulate.sh |
2428 | +ls $WORKSPACE -alr |
2429 | + |
2430 | +${OSCI_ROOT}/run/job-parts/build_simulate.sh |
2431 | |
2432 | ls $WORKSPACE -alr</command> |
2433 | </hudson.tasks.Shell> |
2434 | @@ -148,7 +137,7 @@ |
2435 | </hudson.tasks.ArtifactArchiver> |
2436 | </publishers> |
2437 | <buildWrappers> |
2438 | - <hudson.plugins.timestamper.TimestamperBuildWrapper plugin="timestamper@1.8.4"/> |
2439 | + <hudson.plugins.timestamper.TimestamperBuildWrapper plugin="timestamper@1.8.8"/> |
2440 | <org.jenkinsci.plugins.buildnamesetter.BuildNameSetter plugin="build-name-setter@1.6.5"> |
2441 | <template>#${BUILD_NUMBER} ${ENV,var="GERRIT_PROJECT"} ${ENV,var="GERRIT_CHANGE_NUMBER"},${ENV,var="GERRIT_PATCHSET_NUMBER"} for ${ENV,var="GERRIT_PATCHSET_UPLOADER_NAME"}</template> |
2442 | <runAtStart>true</runAtStart> |
2443 | |
2444 | === renamed directory 'deployment/jobs/sim_sub_c' => 'deploy/jobs-static/sim_sub_c' |
2445 | === modified file 'deploy/jobs-static/sim_sub_c/config.xml' |
2446 | --- deployment/jobs/sim_sub_c/config.xml 2016-10-04 02:28:38 +0000 |
2447 | +++ deploy/jobs-static/sim_sub_c/config.xml 2017-05-27 00:22:36 +0000 |
2448 | @@ -81,11 +81,9 @@ |
2449 | </parameterDefinitions> |
2450 | </hudson.model.ParametersDefinitionProperty> |
2451 | <hudson.plugins.throttleconcurrents.ThrottleJobProperty plugin="throttle-concurrents@1.9.0"> |
2452 | - <maxConcurrentPerNode>1</maxConcurrentPerNode> |
2453 | - <maxConcurrentTotal>6</maxConcurrentTotal> |
2454 | - <categories class="java.util.concurrent.CopyOnWriteArrayList"> |
2455 | - <string>false</string> |
2456 | - </categories> |
2457 | + <maxConcurrentPerNode>8</maxConcurrentPerNode> |
2458 | + <maxConcurrentTotal>8</maxConcurrentTotal> |
2459 | + <categories class="java.util.concurrent.CopyOnWriteArrayList"/> |
2460 | <throttleEnabled>true</throttleEnabled> |
2461 | <throttleOption>project</throttleOption> |
2462 | <limitOneJobWithMatchingParams>false</limitOneJobWithMatchingParams> |
2463 | @@ -94,7 +92,7 @@ |
2464 | <org.jvnet.hudson.plugins.shelveproject.ShelveProjectProperty plugin="shelve-project-plugin@1.5"/> |
2465 | </properties> |
2466 | <scm class="hudson.scm.NullSCM"/> |
2467 | - <assignedNode>slave</assignedNode> |
2468 | + <assignedNode>task</assignedNode> |
2469 | <canRoam>false</canRoam> |
2470 | <disabled>false</disabled> |
2471 | <blockBuildWhenDownstreamBuilding>false</blockBuildWhenDownstreamBuilding> |
2472 | @@ -103,19 +101,10 @@ |
2473 | <concurrentBuild>true</concurrentBuild> |
2474 | <builders> |
2475 | <hudson.tasks.Shell> |
2476 | - <command>#!/bin/bash -e |
2477 | -# Ensure we have a checkout of UOSCI code |
2478 | -if [[ ! -f $OSCI_ROOT/job-parts/osci_job_common.sh ]]; then |
2479 | - echo " - Removing checkout @ $OSCI_ROOT if it exists" |
2480 | - rm -rf $OSCI_ROOT ||: |
2481 | - echo " + Creating new lightweight checkout of $OSCI_REPO @ $OSCI_ROOT." |
2482 | - bzr co --lightweight $OSCI_REPO $OSCI_ROOT |
2483 | - echo "revno: $(bzr revno $OSCI_ROOT)" |
2484 | -fi |
2485 | -</command> |
2486 | - </hudson.tasks.Shell> |
2487 | - <hudson.tasks.Shell> |
2488 | - <command>${OSCI_ROOT}/job-parts/build_simulate.sh</command> |
2489 | + <command>#!/bin/bash -ue |
2490 | +. ~/oscirc |
2491 | +~/osci-repo-boot-clean.sh |
2492 | +${OSCI_ROOT}/run/job-parts/build_simulate.sh</command> |
2493 | </hudson.tasks.Shell> |
2494 | </builders> |
2495 | <publishers> |
2496 | @@ -129,7 +118,7 @@ |
2497 | </hudson.tasks.ArtifactArchiver> |
2498 | </publishers> |
2499 | <buildWrappers> |
2500 | - <hudson.plugins.timestamper.TimestamperBuildWrapper plugin="timestamper@1.8.4"/> |
2501 | + <hudson.plugins.timestamper.TimestamperBuildWrapper plugin="timestamper@1.8.8"/> |
2502 | <org.jenkinsci.plugins.buildnamesetter.BuildNameSetter plugin="build-name-setter@1.6.5"> |
2503 | <template>#${BUILD_NUMBER} ${ENV,var="GERRIT_PROJECT"} ${ENV,var="GERRIT_CHANGE_NUMBER"},${ENV,var="GERRIT_PATCHSET_NUMBER"} for ${ENV,var="GERRIT_PATCHSET_UPLOADER_NAME"}</template> |
2504 | <runAtStart>true</runAtStart> |
2505 | |
2506 | === renamed directory 'deployment/jobs/sim_sub_d' => 'deploy/jobs-static/sim_sub_d' |
2507 | === modified file 'deploy/jobs-static/sim_sub_d/config.xml' |
2508 | --- deployment/jobs/sim_sub_d/config.xml 2016-10-04 02:28:38 +0000 |
2509 | +++ deploy/jobs-static/sim_sub_d/config.xml 2017-05-27 00:22:36 +0000 |
2510 | @@ -81,11 +81,9 @@ |
2511 | </parameterDefinitions> |
2512 | </hudson.model.ParametersDefinitionProperty> |
2513 | <hudson.plugins.throttleconcurrents.ThrottleJobProperty plugin="throttle-concurrents@1.9.0"> |
2514 | - <maxConcurrentPerNode>1</maxConcurrentPerNode> |
2515 | - <maxConcurrentTotal>6</maxConcurrentTotal> |
2516 | - <categories class="java.util.concurrent.CopyOnWriteArrayList"> |
2517 | - <string>false</string> |
2518 | - </categories> |
2519 | + <maxConcurrentPerNode>4</maxConcurrentPerNode> |
2520 | + <maxConcurrentTotal>4</maxConcurrentTotal> |
2521 | + <categories class="java.util.concurrent.CopyOnWriteArrayList"/> |
2522 | <throttleEnabled>true</throttleEnabled> |
2523 | <throttleOption>project</throttleOption> |
2524 | <limitOneJobWithMatchingParams>false</limitOneJobWithMatchingParams> |
2525 | @@ -94,7 +92,7 @@ |
2526 | <org.jvnet.hudson.plugins.shelveproject.ShelveProjectProperty plugin="shelve-project-plugin@1.5"/> |
2527 | </properties> |
2528 | <scm class="hudson.scm.NullSCM"/> |
2529 | - <assignedNode>slave</assignedNode> |
2530 | + <assignedNode>task</assignedNode> |
2531 | <canRoam>false</canRoam> |
2532 | <disabled>false</disabled> |
2533 | <blockBuildWhenDownstreamBuilding>false</blockBuildWhenDownstreamBuilding> |
2534 | @@ -103,19 +101,10 @@ |
2535 | <concurrentBuild>true</concurrentBuild> |
2536 | <builders> |
2537 | <hudson.tasks.Shell> |
2538 | - <command>#!/bin/bash -e |
2539 | -# Ensure we have a checkout of UOSCI code |
2540 | -if [[ ! -f $OSCI_ROOT/job-parts/osci_job_common.sh ]]; then |
2541 | - echo " - Removing checkout @ $OSCI_ROOT if it exists" |
2542 | - rm -rf $OSCI_ROOT ||: |
2543 | - echo " + Creating new lightweight checkout of $OSCI_REPO @ $OSCI_ROOT." |
2544 | - bzr co --lightweight $OSCI_REPO $OSCI_ROOT |
2545 | - echo "revno: $(bzr revno $OSCI_ROOT)" |
2546 | -fi |
2547 | -</command> |
2548 | - </hudson.tasks.Shell> |
2549 | - <hudson.tasks.Shell> |
2550 | - <command>${OSCI_ROOT}/job-parts/build_simulate.sh</command> |
2551 | + <command>#!/bin/bash -ue |
2552 | +. ~/oscirc |
2553 | +~/osci-repo-boot.sh |
2554 | +${OSCI_ROOT}/run/job-parts/build_simulate.sh</command> |
2555 | </hudson.tasks.Shell> |
2556 | </builders> |
2557 | <publishers> |
2558 | @@ -129,7 +118,7 @@ |
2559 | </hudson.tasks.ArtifactArchiver> |
2560 | </publishers> |
2561 | <buildWrappers> |
2562 | - <hudson.plugins.timestamper.TimestamperBuildWrapper plugin="timestamper@1.8.4"/> |
2563 | + <hudson.plugins.timestamper.TimestamperBuildWrapper plugin="timestamper@1.8.8"/> |
2564 | <org.jenkinsci.plugins.buildnamesetter.BuildNameSetter plugin="build-name-setter@1.6.5"> |
2565 | <template>#${BUILD_NUMBER} ${ENV,var="GERRIT_PROJECT"} ${ENV,var="GERRIT_CHANGE_NUMBER"},${ENV,var="GERRIT_PATCHSET_NUMBER"} for ${ENV,var="GERRIT_PATCHSET_UPLOADER_NAME"}</template> |
2566 | <runAtStart>true</runAtStart> |
2567 | |
2568 | === renamed directory 'deployment/jobs/sim_sub_e' => 'deploy/jobs-static/sim_sub_e' |
2569 | === modified file 'deploy/jobs-static/sim_sub_e/config.xml' |
2570 | --- deployment/jobs/sim_sub_e/config.xml 2016-10-04 02:28:38 +0000 |
2571 | +++ deploy/jobs-static/sim_sub_e/config.xml 2017-05-27 00:22:36 +0000 |
2572 | @@ -66,11 +66,9 @@ |
2573 | </parameterDefinitions> |
2574 | </hudson.model.ParametersDefinitionProperty> |
2575 | <hudson.plugins.throttleconcurrents.ThrottleJobProperty plugin="throttle-concurrents@1.9.0"> |
2576 | - <maxConcurrentPerNode>1</maxConcurrentPerNode> |
2577 | - <maxConcurrentTotal>6</maxConcurrentTotal> |
2578 | - <categories class="java.util.concurrent.CopyOnWriteArrayList"> |
2579 | - <string>false</string> |
2580 | - </categories> |
2581 | + <maxConcurrentPerNode>24</maxConcurrentPerNode> |
2582 | + <maxConcurrentTotal>24</maxConcurrentTotal> |
2583 | + <categories class="java.util.concurrent.CopyOnWriteArrayList"/> |
2584 | <throttleEnabled>true</throttleEnabled> |
2585 | <throttleOption>project</throttleOption> |
2586 | <limitOneJobWithMatchingParams>false</limitOneJobWithMatchingParams> |
2587 | @@ -79,7 +77,7 @@ |
2588 | <org.jvnet.hudson.plugins.shelveproject.ShelveProjectProperty plugin="shelve-project-plugin@1.5"/> |
2589 | </properties> |
2590 | <scm class="hudson.scm.NullSCM"/> |
2591 | - <assignedNode>slave</assignedNode> |
2592 | + <assignedNode>task</assignedNode> |
2593 | <canRoam>false</canRoam> |
2594 | <disabled>false</disabled> |
2595 | <blockBuildWhenDownstreamBuilding>false</blockBuildWhenDownstreamBuilding> |
2596 | @@ -88,19 +86,10 @@ |
2597 | <concurrentBuild>true</concurrentBuild> |
2598 | <builders> |
2599 | <hudson.tasks.Shell> |
2600 | - <command>#!/bin/bash -e |
2601 | -# Ensure we have a checkout of UOSCI code |
2602 | -if [[ ! -f $OSCI_ROOT/job-parts/osci_job_common.sh ]]; then |
2603 | - echo " - Removing checkout @ $OSCI_ROOT if it exists" |
2604 | - rm -rf $OSCI_ROOT ||: |
2605 | - echo " + Creating new lightweight checkout of $OSCI_REPO @ $OSCI_ROOT." |
2606 | - bzr co --lightweight $OSCI_REPO $OSCI_ROOT |
2607 | - echo "revno: $(bzr revno $OSCI_ROOT)" |
2608 | -fi |
2609 | -</command> |
2610 | - </hudson.tasks.Shell> |
2611 | - <hudson.tasks.Shell> |
2612 | - <command>${OSCI_ROOT}/job-parts/build_simulate.sh</command> |
2613 | + <command>#!/bin/bash -ue |
2614 | +. ~/oscirc |
2615 | +~/osci-repo-boot-clean.sh |
2616 | +${OSCI_ROOT}/run/job-parts/build_simulate.sh</command> |
2617 | </hudson.tasks.Shell> |
2618 | </builders> |
2619 | <publishers> |
2620 | @@ -114,7 +103,7 @@ |
2621 | </hudson.tasks.ArtifactArchiver> |
2622 | </publishers> |
2623 | <buildWrappers> |
2624 | - <hudson.plugins.timestamper.TimestamperBuildWrapper plugin="timestamper@1.8.4"/> |
2625 | + <hudson.plugins.timestamper.TimestamperBuildWrapper plugin="timestamper@1.8.8"/> |
2626 | <org.jenkinsci.plugins.buildnamesetter.BuildNameSetter plugin="build-name-setter@1.6.5"> |
2627 | <template>#${BUILD_NUMBER}</template> |
2628 | <runAtStart>true</runAtStart> |
2629 | |
2630 | === renamed directory 'deployment/jobs/test_charm_amulet_full' => 'deploy/jobs-static/test_charm_amulet_full' |
2631 | === modified file 'deploy/jobs-static/test_charm_amulet_full/config.xml' |
2632 | --- deployment/jobs/test_charm_amulet_full/config.xml 2016-12-09 21:50:02 +0000 |
2633 | +++ deploy/jobs-static/test_charm_amulet_full/config.xml 2017-05-27 00:22:36 +0000 |
2634 | @@ -122,10 +122,8 @@ |
2635 | </hudson.model.ParametersDefinitionProperty> |
2636 | <hudson.plugins.throttleconcurrents.ThrottleJobProperty plugin="throttle-concurrents@1.9.0"> |
2637 | <maxConcurrentPerNode>1</maxConcurrentPerNode> |
2638 | - <maxConcurrentTotal>8</maxConcurrentTotal> |
2639 | - <categories class="java.util.concurrent.CopyOnWriteArrayList"> |
2640 | - <string>false</string> |
2641 | - </categories> |
2642 | + <maxConcurrentTotal>5</maxConcurrentTotal> |
2643 | + <categories class="java.util.concurrent.CopyOnWriteArrayList"/> |
2644 | <throttleEnabled>true</throttleEnabled> |
2645 | <throttleOption>project</throttleOption> |
2646 | <limitOneJobWithMatchingParams>false</limitOneJobWithMatchingParams> |
2647 | @@ -143,21 +141,15 @@ |
2648 | <concurrentBuild>true</concurrentBuild> |
2649 | <builders> |
2650 | <hudson.tasks.Shell> |
2651 | - <command>#!/bin/bash -e |
2652 | -# Ensure we have a checkout of UOSCI code |
2653 | -if [[ ! -f $OSCI_ROOT/job-parts/osci_job_common.sh ]]; then |
2654 | - echo " - Removing checkout @ $OSCI_ROOT if it exists" |
2655 | - rm -rf $OSCI_ROOT ||: |
2656 | - echo " + Creating new lightweight checkout of $OSCI_REPO @ $OSCI_ROOT." |
2657 | - bzr co --lightweight $OSCI_REPO $OSCI_ROOT |
2658 | - echo "revno: $(bzr revno $OSCI_ROOT)" |
2659 | -fi |
2660 | + <command>#!/bin/bash -ue |
2661 | +. ~/oscirc |
2662 | +~/osci-repo-boot-clean.sh |
2663 | </command> |
2664 | </hudson.tasks.Shell> |
2665 | <hudson.tasks.Shell> |
2666 | <command>#!/bin/bash -e |
2667 | -${OSCI_ROOT}/job-parts/build_amulet_test.sh |
2668 | -</command> |
2669 | +. ~/oscirc |
2670 | +${OSCI_ROOT}/run/job-parts/build_amulet_test.sh</command> |
2671 | </hudson.tasks.Shell> |
2672 | </builders> |
2673 | <publishers> |
2674 | @@ -171,7 +163,7 @@ |
2675 | </hudson.tasks.ArtifactArchiver> |
2676 | </publishers> |
2677 | <buildWrappers> |
2678 | - <hudson.plugins.timestamper.TimestamperBuildWrapper plugin="timestamper@1.8.4"/> |
2679 | + <hudson.plugins.timestamper.TimestamperBuildWrapper plugin="timestamper@1.8.8"/> |
2680 | <org.jenkinsci.plugins.buildnamesetter.BuildNameSetter plugin="build-name-setter@1.6.5"> |
2681 | <template>#${BUILD_NUMBER} ${ENV,var="GERRIT_PROJECT"} ${ENV,var="GERRIT_BRANCH"} ${ENV,var="GERRIT_CHANGE_NUMBER"} ${ENV,var="GERRIT_PATCHSET_NUMBER"} ${ENV,var="GERRIT_PATCHSET_UPLOADER_NAME"} ${ENV,var="BASE_NAME"} ${ENV,var="GIT_BRANCH"}</template> |
2682 | <runAtStart>true</runAtStart> |
2683 | |
2684 | === renamed directory 'deployment/jobs/test_charm_amulet_smoke' => 'deploy/jobs-static/test_charm_amulet_smoke' |
2685 | === modified file 'deploy/jobs-static/test_charm_amulet_smoke/config.xml' |
2686 | --- deployment/jobs/test_charm_amulet_smoke/config.xml 2016-06-15 04:31:10 +0000 |
2687 | +++ deploy/jobs-static/test_charm_amulet_smoke/config.xml 2017-05-27 00:22:36 +0000 |
2688 | @@ -2,14 +2,20 @@ |
2689 | <project> |
2690 | <actions/> |
2691 | <description></description> |
2692 | - <logRotator class="hudson.tasks.LogRotator"> |
2693 | - <daysToKeep>-1</daysToKeep> |
2694 | - <numToKeep>-1</numToKeep> |
2695 | - <artifactDaysToKeep>30</artifactDaysToKeep> |
2696 | - <artifactNumToKeep>500</artifactNumToKeep> |
2697 | - </logRotator> |
2698 | <keepDependencies>false</keepDependencies> |
2699 | <properties> |
2700 | + <jenkins.model.BuildDiscarderProperty> |
2701 | + <strategy class="hudson.tasks.LogRotator"> |
2702 | + <daysToKeep>-1</daysToKeep> |
2703 | + <numToKeep>-1</numToKeep> |
2704 | + <artifactDaysToKeep>30</artifactDaysToKeep> |
2705 | + <artifactNumToKeep>500</artifactNumToKeep> |
2706 | + </strategy> |
2707 | + </jenkins.model.BuildDiscarderProperty> |
2708 | + <com.sonyericsson.rebuild.RebuildSettings plugin="rebuild@1.25"> |
2709 | + <autoRebuild>false</autoRebuild> |
2710 | + <rebuildDisabled>false</rebuildDisabled> |
2711 | + </com.sonyericsson.rebuild.RebuildSettings> |
2712 | <hudson.model.ParametersDefinitionProperty> |
2713 | <parameterDefinitions> |
2714 | <hudson.model.StringParameterDefinition> |
2715 | @@ -122,15 +128,14 @@ |
2716 | </hudson.model.StringParameterDefinition> |
2717 | </parameterDefinitions> |
2718 | </hudson.model.ParametersDefinitionProperty> |
2719 | - <com.sonyericsson.rebuild.RebuildSettings plugin="rebuild@1.25"> |
2720 | - <autoRebuild>false</autoRebuild> |
2721 | - <rebuildDisabled>false</rebuildDisabled> |
2722 | - </com.sonyericsson.rebuild.RebuildSettings> |
2723 | - <hudson.plugins.throttleconcurrents.ThrottleJobProperty plugin="throttle-concurrents@1.8.4"> |
2724 | + <hudson.plugins.throttleconcurrents.ThrottleJobProperty plugin="throttle-concurrents@1.9.0"> |
2725 | <maxConcurrentPerNode>1</maxConcurrentPerNode> |
2726 | <maxConcurrentTotal>5</maxConcurrentTotal> |
2727 | + <categories class="java.util.concurrent.CopyOnWriteArrayList"/> |
2728 | <throttleEnabled>true</throttleEnabled> |
2729 | <throttleOption>project</throttleOption> |
2730 | + <limitOneJobWithMatchingParams>false</limitOneJobWithMatchingParams> |
2731 | + <paramsToUseForLimit></paramsToUseForLimit> |
2732 | </hudson.plugins.throttleconcurrents.ThrottleJobProperty> |
2733 | <org.jvnet.hudson.plugins.shelveproject.ShelveProjectProperty plugin="shelve-project-plugin@1.5"/> |
2734 | </properties> |
2735 | @@ -144,21 +149,16 @@ |
2736 | <concurrentBuild>true</concurrentBuild> |
2737 | <builders> |
2738 | <hudson.tasks.Shell> |
2739 | + <command>#!/bin/bash -ue |
2740 | +. ~/oscirc |
2741 | +~/osci-repo-boot-clean.sh</command> |
2742 | + </hudson.tasks.Shell> |
2743 | + <hudson.tasks.Shell> |
2744 | <command>#!/bin/bash -e |
2745 | -# Ensure we have a checkout of UOSCI code |
2746 | -if [[ ! -f $OSCI_ROOT/job-parts/osci_job_common.sh ]]; then |
2747 | - echo " - Removing checkout @ $OSCI_ROOT if it exists" |
2748 | - rm -rf $OSCI_ROOT ||: |
2749 | - echo " + Creating new lightweight checkout of $OSCI_REPO @ $OSCI_ROOT." |
2750 | - bzr co --lightweight $OSCI_REPO $OSCI_ROOT |
2751 | - echo "revno: $(bzr revno $OSCI_ROOT)" |
2752 | -fi |
2753 | +. ~/oscirc |
2754 | +${OSCI_ROOT}/run/job-parts/build_amulet_smoke.sh |
2755 | </command> |
2756 | </hudson.tasks.Shell> |
2757 | - <hudson.tasks.Shell> |
2758 | - <command>#!/bin/bash -e |
2759 | -${OSCI_ROOT}/job-parts/build_amulet_smoke.sh</command> |
2760 | - </hudson.tasks.Shell> |
2761 | </builders> |
2762 | <publishers> |
2763 | <hudson.tasks.ArtifactArchiver> |
2764 | @@ -167,12 +167,15 @@ |
2765 | <onlyIfSuccessful>false</onlyIfSuccessful> |
2766 | <fingerprint>false</fingerprint> |
2767 | <defaultExcludes>true</defaultExcludes> |
2768 | + <caseSensitive>true</caseSensitive> |
2769 | </hudson.tasks.ArtifactArchiver> |
2770 | </publishers> |
2771 | <buildWrappers> |
2772 | - <hudson.plugins.timestamper.TimestamperBuildWrapper plugin="timestamper@1.6"/> |
2773 | - <org.jenkinsci.plugins.buildnamesetter.BuildNameSetter plugin="build-name-setter@1.3"> |
2774 | + <hudson.plugins.timestamper.TimestamperBuildWrapper plugin="timestamper@1.8.8"/> |
2775 | + <org.jenkinsci.plugins.buildnamesetter.BuildNameSetter plugin="build-name-setter@1.6.5"> |
2776 | <template>#${BUILD_NUMBER} ${ENV,var="GERRIT_PROJECT"} ${ENV,var="GERRIT_BRANCH"} ${ENV,var="GERRIT_CHANGE_NUMBER"} ${ENV,var="GERRIT_PATCHSET_NUMBER"} ${ENV,var="GERRIT_PATCHSET_UPLOADER_NAME"} ${ENV,var="BASE_NAME"} ${ENV,var="GIT_BRANCH"}</template> |
2777 | + <runAtStart>true</runAtStart> |
2778 | + <runAtEnd>true</runAtEnd> |
2779 | </org.jenkinsci.plugins.buildnamesetter.BuildNameSetter> |
2780 | </buildWrappers> |
2781 | </project> |
2782 | \ No newline at end of file |
2783 | |
2784 | === renamed directory 'deployment/jobs/test_charm_lint' => 'deploy/jobs-static/test_charm_lint' |
2785 | === modified file 'deploy/jobs-static/test_charm_lint/config.xml' |
2786 | --- deployment/jobs/test_charm_lint/config.xml 2016-09-21 19:36:25 +0000 |
2787 | +++ deploy/jobs-static/test_charm_lint/config.xml 2017-05-27 00:22:36 +0000 |
2788 | @@ -121,8 +121,8 @@ |
2789 | </parameterDefinitions> |
2790 | </hudson.model.ParametersDefinitionProperty> |
2791 | <hudson.plugins.throttleconcurrents.ThrottleJobProperty plugin="throttle-concurrents@1.9.0"> |
2792 | - <maxConcurrentPerNode>1</maxConcurrentPerNode> |
2793 | - <maxConcurrentTotal>8</maxConcurrentTotal> |
2794 | + <maxConcurrentPerNode>8</maxConcurrentPerNode> |
2795 | + <maxConcurrentTotal>24</maxConcurrentTotal> |
2796 | <categories class="java.util.concurrent.CopyOnWriteArrayList"/> |
2797 | <throttleEnabled>true</throttleEnabled> |
2798 | <throttleOption>project</throttleOption> |
2799 | @@ -132,7 +132,7 @@ |
2800 | <org.jvnet.hudson.plugins.shelveproject.ShelveProjectProperty plugin="shelve-project-plugin@1.5"/> |
2801 | </properties> |
2802 | <scm class="hudson.scm.NullSCM"/> |
2803 | - <assignedNode>slave||lab</assignedNode> |
2804 | + <assignedNode>task</assignedNode> |
2805 | <canRoam>false</canRoam> |
2806 | <disabled>false</disabled> |
2807 | <blockBuildWhenDownstreamBuilding>false</blockBuildWhenDownstreamBuilding> |
2808 | @@ -141,20 +141,11 @@ |
2809 | <concurrentBuild>true</concurrentBuild> |
2810 | <builders> |
2811 | <hudson.tasks.Shell> |
2812 | - <command>#!/bin/bash -e |
2813 | -# Ensure we have a checkout of UOSCI code |
2814 | -if [[ ! -f $OSCI_ROOT/job-parts/osci_job_common.sh ]]; then |
2815 | - echo " - Removing checkout @ $OSCI_ROOT if it exists" |
2816 | - rm -rf $OSCI_ROOT ||: |
2817 | - echo " + Creating new lightweight checkout of $OSCI_REPO @ $OSCI_ROOT." |
2818 | - bzr co --lightweight $OSCI_REPO $OSCI_ROOT |
2819 | - echo "revno: $(bzr revno $OSCI_ROOT)" |
2820 | -fi |
2821 | -</command> |
2822 | - </hudson.tasks.Shell> |
2823 | - <hudson.tasks.Shell> |
2824 | - <command>#!/bin/bash -e |
2825 | -${OSCI_ROOT}/job-parts/build_lint_test.sh |
2826 | + <command>#!/bin/bash -ue |
2827 | +. ~/oscirc |
2828 | +~/osci-repo-boot-clean.sh |
2829 | +${OSCI_ROOT}/run/job-parts/build_lint_test.sh |
2830 | + |
2831 | </command> |
2832 | </hudson.tasks.Shell> |
2833 | </builders> |
2834 | @@ -169,7 +160,7 @@ |
2835 | </hudson.tasks.ArtifactArchiver> |
2836 | </publishers> |
2837 | <buildWrappers> |
2838 | - <hudson.plugins.timestamper.TimestamperBuildWrapper plugin="timestamper@1.8.4"/> |
2839 | + <hudson.plugins.timestamper.TimestamperBuildWrapper plugin="timestamper@1.8.8"/> |
2840 | <org.jenkinsci.plugins.buildnamesetter.BuildNameSetter plugin="build-name-setter@1.6.5"> |
2841 | <template>#${BUILD_NUMBER} ${ENV,var="GERRIT_PROJECT"} ${ENV,var="GERRIT_BRANCH"} ${ENV,var="GERRIT_CHANGE_NUMBER"} ${ENV,var="GERRIT_PATCHSET_NUMBER"} ${ENV,var="GERRIT_PATCHSET_UPLOADER_NAME"} ${ENV,var="BASE_NAME"} ${ENV,var="GIT_BRANCH"}</template> |
2842 | <runAtStart>true</runAtStart> |
2843 | |
2844 | === renamed directory 'deployment/jobs/test_charm_pipeline' => 'deploy/jobs-static/test_charm_pipeline' |
2845 | === modified file 'deploy/jobs-static/test_charm_pipeline/config.xml' |
2846 | --- deployment/jobs/test_charm_pipeline/config.xml 2016-12-09 21:50:02 +0000 |
2847 | +++ deploy/jobs-static/test_charm_pipeline/config.xml 2017-05-27 00:22:36 +0000 |
2848 | @@ -14,8 +14,8 @@ |
2849 | <li>(test_charm_unit + test_charm_lint)</li>
 |
2850 | <li>test_charm_single</li>
 |
2851 | <li>test_charm_amulet_smoke</li>
 |
2852 | - <li>WIP!: test_charm_amulet_full</li>
 |
2853 | - <li>artiface collection</li>
 |
2854 | + <li>test_charm_amulet_full</li>
 |
2855 | + <li>artifact collection</li>
 |
2856 | <li>gerrit review posting and/or report upload to bucket</li>
 |
2857 | </ol></description> |
2858 | <keepDependencies>false</keepDependencies> |
2859 | @@ -117,27 +117,24 @@ |
2860 | </parameterDefinitions> |
2861 | </hudson.model.ParametersDefinitionProperty> |
2862 | <hudson.plugins.throttleconcurrents.ThrottleJobProperty plugin="throttle-concurrents@1.9.0"> |
2863 | - <maxConcurrentPerNode>1</maxConcurrentPerNode> |
2864 | - <maxConcurrentTotal>8</maxConcurrentTotal> |
2865 | - <categories class="java.util.concurrent.CopyOnWriteArrayList"> |
2866 | - <string>false</string> |
2867 | - </categories> |
2868 | + <maxConcurrentPerNode>8</maxConcurrentPerNode> |
2869 | + <maxConcurrentTotal>12</maxConcurrentTotal> |
2870 | + <categories class="java.util.concurrent.CopyOnWriteArrayList"/> |
2871 | <throttleEnabled>true</throttleEnabled> |
2872 | <throttleOption>project</throttleOption> |
2873 | <limitOneJobWithMatchingParams>false</limitOneJobWithMatchingParams> |
2874 | <paramsToUseForLimit></paramsToUseForLimit> |
2875 | - <configVersion>1</configVersion> |
2876 | </hudson.plugins.throttleconcurrents.ThrottleJobProperty> |
2877 | <org.jvnet.hudson.plugins.shelveproject.ShelveProjectProperty plugin="shelve-project-plugin@1.5"/> |
2878 | </properties> |
2879 | <scm class="hudson.scm.NullSCM"/> |
2880 | - <assignedNode>slave</assignedNode> |
2881 | + <assignedNode>task</assignedNode> |
2882 | <canRoam>false</canRoam> |
2883 | <disabled>false</disabled> |
2884 | <blockBuildWhenDownstreamBuilding>false</blockBuildWhenDownstreamBuilding> |
2885 | <blockBuildWhenUpstreamBuilding>false</blockBuildWhenUpstreamBuilding> |
2886 | <triggers> |
2887 | - <com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.GerritTrigger plugin="gerrit-trigger@2.18.3"> |
2888 | + <com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.GerritTrigger plugin="gerrit-trigger@2.23.1"> |
2889 | <spec></spec> |
2890 | <gerritProjects> |
2891 | <com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.data.GerritProject> |
2892 | @@ -166,6 +163,7 @@ |
2893 | <dependencyJobsNames></dependencyJobsNames> |
2894 | <commitMessageParameterMode>BASE64</commitMessageParameterMode> |
2895 | <changeSubjectParameterMode>PLAIN</changeSubjectParameterMode> |
2896 | + <commentTextParameterMode>PLAIN</commentTextParameterMode> |
2897 | <buildStartMessage></buildStartMessage> |
2898 | <buildFailureMessage></buildFailureMessage> |
2899 | <buildSuccessfulMessage></buildSuccessfulMessage> |
2900 | @@ -198,29 +196,22 @@ |
2901 | <concurrentBuild>true</concurrentBuild> |
2902 | <builders> |
2903 | <hudson.tasks.Shell> |
2904 | - <command>#!/bin/bash -e |
2905 | -# Ensure we have a checkout of UOSCI code |
2906 | -if [[ ! -f $OSCI_ROOT/job-parts/osci_job_common.sh ]]; then |
2907 | - echo " - Removing checkout @ $OSCI_ROOT if it exists" |
2908 | - rm -rf $OSCI_ROOT ||: |
2909 | - echo " + Creating new lightweight checkout of $OSCI_REPO @ $OSCI_ROOT." |
2910 | - bzr co --lightweight $OSCI_REPO $OSCI_ROOT |
2911 | - echo "revno: $(bzr revno $OSCI_ROOT)" |
2912 | -fi</command> |
2913 | + <command>#!/bin/bash -ue |
2914 | +. ~/oscirc |
2915 | +~/osci-repo-boot-clean.sh</command> |
2916 | </hudson.tasks.Shell> |
2917 | <hudson.tasks.Shell> |
2918 | - <command>env | egrep "BUILD|JOB_|GERRIT|UOSCI|HUDSON|JENKINS|WORKSPACE" | sort</command> |
2919 | + <command># env | egrep "BUILD|JOB_|GERRIT|UOSCI|HUDSON|JENKINS|WORKSPACE" | sort</command> |
2920 | </hudson.tasks.Shell> |
2921 | <org.jenkinsci.plugins.conditionalbuildstep.ConditionalBuilder plugin="conditional-buildstep@1.3.5"> |
2922 | <runner class="org.jenkins_ci.plugins.run_condition.BuildStepRunner$Fail" plugin="run-condition@1.0"/> |
2923 | <runCondition class="org.jenkins_ci.plugins.run_condition.core.AlwaysRun" plugin="run-condition@1.0"/> |
2924 | <conditionalbuilders> |
2925 | <hudson.tasks.Shell> |
2926 | - <command>#!/bin/bash -e |
2927 | -# |
2928 | + <command>#!/bin/bash -ue |
2929 | # Inspect repo and prescribe things to do |
2930 | - |
2931 | -${OSCI_ROOT}/job-parts/build_prescribe.sh</command> |
2932 | +. ~/oscirc |
2933 | +${OSCI_ROOT}/run/job-parts/build_prescribe.sh</command> |
2934 | </hudson.tasks.Shell> |
2935 | </conditionalbuilders> |
2936 | </org.jenkinsci.plugins.conditionalbuildstep.ConditionalBuilder> |
2937 | @@ -241,7 +232,7 @@ |
2938 | </bestResult> |
2939 | </runCondition> |
2940 | <conditionalbuilders> |
2941 | - <hudson.plugins.parameterizedtrigger.TriggerBuilder plugin="parameterized-trigger@2.32"> |
2942 | + <hudson.plugins.parameterizedtrigger.TriggerBuilder plugin="parameterized-trigger@2.33"> |
2943 | <configs> |
2944 | <hudson.plugins.parameterizedtrigger.BlockableBuildTriggerConfig> |
2945 | <configs> |
2946 | @@ -250,6 +241,7 @@ |
2947 | <projects>test_charm_lint,test_charm_unit</projects> |
2948 | <condition>ALWAYS</condition> |
2949 | <triggerWithNoParameters>false</triggerWithNoParameters> |
2950 | + <triggerFromChildProjects>false</triggerFromChildProjects> |
2951 | <block> |
2952 | <unstableThreshold> |
2953 | <name>UNSTABLE</name> |
2954 | @@ -269,10 +261,11 @@ |
2955 | </configs> |
2956 | </hudson.plugins.parameterizedtrigger.TriggerBuilder> |
2957 | <hudson.tasks.Shell> |
2958 | - <command>#!/bin/bash -e |
2959 | -env | grep TRIGGERED_BUILD |
2960 | -wget ${JENKINS_URL}job/test_charm_lint/$TRIGGERED_BUILD_NUMBER_test_charm_lint/consoleText -O $WORKSPACE/consoleText.test_charm_lint_${TRIGGERED_BUILD_NUMBER_test_charm_lint}.txt |
2961 | -wget ${JENKINS_URL}job/test_charm_unit/$TRIGGERED_BUILD_NUMBER_test_charm_unit/consoleText -O $WORKSPACE/consoleText.test_charm_unit_${TRIGGERED_BUILD_NUMBER_test_charm_unit}.txt</command> |
2962 | + <command>#!/bin/bash -ue |
2963 | +. ~/oscirc |
2964 | +# env | grep TRIGGERED_BUILD |
2965 | +wget http://${OSCI_MASTER_IP}:8080/job/test_charm_lint/$TRIGGERED_BUILD_NUMBER_test_charm_lint/consoleText -O $WORKSPACE/consoleText.test_charm_lint_${TRIGGERED_BUILD_NUMBER_test_charm_lint}.txt |
2966 | +wget http://${OSCI_MASTER_IP}:8080/job/test_charm_unit/$TRIGGERED_BUILD_NUMBER_test_charm_unit/consoleText -O $WORKSPACE/consoleText.test_charm_unit_${TRIGGERED_BUILD_NUMBER_test_charm_unit}.txt</command> |
2967 | </hudson.tasks.Shell> |
2968 | <hudson.plugins.copyartifact.CopyArtifact plugin="copyartifact@1.38.1"> |
2969 | <project>test_charm_lint</project> |
2970 | @@ -305,7 +298,7 @@ |
2971 | <baseDir class="org.jenkins_ci.plugins.run_condition.common.BaseDirectory$Workspace"/> |
2972 | </runCondition> |
2973 | <conditionalbuilders> |
2974 | - <hudson.plugins.parameterizedtrigger.TriggerBuilder plugin="parameterized-trigger@2.32"> |
2975 | + <hudson.plugins.parameterizedtrigger.TriggerBuilder plugin="parameterized-trigger@2.33"> |
2976 | <configs> |
2977 | <hudson.plugins.parameterizedtrigger.BlockableBuildTriggerConfig> |
2978 | <configs> |
2979 | @@ -314,6 +307,7 @@ |
2980 | <projects>charm_build</projects> |
2981 | <condition>ALWAYS</condition> |
2982 | <triggerWithNoParameters>false</triggerWithNoParameters> |
2983 | + <triggerFromChildProjects>false</triggerFromChildProjects> |
2984 | <block> |
2985 | <unstableThreshold> |
2986 | <name>UNSTABLE</name> |
2987 | @@ -333,9 +327,10 @@ |
2988 | </configs> |
2989 | </hudson.plugins.parameterizedtrigger.TriggerBuilder> |
2990 | <hudson.tasks.Shell> |
2991 | - <command>#!/bin/bash -e |
2992 | -env | grep TRIGGERED_BUILD |
2993 | -wget ${JENKINS_URL}job/charm_build/$TRIGGERED_BUILD_NUMBER_charm_build/consoleText -O $WORKSPACE/consoleText.charm_build_${TRIGGERED_BUILD_NUMBER_charm_build}.txt</command> |
2994 | + <command>#!/bin/bash -ue |
2995 | +. ~/oscirc |
2996 | +# env | grep TRIGGERED_BUILD |
2997 | +wget http://${OSCI_MASTER_IP}:8080/job/charm_build/$TRIGGERED_BUILD_NUMBER_charm_build/consoleText -O $WORKSPACE/consoleText.charm_build_${TRIGGERED_BUILD_NUMBER_charm_build}.txt</command> |
2998 | </hudson.tasks.Shell> |
2999 | <hudson.plugins.copyartifact.CopyArtifact plugin="copyartifact@1.38.1"> |
3000 | <project>charm_build</project> |
3001 | @@ -358,7 +353,7 @@ |
3002 | <baseDir class="org.jenkins_ci.plugins.run_condition.common.BaseDirectory$Workspace"/> |
3003 | </runCondition> |
3004 | <conditionalbuilders> |
3005 | - <hudson.plugins.parameterizedtrigger.TriggerBuilder plugin="parameterized-trigger@2.32"> |
3006 | + <hudson.plugins.parameterizedtrigger.TriggerBuilder plugin="parameterized-trigger@2.33"> |
3007 | <configs> |
3008 | <hudson.plugins.parameterizedtrigger.BlockableBuildTriggerConfig> |
3009 | <configs> |
3010 | @@ -373,6 +368,7 @@ |
3011 | <projects>test_charm_lint</projects> |
3012 | <condition>ALWAYS</condition> |
3013 | <triggerWithNoParameters>false</triggerWithNoParameters> |
3014 | + <triggerFromChildProjects>false</triggerFromChildProjects> |
3015 | <block> |
3016 | <unstableThreshold> |
3017 | <name>UNSTABLE</name> |
3018 | @@ -392,9 +388,10 @@ |
3019 | </configs> |
3020 | </hudson.plugins.parameterizedtrigger.TriggerBuilder> |
3021 | <hudson.tasks.Shell> |
3022 | - <command>#!/bin/bash -e |
3023 | -env | grep TRIGGERED_BUILD |
3024 | -wget ${JENKINS_URL}job/test_charm_lint/$TRIGGERED_BUILD_NUMBER_test_charm_lint/consoleText -O $WORKSPACE/consoleText.test_charm_lint_${TRIGGERED_BUILD_NUMBER_test_charm_lint}.txt</command> |
3025 | + <command>#!/bin/bash -ue |
3026 | +. ~/oscirc |
3027 | +# env | grep TRIGGERED_BUILD |
3028 | +wget http://${OSCI_MASTER_IP}:8080/job/test_charm_lint/$TRIGGERED_BUILD_NUMBER_test_charm_lint/consoleText -O $WORKSPACE/consoleText.test_charm_lint_${TRIGGERED_BUILD_NUMBER_test_charm_lint}.txt</command> |
3029 | </hudson.tasks.Shell> |
3030 | <hudson.plugins.copyartifact.CopyArtifact plugin="copyartifact@1.38.1"> |
3031 | <project>test_charm_lint</project> |
3032 | @@ -438,7 +435,7 @@ |
3033 | </conditions> |
3034 | </runCondition> |
3035 | <conditionalbuilders> |
3036 | - <hudson.plugins.parameterizedtrigger.TriggerBuilder plugin="parameterized-trigger@2.32"> |
3037 | + <hudson.plugins.parameterizedtrigger.TriggerBuilder plugin="parameterized-trigger@2.33"> |
3038 | <configs> |
3039 | <hudson.plugins.parameterizedtrigger.BlockableBuildTriggerConfig> |
3040 | <configs> |
3041 | @@ -453,6 +450,7 @@ |
3042 | <projects>test_charm_single</projects> |
3043 | <condition>ALWAYS</condition> |
3044 | <triggerWithNoParameters>false</triggerWithNoParameters> |
3045 | + <triggerFromChildProjects>false</triggerFromChildProjects> |
3046 | <block> |
3047 | <unstableThreshold> |
3048 | <name>UNSTABLE</name> |
3049 | @@ -472,9 +470,10 @@ |
3050 | </configs> |
3051 | </hudson.plugins.parameterizedtrigger.TriggerBuilder> |
3052 | <hudson.tasks.Shell> |
3053 | - <command>#!/bin/bash -e |
3054 | -env | grep TRIGGERED_BUILD |
3055 | -wget ${JENKINS_URL}job/test_charm_single/$TRIGGERED_BUILD_NUMBER_test_charm_single/consoleText -O $WORKSPACE/consoleText.test_charm_single_${TRIGGERED_BUILD_NUMBER_test_charm_single}.txt</command> |
3056 | + <command>#!/bin/bash -ue |
3057 | +. ~/oscirc |
3058 | +# env | grep TRIGGERED_BUILD |
3059 | +wget http://${OSCI_MASTER_IP}:8080/job/test_charm_single/$TRIGGERED_BUILD_NUMBER_test_charm_single/consoleText -O $WORKSPACE/consoleText.test_charm_single_${TRIGGERED_BUILD_NUMBER_test_charm_single}.txt</command> |
3060 | </hudson.tasks.Shell> |
3061 | <hudson.plugins.copyartifact.CopyArtifact plugin="copyartifact@1.38.1"> |
3062 | <project>test_charm_single</project> |
3063 | @@ -518,7 +517,7 @@ |
3064 | </conditions> |
3065 | </runCondition> |
3066 | <conditionalbuilders> |
3067 | - <hudson.plugins.parameterizedtrigger.TriggerBuilder plugin="parameterized-trigger@2.32"> |
3068 | + <hudson.plugins.parameterizedtrigger.TriggerBuilder plugin="parameterized-trigger@2.33"> |
3069 | <configs> |
3070 | <hudson.plugins.parameterizedtrigger.BlockableBuildTriggerConfig> |
3071 | <configs> |
3072 | @@ -533,6 +532,7 @@ |
3073 | <projects>test_charm_amulet_smoke</projects> |
3074 | <condition>ALWAYS</condition> |
3075 | <triggerWithNoParameters>false</triggerWithNoParameters> |
3076 | + <triggerFromChildProjects>false</triggerFromChildProjects> |
3077 | <block> |
3078 | <unstableThreshold> |
3079 | <name>UNSTABLE</name> |
3080 | @@ -552,9 +552,10 @@ |
3081 | </configs> |
3082 | </hudson.plugins.parameterizedtrigger.TriggerBuilder> |
3083 | <hudson.tasks.Shell> |
3084 | - <command>#!/bin/bash -e |
3085 | -env | grep TRIGGERED_BUILD |
3086 | -wget ${JENKINS_URL}job/test_charm_amulet_smoke/$TRIGGERED_BUILD_NUMBER_test_charm_amulet_smoke/consoleText -O $WORKSPACE/consoleText.test_charm_amulet_smoke_${TRIGGERED_BUILD_NUMBER_test_charm_amulet_smoke}.txt</command> |
3087 | + <command>#!/bin/bash -ue |
3088 | +. ~/oscirc |
3089 | +# env | grep TRIGGERED_BUILD |
3090 | +wget http://${OSCI_MASTER_IP}:8080/job/test_charm_amulet_smoke/$TRIGGERED_BUILD_NUMBER_test_charm_amulet_smoke/consoleText -O $WORKSPACE/consoleText.test_charm_amulet_smoke_${TRIGGERED_BUILD_NUMBER_test_charm_amulet_smoke}.txt</command> |
3091 | </hudson.tasks.Shell> |
3092 | <hudson.plugins.copyartifact.CopyArtifact plugin="copyartifact@1.38.1"> |
3093 | <project>test_charm_amulet_smoke</project> |
3094 | @@ -585,9 +586,10 @@ |
3095 | </bestResult> |
3096 | </condition> |
3097 | <buildStep class="hudson.tasks.Shell"> |
3098 | - <command>#!/bin/bash -e |
3099 | + <command>#!/bin/bash -ue |
3100 | +. ~/oscirc |
3101 | export UOSCI_GERRIT_VERDICT="SUCCESS" |
3102 | -${OSCI_ROOT}/job-parts/part_gerrit_review.sh |
3103 | +${OSCI_ROOT}/run/job-parts/part_gerrit_review.sh |
3104 | </command> |
3105 | </buildStep> |
3106 | <runner class="org.jenkins_ci.plugins.run_condition.BuildStepRunner$Fail" plugin="run-condition@1.0"/> |
3107 | @@ -608,9 +610,10 @@ |
3108 | </bestResult> |
3109 | </condition> |
3110 | <buildStep class="hudson.tasks.Shell"> |
3111 | - <command>#!/bin/bash -e |
3112 | + <command>#!/bin/bash -ue |
3113 | +. ~/oscirc |
3114 | export UOSCI_GERRIT_VERDICT="FAILURE" |
3115 | -${OSCI_ROOT}/job-parts/part_gerrit_review.sh |
3116 | +${OSCI_ROOT}/run/job-parts/part_gerrit_review.sh |
3117 | </command> |
3118 | </buildStep> |
3119 | <runner class="org.jenkins_ci.plugins.run_condition.BuildStepRunner$Fail" plugin="run-condition@1.0"/> |
3120 | @@ -627,12 +630,12 @@ |
3121 | </hudson.tasks.ArtifactArchiver> |
3122 | </publishers> |
3123 | <buildWrappers> |
3124 | - <hudson.plugins.ws__cleanup.PreBuildCleanup plugin="ws-cleanup@0.30"> |
3125 | + <hudson.plugins.ws__cleanup.PreBuildCleanup plugin="ws-cleanup@0.32"> |
3126 | <deleteDirs>false</deleteDirs> |
3127 | <cleanupParameter></cleanupParameter> |
3128 | <externalDelete></externalDelete> |
3129 | </hudson.plugins.ws__cleanup.PreBuildCleanup> |
3130 | - <hudson.plugins.timestamper.TimestamperBuildWrapper plugin="timestamper@1.8.4"/> |
3131 | + <hudson.plugins.timestamper.TimestamperBuildWrapper plugin="timestamper@1.8.8"/> |
3132 | <org.jenkinsci.plugins.buildnamesetter.BuildNameSetter plugin="build-name-setter@1.6.5"> |
3133 | <template>#${BUILD_NUMBER} ${ENV,var="GERRIT_PROJECT"} ${ENV,var="GERRIT_BRANCH"} ${ENV,var="GERRIT_CHANGE_NUMBER"} ${ENV,var="GERRIT_PATCHSET_NUMBER"} ${ENV,var="GERRIT_PATCHSET_UPLOADER_NAME"} ${ENV,var="BASE_NAME"} ${ENV,var="GIT_BRANCH"}</template> |
3134 | <runAtStart>true</runAtStart> |
3135 | |
3136 | === renamed directory 'deployment/jobs/test_charm_pipeline_amulet_full' => 'deploy/jobs-static/test_charm_pipeline_amulet_full' |
3137 | === modified file 'deploy/jobs-static/test_charm_pipeline_amulet_full/config.xml' |
3138 | --- deployment/jobs/test_charm_pipeline_amulet_full/config.xml 2016-12-09 21:50:02 +0000 |
3139 | +++ deploy/jobs-static/test_charm_pipeline_amulet_full/config.xml 2017-05-27 00:22:36 +0000 |
3140 | @@ -116,27 +116,24 @@ |
3141 | </parameterDefinitions> |
3142 | </hudson.model.ParametersDefinitionProperty> |
3143 | <hudson.plugins.throttleconcurrents.ThrottleJobProperty plugin="throttle-concurrents@1.9.0"> |
3144 | - <maxConcurrentPerNode>1</maxConcurrentPerNode> |
3145 | - <maxConcurrentTotal>6</maxConcurrentTotal> |
3146 | - <categories class="java.util.concurrent.CopyOnWriteArrayList"> |
3147 | - <string>false</string> |
3148 | - </categories> |
3149 | + <maxConcurrentPerNode>8</maxConcurrentPerNode> |
3150 | + <maxConcurrentTotal>12</maxConcurrentTotal> |
3151 | + <categories class="java.util.concurrent.CopyOnWriteArrayList"/> |
3152 | <throttleEnabled>true</throttleEnabled> |
3153 | <throttleOption>project</throttleOption> |
3154 | <limitOneJobWithMatchingParams>false</limitOneJobWithMatchingParams> |
3155 | <paramsToUseForLimit></paramsToUseForLimit> |
3156 | - <configVersion>1</configVersion> |
3157 | </hudson.plugins.throttleconcurrents.ThrottleJobProperty> |
3158 | <org.jvnet.hudson.plugins.shelveproject.ShelveProjectProperty plugin="shelve-project-plugin@1.5"/> |
3159 | </properties> |
3160 | <scm class="hudson.scm.NullSCM"/> |
3161 | - <assignedNode>slave</assignedNode> |
3162 | + <assignedNode>task</assignedNode> |
3163 | <canRoam>false</canRoam> |
3164 | <disabled>false</disabled> |
3165 | <blockBuildWhenDownstreamBuilding>false</blockBuildWhenDownstreamBuilding> |
3166 | <blockBuildWhenUpstreamBuilding>false</blockBuildWhenUpstreamBuilding> |
3167 | <triggers> |
3168 | - <com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.GerritTrigger plugin="gerrit-trigger@2.18.3"> |
3169 | + <com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.GerritTrigger plugin="gerrit-trigger@2.23.1"> |
3170 | <spec></spec> |
3171 | <gerritProjects> |
3172 | <com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.data.GerritProject> |
3173 | @@ -165,6 +162,7 @@ |
3174 | <dependencyJobsNames></dependencyJobsNames> |
3175 | <commitMessageParameterMode>BASE64</commitMessageParameterMode> |
3176 | <changeSubjectParameterMode>PLAIN</changeSubjectParameterMode> |
3177 | + <commentTextParameterMode>PLAIN</commentTextParameterMode> |
3178 | <buildStartMessage></buildStartMessage> |
3179 | <buildFailureMessage></buildFailureMessage> |
3180 | <buildSuccessfulMessage></buildSuccessfulMessage> |
3181 | @@ -186,18 +184,12 @@ |
3182 | <concurrentBuild>true</concurrentBuild> |
3183 | <builders> |
3184 | <hudson.tasks.Shell> |
3185 | - <command>#!/bin/bash -e |
3186 | -# Ensure we have a checkout of UOSCI code |
3187 | -if [[ ! -f $OSCI_ROOT/job-parts/osci_job_common.sh ]]; then |
3188 | - echo " - Removing checkout @ $OSCI_ROOT if it exists" |
3189 | - rm -rf $OSCI_ROOT ||: |
3190 | - echo " + Creating new lightweight checkout of $OSCI_REPO @ $OSCI_ROOT." |
3191 | - bzr co --lightweight $OSCI_REPO $OSCI_ROOT |
3192 | - echo "revno: $(bzr revno $OSCI_ROOT)" |
3193 | -fi</command> |
3194 | + <command>#!/bin/bash -ue |
3195 | +. ~/oscirc |
3196 | +~/osci-repo-boot-clean.sh</command> |
3197 | </hudson.tasks.Shell> |
3198 | <hudson.tasks.Shell> |
3199 | - <command>env | egrep "BUILD|JOB_|GERRIT|UOSCI|HUDSON|JENKINS|WORKSPACE" | sort</command> |
3200 | + <command># env | egrep "BUILD|JOB_|GERRIT|UOSCI|HUDSON|JENKINS|WORKSPACE" | sort</command> |
3201 | </hudson.tasks.Shell> |
3202 | <org.jenkinsci.plugins.conditionalbuildstep.ConditionalBuilder plugin="conditional-buildstep@1.3.5"> |
3203 | <runner class="org.jenkins_ci.plugins.run_condition.BuildStepRunner$Fail" plugin="run-condition@1.0"/> |
3204 | @@ -205,10 +197,11 @@ |
3205 | <conditionalbuilders> |
3206 | <hudson.tasks.Shell> |
3207 | <command>#!/bin/bash -e |
3208 | +. ~/oscirc |
3209 | # |
3210 | # Inspect repo and prescribe things to do |
3211 | - |
3212 | -${OSCI_ROOT}/job-parts/build_prescribe.sh</command> |
3213 | +. ~/oscirc |
3214 | +${OSCI_ROOT}/run/job-parts/build_prescribe.sh</command> |
3215 | </hudson.tasks.Shell> |
3216 | </conditionalbuilders> |
3217 | </org.jenkinsci.plugins.conditionalbuildstep.ConditionalBuilder> |
3218 | @@ -229,7 +222,7 @@ |
3219 | </bestResult> |
3220 | </runCondition> |
3221 | <conditionalbuilders> |
3222 | - <hudson.plugins.parameterizedtrigger.TriggerBuilder plugin="parameterized-trigger@2.32"> |
3223 | + <hudson.plugins.parameterizedtrigger.TriggerBuilder plugin="parameterized-trigger@2.33"> |
3224 | <configs> |
3225 | <hudson.plugins.parameterizedtrigger.BlockableBuildTriggerConfig> |
3226 | <configs> |
3227 | @@ -238,6 +231,7 @@ |
3228 | <projects>test_charm_lint,test_charm_unit</projects> |
3229 | <condition>ALWAYS</condition> |
3230 | <triggerWithNoParameters>false</triggerWithNoParameters> |
3231 | + <triggerFromChildProjects>false</triggerFromChildProjects> |
3232 | <block> |
3233 | <unstableThreshold> |
3234 | <name>UNSTABLE</name> |
3235 | @@ -258,9 +252,10 @@ |
3236 | </hudson.plugins.parameterizedtrigger.TriggerBuilder> |
3237 | <hudson.tasks.Shell> |
3238 | <command>#!/bin/bash -e |
3239 | -env | grep TRIGGERED_BUILD |
3240 | -wget ${JENKINS_URL}job/test_charm_lint/$TRIGGERED_BUILD_NUMBER_test_charm_lint/consoleText -O $WORKSPACE/consoleText.test_charm_lint_${TRIGGERED_BUILD_NUMBER_test_charm_lint}.txt |
3241 | -wget ${JENKINS_URL}job/test_charm_unit/$TRIGGERED_BUILD_NUMBER_test_charm_unit/consoleText -O $WORKSPACE/consoleText.test_charm_unit_${TRIGGERED_BUILD_NUMBER_test_charm_unit}.txt</command> |
3242 | +. ~/oscirc |
3243 | +# env | grep TRIGGERED_BUILD |
3244 | +wget http://${OSCI_MASTER_IP}:8080/job/test_charm_lint/$TRIGGERED_BUILD_NUMBER_test_charm_lint/consoleText -O $WORKSPACE/consoleText.test_charm_lint_${TRIGGERED_BUILD_NUMBER_test_charm_lint}.txt |
3245 | +wget http://${OSCI_MASTER_IP}:8080/job/test_charm_unit/$TRIGGERED_BUILD_NUMBER_test_charm_unit/consoleText -O $WORKSPACE/consoleText.test_charm_unit_${TRIGGERED_BUILD_NUMBER_test_charm_unit}.txt</command> |
3246 | </hudson.tasks.Shell> |
3247 | <hudson.plugins.copyartifact.CopyArtifact plugin="copyartifact@1.38.1"> |
3248 | <project>test_charm_lint</project> |
3249 | @@ -293,7 +288,7 @@ |
3250 | <baseDir class="org.jenkins_ci.plugins.run_condition.common.BaseDirectory$Workspace"/> |
3251 | </runCondition> |
3252 | <conditionalbuilders> |
3253 | - <hudson.plugins.parameterizedtrigger.TriggerBuilder plugin="parameterized-trigger@2.32"> |
3254 | + <hudson.plugins.parameterizedtrigger.TriggerBuilder plugin="parameterized-trigger@2.33"> |
3255 | <configs> |
3256 | <hudson.plugins.parameterizedtrigger.BlockableBuildTriggerConfig> |
3257 | <configs> |
3258 | @@ -302,6 +297,7 @@ |
3259 | <projects>charm_build</projects> |
3260 | <condition>ALWAYS</condition> |
3261 | <triggerWithNoParameters>false</triggerWithNoParameters> |
3262 | + <triggerFromChildProjects>false</triggerFromChildProjects> |
3263 | <block> |
3264 | <unstableThreshold> |
3265 | <name>UNSTABLE</name> |
3266 | @@ -322,8 +318,9 @@ |
3267 | </hudson.plugins.parameterizedtrigger.TriggerBuilder> |
3268 | <hudson.tasks.Shell> |
3269 | <command>#!/bin/bash -e |
3270 | -env | grep TRIGGERED_BUILD |
3271 | -wget ${JENKINS_URL}job/charm_build/$TRIGGERED_BUILD_NUMBER_charm_build/consoleText -O $WORKSPACE/consoleText.charm_build_${TRIGGERED_BUILD_NUMBER_charm_build}.txt</command> |
3272 | +. ~/oscirc |
3273 | +# env | grep TRIGGERED_BUILD |
3274 | +wget http://${OSCI_MASTER_IP}:8080/job/charm_build/$TRIGGERED_BUILD_NUMBER_charm_build/consoleText -O $WORKSPACE/consoleText.charm_build_${TRIGGERED_BUILD_NUMBER_charm_build}.txt</command> |
3275 | </hudson.tasks.Shell> |
3276 | <hudson.plugins.copyartifact.CopyArtifact plugin="copyartifact@1.38.1"> |
3277 | <project>charm_build</project> |
3278 | @@ -346,7 +343,7 @@ |
3279 | <baseDir class="org.jenkins_ci.plugins.run_condition.common.BaseDirectory$Workspace"/> |
3280 | </runCondition> |
3281 | <conditionalbuilders> |
3282 | - <hudson.plugins.parameterizedtrigger.TriggerBuilder plugin="parameterized-trigger@2.32"> |
3283 | + <hudson.plugins.parameterizedtrigger.TriggerBuilder plugin="parameterized-trigger@2.33"> |
3284 | <configs> |
3285 | <hudson.plugins.parameterizedtrigger.BlockableBuildTriggerConfig> |
3286 | <configs> |
3287 | @@ -361,6 +358,7 @@ |
3288 | <projects>test_charm_lint</projects> |
3289 | <condition>ALWAYS</condition> |
3290 | <triggerWithNoParameters>false</triggerWithNoParameters> |
3291 | + <triggerFromChildProjects>false</triggerFromChildProjects> |
3292 | <block> |
3293 | <unstableThreshold> |
3294 | <name>UNSTABLE</name> |
3295 | @@ -381,8 +379,9 @@ |
3296 | </hudson.plugins.parameterizedtrigger.TriggerBuilder> |
3297 | <hudson.tasks.Shell> |
3298 | <command>#!/bin/bash -e |
3299 | -env | grep TRIGGERED_BUILD |
3300 | -wget ${JENKINS_URL}job/test_charm_lint/$TRIGGERED_BUILD_NUMBER_test_charm_lint/consoleText -O $WORKSPACE/consoleText.test_charm_lint_${TRIGGERED_BUILD_NUMBER_test_charm_lint}.txt</command> |
3301 | +. ~/oscirc |
3302 | +# env | grep TRIGGERED_BUILD |
3303 | +wget http://${OSCI_MASTER_IP}:8080/job/test_charm_lint/$TRIGGERED_BUILD_NUMBER_test_charm_lint/consoleText -O $WORKSPACE/consoleText.test_charm_lint_${TRIGGERED_BUILD_NUMBER_test_charm_lint}.txt</command> |
3304 | </hudson.tasks.Shell> |
3305 | <hudson.plugins.copyartifact.CopyArtifact plugin="copyartifact@1.38.1"> |
3306 | <project>test_charm_lint</project> |
3307 | @@ -426,7 +425,7 @@ |
3308 | </conditions> |
3309 | </runCondition> |
3310 | <conditionalbuilders> |
3311 | - <hudson.plugins.parameterizedtrigger.TriggerBuilder plugin="parameterized-trigger@2.32"> |
3312 | + <hudson.plugins.parameterizedtrigger.TriggerBuilder plugin="parameterized-trigger@2.33"> |
3313 | <configs> |
3314 | <hudson.plugins.parameterizedtrigger.BlockableBuildTriggerConfig> |
3315 | <configs> |
3316 | @@ -441,6 +440,7 @@ |
3317 | <projects>test_charm_single</projects> |
3318 | <condition>ALWAYS</condition> |
3319 | <triggerWithNoParameters>false</triggerWithNoParameters> |
3320 | + <triggerFromChildProjects>false</triggerFromChildProjects> |
3321 | <block> |
3322 | <unstableThreshold> |
3323 | <name>UNSTABLE</name> |
3324 | @@ -461,8 +461,9 @@ |
3325 | </hudson.plugins.parameterizedtrigger.TriggerBuilder> |
3326 | <hudson.tasks.Shell> |
3327 | <command>#!/bin/bash -e |
3328 | -env | grep TRIGGERED_BUILD |
3329 | -wget ${JENKINS_URL}job/test_charm_single/$TRIGGERED_BUILD_NUMBER_test_charm_single/consoleText -O $WORKSPACE/consoleText.test_charm_single_${TRIGGERED_BUILD_NUMBER_test_charm_single}.txt</command> |
3330 | +. ~/oscirc |
3331 | +# env | grep TRIGGERED_BUILD |
3332 | +wget http://${OSCI_MASTER_IP}:8080/job/test_charm_single/$TRIGGERED_BUILD_NUMBER_test_charm_single/consoleText -O $WORKSPACE/consoleText.test_charm_single_${TRIGGERED_BUILD_NUMBER_test_charm_single}.txt</command> |
3333 | </hudson.tasks.Shell> |
3334 | <hudson.plugins.copyartifact.CopyArtifact plugin="copyartifact@1.38.1"> |
3335 | <project>test_charm_single</project> |
3336 | @@ -506,7 +507,7 @@ |
3337 | </conditions> |
3338 | </runCondition> |
3339 | <conditionalbuilders> |
3340 | - <hudson.plugins.parameterizedtrigger.TriggerBuilder plugin="parameterized-trigger@2.32"> |
3341 | + <hudson.plugins.parameterizedtrigger.TriggerBuilder plugin="parameterized-trigger@2.33"> |
3342 | <configs> |
3343 | <hudson.plugins.parameterizedtrigger.BlockableBuildTriggerConfig> |
3344 | <configs> |
3345 | @@ -521,6 +522,7 @@ |
3346 | <projects>test_charm_amulet_full</projects> |
3347 | <condition>ALWAYS</condition> |
3348 | <triggerWithNoParameters>false</triggerWithNoParameters> |
3349 | + <triggerFromChildProjects>false</triggerFromChildProjects> |
3350 | <block> |
3351 | <unstableThreshold> |
3352 | <name>UNSTABLE</name> |
3353 | @@ -541,8 +543,9 @@ |
3354 | </hudson.plugins.parameterizedtrigger.TriggerBuilder> |
3355 | <hudson.tasks.Shell> |
3356 | <command>#!/bin/bash -e |
3357 | -env | grep TRIGGERED_BUILD |
3358 | -wget ${JENKINS_URL}job/test_charm_amulet_full/$TRIGGERED_BUILD_NUMBER_test_charm_amulet_full/consoleText -O $WORKSPACE/consoleText.test_charm_amulet_full_${TRIGGERED_BUILD_NUMBER_test_charm_amulet_full}.txt</command> |
3359 | +. ~/oscirc |
3360 | +# env | grep TRIGGERED_BUILD |
3361 | +wget http://${OSCI_MASTER_IP}:8080/job/test_charm_amulet_full/$TRIGGERED_BUILD_NUMBER_test_charm_amulet_full/consoleText -O $WORKSPACE/consoleText.test_charm_amulet_full_${TRIGGERED_BUILD_NUMBER_test_charm_amulet_full}.txt</command> |
3362 | </hudson.tasks.Shell> |
3363 | <hudson.plugins.copyartifact.CopyArtifact plugin="copyartifact@1.38.1"> |
3364 | <project>test_charm_amulet_full</project> |
3365 | @@ -574,8 +577,9 @@ |
3366 | </condition> |
3367 | <buildStep class="hudson.tasks.Shell"> |
3368 | <command>#!/bin/bash -e |
3369 | +. ~/oscirc |
3370 | export UOSCI_GERRIT_VERDICT="SUCCESS" |
3371 | -${OSCI_ROOT}/job-parts/part_gerrit_review.sh |
3372 | +${OSCI_ROOT}/run/job-parts/part_gerrit_review.sh |
3373 | </command> |
3374 | </buildStep> |
3375 | <runner class="org.jenkins_ci.plugins.run_condition.BuildStepRunner$Fail" plugin="run-condition@1.0"/> |
3376 | @@ -597,8 +601,9 @@ |
3377 | </condition> |
3378 | <buildStep class="hudson.tasks.Shell"> |
3379 | <command>#!/bin/bash -e |
3380 | +. ~/oscirc |
3381 | export UOSCI_GERRIT_VERDICT="FAILURE" |
3382 | -${OSCI_ROOT}/job-parts/part_gerrit_review.sh |
3383 | +${OSCI_ROOT}/run/job-parts/part_gerrit_review.sh |
3384 | </command> |
3385 | </buildStep> |
3386 | <runner class="org.jenkins_ci.plugins.run_condition.BuildStepRunner$Fail" plugin="run-condition@1.0"/> |
3387 | @@ -615,12 +620,12 @@ |
3388 | </hudson.tasks.ArtifactArchiver> |
3389 | </publishers> |
3390 | <buildWrappers> |
3391 | - <hudson.plugins.ws__cleanup.PreBuildCleanup plugin="ws-cleanup@0.30"> |
3392 | + <hudson.plugins.ws__cleanup.PreBuildCleanup plugin="ws-cleanup@0.32"> |
3393 | <deleteDirs>false</deleteDirs> |
3394 | <cleanupParameter></cleanupParameter> |
3395 | <externalDelete></externalDelete> |
3396 | </hudson.plugins.ws__cleanup.PreBuildCleanup> |
3397 | - <hudson.plugins.timestamper.TimestamperBuildWrapper plugin="timestamper@1.8.4"/> |
3398 | + <hudson.plugins.timestamper.TimestamperBuildWrapper plugin="timestamper@1.8.8"/> |
3399 | <org.jenkinsci.plugins.buildnamesetter.BuildNameSetter plugin="build-name-setter@1.6.5"> |
3400 | <template>#${BUILD_NUMBER} ${ENV,var="GERRIT_PROJECT"} ${ENV,var="GERRIT_CHANGE_NUMBER"} ${ENV,var="GERRIT_PATCHSET_NUMBER"} ${ENV,var="GERRIT_PATCHSET_UPLOADER_NAME"} ${ENV,var="BASE_NAME"} ${ENV,var="GIT_BRANCH"}</template> |
3401 | <runAtStart>true</runAtStart> |
3402 | |
3403 | === renamed directory 'deployment/jobs/test_charm_single' => 'deploy/jobs-static/test_charm_single' |
3404 | === modified file 'deploy/jobs-static/test_charm_single/config.xml' |
3405 | --- deployment/jobs/test_charm_single/config.xml 2016-12-09 21:50:02 +0000 |
3406 | +++ deploy/jobs-static/test_charm_single/config.xml 2017-05-27 00:22:36 +0000 |
3407 | @@ -127,10 +127,8 @@ |
3408 | </hudson.model.ParametersDefinitionProperty> |
3409 | <hudson.plugins.throttleconcurrents.ThrottleJobProperty plugin="throttle-concurrents@1.9.0"> |
3410 | <maxConcurrentPerNode>1</maxConcurrentPerNode> |
3411 | - <maxConcurrentTotal>8</maxConcurrentTotal> |
3412 | - <categories class="java.util.concurrent.CopyOnWriteArrayList"> |
3413 | - <string>false</string> |
3414 | - </categories> |
3415 | + <maxConcurrentTotal>16</maxConcurrentTotal> |
3416 | + <categories class="java.util.concurrent.CopyOnWriteArrayList"/> |
3417 | <throttleEnabled>true</throttleEnabled> |
3418 | <throttleOption>project</throttleOption> |
3419 | <limitOneJobWithMatchingParams>false</limitOneJobWithMatchingParams> |
3420 | @@ -139,7 +137,7 @@ |
3421 | <org.jvnet.hudson.plugins.shelveproject.ShelveProjectProperty plugin="shelve-project-plugin@1.5"/> |
3422 | </properties> |
3423 | <scm class="hudson.scm.NullSCM"/> |
3424 | - <assignedNode>slave</assignedNode> |
3425 | + <assignedNode>slave||lab</assignedNode> |
3426 | <canRoam>false</canRoam> |
3427 | <disabled>false</disabled> |
3428 | <blockBuildWhenDownstreamBuilding>false</blockBuildWhenDownstreamBuilding> |
3429 | @@ -148,21 +146,16 @@ |
3430 | <concurrentBuild>true</concurrentBuild> |
3431 | <builders> |
3432 | <hudson.tasks.Shell> |
3433 | - <command>#!/bin/bash -e |
3434 | -# Ensure we have a checkout of UOSCI code |
3435 | -if [[ ! -f $OSCI_ROOT/job-parts/osci_job_common.sh ]]; then |
3436 | - echo " - Removing checkout @ $OSCI_ROOT if it exists" |
3437 | - rm -rf $OSCI_ROOT ||: |
3438 | - echo " + Creating new lightweight checkout of $OSCI_REPO @ $OSCI_ROOT." |
3439 | - bzr co --lightweight $OSCI_REPO $OSCI_ROOT |
3440 | - echo "revno: $(bzr revno $OSCI_ROOT)" |
3441 | -fi |
3442 | + <command>#!/bin/bash -ue |
3443 | +. ~/oscirc |
3444 | +~/osci-repo-boot-clean.sh</command> |
3445 | + </hudson.tasks.Shell> |
3446 | + <hudson.tasks.Shell> |
3447 | + <command>#!/bin/bash -ue |
3448 | +. ~/oscirc |
3449 | +${OSCI_ROOT}/run/job-parts/build_charm_single.sh |
3450 | </command> |
3451 | </hudson.tasks.Shell> |
3452 | - <hudson.tasks.Shell> |
3453 | - <command>#!/bin/bash -e |
3454 | -${OSCI_ROOT}/job-parts/build_charm_single.sh</command> |
3455 | - </hudson.tasks.Shell> |
3456 | </builders> |
3457 | <publishers> |
3458 | <hudson.tasks.ArtifactArchiver> |
3459 | @@ -175,7 +168,7 @@ |
3460 | </hudson.tasks.ArtifactArchiver> |
3461 | </publishers> |
3462 | <buildWrappers> |
3463 | - <hudson.plugins.timestamper.TimestamperBuildWrapper plugin="timestamper@1.8.4"/> |
3464 | + <hudson.plugins.timestamper.TimestamperBuildWrapper plugin="timestamper@1.8.8"/> |
3465 | <org.jenkinsci.plugins.buildnamesetter.BuildNameSetter plugin="build-name-setter@1.6.5"> |
3466 | <template>#${BUILD_NUMBER} ${ENV,var="GERRIT_PROJECT"} ${ENV,var="GERRIT_BRANCH"} ${ENV,var="GERRIT_CHANGE_NUMBER"} ${ENV,var="GERRIT_PATCHSET_NUMBER"} ${ENV,var="GERRIT_PATCHSET_UPLOADER_NAME"} ${ENV,var="BASE_NAME"} ${ENV,var="GIT_BRANCH"}</template> |
3467 | <runAtStart>true</runAtStart> |
3468 | |
3469 | === renamed directory 'deployment/jobs/test_charm_unit' => 'deploy/jobs-static/test_charm_unit' |
3470 | === modified file 'deploy/jobs-static/test_charm_unit/config.xml' |
3471 | --- deployment/jobs/test_charm_unit/config.xml 2016-09-21 19:36:25 +0000 |
3472 | +++ deploy/jobs-static/test_charm_unit/config.xml 2017-05-27 00:22:36 +0000 |
3473 | @@ -121,8 +121,8 @@ |
3474 | </parameterDefinitions> |
3475 | </hudson.model.ParametersDefinitionProperty> |
3476 | <hudson.plugins.throttleconcurrents.ThrottleJobProperty plugin="throttle-concurrents@1.9.0"> |
3477 | - <maxConcurrentPerNode>1</maxConcurrentPerNode> |
3478 | - <maxConcurrentTotal>8</maxConcurrentTotal> |
3479 | + <maxConcurrentPerNode>8</maxConcurrentPerNode> |
3480 | + <maxConcurrentTotal>24</maxConcurrentTotal> |
3481 | <categories class="java.util.concurrent.CopyOnWriteArrayList"/> |
3482 | <throttleEnabled>true</throttleEnabled> |
3483 | <throttleOption>project</throttleOption> |
3484 | @@ -132,7 +132,7 @@ |
3485 | <org.jvnet.hudson.plugins.shelveproject.ShelveProjectProperty plugin="shelve-project-plugin@1.5"/> |
3486 | </properties> |
3487 | <scm class="hudson.scm.NullSCM"/> |
3488 | - <assignedNode>slave||lab</assignedNode> |
3489 | + <assignedNode>task</assignedNode> |
3490 | <canRoam>false</canRoam> |
3491 | <disabled>false</disabled> |
3492 | <blockBuildWhenDownstreamBuilding>false</blockBuildWhenDownstreamBuilding> |
3493 | @@ -141,20 +141,10 @@ |
3494 | <concurrentBuild>true</concurrentBuild> |
3495 | <builders> |
3496 | <hudson.tasks.Shell> |
3497 | - <command>#!/bin/bash -e |
3498 | -# Ensure we have a checkout of UOSCI code |
3499 | -if [[ ! -f $OSCI_ROOT/job-parts/osci_job_common.sh ]]; then |
3500 | - echo " - Removing checkout @ $OSCI_ROOT if it exists" |
3501 | - rm -rf $OSCI_ROOT ||: |
3502 | - echo " + Creating new lightweight checkout of $OSCI_REPO @ $OSCI_ROOT." |
3503 | - bzr co --lightweight $OSCI_REPO $OSCI_ROOT |
3504 | - echo "revno: $(bzr revno $OSCI_ROOT)" |
3505 | -fi |
3506 | -</command> |
3507 | - </hudson.tasks.Shell> |
3508 | - <hudson.tasks.Shell> |
3509 | - <command>#!/bin/bash -e |
3510 | -${OSCI_ROOT}/job-parts/build_unit_test.sh |
3511 | + <command>#!/bin/bash -ue |
3512 | +. ~/oscirc |
3513 | +~/osci-repo-boot-clean.sh |
3514 | +${OSCI_ROOT}/run/job-parts/build_unit_test.sh |
3515 | </command> |
3516 | </hudson.tasks.Shell> |
3517 | </builders> |
3518 | @@ -169,7 +159,7 @@ |
3519 | </hudson.tasks.ArtifactArchiver> |
3520 | </publishers> |
3521 | <buildWrappers> |
3522 | - <hudson.plugins.timestamper.TimestamperBuildWrapper plugin="timestamper@1.8.4"/> |
3523 | + <hudson.plugins.timestamper.TimestamperBuildWrapper plugin="timestamper@1.8.8"/> |
3524 | <org.jenkinsci.plugins.buildnamesetter.BuildNameSetter plugin="build-name-setter@1.6.5"> |
3525 | <template>#${BUILD_NUMBER} ${ENV,var="GERRIT_PROJECT"} ${ENV,var="GERRIT_BRANCH"} ${ENV,var="GERRIT_CHANGE_NUMBER"} ${ENV,var="GERRIT_PATCHSET_NUMBER"} ${ENV,var="GERRIT_PATCHSET_UPLOADER_NAME"} ${ENV,var="BASE_NAME"} ${ENV,var="GIT_BRANCH"}</template> |
3526 | <runAtStart>true</runAtStart> |
3527 | |
3528 | === added directory 'deploy/lib' |
3529 | === added file 'deploy/lib/__init__.py' |
3530 | --- deploy/lib/__init__.py 1970-01-01 00:00:00 +0000 |
3531 | +++ deploy/lib/__init__.py 2017-05-27 00:22:36 +0000 |
3532 | @@ -0,0 +1,3 @@ |
3533 | +''' |
3534 | +osci-deploy common |
3535 | +''' |
3536 | |
3537 | === added file 'deploy/lib/osci_deploy_helpers.py' |
3538 | --- deploy/lib/osci_deploy_helpers.py 1970-01-01 00:00:00 +0000 |
3539 | +++ deploy/lib/osci_deploy_helpers.py 2017-05-27 00:22:36 +0000 |
3540 | @@ -0,0 +1,355 @@ |
3541 | +#!/usr/bin/env python3 |
3542 | +''' |
3543 | +osci deploy helpers |
3544 | +''' |
3545 | + |
3546 | +import logging |
3547 | +import os |
3548 | +import random |
3549 | +import subprocess |
3550 | +import string |
3551 | +import yaml |
3552 | + |
3553 | +import keystoneauth1.identity.v3 as keystoneauth1 |
3554 | +import keystoneauth1.session as keystoneauth1_session |
3555 | +from neutronclient.v2_0 import client as ne_client |
3556 | +from jinja2 import Environment, FileSystemLoader |
3557 | + |
3558 | + |
3559 | +JM_NAME_TEMPL = 'osci-master/{}' |
3560 | + |
3561 | +SLAVE_NAME_TEMPLATES = { |
3562 | + 'slave': 'osci-slave/{}', # jsv |
3563 | + 'lab': 'osci-lab/{}', # jlb |
3564 | + 'task': 'osci-task/{}' # jtk |
3565 | +} |
3566 | + |
3567 | + |
3568 | +def rnd_str(length=32): |
3569 | + '''Return lower-case alpha-numeric random string, a la pwgen. |
3570 | + |
3571 | + :param length: number of characters to generate |
3572 | + :returns: lower-case alpha-numeric random string |
3573 | + ''' |
3574 | + _str = '' |
3575 | + for _ in range(length): |
3576 | + _str += random.choice(string.lowercase + string.digits) |
3577 | + return _str |
3578 | + |
3579 | + |
3580 | +def read_yaml(the_file): |
3581 | + '''Returns yaml data from provided file name |
3582 | + |
3583 | + :param the_file: yaml file name to read |
3584 | + :returns: dictionary of yaml data from file |
3585 | + ''' |
3586 | + if not os.path.exists(the_file): |
3587 | + raise ValueError('File not found: {}'.format(the_file)) |
3588 | + with open(the_file) as yaml_file: |
3589 | + data = yaml.safe_load(yaml_file.read()) |
3590 | + return data |
3591 | + |
3592 | + |
3593 | +def write_yaml(data, the_file): |
3594 | + '''Save yaml data dictionary to a yaml file |
3595 | + |
3596 | + :param the_file: yaml file name to write |
3597 | + :returns: dictionary of yaml data to write to file |
3598 | + ''' |
3599 | + with open(the_file, 'w') as yaml_file: |
3600 | + yaml_file.write(yaml.dump(data, default_flow_style=False)) |
3601 | + |
3602 | + |
3603 | +def safe_mkdir(directory): |
3604 | + '''Make directory if it doesn't exist. a la mkdir -p |
3605 | + ''' |
3606 | + if not os.path.exists(directory): |
3607 | + os.makedirs(directory) |
3608 | + |
3609 | + |
3610 | +def render(source, target, context, templates_dir=None): |
3611 | + '''Render a template. |
3612 | + |
3613 | + The `source` path, if not absolute, is relative to the `templates_dir`. |
3614 | + |
3615 | + The `target` path should be absolute. |
3616 | + |
3617 | + The context should be a dict containing the values to be replaced in |
3618 | + the template. |
3619 | + |
3620 | + If omitted, `templates_dir` defaults to the current working dir. |
3621 | + ''' |
3622 | + |
3623 | + if templates_dir is None: |
3624 | + templates_dir = os.getcwd() |
3625 | + loader = Environment(loader=FileSystemLoader(templates_dir)) |
3626 | + try: |
3627 | + source = source |
3628 | + template = loader.get_template(source) |
3629 | + except Exception: |
3630 | + logging.error('Could not load template {} from {}.'.format( |
3631 | + source, templates_dir)) |
3632 | + |
3633 | + safe_mkdir(templates_dir) |
3634 | + safe_mkdir(os.path.dirname(target)) |
3635 | + with open(target, 'w') as _file: |
3636 | + _file.write(template.render(context)) |
3637 | + |
3638 | + |
3639 | +def get_juju_application_status(application): |
3640 | + '''Return juju application yaml status as dict.''' |
3641 | + return yaml.load(subprocess.check_output( |
3642 | + ['juju', 'status', application, |
3643 | + '--format', 'yaml'])) |
3644 | + |
3645 | + |
3646 | +def copy_file_to_juju_unit(local_file, remote_file, juju_unit, owner="jenkins", |
3647 | + group="jenkins", perms="640"): |
3648 | + '''Copy a local file to a juju unit and set its ownership and permissions. |
3649 | + ''' |
3650 | + |
3651 | + logging.info('Copying {} to {}:{}'.format( |
3652 | + local_file, juju_unit, remote_file)) |
3653 | + |
3654 | + subprocess.check_output( |
3655 | + ['juju', 'scp', local_file, '{}:{}'.format(juju_unit, remote_file)]) |
3656 | + |
3657 | + subprocess.check_output( |
3658 | + ['juju', 'ssh', juju_unit, |
3659 | + 'chown', '{}:{}'.format(owner, group), remote_file]) |
3660 | + |
3661 | + subprocess.check_output( |
3662 | + ['juju', 'ssh', juju_unit, |
3663 | + 'chmod', perms, remote_file]) |
3664 | + |
3665 | + |
3666 | +def copy_file_on_juju_unit(src_file, dest_file, juju_unit, owner="jenkins", |
3667 | + group="jenkins", perms="640"): |
3668 | + '''Copy a remote file from one location to another location on a juju unit |
3669 | + and set its ownership and permissions. |
3670 | + ''' |
3671 | + |
3672 | + logging.info('Copying {} to {} on {}'.format( |
3673 | + src_file, dest_file, juju_unit)) |
3674 | + |
3675 | + subprocess.check_output( |
3676 | + ['juju', 'ssh', juju_unit, 'sudo', |
3677 | + 'cp', '-fvp', src_file, dest_file]) |
3678 | + |
3679 | + subprocess.check_output( |
3680 | + ['juju', 'ssh', juju_unit, 'sudo', |
3681 | + 'chown', '{}:{}'.format(owner, group), dest_file]) |
3682 | + |
3683 | + subprocess.check_output( |
3684 | + ['juju', 'ssh', juju_unit, 'sudo', |
3685 | + 'chmod', perms, dest_file]) |
3686 | + |
3687 | + |
3688 | +# Old dup, deprecate? |
3689 | +def XXX_get_num_units(yaml_data, outer, service): |
3690 | + '''Return num_units from service in yaml data from juju bundle file |
3691 | + |
3692 | + :param yaml_data: yaml data from juju bundle file, as dict |
3693 | + :param outer: first, outer key in juju bundle yaml dict data |
3694 | + :param service: juju service to query for num units |
3695 | + :returns: value of num_units from juju bundle yaml dict data |
3696 | + ''' |
3697 | + logging.debug('yaml data: {}'.format(yaml_data)) |
3698 | + logging.debug('outer: {}'.format(outer)) |
3699 | + logging.debug('service: {}'.format(service)) |
3700 | + return yaml_data[outer]['services'][service]['num_units'] |
3701 | + |
3702 | + |
3703 | +def recursive_dict_key_search(data, key): |
3704 | + '''Recursively look for key match in dictionaries, return value. |
3705 | + |
3706 | + :param data: dictionary data |
3707 | + :param key: key to find |
3708 | + :returns: value of found key |
3709 | + ''' |
3710 | + if key in data: |
3711 | + return data[key] |
3712 | + for _, val in data.items(): |
3713 | + if isinstance(val, dict): |
3714 | + ret = recursive_dict_key_search(val, key) |
3715 | + if ret is not None: |
3716 | + return ret |
3717 | + |
3718 | + |
3719 | +def validate_config(data, expected): |
3720 | + '''Very light check for existence of non-empty data |
3721 | + |
3722 | + :param data: dictionary of k:v pairs |
3723 | + :param expected: list of items to be validated as key in data |
3724 | + :returns: None if found as expected, key if not found or key |
3725 | + value is None |
3726 | + ''' |
3727 | + for k in expected: |
3728 | + val = recursive_dict_key_search(data, k) |
3729 | + if val != '' and val != 'null' and val is not None: |
3730 | + logging.debug('found {}: {}'.format(k, val)) |
3731 | + else: |
3732 | + return k |
3733 | + |
3734 | + |
3735 | +def generate_list_of_cidrs(network, octet, quantity, bits): |
3736 | + '''Create a list of IPV4 networks in CIDR notation, generated by |
3737 | + incrementing a specified octet, the specified number of times. |
3738 | + |
3739 | + :param network: network string (eg, 192.168.7.0 or 10.200.0.0, non-CIDR) |
3740 | + :param octet: octet to increment (eg, 1.2.3.4) |
3741 | + :param quantity: qty of networks to generate |
3742 | + :param bits: bits to fill, ie. the slash from CIDR notation |
3743 | + :returns: list of network string items in CIDR format |
3744 | + ''' |
3745 | + nets = [] |
3746 | + logging.debug('operating on: {}'.format(network.split('.'))) |
3747 | + this_addr = '' |
3748 | + for i in range(0, quantity): |
3749 | + octs = network.split('.') |
3750 | + oct_new = int(octs[octet - 1]) + i |
3751 | + if oct_new > 254: |
3752 | + raise ValueError('IPv4 octec decimal cannot exceed 254! {} was ' |
3753 | + 'attempted.'.format(oct_new)) |
3754 | + octs[octet - 1] = str(oct_new) |
3755 | + this_addr = '.'.join(octs) |
3756 | + nets.append('{}/{}'.format(this_addr, bits)) |
3757 | + logging.debug('networks to build ({}): {}'.format(len(nets), nets)) |
3758 | + return nets |
3759 | + |
3760 | + |
3761 | +def predict_juju_unit_names(conf_mod, jsv_qty, jtk_qty, jlb_qty): |
3762 | + '''Create a list of juju jenkins master and slave service |
3763 | + units, predictively. |
3764 | + ''' |
3765 | + units = [] |
3766 | + units.append(JM_NAME_TEMPL.format('0')) |
3767 | + |
3768 | + for _templ_qty_map in [(SLAVE_NAME_TEMPLATES['slave'], jsv_qty), |
3769 | + (SLAVE_NAME_TEMPLATES['task'], jtk_qty), |
3770 | + (SLAVE_NAME_TEMPLATES['lab'], jlb_qty)]: |
3771 | + _templ = _templ_qty_map[0] |
3772 | + _qty = _templ_qty_map[1] |
3773 | + for unit in range(0, _qty): |
3774 | + units.append(_templ.format(unit)) |
3775 | + |
3776 | + return units |
3777 | + |
3778 | + |
3779 | +def predict_model_names(conf_mod, jsv_qty, jtk_qty, jlb_qty): |
3780 | + '''Return a list of juju model names to create''' |
3781 | + models = [] |
3782 | + models.append("{}-{}{}".format(conf_mod['model-name-base'], |
3783 | + conf_mod['master-abbrv'], |
3784 | + 0)) |
3785 | + |
3786 | + for _abbrv_qty_map in [(conf_mod['slave-abbrv'], jsv_qty), |
3787 | + (conf_mod['task-abbrv'], jtk_qty), |
3788 | + (conf_mod['lab-abbrv'], jlb_qty)]: |
3789 | + _abbrv = _abbrv_qty_map[0] |
3790 | + _qty = _abbrv_qty_map[1] |
3791 | + for unit in range(0, _qty): |
3792 | + models.append("{}-{}{}".format(conf_mod['model-name-base'], |
3793 | + _abbrv, |
3794 | + str(unit).zfill(2))) |
3795 | + return models |
3796 | + |
3797 | + |
3798 | +# Unused, deprecate?: |
3799 | +def XXX_floating_ip_is_available(neutron): |
3800 | + '''Check if a floating ip is available to the tenant, using the |
3801 | + provided neutron client object. |
3802 | + |
3803 | + :param neutron: neutron client object |
3804 | + :returns: True if a floating IP is available to the tenant |
3805 | + ''' |
3806 | + ips = neutron.list_floatingips(status='DOWN')['floatingips'] |
3807 | + |
3808 | + if len(ips) > 0: |
3809 | + logging.debug('floating ips available to tenant: {}'.format(ips)) |
3810 | + return True |
3811 | + else: |
3812 | + return False |
3813 | + |
3814 | + |
3815 | +# Unused, deprecate?: |
3816 | +def XXX_has_floating_ip(addresses, fip_str): |
3817 | + '''Inspect list of addresses for an item which starts with the specified |
3818 | + string. Returns the (first) matching item found, returns None if not. |
3819 | + |
3820 | + :param addresses: list of dicts containing nova addresses data |
3821 | + :param fip_str: floating IP string to match, generally first 2 or 3 octets |
3822 | + ''' |
3823 | + for addr in addresses: |
3824 | + if addr['addr'].startswith(fip_str): |
3825 | + return addr['addr'] |
3826 | + return None |
3827 | + |
3828 | + |
3829 | +# Unused, deprecate?: |
3830 | +def XXX_f_contains_str(the_file, str_find): |
3831 | + '''Search a file for a string |
3832 | + |
3833 | + :param the_file: file name to read |
3834 | + :param str_find: string to find in the file |
3835 | + :returns: True if string is found in file |
3836 | + ''' |
3837 | + _pos = open(the_file, 'r').read().find(str_find) |
3838 | + if _pos >= 0: |
3839 | + return True |
3840 | + else: |
3841 | + return False |
3842 | + |
3843 | + |
3844 | +# Unused, deprecate?: |
3845 | +def XXX_replace_line_with_lines(file_name, str_find, with_lines): |
3846 | + '''Inject lines into file, where string is found in exactly and |
3847 | + only one line. Return None if successful, return a message otherwise. |
3848 | + |
3849 | + :param file_name: file name as string, to read and write |
3850 | + :param str_find: string to find in a line |
3851 | + :param str_lines: list of lines to inject |
3852 | + ''' |
3853 | + with open(file_name, 'r') as r_file: |
3854 | + lines = r_file.readlines() |
3855 | + |
3856 | + indices = [] |
3857 | + for idx, line in enumerate(lines): |
3858 | + if str_find in line: |
3859 | + indices.append(idx) |
3860 | + if len(indices) > 1: |
3861 | + return 'Could not replace line, found more than one match.' |
3862 | + elif len(indices) == 0: |
3863 | + return 'Could not replace line, no match in {}'.format(file_name) |
3864 | + elif len(indices) == 1: |
3865 | + logging.info('string find for {}: {}'.format(str_find, indices)) |
3866 | + with open(file_name, 'w') as w_file: |
3867 | + out_lines = (lines[0:indices[0]] + |
3868 | + with_lines + |
3869 | + lines[indices[0] + 1:]) |
3870 | + w_file.writelines(out_lines) |
3871 | + |
3872 | + |
3873 | +def dict_to_yaml(dict_data): |
3874 | + return yaml.dump(dict_data, default_flow_style=False) |
3875 | + |
3876 | + |
3877 | +def get_keystone_v3_session(): |
3878 | + '''Get a keystone v3 session based on env vars.''' |
3879 | + |
3880 | + auth = keystoneauth1.Password( |
3881 | + username=os.environ['OS_USERNAME'], |
3882 | + user_domain_name=os.environ['OS_USER_DOMAIN_NAME'], |
3883 | + password=os.environ['OS_PASSWORD'], |
3884 | + project_name=os.environ['OS_PROJECT_NAME'], |
3885 | + project_domain_name=os.environ['OS_PROJECT_DOMAIN_NAME'], |
3886 | + auth_url=os.environ['OS_AUTH_URL'] |
3887 | + ) |
3888 | + |
3889 | + return keystoneauth1_session.Session(auth=auth) |
3890 | + |
3891 | + |
3892 | +def get_neutron_client(session): |
3893 | + '''Get a neutron client connection based on ksv3 session and env vars.''' |
3894 | + return ne_client.Client(session=session, |
3895 | + region_name=os.environ['OS_REGION_NAME']) |
3896 | |
3897 | === added file 'deploy/osci-controller-setup.sh' |
3898 | --- deploy/osci-controller-setup.sh 1970-01-01 00:00:00 +0000 |
3899 | +++ deploy/osci-controller-setup.sh 2017-05-27 00:22:36 +0000 |
3900 | @@ -0,0 +1,19 @@ |
3901 | +#!/bin/bash -uex |
3902 | +: ${CTI_REPO:="https://github.com/openstack-charmers/charm-test-infra"} # WIP |
3903 | +: ${CTI_REPO_BRANCH:="master"} |
3904 | +: ${CTI_CODIR:="${HOME}/tools/charm-test-infra"} |
3905 | + |
3906 | +## Gather tools |
3907 | +rm -rf $CTI_CODIR |
3908 | +git clone --depth 1 $CTI_REPO $CTI_CODIR -b $CTI_REPO_BRANCH |
3909 | + |
3910 | +## Bootstrap controller and add model for OSCI on ServerStack |
3911 | +cd $CTI_CODIR |
3912 | +. examples/env-larger-controller |
3913 | +time ./juju-openstack-controller-example.sh |
3914 | + |
3915 | +juju switch osci-serverstack:osci |
3916 | +juju status --color |
3917 | +juju controllers |
3918 | +juju models |
3919 | + |
3920 | |
3921 | === added file 'deploy/osci-float-all-instances.sh' |
3922 | --- deploy/osci-float-all-instances.sh 1970-01-01 00:00:00 +0000 |
3923 | +++ deploy/osci-float-all-instances.sh 2017-05-27 00:22:36 +0000 |
3924 | @@ -0,0 +1,18 @@ |
3925 | +#!/bin/bash -uex |
3926 | +# Give all instances a floating IP address. Requires >= Newton openstack client |
3927 | + |
3928 | +fip_count=$(openstack floating ip list | awk '/None/ { print $4 }' | wc -l) |
3929 | +instances=$(openstack server list | grep ACTIVE | grep -v '\,' | awk '{ print $2 }') |
3930 | +inst_count=$(echo $instances | wc -w) |
3931 | + |
3932 | +fip_diff=$(( $inst_count - $fip_count )) |
3933 | +if [[ "$fip_diff" != "0" ]]; then |
3934 | + for m in $(seq 1 $fip_diff); do |
3935 | + openstack floating ip create ext_net |
3936 | + done |
3937 | +fi |
3938 | + |
3939 | +for instance in $instances; do |
3940 | + ip_f="$(openstack floating ip list | awk '/None/ { print $4 }' | head -n 1)" |
3941 | + openstack server add floating ip $instance $ip_f |
3942 | +done |
3943 | |
3944 | === added file 'deploy/osci-model-deploy.sh' |
3945 | --- deploy/osci-model-deploy.sh 1970-01-01 00:00:00 +0000 |
3946 | +++ deploy/osci-model-deploy.sh 2017-05-27 00:22:36 +0000 |
3947 | @@ -0,0 +1,68 @@ |
3948 | +#!/bin/bash -uex |
3949 | +# Deploy Jenkins Master and Slave Charm Applications for OpenStack Charm CI |
3950 | + |
3951 | +DEPLOY_SCRATCH_DIR="$HOME/deploy2" |
3952 | +#JM_CHARM="cs:xenial/jenkins-4" |
3953 | +#JM_CHARM="cs:xenial/jenkins-2" # Upstream before storage support |
3954 | +#JM_CHARM="cs:~1chb1n/jenkins" # WIP based on upstream |
3955 | +#JS_CHARM="cs:~free.ekanayaka/xenial/jenkins-slave-2" # Already has jenkins-slave deb packed in files dir |
3956 | +JM_CHARM="lp:~1chb1n/+junk/jenkins-reactive-temp-build" |
3957 | +JS_CHARM="lp:~1chb1n/+junk/jenkins-slave-legacy-mash" |
3958 | +JM_PKG_URL="https://pkg.jenkins.io/debian-stable/binary/jenkins_2.7.4_all.deb" |
3959 | +JM_PKG_FILENAME="$(echo "${JM_PKG_URL##*/}")" |
3960 | +SERIES="xenial" |
3961 | + |
3962 | +# Fetch and "Fat-pack" the charms |
3963 | +mkdir -vp $DEPLOY_SCRATCH_DIR |
3964 | +stat $DEPLOY_SCRATCH_DIR/charm-jenkins ||\ |
3965 | + bzr branch $JM_CHARM $DEPLOY_SCRATCH_DIR/charm-jenkins |
3966 | + #charm pull $JM_CHARM $DEPLOY_SCRATCH_DIR/charm-jenkins |
3967 | + |
3968 | +stat $DEPLOY_SCRATCH_DIR/charm-jenkins-slave ||\ |
3969 | + bzr branch $JS_CHARM $DEPLOY_SCRATCH_DIR/charm-jenkins-slave |
3970 | + #charm pull $JS_CHARM $DEPLOY_SCRATCH_DIR/charm-jenkins-slave |
3971 | + |
3972 | +if ! stat $DEPLOY_SCRATCH_DIR/$JM_PKG_FILENAME; then |
3973 | + . ~/proxy_set.sh |
3974 | + env | egrep "prox|PROX" |
3975 | + wget -v $JM_PKG_URL -P $DEPLOY_SCRATCH_DIR --show-progress |
3976 | + . ~/proxy_unset.sh |
3977 | +fi |
3978 | + |
3979 | +rm -fv $DEPLOY_SCRATCH_DIR/charm-jenkins/files/*jenkins*deb ||: |
3980 | +mkdir -vp $DEPLOY_SCRATCH_DIR/charm-jenkins/files/ |
3981 | +cp -fv $DEPLOY_SCRATCH_DIR/$JM_PKG_FILENAME $DEPLOY_SCRATCH_DIR/charm-jenkins/files/ |
3982 | +(cd $DEPLOY_SCRATCH_DIR/charm-jenkins/files/ |
3983 | + ln -s $JM_PKG_FILENAME jenkins.deb) |
3984 | + |
3985 | +juju switch osci-serverstack:osci |
3986 | + |
3987 | +juju status osci-master | grep "^osci-master " || |
3988 | + juju deploy $DEPLOY_SCRATCH_DIR/charm-jenkins osci-master -n 1 --constraints="mem=7G cores=4 root-disk=100G" --config config/juju-apps/osci-master.yaml --series $SERIES |
3989 | + |
3990 | +juju status osci-task | grep "^osci-task" || |
3991 | + juju deploy $DEPLOY_SCRATCH_DIR/charm-jenkins-slave osci-task -n 2 --constraints="mem=12G cores=8 root-disk=80G" --config config/juju-apps/osci-task.yaml --series $SERIES |
3992 | + |
3993 | +juju status osci-slave | grep "^osci-slave " || |
3994 | + juju deploy $DEPLOY_SCRATCH_DIR/charm-jenkins-slave osci-slave -n 12 --constraints="mem=3G cores=4 root-disk=40G" --config config/juju-apps/osci-slave.yaml --series $SERIES |
3995 | + |
3996 | +juju status osci-lab | grep "^osci-lab " || |
3997 | + juju deploy $DEPLOY_SCRATCH_DIR/charm-jenkins-slave osci-lab -n 4 --constraints="mem=3G cores=4 root-disk=40G" --config config/juju-apps/osci-lab.yaml --series $SERIES |
3998 | + |
3999 | +# Temp hack. Should juju-wait instead. And the charms shouldn't not-work if relating too soon! |
4000 | +#sleep 600 |
4001 | + |
4002 | +juju add-relation osci-master:master osci-task:slave ||: |
4003 | +juju add-relation osci-master:master osci-slave:slave ||: |
4004 | +juju add-relation osci-master:master osci-lab:slave ||: |
4005 | + |
4006 | +UNIT_IMPORT_IDS="1chb1n james-page thedac admcleod" |
4007 | +juju switch controller |
4008 | +juju run --all "sudo su - ubuntu -c \"ssh-import-id $UNIT_IMPORT_IDS\"" |
4009 | +juju switch osci |
4010 | +juju run --all "sudo su - ubuntu -c \"ssh-import-id $UNIT_IMPORT_IDS\"" |
4011 | +juju run --all "sudo su - jenkins -c \"ssh-import-id $UNIT_IMPORT_IDS\"" |
4012 | + |
4013 | +# /!\ The upstream charm relies on failed hook re-execution. It will |
4014 | +# be necessary to retry the master after it fails once, like so: |
4015 | +#juju resolved osci-master/0 |
4016 | |
4017 | === renamed file 'deploy-uosci.py' => 'deploy/osci-nets-and-models.py' |
4018 | --- deploy-uosci.py 2016-08-29 16:01:52 +0000 |
4019 | +++ deploy/osci-nets-and-models.py 2017-05-27 00:22:36 +0000 |
4020 | @@ -1,29 +1,23 @@ |
4021 | -#!/usr/bin/python |
4022 | -''' |
4023 | - Deploys/creates (or updates) jenkins environment, neutron networks, etc. |
4024 | - See README(s)! This is not incorporated into jenkins jobs/tests. |
4025 | -''' |
4026 | +#!/usr/bin/env python |
4027 | +''' |
4028 | +Creates networks, subnets and prepares info for later consumption by |
4029 | +osci jenkins slaves regarding juju models. |
4030 | +''' |
4031 | + |
4032 | import logging |
4033 | -import os |
4034 | -import subprocess |
4035 | -import uuid |
4036 | import yaml |
4037 | -from copy import deepcopy |
4038 | from netaddr import IPNetwork |
4039 | -from neutronclient.neutron import client as ne_client |
4040 | -from novaclient import client as nv_client |
4041 | -from time import time |
4042 | -from common.osci_utils import ( |
4043 | - f_contains_str, |
4044 | - floating_ip_is_available, |
4045 | - get_networks, |
4046 | - get_num_units, |
4047 | - get_os_creds, |
4048 | - has_floating_ip, |
4049 | +from lib.osci_deploy_helpers import ( |
4050 | + copy_file_to_juju_unit, |
4051 | + copy_file_on_juju_unit, |
4052 | + generate_list_of_cidrs, |
4053 | + get_juju_application_status, |
4054 | + get_neutron_client, |
4055 | + get_keystone_v3_session, |
4056 | + predict_juju_unit_names, |
4057 | + predict_model_names, |
4058 | read_yaml, |
4059 | - recursive_dict_key_search, |
4060 | - replace_line_with_lines, |
4061 | - rnd_str, |
4062 | + render, |
4063 | safe_mkdir, |
4064 | validate_config, |
4065 | write_yaml |
4066 | @@ -33,13 +27,7 @@ |
4067 | logging.basicConfig(level=logging.DEBUG) |
4068 | |
4069 | EV = 'environments' |
4070 | -DEPLOY_CONFIG_FILE = 'deployment/deploy-config.yaml' |
4071 | -JM_NAME_TEMPL = 'osci/{}' |
4072 | -SLAVE_NAME_TEMPLATES = { |
4073 | - 'slave': 'osci-slave/{}', # jsv |
4074 | - 'lab': 'osci-lab/{}', # jlb |
4075 | - 'task': 'osci-task/{}' # jtk |
4076 | -} |
4077 | +DEPLOY_CONFIG_FILE = 'config/nets-and-models.yaml' |
4078 | |
4079 | |
4080 | def validate_network_config(conf): |
4081 | @@ -76,59 +64,19 @@ |
4082 | return ret |
4083 | |
4084 | |
4085 | -def get_junits(conf_env, jsv_qty, jtk_qty, jlb_qty): |
4086 | - '''Create a list of juju jenkins master and slave service |
4087 | - units, predictively. |
4088 | - ''' |
4089 | - units = [] |
4090 | - units.append(JM_NAME_TEMPL.format('0')) |
4091 | - |
4092 | - for _templ_qty_map in [(SLAVE_NAME_TEMPLATES['slave'], jsv_qty), |
4093 | - (SLAVE_NAME_TEMPLATES['task'], jtk_qty), |
4094 | - (SLAVE_NAME_TEMPLATES['lab'], jlb_qty)]: |
4095 | - _templ = _templ_qty_map[0] |
4096 | - _qty = _templ_qty_map[1] |
4097 | - for unit in range(0, _qty): |
4098 | - units.append(_templ.format(unit)) |
4099 | - |
4100 | - return units |
4101 | - |
4102 | - |
4103 | -def get_enviros(conf_env, jsv_qty, jtk_qty, jlb_qty): |
4104 | - '''Return a list of juju model names to create''' |
4105 | - envs = [] |
4106 | - envs.append("{}-{}{}".format(conf_env['env-name-base'], |
4107 | - conf_env['master-abbrv'], |
4108 | - 0)) |
4109 | - |
4110 | - for _abbrv_qty_map in [(conf_env['slave-abbrv'], jsv_qty), |
4111 | - (conf_env['task-abbrv'], jtk_qty), |
4112 | - (conf_env['lab-abbrv'], jlb_qty)]: |
4113 | - _abbrv = _abbrv_qty_map[0] |
4114 | - _qty = _abbrv_qty_map[1] |
4115 | - for unit in range(0, _qty): |
4116 | - envs.append("{}-{}{}".format(conf_env['env-name-base'], |
4117 | - _abbrv, |
4118 | - str(unit).zfill(2))) |
4119 | - return envs |
4120 | - |
4121 | - |
4122 | -def build_nets_and_subs(d_env_data, creds, conf): |
4123 | +def build_nets_and_subs(neutron_c, d_models_data, conf): |
4124 | '''Build new neutron subnets and networks from dict data, and connect |
4125 | to neutron router.''' |
4126 | - # Build new neutron networks, subnets, and connect them to the router |
4127 | - neutron = ne_client.Client('2.0', **creds[0]) |
4128 | - |
4129 | conf_net = conf['osci']['network'] |
4130 | - conf_env = conf['osci']['enviro'] |
4131 | + conf_mod = conf['osci']['model'] |
4132 | |
4133 | - base_name = conf_env['env-name-base'] |
4134 | + base_name = conf_mod['model-name-base'] |
4135 | var_oct = conf_net['var-octet'] |
4136 | router_name = conf_net['neutron-router'] |
4137 | dns = conf_net['neutron-dns'] |
4138 | |
4139 | - for k, conf in d_env_data['enviros'].iteritems(): |
4140 | - net_str = conf['network'] |
4141 | + for k, v in d_models_data['models'].items(): |
4142 | + net_str = v['network'] |
4143 | sub_name = "{}_{}_{}".format(base_name, |
4144 | net_str.split('.')[int(var_oct) - 1], |
4145 | 'sub') |
4146 | @@ -137,7 +85,7 @@ |
4147 | 'net') |
4148 | |
4149 | # Create neutron network |
4150 | - networks = neutron.list_networks(name=net_name) |
4151 | + networks = neutron_c.list_networks(name=net_name) |
4152 | if len(networks['networks']) == 0: |
4153 | logging.info('Creating network: %s', |
4154 | net_name) |
4155 | @@ -147,13 +95,13 @@ |
4156 | 'shared': False |
4157 | } |
4158 | } |
4159 | - neu_network = neutron.create_network(network_msg)['network'] |
4160 | + neutron_net = neutron_c.create_network(network_msg)['network'] |
4161 | else: |
4162 | logging.info('Network %s already exists.', net_name) |
4163 | - neu_network = networks['networks'][0] |
4164 | + neutron_net = networks['networks'][0] |
4165 | |
4166 | - # Check if subnet name and IP space is free here |
4167 | - subnets = neutron.list_subnets(name=sub_name) |
4168 | + # Check if subnet name and IP space is free |
4169 | + subnets = neutron_c.list_subnets(name=sub_name) |
4170 | if len(subnets['subnets']) == 0: |
4171 | logging.info('Creating subnet: %s', sub_name) |
4172 | this_cidr = IPNetwork(net_str) |
4173 | @@ -163,7 +111,7 @@ |
4174 | subnet_msg = { |
4175 | 'subnet': { |
4176 | 'name': sub_name, |
4177 | - 'network_id': neu_network['id'], |
4178 | + 'network_id': neutron_net['id'], |
4179 | 'enable_dhcp': True, |
4180 | 'cidr': str(this_cidr), |
4181 | 'ip_version': 4, |
4182 | @@ -175,456 +123,92 @@ |
4183 | 'end': str(alloc_end) |
4184 | }] |
4185 | logging.info(subnet_msg) |
4186 | - neu_subnet = neutron.create_subnet(subnet_msg)['subnet'] |
4187 | + neutron_sub = neutron_c.create_subnet(subnet_msg)['subnet'] |
4188 | else: |
4189 | logging.info('Subnet %s already exists.', net_name) |
4190 | - neu_subnet = subnets['subnets'][0] |
4191 | + neutron_sub = subnets['subnets'][0] |
4192 | |
4193 | # Wire the network to the router |
4194 | - routers = neutron.list_routers(name=router_name) |
4195 | + routers = neutron_c.list_routers(name=router_name) |
4196 | if len(routers['routers']) == 0: |
4197 | raise ValueError('Unable to locate router') |
4198 | else: |
4199 | - ports = neutron.list_ports(device_owner='network:router_interface', |
4200 | - network_id=neu_network['id']) |
4201 | + ports = neutron_c.list_ports( |
4202 | + device_owner='network:router_interface', |
4203 | + network_id=neutron_net['id'] |
4204 | + ) |
4205 | if len(ports['ports']) == 0: |
4206 | logging.info('Adding interface from %s to %s', |
4207 | router_name, sub_name) |
4208 | - neu_router = routers['routers'][0] |
4209 | - neutron.add_interface_router(neu_router['id'], |
4210 | - {'subnet_id': neu_subnet['id']}) |
4211 | + neutron_rtr = routers['routers'][0] |
4212 | + neutron_c.add_interface_router( |
4213 | + neutron_rtr['id'], |
4214 | + {'subnet_id': neutron_sub['id']} |
4215 | + ) |
4216 | else: |
4217 | logging.info('Router already connected to subnet %s', sub_name) |
4218 | |
4219 | - d_env_data['enviros'][k]['network-id'] = str(neu_network['id']) |
4220 | - |
4221 | - |
4222 | -def is_deployed(jma_num_units, jsv_num_units, jtk_num_units, jlb_num_units): |
4223 | - '''Check juju status against expected number of jenkins |
4224 | - master and slave units |
4225 | - ''' |
4226 | - ret = True |
4227 | - try: |
4228 | - # Deployed, check unit quantities |
4229 | - jm_stat = yaml.load(subprocess.check_output( |
4230 | - ['juju', 'status', 'osci'])) |
4231 | - jsv_stat = yaml.load(subprocess.check_output( |
4232 | - ['juju', 'status', 'osci-slave'])) |
4233 | - jtk_stat = yaml.load(subprocess.check_output( |
4234 | - ['juju', 'status', 'osci-task'])) |
4235 | - jlb_stat = yaml.load(subprocess.check_output( |
4236 | - ['juju', 'status', 'osci-lab'])) |
4237 | - |
4238 | - jma_count = len(jm_stat['services']['osci']['units']) |
4239 | - jsv_count = len(jsv_stat['services']['osci-slave']['units']) |
4240 | - jtk_count = len(jtk_stat['services']['osci-task']['units']) |
4241 | - jlb_count = len(jlb_stat['services']['osci-lab']['units']) |
4242 | - |
4243 | - if int(jma_count) != jma_num_units: |
4244 | - ret = ('Juju model is up, but jenkins master' |
4245 | - 'count is unexpected: {}/{}'.format(jma_count, |
4246 | - jma_num_units)) |
4247 | - if int(jsv_count) != jsv_num_units: |
4248 | - ret = ('Juju model is up, but jenkins slave count is ' |
4249 | - 'unexpected: {}/{}'.format(jsv_count, jsv_num_units)) |
4250 | - if int(jtk_count) != jtk_num_units: |
4251 | - ret = ('Juju model is up, but task slave count is ' |
4252 | - 'unexpected: {}/{}'.format(jtk_count, jtk_num_units)) |
4253 | - if int(jlb_count) != jlb_num_units: |
4254 | - ret = ('Juju model is up, but lab slave count is ' |
4255 | - 'unexpected: {}/{}'.format(jlb_count, jlb_num_units)) |
4256 | - except (subprocess.CalledProcessError, KeyError): |
4257 | - # Not deployed |
4258 | - ret = False |
4259 | - return ret |
4260 | - |
4261 | - |
4262 | -def make_post_file_xfer_script(data, script_file_abs): |
4263 | - '''Create post-deployment file transfer script, which utilizes |
4264 | - juju scp and juju ssh to copy files into the jenkins units, |
4265 | - such as novarc and environments.yaml, and to set the permissions. |
4266 | - ''' |
4267 | - cmds = [] |
4268 | - for d_file in data: |
4269 | - # Separator |
4270 | - cmds.append('echo -e "\\n----{}: {}----"'.format(d_file['unit'], |
4271 | - d_file['src-name'])) |
4272 | - |
4273 | - # Copy some files to the unit |
4274 | - juju_scp_cmd = 'juju scp {}/{} {}:{}/{}'.format(d_file['src-dir'], |
4275 | - d_file['src-name'], |
4276 | - d_file['unit'], |
4277 | - d_file['tmp-dir'], |
4278 | - d_file['dst-name']) |
4279 | - cmds.append(juju_scp_cmd) |
4280 | - |
4281 | - # Modify files inside the unit |
4282 | - cmd_bash = '' |
4283 | - cmd_bash += "sudo su - jenkins -c 'mkdir -p {}' && ".format( |
4284 | - d_file['dst-dir']) |
4285 | - cmd_bash += "sudo mv {}/{} {}/{} && ".format(d_file['tmp-dir'], |
4286 | - d_file['dst-name'], |
4287 | - d_file['dst-dir'], |
4288 | - d_file['dst-name']) |
4289 | - cmd_bash += "sudo chown -R {} {} && ".format( |
4290 | - d_file['chown'], |
4291 | - d_file['dst-dir']) |
4292 | - cmd_bash += "sudo chmod {} {}/{}".format(d_file['chmod'], |
4293 | - d_file['dst-dir'], |
4294 | - d_file['dst-name']) |
4295 | - juju_ssh_cmd = 'juju ssh {} "{}"'.format(d_file['unit'], cmd_bash) |
4296 | - cmds.append(juju_ssh_cmd) |
4297 | - |
4298 | - # Write file |
4299 | - with open(script_file_abs, 'w') as out_file: |
4300 | - out_file.write('{}\n'.format('#!/bin/bash -e')) |
4301 | - for cmd in cmds: |
4302 | - out_file.write('{}\n'.format(cmd)) |
4303 | - |
4304 | - subprocess.check_call(['chmod', |
4305 | - '770', script_file_abs]) |
4306 | - |
4307 | - return script_file_abs |
4308 | - |
4309 | - |
4310 | -def create_env_yamls_and_post_xfer_dict(data, conf, creds): |
4311 | - '''Create juju environment yaml files for each master and slave, |
4312 | - create and return absolute path of bash script which pushes |
4313 | - files into the juju service units. |
4314 | - ''' |
4315 | - f_template = read_yaml(conf['env-template']) |
4316 | - f_reference = read_yaml(conf['env-reference']) |
4317 | -# series = read_yaml('deployment/deploy-files/environment-series.yaml') |
4318 | - apt_proxy = recursive_dict_key_search(f_reference, 'apt-http-proxy') |
4319 | - jenk_home = '/var/lib/jenkins' |
4320 | - u_home = '/home/ubuntu' |
4321 | - _files = [] |
4322 | - |
4323 | - for env_name, env_attr in data['enviros'].iteritems(): |
4324 | - d_tmp = deepcopy(f_template) |
4325 | - env_name_dev = '{}-jdev'.format(env_name) |
4326 | - env_name_prop = '{}-jprop'.format(env_name) |
4327 | - |
4328 | - # Set this slave's juju model name |
4329 | - d_tmp[EV][env_name] = deepcopy(d_tmp[EV]['__ENVIRO__']) |
4330 | - d_tmp['default'] = env_name |
4331 | - del d_tmp[EV]['__ENVIRO__'] |
4332 | - |
4333 | - # Set juju model openstack parameters |
4334 | - d_tmp[EV][env_name]['admin-secret'] = rnd_str(length=32) |
4335 | - d_tmp[EV][env_name]['auth-url'] = creds[0]['auth_url'] |
4336 | - d_tmp[EV][env_name]['control-bucket'] = str(uuid.uuid1()) |
4337 | - d_tmp[EV][env_name]['password'] = creds[0]['password'] |
4338 | - d_tmp[EV][env_name]['tenant-name'] = creds[0]['tenant_name'] |
4339 | - d_tmp[EV][env_name]['username'] = creds[0]['username'] |
4340 | - |
4341 | - if 'network-id' in env_attr: |
4342 | - d_tmp[EV][env_name]['network'] = env_attr['network-id'] |
4343 | - |
4344 | - if apt_proxy is not None: |
4345 | - d_tmp[EV][env_name]['apt-http-proxy'] = apt_proxy |
4346 | - else: |
4347 | - del d_tmp[EV][env_name]['apt-http-proxy'] |
4348 | - |
4349 | - # Create juju-devel model yaml for environments.yaml |
4350 | - d_tmp[EV][env_name_dev] = deepcopy(d_tmp[EV][env_name]) |
4351 | - d_tmp[EV][env_name_dev]['agent-stream'] = 'devel' |
4352 | - |
4353 | - # Create juju-proposed model yaml for environments.yaml |
4354 | - d_tmp[EV][env_name_prop] = deepcopy(d_tmp[EV][env_name]) |
4355 | - d_tmp[EV][env_name_prop]['agent-stream'] = 'proposed' |
4356 | - |
4357 | - # Create juju model yaml for environments.yaml |
4358 | - safe_mkdir(conf['out-dir']) |
4359 | - env_filename = 'environments-{}.yaml'.format(env_name) |
4360 | - env_file_abs = '{}/{}'.format(conf['out-dir'], env_filename) |
4361 | - write_yaml(d_tmp, env_file_abs) |
4362 | - logging.debug('created environment file: {}'.format(env_file_abs)) |
4363 | - |
4364 | - # Add to post-deployment file xfer dict |
4365 | - _files.append( |
4366 | - {'src-name': env_filename, |
4367 | - 'dst-name': 'environments.yaml', |
4368 | - 'src-dir': conf['out-dir'], |
4369 | - 'tmp-dir': u_home, |
4370 | - 'dst-dir': '{}/.juju'.format(jenk_home), |
4371 | - 'chown': 'jenkins:jenkins', |
4372 | - 'chmod': '600', |
4373 | - 'unit': env_attr['unit'] |
4374 | - }) |
4375 | - _files.append( |
4376 | - {'src-name': 'novarc', |
4377 | - 'dst-name': 'novarc', |
4378 | - 'src-dir': os.getenv("HOME"), |
4379 | - 'tmp-dir': u_home, |
4380 | - 'dst-dir': jenk_home, |
4381 | - 'chown': 'jenkins:jenkins', |
4382 | - 'chmod': '600', |
4383 | - 'unit': env_attr['unit'] |
4384 | - }) |
4385 | - |
4386 | - # also set master's cli.conf |
4387 | - _files.append( |
4388 | - {'src-name': 'cli.conf', |
4389 | - 'dst-name': 'cli.conf', |
4390 | - 'src-dir': 'deployment/deploy-files', |
4391 | - 'tmp-dir': u_home, |
4392 | - 'dst-dir': '{}/.jenkins'.format(jenk_home), |
4393 | - 'chown': 'jenkins:jenkins', |
4394 | - 'chmod': '600', |
4395 | - 'unit': 'osci/0' |
4396 | - }) |
4397 | - |
4398 | - return _files |
4399 | - |
4400 | - |
4401 | -def parse_jenkins_config_xml(conf): |
4402 | - '''Pull config.xml from from the jenkins master, replace or |
4403 | - inject lines of config, return list of dict of files/attributes |
4404 | - for handling by the post-xfer routine. |
4405 | - ''' |
4406 | - |
4407 | - # Get config.xml from jenkins master |
4408 | - time_stamp = str(time()).replace('.', '-') |
4409 | - file_name = 'config.xml.{}'.format(time_stamp) |
4410 | - |
4411 | - subprocess.check_call(['juju', 'ssh', 'osci/0', |
4412 | - 'sudo cp /var/lib/jenkins/config.xml ' |
4413 | - '/home/ubuntu/{}'.format(file_name)]) |
4414 | - subprocess.check_call(['juju', 'ssh', 'osci/0', |
4415 | - 'sudo chown ubuntu:ubuntu ' |
4416 | - '/home/ubuntu/{}'.format(file_name)]) |
4417 | - juju_scp_cmd = ('juju scp {}:{} {}'.format('osci/0', |
4418 | - '/home/ubuntu/{}'.format(file_name), |
4419 | - conf['out-dir'])) |
4420 | - subprocess.check_call(juju_scp_cmd.split()) |
4421 | - |
4422 | - loc_xml = '{}/{}'.format(conf['out-dir'], file_name) |
4423 | - do_copy = False |
4424 | - _files = [] |
4425 | - |
4426 | - operations = [] |
4427 | - operations.extend( |
4428 | - [{'replace': 'FullControlOnceLoggedInAuthorizationStrategy', |
4429 | - 'with': 'deployment/deploy-files/config.xml.authstrat' |
4430 | - }, |
4431 | - {'replace': '<globalNodeProperties/>', |
4432 | - 'with': 'deployment/deploy-files/config.xml.global' |
4433 | - }]) |
4434 | - |
4435 | - if not f_contains_str(the_file=loc_xml, str_find='<listView>'): |
4436 | - operations.append( |
4437 | - {'replace': '</views>', |
4438 | - 'with': 'deployment/deploy-files/config.xml.views' |
4439 | - }) |
4440 | - |
4441 | - for _op in operations: |
4442 | - logging.info('op: {}:{}:{}'.format(loc_xml, |
4443 | - _op['replace'], |
4444 | - _op['with'])) |
4445 | - |
4446 | - with open(_op['with']) as inject_file: |
4447 | - inject_lines = inject_file.readlines() |
4448 | - ret = replace_line_with_lines(file_name=loc_xml, |
4449 | - str_find=_op['replace'], |
4450 | - with_lines=inject_lines) |
4451 | - if ret: |
4452 | - # No need, not modified. |
4453 | - logging.info(ret) |
4454 | - else: |
4455 | - do_copy = True |
4456 | - |
4457 | - if do_copy: |
4458 | - # Add config.xml to the list to copy back to jenkins master |
4459 | - logging.info('do_copy True') |
4460 | - _files.append( |
4461 | - {'src-name': file_name, |
4462 | - 'dst-name': 'config.xml', |
4463 | - 'src-dir': conf['out-dir'], |
4464 | - 'tmp-dir': '/home/ubuntu', |
4465 | - 'dst-dir': '/var/lib/jenkins', |
4466 | - 'chown': 'jenkins:jenkins', |
4467 | - 'chmod': '644', |
4468 | - 'unit': 'osci/0' |
4469 | - }) |
4470 | - return _files |
4471 | - |
4472 | - |
4473 | -def jenkins_other_xml(): |
4474 | - '''Build files list for additional jenkins xml files |
4475 | - to push into the master |
4476 | - ''' |
4477 | - _files = [] |
4478 | - _files.append( |
4479 | - {'src-name': 'hudson.tasks.Mailer.xml', |
4480 | - 'dst-name': 'hudson.tasks.Mailer.xml', |
4481 | - 'src-dir': 'deployment/deploy-files', |
4482 | - 'tmp-dir': '/home/ubuntu', |
4483 | - 'dst-dir': '/var/lib/jenkins', |
4484 | - 'chown': 'jenkins:jenkins', |
4485 | - 'chmod': '644', |
4486 | - 'unit': 'osci/0' |
4487 | - }) |
4488 | - _files.append( |
4489 | - {'src-name': 'hudson.plugins.build_publisher.BuildPublisher.xml', |
4490 | - 'dst-name': 'hudson.plugins.build_publisher.BuildPublisher.xml', |
4491 | - 'src-dir': 'deployment/deploy-files', |
4492 | - 'tmp-dir': '/home/ubuntu', |
4493 | - 'dst-dir': '/var/lib/jenkins', |
4494 | - 'chown': 'jenkins:jenkins', |
4495 | - 'chmod': '644', |
4496 | - 'unit': 'osci/0' |
4497 | - }) |
4498 | - return _files |
4499 | - |
4500 | - |
4501 | -def float_jenkins_master(creds, conf): |
4502 | - '''Associate a floating IP with the jenkins master instance (create |
4503 | - floating IP if necessary). |
4504 | - ''' |
4505 | - conf_net = conf['osci']['network'] |
4506 | - |
4507 | - neutron = ne_client.Client('2.0', **creds[0]) |
4508 | - nova = nv_client.Client('2', **creds[1]) |
4509 | - jm_stat = yaml.load(subprocess.check_output(['juju', 'status', 'osci'])) |
4510 | - jm_id = jm_stat['machines'].keys()[0] |
4511 | - jm_instance_id = jm_stat['machines'][jm_id]['instance-id'] |
4512 | - jm_instance = nova.servers.get(server=jm_instance_id) |
4513 | - jm_addresses = jm_instance.addresses[conf_net['default-network']] |
4514 | - ext_net_id = (neutron.list_networks(name=conf_net['ext-net']) |
4515 | - ['networks'][0]['id']) |
4516 | - |
4517 | - ret = has_floating_ip(jm_addresses, conf_net['fip-str']) |
4518 | - if ret: |
4519 | - logging.info('Instance already has a floating ip: {}'.format(ret)) |
4520 | - else: |
4521 | - if floating_ip_is_available(neutron): |
4522 | - logging.info('Floating ip exists in tenant, associating it.') |
4523 | - jm_float_ip = (neutron.list_floatingips(status='DOWN') |
4524 | - ['floatingips'][0]['floating_ip_address']) |
4525 | - else: |
4526 | - logging.info('No free floating ip(s) in tenant, creating one.') |
4527 | - fip_msg = { |
4528 | - 'floatingip': { |
4529 | - 'floating_network_id': ext_net_id |
4530 | - } |
4531 | - } |
4532 | - try: |
4533 | - jm_float_ip = (neutron.create_floatingip(fip_msg)['floatingip'] |
4534 | - ['floating_ip_address']) |
4535 | - |
4536 | - except Exception: |
4537 | - raise ValueError('Tenant could not create a floating IP') |
4538 | - |
4539 | - # Associate floating ip with instance |
4540 | - try: |
4541 | - jm_instance.add_floating_ip(address=jm_float_ip) |
4542 | - except Exception: |
4543 | - raise ValueError('Failed to associate floating ip ' |
4544 | - '({}) to instance {}.'.format(jm_float_ip, |
4545 | - jm_instance_id)) |
4546 | - |
4547 | - # Confirm |
4548 | - jm_instance = nova.servers.get(server=jm_instance_id) |
4549 | - jm_addresses = jm_instance.addresses[conf_net['default-network']] |
4550 | - ret = has_floating_ip(jm_addresses, conf_net['fip-str']) |
4551 | - if ret: |
4552 | - logging.info('Instance has floating ip: {}'.format(ret)) |
4553 | - |
4554 | - |
4555 | -def main(): |
4556 | - '''Read and validate configs, build networks, deploy bundle, |
4557 | - perform some post-deploy config and file transfers. |
4558 | - ''' |
4559 | - # Read config from yaml |
4560 | + d_models_data['models'][k]['network-id'] = str(neutron_net['id']) |
4561 | + |
4562 | + |
4563 | +def get_num_units(): |
4564 | + '''Return specific juju application unit quantities from juju model status. |
4565 | + ''' |
4566 | + jm_stat = get_juju_application_status('osci-master') |
4567 | + jsv_stat = get_juju_application_status('osci-slave') |
4568 | + jtk_stat = get_juju_application_status('osci-task') |
4569 | + jlb_stat = get_juju_application_status('osci-lab') |
4570 | + |
4571 | + return (len(jm_stat['applications']['osci-master']['units']), |
4572 | + len(jsv_stat['applications']['osci-slave']['units']), |
4573 | + len(jtk_stat['applications']['osci-task']['units']), |
4574 | + len(jlb_stat['applications']['osci-lab']['units'])) |
4575 | + |
4576 | + |
4577 | +def generate_models_data(conf): |
4578 | + '''Read and validate configs, build networks, dump models:networks yaml. |
4579 | + ''' |
4580 | conf = read_yaml(DEPLOY_CONFIG_FILE) |
4581 | - creds = get_os_creds() |
4582 | |
4583 | # Basic non-null general parameter validation |
4584 | - expected = ['env-name-base', 'master-abbrv', 'slave-abbrv', 'split', |
4585 | - 'env-template', 'out-dir', 'deployer-bundle'] |
4586 | + expected = ['model-name-base', 'master-abbrv', 'slave-abbrv', 'split', |
4587 | + 'out-dir'] |
4588 | ret = validate_config(conf['osci'], expected) |
4589 | if ret: |
4590 | logging.debug('conf: {}'.format(conf['osci'])) |
4591 | raise ValueError('Config data missing. {}'.format(ret)) |
4592 | |
4593 | # Break out config parameters |
4594 | + conf_net = conf['osci']['network'] |
4595 | + conf_mod = conf['osci']['model'] |
4596 | net_split = conf['osci']['network']['split'] |
4597 | - conf_net = conf['osci']['network'] |
4598 | - conf_env = conf['osci']['enviro'] |
4599 | - |
4600 | - # Inspect deployer bundle yaml for needed info & validate |
4601 | - deployer_bundle = conf['osci']['deployer-bundle'] |
4602 | - d_dep_bundle = read_yaml(deployer_bundle) |
4603 | - jma_num_units = get_num_units(d_dep_bundle, |
4604 | - d_dep_bundle.keys()[0], |
4605 | - 'osci') |
4606 | - jsv_num_units = get_num_units(d_dep_bundle, |
4607 | - d_dep_bundle.keys()[0], |
4608 | - 'osci-slave') |
4609 | - jtk_num_units = get_num_units(d_dep_bundle, |
4610 | - d_dep_bundle.keys()[0], |
4611 | - 'osci-task') |
4612 | - jlb_num_units = get_num_units(d_dep_bundle, |
4613 | - d_dep_bundle.keys()[0], |
4614 | - 'osci-lab') |
4615 | - logging.debug('jma: {}\njsv: {}\njtk: {}\njlb: {}'.format( |
4616 | - jma_num_units, jsv_num_units, jtk_num_units, jlb_num_units)) |
4617 | - |
4618 | - # Validate bundle unit counts before deploying |
4619 | - if jma_num_units != 1: |
4620 | - raise ValueError('Expected exactly 1 jenkins master, ' |
4621 | - 'found: {}'.format(jma_num_units)) |
4622 | - if jsv_num_units < 1: |
4623 | - raise ValueError('Expected at least 1 jenkins slave, ' |
4624 | - 'found: {}'.format(jsv_num_units)) |
4625 | - if jtk_num_units < 1: |
4626 | - raise ValueError('Expected at least 1 task slave, ' |
4627 | - 'found: {}'.format(jtk_num_units)) |
4628 | - if jlb_num_units < 1: |
4629 | - raise ValueError('Expected at least 1 lab slave, ' |
4630 | - 'found: {}'.format(jlb_num_units)) |
4631 | - |
4632 | - # Deploy if not already deployed |
4633 | - ret = is_deployed(jma_num_units, jsv_num_units, |
4634 | - jtk_num_units, jlb_num_units) |
4635 | - if ret is not True and ret is not False: |
4636 | - raise ValueError(ret) |
4637 | - elif ret is True: |
4638 | - logging.info('Model is already deployed, moving on.') |
4639 | - elif ret is False: |
4640 | - logging.info('Model is not deployed, deploying...') |
4641 | - subprocess.check_call(['juju-deployer', |
4642 | - '-v', '-d', '-B', |
4643 | - '-c', deployer_bundle]) |
4644 | - # Confirm new deployment |
4645 | - ret = is_deployed(jma_num_units, jsv_num_units, |
4646 | - jtk_num_units, jlb_num_units) |
4647 | - if ret is not True: |
4648 | - raise ValueError(ret) |
4649 | - |
4650 | - # Predictively construct new juju environment and unit names lists |
4651 | - junits = get_junits(conf_env=conf_env, |
4652 | - jsv_qty=jsv_num_units, |
4653 | - jtk_qty=jtk_num_units, |
4654 | - jlb_qty=jlb_num_units) |
4655 | - |
4656 | - enviros = get_enviros(conf_env=conf_env, |
4657 | - jsv_qty=jsv_num_units, |
4658 | - jtk_qty=jtk_num_units, |
4659 | - jlb_qty=jlb_num_units) |
4660 | + |
4661 | + # Predictively construct new juju model names from unit names |
4662 | + jma_num_units, jsv_num_units, jtk_num_units, jlb_num_units = \ |
4663 | + get_num_units() |
4664 | + |
4665 | + junits = predict_juju_unit_names(conf_mod=conf_mod, |
4666 | + jsv_qty=jsv_num_units, |
4667 | + jtk_qty=jtk_num_units, |
4668 | + jlb_qty=jlb_num_units) |
4669 | + |
4670 | + models = predict_model_names(conf_mod=conf_mod, |
4671 | + jsv_qty=jsv_num_units, |
4672 | + jtk_qty=jtk_num_units, |
4673 | + jlb_qty=jlb_num_units) |
4674 | + |
4675 | + logging.info('Models: {}'.format(models)) |
4676 | |
4677 | # Network separation |
4678 | - if net_split is False: |
4679 | + if not net_split: |
4680 | logging.info('No network separation.') |
4681 | nets = [None] * len(junits) |
4682 | - elif net_split is True: |
4683 | + else: |
4684 | logging.info('Using layer 2 network separation.') |
4685 | |
4686 | # Basic non-null network parameter validation |
4687 | expected = ['cidr', 'var-octet', 'neutron-router', |
4688 | - 'neutron-net', 'neutron-sub', 'neutron-dns', |
4689 | - 'ext-net', 'fip-str'] |
4690 | + 'neutron-net', 'neutron-sub', 'neutron-dns'] |
4691 | ret = validate_config(conf_net, expected) |
4692 | if ret: |
4693 | raise ValueError('Network config data missing. {}'.format(ret)) |
4694 | @@ -638,65 +222,125 @@ |
4695 | ip_cidr = IPNetwork(conf_net['cidr']) |
4696 | total_units = (jma_num_units + jsv_num_units + |
4697 | jtk_num_units + jlb_num_units) |
4698 | - nets = get_networks(network=str(ip_cidr.network), |
4699 | - bits=int(ip_cidr.prefixlen), |
4700 | - octet=int(conf_net['var-octet']), |
4701 | - quantity=total_units) |
4702 | + nets = generate_list_of_cidrs(network=str(ip_cidr.network), |
4703 | + bits=int(ip_cidr.prefixlen), |
4704 | + octet=int(conf_net['var-octet']), |
4705 | + quantity=total_units) |
4706 | |
4707 | # Ensure lists are the same length & smash into a dictionary |
4708 | - check_len = [len(enviros), len(nets), len(junits)] |
4709 | + check_len = [len(models), len(nets), len(junits)] |
4710 | if check_len != [check_len[0]] * 3: |
4711 | - logging.debug('enviros ({}): {}'.format(len(enviros), enviros)) |
4712 | + logging.debug('models ({}): {}'.format(len(models), models)) |
4713 | logging.debug('nets ({}): {}'.format(len(nets), nets)) |
4714 | logging.debug('junits ({}): {}'.format(len(junits), junits)) |
4715 | raise ValueError('Model, network and juju unit counts should be equal') |
4716 | - d_env_data = {'enviros': {}} |
4717 | - for idx, enviro in enumerate(enviros): |
4718 | - d_env_data['enviros'][enviro] = { |
4719 | + d_models_data = { |
4720 | + 'models': {}, |
4721 | + 'units': {}, |
4722 | + } |
4723 | + for idx, model in enumerate(models): |
4724 | + d_models_data['models'][model] = { |
4725 | 'network': nets[idx], |
4726 | 'unit': junits[idx] |
4727 | } |
4728 | |
4729 | - # Add neutron networks, subnets and router connections, if called for |
4730 | - if net_split is True: |
4731 | - build_nets_and_subs(d_env_data=d_env_data, |
4732 | - creds=creds, |
4733 | - conf=conf) |
4734 | - |
4735 | - # Give jenkins master a floating IP if it doesn't already have one |
4736 | - float_jenkins_master(creds=creds, conf=conf) |
4737 | - |
4738 | - # Create environment yaml file for each jenkins master & slave unit, |
4739 | - # return a dict of files to copy into those units. |
4740 | - xfer_files = create_env_yamls_and_post_xfer_dict(data=d_env_data, |
4741 | - conf=conf_env, |
4742 | - creds=creds) |
4743 | - |
4744 | - # Grab config.xml from jenkins master, replace certain sections |
4745 | - ret = parse_jenkins_config_xml(conf_env) |
4746 | - if ret: |
4747 | - xfer_files.extend(ret) |
4748 | - |
4749 | - # Push in build publisher, mailer, other jenkins config xmls |
4750 | - ret = jenkins_other_xml() |
4751 | - if ret: |
4752 | - xfer_files.extend(ret) |
4753 | - |
4754 | - # Write d_env_data out to yaml for reference |
4755 | + d_models_data['units'][junits[idx]] = { |
4756 | + 'network': nets[idx], |
4757 | + 'model': model |
4758 | + } |
4759 | + |
4760 | + return d_models_data |
4761 | + |
4762 | + |
4763 | +def write_models_data_files(conf, d_models_data): |
4764 | + '''Write out yaml files containing models, units, networks data |
4765 | + for consumption by osci jenkins slaves. |
4766 | + ''' |
4767 | + conf_other = conf['osci']['other'] |
4768 | + |
4769 | logging.debug('New model and network predictions: {}'.format( |
4770 | - yaml.dump(d_env_data, default_flow_style=False))) |
4771 | - safe_mkdir(conf_env['out-dir']) |
4772 | - write_yaml(d_env_data, '{}/env_data.yaml'.format(conf_env['out-dir'])) |
4773 | - |
4774 | - # Build and execute post-deployment file xfer script |
4775 | - post_file = make_post_file_xfer_script( |
4776 | - data=xfer_files, script_file_abs='{}/{}'.format( |
4777 | - conf_env['out-dir'], 'post-xfer.sh')) |
4778 | - |
4779 | - if os.path.isfile(post_file): |
4780 | - subprocess.check_call([post_file]) |
4781 | - else: |
4782 | - raise ValueError('Failed to create post-deployment file xfer script.') |
4783 | + yaml.dump(d_models_data, default_flow_style=False))) |
4784 | + safe_mkdir(conf_other['out-dir']) |
4785 | + write_yaml(d_models_data, |
4786 | + '{}/models_data.yaml'.format(conf_other['out-dir'])) |
4787 | + |
4788 | + # Generate oscirc files and copy into units |
4789 | + for model, v in d_models_data['models'].items(): |
4790 | + unit_str = v['unit'] |
4791 | + unit_str_friendly = unit_str.replace('/', '-') |
4792 | + |
4793 | + oscirc_template_data = { |
4794 | + 'osci_controller_name': model, # Just use model name |
4795 | + 'osci_friendly_name': unit_str_friendly, |
4796 | + 'osci_juju_name': unit_str, |
4797 | + 'osci_model_name': model, |
4798 | + 'osci_net_cidr': v['network'], |
4799 | + 'osci_net_id': v['network-id'], |
4800 | + } |
4801 | + |
4802 | + logging.info('{}'.format(oscirc_template_data)) |
4803 | + |
4804 | + target = '{}/{}/oscirc'.format(conf_other['out-dir'], |
4805 | + unit_str_friendly) |
4806 | + |
4807 | + render('oscirc', target, oscirc_template_data, 'templates') |
4808 | + |
4809 | + copy_file_to_juju_unit(target, |
4810 | + '/home/ubuntu/oscirc', |
4811 | + unit_str, owner="ubuntu", group="ubuntu", |
4812 | + perms="640") |
4813 | + |
4814 | + copy_file_to_juju_unit('/home/ubuntu/novarc', |
4815 | + '/home/ubuntu/novarc', |
4816 | + unit_str, owner="ubuntu", group="ubuntu", |
4817 | + perms="640") |
4818 | + |
4819 | + copy_file_on_juju_unit('/home/ubuntu/novarc', |
4820 | + '/var/lib/jenkins/novarc', |
4821 | + unit_str, owner="root", group="root", |
4822 | + perms="644") |
4823 | + |
4824 | + copy_file_on_juju_unit('/home/ubuntu/oscirc', |
4825 | + '/var/lib/jenkins/oscirc', |
4826 | + unit_str, owner="root", group="root", |
4827 | + perms="644") |
4828 | + |
4829 | + |
4830 | +def misc_file_ops(conf, d_models_data): |
4831 | + '''Perform misc file operations on units.''' |
4832 | + |
4833 | + for model, v in d_models_data['models'].items(): |
4834 | + unit_str = v['unit'] |
4835 | + |
4836 | + copy_file_on_juju_unit('/home/ubuntu/.bashrc', |
4837 | + '/var/lib/jenkins/.bashrc', |
4838 | + unit_str, owner="jenkins", group="jenkins", |
4839 | + perms="640") |
4840 | + |
4841 | + copy_file_on_juju_unit('/home/ubuntu/.profile', |
4842 | + '/var/lib/jenkins/.profile', |
4843 | + unit_str, owner="jenkins", group="jenkins", |
4844 | + perms="640") |
4845 | + |
4846 | + |
4847 | +def main(): |
4848 | + '''Main procedure. And, Go!''' |
4849 | + |
4850 | + conf = read_yaml(DEPLOY_CONFIG_FILE) |
4851 | + d_models_data = generate_models_data(conf) |
4852 | + |
4853 | + # Build networks and subnets if called for by config |
4854 | + if conf['osci']['network']['split']: |
4855 | + ksv3_session = get_keystone_v3_session() |
4856 | + neutron_c = get_neutron_client(ksv3_session) |
4857 | + |
4858 | + build_nets_and_subs(neutron_c, |
4859 | + d_models_data, |
4860 | + conf) |
4861 | + |
4862 | + write_models_data_files(conf, d_models_data) |
4863 | + |
4864 | + misc_file_ops(conf, d_models_data) |
4865 | |
4866 | |
4867 | if __name__ == '__main__': |
4868 | |
4869 | === added file 'deploy/osci-set-subnets-dns.sh' |
4870 | --- deploy/osci-set-subnets-dns.sh 1970-01-01 00:00:00 +0000 |
4871 | +++ deploy/osci-set-subnets-dns.sh 2017-05-27 00:22:36 +0000 |
4872 | @@ -0,0 +1,14 @@ |
4873 | +#!/bin/bash -uex |
4874 | +# Set nameserver value to the ip address of the current host (bastion) for all |
4875 | +# neutron subnets. |
4876 | + |
4877 | +nameserver_ip="$(ip a | grep glob | head -n 1 | awk '{ print $2 }' | cut -d '/' -f 1)" |
4878 | +subnets=$(mktemp) |
4879 | +openstack subnet list | grep "\/" > $subnets |
4880 | + |
4881 | +while read i; do |
4882 | + subnet_id=$(echo $i | awk '{ print $2 }') |
4883 | + openstack subnet set --no-dns-nameservers --dns-nameserver ${nameserver_ip} ${subnet_id} |
4884 | +done < $subnets |
4885 | + |
4886 | +rm -fv $subnets |
4887 | |
4888 | === renamed directory 'deployment/bin' => 'deploy/post-deploy' |
4889 | === added file 'deploy/post-deploy/100-repo-boot.sh' |
4890 | --- deploy/post-deploy/100-repo-boot.sh 1970-01-01 00:00:00 +0000 |
4891 | +++ deploy/post-deploy/100-repo-boot.sh 2017-05-27 00:22:36 +0000 |
4892 | @@ -0,0 +1,20 @@ |
4893 | +#!/bin/bash -uex |
4894 | +echo $0 |
4895 | + |
4896 | +. config/env-common |
4897 | + |
4898 | +f_dst="${JENKINS_HOME}" |
4899 | +f_tmp="${U_HOME}" |
4900 | +base_src="assets" |
4901 | + |
4902 | +for f_src in osci-repo-boot.sh osci-repo-boot-clean.sh; do |
4903 | + stat -t ${base_src}/${f_src} |
4904 | + for unit in $UNITS; do |
4905 | + juju scp ${base_src}/${f_src} ${unit}:${f_tmp} |
4906 | + juju ssh ${unit} "sudo cp -fv ${f_tmp}/${f_src} ${f_dst} &&\ |
4907 | + sudo chown jenkins:jenkins ${f_dst} &&\ |
4908 | + sudo chmod 750 ${f_dst} &&\ |
4909 | + sudo chown root:root ${f_dst}/${f_src} &&\ |
4910 | + sudo chmod 775 ${f_dst}/${f_src}" |
4911 | + done |
4912 | +done |
4913 | |
4914 | === added file 'deploy/post-deploy/101-ssh-imports.sh' |
4915 | --- deploy/post-deploy/101-ssh-imports.sh 1970-01-01 00:00:00 +0000 |
4916 | +++ deploy/post-deploy/101-ssh-imports.sh 2017-05-27 00:22:36 +0000 |
4917 | @@ -0,0 +1,9 @@ |
4918 | +#!/bin/bash -ex |
4919 | +echo $0 |
4920 | +. config/env-common |
4921 | + |
4922 | +ssh_import="1chb1n james-page admcleod thedac vds" |
4923 | + |
4924 | +juju run --all "sudo -H -u jenkins bash -c 'ssh-import-id ${ssh_import}'" |
4925 | +juju run --all "sudo -H -u ubuntu bash -c 'ssh-import-id ${ssh_import}'" |
4926 | + |
4927 | |
4928 | === modified file 'deploy/post-deploy/102-ssh-creds.sh' |
4929 | --- deployment/bin/102-ssh-creds.sh 2015-02-18 05:22:57 +0000 |
4930 | +++ deploy/post-deploy/102-ssh-creds.sh 2017-05-27 00:22:36 +0000 |
4931 | @@ -1,46 +1,45 @@ |
4932 | -#!/bin/bash -e |
4933 | +#!/bin/bash -ex |
4934 | echo $0 |
4935 | |
4936 | # Copy ssh key files and init bzr lp-login on master and all slaves, |
4937 | # verify bzr checkout capability as the jenkins user. |
4938 | # FYI nfs checkout is unrelated and arbitrary, chosen for small size ~100k. |
4939 | |
4940 | -. $(dirname $0)/../../env-common |
4941 | +. config/env-common |
4942 | |
4943 | f_dst="${JENKINS_HOME}/.ssh" |
4944 | f_tmp="${U_HOME}/.ssh" |
4945 | f_src="${PUB_KEY} ${PRIV_KEY} ${SSH_CONF}" |
4946 | -base_src="deploy-files" |
4947 | +base_src="assets" |
4948 | lp_hk=$(cat ${base_src}/launchpad_host_keys) |
4949 | d_str=$(date +'%H%M%S') |
4950 | |
4951 | for srcs in $f_src; do |
4952 | - if [ ! -f "${base_src}/${srcs}" ]; then |
4953 | - echo "Local source file ${srcs} not found." |
4954 | - pwd |
4955 | - exit 1 |
4956 | - fi |
4957 | + if [ ! -f "${base_src}/${srcs}" ]; then |
4958 | + echo "Local source file ${srcs} not found." |
4959 | + pwd |
4960 | + exit 1 |
4961 | + fi |
4962 | done |
4963 | |
4964 | for unit in $UNITS; do |
4965 | - echo "Copying SSH key files to ${unit}..." |
4966 | - juju ssh ${unit} "sudo mkdir -vp ${f_dst} && sudo mkdir -p ${f_tmp} &&\ |
4967 | - sudo echo '${lp_hk}' > /tmp/hk${d_str} &&\ |
4968 | - sudo cp -fv /tmp/hk${d_str} /root/.ssh/known_hosts &&\ |
4969 | - sudo mv -fv /tmp/hk${d_str} ${f_dst}/known_hosts" |
4970 | - |
4971 | - for srcs in $f_src; do |
4972 | - echo " $srcs --> ${unit}:${f_tmp}" |
4973 | - juju scp ${base_src}/${srcs} ${unit}:${f_tmp} |
4974 | - juju ssh ${unit} "sudo cp -fv ${f_tmp}/${srcs} ${f_dst}" |
4975 | - done |
4976 | - |
4977 | - juju ssh ${unit} "sudo chown -R jenkins:nogroup ${f_dst} &&\ |
4978 | - sudo chown -R ubuntu:nogroup ${f_tmp} &&\ |
4979 | - sudo chown -R jenkins:jenkins ${f_dst} &&\ |
4980 | - sudo chmod 0600 ${f_dst}/known_hosts &&\ |
4981 | - sudo su - jenkins -c 'bzr whoami \"${BZR_WHOAMI}\"' &&\ |
4982 | - sudo su - jenkins -c 'bzr launchpad-login $LP_ID' &&\ |
4983 | - sudo su - jenkins -c 'bzr co --lightweight lp:charms/nfs /tmp/nfs${d_str}'" |
4984 | + echo "Copying SSH key files to ${unit}..." |
4985 | + juju ssh ${unit} "sudo mkdir -vp ${f_dst} && sudo mkdir -p ${f_tmp} &&\ |
4986 | + sudo echo '${lp_hk}' > /tmp/hk${d_str} &&\ |
4987 | + sudo cp -fv /tmp/hk${d_str} /root/.ssh/known_hosts &&\ |
4988 | + sudo mv -fv /tmp/hk${d_str} ${f_dst}/known_hosts" |
4989 | + |
4990 | + for srcs in $f_src; do |
4991 | + echo " $srcs --> ${unit}:${f_tmp}" |
4992 | + juju scp ${base_src}/${srcs} ${unit}:${f_tmp} |
4993 | + juju ssh ${unit} "sudo cp -fv ${f_tmp}/${srcs} ${f_dst}" |
4994 | + done |
4995 | + |
4996 | + juju ssh ${unit} "sudo chown -R jenkins:nogroup ${f_dst} &&\ |
4997 | + sudo chown -R ubuntu:nogroup ${f_tmp} &&\ |
4998 | + sudo chown -R jenkins:jenkins ${f_dst} &&\ |
4999 | + sudo chmod 0600 ${f_dst}/known_hosts &&\ |
5000 | + sudo su - jenkins -c 'bzr whoami \"${BZR_WHOAMI}\"' &&\ |
Lvvl>M +1