)]}'
{"openstackclient/tests/fakes.py":[{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"f27dacbc7ed56ee3355a39d50da4b739c1b4ce36","unresolved":false,"context_lines":[{"line_number":201,"context_line":""},{"line_number":202,"context_line":""},{"line_number":203,"context_line":"class FakeServer(object):"},{"line_number":204,"context_line":"    \"\"\"Fake one or more servers.\"\"\""},{"line_number":205,"context_line":""},{"line_number":206,"context_line":"    @staticmethod"},{"line_number":207,"context_line":"    def fake_one_server(attrs\u003d{}, methods\u003d{}):"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba8a016a_d3db3fec","line":204,"updated":"2015-11-16 22:11:56.000000000","message":"\"\"\"Fake one or more compute servers.\"\"\"","commit_id":"e7f4be98d0af23415cb88d986aee088169be36f4"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"e0ca9b8ee52781570e625db27d40620f473c4601","unresolved":false,"context_lines":[{"line_number":201,"context_line":""},{"line_number":202,"context_line":""},{"line_number":203,"context_line":"class FakeServer(object):"},{"line_number":204,"context_line":"    \"\"\"Fake one or more servers.\"\"\""},{"line_number":205,"context_line":""},{"line_number":206,"context_line":"    @staticmethod"},{"line_number":207,"context_line":"    def fake_one_server(attrs\u003d{}, methods\u003d{}):"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba8a016a_4851bc0d","line":204,"in_reply_to":"ba8a016a_0ffae8bd","updated":"2015-11-17 13:15:18.000000000","message":"just to be more clear that these are for nova commands.\n\nit was just a nit, not necessary to change","commit_id":"e7f4be98d0af23415cb88d986aee088169be36f4"},{"author":{"_account_id":14937,"name":"Tang Chen","email":"imtangchen@163.com","username":"tangchen"},"change_message_id":"8e700ff89f9b882b5321b328e275fe22352843e9","unresolved":false,"context_lines":[{"line_number":201,"context_line":""},{"line_number":202,"context_line":""},{"line_number":203,"context_line":"class FakeServer(object):"},{"line_number":204,"context_line":"    \"\"\"Fake one or more servers.\"\"\""},{"line_number":205,"context_line":""},{"line_number":206,"context_line":"    @staticmethod"},{"line_number":207,"context_line":"    def fake_one_server(attrs\u003d{}, methods\u003d{}):"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba8a016a_c742473e","line":204,"in_reply_to":"ba8a016a_4851bc0d","updated":"2015-11-18 09:16:56.000000000","message":"I intend to make this class available for other tests too. And I\u0027m planing to modify other test code to use this to fake servers. And deprecate the current fake server code. So I\u0027d like to keep it. :)","commit_id":"e7f4be98d0af23415cb88d986aee088169be36f4"},{"author":{"_account_id":14937,"name":"Tang Chen","email":"imtangchen@163.com","username":"tangchen"},"change_message_id":"fb017617598fa6516cd5fb57e30707e6e74c13c6","unresolved":false,"context_lines":[{"line_number":201,"context_line":""},{"line_number":202,"context_line":""},{"line_number":203,"context_line":"class FakeServer(object):"},{"line_number":204,"context_line":"    \"\"\"Fake one or more servers.\"\"\""},{"line_number":205,"context_line":""},{"line_number":206,"context_line":"    @staticmethod"},{"line_number":207,"context_line":"    def fake_one_server(attrs\u003d{}, methods\u003d{}):"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba8a016a_0ffae8bd","line":204,"in_reply_to":"ba8a016a_d3db3fec","updated":"2015-11-17 09:24:00.000000000","message":"I\u0027m sorry, but why compute servers ?","commit_id":"e7f4be98d0af23415cb88d986aee088169be36f4"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"f27dacbc7ed56ee3355a39d50da4b739c1b4ce36","unresolved":false,"context_lines":[{"line_number":216,"context_line":"        \"\"\""},{"line_number":217,"context_line":"        # Set default attributes."},{"line_number":218,"context_line":"        server_info \u003d {"},{"line_number":219,"context_line":"            \u0027id\u0027: \u0027server-id-\u0027 + random_string(),"},{"line_number":220,"context_line":"            \u0027name\u0027: \u0027server-name-\u0027 + random_string(),"},{"line_number":221,"context_line":"            \u0027metadata\u0027: {},"},{"line_number":222,"context_line":"        }"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba8a016a_333acb37","line":219,"updated":"2015-11-16 22:11:56.000000000","message":"just use:\n\n  uuid.uuid4().hex","commit_id":"e7f4be98d0af23415cb88d986aee088169be36f4"},{"author":{"_account_id":14937,"name":"Tang Chen","email":"imtangchen@163.com","username":"tangchen"},"change_message_id":"fb017617598fa6516cd5fb57e30707e6e74c13c6","unresolved":false,"context_lines":[{"line_number":216,"context_line":"        \"\"\""},{"line_number":217,"context_line":"        # Set default attributes."},{"line_number":218,"context_line":"        server_info \u003d {"},{"line_number":219,"context_line":"            \u0027id\u0027: \u0027server-id-\u0027 + random_string(),"},{"line_number":220,"context_line":"            \u0027name\u0027: \u0027server-name-\u0027 + random_string(),"},{"line_number":221,"context_line":"            \u0027metadata\u0027: {},"},{"line_number":222,"context_line":"        }"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba8a016a_0f7d081c","line":219,"in_reply_to":"ba8a016a_333acb37","updated":"2015-11-17 09:24:00.000000000","message":"Done","commit_id":"e7f4be98d0af23415cb88d986aee088169be36f4"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"f27dacbc7ed56ee3355a39d50da4b739c1b4ce36","unresolved":false,"context_lines":[{"line_number":217,"context_line":"        # Set default attributes."},{"line_number":218,"context_line":"        server_info \u003d {"},{"line_number":219,"context_line":"            \u0027id\u0027: \u0027server-id-\u0027 + random_string(),"},{"line_number":220,"context_line":"            \u0027name\u0027: \u0027server-name-\u0027 + random_string(),"},{"line_number":221,"context_line":"            \u0027metadata\u0027: {},"},{"line_number":222,"context_line":"        }"},{"line_number":223,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"ba8a016a_934937d3","line":220,"updated":"2015-11-16 22:11:56.000000000","message":"same","commit_id":"e7f4be98d0af23415cb88d986aee088169be36f4"},{"author":{"_account_id":14937,"name":"Tang Chen","email":"imtangchen@163.com","username":"tangchen"},"change_message_id":"fb017617598fa6516cd5fb57e30707e6e74c13c6","unresolved":false,"context_lines":[{"line_number":217,"context_line":"        # Set default attributes."},{"line_number":218,"context_line":"        server_info \u003d {"},{"line_number":219,"context_line":"            \u0027id\u0027: \u0027server-id-\u0027 + random_string(),"},{"line_number":220,"context_line":"            \u0027name\u0027: \u0027server-name-\u0027 + random_string(),"},{"line_number":221,"context_line":"            \u0027metadata\u0027: {},"},{"line_number":222,"context_line":"        }"},{"line_number":223,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"ba8a016a_cf76203e","line":220,"in_reply_to":"ba8a016a_934937d3","updated":"2015-11-17 09:24:00.000000000","message":"Done","commit_id":"e7f4be98d0af23415cb88d986aee088169be36f4"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"1fbd378d38974e9ad860270901bbca53e4f2c7b0","unresolved":false,"context_lines":[{"line_number":231,"context_line":"        return server"},{"line_number":232,"context_line":""},{"line_number":233,"context_line":"    @staticmethod"},{"line_number":234,"context_line":"    def fake_servers(attrs\u003d{}, methods\u003d{}, count\u003d2):"},{"line_number":235,"context_line":"        \"\"\"Fake multiple servers."},{"line_number":236,"context_line":""},{"line_number":237,"context_line":"        :param Dictionary attrs:"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba8a016a_964b6559","line":234,"updated":"2015-11-16 22:16:13.000000000","message":"maybe call this \"create_servers\"? the class is already called fake, we know it\u0027s fake.","commit_id":"e7f4be98d0af23415cb88d986aee088169be36f4"},{"author":{"_account_id":14937,"name":"Tang Chen","email":"imtangchen@163.com","username":"tangchen"},"change_message_id":"fb017617598fa6516cd5fb57e30707e6e74c13c6","unresolved":false,"context_lines":[{"line_number":231,"context_line":"        return server"},{"line_number":232,"context_line":""},{"line_number":233,"context_line":"    @staticmethod"},{"line_number":234,"context_line":"    def fake_servers(attrs\u003d{}, methods\u003d{}, count\u003d2):"},{"line_number":235,"context_line":"        \"\"\"Fake multiple servers."},{"line_number":236,"context_line":""},{"line_number":237,"context_line":"        :param Dictionary attrs:"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba8a016a_af94fc36","line":234,"in_reply_to":"ba8a016a_964b6559","updated":"2015-11-17 09:24:00.000000000","message":"Done","commit_id":"e7f4be98d0af23415cb88d986aee088169be36f4"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"f27dacbc7ed56ee3355a39d50da4b739c1b4ce36","unresolved":false,"context_lines":[{"line_number":245,"context_line":"        \"\"\""},{"line_number":246,"context_line":"        servers \u003d []"},{"line_number":247,"context_line":"        for i in range(0, count):"},{"line_number":248,"context_line":"            servers.append(FakeServer.fake_one_server(attrs, methods))"},{"line_number":249,"context_line":""},{"line_number":250,"context_line":"        return servers"},{"line_number":251,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"ba8a016a_b3747bfd","line":248,"updated":"2015-11-16 22:11:56.000000000","message":"use self instead of FakeServer","commit_id":"e7f4be98d0af23415cb88d986aee088169be36f4"},{"author":{"_account_id":14937,"name":"Tang Chen","email":"imtangchen@163.com","username":"tangchen"},"change_message_id":"fb017617598fa6516cd5fb57e30707e6e74c13c6","unresolved":false,"context_lines":[{"line_number":245,"context_line":"        \"\"\""},{"line_number":246,"context_line":"        servers \u003d []"},{"line_number":247,"context_line":"        for i in range(0, count):"},{"line_number":248,"context_line":"            servers.append(FakeServer.fake_one_server(attrs, methods))"},{"line_number":249,"context_line":""},{"line_number":250,"context_line":"        return servers"},{"line_number":251,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"ba8a016a_efaa0470","line":248,"in_reply_to":"ba8a016a_b3747bfd","updated":"2015-11-17 09:24:00.000000000","message":"But I made it static method, which has no self param. Maybe classmethod is better ?  We can use cls param.","commit_id":"e7f4be98d0af23415cb88d986aee088169be36f4"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"e0ca9b8ee52781570e625db27d40620f473c4601","unresolved":false,"context_lines":[{"line_number":245,"context_line":"        \"\"\""},{"line_number":246,"context_line":"        servers \u003d []"},{"line_number":247,"context_line":"        for i in range(0, count):"},{"line_number":248,"context_line":"            servers.append(FakeServer.fake_one_server(attrs, methods))"},{"line_number":249,"context_line":""},{"line_number":250,"context_line":"        return servers"},{"line_number":251,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"ba8a016a_289c78bf","line":248,"in_reply_to":"ba8a016a_efaa0470","updated":"2015-11-17 13:15:18.000000000","message":"oops, didn\u0027t realize that. this is fine then","commit_id":"e7f4be98d0af23415cb88d986aee088169be36f4"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"f27dacbc7ed56ee3355a39d50da4b739c1b4ce36","unresolved":false,"context_lines":[{"line_number":265,"context_line":"            servers"},{"line_number":266,"context_line":"        \"\"\""},{"line_number":267,"context_line":"        if servers is None:"},{"line_number":268,"context_line":"            servers \u003d FakeServer.fake_servers(count)"},{"line_number":269,"context_line":"        return mock.MagicMock(side_effect\u003dservers)"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba8a016a_d36d7f33","line":268,"updated":"2015-11-16 22:11:56.000000000","message":"nit: call self instead of FakeServer, it\u0027s just a convention we use","commit_id":"e7f4be98d0af23415cb88d986aee088169be36f4"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"01f9bf55ae92a8d2e3daf84738868494b1282704","unresolved":false,"context_lines":[{"line_number":213,"context_line":"                              loaded\u003dTrue)"},{"line_number":214,"context_line":""},{"line_number":215,"context_line":"        # Overwrite default attributes."},{"line_number":216,"context_line":"        server._add_details(attrs)"},{"line_number":217,"context_line":""},{"line_number":218,"context_line":"        return server"},{"line_number":219,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"ba8a016a_776af4ef","line":216,"updated":"2015-11-19 05:49:19.000000000","message":"can\u0027t you just do a  server_info.update(attrs) to line 210 instead?\n\nwe should not be calling private methods","commit_id":"1588334ce3598543d185cd49c46e74b80acfac52"},{"author":{"_account_id":14937,"name":"Tang Chen","email":"imtangchen@163.com","username":"tangchen"},"change_message_id":"95b505c09af1be0288f34ca909c1a62f7f7f016d","unresolved":false,"context_lines":[{"line_number":213,"context_line":"                              loaded\u003dTrue)"},{"line_number":214,"context_line":""},{"line_number":215,"context_line":"        # Overwrite default attributes."},{"line_number":216,"context_line":"        server._add_details(attrs)"},{"line_number":217,"context_line":""},{"line_number":218,"context_line":"        return server"},{"line_number":219,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"ba8a016a_63a236ff","line":216,"in_reply_to":"ba8a016a_776af4ef","updated":"2015-11-19 07:44:58.000000000","message":"Done","commit_id":"1588334ce3598543d185cd49c46e74b80acfac52"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"d4d0557843ec710d291a64ef09255fa3ff00cce1","unresolved":false,"context_lines":[{"line_number":240,"context_line":"    def get_servers(servers\u003dNone, count\u003d2):"},{"line_number":241,"context_line":"        \"\"\"Get an iterable MagicMock object with a list of faked servers."},{"line_number":242,"context_line":""},{"line_number":243,"context_line":"        If servers list is provided, the initialize the Mock object with the"},{"line_number":244,"context_line":"        list. Otherwise create one."},{"line_number":245,"context_line":""},{"line_number":246,"context_line":"        :param List servers:"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba8a016a_37154c48","line":243,"updated":"2015-11-19 06:01:18.000000000","message":"\" the initialize\" -\u003e  \"then initialize\"  ?","commit_id":"1588334ce3598543d185cd49c46e74b80acfac52"},{"author":{"_account_id":14937,"name":"Tang Chen","email":"imtangchen@163.com","username":"tangchen"},"change_message_id":"95b505c09af1be0288f34ca909c1a62f7f7f016d","unresolved":false,"context_lines":[{"line_number":240,"context_line":"    def get_servers(servers\u003dNone, count\u003d2):"},{"line_number":241,"context_line":"        \"\"\"Get an iterable MagicMock object with a list of faked servers."},{"line_number":242,"context_line":""},{"line_number":243,"context_line":"        If servers list is provided, the initialize the Mock object with the"},{"line_number":244,"context_line":"        list. Otherwise create one."},{"line_number":245,"context_line":""},{"line_number":246,"context_line":"        :param List servers:"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba8a016a_03a32a01","line":243,"in_reply_to":"ba8a016a_37154c48","updated":"2015-11-19 07:44:58.000000000","message":"Done","commit_id":"1588334ce3598543d185cd49c46e74b80acfac52"}]}
