)]}'
{"neutron/plugins/hyperv/agent/hyperv_neutron_agent.py":[{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"d1c1b4174721142fc2b439bc97247ed3f64fb1c2","unresolved":false,"context_lines":[{"line_number":28,"context_line":"from neutron.agent.common import config"},{"line_number":29,"context_line":"from neutron.agent import rpc as agent_rpc"},{"line_number":30,"context_line":"from neutron.common import config as logging_config"},{"line_number":31,"context_line":"from neutron.common import constants as q_const"},{"line_number":32,"context_line":"from neutron.common import topics"},{"line_number":33,"context_line":"from neutron import context"},{"line_number":34,"context_line":"from neutron.openstack.common import log as logging"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAS3%2F%2F2eg%3D","line":31,"updated":"2013-09-18 08:46:29.000000000","message":"nit: n_const","commit_id":"0386f08031e33b04616559aee221de5a91643460"},{"author":{"_account_id":1689,"name":"Robert Kukura","email":"rk@theep.net","username":"rkukura"},"change_message_id":"123f95db14b72de79567f3c2973afdf49c889270","unresolved":false,"context_lines":[{"line_number":87,"context_line":"            \u0027host\u0027: cfg.CONF.host,"},{"line_number":88,"context_line":"            \u0027topic\u0027: n_const.L2_AGENT_TOPIC,"},{"line_number":89,"context_line":"            \u0027configurations\u0027: {\u0027vswitch_mappings\u0027:"},{"line_number":90,"context_line":"                               CONF.AGENT.physical_network_vswitch_mappings},"},{"line_number":91,"context_line":"            \u0027agent_type\u0027: n_const.AGENT_TYPE_HYPERV,"},{"line_number":92,"context_line":"            \u0027start_flag\u0027: True}"},{"line_number":93,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAS3%2F%2FxvU%3D","line":90,"updated":"2013-09-19 14:43:08.000000000","message":"The ml2 HypervMechanismDriver requires vswitch_mappings to be set to the self._physical_network_mappings dictionary rather than the config variable, which is a list of strings.","commit_id":"4190bbf27c3c214cc5bbbbd8dc07a5318aeab3c7"},{"author":{"_account_id":1689,"name":"Robert Kukura","email":"rk@theep.net","username":"rkukura"},"change_message_id":"908e80838b422c8b8d6ad5eea853fd0cdc19bc25","unresolved":false,"context_lines":[{"line_number":134,"context_line":"                vswitch \u003d parts[1].strip()"},{"line_number":135,"context_line":"                self._physical_network_mappings[pattern] \u003d vswitch"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"    def _get_vswitch_for_physical_network(self, phys_network_name):"},{"line_number":138,"context_line":"        for pattern in self._physical_network_mappings:"},{"line_number":139,"context_line":"            if phys_network_name is None:"},{"line_number":140,"context_line":"                phys_network_name \u003d \u0027\u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAS3%2F%2FgIs%3D","line":137,"updated":"2013-09-25 16:13:26.000000000","message":"I\u0027m curious what it means to use a regular expression that results in multiple physical_network names mapping to the same vswitch? Wouldn\u0027t this result in VLAN X on one physical_network and VLAN X on a different physical_network having connectivity even though the provider attributes are describing different virtual networks (different provider:physical_network values) that should be isolated?\n\nThis is not a new issue introduced by this patch, but I\u0027 m trying to understand the semantics of the vswitch_mappings, and make sure that the HypervMechanismDriver code will be binding ports correctly based on the vswitch_mappings from the agent_db info.","commit_id":"1a3f74765b8ec7c3e373092deaf6499a6be46f7e"},{"author":{"_account_id":1689,"name":"Robert Kukura","email":"rk@theep.net","username":"rkukura"},"change_message_id":"908e80838b422c8b8d6ad5eea853fd0cdc19bc25","unresolved":false,"context_lines":[{"line_number":140,"context_line":"                phys_network_name \u003d \u0027\u0027"},{"line_number":141,"context_line":"            if re.match(pattern, phys_network_name):"},{"line_number":142,"context_line":"                return self._physical_network_mappings[pattern]"},{"line_number":143,"context_line":"        # Not found in the mappings, the vswitch has the same name"},{"line_number":144,"context_line":"        return phys_network_name"},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"    def _get_network_vswitch_map_by_port_id(self, port_id):"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAS3%2F%2FgHI%3D","line":143,"updated":"2013-09-25 16:13:26.000000000","message":"I\u0027m interpreting this to mean that if there is no explicit mapping for a physical_network, then there is an implicit mapping if a vswitch exists with the physical_network\u0027s name. Does the list of such implicit mappings from each agent need to be included in the vswitch_mappings value sent to the server so the HypervMechanismDriver can bind ports using the agent?","commit_id":"1a3f74765b8ec7c3e373092deaf6499a6be46f7e"},{"author":{"_account_id":3185,"name":"Alessandro Pilotti","email":"apilotti@cloudbasesolutions.com","username":"alexpilotti"},"change_message_id":"bc2c174a4bd3a5a973f8c4de91d0021f44e22549","unresolved":false,"context_lines":[{"line_number":140,"context_line":"                phys_network_name \u003d \u0027\u0027"},{"line_number":141,"context_line":"            if re.match(pattern, phys_network_name):"},{"line_number":142,"context_line":"                return self._physical_network_mappings[pattern]"},{"line_number":143,"context_line":"        # Not found in the mappings, the vswitch has the same name"},{"line_number":144,"context_line":"        return phys_network_name"},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"    def _get_network_vswitch_map_by_port_id(self, port_id):"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAS3%2F%2Ffcs%3D","line":143,"in_reply_to":"AAAAS3%2F%2FgHI%3D","updated":"2013-09-25 19:27:29.000000000","message":"As discussed on #openstack-neutron, we can remove the implicit mapping feature for consistency. Here\u0027s the corresponding bug: https://bugs.launchpad.net/neutron/+bug/1231101","commit_id":"1a3f74765b8ec7c3e373092deaf6499a6be46f7e"}],"neutron/plugins/hyperv/hyperv_neutron_plugin.py":[{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"d1c1b4174721142fc2b439bc97247ed3f64fb1c2","unresolved":false,"context_lines":[{"line_number":154,"context_line":"    # bulk operations. Name mangling is used in order to ensure it"},{"line_number":155,"context_line":"    # is qualified by class"},{"line_number":156,"context_line":"    __native_bulk_support \u003d True"},{"line_number":157,"context_line":"    supported_extension_aliases \u003d [\"provider\", \"external-net\", \"router\","},{"line_number":158,"context_line":"                                   \"ext-gw-mode\", \"binding\", \"quotas\"]"},{"line_number":159,"context_line":""},{"line_number":160,"context_line":"    def __init__(self, configfile\u003dNone):"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAS3%2F%2F2eE%3D","line":157,"updated":"2013-09-18 08:46:29.000000000","message":"add \u0027agent\u0027 here?","commit_id":"0386f08031e33b04616559aee221de5a91643460"}],"neutron/plugins/hyperv/rpc_callbacks.py":[{"author":{"_account_id":6676,"name":"zqfan","email":"aji.zqfan@gmail.com","username":"aji-zqfan"},"change_message_id":"c6f7b87caf5029990f0d6ee915e4bff2d40c98d5","unresolved":false,"context_lines":[{"line_number":46,"context_line":"        one class as the target of rpc messages, override this method."},{"line_number":47,"context_line":"        \u0027\u0027\u0027"},{"line_number":48,"context_line":"        return q_rpc.PluginRpcDispatcher([self,"},{"line_number":49,"context_line":"                                         agents_db.AgentExtRpcCallback()])"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"    def get_device_details(self, rpc_context, **kwargs):"},{"line_number":52,"context_line":"        \"\"\"Agent requests device details.\"\"\""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAS3%2F%2F08c%3D","line":49,"updated":"2013-09-18 16:13:42.000000000","message":"minor: fix indentation or you can move [self, to next line","commit_id":"4190bbf27c3c214cc5bbbbd8dc07a5318aeab3c7"}],"neutron/plugins/ml2/drivers/mech_hyperv.py":[{"author":{"_account_id":3185,"name":"Alessandro Pilotti","email":"apilotti@cloudbasesolutions.com","username":"alexpilotti"},"change_message_id":"c82d83c63955821da04ff8e258f7713e0c4ba69b","unresolved":false,"context_lines":[{"line_number":13,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":14,"context_line":"#    under the License."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"from re import match"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"from neutron.common import constants"},{"line_number":19,"context_line":"from neutron.extensions import portbindings"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAS3%2F%2FfmA%3D","line":16,"updated":"2013-09-25 18:45:56.000000000","message":"Please import the module, this is important for readability to begin with:\n\nimport re","commit_id":"1a3f74765b8ec7c3e373092deaf6499a6be46f7e"},{"author":{"_account_id":3185,"name":"Alessandro Pilotti","email":"apilotti@cloudbasesolutions.com","username":"alexpilotti"},"change_message_id":"c82d83c63955821da04ff8e258f7713e0c4ba69b","unresolved":false,"context_lines":[{"line_number":49,"context_line":"            return True"},{"line_number":50,"context_line":"        elif network_type in [\u0027flat\u0027, \u0027vlan\u0027]:"},{"line_number":51,"context_line":"            for pattern in mappings:"},{"line_number":52,"context_line":"                if match(pattern, segment[api.PHYSICAL_NETWORK]):"},{"line_number":53,"context_line":"                    return True"},{"line_number":54,"context_line":"            else:"},{"line_number":55,"context_line":"                return False"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAS3%2F%2Ffl8%3D","line":52,"updated":"2013-09-25 18:45:56.000000000","message":"re.match(...)\n\nsee previous comment","commit_id":"1a3f74765b8ec7c3e373092deaf6499a6be46f7e"}]}
