)]}'
{"docs/openstack_guidelines.rst":[{"author":{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},"change_message_id":"72f82ff297570f36b23caffa634c27721af20b16","unresolved":false,"context_lines":[{"line_number":14,"context_line":"Naming"},{"line_number":15,"context_line":"------"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"* All module names should start with ``os_``"},{"line_number":18,"context_line":"* Name any module that a cloud consumer would expect to use after the logical resource it manages: ``os_server`` not ``os_nova``. This naming convention acknowledges that the end user does not care which service manages the resource - that is a deployment detail. For example cloud consumers may not know whether their floating IPs are managed by Nova or Neutron."},{"line_number":19,"context_line":"* Name any module that a cloud admin would expect to use with the service and the resource: ``os_keystone_domain``."},{"line_number":20,"context_line":"* If the module is one that a cloud admin and a cloud consumer could both use,"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3fa7e38b_638b4316","line":17,"updated":"2020-01-29 20:24:41.000000000","message":"Are we keeping this? I thought with collections since we\u0027;ll now have an openstack.cloud namespace we were going to be able to transition away from this prefix so that we could just have openstack.cloud.server (obviously with backwards-compat aliasess)","commit_id":"4ce2b38cd11bb6858c32dc18d1273ad0a2c45453"},{"author":{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},"change_message_id":"72f82ff297570f36b23caffa634c27721af20b16","unresolved":false,"context_lines":[{"line_number":16,"context_line":""},{"line_number":17,"context_line":"* All module names should start with ``os_``"},{"line_number":18,"context_line":"* Name any module that a cloud consumer would expect to use after the logical resource it manages: ``os_server`` not ``os_nova``. This naming convention acknowledges that the end user does not care which service manages the resource - that is a deployment detail. For example cloud consumers may not know whether their floating IPs are managed by Nova or Neutron."},{"line_number":19,"context_line":"* Name any module that a cloud admin would expect to use with the service and the resource: ``os_keystone_domain``."},{"line_number":20,"context_line":"* If the module is one that a cloud admin and a cloud consumer could both use,"},{"line_number":21,"context_line":"  the cloud consumer rules apply."},{"line_number":22,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"3fa7e38b_0375af32","line":19,"updated":"2020-01-29 20:24:41.000000000","message":"I feel like I remember us discussing doing away with this split","commit_id":"4ce2b38cd11bb6858c32dc18d1273ad0a2c45453"},{"author":{"_account_id":25877,"name":"Luke Short","email":"ekultails@gmail.com","username":"ekultails"},"change_message_id":"61b862f16b291bde311102fe4646fb4f1443527d","unresolved":false,"context_lines":[{"line_number":30,"context_line":"Interoperability"},{"line_number":31,"context_line":"----------------"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"* It should be assumed that the cloud consumer does not know a bazillion"},{"line_number":34,"context_line":"  details about the deployment choices their cloud provider made, and a best"},{"line_number":35,"context_line":"  effort should be made to present one sane interface to the Ansible user"},{"line_number":36,"context_line":"  regardless of deployer insanity."}],"source_content_type":"text/x-rst","patch_set":4,"id":"3fa7e38b_011a7d7f","line":33,"updated":"2020-01-30 14:47:57.000000000","message":"nit: (1) The word bazillion makes the document seem not as professional. (2) This is also a run-on sentence. It can end at the comma. (3) Documentation should be declarative.","commit_id":"4ce2b38cd11bb6858c32dc18d1273ad0a2c45453"},{"author":{"_account_id":25877,"name":"Luke Short","email":"ekultails@gmail.com","username":"ekultails"},"change_message_id":"61b862f16b291bde311102fe4646fb4f1443527d","unresolved":false,"context_lines":[{"line_number":34,"context_line":"  details about the deployment choices their cloud provider made, and a best"},{"line_number":35,"context_line":"  effort should be made to present one sane interface to the Ansible user"},{"line_number":36,"context_line":"  regardless of deployer insanity."},{"line_number":37,"context_line":"* All modules should work appropriately against all existing known public"},{"line_number":38,"context_line":"  OpenStack clouds."},{"line_number":39,"context_line":"* It should be assumed that a user may have more than one cloud account that"},{"line_number":40,"context_line":"  they wish to combine as part of a single Ansible-managed infrastructure."}],"source_content_type":"text/x-rst","patch_set":4,"id":"3fa7e38b_210c5943","line":37,"updated":"2020-01-30 14:47:57.000000000","message":"Perhaps we can simply state that our modules work with any non-EOL OpenStack API versions?","commit_id":"4ce2b38cd11bb6858c32dc18d1273ad0a2c45453"},{"author":{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},"change_message_id":"4389e371450938390f3442d6f08b6b792c8e1d5f","unresolved":false,"context_lines":[{"line_number":34,"context_line":"  details about the deployment choices their cloud provider made, and a best"},{"line_number":35,"context_line":"  effort should be made to present one sane interface to the Ansible user"},{"line_number":36,"context_line":"  regardless of deployer insanity."},{"line_number":37,"context_line":"* All modules should work appropriately against all existing known public"},{"line_number":38,"context_line":"  OpenStack clouds."},{"line_number":39,"context_line":"* It should be assumed that a user may have more than one cloud account that"},{"line_number":40,"context_line":"  they wish to combine as part of a single Ansible-managed infrastructure."}],"source_content_type":"text/x-rst","patch_set":4,"id":"1fa4df85_2df96cc7","line":37,"in_reply_to":"3fa7e38b_210c5943","updated":"2020-02-27 15:35:29.000000000","message":"We actually don\u0027t care of the API is EOL, we still support it. It\u0027s phrased in terms of public clouds because those are the ones as developers we can actually verify against - and are one of the reasons this is a design point. Just because upstream openstack has marked a release EOL doesn\u0027t mean there aren\u0027t clouds out there still running it. Our users are the users of the APIs of those clouds and it\u0027s not their fault that their cloud provider hasn\u0027t upgraded.\n\nAlso, some users of those clouds are also users of modern up to date clouds and to handle multi cloud workloads, they need to be able to have one copy of ansible that works against all of their clouds (not an invented use case, I\u0027m describing openstack-infra)\n\nAll that said - we could certainly phrase this differently. Do you think it would be useful to say some version of that whole thing above?","commit_id":"4ce2b38cd11bb6858c32dc18d1273ad0a2c45453"},{"author":{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},"change_message_id":"72f82ff297570f36b23caffa634c27721af20b16","unresolved":false,"context_lines":[{"line_number":46,"context_line":"  standard input such as auth and ssl support."},{"line_number":47,"context_line":"* All modules should include ``extends_documentation_fragment: openstack``."},{"line_number":48,"context_line":"* All complex cloud interaction or interoperability code should be housed in"},{"line_number":49,"context_line":"  the `openstacksdk \u003chttps://git.openstack.org/cgit/openstack/openstacksdk\u003e`_"},{"line_number":50,"context_line":"  library."},{"line_number":51,"context_line":"* All OpenStack API interactions should happen via the openstacksdk and not via"},{"line_number":52,"context_line":"  OpenStack Client libraries. The OpenStack Client libraries do no have end"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3fa7e38b_43e2c7d4","line":49,"updated":"2020-01-29 20:24:41.000000000","message":"https://opendev.org/openstack/openstacksdk","commit_id":"4ce2b38cd11bb6858c32dc18d1273ad0a2c45453"},{"author":{"_account_id":25877,"name":"Luke Short","email":"ekultails@gmail.com","username":"ekultails"},"change_message_id":"61b862f16b291bde311102fe4646fb4f1443527d","unresolved":false,"context_lines":[{"line_number":48,"context_line":"* All complex cloud interaction or interoperability code should be housed in"},{"line_number":49,"context_line":"  the `openstacksdk \u003chttps://git.openstack.org/cgit/openstack/openstacksdk\u003e`_"},{"line_number":50,"context_line":"  library."},{"line_number":51,"context_line":"* All OpenStack API interactions should happen via the openstacksdk and not via"},{"line_number":52,"context_line":"  OpenStack Client libraries. The OpenStack Client libraries do no have end"},{"line_number":53,"context_line":"  users as a primary audience, they are for intra-server communication."},{"line_number":54,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"3fa7e38b_c1fc650f","line":51,"updated":"2020-01-30 14:47:57.000000000","message":"+1","commit_id":"4ce2b38cd11bb6858c32dc18d1273ad0a2c45453"},{"author":{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},"change_message_id":"72f82ff297570f36b23caffa634c27721af20b16","unresolved":false,"context_lines":[{"line_number":50,"context_line":"  library."},{"line_number":51,"context_line":"* All OpenStack API interactions should happen via the openstacksdk and not via"},{"line_number":52,"context_line":"  OpenStack Client libraries. The OpenStack Client libraries do no have end"},{"line_number":53,"context_line":"  users as a primary audience, they are for intra-server communication."},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"Testing"},{"line_number":56,"context_line":"-------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3fa7e38b_43fba778","line":53,"updated":"2020-01-29 20:24:41.000000000","message":"We should maybe add a bullet point:\n\n* Most logic should go into the cloud layer of openstacksdk leaving modules themselves to be primarily glue-code providing appropriate ansible interfaces. If logic is needed for handling some sort of OpenStack object, it stands to reason that the same logic would be useful to other openstack users.","commit_id":"4ce2b38cd11bb6858c32dc18d1273ad0a2c45453"},{"author":{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},"change_message_id":"72f82ff297570f36b23caffa634c27721af20b16","unresolved":false,"context_lines":[{"line_number":55,"context_line":"Testing"},{"line_number":56,"context_line":"-------"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"* Integration testing is currently done in `OpenStack\u0027s CI system \u003chttps://git.openstack.org/cgit/openstack/openstacksdk/tree/openstack/tests/ansible\u003e`_"},{"line_number":59,"context_line":"* Testing in openstacksdk produces an obvious chicken-and-egg scenario. Work is under"},{"line_number":60,"context_line":"  way to trigger from and report on PRs directly."}],"source_content_type":"text/x-rst","patch_set":4,"id":"3fa7e38b_43308754","line":58,"range":{"start_line":58,"start_character":67,"end_line":58,"end_character":149},"updated":"2020-01-29 20:24:41.000000000","message":"Maybe https://opendev.org/openstack/ansible-collections-openstack/src/branch/master/zuul.yaml","commit_id":"4ce2b38cd11bb6858c32dc18d1273ad0a2c45453"},{"author":{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},"change_message_id":"72f82ff297570f36b23caffa634c27721af20b16","unresolved":false,"context_lines":[{"line_number":56,"context_line":"-------"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"* Integration testing is currently done in `OpenStack\u0027s CI system \u003chttps://git.openstack.org/cgit/openstack/openstacksdk/tree/openstack/tests/ansible\u003e`_"},{"line_number":59,"context_line":"* Testing in openstacksdk produces an obvious chicken-and-egg scenario. Work is under"},{"line_number":60,"context_line":"  way to trigger from and report on PRs directly."}],"source_content_type":"text/x-rst","patch_set":4,"id":"3fa7e38b_e3f5f384","line":59,"updated":"2020-01-29 20:24:41.000000000","message":"This bullet point can go away.","commit_id":"4ce2b38cd11bb6858c32dc18d1273ad0a2c45453"},{"author":{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},"change_message_id":"231840347351d5c01b350ce8f4167322d6ae8dfb","unresolved":false,"context_lines":[{"line_number":56,"context_line":"-------"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"* Integration testing is currently done in `OpenStack\u0027s CI system \u003chttps://git.openstack.org/cgit/openstack/openstacksdk/tree/openstack/tests/ansible\u003e`_"},{"line_number":59,"context_line":"* Testing in openstacksdk produces an obvious chicken-and-egg scenario. Work is under"},{"line_number":60,"context_line":"  way to trigger from and report on PRs directly."}],"source_content_type":"text/x-rst","patch_set":4,"id":"3fa7e38b_b1f6452c","line":59,"in_reply_to":"3fa7e38b_244f876a","updated":"2020-02-18 15:20:38.000000000","message":"Oh - it just used to be a chicken and egg when this was all in the ansible repo. You\u0027re exactly right - we have integration tests for sdk - and now that the collection is over here in gerrit land and gated by the same zuul - we can actually just flat out make some co-gate jobs.","commit_id":"4ce2b38cd11bb6858c32dc18d1273ad0a2c45453"},{"author":{"_account_id":25877,"name":"Luke Short","email":"ekultails@gmail.com","username":"ekultails"},"change_message_id":"61b862f16b291bde311102fe4646fb4f1443527d","unresolved":false,"context_lines":[{"line_number":56,"context_line":"-------"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"* Integration testing is currently done in `OpenStack\u0027s CI system \u003chttps://git.openstack.org/cgit/openstack/openstacksdk/tree/openstack/tests/ansible\u003e`_"},{"line_number":59,"context_line":"* Testing in openstacksdk produces an obvious chicken-and-egg scenario. Work is under"},{"line_number":60,"context_line":"  way to trigger from and report on PRs directly."}],"source_content_type":"text/x-rst","patch_set":4,"id":"3fa7e38b_244f876a","line":59,"in_reply_to":"3fa7e38b_e3f5f384","updated":"2020-01-30 14:47:57.000000000","message":"How does this make a chicken-and-egg scenario? The OpenStackSDK (the egg) is tested via it\u0027s own Python integration/unit tests. The Ansible modules (the chicken) would presumably have their own separate tests. It would even be possible to add Molecule testing to the modules for functional testing. Is the SDK being merged into this repository?","commit_id":"4ce2b38cd11bb6858c32dc18d1273ad0a2c45453"},{"author":{"_account_id":10969,"name":"Shnaidman Sagi (Sergey)","display_name":"Shnaidman Sagi","email":"sshnaidm@redhat.com","username":"sergsh"},"change_message_id":"17719e8dbfb4a390dfa599509fab0c5c5afac388","unresolved":false,"context_lines":[{"line_number":15,"context_line":"------"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"* All module names should start with ``os_``"},{"line_number":18,"context_line":"* Name any module that a cloud consumer would expect to use after the logical resource it manages: ``os_server`` not ``os_nova``. This naming convention acknowledges that the end user does not care which service manages the resource - that is a deployment detail. For example cloud consumers may not know whether their floating IPs are managed by Nova or Neutron."},{"line_number":19,"context_line":"* Name any module that a cloud admin would expect to use with the service and the resource: ``os_keystone_domain``."},{"line_number":20,"context_line":"* If the module is one that a cloud admin and a cloud consumer could both use,"},{"line_number":21,"context_line":"  the cloud consumer rules apply."}],"source_content_type":"text/x-rst","patch_set":5,"id":"1fa4df85_98163355","line":18,"range":{"start_line":18,"start_character":127,"end_line":18,"end_character":129},"updated":"2020-03-05 15:40:17.000000000","message":"long line","commit_id":"ec92486170da8542cf7b010016ce4cd3ac447906"}]}
