)]}'
{"doc/source/devref/share_back_ends_feature_support_mapping.rst":[{"author":{"_account_id":14567,"name":"Rodrigo Barbieri","email":"rodrigo.barbieri2010@gmail.com","username":"ganso"},"change_message_id":"b5e7a724b58deb4c2974d072c6a3277f8c34dd08","unresolved":false,"context_lines":[{"line_number":212,"context_line":"More information: :ref:`capabilities_and_extra_specs`"},{"line_number":213,"context_line":""},{"line_number":214,"context_line":"+----------------------------------------+-----------+------------+--------+-------------+-------------------+--------------------+-----+----------------------------+--------------------+"},{"line_number":215,"context_line":"|              Driver name               | DHSS\u003dTrue | DHSS\u003dFalse | dedupe | compression | thin_provisioning | thick_provisioning | qos | create share from snapshot | revert to snapshot |"},{"line_number":216,"context_line":"+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+"},{"line_number":217,"context_line":"|               ZFSonLinux               |     \\-    |      M     |   M    |      M      |         M         |          \\-        | \\-  |              M             |          \\-        |"},{"line_number":218,"context_line":"+----------------------------------------+-----------+------------+--------+-------------+-------------------+--------------------+-----+----------------------------+--------------------+"}],"source_content_type":"text/x-rst","patch_set":16,"id":"3a461143_1303eb74","line":215,"range":{"start_line":215,"start_character":167,"end_line":215,"end_character":186},"updated":"2017-01-25 15:49:58.000000000","message":"missed a column here","commit_id":"1e5ed02b29519a058b6d9f6e3bbcfe9aa7920027"},{"author":{"_account_id":14907,"name":"Alyson","email":"alyson.rodrigues.rosa@gmail.com","username":"Alyson"},"change_message_id":"149c2f2ff14888b1b7a0d72b419c75caf222ab50","unresolved":false,"context_lines":[{"line_number":212,"context_line":"More information: :ref:`capabilities_and_extra_specs`"},{"line_number":213,"context_line":""},{"line_number":214,"context_line":"+----------------------------------------+-----------+------------+--------+-------------+-------------------+--------------------+-----+----------------------------+--------------------+"},{"line_number":215,"context_line":"|              Driver name               | DHSS\u003dTrue | DHSS\u003dFalse | dedupe | compression | thin_provisioning | thick_provisioning | qos | create share from snapshot | revert to snapshot |"},{"line_number":216,"context_line":"+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+"},{"line_number":217,"context_line":"|               ZFSonLinux               |     \\-    |      M     |   M    |      M      |         M         |          \\-        | \\-  |              M             |          \\-        |"},{"line_number":218,"context_line":"+----------------------------------------+-----------+------------+--------+-------------+-------------------+--------------------+-----+----------------------------+--------------------+"}],"source_content_type":"text/x-rst","patch_set":16,"id":"3a461143_7655fdc4","line":215,"range":{"start_line":215,"start_character":167,"end_line":215,"end_character":186},"in_reply_to":"3a461143_1303eb74","updated":"2017-01-25 16:00:35.000000000","message":"added","commit_id":"1e5ed02b29519a058b6d9f6e3bbcfe9aa7920027"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"cb4fc042055887339a9ef7106d44b4e7d06f18b0","unresolved":false,"context_lines":[{"line_number":246,"context_line":"+----------------------------------------+-----------+------------+--------+-------------+-------------------+--------------------+-----+----------------------------+--------------------+--------------------+"},{"line_number":247,"context_line":"|                   LVM                  |     \\-    |      M     |   \\-   |      \\-     |        \\-         |          M         | \\-  |              K             |          O         |          \\-        |"},{"line_number":248,"context_line":"+----------------------------------------+-----------+------------+--------+-------------+-------------------+--------------------+-----+----------------------------+--------------------+--------------------+"},{"line_number":249,"context_line":"|                Quobyte                 |     \\-    |      K     |   \\-   |      \\-     |        \\-         |          L         | \\-  |              M             |          \\-        |           O        |"},{"line_number":250,"context_line":"+----------------------------------------+-----------+------------+--------+-------------+-------------------+--------------------+-----+----------------------------+--------------------+--------------------+"},{"line_number":251,"context_line":"|              Windows SMB               |     L     |      L     |   \\-   |      \\-     |        \\-         |          L         | \\-  |             \\-             |          \\-        |          \\-        |"},{"line_number":252,"context_line":"+----------------------------------------+-----------+------------+--------+-------------+-------------------+--------------------+-----+----------------------------+--------------------+--------------------+"}],"source_content_type":"text/x-rst","patch_set":17,"id":"3a461143_87c4f540","line":249,"range":{"start_line":249,"start_character":197,"end_line":249,"end_character":200},"updated":"2017-01-25 16:59:55.000000000","message":"You missed ))) Try one more time.","commit_id":"ac62ef2f44125ae2348b881220d4e3d4c2a37751"},{"author":{"_account_id":14907,"name":"Alyson","email":"alyson.rodrigues.rosa@gmail.com","username":"Alyson"},"change_message_id":"78bc87cd954ec1b84c885336812db71bd6465d4f","unresolved":false,"context_lines":[{"line_number":246,"context_line":"+----------------------------------------+-----------+------------+--------+-------------+-------------------+--------------------+-----+----------------------------+--------------------+--------------------+"},{"line_number":247,"context_line":"|                   LVM                  |     \\-    |      M     |   \\-   |      \\-     |        \\-         |          M         | \\-  |              K             |          O         |          \\-        |"},{"line_number":248,"context_line":"+----------------------------------------+-----------+------------+--------+-------------+-------------------+--------------------+-----+----------------------------+--------------------+--------------------+"},{"line_number":249,"context_line":"|                Quobyte                 |     \\-    |      K     |   \\-   |      \\-     |        \\-         |          L         | \\-  |              M             |          \\-        |           O        |"},{"line_number":250,"context_line":"+----------------------------------------+-----------+------------+--------+-------------+-------------------+--------------------+-----+----------------------------+--------------------+--------------------+"},{"line_number":251,"context_line":"|              Windows SMB               |     L     |      L     |   \\-   |      \\-     |        \\-         |          L         | \\-  |             \\-             |          \\-        |          \\-        |"},{"line_number":252,"context_line":"+----------------------------------------+-----------+------------+--------+-------------+-------------------+--------------------+-----+----------------------------+--------------------+--------------------+"}],"source_content_type":"text/x-rst","patch_set":17,"id":"3a461143_62237706","line":249,"range":{"start_line":249,"start_character":197,"end_line":249,"end_character":200},"in_reply_to":"3a461143_87c4f540","updated":"2017-01-25 17:21:09.000000000","message":"Ah common, it was really close..","commit_id":"ac62ef2f44125ae2348b881220d4e3d4c2a37751"}],"manila/share/drivers/hitachi/hnas/driver.py":[{"author":{"_account_id":11047,"name":"Mark Sturdevant","email":"mark.sturdevant@ibm.com","username":"markstur"},"change_message_id":"8c468ad67aba6808e5fb8a414346b1458351f6ba","unresolved":false,"context_lines":[{"line_number":239,"context_line":"                    \u0027entity_type\u0027: entity_type.capitalize(),"},{"line_number":240,"context_line":"                    \u0027share\u0027: share_or_snapshot[\u0027id\u0027],"},{"line_number":241,"context_line":"                    \u0027type\u0027: rule[\u0027access_type\u0027],"},{"line_number":242,"context_line":"                    \u0027r_id\u0027: rule[\u0027id\u0027], \u0027to\u0027: rule[\u0027access_to\u0027]}"},{"line_number":243,"context_line":"                raise exception.InvalidShareAccess(reason\u003dmsg)"},{"line_number":244,"context_line":""},{"line_number":245,"context_line":"            if rule[\u0027access_level\u0027] \u003d\u003d constants.ACCESS_LEVEL_RW:"}],"source_content_type":"text/x-python","patch_set":15,"id":"5a3905b3_783eba2a","line":242,"range":{"start_line":242,"start_character":40,"end_line":242,"end_character":63},"updated":"2017-01-25 06:20:53.000000000","message":"dict format http://docs.openstack.org/developer/hacking/#dictionaries-lists","commit_id":"29331046290c9caa93b5ad99a8736ef6512b75c6"},{"author":{"_account_id":14907,"name":"Alyson","email":"alyson.rodrigues.rosa@gmail.com","username":"Alyson"},"change_message_id":"fe88546107accf91aa19d8e17e405b2ccfea8c96","unresolved":false,"context_lines":[{"line_number":239,"context_line":"                    \u0027entity_type\u0027: entity_type.capitalize(),"},{"line_number":240,"context_line":"                    \u0027share\u0027: share_or_snapshot[\u0027id\u0027],"},{"line_number":241,"context_line":"                    \u0027type\u0027: rule[\u0027access_type\u0027],"},{"line_number":242,"context_line":"                    \u0027r_id\u0027: rule[\u0027id\u0027], \u0027to\u0027: rule[\u0027access_to\u0027]}"},{"line_number":243,"context_line":"                raise exception.InvalidShareAccess(reason\u003dmsg)"},{"line_number":244,"context_line":""},{"line_number":245,"context_line":"            if rule[\u0027access_level\u0027] \u003d\u003d constants.ACCESS_LEVEL_RW:"}],"source_content_type":"text/x-python","patch_set":15,"id":"5a3905b3_8b1f855a","line":242,"range":{"start_line":242,"start_character":40,"end_line":242,"end_character":63},"in_reply_to":"5a3905b3_783eba2a","updated":"2017-01-25 16:49:42.000000000","message":"Done","commit_id":"29331046290c9caa93b5ad99a8736ef6512b75c6"},{"author":{"_account_id":11047,"name":"Mark Sturdevant","email":"mark.sturdevant@ibm.com","username":"markstur"},"change_message_id":"8c468ad67aba6808e5fb8a414346b1458351f6ba","unresolved":false,"context_lines":[{"line_number":1223,"context_line":"                             snapshot[\u0027share\u0027][\u0027share_proto\u0027])"},{"line_number":1224,"context_line":""},{"line_number":1225,"context_line":"        for rule in (access_rules + add_rules + delete_rules):"},{"line_number":1226,"context_line":"            rule[\u0027access_level\u0027] \u003d constants.ACCESS_LEVEL_RO"},{"line_number":1227,"context_line":""},{"line_number":1228,"context_line":"        if snapshot[\u0027share\u0027][\u0027share_proto\u0027].lower() \u003d\u003d \u0027nfs\u0027:"},{"line_number":1229,"context_line":"            host_list \u003d []"}],"source_content_type":"text/x-python","patch_set":15,"id":"5a3905b3_58bade6f","line":1226,"range":{"start_line":1226,"start_character":17,"end_line":1226,"end_character":31},"updated":"2017-01-25 06:20:53.000000000","message":"should it be an error if you get a rule that is RW? I would think so, but didn\u0027t check the spec.","commit_id":"29331046290c9caa93b5ad99a8736ef6512b75c6"},{"author":{"_account_id":14907,"name":"Alyson","email":"alyson.rodrigues.rosa@gmail.com","username":"Alyson"},"change_message_id":"fe88546107accf91aa19d8e17e405b2ccfea8c96","unresolved":false,"context_lines":[{"line_number":1223,"context_line":"                             snapshot[\u0027share\u0027][\u0027share_proto\u0027])"},{"line_number":1224,"context_line":""},{"line_number":1225,"context_line":"        for rule in (access_rules + add_rules + delete_rules):"},{"line_number":1226,"context_line":"            rule[\u0027access_level\u0027] \u003d constants.ACCESS_LEVEL_RO"},{"line_number":1227,"context_line":""},{"line_number":1228,"context_line":"        if snapshot[\u0027share\u0027][\u0027share_proto\u0027].lower() \u003d\u003d \u0027nfs\u0027:"},{"line_number":1229,"context_line":"            host_list \u003d []"}],"source_content_type":"text/x-python","patch_set":15,"id":"5a3905b3_c63984da","line":1226,"range":{"start_line":1226,"start_character":17,"end_line":1226,"end_character":31},"in_reply_to":"5a3905b3_58bade6f","updated":"2017-01-25 16:49:42.000000000","message":"At this point, dict rules does not contain \u0027access_level\u0027, it will be added here.","commit_id":"29331046290c9caa93b5ad99a8736ef6512b75c6"},{"author":{"_account_id":14567,"name":"Rodrigo Barbieri","email":"rodrigo.barbieri2010@gmail.com","username":"ganso"},"change_message_id":"b5e7a724b58deb4c2974d072c6a3277f8c34dd08","unresolved":false,"context_lines":[{"line_number":241,"context_line":"                    \u0027share\u0027: share_or_snapshot[\u0027id\u0027],"},{"line_number":242,"context_line":"                    \u0027type\u0027: rule[\u0027access_type\u0027],"},{"line_number":243,"context_line":"                    \u0027r_id\u0027: rule[\u0027id\u0027],"},{"line_number":244,"context_line":"                    \u0027to\u0027: rule[\u0027access_to\u0027]"},{"line_number":245,"context_line":"                }"},{"line_number":246,"context_line":"                raise exception.InvalidShareAccess(reason\u003dmsg)"},{"line_number":247,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"3a461143_f3b57f7e","line":244,"updated":"2017-01-25 15:49:58.000000000","message":"missed a comma here ,","commit_id":"1e5ed02b29519a058b6d9f6e3bbcfe9aa7920027"},{"author":{"_account_id":14907,"name":"Alyson","email":"alyson.rodrigues.rosa@gmail.com","username":"Alyson"},"change_message_id":"149c2f2ff14888b1b7a0d72b419c75caf222ab50","unresolved":false,"context_lines":[{"line_number":241,"context_line":"                    \u0027share\u0027: share_or_snapshot[\u0027id\u0027],"},{"line_number":242,"context_line":"                    \u0027type\u0027: rule[\u0027access_type\u0027],"},{"line_number":243,"context_line":"                    \u0027r_id\u0027: rule[\u0027id\u0027],"},{"line_number":244,"context_line":"                    \u0027to\u0027: rule[\u0027access_to\u0027]"},{"line_number":245,"context_line":"                }"},{"line_number":246,"context_line":"                raise exception.InvalidShareAccess(reason\u003dmsg)"},{"line_number":247,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"3a461143_56cba172","line":244,"in_reply_to":"3a461143_f3b57f7e","updated":"2017-01-25 16:00:35.000000000","message":"Done","commit_id":"1e5ed02b29519a058b6d9f6e3bbcfe9aa7920027"}],"manila/share/drivers/hitachi/hnas/ssh.py":[{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"7084594db74b2971c849b48d1ab9e75a916105a7","unresolved":false,"context_lines":[{"line_number":82,"context_line":"        if share_id is not None:"},{"line_number":83,"context_line":"            name \u003d os.path.join(\u0027/shares\u0027, share_id)"},{"line_number":84,"context_line":"        else:"},{"line_number":85,"context_line":"            name \u003d os.path.join(\u0027/snapshots\u0027, snapshot_id)"},{"line_number":86,"context_line":"        command \u003d [\u0027nfs-export\u0027, \u0027del\u0027, name]"},{"line_number":87,"context_line":"        try:"},{"line_number":88,"context_line":"            self._execute(command)"}],"source_content_type":"text/x-python","patch_set":15,"id":"5a3905b3_879b1a72","line":85,"range":{"start_line":85,"start_character":46,"end_line":85,"end_character":57},"updated":"2017-01-24 19:27:31.000000000","message":"no check that it is not None","commit_id":"29331046290c9caa93b5ad99a8736ef6512b75c6"},{"author":{"_account_id":14907,"name":"Alyson","email":"alyson.rodrigues.rosa@gmail.com","username":"Alyson"},"change_message_id":"fe88546107accf91aa19d8e17e405b2ccfea8c96","unresolved":false,"context_lines":[{"line_number":82,"context_line":"        if share_id is not None:"},{"line_number":83,"context_line":"            name \u003d os.path.join(\u0027/shares\u0027, share_id)"},{"line_number":84,"context_line":"        else:"},{"line_number":85,"context_line":"            name \u003d os.path.join(\u0027/snapshots\u0027, snapshot_id)"},{"line_number":86,"context_line":"        command \u003d [\u0027nfs-export\u0027, \u0027del\u0027, name]"},{"line_number":87,"context_line":"        try:"},{"line_number":88,"context_line":"            self._execute(command)"}],"source_content_type":"text/x-python","patch_set":15,"id":"5a3905b3_bad72cbe","line":85,"range":{"start_line":85,"start_character":46,"end_line":85,"end_character":57},"in_reply_to":"5a3905b3_4734bf49","updated":"2017-01-25 16:49:42.000000000","message":"Done","commit_id":"29331046290c9caa93b5ad99a8736ef6512b75c6"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"7bae16c0cc7b102da9730a5795250719b5f10462","unresolved":false,"context_lines":[{"line_number":82,"context_line":"        if share_id is not None:"},{"line_number":83,"context_line":"            name \u003d os.path.join(\u0027/shares\u0027, share_id)"},{"line_number":84,"context_line":"        else:"},{"line_number":85,"context_line":"            name \u003d os.path.join(\u0027/snapshots\u0027, snapshot_id)"},{"line_number":86,"context_line":"        command \u003d [\u0027nfs-export\u0027, \u0027del\u0027, name]"},{"line_number":87,"context_line":"        try:"},{"line_number":88,"context_line":"            self._execute(command)"}],"source_content_type":"text/x-python","patch_set":15,"id":"5a3905b3_4734bf49","line":85,"range":{"start_line":85,"start_character":46,"end_line":85,"end_character":57},"in_reply_to":"5a3905b3_879b1a72","updated":"2017-01-25 04:10:41.000000000","message":"+1","commit_id":"29331046290c9caa93b5ad99a8736ef6512b75c6"},{"author":{"_account_id":11047,"name":"Mark Sturdevant","email":"mark.sturdevant@ibm.com","username":"markstur"},"change_message_id":"8c468ad67aba6808e5fb8a414346b1458351f6ba","unresolved":false,"context_lines":[{"line_number":167,"context_line":"                LOG.debug(\u0027User %(user)s already allowed to access \u0027"},{"line_number":168,"context_line":"                          \u0027%(entity_type)s %(share)s.\u0027,"},{"line_number":169,"context_line":"                          {\u0027entity_type\u0027: entity_type, \u0027user\u0027: user,"},{"line_number":170,"context_line":"                           \u0027share\u0027: name})"},{"line_number":171,"context_line":"            else:"},{"line_number":172,"context_line":"                msg \u003d six.text_type(e)"},{"line_number":173,"context_line":"                LOG.exception(msg)"}],"source_content_type":"text/x-python","patch_set":15,"id":"5a3905b3_d8540e23","line":170,"updated":"2017-01-25 06:20:53.000000000","message":"is it reasonable to make sure the ro|rw is correct with the existing access?","commit_id":"29331046290c9caa93b5ad99a8736ef6512b75c6"},{"author":{"_account_id":14907,"name":"Alyson","email":"alyson.rodrigues.rosa@gmail.com","username":"Alyson"},"change_message_id":"fe88546107accf91aa19d8e17e405b2ccfea8c96","unresolved":false,"context_lines":[{"line_number":167,"context_line":"                LOG.debug(\u0027User %(user)s already allowed to access \u0027"},{"line_number":168,"context_line":"                          \u0027%(entity_type)s %(share)s.\u0027,"},{"line_number":169,"context_line":"                          {\u0027entity_type\u0027: entity_type, \u0027user\u0027: user,"},{"line_number":170,"context_line":"                           \u0027share\u0027: name})"},{"line_number":171,"context_line":"            else:"},{"line_number":172,"context_line":"                msg \u003d six.text_type(e)"},{"line_number":173,"context_line":"                LOG.exception(msg)"}],"source_content_type":"text/x-python","patch_set":15,"id":"3a461143_876235d7","line":170,"in_reply_to":"5a3905b3_d8540e23","updated":"2017-01-25 16:49:42.000000000","message":"That\u0027s a good point, it does not verify the access level of a duplicated cifs rule, I\u0027ll report this as a bug. Thanks for pointing it Mark :)","commit_id":"29331046290c9caa93b5ad99a8736ef6512b75c6"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"7bae16c0cc7b102da9730a5795250719b5f10462","unresolved":false,"context_lines":[{"line_number":473,"context_line":"        if share_id is not None:"},{"line_number":474,"context_line":"            name \u003d \u0027/shares/\u0027 + share_id"},{"line_number":475,"context_line":"        else:"},{"line_number":476,"context_line":"            name \u003d \u0027/snapshots/\u0027 + snapshot_id"},{"line_number":477,"context_line":"        command \u003d [\u0027nfs-export\u0027, \u0027list \u0027, name]"},{"line_number":478,"context_line":"        export_list \u003d []"},{"line_number":479,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":15,"id":"5a3905b3_e7ee8bb3","line":476,"updated":"2017-01-25 04:10:41.000000000","message":"No check for snapshot_id is not None either","commit_id":"29331046290c9caa93b5ad99a8736ef6512b75c6"},{"author":{"_account_id":14907,"name":"Alyson","email":"alyson.rodrigues.rosa@gmail.com","username":"Alyson"},"change_message_id":"fe88546107accf91aa19d8e17e405b2ccfea8c96","unresolved":false,"context_lines":[{"line_number":473,"context_line":"        if share_id is not None:"},{"line_number":474,"context_line":"            name \u003d \u0027/shares/\u0027 + share_id"},{"line_number":475,"context_line":"        else:"},{"line_number":476,"context_line":"            name \u003d \u0027/snapshots/\u0027 + snapshot_id"},{"line_number":477,"context_line":"        command \u003d [\u0027nfs-export\u0027, \u0027list \u0027, name]"},{"line_number":478,"context_line":"        export_list \u003d []"},{"line_number":479,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":15,"id":"5a3905b3_5ddc8246","line":476,"in_reply_to":"5a3905b3_e7ee8bb3","updated":"2017-01-25 16:49:42.000000000","message":"Done","commit_id":"29331046290c9caa93b5ad99a8736ef6512b75c6"},{"author":{"_account_id":14567,"name":"Rodrigo Barbieri","email":"rodrigo.barbieri2010@gmail.com","username":"ganso"},"change_message_id":"b5e7a724b58deb4c2974d072c6a3277f8c34dd08","unresolved":false,"context_lines":[{"line_number":140,"context_line":"        elif snapshot_id is not None:"},{"line_number":141,"context_line":"            name \u003d os.path.join(\u0027/snapshots\u0027, snapshot_id)"},{"line_number":142,"context_line":"        else:"},{"line_number":143,"context_line":"            msg \u003d _(\"No share/snapshot provided to update nfs rules.\")"},{"line_number":144,"context_line":"            raise exception.HNASBackendException(msg\u003dmsg)"},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"        command \u003d [\u0027nfs-export\u0027, \u0027mod\u0027, \u0027-c\u0027]"}],"source_content_type":"text/x-python","patch_set":16,"id":"3a461143_f311ff5e","line":143,"range":{"start_line":143,"start_character":58,"end_line":143,"end_character":61},"updated":"2017-01-25 15:49:58.000000000","message":"nit: NFS for consistency","commit_id":"1e5ed02b29519a058b6d9f6e3bbcfe9aa7920027"},{"author":{"_account_id":14907,"name":"Alyson","email":"alyson.rodrigues.rosa@gmail.com","username":"Alyson"},"change_message_id":"149c2f2ff14888b1b7a0d72b419c75caf222ab50","unresolved":false,"context_lines":[{"line_number":140,"context_line":"        elif snapshot_id is not None:"},{"line_number":141,"context_line":"            name \u003d os.path.join(\u0027/snapshots\u0027, snapshot_id)"},{"line_number":142,"context_line":"        else:"},{"line_number":143,"context_line":"            msg \u003d _(\"No share/snapshot provided to update nfs rules.\")"},{"line_number":144,"context_line":"            raise exception.HNASBackendException(msg\u003dmsg)"},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"        command \u003d [\u0027nfs-export\u0027, \u0027mod\u0027, \u0027-c\u0027]"}],"source_content_type":"text/x-python","patch_set":16,"id":"3a461143_96c5095d","line":143,"range":{"start_line":143,"start_character":58,"end_line":143,"end_character":61},"in_reply_to":"3a461143_f311ff5e","updated":"2017-01-25 16:00:35.000000000","message":"Done","commit_id":"1e5ed02b29519a058b6d9f6e3bbcfe9aa7920027"}],"manila/utils.py":[{"author":{"_account_id":14567,"name":"Rodrigo Barbieri","email":"rodrigo.barbieri2010@gmail.com","username":"ganso"},"change_message_id":"b5e7a724b58deb4c2974d072c6a3277f8c34dd08","unresolved":false,"context_lines":[{"line_number":592,"context_line":"            time.sleep(tries ** 2)"},{"line_number":593,"context_line":""},{"line_number":594,"context_line":""},{"line_number":595,"context_line":"def change_rules_to_readonly(access_rules, add_rules, delete_rules):"},{"line_number":596,"context_line":"    dict_access_rules \u003d cast_access_object_to_dict_in_readonly(access_rules)"},{"line_number":597,"context_line":"    dict_add_rules \u003d cast_access_object_to_dict_in_readonly(add_rules)"},{"line_number":598,"context_line":"    dict_delete_rules \u003d cast_access_object_to_dict_in_readonly(delete_rules)"},{"line_number":599,"context_line":"    return dict_access_rules, dict_add_rules, dict_delete_rules"},{"line_number":600,"context_line":""},{"line_number":601,"context_line":""},{"line_number":602,"context_line":"def cast_access_object_to_dict_in_readonly(rules):"},{"line_number":603,"context_line":"    dict_rules \u003d []"},{"line_number":604,"context_line":"    for rule in rules:"},{"line_number":605,"context_line":"        dict_rules.append({"},{"line_number":606,"context_line":"            \u0027access_level\u0027: constants.ACCESS_LEVEL_RO,"},{"line_number":607,"context_line":"            \u0027access_type\u0027: rule[\u0027access_type\u0027],"},{"line_number":608,"context_line":"            \u0027access_to\u0027: rule[\u0027access_to\u0027]"},{"line_number":609,"context_line":"        })"},{"line_number":610,"context_line":"    return dict_rules"}],"source_content_type":"text/x-python","patch_set":16,"id":"3a461143_93f99b50","line":610,"range":{"start_line":595,"start_character":0,"end_line":610,"end_character":21},"updated":"2017-01-25 15:49:58.000000000","message":"these could have gone to share/utils.py","commit_id":"1e5ed02b29519a058b6d9f6e3bbcfe9aa7920027"},{"author":{"_account_id":14907,"name":"Alyson","email":"alyson.rodrigues.rosa@gmail.com","username":"Alyson"},"change_message_id":"149c2f2ff14888b1b7a0d72b419c75caf222ab50","unresolved":false,"context_lines":[{"line_number":592,"context_line":"            time.sleep(tries ** 2)"},{"line_number":593,"context_line":""},{"line_number":594,"context_line":""},{"line_number":595,"context_line":"def change_rules_to_readonly(access_rules, add_rules, delete_rules):"},{"line_number":596,"context_line":"    dict_access_rules \u003d cast_access_object_to_dict_in_readonly(access_rules)"},{"line_number":597,"context_line":"    dict_add_rules \u003d cast_access_object_to_dict_in_readonly(add_rules)"},{"line_number":598,"context_line":"    dict_delete_rules \u003d cast_access_object_to_dict_in_readonly(delete_rules)"},{"line_number":599,"context_line":"    return dict_access_rules, dict_add_rules, dict_delete_rules"},{"line_number":600,"context_line":""},{"line_number":601,"context_line":""},{"line_number":602,"context_line":"def cast_access_object_to_dict_in_readonly(rules):"},{"line_number":603,"context_line":"    dict_rules \u003d []"},{"line_number":604,"context_line":"    for rule in rules:"},{"line_number":605,"context_line":"        dict_rules.append({"},{"line_number":606,"context_line":"            \u0027access_level\u0027: constants.ACCESS_LEVEL_RO,"},{"line_number":607,"context_line":"            \u0027access_type\u0027: rule[\u0027access_type\u0027],"},{"line_number":608,"context_line":"            \u0027access_to\u0027: rule[\u0027access_to\u0027]"},{"line_number":609,"context_line":"        })"},{"line_number":610,"context_line":"    return dict_rules"}],"source_content_type":"text/x-python","patch_set":16,"id":"3a461143_36953540","line":610,"range":{"start_line":595,"start_character":0,"end_line":610,"end_character":21},"in_reply_to":"3a461143_93f99b50","updated":"2017-01-25 16:00:35.000000000","message":"Ok, moved to share/utils.py","commit_id":"1e5ed02b29519a058b6d9f6e3bbcfe9aa7920027"}],"releasenotes/notes/hnas-mountable-snapshots-4fbffa05656112c4.yaml":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"be00461286203d490bdc19b528059080cc0a67bb","unresolved":false,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - Added Mountable Snapshots support to HNAS driver."},{"line_number":4,"context_line":"upgrade:"},{"line_number":5,"context_line":"  - The driver now reports a new capability,"},{"line_number":6,"context_line":"    \u0027mount_snapshot_support\u003dTrue\u0027, so the share types must"},{"line_number":7,"context_line":"    be updated with that capability."}],"source_content_type":"text/x-yaml","patch_set":11,"id":"5a3905b3_8bb47c82","line":7,"range":{"start_line":5,"start_character":0,"end_line":7,"end_character":36},"updated":"2017-01-22 05:35:10.000000000","message":"use a similar note as in: https://review.openstack.org/#/c/411923/9/releasenotes/notes/hnas-revert-to-snapshot-a2405cd6653b1e85.yaml","commit_id":"09b13db22d6a5945ed5797fb5c7863d490150351"},{"author":{"_account_id":14567,"name":"Rodrigo Barbieri","email":"rodrigo.barbieri2010@gmail.com","username":"ganso"},"change_message_id":"e749c919e9747aa5dbbf185fe8f2e792e15c7d43","unresolved":false,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - Added Mountable Snapshots support to HNAS driver."},{"line_number":4,"context_line":"upgrade:"},{"line_number":5,"context_line":"  - The driver now reports a new capability,"},{"line_number":6,"context_line":"    \u0027mount_snapshot_support\u003dTrue\u0027, so the share types must"},{"line_number":7,"context_line":"    be updated with that capability."}],"source_content_type":"text/x-yaml","patch_set":11,"id":"5a3905b3_14b2674c","line":7,"range":{"start_line":5,"start_character":0,"end_line":7,"end_character":36},"in_reply_to":"5a3905b3_8bb47c82","updated":"2017-01-22 18:15:24.000000000","message":"Done","commit_id":"09b13db22d6a5945ed5797fb5c7863d490150351"},{"author":{"_account_id":11047,"name":"Mark Sturdevant","email":"mark.sturdevant@ibm.com","username":"markstur"},"change_message_id":"8c468ad67aba6808e5fb8a414346b1458351f6ba","unresolved":false,"context_lines":[{"line_number":5,"context_line":"  - If using existing share types with the HNAS back end,"},{"line_number":6,"context_line":"    set the \u0027mount_snapshot_support\u0027 extra-spec to allow"},{"line_number":7,"context_line":"    creating shares that support mountable snapshots"},{"line_number":8,"context_line":"    functionality. This modification will not affect existing"},{"line_number":9,"context_line":"    shares of such types."}],"source_content_type":"text/x-yaml","patch_set":15,"id":"5a3905b3_132af97e","line":8,"range":{"start_line":8,"start_character":4,"end_line":8,"end_character":17},"updated":"2017-01-25 06:20:53.000000000","message":"I\u0027d remove the word \"functionality\" -- but it\u0027s fine as-is if you prefer.","commit_id":"29331046290c9caa93b5ad99a8736ef6512b75c6"},{"author":{"_account_id":14907,"name":"Alyson","email":"alyson.rodrigues.rosa@gmail.com","username":"Alyson"},"change_message_id":"fe88546107accf91aa19d8e17e405b2ccfea8c96","unresolved":false,"context_lines":[{"line_number":5,"context_line":"  - If using existing share types with the HNAS back end,"},{"line_number":6,"context_line":"    set the \u0027mount_snapshot_support\u0027 extra-spec to allow"},{"line_number":7,"context_line":"    creating shares that support mountable snapshots"},{"line_number":8,"context_line":"    functionality. This modification will not affect existing"},{"line_number":9,"context_line":"    shares of such types."}],"source_content_type":"text/x-yaml","patch_set":15,"id":"5a3905b3_66a530b4","line":8,"range":{"start_line":8,"start_character":4,"end_line":8,"end_character":17},"in_reply_to":"5a3905b3_132af97e","updated":"2017-01-25 16:49:42.000000000","message":"removed","commit_id":"29331046290c9caa93b5ad99a8736ef6512b75c6"}]}
