)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"fc5db4dc576d96d347882c7e54d43b4532490ecc","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Tina \u003ctina.tang@emc.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2016-07-08 07:23:20 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add Interface port configuration"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Add a new list option \u0027emc_interface_ports\u0027 to configure the network devices"},{"line_number":10,"context_line":"to be used by share servers."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"1aa78d24_1ffe5c05","line":7,"range":{"start_line":7,"start_character":0,"end_line":7,"end_character":32},"updated":"2016-07-08 10:20:08.000000000","message":"Need to mention EMC in topic.","commit_id":"60db2a34d2f275ac76578db86592d970eaa931cb"},{"author":{"_account_id":9988,"name":"Tina Tang","email":"tina.tang@emc.com","username":"Tina"},"change_message_id":"1a29f1b68d8e80c6ab6888cd4220bc02081f8bcf","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Tina \u003ctina.tang@emc.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2016-07-08 07:23:20 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add Interface port configuration"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Add a new list option \u0027emc_interface_ports\u0027 to configure the network devices"},{"line_number":10,"context_line":"to be used by share servers."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"1aa78d24_43ca8f50","line":7,"range":{"start_line":7,"start_character":0,"end_line":7,"end_character":32},"in_reply_to":"1aa78d24_1ffe5c05","updated":"2016-07-11 07:52:56.000000000","message":"Done","commit_id":"60db2a34d2f275ac76578db86592d970eaa931cb"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"d6e0a035a6a8e74c61da1aab6200a30f3fbf64ff","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add Interface port configuration"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Add a new list option \u0027emc_interface_ports\u0027 to configure the network devices"},{"line_number":10,"context_line":"to be used by share servers."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: Id44ca5e3e64b5a540c91119698e5191366cabfc5"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"1aa78d24_91eecab2","line":9,"updated":"2016-07-08 09:09:52.000000000","message":"Please wrap this line at 72 characters.","commit_id":"60db2a34d2f275ac76578db86592d970eaa931cb"},{"author":{"_account_id":15100,"name":"zhongjun","email":"jun.zhongjun2@gmail.com","username":"zhongjun2"},"change_message_id":"fad8bb089f1e4dcb5412c111245e95cd304753ef","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add Interface port configuration"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Add a new list option \u0027emc_interface_ports\u0027 to configure the network devices"},{"line_number":10,"context_line":"to be used by share servers."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: Id44ca5e3e64b5a540c91119698e5191366cabfc5"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"1aa78d24_97d68cef","line":9,"in_reply_to":"1aa78d24_91eecab2","updated":"2016-07-09 02:36:26.000000000","message":"+1  https://wiki.openstack.org/wiki/GitCommitMessages#Summary_of_Git_commit_message_structure","commit_id":"60db2a34d2f275ac76578db86592d970eaa931cb"},{"author":{"_account_id":9988,"name":"Tina Tang","email":"tina.tang@emc.com","username":"Tina"},"change_message_id":"1a29f1b68d8e80c6ab6888cd4220bc02081f8bcf","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add Interface port configuration"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Add a new list option \u0027emc_interface_ports\u0027 to configure the network devices"},{"line_number":10,"context_line":"to be used by share servers."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: Id44ca5e3e64b5a540c91119698e5191366cabfc5"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"1aa78d24_c6725549","line":9,"in_reply_to":"1aa78d24_91eecab2","updated":"2016-07-11 07:52:56.000000000","message":"Done","commit_id":"60db2a34d2f275ac76578db86592d970eaa931cb"}],"doc/source/devref/emc_vnx_driver.rst":[{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"d8304526b81467fed488c3060c37e6ea042e52c4","unresolved":false,"context_lines":[{"line_number":187,"context_line":"    emc_nas_login \u003d \u003cuser\u003e"},{"line_number":188,"context_line":"    emc_nas_server_container \u003d \u003cData Mover name\u003e"},{"line_number":189,"context_line":"    emc_nas_pool_name \u003d \u003cpool name\u003e"},{"line_number":190,"context_line":"    emc_interface_ports \u003d \u003cComma seperated ports list\u003e"},{"line_number":191,"context_line":"    share_driver \u003d manila.share.drivers.emc.driver.EMCShareDriver"},{"line_number":192,"context_line":""},{"line_number":193,"context_line":"- `emc_share_backend` is the plugin name. Set it to `vnx` for the VNX driver."}],"source_content_type":"text/x-rst","patch_set":5,"id":"1aa78d24_39b3eb9b","line":190,"range":{"start_line":190,"start_character":33,"end_line":190,"end_character":43},"updated":"2016-07-12 10:58:25.000000000","message":"s/seperated/separated/","commit_id":"bb4ffdb75e1e7b8f13ce86a1caf6f1a4698a0739"},{"author":{"_account_id":9988,"name":"Tina Tang","email":"tina.tang@emc.com","username":"Tina"},"change_message_id":"269710c9e7430b39fb24c32ce4deb56a0056b310","unresolved":false,"context_lines":[{"line_number":187,"context_line":"    emc_nas_login \u003d \u003cuser\u003e"},{"line_number":188,"context_line":"    emc_nas_server_container \u003d \u003cData Mover name\u003e"},{"line_number":189,"context_line":"    emc_nas_pool_name \u003d \u003cpool name\u003e"},{"line_number":190,"context_line":"    emc_interface_ports \u003d \u003cComma seperated ports list\u003e"},{"line_number":191,"context_line":"    share_driver \u003d manila.share.drivers.emc.driver.EMCShareDriver"},{"line_number":192,"context_line":""},{"line_number":193,"context_line":"- `emc_share_backend` is the plugin name. Set it to `vnx` for the VNX driver."}],"source_content_type":"text/x-rst","patch_set":5,"id":"1aa78d24_8ee549dd","line":190,"range":{"start_line":190,"start_character":33,"end_line":190,"end_character":43},"in_reply_to":"1aa78d24_39b3eb9b","updated":"2016-07-13 02:59:36.000000000","message":"Done","commit_id":"bb4ffdb75e1e7b8f13ce86a1caf6f1a4698a0739"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"d8304526b81467fed488c3060c37e6ea042e52c4","unresolved":false,"context_lines":[{"line_number":200,"context_line":"- `emc_nas_pool_name` is the pool name user wants to create volume from. The"},{"line_number":201,"context_line":"  pools can be created using Unisphere for VNX."},{"line_number":202,"context_line":"- `emc_interface_ports` is comma separated list specifying the ports(devices) of"},{"line_number":203,"context_line":"  Data Mover that can be used for share server iterfaces."},{"line_number":204,"context_line":"  Members of the list can be Unix-style glob expressions (supports Unix shell-style"},{"line_number":205,"context_line":"  wildcards). This option is optional. In the absence of this option, all the"},{"line_number":206,"context_line":"  ports of the Data Mover could be used."}],"source_content_type":"text/x-rst","patch_set":5,"id":"1aa78d24_19b8af74","line":203,"range":{"start_line":203,"start_character":47,"end_line":203,"end_character":57},"updated":"2016-07-12 10:58:25.000000000","message":"interfaces","commit_id":"bb4ffdb75e1e7b8f13ce86a1caf6f1a4698a0739"},{"author":{"_account_id":9988,"name":"Tina Tang","email":"tina.tang@emc.com","username":"Tina"},"change_message_id":"269710c9e7430b39fb24c32ce4deb56a0056b310","unresolved":false,"context_lines":[{"line_number":200,"context_line":"- `emc_nas_pool_name` is the pool name user wants to create volume from. The"},{"line_number":201,"context_line":"  pools can be created using Unisphere for VNX."},{"line_number":202,"context_line":"- `emc_interface_ports` is comma separated list specifying the ports(devices) of"},{"line_number":203,"context_line":"  Data Mover that can be used for share server iterfaces."},{"line_number":204,"context_line":"  Members of the list can be Unix-style glob expressions (supports Unix shell-style"},{"line_number":205,"context_line":"  wildcards). This option is optional. In the absence of this option, all the"},{"line_number":206,"context_line":"  ports of the Data Mover could be used."}],"source_content_type":"text/x-rst","patch_set":5,"id":"1aa78d24_6ee8ddb3","line":203,"range":{"start_line":203,"start_character":47,"end_line":203,"end_character":57},"in_reply_to":"1aa78d24_19b8af74","updated":"2016-07-13 02:59:36.000000000","message":"Done","commit_id":"bb4ffdb75e1e7b8f13ce86a1caf6f1a4698a0739"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"d8304526b81467fed488c3060c37e6ea042e52c4","unresolved":false,"context_lines":[{"line_number":202,"context_line":"- `emc_interface_ports` is comma separated list specifying the ports(devices) of"},{"line_number":203,"context_line":"  Data Mover that can be used for share server iterfaces."},{"line_number":204,"context_line":"  Members of the list can be Unix-style glob expressions (supports Unix shell-style"},{"line_number":205,"context_line":"  wildcards). This option is optional. In the absence of this option, all the"},{"line_number":206,"context_line":"  ports of the Data Mover could be used."},{"line_number":207,"context_line":""},{"line_number":208,"context_line":"Restart of :term:`manila-share` service is needed for the configuration changes to take"},{"line_number":209,"context_line":"effect."}],"source_content_type":"text/x-rst","patch_set":5,"id":"1aa78d24_f9bcc36d","line":206,"range":{"start_line":205,"start_character":14,"end_line":206,"end_character":40},"updated":"2016-07-12 10:58:25.000000000","message":"Suggest: This list is optional.  In the absence of this option, any of the ports on the Data Mover can be used.","commit_id":"bb4ffdb75e1e7b8f13ce86a1caf6f1a4698a0739"},{"author":{"_account_id":9988,"name":"Tina Tang","email":"tina.tang@emc.com","username":"Tina"},"change_message_id":"269710c9e7430b39fb24c32ce4deb56a0056b310","unresolved":false,"context_lines":[{"line_number":202,"context_line":"- `emc_interface_ports` is comma separated list specifying the ports(devices) of"},{"line_number":203,"context_line":"  Data Mover that can be used for share server iterfaces."},{"line_number":204,"context_line":"  Members of the list can be Unix-style glob expressions (supports Unix shell-style"},{"line_number":205,"context_line":"  wildcards). This option is optional. In the absence of this option, all the"},{"line_number":206,"context_line":"  ports of the Data Mover could be used."},{"line_number":207,"context_line":""},{"line_number":208,"context_line":"Restart of :term:`manila-share` service is needed for the configuration changes to take"},{"line_number":209,"context_line":"effect."}],"source_content_type":"text/x-rst","patch_set":5,"id":"1aa78d24_aef5a583","line":206,"range":{"start_line":205,"start_character":14,"end_line":206,"end_character":40},"in_reply_to":"1aa78d24_f9bcc36d","updated":"2016-07-13 02:59:36.000000000","message":"Done","commit_id":"bb4ffdb75e1e7b8f13ce86a1caf6f1a4698a0739"},{"author":{"_account_id":15100,"name":"zhongjun","email":"jun.zhongjun2@gmail.com","username":"zhongjun2"},"change_message_id":"ce2ee87c47e56c83afa3ea7355b6b7403dcc6537","unresolved":false,"context_lines":[{"line_number":200,"context_line":"- `emc_nas_pool_name` is the pool name user wants to create volume from. The"},{"line_number":201,"context_line":"  pools can be created using Unisphere for VNX."},{"line_number":202,"context_line":"- `emc_interface_ports` is comma separated list specifying the ports(devices) of"},{"line_number":203,"context_line":"  Data Mover that can be used for share server iterface."},{"line_number":204,"context_line":"  Members of the list can be Unix-style glob expressions (supports Unix shell-style"},{"line_number":205,"context_line":"  wildcards). This list is optional. In the absence of this option, any of the ports"},{"line_number":206,"context_line":"  on the Data Mover can be used."}],"source_content_type":"text/x-rst","patch_set":8,"id":"1aa78d24_1093eb01","line":203,"range":{"start_line":203,"start_character":47,"end_line":203,"end_character":55},"updated":"2016-07-14 08:32:01.000000000","message":"s/ iterface / interface ?","commit_id":"27a734a5254a2960ab5c7f21e1285ed47ba8fb6f"},{"author":{"_account_id":9988,"name":"Tina Tang","email":"tina.tang@emc.com","username":"Tina"},"change_message_id":"81b293f333298c36022b87f5c4856b420783b313","unresolved":false,"context_lines":[{"line_number":200,"context_line":"- `emc_nas_pool_name` is the pool name user wants to create volume from. The"},{"line_number":201,"context_line":"  pools can be created using Unisphere for VNX."},{"line_number":202,"context_line":"- `emc_interface_ports` is comma separated list specifying the ports(devices) of"},{"line_number":203,"context_line":"  Data Mover that can be used for share server iterface."},{"line_number":204,"context_line":"  Members of the list can be Unix-style glob expressions (supports Unix shell-style"},{"line_number":205,"context_line":"  wildcards). This list is optional. In the absence of this option, any of the ports"},{"line_number":206,"context_line":"  on the Data Mover can be used."}],"source_content_type":"text/x-rst","patch_set":8,"id":"1aa78d24_32770aa1","line":203,"range":{"start_line":203,"start_character":47,"end_line":203,"end_character":55},"in_reply_to":"1aa78d24_1093eb01","updated":"2016-07-14 08:51:15.000000000","message":"Done","commit_id":"27a734a5254a2960ab5c7f21e1285ed47ba8fb6f"},{"author":{"_account_id":14567,"name":"Rodrigo Barbieri","email":"rodrigo.barbieri2010@gmail.com","username":"ganso"},"change_message_id":"e0158fd67963ee2d5a5f1972c74f3cc764720a0a","unresolved":false,"context_lines":[{"line_number":201,"context_line":"  pools can be created using Unisphere for VNX."},{"line_number":202,"context_line":"- `emc_interface_ports` is comma separated list specifying the ports(devices) of"},{"line_number":203,"context_line":"  Data Mover that can be used for share server interface."},{"line_number":204,"context_line":"  Members of the list can be Unix-style glob expressions (supports Unix shell-style"},{"line_number":205,"context_line":"  wildcards). This list is optional. In the absence of this option, any of the ports"},{"line_number":206,"context_line":"  on the Data Mover can be used."},{"line_number":207,"context_line":""},{"line_number":208,"context_line":"Restart of :term:`manila-share` service is needed for the configuration changes to take"}],"source_content_type":"text/x-rst","patch_set":9,"id":"dada55a8_33942fe7","line":205,"range":{"start_line":204,"start_character":1,"end_line":205,"end_character":84},"updated":"2016-07-22 22:26:05.000000000","message":"you should no go beyound 79 characters limit","commit_id":"55b04441ab59560190a063c23e6ebc7e921123ee"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"b792ce2843075fd9f299a569d568b9440947016e","unresolved":false,"context_lines":[{"line_number":201,"context_line":"  pools can be created using Unisphere for VNX."},{"line_number":202,"context_line":"- `emc_interface_ports` is comma separated list specifying the ports(devices) of"},{"line_number":203,"context_line":"  Data Mover that can be used for share server interface."},{"line_number":204,"context_line":"  Members of the list can be Unix-style glob expressions (supports Unix shell-style"},{"line_number":205,"context_line":"  wildcards). This list is optional. In the absence of this option, any of the ports"},{"line_number":206,"context_line":"  on the Data Mover can be used."},{"line_number":207,"context_line":""},{"line_number":208,"context_line":"Restart of :term:`manila-share` service is needed for the configuration changes to take"}],"source_content_type":"text/x-rst","patch_set":9,"id":"dada55a8_94d8e954","line":205,"range":{"start_line":204,"start_character":1,"end_line":205,"end_character":84},"in_reply_to":"dada55a8_33942fe7","updated":"2016-07-26 16:38:20.000000000","message":"Rodrigo, existing line 208 already violates it.","commit_id":"55b04441ab59560190a063c23e6ebc7e921123ee"}],"manila/share/drivers/emc/driver.py":[{"author":{"_account_id":15100,"name":"zhongjun","email":"jun.zhongjun2@gmail.com","username":"zhongjun2"},"change_message_id":"fad8bb089f1e4dcb5412c111245e95cd304753ef","unresolved":false,"context_lines":[{"line_number":54,"context_line":"    cfg.StrOpt(\u0027emc_nas_root_dir\u0027,"},{"line_number":55,"context_line":"               help\u003d\u0027The root directory where shares will be located.\u0027),"},{"line_number":56,"context_line":"    cfg.ListOpt(\u0027emc_interface_ports\u0027,"},{"line_number":57,"context_line":"                help\u003d\u0027Comma separated ports for interface creation.\u0027),"},{"line_number":58,"context_line":"]"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"CONF \u003d cfg.CONF"}],"source_content_type":"text/x-python","patch_set":1,"id":"1aa78d24_b7fc683f","line":57,"range":{"start_line":57,"start_character":16,"end_line":57,"end_character":22},"updated":"2016-07-09 02:36:26.000000000","message":"Is this need to add the format description of the \u0027emc_interface_ports\u0027 parameter?","commit_id":"60db2a34d2f275ac76578db86592d970eaa931cb"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"d6e0a035a6a8e74c61da1aab6200a30f3fbf64ff","unresolved":false,"context_lines":[{"line_number":54,"context_line":"    cfg.StrOpt(\u0027emc_nas_root_dir\u0027,"},{"line_number":55,"context_line":"               help\u003d\u0027The root directory where shares will be located.\u0027),"},{"line_number":56,"context_line":"    cfg.ListOpt(\u0027emc_interface_ports\u0027,"},{"line_number":57,"context_line":"                help\u003d\u0027Comma separated ports for interface creation.\u0027),"},{"line_number":58,"context_line":"]"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"CONF \u003d cfg.CONF"}],"source_content_type":"text/x-python","patch_set":1,"id":"1aa78d24_f1baae70","line":57,"updated":"2016-07-08 09:09:52.000000000","message":"Suggest:\n    Comma separated list specifying the ports that can be used for share server interfaces.  Members of the list can be Unix-style glob expressions.\n\nOr something like that.  Maybe show examples if you don\u0027t want to say \"Unix-style glob expressions.\"","commit_id":"60db2a34d2f275ac76578db86592d970eaa931cb"},{"author":{"_account_id":9988,"name":"Tina Tang","email":"tina.tang@emc.com","username":"Tina"},"change_message_id":"1a29f1b68d8e80c6ab6888cd4220bc02081f8bcf","unresolved":false,"context_lines":[{"line_number":54,"context_line":"    cfg.StrOpt(\u0027emc_nas_root_dir\u0027,"},{"line_number":55,"context_line":"               help\u003d\u0027The root directory where shares will be located.\u0027),"},{"line_number":56,"context_line":"    cfg.ListOpt(\u0027emc_interface_ports\u0027,"},{"line_number":57,"context_line":"                help\u003d\u0027Comma separated ports for interface creation.\u0027),"},{"line_number":58,"context_line":"]"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"CONF \u003d cfg.CONF"}],"source_content_type":"text/x-python","patch_set":1,"id":"1aa78d24_cd786efb","line":57,"range":{"start_line":57,"start_character":16,"end_line":57,"end_character":22},"in_reply_to":"1aa78d24_b7fc683f","updated":"2016-07-11 07:52:56.000000000","message":"Done","commit_id":"60db2a34d2f275ac76578db86592d970eaa931cb"},{"author":{"_account_id":9988,"name":"Tina Tang","email":"tina.tang@emc.com","username":"Tina"},"change_message_id":"1a29f1b68d8e80c6ab6888cd4220bc02081f8bcf","unresolved":false,"context_lines":[{"line_number":54,"context_line":"    cfg.StrOpt(\u0027emc_nas_root_dir\u0027,"},{"line_number":55,"context_line":"               help\u003d\u0027The root directory where shares will be located.\u0027),"},{"line_number":56,"context_line":"    cfg.ListOpt(\u0027emc_interface_ports\u0027,"},{"line_number":57,"context_line":"                help\u003d\u0027Comma separated ports for interface creation.\u0027),"},{"line_number":58,"context_line":"]"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"CONF \u003d cfg.CONF"}],"source_content_type":"text/x-python","patch_set":1,"id":"1aa78d24_863b2d38","line":57,"in_reply_to":"1aa78d24_f1baae70","updated":"2016-07-11 07:52:56.000000000","message":"Done","commit_id":"60db2a34d2f275ac76578db86592d970eaa931cb"},{"author":{"_account_id":6938,"name":"Alexey Ovchinnikov","email":"aovchinnikov@mirantis.com","username":"aovchinnikov"},"change_message_id":"9148ef777052b67aec3fa7fd457eb71a94cf2e8b","unresolved":false,"context_lines":[{"line_number":54,"context_line":"    cfg.StrOpt(\u0027emc_nas_root_dir\u0027,"},{"line_number":55,"context_line":"               help\u003d\u0027The root directory where shares will be located.\u0027),"},{"line_number":56,"context_line":"    cfg.ListOpt(\u0027emc_interface_ports\u0027,"},{"line_number":57,"context_line":"                help\u003d\u0027Comma separated list specifying the ports that can be\u0027"},{"line_number":58,"context_line":"                     \u0027used for share server interfaces. Members of the list \u0027"},{"line_number":59,"context_line":"                     \u0027can be Unix-style glob expressions.\u0027),"},{"line_number":60,"context_line":"]"}],"source_content_type":"text/x-python","patch_set":5,"id":"1aa78d24_2bad50e9","line":57,"range":{"start_line":57,"start_character":74,"end_line":57,"end_character":76},"updated":"2016-07-12 10:51:23.000000000","message":"A space is missing.","commit_id":"bb4ffdb75e1e7b8f13ce86a1caf6f1a4698a0739"},{"author":{"_account_id":9988,"name":"Tina Tang","email":"tina.tang@emc.com","username":"Tina"},"change_message_id":"269710c9e7430b39fb24c32ce4deb56a0056b310","unresolved":false,"context_lines":[{"line_number":54,"context_line":"    cfg.StrOpt(\u0027emc_nas_root_dir\u0027,"},{"line_number":55,"context_line":"               help\u003d\u0027The root directory where shares will be located.\u0027),"},{"line_number":56,"context_line":"    cfg.ListOpt(\u0027emc_interface_ports\u0027,"},{"line_number":57,"context_line":"                help\u003d\u0027Comma separated list specifying the ports that can be\u0027"},{"line_number":58,"context_line":"                     \u0027used for share server interfaces. Members of the list \u0027"},{"line_number":59,"context_line":"                     \u0027can be Unix-style glob expressions.\u0027),"},{"line_number":60,"context_line":"]"}],"source_content_type":"text/x-python","patch_set":5,"id":"1aa78d24_6e0d7d8e","line":57,"range":{"start_line":57,"start_character":74,"end_line":57,"end_character":76},"in_reply_to":"1aa78d24_2bad50e9","updated":"2016-07-13 02:59:36.000000000","message":"Done","commit_id":"bb4ffdb75e1e7b8f13ce86a1caf6f1a4698a0739"}],"manila/share/drivers/emc/plugins/vnx/connection.py":[{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"d6e0a035a6a8e74c61da1aab6200a30f3fbf64ff","unresolved":false,"context_lines":[{"line_number":525,"context_line":"                                                            self.port_conf)"},{"line_number":526,"context_line":""},{"line_number":527,"context_line":"        if not matched_ports:"},{"line_number":528,"context_line":"            msg \u003d (_(\"All the specified storage ports to be managed \""},{"line_number":529,"context_line":"                     \"do not exist. Please check your configuration \""},{"line_number":530,"context_line":"                     \"emc_interface_ports in manila.conf. \""},{"line_number":531,"context_line":"                     \"The available ports in the backend are %s\") %"},{"line_number":532,"context_line":"                   \",\".join(real_ports))"}],"source_content_type":"text/x-python","patch_set":1,"id":"1aa78d24_8cffd1a9","line":529,"range":{"start_line":528,"start_character":21,"end_line":529,"end_character":35},"updated":"2016-07-08 09:09:52.000000000","message":"It would be more idiomatic English to say: \"None of the specified storage ports exist.\"\n\nAlso, I wonder if you want to call them \"network ports\" instead of \"storage ports\"?  I know they are ports on a storage array but that phrase sounds to me more like SAS or FCAL etc. from a controller to the storage than like network interface ports.","commit_id":"60db2a34d2f275ac76578db86592d970eaa931cb"},{"author":{"_account_id":9988,"name":"Tina Tang","email":"tina.tang@emc.com","username":"Tina"},"change_message_id":"1a29f1b68d8e80c6ab6888cd4220bc02081f8bcf","unresolved":false,"context_lines":[{"line_number":525,"context_line":"                                                            self.port_conf)"},{"line_number":526,"context_line":""},{"line_number":527,"context_line":"        if not matched_ports:"},{"line_number":528,"context_line":"            msg \u003d (_(\"All the specified storage ports to be managed \""},{"line_number":529,"context_line":"                     \"do not exist. Please check your configuration \""},{"line_number":530,"context_line":"                     \"emc_interface_ports in manila.conf. \""},{"line_number":531,"context_line":"                     \"The available ports in the backend are %s\") %"},{"line_number":532,"context_line":"                   \",\".join(real_ports))"}],"source_content_type":"text/x-python","patch_set":1,"id":"1aa78d24_899fbe4f","line":529,"range":{"start_line":528,"start_character":21,"end_line":529,"end_character":35},"in_reply_to":"1aa78d24_8cffd1a9","updated":"2016-07-11 07:52:56.000000000","message":"Good suggestion. Thanks.","commit_id":"60db2a34d2f275ac76578db86592d970eaa931cb"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"d6e0a035a6a8e74c61da1aab6200a30f3fbf64ff","unresolved":false,"context_lines":[{"line_number":528,"context_line":"            msg \u003d (_(\"All the specified storage ports to be managed \""},{"line_number":529,"context_line":"                     \"do not exist. Please check your configuration \""},{"line_number":530,"context_line":"                     \"emc_interface_ports in manila.conf. \""},{"line_number":531,"context_line":"                     \"The available ports in the backend are %s\") %"},{"line_number":532,"context_line":"                   \",\".join(real_ports))"},{"line_number":533,"context_line":"            raise exception.BadConfigurationException(reason\u003dmsg)"},{"line_number":534,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"1aa78d24_7124fec5","line":531,"range":{"start_line":531,"start_character":21,"end_line":531,"end_character":67},"updated":"2016-07-08 09:09:52.000000000","message":"Do you need a period after the %s ?","commit_id":"60db2a34d2f275ac76578db86592d970eaa931cb"},{"author":{"_account_id":9988,"name":"Tina Tang","email":"tina.tang@emc.com","username":"Tina"},"change_message_id":"1a29f1b68d8e80c6ab6888cd4220bc02081f8bcf","unresolved":false,"context_lines":[{"line_number":528,"context_line":"            msg \u003d (_(\"All the specified storage ports to be managed \""},{"line_number":529,"context_line":"                     \"do not exist. Please check your configuration \""},{"line_number":530,"context_line":"                     \"emc_interface_ports in manila.conf. \""},{"line_number":531,"context_line":"                     \"The available ports in the backend are %s\") %"},{"line_number":532,"context_line":"                   \",\".join(real_ports))"},{"line_number":533,"context_line":"            raise exception.BadConfigurationException(reason\u003dmsg)"},{"line_number":534,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"1aa78d24_c9c0a62d","line":531,"range":{"start_line":531,"start_character":21,"end_line":531,"end_character":67},"in_reply_to":"1aa78d24_7124fec5","updated":"2016-07-11 07:52:56.000000000","message":"Done","commit_id":"60db2a34d2f275ac76578db86592d970eaa931cb"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"d6e0a035a6a8e74c61da1aab6200a30f3fbf64ff","unresolved":false,"context_lines":[{"line_number":536,"context_line":"            LOG.warning(_LW(\"The following specified ports \""},{"line_number":537,"context_line":"                            \"are not managed by the backend: \""},{"line_number":538,"context_line":"                            \"%(un_managed)s. This host will only manage \""},{"line_number":539,"context_line":"                            \"the storage ports: %(exist)s\"),"},{"line_number":540,"context_line":"                        {\u0027un_managed\u0027: \",\".join(unmanaged_ports),"},{"line_number":541,"context_line":"                         \u0027exist\u0027: \",\".join(matched_ports)})"},{"line_number":542,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":1,"id":"1aa78d24_cc29d98b","line":539,"range":{"start_line":539,"start_character":0,"end_line":539,"end_character":60},"updated":"2016-07-08 09:09:52.000000000","message":"Do you need a period after the %(exist)s ?","commit_id":"60db2a34d2f275ac76578db86592d970eaa931cb"},{"author":{"_account_id":9988,"name":"Tina Tang","email":"tina.tang@emc.com","username":"Tina"},"change_message_id":"1a29f1b68d8e80c6ab6888cd4220bc02081f8bcf","unresolved":false,"context_lines":[{"line_number":536,"context_line":"            LOG.warning(_LW(\"The following specified ports \""},{"line_number":537,"context_line":"                            \"are not managed by the backend: \""},{"line_number":538,"context_line":"                            \"%(un_managed)s. This host will only manage \""},{"line_number":539,"context_line":"                            \"the storage ports: %(exist)s\"),"},{"line_number":540,"context_line":"                        {\u0027un_managed\u0027: \",\".join(unmanaged_ports),"},{"line_number":541,"context_line":"                         \u0027exist\u0027: \",\".join(matched_ports)})"},{"line_number":542,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":1,"id":"1aa78d24_69e6d2e9","line":539,"range":{"start_line":539,"start_character":0,"end_line":539,"end_character":60},"in_reply_to":"1aa78d24_cc29d98b","updated":"2016-07-11 07:52:56.000000000","message":"Done","commit_id":"60db2a34d2f275ac76578db86592d970eaa931cb"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"d6e0a035a6a8e74c61da1aab6200a30f3fbf64ff","unresolved":false,"context_lines":[{"line_number":539,"context_line":"                            \"the storage ports: %(exist)s\"),"},{"line_number":540,"context_line":"                        {\u0027un_managed\u0027: \",\".join(unmanaged_ports),"},{"line_number":541,"context_line":"                         \u0027exist\u0027: \",\".join(matched_ports)})"},{"line_number":542,"context_line":"        else:"},{"line_number":543,"context_line":"            LOG.debug(\"Ports: %s will be used.\","},{"line_number":544,"context_line":"                      \",\".join(matched_ports))"},{"line_number":545,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"1aa78d24_8c8cf180","line":542,"range":{"start_line":542,"start_character":1,"end_line":542,"end_character":13},"updated":"2016-07-08 09:09:52.000000000","message":"I think you can have both unmanaged ports and managed ports, so instead of an else here you should just log the managed ports unconditionally.  The check at line 527 guarantees that there will be some.","commit_id":"60db2a34d2f275ac76578db86592d970eaa931cb"},{"author":{"_account_id":9988,"name":"Tina Tang","email":"tina.tang@emc.com","username":"Tina"},"change_message_id":"1a29f1b68d8e80c6ab6888cd4220bc02081f8bcf","unresolved":false,"context_lines":[{"line_number":539,"context_line":"                            \"the storage ports: %(exist)s\"),"},{"line_number":540,"context_line":"                        {\u0027un_managed\u0027: \",\".join(unmanaged_ports),"},{"line_number":541,"context_line":"                         \u0027exist\u0027: \",\".join(matched_ports)})"},{"line_number":542,"context_line":"        else:"},{"line_number":543,"context_line":"            LOG.debug(\"Ports: %s will be used.\","},{"line_number":544,"context_line":"                      \",\".join(matched_ports))"},{"line_number":545,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"1aa78d24_29c68a16","line":542,"range":{"start_line":542,"start_character":1,"end_line":542,"end_character":13},"in_reply_to":"1aa78d24_8c8cf180","updated":"2016-07-11 07:52:56.000000000","message":"Done","commit_id":"60db2a34d2f275ac76578db86592d970eaa931cb"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"d8304526b81467fed488c3060c37e6ea042e52c4","unresolved":false,"context_lines":[{"line_number":461,"context_line":""},{"line_number":462,"context_line":"            real_pools \u003d set([item for item in backend_pools])"},{"line_number":463,"context_line":"            conf_pools \u003d set([item.strip() for item in pools.split(\",\")])"},{"line_number":464,"context_line":"            matched_pools, unmatched_pools \u003d vnx_utils.do_match_any("},{"line_number":465,"context_line":"                real_pools, conf_pools)"},{"line_number":466,"context_line":""},{"line_number":467,"context_line":"            if not matched_pools:"},{"line_number":468,"context_line":"                msg \u003d (_(\"None of the specified storage pools to be managed \""},{"line_number":469,"context_line":"                         \"exist. Please check your configuration \""},{"line_number":470,"context_line":"                         \"emc_nas_pool_names in manila.conf. \""},{"line_number":471,"context_line":"                         \"The available pools in the backend are %s.\") %"},{"line_number":472,"context_line":"                       \",\".join(real_pools))"},{"line_number":473,"context_line":"                raise exception.InvalidParameterValue(err\u003dmsg)"},{"line_number":474,"context_line":""},{"line_number":475,"context_line":"            LOG.info(_LI(\"Storage pools: %s will be managed.\"),"},{"line_number":476,"context_line":"                     \",\".join(matched_pools))"},{"line_number":477,"context_line":"        else:"},{"line_number":478,"context_line":"            LOG.debug(\"No storage pool is specified, so all pools \""},{"line_number":479,"context_line":"                      \"in storage system will be managed.\")"}],"source_content_type":"text/x-python","patch_set":5,"id":"1aa78d24_0b233459","line":476,"range":{"start_line":464,"start_character":0,"end_line":476,"end_character":45},"updated":"2016-07-12 10:58:25.000000000","message":"Your commit message should indicate that youare using your new utility function to select managed pools as well.","commit_id":"bb4ffdb75e1e7b8f13ce86a1caf6f1a4698a0739"},{"author":{"_account_id":9988,"name":"Tina Tang","email":"tina.tang@emc.com","username":"Tina"},"change_message_id":"269710c9e7430b39fb24c32ce4deb56a0056b310","unresolved":false,"context_lines":[{"line_number":461,"context_line":""},{"line_number":462,"context_line":"            real_pools \u003d set([item for item in backend_pools])"},{"line_number":463,"context_line":"            conf_pools \u003d set([item.strip() for item in pools.split(\",\")])"},{"line_number":464,"context_line":"            matched_pools, unmatched_pools \u003d vnx_utils.do_match_any("},{"line_number":465,"context_line":"                real_pools, conf_pools)"},{"line_number":466,"context_line":""},{"line_number":467,"context_line":"            if not matched_pools:"},{"line_number":468,"context_line":"                msg \u003d (_(\"None of the specified storage pools to be managed \""},{"line_number":469,"context_line":"                         \"exist. Please check your configuration \""},{"line_number":470,"context_line":"                         \"emc_nas_pool_names in manila.conf. \""},{"line_number":471,"context_line":"                         \"The available pools in the backend are %s.\") %"},{"line_number":472,"context_line":"                       \",\".join(real_pools))"},{"line_number":473,"context_line":"                raise exception.InvalidParameterValue(err\u003dmsg)"},{"line_number":474,"context_line":""},{"line_number":475,"context_line":"            LOG.info(_LI(\"Storage pools: %s will be managed.\"),"},{"line_number":476,"context_line":"                     \",\".join(matched_pools))"},{"line_number":477,"context_line":"        else:"},{"line_number":478,"context_line":"            LOG.debug(\"No storage pool is specified, so all pools \""},{"line_number":479,"context_line":"                      \"in storage system will be managed.\")"}],"source_content_type":"text/x-python","patch_set":5,"id":"1aa78d24_4e7b61f5","line":476,"range":{"start_line":464,"start_character":0,"end_line":476,"end_character":45},"in_reply_to":"1aa78d24_0b233459","updated":"2016-07-13 02:59:36.000000000","message":"Done","commit_id":"bb4ffdb75e1e7b8f13ce86a1caf6f1a4698a0739"},{"author":{"_account_id":6938,"name":"Alexey Ovchinnikov","email":"aovchinnikov@mirantis.com","username":"aovchinnikov"},"change_message_id":"9148ef777052b67aec3fa7fd457eb71a94cf2e8b","unresolved":false,"context_lines":[{"line_number":512,"context_line":"            real_ports, self.port_conf)"},{"line_number":513,"context_line":""},{"line_number":514,"context_line":"        if not matched_ports:"},{"line_number":515,"context_line":"            msg \u003d (_(\"None of the specified network ports exist.\""},{"line_number":516,"context_line":"                     \"Please check your configuration emc_interface_ports \""},{"line_number":517,"context_line":"                     \"in manila.conf. The available ports in the backend \""},{"line_number":518,"context_line":"                     \"are %s.\") %"}],"source_content_type":"text/x-python","patch_set":5,"id":"1aa78d24_4bdedc6d","line":515,"range":{"start_line":515,"start_character":64,"end_line":515,"end_character":65},"updated":"2016-07-12 10:51:23.000000000","message":"A space is missing.","commit_id":"bb4ffdb75e1e7b8f13ce86a1caf6f1a4698a0739"},{"author":{"_account_id":9988,"name":"Tina Tang","email":"tina.tang@emc.com","username":"Tina"},"change_message_id":"269710c9e7430b39fb24c32ce4deb56a0056b310","unresolved":false,"context_lines":[{"line_number":512,"context_line":"            real_ports, self.port_conf)"},{"line_number":513,"context_line":""},{"line_number":514,"context_line":"        if not matched_ports:"},{"line_number":515,"context_line":"            msg \u003d (_(\"None of the specified network ports exist.\""},{"line_number":516,"context_line":"                     \"Please check your configuration emc_interface_ports \""},{"line_number":517,"context_line":"                     \"in manila.conf. The available ports in the backend \""},{"line_number":518,"context_line":"                     \"are %s.\") %"}],"source_content_type":"text/x-python","patch_set":5,"id":"1aa78d24_ce56315b","line":515,"range":{"start_line":515,"start_character":64,"end_line":515,"end_character":65},"in_reply_to":"1aa78d24_4bdedc6d","updated":"2016-07-13 02:59:36.000000000","message":"Done","commit_id":"bb4ffdb75e1e7b8f13ce86a1caf6f1a4698a0739"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"d8304526b81467fed488c3060c37e6ea042e52c4","unresolved":false,"context_lines":[{"line_number":551,"context_line":"            message \u003d _(\"Failed to update storage pool.\")"},{"line_number":552,"context_line":"            LOG.error(message)"},{"line_number":553,"context_line":"            raise exception.EMCVnxXMLAPIError(err\u003dmessage)"},{"line_number":554,"context_line":"        self.port_set \u003d self.get_managed_ports()"},{"line_number":555,"context_line":""},{"line_number":556,"context_line":"    def get_pool(self, share):"},{"line_number":557,"context_line":"        \"\"\"Get the pool name of the share.\"\"\""}],"source_content_type":"text/x-python","patch_set":5,"id":"1aa78d24_0bb17401","line":554,"updated":"2016-07-12 10:58:25.000000000","message":"Getting the managed ports every time you update share stats seems to defeat the point of caching the info in self.port_set.","commit_id":"bb4ffdb75e1e7b8f13ce86a1caf6f1a4698a0739"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"d8304526b81467fed488c3060c37e6ea042e52c4","unresolved":false,"context_lines":[{"line_number":613,"context_line":""},{"line_number":614,"context_line":"            devices \u003d self.port_set"},{"line_number":615,"context_line":"            if not devices:"},{"line_number":616,"context_line":"                raise exception.EMCVnxXMLAPIError(err\u003d\"There is no available \""},{"line_number":617,"context_line":"                                                      \"ports to create \""},{"line_number":618,"context_line":"                                                      \"interface.\")"},{"line_number":619,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"1aa78d24_8bc5645d","line":616,"range":{"start_line":616,"start_character":61,"end_line":616,"end_character":63},"updated":"2016-07-12 10:58:25.000000000","message":"are","commit_id":"bb4ffdb75e1e7b8f13ce86a1caf6f1a4698a0739"},{"author":{"_account_id":6938,"name":"Alexey Ovchinnikov","email":"aovchinnikov@mirantis.com","username":"aovchinnikov"},"change_message_id":"9148ef777052b67aec3fa7fd457eb71a94cf2e8b","unresolved":false,"context_lines":[{"line_number":613,"context_line":""},{"line_number":614,"context_line":"            devices \u003d self.port_set"},{"line_number":615,"context_line":"            if not devices:"},{"line_number":616,"context_line":"                raise exception.EMCVnxXMLAPIError(err\u003d\"There is no available \""},{"line_number":617,"context_line":"                                                      \"ports to create \""},{"line_number":618,"context_line":"                                                      \"interface.\")"},{"line_number":619,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"1aa78d24_6be1182a","line":616,"range":{"start_line":616,"start_character":61,"end_line":616,"end_character":63},"updated":"2016-07-12 10:51:23.000000000","message":"s/is/are/ ?","commit_id":"bb4ffdb75e1e7b8f13ce86a1caf6f1a4698a0739"},{"author":{"_account_id":9988,"name":"Tina Tang","email":"tina.tang@emc.com","username":"Tina"},"change_message_id":"0b074a2e66a8a2bd618e50f11006e8efb82ae82a","unresolved":false,"context_lines":[{"line_number":613,"context_line":""},{"line_number":614,"context_line":"            devices \u003d self.port_set"},{"line_number":615,"context_line":"            if not devices:"},{"line_number":616,"context_line":"                raise exception.EMCVnxXMLAPIError(err\u003d\"There is no available \""},{"line_number":617,"context_line":"                                                      \"ports to create \""},{"line_number":618,"context_line":"                                                      \"interface.\")"},{"line_number":619,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"1aa78d24_915ba585","line":616,"range":{"start_line":616,"start_character":61,"end_line":616,"end_character":63},"in_reply_to":"1aa78d24_8bc5645d","updated":"2016-07-13 06:07:39.000000000","message":"Done","commit_id":"bb4ffdb75e1e7b8f13ce86a1caf6f1a4698a0739"},{"author":{"_account_id":15100,"name":"zhongjun","email":"jun.zhongjun2@gmail.com","username":"zhongjun2"},"change_message_id":"ce2ee87c47e56c83afa3ea7355b6b7403dcc6537","unresolved":false,"context_lines":[{"line_number":470,"context_line":"                         \"emc_nas_pool_names in manila.conf. \""},{"line_number":471,"context_line":"                         \"The available pools in the backend are %s.\") %"},{"line_number":472,"context_line":"                       \",\".join(real_pools))"},{"line_number":473,"context_line":"                raise exception.InvalidParameterValue(err\u003dmsg)"},{"line_number":474,"context_line":""},{"line_number":475,"context_line":"            LOG.info(_LI(\"Storage pools: %s will be managed.\"),"},{"line_number":476,"context_line":"                     \",\".join(matched_pools))"}],"source_content_type":"text/x-python","patch_set":8,"id":"1aa78d24_cf70a176","line":473,"range":{"start_line":473,"start_character":16,"end_line":473,"end_character":62},"updated":"2016-07-14 08:32:01.000000000","message":"This could not be tested.","commit_id":"27a734a5254a2960ab5c7f21e1285ed47ba8fb6f"},{"author":{"_account_id":9988,"name":"Tina Tang","email":"tina.tang@emc.com","username":"Tina"},"change_message_id":"9a4b1e56aa466c57375c578074f75cbd8f16f625","unresolved":false,"context_lines":[{"line_number":470,"context_line":"                         \"emc_nas_pool_names in manila.conf. \""},{"line_number":471,"context_line":"                         \"The available pools in the backend are %s.\") %"},{"line_number":472,"context_line":"                       \",\".join(real_pools))"},{"line_number":473,"context_line":"                raise exception.InvalidParameterValue(err\u003dmsg)"},{"line_number":474,"context_line":""},{"line_number":475,"context_line":"            LOG.info(_LI(\"Storage pools: %s will be managed.\"),"},{"line_number":476,"context_line":"                     \",\".join(matched_pools))"}],"source_content_type":"text/x-python","patch_set":8,"id":"1aa78d24_15191823","line":473,"range":{"start_line":473,"start_character":16,"end_line":473,"end_character":62},"in_reply_to":"1aa78d24_12dace17","updated":"2016-07-14 09:11:02.000000000","message":"Ok, thanks for this reminder. The behavior of this method was not changed except the log messages. Thus the existing UT cases have covered it. Please see the case:\n\nmanila.tests.share.drivers.emc.plugins.vnx.test_connection.test__get_managed_storage_pools_without_matched_pool","commit_id":"27a734a5254a2960ab5c7f21e1285ed47ba8fb6f"},{"author":{"_account_id":15100,"name":"zhongjun","email":"jun.zhongjun2@gmail.com","username":"zhongjun2"},"change_message_id":"d60ae9231821005a7682a5f8882e573cd29a4cf0","unresolved":false,"context_lines":[{"line_number":470,"context_line":"                         \"emc_nas_pool_names in manila.conf. \""},{"line_number":471,"context_line":"                         \"The available pools in the backend are %s.\") %"},{"line_number":472,"context_line":"                       \",\".join(real_pools))"},{"line_number":473,"context_line":"                raise exception.InvalidParameterValue(err\u003dmsg)"},{"line_number":474,"context_line":""},{"line_number":475,"context_line":"            LOG.info(_LI(\"Storage pools: %s will be managed.\"),"},{"line_number":476,"context_line":"                     \",\".join(matched_pools))"}],"source_content_type":"text/x-python","patch_set":8,"id":"1aa78d24_12dace17","line":473,"range":{"start_line":473,"start_character":16,"end_line":473,"end_character":62},"in_reply_to":"1aa78d24_afd6f5c0","updated":"2016-07-14 08:56:41.000000000","message":"This line can be covered with unit tests.","commit_id":"27a734a5254a2960ab5c7f21e1285ed47ba8fb6f"},{"author":{"_account_id":9988,"name":"Tina Tang","email":"tina.tang@emc.com","username":"Tina"},"change_message_id":"81b293f333298c36022b87f5c4856b420783b313","unresolved":false,"context_lines":[{"line_number":470,"context_line":"                         \"emc_nas_pool_names in manila.conf. \""},{"line_number":471,"context_line":"                         \"The available pools in the backend are %s.\") %"},{"line_number":472,"context_line":"                       \",\".join(real_pools))"},{"line_number":473,"context_line":"                raise exception.InvalidParameterValue(err\u003dmsg)"},{"line_number":474,"context_line":""},{"line_number":475,"context_line":"            LOG.info(_LI(\"Storage pools: %s will be managed.\"),"},{"line_number":476,"context_line":"                     \",\".join(matched_pools))"}],"source_content_type":"text/x-python","patch_set":8,"id":"1aa78d24_afd6f5c0","line":473,"range":{"start_line":473,"start_character":16,"end_line":473,"end_character":62},"in_reply_to":"1aa78d24_cf70a176","updated":"2016-07-14 08:51:15.000000000","message":"Thanks, would you please elaborate more details on it? sorry that I didn\u0027t get it.","commit_id":"27a734a5254a2960ab5c7f21e1285ed47ba8fb6f"},{"author":{"_account_id":15100,"name":"zhongjun","email":"jun.zhongjun2@gmail.com","username":"zhongjun2"},"change_message_id":"ce2ee87c47e56c83afa3ea7355b6b7403dcc6537","unresolved":false,"context_lines":[{"line_number":518,"context_line":"                   \",\".join(real_ports))"},{"line_number":519,"context_line":"            raise exception.BadConfigurationException(reason\u003dmsg)"},{"line_number":520,"context_line":""},{"line_number":521,"context_line":"        LOG.debug(\"Ports: %s can be used.\","},{"line_number":522,"context_line":"                  \",\".join(matched_ports))"},{"line_number":523,"context_line":""},{"line_number":524,"context_line":"        return list(matched_ports)"},{"line_number":525,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"1aa78d24_0b80de48","line":522,"range":{"start_line":521,"start_character":7,"end_line":522,"end_character":42},"updated":"2016-07-14 08:32:01.000000000","message":"This could be in one line.","commit_id":"27a734a5254a2960ab5c7f21e1285ed47ba8fb6f"},{"author":{"_account_id":9988,"name":"Tina Tang","email":"tina.tang@emc.com","username":"Tina"},"change_message_id":"81b293f333298c36022b87f5c4856b420783b313","unresolved":false,"context_lines":[{"line_number":518,"context_line":"                   \",\".join(real_ports))"},{"line_number":519,"context_line":"            raise exception.BadConfigurationException(reason\u003dmsg)"},{"line_number":520,"context_line":""},{"line_number":521,"context_line":"        LOG.debug(\"Ports: %s can be used.\","},{"line_number":522,"context_line":"                  \",\".join(matched_ports))"},{"line_number":523,"context_line":""},{"line_number":524,"context_line":"        return list(matched_ports)"},{"line_number":525,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"1aa78d24_0fdaa917","line":522,"range":{"start_line":521,"start_character":7,"end_line":522,"end_character":42},"in_reply_to":"1aa78d24_0b80de48","updated":"2016-07-14 08:51:15.000000000","message":"Done","commit_id":"27a734a5254a2960ab5c7f21e1285ed47ba8fb6f"},{"author":{"_account_id":14567,"name":"Rodrigo Barbieri","email":"rodrigo.barbieri2010@gmail.com","username":"ganso"},"change_message_id":"e0158fd67963ee2d5a5f1972c74f3cc764720a0a","unresolved":false,"context_lines":[{"line_number":501,"context_line":"        # Get the real ports(devices) list from the backend storage"},{"line_number":502,"context_line":"        real_ports \u003d self._get_physical_devices(self.mover_name)"},{"line_number":503,"context_line":""},{"line_number":504,"context_line":"        if not self.port_conf:"},{"line_number":505,"context_line":"            LOG.debug(\"No ports are specified, so any of the ports on the \""},{"line_number":506,"context_line":"                      \"Data Mover can be used.\")"},{"line_number":507,"context_line":"            return real_ports"},{"line_number":508,"context_line":""},{"line_number":509,"context_line":"        matched_ports, unmanaged_ports \u003d vnx_utils.do_match_any("},{"line_number":510,"context_line":"            real_ports, self.port_conf)"}],"source_content_type":"text/x-python","patch_set":9,"id":"dada55a8_134e4b96","line":507,"range":{"start_line":504,"start_character":8,"end_line":507,"end_character":29},"updated":"2016-07-22 22:26:05.000000000","message":"if you are supporting the old approach with randomly obtained ports, it seems to me you are not fixing the bug.","commit_id":"55b04441ab59560190a063c23e6ebc7e921123ee"},{"author":{"_account_id":14567,"name":"Rodrigo Barbieri","email":"rodrigo.barbieri2010@gmail.com","username":"ganso"},"change_message_id":"0fdeaf311d7fc9fbaa1a9d501f631acdb7c73c6d","unresolved":false,"context_lines":[{"line_number":501,"context_line":"        # Get the real ports(devices) list from the backend storage"},{"line_number":502,"context_line":"        real_ports \u003d self._get_physical_devices(self.mover_name)"},{"line_number":503,"context_line":""},{"line_number":504,"context_line":"        if not self.port_conf:"},{"line_number":505,"context_line":"            LOG.debug(\"No ports are specified, so any of the ports on the \""},{"line_number":506,"context_line":"                      \"Data Mover can be used.\")"},{"line_number":507,"context_line":"            return real_ports"},{"line_number":508,"context_line":""},{"line_number":509,"context_line":"        matched_ports, unmanaged_ports \u003d vnx_utils.do_match_any("},{"line_number":510,"context_line":"            real_ports, self.port_conf)"}],"source_content_type":"text/x-python","patch_set":9,"id":"bacf61ea_836de634","line":507,"range":{"start_line":504,"start_character":8,"end_line":507,"end_character":29},"in_reply_to":"dada55a8_0105c244","updated":"2016-07-27 20:01:12.000000000","message":"ok, thanks for addressing this.","commit_id":"55b04441ab59560190a063c23e6ebc7e921123ee"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"b792ce2843075fd9f299a569d568b9440947016e","unresolved":false,"context_lines":[{"line_number":501,"context_line":"        # Get the real ports(devices) list from the backend storage"},{"line_number":502,"context_line":"        real_ports \u003d self._get_physical_devices(self.mover_name)"},{"line_number":503,"context_line":""},{"line_number":504,"context_line":"        if not self.port_conf:"},{"line_number":505,"context_line":"            LOG.debug(\"No ports are specified, so any of the ports on the \""},{"line_number":506,"context_line":"                      \"Data Mover can be used.\")"},{"line_number":507,"context_line":"            return real_ports"},{"line_number":508,"context_line":""},{"line_number":509,"context_line":"        matched_ports, unmanaged_ports \u003d vnx_utils.do_match_any("},{"line_number":510,"context_line":"            real_ports, self.port_conf)"}],"source_content_type":"text/x-python","patch_set":9,"id":"dada55a8_b4888d23","line":507,"range":{"start_line":504,"start_character":8,"end_line":507,"end_character":29},"in_reply_to":"dada55a8_134e4b96","updated":"2016-07-26 16:38:20.000000000","message":"Bug topic is \"VNX driver doesn\u0027t support port configuration\" that is addressed. Case when it is not configured means \"any port is ok to pick up\".","commit_id":"55b04441ab59560190a063c23e6ebc7e921123ee"},{"author":{"_account_id":9988,"name":"Tina Tang","email":"tina.tang@emc.com","username":"Tina"},"change_message_id":"bba312928fb95a2853c09f835204130efc7369ac","unresolved":false,"context_lines":[{"line_number":501,"context_line":"        # Get the real ports(devices) list from the backend storage"},{"line_number":502,"context_line":"        real_ports \u003d self._get_physical_devices(self.mover_name)"},{"line_number":503,"context_line":""},{"line_number":504,"context_line":"        if not self.port_conf:"},{"line_number":505,"context_line":"            LOG.debug(\"No ports are specified, so any of the ports on the \""},{"line_number":506,"context_line":"                      \"Data Mover can be used.\")"},{"line_number":507,"context_line":"            return real_ports"},{"line_number":508,"context_line":""},{"line_number":509,"context_line":"        matched_ports, unmanaged_ports \u003d vnx_utils.do_match_any("},{"line_number":510,"context_line":"            real_ports, self.port_conf)"}],"source_content_type":"text/x-python","patch_set":9,"id":"dada55a8_0105c244","line":507,"range":{"start_line":504,"start_character":8,"end_line":507,"end_character":29},"in_reply_to":"dada55a8_a852ea10","updated":"2016-07-27 02:52:47.000000000","message":"The administrator should set this option if there are some connected ports can not be used by openstack. If it is not set, we will call it as \u0027configuration error\u0027. \nWe didn\u0027t make this option as required because that in the most case all ports are able to be used by openstack.","commit_id":"55b04441ab59560190a063c23e6ebc7e921123ee"},{"author":{"_account_id":14567,"name":"Rodrigo Barbieri","email":"rodrigo.barbieri2010@gmail.com","username":"ganso"},"change_message_id":"bf0f024f382d3ef9618473c982092b088c6210df","unresolved":false,"context_lines":[{"line_number":501,"context_line":"        # Get the real ports(devices) list from the backend storage"},{"line_number":502,"context_line":"        real_ports \u003d self._get_physical_devices(self.mover_name)"},{"line_number":503,"context_line":""},{"line_number":504,"context_line":"        if not self.port_conf:"},{"line_number":505,"context_line":"            LOG.debug(\"No ports are specified, so any of the ports on the \""},{"line_number":506,"context_line":"                      \"Data Mover can be used.\")"},{"line_number":507,"context_line":"            return real_ports"},{"line_number":508,"context_line":""},{"line_number":509,"context_line":"        matched_ports, unmanaged_ports \u003d vnx_utils.do_match_any("},{"line_number":510,"context_line":"            real_ports, self.port_conf)"}],"source_content_type":"text/x-python","patch_set":9,"id":"dada55a8_a852ea10","line":507,"range":{"start_line":504,"start_character":8,"end_line":507,"end_character":29},"in_reply_to":"dada55a8_b4888d23","updated":"2016-07-26 17:46:31.000000000","message":"Bug states: \"This will caused problem if some ports are not connected to network which is used by Openstack.\"\n\nNew config option is not required, so bug remains if configured port is not set.","commit_id":"55b04441ab59560190a063c23e6ebc7e921123ee"}],"manila/share/drivers/emc/plugins/vnx/utils.py":[{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"d6e0a035a6a8e74c61da1aab6200a30f3fbf64ff","unresolved":false,"context_lines":[{"line_number":60,"context_line":""},{"line_number":61,"context_line":"    return inner"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"def do_match(full, matcher_list):"},{"line_number":65,"context_line":"    matched \u003d set()"},{"line_number":66,"context_line":"    not_matched \u003d set()"}],"source_content_type":"text/x-python","patch_set":1,"id":"1aa78d24_37e6e6e8","line":63,"updated":"2016-07-08 09:09:52.000000000","message":"There should be unit test coverage for the following method.","commit_id":"60db2a34d2f275ac76578db86592d970eaa931cb"},{"author":{"_account_id":9988,"name":"Tina Tang","email":"tina.tang@emc.com","username":"Tina"},"change_message_id":"1a29f1b68d8e80c6ab6888cd4220bc02081f8bcf","unresolved":false,"context_lines":[{"line_number":60,"context_line":""},{"line_number":61,"context_line":"    return inner"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"def do_match(full, matcher_list):"},{"line_number":65,"context_line":"    matched \u003d set()"},{"line_number":66,"context_line":"    not_matched \u003d set()"}],"source_content_type":"text/x-python","patch_set":1,"id":"1aa78d24_63feabaf","line":63,"in_reply_to":"1aa78d24_37e6e6e8","updated":"2016-07-11 07:52:56.000000000","message":"Done","commit_id":"60db2a34d2f275ac76578db86592d970eaa931cb"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"d6e0a035a6a8e74c61da1aab6200a30f3fbf64ff","unresolved":false,"context_lines":[{"line_number":61,"context_line":"    return inner"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"def do_match(full, matcher_list):"},{"line_number":65,"context_line":"    matched \u003d set()"},{"line_number":66,"context_line":"    not_matched \u003d set()"},{"line_number":67,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"1aa78d24_0cd5a1b8","line":64,"range":{"start_line":64,"start_character":4,"end_line":64,"end_character":12},"updated":"2016-07-08 09:09:52.000000000","message":"This is a very generic name for this method.  I wonder if there is a name that better captures the type of matching you are doing.\n\nAlternatively, or additionally, a docstring explaining the type of match that is intended would be helpful.","commit_id":"60db2a34d2f275ac76578db86592d970eaa931cb"},{"author":{"_account_id":9988,"name":"Tina Tang","email":"tina.tang@emc.com","username":"Tina"},"change_message_id":"1a29f1b68d8e80c6ab6888cd4220bc02081f8bcf","unresolved":false,"context_lines":[{"line_number":61,"context_line":"    return inner"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"def do_match(full, matcher_list):"},{"line_number":65,"context_line":"    matched \u003d set()"},{"line_number":66,"context_line":"    not_matched \u003d set()"},{"line_number":67,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"1aa78d24_43ce0f84","line":64,"range":{"start_line":64,"start_character":4,"end_line":64,"end_character":12},"in_reply_to":"1aa78d24_0cd5a1b8","updated":"2016-07-11 07:52:56.000000000","message":"Thanks, I changed the name to do_match_any and added the document. This methods is trying to find the item that matches any matchers.","commit_id":"60db2a34d2f275ac76578db86592d970eaa931cb"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"d6e0a035a6a8e74c61da1aab6200a30f3fbf64ff","unresolved":false,"context_lines":[{"line_number":73,"context_line":"                matched.add(item)"},{"line_number":74,"context_line":"            else:"},{"line_number":75,"context_line":"                not_matched.add(item)"},{"line_number":76,"context_line":"    return matched, not_matched"}],"source_content_type":"text/x-python","patch_set":1,"id":"1aa78d24_1713ea0e","line":76,"updated":"2016-07-08 09:09:52.000000000","message":"suppose full \u003d (\u0027a\u0027, \u0027b\u0027, \u0027c\u0027) and matcher_list \u003d (\u0027*\u0027, \u0027foo\u0027)\n\nWon\u0027t both matched and not_matched be (\u0027a\u0027, \u0027b\u0027, \u0027c\u0027)?","commit_id":"60db2a34d2f275ac76578db86592d970eaa931cb"},{"author":{"_account_id":9988,"name":"Tina Tang","email":"tina.tang@emc.com","username":"Tina"},"change_message_id":"1a29f1b68d8e80c6ab6888cd4220bc02081f8bcf","unresolved":false,"context_lines":[{"line_number":73,"context_line":"                matched.add(item)"},{"line_number":74,"context_line":"            else:"},{"line_number":75,"context_line":"                not_matched.add(item)"},{"line_number":76,"context_line":"    return matched, not_matched"}],"source_content_type":"text/x-python","patch_set":1,"id":"1aa78d24_e3ad7b9c","line":76,"in_reply_to":"1aa78d24_1713ea0e","updated":"2016-07-11 07:52:56.000000000","message":"Good catch. The code is buggy.","commit_id":"60db2a34d2f275ac76578db86592d970eaa931cb"},{"author":{"_account_id":6938,"name":"Alexey Ovchinnikov","email":"aovchinnikov@mirantis.com","username":"aovchinnikov"},"change_message_id":"9148ef777052b67aec3fa7fd457eb71a94cf2e8b","unresolved":false,"context_lines":[{"line_number":62,"context_line":""},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"def do_match_any(full, matcher_list):"},{"line_number":65,"context_line":"    \"\"\"Finds items that matches any of the matchers."},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"    :param full: Full item list"},{"line_number":68,"context_line":"    :param matcher_list: The list of matchers. Each matcher supports"}],"source_content_type":"text/x-python","patch_set":5,"id":"1aa78d24_2bf710d4","line":65,"range":{"start_line":65,"start_character":24,"end_line":65,"end_character":31},"updated":"2016-07-12 10:51:23.000000000","message":"s/matches/match?","commit_id":"bb4ffdb75e1e7b8f13ce86a1caf6f1a4698a0739"},{"author":{"_account_id":9988,"name":"Tina Tang","email":"tina.tang@emc.com","username":"Tina"},"change_message_id":"269710c9e7430b39fb24c32ce4deb56a0056b310","unresolved":false,"context_lines":[{"line_number":62,"context_line":""},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"def do_match_any(full, matcher_list):"},{"line_number":65,"context_line":"    \"\"\"Finds items that matches any of the matchers."},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"    :param full: Full item list"},{"line_number":68,"context_line":"    :param matcher_list: The list of matchers. Each matcher supports"}],"source_content_type":"text/x-python","patch_set":5,"id":"1aa78d24_79a38500","line":65,"range":{"start_line":65,"start_character":24,"end_line":65,"end_character":31},"in_reply_to":"1aa78d24_2bf710d4","updated":"2016-07-13 02:59:36.000000000","message":"Done","commit_id":"bb4ffdb75e1e7b8f13ce86a1caf6f1a4698a0739"}],"manila/tests/share/drivers/emc/plugins/vnx/fakes.py":[{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"d6e0a035a6a8e74c61da1aab6200a30f3fbf64ff","unresolved":false,"context_lines":[{"line_number":1024,"context_line":"            \u0027    Link: Down\\n\u0027"},{"line_number":1025,"context_line":"            \u0027    0:  cge-1-3  IRQ: 27\\n\u0027"},{"line_number":1026,"context_line":"            \u0027    speed\u003dauto duplex\u003dauto txflowctl\u003ddisable rxflowctl\u003ddisable\\n\u0027"},{"line_number":1027,"context_line":"            \u0027    Link: Up\\n\u0027"},{"line_number":1028,"context_line":"            \u0027Slot: 4\\n\u0027"},{"line_number":1029,"context_line":"            \u0027  PLX PCI-Express Switch  Controller\\n\u0027"},{"line_number":1030,"context_line":"            \u0027    1:  PLX PEX8648  IRQ: 10\\n\u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"1aa78d24_d78b221d","line":1027,"range":{"start_line":1027,"start_character":10,"end_line":1027,"end_character":28},"updated":"2016-07-08 09:09:52.000000000","message":"Is this part of this change set?","commit_id":"60db2a34d2f275ac76578db86592d970eaa931cb"},{"author":{"_account_id":9988,"name":"Tina Tang","email":"tina.tang@emc.com","username":"Tina"},"change_message_id":"1a29f1b68d8e80c6ab6888cd4220bc02081f8bcf","unresolved":false,"context_lines":[{"line_number":1024,"context_line":"            \u0027    Link: Down\\n\u0027"},{"line_number":1025,"context_line":"            \u0027    0:  cge-1-3  IRQ: 27\\n\u0027"},{"line_number":1026,"context_line":"            \u0027    speed\u003dauto duplex\u003dauto txflowctl\u003ddisable rxflowctl\u003ddisable\\n\u0027"},{"line_number":1027,"context_line":"            \u0027    Link: Up\\n\u0027"},{"line_number":1028,"context_line":"            \u0027Slot: 4\\n\u0027"},{"line_number":1029,"context_line":"            \u0027  PLX PCI-Express Switch  Controller\\n\u0027"},{"line_number":1030,"context_line":"            \u0027    1:  PLX PEX8648  IRQ: 10\\n\u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"1aa78d24_e3845b0c","line":1027,"range":{"start_line":1027,"start_character":10,"end_line":1027,"end_character":28},"in_reply_to":"1aa78d24_d78b221d","updated":"2016-07-11 07:52:56.000000000","message":"Yes","commit_id":"60db2a34d2f275ac76578db86592d970eaa931cb"}],"manila/tests/share/drivers/emc/plugins/vnx/test_connection.py":[{"author":{"_account_id":15100,"name":"zhongjun","email":"jun.zhongjun2@gmail.com","username":"zhongjun2"},"change_message_id":"fad8bb089f1e4dcb5412c111245e95cd304753ef","unresolved":false,"context_lines":[{"line_number":1423,"context_line":"        self.assertEqual(sorted([\u0027cge-1-0\u0027]), sorted(port))"},{"line_number":1424,"context_line":"        ssh_cmd_mock.assert_has_calls(expected_calls)"},{"line_number":1425,"context_line":""},{"line_number":1426,"context_line":"    def test_get_managed_ports_include_invalid_port(self):"},{"line_number":1427,"context_line":"        hook \u003d utils.SSHSideEffect()"},{"line_number":1428,"context_line":"        hook.append(self.mover.output_get_physical_devices())"},{"line_number":1429,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"1aa78d24_770cc042","line":1426,"range":{"start_line":1426,"start_character":4,"end_line":1426,"end_character":51},"updated":"2016-07-09 02:36:26.000000000","message":"It could be better to use ddt test to combine test_get_managed_ports_include_invalid_port  and  test_get_managed_ports_widecart_support.","commit_id":"60db2a34d2f275ac76578db86592d970eaa931cb"},{"author":{"_account_id":9988,"name":"Tina Tang","email":"tina.tang@emc.com","username":"Tina"},"change_message_id":"1a29f1b68d8e80c6ab6888cd4220bc02081f8bcf","unresolved":false,"context_lines":[{"line_number":1423,"context_line":"        self.assertEqual(sorted([\u0027cge-1-0\u0027]), sorted(port))"},{"line_number":1424,"context_line":"        ssh_cmd_mock.assert_has_calls(expected_calls)"},{"line_number":1425,"context_line":""},{"line_number":1426,"context_line":"    def test_get_managed_ports_include_invalid_port(self):"},{"line_number":1427,"context_line":"        hook \u003d utils.SSHSideEffect()"},{"line_number":1428,"context_line":"        hook.append(self.mover.output_get_physical_devices())"},{"line_number":1429,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"1aa78d24_43a3af9e","line":1426,"range":{"start_line":1426,"start_character":4,"end_line":1426,"end_character":51},"in_reply_to":"1aa78d24_770cc042","updated":"2016-07-11 07:52:56.000000000","message":"Done. Thanks","commit_id":"60db2a34d2f275ac76578db86592d970eaa931cb"}],"manila/tests/share/drivers/emc/plugins/vnx/test_utils.py":[{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"d8304526b81467fed488c3060c37e6ea042e52c4","unresolved":false,"context_lines":[{"line_number":22,"context_line":"    def test_do_match_any(self):"},{"line_number":23,"context_line":"        full \u003d [\u0027cge-1-0\u0027, \u0027cge-1-1\u0027, \u0027cge-2-0\u0027, \u0027cge-3-0\u0027,"},{"line_number":24,"context_line":"                \u0027cge-3-1\u0027, \u0027cge-12-3\u0027]"},{"line_number":25,"context_line":"        matchers \u003d [\u0027cge-?-0\u0027, \u0027cge-3*\u0027]"},{"line_number":26,"context_line":"        matched, unmatched \u003d utils.do_match_any(full, matchers)"},{"line_number":27,"context_line":"        self.assertEqual(set([\u0027cge-1-0\u0027, \u0027cge-2-0\u0027, \u0027cge-3-0\u0027,"},{"line_number":28,"context_line":"                              \u0027cge-3-1\u0027]),"}],"source_content_type":"text/x-python","patch_set":5,"id":"1aa78d24_68a47e4a","line":25,"updated":"2016-07-12 10:58:25.000000000","message":"You should include a matcher that doesn\u0027t match any of the interfaces.","commit_id":"bb4ffdb75e1e7b8f13ce86a1caf6f1a4698a0739"}],"releasenotes/notes/emc_vnx_interface_ports_configuration-00d454b3003ef981.yaml":[{"author":{"_account_id":15100,"name":"zhongjun","email":"jun.zhongjun2@gmail.com","username":"zhongjun2"},"change_message_id":"ce2ee87c47e56c83afa3ea7355b6b7403dcc6537","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - EMC VNX driver supports iterface ports configuration now."},{"line_number":4,"context_line":"    The ports of Data Mover that can be used by share server"},{"line_number":5,"context_line":"    interfaces are configurable."}],"source_content_type":"text/x-yaml","patch_set":8,"id":"1aa78d24_ab71ca46","line":3,"range":{"start_line":3,"start_character":28,"end_line":3,"end_character":36},"updated":"2016-07-14 08:32:01.000000000","message":"s/ iterface /interface ?\nWhat is \u0027iterface ports\u0027?","commit_id":"27a734a5254a2960ab5c7f21e1285ed47ba8fb6f"},{"author":{"_account_id":9988,"name":"Tina Tang","email":"tina.tang@emc.com","username":"Tina"},"change_message_id":"81b293f333298c36022b87f5c4856b420783b313","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - EMC VNX driver supports iterface ports configuration now."},{"line_number":4,"context_line":"    The ports of Data Mover that can be used by share server"},{"line_number":5,"context_line":"    interfaces are configurable."}],"source_content_type":"text/x-yaml","patch_set":8,"id":"1aa78d24_ef53dd37","line":3,"range":{"start_line":3,"start_character":28,"end_line":3,"end_character":36},"in_reply_to":"1aa78d24_ab71ca46","updated":"2016-07-14 08:51:15.000000000","message":"Thanks. It is a typo","commit_id":"27a734a5254a2960ab5c7f21e1285ed47ba8fb6f"}]}
