Note: This bug is displayed in read-only format because the product is no longer active in Red Hat Bugzilla.

Bug 1589745

Summary: openstack overcloud container image prepare - output-env-file not created
Product: Red Hat OpenStack Reporter: Noam Manos <nmanos>
Component: python-tripleoclientAssignee: David Peacock <dpeacock>
Status: CLOSED NOTABUG QA Contact: Gurenko Alex <agurenko>
Severity: medium Docs Contact:
Priority: medium    
Version: 13.0 (Queens)CC: aschultz, augol, hbrock, jslagle, mburns, oblaut, rbartal, sbaker, tfreger
Target Milestone: ---Keywords: Triaged, ZStream
Target Release: 13.0 (Queens)   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2018-06-28 19:16:42 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
overcloud image prepare output file not created none

Description Noam Manos 2018-06-11 10:19:13 UTC
Description of problem:
Calling "openstack overcloud container image prepare" with argument "--output-env-file" in the middle, before "--env-file", completed without generating output file.


Version-Release number of selected component (if applicable):
13   -p 2018-05-24.2

How reproducible:
Always

Steps to Reproduce:

(undercloud) [stack@undercloud-0 ~]$

$ . stackrc

$ openstack overcloud container image prepare   --namespace 192.168.24.1:8787/rhosp13   --tag  2018-06-08.3    --prefix openstack-   --output-env-file ~/update-container-params.yaml   --env-file=/home/stack/virt/docker-images.yaml   -e /home/stack/virt/config_lvm.yaml   -e /home/stack/virt/network/network-environment.yaml   -e /home/stack/virt/hostnames.yml   -e /home/stack/virt/nodes_data.yaml

$ find . -name "update*.yaml"


Actual results:
Output file (~/update-container-params.yaml) was not created.

Expected results:
Output file to be created successfully.

Additional info:
Attaching console output.

Comment 1 Noam Manos 2018-06-11 10:20:37 UTC
Created attachment 1449954 [details]
overcloud image prepare output file not created

Comment 2 Noam Manos 2018-06-11 11:50:17 UTC
Note that the output file is generating, if running with "--output-env-file" at the end:

openstack overcloud container image prepare \
  --namespace 192.168.24.1:8787/rhosp13 \
  --tag  2018-06-08.3  \
  --prefix openstack- \
  --env-file=/home/stack/virt/docker-images.yaml \
  -e /home/stack/virt/config_lvm.yaml \
  -e /home/stack/virt/network/network-environment.yaml \
  -e /home/stack/virt/hostnames.yml \
  -e /home/stack/virt/nodes_data.yaml \
  --output-env-file ~/update-container-params.yaml

Comment 4 David Peacock 2018-06-28 18:42:23 UTC
Ok so I've reproduced this but I need to look into exactly what these slightly different flags do.

I made my first run as follows:

`openstack overcloud container image prepare --namespace 192.168.24.1:8787/rhosp13 --tag 2018-06-08.3 --prefix openstack- --output-env-file ~/update-container-params.yaml --env-file=docker-images.yaml`

...which produced a `docker-images.yaml` but *no* `update-container-params.yaml` as per this bug report.

I then ran:

`openstack overcloud container image prepare --namespace 192.168.24.1:8787/rhosp13 --tag 2018-06-08.3 --prefix openstack- --env-file=docker-images.yaml --output-env-file ~/update-container-params.yaml`

Which produced the `update-container-params.yaml` file but did not touch / clobber the existing `docker-images.yaml`.

Now, the interesting part to me is that these files are identical except for comments indicating how they were generated:

```
(undercloud) [vagrant@undercloud ~]$ diff -u docker-images.yaml update-container-params.yaml 
--- docker-images.yaml	2018-06-28 17:44:41.560482212 +0000
+++ update-container-params.yaml	2018-06-28 18:36:41.379489202 +0000
@@ -1,6 +1,6 @@
-# Generated with the following on 2018-06-28T17:44:41.545106
+# Generated with the following on 2018-06-28T18:36:41.340610
 #
-#   openstack overcloud container image prepare --namespace 192.168.24.1:8787/rhosp13 --tag 2018-06-08.3 --prefix openstack- --output-env-file /home/vagrant/update-container-params.yaml --env-file=docker-images.yaml
+#   openstack overcloud container image prepare --namespace 192.168.24.1:8787/rhosp13 --tag 2018-06-08.3 --prefix openstack- --env-file=docker-images.yaml --output-env-file /home/vagrant/update-container-params.yaml
 #
```

My questions and investigation is now are these files supposed to be materially different?  Is it possible that these flags cancel each other out (which should be more clear and / or corrected)?

Comment 5 David Peacock 2018-06-28 19:16:42 UTC
Yeah, so these are identical.

`--env-file` is deprecated.

https://github.com/openstack/python-tripleoclient/blob/master/tripleoclient/v1/container_image.py#L329-L343