)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"d9bfb284c75f8cf6e008d8b9f7cac5868e3c0568","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Stephen Pierce \u003cpierce_stephen@hotmail.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-05-23 01:43:26 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"add per-aggregate filter to select hypervisors based on requested networks and aggregate metadata"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Adds a filter AggregateNetworkFilter which provides the ability"},{"line_number":10,"context_line":"to select hypervisors based on requested networks and aggregates"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"7a016987_ac6b201d","line":7,"updated":"2015-05-23 02:22:30.000000000","message":"please see https://wiki.openstack.org/wiki/GitCommitMessages","commit_id":"680d4c34500a59b362f3019655420b80e58abb23"},{"author":{"_account_id":16391,"name":"Stephen Pierce","email":"pierce_stephen@hotmail.com","username":"spierce"},"change_message_id":"38f5e5ebc44dd88383b78b49268aa55dd28f1001","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Stephen Pierce \u003cpierce_stephen@hotmail.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-05-23 01:43:26 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"add per-aggregate filter to select hypervisors based on requested networks and aggregate metadata"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Adds a filter AggregateNetworkFilter which provides the ability"},{"line_number":10,"context_line":"to select hypervisors based on requested networks and aggregates"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"7a016987_bffc64b8","line":7,"in_reply_to":"7a016987_ac6b201d","updated":"2015-05-23 03:46:58.000000000","message":"I\u0027ve reviewed the document before making the commit; and I modeled the commit after a recent filter commit.\n\nCan you be more specific about what\u0027s wrong with the commit message?","commit_id":"680d4c34500a59b362f3019655420b80e58abb23"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"d9bfb284c75f8cf6e008d8b9f7cac5868e3c0568","unresolved":false,"context_lines":[{"line_number":9,"context_line":"Adds a filter AggregateNetworkFilter which provides the ability"},{"line_number":10,"context_line":"to select hypervisors based on requested networks and aggregates"},{"line_number":11,"context_line":"metadata \"network_id\", which is a CSV of permitted network_ids"},{"line_number":12,"context_line":"(\"nova net-list\") for that aggregate. All requested networks must be"},{"line_number":13,"context_line":"matched for the hypervisor is be matched."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"For hypervisors without the metadata key/value ``network_id``, then the"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"7a016987_6c4888b3","line":12,"updated":"2015-05-23 02:22:30.000000000","message":"will this be something supporetd by neutron too? This looks like it is a BP. You also need to update the https://github.com/openstack/nova/blob/master/doc/source/devref/filter_scheduler.rst with the new filter\n\nIt would be useful to have a description of how one would configure this. It is not clear how this will work when using networks and the tenant can create a network - how will that be configured?","commit_id":"680d4c34500a59b362f3019655420b80e58abb23"},{"author":{"_account_id":16391,"name":"Stephen Pierce","email":"pierce_stephen@hotmail.com","username":"spierce"},"change_message_id":"cc8cd2d351b4f3bc3116af5cca50b8291afdc6c3","unresolved":false,"context_lines":[{"line_number":9,"context_line":"Adds a filter AggregateNetworkFilter which provides the ability"},{"line_number":10,"context_line":"to select hypervisors based on requested networks and aggregates"},{"line_number":11,"context_line":"metadata \"network_id\", which is a CSV of permitted network_ids"},{"line_number":12,"context_line":"(\"nova net-list\") for that aggregate. All requested networks must be"},{"line_number":13,"context_line":"matched for the hypervisor is be matched."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"For hypervisors without the metadata key/value ``network_id``, then the"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"7a016987_fff1bc01","line":12,"in_reply_to":"7a016987_6c4888b3","updated":"2015-05-23 03:37:56.000000000","message":"For private networking use cases, this filter is not appropriate for the reasons you have stated. Aggregate metadata manipulation is presumed to be a cloud administrator/operator action.\n\nThe use case here is a tenant/provider network model where the availability of provider networks are limited to a subset of the hypervisors.\n\nThis is entirely Nova-centric, no neutron-specific changes or support is required.","commit_id":"680d4c34500a59b362f3019655420b80e58abb23"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"574a72adc74f8f05c0c3b8246ed9a159d0516caf","unresolved":false,"context_lines":[{"line_number":10,"context_line":"to select hypervisors based on requested networks and aggregates"},{"line_number":11,"context_line":"metadata \"network_id\", which is a CSV of permitted network_ids"},{"line_number":12,"context_line":"(\"nova net-list\") for that aggregate. All requested networks must be"},{"line_number":13,"context_line":"matched for the hypervisor is be matched."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"For hypervisors without the metadata key/value ``network_id``, then the"},{"line_number":16,"context_line":"filter always matches."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"7a016987_98765e04","line":13,"updated":"2015-05-23 16:18:40.000000000","message":"s/is/to/","commit_id":"a99fc4fe4b24e7609d465b48b5091e9a2607fb66"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"574a72adc74f8f05c0c3b8246ed9a159d0516caf","unresolved":false,"context_lines":[{"line_number":15,"context_line":"For hypervisors without the metadata key/value ``network_id``, then the"},{"line_number":16,"context_line":"filter always matches."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"DocImpact"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Change-Id: Iad74006217617ba161fc80aed0ebe02069e14387"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"7a016987_b86b5a1d","line":18,"updated":"2015-05-23 16:18:40.000000000","message":"This needs at least a blueprint, see the process wiki here:\n\nhttps://wiki.openstack.org/wiki/Blueprints\n\nI\u0027m not sure if this requires a spec, you could add it to the nova meeting agenda and ask there:\n\nhttps://wiki.openstack.org/wiki/Meetings/Nova\n\nI would lean on the side of assuming you need a simple spec reviewed for the blueprint.","commit_id":"a99fc4fe4b24e7609d465b48b5091e9a2607fb66"}],"doc/source/devref/filter_scheduler.rst":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"574a72adc74f8f05c0c3b8246ed9a159d0516caf","unresolved":false,"context_lines":[{"line_number":133,"context_line":"  the same IP block."},{"line_number":134,"context_line":"* |AggregateNetworkFilter| - Filters hosts by requested networks with per-aggregate"},{"line_number":135,"context_line":"  ``network_id`` setting. The setting is a list of permitted network UUIDs"},{"line_number":136,"context_line":"  (``nova net-list``) separated by commas. If no per-aggregate value is found,"},{"line_number":137,"context_line":"  it will permit any requested network to be scheduled on the host."},{"line_number":138,"context_line":"* |DifferentHostFilter| - allows to put the instance on a different host from a"},{"line_number":139,"context_line":"  set of instances."}],"source_content_type":"text/x-rst","patch_set":5,"id":"7a016987_981f7eb6","line":136,"updated":"2015-05-23 16:18:40.000000000","message":"net-list is deprecated, replaced with tenant-network-list so would be better to reference that.","commit_id":"a99fc4fe4b24e7609d465b48b5091e9a2607fb66"}],"nova/scheduler/filters/aggregate_network_filter.py":[{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"d9bfb284c75f8cf6e008d8b9f7cac5868e3c0568","unresolved":false,"context_lines":[{"line_number":37,"context_line":"        \"\"\""},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"        context \u003d filter_properties[\u0027context\u0027]"},{"line_number":40,"context_line":"        metadata \u003d db.aggregate_metadata_get_by_host(context, "},{"line_number":41,"context_line":"                                                     host_state.host)"},{"line_number":42,"context_line":"        requested_networks \u003d filter_properties[\u0027requested_networks\u0027]. \\"},{"line_number":43,"context_line":"                             as_tuples().pop()"}],"source_content_type":"text/x-python","patch_set":1,"id":"7a016987_8c762404","line":40,"updated":"2015-05-23 02:22:30.000000000","message":"please remove the white space (and below)","commit_id":"680d4c34500a59b362f3019655420b80e58abb23"},{"author":{"_account_id":16391,"name":"Stephen Pierce","email":"pierce_stephen@hotmail.com","username":"spierce"},"change_message_id":"cc8cd2d351b4f3bc3116af5cca50b8291afdc6c3","unresolved":false,"context_lines":[{"line_number":37,"context_line":"        \"\"\""},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"        context \u003d filter_properties[\u0027context\u0027]"},{"line_number":40,"context_line":"        metadata \u003d db.aggregate_metadata_get_by_host(context, "},{"line_number":41,"context_line":"                                                     host_state.host)"},{"line_number":42,"context_line":"        requested_networks \u003d filter_properties[\u0027requested_networks\u0027]. \\"},{"line_number":43,"context_line":"                             as_tuples().pop()"}],"source_content_type":"text/x-python","patch_set":1,"id":"7a016987_bfe0e429","line":40,"in_reply_to":"7a016987_8c762404","updated":"2015-05-23 03:37:56.000000000","message":"All whitespace fixed.","commit_id":"680d4c34500a59b362f3019655420b80e58abb23"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"d9bfb284c75f8cf6e008d8b9f7cac5868e3c0568","unresolved":false,"context_lines":[{"line_number":44,"context_line":"        LOG.debug(\"filter_properies\u003d%s, requested_networks\u003d%s, \" "},{"line_number":45,"context_line":"                  \"metadata\u003d%s\", "},{"line_number":46,"context_line":"                  filter_properties, requested_networks, metadata)"},{"line_number":47,"context_line":"        LOG.debug(\"type requested_networks\u003d%s\", type(requested_networks) )"},{"line_number":48,"context_line":"        if metadata.has_key(\u0027network_id\u0027):"},{"line_number":49,"context_line":"            aggregate_networks \u003d metadata[\u0027network_id\u0027].pop().split(\u0027,\u0027)"},{"line_number":50,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":1,"id":"7a016987_6c71a80b","line":47,"updated":"2015-05-23 02:22:30.000000000","message":"can you mix this in with the message above?","commit_id":"680d4c34500a59b362f3019655420b80e58abb23"},{"author":{"_account_id":16391,"name":"Stephen Pierce","email":"pierce_stephen@hotmail.com","username":"spierce"},"change_message_id":"cc8cd2d351b4f3bc3116af5cca50b8291afdc6c3","unresolved":false,"context_lines":[{"line_number":44,"context_line":"        LOG.debug(\"filter_properies\u003d%s, requested_networks\u003d%s, \" "},{"line_number":45,"context_line":"                  \"metadata\u003d%s\", "},{"line_number":46,"context_line":"                  filter_properties, requested_networks, metadata)"},{"line_number":47,"context_line":"        LOG.debug(\"type requested_networks\u003d%s\", type(requested_networks) )"},{"line_number":48,"context_line":"        if metadata.has_key(\u0027network_id\u0027):"},{"line_number":49,"context_line":"            aggregate_networks \u003d metadata[\u0027network_id\u0027].pop().split(\u0027,\u0027)"},{"line_number":50,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":1,"id":"7a016987_9fdbe87b","line":47,"in_reply_to":"7a016987_6c71a80b","updated":"2015-05-23 03:37:56.000000000","message":"Sure.","commit_id":"680d4c34500a59b362f3019655420b80e58abb23"},{"author":{"_account_id":16391,"name":"Stephen Pierce","email":"pierce_stephen@hotmail.com","username":"spierce"},"change_message_id":"38f5e5ebc44dd88383b78b49268aa55dd28f1001","unresolved":false,"context_lines":[{"line_number":44,"context_line":"        LOG.debug(\"filter_properies\u003d%s, requested_networks\u003d%s, \" "},{"line_number":45,"context_line":"                  \"metadata\u003d%s\", "},{"line_number":46,"context_line":"                  filter_properties, requested_networks, metadata)"},{"line_number":47,"context_line":"        LOG.debug(\"type requested_networks\u003d%s\", type(requested_networks) )"},{"line_number":48,"context_line":"        if metadata.has_key(\u0027network_id\u0027):"},{"line_number":49,"context_line":"            aggregate_networks \u003d metadata[\u0027network_id\u0027].pop().split(\u0027,\u0027)"},{"line_number":50,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":1,"id":"7a016987_ff565ccc","line":47,"in_reply_to":"7a016987_9fdbe87b","updated":"2015-05-23 03:46:58.000000000","message":"Actually, that debug statement can go.","commit_id":"680d4c34500a59b362f3019655420b80e58abb23"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"d9bfb284c75f8cf6e008d8b9f7cac5868e3c0568","unresolved":false,"context_lines":[{"line_number":64,"context_line":"                          requested_network, host_state.host)"},{"line_number":65,"context_line":"                return False"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"        LOG.debug(\"hypervisor ok - %s\" % host_state.host)"},{"line_number":68,"context_line":"        return True"},{"line_number":69,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"7a016987_4c638c42","line":67,"updated":"2015-05-23 02:22:30.000000000","message":"minor nit - please use a , instead of the %","commit_id":"680d4c34500a59b362f3019655420b80e58abb23"},{"author":{"_account_id":16391,"name":"Stephen Pierce","email":"pierce_stephen@hotmail.com","username":"spierce"},"change_message_id":"38f5e5ebc44dd88383b78b49268aa55dd28f1001","unresolved":false,"context_lines":[{"line_number":64,"context_line":"                          requested_network, host_state.host)"},{"line_number":65,"context_line":"                return False"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"        LOG.debug(\"hypervisor ok - %s\" % host_state.host)"},{"line_number":68,"context_line":"        return True"},{"line_number":69,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"7a016987_bf758464","line":67,"in_reply_to":"7a016987_4c638c42","updated":"2015-05-23 03:46:58.000000000","message":"ok","commit_id":"680d4c34500a59b362f3019655420b80e58abb23"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"574a72adc74f8f05c0c3b8246ed9a159d0516caf","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright (c) 2011-2012 OpenStack Foundation"},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":5,"id":"7a016987_38188ad2","line":1,"updated":"2015-05-23 16:18:40.000000000","message":"I don\u0027t think this line is necessary anymore, or the All Rights Reserved.","commit_id":"a99fc4fe4b24e7609d465b48b5091e9a2607fb66"}]}
