aboutsummaryrefslogtreecommitdiff
path: root/linaro_gerrit.py
diff options
context:
space:
mode:
Diffstat (limited to 'linaro_gerrit.py')
-rwxr-xr-xlinaro_gerrit.py30
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")