aboutsummaryrefslogtreecommitdiff
path: root/utils
diff options
context:
space:
mode:
authorPaul Sokolovsky <paul.sokolovsky@linaro.org>2013-08-29 15:12:45 +0300
committerPaul Sokolovsky <paul.sokolovsky@linaro.org>2013-08-29 15:12:45 +0300
commite7ca55e304ed0a9244c243427350a665a1043d5c (patch)
tree3457ecbe715f38b0e6af20b238bb351407748671 /utils
parente680572031d18a28991a499217e8aaedc874476c (diff)
Support creating private projects (--private switch).
Diffstat (limited to 'utils')
-rwxr-xr-xutils/cmdline-client/android-build-client19
1 files changed, 17 insertions, 2 deletions
diff --git a/utils/cmdline-client/android-build-client b/utils/cmdline-client/android-build-client
index 93fe085..9d6ed99 100755
--- a/utils/cmdline-client/android-build-client
+++ b/utils/cmdline-client/android-build-client
@@ -20,6 +20,15 @@ import optparse
import getpass
from xml.dom import minidom
+PRIVATE_ACL = """\
+ <hudson.security.AuthorizationMatrixProperty>
+ <permission>hudson.model.Item.Build:%(group)s</permission>
+ <permission>hudson.model.Item.Configure:%(group)s</permission>
+ <permission>hudson.model.Item.Read:%(group)s</permission>
+ <permission>hudson.model.Item.Cancel:%(group)s</permission>
+ <permission>hudson.model.Item.Discover:%(group)s</permission>
+ </hudson.security.AuthorizationMatrixProperty>
+"""
class Jenkins(object):
@@ -106,8 +115,7 @@ def main():
help="File holding Jenkins API key")
optparser.add_option("--cred-file", metavar="FILE",
help="File holding Jenkins username:API key pair")
- optparser.add_option("--really", action="store_true",
- help="Actually perform changes")
+ optparser.add_option("--private", metavar="GROUP", help="Create privaet job accessible to GROUP")
options, args = optparser.parse_args(sys.argv[1:])
if len(args) < 1:
@@ -137,6 +145,13 @@ def main():
n = nodes[0].getElementsByTagName("defaultValue")[0]
build_config = open(args[2]).read()
n.childNodes[0].data = base64.encodestring(build_config)
+
+ if options.private:
+ n = dom.getElementsByTagName("properties")[0]
+ c = n.getElementsByTagName("hudson.security.AuthorizationMatrixProperty")[0]
+ acl_dom = minidom.parseString(PRIVATE_ACL % {"group": options.private})
+ n.replaceChild(acl_dom.documentElement, c)
+
job_conf = dom.toxml()
jenkins_job = args[1].replace("/", "_")
try: