'overcloud export ceph' fails ceph_client.yml not found
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
tripleo |
Fix Released
|
Medium
|
John Fulton |
Bug Description
openstack overcloud export ceph --stackopenstack overcloud export ceph --stack central --output-file central_
/usr/lib/
warnings.
Exception occured while running the command
Traceback (most recent call last):
File "/usr/lib/
super(Command, self).run(
File "/usr/lib/
return super(Command, self).run(
File "/usr/lib/
return_code = self.take_
File "/usr/lib/
cephs.
File "/usr/lib/
with open(file, 'r') as ff:
FileNotFoundError: [Errno 2] No such file or directory: '/home/
[Errno 2] No such file or directory: '/home/
Analysis of system where bug was encountered:
No such file or directory: stack/overcloud -deploy/ central/ config- download/ central/ cephadm/ ceph_client. yml
'/home/
Instead we have this:
/home/ stack/ceph_ client. yaml
Let's think about how TripleO controls where this file is:
What should happen if I just read the code:
A. THT sets this to [1]
"{{ playbook_dir }}/cephadm/ ceph_client. yml"
B. tripleo-ansible saves [2] this to a variable which defaults it to [3] [4]:
tripleo_ ceph_client_ vars: "/home/ stack/ceph_ client. yaml"
C. tripleo- pythonclient looks for it in [5]:
ceph_client = "cephadm/ ceph_client. yml" join(config_ download_ dir, stack, ceph_client)
file = os.path.
A and C are not inconsistent because:
playbook_dir == (config_ download_ dir + stack)
B is not consistent w/ A+C, so I should update that if nothing else. Was that the root cause?
Let's look at if THT had that set in the deployment:
config- download/ central/ cephadm/ cephadm- extra-vars- heat.yml: tripleo_ ceph_client_ vars: /home/stack/ ceph_client. yaml
There:
(undercloud) [stack@ site-undercloud -0 templates]$ grep CephClientConfi gVars *.yaml ceph-deployed. yaml: CephClientConfi gVars: /home/stack/ ceph_client. yaml site-undercloud -0 templates]$
overcloud-
(undercloud) [stack@
The default from tripleo-ansible was exported and that's why THT didn't override it.
Definitely a bug. Probably needs two patches:
1. tripleo-ansible: new default consistent with what THT would produce tripleoclient: also look in /home/stack/ ceph_client. yaml related-bug (for current users)
2. python-
[1] https:/ /github. com/openstack/ tripleo- heat-templates/ blob/stable/ wallaby/ deployment/ cephadm/ ceph-base. yaml#L335- L337
[2] https:/ /github. com/openstack/ tripleo- ansible/ blob/master/ tripleo_ ansible/ roles/tripleo_ cephadm/ tasks/export. yaml#L86- L92
[3] https:/ /github. com/openstack/ tripleo- ansible/ blob/master/ tripleo_ ansible/ roles/tripleo_ cephadm/ defaults/ main.yml# L37
[4] https:/ /github. com/openstack/ tripleo- ansible/ blob/master/ tripleo_ ansible/ roles/tripleo_ ceph_client/ defaults/ main.yml# L25
[5] https:/ /github. com/openstack/ python- tripleoclient/ blob/stable/ wallaby/ tripleoclient/ export. py#L214