diff options
Diffstat (limited to 'linaro_gerrit.py')
-rwxr-xr-x | linaro_gerrit.py | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/linaro_gerrit.py b/linaro_gerrit.py index 544e253..2b29fd0 100755 --- a/linaro_gerrit.py +++ b/linaro_gerrit.py @@ -164,6 +164,36 @@ class LinaroGerrit: log.debug("Not actually doing it because --dryrun") return True + def list_projects(self, parents=False): + log.debug("Listing projects") + url = "%s/a/projects/" % self.base + params = {} + if parents: + params["t"] = "" + r = requests.get(url, params=params, **self.reqargs) + if r.status_code == 200: + return json.loads(self.strip_gerrit_junk(r.content)) + else: + log.error("Failed to list projects") + return {} + + def set_project_parent(self, project, parent, commit_msg=""): + log.debug("Setting project %s parent as %s", project, parent) + project = requests.utils.quote(project, safe='') + url = "%s/a/projects/%s/parent" % (self.base, project) + body = {"parent": parent, "commit_message": commit_msg} + headers = {"Content-Type": "application/json"} + if not self.dryrun: + r = requests.put(url, data=json.dumps(body), headers=headers, **self.reqargs) + if r.status_code == 201 or r.status_code == 200: + return True + else: + log.error("Failed to set project %s parent as %s", project, + parent) + return False + log.debug("Not actually doing it because --dryrun") + return True + def add_gerrit_args(parser): parser.add_argument('--username', help="Gerrit HTTP API Username") |