)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"176895e971a9ccbd61d74ac0880b8e7332c33b6e","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Carl Baldwin \u003ccarl.baldwin@hpe.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2016-07-14 15:12:30 -0600"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Ensure deferred IP fails when host is provided no IP allocated"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This formalizes that an IP will be allocated when host binding is"},{"line_number":10,"context_line":"provided on port update or IpAddressGenerationFailure is generated and"},{"line_number":11,"context_line":"the port update fails.  This was always the intent but no test was"},{"line_number":12,"context_line":"added to cover the failure case."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Some of the unit tests that checked deferred ip ports were not"},{"line_number":15,"context_line":"checking for it in the right context.  So, this patch also adjusts"},{"line_number":16,"context_line":"where the unit tests assert that a port is a deferred ip allocation"},{"line_number":17,"context_line":"port."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"Change-Id: Ieeab03c31b8f45d63b5044d85ded704d2fe027a9"},{"line_number":20,"context_line":"Partially-Implements: blueprint routed-networks"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"1aa78d24_fd2a4f2e","line":17,"range":{"start_line":7,"start_character":0,"end_line":17,"end_character":5},"updated":"2016-07-14 21:17:56.000000000","message":"Somehow I got the wrong commit message.  New patch coming quickly.","commit_id":"934dc6b662848c701f4b3d5c9dab772fa6208754"}],"neutron/services/segments/plugin.py":[{"author":{"_account_id":6635,"name":"John Davidge","email":"john.davidge@rackspace.com","username":"john-davidge"},"change_message_id":"d788f9c8c15769f6cfc7235e4a849a042e7fca70","unresolved":false,"context_lines":[{"line_number":35,"context_line":""},{"line_number":36,"context_line":"    value \u003d ip_allocation.IP_ALLOCATION_IMMEDIATE"},{"line_number":37,"context_line":"    if not port_res.get(\u0027fixed_ips\u0027):"},{"line_number":38,"context_line":"        # NOTE Only routed network ports have deferred allocation. Check if it"},{"line_number":39,"context_line":"        # is routed by looking for subnets associated with segments."},{"line_number":40,"context_line":"        object_session \u003d session.Session.object_session(port_db)"},{"line_number":41,"context_line":"        query \u003d object_session.query(models_v2.Subnet)"},{"line_number":42,"context_line":"        query \u003d query.filter_by(network_id\u003dport_db.network_id)"},{"line_number":43,"context_line":"        query \u003d query.filter(models_v2.Subnet.segment_id.isnot(None))"},{"line_number":44,"context_line":"        if query.count():"},{"line_number":45,"context_line":"            value \u003d ip_allocation.IP_ALLOCATION_DEFERRED"},{"line_number":46,"context_line":"    port_res[ip_allocation.IP_ALLOCATION] \u003d value"},{"line_number":47,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"dada55a8_dac8d6aa","line":44,"range":{"start_line":38,"start_character":0,"end_line":44,"end_character":25},"updated":"2016-07-20 14:51:20.000000000","message":"Not a sticking point for this patch, but a utility function for checking if a given network is routed might be useful in the future.","commit_id":"7a6af241286ed0e2e27611ff3d30cc68f095f003"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"5d64c09711615ab17df55df4c7171285d9d28dd6","unresolved":false,"context_lines":[{"line_number":35,"context_line":""},{"line_number":36,"context_line":"    value \u003d ip_allocation.IP_ALLOCATION_IMMEDIATE"},{"line_number":37,"context_line":"    if not port_res.get(\u0027fixed_ips\u0027):"},{"line_number":38,"context_line":"        # NOTE Only routed network ports have deferred allocation. Check if it"},{"line_number":39,"context_line":"        # is routed by looking for subnets associated with segments."},{"line_number":40,"context_line":"        object_session \u003d session.Session.object_session(port_db)"},{"line_number":41,"context_line":"        query \u003d object_session.query(models_v2.Subnet)"},{"line_number":42,"context_line":"        query \u003d query.filter_by(network_id\u003dport_db.network_id)"},{"line_number":43,"context_line":"        query \u003d query.filter(models_v2.Subnet.segment_id.isnot(None))"},{"line_number":44,"context_line":"        if query.count():"},{"line_number":45,"context_line":"            value \u003d ip_allocation.IP_ALLOCATION_DEFERRED"},{"line_number":46,"context_line":"    port_res[ip_allocation.IP_ALLOCATION] \u003d value"},{"line_number":47,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"dada55a8_6a42af3f","line":44,"range":{"start_line":38,"start_character":0,"end_line":44,"end_character":25},"in_reply_to":"dada55a8_d9a4834c","updated":"2016-07-26 15:49:22.000000000","message":"Sounds like we\u0027ve got some potential follow-up that could be done.","commit_id":"7a6af241286ed0e2e27611ff3d30cc68f095f003"},{"author":{"_account_id":6951,"name":"Brandon Logan","email":"brandon.logan@rackspace.com","username":"brandon-logan"},"change_message_id":"e895a621d455ccffc269b783f4a536706fe8aeeb","unresolved":false,"context_lines":[{"line_number":35,"context_line":""},{"line_number":36,"context_line":"    value \u003d ip_allocation.IP_ALLOCATION_IMMEDIATE"},{"line_number":37,"context_line":"    if not port_res.get(\u0027fixed_ips\u0027):"},{"line_number":38,"context_line":"        # NOTE Only routed network ports have deferred allocation. Check if it"},{"line_number":39,"context_line":"        # is routed by looking for subnets associated with segments."},{"line_number":40,"context_line":"        object_session \u003d session.Session.object_session(port_db)"},{"line_number":41,"context_line":"        query \u003d object_session.query(models_v2.Subnet)"},{"line_number":42,"context_line":"        query \u003d query.filter_by(network_id\u003dport_db.network_id)"},{"line_number":43,"context_line":"        query \u003d query.filter(models_v2.Subnet.segment_id.isnot(None))"},{"line_number":44,"context_line":"        if query.count():"},{"line_number":45,"context_line":"            value \u003d ip_allocation.IP_ALLOCATION_DEFERRED"},{"line_number":46,"context_line":"    port_res[ip_allocation.IP_ALLOCATION] \u003d value"},{"line_number":47,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"dada55a8_d9a4834c","line":44,"range":{"start_line":38,"start_character":0,"end_line":44,"end_character":25},"in_reply_to":"dada55a8_dac8d6aa","updated":"2016-07-26 02:19:11.000000000","message":"yeah i\u0027d have to agree.  seems like the best place for this would be in the segments_db, but then it just seems overkill to put it there because then it\u0027d have to be part of the segments service plugin interface, which isn\u0027t a big deal but starts to become polluted in a way.  wish we had the db decomposed in plugins/service plugins.","commit_id":"7a6af241286ed0e2e27611ff3d30cc68f095f003"}],"neutron/tests/unit/extensions/test_segment.py":[{"author":{"_account_id":6635,"name":"John Davidge","email":"john.davidge@rackspace.com","username":"john-davidge"},"change_message_id":"d788f9c8c15769f6cfc7235e4a849a042e7fca70","unresolved":false,"context_lines":[{"line_number":783,"context_line":"        self.assertEqual(webob.exc.HTTPBadRequest.code, response.status_int)"},{"line_number":784,"context_line":""},{"line_number":785,"context_line":"    def test_port_without_ip_not_deferred(self):"},{"line_number":786,"context_line":"        \"\"\"Ports without addresses on non-routed networks are not deferred\"\"\""},{"line_number":787,"context_line":"        with self.network() as network:"},{"line_number":788,"context_line":"            pass"},{"line_number":789,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"dada55a8_dadbb64d","line":786,"updated":"2016-07-20 14:51:20.000000000","message":"nit: I initially read this as \"Ports that have an address, but that address is on a routed network...\"","commit_id":"7a6af241286ed0e2e27611ff3d30cc68f095f003"}]}
