)]}'
{"nova/network/manager.py":[{"author":{"_account_id":23630,"name":"Tovin Seven","email":"tovin07@gmail.com","username":"tovin07"},"change_message_id":"33da6c9df69264abd7c44e6c0015465e2193e7ae","unresolved":false,"context_lines":[{"line_number":861,"context_line":"                    except exception.OverQuota as exc:"},{"line_number":862,"context_line":"                        count \u003d exc.kwargs[\u0027usages\u0027]"},{"line_number":863,"context_line":"                        allowed \u003d exc.kwargs[\u0027quotas\u0027][\u0027fixed_ips\u0027]"},{"line_number":864,"context_line":"                        LOG.warning(_LW(\"Quota exceeded for project %(pid)s, \""},{"line_number":865,"context_line":"                                        \"tried to allocate fixed IP. %(used)s \""},{"line_number":866,"context_line":"                                        \"of %(allowed)s are in use or are \""},{"line_number":867,"context_line":"                                        \"already reserved.\"),"}],"source_content_type":"text/x-python","patch_set":15,"id":"df140735_e7740101","line":864,"range":{"start_line":864,"start_character":36,"end_line":864,"end_character":40},"updated":"2017-06-07 02:33:19.000000000","message":"I think that we removed this for now.\nNo more i18n!","commit_id":"ad7a84d34a92b63a2a9d1b6cce3bc6c3ba210ab3"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"ba2927c4580fd15b25aa57ca8f15b68abaf980ca","unresolved":false,"context_lines":[{"line_number":797,"context_line":"        quota_project, quota_user \u003d quotas_obj.ids_from_instance(context,"},{"line_number":798,"context_line":"                                                                 instance)"},{"line_number":799,"context_line":"        try:"},{"line_number":800,"context_line":"            objects.Quotas.check_deltas(context, {\u0027fixed_ips\u0027: 1},"},{"line_number":801,"context_line":"                                        quota_project)"},{"line_number":802,"context_line":"        except exception.OverQuota as exc:"},{"line_number":803,"context_line":"            count \u003d exc.kwargs[\u0027usages\u0027][\u0027fixed_ips\u0027]"}],"source_content_type":"text/x-python","patch_set":21,"id":"7f231b9d_290d6e8f","line":800,"range":{"start_line":800,"start_character":27,"end_line":800,"end_character":39},"updated":"2017-06-16 15:25:59.000000000","message":"See below - it looks like depending on the network manager, quota checks may be noops - vlan manager in this case. Maybe we need to change the quota_cls attribute to a boolean to tell us if we should check quota at all?","commit_id":"75029bef5f26c24b07c89a1d9f0bc363916f86b1"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"2c37e8c81aeeb144d64b3ce82488f532a3fd5798","unresolved":false,"context_lines":[{"line_number":797,"context_line":"        quota_project, quota_user \u003d quotas_obj.ids_from_instance(context,"},{"line_number":798,"context_line":"                                                                 instance)"},{"line_number":799,"context_line":"        try:"},{"line_number":800,"context_line":"            objects.Quotas.check_deltas(context, {\u0027fixed_ips\u0027: 1},"},{"line_number":801,"context_line":"                                        quota_project)"},{"line_number":802,"context_line":"        except exception.OverQuota as exc:"},{"line_number":803,"context_line":"            count \u003d exc.kwargs[\u0027usages\u0027][\u0027fixed_ips\u0027]"}],"source_content_type":"text/x-python","patch_set":21,"id":"7f231b9d_ffe49310","line":800,"range":{"start_line":800,"start_character":27,"end_line":800,"end_character":39},"in_reply_to":"7f231b9d_290d6e8f","updated":"2017-06-19 19:41:26.000000000","message":"I see what you mean now. Guh, I totally glossed over that and bulldozed the \"quotas \u003d self.quota_cls(context\u003dcontext)\" line. Thanks for catching it.\n\nI think calling through quotas_cls is the right thing to do rather than changing it to a boolean right now. It would save the wasteful counting in this case, but every other case will still inconsistently wastefully count if the user has configured the NoopQuotaDriver for [quota]/driver. I think it would be good to do something about it but I feel like it\u0027s going to be a change in nova/quota.py to make any use of NoopQuotaDriver skip counting.\n\nEdit: The QuotaEngine object keeps the driver as member data (self._driver_cls) so I think all we need to do is do \"if self._driver_cls !\u003d NoopQuotaDriver\" in the count() and count_as_dict() methods to skip counting. It\u0027s not super clean because that sort of override is supposed to be controlled by the driver classes but the count methods aren\u0027t on the driver, they\u0027re on the QuotaEngine. I suppose another option is moving the count methods to the *Driver classes and letting QuotaEngine defer to them. Maybe that would be nicer.","commit_id":"75029bef5f26c24b07c89a1d9f0bc363916f86b1"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"ba2927c4580fd15b25aa57ca8f15b68abaf980ca","unresolved":false,"context_lines":[{"line_number":800,"context_line":"            objects.Quotas.check_deltas(context, {\u0027fixed_ips\u0027: 1},"},{"line_number":801,"context_line":"                                        quota_project)"},{"line_number":802,"context_line":"        except exception.OverQuota as exc:"},{"line_number":803,"context_line":"            count \u003d exc.kwargs[\u0027usages\u0027][\u0027fixed_ips\u0027]"},{"line_number":804,"context_line":"            LOG.warning(_LW(\"Quota exceeded for project %(pid)s, tried to \""},{"line_number":805,"context_line":"                            \"allocate fixed IP. %(used)s of %(allowed)s are \""},{"line_number":806,"context_line":"                            \"in use or are already reserved.\"),"}],"source_content_type":"text/x-python","patch_set":21,"id":"7f231b9d_89a5a249","line":803,"range":{"start_line":803,"start_character":20,"end_line":803,"end_character":53},"updated":"2017-06-16 15:25:59.000000000","message":"Won\u0027t you get a KeyError here?\n\nhttps://github.com/openstack/nova/blob/8238e8aaa0103e96ddb67ad178ed9848e9071ea6/nova/objects/quotas.py#L205","commit_id":"75029bef5f26c24b07c89a1d9f0bc363916f86b1"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"937bccd008ad366d0ca883c9fcf11419680b5a8b","unresolved":false,"context_lines":[{"line_number":800,"context_line":"            objects.Quotas.check_deltas(context, {\u0027fixed_ips\u0027: 1},"},{"line_number":801,"context_line":"                                        quota_project)"},{"line_number":802,"context_line":"        except exception.OverQuota as exc:"},{"line_number":803,"context_line":"            count \u003d exc.kwargs[\u0027usages\u0027][\u0027fixed_ips\u0027]"},{"line_number":804,"context_line":"            LOG.warning(_LW(\"Quota exceeded for project %(pid)s, tried to \""},{"line_number":805,"context_line":"                            \"allocate fixed IP. %(used)s of %(allowed)s are \""},{"line_number":806,"context_line":"                            \"in use or are already reserved.\"),"}],"source_content_type":"text/x-python","patch_set":21,"id":"7f231b9d_ebdf630a","line":803,"range":{"start_line":803,"start_character":20,"end_line":803,"end_character":53},"in_reply_to":"7f231b9d_89a5a249","updated":"2017-06-16 20:46:32.000000000","message":"No because the format for all counts is:\n\n {resource: integer, resource: integer, ...}\n\nIn the code you linked, it looks like:\n\n {\u0027project\u0027: {\u0027fixed_ips\u0027: N}}\n\nand we extract \u0027project\u0027 and pass along:\n\n {\u0027fixed_ips\u0027: N}","commit_id":"75029bef5f26c24b07c89a1d9f0bc363916f86b1"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"015eaa181a6563e6e3320e73e98246e879f21000","unresolved":false,"context_lines":[{"line_number":800,"context_line":"            objects.Quotas.check_deltas(context, {\u0027fixed_ips\u0027: 1},"},{"line_number":801,"context_line":"                                        quota_project)"},{"line_number":802,"context_line":"        except exception.OverQuota as exc:"},{"line_number":803,"context_line":"            count \u003d exc.kwargs[\u0027usages\u0027][\u0027fixed_ips\u0027]"},{"line_number":804,"context_line":"            LOG.warning(_LW(\"Quota exceeded for project %(pid)s, tried to \""},{"line_number":805,"context_line":"                            \"allocate fixed IP. %(used)s of %(allowed)s are \""},{"line_number":806,"context_line":"                            \"in use or are already reserved.\"),"}],"source_content_type":"text/x-python","patch_set":21,"id":"7f231b9d_6dac80ec","line":803,"range":{"start_line":803,"start_character":20,"end_line":803,"end_character":53},"in_reply_to":"7f231b9d_ebdf630a","updated":"2017-06-17 14:38:42.000000000","message":"Ah OK yeah I see now.","commit_id":"75029bef5f26c24b07c89a1d9f0bc363916f86b1"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"ba2927c4580fd15b25aa57ca8f15b68abaf980ca","unresolved":false,"context_lines":[{"line_number":863,"context_line":"                    except exception.OverQuota as exc:"},{"line_number":864,"context_line":"                        # Cleanup of the fixed IP allocation occurs in the"},{"line_number":865,"context_line":"                        # outermost catch-all except block."},{"line_number":866,"context_line":"                        count \u003d exc.kwargs[\u0027usages\u0027][\u0027fixed_ips\u0027]"},{"line_number":867,"context_line":"                        allowed \u003d exc.kwargs[\u0027quotas\u0027][\u0027fixed_ips\u0027]"},{"line_number":868,"context_line":"                        LOG.warning(_LW(\"Quota exceeded for project %(pid)s, \""},{"line_number":869,"context_line":"                                        \"tried to allocate fixed IP. %(used)s \""}],"source_content_type":"text/x-python","patch_set":21,"id":"7f231b9d_a97f3ea9","line":866,"range":{"start_line":866,"start_character":32,"end_line":866,"end_character":65},"updated":"2017-06-16 15:25:59.000000000","message":"same, KeyError?","commit_id":"75029bef5f26c24b07c89a1d9f0bc363916f86b1"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"ba2927c4580fd15b25aa57ca8f15b68abaf980ca","unresolved":false,"context_lines":[{"line_number":865,"context_line":"                        # outermost catch-all except block."},{"line_number":866,"context_line":"                        count \u003d exc.kwargs[\u0027usages\u0027][\u0027fixed_ips\u0027]"},{"line_number":867,"context_line":"                        allowed \u003d exc.kwargs[\u0027quotas\u0027][\u0027fixed_ips\u0027]"},{"line_number":868,"context_line":"                        LOG.warning(_LW(\"Quota exceeded for project %(pid)s, \""},{"line_number":869,"context_line":"                                        \"tried to allocate fixed IP. %(used)s \""},{"line_number":870,"context_line":"                                        \"of %(allowed)s are in use or are \""},{"line_number":871,"context_line":"                                        \"already reserved.\"),"}],"source_content_type":"text/x-python","patch_set":21,"id":"7f231b9d_c95dda47","line":868,"range":{"start_line":868,"start_character":36,"end_line":868,"end_character":39},"updated":"2017-06-16 15:25:59.000000000","message":"We don\u0027t need these translation markers anymore.","commit_id":"75029bef5f26c24b07c89a1d9f0bc363916f86b1"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"937bccd008ad366d0ca883c9fcf11419680b5a8b","unresolved":false,"context_lines":[{"line_number":865,"context_line":"                        # outermost catch-all except block."},{"line_number":866,"context_line":"                        count \u003d exc.kwargs[\u0027usages\u0027][\u0027fixed_ips\u0027]"},{"line_number":867,"context_line":"                        allowed \u003d exc.kwargs[\u0027quotas\u0027][\u0027fixed_ips\u0027]"},{"line_number":868,"context_line":"                        LOG.warning(_LW(\"Quota exceeded for project %(pid)s, \""},{"line_number":869,"context_line":"                                        \"tried to allocate fixed IP. %(used)s \""},{"line_number":870,"context_line":"                                        \"of %(allowed)s are in use or are \""},{"line_number":871,"context_line":"                                        \"already reserved.\"),"}],"source_content_type":"text/x-python","patch_set":21,"id":"7f231b9d_6bd35305","line":868,"range":{"start_line":868,"start_character":36,"end_line":868,"end_character":39},"in_reply_to":"7f231b9d_c95dda47","updated":"2017-06-16 20:46:32.000000000","message":"Right, this is old and I didn\u0027t update that part yet.","commit_id":"75029bef5f26c24b07c89a1d9f0bc363916f86b1"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"ba2927c4580fd15b25aa57ca8f15b68abaf980ca","unresolved":false,"context_lines":[{"line_number":1870,"context_line":"    def __init__(self, network_driver\u003dNone, *args, **kwargs):"},{"line_number":1871,"context_line":"        super(VlanManager, self).__init__(network_driver\u003dnetwork_driver,"},{"line_number":1872,"context_line":"                                          *args, **kwargs)"},{"line_number":1873,"context_line":"        # NOTE(cfb) VlanManager doesn\u0027t enforce quotas on fixed IP addresses"},{"line_number":1874,"context_line":"        #           because a project is assigned an entire network."},{"line_number":1875,"context_line":"        self.quotas_cls \u003d objects.QuotasNoOp"},{"line_number":1876,"context_line":""},{"line_number":1877,"context_line":"    def init_host(self):"},{"line_number":1878,"context_line":"        \"\"\"Do any initialization that needs to be run if this is a"}],"source_content_type":"text/x-python","patch_set":21,"id":"7f231b9d_e941b6aa","line":1875,"range":{"start_line":1873,"start_character":8,"end_line":1875,"end_character":44},"updated":"2017-06-16 15:25:59.000000000","message":"Hmm, do we need to care about this when checking quota now? Probably?","commit_id":"75029bef5f26c24b07c89a1d9f0bc363916f86b1"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"015eaa181a6563e6e3320e73e98246e879f21000","unresolved":false,"context_lines":[{"line_number":1870,"context_line":"    def __init__(self, network_driver\u003dNone, *args, **kwargs):"},{"line_number":1871,"context_line":"        super(VlanManager, self).__init__(network_driver\u003dnetwork_driver,"},{"line_number":1872,"context_line":"                                          *args, **kwargs)"},{"line_number":1873,"context_line":"        # NOTE(cfb) VlanManager doesn\u0027t enforce quotas on fixed IP addresses"},{"line_number":1874,"context_line":"        #           because a project is assigned an entire network."},{"line_number":1875,"context_line":"        self.quotas_cls \u003d objects.QuotasNoOp"},{"line_number":1876,"context_line":""},{"line_number":1877,"context_line":"    def init_host(self):"},{"line_number":1878,"context_line":"        \"\"\"Do any initialization that needs to be run if this is a"}],"source_content_type":"text/x-python","patch_set":21,"id":"7f231b9d_cd6ef4c7","line":1875,"range":{"start_line":1873,"start_character":8,"end_line":1875,"end_character":44},"in_reply_to":"7f231b9d_6b4113a9","updated":"2017-06-17 14:38:42.000000000","message":"But this is/was hard-coding to use QuotasNoOp, not relying on the noop quota driver via config. You\u0027re not using the self.quotas_cls anymore, you\u0027re going straight to objects.Quotas.check_deltas which is going to attempt a check, right? So I\u0027d think we either need to continue using the quotas_cls defined, which would be noop for vlan manager, or change self.quotas_cls to a boolean to indicate if quotas need to be checked at all.","commit_id":"75029bef5f26c24b07c89a1d9f0bc363916f86b1"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"937bccd008ad366d0ca883c9fcf11419680b5a8b","unresolved":false,"context_lines":[{"line_number":1870,"context_line":"    def __init__(self, network_driver\u003dNone, *args, **kwargs):"},{"line_number":1871,"context_line":"        super(VlanManager, self).__init__(network_driver\u003dnetwork_driver,"},{"line_number":1872,"context_line":"                                          *args, **kwargs)"},{"line_number":1873,"context_line":"        # NOTE(cfb) VlanManager doesn\u0027t enforce quotas on fixed IP addresses"},{"line_number":1874,"context_line":"        #           because a project is assigned an entire network."},{"line_number":1875,"context_line":"        self.quotas_cls \u003d objects.QuotasNoOp"},{"line_number":1876,"context_line":""},{"line_number":1877,"context_line":"    def init_host(self):"},{"line_number":1878,"context_line":"        \"\"\"Do any initialization that needs to be run if this is a"}],"source_content_type":"text/x-python","patch_set":21,"id":"7f231b9d_6b4113a9","line":1875,"range":{"start_line":1873,"start_character":8,"end_line":1875,"end_character":44},"in_reply_to":"7f231b9d_e941b6aa","updated":"2017-06-16 20:46:32.000000000","message":"So I think the way this works is, check_deltas() will do the count and then limit_check_project_and_user() will pass in the NoopQuotaDriver in nova/quota.py.\n\nThis is related to the thing from the bottom patch where there\u0027s not a good way we can bypass counting in the case of a NoopQuotaDriver. The count() function is at the QuotaEngine level, not at the driver level. So we wastefully count and always pass the limit check. That\u0027s latent but it gets worse in that we\u0027re counting everything now rather than only key_pairs and a few others.","commit_id":"75029bef5f26c24b07c89a1d9f0bc363916f86b1"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"c3ccd56e71a429e476e7da19056dfe386035b597","unresolved":false,"context_lines":[{"line_number":859,"context_line":"                if CONF.quota.recheck_quota:"},{"line_number":860,"context_line":"                    try:"},{"line_number":861,"context_line":"                        quotas.check_deltas(context, {\u0027fixed_ips\u0027: 0},"},{"line_number":862,"context_line":"                                            quota_project)"},{"line_number":863,"context_line":"                    except exception.OverQuota as exc:"},{"line_number":864,"context_line":"                        # Cleanup of the fixed IP allocation occurs in the"},{"line_number":865,"context_line":"                        # outermost catch-all except block."}],"source_content_type":"text/x-python","patch_set":22,"id":"7f231b9d_4b0d05e7","line":862,"updated":"2017-06-19 22:01:26.000000000","message":"Upon actually going to change this, I realized what I had forgotten to do is add the check_deltas() method to the QuotasNoOp class and pass. The weird thing I found is that VlanManager overrides allocate_fixed_ip() and never calls the super class, so it will never run this with self.quota_cls \u003d QuotasNoOp.\n\nI initially tried adding verification QuotasNoOp.check_deltas() was called for a VlanManager.allocate_fixed_ip() and found check_deltas() isn\u0027t called at all. So instead I added a unit test that checks it even if no one\u0027s calling it that way yet in the implementation.","commit_id":"629f0df5284902ded2d2864ac948eee119558547"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"a53f60526e95f4f3a755a6468cf56c8501359784","unresolved":false,"context_lines":[{"line_number":859,"context_line":"                if CONF.quota.recheck_quota:"},{"line_number":860,"context_line":"                    try:"},{"line_number":861,"context_line":"                        quotas.check_deltas(context, {\u0027fixed_ips\u0027: 0},"},{"line_number":862,"context_line":"                                            quota_project)"},{"line_number":863,"context_line":"                    except exception.OverQuota as exc:"},{"line_number":864,"context_line":"                        # Cleanup of the fixed IP allocation occurs in the"},{"line_number":865,"context_line":"                        # outermost catch-all except block."}],"source_content_type":"text/x-python","patch_set":22,"id":"7f231b9d_9688e122","line":862,"in_reply_to":"7f231b9d_4b0d05e7","updated":"2017-06-20 01:21:21.000000000","message":"Good point. Rather than testing the super behavior, I would probably just test that check_deltas is not called in the case of the vlan manager.","commit_id":"629f0df5284902ded2d2864ac948eee119558547"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"c529414a597ced51746bd8c61a43accc98372969","unresolved":false,"context_lines":[{"line_number":865,"context_line":"                        # outermost catch-all except block."},{"line_number":866,"context_line":"                        count \u003d exc.kwargs[\u0027usages\u0027][\u0027fixed_ips\u0027]"},{"line_number":867,"context_line":"                        allowed \u003d exc.kwargs[\u0027quotas\u0027][\u0027fixed_ips\u0027]"},{"line_number":868,"context_line":"                        LOG.warning(_LW(\"Quota exceeded for project %(pid)s, \""},{"line_number":869,"context_line":"                                        \"tried to allocate fixed IP. %(used)s \""},{"line_number":870,"context_line":"                                        \"of %(allowed)s are in use or are \""},{"line_number":871,"context_line":"                                        \"already reserved.\"),"}],"source_content_type":"text/x-python","patch_set":22,"id":"7f231b9d_eb92919f","line":868,"range":{"start_line":868,"start_character":36,"end_line":868,"end_character":39},"updated":"2017-06-19 21:56:56.000000000","message":"Sigh, forgot to remove this.","commit_id":"629f0df5284902ded2d2864ac948eee119558547"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"a53f60526e95f4f3a755a6468cf56c8501359784","unresolved":false,"context_lines":[{"line_number":865,"context_line":"                        # outermost catch-all except block."},{"line_number":866,"context_line":"                        count \u003d exc.kwargs[\u0027usages\u0027][\u0027fixed_ips\u0027]"},{"line_number":867,"context_line":"                        allowed \u003d exc.kwargs[\u0027quotas\u0027][\u0027fixed_ips\u0027]"},{"line_number":868,"context_line":"                        LOG.warning(_LW(\"Quota exceeded for project %(pid)s, \""},{"line_number":869,"context_line":"                                        \"tried to allocate fixed IP. %(used)s \""},{"line_number":870,"context_line":"                                        \"of %(allowed)s are in use or are \""},{"line_number":871,"context_line":"                                        \"already reserved.\"),"}],"source_content_type":"text/x-python","patch_set":22,"id":"7f231b9d_5626c96a","line":868,"range":{"start_line":868,"start_character":36,"end_line":868,"end_character":39},"in_reply_to":"7f231b9d_eb92919f","updated":"2017-06-20 01:21:21.000000000","message":"There are other uses of it in here that need to be cleaned up so I wouldn\u0027t respin just for this, but remove if you end up respinning.","commit_id":"629f0df5284902ded2d2864ac948eee119558547"}],"nova/objects/quotas.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"a53f60526e95f4f3a755a6468cf56c8501359784","unresolved":false,"context_lines":[{"line_number":232,"context_line":"    def rollback(self, context\u003dNone):"},{"line_number":233,"context_line":"        pass"},{"line_number":234,"context_line":""},{"line_number":235,"context_line":"    def check_deltas(cls, context, deltas, *count_args, **count_kwargs):"},{"line_number":236,"context_line":"        pass"}],"source_content_type":"text/x-python","patch_set":22,"id":"7f231b9d_b6163df1","line":235,"updated":"2017-06-20 01:21:21.000000000","message":"nit: if you respin, mention in the commit message why you need to add this in this change.","commit_id":"629f0df5284902ded2d2864ac948eee119558547"}],"nova/tests/unit/network/test_manager.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"a53f60526e95f4f3a755a6468cf56c8501359784","unresolved":false,"context_lines":[{"line_number":1026,"context_line":"        @mock.patch.object(self.network,"},{"line_number":1027,"context_line":"            \u0027_do_trigger_security_group_members_refresh_for_instance\u0027)"},{"line_number":1028,"context_line":"        def _test(trigger, dns, setup):"},{"line_number":1029,"context_line":"            super(network_manager.VlanManager, self.network).allocate_fixed_ip("},{"line_number":1030,"context_line":"                self.context, FAKEUUID, network)"},{"line_number":1031,"context_line":""},{"line_number":1032,"context_line":"        _test()"},{"line_number":1033,"context_line":""}],"source_content_type":"text/x-python","patch_set":22,"id":"7f231b9d_f68f152c","line":1030,"range":{"start_line":1029,"start_character":12,"end_line":1030,"end_character":48},"updated":"2017-06-20 01:21:21.000000000","message":"This is a bit weird. You could have also just added an assertion to something testing VlanManager.allocate_fixed_ip that check_deltas was *not* called.","commit_id":"629f0df5284902ded2d2864ac948eee119558547"}],"nova/tests/unit/test_quota.py":[{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"fa8a949f3e5e2c93769a85dc99c21af0dfc15362","unresolved":false,"context_lines":[{"line_number":3240,"context_line":""},{"line_number":3241,"context_line":"    def test_usage_refresh_invalid_user_key(self):"},{"line_number":3242,"context_line":"        context \u003d FakeContext(\u0027test_project\u0027, \u0027test_class\u0027)"},{"line_number":3243,"context_line":"        # fixed_ips is a valid syncable project key,"},{"line_number":3244,"context_line":"        # but not a valid user key"},{"line_number":3245,"context_line":"        self._test_exception(context, \u0027test_project\u0027, \u0027fake_user\u0027,"},{"line_number":3246,"context_line":"                             [\u0027fixed_ips\u0027])"},{"line_number":3247,"context_line":""},{"line_number":3248,"context_line":"    def test_usage_refresh_non_syncable_user_key(self):"},{"line_number":3249,"context_line":"        # security_group_rules is a valid user key, but not syncable"}],"source_content_type":"text/x-python","patch_set":16,"id":"bf091321_8d9a11c3","line":3246,"range":{"start_line":3243,"start_character":9,"end_line":3246,"end_character":43},"updated":"2017-06-07 22:47:49.000000000","message":"This should be changed to \u0027floating_ips\u0027","commit_id":"2c6d3351073df82fd1999f047c36bfd8113ce331"}]}
