)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":2035,"name":"Maru Newby","email":"marun@redhat.com","username":"maru"},"change_message_id":"71fdd8b281483e7a81761b9f10d2ec3e6ec5a40c","unresolved":false,"context_lines":[{"line_number":13,"context_line":"   \u0027detail\u0027 action. And added \u0027show_port()\u0027 function to do the"},{"line_number":14,"context_line":"   regular call without \u0027detail\u0027."},{"line_number":15,"context_line":"3. Adds CLIs to exercise the new client function calls. The CLIs"},{"line_number":16,"context_line":"   options that end with \u0027_det\u0027 invoke equivalent \u0027detail\u0027 action."},{"line_number":17,"context_line":"   Note that with this change the previous CLI \u0027show_port\u0027 shall now"},{"line_number":18,"context_line":"   show concise info about a port ie. only ID and state, while \u0027show_port_de"},{"line_number":19,"context_line":"   can be used to list the details information about a port viz. ID, state"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"AAAAEn%2F%2F1Zo%3D","line":16,"updated":"2012-02-28 02:26:55.000000000","message":"Other reviewers: The \u0027det\u0027 abbreviation isn\u0027t particularly clear.  Would using the \u0027details\u0027 or just \u0027detail\u0027 be a more reasonable choice?","commit_id":"f8d5ee28d299543e1e19a18cc89b4ccbf7995bbb"},{"author":{"_account_id":2672,"name":"Madhav Puri","email":"madhav.puri@gmail.com","username":"madhav-puri"},"change_message_id":"6136bab360a61ae62f65ff8df0c5fc76f4fe5481","unresolved":false,"context_lines":[{"line_number":13,"context_line":"   \u0027detail\u0027 action. And added \u0027show_port()\u0027 function to do the"},{"line_number":14,"context_line":"   regular call without \u0027detail\u0027."},{"line_number":15,"context_line":"3. Adds CLIs to exercise the new client function calls. The CLIs"},{"line_number":16,"context_line":"   options that end with \u0027_det\u0027 invoke equivalent \u0027detail\u0027 action."},{"line_number":17,"context_line":"   Note that with this change the previous CLI \u0027show_port\u0027 shall now"},{"line_number":18,"context_line":"   show concise info about a port ie. only ID and state, while \u0027show_port_de"},{"line_number":19,"context_line":"   can be used to list the details information about a port viz. ID, state"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"AAAAEn%2F%2F1TY%3D","line":16,"in_reply_to":"AAAAEn%2F%2F1Zo%3D","updated":"2012-02-28 06:09:33.000000000","message":"I will let others comment.\n\nMy intent for using \u0027det\u0027 was lesser keystrokes that users need to make in order to issue these commands from CLI. But if abbreviation is not very clear, I agree replacing it with \u0027details\u0027 makes more sense.","commit_id":"f8d5ee28d299543e1e19a18cc89b4ccbf7995bbb"},{"author":{"_account_id":2035,"name":"Maru Newby","email":"marun@redhat.com","username":"maru"},"change_message_id":"71fdd8b281483e7a81761b9f10d2ec3e6ec5a40c","unresolved":false,"context_lines":[{"line_number":15,"context_line":"3. Adds CLIs to exercise the new client function calls. The CLIs"},{"line_number":16,"context_line":"   options that end with \u0027_det\u0027 invoke equivalent \u0027detail\u0027 action."},{"line_number":17,"context_line":"   Note that with this change the previous CLI \u0027show_port\u0027 shall now"},{"line_number":18,"context_line":"   show concise info about a port ie. only ID and state, while \u0027show_port_de"},{"line_number":19,"context_line":"   can be used to list the details information about a port viz. ID, state"},{"line_number":20,"context_line":"   and its attachment."},{"line_number":21,"context_line":"4. Modifies OutputTemplate class to add support for templates with 3 or more"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"AAAAEn%2F%2F1aI%3D","line":18,"updated":"2012-02-28 02:26:55.000000000","message":"\u0027show_port_de \u003d\u003e \u0027show_port_detail\u0027","commit_id":"f8d5ee28d299543e1e19a18cc89b4ccbf7995bbb"},{"author":{"_account_id":2035,"name":"Maru Newby","email":"marun@redhat.com","username":"maru"},"change_message_id":"71fdd8b281483e7a81761b9f10d2ec3e6ec5a40c","unresolved":false,"context_lines":[{"line_number":22,"context_line":"   level attributes (eg. \"Port interface: %(port.attachment.id)s) and"},{"line_number":23,"context_line":"   templates containing list of multilevel-attributes (eg. \"Ports:"},{"line_number":24,"context_line":"   %(network.ports|ID: %(id)s\\t\\tinterface: %(attachment.id)s)s\")"},{"line_number":25,"context_line":"5. Introduces run_tests.py, run_test.sh, tools/with_venv.sh and"},{"line_number":26,"context_line":"   tools/install_venv.py files for python-quantumclient"},{"line_number":27,"context_line":"   (fiels copied and adapted to python-quantumclient from main quantum/ dir)"},{"line_number":28,"context_line":"6. Added respective unit tests and verified them."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"AAAAEn%2F%2F1Zs%3D","line":25,"updated":"2012-02-28 02:26:55.000000000","message":"Other reviewers: given that both quantum and quantumclient already support tox, why is the old nova runner being propogated?","commit_id":"f8d5ee28d299543e1e19a18cc89b4ccbf7995bbb"},{"author":{"_account_id":2672,"name":"Madhav Puri","email":"madhav.puri@gmail.com","username":"madhav-puri"},"change_message_id":"6136bab360a61ae62f65ff8df0c5fc76f4fe5481","unresolved":false,"context_lines":[{"line_number":22,"context_line":"   level attributes (eg. \"Port interface: %(port.attachment.id)s) and"},{"line_number":23,"context_line":"   templates containing list of multilevel-attributes (eg. \"Ports:"},{"line_number":24,"context_line":"   %(network.ports|ID: %(id)s\\t\\tinterface: %(attachment.id)s)s\")"},{"line_number":25,"context_line":"5. Introduces run_tests.py, run_test.sh, tools/with_venv.sh and"},{"line_number":26,"context_line":"   tools/install_venv.py files for python-quantumclient"},{"line_number":27,"context_line":"   (fiels copied and adapted to python-quantumclient from main quantum/ dir)"},{"line_number":28,"context_line":"6. Added respective unit tests and verified them."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"AAAAEn%2F%2F1RU%3D","line":25,"in_reply_to":"AAAAEn%2F%2F1Zs%3D","updated":"2012-02-28 06:09:33.000000000","message":"I am not familiar with tox.\n\nIf someone can share instructions of what needs to be done here, I will be happy to make the changes.","commit_id":"f8d5ee28d299543e1e19a18cc89b4ccbf7995bbb"}],"quantum/client/__init__.py":[{"author":{"_account_id":2035,"name":"Maru Newby","email":"marun@redhat.com","username":"maru"},"change_message_id":"71fdd8b281483e7a81761b9f10d2ec3e6ec5a40c","unresolved":false,"context_lines":[{"line_number":368,"context_line":"        Fetches the details of a certain network"},{"line_number":369,"context_line":"        \"\"\""},{"line_number":370,"context_line":"        return self.do_request(\"GET\", (self.network_path + self.detail_path)"},{"line_number":371,"context_line":"                                        % (network))"},{"line_number":372,"context_line":""},{"line_number":373,"context_line":"    @ApiCall"},{"line_number":374,"context_line":"    def create_network(self, body\u003dNone):"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAEn%2F%2F1aU%3D","line":371,"updated":"2012-02-28 02:26:55.000000000","message":"PEP8 vertical alignment","commit_id":"f8d5ee28d299543e1e19a18cc89b4ccbf7995bbb"},{"author":{"_account_id":2672,"name":"Madhav Puri","email":"madhav.puri@gmail.com","username":"madhav-puri"},"change_message_id":"6136bab360a61ae62f65ff8df0c5fc76f4fe5481","unresolved":false,"context_lines":[{"line_number":368,"context_line":"        Fetches the details of a certain network"},{"line_number":369,"context_line":"        \"\"\""},{"line_number":370,"context_line":"        return self.do_request(\"GET\", (self.network_path + self.detail_path)"},{"line_number":371,"context_line":"                                        % (network))"},{"line_number":372,"context_line":""},{"line_number":373,"context_line":"    @ApiCall"},{"line_number":374,"context_line":"    def create_network(self, body\u003dNone):"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAEn%2F%2F1TU%3D","line":371,"in_reply_to":"AAAAEn%2F%2F1aU%3D","updated":"2012-02-28 06:09:33.000000000","message":"Done.\n\nSomehow ./run_test.sh -p missed these.","commit_id":"f8d5ee28d299543e1e19a18cc89b4ccbf7995bbb"},{"author":{"_account_id":2035,"name":"Maru Newby","email":"marun@redhat.com","username":"maru"},"change_message_id":"71fdd8b281483e7a81761b9f10d2ec3e6ec5a40c","unresolved":false,"context_lines":[{"line_number":404,"context_line":"        Fetches a detailed list of ports on a given network"},{"line_number":405,"context_line":"        \"\"\""},{"line_number":406,"context_line":"        return self.do_request(\"GET\", (self.ports_path + self.detail_path)"},{"line_number":407,"context_line":"                                         % (network))"},{"line_number":408,"context_line":""},{"line_number":409,"context_line":"    @ApiCall"},{"line_number":410,"context_line":"    def show_port(self, network, port):"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAEn%2F%2F1aY%3D","line":407,"updated":"2012-02-28 02:26:55.000000000","message":"PEP8 vertical alignment","commit_id":"f8d5ee28d299543e1e19a18cc89b4ccbf7995bbb"},{"author":{"_account_id":2672,"name":"Madhav Puri","email":"madhav.puri@gmail.com","username":"madhav-puri"},"change_message_id":"6136bab360a61ae62f65ff8df0c5fc76f4fe5481","unresolved":false,"context_lines":[{"line_number":404,"context_line":"        Fetches a detailed list of ports on a given network"},{"line_number":405,"context_line":"        \"\"\""},{"line_number":406,"context_line":"        return self.do_request(\"GET\", (self.ports_path + self.detail_path)"},{"line_number":407,"context_line":"                                         % (network))"},{"line_number":408,"context_line":""},{"line_number":409,"context_line":"    @ApiCall"},{"line_number":410,"context_line":"    def show_port(self, network, port):"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAEn%2F%2F1TQ%3D","line":407,"in_reply_to":"AAAAEn%2F%2F1aY%3D","updated":"2012-02-28 06:09:33.000000000","message":"Done","commit_id":"f8d5ee28d299543e1e19a18cc89b4ccbf7995bbb"},{"author":{"_account_id":2035,"name":"Maru Newby","email":"marun@redhat.com","username":"maru"},"change_message_id":"71fdd8b281483e7a81761b9f10d2ec3e6ec5a40c","unresolved":false,"context_lines":[{"line_number":419,"context_line":"        Fetches the details of a certain port"},{"line_number":420,"context_line":"        \"\"\""},{"line_number":421,"context_line":"        return self.do_request(\"GET\", (self.port_path + self.detail_path)"},{"line_number":422,"context_line":"                                         % (network, port))"},{"line_number":423,"context_line":""},{"line_number":424,"context_line":"    @ApiCall"},{"line_number":425,"context_line":"    def create_port(self, network, body\u003dNone):"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAEn%2F%2F1aQ%3D","line":422,"updated":"2012-02-28 02:26:55.000000000","message":"PEP8 vertical alignment","commit_id":"f8d5ee28d299543e1e19a18cc89b4ccbf7995bbb"},{"author":{"_account_id":2672,"name":"Madhav Puri","email":"madhav.puri@gmail.com","username":"madhav-puri"},"change_message_id":"6136bab360a61ae62f65ff8df0c5fc76f4fe5481","unresolved":false,"context_lines":[{"line_number":419,"context_line":"        Fetches the details of a certain port"},{"line_number":420,"context_line":"        \"\"\""},{"line_number":421,"context_line":"        return self.do_request(\"GET\", (self.port_path + self.detail_path)"},{"line_number":422,"context_line":"                                         % (network, port))"},{"line_number":423,"context_line":""},{"line_number":424,"context_line":"    @ApiCall"},{"line_number":425,"context_line":"    def create_port(self, network, body\u003dNone):"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAEn%2F%2F1TM%3D","line":422,"in_reply_to":"AAAAEn%2F%2F1aQ%3D","updated":"2012-02-28 06:09:33.000000000","message":"Done","commit_id":"f8d5ee28d299543e1e19a18cc89b4ccbf7995bbb"},{"author":{"_account_id":2035,"name":"Maru Newby","email":"marun@redhat.com","username":"maru"},"change_message_id":"71fdd8b281483e7a81761b9f10d2ec3e6ec5a40c","unresolved":false,"context_lines":[{"line_number":504,"context_line":"        Fetches a detailed list of ports on a given network"},{"line_number":505,"context_line":"        \"\"\""},{"line_number":506,"context_line":"        return self.do_request(\"GET\", (self.ports_path + self.detail_path)"},{"line_number":507,"context_line":"                                         % (network),"},{"line_number":508,"context_line":"                                params\u003dfilters)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAEn%2F%2F1aM%3D","line":507,"updated":"2012-02-28 02:26:55.000000000","message":"PEP8 vertical alignment","commit_id":"f8d5ee28d299543e1e19a18cc89b4ccbf7995bbb"},{"author":{"_account_id":2672,"name":"Madhav Puri","email":"madhav.puri@gmail.com","username":"madhav-puri"},"change_message_id":"6136bab360a61ae62f65ff8df0c5fc76f4fe5481","unresolved":false,"context_lines":[{"line_number":504,"context_line":"        Fetches a detailed list of ports on a given network"},{"line_number":505,"context_line":"        \"\"\""},{"line_number":506,"context_line":"        return self.do_request(\"GET\", (self.ports_path + self.detail_path)"},{"line_number":507,"context_line":"                                         % (network),"},{"line_number":508,"context_line":"                                params\u003dfilters)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAEn%2F%2F1Rc%3D","line":507,"in_reply_to":"AAAAEn%2F%2F1aM%3D","updated":"2012-02-28 06:09:33.000000000","message":"Done","commit_id":"f8d5ee28d299543e1e19a18cc89b4ccbf7995bbb"},{"author":{"_account_id":2035,"name":"Maru Newby","email":"marun@redhat.com","username":"maru"},"unresolved":false,"context_lines":[{"line_number":368,"context_line":"        Fetches the details of a certain network"},{"line_number":369,"context_line":"        \"\"\""},{"line_number":370,"context_line":"        return self.do_request(\"GET\", (self.network_path + self.detail_path)"},{"line_number":371,"context_line":"                                       % (network))"},{"line_number":372,"context_line":""},{"line_number":373,"context_line":"    @ApiCall"},{"line_number":374,"context_line":"    def create_network(self, body\u003dNone):"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAEn%2F%2F1Bo%3D","line":371,"updated":"2012-02-28 19:00:58.000000000","message":"PEP8 - \u0027% (network, port)\u0027 should be aligned with \"GET\", since it\u0027s enclosing scope is the function call rather than the string formatting parenthesis.","commit_id":"8f83912f2244bde9694628f7f5b4f03856c37d8f"},{"author":{"_account_id":2672,"name":"Madhav Puri","email":"madhav.puri@gmail.com","username":"madhav-puri"},"change_message_id":"6136bab360a61ae62f65ff8df0c5fc76f4fe5481","unresolved":false,"context_lines":[{"line_number":368,"context_line":"        Fetches the details of a certain network"},{"line_number":369,"context_line":"        \"\"\""},{"line_number":370,"context_line":"        return self.do_request(\"GET\", (self.network_path + self.detail_path)"},{"line_number":371,"context_line":"                                       % (network))"},{"line_number":372,"context_line":""},{"line_number":373,"context_line":"    @ApiCall"},{"line_number":374,"context_line":"    def create_network(self, body\u003dNone):"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAEn%2F%2F0%2FI%3D","line":371,"in_reply_to":"AAAAEn%2F%2F1Bo%3D","updated":"2012-02-28 19:47:12.000000000","message":"Done","commit_id":"8f83912f2244bde9694628f7f5b4f03856c37d8f"},{"author":{"_account_id":2035,"name":"Maru Newby","email":"marun@redhat.com","username":"maru"},"unresolved":false,"context_lines":[{"line_number":404,"context_line":"        Fetches a detailed list of ports on a given network"},{"line_number":405,"context_line":"        \"\"\""},{"line_number":406,"context_line":"        return self.do_request(\"GET\", (self.ports_path + self.detail_path)"},{"line_number":407,"context_line":"                                       % (network))"},{"line_number":408,"context_line":""},{"line_number":409,"context_line":"    @ApiCall"},{"line_number":410,"context_line":"    def show_port(self, network, port):"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAEn%2F%2F1Bk%3D","line":407,"updated":"2012-02-28 19:00:58.000000000","message":"PEP8 - \u0027% (network, port)\u0027 should be aligned with \"GET\"","commit_id":"8f83912f2244bde9694628f7f5b4f03856c37d8f"},{"author":{"_account_id":2672,"name":"Madhav Puri","email":"madhav.puri@gmail.com","username":"madhav-puri"},"change_message_id":"6136bab360a61ae62f65ff8df0c5fc76f4fe5481","unresolved":false,"context_lines":[{"line_number":404,"context_line":"        Fetches a detailed list of ports on a given network"},{"line_number":405,"context_line":"        \"\"\""},{"line_number":406,"context_line":"        return self.do_request(\"GET\", (self.ports_path + self.detail_path)"},{"line_number":407,"context_line":"                                       % (network))"},{"line_number":408,"context_line":""},{"line_number":409,"context_line":"    @ApiCall"},{"line_number":410,"context_line":"    def show_port(self, network, port):"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAEn%2F%2F0%2FE%3D","line":407,"in_reply_to":"AAAAEn%2F%2F1Bk%3D","updated":"2012-02-28 19:47:12.000000000","message":"Done","commit_id":"8f83912f2244bde9694628f7f5b4f03856c37d8f"},{"author":{"_account_id":2035,"name":"Maru Newby","email":"marun@redhat.com","username":"maru"},"unresolved":false,"context_lines":[{"line_number":419,"context_line":"        Fetches the details of a certain port"},{"line_number":420,"context_line":"        \"\"\""},{"line_number":421,"context_line":"        return self.do_request(\"GET\", (self.port_path + self.detail_path)"},{"line_number":422,"context_line":"                                       % (network, port))"},{"line_number":423,"context_line":""},{"line_number":424,"context_line":"    @ApiCall"},{"line_number":425,"context_line":"    def create_port(self, network, body\u003dNone):"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAEn%2F%2F1Bg%3D","line":422,"updated":"2012-02-28 19:00:58.000000000","message":"PEP8 - \u0027% (network, port)\u0027 should be aligned with \"GET\"","commit_id":"8f83912f2244bde9694628f7f5b4f03856c37d8f"},{"author":{"_account_id":2672,"name":"Madhav Puri","email":"madhav.puri@gmail.com","username":"madhav-puri"},"change_message_id":"6136bab360a61ae62f65ff8df0c5fc76f4fe5481","unresolved":false,"context_lines":[{"line_number":419,"context_line":"        Fetches the details of a certain port"},{"line_number":420,"context_line":"        \"\"\""},{"line_number":421,"context_line":"        return self.do_request(\"GET\", (self.port_path + self.detail_path)"},{"line_number":422,"context_line":"                                       % (network, port))"},{"line_number":423,"context_line":""},{"line_number":424,"context_line":"    @ApiCall"},{"line_number":425,"context_line":"    def create_port(self, network, body\u003dNone):"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAEn%2F%2F0%2FA%3D","line":422,"in_reply_to":"AAAAEn%2F%2F1Bg%3D","updated":"2012-02-28 19:47:12.000000000","message":"Done","commit_id":"8f83912f2244bde9694628f7f5b4f03856c37d8f"},{"author":{"_account_id":2035,"name":"Maru Newby","email":"marun@redhat.com","username":"maru"},"unresolved":false,"context_lines":[{"line_number":504,"context_line":"        Fetches a detailed list of ports on a given network"},{"line_number":505,"context_line":"        \"\"\""},{"line_number":506,"context_line":"        return self.do_request(\"GET\", (self.ports_path + self.detail_path)"},{"line_number":507,"context_line":"                                       % (network),"},{"line_number":508,"context_line":"                               params\u003dfilters)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAEn%2F%2F1Bc%3D","line":507,"updated":"2012-02-28 19:00:58.000000000","message":"PEP8 - \u0027% (network, port)\u0027 should be aligned with \"GET\"","commit_id":"8f83912f2244bde9694628f7f5b4f03856c37d8f"},{"author":{"_account_id":2672,"name":"Madhav Puri","email":"madhav.puri@gmail.com","username":"madhav-puri"},"change_message_id":"6136bab360a61ae62f65ff8df0c5fc76f4fe5481","unresolved":false,"context_lines":[{"line_number":504,"context_line":"        Fetches a detailed list of ports on a given network"},{"line_number":505,"context_line":"        \"\"\""},{"line_number":506,"context_line":"        return self.do_request(\"GET\", (self.ports_path + self.detail_path)"},{"line_number":507,"context_line":"                                       % (network),"},{"line_number":508,"context_line":"                               params\u003dfilters)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAEn%2F%2F0%2B8%3D","line":507,"in_reply_to":"AAAAEn%2F%2F1Bc%3D","updated":"2012-02-28 19:47:12.000000000","message":"Done","commit_id":"8f83912f2244bde9694628f7f5b4f03856c37d8f"}],"quantum/client/cli.py":[{"author":{"_account_id":447,"name":"dan wendlandt","email":"dan@nicira.com","username":"danwent"},"unresolved":false,"context_lines":[{"line_number":51,"context_line":"  \"list_nets\": {"},{"line_number":52,"context_line":"    \"func\": cli_lib.list_nets,"},{"line_number":53,"context_line":"    \"args\": [\"tenant-id\"]},"},{"line_number":54,"context_line":"  \"list_nets_det\": {"},{"line_number":55,"context_line":"    \"func\": cli_lib.list_nets_det,"},{"line_number":56,"context_line":"    \"args\": [\"tenant-id\"]},"},{"line_number":57,"context_line":"  \"create_net\": {"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAEn%2F%2Fymo%3D","line":54,"updated":"2012-03-06 17:47:34.000000000","message":"I would vote for having the command be list_nets_detail\n\n\u0027det\u0027 is not a very standard abbreviation, and don\u0027t think the cost of having to remember the abbreviation probably likely to be worth saving just three characters.\n\nThis applies to other commands as well.","commit_id":"9bb8ef7404e202544283a180eb1709974a621c5c"}],"quantum/client/cli_lib.py":[{"author":{"_account_id":2035,"name":"Maru Newby","email":"marun@redhat.com","username":"maru"},"change_message_id":"71fdd8b281483e7a81761b9f10d2ec3e6ec5a40c","unresolved":false,"context_lines":[{"line_number":62,"context_line":"        items \u003d key.split(\"|\")"},{"line_number":63,"context_line":"        # Note(madhav-puri): for now the logic supports only 0 or 1 list"},{"line_number":64,"context_line":"        # indicators (|) in a template."},{"line_number":65,"context_line":"        assert(len(items) \u003c\u003d 2)"},{"line_number":66,"context_line":"        if len(items) \u003d\u003d 1:"},{"line_number":67,"context_line":"            return self._make_attribute(key)"},{"line_number":68,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAEn%2F%2F1a0%3D","line":65,"updated":"2012-02-28 02:26:55.000000000","message":"Avoid using assertions outside test code.  Instead, throw an exception that clearly documents the problem to calling code.","commit_id":"f8d5ee28d299543e1e19a18cc89b4ccbf7995bbb"},{"author":{"_account_id":2672,"name":"Madhav Puri","email":"madhav.puri@gmail.com","username":"madhav-puri"},"change_message_id":"6136bab360a61ae62f65ff8df0c5fc76f4fe5481","unresolved":false,"context_lines":[{"line_number":62,"context_line":"        items \u003d key.split(\"|\")"},{"line_number":63,"context_line":"        # Note(madhav-puri): for now the logic supports only 0 or 1 list"},{"line_number":64,"context_line":"        # indicators (|) in a template."},{"line_number":65,"context_line":"        assert(len(items) \u003c\u003d 2)"},{"line_number":66,"context_line":"        if len(items) \u003d\u003d 1:"},{"line_number":67,"context_line":"            return self._make_attribute(key)"},{"line_number":68,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAEn%2F%2F1TA%3D","line":65,"in_reply_to":"AAAAEn%2F%2F1a0%3D","updated":"2012-02-28 06:09:33.000000000","message":"Done. \n\nI will replace the assert with exception.","commit_id":"f8d5ee28d299543e1e19a18cc89b4ccbf7995bbb"},{"author":{"_account_id":2035,"name":"Maru Newby","email":"marun@redhat.com","username":"maru"},"change_message_id":"71fdd8b281483e7a81761b9f10d2ec3e6ec5a40c","unresolved":false,"context_lines":[{"line_number":75,"context_line":"        \"\"\""},{"line_number":76,"context_line":"        items \u003d item.split(\u0027.\u0027)"},{"line_number":77,"context_line":"        attr \u003d self.data[items[0]]"},{"line_number":78,"context_line":"        for i in range(1, len(items)):"},{"line_number":79,"context_line":"            attr \u003d attr[items[i]]"},{"line_number":80,"context_line":"        return attr"},{"line_number":81,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAEn%2F%2F1ak%3D","line":78,"updated":"2012-02-28 02:26:55.000000000","message":"The intent of this code is unclear.  Please explain what is being attempted and why.","commit_id":"f8d5ee28d299543e1e19a18cc89b4ccbf7995bbb"},{"author":{"_account_id":2672,"name":"Madhav Puri","email":"madhav.puri@gmail.com","username":"madhav-puri"},"change_message_id":"6136bab360a61ae62f65ff8df0c5fc76f4fe5481","unresolved":false,"context_lines":[{"line_number":75,"context_line":"        \"\"\""},{"line_number":76,"context_line":"        items \u003d item.split(\u0027.\u0027)"},{"line_number":77,"context_line":"        attr \u003d self.data[items[0]]"},{"line_number":78,"context_line":"        for i in range(1, len(items)):"},{"line_number":79,"context_line":"            attr \u003d attr[items[i]]"},{"line_number":80,"context_line":"        return attr"},{"line_number":81,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAEn%2F%2F1S8%3D","line":78,"in_reply_to":"AAAAEn%2F%2F1ak%3D","updated":"2012-02-28 06:09:33.000000000","message":"This code replaces the old logic, that assumed \u0027item\u0027 string to have either 1 or 2 attributes (eg. network_id or port.state respectively), with an iterative logic that shall work with \u0027item\u0027 string that contains any level of attributes.\n\nI had to modify the existing logic to handle a case of 3 level attributes in form of \u0027port.attachment.id\u0027 item string in show_port_det output-template.","commit_id":"f8d5ee28d299543e1e19a18cc89b4ccbf7995bbb"},{"author":{"_account_id":2035,"name":"Maru Newby","email":"marun@redhat.com","username":"maru"},"change_message_id":"71fdd8b281483e7a81761b9f10d2ec3e6ec5a40c","unresolved":false,"context_lines":[{"line_number":463,"context_line":"        output \u003d prepare_output(\"show_port_det\", tenant_id,"},{"line_number":464,"context_line":"                                dict(network_id\u003dnetwork_id,"},{"line_number":465,"context_line":"                                     port\u003dport),"},{"line_number":466,"context_line":"                                 version)"},{"line_number":467,"context_line":"        print output"},{"line_number":468,"context_line":"    except Exception as ex:"},{"line_number":469,"context_line":"        _handle_exception(ex)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAEn%2F%2F1XE%3D","line":466,"updated":"2012-02-28 02:26:55.000000000","message":"PEP8 vertical alignment","commit_id":"f8d5ee28d299543e1e19a18cc89b4ccbf7995bbb"},{"author":{"_account_id":2672,"name":"Madhav Puri","email":"madhav.puri@gmail.com","username":"madhav-puri"},"change_message_id":"6136bab360a61ae62f65ff8df0c5fc76f4fe5481","unresolved":false,"context_lines":[{"line_number":463,"context_line":"        output \u003d prepare_output(\"show_port_det\", tenant_id,"},{"line_number":464,"context_line":"                                dict(network_id\u003dnetwork_id,"},{"line_number":465,"context_line":"                                     port\u003dport),"},{"line_number":466,"context_line":"                                 version)"},{"line_number":467,"context_line":"        print output"},{"line_number":468,"context_line":"    except Exception as ex:"},{"line_number":469,"context_line":"        _handle_exception(ex)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAEn%2F%2F1Sk%3D","line":466,"in_reply_to":"AAAAEn%2F%2F1XE%3D","updated":"2012-02-28 06:09:33.000000000","message":"Done","commit_id":"f8d5ee28d299543e1e19a18cc89b4ccbf7995bbb"},{"author":{"_account_id":2035,"name":"Maru Newby","email":"marun@redhat.com","username":"maru"},"unresolved":false,"context_lines":[{"line_number":62,"context_line":"        items \u003d key.split(\"|\")"},{"line_number":63,"context_line":"        # Note(madhav-puri): for now the logic supports only 0 or 1 list"},{"line_number":64,"context_line":"        # indicators (|) in a template."},{"line_number":65,"context_line":"        if(len(items) \u003e 2):"},{"line_number":66,"context_line":"            raise Exception(\"Found more than one list indicators (|).\")"},{"line_number":67,"context_line":"        if len(items) \u003d\u003d 1:"},{"line_number":68,"context_line":"            return self._make_attribute(key)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAEn%2F%2F1B4%3D","line":65,"updated":"2012-02-28 19:00:58.000000000","message":"\u003d\u003e if len(items) \u003e 2:","commit_id":"8f83912f2244bde9694628f7f5b4f03856c37d8f"},{"author":{"_account_id":2672,"name":"Madhav Puri","email":"madhav.puri@gmail.com","username":"madhav-puri"},"change_message_id":"6136bab360a61ae62f65ff8df0c5fc76f4fe5481","unresolved":false,"context_lines":[{"line_number":62,"context_line":"        items \u003d key.split(\"|\")"},{"line_number":63,"context_line":"        # Note(madhav-puri): for now the logic supports only 0 or 1 list"},{"line_number":64,"context_line":"        # indicators (|) in a template."},{"line_number":65,"context_line":"        if(len(items) \u003e 2):"},{"line_number":66,"context_line":"            raise Exception(\"Found more than one list indicators (|).\")"},{"line_number":67,"context_line":"        if len(items) \u003d\u003d 1:"},{"line_number":68,"context_line":"            return self._make_attribute(key)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAEn%2F%2F0%2B4%3D","line":65,"in_reply_to":"AAAAEn%2F%2F1B4%3D","updated":"2012-02-28 19:47:12.000000000","message":"Done","commit_id":"8f83912f2244bde9694628f7f5b4f03856c37d8f"},{"author":{"_account_id":2035,"name":"Maru Newby","email":"marun@redhat.com","username":"maru"},"unresolved":false,"context_lines":[{"line_number":63,"context_line":"        # Note(madhav-puri): for now the logic supports only 0 or 1 list"},{"line_number":64,"context_line":"        # indicators (|) in a template."},{"line_number":65,"context_line":"        if(len(items) \u003e 2):"},{"line_number":66,"context_line":"            raise Exception(\"Found more than one list indicators (|).\")"},{"line_number":67,"context_line":"        if len(items) \u003d\u003d 1:"},{"line_number":68,"context_line":"            return self._make_attribute(key)"},{"line_number":69,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAEn%2F%2F1B0%3D","line":66,"updated":"2012-02-28 19:00:58.000000000","message":"indicators \u003d\u003e indicator","commit_id":"8f83912f2244bde9694628f7f5b4f03856c37d8f"},{"author":{"_account_id":2672,"name":"Madhav Puri","email":"madhav.puri@gmail.com","username":"madhav-puri"},"change_message_id":"6136bab360a61ae62f65ff8df0c5fc76f4fe5481","unresolved":false,"context_lines":[{"line_number":63,"context_line":"        # Note(madhav-puri): for now the logic supports only 0 or 1 list"},{"line_number":64,"context_line":"        # indicators (|) in a template."},{"line_number":65,"context_line":"        if(len(items) \u003e 2):"},{"line_number":66,"context_line":"            raise Exception(\"Found more than one list indicators (|).\")"},{"line_number":67,"context_line":"        if len(items) \u003d\u003d 1:"},{"line_number":68,"context_line":"            return self._make_attribute(key)"},{"line_number":69,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAEn%2F%2F0%2B0%3D","line":66,"in_reply_to":"AAAAEn%2F%2F1B0%3D","updated":"2012-02-28 19:47:12.000000000","message":"Done","commit_id":"8f83912f2244bde9694628f7f5b4f03856c37d8f"},{"author":{"_account_id":2035,"name":"Maru Newby","email":"marun@redhat.com","username":"maru"},"unresolved":false,"context_lines":[{"line_number":76,"context_line":"        \"\"\""},{"line_number":77,"context_line":"        items \u003d item.split(\u0027.\u0027)"},{"line_number":78,"context_line":"        attr \u003d self.data[items[0]]"},{"line_number":79,"context_line":"        for i in range(1, len(items)):"},{"line_number":80,"context_line":"            attr \u003d attr[items[i]]"},{"line_number":81,"context_line":"        return attr"},{"line_number":82,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAEn%2F%2F1BY%3D","line":79,"updated":"2012-02-28 19:00:58.000000000","message":"Ah, I get it.  Items is a list of keys into a series of nested dictionaries.\n\nConsider iterating over items directly rather than using an index variable:\n\nfor item_ in items[1:]:\n  attr \u003d attr[item_]","commit_id":"8f83912f2244bde9694628f7f5b4f03856c37d8f"},{"author":{"_account_id":2672,"name":"Madhav Puri","email":"madhav.puri@gmail.com","username":"madhav-puri"},"change_message_id":"6136bab360a61ae62f65ff8df0c5fc76f4fe5481","unresolved":false,"context_lines":[{"line_number":76,"context_line":"        \"\"\""},{"line_number":77,"context_line":"        items \u003d item.split(\u0027.\u0027)"},{"line_number":78,"context_line":"        attr \u003d self.data[items[0]]"},{"line_number":79,"context_line":"        for i in range(1, len(items)):"},{"line_number":80,"context_line":"            attr \u003d attr[items[i]]"},{"line_number":81,"context_line":"        return attr"},{"line_number":82,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAEn%2F%2F0%2Bw%3D","line":79,"in_reply_to":"AAAAEn%2F%2F1BY%3D","updated":"2012-02-28 19:47:12.000000000","message":"Done.\n\nThanks for the tip on iteration!","commit_id":"8f83912f2244bde9694628f7f5b4f03856c37d8f"},{"author":{"_account_id":2350,"name":"Willian Molinari","email":"pothix@pothix.com","username":"pothix"},"unresolved":false,"context_lines":[{"line_number":47,"context_line":"        %(Addresses|Street:%(address.street)s\\nNumber%(address.number))"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"        Instances of this class are initialized with a template string and"},{"line_number":50,"context_line":"        the dictionary for performing subsitution. The class implements the"},{"line_number":51,"context_line":"        __str__ method, so it can be directly printed."},{"line_number":52,"context_line":"    \"\"\""},{"line_number":53,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAEn%2F%2Fxas%3D","line":50,"updated":"2012-03-06 19:32:10.000000000","message":"s/subsitution/substitution/g","commit_id":"8368f45e3e4f264f1de77a4357ab2b6d7e495a27"}],"quantum/client/tests/unit/test_cli.py":[{"author":{"_account_id":2035,"name":"Maru Newby","email":"marun@redhat.com","username":"maru"},"change_message_id":"71fdd8b281483e7a81761b9f10d2ec3e6ec5a40c","unresolved":false,"context_lines":[{"line_number":88,"context_line":"                                        self.tenant_id,"},{"line_number":89,"context_line":"                                        dict(networks\u003dnetworks),"},{"line_number":90,"context_line":"                                        self.version)"},{"line_number":91,"context_line":"            # Verify!"},{"line_number":92,"context_line":"            # Must add newline at the end to match effect of print call"},{"line_number":93,"context_line":"            self.assertEquals(self.fake_stdout.make_string(), output + \u0027\\n\u0027)"},{"line_number":94,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAEn%2F%2F1YI%3D","line":91,"updated":"2012-02-28 02:26:55.000000000","message":"This code is consistent with the rest of the module, so no action is required:\n\nThese 3 lines would ideally be replaced with a call to:\n\ndef _verify_output(self, output):\n self.assertEquals(self.fakestdout.make_string(), output + \u0027\\n\u0027)","commit_id":"f8d5ee28d299543e1e19a18cc89b4ccbf7995bbb"},{"author":{"_account_id":2035,"name":"Maru Newby","email":"marun@redhat.com","username":"maru"},"change_message_id":"71fdd8b281483e7a81761b9f10d2ec3e6ec5a40c","unresolved":false,"context_lines":[{"line_number":158,"context_line":"                       \u0027name\u0027: nw.name,"},{"line_number":159,"context_line":"                       \u0027op-status\u0027: nw.op_status}"},{"line_number":160,"context_line":"            port_list \u003d db.port_list(nw.uuid)"},{"line_number":161,"context_line":"            if not len(port_list):"},{"line_number":162,"context_line":"                network[\u0027ports\u0027] \u003d [{\u0027id\u0027: \u0027\u003cnone\u003e\u0027,"},{"line_number":163,"context_line":"                                     \u0027state\u0027: \u0027\u003cnone\u003e\u0027,"},{"line_number":164,"context_line":"                                     \u0027attachment\u0027: {\u0027id\u0027: \u0027\u003cnone\u003e\u0027}}]"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAEn%2F%2F1Ys%3D","line":161,"updated":"2012-02-28 02:26:55.000000000","message":"Consider using implicit boolean conversion.","commit_id":"f8d5ee28d299543e1e19a18cc89b4ccbf7995bbb"},{"author":{"_account_id":2672,"name":"Madhav Puri","email":"madhav.puri@gmail.com","username":"madhav-puri"},"change_message_id":"6136bab360a61ae62f65ff8df0c5fc76f4fe5481","unresolved":false,"context_lines":[{"line_number":158,"context_line":"                       \u0027name\u0027: nw.name,"},{"line_number":159,"context_line":"                       \u0027op-status\u0027: nw.op_status}"},{"line_number":160,"context_line":"            port_list \u003d db.port_list(nw.uuid)"},{"line_number":161,"context_line":"            if not len(port_list):"},{"line_number":162,"context_line":"                network[\u0027ports\u0027] \u003d [{\u0027id\u0027: \u0027\u003cnone\u003e\u0027,"},{"line_number":163,"context_line":"                                     \u0027state\u0027: \u0027\u003cnone\u003e\u0027,"},{"line_number":164,"context_line":"                                     \u0027attachment\u0027: {\u0027id\u0027: \u0027\u003cnone\u003e\u0027}}]"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAEn%2F%2F1SY%3D","line":161,"in_reply_to":"AAAAEn%2F%2F1Ys%3D","updated":"2012-02-28 06:09:33.000000000","message":"Done","commit_id":"f8d5ee28d299543e1e19a18cc89b4ccbf7995bbb"},{"author":{"_account_id":2035,"name":"Maru Newby","email":"marun@redhat.com","username":"maru"},"change_message_id":"71fdd8b281483e7a81761b9f10d2ec3e6ec5a40c","unresolved":false,"context_lines":[{"line_number":168,"context_line":"                    network[\u0027ports\u0027].append({\u0027id\u0027: port.uuid,"},{"line_number":169,"context_line":"                                             \u0027state\u0027: port.state,"},{"line_number":170,"context_line":"                                             \u0027attachment\u0027: {\u0027id\u0027:"},{"line_number":171,"context_line":"                                                             port.interface_id"},{"line_number":172,"context_line":"                                                             or \u0027\u003cnone\u003e\u0027}})"},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"            # Fill CLI template"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAEn%2F%2F1Yk%3D","line":171,"updated":"2012-02-28 02:26:55.000000000","message":"PEP8 vertical alignment","commit_id":"f8d5ee28d299543e1e19a18cc89b4ccbf7995bbb"},{"author":{"_account_id":2672,"name":"Madhav Puri","email":"madhav.puri@gmail.com","username":"madhav-puri"},"change_message_id":"6136bab360a61ae62f65ff8df0c5fc76f4fe5481","unresolved":false,"context_lines":[{"line_number":168,"context_line":"                    network[\u0027ports\u0027].append({\u0027id\u0027: port.uuid,"},{"line_number":169,"context_line":"                                             \u0027state\u0027: port.state,"},{"line_number":170,"context_line":"                                             \u0027attachment\u0027: {\u0027id\u0027:"},{"line_number":171,"context_line":"                                                             port.interface_id"},{"line_number":172,"context_line":"                                                             or \u0027\u003cnone\u003e\u0027}})"},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"            # Fill CLI template"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAEn%2F%2F1RY%3D","line":171,"in_reply_to":"AAAAEn%2F%2F1Yk%3D","updated":"2012-02-28 06:09:33.000000000","message":"Done","commit_id":"f8d5ee28d299543e1e19a18cc89b4ccbf7995bbb"},{"author":{"_account_id":2035,"name":"Maru Newby","email":"marun@redhat.com","username":"maru"},"change_message_id":"71fdd8b281483e7a81761b9f10d2ec3e6ec5a40c","unresolved":false,"context_lines":[{"line_number":365,"context_line":"                              self.tenant_id,"},{"line_number":366,"context_line":"                              self.version)"},{"line_number":367,"context_line":"        except:"},{"line_number":368,"context_line":"            LOG.exception(\"Exception caught: %s\", sys.exc_info())"},{"line_number":369,"context_line":"            self.fail(\"test_list_networks_details_v10 failed due to\" +"},{"line_number":370,"context_line":"                      \" an exception\")"},{"line_number":371,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAEn%2F%2F1X8%3D","line":368,"updated":"2012-02-28 02:26:55.000000000","message":"This code is consistent with the rest of the module, so no action is required:\n\nThe second argument is unnecessary.  .exception() automatically calls sys.exc_info() to include the exception details in the log.\n\nAlso, the try/except block appears redundant.  The test runner will isolate an exception to the test and output the failure.","commit_id":"f8d5ee28d299543e1e19a18cc89b4ccbf7995bbb"},{"author":{"_account_id":2035,"name":"Maru Newby","email":"marun@redhat.com","username":"maru"},"change_message_id":"71fdd8b281483e7a81761b9f10d2ec3e6ec5a40c","unresolved":false,"context_lines":[{"line_number":380,"context_line":"            db.network_create(self.tenant_id, self.network_name_2)"},{"line_number":381,"context_line":"            #TODO: test filters"},{"line_number":382,"context_line":"            cli.list_nets_v11(self.client,"},{"line_number":383,"context_line":"                          self.tenant_id,"},{"line_number":384,"context_line":"                          self.version)"},{"line_number":385,"context_line":"        except:"},{"line_number":386,"context_line":"            LOG.exception(\"Exception caught: %s\", sys.exc_info())"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAEn%2F%2F1Xs%3D","line":383,"updated":"2012-02-28 02:26:55.000000000","message":"PEP8 vertical alignment","commit_id":"f8d5ee28d299543e1e19a18cc89b4ccbf7995bbb"},{"author":{"_account_id":2672,"name":"Madhav Puri","email":"madhav.puri@gmail.com","username":"madhav-puri"},"change_message_id":"6136bab360a61ae62f65ff8df0c5fc76f4fe5481","unresolved":false,"context_lines":[{"line_number":380,"context_line":"            db.network_create(self.tenant_id, self.network_name_2)"},{"line_number":381,"context_line":"            #TODO: test filters"},{"line_number":382,"context_line":"            cli.list_nets_v11(self.client,"},{"line_number":383,"context_line":"                          self.tenant_id,"},{"line_number":384,"context_line":"                          self.version)"},{"line_number":385,"context_line":"        except:"},{"line_number":386,"context_line":"            LOG.exception(\"Exception caught: %s\", sys.exc_info())"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAEn%2F%2F1SU%3D","line":383,"in_reply_to":"AAAAEn%2F%2F1Xs%3D","updated":"2012-02-28 06:09:33.000000000","message":"Done","commit_id":"f8d5ee28d299543e1e19a18cc89b4ccbf7995bbb"},{"author":{"_account_id":2035,"name":"Maru Newby","email":"marun@redhat.com","username":"maru"},"change_message_id":"71fdd8b281483e7a81761b9f10d2ec3e6ec5a40c","unresolved":false,"context_lines":[{"line_number":465,"context_line":"                             self.version)"},{"line_number":466,"context_line":"        except:"},{"line_number":467,"context_line":"            LOG.exception(\"Exception caught: %s\", sys.exc_info())"},{"line_number":468,"context_line":"            self.fail(\"test_show_network_details failed due to an exception\")"},{"line_number":469,"context_line":""},{"line_number":470,"context_line":"        LOG.debug(\"Operation completed. Verifying result\")"},{"line_number":471,"context_line":"        LOG.debug(self.fake_stdout.content)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAEn%2F%2F1Xo%3D","line":468,"updated":"2012-02-28 02:26:55.000000000","message":"Name mismatch","commit_id":"f8d5ee28d299543e1e19a18cc89b4ccbf7995bbb"},{"author":{"_account_id":2672,"name":"Madhav Puri","email":"madhav.puri@gmail.com","username":"madhav-puri"},"change_message_id":"6136bab360a61ae62f65ff8df0c5fc76f4fe5481","unresolved":false,"context_lines":[{"line_number":465,"context_line":"                             self.version)"},{"line_number":466,"context_line":"        except:"},{"line_number":467,"context_line":"            LOG.exception(\"Exception caught: %s\", sys.exc_info())"},{"line_number":468,"context_line":"            self.fail(\"test_show_network_details failed due to an exception\")"},{"line_number":469,"context_line":""},{"line_number":470,"context_line":"        LOG.debug(\"Operation completed. Verifying result\")"},{"line_number":471,"context_line":"        LOG.debug(self.fake_stdout.content)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAEn%2F%2F1SQ%3D","line":468,"in_reply_to":"AAAAEn%2F%2F1Xo%3D","updated":"2012-02-28 06:09:33.000000000","message":"Done","commit_id":"f8d5ee28d299543e1e19a18cc89b4ccbf7995bbb"},{"author":{"_account_id":2035,"name":"Maru Newby","email":"marun@redhat.com","username":"maru"},"change_message_id":"71fdd8b281483e7a81761b9f10d2ec3e6ec5a40c","unresolved":false,"context_lines":[{"line_number":542,"context_line":"                               self.version)"},{"line_number":543,"context_line":"        except:"},{"line_number":544,"context_line":"            LOG.exception(\"Exception caught: %s\", sys.exc_info())"},{"line_number":545,"context_line":"            self.fail(\"test_list_ports_details failed due to an exception\")"},{"line_number":546,"context_line":""},{"line_number":547,"context_line":"        LOG.debug(\"Operation completed. Verifying result\")"},{"line_number":548,"context_line":"        LOG.debug(self.fake_stdout.content)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAEn%2F%2F1Xk%3D","line":545,"updated":"2012-02-28 02:26:55.000000000","message":"Name mismatch","commit_id":"f8d5ee28d299543e1e19a18cc89b4ccbf7995bbb"},{"author":{"_account_id":2672,"name":"Madhav Puri","email":"madhav.puri@gmail.com","username":"madhav-puri"},"change_message_id":"6136bab360a61ae62f65ff8df0c5fc76f4fe5481","unresolved":false,"context_lines":[{"line_number":542,"context_line":"                               self.version)"},{"line_number":543,"context_line":"        except:"},{"line_number":544,"context_line":"            LOG.exception(\"Exception caught: %s\", sys.exc_info())"},{"line_number":545,"context_line":"            self.fail(\"test_list_ports_details failed due to an exception\")"},{"line_number":546,"context_line":""},{"line_number":547,"context_line":"        LOG.debug(\"Operation completed. Verifying result\")"},{"line_number":548,"context_line":"        LOG.debug(self.fake_stdout.content)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAEn%2F%2F1SM%3D","line":545,"in_reply_to":"AAAAEn%2F%2F1Xk%3D","updated":"2012-02-28 06:09:33.000000000","message":"Done","commit_id":"f8d5ee28d299543e1e19a18cc89b4ccbf7995bbb"},{"author":{"_account_id":2035,"name":"Maru Newby","email":"marun@redhat.com","username":"maru"},"change_message_id":"71fdd8b281483e7a81761b9f10d2ec3e6ec5a40c","unresolved":false,"context_lines":[{"line_number":557,"context_line":"            db.port_create(network_id)"},{"line_number":558,"context_line":"            #TODO: test filters"},{"line_number":559,"context_line":"            cli.list_ports_v11(self.client,"},{"line_number":560,"context_line":"                           self.tenant_id,"},{"line_number":561,"context_line":"                           network_id,"},{"line_number":562,"context_line":"                           self.version)"},{"line_number":563,"context_line":"        except:"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAEn%2F%2F1X4%3D","line":560,"updated":"2012-02-28 02:26:55.000000000","message":"PEP8 vertical alignment","commit_id":"f8d5ee28d299543e1e19a18cc89b4ccbf7995bbb"},{"author":{"_account_id":2672,"name":"Madhav Puri","email":"madhav.puri@gmail.com","username":"madhav-puri"},"change_message_id":"6136bab360a61ae62f65ff8df0c5fc76f4fe5481","unresolved":false,"context_lines":[{"line_number":557,"context_line":"            db.port_create(network_id)"},{"line_number":558,"context_line":"            #TODO: test filters"},{"line_number":559,"context_line":"            cli.list_ports_v11(self.client,"},{"line_number":560,"context_line":"                           self.tenant_id,"},{"line_number":561,"context_line":"                           network_id,"},{"line_number":562,"context_line":"                           self.version)"},{"line_number":563,"context_line":"        except:"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAEn%2F%2F1SI%3D","line":560,"in_reply_to":"AAAAEn%2F%2F1X4%3D","updated":"2012-02-28 06:09:33.000000000","message":"Done","commit_id":"f8d5ee28d299543e1e19a18cc89b4ccbf7995bbb"},{"author":{"_account_id":2035,"name":"Maru Newby","email":"marun@redhat.com","username":"maru"},"change_message_id":"71fdd8b281483e7a81761b9f10d2ec3e6ec5a40c","unresolved":false,"context_lines":[{"line_number":562,"context_line":"                           self.version)"},{"line_number":563,"context_line":"        except:"},{"line_number":564,"context_line":"            LOG.exception(\"Exception caught: %s\", sys.exc_info())"},{"line_number":565,"context_line":"            self.fail(\"test_list_ports failed due to an exception\")"},{"line_number":566,"context_line":""},{"line_number":567,"context_line":"        LOG.debug(\"Operation completed. Verifying result\")"},{"line_number":568,"context_line":"        LOG.debug(self.fake_stdout.content)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAEn%2F%2F1Xg%3D","line":565,"updated":"2012-02-28 02:26:55.000000000","message":"Name mismatch","commit_id":"f8d5ee28d299543e1e19a18cc89b4ccbf7995bbb"},{"author":{"_account_id":2672,"name":"Madhav Puri","email":"madhav.puri@gmail.com","username":"madhav-puri"},"change_message_id":"6136bab360a61ae62f65ff8df0c5fc76f4fe5481","unresolved":false,"context_lines":[{"line_number":562,"context_line":"                           self.version)"},{"line_number":563,"context_line":"        except:"},{"line_number":564,"context_line":"            LOG.exception(\"Exception caught: %s\", sys.exc_info())"},{"line_number":565,"context_line":"            self.fail(\"test_list_ports failed due to an exception\")"},{"line_number":566,"context_line":""},{"line_number":567,"context_line":"        LOG.debug(\"Operation completed. Verifying result\")"},{"line_number":568,"context_line":"        LOG.debug(self.fake_stdout.content)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAEn%2F%2F1SE%3D","line":565,"in_reply_to":"AAAAEn%2F%2F1Xg%3D","updated":"2012-02-28 06:09:33.000000000","message":"Done","commit_id":"f8d5ee28d299543e1e19a18cc89b4ccbf7995bbb"},{"author":{"_account_id":2035,"name":"Maru Newby","email":"marun@redhat.com","username":"maru"},"change_message_id":"71fdd8b281483e7a81761b9f10d2ec3e6ec5a40c","unresolved":false,"context_lines":[{"line_number":577,"context_line":"            db.port_create(network_id)"},{"line_number":578,"context_line":"            #TODO: test filters"},{"line_number":579,"context_line":"            cli.list_ports_det_v11(self.client,"},{"line_number":580,"context_line":"                               self.tenant_id,"},{"line_number":581,"context_line":"                               network_id,"},{"line_number":582,"context_line":"                               self.version)"},{"line_number":583,"context_line":"        except:"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAEn%2F%2F1X0%3D","line":580,"updated":"2012-02-28 02:26:55.000000000","message":"PEP8 vertical alignment","commit_id":"f8d5ee28d299543e1e19a18cc89b4ccbf7995bbb"},{"author":{"_account_id":2672,"name":"Madhav Puri","email":"madhav.puri@gmail.com","username":"madhav-puri"},"change_message_id":"6136bab360a61ae62f65ff8df0c5fc76f4fe5481","unresolved":false,"context_lines":[{"line_number":577,"context_line":"            db.port_create(network_id)"},{"line_number":578,"context_line":"            #TODO: test filters"},{"line_number":579,"context_line":"            cli.list_ports_det_v11(self.client,"},{"line_number":580,"context_line":"                               self.tenant_id,"},{"line_number":581,"context_line":"                               network_id,"},{"line_number":582,"context_line":"                               self.version)"},{"line_number":583,"context_line":"        except:"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAEn%2F%2F1Ro%3D","line":580,"in_reply_to":"AAAAEn%2F%2F1X0%3D","updated":"2012-02-28 06:09:33.000000000","message":"Done","commit_id":"f8d5ee28d299543e1e19a18cc89b4ccbf7995bbb"},{"author":{"_account_id":2035,"name":"Maru Newby","email":"marun@redhat.com","username":"maru"},"change_message_id":"71fdd8b281483e7a81761b9f10d2ec3e6ec5a40c","unresolved":false,"context_lines":[{"line_number":582,"context_line":"                               self.version)"},{"line_number":583,"context_line":"        except:"},{"line_number":584,"context_line":"            LOG.exception(\"Exception caught: %s\", sys.exc_info())"},{"line_number":585,"context_line":"            self.fail(\"test_list_ports_details failed due to an exception\")"},{"line_number":586,"context_line":""},{"line_number":587,"context_line":"        LOG.debug(\"Operation completed. Verifying result\")"},{"line_number":588,"context_line":"        LOG.debug(self.fake_stdout.content)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAEn%2F%2F1Xc%3D","line":585,"updated":"2012-02-28 02:26:55.000000000","message":"Name mismatch","commit_id":"f8d5ee28d299543e1e19a18cc89b4ccbf7995bbb"},{"author":{"_account_id":2672,"name":"Madhav Puri","email":"madhav.puri@gmail.com","username":"madhav-puri"},"change_message_id":"6136bab360a61ae62f65ff8df0c5fc76f4fe5481","unresolved":false,"context_lines":[{"line_number":582,"context_line":"                               self.version)"},{"line_number":583,"context_line":"        except:"},{"line_number":584,"context_line":"            LOG.exception(\"Exception caught: %s\", sys.exc_info())"},{"line_number":585,"context_line":"            self.fail(\"test_list_ports_details failed due to an exception\")"},{"line_number":586,"context_line":""},{"line_number":587,"context_line":"        LOG.debug(\"Operation completed. Verifying result\")"},{"line_number":588,"context_line":"        LOG.debug(self.fake_stdout.content)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAEn%2F%2F1Rk%3D","line":585,"in_reply_to":"AAAAEn%2F%2F1Xc%3D","updated":"2012-02-28 06:09:33.000000000","message":"Done","commit_id":"f8d5ee28d299543e1e19a18cc89b4ccbf7995bbb"},{"author":{"_account_id":2035,"name":"Maru Newby","email":"marun@redhat.com","username":"maru"},"change_message_id":"71fdd8b281483e7a81761b9f10d2ec3e6ec5a40c","unresolved":false,"context_lines":[{"line_number":687,"context_line":"                              self.version)"},{"line_number":688,"context_line":"        except:"},{"line_number":689,"context_line":"            LOG.exception(\"Exception caught: %s\", sys.exc_info())"},{"line_number":690,"context_line":"            self.fail(\"test_show_port_det_no_attach failed due to\" +"},{"line_number":691,"context_line":"                      \" an exception\")"},{"line_number":692,"context_line":""},{"line_number":693,"context_line":"        LOG.debug(\"Operation completed. Verifying result\")"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAEn%2F%2F1XY%3D","line":690,"updated":"2012-02-28 02:26:55.000000000","message":"Name mismatch","commit_id":"f8d5ee28d299543e1e19a18cc89b4ccbf7995bbb"},{"author":{"_account_id":2672,"name":"Madhav Puri","email":"madhav.puri@gmail.com","username":"madhav-puri"},"change_message_id":"6136bab360a61ae62f65ff8df0c5fc76f4fe5481","unresolved":false,"context_lines":[{"line_number":687,"context_line":"                              self.version)"},{"line_number":688,"context_line":"        except:"},{"line_number":689,"context_line":"            LOG.exception(\"Exception caught: %s\", sys.exc_info())"},{"line_number":690,"context_line":"            self.fail(\"test_show_port_det_no_attach failed due to\" +"},{"line_number":691,"context_line":"                      \" an exception\")"},{"line_number":692,"context_line":""},{"line_number":693,"context_line":"        LOG.debug(\"Operation completed. Verifying result\")"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAEn%2F%2F1SA%3D","line":690,"in_reply_to":"AAAAEn%2F%2F1XY%3D","updated":"2012-02-28 06:09:33.000000000","message":"Done","commit_id":"f8d5ee28d299543e1e19a18cc89b4ccbf7995bbb"},{"author":{"_account_id":2035,"name":"Maru Newby","email":"marun@redhat.com","username":"maru"},"change_message_id":"71fdd8b281483e7a81761b9f10d2ec3e6ec5a40c","unresolved":false,"context_lines":[{"line_number":791,"context_line":"    def test_show_iface_with_attach(self):"},{"line_number":792,"context_line":"        network_id \u003d None"},{"line_number":793,"context_line":"        port_id \u003d None"},{"line_number":794,"context_line":"        iface_id \u003d \"flavor crystals\""},{"line_number":795,"context_line":"        try:"},{"line_number":796,"context_line":"            # Pre-populate data for testing using db api"},{"line_number":797,"context_line":"            net \u003d db.network_create(self.tenant_id, self.network_name_1)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAEn%2F%2F1XU%3D","line":794,"updated":"2012-02-28 02:26:55.000000000","message":"Tang?","commit_id":"f8d5ee28d299543e1e19a18cc89b4ccbf7995bbb"},{"author":{"_account_id":2672,"name":"Madhav Puri","email":"madhav.puri@gmail.com","username":"madhav-puri"},"change_message_id":"6136bab360a61ae62f65ff8df0c5fc76f4fe5481","unresolved":false,"context_lines":[{"line_number":791,"context_line":"    def test_show_iface_with_attach(self):"},{"line_number":792,"context_line":"        network_id \u003d None"},{"line_number":793,"context_line":"        port_id \u003d None"},{"line_number":794,"context_line":"        iface_id \u003d \"flavor crystals\""},{"line_number":795,"context_line":"        try:"},{"line_number":796,"context_line":"            # Pre-populate data for testing using db api"},{"line_number":797,"context_line":"            net \u003d db.network_create(self.tenant_id, self.network_name_1)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAEn%2F%2F1R8%3D","line":794,"in_reply_to":"AAAAEn%2F%2F1XU%3D","updated":"2012-02-28 06:09:33.000000000","message":":)","commit_id":"f8d5ee28d299543e1e19a18cc89b4ccbf7995bbb"}],"quantum/client/tests/unit/test_clientlib.py":[{"author":{"_account_id":2035,"name":"Maru Newby","email":"marun@redhat.com","username":"maru"},"change_message_id":"71fdd8b281483e7a81761b9f10d2ec3e6ec5a40c","unresolved":false,"context_lines":[{"line_number":134,"context_line":"    def _test_list_networks_details(self,"},{"line_number":135,"context_line":"                                    tenant\u003dTENANT_1, format\u003d\u0027json\u0027,"},{"line_number":136,"context_line":"                                    status\u003d200):"},{"line_number":137,"context_line":"        LOG.debug(\"_test_list_networks_details - tenant:%s \"\\"},{"line_number":138,"context_line":"                  \"- format:%s - START\", format, tenant)"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"        self._assert_sanity(self.client.list_networks_details,"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAEn%2F%2F1ZE%3D","line":137,"updated":"2012-02-28 02:26:55.000000000","message":"This code is consistent with the rest of the module, so no action is required:\n\nThe entrance and exit logging could be done more effectively - say, with a decorator.","commit_id":"f8d5ee28d299543e1e19a18cc89b4ccbf7995bbb"},{"author":{"_account_id":2035,"name":"Maru Newby","email":"marun@redhat.com","username":"maru"},"change_message_id":"71fdd8b281483e7a81761b9f10d2ec3e6ec5a40c","unresolved":false,"context_lines":[{"line_number":405,"context_line":"    def test_list_networks_error_401(self):"},{"line_number":406,"context_line":"        self._test_list_networks(status\u003d401)"},{"line_number":407,"context_line":""},{"line_number":408,"context_line":"    def test_list_networks_details_json(self):"},{"line_number":409,"context_line":"        self._test_list_networks_details(format\u003d\u0027json\u0027)"},{"line_number":410,"context_line":""},{"line_number":411,"context_line":"    def test_list_networks_details_xml(self):"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAEn%2F%2F1Yw%3D","line":408,"updated":"2012-02-28 02:26:55.000000000","message":"This code is consistent with the rest of the module, so no action is required:\n\nThese tests are very much data-driven and could be generated with nosetests built-in support or unittest2\u0027s plugin support.\n\nhttp://readthedocs.org/docs/nose/en/latest/writing_tests.html#test-generators\n\nhttp://lists.idyll.org/pipermail/testing-in-python/2010-August/003258.html","commit_id":"f8d5ee28d299543e1e19a18cc89b4ccbf7995bbb"}]}
