Files
zuul/tools/zuul-changes.py
T
Monty Taylor 9010dc50f4 Remove .json suffix from web routes
For the existing simple cases, like builds, jobs and status, having the json
suffix is a perfectly reasonable thing. However, in the next patch it starts
to get weird. When we add support for specific changes or specific jobs, we
we grow URLs like:

  /openstack/status.json
  /openstack/status/change/537010,2.json

Those read weird, because change/537010,2 is much more like an argument or
specialiation of status. The thing that reads weird is the status call having
 .json but the change-specific call just being status/, not
the trailing .json on the change url.

Removing the json suffix gets us:

  /openstack/status
  /openstack/status/change/537010,2

which feels better as the status portion of the url remains consistent.

This is done first in the stack so that as we add tests for new
endpoints we can get them right the first time rather than having a big
rename patch at the end (which is what this started as)

Change-Id: I4baf33fdacaf46943fbd192743551bb27bd618de
2018-02-19 09:27:31 -06:00

47 lines
1.7 KiB
Python
Executable File

#!/usr/bin/env python
# Copyright 2013 OpenStack Foundation
# Copyright 2015 Hewlett-Packard Development Company, L.P.
#
# 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.
import urllib2
import json
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('url', help='The URL of the running Zuul instance')
parser.add_argument('tenant', help='The Zuul tenant')
parser.add_argument('pipeline', help='The name of the Zuul pipeline')
options = parser.parse_args()
data = urllib2.urlopen('%s/status' % options.url).read()
data = json.loads(data)
for pipeline in data['pipelines']:
if pipeline['name'] != options.pipeline:
continue
for queue in pipeline['change_queues']:
for head in queue['heads']:
for change in head:
if not change['live']:
continue
cid, cps = change['id'].split(',')
print(
"zuul enqueue --tenant %s --trigger gerrit "
"--pipeline %s --project %s --change %s,%s" % (
options.tenant,
options.pipeline,
change['project'],
cid, cps)
)