- Nov 24, 2022
-
-
Francesco Lombardo authored
This allows you to specify the 'parent_id' of the project being created Signed-off-by:
Francesco Lombardo <francesco.lombardo@garr.it> Change-Id: I9fc91a9fa52c19a8d635c5faaa06a99934100229
-
- Nov 17, 2022
-
-
Rafael Castillo authored
Replaces the policies argument with policy. The policies attribute is ancient and was superceded by policy a long time ago[0][1]. Since policy and policies differ in type, we can't simply alias these and had to drop policies to keep the implementation small. [0] https://docs.openstack.org/nova/latest/reference/api-microversion-history.html#id59 [1] https://docs.openstack.org/api-ref/compute/#create-server-group Change-Id: Icd658fb179ca0a96276b033130b9dddfedd84236
-
- Nov 10, 2022
-
-
Jakob Meng authored
Change-Id: I8ab45280badf7fc9448e2ebfc6e38648cc2dc1b7
-
Jakob Meng authored
Change-Id: Id023d13abf5c1179044fcc611a3e509f16f10621
-
Jakob Meng authored
Change-Id: I6f9eef184538df4feff49dd6ed659a9b9ac1289f
-
Jakob Meng authored
Change-Id: I33fa4b3a08392feac702f45a2c47f8b04799ac0b
-
Rafael Castillo authored
- Switch to using proxy layer calls - Return whole server resource instead of only metadata map - Swap the name and server aliased parameters - Add a server_metadata test role - Ensure check mode returns tentatively updated metadata - Remove server_id return value Change-Id: Id63e6a80d1b8e3574911016fec792f00b63f1524
-
- Nov 09, 2022
-
-
Jakob Meng authored
Change-Id: I1370f5bcde602f63b4763c487f027677e79c73b0
-
Jakob Meng authored
Instead of asserting that openstacksdk created a logging file, we read the contents of that log file now. The benefit is, that this integration test gives users an idea how to actually use the logging feature and also read the contents of the log file. Change-Id: I9e3c75dda4c1c920937c9780fbdcbe3caeb4d6ad
-
Jakob Meng authored
Change-Id: I7ba626e2ef2a108bf79cacd8d6ee0735b8a0bdeb
-
- Nov 08, 2022
-
-
Jakob Meng authored
Change-Id: I09a133b5c4f6c71e10d274be1c70b7edcce1c83c
-
Jakob Meng authored
Change-Id: I70fc744f786a9de654592c97188af48ddbe8751d
-
Jakob Meng authored
Change-Id: I3a7a0b0567ac24fb9433352fdc99022bf366fc6a
-
- Nov 04, 2022
-
-
Jakob Meng authored
Change-Id: I523fd25a11f8f39a346afc17ae1e3a4dfcb8bae2
-
Zuul authored
-
- Nov 03, 2022
-
-
Jakob Meng authored
Change-Id: I5fd844fbb7b9831deb32594c4a587b7249f63d00
-
- Nov 02, 2022
-
-
Sagi Shnaidman authored
Match defaults in spec and documentation, make happy ansible-test. Change-Id: Ifd6a02e957d1f0df27d89c350fb9d1ebf1ca7680 Signed-off-by:
Sagi Shnaidman <sshnaidm@redhat.com>
-
Denys Mishchenko authored
Dropped default values of min_disk and min_ram parameters because it interferes with the update mechanism and glance uses those values anyway [1], [2]. If the image is already present and visibility param is defined we should check its visibility and correct it if needed. Added tests to verify that both is_public and visibility can change the image. If both name and id are specified for the image, we might want to update the image name. This rely on fact that id pram is checked first. Added rename tests to verify this. For some reason if image object is used for the image update, 409 error produced and exception trown, but the change is in place. So instead of image object, update query rely on the image.id [1] https://github.com/openstack/glance/blob/75051dd5a2cdeef2919ba2062714bde7502416ba/glance/db/simple/api.py#L226 [2] https://github.com/openstack/glance/blob/75051dd5a2cdeef2919ba2062714bde7502416ba/glance/domain/__init__.py#L125 Change-Id: I9ca6b78bec96b69e6946b65796f12314a1ec6ab4
-
- Oct 28, 2022
-
-
Jakob Meng authored
openstacksdk's create_server() [1] takes cloud-init userdata as a plaintext string (or other data types [2]) via argument 'userdata', not 'user_data' [3]. This is 'userdata' argument of create_server() is different from the 'user_data' value which is returned [4]. The latter is base64 decoded, while the former is e.g. a plaintext string. As a (tiny) visual indicator for this difference, this patch reverts the module parameter 'user_data' to 'userdata' which was used before this module got refactored [5]. [1] https://opendev.org/openstack/openstacksdk/src/commit/57fbb72e32351f795f5888306096e8d3d35a64ef/openstack/cloud/_compute.py#L678 [2] https://opendev.org/openstack/openstacksdk/src/commit/57fbb72e32351f795f5888306096e8d3d35a64ef/openstack/cloud/_compute.py#L1757 [3] https://opendev.org/openstack/openstacksdk/src/commit/57fbb72e32351f795f5888306096e8d3d35a64ef/openstack/cloud/_compute.py#L796 [4] https://opendev.org/openstack/openstacksdk/src/commit/57fbb72e32351f795f5888306096e8d3d35a64ef/openstack/compute/v2/server.py#L223 [5] https://opendev.org/openstack/ansible-collections-openstack/commit/ac401bb354c6a1d388848a3ebd18537beba080cc Change-Id: I1f3b9314e4d82674cd2ae45f6209de5611e2b6cb
-
- Oct 27, 2022
-
-
Sagi Shnaidman authored
Ansible requires Python 3.9+ since ansible-core 2.14 [1], but our ansible-collections-openstack-functional-devstack-* jobs use Ubuntu 20.04 LTS (Focal Fossa) which has Python 3.8 only. [1] https://github.com/ansible/ansible/commit/884244f1b2da3c3f367e064ef4ac0123fcb12675 Co-Authored-By:
Jakob Meng <code@jakobmeng.de> Change-Id: I0c363a925265a5d42c16870094c8384fa509e4d2
-
Jakob Meng authored
This will ensure proper cleanup when tests fail. Change-Id: Ia5758ffeab43d92f670d3e159fe4f3747491ec94
-
- Oct 26, 2022
-
-
Jakob Meng authored
Change-Id: I071e50eadfaf0f17f413a0c5f86e5d6b96356b36
-
Kristian Kucerak authored
Change-Id: Ie23604c34ed9fb17eeb15bf73db9019ca9ebc7d8
-
Rafael Castillo authored
Changes sdk calls to use the proxy layer where convenient. Ensures resources are converted to dict before returns. Changes the name of various parameters to match sdk attributes. Adds the old attribute names as aliases to maintain backward compatibility. Adds detailed return documentation. Removed the ability to create volumes in specific projects. Users looking to do that can use the auth parameter to specify what project is relevant Removes conditionals in tests that maintained support for ancient openstack and sdk releases. Depends-On: https://review.opendev.org/c/openstack/openstacksdk/+/854293 Change-Id: I3c4f4209f2ca6348370a45473bdb0d111b2439b6
-
- Oct 25, 2022
-
-
Jakob Meng authored
Sorted argument specs and documentation of both modules. Refactored both modules to be subclasses of OpenStackModule class. Renamed baremetal_port's module attributes 'uuid' to 'id' and 'portgroup' to 'port_group' to match openstacksdk. Added the previous attribute names as aliases to keep backward compatibility. Added alias 'pxe_enabled' for 'is_pxe_enabled' which was previously set programmatically. Changed baremetal_port module to return attribute 'port' only when state is present. It will return no values (except Ansible's default values) when state is absent. Previous return value 'id' can be retrieved from port's dictionary entry 'id'. The non-standard return value 'result' has been dropped because its content can easily be reconstructed with Ansible's is changed check. The non-standard return value 'changes' has been dropped because its content was only returned on updates, has no known uses and can easily be reconstructed in Ansible by comparing the updated port dictionary with a copy of the pre-updated port dictionary. Module baremetal_port_info will no longer fail when no port with a matching id or name or address could be found. Instead it will return an empty list like other *_info modules. baremetal_port_info's return attribute 'baremetal_ports' has been renamed to 'ports' to be consistent with other modules. The former name will keep to be available for now to keep backward compatibility. Both modules convert their return values into dictionaries without computed (redundant) values. They do not drop values such as links anymore though, because we do not withhold information from users. Updated DOCUMENTATION, EXAMPLES and RETURN docstrings in both modules. Added integration tests for both modules. They will not run in CI atm, because we do not have Ironic enabled in our DevStack environment. Change-Id: I54b3ea9917fbbbdf381ef934a0d92e2857f6d51b
-
Jakob Meng authored
Sorted argument specs and documentation of the module. Refactored baremetal_node_action module to be a subclass of the OpenStackModule class. Redefined baremetal_node_info's module attributes 'id' and 'uuid' as aliases of the 'name' attribute because modules in this collection do not differentiate between ids and names. The previous revision of baremetal_node_info module had the same behaviour implemented but did not make the relationship between 'id'/'uuid' and 'name' explicit. Changed types and/or choices of module attributes 'deploy', 'maintenance', 'power' and 'state' to match what has been described in DOCUMENTATION string and to get rid of the non-Ansible'ish and inconsistent parsing of input values in _is_true() and _is_false() functions. Ansible can handle argument types for us, no need to implement it ourselfs. Dropped deprecated ironic_url attribute from DOCUMENTATION docstring. Dropped wait and timeout attributes from DOCUMENTATION because their docstrings will be added via documentation fragment. Dropped attribute 'result' from module results because in our modules we consistently do not explain what we do in modules. Updated DOCUMENTATION, EXAMPLES and added RETURN docstrings. Refactored the change logic for maintenance, power state and state, eliminating unreachable or broken code. Dropped wait attribute from DOCUMENTATION because its docstring will be added via documentation fragment. Kept timeout attribute in DOCUMENTATION and argument_spec because it has a high(er) default value, to account for long node (de)activiation times, than what e.g. the generic doc fragment specifies. Change-Id: I991f23c16583da106105677d75b3651959280d98
-
Jakob Meng authored
Added integration tests for both modules. They will not run in CI atm, because we do not have Ironic enabled in our DevStack environment. Sorted argument specs and documentation of both modules. Refactored both modules to be subclasses of OpenStackModule class. Renamed baremetal_node_info's module attribute 'node' to 'name' and added the former as an alias to be consistent with other *_info modules. baremetal_node_info will no longer fetch port and portgroup details because this requires extra api calls for each node. Users can use the baremetal_port module to retrieve ports for each node on demand. Refactored code for constructing node updates in baremetal_node module which allowed us to drop the dependency on Python module jsonpatch. Deprecated baremetal_node's skip_update_of_masked_password attribute. Updating or even specificing passwords for nodes has not been supported for a while now, rendering the attribute useless. Renamed baremetal_node's module attributes 'chassis_uuid' to 'chassis_id', 'uuid' to 'id' as well as suboptions of 'properties' to match openstacksdk. Added the previous attribute names as aliases to keep backward compatibility. Marked nics attribute in baremetal_node as not updatable. Changed baremetal_node module to return attribute 'node' only when state is present. It will return no values (except Ansible's default values) when state is absent. Previous return value 'uuid' can be retrieved from node's dictionary entry 'id'. The non-standard return value 'result' has been dropped because its content can easily be reconstructed with Ansible's is changed check. The non-standard return value 'changes' has been dropped because it was only returned on updates, has no known uses and can easily be reconstructed in Ansible by comparing the returned node dictionary with a copy of a previous node dictionary. Module baremetal_node_info will no longer fail when no node with a matching id or name or mac could be found. Instead it will return an empty list like other *_info modules. baremetal_node_info's return attribute 'baremetal_nodes' has been renamed to 'nodes' to be consistent with other modules. The former name will keep to be available for now to keep backward compatibility. Both modules convert their return values into dictionaries without computed (redundant) values. They do not drop values such as links anymore though, because we do not withhold information from users. Updated DOCUMENTATION, EXAMPLES and RETURN docstrings in both modules. Dropped deprecated ironic_url attribute from DOCUMENTATION docstring in baremetal_info. Dropped wait attribute from DOCUMENTATION because its docstring will be added via documentation fragment. Kept timeout attribute in DOCUMENTATION and argument_spec because it has a high(er) default value, to account for long provisioning times, than what e.g. the generic doc fragment specifies. Change-Id: If3044acf672295e9b61fa60d0969f47cd06dfdeb
-
- Oct 18, 2022
-
-
Artem Goncharov authored
It is wrong to enforce values of optional networking parameters. In the clouds where those optional extensions are not installed this leads to failures. Instead only pass params down to SDK if user explicitly set them. Change-Id: I5660eb8a4a65dd365ae7ce8c09825bbed8d2fdde
-
- Oct 14, 2022
-
-
Jakob Meng authored
Allow to filter stacks by owner names and project names instead of ids only, in order to be consistent with other *_info modules. Renamed stack_info's module attributes 'owner_id' to 'owner' and 'project_id' to 'project' to account for the new filter by name functionality. Added the *_id attributes as aliases to keep backward compatibility. Updated and extended DOCUMENTATION, EXAMPLES and RETURN docstrings. The stack_info module will convert its return values into dictionaries without computed (redundant) values. Thus dropping values such as location is not required anymore. Change-Id: I9cdfb44dd424f63c05943616cf5918ceb3a57b1f
-
Jakob Meng authored
Use service proxies from openstacksdk wherever reasonable in order to reduce calls to OpenStack API. Renamed floating_ip_info's attribute 'project_id' to 'project' to be consistent with other attributes and added the former as an alias to keep backward compatibility. The latter can now also be used to search for floating ips by project names, not only project ids. Sorted argument specs and documentation of both modules. Reworked integration tests, e.g. replaced references to server's 'addresses' attribute with calls to our port_info and floating_ip_info modules. Also reformatted tests and added assertion on return values. Merged integration tests of floating_ip_info module into floating_ip module, because the former does not create any floating ips and assumes that they have been created earlier. For Zuul CI job ansible-collections-openstack-functional-devstack-\ releases to pass, the minimum required openstacksdk release must be 0.102.0 because [1],[2],[3],[4] are available since that release only. [1] https://review.opendev.org/c/openstack/openstacksdk/+/851976 [2] https://github.com/openstack/openstacksdk/commit/0ded7ac398843b6b1ce46668eb3b45ce02628428 [3] https://review.opendev.org/c/openstack/openstacksdk/+/859672 [4] https://github.com/openstack/openstacksdk/commit/2535ba7a28ae081f064ae20f9ddb19f48a973625 Change-Id: I129f866e7ed8d5c0499c93e78ebbe2c424e09423
-
Jakob Meng authored
Latest release candidate 0.102.0 of openstacksdk's first major release brings new features and bug fixes, e.g. for floating ips [1], [2]. [1] https://review.opendev.org/c/openstack/openstacksdk/+/859672 [2] https://github.com/openstack/openstacksdk/commit/2535ba7a28ae081f064ae20f9ddb19f48a973625 Change-Id: I009c8515e853baf4df3455fab19571f28e02ab46
-
- Oct 10, 2022
-
-
Rafael Castillo authored
Change-Id: Id636bc5de1acb59ad8587cd6c7181e022097cfe7
-
- Oct 07, 2022
-
-
Jakob Meng authored
Dropped stack status checks for CREATE_COMPLETE and UPDATE_\ COMPLETE and instead pass wait=True to openstacksdk's create_stack() and update_stack() calls because those will call event_utils.\ poll_for_events() which garantees that stack has reached those states when they return [1],[2]. Check for duplicate keys in parameters which already have been defined by regular module attributes. Raise an error to warn users that they tried to overwrite parameters which they already specified with module attributes. Renamed stack's module attribute 'tag' to 'tags' to match both openstacksdk and OpenStack API and clarify that more than a single tag can be specified. Added 'tag' as an alias to keep backward compatibility. Actually pass the 'tags' aka 'tag' attribute to stack create and update functions of the openstacksdk which was lost in [3]. Added tags to integration tests. Sorted argument specs and documentation of the stack module and marked attributes which are not updatable. Dropped condition from self.conn.delete_stack() because the latter will only return False when a stack could not be found which we already. self.conn.delete_stack() will raise an exception when stack deletion fails. Renamed ci integration tests from 'orchestration' to 'stack' in order to match module name and adapted tags accordingly. Fixed and enabled ci integration tests for stack and stack_info modules. Dropped 'stack_name' from module return values in RETURN docstring and ci integration tests because openstacksdk not return this attribute. [1] https://opendev.org/openstack/openstacksdk/src/commit/9b1c4333526862d0edfc8e5f7bd421b0065b06db/openstack/cloud/_orchestration.py#L92 [2] https://opendev.org/openstack/openstacksdk/src/commit/9b1c4333526862d0edfc8e5f7bd421b0065b06db/openstack/cloud/_orchestration.py#L148 [3] https://opendev.org/openstack/ansible-collections-openstack/commit/af79857bfb9f391e43eaab0f0c94d8c2b7b74c86 Change-Id: I4ace6012112bbcce9094353e27eb4066cf25f229
-
- Oct 06, 2022
-
-
Jakob Meng authored
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
-
Rafael Castillo authored
Add a test role to validate module functionality Replace calls to the sdk cloud layer to use the proxy layer. Update module parameters to use names matching the sdk. Keep aliases for old values. Remove _scrub_results, no longer necessary with proxy layer. Move check mode outside of main flow to keep the module readable. Refactor code to handle fields that should be ignored. Simplify return value from _system_state_change_details. Inline calls to fetch existing quotas. Remove metaprogramming calls to cloud layer methods, as the proxy layer doesn't have the same consistent API. Remove handling for case where neutron throws exception when unsetting quotas that aren't set. This is validated in the test role. Ensure return values are dicts. Replace exception handler with conditionals which allows us to drop the dependency on keystoneauth1 library and is much more correct than catching all exceptions and always printing the same error even on unrelated exceptions. Story: 2010099 Task: 45654 Change-Id: I5eda8e476a4e779382e6c63f5982504d5951501d
-
- Sep 30, 2022
-
-
Jakob Meng authored
Story: 2010337 Task: 46470 Change-Id: Ieb624b76627b5127d7a6c4d95233bbd5c2f16182 (cherry picked from commit e8bba38e2e78b0352f4ce5a93b8ebb43ce7714ed)
-
Jakob Meng authored
We require openstacksdk>=0.99.0 for this collection but we do not specify versions in module requirements. We probably should do so, but then consistently across all modules and plugins. Change-Id: If3d8cd1491266e3332f478267fc41771f280b9a8
-
- Sep 27, 2022
-
-
anbanerj authored
Change-Id: Iec99be0f422f1fab9b17e581b7b47a7540de749c
-
- Sep 23, 2022
-
-
Jakob Meng authored
Sem-Ver: api-break Ref.: https://docs.openstack.org/pbr/latest/user/features.html#version Change-Id: Id0d5e5b389b3d2c194ff46ce91c3fe2e98e03c73
-
- Sep 22, 2022
-
-
Rafael Castillo authored
Currently, our tripleo periodic jobs are failing, while our check jobs are passing. This is because build-test-packages is not building the tip of master version of the collections, instead using the version built in rdo. This patch explicitly adds ansible-collection-openstack to the change list so it always gets picked up by build-test-packages. Change-Id: I6938c8373872daed8632429df42d20396980bc76
-