)]}'
{"openstack_dashboard/dashboards/project/volumes/tables.py":[{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"e3e37a062a9164ff52484c656d95410cb99cec06","unresolved":false,"context_lines":[{"line_number":636,"context_line":"                           verbose_name\u003d_(\"Device\"))"},{"line_number":637,"context_line":""},{"line_number":638,"context_line":"    def get_object_id(self, datum):"},{"line_number":639,"context_line":"        return datum.get(\u0027attachment_id\u0027)"},{"line_number":640,"context_line":""},{"line_number":641,"context_line":"    def get_object_display(self, attachment):"},{"line_number":642,"context_line":"        instance_name \u003d get_attachment_name(self.request, attachment)"}],"source_content_type":"text/x-python","patch_set":5,"id":"7faddb67_b413e558","line":639,"updated":"2019-09-04 15:18:34.000000000","message":"datam[\u0027attachment_id\u0027] doesn\u0027t work?","commit_id":"d52ec327155d211dc283f2aa5dace18b708c72db"},{"author":{"_account_id":29313,"name":"Vishal Manchanda","email":"manchandavishal143@gmail.com","username":"vishalmanchanda"},"change_message_id":"7626ed346b115ad5653181bbb68c452342c3f638","unresolved":false,"context_lines":[{"line_number":636,"context_line":"                           verbose_name\u003d_(\"Device\"))"},{"line_number":637,"context_line":""},{"line_number":638,"context_line":"    def get_object_id(self, datum):"},{"line_number":639,"context_line":"        return datum.get(\u0027attachment_id\u0027)"},{"line_number":640,"context_line":""},{"line_number":641,"context_line":"    def get_object_display(self, attachment):"},{"line_number":642,"context_line":"        instance_name \u003d get_attachment_name(self.request, attachment)"}],"source_content_type":"text/x-python","patch_set":5,"id":"5faad753_5f305308","line":639,"in_reply_to":"7faddb67_b413e558","updated":"2019-09-06 06:21:52.000000000","message":"Done.","commit_id":"d52ec327155d211dc283f2aa5dace18b708c72db"},{"author":{"_account_id":29313,"name":"Vishal Manchanda","email":"manchandavishal143@gmail.com","username":"vishalmanchanda"},"change_message_id":"854c15a890986cabe58501508bd779d4a023622a","unresolved":false,"context_lines":[{"line_number":636,"context_line":"                           verbose_name\u003d_(\"Device\"))"},{"line_number":637,"context_line":""},{"line_number":638,"context_line":"    def get_object_id(self, datum):"},{"line_number":639,"context_line":"        return datum.get(\u0027attachment_id\u0027)"},{"line_number":640,"context_line":""},{"line_number":641,"context_line":"    def get_object_display(self, attachment):"},{"line_number":642,"context_line":"        instance_name \u003d get_attachment_name(self.request, attachment)"}],"source_content_type":"text/x-python","patch_set":5,"id":"7faddb67_b46e8561","line":639,"in_reply_to":"7faddb67_b413e558","updated":"2019-09-04 15:32:52.000000000","message":"it\u0027s working fine in my environment and getting the desired\noutput in \u0027Manage Volume Attachment Table\u0027.","commit_id":"d52ec327155d211dc283f2aa5dace18b708c72db"},{"author":{"_account_id":29313,"name":"Vishal Manchanda","email":"manchandavishal143@gmail.com","username":"vishalmanchanda"},"change_message_id":"8c1959fb847a414c23c553bc8afd82155a128ccc","unresolved":false,"context_lines":[{"line_number":636,"context_line":"                           verbose_name\u003d_(\"Device\"))"},{"line_number":637,"context_line":""},{"line_number":638,"context_line":"    def get_object_id(self, datum):"},{"line_number":639,"context_line":"        return datum.get(\u0027attachment_id\u0027)"},{"line_number":640,"context_line":""},{"line_number":641,"context_line":"    def get_object_display(self, attachment):"},{"line_number":642,"context_line":"        instance_name \u003d get_attachment_name(self.request, attachment)"}],"source_content_type":"text/x-python","patch_set":5,"id":"7faddb67_e7075f16","line":639,"in_reply_to":"7faddb67_b413e558","updated":"2019-09-05 05:52:14.000000000","message":"yeah it also works. Should I change?\nI have just added this there may be scenarios when \u0027attachment-id\u0027 doesn\u0027t exist but I am not sure.\nThoughts?","commit_id":"d52ec327155d211dc283f2aa5dace18b708c72db"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"c921bc4a0927f370f1b38dd9ba1b6df5c46852b2","unresolved":false,"context_lines":[{"line_number":636,"context_line":"                           verbose_name\u003d_(\"Device\"))"},{"line_number":637,"context_line":""},{"line_number":638,"context_line":"    def get_object_id(self, datum):"},{"line_number":639,"context_line":"        return datum.get(\u0027attachment_id\u0027)"},{"line_number":640,"context_line":""},{"line_number":641,"context_line":"    def get_object_display(self, attachment):"},{"line_number":642,"context_line":"        instance_name \u003d get_attachment_name(self.request, attachment)"}],"source_content_type":"text/x-python","patch_set":5,"id":"7faddb67_b758aef8","line":639,"in_reply_to":"7faddb67_c59498ea","updated":"2019-09-05 14:58:35.000000000","message":"Ideally, you need to check the API behavior of Cinder. If you are not sure, it is better to ask the cinder team.\n\nAt least, I can say that using .get() is meaningless because if there is a case where attachment_id does not exist, it returns None and the bug this patch tries to fix happens again.","commit_id":"d52ec327155d211dc283f2aa5dace18b708c72db"},{"author":{"_account_id":29313,"name":"Vishal Manchanda","email":"manchandavishal143@gmail.com","username":"vishalmanchanda"},"change_message_id":"57e39a5999349153a4e892a44785b6008c398d3f","unresolved":false,"context_lines":[{"line_number":636,"context_line":"                           verbose_name\u003d_(\"Device\"))"},{"line_number":637,"context_line":""},{"line_number":638,"context_line":"    def get_object_id(self, datum):"},{"line_number":639,"context_line":"        return datum.get(\u0027attachment_id\u0027)"},{"line_number":640,"context_line":""},{"line_number":641,"context_line":"    def get_object_display(self, attachment):"},{"line_number":642,"context_line":"        instance_name \u003d get_attachment_name(self.request, attachment)"}],"source_content_type":"text/x-python","patch_set":5,"id":"7faddb67_c59498ea","line":639,"in_reply_to":"7faddb67_e7075f16","updated":"2019-09-05 11:36:31.000000000","message":"???","commit_id":"d52ec327155d211dc283f2aa5dace18b708c72db"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"b79efdd5c0478599effe3b4133b6cbc7ad407ed1","unresolved":false,"context_lines":[{"line_number":614,"context_line":"        )"},{"line_number":615,"context_line":""},{"line_number":616,"context_line":"    def action(self, request, obj_id):"},{"line_number":617,"context_line":"        attachment \u003d self.table.get_object_by_id(obj_id)"},{"line_number":618,"context_line":"        api.nova.instance_volume_detach(request,"},{"line_number":619,"context_line":"                                        attachment.get(\u0027server_id\u0027, None),"},{"line_number":620,"context_line":"                                        obj_id)"}],"source_content_type":"text/x-python","patch_set":6,"id":"5faad753_24b1c7e2","line":617,"range":{"start_line":617,"start_character":49,"end_line":617,"end_character":55},"updated":"2019-09-06 09:40:52.000000000","message":"This is now \"attachment_id\" by the change at L.638.\n\nI see two possible approaches:\n\n- (1) Use attachment-show API (since Volume API 3.27 or later) to retrieve attachment information\n- (2) Change get_object_id to use \u003cvolume-id\u003e-\u003cserver-id\u003e and adjust this method accordingly.\n\n(1) should work fine but a micro-version handling is required.\n\n(2) also work as we cannot attach some volume to some server multiple times, so \u003cvolume-id\u003e-\u003cserver-id\u003e would be unique.","commit_id":"6b8ee4311c001934d9e23296698bac4f496185e9"}],"openstack_dashboard/dashboards/project/volumes/views.py":[{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"a70eada8295807125db0cfb52772b8e53733b552","unresolved":false,"context_lines":[{"line_number":552,"context_line":"                # Object ids within a Horizon table must be unique. Otherwise,"},{"line_number":553,"context_line":"                # Horizon will cache the column values for the object by id and"},{"line_number":554,"context_line":"                # use the same column values for all rows with the same id"},{"line_number":555,"context_line":"                att[\u0027id\u0027] \u003d (\u0027%s-%s\u0027) % (att.get(\u0027instance_name\u0027),"},{"line_number":556,"context_line":"                                         getattr(volume, \u0027id\u0027))"},{"line_number":557,"context_line":"                att[\u0027volume_name\u0027] \u003d getattr(volume, \u0027name\u0027, att[\u0027device\u0027])"},{"line_number":558,"context_line":"                attachments.append(att)"}],"source_content_type":"text/x-python","patch_set":2,"id":"7faddb67_7bfad943","line":555,"range":{"start_line":555,"start_character":41,"end_line":555,"end_character":66},"updated":"2019-08-26 06:49:37.000000000","message":"Why don\u0027t you use instance ID? instance name is not unique, so (volume ID + server name) is not unique.","commit_id":"aaf50e8d1822dc8cb4564fd808d6c3d2ec679e41"},{"author":{"_account_id":29313,"name":"Vishal Manchanda","email":"manchandavishal143@gmail.com","username":"vishalmanchanda"},"change_message_id":"f27dbbacdd94b0214b36444b75736db59ea758d5","unresolved":false,"context_lines":[{"line_number":552,"context_line":"                # Object ids within a Horizon table must be unique. Otherwise,"},{"line_number":553,"context_line":"                # Horizon will cache the column values for the object by id and"},{"line_number":554,"context_line":"                # use the same column values for all rows with the same id"},{"line_number":555,"context_line":"                att[\u0027id\u0027] \u003d (\u0027%s-%s\u0027) % (att.get(\u0027instance_name\u0027),"},{"line_number":556,"context_line":"                                         getattr(volume, \u0027id\u0027))"},{"line_number":557,"context_line":"                att[\u0027volume_name\u0027] \u003d getattr(volume, \u0027name\u0027, att[\u0027device\u0027])"},{"line_number":558,"context_line":"                attachments.append(att)"}],"source_content_type":"text/x-python","patch_set":2,"id":"7faddb67_fb69e9f7","line":555,"range":{"start_line":555,"start_character":41,"end_line":555,"end_character":66},"in_reply_to":"7faddb67_7bfad943","updated":"2019-08-26 06:55:53.000000000","message":"ok. I will use instance Id in next PS.\nThanks","commit_id":"aaf50e8d1822dc8cb4564fd808d6c3d2ec679e41"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"c26cb33641bfe981102097951a75e8505d3d5dc1","unresolved":false,"context_lines":[{"line_number":553,"context_line":"                # Horizon will cache the column values for the object by id and"},{"line_number":554,"context_line":"                # use the same column values for all rows with the same id"},{"line_number":555,"context_line":"                att[\u0027id\u0027] \u003d (\u0027%s-%s\u0027) % (att.get(\u0027server_id\u0027),"},{"line_number":556,"context_line":"                                         getattr(volume, \u0027id\u0027))"},{"line_number":557,"context_line":"                att[\u0027volume_name\u0027] \u003d getattr(volume, \u0027name\u0027, att[\u0027device\u0027])"},{"line_number":558,"context_line":"                attachments.append(att)"},{"line_number":559,"context_line":"        return attachments"}],"source_content_type":"text/x-python","patch_set":3,"id":"7faddb67_12aa1483","line":556,"updated":"2019-09-04 08:57:47.000000000","message":"question: volume.attachments has an unique UUID per attachment [1], and this is what I see [2]. Can\u0027t we use it?\n\n[1] https://docs.openstack.org/api-ref/block-storage/v3/index.html?expanded\u003dshow-a-volume-s-details-detail#id101","commit_id":"269a490c270c451386b529cd886e474935fd4465"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"aed76e402cf7b601996f77e70c78a0c551ab10e8","unresolved":false,"context_lines":[{"line_number":552,"context_line":"                # Object ids within a Horizon table must be unique. Otherwise,"},{"line_number":553,"context_line":"                # Horizon will cache the column values for the object by id and"},{"line_number":554,"context_line":"                # use the same column values for all rows with the same id"},{"line_number":555,"context_line":"                att[\u0027id\u0027] \u003d att.get(\u0027attachment_id\u0027)"},{"line_number":556,"context_line":"                att[\u0027volume_name\u0027] \u003d getattr(volume, \u0027name\u0027, att[\u0027device\u0027])"},{"line_number":557,"context_line":"                attachments.append(att)"},{"line_number":558,"context_line":"        return attachments"}],"source_content_type":"text/x-python","patch_set":4,"id":"7faddb67_d8f49d89","line":555,"updated":"2019-09-04 11:08:05.000000000","message":"On second thought, can you override get_object_id method [1]?\n\n[1] https://github.com/openstack/horizon/blob/master/horizon/tables/base.py#L1826","commit_id":"1928cf845d3dd099710671544fdba695a56ce2dc"},{"author":{"_account_id":29313,"name":"Vishal Manchanda","email":"manchandavishal143@gmail.com","username":"vishalmanchanda"},"change_message_id":"fe2e6a222b6b3a3049279b79963610d38bdcd8e7","unresolved":false,"context_lines":[{"line_number":552,"context_line":"                # Object ids within a Horizon table must be unique. Otherwise,"},{"line_number":553,"context_line":"                # Horizon will cache the column values for the object by id and"},{"line_number":554,"context_line":"                # use the same column values for all rows with the same id"},{"line_number":555,"context_line":"                att[\u0027id\u0027] \u003d att.get(\u0027attachment_id\u0027)"},{"line_number":556,"context_line":"                att[\u0027volume_name\u0027] \u003d getattr(volume, \u0027name\u0027, att[\u0027device\u0027])"},{"line_number":557,"context_line":"                attachments.append(att)"},{"line_number":558,"context_line":"        return attachments"}],"source_content_type":"text/x-python","patch_set":4,"id":"7faddb67_48a1b8a8","line":555,"in_reply_to":"7faddb67_d8f49d89","updated":"2019-09-04 13:02:56.000000000","message":"Done.\nThanks","commit_id":"1928cf845d3dd099710671544fdba695a56ce2dc"}],"releasenotes/notes/multi-attached-volume-support-3d32cde6f296cdd9.yaml":[{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"a70eada8295807125db0cfb52772b8e53733b552","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    [:blueprint:`multi-Attached-volume-support`]"},{"line_number":5,"context_line":"    Horizon now support Multi-Attached volume."},{"line_number":6,"context_line":"    User is now able to attach a volume to multiple"},{"line_number":7,"context_line":"    instances. The ability to attach a volume to"}],"source_content_type":"text/x-yaml","patch_set":2,"id":"7faddb67_5b97ddec","side":"PARENT","line":4,"updated":"2019-08-26 06:49:37.000000000","message":"why are you dropping this?","commit_id":"5adfe246d3662794e58b2d560c1b0a2c150ee327"},{"author":{"_account_id":29313,"name":"Vishal Manchanda","email":"manchandavishal143@gmail.com","username":"vishalmanchanda"},"change_message_id":"f27dbbacdd94b0214b36444b75736db59ea758d5","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    [:blueprint:`multi-Attached-volume-support`]"},{"line_number":5,"context_line":"    Horizon now support Multi-Attached volume."},{"line_number":6,"context_line":"    User is now able to attach a volume to multiple"},{"line_number":7,"context_line":"    instances. The ability to attach a volume to"}],"source_content_type":"text/x-yaml","patch_set":2,"id":"7faddb67_1b3de5dc","side":"PARENT","line":4,"in_reply_to":"7faddb67_5b97ddec","updated":"2019-08-26 06:55:53.000000000","message":"ok. will update in the update next PS.","commit_id":"5adfe246d3662794e58b2d560c1b0a2c150ee327"}]}
