)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"ad1dba847f85d055b967b7d5b9ffb65217a9c17b","unresolved":false,"context_lines":[{"line_number":13,"context_line":"Co-Authored-By: Avi Weit \u003cWEIT@il.ibm.com\u003e"},{"line_number":14,"context_line":"Co-Authored-By: Jorge Rodriguez \u003cjorgedr@us.ibm.com\u003e"},{"line_number":15,"context_line":"Co-Authored-By: Karolyn Chambers \u003cKarolyn.Chambers@target.com\u003e"},{"line_number":16,"context_line":"Co-Authored-By: Daniel Berrange \u003cberrange@redhat.com\u003e"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Change-Id: I20700a32d608b3444b22c5ae460002eeb86d78ae"},{"line_number":19,"context_line":"Closes-bug: #1677159"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"ffe62b97_d820fc9d","line":16,"updated":"2017-03-29 13:32:05.000000000","message":"can you also add me:\n\nCo-Authored-By: gordon chung \u003cgord@live.ca\u003e","commit_id":"822e72c0698b53a5f8d027cf9afec502221df67e"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"1d2c573e73ff18e8589bd87a2db27fc6341a93f5","unresolved":false,"context_lines":[{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Change-Id: I20700a32d608b3444b22c5ae460002eeb86d78ae"},{"line_number":19,"context_line":"Closes-bug: #1677159"},{"line_number":20,"context_line":"Related-bug: #1421584"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"ffe62b97_15506d0a","line":20,"range":{"start_line":20,"start_character":0,"end_line":20,"end_character":7},"updated":"2017-03-29 13:15:28.000000000","message":"closes","commit_id":"822e72c0698b53a5f8d027cf9afec502221df67e"}],"ceilometer/compute/virt/libvirt/inspector.py":[{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"caebafacfcbc2f37219bbdaadccccb847773cd8a","unresolved":false,"context_lines":[{"line_number":174,"context_line":"        # we could use that instead of the old method for Queen"},{"line_number":175,"context_line":"        stats \u003d self.connection.domainListGetStats([domain], 0)[0][1]"},{"line_number":176,"context_line":"        cpu_time\u003dstats.get(\u0027cpu.time\u0027)"},{"line_number":177,"context_line":"        #Fall back to vcpu.x.time values, when no cpu.time in the stats"},{"line_number":178,"context_line":"        if cpu_time is None:"},{"line_number":179,"context_line":"            cpu_time \u003d 0"},{"line_number":180,"context_line":"            for vcpu in range(0, stats.get(\u0027vcpu.maximum\u0027)):"}],"source_content_type":"text/x-python","patch_set":2,"id":"ffe62b97_ade5fbdd","line":177,"updated":"2017-03-29 12:30:35.000000000","message":"tbh, i don\u0027t think we should be falling back to vcpu since it\u0027s newer (and more accurate)","commit_id":"fa03aa77160d06d0fe624ef92f944ac99945ab36"},{"author":{"_account_id":18940,"name":"Gyorgy Szombathelyi","email":"gyurco@freemail.hu","username":"gyurco78"},"change_message_id":"de1b6ffa980e8ce9c7bdd1d8adf64a0700ac9fd6","unresolved":false,"context_lines":[{"line_number":174,"context_line":"        # we could use that instead of the old method for Queen"},{"line_number":175,"context_line":"        stats \u003d self.connection.domainListGetStats([domain], 0)[0][1]"},{"line_number":176,"context_line":"        cpu_time\u003dstats.get(\u0027cpu.time\u0027)"},{"line_number":177,"context_line":"        #Fall back to vcpu.x.time values, when no cpu.time in the stats"},{"line_number":178,"context_line":"        if cpu_time is None:"},{"line_number":179,"context_line":"            cpu_time \u003d 0"},{"line_number":180,"context_line":"            for vcpu in range(0, stats.get(\u0027vcpu.maximum\u0027)):"}],"source_content_type":"text/x-python","patch_set":2,"id":"ffe62b97_adb61b89","line":177,"in_reply_to":"ffe62b97_ade5fbdd","updated":"2017-03-29 12:39:19.000000000","message":"Yepp, maybe you\u0027re right, it should be the first thing used. I\u0027ll take a look at your existing patch.","commit_id":"fa03aa77160d06d0fe624ef92f944ac99945ab36"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"caebafacfcbc2f37219bbdaadccccb847773cd8a","unresolved":false,"context_lines":[{"line_number":177,"context_line":"        #Fall back to vcpu.x.time values, when no cpu.time in the stats"},{"line_number":178,"context_line":"        if cpu_time is None:"},{"line_number":179,"context_line":"            cpu_time \u003d 0"},{"line_number":180,"context_line":"            for vcpu in range(0, stats.get(\u0027vcpu.maximum\u0027)):"},{"line_number":181,"context_line":"                vcpu_time \u003d stats.get(\u0027vcpu.\u0027 + str(vcpu) + \u0027.time\u0027)"},{"line_number":182,"context_line":"                if vcpu_time: cpu_time +\u003d vcpu_time"},{"line_number":183,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"ffe62b97_6da5b3a1","line":180,"updated":"2017-03-29 12:30:35.000000000","message":"i think we should use vcpu.current","commit_id":"fa03aa77160d06d0fe624ef92f944ac99945ab36"},{"author":{"_account_id":18940,"name":"Gyorgy Szombathelyi","email":"gyurco@freemail.hu","username":"gyurco78"},"change_message_id":"de1b6ffa980e8ce9c7bdd1d8adf64a0700ac9fd6","unresolved":false,"context_lines":[{"line_number":177,"context_line":"        #Fall back to vcpu.x.time values, when no cpu.time in the stats"},{"line_number":178,"context_line":"        if cpu_time is None:"},{"line_number":179,"context_line":"            cpu_time \u003d 0"},{"line_number":180,"context_line":"            for vcpu in range(0, stats.get(\u0027vcpu.maximum\u0027)):"},{"line_number":181,"context_line":"                vcpu_time \u003d stats.get(\u0027vcpu.\u0027 + str(vcpu) + \u0027.time\u0027)"},{"line_number":182,"context_line":"                if vcpu_time: cpu_time +\u003d vcpu_time"},{"line_number":183,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"ffe62b97_6d62530c","line":180,"in_reply_to":"ffe62b97_6da5b3a1","updated":"2017-03-29 12:39:19.000000000","message":"Maximum can be different than current, and it is always bigger. Also the numbering can be sparse, too. Never experienced this, btw, but in theory there can be vcpu.0 and vcpu.2, with current\u003d2 and maximum\u003d4.","commit_id":"fa03aa77160d06d0fe624ef92f944ac99945ab36"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"caebafacfcbc2f37219bbdaadccccb847773cd8a","unresolved":false,"context_lines":[{"line_number":178,"context_line":"        if cpu_time is None:"},{"line_number":179,"context_line":"            cpu_time \u003d 0"},{"line_number":180,"context_line":"            for vcpu in range(0, stats.get(\u0027vcpu.maximum\u0027)):"},{"line_number":181,"context_line":"                vcpu_time \u003d stats.get(\u0027vcpu.\u0027 + str(vcpu) + \u0027.time\u0027)"},{"line_number":182,"context_line":"                if vcpu_time: cpu_time +\u003d vcpu_time"},{"line_number":183,"context_line":""},{"line_number":184,"context_line":"        return virt_inspector.InstanceStats("}],"source_content_type":"text/x-python","patch_set":2,"id":"ffe62b97_6dd2532a","line":181,"updated":"2017-03-29 12:30:35.000000000","message":"you need to add wait time as well.","commit_id":"fa03aa77160d06d0fe624ef92f944ac99945ab36"},{"author":{"_account_id":18940,"name":"Gyorgy Szombathelyi","email":"gyurco@freemail.hu","username":"gyurco78"},"change_message_id":"de1b6ffa980e8ce9c7bdd1d8adf64a0700ac9fd6","unresolved":false,"context_lines":[{"line_number":178,"context_line":"        if cpu_time is None:"},{"line_number":179,"context_line":"            cpu_time \u003d 0"},{"line_number":180,"context_line":"            for vcpu in range(0, stats.get(\u0027vcpu.maximum\u0027)):"},{"line_number":181,"context_line":"                vcpu_time \u003d stats.get(\u0027vcpu.\u0027 + str(vcpu) + \u0027.time\u0027)"},{"line_number":182,"context_line":"                if vcpu_time: cpu_time +\u003d vcpu_time"},{"line_number":183,"context_line":""},{"line_number":184,"context_line":"        return virt_inspector.InstanceStats("}],"source_content_type":"text/x-python","patch_set":2,"id":"ffe62b97_ed330313","line":181,"in_reply_to":"ffe62b97_6dd2532a","updated":"2017-03-29 12:39:19.000000000","message":"Ah, ok.","commit_id":"fa03aa77160d06d0fe624ef92f944ac99945ab36"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"1d2c573e73ff18e8589bd87a2db27fc6341a93f5","unresolved":false,"context_lines":[{"line_number":173,"context_line":"        # TODO(sileht): stats also have the disk/vnic info"},{"line_number":174,"context_line":"        # we could use that instead of the old method for Queen"},{"line_number":175,"context_line":"        stats \u003d self.connection.domainListGetStats([domain], 0)[0][1]"},{"line_number":176,"context_line":"        cpu_time \u003d 0"},{"line_number":177,"context_line":"        for vcpu in range(0, stats.get(\u0027vcpu.maximum\u0027)):"},{"line_number":178,"context_line":"            vcpu_time \u003d stats.get(\u0027vcpu.%s.time\u0027 % vcpu)"},{"line_number":179,"context_line":"            vcpu_wait \u003d stats.get(\u0027vcpu.%s.wait\u0027 % vcpu)"}],"source_content_type":"text/x-python","patch_set":3,"id":"ffe62b97_1502ad0a","line":176,"updated":"2017-03-29 13:15:28.000000000","message":"we should only run below if it has vcpu.*.wait, else it\u0027s not accurate to use.","commit_id":"822e72c0698b53a5f8d027cf9afec502221df67e"},{"author":{"_account_id":18940,"name":"Gyorgy Szombathelyi","email":"gyurco@freemail.hu","username":"gyurco78"},"change_message_id":"874d88547e1b586795e05be5d899bd037c3aee7e","unresolved":false,"context_lines":[{"line_number":173,"context_line":"        # TODO(sileht): stats also have the disk/vnic info"},{"line_number":174,"context_line":"        # we could use that instead of the old method for Queen"},{"line_number":175,"context_line":"        stats \u003d self.connection.domainListGetStats([domain], 0)[0][1]"},{"line_number":176,"context_line":"        cpu_time \u003d 0"},{"line_number":177,"context_line":"        for vcpu in range(0, stats.get(\u0027vcpu.maximum\u0027)):"},{"line_number":178,"context_line":"            vcpu_time \u003d stats.get(\u0027vcpu.%s.time\u0027 % vcpu)"},{"line_number":179,"context_line":"            vcpu_wait \u003d stats.get(\u0027vcpu.%s.wait\u0027 % vcpu)"}],"source_content_type":"text/x-python","patch_set":3,"id":"ffe62b97_f804e016","line":176,"in_reply_to":"ffe62b97_1502ad0a","updated":"2017-03-29 13:32:01.000000000","message":"Ok, I\u0027ll try to make it robust for any missing vcpu.*.wait value.","commit_id":"822e72c0698b53a5f8d027cf9afec502221df67e"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"1d2c573e73ff18e8589bd87a2db27fc6341a93f5","unresolved":false,"context_lines":[{"line_number":174,"context_line":"        # we could use that instead of the old method for Queen"},{"line_number":175,"context_line":"        stats \u003d self.connection.domainListGetStats([domain], 0)[0][1]"},{"line_number":176,"context_line":"        cpu_time \u003d 0"},{"line_number":177,"context_line":"        for vcpu in range(0, stats.get(\u0027vcpu.maximum\u0027)):"},{"line_number":178,"context_line":"            vcpu_time \u003d stats.get(\u0027vcpu.%s.time\u0027 % vcpu)"},{"line_number":179,"context_line":"            vcpu_wait \u003d stats.get(\u0027vcpu.%s.wait\u0027 % vcpu)"},{"line_number":180,"context_line":"            #vcpu.x can be sparse, so handle None values"}],"source_content_type":"text/x-python","patch_set":3,"id":"ffe62b97_42de39da","line":177,"range":{"start_line":177,"start_character":20,"end_line":177,"end_character":25},"updated":"2017-03-29 13:15:28.000000000","message":"six.moves.range(stats.get(\u0027vcpu.current\u0027))\n\ni still think it should be current because we\u0027re not measuring vcpu count from past.","commit_id":"822e72c0698b53a5f8d027cf9afec502221df67e"},{"author":{"_account_id":18940,"name":"Gyorgy Szombathelyi","email":"gyurco@freemail.hu","username":"gyurco78"},"change_message_id":"874d88547e1b586795e05be5d899bd037c3aee7e","unresolved":false,"context_lines":[{"line_number":174,"context_line":"        # we could use that instead of the old method for Queen"},{"line_number":175,"context_line":"        stats \u003d self.connection.domainListGetStats([domain], 0)[0][1]"},{"line_number":176,"context_line":"        cpu_time \u003d 0"},{"line_number":177,"context_line":"        for vcpu in range(0, stats.get(\u0027vcpu.maximum\u0027)):"},{"line_number":178,"context_line":"            vcpu_time \u003d stats.get(\u0027vcpu.%s.time\u0027 % vcpu)"},{"line_number":179,"context_line":"            vcpu_wait \u003d stats.get(\u0027vcpu.%s.wait\u0027 % vcpu)"},{"line_number":180,"context_line":"            #vcpu.x can be sparse, so handle None values"}],"source_content_type":"text/x-python","patch_set":3,"id":"ffe62b97_b5d2e1cf","line":177,"range":{"start_line":177,"start_character":20,"end_line":177,"end_character":25},"in_reply_to":"ffe62b97_42de39da","updated":"2017-03-29 13:32:01.000000000","message":"Isn\u0027t it possible to remove VCPU 0 for example? (as maximum and current are there because of CPU hotplugging). In this case there won\u0027t be vcpu.0.time and vcpu.0.wait at all (as libvirt doc says the vcpu.x can be sparse). And then with current\u003d1, maximum\u003d2, the vcpu.1.x will not evaluated.","commit_id":"822e72c0698b53a5f8d027cf9afec502221df67e"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"a7221695d3a3f395277c59a6e5eef80b96127ba8","unresolved":false,"context_lines":[{"line_number":174,"context_line":"        # we could use that instead of the old method for Queen"},{"line_number":175,"context_line":"        stats \u003d self.connection.domainListGetStats([domain], 0)[0][1]"},{"line_number":176,"context_line":"        cpu_time \u003d 0"},{"line_number":177,"context_line":"        for vcpu in range(0, stats.get(\u0027vcpu.maximum\u0027)):"},{"line_number":178,"context_line":"            vcpu_time \u003d stats.get(\u0027vcpu.%s.time\u0027 % vcpu)"},{"line_number":179,"context_line":"            vcpu_wait \u003d stats.get(\u0027vcpu.%s.wait\u0027 % vcpu)"},{"line_number":180,"context_line":"            #vcpu.x can be sparse, so handle None values"}],"source_content_type":"text/x-python","patch_set":3,"id":"ffe62b97_b8365850","line":177,"range":{"start_line":177,"start_character":20,"end_line":177,"end_character":25},"in_reply_to":"ffe62b97_b5d2e1cf","updated":"2017-03-29 13:41:15.000000000","message":"oh really? i didn\u0027t know that was possible. i thought if vcpu.x matched whatever current was... wasn\u0027t aware it was possible do what you\u0027re suggesting. can you add a note that link to docs you are referring to:\n\njust put:\n\n# NOTE: use maximum here because \u003clink\u003e","commit_id":"822e72c0698b53a5f8d027cf9afec502221df67e"},{"author":{"_account_id":18940,"name":"Gyorgy Szombathelyi","email":"gyurco@freemail.hu","username":"gyurco78"},"change_message_id":"3de16e750f7de3f54157f5e767425c0cc0bcd8f5","unresolved":false,"context_lines":[{"line_number":174,"context_line":"        # we could use that instead of the old method for Queen"},{"line_number":175,"context_line":"        stats \u003d self.connection.domainListGetStats([domain], 0)[0][1]"},{"line_number":176,"context_line":"        cpu_time \u003d 0"},{"line_number":177,"context_line":"        for vcpu in range(0, stats.get(\u0027vcpu.maximum\u0027)):"},{"line_number":178,"context_line":"            vcpu_time \u003d stats.get(\u0027vcpu.%s.time\u0027 % vcpu)"},{"line_number":179,"context_line":"            vcpu_wait \u003d stats.get(\u0027vcpu.%s.wait\u0027 % vcpu)"},{"line_number":180,"context_line":"            #vcpu.x can be sparse, so handle None values"}],"source_content_type":"text/x-python","patch_set":3,"id":"ffe62b97_d3a33dff","line":177,"range":{"start_line":177,"start_character":20,"end_line":177,"end_character":25},"in_reply_to":"ffe62b97_b8365850","updated":"2017-03-29 13:50:54.000000000","message":"I don\u0027t know how to do it with Nova, but libvirt says that here:\nhttps://libvirt.org/git/?p\u003dlibvirt.git;a\u003dblob;f\u003dsrc/libvirt-domain.c;h\u003d26da0e7f32dcbd9a2c73d00e1dc0d4336a20b319;hb\u003de9f9690958b7fc86c4002c16cd2bdccba0dd07d1#l11138\n\nDon\u0027t know about a rendered version of the doc.","commit_id":"822e72c0698b53a5f8d027cf9afec502221df67e"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"2a4f2049a6a01d82615c5dc0ca81b75ed36dad0c","unresolved":false,"context_lines":[{"line_number":174,"context_line":"        # we could use that instead of the old method for Queen"},{"line_number":175,"context_line":"        stats \u003d self.connection.domainListGetStats([domain], 0)[0][1]"},{"line_number":176,"context_line":"        cpu_time \u003d 0"},{"line_number":177,"context_line":"        for vcpu in range(0, stats.get(\u0027vcpu.maximum\u0027)):"},{"line_number":178,"context_line":"            vcpu_time \u003d stats.get(\u0027vcpu.%s.time\u0027 % vcpu)"},{"line_number":179,"context_line":"            vcpu_wait \u003d stats.get(\u0027vcpu.%s.wait\u0027 % vcpu)"},{"line_number":180,"context_line":"            #vcpu.x can be sparse, so handle None values"}],"source_content_type":"text/x-python","patch_set":3,"id":"ffe62b97_33bf09ab","line":177,"range":{"start_line":177,"start_character":20,"end_line":177,"end_character":25},"in_reply_to":"ffe62b97_d3a33dff","updated":"2017-03-29 13:57:25.000000000","message":"maybe just paste use \n\n https://libvirt.org/git/?p\u003dlibvirt.git;a\u003dblob;f\u003dsrc/libvirt-domain.c","commit_id":"822e72c0698b53a5f8d027cf9afec502221df67e"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"1d2c573e73ff18e8589bd87a2db27fc6341a93f5","unresolved":false,"context_lines":[{"line_number":175,"context_line":"        stats \u003d self.connection.domainListGetStats([domain], 0)[0][1]"},{"line_number":176,"context_line":"        cpu_time \u003d 0"},{"line_number":177,"context_line":"        for vcpu in range(0, stats.get(\u0027vcpu.maximum\u0027)):"},{"line_number":178,"context_line":"            vcpu_time \u003d stats.get(\u0027vcpu.%s.time\u0027 % vcpu)"},{"line_number":179,"context_line":"            vcpu_wait \u003d stats.get(\u0027vcpu.%s.wait\u0027 % vcpu)"},{"line_number":180,"context_line":"            #vcpu.x can be sparse, so handle None values"},{"line_number":181,"context_line":"            if vcpu_time: cpu_time +\u003d vcpu_time"}],"source_content_type":"text/x-python","patch_set":3,"id":"ffe62b97_f504e916","line":178,"updated":"2017-03-29 13:15:28.000000000","message":"you don\u0027t really need to save it as variable\n\ncpu_time +\u003d (stats.get(\u0027vcpu.%s.time\u0027 % vcpu, 0) + \n             stats.get(\u0027vcpu.%s.wait\u0027 % vcpu, 0))","commit_id":"822e72c0698b53a5f8d027cf9afec502221df67e"},{"author":{"_account_id":18940,"name":"Gyorgy Szombathelyi","email":"gyurco@freemail.hu","username":"gyurco78"},"change_message_id":"874d88547e1b586795e05be5d899bd037c3aee7e","unresolved":false,"context_lines":[{"line_number":175,"context_line":"        stats \u003d self.connection.domainListGetStats([domain], 0)[0][1]"},{"line_number":176,"context_line":"        cpu_time \u003d 0"},{"line_number":177,"context_line":"        for vcpu in range(0, stats.get(\u0027vcpu.maximum\u0027)):"},{"line_number":178,"context_line":"            vcpu_time \u003d stats.get(\u0027vcpu.%s.time\u0027 % vcpu)"},{"line_number":179,"context_line":"            vcpu_wait \u003d stats.get(\u0027vcpu.%s.wait\u0027 % vcpu)"},{"line_number":180,"context_line":"            #vcpu.x can be sparse, so handle None values"},{"line_number":181,"context_line":"            if vcpu_time: cpu_time +\u003d vcpu_time"}],"source_content_type":"text/x-python","patch_set":3,"id":"ffe62b97_15662d2b","line":178,"in_reply_to":"ffe62b97_f504e916","updated":"2017-03-29 13:32:01.000000000","message":"Yepp, much nicer.","commit_id":"822e72c0698b53a5f8d027cf9afec502221df67e"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"b8885276bb892ded6375e23769a36f8fef85cdee","unresolved":false,"context_lines":[{"line_number":190,"context_line":"                #not match, so don\u0027t need special error handling."},{"line_number":191,"context_line":"                pass"},{"line_number":192,"context_line":""},{"line_number":193,"context_line":"        if current_cpus:"},{"line_number":194,"context_line":"            #There wasn\u0027t enough data, so fall back"},{"line_number":195,"context_line":"            cpu_time\u003dstats.get(\u0027cpu.time\u0027)"},{"line_number":196,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"ffe62b97_44764140","line":193,"updated":"2017-03-29 14:52:13.000000000","message":"i don\u0027t understand this. if vcpu.current and vcpu.maximum are the same, it will just discard all computation from above and use cpu.time? this seems wrong.","commit_id":"c4b14b50727b3ee991d0e68470c13c49b3029711"},{"author":{"_account_id":18940,"name":"Gyorgy Szombathelyi","email":"gyurco@freemail.hu","username":"gyurco78"},"change_message_id":"f44c8998c54cdedbbcf217c4c6326376aad941b5","unresolved":false,"context_lines":[{"line_number":190,"context_line":"                #not match, so don\u0027t need special error handling."},{"line_number":191,"context_line":"                pass"},{"line_number":192,"context_line":""},{"line_number":193,"context_line":"        if current_cpus:"},{"line_number":194,"context_line":"            #There wasn\u0027t enough data, so fall back"},{"line_number":195,"context_line":"            cpu_time\u003dstats.get(\u0027cpu.time\u0027)"},{"line_number":196,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"ffe62b97_4615263f","line":193,"in_reply_to":"ffe62b97_44764140","updated":"2017-03-29 15:03:36.000000000","message":"current_cpus starts from vcpu.current and decremented every time a valid time and wait values are found (if any wait or time is missing, an exception thrown, and the decrementation is skipped). And if it is not zero at the end, then there\u0027s not enough values read (your suggestions was to need all vcpu.x.wait values valid), and fall back.","commit_id":"c4b14b50727b3ee991d0e68470c13c49b3029711"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"a67f39201546d28fd445f72da194e60978a5f1c7","unresolved":false,"context_lines":[{"line_number":190,"context_line":"                #not match, so don\u0027t need special error handling."},{"line_number":191,"context_line":"                pass"},{"line_number":192,"context_line":""},{"line_number":193,"context_line":"        if current_cpus:"},{"line_number":194,"context_line":"            #There wasn\u0027t enough data, so fall back"},{"line_number":195,"context_line":"            cpu_time\u003dstats.get(\u0027cpu.time\u0027)"},{"line_number":196,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"ffe62b97_efc2cd52","line":193,"in_reply_to":"ffe62b97_4615263f","updated":"2017-03-29 16:13:05.000000000","message":"oh. i was reading this as not current_cpus...","commit_id":"c4b14b50727b3ee991d0e68470c13c49b3029711"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"a67f39201546d28fd445f72da194e60978a5f1c7","unresolved":false,"context_lines":[{"line_number":192,"context_line":""},{"line_number":193,"context_line":"        if current_cpus:"},{"line_number":194,"context_line":"            #There wasn\u0027t enough data, so fall back"},{"line_number":195,"context_line":"            cpu_time\u003dstats.get(\u0027cpu.time\u0027)"},{"line_number":196,"context_line":""},{"line_number":197,"context_line":"        return virt_inspector.InstanceStats("},{"line_number":198,"context_line":"            cpu_number\u003dstats.get(\u0027vcpu.current\u0027),"}],"source_content_type":"text/x-python","patch_set":4,"id":"ffe62b97_af8f2528","line":195,"updated":"2017-03-29 16:13:05.000000000","message":"cpu_time \u003d stats.get(\u0027cpu.time\u0027)","commit_id":"c4b14b50727b3ee991d0e68470c13c49b3029711"}]}
