)]}'
{"cinder/volume/drivers/netapp/dataontap/client/client_cmode.py":[{"author":{"_account_id":31721,"name":"Felipe Rodrigues","email":"felipefuty01@gmail.com","username":"felipefutty"},"change_message_id":"6c2e7e2fd443d3702a5a3878296664ae307ea0a1","unresolved":true,"context_lines":[{"line_number":1114,"context_line":"        return volumes"},{"line_number":1115,"context_line":""},{"line_number":1116,"context_line":"    def get_volume_state(self, flexvol_path\u003dNone, flexvol_name\u003dNone):"},{"line_number":1117,"context_line":""},{"line_number":1118,"context_line":"        volume_id_attributes \u003d {}"},{"line_number":1119,"context_line":"        if flexvol_path:"},{"line_number":1120,"context_line":"            volume_id_attributes[\u0027junction-path\u0027] \u003d flexvol_path"}],"source_content_type":"text/x-python","patch_set":4,"id":"ff05b191_90f7d588","line":1117,"updated":"2021-03-23 11:43:13.000000000","message":"add a description here","commit_id":"de8586a2d6c1c5e5927ec5e127fc507a81c44b13"},{"author":{"_account_id":30555,"name":"Fernando Ferraz","display_name":"Fernando Ferraz","email":"fesilva@redhat.com","username":"fernandoperches"},"change_message_id":"3dcafae4d8601e58b2aeed7aa2979e1a68af92bf","unresolved":false,"context_lines":[{"line_number":1114,"context_line":"        return volumes"},{"line_number":1115,"context_line":""},{"line_number":1116,"context_line":"    def get_volume_state(self, flexvol_path\u003dNone, flexvol_name\u003dNone):"},{"line_number":1117,"context_line":""},{"line_number":1118,"context_line":"        volume_id_attributes \u003d {}"},{"line_number":1119,"context_line":"        if flexvol_path:"},{"line_number":1120,"context_line":"            volume_id_attributes[\u0027junction-path\u0027] \u003d flexvol_path"}],"source_content_type":"text/x-python","patch_set":4,"id":"34bd069a_cb9cedc4","line":1117,"in_reply_to":"ff05b191_90f7d588","updated":"2021-03-24 22:17:04.000000000","message":"Done","commit_id":"de8586a2d6c1c5e5927ec5e127fc507a81c44b13"},{"author":{"_account_id":31721,"name":"Felipe Rodrigues","email":"felipefuty01@gmail.com","username":"felipefutty"},"change_message_id":"6c2e7e2fd443d3702a5a3878296664ae307ea0a1","unresolved":true,"context_lines":[{"line_number":1427,"context_line":"        qos_min_name \u003d na_utils.qos_min_feature_name(is_nfs, node_name)"},{"line_number":1428,"context_line":"        return getattr(self.features, qos_min_name, False).__bool__()"},{"line_number":1429,"context_line":""},{"line_number":1430,"context_line":"    def create_volume_async(self, flexvol_name, aggregate_list, size_gb,"},{"line_number":1431,"context_line":"                            space_guarantee_type\u003dNone, snapshot_policy\u003dNone,"},{"line_number":1432,"context_line":"                            language\u003dNone, snapshot_reserve\u003dNone,"},{"line_number":1433,"context_line":"                            volume_type\u003d\u0027rw\u0027):"}],"source_content_type":"text/x-python","patch_set":4,"id":"de3ffa31_669cefc5","line":1430,"updated":"2021-03-23 11:43:13.000000000","message":"same here for flexvol_name","commit_id":"de8586a2d6c1c5e5927ec5e127fc507a81c44b13"},{"author":{"_account_id":30555,"name":"Fernando Ferraz","display_name":"Fernando Ferraz","email":"fesilva@redhat.com","username":"fernandoperches"},"change_message_id":"3dcafae4d8601e58b2aeed7aa2979e1a68af92bf","unresolved":false,"context_lines":[{"line_number":1427,"context_line":"        qos_min_name \u003d na_utils.qos_min_feature_name(is_nfs, node_name)"},{"line_number":1428,"context_line":"        return getattr(self.features, qos_min_name, False).__bool__()"},{"line_number":1429,"context_line":""},{"line_number":1430,"context_line":"    def create_volume_async(self, flexvol_name, aggregate_list, size_gb,"},{"line_number":1431,"context_line":"                            space_guarantee_type\u003dNone, snapshot_policy\u003dNone,"},{"line_number":1432,"context_line":"                            language\u003dNone, snapshot_reserve\u003dNone,"},{"line_number":1433,"context_line":"                            volume_type\u003d\u0027rw\u0027):"}],"source_content_type":"text/x-python","patch_set":4,"id":"b1a6be6a_fe27a2a3","line":1430,"in_reply_to":"de3ffa31_669cefc5","updated":"2021-03-24 22:17:04.000000000","message":"Done","commit_id":"de8586a2d6c1c5e5927ec5e127fc507a81c44b13"},{"author":{"_account_id":31721,"name":"Felipe Rodrigues","email":"felipefuty01@gmail.com","username":"felipefutty"},"change_message_id":"6c2e7e2fd443d3702a5a3878296664ae307ea0a1","unresolved":true,"context_lines":[{"line_number":1431,"context_line":"                            space_guarantee_type\u003dNone, snapshot_policy\u003dNone,"},{"line_number":1432,"context_line":"                            language\u003dNone, snapshot_reserve\u003dNone,"},{"line_number":1433,"context_line":"                            volume_type\u003d\u0027rw\u0027):"},{"line_number":1434,"context_line":"        \"\"\"Creates a FlexVol/FlexGroup volume asynchronously.\"\"\""},{"line_number":1435,"context_line":"        api_args \u003d {"},{"line_number":1436,"context_line":"            \u0027aggr-list\u0027: [{\u0027aggr-name\u0027: aggr} for aggr in aggregate_list],"},{"line_number":1437,"context_line":"            \u0027size\u0027: size_gb * units.Gi,"}],"source_content_type":"text/x-python","patch_set":4,"id":"c25ba3f1_aff7b837","line":1434,"updated":"2021-03-23 11:43:13.000000000","message":"Remove FlexVol from the description. The code is setting the `aggr-list`, so this function only creates a FlexGroup,","commit_id":"de8586a2d6c1c5e5927ec5e127fc507a81c44b13"},{"author":{"_account_id":30555,"name":"Fernando Ferraz","display_name":"Fernando Ferraz","email":"fesilva@redhat.com","username":"fernandoperches"},"change_message_id":"3dcafae4d8601e58b2aeed7aa2979e1a68af92bf","unresolved":false,"context_lines":[{"line_number":1431,"context_line":"                            space_guarantee_type\u003dNone, snapshot_policy\u003dNone,"},{"line_number":1432,"context_line":"                            language\u003dNone, snapshot_reserve\u003dNone,"},{"line_number":1433,"context_line":"                            volume_type\u003d\u0027rw\u0027):"},{"line_number":1434,"context_line":"        \"\"\"Creates a FlexVol/FlexGroup volume asynchronously.\"\"\""},{"line_number":1435,"context_line":"        api_args \u003d {"},{"line_number":1436,"context_line":"            \u0027aggr-list\u0027: [{\u0027aggr-name\u0027: aggr} for aggr in aggregate_list],"},{"line_number":1437,"context_line":"            \u0027size\u0027: size_gb * units.Gi,"}],"source_content_type":"text/x-python","patch_set":4,"id":"494e79ca_9e8afe6c","line":1434,"in_reply_to":"c25ba3f1_aff7b837","updated":"2021-03-24 22:17:04.000000000","message":"Done","commit_id":"de8586a2d6c1c5e5927ec5e127fc507a81c44b13"},{"author":{"_account_id":31721,"name":"Felipe Rodrigues","email":"felipefuty01@gmail.com","username":"felipefutty"},"change_message_id":"6c2e7e2fd443d3702a5a3878296664ae307ea0a1","unresolved":true,"context_lines":[{"line_number":1437,"context_line":"            \u0027size\u0027: size_gb * units.Gi,"},{"line_number":1438,"context_line":"            \u0027volume-name\u0027: flexvol_name,"},{"line_number":1439,"context_line":"            \u0027volume-type\u0027: volume_type,"},{"line_number":1440,"context_line":"        }"},{"line_number":1441,"context_line":"        if volume_type \u003d\u003d \u0027dp\u0027:"},{"line_number":1442,"context_line":"            snapshot_policy \u003d None"},{"line_number":1443,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":4,"id":"3be016d4_081a256b","line":1440,"updated":"2021-03-23 11:43:13.000000000","message":"Why is it not setting the `aggr-listmultiplier` ?! I think it may be passed and set here, given that the flexgroup snapmirror requires same number of constituents. The default is `4`, it means that it is gonna create 4 const for each elem of `aggregate_list`.","commit_id":"de8586a2d6c1c5e5927ec5e127fc507a81c44b13"},{"author":{"_account_id":30555,"name":"Fernando Ferraz","display_name":"Fernando Ferraz","email":"fesilva@redhat.com","username":"fernandoperches"},"change_message_id":"3dcafae4d8601e58b2aeed7aa2979e1a68af92bf","unresolved":true,"context_lines":[{"line_number":1437,"context_line":"            \u0027size\u0027: size_gb * units.Gi,"},{"line_number":1438,"context_line":"            \u0027volume-name\u0027: flexvol_name,"},{"line_number":1439,"context_line":"            \u0027volume-type\u0027: volume_type,"},{"line_number":1440,"context_line":"        }"},{"line_number":1441,"context_line":"        if volume_type \u003d\u003d \u0027dp\u0027:"},{"line_number":1442,"context_line":"            snapshot_policy \u003d None"},{"line_number":1443,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":4,"id":"b3d6ff6f_5ed4d78b","line":1440,"in_reply_to":"3be016d4_081a256b","updated":"2021-03-24 22:17:04.000000000","message":"ONTAP documentation strongly recommends administrators to stick with default settings when dealing with flexgroups. The aggr-listmultiplier default value varies according to ONTAP version and isn\u0027t accessible through GUI. The idea here is to keep ontap recommended settings as it covers our most important use cases, and document unlikely configurations in NetApp\u0027s Deployment and Operations guide. Operators will still be able to setup replication even if a flexgroup doesn\u0027t follow the recommended settings, but it will require them to create the destination flexgroup manually, following source specs.","commit_id":"de8586a2d6c1c5e5927ec5e127fc507a81c44b13"},{"author":{"_account_id":31721,"name":"Felipe Rodrigues","email":"felipefuty01@gmail.com","username":"felipefutty"},"change_message_id":"d67761fa7c2ca312ccd6b0832d4a58514ab3f017","unresolved":true,"context_lines":[{"line_number":1437,"context_line":"            \u0027size\u0027: size_gb * units.Gi,"},{"line_number":1438,"context_line":"            \u0027volume-name\u0027: flexvol_name,"},{"line_number":1439,"context_line":"            \u0027volume-type\u0027: volume_type,"},{"line_number":1440,"context_line":"        }"},{"line_number":1441,"context_line":"        if volume_type \u003d\u003d \u0027dp\u0027:"},{"line_number":1442,"context_line":"            snapshot_policy \u003d None"},{"line_number":1443,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":4,"id":"608b6d5b_a0d6dab8","line":1440,"in_reply_to":"b3d6ff6f_5ed4d78b","updated":"2021-03-24 23:22:29.000000000","message":"It makes sense, agree!","commit_id":"de8586a2d6c1c5e5927ec5e127fc507a81c44b13"},{"author":{"_account_id":31721,"name":"Felipe Rodrigues","email":"felipefuty01@gmail.com","username":"felipefutty"},"change_message_id":"6c2e7e2fd443d3702a5a3878296664ae307ea0a1","unresolved":true,"context_lines":[{"line_number":1561,"context_line":"        }"},{"line_number":1562,"context_line":"        self.connection.send_request(\u0027sis-set-config\u0027, api_args)"},{"line_number":1563,"context_line":""},{"line_number":1564,"context_line":"    def enable_volume_dedupe_async(self, flexvol_name):"},{"line_number":1565,"context_line":"        \"\"\"Enable deduplication on FlexVol/FlexGroup volume asynchronously.\"\"\""},{"line_number":1566,"context_line":"        api_args \u003d {\u0027volume-name\u0027: flexvol_name}"},{"line_number":1567,"context_line":"        self.connection.send_request(\u0027sis-enable-async\u0027, api_args)"}],"source_content_type":"text/x-python","patch_set":4,"id":"bc1ad010_608625ab","line":1564,"updated":"2021-03-23 11:43:13.000000000","message":"avoid the name `flexvol_name`, given it can be a flexgroup.. prefere `vol_name`","commit_id":"de8586a2d6c1c5e5927ec5e127fc507a81c44b13"},{"author":{"_account_id":30555,"name":"Fernando Ferraz","display_name":"Fernando Ferraz","email":"fesilva@redhat.com","username":"fernandoperches"},"change_message_id":"3dcafae4d8601e58b2aeed7aa2979e1a68af92bf","unresolved":false,"context_lines":[{"line_number":1561,"context_line":"        }"},{"line_number":1562,"context_line":"        self.connection.send_request(\u0027sis-set-config\u0027, api_args)"},{"line_number":1563,"context_line":""},{"line_number":1564,"context_line":"    def enable_volume_dedupe_async(self, flexvol_name):"},{"line_number":1565,"context_line":"        \"\"\"Enable deduplication on FlexVol/FlexGroup volume asynchronously.\"\"\""},{"line_number":1566,"context_line":"        api_args \u003d {\u0027volume-name\u0027: flexvol_name}"},{"line_number":1567,"context_line":"        self.connection.send_request(\u0027sis-enable-async\u0027, api_args)"}],"source_content_type":"text/x-python","patch_set":4,"id":"768fc5ef_d41cc95b","line":1564,"in_reply_to":"bc1ad010_608625ab","updated":"2021-03-24 22:17:04.000000000","message":"Done","commit_id":"de8586a2d6c1c5e5927ec5e127fc507a81c44b13"},{"author":{"_account_id":31721,"name":"Felipe Rodrigues","email":"felipefuty01@gmail.com","username":"felipefutty"},"change_message_id":"6c2e7e2fd443d3702a5a3878296664ae307ea0a1","unresolved":true,"context_lines":[{"line_number":1566,"context_line":"        api_args \u003d {\u0027volume-name\u0027: flexvol_name}"},{"line_number":1567,"context_line":"        self.connection.send_request(\u0027sis-enable-async\u0027, api_args)"},{"line_number":1568,"context_line":""},{"line_number":1569,"context_line":"    def disable_volume_dedupe_async(self, flexvol_name):"},{"line_number":1570,"context_line":"        \"\"\"Disable deduplication on FlexVol/FlexGroup volume asynchronously.\"\"\""},{"line_number":1571,"context_line":"        api_args \u003d {\u0027volume-name\u0027: flexvol_name}"},{"line_number":1572,"context_line":"        self.connection.send_request(\u0027sis-disable-async\u0027, api_args)"}],"source_content_type":"text/x-python","patch_set":4,"id":"0c93b354_51b4e2e1","line":1569,"updated":"2021-03-23 11:43:13.000000000","message":"same here for flexvol_name","commit_id":"de8586a2d6c1c5e5927ec5e127fc507a81c44b13"},{"author":{"_account_id":30555,"name":"Fernando Ferraz","display_name":"Fernando Ferraz","email":"fesilva@redhat.com","username":"fernandoperches"},"change_message_id":"3dcafae4d8601e58b2aeed7aa2979e1a68af92bf","unresolved":false,"context_lines":[{"line_number":1566,"context_line":"        api_args \u003d {\u0027volume-name\u0027: flexvol_name}"},{"line_number":1567,"context_line":"        self.connection.send_request(\u0027sis-enable-async\u0027, api_args)"},{"line_number":1568,"context_line":""},{"line_number":1569,"context_line":"    def disable_volume_dedupe_async(self, flexvol_name):"},{"line_number":1570,"context_line":"        \"\"\"Disable deduplication on FlexVol/FlexGroup volume asynchronously.\"\"\""},{"line_number":1571,"context_line":"        api_args \u003d {\u0027volume-name\u0027: flexvol_name}"},{"line_number":1572,"context_line":"        self.connection.send_request(\u0027sis-disable-async\u0027, api_args)"}],"source_content_type":"text/x-python","patch_set":4,"id":"d3c6d78b_fcf14570","line":1569,"in_reply_to":"0c93b354_51b4e2e1","updated":"2021-03-24 22:17:04.000000000","message":"Done","commit_id":"de8586a2d6c1c5e5927ec5e127fc507a81c44b13"},{"author":{"_account_id":31721,"name":"Felipe Rodrigues","email":"felipefuty01@gmail.com","username":"felipefutty"},"change_message_id":"6c2e7e2fd443d3702a5a3878296664ae307ea0a1","unresolved":true,"context_lines":[{"line_number":1571,"context_line":"        api_args \u003d {\u0027volume-name\u0027: flexvol_name}"},{"line_number":1572,"context_line":"        self.connection.send_request(\u0027sis-disable-async\u0027, api_args)"},{"line_number":1573,"context_line":""},{"line_number":1574,"context_line":"    def enable_volume_compression_async(self, flexvol_name):"},{"line_number":1575,"context_line":"        \"\"\"Enable compression on FlexVol/FlexGroup volume asynchronously.\"\"\""},{"line_number":1576,"context_line":"        api_args \u003d {"},{"line_number":1577,"context_line":"            \u0027volume-name\u0027: flexvol_name,"}],"source_content_type":"text/x-python","patch_set":4,"id":"91fda218_ca0c009c","line":1574,"updated":"2021-03-23 11:43:13.000000000","message":"same here for flexvol_name","commit_id":"de8586a2d6c1c5e5927ec5e127fc507a81c44b13"},{"author":{"_account_id":30555,"name":"Fernando Ferraz","display_name":"Fernando Ferraz","email":"fesilva@redhat.com","username":"fernandoperches"},"change_message_id":"3dcafae4d8601e58b2aeed7aa2979e1a68af92bf","unresolved":false,"context_lines":[{"line_number":1571,"context_line":"        api_args \u003d {\u0027volume-name\u0027: flexvol_name}"},{"line_number":1572,"context_line":"        self.connection.send_request(\u0027sis-disable-async\u0027, api_args)"},{"line_number":1573,"context_line":""},{"line_number":1574,"context_line":"    def enable_volume_compression_async(self, flexvol_name):"},{"line_number":1575,"context_line":"        \"\"\"Enable compression on FlexVol/FlexGroup volume asynchronously.\"\"\""},{"line_number":1576,"context_line":"        api_args \u003d {"},{"line_number":1577,"context_line":"            \u0027volume-name\u0027: flexvol_name,"}],"source_content_type":"text/x-python","patch_set":4,"id":"cea70439_17e0d335","line":1574,"in_reply_to":"91fda218_ca0c009c","updated":"2021-03-24 22:17:04.000000000","message":"Done","commit_id":"de8586a2d6c1c5e5927ec5e127fc507a81c44b13"},{"author":{"_account_id":31721,"name":"Felipe Rodrigues","email":"felipefuty01@gmail.com","username":"felipefutty"},"change_message_id":"6c2e7e2fd443d3702a5a3878296664ae307ea0a1","unresolved":true,"context_lines":[{"line_number":1579,"context_line":"        }"},{"line_number":1580,"context_line":"        self.connection.send_request(\u0027sis-set-config-async\u0027, api_args)"},{"line_number":1581,"context_line":""},{"line_number":1582,"context_line":"    def disable_volume_compression_async(self, flexvol_name):"},{"line_number":1583,"context_line":"        \"\"\"Disable compression on FlexVol/FlexGroup volume asynchronously.\"\"\""},{"line_number":1584,"context_line":"        api_args \u003d {"},{"line_number":1585,"context_line":"            \u0027volume-name\u0027: flexvol_name,"}],"source_content_type":"text/x-python","patch_set":4,"id":"a33a4292_7d10d7e9","line":1582,"updated":"2021-03-23 11:43:13.000000000","message":"same here for flexvol_name","commit_id":"de8586a2d6c1c5e5927ec5e127fc507a81c44b13"},{"author":{"_account_id":30555,"name":"Fernando Ferraz","display_name":"Fernando Ferraz","email":"fesilva@redhat.com","username":"fernandoperches"},"change_message_id":"3dcafae4d8601e58b2aeed7aa2979e1a68af92bf","unresolved":false,"context_lines":[{"line_number":1579,"context_line":"        }"},{"line_number":1580,"context_line":"        self.connection.send_request(\u0027sis-set-config-async\u0027, api_args)"},{"line_number":1581,"context_line":""},{"line_number":1582,"context_line":"    def disable_volume_compression_async(self, flexvol_name):"},{"line_number":1583,"context_line":"        \"\"\"Disable compression on FlexVol/FlexGroup volume asynchronously.\"\"\""},{"line_number":1584,"context_line":"        api_args \u003d {"},{"line_number":1585,"context_line":"            \u0027volume-name\u0027: flexvol_name,"}],"source_content_type":"text/x-python","patch_set":4,"id":"1a66a3f3_1dde7996","line":1582,"in_reply_to":"a33a4292_7d10d7e9","updated":"2021-03-24 22:17:04.000000000","message":"Done","commit_id":"de8586a2d6c1c5e5927ec5e127fc507a81c44b13"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"56040956db36660111e5e636b948e26179b209af","unresolved":true,"context_lines":[{"line_number":1456,"context_line":"        if language is not None:"},{"line_number":1457,"context_line":"            api_args[\u0027language-code\u0027] \u003d language"},{"line_number":1458,"context_line":"        if snapshot_reserve is not None:"},{"line_number":1459,"context_line":"            api_args[\u0027percentage-snapshot-reserve\u0027] \u003d six.text_type("},{"line_number":1460,"context_line":"                snapshot_reserve)"},{"line_number":1461,"context_line":""},{"line_number":1462,"context_line":"        result \u003d self.connection.send_request(\u0027volume-create-async\u0027, api_args)"}],"source_content_type":"text/x-python","patch_set":6,"id":"5b7b4afa_6bb9c6ed","line":1459,"range":{"start_line":1459,"start_character":54,"end_line":1459,"end_character":68},"updated":"2021-03-25 17:26:18.000000000","message":"-1: We should not be adding any six code, this is Python 3 only code","commit_id":"1fba4a9e934083ad4ae5b7d3e5b08610765c40a7"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"56040956db36660111e5e636b948e26179b209af","unresolved":true,"context_lines":[{"line_number":2238,"context_line":"            \u0027destination-vserver\u0027: destination_vserver,"},{"line_number":2239,"context_line":"            \u0027relationship-type\u0027: relationship_type,"},{"line_number":2240,"context_line":"        }"},{"line_number":2241,"context_line":""},{"line_number":2242,"context_line":"        if schedule:"},{"line_number":2243,"context_line":"            api_args[\u0027schedule\u0027] \u003d schedule"},{"line_number":2244,"context_line":"        if policy:"}],"source_content_type":"text/x-python","patch_set":6,"id":"d0e0aa35_43d46748","line":2241,"updated":"2021-03-25 17:26:18.000000000","message":"nit: unrelated change","commit_id":"1fba4a9e934083ad4ae5b7d3e5b08610765c40a7"}],"cinder/volume/drivers/netapp/dataontap/utils/data_motion.py":[{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"7a8110d41bbc5e8bc854c48977055c7a11442c2d","unresolved":true,"context_lines":[{"line_number":37,"context_line":"ENTRY_DOES_NOT_EXIST \u003d \"(entry doesn\u0027t exist)\""},{"line_number":38,"context_line":"GEOMETRY_HAS_BEEN_CHANGED \u003d ("},{"line_number":39,"context_line":"    \"Geometry of the destination\","},{"line_number":40,"context_line":"    \"has been changed since the SnapMirror relationship was created\")"},{"line_number":41,"context_line":"QUIESCE_RETRY_INTERVAL \u003d 5"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"70fcd3f1_47984acb","line":40,"updated":"2021-03-23 22:20:40.000000000","message":"This is clever, but if some joker removes the comma on line 39, you\u0027ll be checking characters instead of phrases at lines 207-208.  I don\u0027t know if it\u0027s worth adding a comment that this is a tuple, not a string here so that someone doesn\u0027t come along and \"fix\" your \"typo\" when refactoring.","commit_id":"de8586a2d6c1c5e5927ec5e127fc507a81c44b13"},{"author":{"_account_id":30555,"name":"Fernando Ferraz","display_name":"Fernando Ferraz","email":"fesilva@redhat.com","username":"fernandoperches"},"change_message_id":"7665ce7f857a6a8976c2739dfbb27869ef2c83c2","unresolved":false,"context_lines":[{"line_number":37,"context_line":"ENTRY_DOES_NOT_EXIST \u003d \"(entry doesn\u0027t exist)\""},{"line_number":38,"context_line":"GEOMETRY_HAS_BEEN_CHANGED \u003d ("},{"line_number":39,"context_line":"    \"Geometry of the destination\","},{"line_number":40,"context_line":"    \"has been changed since the SnapMirror relationship was created\")"},{"line_number":41,"context_line":"QUIESCE_RETRY_INTERVAL \u003d 5"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"7189040b_dc11ddd3","line":40,"in_reply_to":"70fcd3f1_47984acb","updated":"2021-03-24 22:32:47.000000000","message":"Hi Brian, just uploaded a new patchset. Please feel free to propose another way to mention that if you had something different in mind.","commit_id":"de8586a2d6c1c5e5927ec5e127fc507a81c44b13"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"be18529eb7d614801a78fd6a56818e7e276d7648","unresolved":false,"context_lines":[{"line_number":37,"context_line":"ENTRY_DOES_NOT_EXIST \u003d \"(entry doesn\u0027t exist)\""},{"line_number":38,"context_line":"GEOMETRY_HAS_BEEN_CHANGED \u003d ("},{"line_number":39,"context_line":"    \"Geometry of the destination\","},{"line_number":40,"context_line":"    \"has been changed since the SnapMirror relationship was created\")"},{"line_number":41,"context_line":"QUIESCE_RETRY_INTERVAL \u003d 5"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"3a38bd87_4fa311ed","line":40,"in_reply_to":"7189040b_dc11ddd3","updated":"2021-03-24 23:55:56.000000000","message":"Your modification is fine.  Maybe it\u0027s overkill, but it makes me feel better!","commit_id":"de8586a2d6c1c5e5927ec5e127fc507a81c44b13"},{"author":{"_account_id":31721,"name":"Felipe Rodrigues","email":"felipefuty01@gmail.com","username":"felipefutty"},"change_message_id":"6c2e7e2fd443d3702a5a3878296664ae307ea0a1","unresolved":true,"context_lines":[{"line_number":124,"context_line":""},{"line_number":125,"context_line":"    def create_snapmirror(self, src_backend_name, dest_backend_name,"},{"line_number":126,"context_line":"                          src_flexvol_name, dest_flexvol_name):"},{"line_number":127,"context_line":"        \"\"\"Set up a SnapMirror relationship b/w two FlexVols (cinder pools)"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"        1. Create SnapMirror relationship"},{"line_number":130,"context_line":"        2. Initialize data transfer asynchronously"}],"source_content_type":"text/x-python","patch_set":4,"id":"17588d97_bed9dbc5","line":127,"updated":"2021-03-23 11:43:13.000000000","message":"FlexVol/FlexGroup","commit_id":"de8586a2d6c1c5e5927ec5e127fc507a81c44b13"},{"author":{"_account_id":30555,"name":"Fernando Ferraz","display_name":"Fernando Ferraz","email":"fesilva@redhat.com","username":"fernandoperches"},"change_message_id":"3dcafae4d8601e58b2aeed7aa2979e1a68af92bf","unresolved":false,"context_lines":[{"line_number":124,"context_line":""},{"line_number":125,"context_line":"    def create_snapmirror(self, src_backend_name, dest_backend_name,"},{"line_number":126,"context_line":"                          src_flexvol_name, dest_flexvol_name):"},{"line_number":127,"context_line":"        \"\"\"Set up a SnapMirror relationship b/w two FlexVols (cinder pools)"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"        1. Create SnapMirror relationship"},{"line_number":130,"context_line":"        2. Initialize data transfer asynchronously"}],"source_content_type":"text/x-python","patch_set":4,"id":"be80ba50_44996350","line":127,"in_reply_to":"17588d97_bed9dbc5","updated":"2021-03-24 22:17:04.000000000","message":"Done","commit_id":"de8586a2d6c1c5e5927ec5e127fc507a81c44b13"},{"author":{"_account_id":31721,"name":"Felipe Rodrigues","email":"felipefuty01@gmail.com","username":"felipefutty"},"change_message_id":"6c2e7e2fd443d3702a5a3878296664ae307ea0a1","unresolved":true,"context_lines":[{"line_number":126,"context_line":"                          src_flexvol_name, dest_flexvol_name):"},{"line_number":127,"context_line":"        \"\"\"Set up a SnapMirror relationship b/w two FlexVols (cinder pools)"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"        1. Create SnapMirror relationship"},{"line_number":130,"context_line":"        2. Initialize data transfer asynchronously"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"        If a SnapMirror relationship already exists and is broken off or"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a066e02_ecdeb4c4","line":129,"updated":"2021-03-23 11:43:13.000000000","message":"1. Create SnapMirro relationship (XDP for Flexgroup, DP for FlexVol)","commit_id":"de8586a2d6c1c5e5927ec5e127fc507a81c44b13"},{"author":{"_account_id":30555,"name":"Fernando Ferraz","display_name":"Fernando Ferraz","email":"fesilva@redhat.com","username":"fernandoperches"},"change_message_id":"3dcafae4d8601e58b2aeed7aa2979e1a68af92bf","unresolved":false,"context_lines":[{"line_number":126,"context_line":"                          src_flexvol_name, dest_flexvol_name):"},{"line_number":127,"context_line":"        \"\"\"Set up a SnapMirror relationship b/w two FlexVols (cinder pools)"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"        1. Create SnapMirror relationship"},{"line_number":130,"context_line":"        2. Initialize data transfer asynchronously"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"        If a SnapMirror relationship already exists and is broken off or"}],"source_content_type":"text/x-python","patch_set":4,"id":"d4990304_66ede6b8","line":129,"in_reply_to":"9a066e02_ecdeb4c4","updated":"2021-03-24 22:17:04.000000000","message":"Done","commit_id":"de8586a2d6c1c5e5927ec5e127fc507a81c44b13"},{"author":{"_account_id":31721,"name":"Felipe Rodrigues","email":"felipefuty01@gmail.com","username":"felipefutty"},"change_message_id":"6c2e7e2fd443d3702a5a3878296664ae307ea0a1","unresolved":true,"context_lines":[{"line_number":151,"context_line":"        )"},{"line_number":152,"context_line":"        pool_is_flexgroup \u003d provisioning_options.get(\u0027is_flexgroup\u0027, False)"},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"        # 1. Create destination \u0027dp\u0027 FlexVol if it doesn\u0027t exist"},{"line_number":155,"context_line":"        if not dest_client.flexvol_exists(dest_flexvol_name):"},{"line_number":156,"context_line":"            self.create_destination_flexvol("},{"line_number":157,"context_line":"                src_backend_name,"}],"source_content_type":"text/x-python","patch_set":4,"id":"e7d8d1cd_f18bab59","line":154,"updated":"2021-03-23 11:43:13.000000000","message":"`xdp` for Flexgroup","commit_id":"de8586a2d6c1c5e5927ec5e127fc507a81c44b13"},{"author":{"_account_id":31721,"name":"Felipe Rodrigues","email":"felipefuty01@gmail.com","username":"felipefutty"},"change_message_id":"c15a2b6213b22242f3994676023bc8edd946b8ab","unresolved":false,"context_lines":[{"line_number":151,"context_line":"        )"},{"line_number":152,"context_line":"        pool_is_flexgroup \u003d provisioning_options.get(\u0027is_flexgroup\u0027, False)"},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"        # 1. Create destination \u0027dp\u0027 FlexVol if it doesn\u0027t exist"},{"line_number":155,"context_line":"        if not dest_client.flexvol_exists(dest_flexvol_name):"},{"line_number":156,"context_line":"            self.create_destination_flexvol("},{"line_number":157,"context_line":"                src_backend_name,"}],"source_content_type":"text/x-python","patch_set":4,"id":"d9dad445_2a41917a","line":154,"in_reply_to":"e7d8d1cd_f18bab59","updated":"2021-03-24 15:59:04.000000000","message":"Done","commit_id":"de8586a2d6c1c5e5927ec5e127fc507a81c44b13"},{"author":{"_account_id":31721,"name":"Felipe Rodrigues","email":"felipefuty01@gmail.com","username":"felipefutty"},"change_message_id":"6c2e7e2fd443d3702a5a3878296664ae307ea0a1","unresolved":true,"context_lines":[{"line_number":474,"context_line":"        aggregate_map \u003d self._get_replication_aggregate_map("},{"line_number":475,"context_line":"            src_backend_name, dest_backend_name)"},{"line_number":476,"context_line":""},{"line_number":477,"context_line":"        destination_aggregate \u003d []"},{"line_number":478,"context_line":"        for src_aggr in source_aggregate:"},{"line_number":479,"context_line":"            dst_aggr \u003d aggregate_map.get(src_aggr, None)"},{"line_number":480,"context_line":"            if dst_aggr:"}],"source_content_type":"text/x-python","patch_set":4,"id":"5fcd05c8_374776b2","line":477,"updated":"2021-03-23 11:43:13.000000000","message":"For the FlexGroup, it is important to know the number of constituents inside each aggr, how is it retrieved here ?! You may expect a value and document it, like: 4 per aggr. It would remove the deployment freedom, though.","commit_id":"de8586a2d6c1c5e5927ec5e127fc507a81c44b13"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"be18529eb7d614801a78fd6a56818e7e276d7648","unresolved":false,"context_lines":[{"line_number":474,"context_line":"        aggregate_map \u003d self._get_replication_aggregate_map("},{"line_number":475,"context_line":"            src_backend_name, dest_backend_name)"},{"line_number":476,"context_line":""},{"line_number":477,"context_line":"        destination_aggregate \u003d []"},{"line_number":478,"context_line":"        for src_aggr in source_aggregate:"},{"line_number":479,"context_line":"            dst_aggr \u003d aggregate_map.get(src_aggr, None)"},{"line_number":480,"context_line":"            if dst_aggr:"}],"source_content_type":"text/x-python","patch_set":4,"id":"04ef1189_62a1b928","line":477,"in_reply_to":"04d7ce5a_0f49352f","updated":"2021-03-24 23:55:56.000000000","message":"Ack","commit_id":"de8586a2d6c1c5e5927ec5e127fc507a81c44b13"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"7a8110d41bbc5e8bc854c48977055c7a11442c2d","unresolved":true,"context_lines":[{"line_number":474,"context_line":"        aggregate_map \u003d self._get_replication_aggregate_map("},{"line_number":475,"context_line":"            src_backend_name, dest_backend_name)"},{"line_number":476,"context_line":""},{"line_number":477,"context_line":"        destination_aggregate \u003d []"},{"line_number":478,"context_line":"        for src_aggr in source_aggregate:"},{"line_number":479,"context_line":"            dst_aggr \u003d aggregate_map.get(src_aggr, None)"},{"line_number":480,"context_line":"            if dst_aggr:"}],"source_content_type":"text/x-python","patch_set":4,"id":"86ae4be3_a9bffc69","line":477,"in_reply_to":"5fcd05c8_374776b2","updated":"2021-03-23 22:20:40.000000000","message":"Is this a problem? (I don\u0027t know.)","commit_id":"de8586a2d6c1c5e5927ec5e127fc507a81c44b13"},{"author":{"_account_id":30555,"name":"Fernando Ferraz","display_name":"Fernando Ferraz","email":"fesilva@redhat.com","username":"fernandoperches"},"change_message_id":"3dcafae4d8601e58b2aeed7aa2979e1a68af92bf","unresolved":true,"context_lines":[{"line_number":474,"context_line":"        aggregate_map \u003d self._get_replication_aggregate_map("},{"line_number":475,"context_line":"            src_backend_name, dest_backend_name)"},{"line_number":476,"context_line":""},{"line_number":477,"context_line":"        destination_aggregate \u003d []"},{"line_number":478,"context_line":"        for src_aggr in source_aggregate:"},{"line_number":479,"context_line":"            dst_aggr \u003d aggregate_map.get(src_aggr, None)"},{"line_number":480,"context_line":"            if dst_aggr:"}],"source_content_type":"text/x-python","patch_set":4,"id":"dd6636cd_2089d0e2","line":477,"in_reply_to":"86ae4be3_a9bffc69","updated":"2021-03-24 22:17:04.000000000","message":"Same as comment in function create_volume_async (client_cmode.py).\n\nONTAP documentation strongly recommends administrators to stick with default settings when dealing with flexgroups. The aggr-listmultiplier default value varies according to ONTAP version and isn\u0027t accessible through GUI. The idea here is to keep ontap recommended settings as it covers our most important use cases, and document unlikely configurations in NetApp\u0027s Deployment and Operations guide. Operators will still be able to setup replication even if a flexgroup doesn\u0027t follow the recommended settings, but it will require them to create the destination flexgroup manually, following source specs.","commit_id":"de8586a2d6c1c5e5927ec5e127fc507a81c44b13"},{"author":{"_account_id":31721,"name":"Felipe Rodrigues","email":"felipefuty01@gmail.com","username":"felipefutty"},"change_message_id":"d67761fa7c2ca312ccd6b0832d4a58514ab3f017","unresolved":true,"context_lines":[{"line_number":474,"context_line":"        aggregate_map \u003d self._get_replication_aggregate_map("},{"line_number":475,"context_line":"            src_backend_name, dest_backend_name)"},{"line_number":476,"context_line":""},{"line_number":477,"context_line":"        destination_aggregate \u003d []"},{"line_number":478,"context_line":"        for src_aggr in source_aggregate:"},{"line_number":479,"context_line":"            dst_aggr \u003d aggregate_map.get(src_aggr, None)"},{"line_number":480,"context_line":"            if dst_aggr:"}],"source_content_type":"text/x-python","patch_set":4,"id":"04d7ce5a_0f49352f","line":477,"in_reply_to":"dd6636cd_2089d0e2","updated":"2021-03-24 23:22:29.000000000","message":"It makes sense, agree!","commit_id":"de8586a2d6c1c5e5927ec5e127fc507a81c44b13"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"7a8110d41bbc5e8bc854c48977055c7a11442c2d","unresolved":true,"context_lines":[{"line_number":501,"context_line":"                dest_flexvol_name,"},{"line_number":502,"context_line":"                destination_aggregate,"},{"line_number":503,"context_line":"                size,"},{"line_number":504,"context_line":"                **provisioning_options)"},{"line_number":505,"context_line":""},{"line_number":506,"context_line":"            timeout \u003d self._get_replication_volume_online_timeout()"},{"line_number":507,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"f6dca1ec_16b5dbd3","line":504,"range":{"start_line":504,"start_character":18,"end_line":504,"end_character":38},"updated":"2021-03-23 22:20:40.000000000","message":"See Felipe\u0027s comment at line 154.  Does provisioning_options[\u0027volume_type\u0027] need to be set to \u0027xdp\u0027 before making this call?","commit_id":"de8586a2d6c1c5e5927ec5e127fc507a81c44b13"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"be18529eb7d614801a78fd6a56818e7e276d7648","unresolved":false,"context_lines":[{"line_number":501,"context_line":"                dest_flexvol_name,"},{"line_number":502,"context_line":"                destination_aggregate,"},{"line_number":503,"context_line":"                size,"},{"line_number":504,"context_line":"                **provisioning_options)"},{"line_number":505,"context_line":""},{"line_number":506,"context_line":"            timeout \u003d self._get_replication_volume_online_timeout()"},{"line_number":507,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"0aab3b25_80bbade2","line":504,"range":{"start_line":504,"start_character":18,"end_line":504,"end_character":38},"in_reply_to":"037389c2_79dcd980","updated":"2021-03-24 23:55:56.000000000","message":"Ack","commit_id":"de8586a2d6c1c5e5927ec5e127fc507a81c44b13"},{"author":{"_account_id":31721,"name":"Felipe Rodrigues","email":"felipefuty01@gmail.com","username":"felipefutty"},"change_message_id":"c15a2b6213b22242f3994676023bc8edd946b8ab","unresolved":true,"context_lines":[{"line_number":501,"context_line":"                dest_flexvol_name,"},{"line_number":502,"context_line":"                destination_aggregate,"},{"line_number":503,"context_line":"                size,"},{"line_number":504,"context_line":"                **provisioning_options)"},{"line_number":505,"context_line":""},{"line_number":506,"context_line":"            timeout \u003d self._get_replication_volume_online_timeout()"},{"line_number":507,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"f8d1b7d6_94416869","line":504,"range":{"start_line":504,"start_character":18,"end_line":504,"end_character":38},"in_reply_to":"f6dca1ec_16b5dbd3","updated":"2021-03-24 15:59:04.000000000","message":"sorry, my mistake! The created volume is a DP, the snapmirror relationship is the type XDP.","commit_id":"de8586a2d6c1c5e5927ec5e127fc507a81c44b13"},{"author":{"_account_id":30555,"name":"Fernando Ferraz","display_name":"Fernando Ferraz","email":"fesilva@redhat.com","username":"fernandoperches"},"change_message_id":"3dcafae4d8601e58b2aeed7aa2979e1a68af92bf","unresolved":true,"context_lines":[{"line_number":501,"context_line":"                dest_flexvol_name,"},{"line_number":502,"context_line":"                destination_aggregate,"},{"line_number":503,"context_line":"                size,"},{"line_number":504,"context_line":"                **provisioning_options)"},{"line_number":505,"context_line":""},{"line_number":506,"context_line":"            timeout \u003d self._get_replication_volume_online_timeout()"},{"line_number":507,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"037389c2_79dcd980","line":504,"range":{"start_line":504,"start_character":18,"end_line":504,"end_character":38},"in_reply_to":"f8d1b7d6_94416869","updated":"2021-03-24 22:17:04.000000000","message":"This can be a bit confusing, but code is correct. We first create a data protection \u0027dp\u0027 flexvol/flexgroup, then a snapmirror with replication type data protection \u0027dp\u0027 for FlexVols or Extended data protection \u0027xdp\u0027 for FlexGroups.","commit_id":"de8586a2d6c1c5e5927ec5e127fc507a81c44b13"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"56040956db36660111e5e636b948e26179b209af","unresolved":true,"context_lines":[{"line_number":132,"context_line":"        If a SnapMirror relationship already exists and is broken off or"},{"line_number":133,"context_line":"        quiesced, resume and re-sync the mirror."},{"line_number":134,"context_line":"        \"\"\""},{"line_number":135,"context_line":""},{"line_number":136,"context_line":"        dest_backend_config \u003d config_utils.get_backend_configuration("},{"line_number":137,"context_line":"            dest_backend_name)"},{"line_number":138,"context_line":"        dest_vserver \u003d dest_backend_config.netapp_vserver"}],"source_content_type":"text/x-python","patch_set":6,"id":"67110e09_f50d45ef","line":135,"updated":"2021-03-25 17:26:18.000000000","message":"nit: unnecessary change, these changes may end up creating unnecessary merge conflicts for other patches.","commit_id":"1fba4a9e934083ad4ae5b7d3e5b08610765c40a7"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"56040956db36660111e5e636b948e26179b209af","unresolved":true,"context_lines":[{"line_number":173,"context_line":""},{"line_number":174,"context_line":"        # 3. Create and initialize SnapMirror if it doesn\u0027t already exist"},{"line_number":175,"context_line":"        if not existing_mirrors:"},{"line_number":176,"context_line":""},{"line_number":177,"context_line":"            # TODO(gouthamr): Change the schedule from hourly to a config value"},{"line_number":178,"context_line":"            msg \u003d (\"Creating a SnapMirror relationship between \""},{"line_number":179,"context_line":"                   \"%(src_vserver)s:%(src_volume)s and %(dest_vserver)s:\""}],"source_content_type":"text/x-python","patch_set":6,"id":"f596125a_b77357b3","line":176,"updated":"2021-03-25 17:26:18.000000000","message":"ditto","commit_id":"1fba4a9e934083ad4ae5b7d3e5b08610765c40a7"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"56040956db36660111e5e636b948e26179b209af","unresolved":true,"context_lines":[{"line_number":508,"context_line":"            def _wait_volume_is_online():"},{"line_number":509,"context_line":"                volume_state \u003d dest_client.get_volume_state("},{"line_number":510,"context_line":"                    flexvol_name\u003ddest_flexvol_name)"},{"line_number":511,"context_line":"                if volume_state and volume_state \u003d\u003d \u0027online\u0027:"},{"line_number":512,"context_line":"                    raise loopingcall.LoopingCallDone()"},{"line_number":513,"context_line":""},{"line_number":514,"context_line":"            try:"}],"source_content_type":"text/x-python","patch_set":6,"id":"1fb5cdb5_5b4fe397","line":511,"range":{"start_line":511,"start_character":0,"end_line":511,"end_character":61},"updated":"2021-03-25 17:26:18.000000000","message":"nit: Can\u0027t there be an error state here?  With current code it will be treated as a timeout.","commit_id":"1fba4a9e934083ad4ae5b7d3e5b08610765c40a7"}],"cinder/volume/drivers/netapp/options.py":[{"author":{"_account_id":31721,"name":"Felipe Rodrigues","email":"felipefuty01@gmail.com","username":"felipefutty"},"change_message_id":"6c2e7e2fd443d3702a5a3878296664ae307ea0a1","unresolved":true,"context_lines":[{"line_number":150,"context_line":"                      \"mapping between source and destination back ends when \""},{"line_number":151,"context_line":"                      \"using whole back end replication. For every \""},{"line_number":152,"context_line":"                      \"source aggregate associated with a cinder pool (NetApp \""},{"line_number":153,"context_line":"                      \"FlexVol), you would need to specify the destination \""},{"line_number":154,"context_line":"                      \"aggregate on the replication target device. A \""},{"line_number":155,"context_line":"                      \"replication target device is configured with the \""},{"line_number":156,"context_line":"                      \"configuration option replication_device. Specify this \""}],"source_content_type":"text/x-python","patch_set":4,"id":"a36f5de6_9cb8086c","line":153,"updated":"2021-03-23 11:43:13.000000000","message":"Change here to mention the FlexGroup pool. You may change this dict to have the number of constituents in each aggr or retrieve it from the source through the code.","commit_id":"de8586a2d6c1c5e5927ec5e127fc507a81c44b13"},{"author":{"_account_id":31721,"name":"Felipe Rodrigues","email":"felipefuty01@gmail.com","username":"felipefutty"},"change_message_id":"d67761fa7c2ca312ccd6b0832d4a58514ab3f017","unresolved":true,"context_lines":[{"line_number":150,"context_line":"                      \"mapping between source and destination back ends when \""},{"line_number":151,"context_line":"                      \"using whole back end replication. For every \""},{"line_number":152,"context_line":"                      \"source aggregate associated with a cinder pool (NetApp \""},{"line_number":153,"context_line":"                      \"FlexVol), you would need to specify the destination \""},{"line_number":154,"context_line":"                      \"aggregate on the replication target device. A \""},{"line_number":155,"context_line":"                      \"replication target device is configured with the \""},{"line_number":156,"context_line":"                      \"configuration option replication_device. Specify this \""}],"source_content_type":"text/x-python","patch_set":4,"id":"dd63b6f5_7fd9f62b","line":153,"in_reply_to":"1566119b_d8362735","updated":"2021-03-24 23:22:29.000000000","message":"Here the description is saying \"for every source aggregate associated with a cinder pool (NetApp FlexVol)\".. While now this parameter can be used to a FlexGroup pool..","commit_id":"de8586a2d6c1c5e5927ec5e127fc507a81c44b13"},{"author":{"_account_id":30555,"name":"Fernando Ferraz","display_name":"Fernando Ferraz","email":"fesilva@redhat.com","username":"fernandoperches"},"change_message_id":"3dcafae4d8601e58b2aeed7aa2979e1a68af92bf","unresolved":true,"context_lines":[{"line_number":150,"context_line":"                      \"mapping between source and destination back ends when \""},{"line_number":151,"context_line":"                      \"using whole back end replication. For every \""},{"line_number":152,"context_line":"                      \"source aggregate associated with a cinder pool (NetApp \""},{"line_number":153,"context_line":"                      \"FlexVol), you would need to specify the destination \""},{"line_number":154,"context_line":"                      \"aggregate on the replication target device. A \""},{"line_number":155,"context_line":"                      \"replication target device is configured with the \""},{"line_number":156,"context_line":"                      \"configuration option replication_device. Specify this \""}],"source_content_type":"text/x-python","patch_set":4,"id":"1566119b_d8362735","line":153,"in_reply_to":"a36f5de6_9cb8086c","updated":"2021-03-24 22:17:04.000000000","message":"I\u0027ve included FlexGroups to the text.\nChanging the dict to include the number of constituents isn\u0027t the scope of this fix, see my comment in function create_volume_async (client_cmode.py).","commit_id":"de8586a2d6c1c5e5927ec5e127fc507a81c44b13"}]}
