)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"f9d6634d2f3602a3cfbbbeffb65302beda0b5687","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add neutron support (WORKINPROGRESS)"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Implements blueprint neutron-support"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Change-Id: Ia0103bcda6590a4e387038ec035aee15454cdf48"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"AAAAXH%2F%2FDLM%3D","line":9,"updated":"2014-04-24 11:34:54.000000000","message":"Please write meaningful commit body. \nBecause commit description doesn\u0027t tell:\n\n-  what has been changed?\n\n-  why is it being changed?\n\n-  what\u0027s the value-add of this patch?","commit_id":"270564329db95c23a40b7780bca909994cfd2c79"},{"author":{"_account_id":1870,"name":"Anna Shen","email":"ruiyuan.shen@hp.com","username":"ruiyuan-shen"},"change_message_id":"fa02c5c1121547cfd5d3acab3758557f20998998","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add neutron support (WORKINPROGRESS)"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Implements blueprint neutron-support"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Change-Id: Ia0103bcda6590a4e387038ec035aee15454cdf48"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"7adec928_d3b8c82c","line":9,"in_reply_to":"AAAAXH%2F%2FDLM%3D","updated":"2014-05-22 23:05:45.000000000","message":"Done","commit_id":"270564329db95c23a40b7780bca909994cfd2c79"}],"etc/trove/trove-taskmanager.conf.sample":[{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"afc33c17561fa2cdd6ab7b90d4e8e1427330ecfa","unresolved":false,"context_lines":[{"line_number":99,"context_line":"dns_service_type \u003d dns"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"# Neutron"},{"line_number":102,"context_line":"trove_neutron_support \u003d False"},{"line_number":103,"context_line":"neutron_endpoint_url \u003d https://region-x.geo-y.network.hpcloud.com"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"# Trove Security Groups for Instances"}],"source_content_type":"application/octet-stream","patch_set":15,"id":"9ad9bd40_6d87d2d7","line":102,"updated":"2014-05-06 11:05:39.000000000","message":"No need to add this attribute at all.\n\nplease name add here:\n\nnetwork_manager \u003d trove.network.nova.NovaNetwork","commit_id":"6edf85c50485870e32c4a0071a0b789beab9527f"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"afc33c17561fa2cdd6ab7b90d4e8e1427330ecfa","unresolved":false,"context_lines":[{"line_number":100,"context_line":""},{"line_number":101,"context_line":"# Neutron"},{"line_number":102,"context_line":"trove_neutron_support \u003d False"},{"line_number":103,"context_line":"neutron_endpoint_url \u003d https://region-x.geo-y.network.hpcloud.com"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"# Trove Security Groups for Instances"},{"line_number":106,"context_line":"trove_security_groups_support \u003d True"}],"source_content_type":"application/octet-stream","patch_set":15,"id":"9ad9bd40_cd1e1ebb","line":103,"updated":"2014-05-06 11:05:39.000000000","message":"neutron_url","commit_id":"6edf85c50485870e32c4a0071a0b789beab9527f"},{"author":{"_account_id":1870,"name":"Anna Shen","email":"ruiyuan.shen@hp.com","username":"ruiyuan-shen"},"change_message_id":"84ffa8696dc97b24222d497e00c6f4a7189868ba","unresolved":false,"context_lines":[{"line_number":100,"context_line":""},{"line_number":101,"context_line":"# Neutron"},{"line_number":102,"context_line":"trove_neutron_support \u003d False"},{"line_number":103,"context_line":"neutron_endpoint_url \u003d https://region-x.geo-y.network.hpcloud.com"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"# Trove Security Groups for Instances"},{"line_number":106,"context_line":"trove_security_groups_support \u003d True"}],"source_content_type":"application/octet-stream","patch_set":15,"id":"9ad9bd40_3a97b1ed","line":103,"in_reply_to":"9ad9bd40_cd1e1ebb","updated":"2014-05-22 23:07:58.000000000","message":"endpoint is to distinguish itself among auth_urls. one more word adds readability. thanks for comment though.","commit_id":"6edf85c50485870e32c4a0071a0b789beab9527f"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"d00749a7dfe965a177d47f93eb7cba730f4aca06","unresolved":false,"context_lines":[{"line_number":99,"context_line":"dns_service_type \u003d dns"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"# Neutron"},{"line_number":102,"context_line":"trove_neutron_support \u003d False"},{"line_number":103,"context_line":"neutron_endpoint_url \u003d https://region-x.geo-y.network.hpcloud.com"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"# Trove Security Groups for Instances"}],"source_content_type":"application/octet-stream","patch_set":16,"id":"9ad9bd40_860bf98c","line":102,"updated":"2014-05-07 11:59:10.000000000","message":"no response to previous comments\n\nNo need to add this attribute at all.\n\nplease name add here:\n\nnetwork_manager \u003d trove.network.nova.NovaNetwork","commit_id":"58471abb6044fb7eac4c0820016512dbd4f6c883"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"d00749a7dfe965a177d47f93eb7cba730f4aca06","unresolved":false,"context_lines":[{"line_number":100,"context_line":""},{"line_number":101,"context_line":"# Neutron"},{"line_number":102,"context_line":"trove_neutron_support \u003d False"},{"line_number":103,"context_line":"neutron_endpoint_url \u003d https://region-x.geo-y.network.hpcloud.com"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"# Trove Security Groups for Instances"},{"line_number":106,"context_line":"trove_security_groups_support \u003d True"}],"source_content_type":"application/octet-stream","patch_set":16,"id":"9ad9bd40_c601816b","line":103,"updated":"2014-05-07 11:59:10.000000000","message":"neutron_url","commit_id":"58471abb6044fb7eac4c0820016512dbd4f6c883"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"4b21eddd972c265a814584670f35bc01021f64c0","unresolved":false,"context_lines":[{"line_number":99,"context_line":"dns_service_type \u003d dns"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"# Neutron"},{"line_number":102,"context_line":"trove_neutron_support \u003d False"},{"line_number":103,"context_line":"neutron_endpoint_url \u003d https://region-x.geo-y.network.hpcloud.com"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"# Trove Security Groups for Instances"}],"source_content_type":"application/octet-stream","patch_set":18,"id":"7adec928_5df95e4c","line":102,"updated":"2014-05-08 10:19:38.000000000","message":"no response to previous comments\n\nNo need to add this attribute at all.\n\nplease name add here:\n\nnetwork_manager \u003d trove.network.nova.NovaNetwork","commit_id":"8e9b408a61dd1f35dfce6d5c16428fa92dc9a686"},{"author":{"_account_id":1870,"name":"Anna Shen","email":"ruiyuan.shen@hp.com","username":"ruiyuan-shen"},"change_message_id":"74bc1e4c33fa9c8c84996c4d79de716ab48d3cc2","unresolved":false,"context_lines":[{"line_number":99,"context_line":"dns_service_type \u003d dns"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"# Neutron"},{"line_number":102,"context_line":"trove_neutron_support \u003d False"},{"line_number":103,"context_line":"neutron_endpoint_url \u003d https://region-x.geo-y.network.hpcloud.com"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"# Trove Security Groups for Instances"}],"source_content_type":"application/octet-stream","patch_set":18,"id":"7adec928_583bf7ea","line":102,"in_reply_to":"7adec928_5df95e4c","updated":"2014-05-22 23:05:14.000000000","message":"Done","commit_id":"8e9b408a61dd1f35dfce6d5c16428fa92dc9a686"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"4b21eddd972c265a814584670f35bc01021f64c0","unresolved":false,"context_lines":[{"line_number":100,"context_line":""},{"line_number":101,"context_line":"# Neutron"},{"line_number":102,"context_line":"trove_neutron_support \u003d False"},{"line_number":103,"context_line":"neutron_endpoint_url \u003d https://region-x.geo-y.network.hpcloud.com"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"# Trove Security Groups for Instances"},{"line_number":106,"context_line":"trove_security_groups_support \u003d True"}],"source_content_type":"application/octet-stream","patch_set":18,"id":"7adec928_1d86f6b9","line":103,"updated":"2014-05-08 10:19:38.000000000","message":"neutron_url","commit_id":"8e9b408a61dd1f35dfce6d5c16428fa92dc9a686"},{"author":{"_account_id":1870,"name":"Anna Shen","email":"ruiyuan.shen@hp.com","username":"ruiyuan-shen"},"change_message_id":"74bc1e4c33fa9c8c84996c4d79de716ab48d3cc2","unresolved":false,"context_lines":[{"line_number":100,"context_line":""},{"line_number":101,"context_line":"# Neutron"},{"line_number":102,"context_line":"trove_neutron_support \u003d False"},{"line_number":103,"context_line":"neutron_endpoint_url \u003d https://region-x.geo-y.network.hpcloud.com"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"# Trove Security Groups for Instances"},{"line_number":106,"context_line":"trove_security_groups_support \u003d True"}],"source_content_type":"application/octet-stream","patch_set":18,"id":"7adec928_783ef3db","line":103,"in_reply_to":"7adec928_1d86f6b9","updated":"2014-05-22 23:05:14.000000000","message":"Done","commit_id":"8e9b408a61dd1f35dfce6d5c16428fa92dc9a686"},{"author":{"_account_id":1925,"name":"Vipul Sabhaya","email":"vipuls@gmail.com","username":"vipuls"},"change_message_id":"f12965c58e604d770de251e1101862e45505d382","unresolved":false,"context_lines":[{"line_number":99,"context_line":"dns_service_type \u003d dns"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"# Neutron"},{"line_number":102,"context_line":"neutron_endpoint_url \u003d https://region-x.geo-y.network.hpcloud.com"},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"# Trove Security Groups for Instances"},{"line_number":105,"context_line":"trove_security_groups_support \u003d True"}],"source_content_type":"application/octet-stream","patch_set":20,"id":"7adec928_d307361c","line":102,"updated":"2014-05-20 20:13:17.000000000","message":"we shouldn\u0027t put hpcloud URLs as defaults.  Point it to what it would be in devstack.","commit_id":"11e88068f1f4edb317c21f9e78a4cbca7897670f"},{"author":{"_account_id":1870,"name":"Anna Shen","email":"ruiyuan.shen@hp.com","username":"ruiyuan-shen"},"change_message_id":"e24165c4a3dbd355c0571a2b5da1e84d6d08d8f9","unresolved":false,"context_lines":[{"line_number":99,"context_line":"dns_service_type \u003d dns"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"# Neutron"},{"line_number":102,"context_line":"neutron_endpoint_url \u003d https://region-x.geo-y.network.hpcloud.com"},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"# Trove Security Groups for Instances"},{"line_number":105,"context_line":"trove_security_groups_support \u003d True"}],"source_content_type":"application/octet-stream","patch_set":20,"id":"7adec928_b8aa3b18","line":102,"in_reply_to":"7adec928_d307361c","updated":"2014-05-22 23:05:02.000000000","message":"adjusted to localhost","commit_id":"11e88068f1f4edb317c21f9e78a4cbca7897670f"},{"author":{"_account_id":6160,"name":"Saurabh Surana","email":"saurabh.cloud@gmail.com","username":"saurabh-surana"},"change_message_id":"e29a75c8753fbaa747f66f522461496af4b1758f","unresolved":false,"context_lines":[{"line_number":118,"context_line":""},{"line_number":119,"context_line":"# Neutron"},{"line_number":120,"context_line":"network_driver \u003d trove.network.nova.NovaNetwork"},{"line_number":121,"context_line":"default_trove_networks \u003d"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"# Trove Security Groups for Instances"},{"line_number":124,"context_line":"trove_security_groups_support \u003d True"}],"source_content_type":"application/octet-stream","patch_set":28,"id":"3ae8d1ca_20f9c6e9","line":121,"updated":"2014-05-27 19:07:54.000000000","message":"default_neutron_networks being read in trove/common/cfg.py","commit_id":"16e0975eab7e5de4a16c7d90e775a9c2ac73b19b"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"f3b519c62b3a43b1320df1ca5ac5b9576082146e","unresolved":false,"context_lines":[{"line_number":118,"context_line":""},{"line_number":119,"context_line":"# Neutron"},{"line_number":120,"context_line":"network_driver \u003d trove.network.nova.NovaNetwork"},{"line_number":121,"context_line":"default_trove_networks \u003d"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"# Trove Security Groups for Instances"},{"line_number":124,"context_line":"trove_security_groups_support \u003d True"}],"source_content_type":"application/octet-stream","patch_set":39,"id":"1ae5cdf2_532a3a91","line":121,"updated":"2014-06-16 11:00:01.000000000","message":"default_trove_networks \u003d []\n\nwe should not leave keys without values.","commit_id":"ac8a9ef24d5dc3c67784ace06079d9487a564b2a"},{"author":{"_account_id":1870,"name":"Anna Shen","email":"ruiyuan.shen@hp.com","username":"ruiyuan-shen"},"change_message_id":"932b00d3bfc0cda39413c384e3699603de3eaed0","unresolved":false,"context_lines":[{"line_number":118,"context_line":""},{"line_number":119,"context_line":"# Neutron"},{"line_number":120,"context_line":"network_driver \u003d trove.network.nova.NovaNetwork"},{"line_number":121,"context_line":"default_trove_networks \u003d"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"# Trove Security Groups for Instances"},{"line_number":124,"context_line":"trove_security_groups_support \u003d True"}],"source_content_type":"application/octet-stream","patch_set":39,"id":"baada198_c7a4b30a","line":121,"in_reply_to":"1ae5cdf2_532a3a91","updated":"2014-07-09 00:31:25.000000000","message":"this is the result when \u0027[]\u0027 was assigned to a ListOpt value:\n\n2014-07-08 22:23:37.512 DEBUG trove.openstack.common.service [req-a6e8889d-f208-416e-adda-8547e3e3e663 radmin trove] default_neutron_networks       \u003d [\u0027[]\u0027] from (pid\u003d3625) log_opt_values /usr/local/lib/python2.7/dist-packages/oslo/config/cfg.py:1975","commit_id":"ac8a9ef24d5dc3c67784ace06079d9487a564b2a"},{"author":{"_account_id":5390,"name":"Steve Leon","username":"steve-leon","inactive":true},"change_message_id":"4efdd41fcf591e8e159417db4cb9eae10f12b762","unresolved":false,"context_lines":[{"line_number":134,"context_line":""},{"line_number":135,"context_line":"# Config option for filtering the IP address that DNS uses"},{"line_number":136,"context_line":"network_label_regex \u003d ^private$"},{"line_number":137,"context_line":"#network_label_regex \u003d .* //with neutron enabled"},{"line_number":138,"context_line":"#ip_regex \u003d ^(15.|123.)"},{"line_number":139,"context_line":"#black_list_regex \u003d ^(10.0.0.)"},{"line_number":140,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":42,"id":"baada198_1c9f8e04","line":137,"updated":"2014-07-17 18:34:59.000000000","message":"Did you mean to use \u0027#\u0027 instead of //?\n\nJust to nitpick, can you make the comment \"with neutron enabled\" be more clear and meaningful? Does it mean that it does not work with nova-network?","commit_id":"39c8ee8648a49d8625ba689e78992e1fd65f662d"}],"etc/trove/trove.conf.sample":[{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"afc33c17561fa2cdd6ab7b90d4e8e1427330ecfa","unresolved":false,"context_lines":[{"line_number":115,"context_line":"dns_service_type \u003d dns"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"# Neutron"},{"line_number":118,"context_line":"trove_neutron_support \u003d False"},{"line_number":119,"context_line":"neutron_endpoint_url \u003d https://region-x.geo-y.network.hpcloud.com"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"# Taskmanager queue name"}],"source_content_type":"application/octet-stream","patch_set":15,"id":"9ad9bd40_ed7cc2b7","line":118,"updated":"2014-05-06 11:05:39.000000000","message":"No need to use add it.\n\nUou already defined enough attributes.\n\nAdd the here network_manager instead of trove_neutron_support","commit_id":"6edf85c50485870e32c4a0071a0b789beab9527f"},{"author":{"_account_id":1870,"name":"Anna Shen","email":"ruiyuan.shen@hp.com","username":"ruiyuan-shen"},"change_message_id":"84ffa8696dc97b24222d497e00c6f4a7189868ba","unresolved":false,"context_lines":[{"line_number":115,"context_line":"dns_service_type \u003d dns"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"# Neutron"},{"line_number":118,"context_line":"trove_neutron_support \u003d False"},{"line_number":119,"context_line":"neutron_endpoint_url \u003d https://region-x.geo-y.network.hpcloud.com"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"# Taskmanager queue name"}],"source_content_type":"application/octet-stream","patch_set":15,"id":"7adec928_b345fc16","line":118,"in_reply_to":"9ad9bd40_ed7cc2b7","updated":"2014-05-22 23:07:58.000000000","message":"Done","commit_id":"6edf85c50485870e32c4a0071a0b789beab9527f"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"afc33c17561fa2cdd6ab7b90d4e8e1427330ecfa","unresolved":false,"context_lines":[{"line_number":116,"context_line":""},{"line_number":117,"context_line":"# Neutron"},{"line_number":118,"context_line":"trove_neutron_support \u003d False"},{"line_number":119,"context_line":"neutron_endpoint_url \u003d https://region-x.geo-y.network.hpcloud.com"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"# Taskmanager queue name"},{"line_number":122,"context_line":"taskmanager_queue \u003d taskmanager"}],"source_content_type":"application/octet-stream","patch_set":15,"id":"9ad9bd40_8d6fb62a","line":119,"updated":"2014-05-06 11:05:39.000000000","message":"same","commit_id":"6edf85c50485870e32c4a0071a0b789beab9527f"},{"author":{"_account_id":1870,"name":"Anna Shen","email":"ruiyuan.shen@hp.com","username":"ruiyuan-shen"},"change_message_id":"84ffa8696dc97b24222d497e00c6f4a7189868ba","unresolved":false,"context_lines":[{"line_number":116,"context_line":""},{"line_number":117,"context_line":"# Neutron"},{"line_number":118,"context_line":"trove_neutron_support \u003d False"},{"line_number":119,"context_line":"neutron_endpoint_url \u003d https://region-x.geo-y.network.hpcloud.com"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"# Taskmanager queue name"},{"line_number":122,"context_line":"taskmanager_queue \u003d taskmanager"}],"source_content_type":"application/octet-stream","patch_set":15,"id":"7adec928_d35448cc","line":119,"in_reply_to":"9ad9bd40_8d6fb62a","updated":"2014-05-22 23:07:58.000000000","message":"Done","commit_id":"6edf85c50485870e32c4a0071a0b789beab9527f"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"d00749a7dfe965a177d47f93eb7cba730f4aca06","unresolved":false,"context_lines":[{"line_number":115,"context_line":"dns_service_type \u003d dns"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"# Neutron"},{"line_number":118,"context_line":"trove_neutron_support \u003d False"},{"line_number":119,"context_line":"neutron_endpoint_url \u003d https://region-x.geo-y.network.hpcloud.com"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"# Taskmanager queue name"}],"source_content_type":"application/octet-stream","patch_set":16,"id":"9ad9bd40_e6f92581","line":118,"updated":"2014-05-07 11:59:10.000000000","message":"no response to previous comments\n\nNo need to add this attribute at all.\n\nplease name add here:\n\nnetwork_manager \u003d trove.network.nova.NovaNetwork","commit_id":"58471abb6044fb7eac4c0820016512dbd4f6c883"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"d00749a7dfe965a177d47f93eb7cba730f4aca06","unresolved":false,"context_lines":[{"line_number":116,"context_line":""},{"line_number":117,"context_line":"# Neutron"},{"line_number":118,"context_line":"trove_neutron_support \u003d False"},{"line_number":119,"context_line":"neutron_endpoint_url \u003d https://region-x.geo-y.network.hpcloud.com"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"# Taskmanager queue name"},{"line_number":122,"context_line":"taskmanager_queue \u003d taskmanager"}],"source_content_type":"application/octet-stream","patch_set":16,"id":"9ad9bd40_06f7e98b","line":119,"updated":"2014-05-07 11:59:10.000000000","message":"neutron_url","commit_id":"58471abb6044fb7eac4c0820016512dbd4f6c883"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"4b21eddd972c265a814584670f35bc01021f64c0","unresolved":false,"context_lines":[{"line_number":115,"context_line":"dns_service_type \u003d dns"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"# Neutron"},{"line_number":118,"context_line":"trove_neutron_support \u003d False"},{"line_number":119,"context_line":"neutron_endpoint_url \u003d https://region-x.geo-y.network.hpcloud.com"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"# Taskmanager queue name"}],"source_content_type":"application/octet-stream","patch_set":18,"id":"7adec928_3d93b2fb","line":118,"updated":"2014-05-08 10:19:38.000000000","message":"no response to previous comments\n\nNo need to add this attribute at all.\n\nplease name add here:\n\nnetwork_manager \u003d trove.network.nova.NovaNetwork","commit_id":"8e9b408a61dd1f35dfce6d5c16428fa92dc9a686"},{"author":{"_account_id":1870,"name":"Anna Shen","email":"ruiyuan.shen@hp.com","username":"ruiyuan-shen"},"change_message_id":"74bc1e4c33fa9c8c84996c4d79de716ab48d3cc2","unresolved":false,"context_lines":[{"line_number":115,"context_line":"dns_service_type \u003d dns"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"# Neutron"},{"line_number":118,"context_line":"trove_neutron_support \u003d False"},{"line_number":119,"context_line":"neutron_endpoint_url \u003d https://region-x.geo-y.network.hpcloud.com"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"# Taskmanager queue name"}],"source_content_type":"application/octet-stream","patch_set":18,"id":"7adec928_98249fc7","line":118,"in_reply_to":"7adec928_3d93b2fb","updated":"2014-05-22 23:05:14.000000000","message":"Done","commit_id":"8e9b408a61dd1f35dfce6d5c16428fa92dc9a686"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"4b21eddd972c265a814584670f35bc01021f64c0","unresolved":false,"context_lines":[{"line_number":116,"context_line":""},{"line_number":117,"context_line":"# Neutron"},{"line_number":118,"context_line":"trove_neutron_support \u003d False"},{"line_number":119,"context_line":"neutron_endpoint_url \u003d https://region-x.geo-y.network.hpcloud.com"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"# Taskmanager queue name"},{"line_number":122,"context_line":"taskmanager_queue \u003d taskmanager"}],"source_content_type":"application/octet-stream","patch_set":18,"id":"7adec928_5d907eec","line":119,"updated":"2014-05-08 10:19:38.000000000","message":"neutron_url","commit_id":"8e9b408a61dd1f35dfce6d5c16428fa92dc9a686"},{"author":{"_account_id":1870,"name":"Anna Shen","email":"ruiyuan.shen@hp.com","username":"ruiyuan-shen"},"change_message_id":"74bc1e4c33fa9c8c84996c4d79de716ab48d3cc2","unresolved":false,"context_lines":[{"line_number":116,"context_line":""},{"line_number":117,"context_line":"# Neutron"},{"line_number":118,"context_line":"trove_neutron_support \u003d False"},{"line_number":119,"context_line":"neutron_endpoint_url \u003d https://region-x.geo-y.network.hpcloud.com"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"# Taskmanager queue name"},{"line_number":122,"context_line":"taskmanager_queue \u003d taskmanager"}],"source_content_type":"application/octet-stream","patch_set":18,"id":"7adec928_b81f9b6f","line":119,"in_reply_to":"7adec928_5d907eec","updated":"2014-05-22 23:05:14.000000000","message":"Done","commit_id":"8e9b408a61dd1f35dfce6d5c16428fa92dc9a686"},{"author":{"_account_id":1925,"name":"Vipul Sabhaya","email":"vipuls@gmail.com","username":"vipuls"},"change_message_id":"f12965c58e604d770de251e1101862e45505d382","unresolved":false,"context_lines":[{"line_number":115,"context_line":"dns_service_type \u003d dns"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"# Neutron"},{"line_number":118,"context_line":"neutron_endpoint_url \u003d https://region-x.geo-y.network.hpcloud.com"},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"# Taskmanager queue name"},{"line_number":121,"context_line":"taskmanager_queue \u003d taskmanager"}],"source_content_type":"application/octet-stream","patch_set":20,"id":"7adec928_8508012a","line":118,"updated":"2014-05-20 20:13:17.000000000","message":"use devstack url, instead of hpcloud.","commit_id":"11e88068f1f4edb317c21f9e78a4cbca7897670f"},{"author":{"_account_id":1870,"name":"Anna Shen","email":"ruiyuan.shen@hp.com","username":"ruiyuan-shen"},"change_message_id":"e24165c4a3dbd355c0571a2b5da1e84d6d08d8f9","unresolved":false,"context_lines":[{"line_number":115,"context_line":"dns_service_type \u003d dns"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"# Neutron"},{"line_number":118,"context_line":"neutron_endpoint_url \u003d https://region-x.geo-y.network.hpcloud.com"},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"# Taskmanager queue name"},{"line_number":121,"context_line":"taskmanager_queue \u003d taskmanager"}],"source_content_type":"application/octet-stream","patch_set":20,"id":"7adec928_38662b2a","line":118,"in_reply_to":"7adec928_8508012a","updated":"2014-05-22 23:05:02.000000000","message":"adjusted to localhost","commit_id":"11e88068f1f4edb317c21f9e78a4cbca7897670f"},{"author":{"_account_id":5390,"name":"Steve Leon","username":"steve-leon","inactive":true},"change_message_id":"4efdd41fcf591e8e159417db4cb9eae10f12b762","unresolved":false,"context_lines":[{"line_number":97,"context_line":""},{"line_number":98,"context_line":"# Config option for showing the IP address that nova doles out"},{"line_number":99,"context_line":"network_label_regex \u003d ^private$"},{"line_number":100,"context_line":"#network_label_regex \u003d .* //with neutron enabled"},{"line_number":101,"context_line":"#ip_regex \u003d ^(15.|123.)"},{"line_number":102,"context_line":"#black_list_regex \u003d ^10.0.0."},{"line_number":103,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":42,"id":"baada198_dcbb5673","line":100,"updated":"2014-07-17 18:34:59.000000000","message":"Same here","commit_id":"39c8ee8648a49d8625ba689e78992e1fd65f662d"}],"requirements.txt":[{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"47c8e81dcbd0fc7267bab77a0c27df568abf46e1","unresolved":false,"context_lines":[{"line_number":17,"context_line":"python-keystoneclient\u003e\u003d0.7.0"},{"line_number":18,"context_line":"python-swiftclient\u003e\u003d1.6"},{"line_number":19,"context_line":"python-designateclient\u003e\u003d1.0.0"},{"line_number":20,"context_line":"python-neutronclient\u003e\u003d2.3.4"},{"line_number":21,"context_line":"iso8601\u003e\u003d0.1.9"},{"line_number":22,"context_line":"jsonschema\u003e\u003d2.0.0,\u003c3.0.0"},{"line_number":23,"context_line":"Jinja2"}],"source_content_type":"text/plain","patch_set":3,"id":"AAAAXH%2F%2Frnc%3D","line":20,"updated":"2014-04-18 09:26:23.000000000","message":"python-neutronclient\u003e\u003d2.3.4,\u003c3","commit_id":"9128a0700de4481cec4530c5b98c50be04c8d2f5"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"913626d5e2a379a8d91553f92283ec8b6b9b9969","unresolved":false,"context_lines":[{"line_number":17,"context_line":"python-keystoneclient\u003e\u003d0.7.0"},{"line_number":18,"context_line":"python-swiftclient\u003e\u003d1.6"},{"line_number":19,"context_line":"python-designateclient\u003e\u003d1.0.0"},{"line_number":20,"context_line":"python-neutronclient\u003e\u003d2.3.4"},{"line_number":21,"context_line":"iso8601\u003e\u003d0.1.9"},{"line_number":22,"context_line":"jsonschema\u003e\u003d2.0.0,\u003c3.0.0"},{"line_number":23,"context_line":"Jinja2"}],"source_content_type":"text/plain","patch_set":5,"id":"AAAAXH%2F%2FRns%3D","line":20,"updated":"2014-04-22 20:30:05.000000000","message":"ython-neutronclient\u003e\u003d2.3.4,\u003c3","commit_id":"c27802c9632d217dd76c607f5ce42ba5fcf2e9a0"},{"author":{"_account_id":1870,"name":"Anna Shen","email":"ruiyuan.shen@hp.com","username":"ruiyuan-shen"},"change_message_id":"0a6bbb01f2589f58d4ee488b0fefe4f7f3aa1243","unresolved":false,"context_lines":[{"line_number":17,"context_line":"python-keystoneclient\u003e\u003d0.7.0"},{"line_number":18,"context_line":"python-swiftclient\u003e\u003d1.6"},{"line_number":19,"context_line":"python-designateclient\u003e\u003d1.0.0"},{"line_number":20,"context_line":"python-neutronclient\u003e\u003d2.3.4"},{"line_number":21,"context_line":"iso8601\u003e\u003d0.1.9"},{"line_number":22,"context_line":"jsonschema\u003e\u003d2.0.0,\u003c3.0.0"},{"line_number":23,"context_line":"Jinja2"}],"source_content_type":"text/plain","patch_set":5,"id":"AAAAXH%2F%2FRQE%3D","line":20,"in_reply_to":"AAAAXH%2F%2FRYM%3D","updated":"2014-04-22 21:13:09.000000000","message":"thanks a lot!","commit_id":"c27802c9632d217dd76c607f5ce42ba5fcf2e9a0"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"c361f59bce73a9f8ba843d30ff50fcb68119dc0c","unresolved":false,"context_lines":[{"line_number":17,"context_line":"python-keystoneclient\u003e\u003d0.7.0"},{"line_number":18,"context_line":"python-swiftclient\u003e\u003d1.6"},{"line_number":19,"context_line":"python-designateclient\u003e\u003d1.0.0"},{"line_number":20,"context_line":"python-neutronclient\u003e\u003d2.3.4"},{"line_number":21,"context_line":"iso8601\u003e\u003d0.1.9"},{"line_number":22,"context_line":"jsonschema\u003e\u003d2.0.0,\u003c3.0.0"},{"line_number":23,"context_line":"Jinja2"}],"source_content_type":"text/plain","patch_set":5,"id":"AAAAXH%2F%2FRYM%3D","line":20,"in_reply_to":"AAAAXH%2F%2FRZQ%3D","updated":"2014-04-22 20:50:55.000000000","message":"https://github.com/openstack/requirements/blob/master/global-requirements.txt#L90","commit_id":"c27802c9632d217dd76c607f5ce42ba5fcf2e9a0"},{"author":{"_account_id":1870,"name":"Anna Shen","email":"ruiyuan.shen@hp.com","username":"ruiyuan-shen"},"change_message_id":"4b2b17f1b2fd275772a5136acfd6419c332f2455","unresolved":false,"context_lines":[{"line_number":17,"context_line":"python-keystoneclient\u003e\u003d0.7.0"},{"line_number":18,"context_line":"python-swiftclient\u003e\u003d1.6"},{"line_number":19,"context_line":"python-designateclient\u003e\u003d1.0.0"},{"line_number":20,"context_line":"python-neutronclient\u003e\u003d2.3.4"},{"line_number":21,"context_line":"iso8601\u003e\u003d0.1.9"},{"line_number":22,"context_line":"jsonschema\u003e\u003d2.0.0,\u003c3.0.0"},{"line_number":23,"context_line":"Jinja2"}],"source_content_type":"text/plain","patch_set":5,"id":"AAAAXH%2F%2FRZQ%3D","line":20,"in_reply_to":"AAAAXH%2F%2FRns%3D","updated":"2014-04-22 20:46:54.000000000","message":"can you point me out why \"\u003c3\" is necessary?","commit_id":"c27802c9632d217dd76c607f5ce42ba5fcf2e9a0"}],"trove/common/cfg.py":[{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"afc33c17561fa2cdd6ab7b90d4e8e1427330ecfa","unresolved":false,"context_lines":[{"line_number":249,"context_line":"                    \u0027max_header_line may need to be increased when using \u0027"},{"line_number":250,"context_line":"                    \u0027large tokens (typically those generated by the \u0027"},{"line_number":251,"context_line":"                    \u0027Keystone v3 API with big service catalogs).\u0027),"},{"line_number":252,"context_line":"    cfg.BoolOpt(\u0027trove_neutron_support\u0027, default\u003dFalse),"},{"line_number":253,"context_line":"    cfg.StrOpt(\u0027neutron_endpoint_url\u0027, default\u003d\"http://localhost:9696/V2.0\"),"},{"line_number":254,"context_line":"    cfg.ListOpt(\u0027default_neutron_networks\u0027,"},{"line_number":255,"context_line":"                default\u003d[],"}],"source_content_type":"text/x-python","patch_set":15,"id":"9ad9bd40_2d522a3b","line":252,"updated":"2014-05-06 11:05:39.000000000","message":"no need to add it","commit_id":"6edf85c50485870e32c4a0071a0b789beab9527f"},{"author":{"_account_id":1870,"name":"Anna Shen","email":"ruiyuan.shen@hp.com","username":"ruiyuan-shen"},"change_message_id":"84ffa8696dc97b24222d497e00c6f4a7189868ba","unresolved":false,"context_lines":[{"line_number":249,"context_line":"                    \u0027max_header_line may need to be increased when using \u0027"},{"line_number":250,"context_line":"                    \u0027large tokens (typically those generated by the \u0027"},{"line_number":251,"context_line":"                    \u0027Keystone v3 API with big service catalogs).\u0027),"},{"line_number":252,"context_line":"    cfg.BoolOpt(\u0027trove_neutron_support\u0027, default\u003dFalse),"},{"line_number":253,"context_line":"    cfg.StrOpt(\u0027neutron_endpoint_url\u0027, default\u003d\"http://localhost:9696/V2.0\"),"},{"line_number":254,"context_line":"    cfg.ListOpt(\u0027default_neutron_networks\u0027,"},{"line_number":255,"context_line":"                default\u003d[],"}],"source_content_type":"text/x-python","patch_set":15,"id":"7adec928_135eb0e9","line":252,"in_reply_to":"9ad9bd40_2d522a3b","updated":"2014-05-22 23:07:58.000000000","message":"Done","commit_id":"6edf85c50485870e32c4a0071a0b789beab9527f"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"afc33c17561fa2cdd6ab7b90d4e8e1427330ecfa","unresolved":false,"context_lines":[{"line_number":250,"context_line":"                    \u0027large tokens (typically those generated by the \u0027"},{"line_number":251,"context_line":"                    \u0027Keystone v3 API with big service catalogs).\u0027),"},{"line_number":252,"context_line":"    cfg.BoolOpt(\u0027trove_neutron_support\u0027, default\u003dFalse),"},{"line_number":253,"context_line":"    cfg.StrOpt(\u0027neutron_endpoint_url\u0027, default\u003d\"http://localhost:9696/V2.0\"),"},{"line_number":254,"context_line":"    cfg.ListOpt(\u0027default_neutron_networks\u0027,"},{"line_number":255,"context_line":"                default\u003d[],"},{"line_number":256,"context_line":"                help\u003d\u0027Trove owned network ID which should be attached\u0027"}],"source_content_type":"text/x-python","patch_set":15,"id":"9ad9bd40_4d43ee6b","line":253,"updated":"2014-05-06 11:05:39.000000000","message":"neutron_url","commit_id":"6edf85c50485870e32c4a0071a0b789beab9527f"},{"author":{"_account_id":1870,"name":"Anna Shen","email":"ruiyuan.shen@hp.com","username":"ruiyuan-shen"},"change_message_id":"84ffa8696dc97b24222d497e00c6f4a7189868ba","unresolved":false,"context_lines":[{"line_number":250,"context_line":"                    \u0027large tokens (typically those generated by the \u0027"},{"line_number":251,"context_line":"                    \u0027Keystone v3 API with big service catalogs).\u0027),"},{"line_number":252,"context_line":"    cfg.BoolOpt(\u0027trove_neutron_support\u0027, default\u003dFalse),"},{"line_number":253,"context_line":"    cfg.StrOpt(\u0027neutron_endpoint_url\u0027, default\u003d\"http://localhost:9696/V2.0\"),"},{"line_number":254,"context_line":"    cfg.ListOpt(\u0027default_neutron_networks\u0027,"},{"line_number":255,"context_line":"                default\u003d[],"},{"line_number":256,"context_line":"                help\u003d\u0027Trove owned network ID which should be attached\u0027"}],"source_content_type":"text/x-python","patch_set":15,"id":"7adec928_3361eca8","line":253,"in_reply_to":"9ad9bd40_4d43ee6b","updated":"2014-05-22 23:07:58.000000000","message":"Done","commit_id":"6edf85c50485870e32c4a0071a0b789beab9527f"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"afc33c17561fa2cdd6ab7b90d4e8e1427330ecfa","unresolved":false,"context_lines":[{"line_number":251,"context_line":"                    \u0027Keystone v3 API with big service catalogs).\u0027),"},{"line_number":252,"context_line":"    cfg.BoolOpt(\u0027trove_neutron_support\u0027, default\u003dFalse),"},{"line_number":253,"context_line":"    cfg.StrOpt(\u0027neutron_endpoint_url\u0027, default\u003d\"http://localhost:9696/V2.0\"),"},{"line_number":254,"context_line":"    cfg.ListOpt(\u0027default_neutron_networks\u0027,"},{"line_number":255,"context_line":"                default\u003d[],"},{"line_number":256,"context_line":"                help\u003d\u0027Trove owned network ID which should be attached\u0027"},{"line_number":257,"context_line":"                     \u0027 to instance.\u0027),"}],"source_content_type":"text/x-python","patch_set":15,"id":"9ad9bd40_6d48b287","line":254,"updated":"2014-05-06 11:05:39.000000000","message":"no need to move it","commit_id":"6edf85c50485870e32c4a0071a0b789beab9527f"},{"author":{"_account_id":1870,"name":"Anna Shen","email":"ruiyuan.shen@hp.com","username":"ruiyuan-shen"},"change_message_id":"84ffa8696dc97b24222d497e00c6f4a7189868ba","unresolved":false,"context_lines":[{"line_number":251,"context_line":"                    \u0027Keystone v3 API with big service catalogs).\u0027),"},{"line_number":252,"context_line":"    cfg.BoolOpt(\u0027trove_neutron_support\u0027, default\u003dFalse),"},{"line_number":253,"context_line":"    cfg.StrOpt(\u0027neutron_endpoint_url\u0027, default\u003d\"http://localhost:9696/V2.0\"),"},{"line_number":254,"context_line":"    cfg.ListOpt(\u0027default_neutron_networks\u0027,"},{"line_number":255,"context_line":"                default\u003d[],"},{"line_number":256,"context_line":"                help\u003d\u0027Trove owned network ID which should be attached\u0027"},{"line_number":257,"context_line":"                     \u0027 to instance.\u0027),"}],"source_content_type":"text/x-python","patch_set":15,"id":"7adec928_535838fa","line":254,"in_reply_to":"9ad9bd40_6d48b287","updated":"2014-05-22 23:07:58.000000000","message":"Done","commit_id":"6edf85c50485870e32c4a0071a0b789beab9527f"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"afc33c17561fa2cdd6ab7b90d4e8e1427330ecfa","unresolved":false,"context_lines":[{"line_number":255,"context_line":"                default\u003d[],"},{"line_number":256,"context_line":"                help\u003d\u0027Trove owned network ID which should be attached\u0027"},{"line_number":257,"context_line":"                     \u0027 to instance.\u0027),"},{"line_number":258,"context_line":"    cfg.StrOpt(\u0027network_driver\u0027,"},{"line_number":259,"context_line":"               default\u003d\u0027trove.network.nova.NovaNetwork\u0027,"},{"line_number":260,"context_line":"               help\u003d\"Describes the actual network manager used for \""},{"line_number":261,"context_line":"                    \"the network attributes management \""}],"source_content_type":"text/x-python","patch_set":15,"id":"9ad9bd40_4dd04ec9","line":258,"updated":"2014-05-06 11:05:39.000000000","message":"network driver is enough, no need to add trove_nuetron_support, because if you set the network_driver as trove.network.nova.NeutronManager - it will use Neutron independently from trove_neutron_support","commit_id":"6edf85c50485870e32c4a0071a0b789beab9527f"},{"author":{"_account_id":1870,"name":"Anna Shen","email":"ruiyuan.shen@hp.com","username":"ruiyuan-shen"},"change_message_id":"84ffa8696dc97b24222d497e00c6f4a7189868ba","unresolved":false,"context_lines":[{"line_number":255,"context_line":"                default\u003d[],"},{"line_number":256,"context_line":"                help\u003d\u0027Trove owned network ID which should be attached\u0027"},{"line_number":257,"context_line":"                     \u0027 to instance.\u0027),"},{"line_number":258,"context_line":"    cfg.StrOpt(\u0027network_driver\u0027,"},{"line_number":259,"context_line":"               default\u003d\u0027trove.network.nova.NovaNetwork\u0027,"},{"line_number":260,"context_line":"               help\u003d\"Describes the actual network manager used for \""},{"line_number":261,"context_line":"                    \"the network attributes management \""}],"source_content_type":"text/x-python","patch_set":15,"id":"7adec928_735b74f6","line":258,"in_reply_to":"9ad9bd40_4dd04ec9","updated":"2014-05-22 23:07:58.000000000","message":"Done","commit_id":"6edf85c50485870e32c4a0071a0b789beab9527f"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"d00749a7dfe965a177d47f93eb7cba730f4aca06","unresolved":false,"context_lines":[{"line_number":249,"context_line":"                    \u0027max_header_line may need to be increased when using \u0027"},{"line_number":250,"context_line":"                    \u0027large tokens (typically those generated by the \u0027"},{"line_number":251,"context_line":"                    \u0027Keystone v3 API with big service catalogs).\u0027),"},{"line_number":252,"context_line":"    cfg.BoolOpt(\u0027trove_neutron_support\u0027, default\u003dFalse),"},{"line_number":253,"context_line":"    cfg.StrOpt(\u0027neutron_endpoint_url\u0027, default\u003d\"http://localhost:9696/V2.0\"),"},{"line_number":254,"context_line":"    cfg.ListOpt(\u0027default_neutron_networks\u0027,"},{"line_number":255,"context_line":"                default\u003d[],"}],"source_content_type":"text/x-python","patch_set":16,"id":"9ad9bd40_26f06d90","line":252,"updated":"2014-05-07 11:59:10.000000000","message":"no need to add it","commit_id":"58471abb6044fb7eac4c0820016512dbd4f6c883"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"d00749a7dfe965a177d47f93eb7cba730f4aca06","unresolved":false,"context_lines":[{"line_number":250,"context_line":"                    \u0027large tokens (typically those generated by the \u0027"},{"line_number":251,"context_line":"                    \u0027Keystone v3 API with big service catalogs).\u0027),"},{"line_number":252,"context_line":"    cfg.BoolOpt(\u0027trove_neutron_support\u0027, default\u003dFalse),"},{"line_number":253,"context_line":"    cfg.StrOpt(\u0027neutron_endpoint_url\u0027, default\u003d\"http://localhost:9696/V2.0\"),"},{"line_number":254,"context_line":"    cfg.ListOpt(\u0027default_neutron_networks\u0027,"},{"line_number":255,"context_line":"                default\u003d[],"},{"line_number":256,"context_line":"                help\u003d\u0027Trove owned network ID which should be attached\u0027"}],"source_content_type":"text/x-python","patch_set":16,"id":"9ad9bd40_46ed71b6","line":253,"updated":"2014-05-07 11:59:10.000000000","message":"neutron_url","commit_id":"58471abb6044fb7eac4c0820016512dbd4f6c883"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"d00749a7dfe965a177d47f93eb7cba730f4aca06","unresolved":false,"context_lines":[{"line_number":251,"context_line":"                    \u0027Keystone v3 API with big service catalogs).\u0027),"},{"line_number":252,"context_line":"    cfg.BoolOpt(\u0027trove_neutron_support\u0027, default\u003dFalse),"},{"line_number":253,"context_line":"    cfg.StrOpt(\u0027neutron_endpoint_url\u0027, default\u003d\"http://localhost:9696/V2.0\"),"},{"line_number":254,"context_line":"    cfg.ListOpt(\u0027default_neutron_networks\u0027,"},{"line_number":255,"context_line":"                default\u003d[],"},{"line_number":256,"context_line":"                help\u003d\u0027Trove owned network ID which should be attached\u0027"},{"line_number":257,"context_line":"                     \u0027 to instance.\u0027),"}],"source_content_type":"text/x-python","patch_set":16,"id":"9ad9bd40_662d15fe","line":254,"updated":"2014-05-07 11:59:10.000000000","message":"no need to move it","commit_id":"58471abb6044fb7eac4c0820016512dbd4f6c883"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"d00749a7dfe965a177d47f93eb7cba730f4aca06","unresolved":false,"context_lines":[{"line_number":255,"context_line":"                default\u003d[],"},{"line_number":256,"context_line":"                help\u003d\u0027Trove owned network ID which should be attached\u0027"},{"line_number":257,"context_line":"                     \u0027 to instance.\u0027),"},{"line_number":258,"context_line":"    cfg.StrOpt(\u0027network_driver\u0027,"},{"line_number":259,"context_line":"               default\u003d\u0027trove.network.nova.NovaNetwork\u0027,"},{"line_number":260,"context_line":"               help\u003d\"Describes the actual network manager used for \""},{"line_number":261,"context_line":"                    \"the network attributes management \""}],"source_content_type":"text/x-python","patch_set":16,"id":"9ad9bd40_8632195d","line":258,"updated":"2014-05-07 11:59:10.000000000","message":"network driver is enough, no need to add trove_nuetron_support, because if you set the network_driver as trove.network.nova.NeutronManager - it will use Neutron independently from trove_neutron_support","commit_id":"58471abb6044fb7eac4c0820016512dbd4f6c883"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"4b21eddd972c265a814584670f35bc01021f64c0","unresolved":false,"context_lines":[{"line_number":249,"context_line":"                    \u0027max_header_line may need to be increased when using \u0027"},{"line_number":250,"context_line":"                    \u0027large tokens (typically those generated by the \u0027"},{"line_number":251,"context_line":"                    \u0027Keystone v3 API with big service catalogs).\u0027),"},{"line_number":252,"context_line":"    cfg.BoolOpt(\u0027trove_neutron_support\u0027, default\u003dFalse),"},{"line_number":253,"context_line":"    cfg.StrOpt(\u0027neutron_endpoint_url\u0027, default\u003d\"http://localhost:9696/V2.0\"),"},{"line_number":254,"context_line":"    cfg.ListOpt(\u0027default_neutron_networks\u0027,"},{"line_number":255,"context_line":"                default\u003d[],"}],"source_content_type":"text/x-python","patch_set":18,"id":"7adec928_9dc126e7","line":252,"updated":"2014-05-08 10:19:38.000000000","message":"undocumented configuration attribute\n\nNo need to add this attribute at all.\n\nplease name add here:\n\nnetwork_manager \u003d trove.network.nova.NovaNetwork\n\nEven more, \n\ntrove_neutron_support not used anywhere over the code","commit_id":"8e9b408a61dd1f35dfce6d5c16428fa92dc9a686"},{"author":{"_account_id":1870,"name":"Anna Shen","email":"ruiyuan.shen@hp.com","username":"ruiyuan-shen"},"change_message_id":"74bc1e4c33fa9c8c84996c4d79de716ab48d3cc2","unresolved":false,"context_lines":[{"line_number":249,"context_line":"                    \u0027max_header_line may need to be increased when using \u0027"},{"line_number":250,"context_line":"                    \u0027large tokens (typically those generated by the \u0027"},{"line_number":251,"context_line":"                    \u0027Keystone v3 API with big service catalogs).\u0027),"},{"line_number":252,"context_line":"    cfg.BoolOpt(\u0027trove_neutron_support\u0027, default\u003dFalse),"},{"line_number":253,"context_line":"    cfg.StrOpt(\u0027neutron_endpoint_url\u0027, default\u003d\"http://localhost:9696/V2.0\"),"},{"line_number":254,"context_line":"    cfg.ListOpt(\u0027default_neutron_networks\u0027,"},{"line_number":255,"context_line":"                default\u003d[],"}],"source_content_type":"text/x-python","patch_set":18,"id":"7adec928_d82e27a5","line":252,"in_reply_to":"7adec928_9dc126e7","updated":"2014-05-22 23:05:14.000000000","message":"Done","commit_id":"8e9b408a61dd1f35dfce6d5c16428fa92dc9a686"},{"author":{"_account_id":1925,"name":"Vipul Sabhaya","email":"vipuls@gmail.com","username":"vipuls"},"change_message_id":"f12965c58e604d770de251e1101862e45505d382","unresolved":false,"context_lines":[{"line_number":250,"context_line":"                    \u0027large tokens (typically those generated by the \u0027"},{"line_number":251,"context_line":"                    \u0027Keystone v3 API with big service catalogs).\u0027),"},{"line_number":252,"context_line":"    cfg.StrOpt(\u0027neutron_endpoint_url\u0027, default\u003d\"http://localhost:9696/V2.0\"),"},{"line_number":253,"context_line":"    cfg.ListOpt(\u0027default_neutron_networks\u0027,"},{"line_number":254,"context_line":"                default\u003d[],"},{"line_number":255,"context_line":"                help\u003d\u0027Trove owned network ID which should be attached\u0027"},{"line_number":256,"context_line":"                     \u0027 to instance.\u0027),"}],"source_content_type":"text/x-python","patch_set":20,"id":"7adec928_c56689ee","line":253,"updated":"2014-05-20 20:13:17.000000000","message":"Please change this to \u0027neutron_trove_management_network\u0027 or something similar.","commit_id":"11e88068f1f4edb317c21f9e78a4cbca7897670f"},{"author":{"_account_id":1870,"name":"Anna Shen","email":"ruiyuan.shen@hp.com","username":"ruiyuan-shen"},"change_message_id":"e24165c4a3dbd355c0571a2b5da1e84d6d08d8f9","unresolved":false,"context_lines":[{"line_number":250,"context_line":"                    \u0027large tokens (typically those generated by the \u0027"},{"line_number":251,"context_line":"                    \u0027Keystone v3 API with big service catalogs).\u0027),"},{"line_number":252,"context_line":"    cfg.StrOpt(\u0027neutron_endpoint_url\u0027, default\u003d\"http://localhost:9696/V2.0\"),"},{"line_number":253,"context_line":"    cfg.ListOpt(\u0027default_neutron_networks\u0027,"},{"line_number":254,"context_line":"                default\u003d[],"},{"line_number":255,"context_line":"                help\u003d\u0027Trove owned network ID which should be attached\u0027"},{"line_number":256,"context_line":"                     \u0027 to instance.\u0027),"}],"source_content_type":"text/x-python","patch_set":20,"id":"7adec928_98765fd7","line":253,"in_reply_to":"7adec928_c56689ee","updated":"2014-05-22 23:05:02.000000000","message":"Done","commit_id":"11e88068f1f4edb317c21f9e78a4cbca7897670f"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"f3b519c62b3a43b1320df1ca5ac5b9576082146e","unresolved":false,"context_lines":[{"line_number":264,"context_line":"                    \u0027max_header_line may need to be increased when using \u0027"},{"line_number":265,"context_line":"                    \u0027large tokens (typically those generated by the \u0027"},{"line_number":266,"context_line":"                    \u0027Keystone v3 API with big service catalogs).\u0027),"},{"line_number":267,"context_line":"    cfg.ListOpt(\u0027default_neutron_networks\u0027,"},{"line_number":268,"context_line":"                default\u003d[],"},{"line_number":269,"context_line":"                help\u003d\u0027Trove owned network ID which should be attached\u0027"},{"line_number":270,"context_line":"                     \u0027 to instance.\u0027),"}],"source_content_type":"text/x-python","patch_set":39,"id":"1ae5cdf2_b607ec17","line":267,"updated":"2014-06-16 11:00:01.000000000","message":"why it was moved ?","commit_id":"ac8a9ef24d5dc3c67784ace06079d9487a564b2a"},{"author":{"_account_id":1870,"name":"Anna Shen","email":"ruiyuan.shen@hp.com","username":"ruiyuan-shen"},"change_message_id":"932b00d3bfc0cda39413c384e3699603de3eaed0","unresolved":false,"context_lines":[{"line_number":264,"context_line":"                    \u0027max_header_line may need to be increased when using \u0027"},{"line_number":265,"context_line":"                    \u0027large tokens (typically those generated by the \u0027"},{"line_number":266,"context_line":"                    \u0027Keystone v3 API with big service catalogs).\u0027),"},{"line_number":267,"context_line":"    cfg.ListOpt(\u0027default_neutron_networks\u0027,"},{"line_number":268,"context_line":"                default\u003d[],"},{"line_number":269,"context_line":"                help\u003d\u0027Trove owned network ID which should be attached\u0027"},{"line_number":270,"context_line":"                     \u0027 to instance.\u0027),"}],"source_content_type":"text/x-python","patch_set":39,"id":"baada198_932a047d","line":267,"in_reply_to":"1ae5cdf2_b607ec17","updated":"2014-07-09 00:31:25.000000000","message":"so it can stay with network_driver and sitting on the bottom.","commit_id":"ac8a9ef24d5dc3c67784ace06079d9487a564b2a"},{"author":{"_account_id":5293,"name":"Nikhil","email":"SlickNik@gmail.com","username":"slicknik"},"change_message_id":"d262919df03d292ab0ee6f8b6a64dc960eec6293","unresolved":false,"context_lines":[{"line_number":270,"context_line":"    cfg.ListOpt(\u0027default_neutron_networks\u0027,"},{"line_number":271,"context_line":"                default\u003d[],"},{"line_number":272,"context_line":"                help\u003d\u0027Trove owned network ID which should be attached\u0027"},{"line_number":273,"context_line":"                     \u0027 to instance.\u0027),"},{"line_number":274,"context_line":"    cfg.StrOpt(\u0027network_driver\u0027,"},{"line_number":275,"context_line":"               default\u003d\u0027trove.network.nova.NovaNetwork\u0027,"},{"line_number":276,"context_line":"               help\u003d\"Describes the actual network manager used for \""}],"source_content_type":"text/x-python","patch_set":42,"id":"baada198_8223e556","line":273,"updated":"2014-07-17 09:30:27.000000000","message":"The older help text was more descriptive. Also, we don\u0027t need to move this option from it\u0027s original location (makes the diff easier to read)","commit_id":"39c8ee8648a49d8625ba689e78992e1fd65f662d"},{"author":{"_account_id":5293,"name":"Nikhil","email":"SlickNik@gmail.com","username":"slicknik"},"change_message_id":"d262919df03d292ab0ee6f8b6a64dc960eec6293","unresolved":false,"context_lines":[{"line_number":274,"context_line":"    cfg.StrOpt(\u0027network_driver\u0027,"},{"line_number":275,"context_line":"               default\u003d\u0027trove.network.nova.NovaNetwork\u0027,"},{"line_number":276,"context_line":"               help\u003d\"Describes the actual network manager used for \""},{"line_number":277,"context_line":"                    \"the network attributes management \""},{"line_number":278,"context_line":"                    \"(security groups, floating IPs, etc.)\")"},{"line_number":279,"context_line":"]"},{"line_number":280,"context_line":""}],"source_content_type":"text/x-python","patch_set":42,"id":"baada198_75d0b8c9","line":277,"updated":"2014-07-17 09:30:27.000000000","message":"\"used for network attributes management\" or \"used for the  management of network attributes\"","commit_id":"39c8ee8648a49d8625ba689e78992e1fd65f662d"}],"trove/common/models.py":[{"author":{"_account_id":1925,"name":"Vipul Sabhaya","email":"vipuls@gmail.com","username":"vipuls"},"change_message_id":"f12965c58e604d770de251e1101862e45505d382","unresolved":false,"context_lines":[{"line_number":105,"context_line":"    @classmethod"},{"line_number":106,"context_line":"    def get_client(cls, context):"},{"line_number":107,"context_line":"        if not cls._client:"},{"line_number":108,"context_line":"            cls._client \u003d remote.network_client(context)"},{"line_number":109,"context_line":"        return cls._client"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":""}],"source_content_type":"text/x-python","patch_set":20,"id":"7adec928_45e8b916","line":108,"updated":"2014-05-20 20:13:17.000000000","message":"Why are we caching the client here?  to be consistent, please create a neutron client like any other client.","commit_id":"11e88068f1f4edb317c21f9e78a4cbca7897670f"},{"author":{"_account_id":1870,"name":"Anna Shen","email":"ruiyuan.shen@hp.com","username":"ruiyuan-shen"},"change_message_id":"e24165c4a3dbd355c0571a2b5da1e84d6d08d8f9","unresolved":false,"context_lines":[{"line_number":105,"context_line":"    @classmethod"},{"line_number":106,"context_line":"    def get_client(cls, context):"},{"line_number":107,"context_line":"        if not cls._client:"},{"line_number":108,"context_line":"            cls._client \u003d remote.network_client(context)"},{"line_number":109,"context_line":"        return cls._client"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":""}],"source_content_type":"text/x-python","patch_set":20,"id":"7adec928_f87be3bb","line":108,"in_reply_to":"7adec928_45e8b916","updated":"2014-05-22 23:05:02.000000000","message":"Done","commit_id":"11e88068f1f4edb317c21f9e78a4cbca7897670f"},{"author":{"_account_id":11316,"name":"Steve Leon","email":"kokhang@gmail.com","username":"kokhang"},"change_message_id":"341a8b2e262095d8d8c15e15f96610ba10633826","unresolved":false,"context_lines":[{"line_number":87,"context_line":""},{"line_number":88,"context_line":"    def _data_item(self, data_object):"},{"line_number":89,"context_line":"        data_fields \u003d self._data_fields + self._auto_generated_attrs"},{"line_number":90,"context_line":"        if type(data_object) is dict:"},{"line_number":91,"context_line":"            return dict([(field, data_object.get(field, None))"},{"line_number":92,"context_line":"                         for field in data_fields])"},{"line_number":93,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":34,"id":"1ae5cdf2_f9eeb321","line":90,"updated":"2014-05-30 18:37:13.000000000","message":"Is the dict vs object a distinction between how the result is returned in neutron vs nova-networks? If so, then it would make sense to handle these in their respective subclasses.","commit_id":"5ae84489421b7ef36637bc4999aaacb9cb76176c"},{"author":{"_account_id":1870,"name":"Anna Shen","email":"ruiyuan.shen@hp.com","username":"ruiyuan-shen"},"change_message_id":"92e0825844042bdbab6b0f52d1fb72579313c2d7","unresolved":false,"context_lines":[{"line_number":87,"context_line":""},{"line_number":88,"context_line":"    def _data_item(self, data_object):"},{"line_number":89,"context_line":"        data_fields \u003d self._data_fields + self._auto_generated_attrs"},{"line_number":90,"context_line":"        if type(data_object) is dict:"},{"line_number":91,"context_line":"            return dict([(field, data_object.get(field, None))"},{"line_number":92,"context_line":"                         for field in data_fields])"},{"line_number":93,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":34,"id":"1ae5cdf2_eb5898fc","line":90,"in_reply_to":"1ae5cdf2_f9eeb321","updated":"2014-05-30 20:07:16.000000000","message":"a regression change that should not be in this patch. will remove it in the next submit. thx","commit_id":"5ae84489421b7ef36637bc4999aaacb9cb76176c"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"c8d448a8d677c584a85775b2ea7a4430971d180e","unresolved":false,"context_lines":[{"line_number":102,"context_line":""},{"line_number":103,"context_line":"    @classmethod"},{"line_number":104,"context_line":"    def get_driver(cls, context):"},{"line_number":105,"context_line":"        network_driver \u003d import_class(CONF.network_driver)"},{"line_number":106,"context_line":"        return network_driver(context)"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":""}],"source_content_type":"text/x-python","patch_set":43,"id":"baada198_46b2e1e5","line":105,"updated":"2014-07-18 22:42:56.000000000","message":"i\u0027d suggest to rewrite this code, let me explain why:\neach time remote security group is being created - network manager class gets loaded, so, i\u0027d suggest to reduce import attempts even taking into account python caching mechanisms.\n\nso, i\u0027d suggest to add class variable \u0027network_driver\u0027 and write lazy initialization or use singletop pattern.","commit_id":"7c6bc48d0942b2d72ea7f9d5b1eb181dbe20aa22"},{"author":{"_account_id":5293,"name":"Nikhil","email":"SlickNik@gmail.com","username":"slicknik"},"change_message_id":"42d6d754dca883f5809c0a5863f74ad6b8ffc752","unresolved":false,"context_lines":[{"line_number":102,"context_line":""},{"line_number":103,"context_line":"    @classmethod"},{"line_number":104,"context_line":"    def get_driver(cls, context):"},{"line_number":105,"context_line":"        network_driver \u003d import_class(CONF.network_driver)"},{"line_number":106,"context_line":"        return network_driver(context)"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":""}],"source_content_type":"text/x-python","patch_set":43,"id":"baada198_76877761","line":105,"in_reply_to":"baada198_46b2e1e5","updated":"2014-07-21 06:07:26.000000000","message":"Done","commit_id":"7c6bc48d0942b2d72ea7f9d5b1eb181dbe20aa22"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"adecf158ea9162b5a9d20dd6727e91d245786c59","unresolved":false,"context_lines":[{"line_number":21,"context_line":""},{"line_number":22,"context_line":"CONF \u003d cfg.CONF"},{"line_number":23,"context_line":"create_network_driver \u003d import_class(CONF.network_driver)"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"class ModelBase(object):"},{"line_number":27,"context_line":"    \"\"\""}],"source_content_type":"text/x-python","patch_set":44,"id":"baada198_796e8397","line":24,"updated":"2014-07-21 11:01:42.000000000","message":"Please discard all changes from line #18 to #23.","commit_id":"64322d9ddb125ce26220cf27dcb7fbc341124355"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"adecf158ea9162b5a9d20dd6727e91d245786c59","unresolved":false,"context_lines":[{"line_number":99,"context_line":"            return self._data_item(self._data_object)"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"class NetworkRemoteModelBase(RemoteModelBase):"},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"    @classmethod"},{"line_number":105,"context_line":"    def get_driver(cls, context):"}],"source_content_type":"text/x-python","patch_set":44,"id":"baada198_195667ce","line":102,"updated":"2014-07-21 11:01:42.000000000","message":"class NetworkRemoteModelBase(RemoteModelBase):\n\n    network_driver \u003d None\n\n    @classmethod\n    def get_driver(cls, context):\n        if not self.network_driver:\n            self.network_driver \u003d import_class(CONF.network_driver)(context)\n        return self.network_driver","commit_id":"64322d9ddb125ce26220cf27dcb7fbc341124355"},{"author":{"_account_id":1870,"name":"Anna Shen","email":"ruiyuan.shen@hp.com","username":"ruiyuan-shen"},"change_message_id":"da4014488bcfa449007e7a1841301cfab3741f2c","unresolved":false,"context_lines":[{"line_number":99,"context_line":"            return self._data_item(self._data_object)"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"class NetworkRemoteModelBase(RemoteModelBase):"},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"    @classmethod"},{"line_number":105,"context_line":"    def get_driver(cls, context):"}],"source_content_type":"text/x-python","patch_set":44,"id":"baada198_228a08bf","line":102,"in_reply_to":"baada198_195667ce","updated":"2014-07-21 16:59:58.000000000","message":"Done","commit_id":"64322d9ddb125ce26220cf27dcb7fbc341124355"},{"author":{"_account_id":5293,"name":"Nikhil","email":"SlickNik@gmail.com","username":"slicknik"},"change_message_id":"11490b473d9082f4d62857794f2476ee93b23f07","unresolved":false,"context_lines":[{"line_number":99,"context_line":"            return self._data_item(self._data_object)"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"class NetworkRemoteModelBase(RemoteModelBase):"},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"    @classmethod"},{"line_number":105,"context_line":"    def get_driver(cls, context):"}],"source_content_type":"text/x-python","patch_set":44,"id":"baada198_a2225fa1","line":102,"in_reply_to":"baada198_195667ce","updated":"2014-07-22 10:34:28.000000000","message":"This is incorrect since it creates the singleton based on the first context passed, and reuses the same context in every subsequent call. Please do not do this.","commit_id":"64322d9ddb125ce26220cf27dcb7fbc341124355"},{"author":{"_account_id":5293,"name":"Nikhil","email":"SlickNik@gmail.com","username":"slicknik"},"change_message_id":"efca4c6d61645c984a5a80864eabd2684fe2d096","unresolved":false,"context_lines":[{"line_number":107,"context_line":"        if not cls.network_driver:"},{"line_number":108,"context_line":"            driver_class \u003d import_class(CONF.network_driver)"},{"line_number":109,"context_line":"            cls.network_driver \u003d driver_class(context)"},{"line_number":110,"context_line":"        return cls.network_driver"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"class NovaRemoteModelBase(RemoteModelBase):"}],"source_content_type":"text/x-python","patch_set":45,"id":"baada198_82547bff","line":110,"updated":"2014-07-22 10:31:03.000000000","message":"This is incorrect since it creates the singleton based on the first context passed, and reuses the same context in every subsequent call.","commit_id":"c5fce2b69bb64eed05d5267ea9449f53cefc3c8a"}],"trove/common/remote.py":[{"author":{"_account_id":1925,"name":"Vipul Sabhaya","email":"vipuls@gmail.com","username":"vipuls"},"change_message_id":"23d53c3138735cb6907c9e56e5f37d647ed986b8","unresolved":false,"context_lines":[{"line_number":86,"context_line":""},{"line_number":87,"context_line":"def network_client(context):"},{"line_number":88,"context_line":"    network_driver \u003d import_class(CONF.network_driver)"},{"line_number":89,"context_line":"    return network_driver(context)"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"create_dns_client \u003d import_class(CONF.remote_dns_client)"}],"source_content_type":"text/x-python","patch_set":20,"id":"7adec928_45bb5975","line":89,"updated":"2014-05-20 20:20:11.000000000","message":"Instead of loading a Trove network driver in remote.py, this really should be a method that loads the neutron-client and nothing more.  You should find another place to load the actual Trove driver.","commit_id":"11e88068f1f4edb317c21f9e78a4cbca7897670f"},{"author":{"_account_id":1870,"name":"Anna Shen","email":"ruiyuan.shen@hp.com","username":"ruiyuan-shen"},"change_message_id":"e24165c4a3dbd355c0571a2b5da1e84d6d08d8f9","unresolved":false,"context_lines":[{"line_number":86,"context_line":""},{"line_number":87,"context_line":"def network_client(context):"},{"line_number":88,"context_line":"    network_driver \u003d import_class(CONF.network_driver)"},{"line_number":89,"context_line":"    return network_driver(context)"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"create_dns_client \u003d import_class(CONF.remote_dns_client)"}],"source_content_type":"text/x-python","patch_set":20,"id":"7adec928_5844d773","line":89,"in_reply_to":"7adec928_45bb5975","updated":"2014-05-22 23:05:02.000000000","message":"done per our discussion","commit_id":"11e88068f1f4edb317c21f9e78a4cbca7897670f"},{"author":{"_account_id":1925,"name":"Vipul Sabhaya","email":"vipuls@gmail.com","username":"vipuls"},"change_message_id":"f12965c58e604d770de251e1101862e45505d382","unresolved":false,"context_lines":[{"line_number":94,"context_line":"create_nova_client \u003d import_class(CONF.remote_nova_client)"},{"line_number":95,"context_line":"create_swift_client \u003d import_class(CONF.remote_swift_client)"},{"line_number":96,"context_line":"create_cinder_client \u003d import_class(CONF.remote_cinder_client)"},{"line_number":97,"context_line":"create_heat_client \u003d import_class(CONF.remote_heat_client)"}],"source_content_type":"text/x-python","patch_set":20,"id":"7adec928_e5d8e581","line":97,"updated":"2014-05-20 20:13:17.000000000","message":"We should add a \u0027create_neutron_client\u0027 alias so that too can be overridden by a configuration value.","commit_id":"11e88068f1f4edb317c21f9e78a4cbca7897670f"}],"trove/extensions/security_group/models.py":[{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"4b21eddd972c265a814584670f35bc01021f64c0","unresolved":false,"context_lines":[{"line_number":215,"context_line":"            raise exception.InvalidModelError(msg)"},{"line_number":216,"context_line":"        elif security_group is None:"},{"line_number":217,"context_line":"            client \u003d self.get_client(context)"},{"line_number":218,"context_line":"            self._data_object \u003d client.get_sec_group_by_id(group_id\u003did)"},{"line_number":219,"context_line":"        else:"},{"line_number":220,"context_line":"            self._data_object \u003d security_group"},{"line_number":221,"context_line":""}],"source_content_type":"text/x-python","patch_set":18,"id":"7adec928_3daad219","line":218,"updated":"2014-05-08 10:19:38.000000000","message":"please revert to full name","commit_id":"8e9b408a61dd1f35dfce6d5c16428fa92dc9a686"},{"author":{"_account_id":1925,"name":"Vipul Sabhaya","email":"vipuls@gmail.com","username":"vipuls"},"change_message_id":"f12965c58e604d770de251e1101862e45505d382","unresolved":false,"context_lines":[{"line_number":205,"context_line":"        return association.instance_id"},{"line_number":206,"context_line":""},{"line_number":207,"context_line":""},{"line_number":208,"context_line":"class RemoteSecurityGroup(NetworkRemoteModelBase):"},{"line_number":209,"context_line":""},{"line_number":210,"context_line":"    _data_fields \u003d [\u0027id\u0027, \u0027name\u0027, \u0027description\u0027, \u0027rules\u0027]"},{"line_number":211,"context_line":""}],"source_content_type":"text/x-python","patch_set":20,"id":"7adec928_452b5933","line":208,"updated":"2014-05-20 20:13:17.000000000","message":"If we subclass this from NetworkRemoteModelBase, and we always use neutron client in the base class, how does this ever allow us to use novaclient to do security group management?","commit_id":"11e88068f1f4edb317c21f9e78a4cbca7897670f"},{"author":{"_account_id":1870,"name":"Anna Shen","email":"ruiyuan.shen@hp.com","username":"ruiyuan-shen"},"change_message_id":"e24165c4a3dbd355c0571a2b5da1e84d6d08d8f9","unresolved":false,"context_lines":[{"line_number":205,"context_line":"        return association.instance_id"},{"line_number":206,"context_line":""},{"line_number":207,"context_line":""},{"line_number":208,"context_line":"class RemoteSecurityGroup(NetworkRemoteModelBase):"},{"line_number":209,"context_line":""},{"line_number":210,"context_line":"    _data_fields \u003d [\u0027id\u0027, \u0027name\u0027, \u0027description\u0027, \u0027rules\u0027]"},{"line_number":211,"context_line":""}],"source_content_type":"text/x-python","patch_set":20,"id":"7adec928_384d4b9a","line":208,"in_reply_to":"7adec928_452b5933","updated":"2014-05-22 23:05:02.000000000","message":"Done","commit_id":"11e88068f1f4edb317c21f9e78a4cbca7897670f"},{"author":{"_account_id":5293,"name":"Nikhil","email":"SlickNik@gmail.com","username":"slicknik"},"change_message_id":"d262919df03d292ab0ee6f8b6a64dc960eec6293","unresolved":false,"context_lines":[{"line_number":236,"context_line":"    def add_rule(cls, sec_group_id, protocol, from_port,"},{"line_number":237,"context_line":"                 to_port, cidr, context):"},{"line_number":238,"context_line":"        \"\"\""},{"line_number":239,"context_line":"        Adds the new rule to the already existed group"},{"line_number":240,"context_line":"        \"\"\""},{"line_number":241,"context_line":"        driver \u003d cls.get_driver(context)"},{"line_number":242,"context_line":"        sec_group_rule \u003d driver.add_security_group_rule("}],"source_content_type":"text/x-python","patch_set":42,"id":"baada198_15a4dc49","line":239,"updated":"2014-07-17 09:30:27.000000000","message":"\"Adds a new rule to an existing security group\"","commit_id":"39c8ee8648a49d8625ba689e78992e1fd65f662d"},{"author":{"_account_id":5293,"name":"Nikhil","email":"SlickNik@gmail.com","username":"slicknik"},"change_message_id":"d262919df03d292ab0ee6f8b6a64dc960eec6293","unresolved":false,"context_lines":[{"line_number":247,"context_line":"    @classmethod"},{"line_number":248,"context_line":"    def delete_rule(cls, sec_group_rule_id, context):"},{"line_number":249,"context_line":"        \"\"\""},{"line_number":250,"context_line":"        Deletes the rule from the already existed group"},{"line_number":251,"context_line":"        \"\"\""},{"line_number":252,"context_line":"        driver \u003d cls.get_driver(context)"},{"line_number":253,"context_line":"        driver.delete_security_group_rule(sec_group_rule_id)"}],"source_content_type":"text/x-python","patch_set":42,"id":"baada198_5533b412","line":250,"updated":"2014-07-17 09:30:27.000000000","message":"\"Deletes a rule from an existing security group\"","commit_id":"39c8ee8648a49d8625ba689e78992e1fd65f662d"}],"trove/network/__init__.py":[{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"47c8e81dcbd0fc7267bab77a0c27df568abf46e1","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2014 Hewlett-Packard Development Company, L.P."},{"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"},{"line_number":5,"context_line":"#    not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAXH%2F%2FroI%3D","line":2,"updated":"2014-04-18 09:26:23.000000000","message":"this file should be empty!","commit_id":"9128a0700de4481cec4530c5b98c50be04c8d2f5"},{"author":{"_account_id":6156,"name":"Justin Hopper","email":"justin.hopper@hp.com","username":"justin-hopper"},"change_message_id":"817540694a1e01373ecc96ec01247568a1f0c9f5","unresolved":false,"context_lines":[{"line_number":11,"context_line":"#    distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT"},{"line_number":12,"context_line":"#    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the"},{"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":"#"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAXH%2F%2FcP4%3D","line":14,"updated":"2014-04-21 18:56:53.000000000","message":"Anna - I think there was an effort recently to remove this stuff from empty _init_ files.","commit_id":"82503dd12516662d95e39bbaaed0b1e1e007eaa7"}],"trove/network/base.py":[{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"4b21eddd972c265a814584670f35bc01021f64c0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":18,"id":"7adec928_7d4a9a84","updated":"2014-05-08 10:19:38.000000000","message":"please add def get_sec_group_by_id(self, group_id): to the base class, because this class describes the interface of a network manager.\nReason: each of new managers(nova, neutron) contain get_sec_group_by_id, it means that it _must_ be  presented at Base class","commit_id":"8e9b408a61dd1f35dfce6d5c16428fa92dc9a686"},{"author":{"_account_id":1870,"name":"Anna Shen","email":"ruiyuan.shen@hp.com","username":"ruiyuan-shen"},"change_message_id":"74bc1e4c33fa9c8c84996c4d79de716ab48d3cc2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":18,"id":"7adec928_7371b4a7","in_reply_to":"7adec928_7d4a9a84","updated":"2014-05-22 23:05:14.000000000","message":"good point!","commit_id":"8e9b408a61dd1f35dfce6d5c16428fa92dc9a686"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"f3b519c62b3a43b1320df1ca5ac5b9576082146e","unresolved":false,"context_lines":[{"line_number":16,"context_line":"import abc"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"class NetworkDriver(object):"},{"line_number":20,"context_line":"    @abc.abstractmethod"},{"line_number":21,"context_line":"    def get_sec_group_by_id(self, group_id):"},{"line_number":22,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":39,"id":"1ae5cdf2_f637b4e2","line":19,"updated":"2014-06-16 11:00:01.000000000","message":"@six.add_metaclass(abc.ABCMeta)","commit_id":"ac8a9ef24d5dc3c67784ace06079d9487a564b2a"},{"author":{"_account_id":1870,"name":"Anna Shen","email":"ruiyuan.shen@hp.com","username":"ruiyuan-shen"},"change_message_id":"932b00d3bfc0cda39413c384e3699603de3eaed0","unresolved":false,"context_lines":[{"line_number":16,"context_line":"import abc"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"class NetworkDriver(object):"},{"line_number":20,"context_line":"    @abc.abstractmethod"},{"line_number":21,"context_line":"    def get_sec_group_by_id(self, group_id):"},{"line_number":22,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":39,"id":"baada198_e72457b1","line":19,"in_reply_to":"1ae5cdf2_f637b4e2","updated":"2014-07-09 00:31:25.000000000","message":"done. thanks for pointing out.","commit_id":"ac8a9ef24d5dc3c67784ace06079d9487a564b2a"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"c8d448a8d677c584a85775b2ea7a4430971d180e","unresolved":false,"context_lines":[{"line_number":19,"context_line":""},{"line_number":20,"context_line":"@six.add_metaclass(abc.ABCMeta)"},{"line_number":21,"context_line":"class NetworkDriver(object):"},{"line_number":22,"context_line":"    def get_sec_group_by_id(self, group_id):"},{"line_number":23,"context_line":"        \"\"\""},{"line_number":24,"context_line":"        Returns security group with given group_id"},{"line_number":25,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":43,"id":"baada198_c6bd11b3","line":22,"updated":"2014-07-18 22:42:56.000000000","message":"please add class docstrings.","commit_id":"7c6bc48d0942b2d72ea7f9d5b1eb181dbe20aa22"},{"author":{"_account_id":5293,"name":"Nikhil","email":"SlickNik@gmail.com","username":"slicknik"},"change_message_id":"42d6d754dca883f5809c0a5863f74ad6b8ffc752","unresolved":false,"context_lines":[{"line_number":19,"context_line":""},{"line_number":20,"context_line":"@six.add_metaclass(abc.ABCMeta)"},{"line_number":21,"context_line":"class NetworkDriver(object):"},{"line_number":22,"context_line":"    def get_sec_group_by_id(self, group_id):"},{"line_number":23,"context_line":"        \"\"\""},{"line_number":24,"context_line":"        Returns security group with given group_id"},{"line_number":25,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":43,"id":"baada198_96788b7f","line":22,"in_reply_to":"baada198_c6bd11b3","updated":"2014-07-21 06:07:26.000000000","message":"Done","commit_id":"7c6bc48d0942b2d72ea7f9d5b1eb181dbe20aa22"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"adecf158ea9162b5a9d20dd6727e91d245786c59","unresolved":false,"context_lines":[{"line_number":22,"context_line":"class NetworkDriver(object):"},{"line_number":23,"context_line":"    \"\"\"Base Network Driver class to abstract the network driver used.\"\"\""},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"    def get_sec_group_by_id(self, group_id):"},{"line_number":26,"context_line":"        \"\"\""},{"line_number":27,"context_line":"        Returns security group with given group_id"},{"line_number":28,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":44,"id":"baada198_9900b7ac","line":25,"updated":"2014-07-21 11:01:42.000000000","message":"@abc.abstractmethod","commit_id":"64322d9ddb125ce26220cf27dcb7fbc341124355"},{"author":{"_account_id":1870,"name":"Anna Shen","email":"ruiyuan.shen@hp.com","username":"ruiyuan-shen"},"change_message_id":"da4014488bcfa449007e7a1841301cfab3741f2c","unresolved":false,"context_lines":[{"line_number":22,"context_line":"class NetworkDriver(object):"},{"line_number":23,"context_line":"    \"\"\"Base Network Driver class to abstract the network driver used.\"\"\""},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"    def get_sec_group_by_id(self, group_id):"},{"line_number":26,"context_line":"        \"\"\""},{"line_number":27,"context_line":"        Returns security group with given group_id"},{"line_number":28,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":44,"id":"baada198_82f4b455","line":25,"in_reply_to":"baada198_9900b7ac","updated":"2014-07-21 16:59:58.000000000","message":"Done","commit_id":"64322d9ddb125ce26220cf27dcb7fbc341124355"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"adecf158ea9162b5a9d20dd6727e91d245786c59","unresolved":false,"context_lines":[{"line_number":27,"context_line":"        Returns security group with given group_id"},{"line_number":28,"context_line":"        \"\"\""},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"    def create_security_group(self, name, description):"},{"line_number":31,"context_line":"        \"\"\""},{"line_number":32,"context_line":"        Creates the security group with given name and description"},{"line_number":33,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":44,"id":"baada198_d92dcf47","line":30,"updated":"2014-07-21 11:01:42.000000000","message":"@abc.abstractmethod","commit_id":"64322d9ddb125ce26220cf27dcb7fbc341124355"},{"author":{"_account_id":1870,"name":"Anna Shen","email":"ruiyuan.shen@hp.com","username":"ruiyuan-shen"},"change_message_id":"da4014488bcfa449007e7a1841301cfab3741f2c","unresolved":false,"context_lines":[{"line_number":27,"context_line":"        Returns security group with given group_id"},{"line_number":28,"context_line":"        \"\"\""},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"    def create_security_group(self, name, description):"},{"line_number":31,"context_line":"        \"\"\""},{"line_number":32,"context_line":"        Creates the security group with given name and description"},{"line_number":33,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":44,"id":"baada198_a29618ee","line":30,"in_reply_to":"baada198_d92dcf47","updated":"2014-07-21 16:59:58.000000000","message":"Done","commit_id":"64322d9ddb125ce26220cf27dcb7fbc341124355"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"adecf158ea9162b5a9d20dd6727e91d245786c59","unresolved":false,"context_lines":[{"line_number":32,"context_line":"        Creates the security group with given name and description"},{"line_number":33,"context_line":"        \"\"\""},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    def delete_security_group(self, sec_group_id):"},{"line_number":36,"context_line":"        \"\"\"Deletes the security group by given ID.\"\"\""},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"    def add_security_group_rule(self, sec_group_id, protocol,"}],"source_content_type":"text/x-python","patch_set":44,"id":"baada198_f930d39f","line":35,"updated":"2014-07-21 11:01:42.000000000","message":"@abc.abstractmethod","commit_id":"64322d9ddb125ce26220cf27dcb7fbc341124355"},{"author":{"_account_id":1870,"name":"Anna Shen","email":"ruiyuan.shen@hp.com","username":"ruiyuan-shen"},"change_message_id":"da4014488bcfa449007e7a1841301cfab3741f2c","unresolved":false,"context_lines":[{"line_number":32,"context_line":"        Creates the security group with given name and description"},{"line_number":33,"context_line":"        \"\"\""},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    def delete_security_group(self, sec_group_id):"},{"line_number":36,"context_line":"        \"\"\"Deletes the security group by given ID.\"\"\""},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"    def add_security_group_rule(self, sec_group_id, protocol,"}],"source_content_type":"text/x-python","patch_set":44,"id":"baada198_c2994c20","line":35,"in_reply_to":"baada198_f930d39f","updated":"2014-07-21 16:59:58.000000000","message":"Done","commit_id":"64322d9ddb125ce26220cf27dcb7fbc341124355"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"adecf158ea9162b5a9d20dd6727e91d245786c59","unresolved":false,"context_lines":[{"line_number":35,"context_line":"    def delete_security_group(self, sec_group_id):"},{"line_number":36,"context_line":"        \"\"\"Deletes the security group by given ID.\"\"\""},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"    def add_security_group_rule(self, sec_group_id, protocol,"},{"line_number":39,"context_line":"                                from_port, to_port, cidr):"},{"line_number":40,"context_line":"        \"\"\""},{"line_number":41,"context_line":"        Adds the rule identified by the security group ID,"}],"source_content_type":"text/x-python","patch_set":44,"id":"baada198_1924a75e","line":38,"updated":"2014-07-21 11:01:42.000000000","message":"@abc.abstractmethod","commit_id":"64322d9ddb125ce26220cf27dcb7fbc341124355"},{"author":{"_account_id":1870,"name":"Anna Shen","email":"ruiyuan.shen@hp.com","username":"ruiyuan-shen"},"change_message_id":"da4014488bcfa449007e7a1841301cfab3741f2c","unresolved":false,"context_lines":[{"line_number":35,"context_line":"    def delete_security_group(self, sec_group_id):"},{"line_number":36,"context_line":"        \"\"\"Deletes the security group by given ID.\"\"\""},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"    def add_security_group_rule(self, sec_group_id, protocol,"},{"line_number":39,"context_line":"                                from_port, to_port, cidr):"},{"line_number":40,"context_line":"        \"\"\""},{"line_number":41,"context_line":"        Adds the rule identified by the security group ID,"}],"source_content_type":"text/x-python","patch_set":44,"id":"baada198_e29c9010","line":38,"in_reply_to":"baada198_1924a75e","updated":"2014-07-21 16:59:58.000000000","message":"Done","commit_id":"64322d9ddb125ce26220cf27dcb7fbc341124355"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"adecf158ea9162b5a9d20dd6727e91d245786c59","unresolved":false,"context_lines":[{"line_number":42,"context_line":"        transport protocol, port range: from -\u003e to, CIDR."},{"line_number":43,"context_line":"        \"\"\""},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    def delete_security_group_rule(self, sec_group_rule_id):"},{"line_number":46,"context_line":"        \"\"\"Deletes the rule by given ID.\"\"\""}],"source_content_type":"text/x-python","patch_set":44,"id":"baada198_3927ab64","line":45,"updated":"2014-07-21 11:01:42.000000000","message":"@abc.abstractmethod","commit_id":"64322d9ddb125ce26220cf27dcb7fbc341124355"},{"author":{"_account_id":1870,"name":"Anna Shen","email":"ruiyuan.shen@hp.com","username":"ruiyuan-shen"},"change_message_id":"da4014488bcfa449007e7a1841301cfab3741f2c","unresolved":false,"context_lines":[{"line_number":42,"context_line":"        transport protocol, port range: from -\u003e to, CIDR."},{"line_number":43,"context_line":"        \"\"\""},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    def delete_security_group_rule(self, sec_group_rule_id):"},{"line_number":46,"context_line":"        \"\"\"Deletes the rule by given ID.\"\"\""}],"source_content_type":"text/x-python","patch_set":44,"id":"baada198_02a0a440","line":45,"in_reply_to":"baada198_3927ab64","updated":"2014-07-21 16:59:58.000000000","message":"Done","commit_id":"64322d9ddb125ce26220cf27dcb7fbc341124355"}],"trove/network/neutron.py":[{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"47c8e81dcbd0fc7267bab77a0c27df568abf46e1","unresolved":false,"context_lines":[{"line_number":40,"context_line":"            sec_group \u003d self.client.create_security_group(body\u003dsec_group_body)"},{"line_number":41,"context_line":"            return sec_group"},{"line_number":42,"context_line":"        except neutron_exceptions.NeutronClientException as e:"},{"line_number":43,"context_line":"            LOG.exception(\u0027Failed to create remote security group\u0027)"},{"line_number":44,"context_line":"            raise exception.SecurityGroupCreationError(str(e))"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    def delete_security_group(self, sec_group_id):"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAXH%2F%2Frlc%3D","line":43,"updated":"2014-04-18 09:26:23.000000000","message":"check for the HTTP 409","commit_id":"9128a0700de4481cec4530c5b98c50be04c8d2f5"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"47c8e81dcbd0fc7267bab77a0c27df568abf46e1","unresolved":false,"context_lines":[{"line_number":65,"context_line":"                                   \"ethertype\": ethertype,"},{"line_number":66,"context_line":"                                   }}"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"            secgroup_rule \u003d self.client\\"},{"line_number":69,"context_line":"            .create_security_group_rule(secgroup_rule_body)"},{"line_number":70,"context_line":"            return secgroup_rule"},{"line_number":71,"context_line":"        except neutron_exceptions.NeutronClientException as e:"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAXH%2F%2Frmo%3D","line":68,"updated":"2014-04-18 09:26:23.000000000","message":"do not ever use \\ in line formatting, use simple braces ()","commit_id":"9128a0700de4481cec4530c5b98c50be04c8d2f5"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"47c8e81dcbd0fc7267bab77a0c27df568abf46e1","unresolved":false,"context_lines":[{"line_number":71,"context_line":"        except neutron_exceptions.NeutronClientException as e:"},{"line_number":72,"context_line":"             # ignore error if rule already exists"},{"line_number":73,"context_line":"            if e.status_code \u003d\u003d 409:"},{"line_number":74,"context_line":"                LOG.exception(\"secgroup rule already exists\")"},{"line_number":75,"context_line":"            else:"},{"line_number":76,"context_line":"                LOG.exception(\u0027Failed to add rule to remote security group\u0027)"},{"line_number":77,"context_line":"                raise exception.SecurityGroupRuleCreationError(str(e))"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAXH%2F%2Frl8%3D","line":74,"updated":"2014-04-18 09:26:23.000000000","message":"add rule info into the log record","commit_id":"9128a0700de4481cec4530c5b98c50be04c8d2f5"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"47c8e81dcbd0fc7267bab77a0c27df568abf46e1","unresolved":false,"context_lines":[{"line_number":73,"context_line":"            if e.status_code \u003d\u003d 409:"},{"line_number":74,"context_line":"                LOG.exception(\"secgroup rule already exists\")"},{"line_number":75,"context_line":"            else:"},{"line_number":76,"context_line":"                LOG.exception(\u0027Failed to add rule to remote security group\u0027)"},{"line_number":77,"context_line":"                raise exception.SecurityGroupRuleCreationError(str(e))"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"    def delete_security_group_rule(self, sec_group_rule_id):"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAXH%2F%2Frl0%3D","line":76,"updated":"2014-04-18 09:26:23.000000000","message":"add rule info into the log record","commit_id":"9128a0700de4481cec4530c5b98c50be04c8d2f5"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"47c8e81dcbd0fc7267bab77a0c27df568abf46e1","unresolved":false,"context_lines":[{"line_number":80,"context_line":"        try:"},{"line_number":81,"context_line":"            self.client.delete_security_group_rule(sec_group_rule_id)"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"        except neutron_exceptions.NeutronClientException as e:"},{"line_number":84,"context_line":"            LOG.exception(\u0027Failed to delete rule to remote security group\u0027)"},{"line_number":85,"context_line":"            raise exception.SecurityGroupRuleDeletionError(str(e))"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAXH%2F%2Frlo%3D","line":83,"updated":"2014-04-18 09:26:23.000000000","message":"check http status, if its 404 should be raised another exception","commit_id":"9128a0700de4481cec4530c5b98c50be04c8d2f5"},{"author":{"_account_id":6156,"name":"Justin Hopper","email":"justin.hopper@hp.com","username":"justin-hopper"},"change_message_id":"817540694a1e01373ecc96ec01247568a1f0c9f5","unresolved":false,"context_lines":[{"line_number":24,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"class NetworkManager(base.BaseNetworkManagerClass):"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"    def __init__(self, context):"},{"line_number":30,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAXH%2F%2FcPc%3D","line":27,"updated":"2014-04-21 18:56:53.000000000","message":"I think it would be best to prefix the class name with \"Neutron\" or \"Nova\".  Even though you have them in different modules, having classes with the same class name especially from a common base class is not common practice. Look at BackupRunner for example","commit_id":"82503dd12516662d95e39bbaaed0b1e1e007eaa7"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"843a8514bbc211f15c57f61f08e831da5041e986","unresolved":false,"context_lines":[{"line_number":77,"context_line":"            secgroup_rule \u003d self.client.create_security_group_rule("},{"line_number":78,"context_line":"                secgroup_rule_body)"},{"line_number":79,"context_line":"            return secgroup_rule"},{"line_number":80,"context_line":"        except neutron_exceptions.NeutronClientException as e:"},{"line_number":81,"context_line":"             # ignore error if rule already exists"},{"line_number":82,"context_line":"            if e.status_code \u003d\u003d 409:"},{"line_number":83,"context_line":"                LOG.exception(\"secgroup rule already exists\")"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAXH%2F%2FDMk%3D","line":80,"updated":"2014-04-24 11:33:10.000000000","message":"please add \n\nLOG.error(e)","commit_id":"270564329db95c23a40b7780bca909994cfd2c79"},{"author":{"_account_id":1870,"name":"Anna Shen","email":"ruiyuan.shen@hp.com","username":"ruiyuan-shen"},"change_message_id":"fa02c5c1121547cfd5d3acab3758557f20998998","unresolved":false,"context_lines":[{"line_number":77,"context_line":"            secgroup_rule \u003d self.client.create_security_group_rule("},{"line_number":78,"context_line":"                secgroup_rule_body)"},{"line_number":79,"context_line":"            return secgroup_rule"},{"line_number":80,"context_line":"        except neutron_exceptions.NeutronClientException as e:"},{"line_number":81,"context_line":"             # ignore error if rule already exists"},{"line_number":82,"context_line":"            if e.status_code \u003d\u003d 409:"},{"line_number":83,"context_line":"                LOG.exception(\"secgroup rule already exists\")"}],"source_content_type":"text/x-python","patch_set":9,"id":"7adec928_f38a2463","line":80,"in_reply_to":"AAAAXH%2F%2FDMk%3D","updated":"2014-05-22 23:05:45.000000000","message":"you get stack trace for free.","commit_id":"270564329db95c23a40b7780bca909994cfd2c79"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"afc33c17561fa2cdd6ab7b90d4e8e1427330ecfa","unresolved":false,"context_lines":[{"line_number":19,"context_line":"from trove.openstack.common import log as logging"},{"line_number":20,"context_line":"from neutronclient.v2_0 import client as NeutronClient"},{"line_number":21,"context_line":"from neutronclient.common import exceptions as neutron_exceptions"},{"line_number":22,"context_line":"from trove.common import cfg"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"CONF \u003d cfg.CONF"}],"source_content_type":"text/x-python","patch_set":15,"id":"9ad9bd40_0d98061b","line":22,"updated":"2014-05-06 11:05:39.000000000","message":"please sort imports","commit_id":"6edf85c50485870e32c4a0071a0b789beab9527f"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"afc33c17561fa2cdd6ab7b90d4e8e1427330ecfa","unresolved":false,"context_lines":[{"line_number":24,"context_line":""},{"line_number":25,"context_line":"CONF \u003d cfg.CONF"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"NEUTRON_ENDPOINT \u003d CONF.neutron_endpoint_url"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":30,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"9ad9bd40_6d3fd2d6","line":27,"updated":"2014-05-06 11:05:39.000000000","message":"no need to initialize new var, you can use it directly","commit_id":"6edf85c50485870e32c4a0071a0b789beab9527f"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"afc33c17561fa2cdd6ab7b90d4e8e1427330ecfa","unresolved":false,"context_lines":[{"line_number":41,"context_line":"def neutron_client(context):"},{"line_number":42,"context_line":"    client \u003d NeutronClient.Client(token\u003dcontext.auth_token,"},{"line_number":43,"context_line":"                                  endpoint_url\u003dNEUTRON_ENDPOINT)"},{"line_number":44,"context_line":"    return client"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"class NeutronDriver(base.NetworkDriver):"}],"source_content_type":"text/x-python","patch_set":15,"id":"9ad9bd40_2d394af3","line":44,"updated":"2014-05-06 11:05:39.000000000","message":"please move it to the remote.py","commit_id":"6edf85c50485870e32c4a0071a0b789beab9527f"},{"author":{"_account_id":1870,"name":"Anna Shen","email":"ruiyuan.shen@hp.com","username":"ruiyuan-shen"},"change_message_id":"84ffa8696dc97b24222d497e00c6f4a7189868ba","unresolved":false,"context_lines":[{"line_number":41,"context_line":"def neutron_client(context):"},{"line_number":42,"context_line":"    client \u003d NeutronClient.Client(token\u003dcontext.auth_token,"},{"line_number":43,"context_line":"                                  endpoint_url\u003dNEUTRON_ENDPOINT)"},{"line_number":44,"context_line":"    return client"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"class NeutronDriver(base.NetworkDriver):"}],"source_content_type":"text/x-python","patch_set":15,"id":"7adec928_333acc98","line":44,"in_reply_to":"9ad9bd40_2d394af3","updated":"2014-05-22 23:07:58.000000000","message":"Done","commit_id":"6edf85c50485870e32c4a0071a0b789beab9527f"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"d00749a7dfe965a177d47f93eb7cba730f4aca06","unresolved":false,"context_lines":[{"line_number":19,"context_line":"from trove.openstack.common import log as logging"},{"line_number":20,"context_line":"from neutronclient.v2_0 import client as NeutronClient"},{"line_number":21,"context_line":"from neutronclient.common import exceptions as neutron_exceptions"},{"line_number":22,"context_line":"from trove.common import cfg"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"CONF \u003d cfg.CONF"}],"source_content_type":"text/x-python","patch_set":16,"id":"9ad9bd40_a6339d60","line":22,"updated":"2014-05-07 11:59:10.000000000","message":"please sort imports","commit_id":"58471abb6044fb7eac4c0820016512dbd4f6c883"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"4b21eddd972c265a814584670f35bc01021f64c0","unresolved":false,"context_lines":[{"line_number":52,"context_line":"        except neutron_exceptions.NeutronClientException as e:"},{"line_number":53,"context_line":"            raise exception.TroveError(str(e))"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    def get_sec_group_by_id(self, group_id):"},{"line_number":56,"context_line":"        try:"},{"line_number":57,"context_line":"            return self.client.show_security_group(group_id)"},{"line_number":58,"context_line":"        except neutron_exceptions.NeutronClientException as e:"}],"source_content_type":"text/x-python","patch_set":18,"id":"7adec928_fd76aad7","line":55,"updated":"2014-05-08 10:19:38.000000000","message":"please write full name","commit_id":"8e9b408a61dd1f35dfce6d5c16428fa92dc9a686"},{"author":{"_account_id":1870,"name":"Anna Shen","email":"ruiyuan.shen@hp.com","username":"ruiyuan-shen"},"change_message_id":"74bc1e4c33fa9c8c84996c4d79de716ab48d3cc2","unresolved":false,"context_lines":[{"line_number":52,"context_line":"        except neutron_exceptions.NeutronClientException as e:"},{"line_number":53,"context_line":"            raise exception.TroveError(str(e))"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    def get_sec_group_by_id(self, group_id):"},{"line_number":56,"context_line":"        try:"},{"line_number":57,"context_line":"            return self.client.show_security_group(group_id)"},{"line_number":58,"context_line":"        except neutron_exceptions.NeutronClientException as e:"}],"source_content_type":"text/x-python","patch_set":18,"id":"7adec928_d361a8d4","line":55,"in_reply_to":"7adec928_fd76aad7","updated":"2014-05-22 23:05:14.000000000","message":"well.","commit_id":"8e9b408a61dd1f35dfce6d5c16428fa92dc9a686"},{"author":{"_account_id":1925,"name":"Vipul Sabhaya","email":"vipuls@gmail.com","username":"vipuls"},"change_message_id":"f5ee2ca9b5c30a0f0353146e98305d11ce33c7ce","unresolved":false,"context_lines":[{"line_number":38,"context_line":"         \u0027PROTO_NAME_UDP\u0027: \u0027udp\u0027}"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"def neutron_client(context):"},{"line_number":42,"context_line":"    client \u003d NeutronClient.Client(token\u003dcontext.auth_token,"},{"line_number":43,"context_line":"                                  endpoint_url\u003dNEUTRON_ENDPOINT)"},{"line_number":44,"context_line":"    return client"}],"source_content_type":"text/x-python","patch_set":20,"id":"7adec928_a5ba5d6c","line":41,"updated":"2014-05-20 20:21:13.000000000","message":"This should come from remote.py","commit_id":"11e88068f1f4edb317c21f9e78a4cbca7897670f"},{"author":{"_account_id":1870,"name":"Anna Shen","email":"ruiyuan.shen@hp.com","username":"ruiyuan-shen"},"change_message_id":"e24165c4a3dbd355c0571a2b5da1e84d6d08d8f9","unresolved":false,"context_lines":[{"line_number":38,"context_line":"         \u0027PROTO_NAME_UDP\u0027: \u0027udp\u0027}"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"def neutron_client(context):"},{"line_number":42,"context_line":"    client \u003d NeutronClient.Client(token\u003dcontext.auth_token,"},{"line_number":43,"context_line":"                                  endpoint_url\u003dNEUTRON_ENDPOINT)"},{"line_number":44,"context_line":"    return client"}],"source_content_type":"text/x-python","patch_set":20,"id":"7adec928_b8587b58","line":41,"in_reply_to":"7adec928_a5ba5d6c","updated":"2014-05-22 23:05:02.000000000","message":"Done","commit_id":"11e88068f1f4edb317c21f9e78a4cbca7897670f"},{"author":{"_account_id":11316,"name":"Steve Leon","email":"kokhang@gmail.com","username":"kokhang"},"change_message_id":"19109c1c241f9338d1ad49395246a421cf5253ee","unresolved":false,"context_lines":[{"line_number":36,"context_line":"class NeutronDriver(base.NetworkDriver):"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"    def __init__(self, context):"},{"line_number":39,"context_line":"        try:"},{"line_number":40,"context_line":"            self.client \u003d remote.create_neutron_client(context)"},{"line_number":41,"context_line":"        except neutron_exceptions.NeutronClientException as e:"},{"line_number":42,"context_line":"            raise exception.TroveError(str(e))"}],"source_content_type":"text/x-python","patch_set":27,"id":"3ae8d1ca_ffa21e99","line":39,"updated":"2014-05-27 18:24:40.000000000","message":"I am not too sure about all these try/except blocks. All it is doing is catching, logging and re-raising. This can be cleaned up by handling these in the base or in the caller. Perhaps make use of annotations in the base class that will handle all these try/except/log/re-raise? What do you think?","commit_id":"14309205ad0b3be312b0e173dcecd128490cef7b"},{"author":{"_account_id":11316,"name":"Steve Leon","email":"kokhang@gmail.com","username":"kokhang"},"change_message_id":"341a8b2e262095d8d8c15e15f96610ba10633826","unresolved":false,"context_lines":[{"line_number":47,"context_line":"            raise exception.TroveError(str(e))"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    def get_sec_group_by_id(self, group_id):"},{"line_number":50,"context_line":"        try:"},{"line_number":51,"context_line":"            return self.client.show_security_group(security_group\u003dgroup_id)"},{"line_number":52,"context_line":"        except neutron_exceptions.NeutronClientException as e:"},{"line_number":53,"context_line":"            LOG.exception(\u0027Failed to get remote security group\u0027)"}],"source_content_type":"text/x-python","patch_set":34,"id":"1ae5cdf2_99768f3d","line":50,"updated":"2014-05-30 18:37:13.000000000","message":"I am not too sure about all these try/except blocks. All it is doing is catching, logging and re-raising. This can be cleaned up by handling these in the base or in the caller. Perhaps make use of annotations in the base class that will handle all these try/except/log/re-raise? What do you think?","commit_id":"5ae84489421b7ef36637bc4999aaacb9cb76176c"},{"author":{"_account_id":1870,"name":"Anna Shen","email":"ruiyuan.shen@hp.com","username":"ruiyuan-shen"},"change_message_id":"92e0825844042bdbab6b0f52d1fb72579313c2d7","unresolved":false,"context_lines":[{"line_number":47,"context_line":"            raise exception.TroveError(str(e))"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    def get_sec_group_by_id(self, group_id):"},{"line_number":50,"context_line":"        try:"},{"line_number":51,"context_line":"            return self.client.show_security_group(security_group\u003dgroup_id)"},{"line_number":52,"context_line":"        except neutron_exceptions.NeutronClientException as e:"},{"line_number":53,"context_line":"            LOG.exception(\u0027Failed to get remote security group\u0027)"}],"source_content_type":"text/x-python","patch_set":34,"id":"1ae5cdf2_cbbbdcc2","line":50,"in_reply_to":"1ae5cdf2_99768f3d","updated":"2014-05-30 20:07:16.000000000","message":"try/catch block was moved to the implementation so that it can raise specific exceptions (nova vs neutron), which cannot be distinguished in abstract class.. Is that what you are asking?","commit_id":"5ae84489421b7ef36637bc4999aaacb9cb76176c"},{"author":{"_account_id":11316,"name":"Steve Leon","email":"kokhang@gmail.com","username":"kokhang"},"change_message_id":"341a8b2e262095d8d8c15e15f96610ba10633826","unresolved":false,"context_lines":[{"line_number":109,"context_line":"            raise exception.SecurityGroupRuleDeletionError(str(e))"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"    def _convert_to_nova_security_group_format(self, security_group):"},{"line_number":112,"context_line":"        nova_group \u003d {}"},{"line_number":113,"context_line":"        nova_group[\u0027id\u0027] \u003d security_group[\u0027id\u0027]"},{"line_number":114,"context_line":"        nova_group[\u0027description\u0027] \u003d security_group[\u0027description\u0027]"},{"line_number":115,"context_line":"        nova_group[\u0027name\u0027] \u003d security_group[\u0027name\u0027]"}],"source_content_type":"text/x-python","patch_set":34,"id":"1ae5cdf2_99dbef1a","line":112,"updated":"2014-05-30 18:37:13.000000000","message":"Wouldn\u0027t it be better to change nova-network driver to the neutron secgroup format instead, since neutron will be the future and nova-network will eventually be obsolete?","commit_id":"5ae84489421b7ef36637bc4999aaacb9cb76176c"},{"author":{"_account_id":1870,"name":"Anna Shen","email":"ruiyuan.shen@hp.com","username":"ruiyuan-shen"},"change_message_id":"92e0825844042bdbab6b0f52d1fb72579313c2d7","unresolved":false,"context_lines":[{"line_number":109,"context_line":"            raise exception.SecurityGroupRuleDeletionError(str(e))"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"    def _convert_to_nova_security_group_format(self, security_group):"},{"line_number":112,"context_line":"        nova_group \u003d {}"},{"line_number":113,"context_line":"        nova_group[\u0027id\u0027] \u003d security_group[\u0027id\u0027]"},{"line_number":114,"context_line":"        nova_group[\u0027description\u0027] \u003d security_group[\u0027description\u0027]"},{"line_number":115,"context_line":"        nova_group[\u0027name\u0027] \u003d security_group[\u0027name\u0027]"}],"source_content_type":"text/x-python","patch_set":34,"id":"1ae5cdf2_2bf9a0c8","line":112,"in_reply_to":"1ae5cdf2_99dbef1a","updated":"2014-05-30 20:07:16.000000000","message":"There are lots of code that nova-net touches, in the regards of format. it deserves a trove bug whenever nova-network is deprecated.","commit_id":"5ae84489421b7ef36637bc4999aaacb9cb76176c"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"adecf158ea9162b5a9d20dd6727e91d245786c59","unresolved":false,"context_lines":[{"line_number":21,"context_line":"from neutronclient.common import exceptions as neutron_exceptions"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"CONST \u003d {\u0027IPv4\u0027: \"IPv4\","},{"line_number":27,"context_line":"         \u0027IPv6\u0027: \"IPv6\","}],"source_content_type":"text/x-python","patch_set":44,"id":"baada198_79ca036f","line":24,"updated":"2014-07-21 11:01:42.000000000","message":"i don\u0027t see any logging calls here? you\u0027ve planned to do that - please fix it, if not - remote unused variables.","commit_id":"64322d9ddb125ce26220cf27dcb7fbc341124355"},{"author":{"_account_id":1870,"name":"Anna Shen","email":"ruiyuan.shen@hp.com","username":"ruiyuan-shen"},"change_message_id":"da4014488bcfa449007e7a1841301cfab3741f2c","unresolved":false,"context_lines":[{"line_number":21,"context_line":"from neutronclient.common import exceptions as neutron_exceptions"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"CONST \u003d {\u0027IPv4\u0027: \"IPv4\","},{"line_number":27,"context_line":"         \u0027IPv6\u0027: \"IPv6\","}],"source_content_type":"text/x-python","patch_set":44,"id":"baada198_824674a5","line":24,"in_reply_to":"baada198_79ca036f","updated":"2014-07-21 16:59:58.000000000","message":"line#53, #72, etc","commit_id":"64322d9ddb125ce26220cf27dcb7fbc341124355"}],"trove/network/nova.py":[{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"843a8514bbc211f15c57f61f08e831da5041e986","unresolved":false,"context_lines":[{"line_number":59,"context_line":"                cidr\u003dcidr)"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"            return sec_group_rule"},{"line_number":62,"context_line":"        except nova_exceptions.ClientException as e:"},{"line_number":63,"context_line":"            LOG.exception(\u0027Failed to add rule to remote security group\u0027)"},{"line_number":64,"context_line":"            raise exception.SecurityGroupRuleCreationError(str(e))"},{"line_number":65,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAXH%2F%2FDME%3D","line":62,"updated":"2014-04-24 11:33:10.000000000","message":"please add\n\nLOG.error(e)","commit_id":"270564329db95c23a40b7780bca909994cfd2c79"},{"author":{"_account_id":1870,"name":"Anna Shen","email":"ruiyuan.shen@hp.com","username":"ruiyuan-shen"},"change_message_id":"fa02c5c1121547cfd5d3acab3758557f20998998","unresolved":false,"context_lines":[{"line_number":59,"context_line":"                cidr\u003dcidr)"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"            return sec_group_rule"},{"line_number":62,"context_line":"        except nova_exceptions.ClientException as e:"},{"line_number":63,"context_line":"            LOG.exception(\u0027Failed to add rule to remote security group\u0027)"},{"line_number":64,"context_line":"            raise exception.SecurityGroupRuleCreationError(str(e))"},{"line_number":65,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"7adec928_33ec8c29","line":62,"in_reply_to":"AAAAXH%2F%2FDME%3D","updated":"2014-05-22 23:05:45.000000000","message":"same","commit_id":"270564329db95c23a40b7780bca909994cfd2c79"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"afc33c17561fa2cdd6ab7b90d4e8e1427330ecfa","unresolved":false,"context_lines":[{"line_number":19,"context_line":"from trove.network import base"},{"line_number":20,"context_line":"from trove.openstack.common import log as logging"},{"line_number":21,"context_line":"from novaclient import exceptions as nova_exceptions"},{"line_number":22,"context_line":"from trove.common import cfg"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"CONF \u003d cfg.CONF"}],"source_content_type":"text/x-python","patch_set":15,"id":"9ad9bd40_4d9e8e08","line":22,"updated":"2014-05-06 11:05:39.000000000","message":"please sort imports","commit_id":"6edf85c50485870e32c4a0071a0b789beab9527f"},{"author":{"_account_id":1870,"name":"Anna Shen","email":"ruiyuan.shen@hp.com","username":"ruiyuan-shen"},"change_message_id":"84ffa8696dc97b24222d497e00c6f4a7189868ba","unresolved":false,"context_lines":[{"line_number":19,"context_line":"from trove.network import base"},{"line_number":20,"context_line":"from trove.openstack.common import log as logging"},{"line_number":21,"context_line":"from novaclient import exceptions as nova_exceptions"},{"line_number":22,"context_line":"from trove.common import cfg"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"CONF \u003d cfg.CONF"}],"source_content_type":"text/x-python","patch_set":15,"id":"7adec928_b36c1c9f","line":22,"in_reply_to":"9ad9bd40_4d9e8e08","updated":"2014-05-22 23:07:58.000000000","message":"Done","commit_id":"6edf85c50485870e32c4a0071a0b789beab9527f"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"d00749a7dfe965a177d47f93eb7cba730f4aca06","unresolved":false,"context_lines":[{"line_number":19,"context_line":"from trove.network import base"},{"line_number":20,"context_line":"from trove.openstack.common import log as logging"},{"line_number":21,"context_line":"from novaclient import exceptions as nova_exceptions"},{"line_number":22,"context_line":"from trove.common import cfg"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"CONF \u003d cfg.CONF"}],"source_content_type":"text/x-python","patch_set":16,"id":"9ad9bd40_c638a13f","line":22,"updated":"2014-05-07 11:59:10.000000000","message":"please sort imports","commit_id":"58471abb6044fb7eac4c0820016512dbd4f6c883"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"4b21eddd972c265a814584670f35bc01021f64c0","unresolved":false,"context_lines":[{"line_number":35,"context_line":"        except nova_exceptions.ClientException as e:"},{"line_number":36,"context_line":"            raise exception.TroveError(str(e))"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"    def get_sec_group_by_id(self, group_id):"},{"line_number":39,"context_line":"        try:"},{"line_number":40,"context_line":"            return self.client.security_groups.get(group_id)"},{"line_number":41,"context_line":"        except nova_exceptions.ClientException as e:"}],"source_content_type":"text/x-python","patch_set":18,"id":"7adec928_7d637a1a","line":38,"updated":"2014-05-08 10:19:38.000000000","message":"please write full name","commit_id":"8e9b408a61dd1f35dfce6d5c16428fa92dc9a686"},{"author":{"_account_id":1870,"name":"Anna Shen","email":"ruiyuan.shen@hp.com","username":"ruiyuan-shen"},"change_message_id":"74bc1e4c33fa9c8c84996c4d79de716ab48d3cc2","unresolved":false,"context_lines":[{"line_number":35,"context_line":"        except nova_exceptions.ClientException as e:"},{"line_number":36,"context_line":"            raise exception.TroveError(str(e))"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"    def get_sec_group_by_id(self, group_id):"},{"line_number":39,"context_line":"        try:"},{"line_number":40,"context_line":"            return self.client.security_groups.get(group_id)"},{"line_number":41,"context_line":"        except nova_exceptions.ClientException as e:"}],"source_content_type":"text/x-python","patch_set":18,"id":"7adec928_f35ce41b","line":38,"in_reply_to":"7adec928_7d637a1a","updated":"2014-05-22 23:05:14.000000000","message":"well","commit_id":"8e9b408a61dd1f35dfce6d5c16428fa92dc9a686"},{"author":{"_account_id":11316,"name":"Steve Leon","email":"kokhang@gmail.com","username":"kokhang"},"change_message_id":"19109c1c241f9338d1ad49395246a421cf5253ee","unresolved":false,"context_lines":[{"line_number":27,"context_line":"class NovaNetwork(base.NetworkDriver):"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"    def __init__(self, context):"},{"line_number":30,"context_line":"        try:"},{"line_number":31,"context_line":"            self.client \u003d remote.create_nova_client("},{"line_number":32,"context_line":"                context)"},{"line_number":33,"context_line":"        except nova_exceptions.ClientException as e:"}],"source_content_type":"text/x-python","patch_set":27,"id":"3ae8d1ca_3fc4863f","line":30,"updated":"2014-05-27 18:24:40.000000000","message":"Same here with the exception. All it is doing is catching, logging and re-raising.","commit_id":"14309205ad0b3be312b0e173dcecd128490cef7b"},{"author":{"_account_id":11316,"name":"Steve Leon","email":"kokhang@gmail.com","username":"kokhang"},"change_message_id":"341a8b2e262095d8d8c15e15f96610ba10633826","unresolved":false,"context_lines":[{"line_number":28,"context_line":""},{"line_number":29,"context_line":"    def __init__(self, context):"},{"line_number":30,"context_line":"        try:"},{"line_number":31,"context_line":"            self.client \u003d remote.create_nova_client("},{"line_number":32,"context_line":"                context)"},{"line_number":33,"context_line":"        except nova_exceptions.ClientException as e:"},{"line_number":34,"context_line":"            raise exception.TroveError(str(e))"}],"source_content_type":"text/x-python","patch_set":34,"id":"1ae5cdf2_19ffdf68","line":31,"updated":"2014-05-30 18:37:13.000000000","message":"Same here with the exception. All it is doing is catching, logging and re-raising","commit_id":"5ae84489421b7ef36637bc4999aaacb9cb76176c"},{"author":{"_account_id":1870,"name":"Anna Shen","email":"ruiyuan.shen@hp.com","username":"ruiyuan-shen"},"change_message_id":"92e0825844042bdbab6b0f52d1fb72579313c2d7","unresolved":false,"context_lines":[{"line_number":28,"context_line":""},{"line_number":29,"context_line":"    def __init__(self, context):"},{"line_number":30,"context_line":"        try:"},{"line_number":31,"context_line":"            self.client \u003d remote.create_nova_client("},{"line_number":32,"context_line":"                context)"},{"line_number":33,"context_line":"        except nova_exceptions.ClientException as e:"},{"line_number":34,"context_line":"            raise exception.TroveError(str(e))"}],"source_content_type":"text/x-python","patch_set":34,"id":"1ae5cdf2_cb659c46","line":31,"in_reply_to":"1ae5cdf2_19ffdf68","updated":"2014-05-30 20:07:16.000000000","message":"same here.","commit_id":"5ae84489421b7ef36637bc4999aaacb9cb76176c"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"adecf158ea9162b5a9d20dd6727e91d245786c59","unresolved":false,"context_lines":[{"line_number":21,"context_line":"from novaclient import exceptions as nova_exceptions"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"class NovaNetwork(base.NetworkDriver):"}],"source_content_type":"text/x-python","patch_set":44,"id":"baada198_d9d4ef21","line":24,"updated":"2014-07-21 11:01:42.000000000","message":"i don\u0027t see any loggings call here? you\u0027ve planned to do that - please fix it, if not - remote unused variables.","commit_id":"64322d9ddb125ce26220cf27dcb7fbc341124355"},{"author":{"_account_id":1870,"name":"Anna Shen","email":"ruiyuan.shen@hp.com","username":"ruiyuan-shen"},"change_message_id":"da4014488bcfa449007e7a1841301cfab3741f2c","unresolved":false,"context_lines":[{"line_number":21,"context_line":"from novaclient import exceptions as nova_exceptions"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"class NovaNetwork(base.NetworkDriver):"}],"source_content_type":"text/x-python","patch_set":44,"id":"baada198_a261b83a","line":24,"in_reply_to":"baada198_d9d4ef21","updated":"2014-07-21 16:59:58.000000000","message":"line#49, #56, #71, etc","commit_id":"64322d9ddb125ce26220cf27dcb7fbc341124355"}],"trove/tests/api/instances.py":[{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"adecf158ea9162b5a9d20dd6727e91d245786c59","unresolved":false,"context_lines":[{"line_number":692,"context_line":"        self.dbaas_client \u003d create_dbaas_client(user)"},{"line_number":693,"context_line":""},{"line_number":694,"context_line":"        self.result \u003d None"},{"line_number":695,"context_line":"        self.instance_name \u003d \"TEST_INSTANCE_CREATION_WITH_NICS\" \\"},{"line_number":696,"context_line":"                             + str(datetime.now())"},{"line_number":697,"context_line":"        databases \u003d []"},{"line_number":698,"context_line":"        self.default_cidr \u003d CONFIG.values.get(\u0027shared_network_subnet\u0027, None)"}],"source_content_type":"text/x-python","patch_set":44,"id":"baada198_39ac0b9f","line":695,"updated":"2014-07-21 11:01:42.000000000","message":"please do not use \\ for string/lines formatting, it\u0027s not a pythonic way.\n\nuse () instead","commit_id":"64322d9ddb125ce26220cf27dcb7fbc341124355"},{"author":{"_account_id":1870,"name":"Anna Shen","email":"ruiyuan.shen@hp.com","username":"ruiyuan-shen"},"change_message_id":"da4014488bcfa449007e7a1841301cfab3741f2c","unresolved":false,"context_lines":[{"line_number":692,"context_line":"        self.dbaas_client \u003d create_dbaas_client(user)"},{"line_number":693,"context_line":""},{"line_number":694,"context_line":"        self.result \u003d None"},{"line_number":695,"context_line":"        self.instance_name \u003d \"TEST_INSTANCE_CREATION_WITH_NICS\" \\"},{"line_number":696,"context_line":"                             + str(datetime.now())"},{"line_number":697,"context_line":"        databases \u003d []"},{"line_number":698,"context_line":"        self.default_cidr \u003d CONFIG.values.get(\u0027shared_network_subnet\u0027, None)"}],"source_content_type":"text/x-python","patch_set":44,"id":"baada198_020d048f","line":695,"in_reply_to":"baada198_39ac0b9f","updated":"2014-07-21 16:59:58.000000000","message":"Done","commit_id":"64322d9ddb125ce26220cf27dcb7fbc341124355"}],"trove/tests/unittests/instance/test_instance_models.py":[{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"afc33c17561fa2cdd6ab7b90d4e8e1427330ecfa","unresolved":false,"context_lines":[{"line_number":37,"context_line":"        db_info.addresses \u003d {\"private\": [{\"addr\": \"123.123.123.123\"}],"},{"line_number":38,"context_line":"                             \"internal\": [{\"addr\": \"10.123.123.123\"}],"},{"line_number":39,"context_line":"                             \"public\": [{\"addr\": \"15.123.123.123\"}]}"},{"line_number":40,"context_line":"        self.orig_conf \u003d CONF.nova_network_label_regex"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"    def tearDown(self):"},{"line_number":43,"context_line":"        super(SimpleInstanceTest, self).tearDown()"}],"source_content_type":"text/x-python","patch_set":15,"id":"9ad9bd40_8d0ed639","line":40,"updated":"2014-05-06 11:05:39.000000000","message":"no such attribute","commit_id":"6edf85c50485870e32c4a0071a0b789beab9527f"},{"author":{"_account_id":1870,"name":"Anna Shen","email":"ruiyuan.shen@hp.com","username":"ruiyuan-shen"},"change_message_id":"84ffa8696dc97b24222d497e00c6f4a7189868ba","unresolved":false,"context_lines":[{"line_number":37,"context_line":"        db_info.addresses \u003d {\"private\": [{\"addr\": \"123.123.123.123\"}],"},{"line_number":38,"context_line":"                             \"internal\": [{\"addr\": \"10.123.123.123\"}],"},{"line_number":39,"context_line":"                             \"public\": [{\"addr\": \"15.123.123.123\"}]}"},{"line_number":40,"context_line":"        self.orig_conf \u003d CONF.nova_network_label_regex"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"    def tearDown(self):"},{"line_number":43,"context_line":"        super(SimpleInstanceTest, self).tearDown()"}],"source_content_type":"text/x-python","patch_set":15,"id":"7adec928_d36b6883","line":40,"in_reply_to":"9ad9bd40_8d0ed639","updated":"2014-05-22 23:07:58.000000000","message":"Done","commit_id":"6edf85c50485870e32c4a0071a0b789beab9527f"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"afc33c17561fa2cdd6ab7b90d4e8e1427330ecfa","unresolved":false,"context_lines":[{"line_number":41,"context_line":""},{"line_number":42,"context_line":"    def tearDown(self):"},{"line_number":43,"context_line":"        super(SimpleInstanceTest, self).tearDown()"},{"line_number":44,"context_line":"        CONF.nova_network_label_regex \u003d self.orig_conf"},{"line_number":45,"context_line":"#        CONF.ip_start \u003d None"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"    def test_get_root_on_create(self):"}],"source_content_type":"text/x-python","patch_set":15,"id":"9ad9bd40_cd91bef2","line":44,"updated":"2014-05-06 11:05:39.000000000","message":"no such attribute","commit_id":"6edf85c50485870e32c4a0071a0b789beab9527f"},{"author":{"_account_id":1870,"name":"Anna Shen","email":"ruiyuan.shen@hp.com","username":"ruiyuan-shen"},"change_message_id":"84ffa8696dc97b24222d497e00c6f4a7189868ba","unresolved":false,"context_lines":[{"line_number":41,"context_line":""},{"line_number":42,"context_line":"    def tearDown(self):"},{"line_number":43,"context_line":"        super(SimpleInstanceTest, self).tearDown()"},{"line_number":44,"context_line":"        CONF.nova_network_label_regex \u003d self.orig_conf"},{"line_number":45,"context_line":"#        CONF.ip_start \u003d None"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"    def test_get_root_on_create(self):"}],"source_content_type":"text/x-python","patch_set":15,"id":"7adec928_1305d0c1","line":44,"in_reply_to":"9ad9bd40_cd91bef2","updated":"2014-05-22 23:07:58.000000000","message":"i put it under workinprogress for a reason. but thanks for comments","commit_id":"6edf85c50485870e32c4a0071a0b789beab9527f"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"afc33c17561fa2cdd6ab7b90d4e8e1427330ecfa","unresolved":false,"context_lines":[{"line_number":49,"context_line":"        self.assertFalse(root_on_create_val)"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"    def test_one_network_label_exact(self):"},{"line_number":52,"context_line":"        CONF.nova_network_label_regex \u003d \u0027^internal$\u0027"},{"line_number":53,"context_line":"        ip \u003d self.instance.get_visible_ip_addresses()"},{"line_number":54,"context_line":"        self.assertEqual([\u002710.123.123.123\u0027], ip)"},{"line_number":55,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"9ad9bd40_ed8e82cf","line":52,"updated":"2014-05-06 11:05:39.000000000","message":"no such attribute","commit_id":"6edf85c50485870e32c4a0071a0b789beab9527f"},{"author":{"_account_id":1870,"name":"Anna Shen","email":"ruiyuan.shen@hp.com","username":"ruiyuan-shen"},"change_message_id":"84ffa8696dc97b24222d497e00c6f4a7189868ba","unresolved":false,"context_lines":[{"line_number":49,"context_line":"        self.assertFalse(root_on_create_val)"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"    def test_one_network_label_exact(self):"},{"line_number":52,"context_line":"        CONF.nova_network_label_regex \u003d \u0027^internal$\u0027"},{"line_number":53,"context_line":"        ip \u003d self.instance.get_visible_ip_addresses()"},{"line_number":54,"context_line":"        self.assertEqual([\u002710.123.123.123\u0027], ip)"},{"line_number":55,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"7adec928_33080cd9","line":52,"in_reply_to":"9ad9bd40_ed8e82cf","updated":"2014-05-22 23:07:58.000000000","message":"Done","commit_id":"6edf85c50485870e32c4a0071a0b789beab9527f"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"afc33c17561fa2cdd6ab7b90d4e8e1427330ecfa","unresolved":false,"context_lines":[{"line_number":54,"context_line":"        self.assertEqual([\u002710.123.123.123\u0027], ip)"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"    def test_one_network_label(self):"},{"line_number":57,"context_line":"        CONF.nova_network_label_regex \u003d \u0027public\u0027"},{"line_number":58,"context_line":"        ip \u003d self.instance.get_visible_ip_addresses()"},{"line_number":59,"context_line":"        self.assertEqual([\u002715.123.123.123\u0027], ip)"},{"line_number":60,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"9ad9bd40_0dbf2662","line":57,"updated":"2014-05-06 11:05:39.000000000","message":"no such attribute","commit_id":"6edf85c50485870e32c4a0071a0b789beab9527f"},{"author":{"_account_id":1870,"name":"Anna Shen","email":"ruiyuan.shen@hp.com","username":"ruiyuan-shen"},"change_message_id":"84ffa8696dc97b24222d497e00c6f4a7189868ba","unresolved":false,"context_lines":[{"line_number":54,"context_line":"        self.assertEqual([\u002710.123.123.123\u0027], ip)"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"    def test_one_network_label(self):"},{"line_number":57,"context_line":"        CONF.nova_network_label_regex \u003d \u0027public\u0027"},{"line_number":58,"context_line":"        ip \u003d self.instance.get_visible_ip_addresses()"},{"line_number":59,"context_line":"        self.assertEqual([\u002715.123.123.123\u0027], ip)"},{"line_number":60,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"7adec928_530f58e1","line":57,"in_reply_to":"9ad9bd40_0dbf2662","updated":"2014-05-22 23:07:58.000000000","message":"Done","commit_id":"6edf85c50485870e32c4a0071a0b789beab9527f"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"afc33c17561fa2cdd6ab7b90d4e8e1427330ecfa","unresolved":false,"context_lines":[{"line_number":59,"context_line":"        self.assertEqual([\u002715.123.123.123\u0027], ip)"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"    def test_two_network_labels(self):"},{"line_number":62,"context_line":"        CONF.nova_network_label_regex \u003d \u0027^(private|public)$\u0027"},{"line_number":63,"context_line":"        ip \u003d self.instance.get_visible_ip_addresses()"},{"line_number":64,"context_line":"        self.assertTrue(len(ip) \u003d\u003d 2)"},{"line_number":65,"context_line":"        self.assertTrue(\u0027123.123.123.123\u0027 in ip)"}],"source_content_type":"text/x-python","patch_set":15,"id":"9ad9bd40_2dc4eaf3","line":62,"updated":"2014-05-06 11:05:39.000000000","message":"no such attribute","commit_id":"6edf85c50485870e32c4a0071a0b789beab9527f"},{"author":{"_account_id":1870,"name":"Anna Shen","email":"ruiyuan.shen@hp.com","username":"ruiyuan-shen"},"change_message_id":"84ffa8696dc97b24222d497e00c6f4a7189868ba","unresolved":false,"context_lines":[{"line_number":59,"context_line":"        self.assertEqual([\u002715.123.123.123\u0027], ip)"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"    def test_two_network_labels(self):"},{"line_number":62,"context_line":"        CONF.nova_network_label_regex \u003d \u0027^(private|public)$\u0027"},{"line_number":63,"context_line":"        ip \u003d self.instance.get_visible_ip_addresses()"},{"line_number":64,"context_line":"        self.assertTrue(len(ip) \u003d\u003d 2)"},{"line_number":65,"context_line":"        self.assertTrue(\u0027123.123.123.123\u0027 in ip)"}],"source_content_type":"text/x-python","patch_set":15,"id":"7adec928_7312940a","line":62,"in_reply_to":"9ad9bd40_2dc4eaf3","updated":"2014-05-22 23:07:58.000000000","message":"Done","commit_id":"6edf85c50485870e32c4a0071a0b789beab9527f"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"afc33c17561fa2cdd6ab7b90d4e8e1427330ecfa","unresolved":false,"context_lines":[{"line_number":66,"context_line":"        self.assertTrue(\u002715.123.123.123\u0027 in ip)"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"    def test_all_network_labels(self):"},{"line_number":69,"context_line":"        CONF.nova_network_label_regex \u003d \u0027.*\u0027"},{"line_number":70,"context_line":"        ip \u003d self.instance.get_visible_ip_addresses()"},{"line_number":71,"context_line":"        self.assertTrue(len(ip) \u003d\u003d 3)"},{"line_number":72,"context_line":"        self.assertTrue(\u002710.123.123.123\u0027 in ip)"}],"source_content_type":"text/x-python","patch_set":15,"id":"9ad9bd40_4db5ae7c","line":69,"updated":"2014-05-06 11:05:39.000000000","message":"no such attribute","commit_id":"6edf85c50485870e32c4a0071a0b789beab9527f"},{"author":{"_account_id":1870,"name":"Anna Shen","email":"ruiyuan.shen@hp.com","username":"ruiyuan-shen"},"change_message_id":"84ffa8696dc97b24222d497e00c6f4a7189868ba","unresolved":false,"context_lines":[{"line_number":66,"context_line":"        self.assertTrue(\u002715.123.123.123\u0027 in ip)"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"    def test_all_network_labels(self):"},{"line_number":69,"context_line":"        CONF.nova_network_label_regex \u003d \u0027.*\u0027"},{"line_number":70,"context_line":"        ip \u003d self.instance.get_visible_ip_addresses()"},{"line_number":71,"context_line":"        self.assertTrue(len(ip) \u003d\u003d 3)"},{"line_number":72,"context_line":"        self.assertTrue(\u002710.123.123.123\u0027 in ip)"}],"source_content_type":"text/x-python","patch_set":15,"id":"7adec928_b3f33ce6","line":69,"in_reply_to":"9ad9bd40_4db5ae7c","updated":"2014-05-22 23:07:58.000000000","message":"Done","commit_id":"6edf85c50485870e32c4a0071a0b789beab9527f"},{"author":{"_account_id":11316,"name":"Steve Leon","email":"kokhang@gmail.com","username":"kokhang"},"change_message_id":"19109c1c241f9338d1ad49395246a421cf5253ee","unresolved":false,"context_lines":[{"line_number":47,"context_line":""},{"line_number":48,"context_line":"    def test_get_root_on_create(self):"},{"line_number":49,"context_line":"        root_on_create_val \u003d Instance.get_root_on_create(\u0027redis\u0027)"},{"line_number":50,"context_line":"        self.assertFalse(root_on_create_val)"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"    def test_one_network_label_exact(self):"},{"line_number":53,"context_line":"        CONF.network_label_regex \u003d \u0027^internal$\u0027"}],"source_content_type":"text/x-python","patch_set":27,"id":"3ae8d1ca_ff3e9e28","line":50,"updated":"2014-05-27 18:24:40.000000000","message":"Why was test_filter_ips deleted? I didnt see it moved to a different place. Can you add it back? Also you added white_list and black_list to this filtering method. Can you add more tests to test these?","commit_id":"14309205ad0b3be312b0e173dcecd128490cef7b"},{"author":{"_account_id":11316,"name":"Steve Leon","email":"kokhang@gmail.com","username":"kokhang"},"change_message_id":"341a8b2e262095d8d8c15e15f96610ba10633826","unresolved":false,"context_lines":[{"line_number":47,"context_line":""},{"line_number":48,"context_line":"    def test_get_root_on_create(self):"},{"line_number":49,"context_line":"        root_on_create_val \u003d Instance.get_root_on_create(\u0027redis\u0027)"},{"line_number":50,"context_line":"        self.assertFalse(root_on_create_val)"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"    def test_one_network_label_exact(self):"},{"line_number":53,"context_line":"        CONF.network_label_regex \u003d \u0027^internal$\u0027"}],"source_content_type":"text/x-python","patch_set":34,"id":"1ae5cdf2_f91793a1","line":50,"updated":"2014-05-30 18:37:13.000000000","message":"Why was test_filter_ips deleted? I didnt see it moved to a different place. Can you add it back? Also you added white_list and black_list to this filtering method. Can you add more tests to test these?","commit_id":"5ae84489421b7ef36637bc4999aaacb9cb76176c"},{"author":{"_account_id":1870,"name":"Anna Shen","email":"ruiyuan.shen@hp.com","username":"ruiyuan-shen"},"change_message_id":"a8a3859b7d208edabf357f8db592229bd0492419","unresolved":false,"context_lines":[{"line_number":47,"context_line":""},{"line_number":48,"context_line":"    def test_get_root_on_create(self):"},{"line_number":49,"context_line":"        root_on_create_val \u003d Instance.get_root_on_create(\u0027redis\u0027)"},{"line_number":50,"context_line":"        self.assertFalse(root_on_create_val)"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"    def test_one_network_label_exact(self):"},{"line_number":53,"context_line":"        CONF.network_label_regex \u003d \u0027^internal$\u0027"}],"source_content_type":"text/x-python","patch_set":34,"id":"1ae5cdf2_2346e97c","line":50,"in_reply_to":"1ae5cdf2_1c88a81e","updated":"2014-06-02 21:46:35.000000000","message":"Done","commit_id":"5ae84489421b7ef36637bc4999aaacb9cb76176c"},{"author":{"_account_id":11316,"name":"Steve Leon","email":"kokhang@gmail.com","username":"kokhang"},"change_message_id":"f2c59df181ae78be8f6a5d4a23a0a3a889ae5285","unresolved":false,"context_lines":[{"line_number":47,"context_line":""},{"line_number":48,"context_line":"    def test_get_root_on_create(self):"},{"line_number":49,"context_line":"        root_on_create_val \u003d Instance.get_root_on_create(\u0027redis\u0027)"},{"line_number":50,"context_line":"        self.assertFalse(root_on_create_val)"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"    def test_one_network_label_exact(self):"},{"line_number":53,"context_line":"        CONF.network_label_regex \u003d \u0027^internal$\u0027"}],"source_content_type":"text/x-python","patch_set":34,"id":"1ae5cdf2_1c88a81e","line":50,"in_reply_to":"1ae5cdf2_2b6d2033","updated":"2014-05-30 21:22:10.000000000","message":"I didnt see it in integration. Besides most integration tests run happy path. We need the unit tests to test the logic around it.","commit_id":"5ae84489421b7ef36637bc4999aaacb9cb76176c"},{"author":{"_account_id":1870,"name":"Anna Shen","email":"ruiyuan.shen@hp.com","username":"ruiyuan-shen"},"change_message_id":"92e0825844042bdbab6b0f52d1fb72579313c2d7","unresolved":false,"context_lines":[{"line_number":47,"context_line":""},{"line_number":48,"context_line":"    def test_get_root_on_create(self):"},{"line_number":49,"context_line":"        root_on_create_val \u003d Instance.get_root_on_create(\u0027redis\u0027)"},{"line_number":50,"context_line":"        self.assertFalse(root_on_create_val)"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"    def test_one_network_label_exact(self):"},{"line_number":53,"context_line":"        CONF.network_label_regex \u003d \u0027^internal$\u0027"}],"source_content_type":"text/x-python","patch_set":34,"id":"1ae5cdf2_2b6d2033","line":50,"in_reply_to":"1ae5cdf2_f91793a1","updated":"2014-05-30 20:07:16.000000000","message":"This part is tested in integration test suite.","commit_id":"5ae84489421b7ef36637bc4999aaacb9cb76176c"},{"author":{"_account_id":11316,"name":"Steve Leon","email":"kokhang@gmail.com","username":"kokhang"},"change_message_id":"ca489769912241b081f6ff16c1178da011a89911","unresolved":false,"context_lines":[{"line_number":47,"context_line":""},{"line_number":48,"context_line":"    def test_get_root_on_create(self):"},{"line_number":49,"context_line":"        root_on_create_val \u003d Instance.get_root_on_create(\u0027redis\u0027)"},{"line_number":50,"context_line":"        self.assertFalse(root_on_create_val)"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"    def test_one_network_label_exact(self):"},{"line_number":53,"context_line":"        CONF.network_label_regex \u003d \u0027^internal$\u0027"}],"source_content_type":"text/x-python","patch_set":35,"id":"1ae5cdf2_375e5f46","line":50,"updated":"2014-06-02 17:43:49.000000000","message":"Anna, plese add the test_filter tests back :P","commit_id":"d7b407de019f296299343b5f73d6a2894ec2ce65"},{"author":{"_account_id":1870,"name":"Anna Shen","email":"ruiyuan.shen@hp.com","username":"ruiyuan-shen"},"change_message_id":"bb67094dce3dacfebc66e00d9641c99ba92165af","unresolved":false,"context_lines":[{"line_number":47,"context_line":""},{"line_number":48,"context_line":"    def test_get_root_on_create(self):"},{"line_number":49,"context_line":"        root_on_create_val \u003d Instance.get_root_on_create(\u0027redis\u0027)"},{"line_number":50,"context_line":"        self.assertFalse(root_on_create_val)"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"    def test_one_network_label_exact(self):"},{"line_number":53,"context_line":"        CONF.network_label_regex \u003d \u0027^internal$\u0027"}],"source_content_type":"text/x-python","patch_set":35,"id":"1ae5cdf2_236fc9fe","line":50,"in_reply_to":"1ae5cdf2_375e5f46","updated":"2014-06-02 21:46:26.000000000","message":"Done","commit_id":"d7b407de019f296299343b5f73d6a2894ec2ce65"}],"trove/tests/unittests/instance/test_instance_views.py":[{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"afc33c17561fa2cdd6ab7b90d4e8e1427330ecfa","unresolved":false,"context_lines":[{"line_number":29,"context_line":"        self.addresses \u003d {\"private\": [{\"addr\": \"123.123.123.123\"}],"},{"line_number":30,"context_line":"                          \"internal\": [{\"addr\": \"10.123.123.123\"}],"},{"line_number":31,"context_line":"                          \"public\": [{\"addr\": \"15.123.123.123\"}]}"},{"line_number":32,"context_line":"        self.orig_label_regex \u003d CONF.nova_network_label_regex"},{"line_number":33,"context_line":"#        self.orig_ip_regex \u003d CONF.ip_regex"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    def tearDown(self):"}],"source_content_type":"text/x-python","patch_set":15,"id":"9ad9bd40_8db25692","line":32,"updated":"2014-05-06 11:05:39.000000000","message":"no such attribute","commit_id":"6edf85c50485870e32c4a0071a0b789beab9527f"},{"author":{"_account_id":1870,"name":"Anna Shen","email":"ruiyuan.shen@hp.com","username":"ruiyuan-shen"},"change_message_id":"84ffa8696dc97b24222d497e00c6f4a7189868ba","unresolved":false,"context_lines":[{"line_number":29,"context_line":"        self.addresses \u003d {\"private\": [{\"addr\": \"123.123.123.123\"}],"},{"line_number":30,"context_line":"                          \"internal\": [{\"addr\": \"10.123.123.123\"}],"},{"line_number":31,"context_line":"                          \"public\": [{\"addr\": \"15.123.123.123\"}]}"},{"line_number":32,"context_line":"        self.orig_label_regex \u003d CONF.nova_network_label_regex"},{"line_number":33,"context_line":"#        self.orig_ip_regex \u003d CONF.ip_regex"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    def tearDown(self):"}],"source_content_type":"text/x-python","patch_set":15,"id":"7adec928_332f2c40","line":32,"in_reply_to":"9ad9bd40_8db25692","updated":"2014-05-22 23:07:58.000000000","message":"Done","commit_id":"6edf85c50485870e32c4a0071a0b789beab9527f"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"afc33c17561fa2cdd6ab7b90d4e8e1427330ecfa","unresolved":false,"context_lines":[{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    def tearDown(self):"},{"line_number":36,"context_line":"        super(InstanceViewsTest, self).tearDown()"},{"line_number":37,"context_line":"        CONF.nova_network_label_regex \u003d self.orig_label_regex"},{"line_number":38,"context_line":"#        CONF.ip_regex \u003d self.orig_ip_regex"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"9ad9bd40_adaf1a29","line":37,"updated":"2014-05-06 11:05:39.000000000","message":"no such attribute","commit_id":"6edf85c50485870e32c4a0071a0b789beab9527f"},{"author":{"_account_id":1870,"name":"Anna Shen","email":"ruiyuan.shen@hp.com","username":"ruiyuan-shen"},"change_message_id":"84ffa8696dc97b24222d497e00c6f4a7189868ba","unresolved":false,"context_lines":[{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    def tearDown(self):"},{"line_number":36,"context_line":"        super(InstanceViewsTest, self).tearDown()"},{"line_number":37,"context_line":"        CONF.nova_network_label_regex \u003d self.orig_label_regex"},{"line_number":38,"context_line":"#        CONF.ip_regex \u003d self.orig_ip_regex"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"7adec928_53267869","line":37,"in_reply_to":"9ad9bd40_adaf1a29","updated":"2014-05-22 23:07:58.000000000","message":"Done","commit_id":"6edf85c50485870e32c4a0071a0b789beab9527f"}],"trove/tests/unittests/network/__init__.py":[{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"56849b89f3a95fcdc66b6a31574f4d129ff8b831","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":39,"id":"1ae5cdf2_565dc814","line":1,"updated":"2014-06-16 11:00:45.000000000","message":"Also, please move already existing security groups tests under network directory","commit_id":"ac8a9ef24d5dc3c67784ace06079d9487a564b2a"}],"trove/tests/unittests/network/test_neutron_driver.py":[{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"4b21eddd972c265a814584670f35bc01021f64c0","unresolved":false,"context_lines":[{"line_number":17,"context_line":"import testtools"},{"line_number":18,"context_line":"from trove.common.models import NetworkRemoteModelBase"},{"line_number":19,"context_line":"from trove.network.neutron import NeutronDriver as driver"},{"line_number":20,"context_line":"from trove.extensions.security_group.models import RemoteSecurityGroup"},{"line_number":21,"context_line":"from mock import Mock"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":""}],"source_content_type":"text/x-python","patch_set":18,"id":"7adec928_1d5b5655","line":20,"updated":"2014-05-08 10:19:38.000000000","message":"please sort the imports","commit_id":"8e9b408a61dd1f35dfce6d5c16428fa92dc9a686"},{"author":{"_account_id":1870,"name":"Anna Shen","email":"ruiyuan.shen@hp.com","username":"ruiyuan-shen"},"change_message_id":"74bc1e4c33fa9c8c84996c4d79de716ab48d3cc2","unresolved":false,"context_lines":[{"line_number":17,"context_line":"import testtools"},{"line_number":18,"context_line":"from trove.common.models import NetworkRemoteModelBase"},{"line_number":19,"context_line":"from trove.network.neutron import NeutronDriver as driver"},{"line_number":20,"context_line":"from trove.extensions.security_group.models import RemoteSecurityGroup"},{"line_number":21,"context_line":"from mock import Mock"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":""}],"source_content_type":"text/x-python","patch_set":18,"id":"7adec928_339e4cb9","line":20,"in_reply_to":"7adec928_1d5b5655","updated":"2014-05-22 23:05:14.000000000","message":"Done","commit_id":"8e9b408a61dd1f35dfce6d5c16428fa92dc9a686"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"f3b519c62b3a43b1320df1ca5ac5b9576082146e","unresolved":false,"context_lines":[{"line_number":23,"context_line":"from trove.extensions.security_group.models import RemoteSecurityGroup"},{"line_number":24,"context_line":"from neutronclient.common import exceptions as neutron_exceptions"},{"line_number":25,"context_line":"from neutronclient.v2_0 import client as NeutronClient"},{"line_number":26,"context_line":"from mock import Mock, MagicMock"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"class NeutronDriverTest(testtools.TestCase):"}],"source_content_type":"text/x-python","patch_set":39,"id":"1ae5cdf2_b66c4cd2","line":26,"updated":"2014-06-16 11:00:01.000000000","message":"do not use coma with imports, do separate","commit_id":"ac8a9ef24d5dc3c67784ace06079d9487a564b2a"},{"author":{"_account_id":1870,"name":"Anna Shen","email":"ruiyuan.shen@hp.com","username":"ruiyuan-shen"},"change_message_id":"932b00d3bfc0cda39413c384e3699603de3eaed0","unresolved":false,"context_lines":[{"line_number":23,"context_line":"from trove.extensions.security_group.models import RemoteSecurityGroup"},{"line_number":24,"context_line":"from neutronclient.common import exceptions as neutron_exceptions"},{"line_number":25,"context_line":"from neutronclient.v2_0 import client as NeutronClient"},{"line_number":26,"context_line":"from mock import Mock, MagicMock"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"class NeutronDriverTest(testtools.TestCase):"}],"source_content_type":"text/x-python","patch_set":39,"id":"baada198_473343f6","line":26,"in_reply_to":"1ae5cdf2_b66c4cd2","updated":"2014-07-09 00:31:25.000000000","message":"Done","commit_id":"ac8a9ef24d5dc3c67784ace06079d9487a564b2a"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"adecf158ea9162b5a9d20dd6727e91d245786c59","unresolved":false,"context_lines":[{"line_number":22,"context_line":"from trove.common import exception"},{"line_number":23,"context_line":"from trove.common import remote"},{"line_number":24,"context_line":"from trove.common.models import NetworkRemoteModelBase"},{"line_number":25,"context_line":"from trove.network import neutron"},{"line_number":26,"context_line":"from trove.network.neutron import NeutronDriver as driver"},{"line_number":27,"context_line":"from trove.extensions.security_group.models import RemoteSecurityGroup"},{"line_number":28,"context_line":""}],"source_content_type":"text/x-python","patch_set":44,"id":"baada198_399a4b62","line":25,"updated":"2014-07-21 11:01:42.000000000","message":"please improve imports usage, do not use importing like this.\n\nright after \n\nfrom trove.network import neutron\n\n\nyou don\u0027t need to import NeutronDriver class, since you can call it through already imported `neutron` module.","commit_id":"64322d9ddb125ce26220cf27dcb7fbc341124355"},{"author":{"_account_id":1870,"name":"Anna Shen","email":"ruiyuan.shen@hp.com","username":"ruiyuan-shen"},"change_message_id":"da4014488bcfa449007e7a1841301cfab3741f2c","unresolved":false,"context_lines":[{"line_number":22,"context_line":"from trove.common import exception"},{"line_number":23,"context_line":"from trove.common import remote"},{"line_number":24,"context_line":"from trove.common.models import NetworkRemoteModelBase"},{"line_number":25,"context_line":"from trove.network import neutron"},{"line_number":26,"context_line":"from trove.network.neutron import NeutronDriver as driver"},{"line_number":27,"context_line":"from trove.extensions.security_group.models import RemoteSecurityGroup"},{"line_number":28,"context_line":""}],"source_content_type":"text/x-python","patch_set":44,"id":"baada198_423b7c37","line":25,"in_reply_to":"baada198_399a4b62","updated":"2014-07-21 16:59:58.000000000","message":"the NeutronDriver part is only used for shortcut, which will make the code cleaner. \n\nwhen you thinking about the realistic world, breaking traditions to make room for read-friendly usage is worth trying.","commit_id":"64322d9ddb125ce26220cf27dcb7fbc341124355"}]}
