)]}'
{"cinderclient/v3/attachments.py":[{"author":{"_account_id":9562,"name":"Ildiko Vancsa","email":"ildiko.vancsa@gmail.com","username":"ildikov"},"change_message_id":"0f36fdb68a8bd6edb2606e1f98dd0f3d03c8e0e6","unresolved":false,"context_lines":[{"line_number":25,"context_line":"class VolumeAttachmentManager(base.ManagerWithFind):"},{"line_number":26,"context_line":"    resource_class \u003d VolumeAttachment"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"    def create(self, volume_id, connector, instance_id, mode, mountpoint):"},{"line_number":29,"context_line":"        \"\"\"Create a attachment for specified volume.\"\"\""},{"line_number":30,"context_line":"        body \u003d {\u0027attachment\u0027: {\u0027volume_uuid\u0027: volume_id,"},{"line_number":31,"context_line":"                               \u0027instance_id\u0027: instance_id,"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba5201f7_7522a953","line":28,"range":{"start_line":28,"start_character":56,"end_line":28,"end_character":72},"updated":"2017-01-05 22:43:09.000000000","message":"These seemed not to be used here, so they are not passed over to Cinder from here.","commit_id":"7e086f57d5a56884a2bd314f5e1067e75bedd1cb"},{"author":{"_account_id":9562,"name":"Ildiko Vancsa","email":"ildiko.vancsa@gmail.com","username":"ildikov"},"change_message_id":"0f36fdb68a8bd6edb2606e1f98dd0f3d03c8e0e6","unresolved":false,"context_lines":[{"line_number":28,"context_line":"    def create(self, volume_id, connector, instance_id, mode, mountpoint):"},{"line_number":29,"context_line":"        \"\"\"Create a attachment for specified volume.\"\"\""},{"line_number":30,"context_line":"        body \u003d {\u0027attachment\u0027: {\u0027volume_uuid\u0027: volume_id,"},{"line_number":31,"context_line":"                               \u0027instance_id\u0027: instance_id,"},{"line_number":32,"context_line":"                               \u0027connector\u0027: connector}}"},{"line_number":33,"context_line":"        retval \u003d self._create(\u0027/attachments\u0027, body, \u0027attachment\u0027)"},{"line_number":34,"context_line":"        return retval.to_dict()"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba5201f7_d51515e5","line":31,"range":{"start_line":31,"start_character":32,"end_line":31,"end_character":43},"updated":"2017-01-05 22:43:09.000000000","message":"It is inconsistent with the Cinder side as there it is referred as instance_uuid therefore it gets None by default.","commit_id":"7e086f57d5a56884a2bd314f5e1067e75bedd1cb"},{"author":{"_account_id":9562,"name":"Ildiko Vancsa","email":"ildiko.vancsa@gmail.com","username":"ildikov"},"change_message_id":"c83cb4f1403209cd23c59cb7d2373578125052c7","unresolved":false,"context_lines":[{"line_number":64,"context_line":"        \"\"\"Attachment update.\"\"\""},{"line_number":65,"context_line":"        body \u003d {\u0027attachment\u0027: {\u0027connector\u0027: connector}}"},{"line_number":66,"context_line":"        self._update(\u0027/attachments/%s\u0027 % id, body)"},{"line_number":67,"context_line":"        return"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba5201f7_1b47fcbc","line":67,"range":{"start_line":67,"start_character":8,"end_line":67,"end_character":14},"updated":"2017-01-11 17:45:33.000000000","message":"The shell tries to print the attachment details, so it needs to be returned here or remove the print_dict() from the shell. As I saw the server side code does not return anything currently.","commit_id":"7e086f57d5a56884a2bd314f5e1067e75bedd1cb"},{"author":{"_account_id":9562,"name":"Ildiko Vancsa","email":"ildiko.vancsa@gmail.com","username":"ildikov"},"change_message_id":"8531bdeb305aa7f5ddacb8cf858d5b0950ba466f","unresolved":false,"context_lines":[{"line_number":25,"context_line":"class VolumeAttachmentManager(base.ManagerWithFind):"},{"line_number":26,"context_line":"    resource_class \u003d VolumeAttachment"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"    def create(self, volume_id, connector, instance_id, mode, mountpoint):"},{"line_number":29,"context_line":"        \"\"\"Create a attachment for specified volume.\"\"\""},{"line_number":30,"context_line":"        body \u003d {\u0027attachment\u0027: {\u0027volume_uuid\u0027: volume_id,"},{"line_number":31,"context_line":"                               \u0027instance_uuid\u0027: instance_id,"}],"source_content_type":"text/x-python","patch_set":5,"id":"7a3c09a3_1a703372","line":28,"range":{"start_line":28,"start_character":56,"end_line":28,"end_character":72},"updated":"2017-01-13 20:23:19.000000000","message":"These are not used here, theoretically part of the connector dict.","commit_id":"2d4d0583a74864c8f90ad5f188f0e42df6ab4c29"},{"author":{"_account_id":9562,"name":"Ildiko Vancsa","email":"ildiko.vancsa@gmail.com","username":"ildikov"},"change_message_id":"8531bdeb305aa7f5ddacb8cf858d5b0950ba466f","unresolved":false,"context_lines":[{"line_number":64,"context_line":"        \"\"\"Attachment update.\"\"\""},{"line_number":65,"context_line":"        body \u003d {\u0027attachment\u0027: {\u0027connector\u0027: connector}}"},{"line_number":66,"context_line":"        self._update(\u0027/attachments/%s\u0027 % id, body)"},{"line_number":67,"context_line":"        return"}],"source_content_type":"text/x-python","patch_set":5,"id":"7a3c09a3_5a539be1","line":67,"range":{"start_line":67,"start_character":8,"end_line":67,"end_character":14},"updated":"2017-01-13 20:23:19.000000000","message":"Nova needs this info and the shell tries to print the attachment details, so it needs to be returned here or remove the print_dict() from the shell. As I saw the server side code does not return anything currently.","commit_id":"2d4d0583a74864c8f90ad5f188f0e42df6ab4c29"},{"author":{"_account_id":9562,"name":"Ildiko Vancsa","email":"ildiko.vancsa@gmail.com","username":"ildikov"},"change_message_id":"0f4a2d63972c4f6ce8c5fb9979dc43bb3eb96ba4","unresolved":false,"context_lines":[{"line_number":25,"context_line":"class VolumeAttachmentManager(base.ManagerWithFind):"},{"line_number":26,"context_line":"    resource_class \u003d VolumeAttachment"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"    def create(self, volume_id, connector, instance_id, mode, mountpoint):"},{"line_number":29,"context_line":"        \"\"\"Create a attachment for specified volume.\"\"\""},{"line_number":30,"context_line":"        body \u003d {\u0027attachment\u0027: {\u0027volume_uuid\u0027: volume_id,"},{"line_number":31,"context_line":"                               \u0027instance_uuid\u0027: instance_id,"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a3905b3_e5b28893","line":28,"range":{"start_line":28,"start_character":56,"end_line":28,"end_character":72},"updated":"2017-01-22 18:56:16.000000000","message":"These are supposed to be part of the connector.","commit_id":"e33837a9eb98130cbbad21792c6bdd1da889e06f"},{"author":{"_account_id":9562,"name":"Ildiko Vancsa","email":"ildiko.vancsa@gmail.com","username":"ildikov"},"change_message_id":"4b45476209a40319280c2fba5c972b6935f8cf9c","unresolved":false,"context_lines":[{"line_number":57,"context_line":"        \"\"\""},{"line_number":58,"context_line":"        url \u003d \u0027/attachments/%s\u0027 % id"},{"line_number":59,"context_line":"        resp, body \u003d self.api.client.get(url)"},{"line_number":60,"context_line":"        return self.resource_class(self, body[\u0027attachment\u0027], loaded\u003dTrue,"},{"line_number":61,"context_line":"                                   resp\u003dresp)"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"    def update(self, id, connector):"},{"line_number":64,"context_line":"        \"\"\"Attachment update.\"\"\""}],"source_content_type":"text/x-python","patch_set":8,"id":"5a3905b3_9f0d95ea","line":61,"range":{"start_line":60,"start_character":15,"end_line":61,"end_character":45},"updated":"2017-01-22 12:03:01.000000000","message":"\u0027body\u0027 is the dict you need to return here so it can be used in shell.py. I haven\u0027t checked what comes out of this self.resource_class(), but it\u0027s certainly not what\u0027s expected in shell.py.\n\nThe format of it is {\u0027attachment\u0027: {\u0027status\u0027: \u0027attached\u0027, ...}}, which means that you either return body[\u0027attachment\u0027] here so it gets printed in shell.py correctly or you need to get the data out of the dict correctly there.","commit_id":"e33837a9eb98130cbbad21792c6bdd1da889e06f"},{"author":{"_account_id":9562,"name":"Ildiko Vancsa","email":"ildiko.vancsa@gmail.com","username":"ildikov"},"change_message_id":"4b45476209a40319280c2fba5c972b6935f8cf9c","unresolved":false,"context_lines":[{"line_number":63,"context_line":"    def update(self, id, connector):"},{"line_number":64,"context_line":"        \"\"\"Attachment update.\"\"\""},{"line_number":65,"context_line":"        body \u003d {\u0027attachment\u0027: {\u0027connector\u0027: connector}}"},{"line_number":66,"context_line":"        resp, body \u003d self._update(\u0027/attachments/%s\u0027 % id, body)"},{"line_number":67,"context_line":"        return self.resource_class(self, body[\u0027attachment\u0027], loaded\u003dTrue,"},{"line_number":68,"context_line":"                                   resp\u003dresp)"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a3905b3_3f5101d9","line":66,"range":{"start_line":66,"start_character":8,"end_line":66,"end_character":63},"updated":"2017-01-22 12:03:01.000000000","message":"_update() returns a simple dict in the form of {\u0027attachment\u0027: {\u0027status\u0027: \u0027reserved\u0027, \u0027connection_info\u0027: {...}, ...}}, so you can return the simply the return value here without any additional magic.","commit_id":"e33837a9eb98130cbbad21792c6bdd1da889e06f"}],"cinderclient/v3/shell.py":[{"author":{"_account_id":9562,"name":"Ildiko Vancsa","email":"ildiko.vancsa@gmail.com","username":"ildikov"},"change_message_id":"7ca0dd60d72395ae5893ee53cf47368ec5ef901f","unresolved":false,"context_lines":[{"line_number":1245,"context_line":"                  \u0027form of \u003ckey\u003e[:\u003casc|desc\u003e]. \u0027"},{"line_number":1246,"context_line":"                  \u0027Valid keys: %s. \u0027"},{"line_number":1247,"context_line":"                  \u0027Default\u003dNone.\u0027) % \u0027, \u0027.join(base.SORT_KEY_VALUES)))"},{"line_number":1248,"context_line":"@utils.service_type(\u0027volumev3\u0027)"},{"line_number":1249,"context_line":"def do_attachment_list(cs, args):"},{"line_number":1250,"context_line":"    \"\"\"Lists all attachments.\"\"\""},{"line_number":1251,"context_line":"    search_opts \u003d {"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba5201f7_f8dee56b","line":1248,"range":{"start_line":1248,"start_character":0,"end_line":1248,"end_character":31},"updated":"2017-01-04 16:48:52.000000000","message":"You have this line duplicated.","commit_id":"7e086f57d5a56884a2bd314f5e1067e75bedd1cb"},{"author":{"_account_id":9562,"name":"Ildiko Vancsa","email":"ildiko.vancsa@gmail.com","username":"ildikov"},"change_message_id":"4da8d3d3442bd63bbce2cc1a8dbfeddedac26fd0","unresolved":false,"context_lines":[{"line_number":1327,"context_line":"                     \u0027platform\u0027: args.platform,"},{"line_number":1328,"context_line":"                     \u0027host\u0027: args.host,"},{"line_number":1329,"context_line":"                     \u0027os_type\u0027: args.ostype,"},{"line_number":1330,"context_line":"                     \u0027multipath\u0027: args.multipath}"},{"line_number":1331,"context_line":"    attachment \u003d cs.attachments.create(args.volume,"},{"line_number":1332,"context_line":"                                       connector,"},{"line_number":1333,"context_line":"                                       args.instance,"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba5201f7_aa37804b","line":1330,"range":{"start_line":1330,"start_character":48,"end_line":1330,"end_character":49},"updated":"2017-01-11 16:56:07.000000000","message":"In the server side example there\u0027s also \u0027mode\u0027, which seems to be missing from here.","commit_id":"7e086f57d5a56884a2bd314f5e1067e75bedd1cb"},{"author":{"_account_id":9562,"name":"Ildiko Vancsa","email":"ildiko.vancsa@gmail.com","username":"ildikov"},"change_message_id":"c83cb4f1403209cd23c59cb7d2373578125052c7","unresolved":false,"context_lines":[{"line_number":1389,"context_line":"@utils.arg(\u0027attachment\u0027,"},{"line_number":1390,"context_line":"           metavar\u003d\u0027\u003cattachment\u003e\u0027, nargs\u003d\u0027+\u0027,"},{"line_number":1391,"context_line":"           help\u003d\u0027ID of attachment or attachments to delete.\u0027)"},{"line_number":1392,"context_line":"def do_attachment_delete(cs, args):"},{"line_number":1393,"context_line":"    \"\"\"Delete an attachment for a cinder volume.\"\"\""},{"line_number":1394,"context_line":"    for attachment in args.attachment:"},{"line_number":1395,"context_line":"        cs.attachments.delete(attachment)"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba5201f7_5b4b4487","line":1392,"range":{"start_line":1392,"start_character":4,"end_line":1392,"end_character":24},"updated":"2017-01-11 17:45:33.000000000","message":"On the server side there\u0027s a list to return, I guess the remaining attachments for the volume maybe. Could be good to add that here.","commit_id":"7e086f57d5a56884a2bd314f5e1067e75bedd1cb"},{"author":{"_account_id":9562,"name":"Ildiko Vancsa","email":"ildiko.vancsa@gmail.com","username":"ildikov"},"change_message_id":"8531bdeb305aa7f5ddacb8cf858d5b0950ba466f","unresolved":false,"context_lines":[{"line_number":1331,"context_line":"    attachment \u003d cs.attachments.create(args.volume,"},{"line_number":1332,"context_line":"                                       connector,"},{"line_number":1333,"context_line":"                                       args.instance,"},{"line_number":1334,"context_line":"                                       args.mountpoint,"},{"line_number":1335,"context_line":"                                       \u0027rw\u0027)"},{"line_number":1336,"context_line":"    utils.print_dict(attachment)"},{"line_number":1337,"context_line":""},{"line_number":1338,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"7a3c09a3_7a05b7c0","line":1335,"range":{"start_line":1334,"start_character":39,"end_line":1335,"end_character":43},"updated":"2017-01-13 20:23:19.000000000","message":"Should be part of connector.","commit_id":"2d4d0583a74864c8f90ad5f188f0e42df6ab4c29"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"32cc7306d5ef4f638b39c6d3e2bf140c415b49e2","unresolved":false,"context_lines":[{"line_number":1440,"context_line":"                                       \u0027rw\u0027)"},{"line_number":1441,"context_line":"    connector_dict \u003d attachment.pop(\u0027connection_info\u0027, None)"},{"line_number":1442,"context_line":"    utils.print_dict(attachment)"},{"line_number":1443,"context_line":"    if connector_dict:"},{"line_number":1444,"context_line":"        utils.print_dict(connector_dict)"},{"line_number":1445,"context_line":""},{"line_number":1446,"context_line":""},{"line_number":1447,"context_line":"@utils.service_type(\u0027volumev3\u0027)"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a3905b3_9f309958","line":1444,"range":{"start_line":1443,"start_character":4,"end_line":1444,"end_character":40},"updated":"2017-01-19 18:20:33.000000000","message":"This needs to go away before merge and if we want it needs to be a configurable option for use in things like stand-alone deployments if desired.","commit_id":"e33837a9eb98130cbbad21792c6bdd1da889e06f"},{"author":{"_account_id":9562,"name":"Ildiko Vancsa","email":"ildiko.vancsa@gmail.com","username":"ildikov"},"change_message_id":"4b45476209a40319280c2fba5c972b6935f8cf9c","unresolved":false,"context_lines":[{"line_number":1490,"context_line":"                 \u0027multipath\u0027: args.multipath}"},{"line_number":1491,"context_line":"    attachment \u003d cs.attachments.update(args.attachment,"},{"line_number":1492,"context_line":"                                       connector)"},{"line_number":1493,"context_line":"    connector_dict \u003d attachment.pop(\u0027connection_info\u0027, None)"},{"line_number":1494,"context_line":"    utils.print_dict(attachment)"},{"line_number":1495,"context_line":"    if connector_dict:"},{"line_number":1496,"context_line":"        utils.print_dict(connector_dict)"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a3905b3_5f608da5","line":1493,"range":{"start_line":1493,"start_character":21,"end_line":1493,"end_character":31},"updated":"2017-01-22 12:03:01.000000000","message":"With the current return value of \u0027update\u0027 it has to be attachment[\u0027attachment\u0027].","commit_id":"e33837a9eb98130cbbad21792c6bdd1da889e06f"},{"author":{"_account_id":9562,"name":"Ildiko Vancsa","email":"ildiko.vancsa@gmail.com","username":"ildikov"},"change_message_id":"46fce6ea87adb455b5327691c7817926d912597c","unresolved":false,"context_lines":[{"line_number":1490,"context_line":"                 \u0027multipath\u0027: args.multipath}"},{"line_number":1491,"context_line":"    attachment \u003d cs.attachments.update(args.attachment,"},{"line_number":1492,"context_line":"                                       connector)"},{"line_number":1493,"context_line":"    connector_dict \u003d attachment.pop(\u0027connection_info\u0027, None)"},{"line_number":1494,"context_line":"    utils.print_dict(attachment)"},{"line_number":1495,"context_line":"    if connector_dict:"},{"line_number":1496,"context_line":"        utils.print_dict(connector_dict)"}],"source_content_type":"text/x-python","patch_set":8,"id":"3a461143_eadc8e1a","line":1493,"range":{"start_line":1493,"start_character":21,"end_line":1493,"end_character":31},"in_reply_to":"3a461143_191dba73","updated":"2017-01-25 23:58:36.000000000","message":"attachment-create works for me too.\n\nattachment-update however:\n\nstack@testVM3:/opt/devstack$ cinder attachment-update 82685f2e-3296-49b2-a495-50f059c3e32d --initiator iqn.1993-08.org.debian:01:cad181614cec --ip 127.0.0.1 --mountpoint /dev/vdb\nERROR: need more than 1 value to unpack","commit_id":"e33837a9eb98130cbbad21792c6bdd1da889e06f"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"84faf7ec93c730f9356cde249e87cda1d01aae50","unresolved":false,"context_lines":[{"line_number":1490,"context_line":"                 \u0027multipath\u0027: args.multipath}"},{"line_number":1491,"context_line":"    attachment \u003d cs.attachments.update(args.attachment,"},{"line_number":1492,"context_line":"                                       connector)"},{"line_number":1493,"context_line":"    connector_dict \u003d attachment.pop(\u0027connection_info\u0027, None)"},{"line_number":1494,"context_line":"    utils.print_dict(attachment)"},{"line_number":1495,"context_line":"    if connector_dict:"},{"line_number":1496,"context_line":"        utils.print_dict(connector_dict)"}],"source_content_type":"text/x-python","patch_set":8,"id":"3a461143_191dba73","line":1493,"range":{"start_line":1493,"start_character":21,"end_line":1493,"end_character":31},"in_reply_to":"5a3905b3_5f608da5","updated":"2017-01-25 22:38:50.000000000","message":"I\u0027m not sure I follow, this works:\n\nubuntu@stack-1:~$ cinder attachment-create --connect True --initiator iqn.1993-08.org.debian:01:cad181614cec --ip 1.1.1.1 --instance 2571890b-e7f4-4238-ae92-3e838b359958 --host foo 017008af-1580-4c48-b5eb-00c39423b917\n+-------------+--------------------------------------+\n| Property    | Value                                |\n+-------------+--------------------------------------+\n| attach_mode | None                                 |\n| attached_at |                                      |\n| detached_at |                                      |\n| id          | 2c867fd1-87fc-4fab-b578-88443fc18dc5 |\n| instance    | 2571890b-e7f4-4238-ae92-3e838b359958 |\n| status      | reserved                             |\n| volume_id   | 017008af-1580-4c48-b5eb-00c39423b917 |\n+-------------+--------------------------------------+\n+--------------------+--------------------------------------------------------------------------------+\n| Property           | Value                                                                          |\n+--------------------+--------------------------------------------------------------------------------+\n| access_mode        | rw                                                                             |\n| attachment_id      | 2c867fd1-87fc-4fab-b578-88443fc18dc5                                           |\n| auth_method        | CHAP                                                                           |\n| auth_password      | UJ9PSM6CT74A                                                                   |\n| auth_username      | 260007138e5c44eba877ca1bc95595ae                                               |\n| discard            | True                                                                           |\n| driver_volume_type | iscsi                                                                          |\n| encrypted          | False                                                                          |\n| qos_specs          | None                                                                           |\n| target_discovered  | False                                                                          |\n| target_iqn         | iqn.2010-01.com.solidfire:py3x.uuid-017008af-1580-4c48-b5eb-00c39423b917.48050 |\n| target_lun         | 0                                                                              |\n| target_portal      | 10.117.37.101:3260                                                             |\n| volume_id          | 017008af-1580-4c48-b5eb-00c39423b917                                           |\n+--------------------+--------------------------------------------------------------------------------+","commit_id":"e33837a9eb98130cbbad21792c6bdd1da889e06f"},{"author":{"_account_id":9562,"name":"Ildiko Vancsa","email":"ildiko.vancsa@gmail.com","username":"ildikov"},"change_message_id":"4b45476209a40319280c2fba5c972b6935f8cf9c","unresolved":false,"context_lines":[{"line_number":1491,"context_line":"    attachment \u003d cs.attachments.update(args.attachment,"},{"line_number":1492,"context_line":"                                       connector)"},{"line_number":1493,"context_line":"    connector_dict \u003d attachment.pop(\u0027connection_info\u0027, None)"},{"line_number":1494,"context_line":"    utils.print_dict(attachment)"},{"line_number":1495,"context_line":"    if connector_dict:"},{"line_number":1496,"context_line":"        utils.print_dict(connector_dict)"},{"line_number":1497,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"5a3905b3_9f5675cc","line":1494,"range":{"start_line":1494,"start_character":21,"end_line":1494,"end_character":31},"updated":"2017-01-22 12:03:01.000000000","message":"Same as above.","commit_id":"e33837a9eb98130cbbad21792c6bdd1da889e06f"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"32cc7306d5ef4f638b39c6d3e2bf140c415b49e2","unresolved":false,"context_lines":[{"line_number":1492,"context_line":"                                       connector)"},{"line_number":1493,"context_line":"    connector_dict \u003d attachment.pop(\u0027connection_info\u0027, None)"},{"line_number":1494,"context_line":"    utils.print_dict(attachment)"},{"line_number":1495,"context_line":"    if connector_dict:"},{"line_number":1496,"context_line":"        utils.print_dict(connector_dict)"},{"line_number":1497,"context_line":""},{"line_number":1498,"context_line":""},{"line_number":1499,"context_line":"@utils.service_type(\u0027volumev3\u0027)"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a3905b3_df3a2136","line":1496,"range":{"start_line":1495,"start_character":1,"end_line":1496,"end_character":40},"updated":"2017-01-19 18:20:33.000000000","message":"same note as above","commit_id":"e33837a9eb98130cbbad21792c6bdd1da889e06f"},{"author":{"_account_id":15240,"name":"Brian Reitz","email":"brian.reitz@oracle.com","username":"bdr"},"change_message_id":"d195c477595be8181a5b67170d45815c6ad0f0df","unresolved":false,"context_lines":[{"line_number":1310,"context_line":"           nargs\u003d\u0027?\u0027,"},{"line_number":1311,"context_line":"           metavar\u003d\u0027\u003ctenant\u003e\u0027,"},{"line_number":1312,"context_line":"           help\u003d\u0027Display information from single tenant (Admin only).\u0027)"},{"line_number":1313,"context_line":"@utils.service_type(\u0027volumev3\u0027)"},{"line_number":1314,"context_line":"def do_attachment_list(cs, args):"},{"line_number":1315,"context_line":"    \"\"\"Lists all attachments.\"\"\""},{"line_number":1316,"context_line":"    search_opts \u003d {"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a461143_93034273","line":1313,"updated":"2017-01-26 01:33:06.000000000","message":"Ivan\u0027s commit removed service_type afaik","commit_id":"71fc0be05adcd1e8b0f4036d4c7a03454044a719"},{"author":{"_account_id":15240,"name":"Brian Reitz","email":"brian.reitz@oracle.com","username":"bdr"},"change_message_id":"d195c477595be8181a5b67170d45815c6ad0f0df","unresolved":false,"context_lines":[{"line_number":1331,"context_line":"    utils.print_list(attachments, columns, sortby_index\u003dsortby_index)"},{"line_number":1332,"context_line":""},{"line_number":1333,"context_line":""},{"line_number":1334,"context_line":"@utils.service_type(\u0027volumev3\u0027)"},{"line_number":1335,"context_line":"@utils.arg(\u0027attachment\u0027,"},{"line_number":1336,"context_line":"           metavar\u003d\u0027\u003cattachment\u003e\u0027,"},{"line_number":1337,"context_line":"           help\u003d\u0027ID of attachment.\u0027)"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a461143_b3f83e7e","line":1334,"updated":"2017-01-26 01:33:06.000000000","message":"Same as above - should remove now that service_type is gone.","commit_id":"71fc0be05adcd1e8b0f4036d4c7a03454044a719"},{"author":{"_account_id":15240,"name":"Brian Reitz","email":"brian.reitz@oracle.com","username":"bdr"},"change_message_id":"05913bacd0bf8b8a14bcd44b813c91e150fe74a2","unresolved":false,"context_lines":[{"line_number":1389,"context_line":"           metavar\u003d\u0027\u003cmountpoint\u003e\u0027,"},{"line_number":1390,"context_line":"           default\u003dNone,"},{"line_number":1391,"context_line":"           help\u003d\u0027Mountpoint volume will be attached at. Default\u003dNone.\u0027)"},{"line_number":1392,"context_line":"@utils.service_type(\u0027volumev3\u0027)"},{"line_number":1393,"context_line":"def do_attachment_create(cs, args):"},{"line_number":1394,"context_line":"    \"\"\"Create an attachment for a cinder volume.\"\"\""},{"line_number":1395,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"3a461143_f649d4d1","line":1392,"updated":"2017-01-26 01:37:32.000000000","message":"Whoops missed this one in my last review.   This could be removed too.","commit_id":"71fc0be05adcd1e8b0f4036d4c7a03454044a719"},{"author":{"_account_id":15240,"name":"Brian Reitz","email":"brian.reitz@oracle.com","username":"bdr"},"change_message_id":"d195c477595be8181a5b67170d45815c6ad0f0df","unresolved":false,"context_lines":[{"line_number":1411,"context_line":"        utils.print_dict(connector_dict)"},{"line_number":1412,"context_line":""},{"line_number":1413,"context_line":""},{"line_number":1414,"context_line":"@utils.service_type(\u0027volumev3\u0027)"},{"line_number":1415,"context_line":"@utils.arg(\u0027attachment\u0027,"},{"line_number":1416,"context_line":"           metavar\u003d\u0027\u003cattachment\u003e\u0027,"},{"line_number":1417,"context_line":"           help\u003d\u0027ID of attachment.\u0027)"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a461143_736df603","line":1414,"updated":"2017-01-26 01:33:06.000000000","message":"With Ivan\u0027s push this should be removed","commit_id":"71fc0be05adcd1e8b0f4036d4c7a03454044a719"},{"author":{"_account_id":15240,"name":"Brian Reitz","email":"brian.reitz@oracle.com","username":"bdr"},"change_message_id":"d195c477595be8181a5b67170d45815c6ad0f0df","unresolved":false,"context_lines":[{"line_number":1463,"context_line":"        utils.print_dict(connector_dict)"},{"line_number":1464,"context_line":""},{"line_number":1465,"context_line":""},{"line_number":1466,"context_line":"@utils.service_type(\u0027volumev3\u0027)"},{"line_number":1467,"context_line":"@utils.arg(\u0027attachment\u0027,"},{"line_number":1468,"context_line":"           metavar\u003d\u0027\u003cattachment\u003e\u0027, nargs\u003d\u0027+\u0027,"},{"line_number":1469,"context_line":"           help\u003d\u0027ID of attachment or attachments to delete.\u0027)"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a461143_f306461f","line":1466,"updated":"2017-01-26 01:33:06.000000000","message":"Same - should be removed","commit_id":"71fc0be05adcd1e8b0f4036d4c7a03454044a719"},{"author":{"_account_id":7173,"name":"Scott DAngelo","email":"scott.dangelo@gmail.com","username":"scottda"},"change_message_id":"e9c0e0256a27705da5a65b57ca6b9e3b2f5ecde9","unresolved":false,"context_lines":[{"line_number":1275,"context_line":"    utils.print_list(snapshots,"},{"line_number":1276,"context_line":"                     [\u0027ID\u0027, \u0027Volume ID\u0027, \u0027Status\u0027, \u0027Name\u0027, \u0027Size\u0027],"},{"line_number":1277,"context_line":"                     sortby_index\u003dsortby_index)"},{"line_number":1278,"context_line":""},{"line_number":1279,"context_line":"@utils.arg(\u0027--all-tenants\u0027,"},{"line_number":1280,"context_line":"           dest\u003d\u0027all_tenants\u0027,"},{"line_number":1281,"context_line":"           metavar\u003d\u0027\u003c0|1\u003e\u0027,"}],"source_content_type":"text/x-python","patch_set":13,"id":"3a461143_994a5582","line":1278,"updated":"2017-01-26 21:18:27.000000000","message":"@api_versions.wraps(\u00273.27\u0027)","commit_id":"24f870504459e0e387b9702a90200c237ed2da6e"},{"author":{"_account_id":9562,"name":"Ildiko Vancsa","email":"ildiko.vancsa@gmail.com","username":"ildikov"},"change_message_id":"68fbf114431804e1be6da3db2b5d1ffcf55e9238","unresolved":false,"context_lines":[{"line_number":1275,"context_line":"    utils.print_list(snapshots,"},{"line_number":1276,"context_line":"                     [\u0027ID\u0027, \u0027Volume ID\u0027, \u0027Status\u0027, \u0027Name\u0027, \u0027Size\u0027],"},{"line_number":1277,"context_line":"                     sortby_index\u003dsortby_index)"},{"line_number":1278,"context_line":""},{"line_number":1279,"context_line":"@utils.arg(\u0027--all-tenants\u0027,"},{"line_number":1280,"context_line":"           dest\u003d\u0027all_tenants\u0027,"},{"line_number":1281,"context_line":"           metavar\u003d\u0027\u003c0|1\u003e\u0027,"}],"source_content_type":"text/x-python","patch_set":13,"id":"3a461143_8a04b57e","line":1278,"in_reply_to":"3a461143_994a5582","updated":"2017-01-26 22:10:24.000000000","message":"Done","commit_id":"24f870504459e0e387b9702a90200c237ed2da6e"},{"author":{"_account_id":7173,"name":"Scott DAngelo","email":"scott.dangelo@gmail.com","username":"scottda"},"change_message_id":"e9c0e0256a27705da5a65b57ca6b9e3b2f5ecde9","unresolved":false,"context_lines":[{"line_number":1334,"context_line":"        sortby_index \u003d 0"},{"line_number":1335,"context_line":"    utils.print_list(attachments, columns, sortby_index\u003dsortby_index)"},{"line_number":1336,"context_line":""},{"line_number":1337,"context_line":""},{"line_number":1338,"context_line":"@utils.arg(\u0027attachment\u0027,"},{"line_number":1339,"context_line":"           metavar\u003d\u0027\u003cattachment\u003e\u0027,"},{"line_number":1340,"context_line":"           help\u003d\u0027ID of attachment.\u0027)"}],"source_content_type":"text/x-python","patch_set":13,"id":"3a461143_d944dd75","line":1337,"updated":"2017-01-26 21:18:27.000000000","message":"@api_versions.wraps(\u00273.27\u0027)","commit_id":"24f870504459e0e387b9702a90200c237ed2da6e"},{"author":{"_account_id":9562,"name":"Ildiko Vancsa","email":"ildiko.vancsa@gmail.com","username":"ildikov"},"change_message_id":"68fbf114431804e1be6da3db2b5d1ffcf55e9238","unresolved":false,"context_lines":[{"line_number":1334,"context_line":"        sortby_index \u003d 0"},{"line_number":1335,"context_line":"    utils.print_list(attachments, columns, sortby_index\u003dsortby_index)"},{"line_number":1336,"context_line":""},{"line_number":1337,"context_line":""},{"line_number":1338,"context_line":"@utils.arg(\u0027attachment\u0027,"},{"line_number":1339,"context_line":"           metavar\u003d\u0027\u003cattachment\u003e\u0027,"},{"line_number":1340,"context_line":"           help\u003d\u0027ID of attachment.\u0027)"}],"source_content_type":"text/x-python","patch_set":13,"id":"3a461143_cafebd6a","line":1337,"in_reply_to":"3a461143_d944dd75","updated":"2017-01-26 22:10:24.000000000","message":"Done","commit_id":"24f870504459e0e387b9702a90200c237ed2da6e"},{"author":{"_account_id":7173,"name":"Scott DAngelo","email":"scott.dangelo@gmail.com","username":"scottda"},"change_message_id":"e9c0e0256a27705da5a65b57ca6b9e3b2f5ecde9","unresolved":false,"context_lines":[{"line_number":1351,"context_line":"    if connection_dict:"},{"line_number":1352,"context_line":"        utils.print_dict(connection_dict)"},{"line_number":1353,"context_line":""},{"line_number":1354,"context_line":""},{"line_number":1355,"context_line":"@utils.arg(\u0027volume\u0027,"},{"line_number":1356,"context_line":"           metavar\u003d\u0027\u003cvolume\u003e\u0027,"},{"line_number":1357,"context_line":"           help\u003d\u0027Name or ID of volume or volumes to attach.\u0027)"}],"source_content_type":"text/x-python","patch_set":13,"id":"3a461143_395a4151","line":1354,"updated":"2017-01-26 21:18:27.000000000","message":"@api_versions.wraps(\u00273.27\u0027)","commit_id":"24f870504459e0e387b9702a90200c237ed2da6e"},{"author":{"_account_id":9562,"name":"Ildiko Vancsa","email":"ildiko.vancsa@gmail.com","username":"ildikov"},"change_message_id":"68fbf114431804e1be6da3db2b5d1ffcf55e9238","unresolved":false,"context_lines":[{"line_number":1351,"context_line":"    if connection_dict:"},{"line_number":1352,"context_line":"        utils.print_dict(connection_dict)"},{"line_number":1353,"context_line":""},{"line_number":1354,"context_line":""},{"line_number":1355,"context_line":"@utils.arg(\u0027volume\u0027,"},{"line_number":1356,"context_line":"           metavar\u003d\u0027\u003cvolume\u003e\u0027,"},{"line_number":1357,"context_line":"           help\u003d\u0027Name or ID of volume or volumes to attach.\u0027)"}],"source_content_type":"text/x-python","patch_set":13,"id":"3a461143_0af9a580","line":1354,"in_reply_to":"3a461143_395a4151","updated":"2017-01-26 22:10:24.000000000","message":"Done","commit_id":"24f870504459e0e387b9702a90200c237ed2da6e"},{"author":{"_account_id":7173,"name":"Scott DAngelo","email":"scott.dangelo@gmail.com","username":"scottda"},"change_message_id":"e9c0e0256a27705da5a65b57ca6b9e3b2f5ecde9","unresolved":false,"context_lines":[{"line_number":1412,"context_line":"    if connector_dict:"},{"line_number":1413,"context_line":"        utils.print_dict(connector_dict)"},{"line_number":1414,"context_line":""},{"line_number":1415,"context_line":""},{"line_number":1416,"context_line":"@utils.arg(\u0027attachment\u0027,"},{"line_number":1417,"context_line":"           metavar\u003d\u0027\u003cattachment\u003e\u0027,"},{"line_number":1418,"context_line":"           help\u003d\u0027ID of attachment.\u0027)"}],"source_content_type":"text/x-python","patch_set":13,"id":"3a461143_5959cd59","line":1415,"updated":"2017-01-26 21:18:27.000000000","message":"@api_versions.wraps(\u00273.27\u0027)","commit_id":"24f870504459e0e387b9702a90200c237ed2da6e"},{"author":{"_account_id":9562,"name":"Ildiko Vancsa","email":"ildiko.vancsa@gmail.com","username":"ildikov"},"change_message_id":"68fbf114431804e1be6da3db2b5d1ffcf55e9238","unresolved":false,"context_lines":[{"line_number":1412,"context_line":"    if connector_dict:"},{"line_number":1413,"context_line":"        utils.print_dict(connector_dict)"},{"line_number":1414,"context_line":""},{"line_number":1415,"context_line":""},{"line_number":1416,"context_line":"@utils.arg(\u0027attachment\u0027,"},{"line_number":1417,"context_line":"           metavar\u003d\u0027\u003cattachment\u003e\u0027,"},{"line_number":1418,"context_line":"           help\u003d\u0027ID of attachment.\u0027)"}],"source_content_type":"text/x-python","patch_set":13,"id":"3a461143_2af4a185","line":1415,"in_reply_to":"3a461143_5959cd59","updated":"2017-01-26 22:10:24.000000000","message":"Done","commit_id":"24f870504459e0e387b9702a90200c237ed2da6e"},{"author":{"_account_id":7173,"name":"Scott DAngelo","email":"scott.dangelo@gmail.com","username":"scottda"},"change_message_id":"e9c0e0256a27705da5a65b57ca6b9e3b2f5ecde9","unresolved":false,"context_lines":[{"line_number":1464,"context_line":"    if connector_dict:"},{"line_number":1465,"context_line":"        utils.print_dict(connector_dict)"},{"line_number":1466,"context_line":""},{"line_number":1467,"context_line":""},{"line_number":1468,"context_line":"@utils.arg(\u0027attachment\u0027,"},{"line_number":1469,"context_line":"           metavar\u003d\u0027\u003cattachment\u003e\u0027, nargs\u003d\u0027+\u0027,"},{"line_number":1470,"context_line":"           help\u003d\u0027ID of attachment or attachments to delete.\u0027)"}],"source_content_type":"text/x-python","patch_set":13,"id":"3a461143_9931750e","line":1467,"updated":"2017-01-26 21:18:27.000000000","message":"@api_versions.wraps(\u00273.27\u0027)","commit_id":"24f870504459e0e387b9702a90200c237ed2da6e"},{"author":{"_account_id":9562,"name":"Ildiko Vancsa","email":"ildiko.vancsa@gmail.com","username":"ildikov"},"change_message_id":"68fbf114431804e1be6da3db2b5d1ffcf55e9238","unresolved":false,"context_lines":[{"line_number":1464,"context_line":"    if connector_dict:"},{"line_number":1465,"context_line":"        utils.print_dict(connector_dict)"},{"line_number":1466,"context_line":""},{"line_number":1467,"context_line":""},{"line_number":1468,"context_line":"@utils.arg(\u0027attachment\u0027,"},{"line_number":1469,"context_line":"           metavar\u003d\u0027\u003cattachment\u003e\u0027, nargs\u003d\u0027+\u0027,"},{"line_number":1470,"context_line":"           help\u003d\u0027ID of attachment or attachments to delete.\u0027)"}],"source_content_type":"text/x-python","patch_set":13,"id":"3a461143_8a2bd5ea","line":1467,"in_reply_to":"3a461143_9931750e","updated":"2017-01-26 22:10:24.000000000","message":"Done","commit_id":"24f870504459e0e387b9702a90200c237ed2da6e"}]}
