)]}'
{"contrib/ci/post_test_hook.sh":[{"author":{"_account_id":11047,"name":"Mark Sturdevant","email":"mark.sturdevant@ibm.com","username":"markstur"},"change_message_id":"78c5471c8f95a800354ad925bf35c3f6c02c7e06","unresolved":false,"context_lines":[{"line_number":26,"context_line":"# Create manilaclient config file"},{"line_number":27,"context_line":"touch $MANILACLIENT_CONF"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"# Import \u0027iniset\u0027 and \u0027trueorfalse\u0027 functions from devstack"},{"line_number":30,"context_line":"source $BASE/new/devstack/functions"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"# Set options to config client."}],"source_content_type":"text/x-sh","patch_set":12,"id":"1aca2d91_147e2eae","line":29,"updated":"2015-05-08 04:40:51.000000000","message":"Nice to know now, but seems like this comment is just asking to get out-of-date in the future.  Maybe deleting it now would be better.  Just sayin\u0027 maybe.","commit_id":"694dcef1b38ac634072e7ccc9924223a1d55f81d"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"e1e61da435f6abc11beba4c72cf5592c4d952b39","unresolved":false,"context_lines":[{"line_number":26,"context_line":"# Create manilaclient config file"},{"line_number":27,"context_line":"touch $MANILACLIENT_CONF"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"# Import \u0027iniset\u0027 and \u0027trueorfalse\u0027 functions from devstack"},{"line_number":30,"context_line":"source $BASE/new/devstack/functions"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"# Set options to config client."}],"source_content_type":"text/x-sh","patch_set":12,"id":"1aca2d91_d2644123","line":29,"in_reply_to":"1aca2d91_147e2eae","updated":"2015-05-08 10:07:56.000000000","message":"Removed names of functions.","commit_id":"694dcef1b38ac634072e7ccc9924223a1d55f81d"},{"author":{"_account_id":7102,"name":"Thomas Bechtold","email":"thomas.bechtold@chainguard.dev","username":"toabctl"},"change_message_id":"03fa1eb33cdb18dea44091ee681277afdb00f7e7","unresolved":false,"context_lines":[{"line_number":52,"context_line":"    SHARE_NETWORK_NAME\u003d${SHARE_NETWORK_NAME:-ci}"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"    if [[ \"$JOB_NAME\" \u003d~ \"neutron\" ]]; then"},{"line_number":55,"context_line":"        DEFAULT_NEUTRON_NET\u003d$(neutron net-show private | grep \u0027 id \u0027 | awk \u0027{print $4}\u0027)"},{"line_number":56,"context_line":"        DEFAULT_NEUTRON_SUBNET\u003d$(neutron subnet-show private-subnet | grep \u0027 id \u0027 | awk \u0027{print $4}\u0027)"},{"line_number":57,"context_line":"        NEUTRON_NET\u003d${NEUTRON_NET:-$DEFAULT_NEUTRON_NET}"},{"line_number":58,"context_line":"        NEUTRON_SUBNET\u003d${NEUTRON_SUBNET:-$DEFAULT_NEUTRON_SUBNET}"}],"source_content_type":"text/x-sh","patch_set":13,"id":"9a0c5dc1_01bf4bfc","line":55,"updated":"2015-05-13 06:21:03.000000000","message":"No need for grep and awk here. Just do: neutron net-show private -c id -f value","commit_id":"97f11f3c1da68410e9189c3824852c18e8df5fbc"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"7bc23d3265869c1a3b26138e37dae31eb753f45e","unresolved":false,"context_lines":[{"line_number":52,"context_line":"    SHARE_NETWORK_NAME\u003d${SHARE_NETWORK_NAME:-ci}"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"    if [[ \"$JOB_NAME\" \u003d~ \"neutron\" ]]; then"},{"line_number":55,"context_line":"        DEFAULT_NEUTRON_NET\u003d$(neutron net-show private | grep \u0027 id \u0027 | awk \u0027{print $4}\u0027)"},{"line_number":56,"context_line":"        DEFAULT_NEUTRON_SUBNET\u003d$(neutron subnet-show private-subnet | grep \u0027 id \u0027 | awk \u0027{print $4}\u0027)"},{"line_number":57,"context_line":"        NEUTRON_NET\u003d${NEUTRON_NET:-$DEFAULT_NEUTRON_NET}"},{"line_number":58,"context_line":"        NEUTRON_SUBNET\u003d${NEUTRON_SUBNET:-$DEFAULT_NEUTRON_SUBNET}"}],"source_content_type":"text/x-sh","patch_set":13,"id":"9a0c5dc1_fe41650c","line":55,"in_reply_to":"9a0c5dc1_01bf4bfc","updated":"2015-05-13 11:49:55.000000000","message":"Done","commit_id":"97f11f3c1da68410e9189c3824852c18e8df5fbc"},{"author":{"_account_id":7102,"name":"Thomas Bechtold","email":"thomas.bechtold@chainguard.dev","username":"toabctl"},"change_message_id":"03fa1eb33cdb18dea44091ee681277afdb00f7e7","unresolved":false,"context_lines":[{"line_number":53,"context_line":""},{"line_number":54,"context_line":"    if [[ \"$JOB_NAME\" \u003d~ \"neutron\" ]]; then"},{"line_number":55,"context_line":"        DEFAULT_NEUTRON_NET\u003d$(neutron net-show private | grep \u0027 id \u0027 | awk \u0027{print $4}\u0027)"},{"line_number":56,"context_line":"        DEFAULT_NEUTRON_SUBNET\u003d$(neutron subnet-show private-subnet | grep \u0027 id \u0027 | awk \u0027{print $4}\u0027)"},{"line_number":57,"context_line":"        NEUTRON_NET\u003d${NEUTRON_NET:-$DEFAULT_NEUTRON_NET}"},{"line_number":58,"context_line":"        NEUTRON_SUBNET\u003d${NEUTRON_SUBNET:-$DEFAULT_NEUTRON_SUBNET}"},{"line_number":59,"context_line":"        manila share-network-create \\"}],"source_content_type":"text/x-sh","patch_set":13,"id":"9a0c5dc1_414c2342","line":56,"updated":"2015-05-13 06:21:03.000000000","message":"same here","commit_id":"97f11f3c1da68410e9189c3824852c18e8df5fbc"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"7bc23d3265869c1a3b26138e37dae31eb753f45e","unresolved":false,"context_lines":[{"line_number":53,"context_line":""},{"line_number":54,"context_line":"    if [[ \"$JOB_NAME\" \u003d~ \"neutron\" ]]; then"},{"line_number":55,"context_line":"        DEFAULT_NEUTRON_NET\u003d$(neutron net-show private | grep \u0027 id \u0027 | awk \u0027{print $4}\u0027)"},{"line_number":56,"context_line":"        DEFAULT_NEUTRON_SUBNET\u003d$(neutron subnet-show private-subnet | grep \u0027 id \u0027 | awk \u0027{print $4}\u0027)"},{"line_number":57,"context_line":"        NEUTRON_NET\u003d${NEUTRON_NET:-$DEFAULT_NEUTRON_NET}"},{"line_number":58,"context_line":"        NEUTRON_SUBNET\u003d${NEUTRON_SUBNET:-$DEFAULT_NEUTRON_SUBNET}"},{"line_number":59,"context_line":"        manila share-network-create \\"}],"source_content_type":"text/x-sh","patch_set":13,"id":"9a0c5dc1_3e381da0","line":56,"in_reply_to":"9a0c5dc1_414c2342","updated":"2015-05-13 11:49:55.000000000","message":"Done","commit_id":"97f11f3c1da68410e9189c3824852c18e8df5fbc"}],"manilaclient/config.py":[{"author":{"_account_id":11047,"name":"Mark Sturdevant","email":"mark.sturdevant@ibm.com","username":"markstur"},"change_message_id":"78c5471c8f95a800354ad925bf35c3f6c02c7e06","unresolved":false,"context_lines":[{"line_number":69,"context_line":"share_opts \u003d ["},{"line_number":70,"context_line":"    cfg.StrOpt(\"share_network\","},{"line_number":71,"context_line":"               default\u003dNone,"},{"line_number":72,"context_line":"               help\u003d\"Some backend drivers requires share network \""},{"line_number":73,"context_line":"                    \"for share creation. Share network Name or ID, that will \""},{"line_number":74,"context_line":"                    \"be used for shares.\"),"},{"line_number":75,"context_line":"    cfg.StrOpt(\"admin_share_network\","}],"source_content_type":"text/x-python","patch_set":12,"id":"1aca2d91_7427a2ca","line":72,"updated":"2015-05-08 04:40:51.000000000","message":"s/requires/require a/","commit_id":"694dcef1b38ac634072e7ccc9924223a1d55f81d"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"e1e61da435f6abc11beba4c72cf5592c4d952b39","unresolved":false,"context_lines":[{"line_number":69,"context_line":"share_opts \u003d ["},{"line_number":70,"context_line":"    cfg.StrOpt(\"share_network\","},{"line_number":71,"context_line":"               default\u003dNone,"},{"line_number":72,"context_line":"               help\u003d\"Some backend drivers requires share network \""},{"line_number":73,"context_line":"                    \"for share creation. Share network Name or ID, that will \""},{"line_number":74,"context_line":"                    \"be used for shares.\"),"},{"line_number":75,"context_line":"    cfg.StrOpt(\"admin_share_network\","}],"source_content_type":"text/x-python","patch_set":12,"id":"1aca2d91_d2efa185","line":72,"in_reply_to":"1aca2d91_7427a2ca","updated":"2015-05-08 10:07:56.000000000","message":"Done","commit_id":"694dcef1b38ac634072e7ccc9924223a1d55f81d"},{"author":{"_account_id":11047,"name":"Mark Sturdevant","email":"mark.sturdevant@ibm.com","username":"markstur"},"change_message_id":"78c5471c8f95a800354ad925bf35c3f6c02c7e06","unresolved":false,"context_lines":[{"line_number":71,"context_line":"               default\u003dNone,"},{"line_number":72,"context_line":"               help\u003d\"Some backend drivers requires share network \""},{"line_number":73,"context_line":"                    \"for share creation. Share network Name or ID, that will \""},{"line_number":74,"context_line":"                    \"be used for shares.\"),"},{"line_number":75,"context_line":"    cfg.StrOpt(\"admin_share_network\","},{"line_number":76,"context_line":"               default\u003dNone,"},{"line_number":77,"context_line":"               help\u003d\"Share network Name or ID, that will be used for shares \""}],"source_content_type":"text/x-python","patch_set":12,"id":"1aca2d91_b413fa65","line":74,"updated":"2015-05-08 04:40:51.000000000","message":"I think I\u0027d prefer 2nd sentence first.","commit_id":"694dcef1b38ac634072e7ccc9924223a1d55f81d"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"e1e61da435f6abc11beba4c72cf5592c4d952b39","unresolved":false,"context_lines":[{"line_number":71,"context_line":"               default\u003dNone,"},{"line_number":72,"context_line":"               help\u003d\"Some backend drivers requires share network \""},{"line_number":73,"context_line":"                    \"for share creation. Share network Name or ID, that will \""},{"line_number":74,"context_line":"                    \"be used for shares.\"),"},{"line_number":75,"context_line":"    cfg.StrOpt(\"admin_share_network\","},{"line_number":76,"context_line":"               default\u003dNone,"},{"line_number":77,"context_line":"               help\u003d\"Share network Name or ID, that will be used for shares \""}],"source_content_type":"text/x-python","patch_set":12,"id":"1aca2d91_b2f2e56d","line":74,"in_reply_to":"1aca2d91_b413fa65","updated":"2015-05-08 10:07:56.000000000","message":"Done","commit_id":"694dcef1b38ac634072e7ccc9924223a1d55f81d"},{"author":{"_account_id":11047,"name":"Mark Sturdevant","email":"mark.sturdevant@ibm.com","username":"markstur"},"change_message_id":"78c5471c8f95a800354ad925bf35c3f6c02c7e06","unresolved":false,"context_lines":[{"line_number":84,"context_line":"    cfg.ListOpt(\"enable_protocols\","},{"line_number":85,"context_line":"                default\u003d[\"nfs\", \"cifs\"],"},{"line_number":86,"context_line":"                help\u003d\"First value of list is protocol by default, \""},{"line_number":87,"context_line":"                     \"items of list show enabled protocols at all.\"),"},{"line_number":88,"context_line":"    cfg.IntOpt(\"build_interval\","},{"line_number":89,"context_line":"               default\u003d3,"},{"line_number":90,"context_line":"               help\u003d\"Time in seconds between share availability checks.\"),"}],"source_content_type":"text/x-python","patch_set":12,"id":"1aca2d91_680d8636","line":87,"updated":"2015-05-08 04:40:51.000000000","message":"List of all enabled protocols.  The first protocol in the list will be used as the default protocol.","commit_id":"694dcef1b38ac634072e7ccc9924223a1d55f81d"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"e1e61da435f6abc11beba4c72cf5592c4d952b39","unresolved":false,"context_lines":[{"line_number":84,"context_line":"    cfg.ListOpt(\"enable_protocols\","},{"line_number":85,"context_line":"                default\u003d[\"nfs\", \"cifs\"],"},{"line_number":86,"context_line":"                help\u003d\"First value of list is protocol by default, \""},{"line_number":87,"context_line":"                     \"items of list show enabled protocols at all.\"),"},{"line_number":88,"context_line":"    cfg.IntOpt(\"build_interval\","},{"line_number":89,"context_line":"               default\u003d3,"},{"line_number":90,"context_line":"               help\u003d\"Time in seconds between share availability checks.\"),"}],"source_content_type":"text/x-python","patch_set":12,"id":"1aca2d91_d2bd6169","line":87,"in_reply_to":"1aca2d91_680d8636","updated":"2015-05-08 10:07:56.000000000","message":"Done","commit_id":"694dcef1b38ac634072e7ccc9924223a1d55f81d"},{"author":{"_account_id":7102,"name":"Thomas Bechtold","email":"thomas.bechtold@chainguard.dev","username":"toabctl"},"change_message_id":"03fa1eb33cdb18dea44091ee681277afdb00f7e7","unresolved":false,"context_lines":[{"line_number":78,"context_line":"                    \"in admin tenant.\"),"},{"line_number":79,"context_line":"    cfg.StrOpt(\"share_type\","},{"line_number":80,"context_line":"               default\u003dNone,"},{"line_number":81,"context_line":"               help\u003d\"Set here Name or ID of a share type that you want to use \""},{"line_number":82,"context_line":"                    \"with share or leave empty if you are OK with Manila\u0027s \""},{"line_number":83,"context_line":"                    \"default value.\"),"},{"line_number":84,"context_line":"    cfg.ListOpt(\"enable_protocols\","}],"source_content_type":"text/x-python","patch_set":13,"id":"9a0c5dc1_016d0b98","line":81,"updated":"2015-05-13 06:21:03.000000000","message":"I would prefer to use the same language style as in the previous help texts (without \"you\"). i.e. \"Share type Name or ID ...\"","commit_id":"97f11f3c1da68410e9189c3824852c18e8df5fbc"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"7bc23d3265869c1a3b26138e37dae31eb753f45e","unresolved":false,"context_lines":[{"line_number":78,"context_line":"                    \"in admin tenant.\"),"},{"line_number":79,"context_line":"    cfg.StrOpt(\"share_type\","},{"line_number":80,"context_line":"               default\u003dNone,"},{"line_number":81,"context_line":"               help\u003d\"Set here Name or ID of a share type that you want to use \""},{"line_number":82,"context_line":"                    \"with share or leave empty if you are OK with Manila\u0027s \""},{"line_number":83,"context_line":"                    \"default value.\"),"},{"line_number":84,"context_line":"    cfg.ListOpt(\"enable_protocols\","}],"source_content_type":"text/x-python","patch_set":13,"id":"9a0c5dc1_5ec4f15d","line":81,"in_reply_to":"9a0c5dc1_016d0b98","updated":"2015-05-13 11:49:55.000000000","message":"Done","commit_id":"97f11f3c1da68410e9189c3824852c18e8df5fbc"},{"author":{"_account_id":7102,"name":"Thomas Bechtold","email":"thomas.bechtold@chainguard.dev","username":"toabctl"},"change_message_id":"03fa1eb33cdb18dea44091ee681277afdb00f7e7","unresolved":false,"context_lines":[{"line_number":85,"context_line":"                default\u003d[\"nfs\", \"cifs\"],"},{"line_number":86,"context_line":"                help\u003d\"List of all enabled protocols. The first protocol in \""},{"line_number":87,"context_line":"                     \"the list will be used as the default protocol.\"),"},{"line_number":88,"context_line":"    cfg.IntOpt(\"build_interval\","},{"line_number":89,"context_line":"               default\u003d3,"},{"line_number":90,"context_line":"               help\u003d\"Time in seconds between share availability checks.\"),"},{"line_number":91,"context_line":"    cfg.IntOpt(\"build_timeout\","}],"source_content_type":"text/x-python","patch_set":13,"id":"9a0c5dc1_6114c7f4","line":88,"updated":"2015-05-13 06:21:03.000000000","message":"hm. imho the variable name is missleading. Sounds to me like it builds every 3 seconds. Maybe \"build_check_interval\" is better?","commit_id":"97f11f3c1da68410e9189c3824852c18e8df5fbc"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"3c8d91cc210703dfe2bf0612c8b279f2131c8559","unresolved":false,"context_lines":[{"line_number":85,"context_line":"                default\u003d[\"nfs\", \"cifs\"],"},{"line_number":86,"context_line":"                help\u003d\"List of all enabled protocols. The first protocol in \""},{"line_number":87,"context_line":"                     \"the list will be used as the default protocol.\"),"},{"line_number":88,"context_line":"    cfg.IntOpt(\"build_interval\","},{"line_number":89,"context_line":"               default\u003d3,"},{"line_number":90,"context_line":"               help\u003d\"Time in seconds between share availability checks.\"),"},{"line_number":91,"context_line":"    cfg.IntOpt(\"build_timeout\","}],"source_content_type":"text/x-python","patch_set":13,"id":"9a0c5dc1_94cc9736","line":88,"in_reply_to":"9a0c5dc1_6114c7f4","updated":"2015-05-13 06:47:12.000000000","message":"It is done in compatible way with existing approaches:\n\nhttps://github.com/openstack/tempest/blob/e5cca002/tempest/config.py#L190","commit_id":"97f11f3c1da68410e9189c3824852c18e8df5fbc"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"b2cc3b9e76ef59897d4f61923d7d2cd915a54f24","unresolved":false,"context_lines":[{"line_number":89,"context_line":"               help\u003d\"Time in seconds between share availability checks.\"),"},{"line_number":90,"context_line":"    cfg.IntOpt(\"build_timeout\","},{"line_number":91,"context_line":"               default\u003d500,"},{"line_number":92,"context_line":"               help\u003d\"Timeout in seconds to wait for a share to become\""},{"line_number":93,"context_line":"                    \"available.\"),"},{"line_number":94,"context_line":"]"},{"line_number":95,"context_line":""}],"source_content_type":"text/x-python","patch_set":22,"id":"7a016987_1a8fedcd","line":92,"updated":"2015-05-25 17:17:31.000000000","message":"Missing a space at the end.","commit_id":"18b27b28b5abfb8da278a0a4abdf8313576b2f06"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"e28be09e3939c6c1d81b3aab42062e3c95868ec9","unresolved":false,"context_lines":[{"line_number":89,"context_line":"               help\u003d\"Time in seconds between share availability checks.\"),"},{"line_number":90,"context_line":"    cfg.IntOpt(\"build_timeout\","},{"line_number":91,"context_line":"               default\u003d500,"},{"line_number":92,"context_line":"               help\u003d\"Timeout in seconds to wait for a share to become\""},{"line_number":93,"context_line":"                    \"available.\"),"},{"line_number":94,"context_line":"]"},{"line_number":95,"context_line":""}],"source_content_type":"text/x-python","patch_set":22,"id":"7a016987_9bcd1fba","line":92,"in_reply_to":"7a016987_1a8fedcd","updated":"2015-05-25 20:45:37.000000000","message":"Will fix","commit_id":"18b27b28b5abfb8da278a0a4abdf8313576b2f06"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"4fff1d2e6c4ed024d3149cd16b5cfa7fe65004f5","unresolved":false,"context_lines":[{"line_number":89,"context_line":"               help\u003d\"Time in seconds between share availability checks.\"),"},{"line_number":90,"context_line":"    cfg.IntOpt(\"build_timeout\","},{"line_number":91,"context_line":"               default\u003d500,"},{"line_number":92,"context_line":"               help\u003d\"Timeout in seconds to wait for a share to become\""},{"line_number":93,"context_line":"                    \"available.\"),"},{"line_number":94,"context_line":"]"},{"line_number":95,"context_line":""}],"source_content_type":"text/x-python","patch_set":22,"id":"7a016987_17c0d8df","line":92,"in_reply_to":"7a016987_9bcd1fba","updated":"2015-05-26 08:57:02.000000000","message":"Done","commit_id":"18b27b28b5abfb8da278a0a4abdf8313576b2f06"}],"manilaclient/tests/functional/base.py":[{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"b2cc3b9e76ef59897d4f61923d7d2cd915a54f24","unresolved":false,"context_lines":[{"line_number":196,"context_line":"            client \u003d cls.get_admin_client()"},{"line_number":197,"context_line":"        data \u003d {"},{"line_number":198,"context_line":"            \u0027share_protocol\u0027: share_protocol or client.share_protocol,"},{"line_number":199,"context_line":"            \u0027size\u0027: size or 1,"},{"line_number":200,"context_line":"            \u0027name\u0027: name,"},{"line_number":201,"context_line":"            \u0027description\u0027: description,"},{"line_number":202,"context_line":"            \u0027public\u0027: public,"}],"source_content_type":"text/x-python","patch_set":22,"id":"7a016987_5aac4535","line":199,"updated":"2015-05-25 17:17:31.000000000","message":"This should not have a default of 1. If size is not given, it should just fail and provide error message.","commit_id":"18b27b28b5abfb8da278a0a4abdf8313576b2f06"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"e28be09e3939c6c1d81b3aab42062e3c95868ec9","unresolved":false,"context_lines":[{"line_number":196,"context_line":"            client \u003d cls.get_admin_client()"},{"line_number":197,"context_line":"        data \u003d {"},{"line_number":198,"context_line":"            \u0027share_protocol\u0027: share_protocol or client.share_protocol,"},{"line_number":199,"context_line":"            \u0027size\u0027: size or 1,"},{"line_number":200,"context_line":"            \u0027name\u0027: name,"},{"line_number":201,"context_line":"            \u0027description\u0027: description,"},{"line_number":202,"context_line":"            \u0027public\u0027: public,"}],"source_content_type":"text/x-python","patch_set":22,"id":"7a016987_7bc3838b","line":199,"in_reply_to":"7a016987_5aac4535","updated":"2015-05-25 20:45:37.000000000","message":"Why is that? This is not \"client\" module, this is \"base\" module that wraps some data.","commit_id":"18b27b28b5abfb8da278a0a4abdf8313576b2f06"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"13cd117e96c69d683915e025991427fc0c790b47","unresolved":false,"context_lines":[{"line_number":196,"context_line":"            client \u003d cls.get_admin_client()"},{"line_number":197,"context_line":"        data \u003d {"},{"line_number":198,"context_line":"            \u0027share_protocol\u0027: share_protocol or client.share_protocol,"},{"line_number":199,"context_line":"            \u0027size\u0027: size or 1,"},{"line_number":200,"context_line":"            \u0027name\u0027: name,"},{"line_number":201,"context_line":"            \u0027description\u0027: description,"},{"line_number":202,"context_line":"            \u0027public\u0027: public,"}],"source_content_type":"text/x-python","patch_set":22,"id":"7a016987_b09c755e","line":199,"in_reply_to":"7a016987_7bc3838b","updated":"2015-05-26 01:05:15.000000000","message":"For test it is probably okay.","commit_id":"18b27b28b5abfb8da278a0a4abdf8313576b2f06"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"e0c547fa27d3179d11a48f2d2abdcd9c34a08360","unresolved":false,"context_lines":[{"line_number":196,"context_line":"            client \u003d cls.get_admin_client()"},{"line_number":197,"context_line":"        data \u003d {"},{"line_number":198,"context_line":"            \u0027share_protocol\u0027: share_protocol or client.share_protocol,"},{"line_number":199,"context_line":"            \u0027size\u0027: size or 1,"},{"line_number":200,"context_line":"            \u0027name\u0027: name,"},{"line_number":201,"context_line":"            \u0027description\u0027: description,"},{"line_number":202,"context_line":"            \u0027public\u0027: public,"}],"source_content_type":"text/x-python","patch_set":22,"id":"7a016987_77c6ef4a","line":199,"in_reply_to":"7a016987_b09c755e","updated":"2015-05-26 07:17:45.000000000","message":"So, you are OK if I leave it as is?","commit_id":"18b27b28b5abfb8da278a0a4abdf8313576b2f06"}],"manilaclient/tests/functional/client.py":[{"author":{"_account_id":11047,"name":"Mark Sturdevant","email":"mark.sturdevant@ibm.com","username":"markstur"},"change_message_id":"78c5471c8f95a800354ad925bf35c3f6c02c7e06","unresolved":false,"context_lines":[{"line_number":420,"context_line":""},{"line_number":421,"context_line":"        :param share_protocol: text -- share protocol of a share."},{"line_number":422,"context_line":"        :param size: int/text -- desired size of a share."},{"line_number":423,"context_line":"        :param share_network: text -- name or ID of share network to use."},{"line_number":424,"context_line":"        :param share_type: text -- Name or ID of share type to use."},{"line_number":425,"context_line":"        :param name: text -- desired name of new share."},{"line_number":426,"context_line":"        :param description: text -- desired description of new share."}],"source_content_type":"text/x-python","patch_set":12,"id":"1aca2d91_682466ae","line":423,"updated":"2015-05-08 04:40:51.000000000","message":"s/name/Name/ to be consistent with the others.","commit_id":"694dcef1b38ac634072e7ccc9924223a1d55f81d"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"e1e61da435f6abc11beba4c72cf5592c4d952b39","unresolved":false,"context_lines":[{"line_number":420,"context_line":""},{"line_number":421,"context_line":"        :param share_protocol: text -- share protocol of a share."},{"line_number":422,"context_line":"        :param size: int/text -- desired size of a share."},{"line_number":423,"context_line":"        :param share_network: text -- name or ID of share network to use."},{"line_number":424,"context_line":"        :param share_type: text -- Name or ID of share type to use."},{"line_number":425,"context_line":"        :param name: text -- desired name of new share."},{"line_number":426,"context_line":"        :param description: text -- desired description of new share."}],"source_content_type":"text/x-python","patch_set":12,"id":"1aca2d91_5256f15c","line":423,"in_reply_to":"1aca2d91_682466ae","updated":"2015-05-08 10:07:56.000000000","message":"Done","commit_id":"694dcef1b38ac634072e7ccc9924223a1d55f81d"},{"author":{"_account_id":7102,"name":"Thomas Bechtold","email":"thomas.bechtold@chainguard.dev","username":"toabctl"},"change_message_id":"03fa1eb33cdb18dea44091ee681277afdb00f7e7","unresolved":false,"context_lines":[{"line_number":47,"context_line":"    return wrapped_func"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"def forbidden_wrapper(f):"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"    def wrapped_func(self, *args, **kwargs):"},{"line_number":53,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":13,"id":"9a0c5dc1_41f9c37f","line":50,"updated":"2015-05-13 06:21:03.000000000","message":"Hm. Why do we need that at all?","commit_id":"97f11f3c1da68410e9189c3824852c18e8df5fbc"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"3c8d91cc210703dfe2bf0612c8b279f2131c8559","unresolved":false,"context_lines":[{"line_number":47,"context_line":"    return wrapped_func"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"def forbidden_wrapper(f):"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"    def wrapped_func(self, *args, **kwargs):"},{"line_number":53,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":13,"id":"9a0c5dc1_146b0720","line":50,"in_reply_to":"9a0c5dc1_41f9c37f","updated":"2015-05-13 06:47:12.000000000","message":"For raising proper error \"Forbidden\". Without it we have the only exception \"CommandError\" for everything.","commit_id":"97f11f3c1da68410e9189c3824852c18e8df5fbc"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"b2cc3b9e76ef59897d4f61923d7d2cd915a54f24","unresolved":false,"context_lines":[{"line_number":68,"context_line":"        if CONF.enable_protocols:"},{"line_number":69,"context_line":"            self.share_protocol \u003d CONF.enable_protocols[0]"},{"line_number":70,"context_line":"        else:"},{"line_number":71,"context_line":"            msg \u003d \"Configuration option \u0027enable_protocols\u0027 is not defined.\""},{"line_number":72,"context_line":"            raise exceptions.InvalidConfiguration(reason\u003dmsg)"},{"line_number":73,"context_line":"        self.build_interval \u003d CONF.build_interval"},{"line_number":74,"context_line":"        self.build_timeout \u003d CONF.build_timeout"}],"source_content_type":"text/x-python","patch_set":22,"id":"7a016987_7a76e1d9","line":71,"updated":"2015-05-25 17:17:31.000000000","message":"msg \u003d _(\"xxx\").","commit_id":"18b27b28b5abfb8da278a0a4abdf8313576b2f06"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"13cd117e96c69d683915e025991427fc0c790b47","unresolved":false,"context_lines":[{"line_number":68,"context_line":"        if CONF.enable_protocols:"},{"line_number":69,"context_line":"            self.share_protocol \u003d CONF.enable_protocols[0]"},{"line_number":70,"context_line":"        else:"},{"line_number":71,"context_line":"            msg \u003d \"Configuration option \u0027enable_protocols\u0027 is not defined.\""},{"line_number":72,"context_line":"            raise exceptions.InvalidConfiguration(reason\u003dmsg)"},{"line_number":73,"context_line":"        self.build_interval \u003d CONF.build_interval"},{"line_number":74,"context_line":"        self.build_timeout \u003d CONF.build_timeout"}],"source_content_type":"text/x-python","patch_set":22,"id":"7a016987_70915d52","line":71,"in_reply_to":"7a016987_3bbd0b03","updated":"2015-05-26 01:05:15.000000000","message":"Ok, I see now this is a test.","commit_id":"18b27b28b5abfb8da278a0a4abdf8313576b2f06"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"e28be09e3939c6c1d81b3aab42062e3c95868ec9","unresolved":false,"context_lines":[{"line_number":68,"context_line":"        if CONF.enable_protocols:"},{"line_number":69,"context_line":"            self.share_protocol \u003d CONF.enable_protocols[0]"},{"line_number":70,"context_line":"        else:"},{"line_number":71,"context_line":"            msg \u003d \"Configuration option \u0027enable_protocols\u0027 is not defined.\""},{"line_number":72,"context_line":"            raise exceptions.InvalidConfiguration(reason\u003dmsg)"},{"line_number":73,"context_line":"        self.build_interval \u003d CONF.build_interval"},{"line_number":74,"context_line":"        self.build_timeout \u003d CONF.build_timeout"}],"source_content_type":"text/x-python","patch_set":22,"id":"7a016987_3bbd0b03","line":71,"in_reply_to":"7a016987_7a76e1d9","updated":"2015-05-25 20:45:37.000000000","message":"Translations are not used in tests. This module is test module.","commit_id":"18b27b28b5abfb8da278a0a4abdf8313576b2f06"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"b2cc3b9e76ef59897d4f61923d7d2cd915a54f24","unresolved":false,"context_lines":[{"line_number":418,"context_line":"                     public\u003dFalse, snapshot\u003dNone, metadata\u003dNone):"},{"line_number":419,"context_line":"        \"\"\"Creates a share."},{"line_number":420,"context_line":""},{"line_number":421,"context_line":"        :param share_protocol: text -- share protocol of a share."},{"line_number":422,"context_line":"        :param size: int/text -- desired size of a share."},{"line_number":423,"context_line":"        :param share_network: text -- Name or ID of share network to use."},{"line_number":424,"context_line":"        :param share_type: text -- Name or ID of share type to use."}],"source_content_type":"text/x-python","patch_set":22,"id":"7a016987_ba421967","line":421,"updated":"2015-05-25 17:17:31.000000000","message":"text -\u003e string\n\nsame comments below.","commit_id":"18b27b28b5abfb8da278a0a4abdf8313576b2f06"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"13cd117e96c69d683915e025991427fc0c790b47","unresolved":false,"context_lines":[{"line_number":418,"context_line":"                     public\u003dFalse, snapshot\u003dNone, metadata\u003dNone):"},{"line_number":419,"context_line":"        \"\"\"Creates a share."},{"line_number":420,"context_line":""},{"line_number":421,"context_line":"        :param share_protocol: text -- share protocol of a share."},{"line_number":422,"context_line":"        :param size: int/text -- desired size of a share."},{"line_number":423,"context_line":"        :param share_network: text -- Name or ID of share network to use."},{"line_number":424,"context_line":"        :param share_type: text -- Name or ID of share type to use."}],"source_content_type":"text/x-python","patch_set":22,"id":"7a016987_907bb929","line":421,"in_reply_to":"7a016987_1bba4f0b","updated":"2015-05-26 01:05:15.000000000","message":"Because string is a variable type, just like int, bool that you listed below. It is more consistent this way, but it is a nit.","commit_id":"18b27b28b5abfb8da278a0a4abdf8313576b2f06"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"4fff1d2e6c4ed024d3149cd16b5cfa7fe65004f5","unresolved":false,"context_lines":[{"line_number":418,"context_line":"                     public\u003dFalse, snapshot\u003dNone, metadata\u003dNone):"},{"line_number":419,"context_line":"        \"\"\"Creates a share."},{"line_number":420,"context_line":""},{"line_number":421,"context_line":"        :param share_protocol: text -- share protocol of a share."},{"line_number":422,"context_line":"        :param size: int/text -- desired size of a share."},{"line_number":423,"context_line":"        :param share_network: text -- Name or ID of share network to use."},{"line_number":424,"context_line":"        :param share_type: text -- Name or ID of share type to use."}],"source_content_type":"text/x-python","patch_set":22,"id":"7a016987_9a0f4f2e","line":421,"in_reply_to":"7a016987_907bb929","updated":"2015-05-26 08:57:02.000000000","message":"Updated, but keep in mind that there is already such nit in master.","commit_id":"18b27b28b5abfb8da278a0a4abdf8313576b2f06"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"e28be09e3939c6c1d81b3aab42062e3c95868ec9","unresolved":false,"context_lines":[{"line_number":418,"context_line":"                     public\u003dFalse, snapshot\u003dNone, metadata\u003dNone):"},{"line_number":419,"context_line":"        \"\"\"Creates a share."},{"line_number":420,"context_line":""},{"line_number":421,"context_line":"        :param share_protocol: text -- share protocol of a share."},{"line_number":422,"context_line":"        :param size: int/text -- desired size of a share."},{"line_number":423,"context_line":"        :param share_network: text -- Name or ID of share network to use."},{"line_number":424,"context_line":"        :param share_type: text -- Name or ID of share type to use."}],"source_content_type":"text/x-python","patch_set":22,"id":"7a016987_1bba4f0b","line":421,"in_reply_to":"7a016987_ba421967","updated":"2015-05-25 20:45:37.000000000","message":"Why?","commit_id":"18b27b28b5abfb8da278a0a4abdf8313576b2f06"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"b2cc3b9e76ef59897d4f61923d7d2cd915a54f24","unresolved":false,"context_lines":[{"line_number":467,"context_line":"                     is_public\u003dFalse):"},{"line_number":468,"context_line":"        \"\"\"Updates a share."},{"line_number":469,"context_line":""},{"line_number":470,"context_line":"        :param share: text -- name or ID of a share that should be updated."},{"line_number":471,"context_line":"        :param name: text -- desired name of new share."},{"line_number":472,"context_line":"        :param description: text -- desired description of new share."},{"line_number":473,"context_line":"        :param is_public: bool -- should a share be public or not."}],"source_content_type":"text/x-python","patch_set":22,"id":"7a016987_5a5a0552","line":470,"updated":"2015-05-25 17:17:31.000000000","message":"text -\u003e string","commit_id":"18b27b28b5abfb8da278a0a4abdf8313576b2f06"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"4fff1d2e6c4ed024d3149cd16b5cfa7fe65004f5","unresolved":false,"context_lines":[{"line_number":467,"context_line":"                     is_public\u003dFalse):"},{"line_number":468,"context_line":"        \"\"\"Updates a share."},{"line_number":469,"context_line":""},{"line_number":470,"context_line":"        :param share: text -- name or ID of a share that should be updated."},{"line_number":471,"context_line":"        :param name: text -- desired name of new share."},{"line_number":472,"context_line":"        :param description: text -- desired description of new share."},{"line_number":473,"context_line":"        :param is_public: bool -- should a share be public or not."}],"source_content_type":"text/x-python","patch_set":22,"id":"7a016987_ba39ebda","line":470,"in_reply_to":"7a016987_5a5a0552","updated":"2015-05-26 08:57:02.000000000","message":"Done","commit_id":"18b27b28b5abfb8da278a0a4abdf8313576b2f06"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"b2cc3b9e76ef59897d4f61923d7d2cd915a54f24","unresolved":false,"context_lines":[{"line_number":525,"context_line":"    def is_share_deleted(self, share):"},{"line_number":526,"context_line":"        \"\"\"Says whether share is deleted or not."},{"line_number":527,"context_line":""},{"line_number":528,"context_line":"        :param share: text -- Name or ID of share"},{"line_number":529,"context_line":"        \"\"\""},{"line_number":530,"context_line":"        try:"},{"line_number":531,"context_line":"            self.get_share(share)"}],"source_content_type":"text/x-python","patch_set":22,"id":"7a016987_fa2f71a5","line":528,"updated":"2015-05-25 17:17:31.000000000","message":"string","commit_id":"18b27b28b5abfb8da278a0a4abdf8313576b2f06"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"4fff1d2e6c4ed024d3149cd16b5cfa7fe65004f5","unresolved":false,"context_lines":[{"line_number":525,"context_line":"    def is_share_deleted(self, share):"},{"line_number":526,"context_line":"        \"\"\"Says whether share is deleted or not."},{"line_number":527,"context_line":""},{"line_number":528,"context_line":"        :param share: text -- Name or ID of share"},{"line_number":529,"context_line":"        \"\"\""},{"line_number":530,"context_line":"        try:"},{"line_number":531,"context_line":"            self.get_share(share)"}],"source_content_type":"text/x-python","patch_set":22,"id":"7a016987_7a3373f7","line":528,"in_reply_to":"7a016987_fa2f71a5","updated":"2015-05-26 08:57:02.000000000","message":"Done","commit_id":"18b27b28b5abfb8da278a0a4abdf8313576b2f06"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"b2cc3b9e76ef59897d4f61923d7d2cd915a54f24","unresolved":false,"context_lines":[{"line_number":536,"context_line":"    def wait_for_share_deletion(self, share):"},{"line_number":537,"context_line":"        \"\"\"Wait for share deletion by its Name or ID."},{"line_number":538,"context_line":""},{"line_number":539,"context_line":"        :param share: text -- Name or ID of share"},{"line_number":540,"context_line":"        \"\"\""},{"line_number":541,"context_line":"        self.wait_for_resource_deletion("},{"line_number":542,"context_line":"            SHARE, res_id\u003dshare, interval\u003d5, timeout\u003d300)"}],"source_content_type":"text/x-python","patch_set":22,"id":"7a016987_da34b5fc","line":539,"updated":"2015-05-25 17:17:31.000000000","message":"string","commit_id":"18b27b28b5abfb8da278a0a4abdf8313576b2f06"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"4fff1d2e6c4ed024d3149cd16b5cfa7fe65004f5","unresolved":false,"context_lines":[{"line_number":536,"context_line":"    def wait_for_share_deletion(self, share):"},{"line_number":537,"context_line":"        \"\"\"Wait for share deletion by its Name or ID."},{"line_number":538,"context_line":""},{"line_number":539,"context_line":"        :param share: text -- Name or ID of share"},{"line_number":540,"context_line":"        \"\"\""},{"line_number":541,"context_line":"        self.wait_for_resource_deletion("},{"line_number":542,"context_line":"            SHARE, res_id\u003dshare, interval\u003d5, timeout\u003d300)"}],"source_content_type":"text/x-python","patch_set":22,"id":"7a016987_5a30b7e8","line":539,"in_reply_to":"7a016987_da34b5fc","updated":"2015-05-26 08:57:02.000000000","message":"Done","commit_id":"18b27b28b5abfb8da278a0a4abdf8313576b2f06"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"b2cc3b9e76ef59897d4f61923d7d2cd915a54f24","unresolved":false,"context_lines":[{"line_number":561,"context_line":"            if int(time.time()) - start \u003e\u003d self.build_timeout:"},{"line_number":562,"context_line":"                message \u003d (\u0027Share %s failed to reach %s status within \u0027"},{"line_number":563,"context_line":"                           \u0027the required time (%s s).\u0027 %"},{"line_number":564,"context_line":"                           (share_name, status, self.build_timeout))"},{"line_number":565,"context_line":"                raise tempest_lib_exc.TimeoutException(message)"}],"source_content_type":"text/x-python","patch_set":22,"id":"7a016987_fa165157","line":564,"updated":"2015-05-25 17:17:31.000000000","message":"message \u003d _(\u0027xxx\u0027).\n\nPlease use dict for share_name, status, and self.build_timeout.","commit_id":"18b27b28b5abfb8da278a0a4abdf8313576b2f06"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"4fff1d2e6c4ed024d3149cd16b5cfa7fe65004f5","unresolved":false,"context_lines":[{"line_number":561,"context_line":"            if int(time.time()) - start \u003e\u003d self.build_timeout:"},{"line_number":562,"context_line":"                message \u003d (\u0027Share %s failed to reach %s status within \u0027"},{"line_number":563,"context_line":"                           \u0027the required time (%s s).\u0027 %"},{"line_number":564,"context_line":"                           (share_name, status, self.build_timeout))"},{"line_number":565,"context_line":"                raise tempest_lib_exc.TimeoutException(message)"}],"source_content_type":"text/x-python","patch_set":22,"id":"7a016987_1a9fdfb5","line":564,"in_reply_to":"7a016987_fa165157","updated":"2015-05-26 08:57:02.000000000","message":"Done","commit_id":"18b27b28b5abfb8da278a0a4abdf8313576b2f06"},{"author":{"_account_id":11865,"name":"Clinton Knight","email":"cknight@netapp.com","username":"cknight"},"change_message_id":"e6a51b815a0be6d0a479742ba5c3bb1dcd409c1a","unresolved":false,"context_lines":[{"line_number":501,"context_line":"    def list_shares(self, all_tenants\u003dFalse, filters\u003dNone):"},{"line_number":502,"context_line":"        \"\"\"List shares."},{"line_number":503,"context_line":""},{"line_number":504,"context_line":"        :param all_tenants: bool -- whether to list share-networks that belong"},{"line_number":505,"context_line":"            only to current project or for all projects."},{"line_number":506,"context_line":"        :param filters: dict -- filters for listing of share networks."},{"line_number":507,"context_line":"            Example, input:"}],"source_content_type":"text/x-python","patch_set":25,"id":"7a016987_74c74d96","line":504,"updated":"2015-06-01 03:06:10.000000000","message":"Is this comment correct about share-networks?","commit_id":"198cb370abbda4ef1b5238ce1e657e052cbee6c5"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"92c55dafe50172954c23ba6fc1eb26300bcb3b4b","unresolved":false,"context_lines":[{"line_number":501,"context_line":"    def list_shares(self, all_tenants\u003dFalse, filters\u003dNone):"},{"line_number":502,"context_line":"        \"\"\"List shares."},{"line_number":503,"context_line":""},{"line_number":504,"context_line":"        :param all_tenants: bool -- whether to list share-networks that belong"},{"line_number":505,"context_line":"            only to current project or for all projects."},{"line_number":506,"context_line":"        :param filters: dict -- filters for listing of share networks."},{"line_number":507,"context_line":"            Example, input:"}],"source_content_type":"text/x-python","patch_set":25,"id":"5afe65bd_468fb523","line":504,"in_reply_to":"5afe65bd_1ce8f67b","updated":"2015-06-02 09:02:49.000000000","message":"Done","commit_id":"198cb370abbda4ef1b5238ce1e657e052cbee6c5"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"45ee733f363e8c63335b2859c0109fd9e30a9d9e","unresolved":false,"context_lines":[{"line_number":501,"context_line":"    def list_shares(self, all_tenants\u003dFalse, filters\u003dNone):"},{"line_number":502,"context_line":"        \"\"\"List shares."},{"line_number":503,"context_line":""},{"line_number":504,"context_line":"        :param all_tenants: bool -- whether to list share-networks that belong"},{"line_number":505,"context_line":"            only to current project or for all projects."},{"line_number":506,"context_line":"        :param filters: dict -- filters for listing of share networks."},{"line_number":507,"context_line":"            Example, input:"}],"source_content_type":"text/x-python","patch_set":25,"id":"5afe65bd_1ce8f67b","line":504,"in_reply_to":"5afe65bd_941052aa","updated":"2015-06-02 04:44:50.000000000","message":"Ahaha, great. You are completely right. Will fix it.","commit_id":"198cb370abbda4ef1b5238ce1e657e052cbee6c5"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"27ef6c6eda985db9fa0ca48653ae5547033c7636","unresolved":false,"context_lines":[{"line_number":501,"context_line":"    def list_shares(self, all_tenants\u003dFalse, filters\u003dNone):"},{"line_number":502,"context_line":"        \"\"\"List shares."},{"line_number":503,"context_line":""},{"line_number":504,"context_line":"        :param all_tenants: bool -- whether to list share-networks that belong"},{"line_number":505,"context_line":"            only to current project or for all projects."},{"line_number":506,"context_line":"        :param filters: dict -- filters for listing of share networks."},{"line_number":507,"context_line":"            Example, input:"}],"source_content_type":"text/x-python","patch_set":25,"id":"7a016987_8a3ce0e1","line":504,"in_reply_to":"7a016987_74c74d96","updated":"2015-06-01 07:03:35.000000000","message":"Yes, by default we get current tenant\u0027s share networks, but can set this param to true and get all from all tenants.","commit_id":"198cb370abbda4ef1b5238ce1e657e052cbee6c5"},{"author":{"_account_id":11865,"name":"Clinton Knight","email":"cknight@netapp.com","username":"cknight"},"change_message_id":"8e980d9b87208de2725a7f0942a44476b2e8610f","unresolved":false,"context_lines":[{"line_number":501,"context_line":"    def list_shares(self, all_tenants\u003dFalse, filters\u003dNone):"},{"line_number":502,"context_line":"        \"\"\"List shares."},{"line_number":503,"context_line":""},{"line_number":504,"context_line":"        :param all_tenants: bool -- whether to list share-networks that belong"},{"line_number":505,"context_line":"            only to current project or for all projects."},{"line_number":506,"context_line":"        :param filters: dict -- filters for listing of share networks."},{"line_number":507,"context_line":"            Example, input:"}],"source_content_type":"text/x-python","patch_set":25,"id":"5afe65bd_941052aa","line":504,"in_reply_to":"7a016987_8a3ce0e1","updated":"2015-06-01 17:43:18.000000000","message":"This was confusing since the method is list_shares and the comment is about listing share networks.","commit_id":"198cb370abbda4ef1b5238ce1e657e052cbee6c5"},{"author":{"_account_id":11865,"name":"Clinton Knight","email":"cknight@netapp.com","username":"cknight"},"change_message_id":"e6a51b815a0be6d0a479742ba5c3bb1dcd409c1a","unresolved":false,"context_lines":[{"line_number":503,"context_line":""},{"line_number":504,"context_line":"        :param all_tenants: bool -- whether to list share-networks that belong"},{"line_number":505,"context_line":"            only to current project or for all projects."},{"line_number":506,"context_line":"        :param filters: dict -- filters for listing of share networks."},{"line_number":507,"context_line":"            Example, input:"},{"line_number":508,"context_line":"                {\u0027project_id\u0027: \u0027foo\u0027}"},{"line_number":509,"context_line":"                {-\u0027project_id\u0027: \u0027foo\u0027}"}],"source_content_type":"text/x-python","patch_set":25,"id":"7a016987_54c21186","line":506,"updated":"2015-06-01 03:06:10.000000000","message":"Same.","commit_id":"198cb370abbda4ef1b5238ce1e657e052cbee6c5"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"27ef6c6eda985db9fa0ca48653ae5547033c7636","unresolved":false,"context_lines":[{"line_number":503,"context_line":""},{"line_number":504,"context_line":"        :param all_tenants: bool -- whether to list share-networks that belong"},{"line_number":505,"context_line":"            only to current project or for all projects."},{"line_number":506,"context_line":"        :param filters: dict -- filters for listing of share networks."},{"line_number":507,"context_line":"            Example, input:"},{"line_number":508,"context_line":"                {\u0027project_id\u0027: \u0027foo\u0027}"},{"line_number":509,"context_line":"                {-\u0027project_id\u0027: \u0027foo\u0027}"}],"source_content_type":"text/x-python","patch_set":25,"id":"7a016987_ec101150","line":506,"in_reply_to":"7a016987_54c21186","updated":"2015-06-01 07:03:35.000000000","message":"And this key is useful with above one set to \"True\".","commit_id":"198cb370abbda4ef1b5238ce1e657e052cbee6c5"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"92c55dafe50172954c23ba6fc1eb26300bcb3b4b","unresolved":false,"context_lines":[{"line_number":503,"context_line":""},{"line_number":504,"context_line":"        :param all_tenants: bool -- whether to list share-networks that belong"},{"line_number":505,"context_line":"            only to current project or for all projects."},{"line_number":506,"context_line":"        :param filters: dict -- filters for listing of share networks."},{"line_number":507,"context_line":"            Example, input:"},{"line_number":508,"context_line":"                {\u0027project_id\u0027: \u0027foo\u0027}"},{"line_number":509,"context_line":"                {-\u0027project_id\u0027: \u0027foo\u0027}"}],"source_content_type":"text/x-python","patch_set":25,"id":"5afe65bd_2694b935","line":506,"in_reply_to":"7a016987_ec101150","updated":"2015-06-02 09:02:49.000000000","message":"Done","commit_id":"198cb370abbda4ef1b5238ce1e657e052cbee6c5"}],"manilaclient/tests/functional/test_shares.py":[{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"b2cc3b9e76ef59897d4f61923d7d2cd915a54f24","unresolved":false,"context_lines":[{"line_number":29,"context_line":"    def setUpClass(cls):"},{"line_number":30,"context_line":"        super(NFSSharesReadWriteTest, cls).setUpClass()"},{"line_number":31,"context_line":"        if cls.protocol not in CONF.enable_protocols:"},{"line_number":32,"context_line":"            message \u003d \"%s tests are disabled\" % cls.protocol"},{"line_number":33,"context_line":"            raise cls.skipException(message)"},{"line_number":34,"context_line":"        cls.name \u003d data_utils.rand_name(\u0027autotest_share_name\u0027)"},{"line_number":35,"context_line":"        cls.description \u003d data_utils.rand_name(\u0027autotest_share_description\u0027)"}],"source_content_type":"text/x-python","patch_set":22,"id":"7a016987_9a151d4b","line":32,"updated":"2015-05-25 17:17:31.000000000","message":"message \u003d _(\"xxx\")","commit_id":"18b27b28b5abfb8da278a0a4abdf8313576b2f06"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"e28be09e3939c6c1d81b3aab42062e3c95868ec9","unresolved":false,"context_lines":[{"line_number":29,"context_line":"    def setUpClass(cls):"},{"line_number":30,"context_line":"        super(NFSSharesReadWriteTest, cls).setUpClass()"},{"line_number":31,"context_line":"        if cls.protocol not in CONF.enable_protocols:"},{"line_number":32,"context_line":"            message \u003d \"%s tests are disabled\" % cls.protocol"},{"line_number":33,"context_line":"            raise cls.skipException(message)"},{"line_number":34,"context_line":"        cls.name \u003d data_utils.rand_name(\u0027autotest_share_name\u0027)"},{"line_number":35,"context_line":"        cls.description \u003d data_utils.rand_name(\u0027autotest_share_description\u0027)"}],"source_content_type":"text/x-python","patch_set":22,"id":"7a016987_bbc8dba9","line":32,"in_reply_to":"7a016987_9a151d4b","updated":"2015-05-25 20:45:37.000000000","message":"Translations are not used in tests. This module is test module.","commit_id":"18b27b28b5abfb8da278a0a4abdf8313576b2f06"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"13cd117e96c69d683915e025991427fc0c790b47","unresolved":false,"context_lines":[{"line_number":29,"context_line":"    def setUpClass(cls):"},{"line_number":30,"context_line":"        super(NFSSharesReadWriteTest, cls).setUpClass()"},{"line_number":31,"context_line":"        if cls.protocol not in CONF.enable_protocols:"},{"line_number":32,"context_line":"            message \u003d \"%s tests are disabled\" % cls.protocol"},{"line_number":33,"context_line":"            raise cls.skipException(message)"},{"line_number":34,"context_line":"        cls.name \u003d data_utils.rand_name(\u0027autotest_share_name\u0027)"},{"line_number":35,"context_line":"        cls.description \u003d data_utils.rand_name(\u0027autotest_share_description\u0027)"}],"source_content_type":"text/x-python","patch_set":22,"id":"7a016987_3072c54a","line":32,"in_reply_to":"7a016987_bbc8dba9","updated":"2015-05-26 01:05:15.000000000","message":"Okay.","commit_id":"18b27b28b5abfb8da278a0a4abdf8313576b2f06"},{"author":{"_account_id":11865,"name":"Clinton Knight","email":"cknight@netapp.com","username":"cknight"},"change_message_id":"e6a51b815a0be6d0a479742ba5c3bb1dcd409c1a","unresolved":false,"context_lines":[{"line_number":90,"context_line":"        self.assertTrue(get.get(\u0027export_locations\u0027, []) \u003e 0)"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"class CIFSSharesReadWriteTest(NFSSharesReadWriteTest):"},{"line_number":94,"context_line":"    protocol \u003d \u0027cifs\u0027"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":""}],"source_content_type":"text/x-python","patch_set":25,"id":"7a016987_74fcedb7","line":93,"updated":"2015-06-01 03:06:10.000000000","message":"It seems a bit strange for a CIFS test class to extend an NFS test class.  Wouldn\u0027t it make more sense to have an abstract base class that is then subclassed by NFS, CIFS, etc.?  Besides being cleaner, that would enable NFS-specific code that isn\u0027t needed by the other protocols.","commit_id":"198cb370abbda4ef1b5238ce1e657e052cbee6c5"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"92c55dafe50172954c23ba6fc1eb26300bcb3b4b","unresolved":false,"context_lines":[{"line_number":90,"context_line":"        self.assertTrue(get.get(\u0027export_locations\u0027, []) \u003e 0)"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"class CIFSSharesReadWriteTest(NFSSharesReadWriteTest):"},{"line_number":94,"context_line":"    protocol \u003d \u0027cifs\u0027"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":""}],"source_content_type":"text/x-python","patch_set":25,"id":"5afe65bd_86c48d40","line":93,"in_reply_to":"5afe65bd_342f5ea3","updated":"2015-06-02 09:02:49.000000000","message":"Done","commit_id":"198cb370abbda4ef1b5238ce1e657e052cbee6c5"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"27ef6c6eda985db9fa0ca48653ae5547033c7636","unresolved":false,"context_lines":[{"line_number":90,"context_line":"        self.assertTrue(get.get(\u0027export_locations\u0027, []) \u003e 0)"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"class CIFSSharesReadWriteTest(NFSSharesReadWriteTest):"},{"line_number":94,"context_line":"    protocol \u003d \u0027cifs\u0027"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":""}],"source_content_type":"text/x-python","patch_set":25,"id":"7a016987_aa42fc65","line":93,"in_reply_to":"7a016987_74fcedb7","updated":"2015-06-01 07:03:35.000000000","message":"\"protocol\" attr is the only-specific thing here. So, this attr is overwritten in all subclasses. And not only CIFS inherits NFS, all other do it too.","commit_id":"198cb370abbda4ef1b5238ce1e657e052cbee6c5"},{"author":{"_account_id":11865,"name":"Clinton Knight","email":"cknight@netapp.com","username":"cknight"},"change_message_id":"8e980d9b87208de2725a7f0942a44476b2e8610f","unresolved":false,"context_lines":[{"line_number":90,"context_line":"        self.assertTrue(get.get(\u0027export_locations\u0027, []) \u003e 0)"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"class CIFSSharesReadWriteTest(NFSSharesReadWriteTest):"},{"line_number":94,"context_line":"    protocol \u003d \u0027cifs\u0027"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":""}],"source_content_type":"text/x-python","patch_set":25,"id":"5afe65bd_342f5ea3","line":93,"in_reply_to":"7a016987_aa42fc65","updated":"2015-06-01 17:43:18.000000000","message":"I do understand how this is working, and perhaps you are constrained from an elegant implementation by the naming conventions of the Python unittest framework.  But if, for example, you needed to add NFS-specific tests, those would be inherited by the other protocol tests as the code is presently written.  We have experience with subclassed unit tests in our Cinder drivers, and the result isn\u0027t pretty.","commit_id":"198cb370abbda4ef1b5238ce1e657e052cbee6c5"}],"manilaclient/tests/functional/test_shares_listing.py":[{"author":{"_account_id":7102,"name":"Thomas Bechtold","email":"thomas.bechtold@chainguard.dev","username":"toabctl"},"change_message_id":"03fa1eb33cdb18dea44091ee681277afdb00f7e7","unresolved":false,"context_lines":[{"line_number":24,"context_line":""},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"@ddt.ddt"},{"line_number":27,"context_line":"class SharesListReadOnlyTest(base.BaseTestCase):"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"    @ddt.data(\u0027admin\u0027, \u0027user\u0027)"},{"line_number":30,"context_line":"    def test_shares_list(self, role):"}],"source_content_type":"text/x-python","patch_set":13,"id":"9a0c5dc1_41dc23e4","line":27,"updated":"2015-05-13 06:21:03.000000000","message":"I guess this is just copied from manilaclient/tests/functional/test_shares.py (except the class name is different) ? I would prefer to move code in extra commits because it\u0027s a lot easier to review then.","commit_id":"97f11f3c1da68410e9189c3824852c18e8df5fbc"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"3c8d91cc210703dfe2bf0612c8b279f2131c8559","unresolved":false,"context_lines":[{"line_number":24,"context_line":""},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"@ddt.ddt"},{"line_number":27,"context_line":"class SharesListReadOnlyTest(base.BaseTestCase):"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"    @ddt.data(\u0027admin\u0027, \u0027user\u0027)"},{"line_number":30,"context_line":"    def test_shares_list(self, role):"}],"source_content_type":"text/x-python","patch_set":13,"id":"9a0c5dc1_543a9f37","line":27,"in_reply_to":"9a0c5dc1_41dc23e4","updated":"2015-05-13 06:47:12.000000000","message":"File was renamed. And second class was added.","commit_id":"97f11f3c1da68410e9189c3824852c18e8df5fbc"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"ed6300ec2e322f4fb0ec0d7d1e5fbd82f63fe2a4","unresolved":false,"context_lines":[{"line_number":24,"context_line":""},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"@ddt.ddt"},{"line_number":27,"context_line":"class SharesListReadOnlyTest(base.BaseTestCase):"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"    @ddt.data(\u0027admin\u0027, \u0027user\u0027)"},{"line_number":30,"context_line":"    def test_shares_list(self, role):"}],"source_content_type":"text/x-python","patch_set":13,"id":"9a0c5dc1_c473747f","line":27,"in_reply_to":"9a0c5dc1_543a9f37","updated":"2015-05-13 12:30:03.000000000","message":"Splitted to separate commit - https://review.openstack.org/#/c/182642/","commit_id":"97f11f3c1da68410e9189c3824852c18e8df5fbc"},{"author":{"_account_id":7102,"name":"Thomas Bechtold","email":"thomas.bechtold@chainguard.dev","username":"toabctl"},"change_message_id":"03fa1eb33cdb18dea44091ee681277afdb00f7e7","unresolved":false,"context_lines":[{"line_number":138,"context_line":"                try:"},{"line_number":139,"context_line":"                    get \u003d self.user_client.get_share(share[\u0027ID\u0027])"},{"line_number":140,"context_line":"                except exceptions.NotFound:"},{"line_number":141,"context_line":"                    # NOTE(vponomaryov): Case when some share was deleted"},{"line_number":142,"context_line":"                    # between our \u0027list\u0027 and \u0027get\u0027 requests. Skip such case."},{"line_number":143,"context_line":"                    # It occurs with concurrently running tests."},{"line_number":144,"context_line":"                    continue"}],"source_content_type":"text/x-python","patch_set":13,"id":"9a0c5dc1_b4743b9c","line":141,"updated":"2015-05-13 06:21:03.000000000","message":"That sounds like a bad race cond. But shouldn\u0027t be self.private_share[\u0027id\u0027] and self.public_share[\u0027id\u0027] always be there for the test case? If that\u0027s true, I would prefer to just skip everything else in the \"for share in shares\" loop. Something like: if share[\u0027ID\u0027] not in (self.private_share[\u0027id\u0027], self.public_share[\u0027id\u0027]): continue","commit_id":"97f11f3c1da68410e9189c3824852c18e8df5fbc"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"3c8d91cc210703dfe2bf0612c8b279f2131c8559","unresolved":false,"context_lines":[{"line_number":138,"context_line":"                try:"},{"line_number":139,"context_line":"                    get \u003d self.user_client.get_share(share[\u0027ID\u0027])"},{"line_number":140,"context_line":"                except exceptions.NotFound:"},{"line_number":141,"context_line":"                    # NOTE(vponomaryov): Case when some share was deleted"},{"line_number":142,"context_line":"                    # between our \u0027list\u0027 and \u0027get\u0027 requests. Skip such case."},{"line_number":143,"context_line":"                    # It occurs with concurrently running tests."},{"line_number":144,"context_line":"                    continue"}],"source_content_type":"text/x-python","patch_set":13,"id":"9a0c5dc1_54117fab","line":141,"in_reply_to":"9a0c5dc1_b4743b9c","updated":"2015-05-13 06:47:12.000000000","message":"Don\u0027t agree, we can catch improperly filtered shares.","commit_id":"97f11f3c1da68410e9189c3824852c18e8df5fbc"},{"author":{"_account_id":14232,"name":"Igor Malinovskiy","email":"u.glide@gmail.com","username":"imalinovskiy"},"change_message_id":"fdf4e13ff35f0ac3fbc67eda9fdd89d3add826a5","unresolved":false,"context_lines":[{"line_number":181,"context_line":""},{"line_number":182,"context_line":"    def test_list_shares_by_share_network(self):"},{"line_number":183,"context_line":"        sn \u003d self.user_client.share_network"},{"line_number":184,"context_line":"        if sn:"},{"line_number":185,"context_line":"            share_network_id \u003d self.user_client.get_share_network(sn)[\u0027id\u0027]"},{"line_number":186,"context_line":"            self._list_shares({\u0027share_network\u0027: share_network_id})"},{"line_number":187,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":24,"id":"7a016987_c2b35c09","line":184,"updated":"2015-05-27 16:14:15.000000000","message":"I think it\u0027s better to use decorator in this case because it\u0027s more readable, something like:\n\n@testtools.skipUnless(CONF.share_network, \u0027Usage of Share networks is disabled\u0027)","commit_id":"51f3bba913c286cad24d0bbc503deb9ea5dc2165"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"2a18f3e78a94c056541b481db28aaa5aeb817866","unresolved":false,"context_lines":[{"line_number":181,"context_line":""},{"line_number":182,"context_line":"    def test_list_shares_by_share_network(self):"},{"line_number":183,"context_line":"        sn \u003d self.user_client.share_network"},{"line_number":184,"context_line":"        if sn:"},{"line_number":185,"context_line":"            share_network_id \u003d self.user_client.get_share_network(sn)[\u0027id\u0027]"},{"line_number":186,"context_line":"            self._list_shares({\u0027share_network\u0027: share_network_id})"},{"line_number":187,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":24,"id":"7a016987_c5d006cc","line":184,"in_reply_to":"7a016987_c2b35c09","updated":"2015-05-27 16:44:02.000000000","message":"Pay attention to thing that is used - not \"CONF\" as you suggested, but instance of client \"self.user_client\". So, how do you suggest to use it in decorator?","commit_id":"51f3bba913c286cad24d0bbc503deb9ea5dc2165"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"bdd866e75fcecde8b582ee7d4867e6504acfabd6","unresolved":false,"context_lines":[{"line_number":181,"context_line":""},{"line_number":182,"context_line":"    def test_list_shares_by_share_network(self):"},{"line_number":183,"context_line":"        sn \u003d self.user_client.share_network"},{"line_number":184,"context_line":"        if sn:"},{"line_number":185,"context_line":"            share_network_id \u003d self.user_client.get_share_network(sn)[\u0027id\u0027]"},{"line_number":186,"context_line":"            self._list_shares({\u0027share_network\u0027: share_network_id})"},{"line_number":187,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":24,"id":"7a016987_7a14084c","line":184,"in_reply_to":"7a016987_c5d006cc","updated":"2015-05-29 09:08:06.000000000","message":"Replaced usage of instance attr with config option as suggested.","commit_id":"51f3bba913c286cad24d0bbc503deb9ea5dc2165"},{"author":{"_account_id":11865,"name":"Clinton Knight","email":"cknight@netapp.com","username":"cknight"},"change_message_id":"e6a51b815a0be6d0a479742ba5c3bb1dcd409c1a","unresolved":false,"context_lines":[{"line_number":105,"context_line":"        cls.private_name \u003d data_utils.rand_name(\u0027autotest_share_name\u0027)"},{"line_number":106,"context_line":"        cls.private_description \u003d data_utils.rand_name("},{"line_number":107,"context_line":"            \u0027autotest_share_description\u0027)"},{"line_number":108,"context_line":"        cls.public_name \u003d data_utils.rand_name(\u0027autotest_private_share_name\u0027)"},{"line_number":109,"context_line":"        cls.public_description \u003d data_utils.rand_name("},{"line_number":110,"context_line":"            \u0027autotest_public_share_description\u0027)"},{"line_number":111,"context_line":""}],"source_content_type":"text/x-python","patch_set":25,"id":"7a016987_d43161a3","line":108,"updated":"2015-06-01 03:06:10.000000000","message":"\u0027autotest_public_share_name\u0027 ?","commit_id":"198cb370abbda4ef1b5238ce1e657e052cbee6c5"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"92c55dafe50172954c23ba6fc1eb26300bcb3b4b","unresolved":false,"context_lines":[{"line_number":105,"context_line":"        cls.private_name \u003d data_utils.rand_name(\u0027autotest_share_name\u0027)"},{"line_number":106,"context_line":"        cls.private_description \u003d data_utils.rand_name("},{"line_number":107,"context_line":"            \u0027autotest_share_description\u0027)"},{"line_number":108,"context_line":"        cls.public_name \u003d data_utils.rand_name(\u0027autotest_private_share_name\u0027)"},{"line_number":109,"context_line":"        cls.public_description \u003d data_utils.rand_name("},{"line_number":110,"context_line":"            \u0027autotest_public_share_description\u0027)"},{"line_number":111,"context_line":""}],"source_content_type":"text/x-python","patch_set":25,"id":"5afe65bd_46dd7513","line":108,"in_reply_to":"7a016987_4a0a6827","updated":"2015-06-02 09:02:49.000000000","message":"Done","commit_id":"198cb370abbda4ef1b5238ce1e657e052cbee6c5"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"27ef6c6eda985db9fa0ca48653ae5547033c7636","unresolved":false,"context_lines":[{"line_number":105,"context_line":"        cls.private_name \u003d data_utils.rand_name(\u0027autotest_share_name\u0027)"},{"line_number":106,"context_line":"        cls.private_description \u003d data_utils.rand_name("},{"line_number":107,"context_line":"            \u0027autotest_share_description\u0027)"},{"line_number":108,"context_line":"        cls.public_name \u003d data_utils.rand_name(\u0027autotest_private_share_name\u0027)"},{"line_number":109,"context_line":"        cls.public_description \u003d data_utils.rand_name("},{"line_number":110,"context_line":"            \u0027autotest_public_share_description\u0027)"},{"line_number":111,"context_line":""}],"source_content_type":"text/x-python","patch_set":25,"id":"7a016987_4a0a6827","line":108,"in_reply_to":"7a016987_d43161a3","updated":"2015-06-01 07:03:35.000000000","message":"Will fix.","commit_id":"198cb370abbda4ef1b5238ce1e657e052cbee6c5"},{"author":{"_account_id":11865,"name":"Clinton Knight","email":"cknight@netapp.com","username":"cknight"},"change_message_id":"e6a51b815a0be6d0a479742ba5c3bb1dcd409c1a","unresolved":false,"context_lines":[{"line_number":125,"context_line":"            cleanup_in_class\u003dTrue)"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"        cls.get_admin_client().wait_for_share_status("},{"line_number":128,"context_line":"            cls.private_share[\u0027id\u0027], \u0027available\u0027)"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"    def _list_shares(self, filters\u003dNone):"},{"line_number":131,"context_line":"        filters \u003d filters or dict()"}],"source_content_type":"text/x-python","patch_set":25,"id":"7a016987_3419d522","line":128,"updated":"2015-06-01 03:06:10.000000000","message":"Is is not necessary to also wait for creation of the public share?","commit_id":"198cb370abbda4ef1b5238ce1e657e052cbee6c5"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"92c55dafe50172954c23ba6fc1eb26300bcb3b4b","unresolved":false,"context_lines":[{"line_number":125,"context_line":"            cleanup_in_class\u003dTrue)"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"        cls.get_admin_client().wait_for_share_status("},{"line_number":128,"context_line":"            cls.private_share[\u0027id\u0027], \u0027available\u0027)"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"    def _list_shares(self, filters\u003dNone):"},{"line_number":131,"context_line":"        filters \u003d filters or dict()"}],"source_content_type":"text/x-python","patch_set":25,"id":"5afe65bd_86db6d1b","line":128,"in_reply_to":"7a016987_0a00f000","updated":"2015-06-02 09:02:49.000000000","message":"Done","commit_id":"198cb370abbda4ef1b5238ce1e657e052cbee6c5"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"27ef6c6eda985db9fa0ca48653ae5547033c7636","unresolved":false,"context_lines":[{"line_number":125,"context_line":"            cleanup_in_class\u003dTrue)"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"        cls.get_admin_client().wait_for_share_status("},{"line_number":128,"context_line":"            cls.private_share[\u0027id\u0027], \u0027available\u0027)"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"    def _list_shares(self, filters\u003dNone):"},{"line_number":131,"context_line":"        filters \u003d filters or dict()"}],"source_content_type":"text/x-python","patch_set":25,"id":"7a016987_0a00f000","line":128,"in_reply_to":"7a016987_3419d522","updated":"2015-06-01 07:03:35.000000000","message":"Right. Will fix.","commit_id":"198cb370abbda4ef1b5238ce1e657e052cbee6c5"},{"author":{"_account_id":14232,"name":"Igor Malinovskiy","email":"u.glide@gmail.com","username":"imalinovskiy"},"change_message_id":"4e8d83a83dad2595f10a50911f528ea4b1728233","unresolved":false,"context_lines":[{"line_number":185,"context_line":""},{"line_number":186,"context_line":"    @testtools.skipUnless("},{"line_number":187,"context_line":"        CONF.share_network, \"Usage of Share networks is disabled\")"},{"line_number":188,"context_line":"    def test_list_shares_by_share_network(self):"},{"line_number":189,"context_line":"        share_network_id \u003d self.user_client.get_share_network("},{"line_number":190,"context_line":"            CONF.share_network)[\u0027id\u0027]"},{"line_number":191,"context_line":"        self._list_shares({\u0027share_network\u0027: share_network_id})"}],"source_content_type":"text/x-python","patch_set":25,"id":"7a016987_f545a942","line":188,"updated":"2015-05-29 09:12:38.000000000","message":"Looks nice, thanks!","commit_id":"198cb370abbda4ef1b5238ce1e657e052cbee6c5"}],"manilaclient/v1/shell.py":[{"author":{"_account_id":7102,"name":"Thomas Bechtold","email":"thomas.bechtold@chainguard.dev","username":"toabctl"},"change_message_id":"03fa1eb33cdb18dea44091ee681277afdb00f7e7","unresolved":false,"context_lines":[{"line_number":482,"context_line":"    \"\"\"Show metadata of given share.\"\"\""},{"line_number":483,"context_line":"    share \u003d _find_share(cs, args.share)"},{"line_number":484,"context_line":"    metadata \u003d cs.shares.get_metadata(share)._info"},{"line_number":485,"context_line":"    cliutils.print_dict(metadata, \u0027Property\u0027)"},{"line_number":486,"context_line":""},{"line_number":487,"context_line":""},{"line_number":488,"context_line":"@cliutils.arg("}],"source_content_type":"text/x-python","patch_set":13,"id":"9a0c5dc1_14ad47e9","line":485,"updated":"2015-05-13 06:21:03.000000000","message":"Unrelated to this change","commit_id":"97f11f3c1da68410e9189c3824852c18e8df5fbc"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"3c8d91cc210703dfe2bf0612c8b279f2131c8559","unresolved":false,"context_lines":[{"line_number":482,"context_line":"    \"\"\"Show metadata of given share.\"\"\""},{"line_number":483,"context_line":"    share \u003d _find_share(cs, args.share)"},{"line_number":484,"context_line":"    metadata \u003d cs.shares.get_metadata(share)._info"},{"line_number":485,"context_line":"    cliutils.print_dict(metadata, \u0027Property\u0027)"},{"line_number":486,"context_line":""},{"line_number":487,"context_line":""},{"line_number":488,"context_line":"@cliutils.arg("}],"source_content_type":"text/x-python","patch_set":13,"id":"9a0c5dc1_5403bf73","line":485,"in_reply_to":"9a0c5dc1_14ad47e9","updated":"2015-05-13 06:47:12.000000000","message":"It is related. Tempest lib is tied for the specific naming.","commit_id":"97f11f3c1da68410e9189c3824852c18e8df5fbc"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"7bc23d3265869c1a3b26138e37dae31eb753f45e","unresolved":false,"context_lines":[{"line_number":482,"context_line":"    \"\"\"Show metadata of given share.\"\"\""},{"line_number":483,"context_line":"    share \u003d _find_share(cs, args.share)"},{"line_number":484,"context_line":"    metadata \u003d cs.shares.get_metadata(share)._info"},{"line_number":485,"context_line":"    cliutils.print_dict(metadata, \u0027Property\u0027)"},{"line_number":486,"context_line":""},{"line_number":487,"context_line":""},{"line_number":488,"context_line":"@cliutils.arg("}],"source_content_type":"text/x-python","patch_set":13,"id":"9a0c5dc1_7eae9586","line":485,"in_reply_to":"9a0c5dc1_5403bf73","updated":"2015-05-13 11:49:55.000000000","message":"Oh, mislooked, it is used by dependent commit.","commit_id":"97f11f3c1da68410e9189c3824852c18e8df5fbc"},{"author":{"_account_id":7102,"name":"Thomas Bechtold","email":"thomas.bechtold@chainguard.dev","username":"toabctl"},"change_message_id":"03fa1eb33cdb18dea44091ee681277afdb00f7e7","unresolved":false,"context_lines":[{"line_number":501,"context_line":"    share \u003d _find_share(cs, args.share)"},{"line_number":502,"context_line":"    metadata \u003d _extract_metadata(args)"},{"line_number":503,"context_line":"    metadata \u003d share.update_all_metadata(metadata)._info[\u0027metadata\u0027]"},{"line_number":504,"context_line":"    cliutils.print_dict(metadata, \u0027Property\u0027)"},{"line_number":505,"context_line":""},{"line_number":506,"context_line":""},{"line_number":507,"context_line":"@cliutils.arg("}],"source_content_type":"text/x-python","patch_set":13,"id":"9a0c5dc1_f4b9932f","line":504,"updated":"2015-05-13 06:21:03.000000000","message":"Unrelated to this change","commit_id":"97f11f3c1da68410e9189c3824852c18e8df5fbc"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"3c8d91cc210703dfe2bf0612c8b279f2131c8559","unresolved":false,"context_lines":[{"line_number":501,"context_line":"    share \u003d _find_share(cs, args.share)"},{"line_number":502,"context_line":"    metadata \u003d _extract_metadata(args)"},{"line_number":503,"context_line":"    metadata \u003d share.update_all_metadata(metadata)._info[\u0027metadata\u0027]"},{"line_number":504,"context_line":"    cliutils.print_dict(metadata, \u0027Property\u0027)"},{"line_number":505,"context_line":""},{"line_number":506,"context_line":""},{"line_number":507,"context_line":"@cliutils.arg("}],"source_content_type":"text/x-python","patch_set":13,"id":"9a0c5dc1_34f96b81","line":504,"in_reply_to":"9a0c5dc1_f4b9932f","updated":"2015-05-13 06:47:12.000000000","message":"see above.","commit_id":"97f11f3c1da68410e9189c3824852c18e8df5fbc"}]}
