)]}'
{"nova/tests/virt/xenapi/test_vm_utils.py":[{"author":{"_account_id":5044,"name":"Mate Lakat","email":"mlakat@suse.com","username":"mate-lakat"},"change_message_id":"7552d7f0104c513c25391580927e22ab8a8a153a","unresolved":false,"context_lines":[{"line_number":895,"context_line":"        self.instance \u003d \"instance\""},{"line_number":896,"context_line":"        self.vm_ref \u003d \"vm_ref\""},{"line_number":897,"context_line":"        self.name_label \u003d \"name\""},{"line_number":898,"context_line":"        self.userdevice \u003d 4"},{"line_number":899,"context_line":"        self.mox.StubOutWithMock(vm_utils, \"_generate_disk\")"},{"line_number":900,"context_line":"        self.mox.StubOutWithMock(vm_utils, \"safe_destroy_vdis\")"},{"line_number":901,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAPn%2F%2Fyb0%3D","line":898,"updated":"2013-06-21 09:15:12.000000000","message":"I would not extract userdevice, nor name_label. Simply use the string instead","commit_id":"970df12e2b7eb29443633ad2041bfdc227cc00b3"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"788916215ae99711748ca5c6f645faf9893aa33b","unresolved":false,"context_lines":[{"line_number":895,"context_line":"        self.instance \u003d \"instance\""},{"line_number":896,"context_line":"        self.vm_ref \u003d \"vm_ref\""},{"line_number":897,"context_line":"        self.name_label \u003d \"name\""},{"line_number":898,"context_line":"        self.userdevice \u003d 4"},{"line_number":899,"context_line":"        self.mox.StubOutWithMock(vm_utils, \"_generate_disk\")"},{"line_number":900,"context_line":"        self.mox.StubOutWithMock(vm_utils, \"safe_destroy_vdis\")"},{"line_number":901,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAPn%2F%2FyVo%3D","line":898,"in_reply_to":"AAAAPn%2F%2Fyb0%3D","updated":"2013-06-21 09:51:05.000000000","message":"I just like to avoid having to many literals everywhere.","commit_id":"970df12e2b7eb29443633ad2041bfdc227cc00b3"},{"author":{"_account_id":5044,"name":"Mate Lakat","email":"mlakat@suse.com","username":"mate-lakat"},"change_message_id":"7552d7f0104c513c25391580927e22ab8a8a153a","unresolved":false,"context_lines":[{"line_number":911,"context_line":"        vm_utils.generate_ephemeral(self.session, self.instance, self.vm_ref,"},{"line_number":912,"context_line":"            str(self.userdevice), self.name_label, 20)"},{"line_number":913,"context_line":""},{"line_number":914,"context_line":"    def test_generate_ephemeral_adds_two_disks(self):"},{"line_number":915,"context_line":"        self._expect_generate_disk(2000, self.userdevice, self.name_label)"},{"line_number":916,"context_line":"        self._expect_generate_disk(2000, self.userdevice + 1, \"name (1)\")"},{"line_number":917,"context_line":"        self._expect_generate_disk(30, self.userdevice + 2, \"name (2)\")"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAPn%2F%2FycU%3D","line":914,"updated":"2013-06-21 09:15:12.000000000","message":"isn\u0027t it three?","commit_id":"970df12e2b7eb29443633ad2041bfdc227cc00b3"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"788916215ae99711748ca5c6f645faf9893aa33b","unresolved":false,"context_lines":[{"line_number":911,"context_line":"        vm_utils.generate_ephemeral(self.session, self.instance, self.vm_ref,"},{"line_number":912,"context_line":"            str(self.userdevice), self.name_label, 20)"},{"line_number":913,"context_line":""},{"line_number":914,"context_line":"    def test_generate_ephemeral_adds_two_disks(self):"},{"line_number":915,"context_line":"        self._expect_generate_disk(2000, self.userdevice, self.name_label)"},{"line_number":916,"context_line":"        self._expect_generate_disk(2000, self.userdevice + 1, \"name (1)\")"},{"line_number":917,"context_line":"        self._expect_generate_disk(30, self.userdevice + 2, \"name (2)\")"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAPn%2F%2FyVg%3D","line":914,"in_reply_to":"AAAAPn%2F%2FycU%3D","updated":"2013-06-21 09:51:05.000000000","message":"oops, yes, it used to be two...","commit_id":"970df12e2b7eb29443633ad2041bfdc227cc00b3"},{"author":{"_account_id":5044,"name":"Mate Lakat","email":"mlakat@suse.com","username":"mate-lakat"},"change_message_id":"7552d7f0104c513c25391580927e22ab8a8a153a","unresolved":false,"context_lines":[{"line_number":920,"context_line":"        vm_utils.generate_ephemeral(self.session, self.instance, self.vm_ref,"},{"line_number":921,"context_line":"            str(self.userdevice), self.name_label, 4030)"},{"line_number":922,"context_line":""},{"line_number":923,"context_line":"    def test_generate_ephemeral_fails_wtih_config_invalid(self):"},{"line_number":924,"context_line":"        self.flags(xenapi_max_ephemeral_disk_size_gb\u003d2044)"},{"line_number":925,"context_line":"        self._expect_generate_disk(2043, self.userdevice, self.name_label)"},{"line_number":926,"context_line":"        self._expect_generate_disk(1, self.userdevice + 1, \"name (1)\")"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAPn%2F%2FycM%3D","line":923,"updated":"2013-06-21 09:15:12.000000000","message":"Does it fail?","commit_id":"970df12e2b7eb29443633ad2041bfdc227cc00b3"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"788916215ae99711748ca5c6f645faf9893aa33b","unresolved":false,"context_lines":[{"line_number":920,"context_line":"        vm_utils.generate_ephemeral(self.session, self.instance, self.vm_ref,"},{"line_number":921,"context_line":"            str(self.userdevice), self.name_label, 4030)"},{"line_number":922,"context_line":""},{"line_number":923,"context_line":"    def test_generate_ephemeral_fails_wtih_config_invalid(self):"},{"line_number":924,"context_line":"        self.flags(xenapi_max_ephemeral_disk_size_gb\u003d2044)"},{"line_number":925,"context_line":"        self._expect_generate_disk(2043, self.userdevice, self.name_label)"},{"line_number":926,"context_line":"        self._expect_generate_disk(1, self.userdevice + 1, \"name (1)\")"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAPn%2F%2FyVI%3D","line":923,"in_reply_to":"AAAAPn%2F%2FycM%3D","updated":"2013-06-21 09:51:05.000000000","message":"hmm, this name got mangled too, thanks.","commit_id":"970df12e2b7eb29443633ad2041bfdc227cc00b3"}],"nova/virt/xenapi/vm_utils.py":[{"author":{"_account_id":5044,"name":"Mate Lakat","email":"mlakat@suse.com","username":"mate-lakat"},"change_message_id":"a5a8abf3a56984a4a66c1fcd0eec294dd448a25b","unresolved":false,"context_lines":[{"line_number":145,"context_line":"MBR_SIZE_SECTORS \u003d 63"},{"line_number":146,"context_line":"MBR_SIZE_BYTES \u003d MBR_SIZE_SECTORS * SECTOR_SIZE"},{"line_number":147,"context_line":"KERNEL_DIR \u003d \u0027/boot/guest\u0027"},{"line_number":148,"context_line":"MAX_EPHEMERAL_VDI_SIZE_GB \u003d 2000"},{"line_number":149,"context_line":"MAX_VDI_CHAIN_SIZE \u003d 16"},{"line_number":150,"context_line":"PROGRESS_INTERVAL_SECONDS \u003d 300"},{"line_number":151,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAPX%2F%2FqiM%3D","line":148,"updated":"2013-06-13 07:43:33.000000000","message":"Hey, just thinking loudly. Do you think that this would be applicable to other hypervisors as well? In that case we might pull up this functionality, and make it a configuration parameter. Is there any limit in the qcow2/kvm/hyperv world?","commit_id":"1ea76ed041c8247995bd02fb61382892053e8362"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"bde597b89946eed0c453a3f5101716515e6f32b2","unresolved":false,"context_lines":[{"line_number":145,"context_line":"MBR_SIZE_SECTORS \u003d 63"},{"line_number":146,"context_line":"MBR_SIZE_BYTES \u003d MBR_SIZE_SECTORS * SECTOR_SIZE"},{"line_number":147,"context_line":"KERNEL_DIR \u003d \u0027/boot/guest\u0027"},{"line_number":148,"context_line":"MAX_EPHEMERAL_VDI_SIZE_GB \u003d 2000"},{"line_number":149,"context_line":"MAX_VDI_CHAIN_SIZE \u003d 16"},{"line_number":150,"context_line":"PROGRESS_INTERVAL_SECONDS \u003d 300"},{"line_number":151,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAPX%2F%2FqMo%3D","line":148,"in_reply_to":"AAAAPX%2F%2FqiM%3D","updated":"2013-06-13 09:45:56.000000000","message":"Maybe... I was going to make it a config option anyways.","commit_id":"1ea76ed041c8247995bd02fb61382892053e8362"},{"author":{"_account_id":290,"name":"Antony Messerli","email":"antony@mes.ser.li","username":"antonym"},"change_message_id":"0399912dd5fe7d3b4b1ba1dcb54e48cd4bbf20d5","unresolved":false,"context_lines":[{"line_number":896,"context_line":"        LOG.warn(\"Config xenapi_max_ephemeral_disk_size_gb is too big. \""},{"line_number":897,"context_line":"                 \"Max VDI size is 2043GB\")"},{"line_number":898,"context_line":""},{"line_number":899,"context_line":"    left_to_allocate \u003d total_size_gb"},{"line_number":900,"context_line":"    userdevice \u003d first_userdevice"},{"line_number":901,"context_line":"    size_gb \u003d max_size_gb"},{"line_number":902,"context_line":"    name_label \u003d initial_name_label"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAPX%2F%2FoRw%3D","line":899,"updated":"2013-06-13 23:19:37.000000000","message":"tested the code and had to add make first_userdevice an integer as I think it was getting passed in as a string, worked after that\n\n    first_userdevice \u003d int(first_userdevice)","commit_id":"156eba43fbdc5d09c94eb0c04159d7507c2b4ead"},{"author":{"_account_id":5044,"name":"Mate Lakat","email":"mlakat@suse.com","username":"mate-lakat"},"change_message_id":"7552d7f0104c513c25391580927e22ab8a8a153a","unresolved":false,"context_lines":[{"line_number":912,"context_line":"    try:"},{"line_number":913,"context_line":"        while left_to_allocate \u003e 0:"},{"line_number":914,"context_line":"            if left_to_allocate \u003c max_size_gb:"},{"line_number":915,"context_line":"                size_gb \u003d left_to_allocate"},{"line_number":916,"context_line":""},{"line_number":917,"context_line":"            ref \u003d _generate_disk(session, instance, vm_ref, str(userdevice),"},{"line_number":918,"context_line":"                                 name_label, \u0027ephemeral\u0027, size_gb * 1024,"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAPn%2F%2FybA%3D","line":915,"updated":"2013-06-21 09:15:12.000000000","message":"maybe replace this with the following and you can get rid of the initialization of size_gb as well.\n\n    size_gb \u003d min(max_size_gb, left_to_allocate)","commit_id":"970df12e2b7eb29443633ad2041bfdc227cc00b3"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"788916215ae99711748ca5c6f645faf9893aa33b","unresolved":false,"context_lines":[{"line_number":912,"context_line":"    try:"},{"line_number":913,"context_line":"        while left_to_allocate \u003e 0:"},{"line_number":914,"context_line":"            if left_to_allocate \u003c max_size_gb:"},{"line_number":915,"context_line":"                size_gb \u003d left_to_allocate"},{"line_number":916,"context_line":""},{"line_number":917,"context_line":"            ref \u003d _generate_disk(session, instance, vm_ref, str(userdevice),"},{"line_number":918,"context_line":"                                 name_label, \u0027ephemeral\u0027, size_gb * 1024,"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAPn%2F%2FyVA%3D","line":915,"in_reply_to":"AAAAPn%2F%2FybA%3D","updated":"2013-06-21 09:51:05.000000000","message":"yeah, good idea.","commit_id":"970df12e2b7eb29443633ad2041bfdc227cc00b3"},{"author":{"_account_id":5044,"name":"Mate Lakat","email":"mlakat@suse.com","username":"mate-lakat"},"change_message_id":"8e98cab9c7eb3db46a56da30e4bccbc1cc3c28a1","unresolved":false,"context_lines":[{"line_number":891,"context_line":"def generate_ephemeral(session, instance, vm_ref, first_userdevice,"},{"line_number":892,"context_line":"                       initial_name_label, total_size_gb):"},{"line_number":893,"context_line":"    # NOTE(johngarbutt): max possible size of a VHD disk is 2043GB"},{"line_number":894,"context_line":"    if total_size_gb % 1024 \u003d\u003d 0:"},{"line_number":895,"context_line":"        max_size_gb \u003d 1024"},{"line_number":896,"context_line":"    else:"},{"line_number":897,"context_line":"        max_size_gb \u003d 2000"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAPn%2F%2Fu8A%3D","line":894,"updated":"2013-06-24 07:15:56.000000000","message":"I am not sure I understand why we need this logic.","commit_id":"eda1c3867bfdce930eb2eede55c753af708b1f0c"},{"author":{"_account_id":2835,"name":"Brian Elliott","email":"bdelliott@gmail.com","username":"belliott"},"change_message_id":"c7a63c279184fc964f49866882f81d907dcfc9f6","unresolved":false,"context_lines":[{"line_number":916,"context_line":"            label_number \u003d userdevice - first_userdevice"},{"line_number":917,"context_line":"            name_label \u003d \"%s (%d)\" % (initial_name_label, label_number)"},{"line_number":918,"context_line":"    except Exception:"},{"line_number":919,"context_line":"        with excutils.save_and_reraise_exception():"},{"line_number":920,"context_line":"            safe_destroy_vdis(session, vdi_refs)"},{"line_number":921,"context_line":""},{"line_number":922,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"AAAAP3%2F%2F1p4%3D","line":919,"updated":"2013-07-10 16:12:21.000000000","message":"Do you think it\u0027s worth logging info about which disk failed to get created?","commit_id":"18ce85e0fbc0780de45cc5b96bcd9726d3451d65"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"5ffc5080f63a9bf0535a8d39dabd465eb610e97d","unresolved":false,"context_lines":[{"line_number":916,"context_line":"            label_number \u003d userdevice - first_userdevice"},{"line_number":917,"context_line":"            name_label \u003d \"%s (%d)\" % (initial_name_label, label_number)"},{"line_number":918,"context_line":"    except Exception:"},{"line_number":919,"context_line":"        with excutils.save_and_reraise_exception():"},{"line_number":920,"context_line":"            safe_destroy_vdis(session, vdi_refs)"},{"line_number":921,"context_line":""},{"line_number":922,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"AAAAP3%2F%2FzGM%3D","line":919,"in_reply_to":"AAAAP3%2F%2F1p4%3D","updated":"2013-07-11 08:40:11.000000000","message":"Oh, yeah, good idea.","commit_id":"18ce85e0fbc0780de45cc5b96bcd9726d3451d65"}]}
