resource_registry broken for relative paths
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
python-heatclient |
Fix Released
|
Critical
|
Steven Hardy |
Bug Description
I'm trying to do this:
-bash-4.3$ cat test.yaml
heat_template_
resources:
foo:
type: OS::Foo
-bash-4.3$ cat registry.yaml
resource_registry:
OS::Foo: foo.yaml
-bash-4.3$ cat foo.yaml
heat_template_
-bash-4.3$ heat stack-create test -f test.yaml -e registry.yaml
WARNING (shell) "heat stack-create" is deprecated, please use "openstack stack create" instead
ERROR: Could not fetch remote template "foo.yaml": Invalid URL scheme
The cause appears related to the switch to pass environment data via the files map, as adding this debug indicates:
$ git diff
diff --git a/heatclient/
index fae54ef..74ad1b2 100644
--- a/heatclient/
+++ b/heatclient/
@@ -247,6 +247,8 @@ def process_
+ print "SHDEBUG merged_env=%s" % merged_env
+ print "SHDEBUG merged_files=%s" % merged_files
return merged_files, merged_env
-bash-4.3$ heat stack-create test -f test.yaml -e registry.yaml
WARNING (shell) "heat stack-create" is deprecated, please use "openstack stack create" instead
ERROR: Could not fetch remote template "foo.yaml": Invalid URL scheme
-bash-4.3$ heat stack-create test -f test.yaml -e registry.yaml
WARNING (shell) "heat stack-create" is deprecated, please use "openstack stack create" instead
SHDEBUG merged_
SHDEBUG merged_
ERROR: Could not fetch remote template "foo.yaml": Invalid URL scheme
Here we can see the foo.yaml mapping in the merged_env is correct, but in the merged_files, it's lacking the resolved path - presumably this ends up taking precedence in heat and we try (then fail) to retrieve the template from file:///foo.yaml
I'm confused by how this passed CI, as it's fundamental functionality I thought we had coverage for - possibly I've failed to pull a required additional change in to my environment..
summary: |
- resource_registry broken by server side resolution of environments + resource_registry broken for relative paths |
no longer affects: | heat |
Changed in python-heatclient: | |
importance: | Undecided → Critical |
Changed in python-heatclient: | |
milestone: | none → 1.0.1 |
Reverting https:/ /github. com/openstack/ python- heatclient/ commit/ 7627e1bae53747e 1471caf632dfc1b 6edf2e26cf appears to fix it - I'm still unclear how we landed that without CI failing?