Replaced expensive get_server() and fixed issues in server module
openstacksdk's get_server() [1] calls add_server_interfaces() [2] which queries OpenStack APIs several times to get all ports and floating ips attached to a server. Now we call openstacksdk's compute.find_server() [3] and compute.\ get_server() [4] which result in two API calls, in order to fill server['addresses'] attribute which we later use to get floating ip addresses attached to the server. Do an extra call to compute.get_server() in order to return a pristine server resource, because openstacksdk's create_server() might call meta.add_server_interfaces() which alters server attributes such as server['addresses'] [5]. Fail if options 'auto_ip', 'floating_ips' or 'floating_ip_pools' are specified but 'wait' is not set to true, because openstacksdk will add floating ip addresses only if we wait until the server has been created [6]. This conditional fail will help users to not shoot their foot. Marked floating ip support unstable in this module due to various unresolved issues in openstacksdk's add_ips_to_server() function such as [9] and [10]. For Zuul CI job ansible-collections-openstack-functional-devstack-\ releases to pass, the minimum required openstacksdk release must be 0.101.0 because [7],[8] are available since that release only. [1] https://opendev.org/openstack/openstacksdk/src/commit/3f81d0001dd994cde990d38f6e2671ee0694d7d5/openstack/cloud/_compute.py#L484 [2] https://opendev.org/openstack/openstacksdk/src/commit/3f81d0001dd994cde990d38f6e2671ee0694d7d5/openstack/cloud/meta.py#L439 [3] https://opendev.org/openstack/openstacksdk/src/commit/3f81d0001dd994cde990d38f6e2671ee0694d7d5/openstack/compute/v2/_proxy.py#L652 [4] https://opendev.org/openstack/openstacksdk/src/commit/3f81d0001dd994cde990d38f6e2671ee0694d7d5/openstack/compute/v2/_proxy.py#L666 [5] https://opendev.org/openstack/openstacksdk/src/commit/3f81d0001dd994cde990d38f6e2671ee0694d7d5/openstack/cloud/_compute.py#L942 [6] https://opendev.org/openstack/openstacksdk/src/commit/3f81d0001dd994cde990d38f6e2671ee0694d7d5/openstack/cloud/_compute.py#L945 [7] https://review.opendev.org/c/openstack/openstacksdk/+/851976 [8] https://github.com/openstack/openstacksdk/commit/0ded7ac398843b6b1ce46668eb3b45ce02628428 [9] https://storyboard.openstack.org/#!/story/2010352 [10] https://storyboard.openstack.org/#!/story/2010153 Change-Id: I6a5663433b1b9529f99d5eced22a28c692a1d288
Loading
Please register or sign in to comment