Bug 1302765 - Allow `./mach taskgraph .. --parameters P` to take a URL -4;
MozReview-Commit-ID: 9BOXGQNDWiR
--- a/taskcluster/taskgraph/parameters.py
+++ b/taskcluster/taskgraph/parameters.py
@@ -65,23 +65,25 @@ def load_parameters_file(options):
url_prefix = "https://public-artifacts.taskcluster.net/"
url_postfix = "/0/public/parameters.yml"
filename = options['parameters']
if not filename:
return Parameters()
- elif filename.startswith(url_prefix):
+
+ try:
+ # reading parameters from a local parameters.yml file
+ f = open(filename)
+ except IOError:
+ # fetching parameters.yml using task task-id or supplied url
+ if filename.startswith("parameters-from-task="):
+ task_id = filename.split("=")[1]
+ filename = url_prefix + task_id + url_postfix
f = urllib.urlopen(filename)
- elif filename.startswith("parameters-from-task="):
- task_id = filename.split("=")[1]
- filename = url_prefix + task_id + url_postfix
- f = urllib.urlopen(filename)
- else:
- f = open(filename)
if filename.endswith('.yml'):
return Parameters(**yaml.safe_load(f))
elif filename.endswith('.json'):
return Parameters(**json.load(f))
else:
raise TypeError("Parameters file `{}` is not JSON or YAML".format(filename))