)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":15100,"name":"zhongjun","email":"jun.zhongjun2@gmail.com","username":"zhongjun2"},"change_message_id":"857e63d3f51e7bf27fec95f767f78136f3c7d4c6","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"QNAP Manila driver: Access rule setting is override by the later access rule setting."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"When user try to add access rule1 and access rule2, share will first set to the rule1 and"},{"line_number":10,"context_line":"then override by the rule2."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"We expect that share should apply both access rule1 and access rule2."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"df87a7cf_b62c34ac","line":9,"range":{"start_line":9,"start_character":1,"end_line":9,"end_character":89},"updated":"2017-12-12 09:36:22.000000000","message":"more than 79 characters","commit_id":"8a6650fd4821ef00af7ab40ee4f86f1751504ddb"},{"author":{"_account_id":26134,"name":"Chris Yang","email":"chrisyang@qnap.com","username":"chrisyang"},"change_message_id":"b4eaaa3ad850162779388c1a1fbcfb091c7bcac4","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"QNAP Manila driver: Access rule setting is override by the later access rule setting."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"When user try to add access rule1 and access rule2, share will first set to the rule1 and"},{"line_number":10,"context_line":"then override by the rule2."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"We expect that share should apply both access rule1 and access rule2."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"df87a7cf_c3fb1d45","line":9,"range":{"start_line":9,"start_character":1,"end_line":9,"end_character":89},"in_reply_to":"df87a7cf_b62c34ac","updated":"2017-12-13 05:46:09.000000000","message":"Done","commit_id":"8a6650fd4821ef00af7ab40ee4f86f1751504ddb"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"2f4559f3651430b9b1da203d4e58bfc25ecaa363","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Chris Yang \u003cchrisyang@qnap.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2017-12-25 09:32:02 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"QNAP Manila driver: Access rule setting is override by the later rule setting."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"When user try to add access rule1 and access rule2, share will first set to"},{"line_number":10,"context_line":"the rule1 and then override by the rule2."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"9f91af0f_bc1e386e","line":7,"range":{"start_line":7,"start_character":0,"end_line":7,"end_character":78},"updated":"2017-12-28 22:24:20.000000000","message":"Limit the first line of your commit message to less than 60 characters, period at the end of the line is not necessary:\n\nInteresting read here: https://wiki.openstack.org/wiki/GitCommitMessages","commit_id":"205ef44283fdcdc0e46200d4533c3e5b015e911c"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"2f4559f3651430b9b1da203d4e58bfc25ecaa363","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"QNAP Manila driver: Access rule setting is override by the later rule setting."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"When user try to add access rule1 and access rule2, share will first set to"},{"line_number":10,"context_line":"the rule1 and then override by the rule2."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"We expect that share should apply both access rule1 and access rule2."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"9f91af0f_5c136c67","line":9,"range":{"start_line":9,"start_character":68,"end_line":9,"end_character":75},"updated":"2017-12-28 22:24:20.000000000","message":"limit to 72 characters","commit_id":"205ef44283fdcdc0e46200d4533c3e5b015e911c"}],"manila/share/drivers/qnap/api.py":[{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"4f683778d5967a6c9dce0bd7428602f25efd20e7","unresolved":false,"context_lines":[{"line_number":178,"context_line":"            value \u003d params[key]"},{"line_number":179,"context_line":"            if value is not None:"},{"line_number":180,"context_line":"                if isinstance(value, list):"},{"line_number":181,"context_line":"                    sanitized_params[key] \u003d [six.text_type(v) for v in value]"},{"line_number":182,"context_line":"                else:"},{"line_number":183,"context_line":"                    sanitized_params[key] \u003d six.text_type(value)"},{"line_number":184,"context_line":"        return sanitized_params"}],"source_content_type":"text/x-python","patch_set":2,"id":"df87a7cf_eeb47dd3","line":181,"range":{"start_line":181,"start_character":20,"end_line":181,"end_character":77},"updated":"2017-12-07 17:04:00.000000000","message":"Does this overwrite sanitized_params[key] with the last value in the list?  Is that what you want?","commit_id":"740aa57387ea6bb0bf27bc3ef17d3e7f0e03a030"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"29c8f77615ed1b359492346331d3f3ce99dc8759","unresolved":false,"context_lines":[{"line_number":178,"context_line":"            value \u003d params[key]"},{"line_number":179,"context_line":"            if value is not None:"},{"line_number":180,"context_line":"                if isinstance(value, list):"},{"line_number":181,"context_line":"                    sanitized_params[key] \u003d [six.text_type(v) for v in value]"},{"line_number":182,"context_line":"                else:"},{"line_number":183,"context_line":"                    sanitized_params[key] \u003d six.text_type(value)"},{"line_number":184,"context_line":"        return sanitized_params"}],"source_content_type":"text/x-python","patch_set":2,"id":"df87a7cf_2aaf9a7d","line":181,"range":{"start_line":181,"start_character":20,"end_line":181,"end_character":77},"in_reply_to":"df87a7cf_137c601d","updated":"2017-12-08 13:08:04.000000000","message":"Sorry, my eyes were tired (or lazy) and didn\u0027t register the outer brackets on the RHS.","commit_id":"740aa57387ea6bb0bf27bc3ef17d3e7f0e03a030"},{"author":{"_account_id":26134,"name":"Chris Yang","email":"chrisyang@qnap.com","username":"chrisyang"},"change_message_id":"0314796ef5204d1a8c43bf5c2640af6fd86fb184","unresolved":false,"context_lines":[{"line_number":178,"context_line":"            value \u003d params[key]"},{"line_number":179,"context_line":"            if value is not None:"},{"line_number":180,"context_line":"                if isinstance(value, list):"},{"line_number":181,"context_line":"                    sanitized_params[key] \u003d [six.text_type(v) for v in value]"},{"line_number":182,"context_line":"                else:"},{"line_number":183,"context_line":"                    sanitized_params[key] \u003d six.text_type(value)"},{"line_number":184,"context_line":"        return sanitized_params"}],"source_content_type":"text/x-python","patch_set":2,"id":"df87a7cf_137c601d","line":181,"range":{"start_line":181,"start_character":20,"end_line":181,"end_character":77},"in_reply_to":"df87a7cf_eeb47dd3","updated":"2017-12-08 11:32:23.000000000","message":"No this doesn\u0027t. This overwrite sanitized_params[key] with the whole list. For example: value \u003d [v1, v2]. sanitized_params[key] is overridden with [six.text_type(v1), six.text_type(v2)].","commit_id":"740aa57387ea6bb0bf27bc3ef17d3e7f0e03a030"}],"manila/share/drivers/qnap/qnap.py":[{"author":{"_account_id":15100,"name":"zhongjun","email":"jun.zhongjun2@gmail.com","username":"zhongjun2"},"change_message_id":"857e63d3f51e7bf27fec95f767f78136f3c7d4c6","unresolved":false,"context_lines":[{"line_number":526,"context_line":"            # to find the host of this manila share."},{"line_number":527,"context_line":"            LOG.debug(\u0027_get_vol_host name:%s\u0027, host.find(\u0027name\u0027).text)"},{"line_number":528,"context_line":"            if (re.match(\"^manila-{}\".format(vol_name_timestamp),"},{"line_number":529,"context_line":"               host.find(\u0027name\u0027).text) is not None):"},{"line_number":530,"context_line":"                LOG.debug(\u0027host netaddrs text: %s\u0027, host.find(\u0027netaddrs\u0027).text)"},{"line_number":531,"context_line":"                if host.find(\u0027netaddrs\u0027).text is not None:"},{"line_number":532,"context_line":"                    # Because driver supports only IPv4 now, check \"netaddrs\""}],"source_content_type":"text/x-python","patch_set":3,"id":"df87a7cf_b9c74564","line":529,"range":{"start_line":529,"start_character":12,"end_line":529,"end_character":15},"updated":"2017-12-12 09:36:22.000000000","message":"8 spaces","commit_id":"8a6650fd4821ef00af7ab40ee4f86f1751504ddb"},{"author":{"_account_id":26134,"name":"Chris Yang","email":"chrisyang@qnap.com","username":"chrisyang"},"change_message_id":"d0cd281ccded02b9eedf2afc6a23b7f79a2684a0","unresolved":false,"context_lines":[{"line_number":526,"context_line":"            # to find the host of this manila share."},{"line_number":527,"context_line":"            LOG.debug(\u0027_get_vol_host name:%s\u0027, host.find(\u0027name\u0027).text)"},{"line_number":528,"context_line":"            if (re.match(\"^manila-{}\".format(vol_name_timestamp),"},{"line_number":529,"context_line":"               host.find(\u0027name\u0027).text) is not None):"},{"line_number":530,"context_line":"                LOG.debug(\u0027host netaddrs text: %s\u0027, host.find(\u0027netaddrs\u0027).text)"},{"line_number":531,"context_line":"                if host.find(\u0027netaddrs\u0027).text is not None:"},{"line_number":532,"context_line":"                    # Because driver supports only IPv4 now, check \"netaddrs\""}],"source_content_type":"text/x-python","patch_set":3,"id":"df87a7cf_23c76948","line":529,"range":{"start_line":529,"start_character":12,"end_line":529,"end_character":15},"in_reply_to":"df87a7cf_b9c74564","updated":"2017-12-13 05:41:08.000000000","message":"Done","commit_id":"8a6650fd4821ef00af7ab40ee4f86f1751504ddb"},{"author":{"_account_id":15100,"name":"zhongjun","email":"jun.zhongjun2@gmail.com","username":"zhongjun2"},"change_message_id":"857e63d3f51e7bf27fec95f767f78136f3c7d4c6","unresolved":false,"context_lines":[{"line_number":528,"context_line":"            if (re.match(\"^manila-{}\".format(vol_name_timestamp),"},{"line_number":529,"context_line":"               host.find(\u0027name\u0027).text) is not None):"},{"line_number":530,"context_line":"                LOG.debug(\u0027host netaddrs text: %s\u0027, host.find(\u0027netaddrs\u0027).text)"},{"line_number":531,"context_line":"                if host.find(\u0027netaddrs\u0027).text is not None:"},{"line_number":532,"context_line":"                    # Because driver supports only IPv4 now, check \"netaddrs\""},{"line_number":533,"context_line":"                    # have \"ipv4\" tag to get address."},{"line_number":534,"context_line":"                    if host.find(\u0027netaddrs/ipv4\u0027).text is not None:"},{"line_number":535,"context_line":"                        host_dict \u003d {"},{"line_number":536,"context_line":"                            \u0027index\u0027: host.find(\u0027index\u0027).text,"},{"line_number":537,"context_line":"                            \u0027hostid\u0027: host.find(\u0027hostid\u0027).text,"}],"source_content_type":"text/x-python","patch_set":3,"id":"df87a7cf_f9d14d24","line":534,"range":{"start_line":531,"start_character":16,"end_line":534,"end_character":67},"updated":"2017-12-12 09:36:22.000000000","message":"if host.find(\u0027netaddrs\u0027).text and host.find(\u0027netaddrs/ipv4\u0027).text are not None?","commit_id":"8a6650fd4821ef00af7ab40ee4f86f1751504ddb"},{"author":{"_account_id":26134,"name":"Chris Yang","email":"chrisyang@qnap.com","username":"chrisyang"},"change_message_id":"d0cd281ccded02b9eedf2afc6a23b7f79a2684a0","unresolved":false,"context_lines":[{"line_number":528,"context_line":"            if (re.match(\"^manila-{}\".format(vol_name_timestamp),"},{"line_number":529,"context_line":"               host.find(\u0027name\u0027).text) is not None):"},{"line_number":530,"context_line":"                LOG.debug(\u0027host netaddrs text: %s\u0027, host.find(\u0027netaddrs\u0027).text)"},{"line_number":531,"context_line":"                if host.find(\u0027netaddrs\u0027).text is not None:"},{"line_number":532,"context_line":"                    # Because driver supports only IPv4 now, check \"netaddrs\""},{"line_number":533,"context_line":"                    # have \"ipv4\" tag to get address."},{"line_number":534,"context_line":"                    if host.find(\u0027netaddrs/ipv4\u0027).text is not None:"},{"line_number":535,"context_line":"                        host_dict \u003d {"},{"line_number":536,"context_line":"                            \u0027index\u0027: host.find(\u0027index\u0027).text,"},{"line_number":537,"context_line":"                            \u0027hostid\u0027: host.find(\u0027hostid\u0027).text,"}],"source_content_type":"text/x-python","patch_set":3,"id":"df87a7cf_43814dc3","line":534,"range":{"start_line":531,"start_character":16,"end_line":534,"end_character":67},"in_reply_to":"df87a7cf_f9d14d24","updated":"2017-12-13 05:41:08.000000000","message":"Thanks, but I remove these two if statement because they are unnecessary. host.findall(\u0027netaddrs/ipv4\u0027) returns an empty list if the tag \"ipv4\" does not exist.","commit_id":"8a6650fd4821ef00af7ab40ee4f86f1751504ddb"},{"author":{"_account_id":15100,"name":"zhongjun","email":"jun.zhongjun2@gmail.com","username":"zhongjun2"},"change_message_id":"857e63d3f51e7bf27fec95f767f78136f3c7d4c6","unresolved":false,"context_lines":[{"line_number":538,"context_line":"                            \u0027name\u0027: host.find(\u0027name\u0027).text,"},{"line_number":539,"context_line":"                            \u0027ipv4\u0027: [],"},{"line_number":540,"context_line":"                        }"},{"line_number":541,"context_line":"                        ipv4_list \u003d host.findall(\u0027netaddrs/ipv4\u0027)"},{"line_number":542,"context_line":"                        for ipv4 in ipv4_list:"},{"line_number":543,"context_line":"                            host_dict[\u0027ipv4\u0027].append(ipv4.text)"},{"line_number":544,"context_line":"                        vol_host_list.append(host_dict)"},{"line_number":545,"context_line":"        LOG.debug(\u0027_get_vol_host vol_host_list:%s\u0027, vol_host_list)"}],"source_content_type":"text/x-python","patch_set":3,"id":"df87a7cf_b9198522","line":542,"range":{"start_line":541,"start_character":23,"end_line":542,"end_character":46},"updated":"2017-12-12 09:36:22.000000000","message":"for ipv4 in host.findall(\u0027netaddrs/ipv4\u0027):","commit_id":"8a6650fd4821ef00af7ab40ee4f86f1751504ddb"},{"author":{"_account_id":26134,"name":"Chris Yang","email":"chrisyang@qnap.com","username":"chrisyang"},"change_message_id":"d0cd281ccded02b9eedf2afc6a23b7f79a2684a0","unresolved":false,"context_lines":[{"line_number":538,"context_line":"                            \u0027name\u0027: host.find(\u0027name\u0027).text,"},{"line_number":539,"context_line":"                            \u0027ipv4\u0027: [],"},{"line_number":540,"context_line":"                        }"},{"line_number":541,"context_line":"                        ipv4_list \u003d host.findall(\u0027netaddrs/ipv4\u0027)"},{"line_number":542,"context_line":"                        for ipv4 in ipv4_list:"},{"line_number":543,"context_line":"                            host_dict[\u0027ipv4\u0027].append(ipv4.text)"},{"line_number":544,"context_line":"                        vol_host_list.append(host_dict)"},{"line_number":545,"context_line":"        LOG.debug(\u0027_get_vol_host vol_host_list:%s\u0027, vol_host_list)"}],"source_content_type":"text/x-python","patch_set":3,"id":"df87a7cf_83043580","line":542,"range":{"start_line":541,"start_character":23,"end_line":542,"end_character":46},"in_reply_to":"df87a7cf_b9198522","updated":"2017-12-13 05:41:08.000000000","message":"Done","commit_id":"8a6650fd4821ef00af7ab40ee4f86f1751504ddb"},{"author":{"_account_id":15100,"name":"zhongjun","email":"jun.zhongjun2@gmail.com","username":"zhongjun2"},"change_message_id":"75a3cd74f1dfdf89b8df2d4d76f61a322693006a","unresolved":false,"context_lines":[{"line_number":620,"context_line":"        vol_host_list \u003d self._get_vol_host(host_list, vol_name_timestamp)"},{"line_number":621,"context_line":"        # if share already have host, add ip into host"},{"line_number":622,"context_line":"        if len(vol_host_list) \u003e 0:"},{"line_number":623,"context_line":"            # for now, only one host would exist"},{"line_number":624,"context_line":"            for vol_host in vol_host_list:"},{"line_number":625,"context_line":"                if vol_host[\u0027name\u0027] \u003d\u003d host_name:"},{"line_number":626,"context_line":"                    ipv4_list \u003d []"},{"line_number":627,"context_line":"                    ipv4_list.extend(vol_host[\u0027ipv4\u0027])"}],"source_content_type":"text/x-python","patch_set":4,"id":"df87a7cf_b447be77","line":624,"range":{"start_line":623,"start_character":12,"end_line":624,"end_character":42},"updated":"2017-12-18 08:00:52.000000000","message":"\"for now, only one host would exist\"\nWhy don\u0027t you just check the len(vol_host_list) \u003d\u003d 1?\nIf the len(vol_host_list) equal to 2, you already support it?  Because you only compare one of the vol_host_list with one host_name.( \"if vol_host[\u0027name\u0027] \u003d\u003d host_name\"). It means even if you have multiple values in vol_host_list, you can only support one of them. or I may well be missing something.","commit_id":"bb58fc5419f89dcc7a365432bfe5277f30483ea5"},{"author":{"_account_id":26134,"name":"Chris Yang","email":"chrisyang@qnap.com","username":"chrisyang"},"change_message_id":"eacc441e7bd76f2f96660310d248884a1b81237c","unresolved":false,"context_lines":[{"line_number":620,"context_line":"        vol_host_list \u003d self._get_vol_host(host_list, vol_name_timestamp)"},{"line_number":621,"context_line":"        # if share already have host, add ip into host"},{"line_number":622,"context_line":"        if len(vol_host_list) \u003e 0:"},{"line_number":623,"context_line":"            # for now, only one host would exist"},{"line_number":624,"context_line":"            for vol_host in vol_host_list:"},{"line_number":625,"context_line":"                if vol_host[\u0027name\u0027] \u003d\u003d host_name:"},{"line_number":626,"context_line":"                    ipv4_list \u003d []"},{"line_number":627,"context_line":"                    ipv4_list.extend(vol_host[\u0027ipv4\u0027])"}],"source_content_type":"text/x-python","patch_set":4,"id":"df87a7cf_ebf6aad7","line":624,"range":{"start_line":623,"start_character":12,"end_line":624,"end_character":42},"in_reply_to":"df87a7cf_b447be77","updated":"2017-12-19 03:16:17.000000000","message":"Thanks, there might be some issue if len(vol_host_list) equals to 2. I will consider more.","commit_id":"bb58fc5419f89dcc7a365432bfe5277f30483ea5"},{"author":{"_account_id":15100,"name":"zhongjun","email":"jun.zhongjun2@gmail.com","username":"zhongjun2"},"change_message_id":"75a3cd74f1dfdf89b8df2d4d76f61a322693006a","unresolved":false,"context_lines":[{"line_number":632,"context_line":"                    self.api_executor.edit_host(host_name, ipv4_list)"},{"line_number":633,"context_line":"                else:"},{"line_number":634,"context_line":"                    # not allow user to add acl access"},{"line_number":635,"context_line":"                    reason \u003d _(\u0027Shares only support one access level\u0027)"},{"line_number":636,"context_line":"                    LOG.error(reason)"},{"line_number":637,"context_line":"                    raise exception.InvalidShareAccess(reason\u003dreason)"},{"line_number":638,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":4,"id":"df87a7cf_348c0ed6","line":635,"range":{"start_line":635,"start_character":32,"end_line":635,"end_character":68},"updated":"2017-12-18 08:00:52.000000000","message":"How about just check the len(vol_host_list) \u003e 1 and add the access level in the log.","commit_id":"bb58fc5419f89dcc7a365432bfe5277f30483ea5"},{"author":{"_account_id":26134,"name":"Chris Yang","email":"chrisyang@qnap.com","username":"chrisyang"},"change_message_id":"eacc441e7bd76f2f96660310d248884a1b81237c","unresolved":false,"context_lines":[{"line_number":632,"context_line":"                    self.api_executor.edit_host(host_name, ipv4_list)"},{"line_number":633,"context_line":"                else:"},{"line_number":634,"context_line":"                    # not allow user to add acl access"},{"line_number":635,"context_line":"                    reason \u003d _(\u0027Shares only support one access level\u0027)"},{"line_number":636,"context_line":"                    LOG.error(reason)"},{"line_number":637,"context_line":"                    raise exception.InvalidShareAccess(reason\u003dreason)"},{"line_number":638,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":4,"id":"df87a7cf_4b7a36f1","line":635,"range":{"start_line":635,"start_character":32,"end_line":635,"end_character":68},"in_reply_to":"df87a7cf_348c0ed6","updated":"2017-12-19 03:16:17.000000000","message":"Thanks, I will check all case of len(vol_host_list), and add access level in the log.\n\nBefore apply the access rule, driver checks the number of host. If there is no host, driver will create one.\n\nNote: If user add ip for access_level \"ro\", driver creates host named \"manila-{timestamp}-ro\" for the share, otherwise, create host named \"manila-{timestamp}-rw\".\n\nIf there is one in the NAS and the host is for the same access right to use, driver will update the host.\n\nOther case, driver will not allow to add rule.","commit_id":"bb58fc5419f89dcc7a365432bfe5277f30483ea5"},{"author":{"_account_id":15100,"name":"zhongjun","email":"jun.zhongjun2@gmail.com","username":"zhongjun2"},"change_message_id":"75a3cd74f1dfdf89b8df2d4d76f61a322693006a","unresolved":false,"context_lines":[{"line_number":641,"context_line":"        if access_level \u003d\u003d constants.ACCESS_LEVEL_RO:"},{"line_number":642,"context_line":"            self.api_executor.set_nfs_access(vol_name, 1, host_name)"},{"line_number":643,"context_line":"        elif access_level \u003d\u003d constants.ACCESS_LEVEL_RW:"},{"line_number":644,"context_line":"            self.api_executor.set_nfs_access(vol_name, 0, host_name)"},{"line_number":645,"context_line":""},{"line_number":646,"context_line":"    def _deny_access(self, context, share, access, share_server\u003dNone):"},{"line_number":647,"context_line":"        \"\"\"Deny access to the share.\"\"\""}],"source_content_type":"text/x-python","patch_set":4,"id":"df87a7cf_f4c306ec","line":644,"range":{"start_line":644,"start_character":68,"end_line":644,"end_character":68},"updated":"2017-12-18 08:00:52.000000000","message":"How about else?","commit_id":"bb58fc5419f89dcc7a365432bfe5277f30483ea5"},{"author":{"_account_id":26134,"name":"Chris Yang","email":"chrisyang@qnap.com","username":"chrisyang"},"change_message_id":"eacc441e7bd76f2f96660310d248884a1b81237c","unresolved":false,"context_lines":[{"line_number":641,"context_line":"        if access_level \u003d\u003d constants.ACCESS_LEVEL_RO:"},{"line_number":642,"context_line":"            self.api_executor.set_nfs_access(vol_name, 1, host_name)"},{"line_number":643,"context_line":"        elif access_level \u003d\u003d constants.ACCESS_LEVEL_RW:"},{"line_number":644,"context_line":"            self.api_executor.set_nfs_access(vol_name, 0, host_name)"},{"line_number":645,"context_line":""},{"line_number":646,"context_line":"    def _deny_access(self, context, share, access, share_server\u003dNone):"},{"line_number":647,"context_line":"        \"\"\"Deny access to the share.\"\"\""}],"source_content_type":"text/x-python","patch_set":4,"id":"df87a7cf_f79a2812","line":644,"range":{"start_line":644,"start_character":68,"end_line":644,"end_character":68},"in_reply_to":"df87a7cf_f4c306ec","updated":"2017-12-19 03:16:17.000000000","message":"I think the access_level value would only be \u0027rw\u0027 or \u0027ro\u0027. So we don\u0027t handle the else case.","commit_id":"bb58fc5419f89dcc7a365432bfe5277f30483ea5"},{"author":{"_account_id":15100,"name":"zhongjun","email":"jun.zhongjun2@gmail.com","username":"zhongjun2"},"change_message_id":"7edcb12eedfc8f939122844c993fe77b00d3371d","unresolved":false,"context_lines":[{"line_number":549,"context_line":"                  \u0027add_rules: %(add_rules)s\u0027"},{"line_number":550,"context_line":"                  \u0027delete_rules: %(delete_rules)s\u0027"},{"line_number":551,"context_line":"                  \u0027share_server: %(share_server)s\u0027,"},{"line_number":552,"context_line":"                  {\u0027share\u0027: share,"},{"line_number":553,"context_line":"                   \u0027access_rules\u0027: access_rules,"},{"line_number":554,"context_line":"                   \u0027add_rules\u0027: add_rules,"},{"line_number":555,"context_line":"                   \u0027delete_rules\u0027: delete_rules,"},{"line_number":556,"context_line":"                   \u0027share_server\u0027: share_server})"},{"line_number":557,"context_line":"        if not (add_rules or delete_rules):"},{"line_number":558,"context_line":"            volName \u003d self.private_storage.get(share[\u0027id\u0027], \u0027volName\u0027)"},{"line_number":559,"context_line":"            LOG.debug(\u0027volName: %s\u0027, volName)"}],"source_content_type":"text/x-python","patch_set":5,"id":"bf8cb3f7_242e6143","line":556,"range":{"start_line":552,"start_character":18,"end_line":556,"end_character":46},"updated":"2017-12-23 03:43:11.000000000","message":"Those parameter are class object. You cannot get the details info of those object if you just print itself. Is this what you really need?","commit_id":"3e86870f6ef067de2cf40fc66a22a77096e8125b"},{"author":{"_account_id":26134,"name":"Chris Yang","email":"chrisyang@qnap.com","username":"chrisyang"},"change_message_id":"b4ef53a98357b22058792878e6a49659c74bac6d","unresolved":false,"context_lines":[{"line_number":549,"context_line":"                  \u0027add_rules: %(add_rules)s\u0027"},{"line_number":550,"context_line":"                  \u0027delete_rules: %(delete_rules)s\u0027"},{"line_number":551,"context_line":"                  \u0027share_server: %(share_server)s\u0027,"},{"line_number":552,"context_line":"                  {\u0027share\u0027: share,"},{"line_number":553,"context_line":"                   \u0027access_rules\u0027: access_rules,"},{"line_number":554,"context_line":"                   \u0027add_rules\u0027: add_rules,"},{"line_number":555,"context_line":"                   \u0027delete_rules\u0027: delete_rules,"},{"line_number":556,"context_line":"                   \u0027share_server\u0027: share_server})"},{"line_number":557,"context_line":"        if not (add_rules or delete_rules):"},{"line_number":558,"context_line":"            volName \u003d self.private_storage.get(share[\u0027id\u0027], \u0027volName\u0027)"},{"line_number":559,"context_line":"            LOG.debug(\u0027volName: %s\u0027, volName)"}],"source_content_type":"text/x-python","patch_set":5,"id":"bf8cb3f7_ed54d5cc","line":556,"range":{"start_line":552,"start_character":18,"end_line":556,"end_character":46},"in_reply_to":"bf8cb3f7_242e6143","updated":"2017-12-25 01:37:09.000000000","message":"Done","commit_id":"3e86870f6ef067de2cf40fc66a22a77096e8125b"}],"releasenotes/notes/bug-1736370-qnap-fix-access-rule-override-1b79b70ae48ad9e6.yaml":[{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"4f683778d5967a6c9dce0bd7428602f25efd20e7","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Fixed the QNAP driver that the access rule setting is override by the later"},{"line_number":5,"context_line":"    access rule setting."}],"source_content_type":"text/x-yaml","patch_set":2,"id":"df87a7cf_6e686d86","line":4,"range":{"start_line":4,"start_character":58,"end_line":4,"end_character":66},"updated":"2017-12-07 17:04:00.000000000","message":"nit: overridden\n\n English is a very irregular language.","commit_id":"740aa57387ea6bb0bf27bc3ef17d3e7f0e03a030"},{"author":{"_account_id":26134,"name":"Chris Yang","email":"chrisyang@qnap.com","username":"chrisyang"},"change_message_id":"0314796ef5204d1a8c43bf5c2640af6fd86fb184","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Fixed the QNAP driver that the access rule setting is override by the later"},{"line_number":5,"context_line":"    access rule setting."}],"source_content_type":"text/x-yaml","patch_set":2,"id":"df87a7cf_33964440","line":4,"range":{"start_line":4,"start_character":58,"end_line":4,"end_character":66},"in_reply_to":"df87a7cf_6e686d86","updated":"2017-12-08 11:32:23.000000000","message":"Thanks, I will correct it.","commit_id":"740aa57387ea6bb0bf27bc3ef17d3e7f0e03a030"}]}
