)]}'
{"specs/mitaka/approved/fs-attach-detach.rst":[{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"e9da386933e58f616074f65599b76d65aea8304e","unresolved":false,"context_lines":[{"line_number":49,"context_line":"* Client needed to communicate with the Manila service."},{"line_number":50,"context_line":"* State saved in Nova database showing reflecting instance share attach state."},{"line_number":51,"context_line":"* Additional actions to the Nova action endpoint to attach, detach, and list"},{"line_number":52,"context_line":"  shares associated with specified instances."},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"Alternatives"},{"line_number":55,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"9a8ffd7b_6b447c1a","line":52,"updated":"2015-11-26 12:09:48.000000000","message":"I think these proposed actions are putting the cart before the horse, since they\u0027re all actions that apply to an existing running instance. We need to actually deal with initial instance boot first.\n\nI think it is useful to draw parallels with the Cinder integration and general Nova disk configuration to guide our usage here.  We have a general \"block device mapping\" (BDM) data structure that is associated with the Nova Instance. This BDM contains information about all virtual disks that are exposed to the guest VM. These virtual disks may be backed by glance images or by cinder volumes, or by other local disks images (eg config drive).  This BDM information is provided via the API when booting an instance.\n\n\nSo as a first thing, I think we need to define a \"filesystem device mapping\" (FSDM) data structure to record the information that nova needs to know about file system shares to be associated with an instance.\n\nThese filesystem shares may be Manilla exports, or they may be host-local filesystems that need exporting (eg with LXC, the config drive is exposed as a plain filesystem share).\n\nWe need to extend the instance boot API so that we include the FSDM information.\n\nThe FSDM needs to include various pieces of metadata. Of the top of my head this would at least include\n\n - The Manilla share ID\n - The device type (if any) eg virtio-9p, virtio-nfs, or none (if guest will directly access shared via a network)\n - The share tag (just an opaque unique string tag that is exposed to the guest)\n - The mount location\n\nThis is info that would be stored in the data base, so you\u0027ll need to specify this in the data model section.\n\nThen, if we want to allow for hot-attach / hot-detach of shares to existing running instances, then the extra attach/detach API endpoints you describe later are also required\n\nNB there is a related spec  proposing a way to expose information about manilla shares to the guest via the Nova metadata service, that I think should depend on this spec.\n\nhttps://review.openstack.org/#/c/248301/","commit_id":"6f714bebf179e92ceeeaf16e70781c24cca3939e"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"c6edefad4cb5bbfcd4fc3e4aad5f3ee5f891504d","unresolved":false,"context_lines":[{"line_number":47,"context_line":"There are two ways to access a network file system share from a Nova instance."},{"line_number":48,"context_line":"The first method is for a guest to directly access the shared file"},{"line_number":49,"context_line":"system over the network.  This method requires no participation from Nova, but"},{"line_number":50,"context_line":"limits future integration with Manila. The second method enables a hypervisor"},{"line_number":51,"context_line":"to isolate connectivity to a network file system by participating in the"},{"line_number":52,"context_line":"workflow to access a share created by Manila."},{"line_number":53,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"9a8ffd7b_b76963fb","line":50,"updated":"2015-12-02 14:53:27.000000000","message":"Although it *requires* no participation, I think it is worth explicitly calling out that it would *benefit* from nova participation. ie if nothing else just give a nod to the idea of Nova exposing information about the network based FS shares in the metadata service, as that illustrates why we benefit from adding this data model now, despite not being ready to support vsock-nfs yet","commit_id":"66c04cf123cc4a792acb5d5c80740cf20f46a5c2"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"c6edefad4cb5bbfcd4fc3e4aad5f3ee5f891504d","unresolved":false,"context_lines":[{"line_number":86,"context_line":"        for a FileSystemDeviceMapping."},{"line_number":87,"context_line":"        \"\"\""},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"        NONE \u003d \u0027none\u0027"},{"line_number":90,"context_line":"        VSOCK_NFS \u003d \u0027vsock-nfs\u0027"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"        ALL \u003d (NONE, VSOCK_NFS)"}],"source_content_type":"text/x-rst","patch_set":5,"id":"9a8ffd7b_f7d5abe4","line":89,"updated":"2015-12-02 14:53:27.000000000","message":"This brings up interesting question of whether it is easier to have an explicit \"NONE\" enum field entry or whether we can simply allow the device_type field on FileSystemDeviceMapping to be \"unset\" to indicate that it uses Network based access. I\u0027m marginally inclined towards the latter approach.","commit_id":"66c04cf123cc4a792acb5d5c80740cf20f46a5c2"},{"author":{"_account_id":7652,"name":"Luis Pabón","email":"lpabon@gmail.com","username":"lpabon"},"change_message_id":"56b14e4e0c7f7f7f796c69dca7ee29ab38b3be58","unresolved":false,"context_lines":[{"line_number":86,"context_line":"        for a FileSystemDeviceMapping."},{"line_number":87,"context_line":"        \"\"\""},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"        NONE \u003d \u0027none\u0027"},{"line_number":90,"context_line":"        VSOCK_NFS \u003d \u0027vsock-nfs\u0027"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"        ALL \u003d (NONE, VSOCK_NFS)"}],"source_content_type":"text/x-rst","patch_set":5,"id":"9a8ffd7b_81d8781f","line":89,"in_reply_to":"9a8ffd7b_f7d5abe4","updated":"2015-12-03 03:45:25.000000000","message":"Ok, I added a new enum called NETWORK just so that we have something there until vsock or other types are added.","commit_id":"66c04cf123cc4a792acb5d5c80740cf20f46a5c2"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"c6edefad4cb5bbfcd4fc3e4aad5f3ee5f891504d","unresolved":false,"context_lines":[{"line_number":87,"context_line":"        \"\"\""},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"        NONE \u003d \u0027none\u0027"},{"line_number":90,"context_line":"        VSOCK_NFS \u003d \u0027vsock-nfs\u0027"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"        ALL \u003d (NONE, VSOCK_NFS)"},{"line_number":93,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"9a8ffd7b_d77427ff","line":90,"updated":"2015-12-02 14:53:27.000000000","message":"I wonder if it is wise to add this before it is actually implemented.","commit_id":"66c04cf123cc4a792acb5d5c80740cf20f46a5c2"},{"author":{"_account_id":7652,"name":"Luis Pabón","email":"lpabon@gmail.com","username":"lpabon"},"change_message_id":"56b14e4e0c7f7f7f796c69dca7ee29ab38b3be58","unresolved":false,"context_lines":[{"line_number":87,"context_line":"        \"\"\""},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"        NONE \u003d \u0027none\u0027"},{"line_number":90,"context_line":"        VSOCK_NFS \u003d \u0027vsock-nfs\u0027"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"        ALL \u003d (NONE, VSOCK_NFS)"},{"line_number":93,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"9a8ffd7b_a1ec9cbb","line":90,"in_reply_to":"9a8ffd7b_d77427ff","updated":"2015-12-03 03:45:25.000000000","message":"Done","commit_id":"66c04cf123cc4a792acb5d5c80740cf20f46a5c2"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"c6edefad4cb5bbfcd4fc3e4aad5f3ee5f891504d","unresolved":false,"context_lines":[{"line_number":107,"context_line":""},{"line_number":108,"context_line":".. code:: python"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"    class FileSystemDeviceMapping(base.NovaObject):"},{"line_number":111,"context_line":"        # Version 1.0: Initial version"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"        VERSION \u003d \u00271.0\u0027"}],"source_content_type":"text/x-rst","patch_set":5,"id":"9a8ffd7b_77377b4d","line":110,"updated":"2015-12-02 14:53:27.000000000","message":"We don\u0027t need Device in the name, since we won\u0027t always create devices for this. eg lets just do  FileSystemMapping","commit_id":"66c04cf123cc4a792acb5d5c80740cf20f46a5c2"},{"author":{"_account_id":7652,"name":"Luis Pabón","email":"lpabon@gmail.com","username":"lpabon"},"change_message_id":"56b14e4e0c7f7f7f796c69dca7ee29ab38b3be58","unresolved":false,"context_lines":[{"line_number":107,"context_line":""},{"line_number":108,"context_line":".. code:: python"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"    class FileSystemDeviceMapping(base.NovaObject):"},{"line_number":111,"context_line":"        # Version 1.0: Initial version"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"        VERSION \u003d \u00271.0\u0027"}],"source_content_type":"text/x-rst","patch_set":5,"id":"9a8ffd7b_6131d459","line":110,"in_reply_to":"9a8ffd7b_77377b4d","updated":"2015-12-03 03:45:25.000000000","message":"Done","commit_id":"66c04cf123cc4a792acb5d5c80740cf20f46a5c2"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"c6edefad4cb5bbfcd4fc3e4aad5f3ee5f891504d","unresolved":false,"context_lines":[{"line_number":118,"context_line":"            \u0027instance\u0027: fields.ObjectField(\u0027Instance\u0027, nullable\u003dTrue),"},{"line_number":119,"context_line":"            \u0027device_type\u0027: fields.FileSystemDeviceTypeField(nullable\u003dTrue),"},{"line_number":120,"context_line":"            \u0027mount_point\u0027: fields.StringField(nullable\u003dTrue),"},{"line_number":121,"context_line":"            \u0027delete_on_termination\u0027: fields.BooleanField(default\u003dFalse),"},{"line_number":122,"context_line":"            \u0027share_id\u0027: fields.StringField(nullable\u003dTrue),"},{"line_number":123,"context_line":"            \u0027image_id\u0027: fields.StringField(nullable\u003dTrue),"},{"line_number":124,"context_line":"            \u0027no_device\u0027: fields.BooleanField(default\u003dFalse),"}],"source_content_type":"text/x-rst","patch_set":5,"id":"9a8ffd7b_77845b0a","line":121,"updated":"2015-12-02 14:53:27.000000000","message":"This is used when Nova is automatically creating a Cinder volume on the fly to indicate it if should be auto-deleted on shutdown. Unless Nova is auto-creating Manilla shares, we can delete this.","commit_id":"66c04cf123cc4a792acb5d5c80740cf20f46a5c2"},{"author":{"_account_id":7652,"name":"Luis Pabón","email":"lpabon@gmail.com","username":"lpabon"},"change_message_id":"56b14e4e0c7f7f7f796c69dca7ee29ab38b3be58","unresolved":false,"context_lines":[{"line_number":118,"context_line":"            \u0027instance\u0027: fields.ObjectField(\u0027Instance\u0027, nullable\u003dTrue),"},{"line_number":119,"context_line":"            \u0027device_type\u0027: fields.FileSystemDeviceTypeField(nullable\u003dTrue),"},{"line_number":120,"context_line":"            \u0027mount_point\u0027: fields.StringField(nullable\u003dTrue),"},{"line_number":121,"context_line":"            \u0027delete_on_termination\u0027: fields.BooleanField(default\u003dFalse),"},{"line_number":122,"context_line":"            \u0027share_id\u0027: fields.StringField(nullable\u003dTrue),"},{"line_number":123,"context_line":"            \u0027image_id\u0027: fields.StringField(nullable\u003dTrue),"},{"line_number":124,"context_line":"            \u0027no_device\u0027: fields.BooleanField(default\u003dFalse),"}],"source_content_type":"text/x-rst","patch_set":5,"id":"9a8ffd7b_21374c4e","line":121,"in_reply_to":"9a8ffd7b_77845b0a","updated":"2015-12-03 03:45:25.000000000","message":"Done","commit_id":"66c04cf123cc4a792acb5d5c80740cf20f46a5c2"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"c6edefad4cb5bbfcd4fc3e4aad5f3ee5f891504d","unresolved":false,"context_lines":[{"line_number":120,"context_line":"            \u0027mount_point\u0027: fields.StringField(nullable\u003dTrue),"},{"line_number":121,"context_line":"            \u0027delete_on_termination\u0027: fields.BooleanField(default\u003dFalse),"},{"line_number":122,"context_line":"            \u0027share_id\u0027: fields.StringField(nullable\u003dTrue),"},{"line_number":123,"context_line":"            \u0027image_id\u0027: fields.StringField(nullable\u003dTrue),"},{"line_number":124,"context_line":"            \u0027no_device\u0027: fields.BooleanField(default\u003dFalse),"},{"line_number":125,"context_line":"            \u0027connection_info\u0027: fields.StringField(nullable\u003dTrue),"},{"line_number":126,"context_line":"        }"}],"source_content_type":"text/x-rst","patch_set":5,"id":"9a8ffd7b_77b69bfa","line":123,"updated":"2015-12-02 14:53:27.000000000","message":"This field doesn\u0027t seem relevant - it was referring to the Glance image that was used to populate the Cinder volume.   Unless you have concept of auto populating a Manilla share with data from a glance image we can delete this.","commit_id":"66c04cf123cc4a792acb5d5c80740cf20f46a5c2"},{"author":{"_account_id":7652,"name":"Luis Pabón","email":"lpabon@gmail.com","username":"lpabon"},"change_message_id":"56b14e4e0c7f7f7f796c69dca7ee29ab38b3be58","unresolved":false,"context_lines":[{"line_number":120,"context_line":"            \u0027mount_point\u0027: fields.StringField(nullable\u003dTrue),"},{"line_number":121,"context_line":"            \u0027delete_on_termination\u0027: fields.BooleanField(default\u003dFalse),"},{"line_number":122,"context_line":"            \u0027share_id\u0027: fields.StringField(nullable\u003dTrue),"},{"line_number":123,"context_line":"            \u0027image_id\u0027: fields.StringField(nullable\u003dTrue),"},{"line_number":124,"context_line":"            \u0027no_device\u0027: fields.BooleanField(default\u003dFalse),"},{"line_number":125,"context_line":"            \u0027connection_info\u0027: fields.StringField(nullable\u003dTrue),"},{"line_number":126,"context_line":"        }"}],"source_content_type":"text/x-rst","patch_set":5,"id":"9a8ffd7b_c140c0a7","line":123,"in_reply_to":"9a8ffd7b_77b69bfa","updated":"2015-12-03 03:45:25.000000000","message":"Done","commit_id":"66c04cf123cc4a792acb5d5c80740cf20f46a5c2"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"c6edefad4cb5bbfcd4fc3e4aad5f3ee5f891504d","unresolved":false,"context_lines":[{"line_number":121,"context_line":"            \u0027delete_on_termination\u0027: fields.BooleanField(default\u003dFalse),"},{"line_number":122,"context_line":"            \u0027share_id\u0027: fields.StringField(nullable\u003dTrue),"},{"line_number":123,"context_line":"            \u0027image_id\u0027: fields.StringField(nullable\u003dTrue),"},{"line_number":124,"context_line":"            \u0027no_device\u0027: fields.BooleanField(default\u003dFalse),"},{"line_number":125,"context_line":"            \u0027connection_info\u0027: fields.StringField(nullable\u003dTrue),"},{"line_number":126,"context_line":"        }"},{"line_number":127,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"9a8ffd7b_b732c3a5","line":124,"updated":"2015-12-02 14:53:27.000000000","message":"I don\u0027t think this is needed for FS shares - it was dealing with a rather specific edge case for volumes \u0026 image snapshots.","commit_id":"66c04cf123cc4a792acb5d5c80740cf20f46a5c2"},{"author":{"_account_id":7652,"name":"Luis Pabón","email":"lpabon@gmail.com","username":"lpabon"},"change_message_id":"56b14e4e0c7f7f7f796c69dca7ee29ab38b3be58","unresolved":false,"context_lines":[{"line_number":121,"context_line":"            \u0027delete_on_termination\u0027: fields.BooleanField(default\u003dFalse),"},{"line_number":122,"context_line":"            \u0027share_id\u0027: fields.StringField(nullable\u003dTrue),"},{"line_number":123,"context_line":"            \u0027image_id\u0027: fields.StringField(nullable\u003dTrue),"},{"line_number":124,"context_line":"            \u0027no_device\u0027: fields.BooleanField(default\u003dFalse),"},{"line_number":125,"context_line":"            \u0027connection_info\u0027: fields.StringField(nullable\u003dTrue),"},{"line_number":126,"context_line":"        }"},{"line_number":127,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"9a8ffd7b_e13dc42b","line":124,"in_reply_to":"9a8ffd7b_b732c3a5","updated":"2015-12-03 03:45:25.000000000","message":"Done","commit_id":"66c04cf123cc4a792acb5d5c80740cf20f46a5c2"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"c6edefad4cb5bbfcd4fc3e4aad5f3ee5f891504d","unresolved":false,"context_lines":[{"line_number":165,"context_line":""},{"line_number":166,"context_line":"REST API impact"},{"line_number":167,"context_line":"---------------"},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"Attach Share"},{"line_number":170,"context_line":"^^^^^^^^^^^^"},{"line_number":171,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"9a8ffd7b_3739f3d7","line":168,"updated":"2015-12-02 14:53:27.000000000","message":"The one case still missing here is providing share information at time of initial instance creation - I think that is more important to do as a first step than hotplug/unplug.","commit_id":"66c04cf123cc4a792acb5d5c80740cf20f46a5c2"},{"author":{"_account_id":7652,"name":"Luis Pabón","email":"lpabon@gmail.com","username":"lpabon"},"change_message_id":"56b14e4e0c7f7f7f796c69dca7ee29ab38b3be58","unresolved":false,"context_lines":[{"line_number":165,"context_line":""},{"line_number":166,"context_line":"REST API impact"},{"line_number":167,"context_line":"---------------"},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"Attach Share"},{"line_number":170,"context_line":"^^^^^^^^^^^^"},{"line_number":171,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"9a8ffd7b_411370b8","line":168,"in_reply_to":"9a8ffd7b_3739f3d7","updated":"2015-12-03 03:45:25.000000000","message":"Ok, I\u0027ll investigate how to provide this information.","commit_id":"66c04cf123cc4a792acb5d5c80740cf20f46a5c2"},{"author":{"_account_id":18643,"name":"John Spray","email":"jspray@redhat.com","username":"jcsp"},"change_message_id":"422c54997f21b92ad62e50ceb3ac7ada5fceef2b","unresolved":false,"context_lines":[{"line_number":28,"context_line":""},{"line_number":29,"context_line":"Now with Manila, the filesystem-as-a-service offering from OpenStack, users"},{"line_number":30,"context_line":"have a third storage model which can provide persistent storage.  This"},{"line_number":31,"context_line":"relatively new model is not very integrated with Nova, and as shuch,"},{"line_number":32,"context_line":"its workflow is not as efficient as Cinder\u0027s.  Also, by not having Nova"},{"line_number":33,"context_line":"participate in the workflow, it complicates the addition of future"},{"line_number":34,"context_line":"enhancements in the Manila user model."}],"source_content_type":"text/x-rst","patch_set":7,"id":"7a740942_e9087c2f","line":31,"updated":"2015-12-07 11:47:27.000000000","message":"s/shuch/such/","commit_id":"577b6c2a5cc974ce5aec0af52e0e2a7c5e739367"},{"author":{"_account_id":18643,"name":"John Spray","email":"jspray@redhat.com","username":"jcsp"},"change_message_id":"422c54997f21b92ad62e50ceb3ac7ada5fceef2b","unresolved":false,"context_lines":[{"line_number":30,"context_line":"have a third storage model which can provide persistent storage.  This"},{"line_number":31,"context_line":"relatively new model is not very integrated with Nova, and as shuch,"},{"line_number":32,"context_line":"its workflow is not as efficient as Cinder\u0027s.  Also, by not having Nova"},{"line_number":33,"context_line":"participate in the workflow, it complicates the addition of future"},{"line_number":34,"context_line":"enhancements in the Manila user model."},{"line_number":35,"context_line":""},{"line_number":36,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"7a740942_040a8d21","line":33,"updated":"2015-12-07 11:47:27.000000000","message":"It may be worth making the more fundamental point here: lack of nova integration fundamentally prevents implementing hypervisor-mediated access to shares, limiting us to the current IP-network access to shares.","commit_id":"577b6c2a5cc974ce5aec0af52e0e2a7c5e739367"},{"author":{"_account_id":18643,"name":"John Spray","email":"jspray@redhat.com","username":"jcsp"},"change_message_id":"422c54997f21b92ad62e50ceb3ac7ada5fceef2b","unresolved":false,"context_lines":[{"line_number":39,"context_line":""},{"line_number":40,"context_line":"User creates a Manila share with the appropriate permissions.  Using the same"},{"line_number":41,"context_line":"workflow as Cinder, they would then *attach* the share to one or more Nova"},{"line_number":42,"context_line":"instances, enabling them to access the network file system."},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"Proposed change"},{"line_number":45,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":7,"id":"7a740942_642a7180","line":42,"updated":"2015-12-07 11:47:27.000000000","message":"let\u0027s avoid \"network file system\" in favour of \"share\", as it\u0027s otherwise unclear whether the guest is accessing the filesystem via its network, or via the hypervisor.\n\n\"enabling them\" should be clarified as \"enabling the guest instance\"","commit_id":"577b6c2a5cc974ce5aec0af52e0e2a7c5e739367"},{"author":{"_account_id":18643,"name":"John Spray","email":"jspray@redhat.com","username":"jcsp"},"change_message_id":"422c54997f21b92ad62e50ceb3ac7ada5fceef2b","unresolved":false,"context_lines":[{"line_number":46,"context_line":""},{"line_number":47,"context_line":"There are two ways to access a network file system share from a Nova instance."},{"line_number":48,"context_line":"The first method is for a guest to directly access the shared file"},{"line_number":49,"context_line":"system over the network.  Although this method requires no participation from"},{"line_number":50,"context_line":"Nova, it could benefit from Nova by exposing information about the"},{"line_number":51,"context_line":"network based shares in the metadata service. The second method uses Nova"},{"line_number":52,"context_line":"to instruct the hypervisor to isolate connectivity to a network file system"}],"source_content_type":"text/x-rst","patch_set":7,"id":"7a740942_8463dddb","line":49,"updated":"2015-12-07 11:47:27.000000000","message":"\"the network\" -\u003e \"a network connecting guest instances and Manila share servers directly\"","commit_id":"577b6c2a5cc974ce5aec0af52e0e2a7c5e739367"},{"author":{"_account_id":18643,"name":"John Spray","email":"jspray@redhat.com","username":"jcsp"},"change_message_id":"422c54997f21b92ad62e50ceb3ac7ada5fceef2b","unresolved":false,"context_lines":[{"line_number":48,"context_line":"The first method is for a guest to directly access the shared file"},{"line_number":49,"context_line":"system over the network.  Although this method requires no participation from"},{"line_number":50,"context_line":"Nova, it could benefit from Nova by exposing information about the"},{"line_number":51,"context_line":"network based shares in the metadata service. The second method uses Nova"},{"line_number":52,"context_line":"to instruct the hypervisor to isolate connectivity to a network file system"},{"line_number":53,"context_line":"share by participating in the workflow to access a share created by Manila."},{"line_number":54,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"7a740942_442df544","line":51,"updated":"2015-12-07 11:47:27.000000000","message":"It\u0027s probably worth naming the two methods here (arbitrary though the names may be) to avoid confusion:\n * Direct network access: guests access a Manila share via a network connecting instances directly to share servers.  This is how Manila works today, and would be streamlined by tighter Nova integration.\n * Hypervisor-mediated access: hypervisors access Manila shares via a non-guest-accessible network, and expose the share to the guests via a local mechanism such as libvirt/9p or virtio-vsock/NFS.  This type of access it not possible without tighter Nova integration.","commit_id":"577b6c2a5cc974ce5aec0af52e0e2a7c5e739367"},{"author":{"_account_id":18643,"name":"John Spray","email":"jspray@redhat.com","username":"jcsp"},"change_message_id":"422c54997f21b92ad62e50ceb3ac7ada5fceef2b","unresolved":false,"context_lines":[{"line_number":56,"context_line":"in the Manila user model. The following changes to Nova are proposed:"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"* Client needed to communicate with the Manila service."},{"line_number":59,"context_line":"* State saved in Nova database showing reflecting instance share attach state."},{"line_number":60,"context_line":"* Additional actions to the Nova action endpoint to attach, detach, and list"},{"line_number":61,"context_line":"  shares associated with specified instances."},{"line_number":62,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"7a740942_64d7d123","line":59,"updated":"2015-12-07 11:47:27.000000000","message":"redundant \"showing reflecting\"","commit_id":"577b6c2a5cc974ce5aec0af52e0e2a7c5e739367"},{"author":{"_account_id":18643,"name":"John Spray","email":"jspray@redhat.com","username":"jcsp"},"change_message_id":"422c54997f21b92ad62e50ceb3ac7ada5fceef2b","unresolved":false,"context_lines":[{"line_number":63,"context_line":"Alternatives"},{"line_number":64,"context_line":"------------"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"Continue using the method used today."},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"Data model impact"},{"line_number":69,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":7,"id":"7a740942_84f2fdd0","line":66,"updated":"2015-12-07 11:47:27.000000000","message":"(point out the downside)\n...and thereby prevent implementation of hypervisor-mediated access to shares.","commit_id":"577b6c2a5cc974ce5aec0af52e0e2a7c5e739367"},{"author":{"_account_id":18643,"name":"John Spray","email":"jspray@redhat.com","username":"jcsp"},"change_message_id":"422c54997f21b92ad62e50ceb3ac7ada5fceef2b","unresolved":false,"context_lines":[{"line_number":70,"context_line":""},{"line_number":71,"context_line":"Just as information about a Cinder volume integration with an instance is"},{"line_number":72,"context_line":"saved in the *block device mapping* (BDM) data structure, a new"},{"line_number":73,"context_line":"*filesystem mapping* (FSM) structure would need to be created."},{"line_number":74,"context_line":"This structure would be largely based on the current"},{"line_number":75,"context_line":"``nova.objects.BlockDeviceMapping`` class and its types."},{"line_number":76,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"7a740942_04836d05","line":73,"updated":"2015-12-07 11:47:27.000000000","message":"Nitpick: FSM means \"finite state machine\" to a lot of people.  What about \"shared filesystem mapping\" SFM?","commit_id":"577b6c2a5cc974ce5aec0af52e0e2a7c5e739367"},{"author":{"_account_id":18643,"name":"John Spray","email":"jspray@redhat.com","username":"jcsp"},"change_message_id":"422c54997f21b92ad62e50ceb3ac7ada5fceef2b","unresolved":false,"context_lines":[{"line_number":118,"context_line":"            \u0027instance\u0027: fields.ObjectField(\u0027Instance\u0027, nullable\u003dTrue),"},{"line_number":119,"context_line":"            \u0027device_type\u0027: fields.FileSystemDeviceTypeField(nullable\u003dTrue),"},{"line_number":120,"context_line":"            \u0027mount_point\u0027: fields.StringField(nullable\u003dTrue),"},{"line_number":121,"context_line":"            \u0027share_id\u0027: fields.StringField(nullable\u003dTrue),"},{"line_number":122,"context_line":"            \u0027connection_info\u0027: fields.StringField(nullable\u003dTrue),"},{"line_number":123,"context_line":"        }"},{"line_number":124,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"7a740942_a4d7f9eb","line":121,"updated":"2015-12-07 11:47:27.000000000","message":"What does it mean to have a mapping with a null share_id?","commit_id":"577b6c2a5cc974ce5aec0af52e0e2a7c5e739367"}]}
