Retire repo
Depends-On: https://review.opendev.org/720892 Change-Id: I2f8797a9c4c9e2d20a3c64c57f6b4cb0ccdfcd6c
This commit is contained in:
parent
63126bdbb8
commit
9dac096667
5
.gitignore
vendored
5
.gitignore
vendored
@ -1,5 +0,0 @@
|
|||||||
Gemfile.lock
|
|
||||||
.bundled_gems/
|
|
||||||
log/
|
|
||||||
junit/
|
|
||||||
.vagrant/
|
|
15
Gemfile
15
Gemfile
@ -1,15 +0,0 @@
|
|||||||
source 'https://rubygems.org'
|
|
||||||
|
|
||||||
if File.exists?('/home/zuul/src/git.openstack.org/openstack-infra/puppet-openstack_infra_spec_helper')
|
|
||||||
gem_checkout_method = {:path => '/home/zuul/src/git.openstack.org/openstack-infra/puppet-openstack_infra_spec_helper'}
|
|
||||||
else
|
|
||||||
gem_checkout_method = {:git => 'https://git.openstack.org/openstack-infra/puppet-openstack_infra_spec_helper'}
|
|
||||||
end
|
|
||||||
gem_checkout_method[:require] = false
|
|
||||||
|
|
||||||
group :development, :test, :system_tests do
|
|
||||||
gem 'puppet-openstack_infra_spec_helper',
|
|
||||||
gem_checkout_method
|
|
||||||
end
|
|
||||||
|
|
||||||
# vim:ft=ruby
|
|
202
LICENSE
202
LICENSE
@ -1,202 +0,0 @@
|
|||||||
|
|
||||||
Apache License
|
|
||||||
Version 2.0, January 2004
|
|
||||||
http://www.apache.org/licenses/
|
|
||||||
|
|
||||||
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
|
||||||
|
|
||||||
1. Definitions.
|
|
||||||
|
|
||||||
"License" shall mean the terms and conditions for use, reproduction,
|
|
||||||
and distribution as defined by Sections 1 through 9 of this document.
|
|
||||||
|
|
||||||
"Licensor" shall mean the copyright owner or entity authorized by
|
|
||||||
the copyright owner that is granting the License.
|
|
||||||
|
|
||||||
"Legal Entity" shall mean the union of the acting entity and all
|
|
||||||
other entities that control, are controlled by, or are under common
|
|
||||||
control with that entity. For the purposes of this definition,
|
|
||||||
"control" means (i) the power, direct or indirect, to cause the
|
|
||||||
direction or management of such entity, whether by contract or
|
|
||||||
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
|
||||||
outstanding shares, or (iii) beneficial ownership of such entity.
|
|
||||||
|
|
||||||
"You" (or "Your") shall mean an individual or Legal Entity
|
|
||||||
exercising permissions granted by this License.
|
|
||||||
|
|
||||||
"Source" form shall mean the preferred form for making modifications,
|
|
||||||
including but not limited to software source code, documentation
|
|
||||||
source, and configuration files.
|
|
||||||
|
|
||||||
"Object" form shall mean any form resulting from mechanical
|
|
||||||
transformation or translation of a Source form, including but
|
|
||||||
not limited to compiled object code, generated documentation,
|
|
||||||
and conversions to other media types.
|
|
||||||
|
|
||||||
"Work" shall mean the work of authorship, whether in Source or
|
|
||||||
Object form, made available under the License, as indicated by a
|
|
||||||
copyright notice that is included in or attached to the work
|
|
||||||
(an example is provided in the Appendix below).
|
|
||||||
|
|
||||||
"Derivative Works" shall mean any work, whether in Source or Object
|
|
||||||
form, that is based on (or derived from) the Work and for which the
|
|
||||||
editorial revisions, annotations, elaborations, or other modifications
|
|
||||||
represent, as a whole, an original work of authorship. For the purposes
|
|
||||||
of this License, Derivative Works shall not include works that remain
|
|
||||||
separable from, or merely link (or bind by name) to the interfaces of,
|
|
||||||
the Work and Derivative Works thereof.
|
|
||||||
|
|
||||||
"Contribution" shall mean any work of authorship, including
|
|
||||||
the original version of the Work and any modifications or additions
|
|
||||||
to that Work or Derivative Works thereof, that is intentionally
|
|
||||||
submitted to Licensor for inclusion in the Work by the copyright owner
|
|
||||||
or by an individual or Legal Entity authorized to submit on behalf of
|
|
||||||
the copyright owner. For the purposes of this definition, "submitted"
|
|
||||||
means any form of electronic, verbal, or written communication sent
|
|
||||||
to the Licensor or its representatives, including but not limited to
|
|
||||||
communication on electronic mailing lists, source code control systems,
|
|
||||||
and issue tracking systems that are managed by, or on behalf of, the
|
|
||||||
Licensor for the purpose of discussing and improving the Work, but
|
|
||||||
excluding communication that is conspicuously marked or otherwise
|
|
||||||
designated in writing by the copyright owner as "Not a Contribution."
|
|
||||||
|
|
||||||
"Contributor" shall mean Licensor and any individual or Legal Entity
|
|
||||||
on behalf of whom a Contribution has been received by Licensor and
|
|
||||||
subsequently incorporated within the Work.
|
|
||||||
|
|
||||||
2. Grant of Copyright License. Subject to the terms and conditions of
|
|
||||||
this License, each Contributor hereby grants to You a perpetual,
|
|
||||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
|
||||||
copyright license to reproduce, prepare Derivative Works of,
|
|
||||||
publicly display, publicly perform, sublicense, and distribute the
|
|
||||||
Work and such Derivative Works in Source or Object form.
|
|
||||||
|
|
||||||
3. Grant of Patent License. Subject to the terms and conditions of
|
|
||||||
this License, each Contributor hereby grants to You a perpetual,
|
|
||||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
|
||||||
(except as stated in this section) patent license to make, have made,
|
|
||||||
use, offer to sell, sell, import, and otherwise transfer the Work,
|
|
||||||
where such license applies only to those patent claims licensable
|
|
||||||
by such Contributor that are necessarily infringed by their
|
|
||||||
Contribution(s) alone or by combination of their Contribution(s)
|
|
||||||
with the Work to which such Contribution(s) was submitted. If You
|
|
||||||
institute patent litigation against any entity (including a
|
|
||||||
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
|
||||||
or a Contribution incorporated within the Work constitutes direct
|
|
||||||
or contributory patent infringement, then any patent licenses
|
|
||||||
granted to You under this License for that Work shall terminate
|
|
||||||
as of the date such litigation is filed.
|
|
||||||
|
|
||||||
4. Redistribution. You may reproduce and distribute copies of the
|
|
||||||
Work or Derivative Works thereof in any medium, with or without
|
|
||||||
modifications, and in Source or Object form, provided that You
|
|
||||||
meet the following conditions:
|
|
||||||
|
|
||||||
(a) You must give any other recipients of the Work or
|
|
||||||
Derivative Works a copy of this License; and
|
|
||||||
|
|
||||||
(b) You must cause any modified files to carry prominent notices
|
|
||||||
stating that You changed the files; and
|
|
||||||
|
|
||||||
(c) You must retain, in the Source form of any Derivative Works
|
|
||||||
that You distribute, all copyright, patent, trademark, and
|
|
||||||
attribution notices from the Source form of the Work,
|
|
||||||
excluding those notices that do not pertain to any part of
|
|
||||||
the Derivative Works; and
|
|
||||||
|
|
||||||
(d) If the Work includes a "NOTICE" text file as part of its
|
|
||||||
distribution, then any Derivative Works that You distribute must
|
|
||||||
include a readable copy of the attribution notices contained
|
|
||||||
within such NOTICE file, excluding those notices that do not
|
|
||||||
pertain to any part of the Derivative Works, in at least one
|
|
||||||
of the following places: within a NOTICE text file distributed
|
|
||||||
as part of the Derivative Works; within the Source form or
|
|
||||||
documentation, if provided along with the Derivative Works; or,
|
|
||||||
within a display generated by the Derivative Works, if and
|
|
||||||
wherever such third-party notices normally appear. The contents
|
|
||||||
of the NOTICE file are for informational purposes only and
|
|
||||||
do not modify the License. You may add Your own attribution
|
|
||||||
notices within Derivative Works that You distribute, alongside
|
|
||||||
or as an addendum to the NOTICE text from the Work, provided
|
|
||||||
that such additional attribution notices cannot be construed
|
|
||||||
as modifying the License.
|
|
||||||
|
|
||||||
You may add Your own copyright statement to Your modifications and
|
|
||||||
may provide additional or different license terms and conditions
|
|
||||||
for use, reproduction, or distribution of Your modifications, or
|
|
||||||
for any such Derivative Works as a whole, provided Your use,
|
|
||||||
reproduction, and distribution of the Work otherwise complies with
|
|
||||||
the conditions stated in this License.
|
|
||||||
|
|
||||||
5. Submission of Contributions. Unless You explicitly state otherwise,
|
|
||||||
any Contribution intentionally submitted for inclusion in the Work
|
|
||||||
by You to the Licensor shall be under the terms and conditions of
|
|
||||||
this License, without any additional terms or conditions.
|
|
||||||
Notwithstanding the above, nothing herein shall supersede or modify
|
|
||||||
the terms of any separate license agreement you may have executed
|
|
||||||
with Licensor regarding such Contributions.
|
|
||||||
|
|
||||||
6. Trademarks. This License does not grant permission to use the trade
|
|
||||||
names, trademarks, service marks, or product names of the Licensor,
|
|
||||||
except as required for reasonable and customary use in describing the
|
|
||||||
origin of the Work and reproducing the content of the NOTICE file.
|
|
||||||
|
|
||||||
7. Disclaimer of Warranty. Unless required by applicable law or
|
|
||||||
agreed to in writing, Licensor provides the Work (and each
|
|
||||||
Contributor provides its Contributions) on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
|
||||||
implied, including, without limitation, any warranties or conditions
|
|
||||||
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
|
||||||
PARTICULAR PURPOSE. You are solely responsible for determining the
|
|
||||||
appropriateness of using or redistributing the Work and assume any
|
|
||||||
risks associated with Your exercise of permissions under this License.
|
|
||||||
|
|
||||||
8. Limitation of Liability. In no event and under no legal theory,
|
|
||||||
whether in tort (including negligence), contract, or otherwise,
|
|
||||||
unless required by applicable law (such as deliberate and grossly
|
|
||||||
negligent acts) or agreed to in writing, shall any Contributor be
|
|
||||||
liable to You for damages, including any direct, indirect, special,
|
|
||||||
incidental, or consequential damages of any character arising as a
|
|
||||||
result of this License or out of the use or inability to use the
|
|
||||||
Work (including but not limited to damages for loss of goodwill,
|
|
||||||
work stoppage, computer failure or malfunction, or any and all
|
|
||||||
other commercial damages or losses), even if such Contributor
|
|
||||||
has been advised of the possibility of such damages.
|
|
||||||
|
|
||||||
9. Accepting Warranty or Additional Liability. While redistributing
|
|
||||||
the Work or Derivative Works thereof, You may choose to offer,
|
|
||||||
and charge a fee for, acceptance of support, warranty, indemnity,
|
|
||||||
or other liability obligations and/or rights consistent with this
|
|
||||||
License. However, in accepting such obligations, You may act only
|
|
||||||
on Your own behalf and on Your sole responsibility, not on behalf
|
|
||||||
of any other Contributor, and only if You agree to indemnify,
|
|
||||||
defend, and hold each Contributor harmless for any liability
|
|
||||||
incurred by, or claims asserted against, such Contributor by reason
|
|
||||||
of your accepting any such warranty or additional liability.
|
|
||||||
|
|
||||||
END OF TERMS AND CONDITIONS
|
|
||||||
|
|
||||||
APPENDIX: How to apply the Apache License to your work.
|
|
||||||
|
|
||||||
To apply the Apache License to your work, attach the following
|
|
||||||
boilerplate notice, with the fields enclosed by brackets "[]"
|
|
||||||
replaced with your own identifying information. (Don't include
|
|
||||||
the brackets!) The text should be enclosed in the appropriate
|
|
||||||
comment syntax for the file format. We also recommend that a
|
|
||||||
file or class name and description of purpose be included on the
|
|
||||||
same "printed page" as the copyright notice for easier
|
|
||||||
identification within third-party archives.
|
|
||||||
|
|
||||||
Copyright [yyyy] [name of copyright owner]
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
7
README.rst
Normal file
7
README.rst
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
|
||||||
|
This Repo is Retired
|
||||||
|
====================
|
||||||
|
|
||||||
|
It is no longer maintained. If you are still using it,
|
||||||
|
you should pin your use to the commit before this one
|
||||||
|
and then start working on moving off of it.
|
8
Rakefile
8
Rakefile
@ -1,8 +0,0 @@
|
|||||||
require 'rubygems'
|
|
||||||
require 'puppetlabs_spec_helper/rake_tasks'
|
|
||||||
require 'puppet-lint/tasks/puppet-lint'
|
|
||||||
PuppetLint.configuration.fail_on_warnings = true
|
|
||||||
PuppetLint.configuration.send('disable_80chars')
|
|
||||||
PuppetLint.configuration.send('disable_autoloader_layout')
|
|
||||||
PuppetLint.configuration.send('disable_class_inherits_from_params_class')
|
|
||||||
PuppetLint.configuration.send('disable_class_parameter_defaults')
|
|
@ -1,49 +0,0 @@
|
|||||||
[loggers]
|
|
||||||
keys=root,zuul,gerrit,gear
|
|
||||||
|
|
||||||
[handlers]
|
|
||||||
keys=console,debug,normal
|
|
||||||
|
|
||||||
[formatters]
|
|
||||||
keys=simple
|
|
||||||
|
|
||||||
[logger_root]
|
|
||||||
level=WARNING
|
|
||||||
handlers=console
|
|
||||||
|
|
||||||
[logger_zuul]
|
|
||||||
level=DEBUG
|
|
||||||
handlers=debug,normal
|
|
||||||
qualname=zuul
|
|
||||||
|
|
||||||
[logger_gerrit]
|
|
||||||
level=INFO
|
|
||||||
handlers=debug,normal
|
|
||||||
qualname=gerrit
|
|
||||||
|
|
||||||
[logger_gear]
|
|
||||||
level=WARNING
|
|
||||||
handlers=debug,normal
|
|
||||||
qualname=gear
|
|
||||||
|
|
||||||
[handler_console]
|
|
||||||
level=WARNING
|
|
||||||
class=StreamHandler
|
|
||||||
formatter=simple
|
|
||||||
args=(sys.stdout,)
|
|
||||||
|
|
||||||
[handler_debug]
|
|
||||||
level=DEBUG
|
|
||||||
class=logging.handlers.WatchedFileHandler
|
|
||||||
formatter=simple
|
|
||||||
args=('/var/log/zuul/executor-debug.log',)
|
|
||||||
|
|
||||||
[handler_normal]
|
|
||||||
level=INFO
|
|
||||||
class=logging.handlers.WatchedFileHandler
|
|
||||||
formatter=simple
|
|
||||||
args=('/var/log/zuul/executor.log',)
|
|
||||||
|
|
||||||
[formatter_simple]
|
|
||||||
format=%(asctime)s %(levelname)s %(name)s: %(message)s
|
|
||||||
datefmt=
|
|
@ -1,49 +0,0 @@
|
|||||||
[loggers]
|
|
||||||
keys=root,zuul,gerrit,gear
|
|
||||||
|
|
||||||
[handlers]
|
|
||||||
keys=console,debug,normal
|
|
||||||
|
|
||||||
[formatters]
|
|
||||||
keys=simple
|
|
||||||
|
|
||||||
[logger_root]
|
|
||||||
level=WARNING
|
|
||||||
handlers=console
|
|
||||||
|
|
||||||
[logger_zuul]
|
|
||||||
level=DEBUG
|
|
||||||
handlers=debug,normal
|
|
||||||
qualname=zuul
|
|
||||||
|
|
||||||
[logger_gerrit]
|
|
||||||
level=INFO
|
|
||||||
handlers=debug,normal
|
|
||||||
qualname=gerrit
|
|
||||||
|
|
||||||
[logger_gear]
|
|
||||||
level=WARNING
|
|
||||||
handlers=debug,normal
|
|
||||||
qualname=gear
|
|
||||||
|
|
||||||
[handler_console]
|
|
||||||
level=WARNING
|
|
||||||
class=StreamHandler
|
|
||||||
formatter=simple
|
|
||||||
args=(sys.stdout,)
|
|
||||||
|
|
||||||
[handler_debug]
|
|
||||||
level=DEBUG
|
|
||||||
class=logging.handlers.WatchedFileHandler
|
|
||||||
formatter=simple
|
|
||||||
args=('/var/log/zuul/fingergw-debug.log',)
|
|
||||||
|
|
||||||
[handler_normal]
|
|
||||||
level=INFO
|
|
||||||
class=logging.handlers.WatchedFileHandler
|
|
||||||
formatter=simple
|
|
||||||
args=('/var/log/zuul/fingergw.log',)
|
|
||||||
|
|
||||||
[formatter_simple]
|
|
||||||
format=%(asctime)s %(levelname)s %(name)s: %(message)s
|
|
||||||
datefmt=
|
|
@ -1,33 +0,0 @@
|
|||||||
[loggers]
|
|
||||||
keys=root,gear
|
|
||||||
|
|
||||||
[handlers]
|
|
||||||
keys=console,normal
|
|
||||||
|
|
||||||
[formatters]
|
|
||||||
keys=simple
|
|
||||||
|
|
||||||
[logger_root]
|
|
||||||
level=WARNING
|
|
||||||
handlers=console
|
|
||||||
|
|
||||||
[logger_gear]
|
|
||||||
level=DEBUG
|
|
||||||
handlers=normal
|
|
||||||
qualname=gear
|
|
||||||
|
|
||||||
[handler_console]
|
|
||||||
level=WARNING
|
|
||||||
class=StreamHandler
|
|
||||||
formatter=simple
|
|
||||||
args=(sys.stdout,)
|
|
||||||
|
|
||||||
[handler_normal]
|
|
||||||
level=WARNING
|
|
||||||
class=logging.handlers.WatchedFileHandler
|
|
||||||
formatter=simple
|
|
||||||
args=('/var/log/zuul/gearman-server.log',)
|
|
||||||
|
|
||||||
[formatter_simple]
|
|
||||||
format=%(asctime)s %(levelname)s %(name)s: %(message)s
|
|
||||||
datefmt=
|
|
@ -1,49 +0,0 @@
|
|||||||
[loggers]
|
|
||||||
keys=root,zuul,gerrit,gear
|
|
||||||
|
|
||||||
[handlers]
|
|
||||||
keys=console,debug,normal
|
|
||||||
|
|
||||||
[formatters]
|
|
||||||
keys=simple
|
|
||||||
|
|
||||||
[logger_root]
|
|
||||||
level=WARNING
|
|
||||||
handlers=console
|
|
||||||
|
|
||||||
[logger_zuul]
|
|
||||||
level=DEBUG
|
|
||||||
handlers=debug,normal
|
|
||||||
qualname=zuul
|
|
||||||
|
|
||||||
[logger_gerrit]
|
|
||||||
level=INFO
|
|
||||||
handlers=debug,normal
|
|
||||||
qualname=gerrit
|
|
||||||
|
|
||||||
[logger_gear]
|
|
||||||
level=WARNING
|
|
||||||
handlers=debug,normal
|
|
||||||
qualname=gear
|
|
||||||
|
|
||||||
[handler_console]
|
|
||||||
level=WARNING
|
|
||||||
class=StreamHandler
|
|
||||||
formatter=simple
|
|
||||||
args=(sys.stdout,)
|
|
||||||
|
|
||||||
[handler_debug]
|
|
||||||
level=DEBUG
|
|
||||||
class=logging.handlers.WatchedFileHandler
|
|
||||||
formatter=simple
|
|
||||||
args=('/var/log/zuul/launcher-debug.log',)
|
|
||||||
|
|
||||||
[handler_normal]
|
|
||||||
level=INFO
|
|
||||||
class=logging.handlers.WatchedFileHandler
|
|
||||||
formatter=simple
|
|
||||||
args=('/var/log/zuul/launcher.log',)
|
|
||||||
|
|
||||||
[formatter_simple]
|
|
||||||
format=%(asctime)s %(levelname)s %(name)s: %(message)s
|
|
||||||
datefmt=
|
|
@ -1,64 +0,0 @@
|
|||||||
[loggers]
|
|
||||||
keys=root,zuul,gerrit,gerrit_io,gear,kazoo,github_io
|
|
||||||
|
|
||||||
[handlers]
|
|
||||||
keys=console,debug,normal
|
|
||||||
|
|
||||||
[formatters]
|
|
||||||
keys=simple
|
|
||||||
|
|
||||||
[logger_root]
|
|
||||||
level=WARNING
|
|
||||||
handlers=console
|
|
||||||
|
|
||||||
[logger_zuul]
|
|
||||||
level=DEBUG
|
|
||||||
handlers=debug,normal
|
|
||||||
qualname=zuul
|
|
||||||
|
|
||||||
[logger_gerrit]
|
|
||||||
level=INFO
|
|
||||||
handlers=debug,normal
|
|
||||||
qualname=gerrit
|
|
||||||
|
|
||||||
[logger_gerrit_io]
|
|
||||||
level=INFO
|
|
||||||
handlers=debug,normal
|
|
||||||
qualname=zuul.GerritConnection.io
|
|
||||||
|
|
||||||
[logger_gear]
|
|
||||||
level=WARNING
|
|
||||||
handlers=debug,normal
|
|
||||||
qualname=gear
|
|
||||||
|
|
||||||
[logger_kazoo]
|
|
||||||
level=INFO
|
|
||||||
handlers=debug,normal
|
|
||||||
qualname=kazoo
|
|
||||||
|
|
||||||
[logger_github_io]
|
|
||||||
level=DEBUG
|
|
||||||
handlers=debug,normal
|
|
||||||
qualname=github3
|
|
||||||
|
|
||||||
[handler_console]
|
|
||||||
level=WARNING
|
|
||||||
class=StreamHandler
|
|
||||||
formatter=simple
|
|
||||||
args=(sys.stdout,)
|
|
||||||
|
|
||||||
[handler_debug]
|
|
||||||
level=DEBUG
|
|
||||||
class=logging.handlers.WatchedFileHandler
|
|
||||||
formatter=simple
|
|
||||||
args=('/var/log/zuul/debug.log',)
|
|
||||||
|
|
||||||
[handler_normal]
|
|
||||||
level=INFO
|
|
||||||
class=logging.handlers.WatchedFileHandler
|
|
||||||
formatter=simple
|
|
||||||
args=('/var/log/zuul/zuul.log',)
|
|
||||||
|
|
||||||
[formatter_simple]
|
|
||||||
format=%(asctime)s %(levelname)s %(name)s: %(message)s
|
|
||||||
datefmt=
|
|
@ -1,49 +0,0 @@
|
|||||||
[loggers]
|
|
||||||
keys=root,zuul,gerrit,gear
|
|
||||||
|
|
||||||
[handlers]
|
|
||||||
keys=console,debug,normal
|
|
||||||
|
|
||||||
[formatters]
|
|
||||||
keys=simple
|
|
||||||
|
|
||||||
[logger_root]
|
|
||||||
level=WARNING
|
|
||||||
handlers=console
|
|
||||||
|
|
||||||
[logger_zuul]
|
|
||||||
level=DEBUG
|
|
||||||
handlers=debug,normal
|
|
||||||
qualname=zuul
|
|
||||||
|
|
||||||
[logger_gerrit]
|
|
||||||
level=INFO
|
|
||||||
handlers=debug,normal
|
|
||||||
qualname=gerrit
|
|
||||||
|
|
||||||
[logger_gear]
|
|
||||||
level=WARNING
|
|
||||||
handlers=debug,normal
|
|
||||||
qualname=gear
|
|
||||||
|
|
||||||
[handler_console]
|
|
||||||
level=WARNING
|
|
||||||
class=StreamHandler
|
|
||||||
formatter=simple
|
|
||||||
args=(sys.stdout,)
|
|
||||||
|
|
||||||
[handler_debug]
|
|
||||||
level=DEBUG
|
|
||||||
class=logging.handlers.WatchedFileHandler
|
|
||||||
formatter=simple
|
|
||||||
args=('/var/log/zuul/merger-debug.log',)
|
|
||||||
|
|
||||||
[handler_normal]
|
|
||||||
level=INFO
|
|
||||||
class=logging.handlers.WatchedFileHandler
|
|
||||||
formatter=simple
|
|
||||||
args=('/var/log/zuul/merger.log',)
|
|
||||||
|
|
||||||
[formatter_simple]
|
|
||||||
format=%(asctime)s %(levelname)s %(name)s: %(message)s
|
|
||||||
datefmt=
|
|
@ -1,54 +0,0 @@
|
|||||||
[loggers]
|
|
||||||
keys=root,zuul,gerrit,gear,cherrypy
|
|
||||||
|
|
||||||
[handlers]
|
|
||||||
keys=console,debug,normal
|
|
||||||
|
|
||||||
[formatters]
|
|
||||||
keys=simple
|
|
||||||
|
|
||||||
[logger_root]
|
|
||||||
level=WARNING
|
|
||||||
handlers=console
|
|
||||||
|
|
||||||
[logger_zuul]
|
|
||||||
level=DEBUG
|
|
||||||
handlers=debug,normal
|
|
||||||
qualname=zuul
|
|
||||||
|
|
||||||
[logger_gerrit]
|
|
||||||
level=INFO
|
|
||||||
handlers=debug,normal
|
|
||||||
qualname=gerrit
|
|
||||||
|
|
||||||
[logger_cherrypy]
|
|
||||||
level=WARN
|
|
||||||
handlers=debug,normal
|
|
||||||
qualname=cherrypy
|
|
||||||
|
|
||||||
[logger_gear]
|
|
||||||
level=WARNING
|
|
||||||
handlers=debug,normal
|
|
||||||
qualname=gear
|
|
||||||
|
|
||||||
[handler_console]
|
|
||||||
level=WARNING
|
|
||||||
class=StreamHandler
|
|
||||||
formatter=simple
|
|
||||||
args=(sys.stdout,)
|
|
||||||
|
|
||||||
[handler_debug]
|
|
||||||
level=DEBUG
|
|
||||||
class=logging.handlers.WatchedFileHandler
|
|
||||||
formatter=simple
|
|
||||||
args=('/var/log/zuul/web-debug.log',)
|
|
||||||
|
|
||||||
[handler_normal]
|
|
||||||
level=INFO
|
|
||||||
class=logging.handlers.WatchedFileHandler
|
|
||||||
formatter=simple
|
|
||||||
args=('/var/log/zuul/web.log',)
|
|
||||||
|
|
||||||
[formatter_simple]
|
|
||||||
format=%(asctime)s %(levelname)s %(name)s: %(message)s
|
|
||||||
datefmt=
|
|
@ -1,122 +0,0 @@
|
|||||||
#! /bin/sh
|
|
||||||
### BEGIN INIT INFO
|
|
||||||
# Provides: zuul-executor
|
|
||||||
# Required-Start: $remote_fs $syslog
|
|
||||||
# Required-Stop: $remote_fs $syslog
|
|
||||||
# Default-Start: 2 3 4 5
|
|
||||||
# Default-Stop: 0 1 6
|
|
||||||
# Short-Description: Zuul
|
|
||||||
# Description: Zuul Executor
|
|
||||||
### END INIT INFO
|
|
||||||
|
|
||||||
# Do NOT "set -e"
|
|
||||||
|
|
||||||
# PATH should only include /usr/* if it runs after the mountnfs.sh script
|
|
||||||
PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/local/bin
|
|
||||||
DESC="Zuul Executor"
|
|
||||||
NAME=zuul-executor
|
|
||||||
DAEMON=/usr/local/bin/zuul-executor
|
|
||||||
PIDFILE=/var/run/$NAME/$NAME.pid
|
|
||||||
SCRIPTNAME=/etc/init.d/$NAME
|
|
||||||
USER=zuul
|
|
||||||
|
|
||||||
# Exit if the package is not installed
|
|
||||||
[ -x "$DAEMON" ] || exit 0
|
|
||||||
|
|
||||||
# Read configuration variable file if it is present
|
|
||||||
[ -r /etc/default/$NAME ] && . /etc/default/$NAME
|
|
||||||
|
|
||||||
# Load the VERBOSE setting and other rcS variables
|
|
||||||
. /lib/init/vars.sh
|
|
||||||
|
|
||||||
# Define LSB log_* functions.
|
|
||||||
# Depend on lsb-base (>= 3.0-6) to ensure that this file is present.
|
|
||||||
. /lib/lsb/init-functions
|
|
||||||
|
|
||||||
PIDFILE_DIR=$(dirname $PIDFILE)
|
|
||||||
|
|
||||||
#
|
|
||||||
# Function that starts the daemon/service
|
|
||||||
#
|
|
||||||
do_start()
|
|
||||||
{
|
|
||||||
# Return
|
|
||||||
# 0 if daemon has been started
|
|
||||||
# 1 if daemon was already running
|
|
||||||
# 2 if daemon could not be started
|
|
||||||
# 3 if pid file already exist
|
|
||||||
|
|
||||||
if [ ! -d "$PIDFILE_DIR" ] ; then
|
|
||||||
mkdir -p $PIDFILE_DIR
|
|
||||||
chown $USER $PIDFILE_DIR
|
|
||||||
fi
|
|
||||||
ulimit -n 8192
|
|
||||||
ulimit -c unlimited
|
|
||||||
if [ -f $PIDFILE ]; then
|
|
||||||
return 3
|
|
||||||
fi
|
|
||||||
start-stop-daemon \
|
|
||||||
--start --quiet --pidfile $PIDFILE -c $USER \
|
|
||||||
--exec $DAEMON --test > /dev/null || return 1
|
|
||||||
start-stop-daemon \
|
|
||||||
--start --quiet --pidfile $PIDFILE -c $USER \
|
|
||||||
--exec $DAEMON -- $DAEMON_ARGS || return 2
|
|
||||||
# Add code here, if necessary, that waits for the process to be ready
|
|
||||||
# to handle requests from services started subsequently which depend
|
|
||||||
# on this one. As a last resort, sleep for some time.
|
|
||||||
}
|
|
||||||
|
|
||||||
#
|
|
||||||
# Function that stops the daemon/service
|
|
||||||
#
|
|
||||||
do_stop()
|
|
||||||
{
|
|
||||||
$DAEMON stop
|
|
||||||
return 0
|
|
||||||
}
|
|
||||||
|
|
||||||
#
|
|
||||||
# Function that sends a SIGHUP to the daemon/service
|
|
||||||
#
|
|
||||||
do_reload() {
|
|
||||||
$DAEMON reconfigure
|
|
||||||
return 0
|
|
||||||
}
|
|
||||||
|
|
||||||
case "$1" in
|
|
||||||
start)
|
|
||||||
[ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"
|
|
||||||
do_start
|
|
||||||
case "$?" in
|
|
||||||
0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
|
|
||||||
2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
|
|
||||||
3) echo "Pidfile at $PIDFILE already exists, run service zuul-executor stop to clean up."
|
|
||||||
esac
|
|
||||||
;;
|
|
||||||
stop)
|
|
||||||
[ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
|
|
||||||
do_stop
|
|
||||||
case "$?" in
|
|
||||||
0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
|
|
||||||
2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
|
|
||||||
esac
|
|
||||||
;;
|
|
||||||
status)
|
|
||||||
status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $?
|
|
||||||
;;
|
|
||||||
reload|force-reload)
|
|
||||||
#
|
|
||||||
# If do_reload() is not implemented then leave this commented out
|
|
||||||
# and leave 'force-reload' as an alias for 'restart'.
|
|
||||||
#
|
|
||||||
log_daemon_msg "Reloading $DESC" "$NAME"
|
|
||||||
do_reload
|
|
||||||
log_end_msg $?
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
echo "Usage: $SCRIPTNAME {start|stop|status|force-reload}" >&2
|
|
||||||
exit 3
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
:
|
|
@ -1,137 +0,0 @@
|
|||||||
#! /bin/sh
|
|
||||||
### BEGIN INIT INFO
|
|
||||||
# Provides: zuul-fingergw
|
|
||||||
# Required-Start: $remote_fs $syslog
|
|
||||||
# Required-Stop: $remote_fs $syslog
|
|
||||||
# Default-Start: 2 3 4 5
|
|
||||||
# Default-Stop: 0 1 6
|
|
||||||
# Short-Description: Zuul
|
|
||||||
# Description: Zuul Executor
|
|
||||||
### END INIT INFO
|
|
||||||
|
|
||||||
# Do NOT "set -e"
|
|
||||||
|
|
||||||
# PATH should only include /usr/* if it runs after the mountnfs.sh script
|
|
||||||
PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/local/bin
|
|
||||||
DESC="Zuul Fingergw"
|
|
||||||
NAME=zuul-fingergw
|
|
||||||
DAEMON=/usr/local/bin/zuul-fingergw
|
|
||||||
PIDFILE=/var/run/$NAME/$NAME.pid
|
|
||||||
SCRIPTNAME=/etc/init.d/$NAME
|
|
||||||
USER=root
|
|
||||||
|
|
||||||
# Exit if the package is not installed
|
|
||||||
[ -x "$DAEMON" ] || exit 0
|
|
||||||
|
|
||||||
# Read configuration variable file if it is present
|
|
||||||
[ -r /etc/default/$NAME ] && . /etc/default/$NAME
|
|
||||||
|
|
||||||
# Load the VERBOSE setting and other rcS variables
|
|
||||||
. /lib/init/vars.sh
|
|
||||||
|
|
||||||
# Define LSB log_* functions.
|
|
||||||
# Depend on lsb-base (>= 3.0-6) to ensure that this file is present.
|
|
||||||
. /lib/lsb/init-functions
|
|
||||||
|
|
||||||
PIDFILE_DIR=$(dirname $PIDFILE)
|
|
||||||
|
|
||||||
#
|
|
||||||
# Function that starts the daemon/service
|
|
||||||
#
|
|
||||||
do_start()
|
|
||||||
{
|
|
||||||
# Return
|
|
||||||
# 0 if daemon has been started
|
|
||||||
# 1 if daemon was already running
|
|
||||||
# 2 if daemon could not be started
|
|
||||||
# 3 if pid file already exist
|
|
||||||
|
|
||||||
if [ ! -d "$PIDFILE_DIR" ] ; then
|
|
||||||
mkdir -p $PIDFILE_DIR
|
|
||||||
chown $USER $PIDFILE_DIR
|
|
||||||
fi
|
|
||||||
ulimit -n 8192
|
|
||||||
if [ -f $PIDFILE ]; then
|
|
||||||
return 3
|
|
||||||
fi
|
|
||||||
start-stop-daemon \
|
|
||||||
--start --quiet --pidfile $PIDFILE -c $USER \
|
|
||||||
--exec $DAEMON --test > /dev/null || return 1
|
|
||||||
start-stop-daemon \
|
|
||||||
--start --quiet --pidfile $PIDFILE -c $USER \
|
|
||||||
--exec $DAEMON -- $DAEMON_ARGS || return 2
|
|
||||||
# Add code here, if necessary, that waits for the process to be ready
|
|
||||||
# to handle requests from services started subsequently which depend
|
|
||||||
# on this one. As a last resort, sleep for some time.
|
|
||||||
}
|
|
||||||
|
|
||||||
#
|
|
||||||
# Function that stops the daemon/service
|
|
||||||
#
|
|
||||||
do_stop()
|
|
||||||
{
|
|
||||||
$DAEMON stop
|
|
||||||
return 0
|
|
||||||
}
|
|
||||||
|
|
||||||
#
|
|
||||||
# Function that sends a SIGHUP to the daemon/service
|
|
||||||
#
|
|
||||||
do_reload() {
|
|
||||||
#
|
|
||||||
# If the daemon can reload its configuration without
|
|
||||||
# restarting (for example, when it is sent a SIGHUP),
|
|
||||||
# then implement that here.
|
|
||||||
#
|
|
||||||
start-stop-daemon \
|
|
||||||
--stop --signal 1 --quiet --pidfile $PIDFILE --name $NAME
|
|
||||||
return 0
|
|
||||||
}
|
|
||||||
|
|
||||||
case "$1" in
|
|
||||||
start)
|
|
||||||
[ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"
|
|
||||||
do_start
|
|
||||||
case "$?" in
|
|
||||||
0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
|
|
||||||
2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
|
|
||||||
3) echo "Pidfile at $PIDFILE already exists, run service zuul-fingergw stop to clean up."
|
|
||||||
esac
|
|
||||||
;;
|
|
||||||
stop)
|
|
||||||
[ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
|
|
||||||
do_stop
|
|
||||||
case "$?" in
|
|
||||||
0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
|
|
||||||
2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
|
|
||||||
esac
|
|
||||||
;;
|
|
||||||
status)
|
|
||||||
status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $?
|
|
||||||
;;
|
|
||||||
reload|force-reload)
|
|
||||||
#
|
|
||||||
# If do_reload() is not implemented then leave this commented out
|
|
||||||
# and leave 'force-reload' as an alias for 'restart'.
|
|
||||||
#
|
|
||||||
log_daemon_msg "Reloading $DESC" "$NAME"
|
|
||||||
do_reload
|
|
||||||
log_end_msg $?
|
|
||||||
;;
|
|
||||||
restart)
|
|
||||||
#
|
|
||||||
# If the "reload" option is implemented then remove the
|
|
||||||
# 'force-reload' alias
|
|
||||||
#
|
|
||||||
log_daemon_msg "Restarting $DESC" "$NAME"
|
|
||||||
do_stop
|
|
||||||
do_start
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
#echo "Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload}" >&2
|
|
||||||
echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2
|
|
||||||
exit 3
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
:
|
|
@ -1,131 +0,0 @@
|
|||||||
#! /bin/sh
|
|
||||||
### BEGIN INIT INFO
|
|
||||||
# Provides: zuul-launcher
|
|
||||||
# Required-Start: $remote_fs $syslog
|
|
||||||
# Required-Stop: $remote_fs $syslog
|
|
||||||
# Default-Start: 2 3 4 5
|
|
||||||
# Default-Stop: 0 1 6
|
|
||||||
# Short-Description: Zuul
|
|
||||||
# Description: Trunk gating system launcher
|
|
||||||
### END INIT INFO
|
|
||||||
|
|
||||||
# Do NOT "set -e"
|
|
||||||
|
|
||||||
# PATH should only include /usr/* if it runs after the mountnfs.sh script
|
|
||||||
PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/local/bin
|
|
||||||
DESC="Zuul Launcher"
|
|
||||||
NAME=zuul-launcher
|
|
||||||
DAEMON=/usr/local/bin/zuul-launcher
|
|
||||||
PIDFILE=/var/run/$NAME/$NAME.pid
|
|
||||||
SCRIPTNAME=/etc/init.d/$NAME
|
|
||||||
USER=zuul
|
|
||||||
|
|
||||||
# Exit if the package is not installed
|
|
||||||
[ -x "$DAEMON" ] || exit 0
|
|
||||||
|
|
||||||
# Read configuration variable file if it is present
|
|
||||||
[ -r /etc/default/$NAME ] && . /etc/default/$NAME
|
|
||||||
|
|
||||||
# Load the VERBOSE setting and other rcS variables
|
|
||||||
. /lib/init/vars.sh
|
|
||||||
|
|
||||||
# Define LSB log_* functions.
|
|
||||||
# Depend on lsb-base (>= 3.0-6) to ensure that this file is present.
|
|
||||||
. /lib/lsb/init-functions
|
|
||||||
|
|
||||||
PIDFILE_DIR=$(dirname $PIDFILE)
|
|
||||||
|
|
||||||
#
|
|
||||||
# Function that starts the daemon/service
|
|
||||||
#
|
|
||||||
do_start()
|
|
||||||
{
|
|
||||||
# Return
|
|
||||||
# 0 if daemon has been started
|
|
||||||
# 1 if daemon was already running
|
|
||||||
# 2 if daemon could not be started
|
|
||||||
# 3 if pid file already exist
|
|
||||||
|
|
||||||
if [ ! -d "$PIDFILE_DIR" ] ; then
|
|
||||||
mkdir -p $PIDFILE_DIR
|
|
||||||
chown $USER $PIDFILE_DIR
|
|
||||||
fi
|
|
||||||
ulimit -n 8192
|
|
||||||
if [ -f $PIDFILE ]; then
|
|
||||||
return 3
|
|
||||||
fi
|
|
||||||
start-stop-daemon \
|
|
||||||
--start --quiet --pidfile $PIDFILE -c $USER \
|
|
||||||
--exec $DAEMON --test > /dev/null || return 1
|
|
||||||
start-stop-daemon \
|
|
||||||
--start --quiet --pidfile $PIDFILE -c $USER \
|
|
||||||
--exec $DAEMON -- $DAEMON_ARGS || return 2
|
|
||||||
# Add code here, if necessary, that waits for the process to be ready
|
|
||||||
# to handle requests from services started subsequently which depend
|
|
||||||
# on this one. As a last resort, sleep for some time.
|
|
||||||
}
|
|
||||||
|
|
||||||
#
|
|
||||||
# Function that stops the daemon/service
|
|
||||||
#
|
|
||||||
do_stop()
|
|
||||||
{
|
|
||||||
$DAEMON stop
|
|
||||||
return 0
|
|
||||||
}
|
|
||||||
|
|
||||||
#
|
|
||||||
# Function that sends a SIGHUP to the daemon/service
|
|
||||||
#
|
|
||||||
do_reload() {
|
|
||||||
$DAEMON reconfigure
|
|
||||||
return 0
|
|
||||||
}
|
|
||||||
|
|
||||||
case "$1" in
|
|
||||||
start)
|
|
||||||
[ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"
|
|
||||||
do_start
|
|
||||||
case "$?" in
|
|
||||||
0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
|
|
||||||
2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
|
|
||||||
3) echo "Pidfile at $PIDFILE already exists, run service zuul-launcher stop to clean up."
|
|
||||||
esac
|
|
||||||
;;
|
|
||||||
stop)
|
|
||||||
[ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
|
|
||||||
do_stop
|
|
||||||
case "$?" in
|
|
||||||
0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
|
|
||||||
2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
|
|
||||||
esac
|
|
||||||
;;
|
|
||||||
status)
|
|
||||||
status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $?
|
|
||||||
;;
|
|
||||||
reload|force-reload)
|
|
||||||
#
|
|
||||||
# If do_reload() is not implemented then leave this commented out
|
|
||||||
# and leave 'force-reload' as an alias for 'restart'.
|
|
||||||
#
|
|
||||||
log_daemon_msg "Reloading $DESC" "$NAME"
|
|
||||||
do_reload
|
|
||||||
log_end_msg $?
|
|
||||||
;;
|
|
||||||
restart)
|
|
||||||
#
|
|
||||||
# If the "reload" option is implemented then remove the
|
|
||||||
# 'force-reload' alias
|
|
||||||
#
|
|
||||||
log_daemon_msg "Restarting $DESC" "$NAME"
|
|
||||||
do_stop
|
|
||||||
do_start
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
#echo "Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload}" >&2
|
|
||||||
echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2
|
|
||||||
exit 3
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
:
|
|
@ -1,147 +0,0 @@
|
|||||||
#! /bin/sh
|
|
||||||
### BEGIN INIT INFO
|
|
||||||
# Provides: zuul-merger
|
|
||||||
# Required-Start: $remote_fs $syslog
|
|
||||||
# Required-Stop: $remote_fs $syslog
|
|
||||||
# Default-Start: 2 3 4 5
|
|
||||||
# Default-Stop: 0 1 6
|
|
||||||
# Short-Description: Zuul
|
|
||||||
# Description: Trunk gating system merger
|
|
||||||
### END INIT INFO
|
|
||||||
|
|
||||||
# Do NOT "set -e"
|
|
||||||
|
|
||||||
# PATH should only include /usr/* if it runs after the mountnfs.sh script
|
|
||||||
PATH=/sbin:/usr/sbin:/bin:/usr/bin
|
|
||||||
DESC="Zuul Merger"
|
|
||||||
NAME=zuul-merger
|
|
||||||
DAEMON=/usr/local/bin/zuul-merger
|
|
||||||
PIDFILE=/var/run/$NAME/$NAME.pid
|
|
||||||
SCRIPTNAME=/etc/init.d/$NAME
|
|
||||||
USER=zuul
|
|
||||||
|
|
||||||
# Exit if the package is not installed
|
|
||||||
[ -x "$DAEMON" ] || exit 0
|
|
||||||
|
|
||||||
# Read configuration variable file if it is present
|
|
||||||
[ -r /etc/default/$NAME ] && . /etc/default/$NAME
|
|
||||||
|
|
||||||
# Load the VERBOSE setting and other rcS variables
|
|
||||||
. /lib/init/vars.sh
|
|
||||||
|
|
||||||
# Define LSB log_* functions.
|
|
||||||
# Depend on lsb-base (>= 3.0-6) to ensure that this file is present.
|
|
||||||
. /lib/lsb/init-functions
|
|
||||||
|
|
||||||
PIDFILE_DIR=$(dirname $PIDFILE)
|
|
||||||
|
|
||||||
#
|
|
||||||
# Function that starts the daemon/service
|
|
||||||
#
|
|
||||||
do_start()
|
|
||||||
{
|
|
||||||
# Return
|
|
||||||
# 0 if daemon has been started
|
|
||||||
# 1 if daemon was already running
|
|
||||||
# 2 if daemon could not be started
|
|
||||||
# 3 if pid file already exist
|
|
||||||
|
|
||||||
if [ ! -d "$PIDFILE_DIR" ] ; then
|
|
||||||
mkdir -p $PIDFILE_DIR
|
|
||||||
chown $USER $PIDFILE_DIR
|
|
||||||
fi
|
|
||||||
ulimit -n 8192
|
|
||||||
if [ -f $PIDFILE ]; then
|
|
||||||
return 3
|
|
||||||
fi
|
|
||||||
start-stop-daemon \
|
|
||||||
--start --quiet --pidfile $PIDFILE -c $USER \
|
|
||||||
--exec $DAEMON --test > /dev/null || return 1
|
|
||||||
start-stop-daemon \
|
|
||||||
--start --quiet --pidfile $PIDFILE -c $USER \
|
|
||||||
--exec $DAEMON -- $DAEMON_ARGS || return 2
|
|
||||||
# Add code here, if necessary, that waits for the process to be ready
|
|
||||||
# to handle requests from services started subsequently which depend
|
|
||||||
# on this one. As a last resort, sleep for some time.
|
|
||||||
}
|
|
||||||
|
|
||||||
#
|
|
||||||
# Function that stops the daemon/service
|
|
||||||
#
|
|
||||||
do_stop()
|
|
||||||
{
|
|
||||||
# Return
|
|
||||||
# 0 if daemon has been stopped
|
|
||||||
# 1 if daemon was already stopped
|
|
||||||
# 2 if daemon could not be stopped
|
|
||||||
# other if a failure occurred
|
|
||||||
start-stop-daemon --stop --signal 9 --pidfile $PIDFILE
|
|
||||||
RETVAL="$?"
|
|
||||||
[ "$RETVAL" = 2 ] && return 2
|
|
||||||
if [ -f "$PIDFILE" ] ; then
|
|
||||||
rm -f $PIDFILE
|
|
||||||
fi
|
|
||||||
return "$RETVAL"
|
|
||||||
}
|
|
||||||
|
|
||||||
#
|
|
||||||
# Function that sends a SIGHUP to the daemon/service
|
|
||||||
#
|
|
||||||
do_reload() {
|
|
||||||
#
|
|
||||||
# If the daemon can reload its configuration without
|
|
||||||
# restarting (for example, when it is sent a SIGHUP),
|
|
||||||
# then implement that here.
|
|
||||||
#
|
|
||||||
start-stop-daemon \
|
|
||||||
--stop --signal 1 --quiet --pidfile $PIDFILE --name zuul-merger
|
|
||||||
return 0
|
|
||||||
}
|
|
||||||
|
|
||||||
case "$1" in
|
|
||||||
start)
|
|
||||||
[ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"
|
|
||||||
do_start
|
|
||||||
case "$?" in
|
|
||||||
0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
|
|
||||||
2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
|
|
||||||
3) echo "Pidfile at $PIDFILE already exists, run service zuul-merger stop to clean up."
|
|
||||||
esac
|
|
||||||
;;
|
|
||||||
stop)
|
|
||||||
[ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
|
|
||||||
do_stop
|
|
||||||
case "$?" in
|
|
||||||
0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
|
|
||||||
2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
|
|
||||||
esac
|
|
||||||
;;
|
|
||||||
status)
|
|
||||||
status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $?
|
|
||||||
;;
|
|
||||||
reload|force-reload)
|
|
||||||
#
|
|
||||||
# If do_reload() is not implemented then leave this commented out
|
|
||||||
# and leave 'force-reload' as an alias for 'restart'.
|
|
||||||
#
|
|
||||||
log_daemon_msg "Reloading $DESC" "$NAME"
|
|
||||||
do_reload
|
|
||||||
log_end_msg $?
|
|
||||||
;;
|
|
||||||
restart)
|
|
||||||
#
|
|
||||||
# If the "reload" option is implemented then remove the
|
|
||||||
# 'force-reload' alias
|
|
||||||
#
|
|
||||||
log_daemon_msg "Restarting $DESC" "$NAME"
|
|
||||||
do_stop
|
|
||||||
do_start
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
#echo "Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload}" >&2
|
|
||||||
echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2
|
|
||||||
exit 3
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
:
|
|
@ -1,137 +0,0 @@
|
|||||||
#! /bin/sh
|
|
||||||
### BEGIN INIT INFO
|
|
||||||
# Provides: zuul-merger
|
|
||||||
# Required-Start: $remote_fs $syslog
|
|
||||||
# Required-Stop: $remote_fs $syslog
|
|
||||||
# Default-Start: 2 3 4 5
|
|
||||||
# Default-Stop: 0 1 6
|
|
||||||
# Short-Description: Zuul
|
|
||||||
# Description: Trunk gating system merger
|
|
||||||
### END INIT INFO
|
|
||||||
|
|
||||||
# Do NOT "set -e"
|
|
||||||
|
|
||||||
# PATH should only include /usr/* if it runs after the mountnfs.sh script
|
|
||||||
PATH=/sbin:/usr/sbin:/bin:/usr/bin
|
|
||||||
DESC="Zuul Merger"
|
|
||||||
NAME=zuul-merger
|
|
||||||
DAEMON=/usr/local/bin/zuul-merger
|
|
||||||
PIDFILE=/var/run/$NAME/$NAME.pid
|
|
||||||
SCRIPTNAME=/etc/init.d/$NAME
|
|
||||||
USER=zuul
|
|
||||||
|
|
||||||
# Exit if the package is not installed
|
|
||||||
[ -x "$DAEMON" ] || exit 0
|
|
||||||
|
|
||||||
# Read configuration variable file if it is present
|
|
||||||
[ -r /etc/default/$NAME ] && . /etc/default/$NAME
|
|
||||||
|
|
||||||
# Load the VERBOSE setting and other rcS variables
|
|
||||||
. /lib/init/vars.sh
|
|
||||||
|
|
||||||
# Define LSB log_* functions.
|
|
||||||
# Depend on lsb-base (>= 3.0-6) to ensure that this file is present.
|
|
||||||
. /lib/lsb/init-functions
|
|
||||||
|
|
||||||
PIDFILE_DIR=$(dirname $PIDFILE)
|
|
||||||
|
|
||||||
#
|
|
||||||
# Function that starts the daemon/service
|
|
||||||
#
|
|
||||||
do_start()
|
|
||||||
{
|
|
||||||
# Return
|
|
||||||
# 0 if daemon has been started
|
|
||||||
# 1 if daemon was already running
|
|
||||||
# 2 if daemon could not be started
|
|
||||||
# 3 if pid file already exist
|
|
||||||
|
|
||||||
if [ ! -d "$PIDFILE_DIR" ] ; then
|
|
||||||
mkdir -p $PIDFILE_DIR
|
|
||||||
chown $USER $PIDFILE_DIR
|
|
||||||
fi
|
|
||||||
ulimit -n 8192
|
|
||||||
if [ -f $PIDFILE ]; then
|
|
||||||
return 3
|
|
||||||
fi
|
|
||||||
start-stop-daemon \
|
|
||||||
--start --quiet --pidfile $PIDFILE -c $USER \
|
|
||||||
--exec $DAEMON --test > /dev/null || return 1
|
|
||||||
start-stop-daemon \
|
|
||||||
--start --quiet --pidfile $PIDFILE -c $USER \
|
|
||||||
--exec $DAEMON -- $DAEMON_ARGS || return 2
|
|
||||||
# Add code here, if necessary, that waits for the process to be ready
|
|
||||||
# to handle requests from services started subsequently which depend
|
|
||||||
# on this one. As a last resort, sleep for some time.
|
|
||||||
}
|
|
||||||
|
|
||||||
#
|
|
||||||
# Function that stops the daemon/service
|
|
||||||
#
|
|
||||||
do_stop()
|
|
||||||
{
|
|
||||||
$DAEMON stop
|
|
||||||
return 0
|
|
||||||
}
|
|
||||||
|
|
||||||
#
|
|
||||||
# Function that sends a SIGHUP to the daemon/service
|
|
||||||
#
|
|
||||||
do_reload() {
|
|
||||||
#
|
|
||||||
# If the daemon can reload its configuration without
|
|
||||||
# restarting (for example, when it is sent a SIGHUP),
|
|
||||||
# then implement that here.
|
|
||||||
#
|
|
||||||
start-stop-daemon \
|
|
||||||
--stop --signal 1 --quiet --pidfile $PIDFILE --name zuul-merger
|
|
||||||
return 0
|
|
||||||
}
|
|
||||||
|
|
||||||
case "$1" in
|
|
||||||
start)
|
|
||||||
[ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"
|
|
||||||
do_start
|
|
||||||
case "$?" in
|
|
||||||
0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
|
|
||||||
2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
|
|
||||||
3) echo "Pidfile at $PIDFILE already exists, run service zuul-merger stop to clean up."
|
|
||||||
esac
|
|
||||||
;;
|
|
||||||
stop)
|
|
||||||
[ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
|
|
||||||
do_stop
|
|
||||||
case "$?" in
|
|
||||||
0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
|
|
||||||
2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
|
|
||||||
esac
|
|
||||||
;;
|
|
||||||
status)
|
|
||||||
status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $?
|
|
||||||
;;
|
|
||||||
reload|force-reload)
|
|
||||||
#
|
|
||||||
# If do_reload() is not implemented then leave this commented out
|
|
||||||
# and leave 'force-reload' as an alias for 'restart'.
|
|
||||||
#
|
|
||||||
log_daemon_msg "Reloading $DESC" "$NAME"
|
|
||||||
do_reload
|
|
||||||
log_end_msg $?
|
|
||||||
;;
|
|
||||||
restart)
|
|
||||||
#
|
|
||||||
# If the "reload" option is implemented then remove the
|
|
||||||
# 'force-reload' alias
|
|
||||||
#
|
|
||||||
log_daemon_msg "Restarting $DESC" "$NAME"
|
|
||||||
do_stop
|
|
||||||
do_start
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
#echo "Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload}" >&2
|
|
||||||
echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2
|
|
||||||
exit 3
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
:
|
|
@ -1,172 +0,0 @@
|
|||||||
#! /bin/sh
|
|
||||||
### BEGIN INIT INFO
|
|
||||||
# Provides: zuul-scheduler
|
|
||||||
# Required-Start: $remote_fs $syslog
|
|
||||||
# Required-Stop: $remote_fs $syslog
|
|
||||||
# Default-Start: 2 3 4 5
|
|
||||||
# Default-Stop: 0 1 6
|
|
||||||
# Short-Description: Zuul scheduler
|
|
||||||
# Description: Trunk gating system
|
|
||||||
### END INIT INFO
|
|
||||||
|
|
||||||
# Do NOT "set -e"
|
|
||||||
|
|
||||||
# PATH should only include /usr/* if it runs after the mountnfs.sh script
|
|
||||||
PATH=/sbin:/usr/sbin:/bin:/usr/bin
|
|
||||||
DESC="Zuul"
|
|
||||||
NAME=zuul-scheduler
|
|
||||||
DAEMON=/usr/local/bin/zuul-scheduler
|
|
||||||
PIDFILE=/var/run/$NAME/$NAME.pid
|
|
||||||
SCRIPTNAME=/etc/init.d/$NAME
|
|
||||||
USER=zuul
|
|
||||||
|
|
||||||
# Exit if the package is not installed
|
|
||||||
[ -x "$DAEMON" ] || exit 0
|
|
||||||
|
|
||||||
# Read configuration variable file if it is present
|
|
||||||
[ -r /etc/default/$NAME ] && . /etc/default/$NAME
|
|
||||||
|
|
||||||
# Load the VERBOSE setting and other rcS variables
|
|
||||||
. /lib/init/vars.sh
|
|
||||||
|
|
||||||
# Define LSB log_* functions.
|
|
||||||
# Depend on lsb-base (>= 3.0-6) to ensure that this file is present.
|
|
||||||
. /lib/lsb/init-functions
|
|
||||||
|
|
||||||
PIDFILE_DIR=$(dirname $PIDFILE)
|
|
||||||
|
|
||||||
#
|
|
||||||
# Function that starts the daemon/service
|
|
||||||
#
|
|
||||||
do_start()
|
|
||||||
{
|
|
||||||
# Return
|
|
||||||
# 0 if daemon has been started
|
|
||||||
# 1 if daemon was already running
|
|
||||||
# 2 if daemon could not be started
|
|
||||||
# 3 if pid file exits already
|
|
||||||
|
|
||||||
if [ ! -d "$PIDFILE_DIR" ] ; then
|
|
||||||
mkdir -p $PIDFILE_DIR
|
|
||||||
chown $USER $PIDFILE_DIR
|
|
||||||
fi
|
|
||||||
ulimit -n 8192
|
|
||||||
if [ -f $PIDFILE ]; then
|
|
||||||
return 3
|
|
||||||
fi
|
|
||||||
start-stop-daemon \
|
|
||||||
--start --quiet --pidfile $PIDFILE -c $USER \
|
|
||||||
--exec $DAEMON --test > /dev/null || return 1
|
|
||||||
start-stop-daemon \
|
|
||||||
--start --quiet --pidfile $PIDFILE -c $USER \
|
|
||||||
--exec $DAEMON -- $DAEMON_ARGS || return 2
|
|
||||||
# Add code here, if necessary, that waits for the process to be ready
|
|
||||||
# to handle requests from services started subsequently which depend
|
|
||||||
# on this one. As a last resort, sleep for some time.
|
|
||||||
}
|
|
||||||
|
|
||||||
#
|
|
||||||
# Function that stops the daemon/service
|
|
||||||
#
|
|
||||||
do_stop()
|
|
||||||
{
|
|
||||||
# Return
|
|
||||||
# 0 if daemon has been stopped
|
|
||||||
# 1 if daemon was already stopped
|
|
||||||
# 2 if daemon could not be stopped
|
|
||||||
# other if a failure occurred
|
|
||||||
start-stop-daemon --stop --signal 9 --pidfile $PIDFILE
|
|
||||||
RETVAL="$?"
|
|
||||||
[ "$RETVAL" = 2 ] && return 2
|
|
||||||
if [ -f "$PIDFILE" ] ; then
|
|
||||||
rm -f $PIDFILE
|
|
||||||
fi
|
|
||||||
return "$RETVAL"
|
|
||||||
}
|
|
||||||
|
|
||||||
#
|
|
||||||
# Function that stops the daemon/service
|
|
||||||
#
|
|
||||||
do_graceful_stop()
|
|
||||||
{
|
|
||||||
PID=`cat $PIDFILE`
|
|
||||||
kill -USR1 $PID
|
|
||||||
|
|
||||||
# wait until really stopped
|
|
||||||
if [ -n "${PID:-}" ]; then
|
|
||||||
i=0
|
|
||||||
while kill -0 "${PID:-}" 2> /dev/null; do
|
|
||||||
if [ $i -eq '0' ]; then
|
|
||||||
echo -n " ... waiting "
|
|
||||||
else
|
|
||||||
echo -n "."
|
|
||||||
fi
|
|
||||||
i=$(($i+1))
|
|
||||||
sleep 1
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
|
|
||||||
rm -f /var/run/$NAME/*
|
|
||||||
}
|
|
||||||
|
|
||||||
#
|
|
||||||
# Function that sends a SIGHUP to the daemon/service
|
|
||||||
#
|
|
||||||
do_reload() {
|
|
||||||
#
|
|
||||||
# If the daemon can reload its configuration without
|
|
||||||
# restarting (for example, when it is sent a SIGHUP),
|
|
||||||
# then implement that here.
|
|
||||||
#
|
|
||||||
start-stop-daemon \
|
|
||||||
--stop --signal 1 --quiet --pidfile $PIDFILE --name zuul-scheduler
|
|
||||||
return 0
|
|
||||||
}
|
|
||||||
|
|
||||||
case "$1" in
|
|
||||||
start)
|
|
||||||
[ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"
|
|
||||||
do_start
|
|
||||||
case "$?" in
|
|
||||||
0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
|
|
||||||
2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
|
|
||||||
3) echo "Pidfile at $PIDFILE already exists, run service zuul-scheduler stop to clean up." ;;
|
|
||||||
esac
|
|
||||||
;;
|
|
||||||
stop)
|
|
||||||
[ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
|
|
||||||
do_stop
|
|
||||||
case "$?" in
|
|
||||||
0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
|
|
||||||
2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
|
|
||||||
esac
|
|
||||||
;;
|
|
||||||
status)
|
|
||||||
status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $?
|
|
||||||
;;
|
|
||||||
reload|force-reload)
|
|
||||||
#
|
|
||||||
# If do_reload() is not implemented then leave this commented out
|
|
||||||
# and leave 'force-reload' as an alias for 'restart'.
|
|
||||||
#
|
|
||||||
log_daemon_msg "Reloading $DESC" "$NAME"
|
|
||||||
do_reload
|
|
||||||
log_end_msg $?
|
|
||||||
;;
|
|
||||||
restart)
|
|
||||||
#
|
|
||||||
# If the "reload" option is implemented then remove the
|
|
||||||
# 'force-reload' alias
|
|
||||||
#
|
|
||||||
log_daemon_msg "Restarting $DESC" "$NAME"
|
|
||||||
do_graceful_stop
|
|
||||||
do_start
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
#echo "Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload}" >&2
|
|
||||||
echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2
|
|
||||||
exit 3
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
:
|
|
@ -1,162 +0,0 @@
|
|||||||
#! /bin/sh
|
|
||||||
### BEGIN INIT INFO
|
|
||||||
# Provides: zuul-scheduler
|
|
||||||
# Required-Start: $remote_fs $syslog
|
|
||||||
# Required-Stop: $remote_fs $syslog
|
|
||||||
# Default-Start: 2 3 4 5
|
|
||||||
# Default-Stop: 0 1 6
|
|
||||||
# Short-Description: Zuul scheduler
|
|
||||||
# Description: Trunk gating system
|
|
||||||
### END INIT INFO
|
|
||||||
|
|
||||||
# Do NOT "set -e"
|
|
||||||
|
|
||||||
# PATH should only include /usr/* if it runs after the mountnfs.sh script
|
|
||||||
PATH=/sbin:/usr/sbin:/bin:/usr/bin
|
|
||||||
DESC="Zuul"
|
|
||||||
NAME=zuul-scheduler
|
|
||||||
DAEMON=/usr/local/bin/zuul-scheduler
|
|
||||||
PIDFILE=/var/run/$NAME/$NAME.pid
|
|
||||||
SCRIPTNAME=/etc/init.d/$NAME
|
|
||||||
USER=zuul
|
|
||||||
|
|
||||||
# Exit if the package is not installed
|
|
||||||
[ -x "$DAEMON" ] || exit 0
|
|
||||||
|
|
||||||
# Read configuration variable file if it is present
|
|
||||||
[ -r /etc/default/$NAME ] && . /etc/default/$NAME
|
|
||||||
|
|
||||||
# Load the VERBOSE setting and other rcS variables
|
|
||||||
. /lib/init/vars.sh
|
|
||||||
|
|
||||||
# Define LSB log_* functions.
|
|
||||||
# Depend on lsb-base (>= 3.0-6) to ensure that this file is present.
|
|
||||||
. /lib/lsb/init-functions
|
|
||||||
|
|
||||||
PIDFILE_DIR=$(dirname $PIDFILE)
|
|
||||||
|
|
||||||
#
|
|
||||||
# Function that starts the daemon/service
|
|
||||||
#
|
|
||||||
do_start()
|
|
||||||
{
|
|
||||||
# Return
|
|
||||||
# 0 if daemon has been started
|
|
||||||
# 1 if daemon was already running
|
|
||||||
# 2 if daemon could not be started
|
|
||||||
# 3 if pid file exits already
|
|
||||||
|
|
||||||
if [ ! -d "$PIDFILE_DIR" ] ; then
|
|
||||||
mkdir -p $PIDFILE_DIR
|
|
||||||
chown $USER $PIDFILE_DIR
|
|
||||||
fi
|
|
||||||
ulimit -n 8192
|
|
||||||
if [ -f $PIDFILE ]; then
|
|
||||||
return 3
|
|
||||||
fi
|
|
||||||
start-stop-daemon \
|
|
||||||
--start --quiet --pidfile $PIDFILE -c $USER \
|
|
||||||
--exec $DAEMON --test > /dev/null || return 1
|
|
||||||
start-stop-daemon \
|
|
||||||
--start --quiet --pidfile $PIDFILE -c $USER \
|
|
||||||
--exec $DAEMON -- $DAEMON_ARGS || return 2
|
|
||||||
# Add code here, if necessary, that waits for the process to be ready
|
|
||||||
# to handle requests from services started subsequently which depend
|
|
||||||
# on this one. As a last resort, sleep for some time.
|
|
||||||
}
|
|
||||||
|
|
||||||
#
|
|
||||||
# Function that stops the daemon/service
|
|
||||||
#
|
|
||||||
do_stop()
|
|
||||||
{
|
|
||||||
$DAEMON stop
|
|
||||||
return 0
|
|
||||||
}
|
|
||||||
|
|
||||||
#
|
|
||||||
# Function that stops the daemon/service
|
|
||||||
#
|
|
||||||
do_graceful_stop()
|
|
||||||
{
|
|
||||||
PID=`cat $PIDFILE`
|
|
||||||
kill -USR1 $PID
|
|
||||||
|
|
||||||
# wait until really stopped
|
|
||||||
if [ -n "${PID:-}" ]; then
|
|
||||||
i=0
|
|
||||||
while kill -0 "${PID:-}" 2> /dev/null; do
|
|
||||||
if [ $i -eq '0' ]; then
|
|
||||||
echo -n " ... waiting "
|
|
||||||
else
|
|
||||||
echo -n "."
|
|
||||||
fi
|
|
||||||
i=$(($i+1))
|
|
||||||
sleep 1
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
|
|
||||||
rm -f /var/run/$NAME/*
|
|
||||||
}
|
|
||||||
|
|
||||||
#
|
|
||||||
# Function that sends a SIGHUP to the daemon/service
|
|
||||||
#
|
|
||||||
do_reload() {
|
|
||||||
#
|
|
||||||
# If the daemon can reload its configuration without
|
|
||||||
# restarting (for example, when it is sent a SIGHUP),
|
|
||||||
# then implement that here.
|
|
||||||
#
|
|
||||||
start-stop-daemon \
|
|
||||||
--stop --signal 1 --quiet --pidfile $PIDFILE --name zuul-scheduler
|
|
||||||
return 0
|
|
||||||
}
|
|
||||||
|
|
||||||
case "$1" in
|
|
||||||
start)
|
|
||||||
[ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"
|
|
||||||
do_start
|
|
||||||
case "$?" in
|
|
||||||
0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
|
|
||||||
2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
|
|
||||||
3) echo "Pidfile at $PIDFILE already exists, run service zuul-scheduler stop to clean up." ;;
|
|
||||||
esac
|
|
||||||
;;
|
|
||||||
stop)
|
|
||||||
[ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
|
|
||||||
do_stop
|
|
||||||
case "$?" in
|
|
||||||
0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
|
|
||||||
2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
|
|
||||||
esac
|
|
||||||
;;
|
|
||||||
status)
|
|
||||||
status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $?
|
|
||||||
;;
|
|
||||||
reload|force-reload)
|
|
||||||
#
|
|
||||||
# If do_reload() is not implemented then leave this commented out
|
|
||||||
# and leave 'force-reload' as an alias for 'restart'.
|
|
||||||
#
|
|
||||||
log_daemon_msg "Reloading $DESC" "$NAME"
|
|
||||||
do_reload
|
|
||||||
log_end_msg $?
|
|
||||||
;;
|
|
||||||
restart)
|
|
||||||
#
|
|
||||||
# If the "reload" option is implemented then remove the
|
|
||||||
# 'force-reload' alias
|
|
||||||
#
|
|
||||||
log_daemon_msg "Restarting $DESC" "$NAME"
|
|
||||||
do_graceful_stop
|
|
||||||
do_start
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
#echo "Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload}" >&2
|
|
||||||
echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2
|
|
||||||
exit 3
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
:
|
|
@ -1,144 +0,0 @@
|
|||||||
#! /bin/sh
|
|
||||||
### BEGIN INIT INFO
|
|
||||||
# Provides: zuul-web
|
|
||||||
# Required-Start: $remote_fs $syslog
|
|
||||||
# Required-Stop: $remote_fs $syslog
|
|
||||||
# Default-Start: 2 3 4 5
|
|
||||||
# Default-Stop: 0 1 6
|
|
||||||
# Short-Description: Zuul
|
|
||||||
# Description: Zuul Executor
|
|
||||||
### END INIT INFO
|
|
||||||
|
|
||||||
# Do NOT "set -e"
|
|
||||||
|
|
||||||
# PATH should only include /usr/* if it runs after the mountnfs.sh script
|
|
||||||
PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/local/bin
|
|
||||||
DESC="Zuul Web"
|
|
||||||
NAME=zuul-web
|
|
||||||
DAEMON=/usr/local/bin/zuul-web
|
|
||||||
PIDFILE=/var/run/$NAME/$NAME.pid
|
|
||||||
SCRIPTNAME=/etc/init.d/$NAME
|
|
||||||
USER=zuul
|
|
||||||
|
|
||||||
# Exit if the package is not installed
|
|
||||||
[ -x "$DAEMON" ] || exit 0
|
|
||||||
|
|
||||||
# Read configuration variable file if it is present
|
|
||||||
[ -r /etc/default/$NAME ] && . /etc/default/$NAME
|
|
||||||
|
|
||||||
# Load the VERBOSE setting and other rcS variables
|
|
||||||
. /lib/init/vars.sh
|
|
||||||
|
|
||||||
# Define LSB log_* functions.
|
|
||||||
# Depend on lsb-base (>= 3.0-6) to ensure that this file is present.
|
|
||||||
. /lib/lsb/init-functions
|
|
||||||
|
|
||||||
PIDFILE_DIR=$(dirname $PIDFILE)
|
|
||||||
|
|
||||||
#
|
|
||||||
# Function that starts the daemon/service
|
|
||||||
#
|
|
||||||
do_start()
|
|
||||||
{
|
|
||||||
# Return
|
|
||||||
# 0 if daemon has been started
|
|
||||||
# 1 if daemon was already running
|
|
||||||
# 2 if daemon could not be started
|
|
||||||
# 3 if pid file already exist
|
|
||||||
|
|
||||||
if [ ! -d "$PIDFILE_DIR" ] ; then
|
|
||||||
mkdir -p $PIDFILE_DIR
|
|
||||||
chown $USER $PIDFILE_DIR
|
|
||||||
fi
|
|
||||||
ulimit -n 8192
|
|
||||||
if [ -f $PIDFILE ]; then
|
|
||||||
return 3
|
|
||||||
fi
|
|
||||||
start-stop-daemon \
|
|
||||||
--start --quiet --pidfile $PIDFILE -c $USER \
|
|
||||||
--exec $DAEMON --test > /dev/null || return 1
|
|
||||||
start-stop-daemon \
|
|
||||||
--start --quiet --pidfile $PIDFILE -c $USER \
|
|
||||||
--exec $DAEMON -- $DAEMON_ARGS || return 2
|
|
||||||
# Add code here, if necessary, that waits for the process to be ready
|
|
||||||
# to handle requests from services started subsequently which depend
|
|
||||||
# on this one. As a last resort, sleep for some time.
|
|
||||||
}
|
|
||||||
|
|
||||||
#
|
|
||||||
# Function that stops the daemon/service
|
|
||||||
#
|
|
||||||
do_stop()
|
|
||||||
{
|
|
||||||
# Return
|
|
||||||
# 0 if daemon has been stopped
|
|
||||||
# 1 if daemon was already stopped
|
|
||||||
# 2 if daemon could not be stopped
|
|
||||||
# other if a failure occurred
|
|
||||||
start-stop-daemon --stop --signal 9 --pidfile $PIDFILE
|
|
||||||
RETVAL="$?"
|
|
||||||
[ "$RETVAL" = 2 ] && return 2
|
|
||||||
return "$RETVAL"
|
|
||||||
}
|
|
||||||
|
|
||||||
#
|
|
||||||
# Function that sends a SIGHUP to the daemon/service
|
|
||||||
#
|
|
||||||
do_reload() {
|
|
||||||
#
|
|
||||||
# If the daemon can reload its configuration without
|
|
||||||
# restarting (for example, when it is sent a SIGHUP),
|
|
||||||
# then implement that here.
|
|
||||||
#
|
|
||||||
start-stop-daemon \
|
|
||||||
--stop --signal 1 --quiet --pidfile $PIDFILE --name $NAME
|
|
||||||
return 0
|
|
||||||
}
|
|
||||||
|
|
||||||
case "$1" in
|
|
||||||
start)
|
|
||||||
[ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"
|
|
||||||
do_start
|
|
||||||
case "$?" in
|
|
||||||
0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
|
|
||||||
2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
|
|
||||||
3) echo "Pidfile at $PIDFILE already exists, run service zuul-web stop to clean up."
|
|
||||||
esac
|
|
||||||
;;
|
|
||||||
stop)
|
|
||||||
[ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
|
|
||||||
do_stop
|
|
||||||
case "$?" in
|
|
||||||
0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
|
|
||||||
2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
|
|
||||||
esac
|
|
||||||
;;
|
|
||||||
status)
|
|
||||||
status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $?
|
|
||||||
;;
|
|
||||||
reload|force-reload)
|
|
||||||
#
|
|
||||||
# If do_reload() is not implemented then leave this commented out
|
|
||||||
# and leave 'force-reload' as an alias for 'restart'.
|
|
||||||
#
|
|
||||||
log_daemon_msg "Reloading $DESC" "$NAME"
|
|
||||||
do_reload
|
|
||||||
log_end_msg $?
|
|
||||||
;;
|
|
||||||
restart)
|
|
||||||
#
|
|
||||||
# If the "reload" option is implemented then remove the
|
|
||||||
# 'force-reload' alias
|
|
||||||
#
|
|
||||||
log_daemon_msg "Restarting $DESC" "$NAME"
|
|
||||||
do_stop
|
|
||||||
do_start
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
#echo "Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload}" >&2
|
|
||||||
echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2
|
|
||||||
exit 3
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
:
|
|
170
files/zuul.init
170
files/zuul.init
@ -1,170 +0,0 @@
|
|||||||
#! /bin/sh
|
|
||||||
### BEGIN INIT INFO
|
|
||||||
# Provides: zuul
|
|
||||||
# Required-Start: $remote_fs $syslog
|
|
||||||
# Required-Stop: $remote_fs $syslog
|
|
||||||
# Default-Start: 2 3 4 5
|
|
||||||
# Default-Stop: 0 1 6
|
|
||||||
# Short-Description: Zuul
|
|
||||||
# Description: Trunk gating system
|
|
||||||
### END INIT INFO
|
|
||||||
|
|
||||||
# Do NOT "set -e"
|
|
||||||
|
|
||||||
# PATH should only include /usr/* if it runs after the mountnfs.sh script
|
|
||||||
PATH=/sbin:/usr/sbin:/bin:/usr/bin
|
|
||||||
DESC="Zuul"
|
|
||||||
NAME=zuul
|
|
||||||
DAEMON=/usr/local/bin/zuul-server
|
|
||||||
PIDFILE=/var/run/$NAME/$NAME.pid
|
|
||||||
SCRIPTNAME=/etc/init.d/$NAME
|
|
||||||
USER=zuul
|
|
||||||
|
|
||||||
# Exit if the package is not installed
|
|
||||||
[ -x "$DAEMON" ] || exit 0
|
|
||||||
|
|
||||||
# Read configuration variable file if it is present
|
|
||||||
[ -r /etc/default/$NAME ] && . /etc/default/$NAME
|
|
||||||
|
|
||||||
# Load the VERBOSE setting and other rcS variables
|
|
||||||
. /lib/init/vars.sh
|
|
||||||
|
|
||||||
# Define LSB log_* functions.
|
|
||||||
# Depend on lsb-base (>= 3.0-6) to ensure that this file is present.
|
|
||||||
. /lib/lsb/init-functions
|
|
||||||
|
|
||||||
PIDFILE_DIR=$(dirname $PIDFILE)
|
|
||||||
|
|
||||||
#
|
|
||||||
# Function that starts the daemon/service
|
|
||||||
#
|
|
||||||
do_start()
|
|
||||||
{
|
|
||||||
# Return
|
|
||||||
# 0 if daemon has been started
|
|
||||||
# 1 if daemon was already running
|
|
||||||
# 2 if daemon could not be started
|
|
||||||
# 3 if pid file exits already
|
|
||||||
|
|
||||||
if [ ! -d "$PIDFILE_DIR" ] ; then
|
|
||||||
mkdir -p $PIDFILE_DIR
|
|
||||||
chown $USER $PIDFILE_DIR
|
|
||||||
fi
|
|
||||||
ulimit -n 8192
|
|
||||||
if [ -f $PIDFILE ]; then
|
|
||||||
return 3
|
|
||||||
fi
|
|
||||||
start-stop-daemon \
|
|
||||||
--start --quiet --pidfile $PIDFILE -c $USER \
|
|
||||||
--exec $DAEMON --test > /dev/null || return 1
|
|
||||||
start-stop-daemon \
|
|
||||||
--start --quiet --pidfile $PIDFILE -c $USER \
|
|
||||||
--exec $DAEMON -- $DAEMON_ARGS || return 2
|
|
||||||
# Add code here, if necessary, that waits for the process to be ready
|
|
||||||
# to handle requests from services started subsequently which depend
|
|
||||||
# on this one. As a last resort, sleep for some time.
|
|
||||||
}
|
|
||||||
|
|
||||||
#
|
|
||||||
# Function that stops the daemon/service
|
|
||||||
#
|
|
||||||
do_stop()
|
|
||||||
{
|
|
||||||
# Return
|
|
||||||
# 0 if daemon has been stopped
|
|
||||||
# 1 if daemon was already stopped
|
|
||||||
# 2 if daemon could not be stopped
|
|
||||||
# other if a failure occurred
|
|
||||||
start-stop-daemon --stop --signal 9 --pidfile $PIDFILE
|
|
||||||
RETVAL="$?"
|
|
||||||
[ "$RETVAL" = 2 ] && return 2
|
|
||||||
rm -f /var/run/$NAME/*
|
|
||||||
return "$RETVAL"
|
|
||||||
}
|
|
||||||
|
|
||||||
#
|
|
||||||
# Function that stops the daemon/service
|
|
||||||
#
|
|
||||||
do_graceful_stop()
|
|
||||||
{
|
|
||||||
PID=`cat $PIDFILE`
|
|
||||||
kill -USR1 $PID
|
|
||||||
|
|
||||||
# wait until really stopped
|
|
||||||
if [ -n "${PID:-}" ]; then
|
|
||||||
i=0
|
|
||||||
while kill -0 "${PID:-}" 2> /dev/null; do
|
|
||||||
if [ $i -eq '0' ]; then
|
|
||||||
echo -n " ... waiting "
|
|
||||||
else
|
|
||||||
echo -n "."
|
|
||||||
fi
|
|
||||||
i=$(($i+1))
|
|
||||||
sleep 1
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
|
|
||||||
rm -f /var/run/$NAME/*
|
|
||||||
}
|
|
||||||
|
|
||||||
#
|
|
||||||
# Function that sends a SIGHUP to the daemon/service
|
|
||||||
#
|
|
||||||
do_reload() {
|
|
||||||
#
|
|
||||||
# If the daemon can reload its configuration without
|
|
||||||
# restarting (for example, when it is sent a SIGHUP),
|
|
||||||
# then implement that here.
|
|
||||||
#
|
|
||||||
start-stop-daemon \
|
|
||||||
--stop --signal 1 --quiet --pidfile $PIDFILE --name zuul-server
|
|
||||||
return 0
|
|
||||||
}
|
|
||||||
|
|
||||||
case "$1" in
|
|
||||||
start)
|
|
||||||
[ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"
|
|
||||||
do_start
|
|
||||||
case "$?" in
|
|
||||||
0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
|
|
||||||
2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
|
|
||||||
3) echo "Pidfile at $PIDFILE already exists, run service zuul stop to clean up." ;;
|
|
||||||
esac
|
|
||||||
;;
|
|
||||||
stop)
|
|
||||||
[ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
|
|
||||||
do_stop
|
|
||||||
case "$?" in
|
|
||||||
0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
|
|
||||||
2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
|
|
||||||
esac
|
|
||||||
;;
|
|
||||||
status)
|
|
||||||
status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $?
|
|
||||||
;;
|
|
||||||
reload|force-reload)
|
|
||||||
#
|
|
||||||
# If do_reload() is not implemented then leave this commented out
|
|
||||||
# and leave 'force-reload' as an alias for 'restart'.
|
|
||||||
#
|
|
||||||
log_daemon_msg "Reloading $DESC" "$NAME"
|
|
||||||
do_reload
|
|
||||||
log_end_msg $?
|
|
||||||
;;
|
|
||||||
restart)
|
|
||||||
#
|
|
||||||
# If the "reload" option is implemented then remove the
|
|
||||||
# 'force-reload' alias
|
|
||||||
#
|
|
||||||
log_daemon_msg "Restarting $DESC" "$NAME"
|
|
||||||
do_graceful_stop
|
|
||||||
do_start
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
#echo "Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload}" >&2
|
|
||||||
echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2
|
|
||||||
exit 3
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
:
|
|
@ -1,126 +0,0 @@
|
|||||||
# Copyright 2012-2013 Hewlett-Packard Development Company, L.P.
|
|
||||||
# Copyright 2014 OpenStack Foundation
|
|
||||||
# Copyright 2016 IBM Corp.
|
|
||||||
#
|
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
|
||||||
# not use this file except in compliance with the License. You may obtain
|
|
||||||
# a copy of the License at
|
|
||||||
#
|
|
||||||
# http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
#
|
|
||||||
# Unless required by applicable law or agreed to in writing, software
|
|
||||||
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
||||||
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
||||||
# License for the specific language governing permissions and limitations
|
|
||||||
# under the License.
|
|
||||||
|
|
||||||
# == Class: zuul::executor
|
|
||||||
#
|
|
||||||
class zuul::executor (
|
|
||||||
$ensure = undef,
|
|
||||||
$manage_log_conf = true,
|
|
||||||
) {
|
|
||||||
include apt
|
|
||||||
apt::ppa { 'ppa:openstack-ci-core/bubblewrap': }
|
|
||||||
# Temporary PPA needed for bpo-27945 while waiting for SRU to be published
|
|
||||||
apt::ppa { 'ppa:openstack-ci-core/python-bpo-27945-backport': }
|
|
||||||
|
|
||||||
package { 'bubblewrap':
|
|
||||||
ensure => present,
|
|
||||||
require => [
|
|
||||||
Apt::Ppa['ppa:openstack-ci-core/bubblewrap'],
|
|
||||||
Class['apt::update'],
|
|
||||||
],
|
|
||||||
}
|
|
||||||
|
|
||||||
# Alternative malloc implementation with better packing performance
|
|
||||||
if ! defined(Package['libjemalloc1']) {
|
|
||||||
package { 'libjemalloc1':
|
|
||||||
ensure => present,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
exec { 'zuul_manage_ansible':
|
|
||||||
command => 'zuul-manage-ansible',
|
|
||||||
environment => ['ANSIBLE_EXTRA_PACKAGES=gear'],
|
|
||||||
path => '/usr/local/bin:/usr/bin:/bin/',
|
|
||||||
subscribe => Exec['install_zuul'],
|
|
||||||
refreshonly => true,
|
|
||||||
}
|
|
||||||
|
|
||||||
include pip::python3
|
|
||||||
|
|
||||||
exec { 'install-ara-safely':
|
|
||||||
command => 'pip3 install --upgrade --upgrade-strategy=only-if-needed "ara<1.0.0"',
|
|
||||||
path => '/usr/local/bin:/usr/bin:/bin/',
|
|
||||||
# This checks the current installed ara version with pip list and the
|
|
||||||
# latest version of ara on pypi with pip search and if they are different
|
|
||||||
# then we know we need to upgrade to reconcile the local version with
|
|
||||||
# the upstream version.
|
|
||||||
#
|
|
||||||
# We do this using this check here rather than a pip package resource so
|
|
||||||
# that ara's deps don't inadverdently update zuuls deps (specifically
|
|
||||||
# ansible).
|
|
||||||
#
|
|
||||||
onlyif => '/bin/bash -c "test \\"$(pip3 list --format columns | sed -ne \'s/^ara\s\+\([.0-9]\+\)\s\+$/\1/p\')\\" != \\"$(pip3 search \'ara$\' | sed -ne \'s/^ara (\(.*\)).*$/\1/p\')\\""',
|
|
||||||
require => Class['::pip::python3'],
|
|
||||||
}
|
|
||||||
|
|
||||||
# openstacksdk is used by the swift role in zuul-jobs
|
|
||||||
package { 'openstacksdk':
|
|
||||||
ensure => latest,
|
|
||||||
provider => 'pip3',
|
|
||||||
require => Class['pip'],
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($::operatingsystem == 'Ubuntu') and ($::operatingsystemrelease >= '16.04') {
|
|
||||||
# This is a hack to make sure that systemd is aware of the new service
|
|
||||||
# before we attempt to start it.
|
|
||||||
exec { 'zuul-executor-systemd-daemon-reload':
|
|
||||||
command => '/bin/systemctl daemon-reload',
|
|
||||||
before => Service['zuul-executor'],
|
|
||||||
subscribe => File['/etc/init.d/zuul-executor'],
|
|
||||||
refreshonly => true,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
service { 'zuul-executor':
|
|
||||||
ensure => $ensure,
|
|
||||||
name => 'zuul-executor',
|
|
||||||
enable => true,
|
|
||||||
hasrestart => true,
|
|
||||||
require => [File['/etc/init.d/zuul-executor'],
|
|
||||||
Class['zuul::systemd_reload']]
|
|
||||||
}
|
|
||||||
|
|
||||||
if $manage_log_conf {
|
|
||||||
file { '/etc/zuul/executor-logging.conf':
|
|
||||||
ensure => present,
|
|
||||||
source => 'puppet:///modules/zuul/executor-logging.conf',
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
include logrotate
|
|
||||||
logrotate::file { 'executor.log':
|
|
||||||
log => '/var/log/zuul/executor.log',
|
|
||||||
options => [
|
|
||||||
'compress',
|
|
||||||
'missingok',
|
|
||||||
'rotate 30',
|
|
||||||
'daily',
|
|
||||||
'notifempty',
|
|
||||||
],
|
|
||||||
require => Service['zuul-executor'],
|
|
||||||
}
|
|
||||||
logrotate::file { 'executor-debug.log':
|
|
||||||
log => '/var/log/zuul/executor-debug.log',
|
|
||||||
options => [
|
|
||||||
'compress',
|
|
||||||
'missingok',
|
|
||||||
'rotate 30',
|
|
||||||
'daily',
|
|
||||||
'notifempty',
|
|
||||||
],
|
|
||||||
require => Service['zuul-executor'],
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,70 +0,0 @@
|
|||||||
# Copyright 2017 Red Hat, Inc.
|
|
||||||
#
|
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
|
||||||
# not use this file except in compliance with the License. You may obtain
|
|
||||||
# a copy of the License at
|
|
||||||
#
|
|
||||||
# http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
#
|
|
||||||
# Unless required by applicable law or agreed to in writing, software
|
|
||||||
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
||||||
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
||||||
# License for the specific language governing permissions and limitations
|
|
||||||
# under the License.
|
|
||||||
|
|
||||||
# == Class: zuul::fingergw
|
|
||||||
#
|
|
||||||
class zuul::fingergw (
|
|
||||||
$ensure = undef,
|
|
||||||
$manage_log_conf = true,
|
|
||||||
) {
|
|
||||||
|
|
||||||
service { 'zuul-fingergw':
|
|
||||||
ensure => $ensure,
|
|
||||||
name => 'zuul-fingergw',
|
|
||||||
enable => true,
|
|
||||||
hasrestart => true,
|
|
||||||
require => [File['/etc/init.d/zuul-fingergw'],
|
|
||||||
Class['zuul::systemd_reload']]
|
|
||||||
}
|
|
||||||
|
|
||||||
file { '/etc/init.d/zuul-fingergw':
|
|
||||||
ensure => present,
|
|
||||||
owner => 'root',
|
|
||||||
group => 'root',
|
|
||||||
mode => '0555',
|
|
||||||
source => 'puppet:///modules/zuul/zuul-fingergw.init',
|
|
||||||
notify => Class['zuul::systemd_reload'],
|
|
||||||
}
|
|
||||||
|
|
||||||
if $manage_log_conf {
|
|
||||||
file { '/etc/zuul/fingergw-logging.conf':
|
|
||||||
ensure => present,
|
|
||||||
source => 'puppet:///modules/zuul/fingergw-logging.conf',
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
include logrotate
|
|
||||||
logrotate::file { 'fingergw.log':
|
|
||||||
log => '/var/log/zuul/fingergw.log',
|
|
||||||
options => [
|
|
||||||
'compress',
|
|
||||||
'missingok',
|
|
||||||
'rotate 30',
|
|
||||||
'daily',
|
|
||||||
'notifempty',
|
|
||||||
],
|
|
||||||
require => Service['zuul-fingergw'],
|
|
||||||
}
|
|
||||||
logrotate::file { 'fingergw-debug.log':
|
|
||||||
log => '/var/log/zuul/fingergw-debug.log',
|
|
||||||
options => [
|
|
||||||
'compress',
|
|
||||||
'missingok',
|
|
||||||
'rotate 30',
|
|
||||||
'daily',
|
|
||||||
'notifempty',
|
|
||||||
],
|
|
||||||
require => Service['zuul-fingergw'],
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,681 +0,0 @@
|
|||||||
# Copyright 2012-2013 Hewlett-Packard Development Company, L.P.
|
|
||||||
# Copyright 2012 Antoine "hashar" Musso
|
|
||||||
# Copyright 2012 Wikimedia Foundation Inc.
|
|
||||||
# Copyright 2013 OpenStack Foundation
|
|
||||||
#
|
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
|
||||||
# not use this file except in compliance with the License. You may obtain
|
|
||||||
# a copy of the License at
|
|
||||||
#
|
|
||||||
# http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
#
|
|
||||||
# Unless required by applicable law or agreed to in writing, software
|
|
||||||
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
||||||
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
||||||
# License for the specific language governing permissions and limitations
|
|
||||||
# under the License.
|
|
||||||
|
|
||||||
# == Class: zuul
|
|
||||||
#
|
|
||||||
class zuul (
|
|
||||||
$vhost_name = $::fqdn,
|
|
||||||
$serveradmin = "webmaster@${::fqdn}",
|
|
||||||
$gearman_server = '127.0.0.1',
|
|
||||||
$gearman_check_job_registration = true,
|
|
||||||
$internal_gearman = true,
|
|
||||||
$gerrit_server = '',
|
|
||||||
$gerrit_user = '',
|
|
||||||
$gerrit_baseurl = '',
|
|
||||||
$gerrit_strip_branch_ref = '',
|
|
||||||
$zuul_ssh_private_key = '',
|
|
||||||
$layout_file_name = 'layout.yaml',
|
|
||||||
$zookeeper_hosts = '127.0.0.1:2181',
|
|
||||||
$zookeeper_session_timeout = undef,
|
|
||||||
$tenant_file_name = 'main.yaml',
|
|
||||||
$relative_priority = false,
|
|
||||||
$url_pattern = '',
|
|
||||||
$status_url = "https://${::fqdn}/",
|
|
||||||
$zuul_status_url = 'http://127.0.0.1:8001',
|
|
||||||
$zuul_url = '',
|
|
||||||
$git_source_repo = 'https://git.openstack.org/openstack-infra/zuul',
|
|
||||||
$job_name_in_report = false,
|
|
||||||
$revision = 'master',
|
|
||||||
$statsd_host = '',
|
|
||||||
$git_email = '',
|
|
||||||
$git_name = '',
|
|
||||||
$smtp_host = 'localhost',
|
|
||||||
$smtp_port = 25,
|
|
||||||
$smtp_default_from = "zuul@${::fqdn}",
|
|
||||||
$smtp_default_to = "zuul.reports@${::fqdn}",
|
|
||||||
$swift_account_temp_key = '',
|
|
||||||
$swift_authurl = '',
|
|
||||||
$swift_auth_version = '',
|
|
||||||
$swift_user = '',
|
|
||||||
$swift_key = '',
|
|
||||||
$swift_tenant_name = '',
|
|
||||||
$swift_region_name = '',
|
|
||||||
$swift_default_container = '',
|
|
||||||
$swift_default_logserver_prefix = '',
|
|
||||||
$swift_default_expiry = 7200,
|
|
||||||
$proxy_ssl_cert_file_contents = '',
|
|
||||||
$proxy_ssl_key_file_contents = '',
|
|
||||||
$proxy_ssl_chain_file_contents = '',
|
|
||||||
$block_referers = [],
|
|
||||||
# Launcher config
|
|
||||||
$accept_nodes = '',
|
|
||||||
$jenkins_jobs = '',
|
|
||||||
$workspace_root = '',
|
|
||||||
$worker_private_key_file = '',
|
|
||||||
$worker_username = '',
|
|
||||||
$sites = [],
|
|
||||||
$nodes = [],
|
|
||||||
$connections = [],
|
|
||||||
$connection_secrets = [],
|
|
||||||
$trusted_ro_dirs = [],
|
|
||||||
$trusted_rw_dirs = [],
|
|
||||||
$untrusted_ro_dirs = [],
|
|
||||||
$untrusted_rw_dirs = [],
|
|
||||||
$trusted_ro_paths = [],
|
|
||||||
$trusted_rw_paths = [],
|
|
||||||
$untrusted_ro_paths = [],
|
|
||||||
$untrusted_rw_paths = [],
|
|
||||||
$disk_limit_per_job = '',
|
|
||||||
$python_version = 2,
|
|
||||||
$zuulv3 = false,
|
|
||||||
$gearman_client_ssl_cert = undef,
|
|
||||||
$gearman_client_ssl_key = undef,
|
|
||||||
$gearman_server_ssl_cert = undef,
|
|
||||||
$gearman_server_ssl_key = undef,
|
|
||||||
$gearman_ssl_ca = undef,
|
|
||||||
$web_listen_address = '',
|
|
||||||
$web_listen_port = '',
|
|
||||||
$web_root = '',
|
|
||||||
$zuul_web_url = 'http://127.0.0.1:9000',
|
|
||||||
$zuul_scheduler_url = 'http://127.0.0.1:8001',
|
|
||||||
$site_variables_yaml_file = undef,
|
|
||||||
$zuul_tenant_name = undef,
|
|
||||||
) {
|
|
||||||
include httpd
|
|
||||||
include pip
|
|
||||||
|
|
||||||
include zuul::systemd_reload
|
|
||||||
|
|
||||||
if ($python_version == 3) {
|
|
||||||
include pip::python3
|
|
||||||
$pip_provider = pip3
|
|
||||||
$pip_command = 'pip3'
|
|
||||||
} else {
|
|
||||||
$pip_provider = openstack_pip
|
|
||||||
$pip_command = 'pip'
|
|
||||||
}
|
|
||||||
|
|
||||||
$packages = [
|
|
||||||
'libffi-dev',
|
|
||||||
'libssl-dev',
|
|
||||||
]
|
|
||||||
|
|
||||||
package { $packages:
|
|
||||||
ensure => present,
|
|
||||||
}
|
|
||||||
|
|
||||||
# NOTE(pabelanger): Due to pip10, we can no longer uninstall system python
|
|
||||||
# packages. Moving forward, we should consider installing zuul into a
|
|
||||||
# virtualenv, or container.
|
|
||||||
package { 'python3-yaml':
|
|
||||||
ensure => absent,
|
|
||||||
before => Exec['install_zuul'],
|
|
||||||
}
|
|
||||||
|
|
||||||
# yappi, pyzmq requires this to build
|
|
||||||
if ! defined(Package['build-essential']) {
|
|
||||||
package { 'build-essential':
|
|
||||||
ensure => present,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if ! defined(Package['yappi']) {
|
|
||||||
package { 'yappi':
|
|
||||||
ensure => present,
|
|
||||||
provider => $pip_provider,
|
|
||||||
require => Class['pip'],
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if ! defined(Package['objgraph']) {
|
|
||||||
package { 'objgraph':
|
|
||||||
ensure => present,
|
|
||||||
provider => $pip_provider,
|
|
||||||
require => Class['pip'],
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if ! $zuulv3 {
|
|
||||||
# needed by python-keystoneclient, has system bindings
|
|
||||||
# Zuul and Nodepool both need it, so make it conditional
|
|
||||||
if ! defined(Package['python-lxml']) {
|
|
||||||
package { 'python-lxml':
|
|
||||||
ensure => present,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if ! defined(Package['python-paramiko']) {
|
|
||||||
package { 'python-paramiko':
|
|
||||||
ensure => present,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if ! defined(Package['python-daemon']) {
|
|
||||||
package { 'python-daemon':
|
|
||||||
ensure => present,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if ! defined(Package['yui-compressor']) {
|
|
||||||
package { 'yui-compressor':
|
|
||||||
ensure => present,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
} else {
|
|
||||||
# Needed for fb-re2
|
|
||||||
if ! defined (Package['libre2-dev']) {
|
|
||||||
package { 'libre2-dev':
|
|
||||||
ensure => present,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
user { 'zuul':
|
|
||||||
ensure => present,
|
|
||||||
home => '/home/zuul',
|
|
||||||
shell => '/bin/bash',
|
|
||||||
gid => 'zuul',
|
|
||||||
managehome => true,
|
|
||||||
require => Group['zuul'],
|
|
||||||
}
|
|
||||||
|
|
||||||
group { 'zuul':
|
|
||||||
ensure => present,
|
|
||||||
}
|
|
||||||
|
|
||||||
vcsrepo { '/opt/zuul':
|
|
||||||
ensure => latest,
|
|
||||||
provider => git,
|
|
||||||
revision => $revision,
|
|
||||||
source => $git_source_repo,
|
|
||||||
}
|
|
||||||
|
|
||||||
exec { 'install_zuul' :
|
|
||||||
command => "${pip_command} install -U -r/opt/zuul/requirements.txt && ${pip_command} install --no-deps -U /opt/zuul",
|
|
||||||
path => '/usr/local/bin:/usr/bin:/bin/',
|
|
||||||
refreshonly => true,
|
|
||||||
subscribe => Vcsrepo['/opt/zuul'],
|
|
||||||
require => [
|
|
||||||
Class['pip'],
|
|
||||||
Package['build-essential'],
|
|
||||||
Package['libffi-dev'],
|
|
||||||
Package['libssl-dev'],
|
|
||||||
Package['objgraph'],
|
|
||||||
Package['yappi'],
|
|
||||||
],
|
|
||||||
}
|
|
||||||
|
|
||||||
if ! $zuulv3 {
|
|
||||||
Exec['install_zuul'] -> Package['python-daemon']
|
|
||||||
Exec['install_zuul'] -> Package['python-daemon']
|
|
||||||
Exec['install_zuul'] -> Package['python-lxml']
|
|
||||||
Exec['install_zuul'] -> Package['python-paramiko']
|
|
||||||
Exec['install_zuul'] -> Package['yui-compressor']
|
|
||||||
}
|
|
||||||
|
|
||||||
file { '/etc/zuul':
|
|
||||||
ensure => directory,
|
|
||||||
group => 'zuul',
|
|
||||||
mode => '0755',
|
|
||||||
owner => 'zuul',
|
|
||||||
require => User['zuul'],
|
|
||||||
}
|
|
||||||
|
|
||||||
file { '/etc/zuul/ssl':
|
|
||||||
ensure => directory,
|
|
||||||
group => 'zuul',
|
|
||||||
mode => '0755',
|
|
||||||
owner => 'zuul',
|
|
||||||
require => File['/etc/zuul'],
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($gearman_ssl_ca != undef) {
|
|
||||||
file { '/etc/zuul/ssl/ca.pem':
|
|
||||||
ensure => file,
|
|
||||||
content => $gearman_ssl_ca,
|
|
||||||
group => 'zuul',
|
|
||||||
mode => '0644',
|
|
||||||
owner => 'zuul',
|
|
||||||
require => File['/etc/zuul/ssl'],
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($gearman_client_ssl_cert != undef) {
|
|
||||||
file { '/etc/zuul/ssl/client.pem':
|
|
||||||
ensure => file,
|
|
||||||
content => $gearman_client_ssl_cert,
|
|
||||||
group => 'zuul',
|
|
||||||
mode => '0644',
|
|
||||||
owner => 'zuul',
|
|
||||||
require => File['/etc/zuul/ssl'],
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($gearman_client_ssl_key != undef) {
|
|
||||||
file { '/etc/zuul/ssl/client.key':
|
|
||||||
ensure => file,
|
|
||||||
content => $gearman_client_ssl_key,
|
|
||||||
group => 'zuul',
|
|
||||||
mode => '0640',
|
|
||||||
owner => 'zuul',
|
|
||||||
require => File['/etc/zuul/ssl'],
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($gearman_server_ssl_cert != undef) {
|
|
||||||
file { '/etc/zuul/ssl/server.pem':
|
|
||||||
ensure => file,
|
|
||||||
content => $gearman_server_ssl_cert,
|
|
||||||
group => 'zuul',
|
|
||||||
mode => '0644',
|
|
||||||
owner => 'zuul',
|
|
||||||
require => File['/etc/zuul/ssl'],
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($gearman_server_ssl_key != undef) {
|
|
||||||
file { '/etc/zuul/ssl/server.key':
|
|
||||||
ensure => file,
|
|
||||||
content => $gearman_server_ssl_key,
|
|
||||||
group => 'zuul',
|
|
||||||
mode => '0640',
|
|
||||||
owner => 'zuul',
|
|
||||||
require => File['/etc/zuul/ssl'],
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if $zuulv3 {
|
|
||||||
$zuul_conf_content = template('zuul/zuulv3.conf.erb')
|
|
||||||
$zuul_merger_source = 'puppet:///modules/zuul/zuul-mergerv3.init'
|
|
||||||
$zuul_scheduler_source = 'puppet:///modules/zuul/zuul-schedulerv3.init'
|
|
||||||
} else {
|
|
||||||
$zuul_conf_content = template('zuul/zuul.conf.erb')
|
|
||||||
$zuul_merger_source = 'puppet:///modules/zuul/zuul-merger.init'
|
|
||||||
$zuul_scheduler_source = 'puppet:///modules/zuul/zuul-scheduler.init'
|
|
||||||
}
|
|
||||||
|
|
||||||
# TODO: We should put in notify either Service['zuul'] or Exec['zuul-reload']
|
|
||||||
# at some point, but that still has some problems.
|
|
||||||
file { '/etc/zuul/zuul.conf':
|
|
||||||
ensure => present,
|
|
||||||
owner => 'zuul',
|
|
||||||
mode => '0400',
|
|
||||||
content => $zuul_conf_content,
|
|
||||||
require => [
|
|
||||||
File['/etc/zuul'],
|
|
||||||
User['zuul'],
|
|
||||||
],
|
|
||||||
}
|
|
||||||
|
|
||||||
file { '/etc/default/zuul':
|
|
||||||
ensure => present,
|
|
||||||
mode => '0444',
|
|
||||||
content => template('zuul/zuul.default.erb'),
|
|
||||||
}
|
|
||||||
|
|
||||||
file { '/var/log/zuul':
|
|
||||||
ensure => directory,
|
|
||||||
owner => 'zuul',
|
|
||||||
require => User['zuul'],
|
|
||||||
}
|
|
||||||
|
|
||||||
file { '/var/run/zuul':
|
|
||||||
ensure => directory,
|
|
||||||
owner => 'zuul',
|
|
||||||
group => 'zuul',
|
|
||||||
require => User['zuul'],
|
|
||||||
}
|
|
||||||
|
|
||||||
file { '/var/run/zuul-merger':
|
|
||||||
ensure => directory,
|
|
||||||
owner => 'zuul',
|
|
||||||
group => 'zuul',
|
|
||||||
require => User['zuul'],
|
|
||||||
}
|
|
||||||
|
|
||||||
file { '/var/lib/zuul':
|
|
||||||
ensure => directory,
|
|
||||||
owner => 'zuul',
|
|
||||||
group => 'zuul',
|
|
||||||
}
|
|
||||||
|
|
||||||
file { '/var/lib/zuul/builds':
|
|
||||||
ensure => directory,
|
|
||||||
owner => 'zuul',
|
|
||||||
group => 'zuul',
|
|
||||||
require => File['/var/lib/zuul'],
|
|
||||||
}
|
|
||||||
|
|
||||||
file { '/var/lib/zuul/git':
|
|
||||||
ensure => directory,
|
|
||||||
owner => 'zuul',
|
|
||||||
require => File['/var/lib/zuul'],
|
|
||||||
}
|
|
||||||
|
|
||||||
file { '/var/lib/zuul/ssh':
|
|
||||||
ensure => directory,
|
|
||||||
owner => 'zuul',
|
|
||||||
group => 'zuul',
|
|
||||||
mode => '0500',
|
|
||||||
require => File['/var/lib/zuul'],
|
|
||||||
}
|
|
||||||
|
|
||||||
file { '/var/lib/zuul/ssh/id_rsa':
|
|
||||||
owner => 'zuul',
|
|
||||||
group => 'zuul',
|
|
||||||
mode => '0400',
|
|
||||||
require => File['/var/lib/zuul/ssh'],
|
|
||||||
content => $zuul_ssh_private_key,
|
|
||||||
}
|
|
||||||
|
|
||||||
if $zuulv3 {
|
|
||||||
$v2_web_dirs = [
|
|
||||||
'/opt/twitter-bootstrap',
|
|
||||||
'/opt/jquery-visibility',
|
|
||||||
'/var/lib/zuul/www',
|
|
||||||
'/opt/graphitejs',
|
|
||||||
]
|
|
||||||
|
|
||||||
file { $v2_web_dirs:
|
|
||||||
ensure => absent,
|
|
||||||
}
|
|
||||||
|
|
||||||
} else {
|
|
||||||
|
|
||||||
file { '/var/lib/zuul/www':
|
|
||||||
ensure => directory,
|
|
||||||
require => File['/var/lib/zuul'],
|
|
||||||
}
|
|
||||||
|
|
||||||
file { '/var/lib/zuul/www/lib':
|
|
||||||
ensure => directory,
|
|
||||||
require => File['/var/lib/zuul/www'],
|
|
||||||
}
|
|
||||||
|
|
||||||
package { 'libjs-jquery':
|
|
||||||
ensure => present,
|
|
||||||
}
|
|
||||||
|
|
||||||
file { '/var/lib/zuul/www/jquery.min.js':
|
|
||||||
ensure => absent
|
|
||||||
}
|
|
||||||
|
|
||||||
file { '/var/lib/zuul/www/lib/jquery.min.js':
|
|
||||||
ensure => link,
|
|
||||||
target => '/usr/share/javascript/jquery/jquery.min.js',
|
|
||||||
require => [File['/var/lib/zuul/www/lib'],
|
|
||||||
Package['libjs-jquery']],
|
|
||||||
}
|
|
||||||
|
|
||||||
vcsrepo { '/opt/twitter-bootstrap':
|
|
||||||
ensure => latest,
|
|
||||||
provider => git,
|
|
||||||
revision => 'v3.1.1',
|
|
||||||
source => 'https://github.com/twbs/bootstrap.git',
|
|
||||||
}
|
|
||||||
|
|
||||||
file { '/var/lib/zuul/www/bootstrap':
|
|
||||||
ensure => absent
|
|
||||||
}
|
|
||||||
|
|
||||||
file { '/var/lib/zuul/www/lib/bootstrap':
|
|
||||||
ensure => link,
|
|
||||||
target => '/opt/twitter-bootstrap/dist',
|
|
||||||
require => [File['/var/lib/zuul/www/lib'],
|
|
||||||
Package['libjs-jquery'],
|
|
||||||
Vcsrepo['/opt/twitter-bootstrap']],
|
|
||||||
}
|
|
||||||
|
|
||||||
vcsrepo { '/opt/jquery-visibility':
|
|
||||||
ensure => latest,
|
|
||||||
provider => git,
|
|
||||||
revision => 'master',
|
|
||||||
source => 'https://github.com/mathiasbynens/jquery-visibility.git',
|
|
||||||
}
|
|
||||||
|
|
||||||
file { '/var/lib/zuul/www/jquery-visibility.min.js':
|
|
||||||
ensure => absent
|
|
||||||
}
|
|
||||||
|
|
||||||
exec { 'install-jquery-visibility':
|
|
||||||
command => 'yui-compressor -o /var/lib/zuul/www/lib/jquery-visibility.js /opt/jquery-visibility/jquery-visibility.js',
|
|
||||||
path => 'bin:/usr/bin',
|
|
||||||
refreshonly => true,
|
|
||||||
subscribe => Vcsrepo['/opt/jquery-visibility'],
|
|
||||||
require => [File['/var/lib/zuul/www/lib'],
|
|
||||||
Package['yui-compressor'],
|
|
||||||
Vcsrepo['/opt/jquery-visibility']],
|
|
||||||
}
|
|
||||||
|
|
||||||
vcsrepo { '/opt/graphitejs':
|
|
||||||
ensure => latest,
|
|
||||||
provider => git,
|
|
||||||
revision => 'master',
|
|
||||||
source => 'https://github.com/prestontimmons/graphitejs.git',
|
|
||||||
}
|
|
||||||
|
|
||||||
file { '/var/lib/zuul/www/jquery.graphite.js':
|
|
||||||
ensure => absent
|
|
||||||
}
|
|
||||||
|
|
||||||
file { '/var/lib/zuul/www/lib/jquery.graphite.js':
|
|
||||||
ensure => link,
|
|
||||||
target => '/opt/graphitejs/jquery.graphite.js',
|
|
||||||
require => [File['/var/lib/zuul/www/lib'],
|
|
||||||
Vcsrepo['/opt/graphitejs']],
|
|
||||||
}
|
|
||||||
|
|
||||||
file { '/var/lib/zuul/www/index.html':
|
|
||||||
ensure => link,
|
|
||||||
target => '/opt/zuul/etc/status/public_html/index.html',
|
|
||||||
require => File['/var/lib/zuul/www'],
|
|
||||||
}
|
|
||||||
|
|
||||||
file { '/var/lib/zuul/www/styles':
|
|
||||||
ensure => link,
|
|
||||||
target => '/opt/zuul/etc/status/public_html/styles',
|
|
||||||
require => File['/var/lib/zuul/www'],
|
|
||||||
}
|
|
||||||
|
|
||||||
file { '/var/lib/zuul/www/zuul.app.js':
|
|
||||||
ensure => link,
|
|
||||||
target => '/opt/zuul/etc/status/public_html/zuul.app.js',
|
|
||||||
require => File['/var/lib/zuul/www'],
|
|
||||||
}
|
|
||||||
|
|
||||||
file { '/var/lib/zuul/www/jquery.zuul.js':
|
|
||||||
ensure => link,
|
|
||||||
target => '/opt/zuul/etc/status/public_html/jquery.zuul.js',
|
|
||||||
require => File['/var/lib/zuul/www'],
|
|
||||||
}
|
|
||||||
|
|
||||||
file { '/var/lib/zuul/www/images':
|
|
||||||
ensure => link,
|
|
||||||
target => '/opt/zuul/etc/status/public_html/images',
|
|
||||||
require => File['/var/lib/zuul/www'],
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if $zuulv3 {
|
|
||||||
file { '/etc/default/zuul-executor':
|
|
||||||
ensure => present,
|
|
||||||
mode => '0444',
|
|
||||||
content => "PIDFILE=/var/run/zuul/executor.pid\nexport LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libjemalloc.so.1\n",
|
|
||||||
}
|
|
||||||
|
|
||||||
file { '/etc/default/zuul-scheduler':
|
|
||||||
ensure => present,
|
|
||||||
mode => '0444',
|
|
||||||
content => "PIDFILE=/var/run/zuul/scheduler.pid\n",
|
|
||||||
}
|
|
||||||
|
|
||||||
file { '/etc/default/zuul-merger':
|
|
||||||
ensure => present,
|
|
||||||
mode => '0444',
|
|
||||||
content => "PIDFILE=/var/run/zuul/merger.pid\n",
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
file { '/etc/init.d/zuul':
|
|
||||||
ensure => present,
|
|
||||||
owner => 'root',
|
|
||||||
group => 'root',
|
|
||||||
mode => '0555',
|
|
||||||
source => 'puppet:///modules/zuul/zuul.init',
|
|
||||||
notify => Class['zuul::systemd_reload'],
|
|
||||||
}
|
|
||||||
|
|
||||||
file { '/etc/init.d/zuul-scheduler':
|
|
||||||
ensure => present,
|
|
||||||
owner => 'root',
|
|
||||||
group => 'root',
|
|
||||||
mode => '0555',
|
|
||||||
source => $zuul_scheduler_source,
|
|
||||||
notify => Class['zuul::systemd_reload'],
|
|
||||||
}
|
|
||||||
|
|
||||||
file { '/etc/init.d/zuul-merger':
|
|
||||||
ensure => present,
|
|
||||||
owner => 'root',
|
|
||||||
group => 'root',
|
|
||||||
mode => '0555',
|
|
||||||
source => $zuul_merger_source,
|
|
||||||
notify => Class['zuul::systemd_reload'],
|
|
||||||
}
|
|
||||||
|
|
||||||
file { '/etc/init.d/zuul-launcher':
|
|
||||||
ensure => present,
|
|
||||||
owner => 'root',
|
|
||||||
group => 'root',
|
|
||||||
mode => '0555',
|
|
||||||
source => 'puppet:///modules/zuul/zuul-launcher.init',
|
|
||||||
notify => Class['zuul::systemd_reload'],
|
|
||||||
}
|
|
||||||
|
|
||||||
file { '/etc/init.d/zuul-executor':
|
|
||||||
ensure => present,
|
|
||||||
owner => 'root',
|
|
||||||
group => 'root',
|
|
||||||
mode => '0555',
|
|
||||||
source => 'puppet:///modules/zuul/zuul-executor.init',
|
|
||||||
notify => Class['zuul::systemd_reload'],
|
|
||||||
}
|
|
||||||
|
|
||||||
if ! $zuulv3 {
|
|
||||||
if $proxy_ssl_cert_file_contents == '' {
|
|
||||||
$ssl = false
|
|
||||||
} else {
|
|
||||||
$ssl = true
|
|
||||||
file { '/etc/ssl/certs':
|
|
||||||
ensure => directory,
|
|
||||||
owner => 'root',
|
|
||||||
group => 'root',
|
|
||||||
mode => '0755',
|
|
||||||
}
|
|
||||||
file { '/etc/ssl/private':
|
|
||||||
ensure => directory,
|
|
||||||
owner => 'root',
|
|
||||||
group => 'root',
|
|
||||||
mode => '0700',
|
|
||||||
}
|
|
||||||
file { "/etc/ssl/certs/${vhost_name}.pem":
|
|
||||||
ensure => present,
|
|
||||||
owner => 'root',
|
|
||||||
group => 'root',
|
|
||||||
mode => '0644',
|
|
||||||
content => $proxy_ssl_cert_file_contents,
|
|
||||||
require => File['/etc/ssl/certs'],
|
|
||||||
before => Httpd::Vhost[$vhost_name],
|
|
||||||
}
|
|
||||||
file { "/etc/ssl/private/${vhost_name}.key":
|
|
||||||
ensure => present,
|
|
||||||
owner => 'root',
|
|
||||||
group => 'root',
|
|
||||||
mode => '0600',
|
|
||||||
content => $proxy_ssl_key_file_contents,
|
|
||||||
require => File['/etc/ssl/private'],
|
|
||||||
before => Httpd::Vhost[$vhost_name],
|
|
||||||
}
|
|
||||||
if $proxy_ssl_chain_file_contents != '' {
|
|
||||||
file { "/etc/ssl/certs/${vhost_name}_intermediate.pem":
|
|
||||||
ensure => present,
|
|
||||||
owner => 'root',
|
|
||||||
group => 'root',
|
|
||||||
mode => '0644',
|
|
||||||
content => $proxy_ssl_chain_file_contents,
|
|
||||||
require => File['/etc/ssl/certs'],
|
|
||||||
before => Httpd::Vhost[$vhost_name],
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if $site_variables_yaml_file != undef {
|
|
||||||
file { '/etc/zuul/site-variables.yaml':
|
|
||||||
ensure => file,
|
|
||||||
group => 'zuul',
|
|
||||||
mode => '0644',
|
|
||||||
owner => 'zuul',
|
|
||||||
replace => true,
|
|
||||||
require => File['/etc/zuul'],
|
|
||||||
source => $site_variables_yaml_file,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if ! $zuulv3 {
|
|
||||||
httpd::vhost { $vhost_name:
|
|
||||||
port => 443, # Is required despite not being used.
|
|
||||||
docroot => 'MEANINGLESS ARGUMENT',
|
|
||||||
priority => '50',
|
|
||||||
ssl => $ssl,
|
|
||||||
template => 'zuul/zuul.vhost.erb',
|
|
||||||
vhost_name => $vhost_name,
|
|
||||||
}
|
|
||||||
if ! defined(Httpd::Mod['rewrite']) {
|
|
||||||
httpd::mod { 'rewrite': ensure => present }
|
|
||||||
}
|
|
||||||
if ! defined(Httpd::Mod['proxy']) {
|
|
||||||
httpd::mod { 'proxy': ensure => present }
|
|
||||||
}
|
|
||||||
if ! defined(Httpd::Mod['proxy_http']) {
|
|
||||||
httpd::mod { 'proxy_http': ensure => present }
|
|
||||||
}
|
|
||||||
if ! defined(Httpd::Mod['cache']) {
|
|
||||||
httpd::mod { 'cache': ensure => present }
|
|
||||||
}
|
|
||||||
if ! defined(Httpd::Mod['cgid']) {
|
|
||||||
httpd::mod { 'cgid': ensure => present }
|
|
||||||
}
|
|
||||||
|
|
||||||
case $::lsbdistcodename {
|
|
||||||
'precise': {
|
|
||||||
if ! defined(Httpd::Mod['mem_cache']) {
|
|
||||||
httpd::mod { 'mem_cache': ensure => present }
|
|
||||||
}
|
|
||||||
if ! defined(Httpd::Mod['version']) {
|
|
||||||
httpd::mod { 'version': ensure => present }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
default: {
|
|
||||||
if ! defined(Httpd::Mod['cache_disk']) {
|
|
||||||
httpd::mod { 'cache_disk': ensure => present }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,37 +0,0 @@
|
|||||||
# Copyright 2015 Hewlett-Packard Development Company, L.P.
|
|
||||||
# Copyright 2015 OpenStack Foundation
|
|
||||||
#
|
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
|
||||||
# not use this file except in compliance with the License. You may obtain
|
|
||||||
# a copy of the License at
|
|
||||||
#
|
|
||||||
# http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
#
|
|
||||||
# Unless required by applicable law or agreed to in writing, software
|
|
||||||
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
||||||
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
||||||
# License for the specific language governing permissions and limitations
|
|
||||||
# under the License.
|
|
||||||
|
|
||||||
# == Class: zuul::known_hosts
|
|
||||||
#
|
|
||||||
class zuul::known_hosts (
|
|
||||||
$known_hosts_content
|
|
||||||
) {
|
|
||||||
file { '/home/zuul/.ssh':
|
|
||||||
ensure => directory,
|
|
||||||
owner => 'zuul',
|
|
||||||
group => 'zuul',
|
|
||||||
mode => '0700',
|
|
||||||
require => Class['::zuul'],
|
|
||||||
}
|
|
||||||
file { '/home/zuul/.ssh/known_hosts':
|
|
||||||
ensure => present,
|
|
||||||
owner => 'zuul',
|
|
||||||
group => 'zuul',
|
|
||||||
mode => '0600',
|
|
||||||
content => $known_hosts_content,
|
|
||||||
replace => true,
|
|
||||||
require => File['/home/zuul/.ssh'],
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,90 +0,0 @@
|
|||||||
# Copyright 2012-2013 Hewlett-Packard Development Company, L.P.
|
|
||||||
# Copyright 2014 OpenStack Foundation
|
|
||||||
# Copyright 2016 IBM Corp.
|
|
||||||
#
|
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
|
||||||
# not use this file except in compliance with the License. You may obtain
|
|
||||||
# a copy of the License at
|
|
||||||
#
|
|
||||||
# http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
#
|
|
||||||
# Unless required by applicable law or agreed to in writing, software
|
|
||||||
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
||||||
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
||||||
# License for the specific language governing permissions and limitations
|
|
||||||
# under the License.
|
|
||||||
|
|
||||||
# == Class: zuul::launcher
|
|
||||||
#
|
|
||||||
class zuul::launcher (
|
|
||||||
$ensure = undef,
|
|
||||||
$manage_log_conf = true,
|
|
||||||
) {
|
|
||||||
service { 'zuul-launcher':
|
|
||||||
ensure => $ensure,
|
|
||||||
name => 'zuul-launcher',
|
|
||||||
enable => true,
|
|
||||||
hasrestart => true,
|
|
||||||
require => [File['/etc/init.d/zuul-launcher'],
|
|
||||||
Class['zuul::systemd_reload']]
|
|
||||||
}
|
|
||||||
|
|
||||||
exec { 'zuul-launcher-reload':
|
|
||||||
command => '/etc/init.d/zuul-launcher reload',
|
|
||||||
require => File['/etc/init.d/zuul-launcher'],
|
|
||||||
refreshonly => true,
|
|
||||||
}
|
|
||||||
|
|
||||||
if $manage_log_conf {
|
|
||||||
file { '/etc/zuul/launcher-logging.conf':
|
|
||||||
ensure => present,
|
|
||||||
source => 'puppet:///modules/zuul/launcher-logging.conf',
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
package { 'lftp':
|
|
||||||
ensure => present,
|
|
||||||
}
|
|
||||||
|
|
||||||
package { 'pyzmq':
|
|
||||||
ensure => present,
|
|
||||||
provider => openstack_pip,
|
|
||||||
require => Class['pip'],
|
|
||||||
}
|
|
||||||
|
|
||||||
package { 'jenkins-job-builder':
|
|
||||||
ensure => '1.6.2',
|
|
||||||
provider => openstack_pip,
|
|
||||||
require => Class['pip'],
|
|
||||||
}
|
|
||||||
|
|
||||||
package { 'ansible':
|
|
||||||
ensure => '2.1.4.0',
|
|
||||||
provider => openstack_pip,
|
|
||||||
require => Class['pip'],
|
|
||||||
}
|
|
||||||
|
|
||||||
include logrotate
|
|
||||||
logrotate::file { 'launcher.log':
|
|
||||||
log => '/var/log/zuul/launcher.log',
|
|
||||||
options => [
|
|
||||||
'compress',
|
|
||||||
'missingok',
|
|
||||||
'rotate 30',
|
|
||||||
'daily',
|
|
||||||
'notifempty',
|
|
||||||
],
|
|
||||||
require => Service['zuul-launcher'],
|
|
||||||
}
|
|
||||||
logrotate::file { 'launcher-debug.log':
|
|
||||||
log => '/var/log/zuul/launcher-debug.log',
|
|
||||||
options => [
|
|
||||||
'compress',
|
|
||||||
'missingok',
|
|
||||||
'rotate 30',
|
|
||||||
'daily',
|
|
||||||
'notifempty',
|
|
||||||
],
|
|
||||||
require => Service['zuul-launcher'],
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,71 +0,0 @@
|
|||||||
# Copyright 2012-2013 Hewlett-Packard Development Company, L.P.
|
|
||||||
# Copyright 2014 OpenStack Foundation
|
|
||||||
#
|
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
|
||||||
# not use this file except in compliance with the License. You may obtain
|
|
||||||
# a copy of the License at
|
|
||||||
#
|
|
||||||
# http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
#
|
|
||||||
# Unless required by applicable law or agreed to in writing, software
|
|
||||||
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
||||||
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
||||||
# License for the specific language governing permissions and limitations
|
|
||||||
# under the License.
|
|
||||||
|
|
||||||
# == Class: zuul::merger
|
|
||||||
#
|
|
||||||
class zuul::merger (
|
|
||||||
$ensure = undef,
|
|
||||||
$manage_log_conf = true,
|
|
||||||
) {
|
|
||||||
service { 'zuul-merger':
|
|
||||||
ensure => $ensure,
|
|
||||||
name => 'zuul-merger',
|
|
||||||
enable => true,
|
|
||||||
hasrestart => true,
|
|
||||||
require => [File['/etc/init.d/zuul-merger'],
|
|
||||||
Class['zuul::systemd_reload']]
|
|
||||||
}
|
|
||||||
|
|
||||||
cron { 'zuul_repack':
|
|
||||||
user => 'zuul',
|
|
||||||
hour => '4',
|
|
||||||
minute => '7',
|
|
||||||
command => 'find /var/lib/zuul/git/ -maxdepth 3 -type d -name ".git" -exec git --git-dir="{}" pack-refs --all \;',
|
|
||||||
environment => 'PATH=/usr/bin:/bin:/usr/sbin:/sbin',
|
|
||||||
require => [User['zuul'],
|
|
||||||
File['/var/lib/zuul/git']],
|
|
||||||
}
|
|
||||||
|
|
||||||
if $manage_log_conf {
|
|
||||||
file { '/etc/zuul/merger-logging.conf':
|
|
||||||
ensure => present,
|
|
||||||
source => 'puppet:///modules/zuul/merger-logging.conf',
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
include logrotate
|
|
||||||
logrotate::file { 'merger.log':
|
|
||||||
log => '/var/log/zuul/merger.log',
|
|
||||||
options => [
|
|
||||||
'compress',
|
|
||||||
'missingok',
|
|
||||||
'rotate 30',
|
|
||||||
'daily',
|
|
||||||
'notifempty',
|
|
||||||
],
|
|
||||||
require => Service['zuul-merger'],
|
|
||||||
}
|
|
||||||
logrotate::file { 'merger-debug.log':
|
|
||||||
log => '/var/log/zuul/merger-debug.log',
|
|
||||||
options => [
|
|
||||||
'compress',
|
|
||||||
'missingok',
|
|
||||||
'rotate 30',
|
|
||||||
'daily',
|
|
||||||
'notifempty',
|
|
||||||
],
|
|
||||||
require => Service['zuul-merger'],
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,130 +0,0 @@
|
|||||||
# Copyright 2012-2013 Hewlett-Packard Development Company, L.P.
|
|
||||||
# Copyright 2014 OpenStack Foundation
|
|
||||||
#
|
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
|
||||||
# not use this file except in compliance with the License. You may obtain
|
|
||||||
# a copy of the License at
|
|
||||||
#
|
|
||||||
# http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
#
|
|
||||||
# Unless required by applicable law or agreed to in writing, software
|
|
||||||
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
||||||
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
||||||
# License for the specific language governing permissions and limitations
|
|
||||||
# under the License.
|
|
||||||
|
|
||||||
# == Class: zuul::scheduler
|
|
||||||
#
|
|
||||||
class zuul::scheduler (
|
|
||||||
$ensure = undef,
|
|
||||||
$layout_dir = '',
|
|
||||||
$manage_log_conf = true,
|
|
||||||
$python_version = 2,
|
|
||||||
$use_mysql = false,
|
|
||||||
) {
|
|
||||||
|
|
||||||
include pip
|
|
||||||
|
|
||||||
if ($use_mysql) {
|
|
||||||
if ($python_version == 3) {
|
|
||||||
include pip::python3
|
|
||||||
$pip_provider = pip3
|
|
||||||
$pip_command = 'pip3'
|
|
||||||
} else {
|
|
||||||
$pip_provider = openstack_pip
|
|
||||||
$pip_command = 'pip'
|
|
||||||
}
|
|
||||||
|
|
||||||
package { 'PyMySQL':
|
|
||||||
ensure => present,
|
|
||||||
provider => $pip_provider,
|
|
||||||
require => Class['pip'],
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($::operatingsystem == 'Ubuntu') and ($::operatingsystemrelease >= '16.04') {
|
|
||||||
# This is a hack to make sure that systemd is aware of the new service
|
|
||||||
# before we attempt to start it.
|
|
||||||
exec { 'zuul-scheduler-systemd-daemon-reload':
|
|
||||||
command => '/bin/systemctl daemon-reload',
|
|
||||||
before => Service['zuul-scheduler'],
|
|
||||||
subscribe => File['/etc/init.d/zuul-scheduler'],
|
|
||||||
refreshonly => true,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
service { 'zuul-scheduler':
|
|
||||||
ensure => $ensure,
|
|
||||||
enable => true,
|
|
||||||
hasrestart => true,
|
|
||||||
require => [File['/etc/init.d/zuul-scheduler'],
|
|
||||||
Class['zuul::systemd_reload']]
|
|
||||||
}
|
|
||||||
|
|
||||||
exec { 'zuul-reload':
|
|
||||||
command => '/etc/init.d/zuul-scheduler reload',
|
|
||||||
require => File['/etc/init.d/zuul-scheduler'],
|
|
||||||
refreshonly => true,
|
|
||||||
}
|
|
||||||
|
|
||||||
file { '/etc/zuul/layout':
|
|
||||||
ensure => directory,
|
|
||||||
owner => 'root',
|
|
||||||
group => 'root',
|
|
||||||
mode => '0755',
|
|
||||||
recurse => true,
|
|
||||||
purge => true,
|
|
||||||
force => true,
|
|
||||||
source => $layout_dir,
|
|
||||||
require => File['/etc/zuul'],
|
|
||||||
notify => Exec['zuul-reload'],
|
|
||||||
}
|
|
||||||
|
|
||||||
if $manage_log_conf {
|
|
||||||
file { '/etc/zuul/logging.conf':
|
|
||||||
ensure => present,
|
|
||||||
source => 'puppet:///modules/zuul/logging.conf',
|
|
||||||
notify => Exec['zuul-reload'],
|
|
||||||
}
|
|
||||||
|
|
||||||
file { '/etc/zuul/gearman-logging.conf':
|
|
||||||
ensure => present,
|
|
||||||
source => 'puppet:///modules/zuul/gearman-logging.conf',
|
|
||||||
notify => Exec['zuul-reload'],
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
include logrotate
|
|
||||||
logrotate::file { 'zuul.log':
|
|
||||||
log => '/var/log/zuul/zuul.log',
|
|
||||||
options => [
|
|
||||||
'compress',
|
|
||||||
'missingok',
|
|
||||||
'rotate 30',
|
|
||||||
'daily',
|
|
||||||
'notifempty',
|
|
||||||
],
|
|
||||||
require => Service['zuul-scheduler'],
|
|
||||||
}
|
|
||||||
logrotate::file { 'zuul-debug.log':
|
|
||||||
log => '/var/log/zuul/debug.log',
|
|
||||||
options => [
|
|
||||||
'compress',
|
|
||||||
'missingok',
|
|
||||||
'rotate 30',
|
|
||||||
'daily',
|
|
||||||
'notifempty',
|
|
||||||
],
|
|
||||||
require => Service['zuul-scheduler'],
|
|
||||||
}
|
|
||||||
logrotate::file { 'gearman-server.log':
|
|
||||||
log => '/var/log/zuul/gearman-server.log',
|
|
||||||
options => [
|
|
||||||
'compress',
|
|
||||||
'missingok',
|
|
||||||
'rotate 7',
|
|
||||||
'daily',
|
|
||||||
'notifempty',
|
|
||||||
],
|
|
||||||
require => Service['zuul-scheduler'],
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,99 +0,0 @@
|
|||||||
# Copyright 2012-2013 Hewlett-Packard Development Company, L.P.
|
|
||||||
# Copyright 2014 OpenStack Foundation
|
|
||||||
#
|
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
|
||||||
# not use this file except in compliance with the License. You may obtain
|
|
||||||
# a copy of the License at
|
|
||||||
#
|
|
||||||
# http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
#
|
|
||||||
# Unless required by applicable law or agreed to in writing, software
|
|
||||||
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
||||||
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
||||||
# License for the specific language governing permissions and limitations
|
|
||||||
# under the License.
|
|
||||||
|
|
||||||
# == Class: zuul::server
|
|
||||||
#
|
|
||||||
class zuul::server (
|
|
||||||
$ensure = undef,
|
|
||||||
$layout_dir = '',
|
|
||||||
$manage_log_conf = true,
|
|
||||||
) {
|
|
||||||
service { 'zuul':
|
|
||||||
ensure => $ensure,
|
|
||||||
name => 'zuul',
|
|
||||||
enable => true,
|
|
||||||
hasrestart => true,
|
|
||||||
require => [File['/etc/init.d/zuul'],
|
|
||||||
Class['zuul::systemd_reload']]
|
|
||||||
}
|
|
||||||
|
|
||||||
exec { 'zuul-reload':
|
|
||||||
command => '/etc/init.d/zuul reload',
|
|
||||||
require => File['/etc/init.d/zuul'],
|
|
||||||
refreshonly => true,
|
|
||||||
}
|
|
||||||
|
|
||||||
file { '/etc/zuul/layout':
|
|
||||||
ensure => directory,
|
|
||||||
owner => 'root',
|
|
||||||
group => 'root',
|
|
||||||
mode => '0755',
|
|
||||||
recurse => true,
|
|
||||||
purge => true,
|
|
||||||
force => true,
|
|
||||||
source => $layout_dir,
|
|
||||||
require => File['/etc/zuul'],
|
|
||||||
notify => Exec['zuul-reload'],
|
|
||||||
}
|
|
||||||
|
|
||||||
if $manage_log_conf {
|
|
||||||
file { '/etc/zuul/logging.conf':
|
|
||||||
ensure => present,
|
|
||||||
source => 'puppet:///modules/zuul/logging.conf',
|
|
||||||
notify => Exec['zuul-reload'],
|
|
||||||
}
|
|
||||||
|
|
||||||
file { '/etc/zuul/gearman-logging.conf':
|
|
||||||
ensure => present,
|
|
||||||
source => 'puppet:///modules/zuul/gearman-logging.conf',
|
|
||||||
notify => Exec['zuul-reload'],
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
include logrotate
|
|
||||||
logrotate::file { 'zuul.log':
|
|
||||||
log => '/var/log/zuul/zuul.log',
|
|
||||||
options => [
|
|
||||||
'compress',
|
|
||||||
'missingok',
|
|
||||||
'rotate 30',
|
|
||||||
'daily',
|
|
||||||
'notifempty',
|
|
||||||
],
|
|
||||||
require => Service['zuul'],
|
|
||||||
}
|
|
||||||
logrotate::file { 'zuul-debug.log':
|
|
||||||
log => '/var/log/zuul/debug.log',
|
|
||||||
options => [
|
|
||||||
'compress',
|
|
||||||
'missingok',
|
|
||||||
'rotate 30',
|
|
||||||
'daily',
|
|
||||||
'notifempty',
|
|
||||||
],
|
|
||||||
require => Service['zuul'],
|
|
||||||
}
|
|
||||||
logrotate::file { 'gearman-server.log':
|
|
||||||
log => '/var/log/zuul/gearman-server.log',
|
|
||||||
options => [
|
|
||||||
'compress',
|
|
||||||
'missingok',
|
|
||||||
'rotate 7',
|
|
||||||
'daily',
|
|
||||||
'notifempty',
|
|
||||||
],
|
|
||||||
require => Service['zuul'],
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,49 +0,0 @@
|
|||||||
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
|
||||||
# not use this file except in compliance with the License. You may obtain
|
|
||||||
# a copy of the License at
|
|
||||||
#
|
|
||||||
# http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
#
|
|
||||||
# Unless required by applicable law or agreed to in writing, software
|
|
||||||
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
||||||
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
||||||
# License for the specific language governing permissions and limitations
|
|
||||||
# under the License.
|
|
||||||
|
|
||||||
# == Define: zuul::ssl_files
|
|
||||||
#
|
|
||||||
define zuul::ssl_files (
|
|
||||||
$ssl_cert_file_contents,
|
|
||||||
$ssl_key_file_contents,
|
|
||||||
$ssl_chain_file_contents,
|
|
||||||
) {
|
|
||||||
file { "/etc/ssl/certs/${name}.pem":
|
|
||||||
ensure => present,
|
|
||||||
owner => 'root',
|
|
||||||
group => 'root',
|
|
||||||
mode => '0644',
|
|
||||||
content => $ssl_cert_file_contents,
|
|
||||||
require => File['/etc/ssl/certs'],
|
|
||||||
before => Httpd::Vhost[$name],
|
|
||||||
}
|
|
||||||
file { "/etc/ssl/private/${name}.key":
|
|
||||||
ensure => present,
|
|
||||||
owner => 'root',
|
|
||||||
group => 'root',
|
|
||||||
mode => '0600',
|
|
||||||
content => $ssl_key_file_contents,
|
|
||||||
require => File['/etc/ssl/private'],
|
|
||||||
before => Httpd::Vhost[$name],
|
|
||||||
}
|
|
||||||
if $ssl_chain_file_contents != '' {
|
|
||||||
file { "/etc/ssl/certs/${name}_intermediate.pem":
|
|
||||||
ensure => present,
|
|
||||||
owner => 'root',
|
|
||||||
group => 'root',
|
|
||||||
mode => '0644',
|
|
||||||
content => $ssl_chain_file_contents,
|
|
||||||
require => File['/etc/ssl/certs'],
|
|
||||||
before => Httpd::Vhost[$name],
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,60 +0,0 @@
|
|||||||
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
|
||||||
# not use this file except in compliance with the License. You may obtain
|
|
||||||
# a copy of the License at
|
|
||||||
#
|
|
||||||
# http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
#
|
|
||||||
# Unless required by applicable law or agreed to in writing, software
|
|
||||||
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
||||||
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
||||||
# License for the specific language governing permissions and limitations
|
|
||||||
# under the License.
|
|
||||||
|
|
||||||
# == Define: zuul::status_backups
|
|
||||||
#
|
|
||||||
define zuul::status_backups (
|
|
||||||
$tenant_name,
|
|
||||||
$ssl,
|
|
||||||
$use_le = undef, # Unused here
|
|
||||||
$status_uri = undef,
|
|
||||||
) {
|
|
||||||
if $status_uri == undef {
|
|
||||||
if $ssl {
|
|
||||||
$status = "https://${name}/api/status"
|
|
||||||
} else {
|
|
||||||
$status = "http://${name}/api/status"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
$status = $status_uri
|
|
||||||
}
|
|
||||||
|
|
||||||
if $tenant_name and $tenant_name != '' {
|
|
||||||
# Minutes, hours, days, etc are not specified here because we are
|
|
||||||
# interested in running this *every minute*.
|
|
||||||
# This is a mean of backing up status.json periodically in order to provide
|
|
||||||
# a mean of restoring lost scheduler queues if need be.
|
|
||||||
# We are downloading this file at a location served by the vhost so that we
|
|
||||||
# can query it easily should the need arise.
|
|
||||||
# If the status.json is unavailable for download, no new files are created.
|
|
||||||
cron { "zuul_scheduler_status_backup-${name}":
|
|
||||||
user => 'root',
|
|
||||||
command => "timeout -k 5 10 curl ${status} -o /var/lib/zuul/backup/${name}_status_$(date +\\%s).json 2>/dev/null",
|
|
||||||
require => [Package['curl'],
|
|
||||||
User['zuul'],
|
|
||||||
File['/var/lib/zuul/backup']],
|
|
||||||
}
|
|
||||||
# Rotate backups and keep no more than 120 files -- or 2 hours worth of
|
|
||||||
# backup if Zuul has 100% uptime.
|
|
||||||
# We're not basing the rotation on time because the scheduler/web service
|
|
||||||
# could be down for an extended period of time.
|
|
||||||
# This is ran hourly so technically up to ~3 hours worth of backups will
|
|
||||||
# be kept.
|
|
||||||
cron { "zuul_scheduler_status_prune-${name}":
|
|
||||||
user => 'root',
|
|
||||||
minute => '0',
|
|
||||||
command => "flock -n /var/run/${name}_status_prune.lock ls -dt -1 /var/lib/zuul/backup/${name}_* |sed -e '1,120d' |xargs rm -f",
|
|
||||||
require => Cron["zuul_scheduler_status_backup-${name}"],
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,12 +0,0 @@
|
|||||||
# zuul::systemd_reload
|
|
||||||
#
|
|
||||||
class zuul::systemd_reload(
|
|
||||||
) {
|
|
||||||
if versioncmp($::operatingsystemmajrelease, '16.04') >= 0 and ! defined(Exec['systemctl-daemon-reload']) {
|
|
||||||
exec {'systemctl-daemon-reload':
|
|
||||||
command => 'systemctl daemon-reload',
|
|
||||||
path => '/bin:/usr/bin',
|
|
||||||
refreshonly => true,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
259
manifests/web.pp
259
manifests/web.pp
@ -1,259 +0,0 @@
|
|||||||
# Copyright 2017 Red Hat, Inc.
|
|
||||||
#
|
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
|
||||||
# not use this file except in compliance with the License. You may obtain
|
|
||||||
# a copy of the License at
|
|
||||||
#
|
|
||||||
# http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
#
|
|
||||||
# Unless required by applicable law or agreed to in writing, software
|
|
||||||
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
||||||
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
||||||
# License for the specific language governing permissions and limitations
|
|
||||||
# under the License.
|
|
||||||
|
|
||||||
# == Class: zuul::web
|
|
||||||
#
|
|
||||||
class zuul::web (
|
|
||||||
$ensure = undef,
|
|
||||||
$manage_log_conf = true,
|
|
||||||
$web_listen_address = '127.0.0.1',
|
|
||||||
$web_listen_port = 9000,
|
|
||||||
$enable_status_backups = true,
|
|
||||||
$tenant_name = '',
|
|
||||||
$vhost_name = $::fqdn,
|
|
||||||
$ssl_cert_file_contents = '',
|
|
||||||
$ssl_key_file_contents = '',
|
|
||||||
$ssl_chain_file_contents = '',
|
|
||||||
$block_referers = [],
|
|
||||||
$serveradmin = "webmaster@${::fqdn}",
|
|
||||||
# New sets of hashes on which create resources will be run.
|
|
||||||
# If not supplied the legacy parameters above will be used to
|
|
||||||
# construct these hashes.
|
|
||||||
$vhosts = {},
|
|
||||||
$vhosts_flags = {},
|
|
||||||
$vhosts_ssl = {},
|
|
||||||
) {
|
|
||||||
|
|
||||||
$web_url = "http://${web_listen_address}:${web_listen_port}"
|
|
||||||
$websocket_url = "ws://${web_listen_address}:${web_listen_port}"
|
|
||||||
$zuul_web_root = '/opt/zuul-web'
|
|
||||||
$zuul_web_content_root = '/opt/zuul-web/content'
|
|
||||||
$zuul_web_src_root = '/opt/zuul-web/source'
|
|
||||||
$zuul_web_filename = 'zuul-js-content-master.tar.gz'
|
|
||||||
$zuul_web_url = "https://tarballs.opendev.org/zuul/zuul/${zuul_web_filename}"
|
|
||||||
|
|
||||||
if $vhosts == {} {
|
|
||||||
if $ssl_cert_file_contents == '' {
|
|
||||||
$vhost_port = 80
|
|
||||||
$use_ssl = false
|
|
||||||
$vhosts_ssl_int = {}
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
$vhost_port = 443
|
|
||||||
$use_ssl = true
|
|
||||||
$vhosts_ssl_int = {
|
|
||||||
"${vhost_name}" => {
|
|
||||||
ssl_cert_file_contents => $ssl_cert_file_contents,
|
|
||||||
ssl_key_file_contents => $ssl_key_file_contents,
|
|
||||||
ssl_chain_file_contents => $ssl_chain_file_contents,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
$vhosts_int = {
|
|
||||||
"${vhost_name}" => {
|
|
||||||
port => $vhost_port,
|
|
||||||
docroot => $zuul_web_content_root,
|
|
||||||
priority => '50',
|
|
||||||
ssl => $use_ssl,
|
|
||||||
template => 'zuul/zuulv3.vhost.erb',
|
|
||||||
vhost_name => $vhost_name,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
$vhosts_flags_int = {
|
|
||||||
"${vhost_name}" => {
|
|
||||||
tenant_name => $tenant_name,
|
|
||||||
ssl => $use_ssl,
|
|
||||||
use_le => false,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
$vhosts_ssl_int = $vhosts_ssl
|
|
||||||
$vhosts_int = $vhosts
|
|
||||||
$vhosts_flags_int = $vhosts_flags
|
|
||||||
}
|
|
||||||
|
|
||||||
service { 'zuul-web':
|
|
||||||
ensure => $ensure,
|
|
||||||
name => 'zuul-web',
|
|
||||||
enable => true,
|
|
||||||
hasrestart => true,
|
|
||||||
require => [File['/etc/init.d/zuul-web'],
|
|
||||||
File['/etc/default/zuul-web'],
|
|
||||||
Class['zuul::systemd_reload']]
|
|
||||||
}
|
|
||||||
|
|
||||||
file { '/etc/init.d/zuul-web':
|
|
||||||
ensure => present,
|
|
||||||
owner => 'root',
|
|
||||||
group => 'root',
|
|
||||||
mode => '0555',
|
|
||||||
source => 'puppet:///modules/zuul/zuul-web.init',
|
|
||||||
notify => Class['zuul::systemd_reload'],
|
|
||||||
}
|
|
||||||
|
|
||||||
if $manage_log_conf {
|
|
||||||
file { '/etc/zuul/web-logging.conf':
|
|
||||||
ensure => present,
|
|
||||||
source => 'puppet:///modules/zuul/web-logging.conf',
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
include logrotate
|
|
||||||
logrotate::file { 'web.log':
|
|
||||||
log => '/var/log/zuul/web.log',
|
|
||||||
options => [
|
|
||||||
'compress',
|
|
||||||
'missingok',
|
|
||||||
'rotate 30',
|
|
||||||
'daily',
|
|
||||||
'notifempty',
|
|
||||||
],
|
|
||||||
require => Service['zuul-web'],
|
|
||||||
}
|
|
||||||
logrotate::file { 'web-debug.log':
|
|
||||||
log => '/var/log/zuul/web-debug.log',
|
|
||||||
options => [
|
|
||||||
'compress',
|
|
||||||
'missingok',
|
|
||||||
'rotate 30',
|
|
||||||
'daily',
|
|
||||||
'notifempty',
|
|
||||||
],
|
|
||||||
require => Service['zuul-web'],
|
|
||||||
}
|
|
||||||
|
|
||||||
file { '/etc/default/zuul-web':
|
|
||||||
ensure => present,
|
|
||||||
mode => '0444',
|
|
||||||
content => "PIDFILE=/var/run/zuul/web.pid\n",
|
|
||||||
}
|
|
||||||
|
|
||||||
if !defined(Package['curl']) {
|
|
||||||
package { 'curl':
|
|
||||||
ensure => present
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
file { '/var/lib/zuul/backup':
|
|
||||||
ensure => directory,
|
|
||||||
require => File['/var/lib/zuul'],
|
|
||||||
}
|
|
||||||
|
|
||||||
if $enable_status_backups {
|
|
||||||
create_resources(zuul::status_backups, $vhosts_flags_int)
|
|
||||||
}
|
|
||||||
|
|
||||||
file { $zuul_web_root:
|
|
||||||
ensure => directory,
|
|
||||||
group => 'zuul',
|
|
||||||
mode => '0755',
|
|
||||||
owner => 'zuul',
|
|
||||||
require => User['zuul'],
|
|
||||||
}
|
|
||||||
|
|
||||||
file { $zuul_web_content_root:
|
|
||||||
ensure => directory,
|
|
||||||
group => 'zuul',
|
|
||||||
mode => '0755',
|
|
||||||
owner => 'zuul',
|
|
||||||
require => [
|
|
||||||
File[$zuul_web_root],
|
|
||||||
User['zuul'],
|
|
||||||
]
|
|
||||||
}
|
|
||||||
|
|
||||||
file { $zuul_web_src_root:
|
|
||||||
ensure => directory,
|
|
||||||
group => 'zuul',
|
|
||||||
mode => '0755',
|
|
||||||
owner => 'zuul',
|
|
||||||
require => [
|
|
||||||
File[$zuul_web_root],
|
|
||||||
User['zuul'],
|
|
||||||
]
|
|
||||||
}
|
|
||||||
|
|
||||||
# Download the latest zuul-web
|
|
||||||
exec { 'get-zuul-web':
|
|
||||||
command => "curl ${zuul_web_url} -z ./${zuul_web_filename} -o ${zuul_web_filename}",
|
|
||||||
path => '/bin:/usr/bin',
|
|
||||||
cwd => $zuul_web_root,
|
|
||||||
require => [
|
|
||||||
File[$zuul_web_root],
|
|
||||||
File[$zuul_web_content_root],
|
|
||||||
File[$zuul_web_src_root],
|
|
||||||
],
|
|
||||||
onlyif => "curl -I ${zuul_web_url} -z ./${zuul_web_filename} | grep '200 OK'",
|
|
||||||
}
|
|
||||||
|
|
||||||
# Unpack storyboard-zuul_web
|
|
||||||
exec { 'unpack-zuul-web':
|
|
||||||
command => "rm -rf ${zuul_web_src_root}/* && tar -C ${zuul_web_src_root} -xzf ./${zuul_web_filename}",
|
|
||||||
path => '/bin:/usr/bin',
|
|
||||||
refreshonly => true,
|
|
||||||
cwd => $zuul_web_root,
|
|
||||||
require => Exec['get-zuul-web'],
|
|
||||||
subscribe => Exec['get-zuul-web'],
|
|
||||||
}
|
|
||||||
|
|
||||||
# Sync zuul-web to the directory we serve it from. This is so that we don't
|
|
||||||
# have files go missing - but also so that we can clean up old verisons of
|
|
||||||
# files. The assets built by webpack have hashes in the filenames to help
|
|
||||||
# with caching.
|
|
||||||
exec { 'sync-zuul-web':
|
|
||||||
command => "rsync -rl --delete-delay . ${zuul_web_content_root}/",
|
|
||||||
path => '/bin:/usr/bin',
|
|
||||||
refreshonly => true,
|
|
||||||
cwd => $zuul_web_src_root,
|
|
||||||
require => Exec['unpack-zuul-web'],
|
|
||||||
subscribe => Exec['unpack-zuul-web'],
|
|
||||||
}
|
|
||||||
|
|
||||||
if ! defined(Httpd::Mod['rewrite']) {
|
|
||||||
httpd::mod { 'rewrite': ensure => present }
|
|
||||||
}
|
|
||||||
if ! defined(Httpd::Mod['proxy']) {
|
|
||||||
httpd::mod { 'proxy': ensure => present }
|
|
||||||
}
|
|
||||||
if ! defined(Httpd::Mod['proxy_http']) {
|
|
||||||
httpd::mod { 'proxy_http': ensure => present }
|
|
||||||
}
|
|
||||||
if ! defined(Httpd::Mod['cache']) {
|
|
||||||
httpd::mod { 'cache': ensure => present }
|
|
||||||
}
|
|
||||||
if !defined(Httpd::Mod['proxy_wstunnel']) {
|
|
||||||
httpd::mod { 'proxy_wstunnel': ensure => present }
|
|
||||||
}
|
|
||||||
if ! defined(Httpd::Mod['cache_disk']) {
|
|
||||||
httpd::mod { 'cache_disk': ensure => present }
|
|
||||||
}
|
|
||||||
|
|
||||||
if $vhosts_ssl_int != {} {
|
|
||||||
file { '/etc/ssl/certs':
|
|
||||||
ensure => directory,
|
|
||||||
owner => 'root',
|
|
||||||
group => 'root',
|
|
||||||
mode => '0755',
|
|
||||||
}
|
|
||||||
file { '/etc/ssl/private':
|
|
||||||
ensure => directory,
|
|
||||||
owner => 'root',
|
|
||||||
group => 'root',
|
|
||||||
mode => '0700',
|
|
||||||
}
|
|
||||||
create_resources(zuul::ssl_files, $vhosts_ssl_int)
|
|
||||||
}
|
|
||||||
create_resources(httpd::vhost, $vhosts_int)
|
|
||||||
}
|
|
@ -1,13 +0,0 @@
|
|||||||
{
|
|
||||||
"name": "openstackinfra-zuul",
|
|
||||||
"version": "0.0.1",
|
|
||||||
"author": "Openstack CI",
|
|
||||||
"summary": "Puppet module for Zuul",
|
|
||||||
"license": "Apache 2.0",
|
|
||||||
"source": "https://git.openstack.org/openstack-infra/puppet-zuul.git",
|
|
||||||
"project_page": "http://docs.openstack.org/infra/system-config/",
|
|
||||||
"issues_url": "https://storyboard.openstack.org/#!/project/740",
|
|
||||||
"dependencies": [
|
|
||||||
{"name":"openstackinfra/vcsrepo","version_requirement":">= 0.0.8"}
|
|
||||||
]
|
|
||||||
}
|
|
@ -1,158 +0,0 @@
|
|||||||
# coding: utf-8
|
|
||||||
require 'puppet-openstack_infra_spec_helper/spec_helper_acceptance'
|
|
||||||
|
|
||||||
# https://blog.lorentzca.me/add-custom-matcher-of-serverspec/
|
|
||||||
# 既存のリソースタイプにマッチャーを追加する覚書き
|
|
||||||
class Specinfra::Command::Base::Package < Specinfra::Command::Base
|
|
||||||
class << self
|
|
||||||
def check_is_installed_by_pip3(name, version=nil)
|
|
||||||
regexp = "^#{name} "
|
|
||||||
cmd = "pip3 list | grep -iw -- #{escape(regexp)}"
|
|
||||||
cmd = "#{cmd} | grep -w -- #{escape(version)}" if version
|
|
||||||
cmd
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
describe 'puppet-zuul module', :if => ['debian', 'ubuntu'].include?(os[:family]) do
|
|
||||||
def pp_path
|
|
||||||
base_path = File.dirname(__FILE__)
|
|
||||||
File.join(base_path, 'fixtures')
|
|
||||||
end
|
|
||||||
|
|
||||||
def preconditions_puppet_module
|
|
||||||
module_path = File.join(pp_path, 'preconditions.pp')
|
|
||||||
File.read(module_path)
|
|
||||||
end
|
|
||||||
|
|
||||||
def post_conditions_puppet_module
|
|
||||||
module_path = File.join(pp_path, 'postconditions.pp')
|
|
||||||
File.read(module_path)
|
|
||||||
end
|
|
||||||
|
|
||||||
def default_puppet_module
|
|
||||||
module_path = File.join(pp_path, 'default.pp')
|
|
||||||
File.read(module_path)
|
|
||||||
end
|
|
||||||
|
|
||||||
before(:all) do
|
|
||||||
apply_manifest(preconditions_puppet_module, catch_failures: true)
|
|
||||||
end
|
|
||||||
|
|
||||||
it 'should work with no errors' do
|
|
||||||
apply_manifest(default_puppet_module, catch_failures: true)
|
|
||||||
end
|
|
||||||
|
|
||||||
it 'should enable zuul server and zuul merger services' do
|
|
||||||
apply_manifest(post_conditions_puppet_module, catch_failures: true)
|
|
||||||
end
|
|
||||||
|
|
||||||
describe 'required users' do
|
|
||||||
describe user('zuul') do
|
|
||||||
it { should exist }
|
|
||||||
it { should belong_to_group 'zuul' }
|
|
||||||
it { should have_home_directory '/home/zuul' }
|
|
||||||
it { should have_login_shell '/bin/bash' }
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
describe 'required operating system packages' do
|
|
||||||
packages = [
|
|
||||||
package('git'),
|
|
||||||
package('build-essential'),
|
|
||||||
]
|
|
||||||
packages << package('apache2') if ['ubuntu', 'debian'].include?(os[:family])
|
|
||||||
packages << package('httpd') if ['centos', 'redhat'].include?(os[:family])
|
|
||||||
|
|
||||||
packages.each do |package|
|
|
||||||
describe package do
|
|
||||||
it { should be_installed }
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
describe 'required pip packages' do
|
|
||||||
packages = [
|
|
||||||
package('objgraph'),
|
|
||||||
package('yappi'),
|
|
||||||
package('zuul')
|
|
||||||
]
|
|
||||||
|
|
||||||
packages.each do |package|
|
|
||||||
describe package do
|
|
||||||
it { should be_installed.by('pip3') }
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
describe 'required files' do
|
|
||||||
describe file('/etc/zuul/zuul.conf') do
|
|
||||||
it { should be_file }
|
|
||||||
it { should contain('[gearman]') }
|
|
||||||
it { should contain('server=127.0.0.1') }
|
|
||||||
it { should contain('[gerrit]') }
|
|
||||||
it { should contain('server=') }
|
|
||||||
it { should contain('[zuul]') }
|
|
||||||
it { should contain('tenant_config=/etc/zuul/layout/main.yaml') }
|
|
||||||
end
|
|
||||||
|
|
||||||
describe file('/etc/default/zuul') do
|
|
||||||
it { should be_file }
|
|
||||||
end
|
|
||||||
|
|
||||||
describe file('/var/log/zuul') do
|
|
||||||
it { should be_directory }
|
|
||||||
it { should be_owned_by 'zuul'}
|
|
||||||
end
|
|
||||||
|
|
||||||
describe file('/var/lib/zuul/git') do
|
|
||||||
it { should be_directory }
|
|
||||||
it { should be_owned_by 'zuul'}
|
|
||||||
end
|
|
||||||
|
|
||||||
describe 'directories belonging to zuul user and group' do
|
|
||||||
directories = [
|
|
||||||
file('/var/lib/zuul'),
|
|
||||||
file('/var/run/zuul-merger'),
|
|
||||||
file('/var/lib/zuul/ssh'),
|
|
||||||
file('/var/run/zuul'),
|
|
||||||
]
|
|
||||||
|
|
||||||
directories.each do |dir|
|
|
||||||
describe dir do
|
|
||||||
it { should be_directory }
|
|
||||||
it { should be_owned_by 'zuul'}
|
|
||||||
it { should be_grouped_into 'zuul'}
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
describe file('/var/lib/zuul/ssh/id_rsa') do
|
|
||||||
it { should be_file }
|
|
||||||
it { should contain('-----BEGIN RSA PRIVATE KEY-----') }
|
|
||||||
end
|
|
||||||
|
|
||||||
describe file('/home/zuul/.ssh/known_hosts') do
|
|
||||||
it { should be_file }
|
|
||||||
it { should contain('known_hosts_content') }
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
describe cron do
|
|
||||||
it { should have_entry('7 4 * * * find /var/lib/zuul/git/ -maxdepth 3 -type d -name ".git" -exec git --git-dir="{}" pack-refs --all \;').with_user('zuul') }
|
|
||||||
end
|
|
||||||
|
|
||||||
describe 'required services' do
|
|
||||||
describe port(80) do
|
|
||||||
it { should be_listening }
|
|
||||||
end
|
|
||||||
|
|
||||||
describe port(443) do
|
|
||||||
it { should be_listening }
|
|
||||||
end
|
|
||||||
|
|
||||||
describe port(4730) do
|
|
||||||
it { should be_listening }
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
@ -1,25 +0,0 @@
|
|||||||
class { '::zuul':
|
|
||||||
zuul_ssh_private_key => file('/tmp/zuul-ssh-keys/ssh_rsa_key'),
|
|
||||||
zuulv3 => true,
|
|
||||||
python_version => 3,
|
|
||||||
}
|
|
||||||
|
|
||||||
class { '::zuul::scheduler':
|
|
||||||
layout_dir => '/etc/project-config/zuul',
|
|
||||||
python_version => 3,
|
|
||||||
use_mysql => true,
|
|
||||||
}
|
|
||||||
|
|
||||||
class { '::zuul::merger': }
|
|
||||||
class { '::zuul::executor': }
|
|
||||||
class { '::zuul::web':
|
|
||||||
tenant_name => 'openstack',
|
|
||||||
ssl_cert_file_contents => file('/etc/ssl/certs/ssl-cert-snakeoil.pem'),
|
|
||||||
ssl_key_file_contents => file('/etc/ssl/private/ssl-cert-snakeoil.key'),
|
|
||||||
}
|
|
||||||
|
|
||||||
class { '::zuul::fingergw': }
|
|
||||||
|
|
||||||
class { '::zuul::known_hosts':
|
|
||||||
known_hosts_content => 'known_hosts_content',
|
|
||||||
}
|
|
@ -1,7 +0,0 @@
|
|||||||
exec { 'starting zuul scheduler':
|
|
||||||
command => '/etc/init.d/zuul-scheduler start',
|
|
||||||
}
|
|
||||||
|
|
||||||
exec { 'starting zuul merger':
|
|
||||||
command => '/etc/init.d/zuul-merger start'
|
|
||||||
}
|
|
@ -1,34 +0,0 @@
|
|||||||
# Installing ssl-cert in order to get snakeoil certs
|
|
||||||
package { 'ssl-cert':
|
|
||||||
ensure => present,
|
|
||||||
}
|
|
||||||
|
|
||||||
vcsrepo { '/etc/project-config':
|
|
||||||
ensure => latest,
|
|
||||||
provider => git,
|
|
||||||
revision => 'master',
|
|
||||||
source => 'https://git.openstack.org/openstack-infra/project-config',
|
|
||||||
}
|
|
||||||
|
|
||||||
# Creating ssh rsa keys
|
|
||||||
define ssh_keygen (
|
|
||||||
$ssh_directory = undef
|
|
||||||
) {
|
|
||||||
Exec { path => '/bin:/usr/bin' }
|
|
||||||
|
|
||||||
$ssh_key_file = "${ssh_directory}/${name}"
|
|
||||||
|
|
||||||
exec { "ssh-keygen for ${name}":
|
|
||||||
command => "ssh-keygen -t rsa -f ${ssh_key_file} -N ''",
|
|
||||||
creates => $ssh_key_file,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$ssh_key_directory = '/tmp/zuul-ssh-keys'
|
|
||||||
file { $ssh_key_directory:
|
|
||||||
ensure => directory
|
|
||||||
}
|
|
||||||
ssh_keygen {'ssh_rsa_key':
|
|
||||||
ssh_directory => $ssh_key_directory,
|
|
||||||
require => File[$ssh_key_directory],
|
|
||||||
}
|
|
@ -1,11 +0,0 @@
|
|||||||
HOSTS:
|
|
||||||
ubuntu-server-1404-x64:
|
|
||||||
roles:
|
|
||||||
- master
|
|
||||||
platform: ubuntu-14.04-amd64
|
|
||||||
box: puppetlabs/ubuntu-14.04-64-nocm
|
|
||||||
box_url: https://vagrantcloud.com/puppetlabs/ubuntu-14.04-64-nocm
|
|
||||||
hypervisor: vagrant
|
|
||||||
CONFIG:
|
|
||||||
log_level: debug
|
|
||||||
type: git
|
|
@ -1,10 +0,0 @@
|
|||||||
HOSTS:
|
|
||||||
centos-70-x64:
|
|
||||||
roles:
|
|
||||||
- master
|
|
||||||
platform: el-7-x86_64
|
|
||||||
hypervisor: none
|
|
||||||
ip: 127.0.0.1
|
|
||||||
CONFIG:
|
|
||||||
type: foss
|
|
||||||
set_env: false
|
|
@ -1,10 +0,0 @@
|
|||||||
HOSTS:
|
|
||||||
ubuntu-14.04-amd64:
|
|
||||||
roles:
|
|
||||||
- master
|
|
||||||
platform: ubuntu-14.04-amd64
|
|
||||||
hypervisor: none
|
|
||||||
ip: 127.0.0.1
|
|
||||||
CONFIG:
|
|
||||||
type: foss
|
|
||||||
set_env: false
|
|
@ -1,10 +0,0 @@
|
|||||||
HOSTS:
|
|
||||||
ubuntu-16.04-amd64:
|
|
||||||
roles:
|
|
||||||
- master
|
|
||||||
platform: ubuntu-16.04-amd64
|
|
||||||
hypervisor: none
|
|
||||||
ip: 127.0.0.1
|
|
||||||
CONFIG:
|
|
||||||
type: foss
|
|
||||||
set_env: false
|
|
@ -1,119 +0,0 @@
|
|||||||
[gearman]
|
|
||||||
server=<%= @gearman_server %>
|
|
||||||
check_job_registration=<%= @gearman_check_job_registration %>
|
|
||||||
|
|
||||||
[gearman_server]
|
|
||||||
start=<%= @internal_gearman %>
|
|
||||||
log_config=/etc/zuul/gearman-logging.conf
|
|
||||||
|
|
||||||
<% if @gerrit_server != "" -%>
|
|
||||||
[gerrit]
|
|
||||||
server=<%= @gerrit_server %>
|
|
||||||
user=<%= @gerrit_user %>
|
|
||||||
sshkey=/var/lib/zuul/ssh/id_rsa
|
|
||||||
<% if @gerrit_baseurl != "" -%>
|
|
||||||
baseurl=<%= @gerrit_baseurl %>
|
|
||||||
<% end -%>
|
|
||||||
<% if @gerrit_strip_branch_ref != "" -%>
|
|
||||||
strip_branch_ref=<%= @gerrit_strip_branch_ref %>
|
|
||||||
<% end -%>
|
|
||||||
<% end -%>
|
|
||||||
|
|
||||||
[zuul]
|
|
||||||
layout_config=/etc/zuul/layout/<%= @layout_file_name %>
|
|
||||||
log_config=/etc/zuul/logging.conf
|
|
||||||
state_dir=/var/lib/zuul
|
|
||||||
url_pattern=<%= @url_pattern %>
|
|
||||||
status_url=<%= @status_url %>
|
|
||||||
job_name_in_report=<%= @job_name_in_report %>
|
|
||||||
|
|
||||||
[merger]
|
|
||||||
git_dir=/var/lib/zuul/git
|
|
||||||
zuul_url=<%= @zuul_url %>
|
|
||||||
log_config=/etc/zuul/merger-logging.conf
|
|
||||||
<% if @git_email != "" -%>
|
|
||||||
git_user_email=<%= @git_email %>
|
|
||||||
<% end -%>
|
|
||||||
<% if @git_name != "" -%>
|
|
||||||
git_user_name=<%= @git_name %>
|
|
||||||
<% end -%>
|
|
||||||
|
|
||||||
<% if @swift_authurl != "" -%>
|
|
||||||
[swift]
|
|
||||||
<% if @swift_account_temp_key != "" -%>
|
|
||||||
X-Account-Meta-Temp-Url-Key=<%= @swift_account_temp_key %>
|
|
||||||
<% end -%>
|
|
||||||
authurl=<%= @swift_authurl %>
|
|
||||||
user=<%= @swift_user %>
|
|
||||||
key=<%= @swift_key %>
|
|
||||||
tenant_name=<%= @swift_tenant_name %>
|
|
||||||
region_name=<%= @swift_region_name %>
|
|
||||||
default_container=<%= @swift_default_container %>
|
|
||||||
default_logserver_prefix=<%= @swift_default_logserver_prefix %>
|
|
||||||
default_expiry=<%= @swift_default_expiry %>
|
|
||||||
<% if @swift_auth_version != "" -%>
|
|
||||||
auth_version=<%= @swift_auth_version %>
|
|
||||||
<% end -%>
|
|
||||||
<% end -%>
|
|
||||||
|
|
||||||
<% if @smtp_host != "" -%>
|
|
||||||
[smtp]
|
|
||||||
server=<%= @smtp_host %>
|
|
||||||
port=<%= @smtp_port %>
|
|
||||||
default_from=<%= @smtp_default_from %>
|
|
||||||
default_to=<%= @smtp_default_to %>
|
|
||||||
<% end -%>
|
|
||||||
|
|
||||||
<% if @jenkins_jobs != "" -%>
|
|
||||||
[launcher]
|
|
||||||
log_config=/etc/zuul/launcher-logging.conf
|
|
||||||
jenkins_jobs=<%= @jenkins_jobs %>
|
|
||||||
workspace_root=<%= @workspace_root %>
|
|
||||||
<% if @worker_private_key_file != "" -%>
|
|
||||||
private_key_file=<%= @worker_private_key_file %>
|
|
||||||
<% end -%>
|
|
||||||
<% if @worker_username != "" -%>
|
|
||||||
username=<%= @worker_username %>
|
|
||||||
<% end -%>
|
|
||||||
<% if @accept_nodes != "" -%>
|
|
||||||
accept_nodes=<%= @accept_nodes %>
|
|
||||||
<% end -%>
|
|
||||||
<% end -%>
|
|
||||||
|
|
||||||
<% @connections.each do |connection| -%>
|
|
||||||
[connection "<%= connection['name'] %>"]
|
|
||||||
<% connection.each do |key,value| -%>
|
|
||||||
<%= key %>=<%= value %>
|
|
||||||
<% end -%>
|
|
||||||
|
|
||||||
<% end -%>
|
|
||||||
|
|
||||||
<% @sites.each do |site| -%>
|
|
||||||
[site "<%= site['name'] %>"]
|
|
||||||
host=<%= site['host'] %>
|
|
||||||
<% if site['user'] != "" -%>
|
|
||||||
user=<%= site['user'] %>
|
|
||||||
<% end -%>
|
|
||||||
<% if site['pass'] != "" -%>
|
|
||||||
pass=<%= site['pass'] %>
|
|
||||||
<% end -%>
|
|
||||||
<% if site['root'] != "" -%>
|
|
||||||
root=<%= site['root'] %>
|
|
||||||
<% end -%>
|
|
||||||
<% if site['keytab'] != "" -%>
|
|
||||||
keytab=<%= site['keytab'] %>
|
|
||||||
<% end -%>
|
|
||||||
|
|
||||||
<% end -%>
|
|
||||||
|
|
||||||
<% @nodes.each do |node| -%>
|
|
||||||
[node "<%= node['name'] %>"]
|
|
||||||
host=<%= node['host'] %>
|
|
||||||
<% if node['description'] != "" -%>
|
|
||||||
description=<%= node['description'] %>
|
|
||||||
<% end -%>
|
|
||||||
<% if node['labels'] != "" -%>
|
|
||||||
labels=<%= node['labels'] %>
|
|
||||||
<% end -%>
|
|
||||||
|
|
||||||
<% end -%>
|
|
@ -1,4 +0,0 @@
|
|||||||
<% if @statsd_host != "" %>
|
|
||||||
export STATSD_HOST=<%= @statsd_host %>
|
|
||||||
export STATSD_PORT=8125
|
|
||||||
<% end %>
|
|
@ -1,152 +0,0 @@
|
|||||||
<VirtualHost *:80>
|
|
||||||
ServerName <%= @vhost_name %>
|
|
||||||
ServerAdmin <%= scope.lookupvar('::zuul::serveradmin') %>
|
|
||||||
DocumentRoot /var/lib/zuul/www
|
|
||||||
|
|
||||||
<Directory /var/lib/zuul/www>
|
|
||||||
<IfVersion >= 2.4>
|
|
||||||
Require all granted
|
|
||||||
</IfVersion>
|
|
||||||
<IfVersion < 2.4>
|
|
||||||
Order deny,allow
|
|
||||||
Allow from all
|
|
||||||
</IfVersion>
|
|
||||||
</Directory>
|
|
||||||
<Directory /usr/lib/git-core>
|
|
||||||
<IfVersion >= 2.4>
|
|
||||||
Require all granted
|
|
||||||
</IfVersion>
|
|
||||||
<IfVersion < 2.4>
|
|
||||||
Order deny,allow
|
|
||||||
Allow from all
|
|
||||||
</IfVersion>
|
|
||||||
</Directory>
|
|
||||||
|
|
||||||
ErrorLog ${APACHE_LOG_DIR}/<%= @vhost_name %>-error.log
|
|
||||||
|
|
||||||
LogLevel warn
|
|
||||||
|
|
||||||
CustomLog ${APACHE_LOG_DIR}/<%= @vhost_name %>-access.log combined
|
|
||||||
|
|
||||||
RewriteEngine on
|
|
||||||
<% scope.lookupvar('::zuul::block_referers').each do |referer| -%>
|
|
||||||
RewriteCond %{HTTP_REFERER} =<%= referer %>
|
|
||||||
RewriteRule ^/status - [F]
|
|
||||||
RewriteCond %{HTTP_REFERER} =<%= referer %>
|
|
||||||
RewriteRule ^/status.json - [F]
|
|
||||||
<% end -%>
|
|
||||||
|
|
||||||
RewriteRule ^/status.json$ <%= scope.lookupvar('::zuul::zuul_status_url') %>/status.json [P]
|
|
||||||
RewriteRule ^/status/(.*) <%= scope.lookupvar('::zuul::zuul_status_url') %>/status/$1 [P]
|
|
||||||
|
|
||||||
AddOutputFilterByType DEFLATE application/json
|
|
||||||
|
|
||||||
SetEnv GIT_PROJECT_ROOT /var/lib/zuul/git/
|
|
||||||
SetEnv GIT_HTTP_EXPORT_ALL
|
|
||||||
|
|
||||||
AliasMatch ^/p/(.*/objects/[0-9a-f]{2}/[0-9a-f]{38})$ /var/lib/zuul/git/$1
|
|
||||||
AliasMatch ^/p/(.*/objects/pack/pack-[0-9a-f]{40}.(pack|idx))$ /var/lib/zuul/git/$1
|
|
||||||
ScriptAlias /p/ /usr/lib/git-core/git-http-backend/
|
|
||||||
|
|
||||||
<IfModule mod_cache.c>
|
|
||||||
CacheDefaultExpire 5
|
|
||||||
<IfModule mod_mem_cache.c>
|
|
||||||
CacheEnable mem /status
|
|
||||||
CacheEnable mem /status.json
|
|
||||||
# 12MByte total cache size.
|
|
||||||
MCacheSize 12288
|
|
||||||
MCacheMaxObjectCount 10
|
|
||||||
MCacheMinObjectSize 1
|
|
||||||
# 8MByte max size per cache entry
|
|
||||||
MCacheMaxObjectSize 8388608
|
|
||||||
MCacheMaxStreamingBuffer 8388608
|
|
||||||
</IfModule>
|
|
||||||
<IfModule mod_cache_disk.c>
|
|
||||||
CacheEnable disk /status
|
|
||||||
CacheEnable disk /status.json
|
|
||||||
CacheRoot /var/cache/apache2/mod_cache_disk
|
|
||||||
</IfModule>
|
|
||||||
</IfModule>
|
|
||||||
</VirtualHost>
|
|
||||||
|
|
||||||
<% if scope.lookupvar('::zuul::proxy_ssl_cert_file_contents') != '' %>
|
|
||||||
<IfModule mod_ssl.c>
|
|
||||||
<VirtualHost *:443>
|
|
||||||
ServerName <%= @vhost_name %>
|
|
||||||
ServerAdmin <%= scope.lookupvar('::zuul::serveradmin') %>
|
|
||||||
DocumentRoot /var/lib/zuul/www
|
|
||||||
SSLEngine on
|
|
||||||
SSLProtocol All -SSLv2 -SSLv3
|
|
||||||
SSLCertificateFile /etc/ssl/certs/<%= @vhost_name %>.pem
|
|
||||||
SSLCertificateKeyFile /etc/ssl/private/<%= @vhost_name %>.key
|
|
||||||
<% if scope.lookupvar('::zuul::proxy_ssl_chain_file_contents') != '' %>
|
|
||||||
SSLCertificateChainFile /etc/ssl/certs/<%= @vhost_name %>_intermediate.pem
|
|
||||||
<% end %>
|
|
||||||
|
|
||||||
<Directory /var/lib/zuul/www>
|
|
||||||
<IfVersion >= 2.4>
|
|
||||||
Require all granted
|
|
||||||
</IfVersion>
|
|
||||||
<IfVersion < 2.4>
|
|
||||||
Order deny,allow
|
|
||||||
Allow from all
|
|
||||||
</IfVersion>
|
|
||||||
</Directory>
|
|
||||||
<Directory /usr/lib/git-core>
|
|
||||||
<IfVersion >= 2.4>
|
|
||||||
Require all granted
|
|
||||||
</IfVersion>
|
|
||||||
<IfVersion < 2.4>
|
|
||||||
Order deny,allow
|
|
||||||
Allow from all
|
|
||||||
</IfVersion>
|
|
||||||
</Directory>
|
|
||||||
|
|
||||||
ErrorLog ${APACHE_LOG_DIR}/<%= @vhost_name %>-error.log
|
|
||||||
|
|
||||||
LogLevel warn
|
|
||||||
|
|
||||||
CustomLog ${APACHE_LOG_DIR}/<%= @vhost_name %>-access.log combined
|
|
||||||
|
|
||||||
RewriteEngine on
|
|
||||||
<% scope.lookupvar('::zuul::block_referers').each do |referer| -%>
|
|
||||||
RewriteCond %{HTTP_REFERER} =<%= referer %>
|
|
||||||
RewriteRule ^/status - [F]
|
|
||||||
RewriteCond %{HTTP_REFERER} =<%= referer %>
|
|
||||||
RewriteRule ^/status.json - [F]
|
|
||||||
<% end -%>
|
|
||||||
|
|
||||||
RewriteRule ^/status.json$ <%= scope.lookupvar('::zuul::zuul_status_url') %>/status.json [P]
|
|
||||||
RewriteRule ^/status/(.*) <%= scope.lookupvar('::zuul::zuul_status_url') %>/status/$1 [P]
|
|
||||||
|
|
||||||
AddOutputFilterByType DEFLATE application/json
|
|
||||||
|
|
||||||
SetEnv GIT_PROJECT_ROOT /var/lib/zuul/git/
|
|
||||||
SetEnv GIT_HTTP_EXPORT_ALL
|
|
||||||
|
|
||||||
AliasMatch ^/p/(.*/objects/[0-9a-f]{2}/[0-9a-f]{38})$ /var/lib/zuul/git/$1
|
|
||||||
AliasMatch ^/p/(.*/objects/pack/pack-[0-9a-f]{40}.(pack|idx))$ /var/lib/zuul/git/$1
|
|
||||||
ScriptAlias /p/ /usr/lib/git-core/git-http-backend/
|
|
||||||
|
|
||||||
<IfModule mod_cache.c>
|
|
||||||
CacheDefaultExpire 5
|
|
||||||
<IfModule mod_mem_cache.c>
|
|
||||||
CacheEnable mem /status
|
|
||||||
CacheEnable mem /status.json
|
|
||||||
# 12MByte total cache size.
|
|
||||||
MCacheSize 12288
|
|
||||||
MCacheMaxObjectCount 10
|
|
||||||
MCacheMinObjectSize 1
|
|
||||||
# 8MByte max size per cache entry
|
|
||||||
MCacheMaxObjectSize 8388608
|
|
||||||
MCacheMaxStreamingBuffer 8388608
|
|
||||||
</IfModule>
|
|
||||||
<IfModule mod_cache_disk.c>
|
|
||||||
CacheEnable disk /status
|
|
||||||
CacheEnable disk /status.json
|
|
||||||
CacheRoot /var/cache/apache2/mod_cache_disk
|
|
||||||
</IfModule>
|
|
||||||
</IfModule>
|
|
||||||
</VirtualHost>
|
|
||||||
</IfModule>
|
|
||||||
<% end %>
|
|
@ -1,109 +0,0 @@
|
|||||||
[gearman]
|
|
||||||
server=<%= @gearman_server %>
|
|
||||||
check_job_registration=<%= @gearman_check_job_registration %>
|
|
||||||
<% if @gearman_ssl_ca != nil -%>
|
|
||||||
ssl_ca=/etc/zuul/ssl/ca.pem
|
|
||||||
<% end -%>
|
|
||||||
<% if @gearman_client_ssl_cert != nil -%>
|
|
||||||
ssl_cert=/etc/zuul/ssl/client.pem
|
|
||||||
<% end -%>
|
|
||||||
<% if @gearman_client_ssl_key != nil -%>
|
|
||||||
ssl_key=/etc/zuul/ssl/client.key
|
|
||||||
<% end -%>
|
|
||||||
|
|
||||||
[gearman_server]
|
|
||||||
start=<%= @internal_gearman %>
|
|
||||||
log_config=/etc/zuul/gearman-logging.conf
|
|
||||||
<% if @gearman_ssl_ca != nil -%>
|
|
||||||
ssl_ca=/etc/zuul/ssl/ca.pem
|
|
||||||
<% end -%>
|
|
||||||
<% if @gearman_server_ssl_cert != nil -%>
|
|
||||||
ssl_cert=/etc/zuul/ssl/server.pem
|
|
||||||
<% end -%>
|
|
||||||
<% if @gearman_server_ssl_key != nil -%>
|
|
||||||
ssl_key=/etc/zuul/ssl/server.key
|
|
||||||
<% end -%>
|
|
||||||
|
|
||||||
[scheduler]
|
|
||||||
tenant_config=/etc/zuul/layout/<%= @tenant_file_name %>
|
|
||||||
log_config=/etc/zuul/logging.conf
|
|
||||||
state_dir=/var/lib/zuul
|
|
||||||
relative_priority=<%= @relative_priority %>
|
|
||||||
|
|
||||||
[fingergw]
|
|
||||||
user=zuul
|
|
||||||
|
|
||||||
[zookeeper]
|
|
||||||
hosts=<%= @zookeeper_hosts %>
|
|
||||||
<% if @zookeeper_session_timeout != nil -%>
|
|
||||||
session_timeout=<%= @zookeeper_session_timeout %>
|
|
||||||
<% end -%>
|
|
||||||
|
|
||||||
<% if @statsd_host != "" %>
|
|
||||||
[statsd]
|
|
||||||
server=<%= @statsd_host %>
|
|
||||||
<% end %>
|
|
||||||
|
|
||||||
[merger]
|
|
||||||
git_dir=/var/lib/zuul/git
|
|
||||||
zuul_url=<%= @zuul_url %>
|
|
||||||
log_config=/etc/zuul/merger-logging.conf
|
|
||||||
<% if @git_email != "" -%>
|
|
||||||
git_user_email=<%= @git_email %>
|
|
||||||
<% end -%>
|
|
||||||
<% if @git_name != "" -%>
|
|
||||||
git_user_name=<%= @git_name %>
|
|
||||||
<% end -%>
|
|
||||||
|
|
||||||
[executor]
|
|
||||||
manage_ansible=false
|
|
||||||
log_config=/etc/zuul/executor-logging.conf
|
|
||||||
job_dir=/var/lib/zuul/builds
|
|
||||||
<% if @site_variables_yaml_file != nil -%>
|
|
||||||
variables=/etc/zuul/site-variables.yaml
|
|
||||||
<% end -%>
|
|
||||||
<% if @worker_private_key_file != "" -%>
|
|
||||||
private_key_file=<%= @worker_private_key_file %>
|
|
||||||
<% end -%>
|
|
||||||
trusted_ro_dirs=<%= @trusted_ro_dirs.join(':') %>
|
|
||||||
trusted_rw_dirs=<%= @trusted_rw_dirs.join(':') %>
|
|
||||||
untrusted_ro_dirs=<%= @untrusted_ro_dirs.join(':') %>
|
|
||||||
untrusted_rw_dirs=<%= @untrusted_rw_dirs.join(':') %>
|
|
||||||
trusted_ro_paths=<%= @trusted_ro_paths.join(':') %>
|
|
||||||
trusted_rw_paths=<%= @trusted_rw_paths.join(':') %>
|
|
||||||
untrusted_ro_paths=<%= @untrusted_ro_paths.join(':') %>
|
|
||||||
untrusted_rw_paths=<%= @untrusted_rw_paths.join(':') %>
|
|
||||||
<% if @disk_limit_per_job != "" -%>
|
|
||||||
disk_limit_per_job=<%= @disk_limit_per_job %>
|
|
||||||
<% end -%>
|
|
||||||
|
|
||||||
[web]
|
|
||||||
log_config=/etc/zuul/web-logging.conf
|
|
||||||
static_path=/opt/zuul-web/content
|
|
||||||
<% if @web_listen_address != "" -%>
|
|
||||||
listen_address=<%= @web_listen_address %>
|
|
||||||
<% end -%>
|
|
||||||
<% if @web_listen_port != "" -%>
|
|
||||||
listen_port=<%= @web_listen_port %>
|
|
||||||
<% end -%>
|
|
||||||
status_url=<%= @status_url %>
|
|
||||||
<% if @web_root != "" -%>
|
|
||||||
root=<%= @web_root %>
|
|
||||||
<% end -%>
|
|
||||||
|
|
||||||
<% @connections.each do |connection| -%>
|
|
||||||
[connection "<%= connection['name'] %>"]
|
|
||||||
<% connection.each do |key,value| -%>
|
|
||||||
<%= key %>=<%= value %>
|
|
||||||
<% end -%>
|
|
||||||
<% @connection_secrets.each do |connection_secret| -%>
|
|
||||||
<% if connection_secret['name'] == connection['name'] -%>
|
|
||||||
<% connection_secret.each do |key,value| -%>
|
|
||||||
<% if key != 'name' -%>
|
|
||||||
<%= key %>=<%= value %>
|
|
||||||
<% end -%>
|
|
||||||
<% end -%>
|
|
||||||
<% end -%>
|
|
||||||
<% end -%>
|
|
||||||
|
|
||||||
<% end -%>
|
|
@ -1,87 +0,0 @@
|
|||||||
<% if @ssl -%>
|
|
||||||
<IfModule mod_ssl.c>
|
|
||||||
<% end -%>
|
|
||||||
<VirtualHost *:<%= @port %>>
|
|
||||||
|
|
||||||
<% if @ssl -%>
|
|
||||||
SSLEngine on
|
|
||||||
SSLProtocol All -SSLv2 -SSLv3
|
|
||||||
<% if ! [false, '', nil].include?(scope.lookupvar('::zuul::web::vhosts_flags_int')[@vhost_name]['use_le']) -%>
|
|
||||||
SSLCertificateFile /etc/letsencrypt-certs/<%= @vhost_name %>/<%= @vhost_name %>.cer
|
|
||||||
SSLCertificateKeyFile /etc/letsencrypt-certs/<%= @vhost_name %>/<%= @vhost_name %>.key
|
|
||||||
SSLCertificateChainFile /etc/letsencrypt-certs/<%= @vhost_name %>/ca.cer
|
|
||||||
<% else -%>
|
|
||||||
SSLCertificateFile /etc/ssl/certs/<%= @vhost_name %>.pem
|
|
||||||
SSLCertificateKeyFile /etc/ssl/private/<%= @vhost_name %>.key
|
|
||||||
<% if scope.lookupvar('::zuul::web::vhosts_ssl_int')[@vhost_name]['ssl_chain_file_contents'] != '' -%>
|
|
||||||
SSLCertificateChainFile /etc/ssl/certs/<%= @vhost_name %>_intermediate.pem
|
|
||||||
<% end -%>
|
|
||||||
<% end -%>
|
|
||||||
<% end -%>
|
|
||||||
|
|
||||||
ServerName <%= @vhost_name %>
|
|
||||||
ServerAdmin <%= scope.lookupvar('::zuul::web::serveradmin') %>
|
|
||||||
|
|
||||||
DocumentRoot <%= @docroot %>
|
|
||||||
<Directory <%= @docroot %>>
|
|
||||||
DirectoryIndex index.html
|
|
||||||
<IfVersion >= 2.4>
|
|
||||||
Require all granted
|
|
||||||
</IfVersion>
|
|
||||||
<IfVersion < 2.4>
|
|
||||||
Order deny,allow
|
|
||||||
Allow from all
|
|
||||||
</IfVersion>
|
|
||||||
</Directory>
|
|
||||||
|
|
||||||
ErrorLog ${APACHE_LOG_DIR}/<%= @vhost_name %>-error.log
|
|
||||||
|
|
||||||
LogLevel warn
|
|
||||||
|
|
||||||
CustomLog ${APACHE_LOG_DIR}/<%= @vhost_name %>-access.log combined
|
|
||||||
|
|
||||||
RewriteEngine on
|
|
||||||
<% scope.lookupvar('::zuul::web::block_referers').each do |referer| -%>
|
|
||||||
RewriteCond %{HTTP_REFERER} =<%= referer %>
|
|
||||||
RewriteRule ^/status - [F]
|
|
||||||
<% end -%>
|
|
||||||
|
|
||||||
<% if scope.lookupvar('::zuul::web::vhosts_flags_int')[@vhost_name]['tenant_name'] != '' -%>
|
|
||||||
RewriteRule ^/api/connection/(.*)$ <%= scope.lookupvar('::zuul::web::web_url') %>/api/connection/$1 [P,L]
|
|
||||||
RewriteRule ^/api/console-stream <%= scope.lookupvar('::zuul::web::websocket_url') %>/api/tenant/<%= scope.lookupvar('::zuul::web::vhosts_flags_int')[@vhost_name]['tenant_name'] %>/console-stream [P,L]
|
|
||||||
RewriteRule ^/api/(.*)$ <%= scope.lookupvar('::zuul::web::web_url') %>/api/tenant/<%= scope.lookupvar('::zuul::web::vhosts_flags_int')[@vhost_name]['tenant_name'] %>/$1 [P,L]
|
|
||||||
<% else -%>
|
|
||||||
RewriteRule ^/api/tenant/(.*)/console-stream <%= scope.lookupvar('::zuul::web::websocket_url') %>/api/tenant/$1/console-stream [P,L]
|
|
||||||
RewriteRule ^/api/(.*)$ <%= scope.lookupvar('::zuul::web::web_url') %>/api/$1 [P,L]
|
|
||||||
<% end -%>
|
|
||||||
|
|
||||||
# Rewrite HTML5 route to index.html
|
|
||||||
RewriteCond <%= @docroot %>/%{REQUEST_URI} !-f
|
|
||||||
RewriteCond <%= @docroot %>/%{REQUEST_URI} !-d
|
|
||||||
RewriteRule ^.*$ /index.html [L]
|
|
||||||
|
|
||||||
AddOutputFilterByType DEFLATE application/json
|
|
||||||
|
|
||||||
<IfModule mod_cache.c>
|
|
||||||
CacheDefaultExpire 5
|
|
||||||
<IfModule mod_mem_cache.c>
|
|
||||||
# TODO: Should we cache the rest of the API too?
|
|
||||||
CacheEnable mem /api/status
|
|
||||||
# 12MByte total cache size.
|
|
||||||
MCacheSize 12288
|
|
||||||
MCacheMaxObjectCount 10
|
|
||||||
MCacheMinObjectSize 1
|
|
||||||
# 8MByte max size per cache entry
|
|
||||||
MCacheMaxObjectSize 8388608
|
|
||||||
MCacheMaxStreamingBuffer 8388608
|
|
||||||
</IfModule>
|
|
||||||
<IfModule mod_cache_disk.c>
|
|
||||||
CacheEnable disk /api/status
|
|
||||||
CacheRoot /var/cache/apache2/mod_cache_disk
|
|
||||||
CacheMaxFileSize 10000000
|
|
||||||
</IfModule>
|
|
||||||
</IfModule>
|
|
||||||
</VirtualHost>
|
|
||||||
<% if @ssl -%>
|
|
||||||
</IfModule>
|
|
||||||
<% end -%>
|
|
Loading…
Reference in New Issue
Block a user