)]}'
{"openstackclient/tests/fakes.py":[{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"fe8b7afac2ebfed3554e2722795e6b87af408e19","unresolved":false,"context_lines":[{"line_number":22,"context_line":"import uuid"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"from keystoneauth1 import fixture"},{"line_number":25,"context_line":"from openstackclient.common import utils"},{"line_number":26,"context_line":"import requests"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"ba8a016a_5aedf0b5","line":25,"updated":"2015-11-23 15:38:53.000000000","message":"move this into it\u0027s own group below requests\n\n  from keystonauth1 import fixture\n  import requests\n\n  from openstackclient.common import utils","commit_id":"ea114e94920261eb8e99ec493fdb914dba27f546"},{"author":{"_account_id":16066,"name":"xiexs","email":"xiexs@cn.fujitsu.com","username":"simen"},"change_message_id":"de63baceba19e795d2f565e0eb49d598c8a5ede5","unresolved":false,"context_lines":[{"line_number":22,"context_line":"import uuid"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"from keystoneauth1 import fixture"},{"line_number":25,"context_line":"from openstackclient.common import utils"},{"line_number":26,"context_line":"import requests"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"ba8a016a_9daa5618","line":25,"in_reply_to":"ba8a016a_5aedf0b5","updated":"2015-11-24 03:10:21.000000000","message":"Done","commit_id":"ea114e94920261eb8e99ec493fdb914dba27f546"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"fe8b7afac2ebfed3554e2722795e6b87af408e19","unresolved":false,"context_lines":[{"line_number":257,"context_line":"        return mock.MagicMock(side_effect\u003dservers)"},{"line_number":258,"context_line":""},{"line_number":259,"context_line":""},{"line_number":260,"context_line":"class FakeImage(object):"},{"line_number":261,"context_line":"    \"\"\"Fake one or more image instance\"\"\""},{"line_number":262,"context_line":""},{"line_number":263,"context_line":"    @staticmethod"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba8a016a_b57bcd7a","line":260,"updated":"2015-11-23 15:38:53.000000000","message":"So unlike the server, we support image API v1 and v2, will this class work for both API versions? if not, then specify it here","commit_id":"ea114e94920261eb8e99ec493fdb914dba27f546"},{"author":{"_account_id":16066,"name":"xiexs","email":"xiexs@cn.fujitsu.com","username":"simen"},"change_message_id":"de63baceba19e795d2f565e0eb49d598c8a5ede5","unresolved":false,"context_lines":[{"line_number":257,"context_line":"        return mock.MagicMock(side_effect\u003dservers)"},{"line_number":258,"context_line":""},{"line_number":259,"context_line":""},{"line_number":260,"context_line":"class FakeImage(object):"},{"line_number":261,"context_line":"    \"\"\"Fake one or more image instance\"\"\""},{"line_number":262,"context_line":""},{"line_number":263,"context_line":"    @staticmethod"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba8a016a_fdab621c","line":260,"in_reply_to":"ba8a016a_b57bcd7a","updated":"2015-11-24 03:10:21.000000000","message":"Done","commit_id":"ea114e94920261eb8e99ec493fdb914dba27f546"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"fe8b7afac2ebfed3554e2722795e6b87af408e19","unresolved":false,"context_lines":[{"line_number":275,"context_line":"            \u0027id\u0027: \u0027image-id\u0027 + uuid.uuid4().hex,"},{"line_number":276,"context_line":"            \u0027name\u0027: \u0027image-name\u0027 + uuid.uuid4().hex,"},{"line_number":277,"context_line":"            \u0027owner\u0027: \u0027image-owner\u0027 + uuid.uuid4().hex,"},{"line_number":278,"context_line":"            \u0027protected\u0027: bool(random.choice([0, 1])),"},{"line_number":279,"context_line":"            \u0027visibility\u0027: random.choice([\u0027public\u0027, \u0027private\u0027]),"},{"line_number":280,"context_line":"            \u0027tags\u0027: [uuid.uuid4().hex for r in range(random.randint(1, 5))],"},{"line_number":281,"context_line":"        }"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba8a016a_5a017005","line":278,"updated":"2015-11-23 15:38:53.000000000","message":"ohh very interesting way to mix things up here","commit_id":"ea114e94920261eb8e99ec493fdb914dba27f546"},{"author":{"_account_id":16066,"name":"xiexs","email":"xiexs@cn.fujitsu.com","username":"simen"},"change_message_id":"de63baceba19e795d2f565e0eb49d598c8a5ede5","unresolved":false,"context_lines":[{"line_number":275,"context_line":"            \u0027id\u0027: \u0027image-id\u0027 + uuid.uuid4().hex,"},{"line_number":276,"context_line":"            \u0027name\u0027: \u0027image-name\u0027 + uuid.uuid4().hex,"},{"line_number":277,"context_line":"            \u0027owner\u0027: \u0027image-owner\u0027 + uuid.uuid4().hex,"},{"line_number":278,"context_line":"            \u0027protected\u0027: bool(random.choice([0, 1])),"},{"line_number":279,"context_line":"            \u0027visibility\u0027: random.choice([\u0027public\u0027, \u0027private\u0027]),"},{"line_number":280,"context_line":"            \u0027tags\u0027: [uuid.uuid4().hex for r in range(random.randint(1, 5))],"},{"line_number":281,"context_line":"        }"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba8a016a_2026a168","line":278,"in_reply_to":"ba8a016a_5a017005","updated":"2015-11-24 03:10:21.000000000","message":"Thanks, yes, it is a meaningful work to make all data random used by the testcase.","commit_id":"ea114e94920261eb8e99ec493fdb914dba27f546"},{"author":{"_account_id":14937,"name":"Tang Chen","email":"imtangchen@163.com","username":"tangchen"},"change_message_id":"b4a0aa05b3344090b2184fbfeeed93a5af052f29","unresolved":false,"context_lines":[{"line_number":296,"context_line":"        :param Dictionary attrs:"},{"line_number":297,"context_line":"            A dictionary with all attributes of image"},{"line_number":298,"context_line":"        :param Integer nb:"},{"line_number":299,"context_line":"            The number of servers to be faked"},{"line_number":300,"context_line":"        :return:"},{"line_number":301,"context_line":"            A list of Multiple FakeResource objects"},{"line_number":302,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":1,"id":"ba8a016a_e243f26a","line":299,"updated":"2015-11-23 10:22:08.000000000","message":"nit: servers --\u003e images","commit_id":"ea114e94920261eb8e99ec493fdb914dba27f546"},{"author":{"_account_id":16066,"name":"xiexs","email":"xiexs@cn.fujitsu.com","username":"simen"},"change_message_id":"de63baceba19e795d2f565e0eb49d598c8a5ede5","unresolved":false,"context_lines":[{"line_number":296,"context_line":"        :param Dictionary attrs:"},{"line_number":297,"context_line":"            A dictionary with all attributes of image"},{"line_number":298,"context_line":"        :param Integer nb:"},{"line_number":299,"context_line":"            The number of servers to be faked"},{"line_number":300,"context_line":"        :return:"},{"line_number":301,"context_line":"            A list of Multiple FakeResource objects"},{"line_number":302,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":1,"id":"ba8a016a_5d638e1a","line":299,"in_reply_to":"ba8a016a_e243f26a","updated":"2015-11-24 03:10:21.000000000","message":"Done","commit_id":"ea114e94920261eb8e99ec493fdb914dba27f546"},{"author":{"_account_id":14937,"name":"Tang Chen","email":"imtangchen@163.com","username":"tangchen"},"change_message_id":"b4a0aa05b3344090b2184fbfeeed93a5af052f29","unresolved":false,"context_lines":[{"line_number":298,"context_line":"        :param Integer nb:"},{"line_number":299,"context_line":"            The number of servers to be faked"},{"line_number":300,"context_line":"        :return:"},{"line_number":301,"context_line":"            A list of Multiple FakeResource objects"},{"line_number":302,"context_line":"        \"\"\""},{"line_number":303,"context_line":"        images \u003d []"},{"line_number":304,"context_line":"        for n in range(0, nb):"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba8a016a_421bde80","line":301,"updated":"2015-11-23 10:22:08.000000000","message":"nit: I think Multiple is not needed.","commit_id":"ea114e94920261eb8e99ec493fdb914dba27f546"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"fe8b7afac2ebfed3554e2722795e6b87af408e19","unresolved":false,"context_lines":[{"line_number":307,"context_line":"        return images"},{"line_number":308,"context_line":""},{"line_number":309,"context_line":"    @staticmethod"},{"line_number":310,"context_line":"    def get_images(images\u003dNone, nb\u003d2):"},{"line_number":311,"context_line":"        \"\"\"Get an iterable MagicMock object with a list of faked images."},{"line_number":312,"context_line":""},{"line_number":313,"context_line":"        If images list is provided, then initialize the Mock object with the"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba8a016a_552f0188","line":310,"updated":"2015-11-23 15:38:53.000000000","message":"is `nb` short for something? why not use `count` for FakeServer?","commit_id":"ea114e94920261eb8e99ec493fdb914dba27f546"},{"author":{"_account_id":16066,"name":"xiexs","email":"xiexs@cn.fujitsu.com","username":"simen"},"change_message_id":"de63baceba19e795d2f565e0eb49d598c8a5ede5","unresolved":false,"context_lines":[{"line_number":307,"context_line":"        return images"},{"line_number":308,"context_line":""},{"line_number":309,"context_line":"    @staticmethod"},{"line_number":310,"context_line":"    def get_images(images\u003dNone, nb\u003d2):"},{"line_number":311,"context_line":"        \"\"\"Get an iterable MagicMock object with a list of faked images."},{"line_number":312,"context_line":""},{"line_number":313,"context_line":"        If images list is provided, then initialize the Mock object with the"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba8a016a_a01db167","line":310,"in_reply_to":"ba8a016a_552f0188","updated":"2015-11-24 03:10:21.000000000","message":"Done","commit_id":"ea114e94920261eb8e99ec493fdb914dba27f546"},{"author":{"_account_id":14937,"name":"Tang Chen","email":"imtangchen@163.com","username":"tangchen"},"change_message_id":"b4a0aa05b3344090b2184fbfeeed93a5af052f29","unresolved":false,"context_lines":[{"line_number":313,"context_line":"        If images list is provided, then initialize the Mock object with the"},{"line_number":314,"context_line":"        list. Otherwise create one."},{"line_number":315,"context_line":""},{"line_number":316,"context_line":"        :param List servers:"},{"line_number":317,"context_line":"            A list of FakeResource objects faking images"},{"line_number":318,"context_line":"        :param Integer nb:"},{"line_number":319,"context_line":"            The number of images to be faked"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba8a016a_6f6cca9c","line":316,"updated":"2015-11-23 10:22:08.000000000","message":"nit: images","commit_id":"ea114e94920261eb8e99ec493fdb914dba27f546"},{"author":{"_account_id":16066,"name":"xiexs","email":"xiexs@cn.fujitsu.com","username":"simen"},"change_message_id":"de63baceba19e795d2f565e0eb49d598c8a5ede5","unresolved":false,"context_lines":[{"line_number":313,"context_line":"        If images list is provided, then initialize the Mock object with the"},{"line_number":314,"context_line":"        list. Otherwise create one."},{"line_number":315,"context_line":""},{"line_number":316,"context_line":"        :param List servers:"},{"line_number":317,"context_line":"            A list of FakeResource objects faking images"},{"line_number":318,"context_line":"        :param Integer nb:"},{"line_number":319,"context_line":"            The number of images to be faked"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba8a016a_20f3010c","line":316,"in_reply_to":"ba8a016a_6f6cca9c","updated":"2015-11-24 03:10:21.000000000","message":"Done","commit_id":"ea114e94920261eb8e99ec493fdb914dba27f546"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"6e8db825d1f0462fe982a088c160d7ff9c3e8db8","unresolved":false,"context_lines":[{"line_number":261,"context_line":"    \"\"\"Fake one or more image instance."},{"line_number":262,"context_line":""},{"line_number":263,"context_line":""},{"line_number":264,"context_line":"    (TODO)Currently, only image API v2 is supported by this class."},{"line_number":265,"context_line":"    \"\"\""},{"line_number":266,"context_line":""},{"line_number":267,"context_line":"    @staticmethod"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba8a016a_130f35e2","line":264,"updated":"2015-11-24 04:04:19.000000000","message":"minor change:\n\n  TODO(xiexs): Currently ...","commit_id":"6e871cc7d1301a24ab41fb072b341933c3e0221e"},{"author":{"_account_id":14937,"name":"Tang Chen","email":"imtangchen@163.com","username":"tangchen"},"change_message_id":"c5016c0c7d529bb278bc817e5a729d580d15ff8f","unresolved":false,"context_lines":[{"line_number":258,"context_line":""},{"line_number":259,"context_line":""},{"line_number":260,"context_line":"class FakeImage(object):"},{"line_number":261,"context_line":"    \"\"\"Fake one or more image instance."},{"line_number":262,"context_line":""},{"line_number":263,"context_line":""},{"line_number":264,"context_line":"    TODO(xiexs): Currently, only image API v2 is supported by this class."}],"source_content_type":"text/x-python","patch_set":3,"id":"ba8a016a_31cd91b7","line":261,"updated":"2015-11-24 05:49:57.000000000","message":"nit: image instance --\u003e images\n\nTo be the same as the doc in create_images().","commit_id":"d3b0da0dab914152fe48c4d65d98023342a5c08c"},{"author":{"_account_id":14937,"name":"Tang Chen","email":"imtangchen@163.com","username":"tangchen"},"change_message_id":"c5016c0c7d529bb278bc817e5a729d580d15ff8f","unresolved":false,"context_lines":[{"line_number":272,"context_line":"            A dictionary with all attrbutes of image"},{"line_number":273,"context_line":"        :retrun:"},{"line_number":274,"context_line":"            A FakeResource object with id, name, owner, protected,"},{"line_number":275,"context_line":"            visibility and tages attrs"},{"line_number":276,"context_line":"        \"\"\""},{"line_number":277,"context_line":"        # Set default attribute"},{"line_number":278,"context_line":"        image_info \u003d {"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba8a016a_d14be529","line":275,"updated":"2015-11-24 05:49:57.000000000","message":"nit: tages --\u003e tags","commit_id":"d3b0da0dab914152fe48c4d65d98023342a5c08c"},{"author":{"_account_id":14937,"name":"Tang Chen","email":"imtangchen@163.com","username":"tangchen"},"change_message_id":"c5016c0c7d529bb278bc817e5a729d580d15ff8f","unresolved":false,"context_lines":[{"line_number":284,"context_line":"            \u0027tags\u0027: [uuid.uuid4().hex for r in range(random.randint(1, 5))],"},{"line_number":285,"context_line":"        }"},{"line_number":286,"context_line":""},{"line_number":287,"context_line":"        # Overrite default attributes if there are some attributes set"},{"line_number":288,"context_line":"        image_info.update(attrs)"},{"line_number":289,"context_line":""},{"line_number":290,"context_line":"        image \u003d FakeResource("}],"source_content_type":"text/x-python","patch_set":3,"id":"ba8a016a_5105b5bf","line":287,"updated":"2015-11-24 05:49:57.000000000","message":"nit: Overrite --\u003e Overwrite","commit_id":"d3b0da0dab914152fe48c4d65d98023342a5c08c"},{"author":{"_account_id":14937,"name":"Tang Chen","email":"imtangchen@163.com","username":"tangchen"},"change_message_id":"c5016c0c7d529bb278bc817e5a729d580d15ff8f","unresolved":false,"context_lines":[{"line_number":363,"context_line":"        :param image:"},{"line_number":364,"context_line":"            A FakeResource objects faking image"},{"line_number":365,"context_line":"        :return"},{"line_number":366,"context_line":"            A tuple which maybe include following keys:"},{"line_number":367,"context_line":"            (\u0027id\u0027, \u0027name\u0027, \u0027owner\u0027, \u0027protected\u0027, \u0027visibility\u0027, \u0027tags\u0027)"},{"line_number":368,"context_line":"        \"\"\""},{"line_number":369,"context_line":"        if image is not None:"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba8a016a_b1c3c156","line":366,"updated":"2015-11-24 05:49:57.000000000","message":"nit: maybe --\u003e may","commit_id":"d3b0da0dab914152fe48c4d65d98023342a5c08c"},{"author":{"_account_id":14937,"name":"Tang Chen","email":"imtangchen@163.com","username":"tangchen"},"change_message_id":"c5016c0c7d529bb278bc817e5a729d580d15ff8f","unresolved":false,"context_lines":[{"line_number":369,"context_line":"        if image is not None:"},{"line_number":370,"context_line":"            return tuple(k for k in sorted("},{"line_number":371,"context_line":"                FakeImage.get_image_info(image).keys()))"},{"line_number":372,"context_line":"        return None"},{"line_number":373,"context_line":""},{"line_number":374,"context_line":"    @staticmethod"},{"line_number":375,"context_line":"    def get_image_data(image\u003dNone):"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba8a016a_9176bd3c","line":372,"updated":"2015-11-24 05:49:57.000000000","message":"If image is None, you returned { } in get_image_info() above, and tuple([ ]) in get_image_data() below. But here, None.\n\nI think you should return tuple([ ]) here.","commit_id":"d3b0da0dab914152fe48c4d65d98023342a5c08c"},{"author":{"_account_id":14937,"name":"Tang Chen","email":"imtangchen@163.com","username":"tangchen"},"change_message_id":"c5016c0c7d529bb278bc817e5a729d580d15ff8f","unresolved":false,"context_lines":[{"line_number":378,"context_line":"        :param image:"},{"line_number":379,"context_line":"            A FakeResource objects faking image"},{"line_number":380,"context_line":"        :return"},{"line_number":381,"context_line":"            A tuple which maybe include following values:"},{"line_number":382,"context_line":"            (\u0027image-123\u0027, \u0027image-foo\u0027, \u0027admin\u0027, False, \u0027public\u0027, \u0027bar, baz\u0027)"},{"line_number":383,"context_line":"        \"\"\""},{"line_number":384,"context_line":"        data_list \u003d []"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba8a016a_f19e2953","line":381,"updated":"2015-11-24 05:49:57.000000000","message":"nit: maybe --\u003e may","commit_id":"d3b0da0dab914152fe48c4d65d98023342a5c08c"},{"author":{"_account_id":17116,"name":"Niall Bunting","email":"niall.bunting@hpe.com","username":"NiallBunting"},"change_message_id":"f192217deb4640363e8bcaf2730cf24b60749861","unresolved":false,"context_lines":[{"line_number":363,"context_line":"        :param image:"},{"line_number":364,"context_line":"            A FakeResource objects faking image"},{"line_number":365,"context_line":"        :return"},{"line_number":366,"context_line":"            A tuple which may include following keys:"},{"line_number":367,"context_line":"            (\u0027id\u0027, \u0027name\u0027, \u0027owner\u0027, \u0027protected\u0027, \u0027visibility\u0027, \u0027tags\u0027)"},{"line_number":368,"context_line":"        \"\"\""},{"line_number":369,"context_line":"        if image is not None:"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_2606ebce","line":366,"updated":"2015-11-25 13:25:38.000000000","message":"nit: include following keys \u003d\u003e include the following keys","commit_id":"a74d4cbae323c3e5ee43e1cc1bf2b015361ddb99"},{"author":{"_account_id":16066,"name":"xiexs","email":"xiexs@cn.fujitsu.com","username":"simen"},"change_message_id":"9d26908ee061b191704b53ccad0c04e7ed20352b","unresolved":false,"context_lines":[{"line_number":363,"context_line":"        :param image:"},{"line_number":364,"context_line":"            A FakeResource objects faking image"},{"line_number":365,"context_line":"        :return"},{"line_number":366,"context_line":"            A tuple which may include following keys:"},{"line_number":367,"context_line":"            (\u0027id\u0027, \u0027name\u0027, \u0027owner\u0027, \u0027protected\u0027, \u0027visibility\u0027, \u0027tags\u0027)"},{"line_number":368,"context_line":"        \"\"\""},{"line_number":369,"context_line":"        if image is not None:"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_69ba8425","line":366,"in_reply_to":"9a8ffd7b_2606ebce","updated":"2015-11-25 13:38:05.000000000","message":"Done","commit_id":"a74d4cbae323c3e5ee43e1cc1bf2b015361ddb99"},{"author":{"_account_id":17116,"name":"Niall Bunting","email":"niall.bunting@hpe.com","username":"NiallBunting"},"change_message_id":"f192217deb4640363e8bcaf2730cf24b60749861","unresolved":false,"context_lines":[{"line_number":378,"context_line":"        :param image:"},{"line_number":379,"context_line":"            A FakeResource objects faking image"},{"line_number":380,"context_line":"        :return"},{"line_number":381,"context_line":"            A tuple which may include following values:"},{"line_number":382,"context_line":"            (\u0027image-123\u0027, \u0027image-foo\u0027, \u0027admin\u0027, False, \u0027public\u0027, \u0027bar, baz\u0027)"},{"line_number":383,"context_line":"        \"\"\""},{"line_number":384,"context_line":"        data_list \u003d []"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_c6ca7f6e","line":381,"updated":"2015-11-25 13:25:38.000000000","message":"nit: include following values \u003d\u003e include the following values","commit_id":"a74d4cbae323c3e5ee43e1cc1bf2b015361ddb99"},{"author":{"_account_id":16066,"name":"xiexs","email":"xiexs@cn.fujitsu.com","username":"simen"},"change_message_id":"9d26908ee061b191704b53ccad0c04e7ed20352b","unresolved":false,"context_lines":[{"line_number":378,"context_line":"        :param image:"},{"line_number":379,"context_line":"            A FakeResource objects faking image"},{"line_number":380,"context_line":"        :return"},{"line_number":381,"context_line":"            A tuple which may include following values:"},{"line_number":382,"context_line":"            (\u0027image-123\u0027, \u0027image-foo\u0027, \u0027admin\u0027, False, \u0027public\u0027, \u0027bar, baz\u0027)"},{"line_number":383,"context_line":"        \"\"\""},{"line_number":384,"context_line":"        data_list \u003d []"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_89b56832","line":381,"in_reply_to":"9a8ffd7b_c6ca7f6e","updated":"2015-11-25 13:38:05.000000000","message":"Done","commit_id":"a74d4cbae323c3e5ee43e1cc1bf2b015361ddb99"}],"openstackclient/tests/image/v2/fakes.py":[{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"3b945445d68e9a501e303156a116fbd5615ea28d","unresolved":false,"context_lines":[{"line_number":194,"context_line":"            \u0027owner\u0027: \u0027image-owner\u0027 + uuid.uuid4().hex,"},{"line_number":195,"context_line":"            \u0027protected\u0027: bool(random.choice([0, 1])),"},{"line_number":196,"context_line":"            \u0027visibility\u0027: random.choice([\u0027public\u0027, \u0027private\u0027]),"},{"line_number":197,"context_line":"            \u0027tags\u0027: [uuid.uuid4().hex for r in range(random.randint(1, 5))],"},{"line_number":198,"context_line":"        }"},{"line_number":199,"context_line":""},{"line_number":200,"context_line":"        # Overwrite default attributes if there are some attributes set"}],"source_content_type":"text/x-python","patch_set":6,"id":"9a8ffd7b_b9c7c394","line":197,"updated":"2015-11-29 08:10:37.000000000","message":"May want to add \u0027properties\u0027 here too, but this is fine for now","commit_id":"ca129414dece6948c635c26edf627450231762bb"},{"author":{"_account_id":16066,"name":"xiexs","email":"xiexs@cn.fujitsu.com","username":"simen"},"change_message_id":"d59c56ffcb10af192f70c65dde7403cb3facea10","unresolved":false,"context_lines":[{"line_number":194,"context_line":"            \u0027owner\u0027: \u0027image-owner\u0027 + uuid.uuid4().hex,"},{"line_number":195,"context_line":"            \u0027protected\u0027: bool(random.choice([0, 1])),"},{"line_number":196,"context_line":"            \u0027visibility\u0027: random.choice([\u0027public\u0027, \u0027private\u0027]),"},{"line_number":197,"context_line":"            \u0027tags\u0027: [uuid.uuid4().hex for r in range(random.randint(1, 5))],"},{"line_number":198,"context_line":"        }"},{"line_number":199,"context_line":""},{"line_number":200,"context_line":"        # Overwrite default attributes if there are some attributes set"}],"source_content_type":"text/x-python","patch_set":6,"id":"9a8ffd7b_ab23e054","line":197,"in_reply_to":"9a8ffd7b_abe0c029","updated":"2015-11-30 05:28:50.000000000","message":"OK, thanks a lot.","commit_id":"ca129414dece6948c635c26edf627450231762bb"},{"author":{"_account_id":16066,"name":"xiexs","email":"xiexs@cn.fujitsu.com","username":"simen"},"change_message_id":"5a9674dafe47f4c06f60d6c23111668d65aeb529","unresolved":false,"context_lines":[{"line_number":194,"context_line":"            \u0027owner\u0027: \u0027image-owner\u0027 + uuid.uuid4().hex,"},{"line_number":195,"context_line":"            \u0027protected\u0027: bool(random.choice([0, 1])),"},{"line_number":196,"context_line":"            \u0027visibility\u0027: random.choice([\u0027public\u0027, \u0027private\u0027]),"},{"line_number":197,"context_line":"            \u0027tags\u0027: [uuid.uuid4().hex for r in range(random.randint(1, 5))],"},{"line_number":198,"context_line":"        }"},{"line_number":199,"context_line":""},{"line_number":200,"context_line":"        # Overwrite default attributes if there are some attributes set"}],"source_content_type":"text/x-python","patch_set":6,"id":"9a8ffd7b_f2e9dd7f","line":197,"in_reply_to":"9a8ffd7b_b9c7c394","updated":"2015-11-30 02:38:00.000000000","message":"Could i selfishly add this by the next patch? Just to keep your precious +2? ...a little shame.","commit_id":"ca129414dece6948c635c26edf627450231762bb"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"4fdf637dcb78d54c5b4f8dc76d47af791970de77","unresolved":false,"context_lines":[{"line_number":194,"context_line":"            \u0027owner\u0027: \u0027image-owner\u0027 + uuid.uuid4().hex,"},{"line_number":195,"context_line":"            \u0027protected\u0027: bool(random.choice([0, 1])),"},{"line_number":196,"context_line":"            \u0027visibility\u0027: random.choice([\u0027public\u0027, \u0027private\u0027]),"},{"line_number":197,"context_line":"            \u0027tags\u0027: [uuid.uuid4().hex for r in range(random.randint(1, 5))],"},{"line_number":198,"context_line":"        }"},{"line_number":199,"context_line":""},{"line_number":200,"context_line":"        # Overwrite default attributes if there are some attributes set"}],"source_content_type":"text/x-python","patch_set":6,"id":"9a8ffd7b_abe0c029","line":197,"in_reply_to":"9a8ffd7b_f2e9dd7f","updated":"2015-11-30 05:24:03.000000000","message":"sure, this is fine for now, you can add properties as a follow-on in the next patch, it was just a suggestion.","commit_id":"ca129414dece6948c635c26edf627450231762bb"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"7bd76131fa782961e0a753d74000a3e2d10b7654","unresolved":false,"context_lines":[{"line_number":202,"context_line":""},{"line_number":203,"context_line":"        image \u003d fakes.FakeResource("},{"line_number":204,"context_line":"            None,"},{"line_number":205,"context_line":"            copy.deepcopy(image_info),"},{"line_number":206,"context_line":"            loaded\u003dTrue)"},{"line_number":207,"context_line":"        return image"},{"line_number":208,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"9a8ffd7b_7fc7e995","line":205,"updated":"2015-11-30 11:03:59.000000000","message":"copy.deepcopy is not necessary here since image_info is local and not re-used anywhere","commit_id":"ca129414dece6948c635c26edf627450231762bb"},{"author":{"_account_id":16066,"name":"xiexs","email":"xiexs@cn.fujitsu.com","username":"simen"},"change_message_id":"3c3a97fb91ce76c2105c066364cd2ee1c9ef5f83","unresolved":false,"context_lines":[{"line_number":202,"context_line":""},{"line_number":203,"context_line":"        image \u003d fakes.FakeResource("},{"line_number":204,"context_line":"            None,"},{"line_number":205,"context_line":"            copy.deepcopy(image_info),"},{"line_number":206,"context_line":"            loaded\u003dTrue)"},{"line_number":207,"context_line":"        return image"},{"line_number":208,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"9a8ffd7b_64999dc3","line":205,"in_reply_to":"9a8ffd7b_7fc7e995","updated":"2015-11-30 11:54:40.000000000","message":"Yes, just like the FakeVolume does, thanks.","commit_id":"ca129414dece6948c635c26edf627450231762bb"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"7bd76131fa782961e0a753d74000a3e2d10b7654","unresolved":false,"context_lines":[{"line_number":261,"context_line":"            }"},{"line_number":262,"context_line":"        \"\"\""},{"line_number":263,"context_line":"        local_image \u003d None"},{"line_number":264,"context_line":"        if image is not None:"},{"line_number":265,"context_line":"            local_image \u003d copy.deepcopy(image)"},{"line_number":266,"context_line":"            for k in local_image.__dict__.keys():"},{"line_number":267,"context_line":"                if k[0] \u003d\u003d \u0027_\u0027 or k \u003d\u003d \u0027manager\u0027:"}],"source_content_type":"text/x-python","patch_set":6,"id":"9a8ffd7b_9fcc0d8a","line":264,"updated":"2015-11-30 11:03:59.000000000","message":"why not just return the content of image._info here?","commit_id":"ca129414dece6948c635c26edf627450231762bb"},{"author":{"_account_id":16066,"name":"xiexs","email":"xiexs@cn.fujitsu.com","username":"simen"},"change_message_id":"3c3a97fb91ce76c2105c066364cd2ee1c9ef5f83","unresolved":false,"context_lines":[{"line_number":261,"context_line":"            }"},{"line_number":262,"context_line":"        \"\"\""},{"line_number":263,"context_line":"        local_image \u003d None"},{"line_number":264,"context_line":"        if image is not None:"},{"line_number":265,"context_line":"            local_image \u003d copy.deepcopy(image)"},{"line_number":266,"context_line":"            for k in local_image.__dict__.keys():"},{"line_number":267,"context_line":"                if k[0] \u003d\u003d \u0027_\u0027 or k \u003d\u003d \u0027manager\u0027:"}],"source_content_type":"text/x-python","patch_set":6,"id":"9a8ffd7b_a2077516","line":264,"in_reply_to":"9a8ffd7b_9fcc0d8a","updated":"2015-11-30 11:54:40.000000000","message":"Yes, you\u0027re right. I updated it. thanks a lot.","commit_id":"ca129414dece6948c635c26edf627450231762bb"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"64b471646495f92201f9fab12347baa4531edcab","unresolved":false,"context_lines":[{"line_number":264,"context_line":"        local_image \u003d None"},{"line_number":265,"context_line":"        if image is not None:"},{"line_number":266,"context_line":"            local_image \u003d image._info"},{"line_number":267,"context_line":"            for k in local_image.keys():"},{"line_number":268,"context_line":"                if k[0] \u003d\u003d \u0027_\u0027 or k \u003d\u003d \u0027manager\u0027:"},{"line_number":269,"context_line":"                    local_image.pop(k)"},{"line_number":270,"context_line":"            return local_image"}],"source_content_type":"text/x-python","patch_set":7,"id":"9a8ffd7b_55750a30","line":267,"updated":"2015-11-30 18:15:37.000000000","message":"we don\u0027t need the loop here since _info attribute doesn\u0027t have this.\n\nI think this was from the old code when you were using __dict__  instead of _info.","commit_id":"1425881861964cc336eaa37cb85822b45a21d6ce"},{"author":{"_account_id":16066,"name":"xiexs","email":"xiexs@cn.fujitsu.com","username":"simen"},"change_message_id":"3bc5d2630726d4badc8b6d9d31ce770ac2d297b3","unresolved":false,"context_lines":[{"line_number":264,"context_line":"        local_image \u003d None"},{"line_number":265,"context_line":"        if image is not None:"},{"line_number":266,"context_line":"            local_image \u003d image._info"},{"line_number":267,"context_line":"            for k in local_image.keys():"},{"line_number":268,"context_line":"                if k[0] \u003d\u003d \u0027_\u0027 or k \u003d\u003d \u0027manager\u0027:"},{"line_number":269,"context_line":"                    local_image.pop(k)"},{"line_number":270,"context_line":"            return local_image"}],"source_content_type":"text/x-python","patch_set":7,"id":"9a8ffd7b_3ab3810c","line":267,"in_reply_to":"9a8ffd7b_55750a30","updated":"2015-12-01 02:23:13.000000000","message":"Yes, there is no \u0027manager\u0027 or \u0027-\u0027 anymore. Thank you very much.","commit_id":"1425881861964cc336eaa37cb85822b45a21d6ce"}]}
