)]}'
{".zuul.yaml":[{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"34ee86986f14ae21a2a0a4d202122ca37a184c60","unresolved":false,"context_lines":[{"line_number":184,"context_line":"      zuul_work_dir: src/opendev.org/openstack/python-openstackclient"},{"line_number":185,"context_line":""},{"line_number":186,"context_line":"- job:"},{"line_number":187,"context_line":"    name: osc-functional-devstack-manila"},{"line_number":188,"context_line":"    parent: osc-functional-devstack"},{"line_number":189,"context_line":"    description: |"},{"line_number":190,"context_line":"      Run functional tests for OpenStackClient with Manila."},{"line_number":191,"context_line":"    required-projects:"},{"line_number":192,"context_line":"      - openstack/manila"},{"line_number":193,"context_line":"      - openstack/python-manilaclient"},{"line_number":194,"context_line":"      - openstack/python-openstackclient"},{"line_number":195,"context_line":"    vars:"},{"line_number":196,"context_line":"      devstack_plugins:"},{"line_number":197,"context_line":"        neutron: https://opendev.org/openstack/neutron"},{"line_number":198,"context_line":"        manila: https://opendev.org/openstack/manila"},{"line_number":199,"context_line":"      devstack_services:"},{"line_number":200,"context_line":"        manila: true"},{"line_number":201,"context_line":"        m-api: true"},{"line_number":202,"context_line":"        m-sch: true"},{"line_number":203,"context_line":"        m-shr: true"},{"line_number":204,"context_line":"        m-dat: true"},{"line_number":205,"context_line":"      devstack_localrc:"},{"line_number":206,"context_line":"        LIBS_FROM_GIT: python-openstackclient"},{"line_number":207,"context_line":"        MANILA_ENABLED_BACKENDS: generic"},{"line_number":208,"context_line":"        MANILA_OPTGROUP_generic_driver_handles_share_servers: false"},{"line_number":209,"context_line":"        VOLUME_BACKING_FILE_SIZE: 20G"},{"line_number":210,"context_line":"        Q_AGENT: openvswitch"},{"line_number":211,"context_line":"        Q_ML2_TENANT_NETWORK_TYPE: vxlan"},{"line_number":212,"context_line":"        Q_ML2_PLUGIN_MECHANISM_DRIVERS: openvswitch"},{"line_number":213,"context_line":"      tox_envlist: functional"},{"line_number":214,"context_line":"      zuul_work_dir: src/opendev.org/openstack/python-openstackclient"},{"line_number":215,"context_line":"    requires:"},{"line_number":216,"context_line":"      - python-builder-3.11-bookworm-container-image"},{"line_number":217,"context_line":"      - python-base-3.11-bookworm-container-image"},{"line_number":218,"context_line":"    provides: osc-container-image"},{"line_number":219,"context_line":"    vars:"},{"line_number":220,"context_line":"      docker_images:"},{"line_number":221,"context_line":"        - context: ."},{"line_number":222,"context_line":"          tags: []"},{"line_number":223,"context_line":""},{"line_number":224,"context_line":"- project-template:"},{"line_number":225,"context_line":"    name: osc-tox-unit-tips"},{"line_number":226,"context_line":"    check:"}],"source_content_type":"text/x-yaml","patch_set":8,"id":"460d95a3_5ab9e91b","line":223,"range":{"start_line":187,"start_character":4,"end_line":223,"end_character":0},"updated":"2026-07-12 18:49:55.000000000","message":"The key \"vars\" appears more than once; duplicate keys are not permitted.","commit_id":"60512d8cc94ff94149c76f41f9e9857cb7356ae3"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"5c85fa9505d3e63891682d41ca66e11844fc6333","unresolved":true,"context_lines":[{"line_number":161,"context_line":"        - context: ."},{"line_number":162,"context_line":"          tags: []"},{"line_number":163,"context_line":""},{"line_number":164,"context_line":""},{"line_number":165,"context_line":"- project-template:"},{"line_number":166,"context_line":"    name: osc-tox-unit-tips"},{"line_number":167,"context_line":"    check:"}],"source_content_type":"text/x-yaml","patch_set":13,"id":"cde4359c_a1b1379a","line":164,"updated":"2026-08-10 19:20:01.000000000","message":"please drop the extra blank line, it can impact in the future while doing git blame","commit_id":"421834c69a0972772bf089b85cb62baa675a9359"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":38842,"name":"Silvia Wachira","display_name":"Silvia Wachira","email":"wachirasilvia8@gmail.com","username":"Silvia-Wachira"},"change_message_id":"d10ef5a12df81a2e3c303b36d2512dde7dc6c26c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"3f70705f_ae920d43","updated":"2026-07-14 21:03:29.000000000","message":"recheck","commit_id":"6090d3dfca8ce5a4dae8cfe7bda39fdca8d7be9d"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"5c85fa9505d3e63891682d41ca66e11844fc6333","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":13,"id":"0445ec8b_cdb62632","updated":"2026-08-10 19:20:01.000000000","message":"Thanks for working on this change, Stephen and Silvia! Please take a look at the comments inline","commit_id":"421834c69a0972772bf089b85cb62baa675a9359"}],"openstackclient/share/v2/share_networks.py":[{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"5c85fa9505d3e63891682d41ca66e11844fc6333","unresolved":true,"context_lines":[{"line_number":242,"context_line":"        data \u003d share_network._info"},{"line_number":243,"context_line":"        if \u0027share_network_subnets\u0027 not in data:"},{"line_number":244,"context_line":"            data[\u0027share_network_subnets\u0027] \u003d []"},{"line_number":245,"context_line":""},{"line_number":246,"context_line":"        for ss in data[\u0027share_network_subnets\u0027]:"},{"line_number":247,"context_line":"            ss.update("},{"line_number":248,"context_line":"                {"}],"source_content_type":"text/x-python","patch_set":13,"id":"a22d5b02_dd1f0302","side":"PARENT","line":245,"updated":"2026-08-10 19:20:01.000000000","message":"please keep the blank line","commit_id":"977e9e7cb1a267542615d26c60372a44a94918aa"}],"openstackclient/tests/functional/share/v2/test_share_networks.py":[{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"5c85fa9505d3e63891682d41ca66e11844fc6333","unresolved":true,"context_lines":[{"line_number":18,"context_line":"class ShareNetworkTests(base.TestCase):"},{"line_number":19,"context_line":"    \"\"\"Functional tests for share network commands.\"\"\""},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"    def _create_share_network(self, name\u003dNone, add_cleanup\u003dTrue):"},{"line_number":22,"context_line":"        name \u003d name or uuid.uuid4().hex"},{"line_number":23,"context_line":"        cmd_output \u003d self.openstack("},{"line_number":24,"context_line":"            f\u0027share network create --name {name}\u0027,"}],"source_content_type":"text/x-python","patch_set":13,"id":"61b31a30_2789531b","line":21,"range":{"start_line":21,"start_character":8,"end_line":21,"end_character":29},"updated":"2026-08-10 19:20:01.000000000","message":"I like the private method, but I think we can default to what other teams (like Nova) did. Instead of having this private method, we\u0027d have a class with all calls to manila and abstract them, like for example [1]. The class in [1] in herits from ComputeTestCase, which inherits from base.TestCase. ComputeTestCase [2] implements functions to create servers, build image and all of the utilities. This will be useful in the future and will help us centralize our calls, so if tomorrow someone needs to create a share network for their share servers test, they will be able to reuse what you already implemented and build on your implementation.\n\n[1] https://opendev.org/openstack/python-openstackclient/src/branch/master/openstackclient/tests/functional/compute/v2/test_server.py#L26\n\n[2] https://opendev.org/openstack/python-openstackclient/src/commit/28b470bb058b4de5d2dfd75c34b44c42ecf48420/openstackclient/tests/functional/compute/v2/common.py#L23","commit_id":"421834c69a0972772bf089b85cb62baa675a9359"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"5c85fa9505d3e63891682d41ca66e11844fc6333","unresolved":true,"context_lines":[{"line_number":52,"context_line":"        ids \u003d [n[\u0027ID\u0027] for n in list_output]"},{"line_number":53,"context_line":"        self.assertIn(cmd_output[\u0027id\u0027], ids)"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"        first \u003d list_output[0]"},{"line_number":56,"context_line":"        for col in (\u0027ID\u0027, \u0027Name\u0027):"},{"line_number":57,"context_line":"            self.assertIn(col, first)"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"    def test_share_network_show(self):"},{"line_number":60,"context_line":"        cmd_output \u003d self._create_share_network()"}],"source_content_type":"text/x-python","patch_set":13,"id":"782c607f_d4525cf1","line":57,"range":{"start_line":55,"start_character":8,"end_line":57,"end_character":37},"updated":"2026-08-10 19:20:01.000000000","message":"if we have multiple tests running concurrently, list_output could be bigger, meaning this test can fail. Maybe we should look for the correct element in the list?","commit_id":"421834c69a0972772bf089b85cb62baa675a9359"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"5c85fa9505d3e63891682d41ca66e11844fc6333","unresolved":true,"context_lines":[{"line_number":57,"context_line":"            self.assertIn(col, first)"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"    def test_share_network_show(self):"},{"line_number":60,"context_line":"        cmd_output \u003d self._create_share_network()"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"        show_output \u003d self.openstack("},{"line_number":63,"context_line":"            f\u0027share network show {cmd_output[\"id\"]}\u0027,"}],"source_content_type":"text/x-python","patch_set":13,"id":"b535c4e2_f1ddd755","line":60,"range":{"start_line":60,"start_character":8,"end_line":60,"end_character":18},"updated":"2026-08-10 19:20:01.000000000","message":"please name the variable with the content of what it is receiving, in this chase: share_network\n\nHere and below :)","commit_id":"421834c69a0972772bf089b85cb62baa675a9359"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"5c85fa9505d3e63891682d41ca66e11844fc6333","unresolved":true,"context_lines":[{"line_number":59,"context_line":"    def test_share_network_show(self):"},{"line_number":60,"context_line":"        cmd_output \u003d self._create_share_network()"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"        show_output \u003d self.openstack("},{"line_number":63,"context_line":"            f\u0027share network show {cmd_output[\"id\"]}\u0027,"},{"line_number":64,"context_line":"            parse_output\u003dTrue,"},{"line_number":65,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":13,"id":"d03d285b_7c4bdbd8","line":62,"range":{"start_line":62,"start_character":8,"end_line":62,"end_character":19},"updated":"2026-08-10 19:20:01.000000000","message":"share_network_show_output","commit_id":"421834c69a0972772bf089b85cb62baa675a9359"}],"openstackclient/tests/functional/share/v2/test_share_servers.py":[{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"5c85fa9505d3e63891682d41ca66e11844fc6333","unresolved":true,"context_lines":[{"line_number":20,"context_line":"    so these tests will be skipped if no servers exist in the environment."},{"line_number":21,"context_line":"    \"\"\""},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"    def _get_first_server(self):"},{"line_number":24,"context_line":"        servers \u003d self.openstack(\u0027share server list\u0027, parse_output\u003dTrue)"},{"line_number":25,"context_line":"        if not servers:"},{"line_number":26,"context_line":"            self.skipTest("}],"source_content_type":"text/x-python","patch_set":13,"id":"3c34e9c8_443c6d23","line":23,"range":{"start_line":23,"start_character":8,"end_line":23,"end_character":25},"updated":"2026-08-10 19:20:01.000000000","message":"unless there is a share previously created, a share server will never be found and these tests will never be executed. The structure of these shares should be that we:\n- Check if multitenancy (DHSS\u003dTrue) is enabled\n- Create a new share type with DHSS\u003dTrue\n- Create the share using the DHSS\u003dTrue share type\n- When the share gets available, we can list share servers and play with them\n\nThe same command as the other file applies here though: can we have a class with the commands to keep things consistent and reusable?","commit_id":"421834c69a0972772bf089b85cb62baa675a9359"}]}
