)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":38059,"name":"Anoop Kumar Shukla","display_name":"Anoop Shukla","email":"anoop.shukla@netapp.com","username":"anoop2","status":"NetApp"},"change_message_id":"8c27fbdf7dded2ff34bf0298875291fa422cdefb","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"899e8741_88169414","updated":"2026-07-20 05:53:38.000000000","message":"Please take a look at the comments.","commit_id":"a54fe04f699e0ec96b94d2cf01b51efe6f0782f1"},{"author":{"_account_id":38614,"name":"Sailaja Mada","display_name":"Sailaja Mada","email":"sailajam@netapp.com","username":"sailajam"},"change_message_id":"89cabe3a139c0039efeb0fc67836535804242008","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"465efec9_5261800b","updated":"2026-07-15 06:03:37.000000000","message":"run-NetApp CI","commit_id":"a54fe04f699e0ec96b94d2cf01b51efe6f0782f1"},{"author":{"_account_id":38614,"name":"Sailaja Mada","display_name":"Sailaja Mada","email":"sailajam@netapp.com","username":"sailajam"},"change_message_id":"b842a23b2c5a2f204e8dc6b85134028b56c1340c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"70e104af_443f230a","updated":"2026-07-16 12:04:23.000000000","message":"run-NetApp CI","commit_id":"a54fe04f699e0ec96b94d2cf01b51efe6f0782f1"},{"author":{"_account_id":38614,"name":"Sailaja Mada","display_name":"Sailaja Mada","email":"sailajam@netapp.com","username":"sailajam"},"change_message_id":"a4b904151c1d931b6c6b7df4a11cfb5e0d5f33e6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"e01a7c7d_b7735e43","updated":"2026-07-14 18:54:37.000000000","message":"run-NetApp CI","commit_id":"a54fe04f699e0ec96b94d2cf01b51efe6f0782f1"},{"author":{"_account_id":38614,"name":"Sailaja Mada","display_name":"Sailaja Mada","email":"sailajam@netapp.com","username":"sailajam"},"change_message_id":"b8a4625eaf0e1de06ad88e7ea5adb1740f0ab09f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"985a3c78_6efccbd0","updated":"2026-07-21 04:25:28.000000000","message":"run-NetApp CI","commit_id":"80cc41aaa96839f6949b519ac50c37525c374c5f"}],"manila/db/api.py":[{"author":{"_account_id":38059,"name":"Anoop Kumar Shukla","display_name":"Anoop Shukla","email":"anoop.shukla@netapp.com","username":"anoop2","status":"NetApp"},"change_message_id":"8c27fbdf7dded2ff34bf0298875291fa422cdefb","unresolved":true,"context_lines":[{"line_number":2013,"context_line":"####################"},{"line_number":2014,"context_line":""},{"line_number":2015,"context_line":""},{"line_number":2016,"context_line":"def share_resource_counts(context, host\u003dNone):"},{"line_number":2017,"context_line":"    \"\"\"Return object counts for periodic EMS autosupport reporting."},{"line_number":2018,"context_line":""},{"line_number":2019,"context_line":"    Pass host as \u0027hostname@backend_name\u0027 to scope shares and share servers"}],"source_content_type":"text/x-python","patch_set":5,"id":"fa69e945_0e6ee389","line":2016,"updated":"2026-07-20 05:53:38.000000000","message":"Need to remove this method from the db and add to the driver.","commit_id":"a54fe04f699e0ec96b94d2cf01b51efe6f0782f1"},{"author":{"_account_id":38614,"name":"Sailaja Mada","display_name":"Sailaja Mada","email":"sailajam@netapp.com","username":"sailajam"},"change_message_id":"f87bb51ebb99728e4e9fad3f786275f6691f3152","unresolved":false,"context_lines":[{"line_number":2013,"context_line":"####################"},{"line_number":2014,"context_line":""},{"line_number":2015,"context_line":""},{"line_number":2016,"context_line":"def share_resource_counts(context, host\u003dNone):"},{"line_number":2017,"context_line":"    \"\"\"Return object counts for periodic EMS autosupport reporting."},{"line_number":2018,"context_line":""},{"line_number":2019,"context_line":"    Pass host as \u0027hostname@backend_name\u0027 to scope shares and share servers"}],"source_content_type":"text/x-python","patch_set":5,"id":"67fd153c_d3a22912","line":2016,"in_reply_to":"fa69e945_0e6ee389","updated":"2026-07-21 04:24:36.000000000","message":"Done","commit_id":"a54fe04f699e0ec96b94d2cf01b51efe6f0782f1"}],"manila/db/sqlalchemy/api.py":[{"author":{"_account_id":38059,"name":"Anoop Kumar Shukla","display_name":"Anoop Shukla","email":"anoop.shukla@netapp.com","username":"anoop2","status":"NetApp"},"change_message_id":"8c27fbdf7dded2ff34bf0298875291fa422cdefb","unresolved":true,"context_lines":[{"line_number":8375,"context_line":""},{"line_number":8376,"context_line":""},{"line_number":8377,"context_line":"@context_manager.reader"},{"line_number":8378,"context_line":"def share_resource_counts(context, host\u003dNone):"},{"line_number":8379,"context_line":"    \"\"\"Return object counts used in the periodic EMS autosupport payload."},{"line_number":8380,"context_line":""},{"line_number":8381,"context_line":"    Shares and share servers are filtered to the given host when provided;"}],"source_content_type":"text/x-python","patch_set":5,"id":"ea96db53_5bdcb779","line":8378,"updated":"2026-07-20 05:53:38.000000000","message":"This method needs to be an internal method in the driver.","commit_id":"a54fe04f699e0ec96b94d2cf01b51efe6f0782f1"},{"author":{"_account_id":38614,"name":"Sailaja Mada","display_name":"Sailaja Mada","email":"sailajam@netapp.com","username":"sailajam"},"change_message_id":"f87bb51ebb99728e4e9fad3f786275f6691f3152","unresolved":false,"context_lines":[{"line_number":8375,"context_line":""},{"line_number":8376,"context_line":""},{"line_number":8377,"context_line":"@context_manager.reader"},{"line_number":8378,"context_line":"def share_resource_counts(context, host\u003dNone):"},{"line_number":8379,"context_line":"    \"\"\"Return object counts used in the periodic EMS autosupport payload."},{"line_number":8380,"context_line":""},{"line_number":8381,"context_line":"    Shares and share servers are filtered to the given host when provided;"}],"source_content_type":"text/x-python","patch_set":5,"id":"9dbe78d5_581652fd","line":8378,"in_reply_to":"ea96db53_5bdcb779","updated":"2026-07-21 04:24:36.000000000","message":"Done","commit_id":"a54fe04f699e0ec96b94d2cf01b51efe6f0782f1"}],"manila/share/drivers/netapp/dataontap/ems.py":[{"author":{"_account_id":38614,"name":"Sailaja Mada","display_name":"Sailaja Mada","email":"sailajam@netapp.com","username":"sailajam"},"change_message_id":"9ec1454a8b08d82249700009379bdb114afae69f","unresolved":false,"context_lines":[{"line_number":93,"context_line":"        \u0027driver_handles_share_servers\u0027: config.driver_handles_share_servers,"},{"line_number":94,"context_line":"        \u0027storage_protocol\u0027: \u0027_\u0027.join("},{"line_number":95,"context_line":"            p.upper() for p in CONF.enabled_share_protocols),"},{"line_number":96,"context_line":"        \u0027netapp_storage_family\u0027: \u0027ontap_cluster\u0027,"},{"line_number":97,"context_line":"        \u0027flexgroup_pools_configured\u0027: bool(library._flexgroup_pools),"},{"line_number":98,"context_line":"        \u0027flexgroup_pool_only\u0027: bool("},{"line_number":99,"context_line":"            config.safe_get(\u0027netapp_flexgroup_pool_only\u0027) or False),"}],"source_content_type":"text/x-python","patch_set":7,"id":"78993bdd_dfdefb92","line":96,"updated":"2026-07-22 05:41:33.000000000","message":"This is hardcoded, its not required.","commit_id":"d9abd10aad2af68091496007c71a32a5c04589e6"},{"author":{"_account_id":38614,"name":"Sailaja Mada","display_name":"Sailaja Mada","email":"sailajam@netapp.com","username":"sailajam"},"change_message_id":"9ec1454a8b08d82249700009379bdb114afae69f","unresolved":false,"context_lines":[{"line_number":98,"context_line":"        \u0027flexgroup_pool_only\u0027: bool("},{"line_number":99,"context_line":"            config.safe_get(\u0027netapp_flexgroup_pool_only\u0027) or False),"},{"line_number":100,"context_line":"        \u0027snapshot_support\u0027: True,"},{"line_number":101,"context_line":"        \u0027create_share_from_snapshot_support\u0027: True,"},{"line_number":102,"context_line":"        \u0027revert_to_snapshot_support\u0027: getattr("},{"line_number":103,"context_line":"            library, \u0027_revert_to_snapshot_support\u0027, False),"},{"line_number":104,"context_line":"        \u0027mount_snapshot_support\u0027: False,"}],"source_content_type":"text/x-python","patch_set":7,"id":"f3e3c75f_77926546","line":101,"updated":"2026-07-22 05:41:33.000000000","message":"Remove hardcoded values.","commit_id":"d9abd10aad2af68091496007c71a32a5c04589e6"},{"author":{"_account_id":38614,"name":"Sailaja Mada","display_name":"Sailaja Mada","email":"sailajam@netapp.com","username":"sailajam"},"change_message_id":"9ec1454a8b08d82249700009379bdb114afae69f","unresolved":false,"context_lines":[{"line_number":126,"context_line":"        \u0027replication_type\u0027: replication_type,"},{"line_number":127,"context_line":"    }"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"    payload \u003d {"},{"line_number":130,"context_line":"        \u0027openstack\u0027: library._app_version,"},{"line_number":131,"context_line":"        \u0027driver_name\u0027: library.driver_name,"},{"line_number":132,"context_line":"        \u0027driver_version\u0027: \u00271.0\u0027,"}],"source_content_type":"text/x-python","patch_set":7,"id":"07520492_f192917a","line":129,"updated":"2026-07-22 05:41:33.000000000","message":"Create the frozen set so that sensitive details are not sent.ex - EMS_SECRET_OPTS \u003d frozenset({\n    \u0027netapp_password\u0027,\n    \u0027netapp_login\u0027,\n    \u0027netapp_private_key_file\u0027,\n    \u0027netapp_certificate_file\u0027,\n    \u0027netapp_ca_certificate_file\u0027,\n    \u0027netapp_ssl_cert_path\u0027,\n})","commit_id":"d9abd10aad2af68091496007c71a32a5c04589e6"},{"author":{"_account_id":38614,"name":"Sailaja Mada","display_name":"Sailaja Mada","email":"sailajam@netapp.com","username":"sailajam"},"change_message_id":"9ec1454a8b08d82249700009379bdb114afae69f","unresolved":false,"context_lines":[{"line_number":128,"context_line":""},{"line_number":129,"context_line":"    payload \u003d {"},{"line_number":130,"context_line":"        \u0027openstack\u0027: library._app_version,"},{"line_number":131,"context_line":"        \u0027driver_name\u0027: library.driver_name,"},{"line_number":132,"context_line":"        \u0027driver_version\u0027: \u00271.0\u0027,"},{"line_number":133,"context_line":"        \u0027driver_mode\u0027: _get_driver_mode(library),"},{"line_number":134,"context_line":"        \u0027backend_name\u0027: library._backend_name,"}],"source_content_type":"text/x-python","patch_set":7,"id":"b48fe2a4_125772af","line":131,"updated":"2026-07-22 05:41:33.000000000","message":"Enhance to get OS name/deployment type.","commit_id":"d9abd10aad2af68091496007c71a32a5c04589e6"},{"author":{"_account_id":38614,"name":"Sailaja Mada","display_name":"Sailaja Mada","email":"sailajam@netapp.com","username":"sailajam"},"change_message_id":"9ec1454a8b08d82249700009379bdb114afae69f","unresolved":false,"context_lines":[{"line_number":130,"context_line":"        \u0027openstack\u0027: library._app_version,"},{"line_number":131,"context_line":"        \u0027driver_name\u0027: library.driver_name,"},{"line_number":132,"context_line":"        \u0027driver_version\u0027: \u00271.0\u0027,"},{"line_number":133,"context_line":"        \u0027driver_mode\u0027: _get_driver_mode(library),"},{"line_number":134,"context_line":"        \u0027backend_name\u0027: library._backend_name,"},{"line_number":135,"context_line":"        \u0027features\u0027: features,"},{"line_number":136,"context_line":"        \u0027object_counts\u0027: counts,"}],"source_content_type":"text/x-python","patch_set":7,"id":"569ffaa0_578ed669","line":133,"updated":"2026-07-22 05:41:33.000000000","message":"This is duplicate. This is not required.","commit_id":"d9abd10aad2af68091496007c71a32a5c04589e6"},{"author":{"_account_id":38614,"name":"Sailaja Mada","display_name":"Sailaja Mada","email":"sailajam@netapp.com","username":"sailajam"},"change_message_id":"9ec1454a8b08d82249700009379bdb114afae69f","unresolved":false,"context_lines":[{"line_number":160,"context_line":"    except Exception as exc:"},{"line_number":161,"context_line":"        LOG.debug(\u0027EMS: could not collect pool stats for event-1: %s\u0027, exc)"},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"    LOG.info(\u0027NetApp EMS event-1 (Manila periodic pool catalog report): %s\u0027,"},{"line_number":164,"context_line":"             json.dumps(pool_info))"},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"    ems_log \u003d _build_base(library)"}],"source_content_type":"text/x-python","patch_set":7,"id":"3e973ae5_2a7588a1","line":163,"updated":"2026-07-22 05:41:33.000000000","message":"Update the log level to debug.","commit_id":"d9abd10aad2af68091496007c71a32a5c04589e6"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"5df98065fbac1cf443c3f39219d942c5697f3e74","unresolved":false,"context_lines":[{"line_number":285,"context_line":"        \u0027log-level\u0027: \u00275\u0027,"},{"line_number":286,"context_line":"        \u0027auto-support\u0027: \u0027false\u0027,"},{"line_number":287,"context_line":"    }"},{"line_number":288,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"85f5c9c0_81ba08d7","line":288,"updated":"2026-07-21 15:19:53.000000000","message":"pep8: W391 blank line at end of file","commit_id":"372b92e404740d19cfc4fa6d0cb11a51d12dd441"}],"manila/tests/share/drivers/netapp/dataontap/test_ems.py":[{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"3896b0cdfc1579faceff1b7d63dc5d570dbb467a","unresolved":false,"context_lines":[{"line_number":343,"context_line":"                         netapp_ems._safe_hostname())"},{"line_number":344,"context_line":""},{"line_number":345,"context_line":"    def test_safe_hostname_both_ip_returns_placeholder(self):"},{"line_number":346,"context_line":"        \"\"\"When both gethostname and getfqdn return IPs, returns Manila_node.\"\"\""},{"line_number":347,"context_line":"        self.mock_object(socket, \u0027gethostname\u0027,"},{"line_number":348,"context_line":"                         mock.Mock(return_value\u003d\u002710.0.0.1\u0027))"},{"line_number":349,"context_line":"        self.mock_object(socket, \u0027getfqdn\u0027,"}],"source_content_type":"text/x-python","patch_set":9,"id":"55df708d_c51143e8","line":346,"updated":"2026-07-21 18:14:27.000000000","message":"pep8: E501 line too long (80 \u003e 79 characters)","commit_id":"6ad98a8bdd50d86325e9bcbad7fe2f565a829003"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"3896b0cdfc1579faceff1b7d63dc5d570dbb467a","unresolved":false,"context_lines":[{"line_number":358,"context_line":"    def test_detect_deployment_type_platform9(self):"},{"line_number":359,"context_line":"        \"\"\"platform9 is detected when /etc/platform9 directory exists.\"\"\""},{"line_number":360,"context_line":"        self.mock_object(netapp_ems.os.path, \u0027isdir\u0027,"},{"line_number":361,"context_line":"                         mock.Mock(side_effect\u003dlambda p: p \u003d\u003d \u0027/etc/platform9\u0027))"},{"line_number":362,"context_line":""},{"line_number":363,"context_line":"        with mock.patch.dict(\u0027os.environ\u0027, {}, clear\u003dTrue):"},{"line_number":364,"context_line":"            result \u003d netapp_ems._detect_deployment_type()"}],"source_content_type":"text/x-python","patch_set":9,"id":"1ee7278a_0df3ec16","line":361,"updated":"2026-07-21 18:14:27.000000000","message":"pep8: E501 line too long (80 \u003e 79 characters)","commit_id":"6ad98a8bdd50d86325e9bcbad7fe2f565a829003"}]}
