)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"317672bc92536951fddb40e51e24b6a94893db18","unresolved":false,"context_lines":[{"line_number":10,"context_line":"Instead, use the hypervisor-supplied-nics feature to generate MAC"},{"line_number":11,"context_line":"addresses we can ensure are provisioned correctly."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"blueprint powervm-compute-enhancements"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Change-Id: Idad7f03d9fd61970912ec1a6978fc0af56309df4"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"AAAAM3%2F%2FU0g%3D","line":13,"updated":"2013-01-28 22:24:12.000000000","message":"Does it matter if this bp is outdated and technically implemented? Do we need to create a new bp for this? \nhttps://blueprints.launchpad.net/nova/+spec/powervm-compute-enhancements","commit_id":"26d9268cf214490955adb76c3ac72ceb307fb835"}],"nova/virt/powervm/operator.py":[{"author":{"_account_id":4601,"name":"Tiago Mello","email":"tmello@linux.vnet.ibm.com","username":"tmello"},"change_message_id":"cd3582388241a1c3b871d186de16a612d5394a15","unresolved":false,"context_lines":[{"line_number":604,"context_line":""},{"line_number":605,"context_line":"    def macs_for_instance(self, instance):"},{"line_number":606,"context_line":"        \"\"\"Generates set of valid MAC addresses for an IVM instance.\"\"\""},{"line_number":607,"context_line":"        # NOTE(vish): We would prefer to use 0xfe here to ensure that linux"},{"line_number":608,"context_line":"        #             bridge mac addresses don\u0027t change, but it appears to"},{"line_number":609,"context_line":"        #             conflict with libvirt, so we use the next highest octet"},{"line_number":610,"context_line":"        #             that has the unicast and locally administered bits set"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAM3%2F%2FaNA%3D","line":607,"updated":"2013-01-23 17:19:28.000000000","message":"Is this note really from vish?","commit_id":"15373919cc78f12a84538065b8477032201c36df"},{"author":{"_account_id":1803,"name":"Michael J Fork","email":"mjfork@us.ibm.com","username":"mjfork"},"change_message_id":"9ba8c591667b9a742deaf3a1cb4a20a8fb8fa87f","unresolved":false,"context_lines":[{"line_number":604,"context_line":""},{"line_number":605,"context_line":"    def macs_for_instance(self, instance):"},{"line_number":606,"context_line":"        \"\"\"Generates set of valid MAC addresses for an IVM instance.\"\"\""},{"line_number":607,"context_line":"        # NOTE(vish): We would prefer to use 0xfe here to ensure that linux"},{"line_number":608,"context_line":"        #             bridge mac addresses don\u0027t change, but it appears to"},{"line_number":609,"context_line":"        #             conflict with libvirt, so we use the next highest octet"},{"line_number":610,"context_line":"        #             that has the unicast and locally administered bits set"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAM3%2F%2FYYs%3D","line":607,"in_reply_to":"AAAAM3%2F%2FaNA%3D","updated":"2013-01-24 18:34:40.000000000","message":"Yes, it was copied from the original generation function in utils.","commit_id":"15373919cc78f12a84538065b8477032201c36df"},{"author":{"_account_id":4601,"name":"Tiago Mello","email":"tmello@linux.vnet.ibm.com","username":"tmello"},"change_message_id":"cd3582388241a1c3b871d186de16a612d5394a15","unresolved":false,"context_lines":[{"line_number":611,"context_line":"        #             properly: 0xfa."},{"line_number":612,"context_line":"        #             Discussion: https://bugs.launchpad.net/nova/+bug/921838"},{"line_number":613,"context_line":"        # NOTE(mjfork): For IVM-based PowerVM, we cannot directly set a MAC"},{"line_number":614,"context_line":"        #               address on an LPAR, but rather meed to construct one"},{"line_number":615,"context_line":"        #               that can be used.  Retain the 0xfe as noted above,"},{"line_number":616,"context_line":"        #               but ensure the final 3 hex values represent a value"},{"line_number":617,"context_line":"        #               between 32 and 64 so we can assign as the slot id on"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAM3%2F%2FaM8%3D","line":614,"updated":"2013-01-23 17:19:28.000000000","message":"Nit: s/meed/need ?","commit_id":"15373919cc78f12a84538065b8477032201c36df"},{"author":{"_account_id":1803,"name":"Michael J Fork","email":"mjfork@us.ibm.com","username":"mjfork"},"change_message_id":"fb6a920d2f2037d0161980b9b8ed62dcfaac198d","unresolved":false,"context_lines":[{"line_number":611,"context_line":"        #             properly: 0xfa."},{"line_number":612,"context_line":"        #             Discussion: https://bugs.launchpad.net/nova/+bug/921838"},{"line_number":613,"context_line":"        # NOTE(mjfork): For IVM-based PowerVM, we cannot directly set a MAC"},{"line_number":614,"context_line":"        #               address on an LPAR, but rather meed to construct one"},{"line_number":615,"context_line":"        #               that can be used.  Retain the 0xfe as noted above,"},{"line_number":616,"context_line":"        #               but ensure the final 3 hex values represent a value"},{"line_number":617,"context_line":"        #               between 32 and 64 so we can assign as the slot id on"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAM3%2F%2FYZI%3D","line":614,"in_reply_to":"AAAAM3%2F%2FaM8%3D","updated":"2013-01-24 18:34:00.000000000","message":"Done","commit_id":"15373919cc78f12a84538065b8477032201c36df"},{"author":{"_account_id":5371,"name":"Mathew Odden","email":"locke105@gmail.com","username":"locke105"},"change_message_id":"feb51b93d58ff807ce2d35d70adce1e6902ddd89","unresolved":false,"context_lines":[{"line_number":229,"context_line":"                self._operator.create_lpar(lpar_inst)"},{"line_number":230,"context_line":"            #TODO(mjfork) capture the error when the MAC prefix already"},{"line_number":231,"context_line":"            #             exists on an LPAR and throw an exception that"},{"line_number":232,"context_line":"            #             will cause a scheduler retry"},{"line_number":233,"context_line":"            except nova_exception.ProcessExecutionError:"},{"line_number":234,"context_line":"                LOG.exception(_(\"LPAR instance \u0027%s\u0027 creation failed\") %"},{"line_number":235,"context_line":"                            instance[\u0027name\u0027])"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAM3%2F%2FTIM%3D","line":232,"updated":"2013-01-29 20:18:31.000000000","message":"I really think we should try to avoid a scheduler retry at all costs. This increases deployment times and there is no insurance that it will eventually succeed on a different host.","commit_id":"308c7f0184f46b452232111691a9baefaeee4f3d"},{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"99be49b0af3766976fc8bf67a741803512c2e4f5","unresolved":false,"context_lines":[{"line_number":207,"context_line":"                eth_id \u003d self._operator.get_virtual_eth_adapter_id()"},{"line_number":208,"context_line":"                slot_id \u003d int(mac[-2:], 16)"},{"line_number":209,"context_line":"                virtual_eth_adapters \u003d \u0027%(slot_id)s/0/%(eth_id)s//0/0\u0027 % \\"},{"line_number":210,"context_line":"                                       {\u0027slot_id\u0027: slot_id, \u0027eth_id\u0027: eth_id}"},{"line_number":211,"context_line":""},{"line_number":212,"context_line":"                # LPAR configuration data"},{"line_number":213,"context_line":"                # max_virtual_slots is hardcoded to 64 since we generate a MAC"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAM3%2F%2FHXI%3D","line":210,"updated":"2013-02-06 18:54:55.000000000","message":"femtonit: I would prefer that we enclose expressions in parentheses to avoid the need to use backslash.  That would change this code to:\n\n    virtual_eth_adapters \u003d (\u0027%(slot_id)s/0/%(eth_id)s//0/0\u0027 %\n                            {\u0027slot_id\u0027: slot_id, \u0027eth_id\u0027: eth_id})\n\nYou may also consider using \u0027% locals()\u0027, since slot_id and eth_id are defined in the local scope.","commit_id":"4de8ecb8b66a47087d201488c8564c4f273e315c"},{"author":{"_account_id":1803,"name":"Michael J Fork","email":"mjfork@us.ibm.com","username":"mjfork"},"change_message_id":"f11344a93a96f67a0f10975ad91ea6cc0dfec571","unresolved":false,"context_lines":[{"line_number":207,"context_line":"                eth_id \u003d self._operator.get_virtual_eth_adapter_id()"},{"line_number":208,"context_line":"                slot_id \u003d int(mac[-2:], 16)"},{"line_number":209,"context_line":"                virtual_eth_adapters \u003d \u0027%(slot_id)s/0/%(eth_id)s//0/0\u0027 % \\"},{"line_number":210,"context_line":"                                       {\u0027slot_id\u0027: slot_id, \u0027eth_id\u0027: eth_id}"},{"line_number":211,"context_line":""},{"line_number":212,"context_line":"                # LPAR configuration data"},{"line_number":213,"context_line":"                # max_virtual_slots is hardcoded to 64 since we generate a MAC"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAM3%2F%2FHRU%3D","line":210,"in_reply_to":"AAAAM3%2F%2FHXI%3D","updated":"2013-02-06 19:36:12.000000000","message":"Done","commit_id":"4de8ecb8b66a47087d201488c8564c4f273e315c"},{"author":{"_account_id":5371,"name":"Mathew Odden","email":"locke105@gmail.com","username":"locke105"},"change_message_id":"32adb95bed4fed3d53a70c2bb17355a94c5c98ae","unresolved":false,"context_lines":[{"line_number":203,"context_line":"            try:"},{"line_number":204,"context_line":"                # Network"},{"line_number":205,"context_line":"                mac \u003d network_info[0][\u0027address\u0027]"},{"line_number":206,"context_line":"                mac_base_value \u003d (mac[:-2]).replace(\u0027:\u0027, \u0027\u0027)"},{"line_number":207,"context_line":"                eth_id \u003d self._operator.get_virtual_eth_adapter_id()"},{"line_number":208,"context_line":"                slot_id \u003d int(mac[-2:], 16)"},{"line_number":209,"context_line":"                virtual_eth_adapters \u003d (\u0027%(slot_id)s/0/%(eth_id)s//0/0\u0027 %"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAM3%2F%2FG8U%3D","line":206,"updated":"2013-02-06 22:31:19.000000000","message":"same as below... maybe something like\n\n# use everything up to the last byte for the base MAC value","commit_id":"1f94cd047cdcc2e4488a46e8bc9d1ac1d5b67187"},{"author":{"_account_id":1803,"name":"Michael J Fork","email":"mjfork@us.ibm.com","username":"mjfork"},"change_message_id":"e6bf94b01c9984d83b1f29c863244e22b231cfa6","unresolved":false,"context_lines":[{"line_number":203,"context_line":"            try:"},{"line_number":204,"context_line":"                # Network"},{"line_number":205,"context_line":"                mac \u003d network_info[0][\u0027address\u0027]"},{"line_number":206,"context_line":"                mac_base_value \u003d (mac[:-2]).replace(\u0027:\u0027, \u0027\u0027)"},{"line_number":207,"context_line":"                eth_id \u003d self._operator.get_virtual_eth_adapter_id()"},{"line_number":208,"context_line":"                slot_id \u003d int(mac[-2:], 16)"},{"line_number":209,"context_line":"                virtual_eth_adapters \u003d (\u0027%(slot_id)s/0/%(eth_id)s//0/0\u0027 %"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAM3%2F%2FG1Y%3D","line":206,"in_reply_to":"AAAAM3%2F%2FG8U%3D","updated":"2013-02-06 23:20:08.000000000","message":"Done","commit_id":"1f94cd047cdcc2e4488a46e8bc9d1ac1d5b67187"},{"author":{"_account_id":5371,"name":"Mathew Odden","email":"locke105@gmail.com","username":"locke105"},"change_message_id":"32adb95bed4fed3d53a70c2bb17355a94c5c98ae","unresolved":false,"context_lines":[{"line_number":205,"context_line":"                mac \u003d network_info[0][\u0027address\u0027]"},{"line_number":206,"context_line":"                mac_base_value \u003d (mac[:-2]).replace(\u0027:\u0027, \u0027\u0027)"},{"line_number":207,"context_line":"                eth_id \u003d self._operator.get_virtual_eth_adapter_id()"},{"line_number":208,"context_line":"                slot_id \u003d int(mac[-2:], 16)"},{"line_number":209,"context_line":"                virtual_eth_adapters \u003d (\u0027%(slot_id)s/0/%(eth_id)s//0/0\u0027 %"},{"line_number":210,"context_line":"                                        locals())"},{"line_number":211,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAM3%2F%2FG8g%3D","line":208,"updated":"2013-02-06 22:31:19.000000000","message":"Might be useful to add some comments here on what exactly all this mac address slicing and dicing is for.\n\ni.e. # grab last byte as an integer for use as the vNIC slot_id","commit_id":"1f94cd047cdcc2e4488a46e8bc9d1ac1d5b67187"},{"author":{"_account_id":1803,"name":"Michael J Fork","email":"mjfork@us.ibm.com","username":"mjfork"},"change_message_id":"e6bf94b01c9984d83b1f29c863244e22b231cfa6","unresolved":false,"context_lines":[{"line_number":205,"context_line":"                mac \u003d network_info[0][\u0027address\u0027]"},{"line_number":206,"context_line":"                mac_base_value \u003d (mac[:-2]).replace(\u0027:\u0027, \u0027\u0027)"},{"line_number":207,"context_line":"                eth_id \u003d self._operator.get_virtual_eth_adapter_id()"},{"line_number":208,"context_line":"                slot_id \u003d int(mac[-2:], 16)"},{"line_number":209,"context_line":"                virtual_eth_adapters \u003d (\u0027%(slot_id)s/0/%(eth_id)s//0/0\u0027 %"},{"line_number":210,"context_line":"                                        locals())"},{"line_number":211,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAM3%2F%2FG1U%3D","line":208,"in_reply_to":"AAAAM3%2F%2FG8g%3D","updated":"2013-02-06 23:20:08.000000000","message":"Done","commit_id":"1f94cd047cdcc2e4488a46e8bc9d1ac1d5b67187"},{"author":{"_account_id":5371,"name":"Mathew Odden","email":"locke105@gmail.com","username":"locke105"},"change_message_id":"32adb95bed4fed3d53a70c2bb17355a94c5c98ae","unresolved":false,"context_lines":[{"line_number":620,"context_line":""},{"line_number":621,"context_line":"        macs \u003d set()"},{"line_number":622,"context_line":"        mac_base \u003d [0xfa,"},{"line_number":623,"context_line":"               random.randint(0x00, 0xff),"},{"line_number":624,"context_line":"               random.randint(0x00, 0xff),"},{"line_number":625,"context_line":"               random.randint(0x00, 0xff),"},{"line_number":626,"context_line":"               random.randint(0x00, 0xff) \u0026 0xf0,"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAM3%2F%2FG8A%3D","line":623,"updated":"2013-02-06 22:31:19.000000000","message":"do we have to worry about the first three bytes being different than the management system (AKA VIOS) ?","commit_id":"1f94cd047cdcc2e4488a46e8bc9d1ac1d5b67187"},{"author":{"_account_id":1803,"name":"Michael J Fork","email":"mjfork@us.ibm.com","username":"mjfork"},"change_message_id":"e6bf94b01c9984d83b1f29c863244e22b231cfa6","unresolved":false,"context_lines":[{"line_number":620,"context_line":""},{"line_number":621,"context_line":"        macs \u003d set()"},{"line_number":622,"context_line":"        mac_base \u003d [0xfa,"},{"line_number":623,"context_line":"               random.randint(0x00, 0xff),"},{"line_number":624,"context_line":"               random.randint(0x00, 0xff),"},{"line_number":625,"context_line":"               random.randint(0x00, 0xff),"},{"line_number":626,"context_line":"               random.randint(0x00, 0xff) \u0026 0xf0,"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAM3%2F%2FG28%3D","line":623,"in_reply_to":"AAAAM3%2F%2FG8A%3D","updated":"2013-02-06 23:20:08.000000000","message":"No, we are specifying the whole mac address prefix, this does not apply.","commit_id":"1f94cd047cdcc2e4488a46e8bc9d1ac1d5b67187"}]}
