)]}'
{"tempest/common/utils/linux/remote_client.py":[{"author":{"_account_id":6796,"name":"Giulio Fidente","email":"gfidente@redhat.com","username":"gfidente"},"change_message_id":"5b595c17c7a1ef54773796164c1098468913a4ce","unresolved":false,"context_lines":[{"line_number":60,"context_line":"    def get_files(self, path):"},{"line_number":61,"context_line":"        # Return a list of comma separated files"},{"line_number":62,"context_line":"        command \u003d \"ls -m \" + path"},{"line_number":63,"context_line":"        files \u003d self.exec_command(command).rstrip(\u0027\\n\u0027).split(\u0027, \u0027)"},{"line_number":64,"context_line":"        # remove empty string to return a really empty list in case of an empty"},{"line_number":65,"context_line":"        # directory"},{"line_number":66,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":1,"id":"7adec928_11af487e","line":63,"updated":"2014-05-16 11:10:51.000000000","message":"I played with this a bit and realized the only way to parse this correctly is by using \"ls -1\" and split(\u0027\\n\u0027)\n\nAt which point all lists will have the empty \u0027\u0027 item at the end, which you should always remove (implicitly the list is really empy if the directory was)","commit_id":"e9a7811791c4eaca42d91ce49a510a55d739a106"},{"author":{"_account_id":6796,"name":"Giulio Fidente","email":"gfidente@redhat.com","username":"gfidente"},"change_message_id":"5b595c17c7a1ef54773796164c1098468913a4ce","unresolved":false,"context_lines":[{"line_number":77,"context_line":"    def get_number_of_vcpus(self):"},{"line_number":78,"context_line":"        command \u003d \u0027cat /proc/cpuinfo | grep processor | wc -l\u0027"},{"line_number":79,"context_line":"        output \u003d self.exec_command(command)"},{"line_number":80,"context_line":"        return output.strip(\u0027\\n\u0027)"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"    def get_partitions(self):"},{"line_number":83,"context_line":"        # Return the contents of /proc/partitions"}],"source_content_type":"text/x-python","patch_set":1,"id":"7adec928_f133bca8","line":80,"updated":"2014-05-16 11:10:51.000000000","message":"I agree this should return a string as all other methods but maybe replace this with rstrip (on line 79) in future patchsets","commit_id":"e9a7811791c4eaca42d91ce49a510a55d739a106"},{"author":{"_account_id":7872,"name":"Marc Koderer","email":"marc@koderer.com","username":"mkoderer"},"change_message_id":"9066bad7e26c3a7fe427ee80bb7571e6b22d6497","unresolved":false,"context_lines":[{"line_number":57,"context_line":"        actual_hostname \u003d self.exec_command(\"hostname\").rstrip()"},{"line_number":58,"context_line":"        return expected_hostname \u003d\u003d actual_hostname"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"    def get_files(self, path):"},{"line_number":61,"context_line":"        # Return a list of comma separated files"},{"line_number":62,"context_line":"        command \u003d \"ls -1 \" + path"},{"line_number":63,"context_line":"        files \u003d self.exec_command(command).split(\u0027\\n\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"7adec928_457c0a73","line":60,"updated":"2014-05-22 06:36:06.000000000","message":"May I ask a stupid question: who is using this function? ;) I didn\u0027t find any usage of this. So instead of reworking it I would suggest to delete it...","commit_id":"b5119bf08420886b41669f12d703469da9e7086d"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"a80c3e5b6b1a6eade1a50badda7aabc2bb38664f","unresolved":false,"context_lines":[{"line_number":57,"context_line":"        actual_hostname \u003d self.exec_command(\"hostname\").rstrip()"},{"line_number":58,"context_line":"        return expected_hostname \u003d\u003d actual_hostname"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"    def get_files(self, path):"},{"line_number":61,"context_line":"        # Return a list of comma separated files"},{"line_number":62,"context_line":"        command \u003d \"ls -1 \" + path"},{"line_number":63,"context_line":"        files \u003d self.exec_command(command).split(\u0027\\n\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"7adec928_fc8ccc37","line":60,"in_reply_to":"7adec928_457c0a73","updated":"2014-05-22 12:12:39.000000000","message":"I agree with Marc here, it would be nice cleanup:-)","commit_id":"b5119bf08420886b41669f12d703469da9e7086d"},{"author":{"_account_id":6796,"name":"Giulio Fidente","email":"gfidente@redhat.com","username":"gfidente"},"change_message_id":"188024ad1fcb7e0a00ecdcf3861d8143171f24de","unresolved":false,"context_lines":[{"line_number":61,"context_line":"        # Return a list of comma separated files"},{"line_number":62,"context_line":"        command \u003d \"ls -1 \" + path"},{"line_number":63,"context_line":"        files \u003d self.exec_command(command).split(\u0027\\n\u0027)"},{"line_number":64,"context_line":"        # always remove empty string"},{"line_number":65,"context_line":"        files.remove(\u0027\u0027)"},{"line_number":66,"context_line":"        return files"},{"line_number":67,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"7adec928_b856f004","line":64,"updated":"2014-05-21 13:39:50.000000000","message":"remove last empty string, not something worth enough to stop the change","commit_id":"b5119bf08420886b41669f12d703469da9e7086d"},{"author":{"_account_id":6796,"name":"Giulio Fidente","email":"gfidente@redhat.com","username":"gfidente"},"change_message_id":"188024ad1fcb7e0a00ecdcf3861d8143171f24de","unresolved":false,"context_lines":[{"line_number":72,"context_line":""},{"line_number":73,"context_line":"    def get_number_of_vcpus(self):"},{"line_number":74,"context_line":"        command \u003d \u0027cat /proc/cpuinfo | grep processor | wc -l\u0027"},{"line_number":75,"context_line":"        return self.exec_command(command).strip(\u0027\\n\u0027)"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"    def get_partitions(self):"},{"line_number":78,"context_line":"        # Return the contents of /proc/partitions"}],"source_content_type":"text/x-python","patch_set":2,"id":"7adec928_b8f27004","line":75,"updated":"2014-05-21 13:39:50.000000000","message":"well, I meant to replace strip with rstrip ... but I see others don\u0027t strip at all, not something I\u0027d stop this change for","commit_id":"b5119bf08420886b41669f12d703469da9e7086d"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"8861bf4c0d11b124f8994a3f67a00784890cb1d8","unresolved":false,"context_lines":[{"line_number":64,"context_line":""},{"line_number":65,"context_line":"    def get_number_of_vcpus(self):"},{"line_number":66,"context_line":"        command \u003d \u0027cat /proc/cpuinfo | grep processor | wc -l\u0027"},{"line_number":67,"context_line":"        return self.exec_command(command).rstrip(\u0027\\n\u0027)"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"    def get_partitions(self):"},{"line_number":70,"context_line":"        # Return the contents of /proc/partitions"}],"source_content_type":"text/x-python","patch_set":4,"id":"1ae5cdf2_d71b48c8","line":67,"updated":"2014-06-10 12:54:10.000000000","message":"The tests using get_number_of_vcpus() are disabled on the gate now because of \n\n    @testtools.skipUnless(CONF.compute.run_ssh,\n                          \u0027Instance validation tests are disabled.\u0027)\n\nand run_ssh is false.\n\nAnd in these tests, flavor[\u0027vcpus\u0027] is compared with the above value:\n\n 91         resp, flavor \u003d self.flavors_client.get_flavor_details(self.flavor_ref)\n 92         linux_client \u003d remote_client.RemoteClient(self.server, self.ssh_user,\n 93                                                   self.password)\n 94         self.assertEqual(flavor[\u0027vcpus\u0027], linux_client.get_number_of_vcpus())\n\nI guess the above change seems invalid, because flavor[\u0027vcpus\u0027] is an integer value:\n\n $ nova --debug flavor-show 1\n [..]\n RESP BODY: {\"flavor\": {\"name\": \"m1.tiny\", \"links\": [{\"href\": \"http://192.168.11.102:8774/v2/1e56a53a521340fe938088217974c835/flavors/1\", \"rel\": \"self\"}, {\"href\": \"http://192.168.11.102:8774/1e56a53a521340fe938088217974c835/flavors/1\", \"rel\": \"bookmark\"}], \"ram\": 512, \"OS-FLV-DISABLED:disabled\": false, \"vcpus\": 1, \"swap\": \"\", \"os-flavor-access:is_public\": true, \"rxtx_factor\": 1.0, \"OS-FLV-EXT-DATA:ephemeral\": 0, \"disk\": 1, \"id\": \"1\"}}\n\nSo how about changing this to just cleanup patch?","commit_id":"bb5c2d59fa7cc359bef010596c65a73c544b9e93"}]}
