diff options
Diffstat (limited to 'utils/cmdline-client')
-rwxr-xr-x | utils/cmdline-client/android-build-client | 19 |
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: |