mgmt_sys_api_clients should already have all the providers in it by name, so attempting to rewrite mgmt_sys_api_clients with another provider's details in this way is doomed from the start; if the provider dictionary could have been created by name using provider_factory, it would already be in the mgmt_sys_api_clients dict.

I think it's appropriate to refer to a provider by its cfme_data key in the openstack provisioning section, rather than its name property (in this case, openstack_provisioning_data should be 'openstack'). From that point, any introspection needed to get at the provider's specific details can be done as needed.