<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://wiki.openstack.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Clinton+Knight</id>
		<title>OpenStack - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="https://wiki.openstack.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Clinton+Knight"/>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/wiki/Special:Contributions/Clinton_Knight"/>
		<updated>2026-07-14T10:49:52Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.28.2</generator>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Manila/Meetings&amp;diff=136940</id>
		<title>Manila/Meetings</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Manila/Meetings&amp;diff=136940"/>
				<updated>2016-10-31T16:47:34Z</updated>
		
		<summary type="html">&lt;p&gt;Clinton Knight: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Weekly Manila team meeting =&lt;br /&gt;
'''NOTE MEETING TIME: Thursday at 15:00 UTC'''&lt;br /&gt;
&lt;br /&gt;
If you're interested in management of shared filesystems for OpenStack, we have a weekly meetings in &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;#openstack-meeting-alt&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;, on Thursdays at 15:00 UTC.  Please feel free to add items to the agenda below.  NOTE: When adding topics please include your IRC name so we know who's topic it is and how to get more info.&lt;br /&gt;
&lt;br /&gt;
'''Previous meeting logs can be found here:''' http://eavesdrop.openstack.org/meetings/manila/&lt;br /&gt;
&lt;br /&gt;
== Next meeting ==&lt;br /&gt;
'''NOTE:''' ''Include your IRC nickname next to agenda items so that you can be called upon in the meeting and arrive at the meeting promptly if placing items in agenda. You might want to put this on your calendar if you are adding items.''&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 3 Nov, 2016, 15:00 UTC'''&lt;br /&gt;
# Spec review &amp;amp; prioritization&lt;br /&gt;
#* https://review.openstack.org/#/q/project:%22%255Eopenstack/manila-specs%22++status:open&lt;br /&gt;
# Open Discussion&lt;br /&gt;
&lt;br /&gt;
== Previous meetings ==&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 20 Oct, 2016, 15:00 UTC'''&lt;br /&gt;
# Specs and Deadlines (bswartz)&lt;br /&gt;
#* https://review.openstack.org/#/c/374883/&lt;br /&gt;
# Adding invalid user to the access rule changes valid access rule state from 'active' to 'error' (ravichandran)&lt;br /&gt;
# Open Discussion&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 13 Oct, 2016, 15:00 UTC'''&lt;br /&gt;
# Ocata Design Summit&lt;br /&gt;
#* https://www.openstack.org/summit/barcelona-2016/summit-schedule/global-search?t=Manila%3A&lt;br /&gt;
# PTG&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 6 Oct, 2016, 15:00 UTC'''&lt;br /&gt;
# Microversion-ing addition or removal of transitional ('micro') states (gouthamr)&lt;br /&gt;
#* https://review.openstack.org/#/c/369668/&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 29 Sep, 2016, 15:00 UTC'''&lt;br /&gt;
# Ocata Design Summit&lt;br /&gt;
#* https://etherpad.openstack.org/p/manila-ocata-design-summit-topics&lt;br /&gt;
# Open Discussion&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 22 Sep, 2016, 15:00 UTC'''&lt;br /&gt;
# Specs process&lt;br /&gt;
#* https://review.openstack.org/#/c/374883&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 8 Sep, 2016, 15:00 UTC'''&lt;br /&gt;
# RC1 status&lt;br /&gt;
#* https://launchpad.net/manila/+milestone/newton-rc1&lt;br /&gt;
# Project Logo&lt;br /&gt;
#* http://civs.cs.cornell.edu/cgi-bin/vote.pl?id=E_6f0d111cec78c5ef&amp;amp;akey=d34a751f2d084d79&lt;br /&gt;
# Container Driver Security (aovchinnikov)&lt;br /&gt;
#* https://review.openstack.org/#/c/353463/&lt;br /&gt;
# Security &amp;quot;vulnerability-managed&amp;quot; tag for manila (tbarron)&lt;br /&gt;
# Zanata translations for manila-client and manila-ui (tbarron)&lt;br /&gt;
# Tempest direction (tbarron)&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 1 Sep, 2016, 15:00 UTC'''&lt;br /&gt;
# Mascot (bswartz)&lt;br /&gt;
# Vulnerability Management&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 25 Aug, 2016, 15:00 UTC'''&lt;br /&gt;
# Huawei share replication and CI&lt;br /&gt;
# IPv6 (cknight)&lt;br /&gt;
# Open Discussion&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 18 Aug, 2016, 15:00 UTC'''&lt;br /&gt;
# Driver private data admin API&lt;br /&gt;
#* Disagreement abounds on how this API is to be designed, tested, and presented.&lt;br /&gt;
#* https://review.openstack.org/#/c/315346/&lt;br /&gt;
# Scenario tests are broken&lt;br /&gt;
#* http://logs.openstack.org/86/309286/34/check/gate-manila-tempest-dsvm-scenario/610f96e/console.html&lt;br /&gt;
# Revert to snapshot&lt;br /&gt;
#* https://review.openstack.org/#/c/340502/&lt;br /&gt;
#* https://review.openstack.org/#/c/356682/&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Scheduled for 11 Aug, 2016, 15:00 UTC&amp;quot;&lt;br /&gt;
# None&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 4 Aug, 2016, 15:00 UTC'''&lt;br /&gt;
# Migration APIs&lt;br /&gt;
#* http://lists.openstack.org/pipermail/openstack-dev/2016-August/100682.html&lt;br /&gt;
# Correct approach for avoiding races&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 28 Jul, 2016, 15:00 UTC'''&lt;br /&gt;
# Stepping Down as Docs Liaison (dustins)&lt;br /&gt;
#* Current job responsibilities don't give me the time to devote to this that I'd like to have, so it should go to someone else with a passion for documentation and has the willingness and desire for taking up the mantle.&lt;br /&gt;
# N-3 Review focus&lt;br /&gt;
#* https://etherpad.openstack.org/p/manila-newton3-priorities&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 21 Jul, 2016, 15:00 UTC'''&lt;br /&gt;
# Migrate API reference into tree (dgonzalez)&lt;br /&gt;
#* https://review.openstack.org/#/c/313874/&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 14 Jul, 2016, 15:00 UTC'''&lt;br /&gt;
# N-2 milestone&lt;br /&gt;
# Managing initial security (of the root directory) for new shares&lt;br /&gt;
# Mascot/Logo discussion&lt;br /&gt;
# Tempest alternatives&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 30 Jun, 2016, 15:00 UTC'''&lt;br /&gt;
# non-disruptive nfs-ganesha export modifications (rraja/tbarron)&lt;br /&gt;
#* https://sourceforge.net/p/nfs-ganesha/mailman/message/35173839&lt;br /&gt;
# share backup spec discussion (zhongjun)&lt;br /&gt;
#* https://review.openstack.org/#/c/330306&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 23 Jun, 2016, 15:00 UTC'''&lt;br /&gt;
# Implement extend and shrink features for glusterfs driver (DaiDV)&lt;br /&gt;
# Do all drivers have to inherit from driver.ShareDriver? (mkoderer)&lt;br /&gt;
# Creating a second share instance for driver-assisted migration (ganso)&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 16 Jun, 2016, 15:00 UTC'''&lt;br /&gt;
# A share support multiple protocols (zhongjun)&lt;br /&gt;
#* https://review.openstack.org/#/c/329392/&lt;br /&gt;
# Drivers with minimum size for shares (tpsilva)&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 9 Jun, 2016, 15:00 UTC'''&lt;br /&gt;
# HPB feature (mkoderer)&lt;br /&gt;
# the fate of nova-network support in manila (gouthamr)&lt;br /&gt;
# multi-AZ tests in the gate&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 2 Jun, 2016, 15:00 UTC'''&lt;br /&gt;
# N-1 milestone (bswartz)&lt;br /&gt;
# Decision on APIv1 removal for newton (bswartz)&lt;br /&gt;
# Model updates from drivers (bswartz)&lt;br /&gt;
# Midcycle meetup&lt;br /&gt;
# Spec update&lt;br /&gt;
#* New spec - Extending share networks to span subnets - https://review.openstack.org/#/c/323646/ (gouthamr)&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 26 May, 2016, 15:00 UTC'''&lt;br /&gt;
# N-1 milestone&lt;br /&gt;
# Update access remaining work&lt;br /&gt;
# Topics not covered at design summit https://etherpad.openstack.org/p/newton-manila-contributor-meetup&lt;br /&gt;
#* Nova-network removal&lt;br /&gt;
#* APIv1 removal&lt;br /&gt;
#* Model updates from the driver&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 19 May, 2016, 15:00 UTC'''&lt;br /&gt;
# Topics not covered at design summit https://etherpad.openstack.org/p/newton-manila-contributor-meetup&lt;br /&gt;
#* UI Customization&lt;br /&gt;
# Share Backup(zhongjun)&lt;br /&gt;
# Snapshot Restore (cknight)&lt;br /&gt;
# Specs (ganso)&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 12 May, 2016, 15:00 UTC'''&lt;br /&gt;
# Driver private storage: https://review.openstack.org/#/c/315346/ (xyang)&lt;br /&gt;
#* Admin wants to check driver private storage before doing some actions on a resource, i.e., force delete a share or unmanage a share.&lt;br /&gt;
#* The patch proposes to add admin API to retrieve driver private storage data. Alternative approach proposed by Valeriy to use manila-manage (i.e., manila-manage driver-private-storage &amp;lt;uuid of a resource&amp;gt;). Which one should we choose?&lt;br /&gt;
# Topics not covered at design summit https://etherpad.openstack.org/p/newton-manila-contributor-meetup&lt;br /&gt;
#* Py3 functional tests&lt;br /&gt;
#* Replication with share networks&lt;br /&gt;
#* Service-check&lt;br /&gt;
#* Container driver&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 5 May, 2016, 15:00 UTC'''&lt;br /&gt;
# Topics not covered at design summit https://etherpad.openstack.org/p/newton-manila-contributor-meetup&lt;br /&gt;
#* Documentation update (dustins/gouthamr)&lt;br /&gt;
#* User messages&lt;br /&gt;
#* Experimental features in UI&lt;br /&gt;
#* Share/snapshot size mismatch&lt;br /&gt;
#  BP Specs (tbarron)&lt;br /&gt;
#* Need to ensure that the repo doesn't become &amp;quot;a wasteland of partial ideas where hope goes to die.&amp;quot;  (See http://lists.openstack.org/pipermail/openstack-dev/2016-May/094026.html)&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 14 Apr, 2016, 15:00 UTC'''&lt;br /&gt;
# Manage API retrying (gouthamr/nidhimittalhada)&lt;br /&gt;
# Tempest test structuring - resource sharing and cleanup issues (akerr)&lt;br /&gt;
# Snapshot support common capability in the documentation (gouthamr)&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 7 Apr, 2016, 15:00 UTC'''&lt;br /&gt;
# Access rules (bswartz)&lt;br /&gt;
# Design summit planning (bswartz)&lt;br /&gt;
#* Link: https://etherpad.openstack.org/p/manila-newton-summit-topics&lt;br /&gt;
# Release notes, continued (gouthamr)&lt;br /&gt;
#* Link: https://review.openstack.org/#/c/300656/&lt;br /&gt;
# Midcycle meetup&lt;br /&gt;
# Access Groups&lt;br /&gt;
#* https://wiki.openstack.org/wiki/Manila/design/access_groups&lt;br /&gt;
# Revert to snapshot&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 31 Mar, 2016, 15:00 UTC'''&lt;br /&gt;
# Mitaka release status&lt;br /&gt;
#* RC1 expected to be the Mitaka release build&lt;br /&gt;
#* Last day for a re-spin is today&lt;br /&gt;
#** http://lists.openstack.org/pipermail/openstack-dev/2016-March/090877.html&lt;br /&gt;
# Design summit planning&lt;br /&gt;
#* Final schedule confirms 2 fishbowls, 4 working sessions, 1 half-day meetup&lt;br /&gt;
#** http://lists.openstack.org/pipermail/openstack-dev/2016-March/091032.html&lt;br /&gt;
#* Voting open now for summit topics&lt;br /&gt;
#** https://etherpad.openstack.org/p/manila-newton-summit-topics&lt;br /&gt;
# Manila Documentation (gouthamr)&lt;br /&gt;
#* Where do our docs live? how do we maintain them? (In Tree: devref, adminref | out of tree: install-guide, config-ref, cloud-admin guide)&lt;br /&gt;
#* Need a docs liaison&lt;br /&gt;
#** https://wiki.openstack.org/wiki/CrossProjectLiaisons#Documentation&lt;br /&gt;
#* Release Notes&lt;br /&gt;
#** http://docs.openstack.org/developer/reno/usage.html&lt;br /&gt;
# Managing/unmanaging replicated shares and snapshots (gouthamr)&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 24 Mar, 2016, 15:00 UTC'''&lt;br /&gt;
# Design summit planning&lt;br /&gt;
#* https://etherpad.openstack.org/p/manila-newton-summit-topics&lt;br /&gt;
# Question about share servers (Jay.Xu)&lt;br /&gt;
#* Is there a way to get gateway IP address when the API setup_server() is invoked. I did not see this attribute in the input parameter network_info. Gateway IP is mandatory to create the interface for EMC storage which will be release coming soon, so it is expected that we can add the gateway IP into NetworkAllocation model if not.&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 10 Mar, 2016, 15:00 UTC'''&lt;br /&gt;
# Common Capabilities Matrix (dustins)&lt;br /&gt;
#* https://review.openstack.org/#/c/288504/&lt;br /&gt;
#* I'm adding a table in the Developer Reference documentation to show which common capabilities are supported by which backends and when that support started.&lt;br /&gt;
#* I've got most drivers covered now.&lt;br /&gt;
#* If you want me to add your capabilities, leave a review on the patch and I'll update the table!&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 25 Feb, 2016, 15:00 UTC'''&lt;br /&gt;
&lt;br /&gt;
# OpenStack bug smash event (toabctl, mkoderer)&lt;br /&gt;
## link: https://etherpad.openstack.org/p/OpenStack-Bug-Smash-Mitaka&lt;br /&gt;
# Status of new drivers&lt;br /&gt;
## M.3 deadline is a week away.&lt;br /&gt;
## Only a few things have merged in the last couple days.  At this rate, many things won't make it.&lt;br /&gt;
## Zuul is busy and will only get worse until the deadline.&lt;br /&gt;
## Multiple Manila gate breakages have occurred recently, and more are likely.&lt;br /&gt;
## The Manila tests are very unreliable at concurrency &amp;gt; 1.&lt;br /&gt;
## The generic driver is too slow to pass the gate at concurrency = 1.&lt;br /&gt;
## The new drivers *are* fast enough to run at concurrency = 1.&lt;br /&gt;
## The new drivers may not be 100% done, but they are done enough to pass reliably at concurrency = 1.&lt;br /&gt;
## We should switch voting to the new drivers NOW, or start throwing stuff overboard for the release.&lt;br /&gt;
# Next Manila mid-cycle location&lt;br /&gt;
## Proposal is to do it in Germany&lt;br /&gt;
## Need to know who could attend at that location.&lt;br /&gt;
## Would it make a difference if the Cinder mid-cycle happens in Dublin, and the Manila meeting is immediately before or after the Cinder one?&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 18 Feb, 2016, 15:00 UTC'''&lt;br /&gt;
&lt;br /&gt;
# Feature Proposal Freeze (bswartz)&lt;br /&gt;
# Open Discussion&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 11 Feb, 2016, 15:00 UTC'''&lt;br /&gt;
&lt;br /&gt;
# Hierarchical port binding support (mkoderer)&lt;br /&gt;
#* https://wiki.openstack.org/wiki/Manila/design/manila-newton-hpb-support&lt;br /&gt;
#* https://blueprints.launchpad.net/manila/+spec/manila-hpb-support&lt;br /&gt;
#* https://review.openstack.org/#/c/277731/&lt;br /&gt;
# Next Manila mid-cycle (mkoderer)&lt;br /&gt;
#* https://etherpad.openstack.org/p/manila-n-release-midcycle&lt;br /&gt;
# Replication + ZFS Driver (bswartz)&lt;br /&gt;
#* https://review.openstack.org/#/c/238572&lt;br /&gt;
# Driver FPF (bswartz)&lt;br /&gt;
#* https://review.openstack.org/#/c/279090/&lt;br /&gt;
#* https://review.openstack.org/#/c/278169/&lt;br /&gt;
# HDFS CI (bswartz)&lt;br /&gt;
'''Scheduled for 4 Feb, 2016, 15:00 UTC'''&lt;br /&gt;
# Data service handling protocol mount commands (ganso)&lt;br /&gt;
#* https://etherpad.openstack.org/p/manila-data-service-mount-meeting&lt;br /&gt;
# Separate process for copy on data service (tpsilva)&lt;br /&gt;
# ZFS driver (bswartz)&lt;br /&gt;
# First party drivers share migration support cooperation (ganso)&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 28 Jan, 2016, 15:00 UTC'''&lt;br /&gt;
# Hierarchical port binding support (mkoderer)&lt;br /&gt;
#* https://etherpad.openstack.org/p/manila-hierarchical-port-binding&lt;br /&gt;
# Core reviewer team and other manila-related projects (bswartz)&lt;br /&gt;
# Replication status (bswartz)&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 21 Jan, 2016, 15:00 UTC'''&lt;br /&gt;
# Update_access backwards compatibility approach discussion. (ganso)&lt;br /&gt;
# Exposing the Data Service to drivers. (ganso)&lt;br /&gt;
# Snapshot manage/unmanage (bswartz)&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 17 Dec, 2015, 15:00 UTC'''&lt;br /&gt;
# Proposal for share groups (cknight)&lt;br /&gt;
# Liberty.1 stable release (bswartz)&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 10 Dec, 2015, 15:00 UTC'''&lt;br /&gt;
# The most of the driver already report the &amp;quot;'QoS_support': False&amp;quot; to scheduler. Does we need to remove it or save it as Qos support flat? and write 'QoS_support' to capabilities_and_extra_specs.rst?(zhongjun)&lt;br /&gt;
##https://github.com/openstack/manila/blob/master/manila/share/drivers/hpe/hpe_3par_driver.py#L391&lt;br /&gt;
##https://github.com/openstack/manila/blob/master/manila/share/drivers/hitachi/hds_hnas.py#L354&lt;br /&gt;
##https://github.com/openstack/manila/blob/master/manila/share/drivers/netapp/dataontap/cluster_mode/lib_base.py#L257&lt;br /&gt;
##https://github.com/openstack/manila/blob/master/manila/scheduler/host_manager.py#L111&lt;br /&gt;
##https://review.openstack.org/#/c/247286/4/doc/source/devref/capabilities_and_extra_specs.rst&lt;br /&gt;
# Architectural concerns and interoperability of new features (cknight)&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 3 Dec, 2015, 15:00 UTC'''&lt;br /&gt;
# Midcycle meetup&lt;br /&gt;
# Add &amp;quot;data loss&amp;quot; flag in DB migrations which lead to losing of existing data and update &amp;quot;manila-manage db sync&amp;quot; command to forbid applying such migrations without &amp;quot;--force&amp;quot; flag (u_glide)&lt;br /&gt;
# Reorganization of Manila scheduler to merge oslo-incubator code and simplify future maintenance  (cknight)&lt;br /&gt;
## https://review.openstack.org/#/c/252060/&lt;br /&gt;
## Mostly for awareness, this is now merged and should be backwards compatible.&lt;br /&gt;
## Cinder could benefit from a similar treatment.  And with the incubator gone, we could explore a common library with the Cinder team, since the heretofore shared components are certain to diverge over time, but I'm not sure how receptive they would be.  Xing?&lt;br /&gt;
# CI reliability&lt;br /&gt;
## Why should we merge patches for drivers whose CI systems consistently fail?  This negates the value of CI.  I think that accepting patches that aren't proven by CI does a disservice to everyone, most of all to the driver owners themselves.  Refusing to merge driver patches without a good CI result for that driver seems like a gentler and more uniform-over-time approach than threatening to throw out a driver near the end of a release.  And why make our illustrious and overworked PTL be the CI policeman when all core reviewers could simply glance at the corresponding CI result before giving +A?  (cknight)&lt;br /&gt;
## http://ci-watch.tintri.com/project?project=manila&lt;br /&gt;
## https://review.openstack.org/#/c/232293/&lt;br /&gt;
## https://review.openstack.org/#/c/235522/&lt;br /&gt;
## https://review.openstack.org/#/c/235726/&lt;br /&gt;
## https://review.openstack.org/#/c/249999/&lt;br /&gt;
## https://review.openstack.org/#/c/237454/&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 19 Nov, 2015, 15:00 UTC'''&lt;br /&gt;
# GB --&amp;gt; GiB (markstur)&lt;br /&gt;
# OpenStack Manuals and Devref (markstur)&lt;br /&gt;
#* Config Ref (and others) are moving to .RST!&lt;br /&gt;
#* How should we document prior releases in devref?&lt;br /&gt;
# Midcycle Meetup Date (bswartz)&lt;br /&gt;
# Deadlines for features (bswartz)&lt;br /&gt;
#* Feature proposal freeze vs Big Features&lt;br /&gt;
#* New drivers&lt;br /&gt;
# Data Copy Service network approach discussion (ganso)&lt;br /&gt;
#* https://drive.google.com/file/d/0B30HPZmaePCHMlAzcjJlYm5rRTA/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 12 Nov, 2015, 15:00 UTC'''&lt;br /&gt;
# Which method is better for Manila QoS(independent way or just use extra specs ) (zhongjun)&lt;br /&gt;
#* link:http://paste.openstack.org/show/477677/ &lt;br /&gt;
#*If use extra specs to config QoS, Does we first need add “QoS_support=true/false” in share_type. Does we need to add QoS_support flag in common capabilities&lt;br /&gt;
#**https://github.com/openstack/manila/blob/master/doc/source/devref/capabilities_and_extra_specs.rst)?&lt;br /&gt;
#** eg:  share_type: qos_support='&amp;lt;is&amp;gt; True' or '&amp;lt;is&amp;gt; False' &lt;br /&gt;
#**                            netapp:max_iops=100  or qos:netapp:max_iops=100 or qos:max_iops=100&lt;br /&gt;
#**        driver update: qos_support=true&lt;br /&gt;
#** An alternative could be to have the driver report a range&lt;br /&gt;
# Manila DR update (ameade)&lt;br /&gt;
#* Still no reviews on https://review.openstack.org/#/c/238572/&lt;br /&gt;
#* First-party driver implementation? Which driver, current generic or new solution? When do we need this implemented and who wants to do it?&lt;br /&gt;
#* Replication_change share state - This is the state of the share when any of it's replicas are being promoted. Is 'replication_change' good or is there a better phrase?&lt;br /&gt;
# Manila Driver minimum requirements document update (ganso)&lt;br /&gt;
# Manila Data Copy service name (bswartz)&lt;br /&gt;
#*https://review.openstack.org/#/c/244286/&lt;br /&gt;
# Upcoming change for Manila CI hooks (vponomaryov)&lt;br /&gt;
#*https://review.openstack.org/#/c/243233/&lt;br /&gt;
# Manilaclient enhancement to provide request_id when set http_log_debug is True. It will co-ordinate the request and its id, so it will be helpful to filter the log and the failed request. (Jay Xu)&lt;br /&gt;
#*http://paste.openstack.org/show/478675/&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 5 Nov, 2015, 15:00 UTC'''&lt;br /&gt;
# Decide on read-only access rules as a required feature&lt;br /&gt;
# Manila DR - Design/Code feedback (gouthamr) &lt;br /&gt;
#* [https://wiki.openstack.org/wiki/Manila/design/manila-mitaka-data-replication Design Document]&lt;br /&gt;
#* [https://review.openstack.org/#/c/238572/ Core Implementation on Gerrit]&lt;br /&gt;
#* [https://review.openstack.org/#/c/235448/ Client Implementation on Gerrit]&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 1 Oct, 2015, 15:00 UTC'''&lt;br /&gt;
# Liberty RC2 status&lt;br /&gt;
#* https://launchpad.net/manila/+milestone/liberty-rc2&lt;br /&gt;
#* https://review.openstack.org/#/q/project:openstack/manila+branch:stable/liberty,n,z&lt;br /&gt;
# Mitaka Design Summit&lt;br /&gt;
#* https://etherpad.openstack.org/p/manila-mitaka-summit-topics&lt;br /&gt;
# Vendor driver docs&lt;br /&gt;
#* https://github.com/openstack/manila/blob/master/doc/source/devref/share_back_ends_feature_support_mapping.rst&lt;br /&gt;
# Manila Client Nova Style Microversion Support (cfouts)&lt;br /&gt;
#* https://review.openstack.org/#/c/229142/&lt;br /&gt;
#* http://docs.openstack.org/developer/manila/devref/api_microversion_dev.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 24 Sep, 2015, 15:00 UTC'''&lt;br /&gt;
# 3rd-party CI status&lt;br /&gt;
#* http://ec2-54-67-102-119.us-west-1.compute.amazonaws.com:5000/?project=openstack/manila&amp;amp;user=&amp;amp;timeframe=72&amp;amp;start=&amp;amp;end=&amp;amp;page_size=500&lt;br /&gt;
#* http://ci-watch.tintri.com/project?project=manila&lt;br /&gt;
# Liberty RC status&lt;br /&gt;
# Support for QoS in Manila (zhongjun2)&lt;br /&gt;
#* https://blueprints.launchpad.net/manila/+spec/manila-support-qos&lt;br /&gt;
#* https://wiki.openstack.org/wiki/Manila/QoS&lt;br /&gt;
# Reminder for backend driver maintainers to update feature support table (toabctl)&lt;br /&gt;
#* http://docs.openstack.org/developer/manila/devref/share_back_ends_feature_support_mapping.html&lt;br /&gt;
# Regression when using NetApp - license issue with netapp_lib (toabctl)&lt;br /&gt;
#* https://bugs.launchpad.net/cinder/+bug/1499334&lt;br /&gt;
# Mitaka Design Summit&lt;br /&gt;
#* Propose topics - https://etherpad.openstack.org/p/manila-mitaka-summit-topics&lt;br /&gt;
# Vendor driver docs&lt;br /&gt;
# Open Discussion&lt;/div&gt;</summary>
		<author><name>Clinton Knight</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Manila/Meetings&amp;diff=131652</id>
		<title>Manila/Meetings</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Manila/Meetings&amp;diff=131652"/>
				<updated>2016-08-24T16:32:58Z</updated>
		
		<summary type="html">&lt;p&gt;Clinton Knight: /* Next meeting */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Weekly Manila team meeting =&lt;br /&gt;
'''NOTE MEETING TIME: Thursday at 15:00 UTC'''&lt;br /&gt;
&lt;br /&gt;
If you're interested in management of shared filesystems for OpenStack, we have a weekly meetings in &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;#openstack-meeting-alt&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;, on Thursdays at 15:00 UTC.  Please feel free to add items to the agenda below.  NOTE: When adding topics please include your IRC name so we know who's topic it is and how to get more info.&lt;br /&gt;
&lt;br /&gt;
'''Previous meeting logs can be found here:''' http://eavesdrop.openstack.org/meetings/manila/&lt;br /&gt;
&lt;br /&gt;
== Next meeting ==&lt;br /&gt;
'''NOTE:''' ''Include your IRC nickname next to agenda items so that you can be called upon in the meeting and arrive at the meeting promptly if placing items in agenda. You might want to put this on your calendar if you are adding items.''&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 25 Aug, 2016, 15:00 UTC'''&lt;br /&gt;
# Huawei share replication and CI&lt;br /&gt;
# IPv6 (cknight)&lt;br /&gt;
# Open Discussion&lt;br /&gt;
&lt;br /&gt;
== Previous meetings ==&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 18 Aug, 2016, 15:00 UTC'''&lt;br /&gt;
# Driver private data admin API&lt;br /&gt;
#* Disagreement abounds on how this API is to be designed, tested, and presented.&lt;br /&gt;
#* https://review.openstack.org/#/c/315346/&lt;br /&gt;
# Scenario tests are broken&lt;br /&gt;
#* http://logs.openstack.org/86/309286/34/check/gate-manila-tempest-dsvm-scenario/610f96e/console.html&lt;br /&gt;
# Revert to snapshot&lt;br /&gt;
#* https://review.openstack.org/#/c/340502/&lt;br /&gt;
#* https://review.openstack.org/#/c/356682/&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Scheduled for 11 Aug, 2016, 15:00 UTC&amp;quot;&lt;br /&gt;
# None&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 4 Aug, 2016, 15:00 UTC'''&lt;br /&gt;
# Migration APIs&lt;br /&gt;
#* http://lists.openstack.org/pipermail/openstack-dev/2016-August/100682.html&lt;br /&gt;
# Correct approach for avoiding races&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 28 Jul, 2016, 15:00 UTC'''&lt;br /&gt;
# Stepping Down as Docs Liaison (dustins)&lt;br /&gt;
#* Current job responsibilities don't give me the time to devote to this that I'd like to have, so it should go to someone else with a passion for documentation and has the willingness and desire for taking up the mantle.&lt;br /&gt;
# N-3 Review focus&lt;br /&gt;
#* https://etherpad.openstack.org/p/manila-newton3-priorities&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 21 Jul, 2016, 15:00 UTC'''&lt;br /&gt;
# Migrate API reference into tree (dgonzalez)&lt;br /&gt;
#* https://review.openstack.org/#/c/313874/&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 14 Jul, 2016, 15:00 UTC'''&lt;br /&gt;
# N-2 milestone&lt;br /&gt;
# Managing initial security (of the root directory) for new shares&lt;br /&gt;
# Mascot/Logo discussion&lt;br /&gt;
# Tempest alternatives&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 30 Jun, 2016, 15:00 UTC'''&lt;br /&gt;
# non-disruptive nfs-ganesha export modifications (rraja/tbarron)&lt;br /&gt;
#* https://sourceforge.net/p/nfs-ganesha/mailman/message/35173839&lt;br /&gt;
# share backup spec discussion (zhongjun)&lt;br /&gt;
#* https://review.openstack.org/#/c/330306&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 23 Jun, 2016, 15:00 UTC'''&lt;br /&gt;
# Implement extend and shrink features for glusterfs driver (DaiDV)&lt;br /&gt;
# Do all drivers have to inherit from driver.ShareDriver? (mkoderer)&lt;br /&gt;
# Creating a second share instance for driver-assisted migration (ganso)&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 16 Jun, 2016, 15:00 UTC'''&lt;br /&gt;
# A share support multiple protocols (zhongjun)&lt;br /&gt;
#* https://review.openstack.org/#/c/329392/&lt;br /&gt;
# Drivers with minimum size for shares (tpsilva)&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 9 Jun, 2016, 15:00 UTC'''&lt;br /&gt;
# HPB feature (mkoderer)&lt;br /&gt;
# the fate of nova-network support in manila (gouthamr)&lt;br /&gt;
# multi-AZ tests in the gate&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 2 Jun, 2016, 15:00 UTC'''&lt;br /&gt;
# N-1 milestone (bswartz)&lt;br /&gt;
# Decision on APIv1 removal for newton (bswartz)&lt;br /&gt;
# Model updates from drivers (bswartz)&lt;br /&gt;
# Midcycle meetup&lt;br /&gt;
# Spec update&lt;br /&gt;
#* New spec - Extending share networks to span subnets - https://review.openstack.org/#/c/323646/ (gouthamr)&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 26 May, 2016, 15:00 UTC'''&lt;br /&gt;
# N-1 milestone&lt;br /&gt;
# Update access remaining work&lt;br /&gt;
# Topics not covered at design summit https://etherpad.openstack.org/p/newton-manila-contributor-meetup&lt;br /&gt;
#* Nova-network removal&lt;br /&gt;
#* APIv1 removal&lt;br /&gt;
#* Model updates from the driver&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 19 May, 2016, 15:00 UTC'''&lt;br /&gt;
# Topics not covered at design summit https://etherpad.openstack.org/p/newton-manila-contributor-meetup&lt;br /&gt;
#* UI Customization&lt;br /&gt;
# Share Backup(zhongjun)&lt;br /&gt;
# Snapshot Restore (cknight)&lt;br /&gt;
# Specs (ganso)&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 12 May, 2016, 15:00 UTC'''&lt;br /&gt;
# Driver private storage: https://review.openstack.org/#/c/315346/ (xyang)&lt;br /&gt;
#* Admin wants to check driver private storage before doing some actions on a resource, i.e., force delete a share or unmanage a share.&lt;br /&gt;
#* The patch proposes to add admin API to retrieve driver private storage data. Alternative approach proposed by Valeriy to use manila-manage (i.e., manila-manage driver-private-storage &amp;lt;uuid of a resource&amp;gt;). Which one should we choose?&lt;br /&gt;
# Topics not covered at design summit https://etherpad.openstack.org/p/newton-manila-contributor-meetup&lt;br /&gt;
#* Py3 functional tests&lt;br /&gt;
#* Replication with share networks&lt;br /&gt;
#* Service-check&lt;br /&gt;
#* Container driver&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 5 May, 2016, 15:00 UTC'''&lt;br /&gt;
# Topics not covered at design summit https://etherpad.openstack.org/p/newton-manila-contributor-meetup&lt;br /&gt;
#* Documentation update (dustins/gouthamr)&lt;br /&gt;
#* User messages&lt;br /&gt;
#* Experimental features in UI&lt;br /&gt;
#* Share/snapshot size mismatch&lt;br /&gt;
#  BP Specs (tbarron)&lt;br /&gt;
#* Need to ensure that the repo doesn't become &amp;quot;a wasteland of partial ideas where hope goes to die.&amp;quot;  (See http://lists.openstack.org/pipermail/openstack-dev/2016-May/094026.html)&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 14 Apr, 2016, 15:00 UTC'''&lt;br /&gt;
# Manage API retrying (gouthamr/nidhimittalhada)&lt;br /&gt;
# Tempest test structuring - resource sharing and cleanup issues (akerr)&lt;br /&gt;
# Snapshot support common capability in the documentation (gouthamr)&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 7 Apr, 2016, 15:00 UTC'''&lt;br /&gt;
# Access rules (bswartz)&lt;br /&gt;
# Design summit planning (bswartz)&lt;br /&gt;
#* Link: https://etherpad.openstack.org/p/manila-newton-summit-topics&lt;br /&gt;
# Release notes, continued (gouthamr)&lt;br /&gt;
#* Link: https://review.openstack.org/#/c/300656/&lt;br /&gt;
# Midcycle meetup&lt;br /&gt;
# Access Groups&lt;br /&gt;
#* https://wiki.openstack.org/wiki/Manila/design/access_groups&lt;br /&gt;
# Revert to snapshot&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 31 Mar, 2016, 15:00 UTC'''&lt;br /&gt;
# Mitaka release status&lt;br /&gt;
#* RC1 expected to be the Mitaka release build&lt;br /&gt;
#* Last day for a re-spin is today&lt;br /&gt;
#** http://lists.openstack.org/pipermail/openstack-dev/2016-March/090877.html&lt;br /&gt;
# Design summit planning&lt;br /&gt;
#* Final schedule confirms 2 fishbowls, 4 working sessions, 1 half-day meetup&lt;br /&gt;
#** http://lists.openstack.org/pipermail/openstack-dev/2016-March/091032.html&lt;br /&gt;
#* Voting open now for summit topics&lt;br /&gt;
#** https://etherpad.openstack.org/p/manila-newton-summit-topics&lt;br /&gt;
# Manila Documentation (gouthamr)&lt;br /&gt;
#* Where do our docs live? how do we maintain them? (In Tree: devref, adminref | out of tree: install-guide, config-ref, cloud-admin guide)&lt;br /&gt;
#* Need a docs liaison&lt;br /&gt;
#** https://wiki.openstack.org/wiki/CrossProjectLiaisons#Documentation&lt;br /&gt;
#* Release Notes&lt;br /&gt;
#** http://docs.openstack.org/developer/reno/usage.html&lt;br /&gt;
# Managing/unmanaging replicated shares and snapshots (gouthamr)&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 24 Mar, 2016, 15:00 UTC'''&lt;br /&gt;
# Design summit planning&lt;br /&gt;
#* https://etherpad.openstack.org/p/manila-newton-summit-topics&lt;br /&gt;
# Question about share servers (Jay.Xu)&lt;br /&gt;
#* Is there a way to get gateway IP address when the API setup_server() is invoked. I did not see this attribute in the input parameter network_info. Gateway IP is mandatory to create the interface for EMC storage which will be release coming soon, so it is expected that we can add the gateway IP into NetworkAllocation model if not.&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 10 Mar, 2016, 15:00 UTC'''&lt;br /&gt;
# Common Capabilities Matrix (dustins)&lt;br /&gt;
#* https://review.openstack.org/#/c/288504/&lt;br /&gt;
#* I'm adding a table in the Developer Reference documentation to show which common capabilities are supported by which backends and when that support started.&lt;br /&gt;
#* I've got most drivers covered now.&lt;br /&gt;
#* If you want me to add your capabilities, leave a review on the patch and I'll update the table!&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 25 Feb, 2016, 15:00 UTC'''&lt;br /&gt;
&lt;br /&gt;
# OpenStack bug smash event (toabctl, mkoderer)&lt;br /&gt;
## link: https://etherpad.openstack.org/p/OpenStack-Bug-Smash-Mitaka&lt;br /&gt;
# Status of new drivers&lt;br /&gt;
## M.3 deadline is a week away.&lt;br /&gt;
## Only a few things have merged in the last couple days.  At this rate, many things won't make it.&lt;br /&gt;
## Zuul is busy and will only get worse until the deadline.&lt;br /&gt;
## Multiple Manila gate breakages have occurred recently, and more are likely.&lt;br /&gt;
## The Manila tests are very unreliable at concurrency &amp;gt; 1.&lt;br /&gt;
## The generic driver is too slow to pass the gate at concurrency = 1.&lt;br /&gt;
## The new drivers *are* fast enough to run at concurrency = 1.&lt;br /&gt;
## The new drivers may not be 100% done, but they are done enough to pass reliably at concurrency = 1.&lt;br /&gt;
## We should switch voting to the new drivers NOW, or start throwing stuff overboard for the release.&lt;br /&gt;
# Next Manila mid-cycle location&lt;br /&gt;
## Proposal is to do it in Germany&lt;br /&gt;
## Need to know who could attend at that location.&lt;br /&gt;
## Would it make a difference if the Cinder mid-cycle happens in Dublin, and the Manila meeting is immediately before or after the Cinder one?&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 18 Feb, 2016, 15:00 UTC'''&lt;br /&gt;
&lt;br /&gt;
# Feature Proposal Freeze (bswartz)&lt;br /&gt;
# Open Discussion&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 11 Feb, 2016, 15:00 UTC'''&lt;br /&gt;
&lt;br /&gt;
# Hierarchical port binding support (mkoderer)&lt;br /&gt;
#* https://wiki.openstack.org/wiki/Manila/design/manila-newton-hpb-support&lt;br /&gt;
#* https://blueprints.launchpad.net/manila/+spec/manila-hpb-support&lt;br /&gt;
#* https://review.openstack.org/#/c/277731/&lt;br /&gt;
# Next Manila mid-cycle (mkoderer)&lt;br /&gt;
#* https://etherpad.openstack.org/p/manila-n-release-midcycle&lt;br /&gt;
# Replication + ZFS Driver (bswartz)&lt;br /&gt;
#* https://review.openstack.org/#/c/238572&lt;br /&gt;
# Driver FPF (bswartz)&lt;br /&gt;
#* https://review.openstack.org/#/c/279090/&lt;br /&gt;
#* https://review.openstack.org/#/c/278169/&lt;br /&gt;
# HDFS CI (bswartz)&lt;br /&gt;
'''Scheduled for 4 Feb, 2016, 15:00 UTC'''&lt;br /&gt;
# Data service handling protocol mount commands (ganso)&lt;br /&gt;
#* https://etherpad.openstack.org/p/manila-data-service-mount-meeting&lt;br /&gt;
# Separate process for copy on data service (tpsilva)&lt;br /&gt;
# ZFS driver (bswartz)&lt;br /&gt;
# First party drivers share migration support cooperation (ganso)&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 28 Jan, 2016, 15:00 UTC'''&lt;br /&gt;
# Hierarchical port binding support (mkoderer)&lt;br /&gt;
#* https://etherpad.openstack.org/p/manila-hierarchical-port-binding&lt;br /&gt;
# Core reviewer team and other manila-related projects (bswartz)&lt;br /&gt;
# Replication status (bswartz)&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 21 Jan, 2016, 15:00 UTC'''&lt;br /&gt;
# Update_access backwards compatibility approach discussion. (ganso)&lt;br /&gt;
# Exposing the Data Service to drivers. (ganso)&lt;br /&gt;
# Snapshot manage/unmanage (bswartz)&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 17 Dec, 2015, 15:00 UTC'''&lt;br /&gt;
# Proposal for share groups (cknight)&lt;br /&gt;
# Liberty.1 stable release (bswartz)&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 10 Dec, 2015, 15:00 UTC'''&lt;br /&gt;
# The most of the driver already report the &amp;quot;'QoS_support': False&amp;quot; to scheduler. Does we need to remove it or save it as Qos support flat? and write 'QoS_support' to capabilities_and_extra_specs.rst?(zhongjun)&lt;br /&gt;
##https://github.com/openstack/manila/blob/master/manila/share/drivers/hpe/hpe_3par_driver.py#L391&lt;br /&gt;
##https://github.com/openstack/manila/blob/master/manila/share/drivers/hitachi/hds_hnas.py#L354&lt;br /&gt;
##https://github.com/openstack/manila/blob/master/manila/share/drivers/netapp/dataontap/cluster_mode/lib_base.py#L257&lt;br /&gt;
##https://github.com/openstack/manila/blob/master/manila/scheduler/host_manager.py#L111&lt;br /&gt;
##https://review.openstack.org/#/c/247286/4/doc/source/devref/capabilities_and_extra_specs.rst&lt;br /&gt;
# Architectural concerns and interoperability of new features (cknight)&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 3 Dec, 2015, 15:00 UTC'''&lt;br /&gt;
# Midcycle meetup&lt;br /&gt;
# Add &amp;quot;data loss&amp;quot; flag in DB migrations which lead to losing of existing data and update &amp;quot;manila-manage db sync&amp;quot; command to forbid applying such migrations without &amp;quot;--force&amp;quot; flag (u_glide)&lt;br /&gt;
# Reorganization of Manila scheduler to merge oslo-incubator code and simplify future maintenance  (cknight)&lt;br /&gt;
## https://review.openstack.org/#/c/252060/&lt;br /&gt;
## Mostly for awareness, this is now merged and should be backwards compatible.&lt;br /&gt;
## Cinder could benefit from a similar treatment.  And with the incubator gone, we could explore a common library with the Cinder team, since the heretofore shared components are certain to diverge over time, but I'm not sure how receptive they would be.  Xing?&lt;br /&gt;
# CI reliability&lt;br /&gt;
## Why should we merge patches for drivers whose CI systems consistently fail?  This negates the value of CI.  I think that accepting patches that aren't proven by CI does a disservice to everyone, most of all to the driver owners themselves.  Refusing to merge driver patches without a good CI result for that driver seems like a gentler and more uniform-over-time approach than threatening to throw out a driver near the end of a release.  And why make our illustrious and overworked PTL be the CI policeman when all core reviewers could simply glance at the corresponding CI result before giving +A?  (cknight)&lt;br /&gt;
## http://ci-watch.tintri.com/project?project=manila&lt;br /&gt;
## https://review.openstack.org/#/c/232293/&lt;br /&gt;
## https://review.openstack.org/#/c/235522/&lt;br /&gt;
## https://review.openstack.org/#/c/235726/&lt;br /&gt;
## https://review.openstack.org/#/c/249999/&lt;br /&gt;
## https://review.openstack.org/#/c/237454/&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 19 Nov, 2015, 15:00 UTC'''&lt;br /&gt;
# GB --&amp;gt; GiB (markstur)&lt;br /&gt;
# OpenStack Manuals and Devref (markstur)&lt;br /&gt;
#* Config Ref (and others) are moving to .RST!&lt;br /&gt;
#* How should we document prior releases in devref?&lt;br /&gt;
# Midcycle Meetup Date (bswartz)&lt;br /&gt;
# Deadlines for features (bswartz)&lt;br /&gt;
#* Feature proposal freeze vs Big Features&lt;br /&gt;
#* New drivers&lt;br /&gt;
# Data Copy Service network approach discussion (ganso)&lt;br /&gt;
#* https://drive.google.com/file/d/0B30HPZmaePCHMlAzcjJlYm5rRTA/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 12 Nov, 2015, 15:00 UTC'''&lt;br /&gt;
# Which method is better for Manila QoS(independent way or just use extra specs ) (zhongjun)&lt;br /&gt;
#* link:http://paste.openstack.org/show/477677/ &lt;br /&gt;
#*If use extra specs to config QoS, Does we first need add “QoS_support=true/false” in share_type. Does we need to add QoS_support flag in common capabilities&lt;br /&gt;
#**https://github.com/openstack/manila/blob/master/doc/source/devref/capabilities_and_extra_specs.rst)?&lt;br /&gt;
#** eg:  share_type: qos_support='&amp;lt;is&amp;gt; True' or '&amp;lt;is&amp;gt; False' &lt;br /&gt;
#**                            netapp:max_iops=100  or qos:netapp:max_iops=100 or qos:max_iops=100&lt;br /&gt;
#**        driver update: qos_support=true&lt;br /&gt;
#** An alternative could be to have the driver report a range&lt;br /&gt;
# Manila DR update (ameade)&lt;br /&gt;
#* Still no reviews on https://review.openstack.org/#/c/238572/&lt;br /&gt;
#* First-party driver implementation? Which driver, current generic or new solution? When do we need this implemented and who wants to do it?&lt;br /&gt;
#* Replication_change share state - This is the state of the share when any of it's replicas are being promoted. Is 'replication_change' good or is there a better phrase?&lt;br /&gt;
# Manila Driver minimum requirements document update (ganso)&lt;br /&gt;
# Manila Data Copy service name (bswartz)&lt;br /&gt;
#*https://review.openstack.org/#/c/244286/&lt;br /&gt;
# Upcoming change for Manila CI hooks (vponomaryov)&lt;br /&gt;
#*https://review.openstack.org/#/c/243233/&lt;br /&gt;
# Manilaclient enhancement to provide request_id when set http_log_debug is True. It will co-ordinate the request and its id, so it will be helpful to filter the log and the failed request. (Jay Xu)&lt;br /&gt;
#*http://paste.openstack.org/show/478675/&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 5 Nov, 2015, 15:00 UTC'''&lt;br /&gt;
# Decide on read-only access rules as a required feature&lt;br /&gt;
# Manila DR - Design/Code feedback (gouthamr) &lt;br /&gt;
#* [https://wiki.openstack.org/wiki/Manila/design/manila-mitaka-data-replication Design Document]&lt;br /&gt;
#* [https://review.openstack.org/#/c/238572/ Core Implementation on Gerrit]&lt;br /&gt;
#* [https://review.openstack.org/#/c/235448/ Client Implementation on Gerrit]&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 1 Oct, 2015, 15:00 UTC'''&lt;br /&gt;
# Liberty RC2 status&lt;br /&gt;
#* https://launchpad.net/manila/+milestone/liberty-rc2&lt;br /&gt;
#* https://review.openstack.org/#/q/project:openstack/manila+branch:stable/liberty,n,z&lt;br /&gt;
# Mitaka Design Summit&lt;br /&gt;
#* https://etherpad.openstack.org/p/manila-mitaka-summit-topics&lt;br /&gt;
# Vendor driver docs&lt;br /&gt;
#* https://github.com/openstack/manila/blob/master/doc/source/devref/share_back_ends_feature_support_mapping.rst&lt;br /&gt;
# Manila Client Nova Style Microversion Support (cfouts)&lt;br /&gt;
#* https://review.openstack.org/#/c/229142/&lt;br /&gt;
#* http://docs.openstack.org/developer/manila/devref/api_microversion_dev.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 24 Sep, 2015, 15:00 UTC'''&lt;br /&gt;
# 3rd-party CI status&lt;br /&gt;
#* http://ec2-54-67-102-119.us-west-1.compute.amazonaws.com:5000/?project=openstack/manila&amp;amp;user=&amp;amp;timeframe=72&amp;amp;start=&amp;amp;end=&amp;amp;page_size=500&lt;br /&gt;
#* http://ci-watch.tintri.com/project?project=manila&lt;br /&gt;
# Liberty RC status&lt;br /&gt;
# Support for QoS in Manila (zhongjun2)&lt;br /&gt;
#* https://blueprints.launchpad.net/manila/+spec/manila-support-qos&lt;br /&gt;
#* https://wiki.openstack.org/wiki/Manila/QoS&lt;br /&gt;
# Reminder for backend driver maintainers to update feature support table (toabctl)&lt;br /&gt;
#* http://docs.openstack.org/developer/manila/devref/share_back_ends_feature_support_mapping.html&lt;br /&gt;
# Regression when using NetApp - license issue with netapp_lib (toabctl)&lt;br /&gt;
#* https://bugs.launchpad.net/cinder/+bug/1499334&lt;br /&gt;
# Mitaka Design Summit&lt;br /&gt;
#* Propose topics - https://etherpad.openstack.org/p/manila-mitaka-summit-topics&lt;br /&gt;
# Vendor driver docs&lt;br /&gt;
# Open Discussion&lt;/div&gt;</summary>
		<author><name>Clinton Knight</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Manila/Meetings&amp;diff=131650</id>
		<title>Manila/Meetings</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Manila/Meetings&amp;diff=131650"/>
				<updated>2016-08-24T16:31:24Z</updated>
		
		<summary type="html">&lt;p&gt;Clinton Knight: /* Next meeting */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Weekly Manila team meeting =&lt;br /&gt;
'''NOTE MEETING TIME: Thursday at 15:00 UTC'''&lt;br /&gt;
&lt;br /&gt;
If you're interested in management of shared filesystems for OpenStack, we have a weekly meetings in &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;#openstack-meeting-alt&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;, on Thursdays at 15:00 UTC.  Please feel free to add items to the agenda below.  NOTE: When adding topics please include your IRC name so we know who's topic it is and how to get more info.&lt;br /&gt;
&lt;br /&gt;
'''Previous meeting logs can be found here:''' http://eavesdrop.openstack.org/meetings/manila/&lt;br /&gt;
&lt;br /&gt;
== Next meeting ==&lt;br /&gt;
'''NOTE:''' ''Include your IRC nickname next to agenda items so that you can be called upon in the meeting and arrive at the meeting promptly if placing items in agenda. You might want to put this on your calendar if you are adding items.''&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 25 Aug, 2016, 15:00 UTC'''&lt;br /&gt;
# Huawei share replication and CI&lt;br /&gt;
# IPv6&lt;br /&gt;
# Open Discussion&lt;br /&gt;
&lt;br /&gt;
== Previous meetings ==&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 18 Aug, 2016, 15:00 UTC'''&lt;br /&gt;
# Driver private data admin API&lt;br /&gt;
#* Disagreement abounds on how this API is to be designed, tested, and presented.&lt;br /&gt;
#* https://review.openstack.org/#/c/315346/&lt;br /&gt;
# Scenario tests are broken&lt;br /&gt;
#* http://logs.openstack.org/86/309286/34/check/gate-manila-tempest-dsvm-scenario/610f96e/console.html&lt;br /&gt;
# Revert to snapshot&lt;br /&gt;
#* https://review.openstack.org/#/c/340502/&lt;br /&gt;
#* https://review.openstack.org/#/c/356682/&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Scheduled for 11 Aug, 2016, 15:00 UTC&amp;quot;&lt;br /&gt;
# None&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 4 Aug, 2016, 15:00 UTC'''&lt;br /&gt;
# Migration APIs&lt;br /&gt;
#* http://lists.openstack.org/pipermail/openstack-dev/2016-August/100682.html&lt;br /&gt;
# Correct approach for avoiding races&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 28 Jul, 2016, 15:00 UTC'''&lt;br /&gt;
# Stepping Down as Docs Liaison (dustins)&lt;br /&gt;
#* Current job responsibilities don't give me the time to devote to this that I'd like to have, so it should go to someone else with a passion for documentation and has the willingness and desire for taking up the mantle.&lt;br /&gt;
# N-3 Review focus&lt;br /&gt;
#* https://etherpad.openstack.org/p/manila-newton3-priorities&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 21 Jul, 2016, 15:00 UTC'''&lt;br /&gt;
# Migrate API reference into tree (dgonzalez)&lt;br /&gt;
#* https://review.openstack.org/#/c/313874/&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 14 Jul, 2016, 15:00 UTC'''&lt;br /&gt;
# N-2 milestone&lt;br /&gt;
# Managing initial security (of the root directory) for new shares&lt;br /&gt;
# Mascot/Logo discussion&lt;br /&gt;
# Tempest alternatives&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 30 Jun, 2016, 15:00 UTC'''&lt;br /&gt;
# non-disruptive nfs-ganesha export modifications (rraja/tbarron)&lt;br /&gt;
#* https://sourceforge.net/p/nfs-ganesha/mailman/message/35173839&lt;br /&gt;
# share backup spec discussion (zhongjun)&lt;br /&gt;
#* https://review.openstack.org/#/c/330306&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 23 Jun, 2016, 15:00 UTC'''&lt;br /&gt;
# Implement extend and shrink features for glusterfs driver (DaiDV)&lt;br /&gt;
# Do all drivers have to inherit from driver.ShareDriver? (mkoderer)&lt;br /&gt;
# Creating a second share instance for driver-assisted migration (ganso)&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 16 Jun, 2016, 15:00 UTC'''&lt;br /&gt;
# A share support multiple protocols (zhongjun)&lt;br /&gt;
#* https://review.openstack.org/#/c/329392/&lt;br /&gt;
# Drivers with minimum size for shares (tpsilva)&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 9 Jun, 2016, 15:00 UTC'''&lt;br /&gt;
# HPB feature (mkoderer)&lt;br /&gt;
# the fate of nova-network support in manila (gouthamr)&lt;br /&gt;
# multi-AZ tests in the gate&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 2 Jun, 2016, 15:00 UTC'''&lt;br /&gt;
# N-1 milestone (bswartz)&lt;br /&gt;
# Decision on APIv1 removal for newton (bswartz)&lt;br /&gt;
# Model updates from drivers (bswartz)&lt;br /&gt;
# Midcycle meetup&lt;br /&gt;
# Spec update&lt;br /&gt;
#* New spec - Extending share networks to span subnets - https://review.openstack.org/#/c/323646/ (gouthamr)&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 26 May, 2016, 15:00 UTC'''&lt;br /&gt;
# N-1 milestone&lt;br /&gt;
# Update access remaining work&lt;br /&gt;
# Topics not covered at design summit https://etherpad.openstack.org/p/newton-manila-contributor-meetup&lt;br /&gt;
#* Nova-network removal&lt;br /&gt;
#* APIv1 removal&lt;br /&gt;
#* Model updates from the driver&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 19 May, 2016, 15:00 UTC'''&lt;br /&gt;
# Topics not covered at design summit https://etherpad.openstack.org/p/newton-manila-contributor-meetup&lt;br /&gt;
#* UI Customization&lt;br /&gt;
# Share Backup(zhongjun)&lt;br /&gt;
# Snapshot Restore (cknight)&lt;br /&gt;
# Specs (ganso)&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 12 May, 2016, 15:00 UTC'''&lt;br /&gt;
# Driver private storage: https://review.openstack.org/#/c/315346/ (xyang)&lt;br /&gt;
#* Admin wants to check driver private storage before doing some actions on a resource, i.e., force delete a share or unmanage a share.&lt;br /&gt;
#* The patch proposes to add admin API to retrieve driver private storage data. Alternative approach proposed by Valeriy to use manila-manage (i.e., manila-manage driver-private-storage &amp;lt;uuid of a resource&amp;gt;). Which one should we choose?&lt;br /&gt;
# Topics not covered at design summit https://etherpad.openstack.org/p/newton-manila-contributor-meetup&lt;br /&gt;
#* Py3 functional tests&lt;br /&gt;
#* Replication with share networks&lt;br /&gt;
#* Service-check&lt;br /&gt;
#* Container driver&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 5 May, 2016, 15:00 UTC'''&lt;br /&gt;
# Topics not covered at design summit https://etherpad.openstack.org/p/newton-manila-contributor-meetup&lt;br /&gt;
#* Documentation update (dustins/gouthamr)&lt;br /&gt;
#* User messages&lt;br /&gt;
#* Experimental features in UI&lt;br /&gt;
#* Share/snapshot size mismatch&lt;br /&gt;
#  BP Specs (tbarron)&lt;br /&gt;
#* Need to ensure that the repo doesn't become &amp;quot;a wasteland of partial ideas where hope goes to die.&amp;quot;  (See http://lists.openstack.org/pipermail/openstack-dev/2016-May/094026.html)&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 14 Apr, 2016, 15:00 UTC'''&lt;br /&gt;
# Manage API retrying (gouthamr/nidhimittalhada)&lt;br /&gt;
# Tempest test structuring - resource sharing and cleanup issues (akerr)&lt;br /&gt;
# Snapshot support common capability in the documentation (gouthamr)&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 7 Apr, 2016, 15:00 UTC'''&lt;br /&gt;
# Access rules (bswartz)&lt;br /&gt;
# Design summit planning (bswartz)&lt;br /&gt;
#* Link: https://etherpad.openstack.org/p/manila-newton-summit-topics&lt;br /&gt;
# Release notes, continued (gouthamr)&lt;br /&gt;
#* Link: https://review.openstack.org/#/c/300656/&lt;br /&gt;
# Midcycle meetup&lt;br /&gt;
# Access Groups&lt;br /&gt;
#* https://wiki.openstack.org/wiki/Manila/design/access_groups&lt;br /&gt;
# Revert to snapshot&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 31 Mar, 2016, 15:00 UTC'''&lt;br /&gt;
# Mitaka release status&lt;br /&gt;
#* RC1 expected to be the Mitaka release build&lt;br /&gt;
#* Last day for a re-spin is today&lt;br /&gt;
#** http://lists.openstack.org/pipermail/openstack-dev/2016-March/090877.html&lt;br /&gt;
# Design summit planning&lt;br /&gt;
#* Final schedule confirms 2 fishbowls, 4 working sessions, 1 half-day meetup&lt;br /&gt;
#** http://lists.openstack.org/pipermail/openstack-dev/2016-March/091032.html&lt;br /&gt;
#* Voting open now for summit topics&lt;br /&gt;
#** https://etherpad.openstack.org/p/manila-newton-summit-topics&lt;br /&gt;
# Manila Documentation (gouthamr)&lt;br /&gt;
#* Where do our docs live? how do we maintain them? (In Tree: devref, adminref | out of tree: install-guide, config-ref, cloud-admin guide)&lt;br /&gt;
#* Need a docs liaison&lt;br /&gt;
#** https://wiki.openstack.org/wiki/CrossProjectLiaisons#Documentation&lt;br /&gt;
#* Release Notes&lt;br /&gt;
#** http://docs.openstack.org/developer/reno/usage.html&lt;br /&gt;
# Managing/unmanaging replicated shares and snapshots (gouthamr)&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 24 Mar, 2016, 15:00 UTC'''&lt;br /&gt;
# Design summit planning&lt;br /&gt;
#* https://etherpad.openstack.org/p/manila-newton-summit-topics&lt;br /&gt;
# Question about share servers (Jay.Xu)&lt;br /&gt;
#* Is there a way to get gateway IP address when the API setup_server() is invoked. I did not see this attribute in the input parameter network_info. Gateway IP is mandatory to create the interface for EMC storage which will be release coming soon, so it is expected that we can add the gateway IP into NetworkAllocation model if not.&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 10 Mar, 2016, 15:00 UTC'''&lt;br /&gt;
# Common Capabilities Matrix (dustins)&lt;br /&gt;
#* https://review.openstack.org/#/c/288504/&lt;br /&gt;
#* I'm adding a table in the Developer Reference documentation to show which common capabilities are supported by which backends and when that support started.&lt;br /&gt;
#* I've got most drivers covered now.&lt;br /&gt;
#* If you want me to add your capabilities, leave a review on the patch and I'll update the table!&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 25 Feb, 2016, 15:00 UTC'''&lt;br /&gt;
&lt;br /&gt;
# OpenStack bug smash event (toabctl, mkoderer)&lt;br /&gt;
## link: https://etherpad.openstack.org/p/OpenStack-Bug-Smash-Mitaka&lt;br /&gt;
# Status of new drivers&lt;br /&gt;
## M.3 deadline is a week away.&lt;br /&gt;
## Only a few things have merged in the last couple days.  At this rate, many things won't make it.&lt;br /&gt;
## Zuul is busy and will only get worse until the deadline.&lt;br /&gt;
## Multiple Manila gate breakages have occurred recently, and more are likely.&lt;br /&gt;
## The Manila tests are very unreliable at concurrency &amp;gt; 1.&lt;br /&gt;
## The generic driver is too slow to pass the gate at concurrency = 1.&lt;br /&gt;
## The new drivers *are* fast enough to run at concurrency = 1.&lt;br /&gt;
## The new drivers may not be 100% done, but they are done enough to pass reliably at concurrency = 1.&lt;br /&gt;
## We should switch voting to the new drivers NOW, or start throwing stuff overboard for the release.&lt;br /&gt;
# Next Manila mid-cycle location&lt;br /&gt;
## Proposal is to do it in Germany&lt;br /&gt;
## Need to know who could attend at that location.&lt;br /&gt;
## Would it make a difference if the Cinder mid-cycle happens in Dublin, and the Manila meeting is immediately before or after the Cinder one?&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 18 Feb, 2016, 15:00 UTC'''&lt;br /&gt;
&lt;br /&gt;
# Feature Proposal Freeze (bswartz)&lt;br /&gt;
# Open Discussion&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 11 Feb, 2016, 15:00 UTC'''&lt;br /&gt;
&lt;br /&gt;
# Hierarchical port binding support (mkoderer)&lt;br /&gt;
#* https://wiki.openstack.org/wiki/Manila/design/manila-newton-hpb-support&lt;br /&gt;
#* https://blueprints.launchpad.net/manila/+spec/manila-hpb-support&lt;br /&gt;
#* https://review.openstack.org/#/c/277731/&lt;br /&gt;
# Next Manila mid-cycle (mkoderer)&lt;br /&gt;
#* https://etherpad.openstack.org/p/manila-n-release-midcycle&lt;br /&gt;
# Replication + ZFS Driver (bswartz)&lt;br /&gt;
#* https://review.openstack.org/#/c/238572&lt;br /&gt;
# Driver FPF (bswartz)&lt;br /&gt;
#* https://review.openstack.org/#/c/279090/&lt;br /&gt;
#* https://review.openstack.org/#/c/278169/&lt;br /&gt;
# HDFS CI (bswartz)&lt;br /&gt;
'''Scheduled for 4 Feb, 2016, 15:00 UTC'''&lt;br /&gt;
# Data service handling protocol mount commands (ganso)&lt;br /&gt;
#* https://etherpad.openstack.org/p/manila-data-service-mount-meeting&lt;br /&gt;
# Separate process for copy on data service (tpsilva)&lt;br /&gt;
# ZFS driver (bswartz)&lt;br /&gt;
# First party drivers share migration support cooperation (ganso)&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 28 Jan, 2016, 15:00 UTC'''&lt;br /&gt;
# Hierarchical port binding support (mkoderer)&lt;br /&gt;
#* https://etherpad.openstack.org/p/manila-hierarchical-port-binding&lt;br /&gt;
# Core reviewer team and other manila-related projects (bswartz)&lt;br /&gt;
# Replication status (bswartz)&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 21 Jan, 2016, 15:00 UTC'''&lt;br /&gt;
# Update_access backwards compatibility approach discussion. (ganso)&lt;br /&gt;
# Exposing the Data Service to drivers. (ganso)&lt;br /&gt;
# Snapshot manage/unmanage (bswartz)&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 17 Dec, 2015, 15:00 UTC'''&lt;br /&gt;
# Proposal for share groups (cknight)&lt;br /&gt;
# Liberty.1 stable release (bswartz)&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 10 Dec, 2015, 15:00 UTC'''&lt;br /&gt;
# The most of the driver already report the &amp;quot;'QoS_support': False&amp;quot; to scheduler. Does we need to remove it or save it as Qos support flat? and write 'QoS_support' to capabilities_and_extra_specs.rst?(zhongjun)&lt;br /&gt;
##https://github.com/openstack/manila/blob/master/manila/share/drivers/hpe/hpe_3par_driver.py#L391&lt;br /&gt;
##https://github.com/openstack/manila/blob/master/manila/share/drivers/hitachi/hds_hnas.py#L354&lt;br /&gt;
##https://github.com/openstack/manila/blob/master/manila/share/drivers/netapp/dataontap/cluster_mode/lib_base.py#L257&lt;br /&gt;
##https://github.com/openstack/manila/blob/master/manila/scheduler/host_manager.py#L111&lt;br /&gt;
##https://review.openstack.org/#/c/247286/4/doc/source/devref/capabilities_and_extra_specs.rst&lt;br /&gt;
# Architectural concerns and interoperability of new features (cknight)&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 3 Dec, 2015, 15:00 UTC'''&lt;br /&gt;
# Midcycle meetup&lt;br /&gt;
# Add &amp;quot;data loss&amp;quot; flag in DB migrations which lead to losing of existing data and update &amp;quot;manila-manage db sync&amp;quot; command to forbid applying such migrations without &amp;quot;--force&amp;quot; flag (u_glide)&lt;br /&gt;
# Reorganization of Manila scheduler to merge oslo-incubator code and simplify future maintenance  (cknight)&lt;br /&gt;
## https://review.openstack.org/#/c/252060/&lt;br /&gt;
## Mostly for awareness, this is now merged and should be backwards compatible.&lt;br /&gt;
## Cinder could benefit from a similar treatment.  And with the incubator gone, we could explore a common library with the Cinder team, since the heretofore shared components are certain to diverge over time, but I'm not sure how receptive they would be.  Xing?&lt;br /&gt;
# CI reliability&lt;br /&gt;
## Why should we merge patches for drivers whose CI systems consistently fail?  This negates the value of CI.  I think that accepting patches that aren't proven by CI does a disservice to everyone, most of all to the driver owners themselves.  Refusing to merge driver patches without a good CI result for that driver seems like a gentler and more uniform-over-time approach than threatening to throw out a driver near the end of a release.  And why make our illustrious and overworked PTL be the CI policeman when all core reviewers could simply glance at the corresponding CI result before giving +A?  (cknight)&lt;br /&gt;
## http://ci-watch.tintri.com/project?project=manila&lt;br /&gt;
## https://review.openstack.org/#/c/232293/&lt;br /&gt;
## https://review.openstack.org/#/c/235522/&lt;br /&gt;
## https://review.openstack.org/#/c/235726/&lt;br /&gt;
## https://review.openstack.org/#/c/249999/&lt;br /&gt;
## https://review.openstack.org/#/c/237454/&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 19 Nov, 2015, 15:00 UTC'''&lt;br /&gt;
# GB --&amp;gt; GiB (markstur)&lt;br /&gt;
# OpenStack Manuals and Devref (markstur)&lt;br /&gt;
#* Config Ref (and others) are moving to .RST!&lt;br /&gt;
#* How should we document prior releases in devref?&lt;br /&gt;
# Midcycle Meetup Date (bswartz)&lt;br /&gt;
# Deadlines for features (bswartz)&lt;br /&gt;
#* Feature proposal freeze vs Big Features&lt;br /&gt;
#* New drivers&lt;br /&gt;
# Data Copy Service network approach discussion (ganso)&lt;br /&gt;
#* https://drive.google.com/file/d/0B30HPZmaePCHMlAzcjJlYm5rRTA/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 12 Nov, 2015, 15:00 UTC'''&lt;br /&gt;
# Which method is better for Manila QoS(independent way or just use extra specs ) (zhongjun)&lt;br /&gt;
#* link:http://paste.openstack.org/show/477677/ &lt;br /&gt;
#*If use extra specs to config QoS, Does we first need add “QoS_support=true/false” in share_type. Does we need to add QoS_support flag in common capabilities&lt;br /&gt;
#**https://github.com/openstack/manila/blob/master/doc/source/devref/capabilities_and_extra_specs.rst)?&lt;br /&gt;
#** eg:  share_type: qos_support='&amp;lt;is&amp;gt; True' or '&amp;lt;is&amp;gt; False' &lt;br /&gt;
#**                            netapp:max_iops=100  or qos:netapp:max_iops=100 or qos:max_iops=100&lt;br /&gt;
#**        driver update: qos_support=true&lt;br /&gt;
#** An alternative could be to have the driver report a range&lt;br /&gt;
# Manila DR update (ameade)&lt;br /&gt;
#* Still no reviews on https://review.openstack.org/#/c/238572/&lt;br /&gt;
#* First-party driver implementation? Which driver, current generic or new solution? When do we need this implemented and who wants to do it?&lt;br /&gt;
#* Replication_change share state - This is the state of the share when any of it's replicas are being promoted. Is 'replication_change' good or is there a better phrase?&lt;br /&gt;
# Manila Driver minimum requirements document update (ganso)&lt;br /&gt;
# Manila Data Copy service name (bswartz)&lt;br /&gt;
#*https://review.openstack.org/#/c/244286/&lt;br /&gt;
# Upcoming change for Manila CI hooks (vponomaryov)&lt;br /&gt;
#*https://review.openstack.org/#/c/243233/&lt;br /&gt;
# Manilaclient enhancement to provide request_id when set http_log_debug is True. It will co-ordinate the request and its id, so it will be helpful to filter the log and the failed request. (Jay Xu)&lt;br /&gt;
#*http://paste.openstack.org/show/478675/&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 5 Nov, 2015, 15:00 UTC'''&lt;br /&gt;
# Decide on read-only access rules as a required feature&lt;br /&gt;
# Manila DR - Design/Code feedback (gouthamr) &lt;br /&gt;
#* [https://wiki.openstack.org/wiki/Manila/design/manila-mitaka-data-replication Design Document]&lt;br /&gt;
#* [https://review.openstack.org/#/c/238572/ Core Implementation on Gerrit]&lt;br /&gt;
#* [https://review.openstack.org/#/c/235448/ Client Implementation on Gerrit]&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 1 Oct, 2015, 15:00 UTC'''&lt;br /&gt;
# Liberty RC2 status&lt;br /&gt;
#* https://launchpad.net/manila/+milestone/liberty-rc2&lt;br /&gt;
#* https://review.openstack.org/#/q/project:openstack/manila+branch:stable/liberty,n,z&lt;br /&gt;
# Mitaka Design Summit&lt;br /&gt;
#* https://etherpad.openstack.org/p/manila-mitaka-summit-topics&lt;br /&gt;
# Vendor driver docs&lt;br /&gt;
#* https://github.com/openstack/manila/blob/master/doc/source/devref/share_back_ends_feature_support_mapping.rst&lt;br /&gt;
# Manila Client Nova Style Microversion Support (cfouts)&lt;br /&gt;
#* https://review.openstack.org/#/c/229142/&lt;br /&gt;
#* http://docs.openstack.org/developer/manila/devref/api_microversion_dev.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 24 Sep, 2015, 15:00 UTC'''&lt;br /&gt;
# 3rd-party CI status&lt;br /&gt;
#* http://ec2-54-67-102-119.us-west-1.compute.amazonaws.com:5000/?project=openstack/manila&amp;amp;user=&amp;amp;timeframe=72&amp;amp;start=&amp;amp;end=&amp;amp;page_size=500&lt;br /&gt;
#* http://ci-watch.tintri.com/project?project=manila&lt;br /&gt;
# Liberty RC status&lt;br /&gt;
# Support for QoS in Manila (zhongjun2)&lt;br /&gt;
#* https://blueprints.launchpad.net/manila/+spec/manila-support-qos&lt;br /&gt;
#* https://wiki.openstack.org/wiki/Manila/QoS&lt;br /&gt;
# Reminder for backend driver maintainers to update feature support table (toabctl)&lt;br /&gt;
#* http://docs.openstack.org/developer/manila/devref/share_back_ends_feature_support_mapping.html&lt;br /&gt;
# Regression when using NetApp - license issue with netapp_lib (toabctl)&lt;br /&gt;
#* https://bugs.launchpad.net/cinder/+bug/1499334&lt;br /&gt;
# Mitaka Design Summit&lt;br /&gt;
#* Propose topics - https://etherpad.openstack.org/p/manila-mitaka-summit-topics&lt;br /&gt;
# Vendor driver docs&lt;br /&gt;
# Open Discussion&lt;/div&gt;</summary>
		<author><name>Clinton Knight</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Manila/Meetings&amp;diff=131178</id>
		<title>Manila/Meetings</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Manila/Meetings&amp;diff=131178"/>
				<updated>2016-08-15T21:13:38Z</updated>
		
		<summary type="html">&lt;p&gt;Clinton Knight: /* Next meeting */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Weekly Manila team meeting =&lt;br /&gt;
'''NOTE MEETING TIME: Thursday at 15:00 UTC'''&lt;br /&gt;
&lt;br /&gt;
If you're interested in management of shared filesystems for OpenStack, we have a weekly meetings in &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;#openstack-meeting-alt&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;, on Thursdays at 15:00 UTC.  Please feel free to add items to the agenda below.  NOTE: When adding topics please include your IRC name so we know who's topic it is and how to get more info.&lt;br /&gt;
&lt;br /&gt;
'''Previous meeting logs can be found here:''' http://eavesdrop.openstack.org/meetings/manila/&lt;br /&gt;
&lt;br /&gt;
== Next meeting ==&lt;br /&gt;
'''NOTE:''' ''Include your IRC nickname next to agenda items so that you can be called upon in the meeting and arrive at the meeting promptly if placing items in agenda. You might want to put this on your calendar if you are adding items.''&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 18 Aug, 2016, 15:00 UTC'''&lt;br /&gt;
# Driver private data admin API&lt;br /&gt;
#* Disagreement abounds on how this API is to be designed, tested, and presented.&lt;br /&gt;
#* https://review.openstack.org/#/c/315346/&lt;br /&gt;
# Open Discussion&lt;br /&gt;
&lt;br /&gt;
== Previous meetings ==&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Scheduled for 11 Aug, 2016, 15:00 UTC&amp;quot;&lt;br /&gt;
# None&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 4 Aug, 2016, 15:00 UTC'''&lt;br /&gt;
# Migration APIs&lt;br /&gt;
#* http://lists.openstack.org/pipermail/openstack-dev/2016-August/100682.html&lt;br /&gt;
# Correct approach for avoiding races&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 28 Jul, 2016, 15:00 UTC'''&lt;br /&gt;
# Stepping Down as Docs Liaison (dustins)&lt;br /&gt;
#* Current job responsibilities don't give me the time to devote to this that I'd like to have, so it should go to someone else with a passion for documentation and has the willingness and desire for taking up the mantle.&lt;br /&gt;
# N-3 Review focus&lt;br /&gt;
#* https://etherpad.openstack.org/p/manila-newton3-priorities&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 21 Jul, 2016, 15:00 UTC'''&lt;br /&gt;
# Migrate API reference into tree (dgonzalez)&lt;br /&gt;
#* https://review.openstack.org/#/c/313874/&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 14 Jul, 2016, 15:00 UTC'''&lt;br /&gt;
# N-2 milestone&lt;br /&gt;
# Managing initial security (of the root directory) for new shares&lt;br /&gt;
# Mascot/Logo discussion&lt;br /&gt;
# Tempest alternatives&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 30 Jun, 2016, 15:00 UTC'''&lt;br /&gt;
# non-disruptive nfs-ganesha export modifications (rraja/tbarron)&lt;br /&gt;
#* https://sourceforge.net/p/nfs-ganesha/mailman/message/35173839&lt;br /&gt;
# share backup spec discussion (zhongjun)&lt;br /&gt;
#* https://review.openstack.org/#/c/330306&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 23 Jun, 2016, 15:00 UTC'''&lt;br /&gt;
# Implement extend and shrink features for glusterfs driver (DaiDV)&lt;br /&gt;
# Do all drivers have to inherit from driver.ShareDriver? (mkoderer)&lt;br /&gt;
# Creating a second share instance for driver-assisted migration (ganso)&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 16 Jun, 2016, 15:00 UTC'''&lt;br /&gt;
# A share support multiple protocols (zhongjun)&lt;br /&gt;
#* https://review.openstack.org/#/c/329392/&lt;br /&gt;
# Drivers with minimum size for shares (tpsilva)&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 9 Jun, 2016, 15:00 UTC'''&lt;br /&gt;
# HPB feature (mkoderer)&lt;br /&gt;
# the fate of nova-network support in manila (gouthamr)&lt;br /&gt;
# multi-AZ tests in the gate&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 2 Jun, 2016, 15:00 UTC'''&lt;br /&gt;
# N-1 milestone (bswartz)&lt;br /&gt;
# Decision on APIv1 removal for newton (bswartz)&lt;br /&gt;
# Model updates from drivers (bswartz)&lt;br /&gt;
# Midcycle meetup&lt;br /&gt;
# Spec update&lt;br /&gt;
#* New spec - Extending share networks to span subnets - https://review.openstack.org/#/c/323646/ (gouthamr)&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 26 May, 2016, 15:00 UTC'''&lt;br /&gt;
# N-1 milestone&lt;br /&gt;
# Update access remaining work&lt;br /&gt;
# Topics not covered at design summit https://etherpad.openstack.org/p/newton-manila-contributor-meetup&lt;br /&gt;
#* Nova-network removal&lt;br /&gt;
#* APIv1 removal&lt;br /&gt;
#* Model updates from the driver&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 19 May, 2016, 15:00 UTC'''&lt;br /&gt;
# Topics not covered at design summit https://etherpad.openstack.org/p/newton-manila-contributor-meetup&lt;br /&gt;
#* UI Customization&lt;br /&gt;
# Share Backup(zhongjun)&lt;br /&gt;
# Snapshot Restore (cknight)&lt;br /&gt;
# Specs (ganso)&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 12 May, 2016, 15:00 UTC'''&lt;br /&gt;
# Driver private storage: https://review.openstack.org/#/c/315346/ (xyang)&lt;br /&gt;
#* Admin wants to check driver private storage before doing some actions on a resource, i.e., force delete a share or unmanage a share.&lt;br /&gt;
#* The patch proposes to add admin API to retrieve driver private storage data. Alternative approach proposed by Valeriy to use manila-manage (i.e., manila-manage driver-private-storage &amp;lt;uuid of a resource&amp;gt;). Which one should we choose?&lt;br /&gt;
# Topics not covered at design summit https://etherpad.openstack.org/p/newton-manila-contributor-meetup&lt;br /&gt;
#* Py3 functional tests&lt;br /&gt;
#* Replication with share networks&lt;br /&gt;
#* Service-check&lt;br /&gt;
#* Container driver&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 5 May, 2016, 15:00 UTC'''&lt;br /&gt;
# Topics not covered at design summit https://etherpad.openstack.org/p/newton-manila-contributor-meetup&lt;br /&gt;
#* Documentation update (dustins/gouthamr)&lt;br /&gt;
#* User messages&lt;br /&gt;
#* Experimental features in UI&lt;br /&gt;
#* Share/snapshot size mismatch&lt;br /&gt;
#  BP Specs (tbarron)&lt;br /&gt;
#* Need to ensure that the repo doesn't become &amp;quot;a wasteland of partial ideas where hope goes to die.&amp;quot;  (See http://lists.openstack.org/pipermail/openstack-dev/2016-May/094026.html)&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 14 Apr, 2016, 15:00 UTC'''&lt;br /&gt;
# Manage API retrying (gouthamr/nidhimittalhada)&lt;br /&gt;
# Tempest test structuring - resource sharing and cleanup issues (akerr)&lt;br /&gt;
# Snapshot support common capability in the documentation (gouthamr)&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 7 Apr, 2016, 15:00 UTC'''&lt;br /&gt;
# Access rules (bswartz)&lt;br /&gt;
# Design summit planning (bswartz)&lt;br /&gt;
#* Link: https://etherpad.openstack.org/p/manila-newton-summit-topics&lt;br /&gt;
# Release notes, continued (gouthamr)&lt;br /&gt;
#* Link: https://review.openstack.org/#/c/300656/&lt;br /&gt;
# Midcycle meetup&lt;br /&gt;
# Access Groups&lt;br /&gt;
#* https://wiki.openstack.org/wiki/Manila/design/access_groups&lt;br /&gt;
# Revert to snapshot&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 31 Mar, 2016, 15:00 UTC'''&lt;br /&gt;
# Mitaka release status&lt;br /&gt;
#* RC1 expected to be the Mitaka release build&lt;br /&gt;
#* Last day for a re-spin is today&lt;br /&gt;
#** http://lists.openstack.org/pipermail/openstack-dev/2016-March/090877.html&lt;br /&gt;
# Design summit planning&lt;br /&gt;
#* Final schedule confirms 2 fishbowls, 4 working sessions, 1 half-day meetup&lt;br /&gt;
#** http://lists.openstack.org/pipermail/openstack-dev/2016-March/091032.html&lt;br /&gt;
#* Voting open now for summit topics&lt;br /&gt;
#** https://etherpad.openstack.org/p/manila-newton-summit-topics&lt;br /&gt;
# Manila Documentation (gouthamr)&lt;br /&gt;
#* Where do our docs live? how do we maintain them? (In Tree: devref, adminref | out of tree: install-guide, config-ref, cloud-admin guide)&lt;br /&gt;
#* Need a docs liaison&lt;br /&gt;
#** https://wiki.openstack.org/wiki/CrossProjectLiaisons#Documentation&lt;br /&gt;
#* Release Notes&lt;br /&gt;
#** http://docs.openstack.org/developer/reno/usage.html&lt;br /&gt;
# Managing/unmanaging replicated shares and snapshots (gouthamr)&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 24 Mar, 2016, 15:00 UTC'''&lt;br /&gt;
# Design summit planning&lt;br /&gt;
#* https://etherpad.openstack.org/p/manila-newton-summit-topics&lt;br /&gt;
# Question about share servers (Jay.Xu)&lt;br /&gt;
#* Is there a way to get gateway IP address when the API setup_server() is invoked. I did not see this attribute in the input parameter network_info. Gateway IP is mandatory to create the interface for EMC storage which will be release coming soon, so it is expected that we can add the gateway IP into NetworkAllocation model if not.&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 10 Mar, 2016, 15:00 UTC'''&lt;br /&gt;
# Common Capabilities Matrix (dustins)&lt;br /&gt;
#* https://review.openstack.org/#/c/288504/&lt;br /&gt;
#* I'm adding a table in the Developer Reference documentation to show which common capabilities are supported by which backends and when that support started.&lt;br /&gt;
#* I've got most drivers covered now.&lt;br /&gt;
#* If you want me to add your capabilities, leave a review on the patch and I'll update the table!&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 25 Feb, 2016, 15:00 UTC'''&lt;br /&gt;
&lt;br /&gt;
# OpenStack bug smash event (toabctl, mkoderer)&lt;br /&gt;
## link: https://etherpad.openstack.org/p/OpenStack-Bug-Smash-Mitaka&lt;br /&gt;
# Status of new drivers&lt;br /&gt;
## M.3 deadline is a week away.&lt;br /&gt;
## Only a few things have merged in the last couple days.  At this rate, many things won't make it.&lt;br /&gt;
## Zuul is busy and will only get worse until the deadline.&lt;br /&gt;
## Multiple Manila gate breakages have occurred recently, and more are likely.&lt;br /&gt;
## The Manila tests are very unreliable at concurrency &amp;gt; 1.&lt;br /&gt;
## The generic driver is too slow to pass the gate at concurrency = 1.&lt;br /&gt;
## The new drivers *are* fast enough to run at concurrency = 1.&lt;br /&gt;
## The new drivers may not be 100% done, but they are done enough to pass reliably at concurrency = 1.&lt;br /&gt;
## We should switch voting to the new drivers NOW, or start throwing stuff overboard for the release.&lt;br /&gt;
# Next Manila mid-cycle location&lt;br /&gt;
## Proposal is to do it in Germany&lt;br /&gt;
## Need to know who could attend at that location.&lt;br /&gt;
## Would it make a difference if the Cinder mid-cycle happens in Dublin, and the Manila meeting is immediately before or after the Cinder one?&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 18 Feb, 2016, 15:00 UTC'''&lt;br /&gt;
&lt;br /&gt;
# Feature Proposal Freeze (bswartz)&lt;br /&gt;
# Open Discussion&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 11 Feb, 2016, 15:00 UTC'''&lt;br /&gt;
&lt;br /&gt;
# Hierarchical port binding support (mkoderer)&lt;br /&gt;
#* https://wiki.openstack.org/wiki/Manila/design/manila-newton-hpb-support&lt;br /&gt;
#* https://blueprints.launchpad.net/manila/+spec/manila-hpb-support&lt;br /&gt;
#* https://review.openstack.org/#/c/277731/&lt;br /&gt;
# Next Manila mid-cycle (mkoderer)&lt;br /&gt;
#* https://etherpad.openstack.org/p/manila-n-release-midcycle&lt;br /&gt;
# Replication + ZFS Driver (bswartz)&lt;br /&gt;
#* https://review.openstack.org/#/c/238572&lt;br /&gt;
# Driver FPF (bswartz)&lt;br /&gt;
#* https://review.openstack.org/#/c/279090/&lt;br /&gt;
#* https://review.openstack.org/#/c/278169/&lt;br /&gt;
# HDFS CI (bswartz)&lt;br /&gt;
'''Scheduled for 4 Feb, 2016, 15:00 UTC'''&lt;br /&gt;
# Data service handling protocol mount commands (ganso)&lt;br /&gt;
#* https://etherpad.openstack.org/p/manila-data-service-mount-meeting&lt;br /&gt;
# Separate process for copy on data service (tpsilva)&lt;br /&gt;
# ZFS driver (bswartz)&lt;br /&gt;
# First party drivers share migration support cooperation (ganso)&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 28 Jan, 2016, 15:00 UTC'''&lt;br /&gt;
# Hierarchical port binding support (mkoderer)&lt;br /&gt;
#* https://etherpad.openstack.org/p/manila-hierarchical-port-binding&lt;br /&gt;
# Core reviewer team and other manila-related projects (bswartz)&lt;br /&gt;
# Replication status (bswartz)&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 21 Jan, 2016, 15:00 UTC'''&lt;br /&gt;
# Update_access backwards compatibility approach discussion. (ganso)&lt;br /&gt;
# Exposing the Data Service to drivers. (ganso)&lt;br /&gt;
# Snapshot manage/unmanage (bswartz)&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 17 Dec, 2015, 15:00 UTC'''&lt;br /&gt;
# Proposal for share groups (cknight)&lt;br /&gt;
# Liberty.1 stable release (bswartz)&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 10 Dec, 2015, 15:00 UTC'''&lt;br /&gt;
# The most of the driver already report the &amp;quot;'QoS_support': False&amp;quot; to scheduler. Does we need to remove it or save it as Qos support flat? and write 'QoS_support' to capabilities_and_extra_specs.rst?(zhongjun)&lt;br /&gt;
##https://github.com/openstack/manila/blob/master/manila/share/drivers/hpe/hpe_3par_driver.py#L391&lt;br /&gt;
##https://github.com/openstack/manila/blob/master/manila/share/drivers/hitachi/hds_hnas.py#L354&lt;br /&gt;
##https://github.com/openstack/manila/blob/master/manila/share/drivers/netapp/dataontap/cluster_mode/lib_base.py#L257&lt;br /&gt;
##https://github.com/openstack/manila/blob/master/manila/scheduler/host_manager.py#L111&lt;br /&gt;
##https://review.openstack.org/#/c/247286/4/doc/source/devref/capabilities_and_extra_specs.rst&lt;br /&gt;
# Architectural concerns and interoperability of new features (cknight)&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 3 Dec, 2015, 15:00 UTC'''&lt;br /&gt;
# Midcycle meetup&lt;br /&gt;
# Add &amp;quot;data loss&amp;quot; flag in DB migrations which lead to losing of existing data and update &amp;quot;manila-manage db sync&amp;quot; command to forbid applying such migrations without &amp;quot;--force&amp;quot; flag (u_glide)&lt;br /&gt;
# Reorganization of Manila scheduler to merge oslo-incubator code and simplify future maintenance  (cknight)&lt;br /&gt;
## https://review.openstack.org/#/c/252060/&lt;br /&gt;
## Mostly for awareness, this is now merged and should be backwards compatible.&lt;br /&gt;
## Cinder could benefit from a similar treatment.  And with the incubator gone, we could explore a common library with the Cinder team, since the heretofore shared components are certain to diverge over time, but I'm not sure how receptive they would be.  Xing?&lt;br /&gt;
# CI reliability&lt;br /&gt;
## Why should we merge patches for drivers whose CI systems consistently fail?  This negates the value of CI.  I think that accepting patches that aren't proven by CI does a disservice to everyone, most of all to the driver owners themselves.  Refusing to merge driver patches without a good CI result for that driver seems like a gentler and more uniform-over-time approach than threatening to throw out a driver near the end of a release.  And why make our illustrious and overworked PTL be the CI policeman when all core reviewers could simply glance at the corresponding CI result before giving +A?  (cknight)&lt;br /&gt;
## http://ci-watch.tintri.com/project?project=manila&lt;br /&gt;
## https://review.openstack.org/#/c/232293/&lt;br /&gt;
## https://review.openstack.org/#/c/235522/&lt;br /&gt;
## https://review.openstack.org/#/c/235726/&lt;br /&gt;
## https://review.openstack.org/#/c/249999/&lt;br /&gt;
## https://review.openstack.org/#/c/237454/&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 19 Nov, 2015, 15:00 UTC'''&lt;br /&gt;
# GB --&amp;gt; GiB (markstur)&lt;br /&gt;
# OpenStack Manuals and Devref (markstur)&lt;br /&gt;
#* Config Ref (and others) are moving to .RST!&lt;br /&gt;
#* How should we document prior releases in devref?&lt;br /&gt;
# Midcycle Meetup Date (bswartz)&lt;br /&gt;
# Deadlines for features (bswartz)&lt;br /&gt;
#* Feature proposal freeze vs Big Features&lt;br /&gt;
#* New drivers&lt;br /&gt;
# Data Copy Service network approach discussion (ganso)&lt;br /&gt;
#* https://drive.google.com/file/d/0B30HPZmaePCHMlAzcjJlYm5rRTA/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 12 Nov, 2015, 15:00 UTC'''&lt;br /&gt;
# Which method is better for Manila QoS(independent way or just use extra specs ) (zhongjun)&lt;br /&gt;
#* link:http://paste.openstack.org/show/477677/ &lt;br /&gt;
#*If use extra specs to config QoS, Does we first need add “QoS_support=true/false” in share_type. Does we need to add QoS_support flag in common capabilities&lt;br /&gt;
#**https://github.com/openstack/manila/blob/master/doc/source/devref/capabilities_and_extra_specs.rst)?&lt;br /&gt;
#** eg:  share_type: qos_support='&amp;lt;is&amp;gt; True' or '&amp;lt;is&amp;gt; False' &lt;br /&gt;
#**                            netapp:max_iops=100  or qos:netapp:max_iops=100 or qos:max_iops=100&lt;br /&gt;
#**        driver update: qos_support=true&lt;br /&gt;
#** An alternative could be to have the driver report a range&lt;br /&gt;
# Manila DR update (ameade)&lt;br /&gt;
#* Still no reviews on https://review.openstack.org/#/c/238572/&lt;br /&gt;
#* First-party driver implementation? Which driver, current generic or new solution? When do we need this implemented and who wants to do it?&lt;br /&gt;
#* Replication_change share state - This is the state of the share when any of it's replicas are being promoted. Is 'replication_change' good or is there a better phrase?&lt;br /&gt;
# Manila Driver minimum requirements document update (ganso)&lt;br /&gt;
# Manila Data Copy service name (bswartz)&lt;br /&gt;
#*https://review.openstack.org/#/c/244286/&lt;br /&gt;
# Upcoming change for Manila CI hooks (vponomaryov)&lt;br /&gt;
#*https://review.openstack.org/#/c/243233/&lt;br /&gt;
# Manilaclient enhancement to provide request_id when set http_log_debug is True. It will co-ordinate the request and its id, so it will be helpful to filter the log and the failed request. (Jay Xu)&lt;br /&gt;
#*http://paste.openstack.org/show/478675/&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 5 Nov, 2015, 15:00 UTC'''&lt;br /&gt;
# Decide on read-only access rules as a required feature&lt;br /&gt;
# Manila DR - Design/Code feedback (gouthamr) &lt;br /&gt;
#* [https://wiki.openstack.org/wiki/Manila/design/manila-mitaka-data-replication Design Document]&lt;br /&gt;
#* [https://review.openstack.org/#/c/238572/ Core Implementation on Gerrit]&lt;br /&gt;
#* [https://review.openstack.org/#/c/235448/ Client Implementation on Gerrit]&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 1 Oct, 2015, 15:00 UTC'''&lt;br /&gt;
# Liberty RC2 status&lt;br /&gt;
#* https://launchpad.net/manila/+milestone/liberty-rc2&lt;br /&gt;
#* https://review.openstack.org/#/q/project:openstack/manila+branch:stable/liberty,n,z&lt;br /&gt;
# Mitaka Design Summit&lt;br /&gt;
#* https://etherpad.openstack.org/p/manila-mitaka-summit-topics&lt;br /&gt;
# Vendor driver docs&lt;br /&gt;
#* https://github.com/openstack/manila/blob/master/doc/source/devref/share_back_ends_feature_support_mapping.rst&lt;br /&gt;
# Manila Client Nova Style Microversion Support (cfouts)&lt;br /&gt;
#* https://review.openstack.org/#/c/229142/&lt;br /&gt;
#* http://docs.openstack.org/developer/manila/devref/api_microversion_dev.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 24 Sep, 2015, 15:00 UTC'''&lt;br /&gt;
# 3rd-party CI status&lt;br /&gt;
#* http://ec2-54-67-102-119.us-west-1.compute.amazonaws.com:5000/?project=openstack/manila&amp;amp;user=&amp;amp;timeframe=72&amp;amp;start=&amp;amp;end=&amp;amp;page_size=500&lt;br /&gt;
#* http://ci-watch.tintri.com/project?project=manila&lt;br /&gt;
# Liberty RC status&lt;br /&gt;
# Support for QoS in Manila (zhongjun2)&lt;br /&gt;
#* https://blueprints.launchpad.net/manila/+spec/manila-support-qos&lt;br /&gt;
#* https://wiki.openstack.org/wiki/Manila/QoS&lt;br /&gt;
# Reminder for backend driver maintainers to update feature support table (toabctl)&lt;br /&gt;
#* http://docs.openstack.org/developer/manila/devref/share_back_ends_feature_support_mapping.html&lt;br /&gt;
# Regression when using NetApp - license issue with netapp_lib (toabctl)&lt;br /&gt;
#* https://bugs.launchpad.net/cinder/+bug/1499334&lt;br /&gt;
# Mitaka Design Summit&lt;br /&gt;
#* Propose topics - https://etherpad.openstack.org/p/manila-mitaka-summit-topics&lt;br /&gt;
# Vendor driver docs&lt;br /&gt;
# Open Discussion&lt;/div&gt;</summary>
		<author><name>Clinton Knight</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Manila/Meetings&amp;diff=131177</id>
		<title>Manila/Meetings</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Manila/Meetings&amp;diff=131177"/>
				<updated>2016-08-15T21:12:04Z</updated>
		
		<summary type="html">&lt;p&gt;Clinton Knight: /* Previous meetings */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Weekly Manila team meeting =&lt;br /&gt;
'''NOTE MEETING TIME: Thursday at 15:00 UTC'''&lt;br /&gt;
&lt;br /&gt;
If you're interested in management of shared filesystems for OpenStack, we have a weekly meetings in &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;#openstack-meeting-alt&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;, on Thursdays at 15:00 UTC.  Please feel free to add items to the agenda below.  NOTE: When adding topics please include your IRC name so we know who's topic it is and how to get more info.&lt;br /&gt;
&lt;br /&gt;
'''Previous meeting logs can be found here:''' http://eavesdrop.openstack.org/meetings/manila/&lt;br /&gt;
&lt;br /&gt;
== Next meeting ==&lt;br /&gt;
'''NOTE:''' ''Include your IRC nickname next to agenda items so that you can be called upon in the meeting and arrive at the meeting promptly if placing items in agenda. You might want to put this on your calendar if you are adding items.''&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 11 Aug, 2016, 15:00 UTC'''&lt;br /&gt;
# Open Discussion&lt;br /&gt;
&lt;br /&gt;
== Previous meetings ==&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Scheduled for 11 Aug, 2016, 15:00 UTC&amp;quot;&lt;br /&gt;
# None&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 4 Aug, 2016, 15:00 UTC'''&lt;br /&gt;
# Migration APIs&lt;br /&gt;
#* http://lists.openstack.org/pipermail/openstack-dev/2016-August/100682.html&lt;br /&gt;
# Correct approach for avoiding races&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 28 Jul, 2016, 15:00 UTC'''&lt;br /&gt;
# Stepping Down as Docs Liaison (dustins)&lt;br /&gt;
#* Current job responsibilities don't give me the time to devote to this that I'd like to have, so it should go to someone else with a passion for documentation and has the willingness and desire for taking up the mantle.&lt;br /&gt;
# N-3 Review focus&lt;br /&gt;
#* https://etherpad.openstack.org/p/manila-newton3-priorities&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 21 Jul, 2016, 15:00 UTC'''&lt;br /&gt;
# Migrate API reference into tree (dgonzalez)&lt;br /&gt;
#* https://review.openstack.org/#/c/313874/&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 14 Jul, 2016, 15:00 UTC'''&lt;br /&gt;
# N-2 milestone&lt;br /&gt;
# Managing initial security (of the root directory) for new shares&lt;br /&gt;
# Mascot/Logo discussion&lt;br /&gt;
# Tempest alternatives&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 30 Jun, 2016, 15:00 UTC'''&lt;br /&gt;
# non-disruptive nfs-ganesha export modifications (rraja/tbarron)&lt;br /&gt;
#* https://sourceforge.net/p/nfs-ganesha/mailman/message/35173839&lt;br /&gt;
# share backup spec discussion (zhongjun)&lt;br /&gt;
#* https://review.openstack.org/#/c/330306&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 23 Jun, 2016, 15:00 UTC'''&lt;br /&gt;
# Implement extend and shrink features for glusterfs driver (DaiDV)&lt;br /&gt;
# Do all drivers have to inherit from driver.ShareDriver? (mkoderer)&lt;br /&gt;
# Creating a second share instance for driver-assisted migration (ganso)&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 16 Jun, 2016, 15:00 UTC'''&lt;br /&gt;
# A share support multiple protocols (zhongjun)&lt;br /&gt;
#* https://review.openstack.org/#/c/329392/&lt;br /&gt;
# Drivers with minimum size for shares (tpsilva)&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 9 Jun, 2016, 15:00 UTC'''&lt;br /&gt;
# HPB feature (mkoderer)&lt;br /&gt;
# the fate of nova-network support in manila (gouthamr)&lt;br /&gt;
# multi-AZ tests in the gate&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 2 Jun, 2016, 15:00 UTC'''&lt;br /&gt;
# N-1 milestone (bswartz)&lt;br /&gt;
# Decision on APIv1 removal for newton (bswartz)&lt;br /&gt;
# Model updates from drivers (bswartz)&lt;br /&gt;
# Midcycle meetup&lt;br /&gt;
# Spec update&lt;br /&gt;
#* New spec - Extending share networks to span subnets - https://review.openstack.org/#/c/323646/ (gouthamr)&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 26 May, 2016, 15:00 UTC'''&lt;br /&gt;
# N-1 milestone&lt;br /&gt;
# Update access remaining work&lt;br /&gt;
# Topics not covered at design summit https://etherpad.openstack.org/p/newton-manila-contributor-meetup&lt;br /&gt;
#* Nova-network removal&lt;br /&gt;
#* APIv1 removal&lt;br /&gt;
#* Model updates from the driver&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 19 May, 2016, 15:00 UTC'''&lt;br /&gt;
# Topics not covered at design summit https://etherpad.openstack.org/p/newton-manila-contributor-meetup&lt;br /&gt;
#* UI Customization&lt;br /&gt;
# Share Backup(zhongjun)&lt;br /&gt;
# Snapshot Restore (cknight)&lt;br /&gt;
# Specs (ganso)&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 12 May, 2016, 15:00 UTC'''&lt;br /&gt;
# Driver private storage: https://review.openstack.org/#/c/315346/ (xyang)&lt;br /&gt;
#* Admin wants to check driver private storage before doing some actions on a resource, i.e., force delete a share or unmanage a share.&lt;br /&gt;
#* The patch proposes to add admin API to retrieve driver private storage data. Alternative approach proposed by Valeriy to use manila-manage (i.e., manila-manage driver-private-storage &amp;lt;uuid of a resource&amp;gt;). Which one should we choose?&lt;br /&gt;
# Topics not covered at design summit https://etherpad.openstack.org/p/newton-manila-contributor-meetup&lt;br /&gt;
#* Py3 functional tests&lt;br /&gt;
#* Replication with share networks&lt;br /&gt;
#* Service-check&lt;br /&gt;
#* Container driver&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 5 May, 2016, 15:00 UTC'''&lt;br /&gt;
# Topics not covered at design summit https://etherpad.openstack.org/p/newton-manila-contributor-meetup&lt;br /&gt;
#* Documentation update (dustins/gouthamr)&lt;br /&gt;
#* User messages&lt;br /&gt;
#* Experimental features in UI&lt;br /&gt;
#* Share/snapshot size mismatch&lt;br /&gt;
#  BP Specs (tbarron)&lt;br /&gt;
#* Need to ensure that the repo doesn't become &amp;quot;a wasteland of partial ideas where hope goes to die.&amp;quot;  (See http://lists.openstack.org/pipermail/openstack-dev/2016-May/094026.html)&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 14 Apr, 2016, 15:00 UTC'''&lt;br /&gt;
# Manage API retrying (gouthamr/nidhimittalhada)&lt;br /&gt;
# Tempest test structuring - resource sharing and cleanup issues (akerr)&lt;br /&gt;
# Snapshot support common capability in the documentation (gouthamr)&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 7 Apr, 2016, 15:00 UTC'''&lt;br /&gt;
# Access rules (bswartz)&lt;br /&gt;
# Design summit planning (bswartz)&lt;br /&gt;
#* Link: https://etherpad.openstack.org/p/manila-newton-summit-topics&lt;br /&gt;
# Release notes, continued (gouthamr)&lt;br /&gt;
#* Link: https://review.openstack.org/#/c/300656/&lt;br /&gt;
# Midcycle meetup&lt;br /&gt;
# Access Groups&lt;br /&gt;
#* https://wiki.openstack.org/wiki/Manila/design/access_groups&lt;br /&gt;
# Revert to snapshot&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 31 Mar, 2016, 15:00 UTC'''&lt;br /&gt;
# Mitaka release status&lt;br /&gt;
#* RC1 expected to be the Mitaka release build&lt;br /&gt;
#* Last day for a re-spin is today&lt;br /&gt;
#** http://lists.openstack.org/pipermail/openstack-dev/2016-March/090877.html&lt;br /&gt;
# Design summit planning&lt;br /&gt;
#* Final schedule confirms 2 fishbowls, 4 working sessions, 1 half-day meetup&lt;br /&gt;
#** http://lists.openstack.org/pipermail/openstack-dev/2016-March/091032.html&lt;br /&gt;
#* Voting open now for summit topics&lt;br /&gt;
#** https://etherpad.openstack.org/p/manila-newton-summit-topics&lt;br /&gt;
# Manila Documentation (gouthamr)&lt;br /&gt;
#* Where do our docs live? how do we maintain them? (In Tree: devref, adminref | out of tree: install-guide, config-ref, cloud-admin guide)&lt;br /&gt;
#* Need a docs liaison&lt;br /&gt;
#** https://wiki.openstack.org/wiki/CrossProjectLiaisons#Documentation&lt;br /&gt;
#* Release Notes&lt;br /&gt;
#** http://docs.openstack.org/developer/reno/usage.html&lt;br /&gt;
# Managing/unmanaging replicated shares and snapshots (gouthamr)&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 24 Mar, 2016, 15:00 UTC'''&lt;br /&gt;
# Design summit planning&lt;br /&gt;
#* https://etherpad.openstack.org/p/manila-newton-summit-topics&lt;br /&gt;
# Question about share servers (Jay.Xu)&lt;br /&gt;
#* Is there a way to get gateway IP address when the API setup_server() is invoked. I did not see this attribute in the input parameter network_info. Gateway IP is mandatory to create the interface for EMC storage which will be release coming soon, so it is expected that we can add the gateway IP into NetworkAllocation model if not.&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 10 Mar, 2016, 15:00 UTC'''&lt;br /&gt;
# Common Capabilities Matrix (dustins)&lt;br /&gt;
#* https://review.openstack.org/#/c/288504/&lt;br /&gt;
#* I'm adding a table in the Developer Reference documentation to show which common capabilities are supported by which backends and when that support started.&lt;br /&gt;
#* I've got most drivers covered now.&lt;br /&gt;
#* If you want me to add your capabilities, leave a review on the patch and I'll update the table!&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 25 Feb, 2016, 15:00 UTC'''&lt;br /&gt;
&lt;br /&gt;
# OpenStack bug smash event (toabctl, mkoderer)&lt;br /&gt;
## link: https://etherpad.openstack.org/p/OpenStack-Bug-Smash-Mitaka&lt;br /&gt;
# Status of new drivers&lt;br /&gt;
## M.3 deadline is a week away.&lt;br /&gt;
## Only a few things have merged in the last couple days.  At this rate, many things won't make it.&lt;br /&gt;
## Zuul is busy and will only get worse until the deadline.&lt;br /&gt;
## Multiple Manila gate breakages have occurred recently, and more are likely.&lt;br /&gt;
## The Manila tests are very unreliable at concurrency &amp;gt; 1.&lt;br /&gt;
## The generic driver is too slow to pass the gate at concurrency = 1.&lt;br /&gt;
## The new drivers *are* fast enough to run at concurrency = 1.&lt;br /&gt;
## The new drivers may not be 100% done, but they are done enough to pass reliably at concurrency = 1.&lt;br /&gt;
## We should switch voting to the new drivers NOW, or start throwing stuff overboard for the release.&lt;br /&gt;
# Next Manila mid-cycle location&lt;br /&gt;
## Proposal is to do it in Germany&lt;br /&gt;
## Need to know who could attend at that location.&lt;br /&gt;
## Would it make a difference if the Cinder mid-cycle happens in Dublin, and the Manila meeting is immediately before or after the Cinder one?&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 18 Feb, 2016, 15:00 UTC'''&lt;br /&gt;
&lt;br /&gt;
# Feature Proposal Freeze (bswartz)&lt;br /&gt;
# Open Discussion&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 11 Feb, 2016, 15:00 UTC'''&lt;br /&gt;
&lt;br /&gt;
# Hierarchical port binding support (mkoderer)&lt;br /&gt;
#* https://wiki.openstack.org/wiki/Manila/design/manila-newton-hpb-support&lt;br /&gt;
#* https://blueprints.launchpad.net/manila/+spec/manila-hpb-support&lt;br /&gt;
#* https://review.openstack.org/#/c/277731/&lt;br /&gt;
# Next Manila mid-cycle (mkoderer)&lt;br /&gt;
#* https://etherpad.openstack.org/p/manila-n-release-midcycle&lt;br /&gt;
# Replication + ZFS Driver (bswartz)&lt;br /&gt;
#* https://review.openstack.org/#/c/238572&lt;br /&gt;
# Driver FPF (bswartz)&lt;br /&gt;
#* https://review.openstack.org/#/c/279090/&lt;br /&gt;
#* https://review.openstack.org/#/c/278169/&lt;br /&gt;
# HDFS CI (bswartz)&lt;br /&gt;
'''Scheduled for 4 Feb, 2016, 15:00 UTC'''&lt;br /&gt;
# Data service handling protocol mount commands (ganso)&lt;br /&gt;
#* https://etherpad.openstack.org/p/manila-data-service-mount-meeting&lt;br /&gt;
# Separate process for copy on data service (tpsilva)&lt;br /&gt;
# ZFS driver (bswartz)&lt;br /&gt;
# First party drivers share migration support cooperation (ganso)&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 28 Jan, 2016, 15:00 UTC'''&lt;br /&gt;
# Hierarchical port binding support (mkoderer)&lt;br /&gt;
#* https://etherpad.openstack.org/p/manila-hierarchical-port-binding&lt;br /&gt;
# Core reviewer team and other manila-related projects (bswartz)&lt;br /&gt;
# Replication status (bswartz)&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 21 Jan, 2016, 15:00 UTC'''&lt;br /&gt;
# Update_access backwards compatibility approach discussion. (ganso)&lt;br /&gt;
# Exposing the Data Service to drivers. (ganso)&lt;br /&gt;
# Snapshot manage/unmanage (bswartz)&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 17 Dec, 2015, 15:00 UTC'''&lt;br /&gt;
# Proposal for share groups (cknight)&lt;br /&gt;
# Liberty.1 stable release (bswartz)&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 10 Dec, 2015, 15:00 UTC'''&lt;br /&gt;
# The most of the driver already report the &amp;quot;'QoS_support': False&amp;quot; to scheduler. Does we need to remove it or save it as Qos support flat? and write 'QoS_support' to capabilities_and_extra_specs.rst?(zhongjun)&lt;br /&gt;
##https://github.com/openstack/manila/blob/master/manila/share/drivers/hpe/hpe_3par_driver.py#L391&lt;br /&gt;
##https://github.com/openstack/manila/blob/master/manila/share/drivers/hitachi/hds_hnas.py#L354&lt;br /&gt;
##https://github.com/openstack/manila/blob/master/manila/share/drivers/netapp/dataontap/cluster_mode/lib_base.py#L257&lt;br /&gt;
##https://github.com/openstack/manila/blob/master/manila/scheduler/host_manager.py#L111&lt;br /&gt;
##https://review.openstack.org/#/c/247286/4/doc/source/devref/capabilities_and_extra_specs.rst&lt;br /&gt;
# Architectural concerns and interoperability of new features (cknight)&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 3 Dec, 2015, 15:00 UTC'''&lt;br /&gt;
# Midcycle meetup&lt;br /&gt;
# Add &amp;quot;data loss&amp;quot; flag in DB migrations which lead to losing of existing data and update &amp;quot;manila-manage db sync&amp;quot; command to forbid applying such migrations without &amp;quot;--force&amp;quot; flag (u_glide)&lt;br /&gt;
# Reorganization of Manila scheduler to merge oslo-incubator code and simplify future maintenance  (cknight)&lt;br /&gt;
## https://review.openstack.org/#/c/252060/&lt;br /&gt;
## Mostly for awareness, this is now merged and should be backwards compatible.&lt;br /&gt;
## Cinder could benefit from a similar treatment.  And with the incubator gone, we could explore a common library with the Cinder team, since the heretofore shared components are certain to diverge over time, but I'm not sure how receptive they would be.  Xing?&lt;br /&gt;
# CI reliability&lt;br /&gt;
## Why should we merge patches for drivers whose CI systems consistently fail?  This negates the value of CI.  I think that accepting patches that aren't proven by CI does a disservice to everyone, most of all to the driver owners themselves.  Refusing to merge driver patches without a good CI result for that driver seems like a gentler and more uniform-over-time approach than threatening to throw out a driver near the end of a release.  And why make our illustrious and overworked PTL be the CI policeman when all core reviewers could simply glance at the corresponding CI result before giving +A?  (cknight)&lt;br /&gt;
## http://ci-watch.tintri.com/project?project=manila&lt;br /&gt;
## https://review.openstack.org/#/c/232293/&lt;br /&gt;
## https://review.openstack.org/#/c/235522/&lt;br /&gt;
## https://review.openstack.org/#/c/235726/&lt;br /&gt;
## https://review.openstack.org/#/c/249999/&lt;br /&gt;
## https://review.openstack.org/#/c/237454/&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 19 Nov, 2015, 15:00 UTC'''&lt;br /&gt;
# GB --&amp;gt; GiB (markstur)&lt;br /&gt;
# OpenStack Manuals and Devref (markstur)&lt;br /&gt;
#* Config Ref (and others) are moving to .RST!&lt;br /&gt;
#* How should we document prior releases in devref?&lt;br /&gt;
# Midcycle Meetup Date (bswartz)&lt;br /&gt;
# Deadlines for features (bswartz)&lt;br /&gt;
#* Feature proposal freeze vs Big Features&lt;br /&gt;
#* New drivers&lt;br /&gt;
# Data Copy Service network approach discussion (ganso)&lt;br /&gt;
#* https://drive.google.com/file/d/0B30HPZmaePCHMlAzcjJlYm5rRTA/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 12 Nov, 2015, 15:00 UTC'''&lt;br /&gt;
# Which method is better for Manila QoS(independent way or just use extra specs ) (zhongjun)&lt;br /&gt;
#* link:http://paste.openstack.org/show/477677/ &lt;br /&gt;
#*If use extra specs to config QoS, Does we first need add “QoS_support=true/false” in share_type. Does we need to add QoS_support flag in common capabilities&lt;br /&gt;
#**https://github.com/openstack/manila/blob/master/doc/source/devref/capabilities_and_extra_specs.rst)?&lt;br /&gt;
#** eg:  share_type: qos_support='&amp;lt;is&amp;gt; True' or '&amp;lt;is&amp;gt; False' &lt;br /&gt;
#**                            netapp:max_iops=100  or qos:netapp:max_iops=100 or qos:max_iops=100&lt;br /&gt;
#**        driver update: qos_support=true&lt;br /&gt;
#** An alternative could be to have the driver report a range&lt;br /&gt;
# Manila DR update (ameade)&lt;br /&gt;
#* Still no reviews on https://review.openstack.org/#/c/238572/&lt;br /&gt;
#* First-party driver implementation? Which driver, current generic or new solution? When do we need this implemented and who wants to do it?&lt;br /&gt;
#* Replication_change share state - This is the state of the share when any of it's replicas are being promoted. Is 'replication_change' good or is there a better phrase?&lt;br /&gt;
# Manila Driver minimum requirements document update (ganso)&lt;br /&gt;
# Manila Data Copy service name (bswartz)&lt;br /&gt;
#*https://review.openstack.org/#/c/244286/&lt;br /&gt;
# Upcoming change for Manila CI hooks (vponomaryov)&lt;br /&gt;
#*https://review.openstack.org/#/c/243233/&lt;br /&gt;
# Manilaclient enhancement to provide request_id when set http_log_debug is True. It will co-ordinate the request and its id, so it will be helpful to filter the log and the failed request. (Jay Xu)&lt;br /&gt;
#*http://paste.openstack.org/show/478675/&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 5 Nov, 2015, 15:00 UTC'''&lt;br /&gt;
# Decide on read-only access rules as a required feature&lt;br /&gt;
# Manila DR - Design/Code feedback (gouthamr) &lt;br /&gt;
#* [https://wiki.openstack.org/wiki/Manila/design/manila-mitaka-data-replication Design Document]&lt;br /&gt;
#* [https://review.openstack.org/#/c/238572/ Core Implementation on Gerrit]&lt;br /&gt;
#* [https://review.openstack.org/#/c/235448/ Client Implementation on Gerrit]&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 1 Oct, 2015, 15:00 UTC'''&lt;br /&gt;
# Liberty RC2 status&lt;br /&gt;
#* https://launchpad.net/manila/+milestone/liberty-rc2&lt;br /&gt;
#* https://review.openstack.org/#/q/project:openstack/manila+branch:stable/liberty,n,z&lt;br /&gt;
# Mitaka Design Summit&lt;br /&gt;
#* https://etherpad.openstack.org/p/manila-mitaka-summit-topics&lt;br /&gt;
# Vendor driver docs&lt;br /&gt;
#* https://github.com/openstack/manila/blob/master/doc/source/devref/share_back_ends_feature_support_mapping.rst&lt;br /&gt;
# Manila Client Nova Style Microversion Support (cfouts)&lt;br /&gt;
#* https://review.openstack.org/#/c/229142/&lt;br /&gt;
#* http://docs.openstack.org/developer/manila/devref/api_microversion_dev.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 24 Sep, 2015, 15:00 UTC'''&lt;br /&gt;
# 3rd-party CI status&lt;br /&gt;
#* http://ec2-54-67-102-119.us-west-1.compute.amazonaws.com:5000/?project=openstack/manila&amp;amp;user=&amp;amp;timeframe=72&amp;amp;start=&amp;amp;end=&amp;amp;page_size=500&lt;br /&gt;
#* http://ci-watch.tintri.com/project?project=manila&lt;br /&gt;
# Liberty RC status&lt;br /&gt;
# Support for QoS in Manila (zhongjun2)&lt;br /&gt;
#* https://blueprints.launchpad.net/manila/+spec/manila-support-qos&lt;br /&gt;
#* https://wiki.openstack.org/wiki/Manila/QoS&lt;br /&gt;
# Reminder for backend driver maintainers to update feature support table (toabctl)&lt;br /&gt;
#* http://docs.openstack.org/developer/manila/devref/share_back_ends_feature_support_mapping.html&lt;br /&gt;
# Regression when using NetApp - license issue with netapp_lib (toabctl)&lt;br /&gt;
#* https://bugs.launchpad.net/cinder/+bug/1499334&lt;br /&gt;
# Mitaka Design Summit&lt;br /&gt;
#* Propose topics - https://etherpad.openstack.org/p/manila-mitaka-summit-topics&lt;br /&gt;
# Vendor driver docs&lt;br /&gt;
# Open Discussion&lt;/div&gt;</summary>
		<author><name>Clinton Knight</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Manila/Meetings&amp;diff=125581</id>
		<title>Manila/Meetings</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Manila/Meetings&amp;diff=125581"/>
				<updated>2016-05-19T14:55:59Z</updated>
		
		<summary type="html">&lt;p&gt;Clinton Knight: /* Next meeting */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Weekly Manila team meeting =&lt;br /&gt;
'''NOTE MEETING TIME: Thursday at 15:00 UTC'''&lt;br /&gt;
&lt;br /&gt;
If you're interested in management of shared filesystems for OpenStack, we have a weekly meetings in &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;#openstack-meeting-alt&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;, on Thursdays at 15:00 UTC.  Please feel free to add items to the agenda below.  NOTE: When adding topics please include your IRC name so we know who's topic it is and how to get more info.&lt;br /&gt;
&lt;br /&gt;
== Next meeting ==&lt;br /&gt;
'''NOTE:''' ''Include your IRC nickname next to agenda items so that you can be called upon in the meeting and arrive at the meeting promptly if placing items in agenda. You might want to put this on your calendar if you are adding items.''&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 19 May, 2016, 15:00 UTC'''&lt;br /&gt;
# Topics not covered at design summit https://etherpad.openstack.org/p/newton-manila-contributor-meetup&lt;br /&gt;
#* UI Customization&lt;br /&gt;
#* Nova-network removal&lt;br /&gt;
#* APIv1 removal&lt;br /&gt;
#* Model updates from the driver&lt;br /&gt;
# Share Backup(zhongjun)&lt;br /&gt;
# Snapshot Restore (cknight)&lt;br /&gt;
# Open Discussion&lt;br /&gt;
&lt;br /&gt;
== Previous meetings ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 12 May, 2016, 15:00 UTC'''&lt;br /&gt;
# Driver private storage: https://review.openstack.org/#/c/315346/ (xyang)&lt;br /&gt;
#* Admin wants to check driver private storage before doing some actions on a resource, i.e., force delete a share or unmanage a share.&lt;br /&gt;
#* The patch proposes to add admin API to retrieve driver private storage data. Alternative approach proposed by Valeriy to use manila-manage (i.e., manila-manage driver-private-storage &amp;lt;uuid of a resource&amp;gt;). Which one should we choose?&lt;br /&gt;
# Topics not covered at design summit https://etherpad.openstack.org/p/newton-manila-contributor-meetup&lt;br /&gt;
#* Py3 functional tests&lt;br /&gt;
#* Replication with share networks&lt;br /&gt;
#* Service-check&lt;br /&gt;
#* Container driver&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 5 May, 2016, 15:00 UTC'''&lt;br /&gt;
# Topics not covered at design summit https://etherpad.openstack.org/p/newton-manila-contributor-meetup&lt;br /&gt;
#* Documentation update (dustins/gouthamr)&lt;br /&gt;
#* User messages&lt;br /&gt;
#* Experimental features in UI&lt;br /&gt;
#* Share/snapshot size mismatch&lt;br /&gt;
#  BP Specs (tbarron)&lt;br /&gt;
#* Need to ensure that the repo doesn't become &amp;quot;a wasteland of partial ideas where hope goes to die.&amp;quot;  (See http://lists.openstack.org/pipermail/openstack-dev/2016-May/094026.html)&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 14 Apr, 2016, 15:00 UTC'''&lt;br /&gt;
# Manage API retrying (gouthamr/nidhimittalhada)&lt;br /&gt;
# Tempest test structuring - resource sharing and cleanup issues (akerr)&lt;br /&gt;
# Snapshot support common capability in the documentation (gouthamr)&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 7 Apr, 2016, 15:00 UTC'''&lt;br /&gt;
# Access rules (bswartz)&lt;br /&gt;
# Design summit planning (bswartz)&lt;br /&gt;
#* Link: https://etherpad.openstack.org/p/manila-newton-summit-topics&lt;br /&gt;
# Release notes, continued (gouthamr)&lt;br /&gt;
#* Link: https://review.openstack.org/#/c/300656/&lt;br /&gt;
# Midcycle meetup&lt;br /&gt;
# Access Groups&lt;br /&gt;
#* https://wiki.openstack.org/wiki/Manila/design/access_groups&lt;br /&gt;
# Revert to snapshot&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 31 Mar, 2016, 15:00 UTC'''&lt;br /&gt;
# Mitaka release status&lt;br /&gt;
#* RC1 expected to be the Mitaka release build&lt;br /&gt;
#* Last day for a re-spin is today&lt;br /&gt;
#** http://lists.openstack.org/pipermail/openstack-dev/2016-March/090877.html&lt;br /&gt;
# Design summit planning&lt;br /&gt;
#* Final schedule confirms 2 fishbowls, 4 working sessions, 1 half-day meetup&lt;br /&gt;
#** http://lists.openstack.org/pipermail/openstack-dev/2016-March/091032.html&lt;br /&gt;
#* Voting open now for summit topics&lt;br /&gt;
#** https://etherpad.openstack.org/p/manila-newton-summit-topics&lt;br /&gt;
# Manila Documentation (gouthamr)&lt;br /&gt;
#* Where do our docs live? how do we maintain them? (In Tree: devref, adminref | out of tree: install-guide, config-ref, cloud-admin guide)&lt;br /&gt;
#* Need a docs liaison&lt;br /&gt;
#** https://wiki.openstack.org/wiki/CrossProjectLiaisons#Documentation&lt;br /&gt;
#* Release Notes&lt;br /&gt;
#** http://docs.openstack.org/developer/reno/usage.html&lt;br /&gt;
# Managing/unmanaging replicated shares and snapshots (gouthamr)&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 24 Mar, 2016, 15:00 UTC'''&lt;br /&gt;
# Design summit planning&lt;br /&gt;
#* https://etherpad.openstack.org/p/manila-newton-summit-topics&lt;br /&gt;
# Question about share servers (Jay.Xu)&lt;br /&gt;
#* Is there a way to get gateway IP address when the API setup_server() is invoked. I did not see this attribute in the input parameter network_info. Gateway IP is mandatory to create the interface for EMC storage which will be release coming soon, so it is expected that we can add the gateway IP into NetworkAllocation model if not.&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 10 Mar, 2016, 15:00 UTC'''&lt;br /&gt;
# Common Capabilities Matrix (dustins)&lt;br /&gt;
#* https://review.openstack.org/#/c/288504/&lt;br /&gt;
#* I'm adding a table in the Developer Reference documentation to show which common capabilities are supported by which backends and when that support started.&lt;br /&gt;
#* I've got most drivers covered now.&lt;br /&gt;
#* If you want me to add your capabilities, leave a review on the patch and I'll update the table!&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 25 Feb, 2016, 15:00 UTC'''&lt;br /&gt;
&lt;br /&gt;
# OpenStack bug smash event (toabctl, mkoderer)&lt;br /&gt;
## link: https://etherpad.openstack.org/p/OpenStack-Bug-Smash-Mitaka&lt;br /&gt;
# Status of new drivers&lt;br /&gt;
## M.3 deadline is a week away.&lt;br /&gt;
## Only a few things have merged in the last couple days.  At this rate, many things won't make it.&lt;br /&gt;
## Zuul is busy and will only get worse until the deadline.&lt;br /&gt;
## Multiple Manila gate breakages have occurred recently, and more are likely.&lt;br /&gt;
## The Manila tests are very unreliable at concurrency &amp;gt; 1.&lt;br /&gt;
## The generic driver is too slow to pass the gate at concurrency = 1.&lt;br /&gt;
## The new drivers *are* fast enough to run at concurrency = 1.&lt;br /&gt;
## The new drivers may not be 100% done, but they are done enough to pass reliably at concurrency = 1.&lt;br /&gt;
## We should switch voting to the new drivers NOW, or start throwing stuff overboard for the release.&lt;br /&gt;
# Next Manila mid-cycle location&lt;br /&gt;
## Proposal is to do it in Germany&lt;br /&gt;
## Need to know who could attend at that location.&lt;br /&gt;
## Would it make a difference if the Cinder mid-cycle happens in Dublin, and the Manila meeting is immediately before or after the Cinder one?&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 18 Feb, 2016, 15:00 UTC'''&lt;br /&gt;
&lt;br /&gt;
# Feature Proposal Freeze (bswartz)&lt;br /&gt;
# Open Discussion&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 11 Feb, 2016, 15:00 UTC'''&lt;br /&gt;
&lt;br /&gt;
# Hierarchical port binding support (mkoderer)&lt;br /&gt;
#* https://wiki.openstack.org/wiki/Manila/design/manila-newton-hpb-support&lt;br /&gt;
#* https://blueprints.launchpad.net/manila/+spec/manila-hpb-support&lt;br /&gt;
#* https://review.openstack.org/#/c/277731/&lt;br /&gt;
# Next Manila mid-cycle (mkoderer)&lt;br /&gt;
#* https://etherpad.openstack.org/p/manila-n-release-midcycle&lt;br /&gt;
# Replication + ZFS Driver (bswartz)&lt;br /&gt;
#* https://review.openstack.org/#/c/238572&lt;br /&gt;
# Driver FPF (bswartz)&lt;br /&gt;
#* https://review.openstack.org/#/c/279090/&lt;br /&gt;
#* https://review.openstack.org/#/c/278169/&lt;br /&gt;
# HDFS CI (bswartz)&lt;br /&gt;
'''Scheduled for 4 Feb, 2016, 15:00 UTC'''&lt;br /&gt;
# Data service handling protocol mount commands (ganso)&lt;br /&gt;
#* https://etherpad.openstack.org/p/manila-data-service-mount-meeting&lt;br /&gt;
# Separate process for copy on data service (tpsilva)&lt;br /&gt;
# ZFS driver (bswartz)&lt;br /&gt;
# First party drivers share migration support cooperation (ganso)&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 28 Jan, 2016, 15:00 UTC'''&lt;br /&gt;
# Hierarchical port binding support (mkoderer)&lt;br /&gt;
#* https://etherpad.openstack.org/p/manila-hierarchical-port-binding&lt;br /&gt;
# Core reviewer team and other manila-related projects (bswartz)&lt;br /&gt;
# Replication status (bswartz)&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 21 Jan, 2016, 15:00 UTC'''&lt;br /&gt;
# Update_access backwards compatibility approach discussion. (ganso)&lt;br /&gt;
# Exposing the Data Service to drivers. (ganso)&lt;br /&gt;
# Snapshot manage/unmanage (bswartz)&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 17 Dec, 2015, 15:00 UTC'''&lt;br /&gt;
# Proposal for share groups (cknight)&lt;br /&gt;
# Liberty.1 stable release (bswartz)&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 10 Dec, 2015, 15:00 UTC'''&lt;br /&gt;
# The most of the driver already report the &amp;quot;'QoS_support': False&amp;quot; to scheduler. Does we need to remove it or save it as Qos support flat? and write 'QoS_support' to capabilities_and_extra_specs.rst?(zhongjun)&lt;br /&gt;
##https://github.com/openstack/manila/blob/master/manila/share/drivers/hpe/hpe_3par_driver.py#L391&lt;br /&gt;
##https://github.com/openstack/manila/blob/master/manila/share/drivers/hitachi/hds_hnas.py#L354&lt;br /&gt;
##https://github.com/openstack/manila/blob/master/manila/share/drivers/netapp/dataontap/cluster_mode/lib_base.py#L257&lt;br /&gt;
##https://github.com/openstack/manila/blob/master/manila/scheduler/host_manager.py#L111&lt;br /&gt;
##https://review.openstack.org/#/c/247286/4/doc/source/devref/capabilities_and_extra_specs.rst&lt;br /&gt;
# Architectural concerns and interoperability of new features (cknight)&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 3 Dec, 2015, 15:00 UTC'''&lt;br /&gt;
# Midcycle meetup&lt;br /&gt;
# Add &amp;quot;data loss&amp;quot; flag in DB migrations which lead to losing of existing data and update &amp;quot;manila-manage db sync&amp;quot; command to forbid applying such migrations without &amp;quot;--force&amp;quot; flag (u_glide)&lt;br /&gt;
# Reorganization of Manila scheduler to merge oslo-incubator code and simplify future maintenance  (cknight)&lt;br /&gt;
## https://review.openstack.org/#/c/252060/&lt;br /&gt;
## Mostly for awareness, this is now merged and should be backwards compatible.&lt;br /&gt;
## Cinder could benefit from a similar treatment.  And with the incubator gone, we could explore a common library with the Cinder team, since the heretofore shared components are certain to diverge over time, but I'm not sure how receptive they would be.  Xing?&lt;br /&gt;
# CI reliability&lt;br /&gt;
## Why should we merge patches for drivers whose CI systems consistently fail?  This negates the value of CI.  I think that accepting patches that aren't proven by CI does a disservice to everyone, most of all to the driver owners themselves.  Refusing to merge driver patches without a good CI result for that driver seems like a gentler and more uniform-over-time approach than threatening to throw out a driver near the end of a release.  And why make our illustrious and overworked PTL be the CI policeman when all core reviewers could simply glance at the corresponding CI result before giving +A?  (cknight)&lt;br /&gt;
## http://ci-watch.tintri.com/project?project=manila&lt;br /&gt;
## https://review.openstack.org/#/c/232293/&lt;br /&gt;
## https://review.openstack.org/#/c/235522/&lt;br /&gt;
## https://review.openstack.org/#/c/235726/&lt;br /&gt;
## https://review.openstack.org/#/c/249999/&lt;br /&gt;
## https://review.openstack.org/#/c/237454/&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 19 Nov, 2015, 15:00 UTC'''&lt;br /&gt;
# GB --&amp;gt; GiB (markstur)&lt;br /&gt;
# OpenStack Manuals and Devref (markstur)&lt;br /&gt;
#* Config Ref (and others) are moving to .RST!&lt;br /&gt;
#* How should we document prior releases in devref?&lt;br /&gt;
# Midcycle Meetup Date (bswartz)&lt;br /&gt;
# Deadlines for features (bswartz)&lt;br /&gt;
#* Feature proposal freeze vs Big Features&lt;br /&gt;
#* New drivers&lt;br /&gt;
# Data Copy Service network approach discussion (ganso)&lt;br /&gt;
#* https://drive.google.com/file/d/0B30HPZmaePCHMlAzcjJlYm5rRTA/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 12 Nov, 2015, 15:00 UTC'''&lt;br /&gt;
# Which method is better for Manila QoS(independent way or just use extra specs ) (zhongjun)&lt;br /&gt;
#* link:http://paste.openstack.org/show/477677/ &lt;br /&gt;
#*If use extra specs to config QoS, Does we first need add “QoS_support=true/false” in share_type. Does we need to add QoS_support flag in common capabilities&lt;br /&gt;
#**https://github.com/openstack/manila/blob/master/doc/source/devref/capabilities_and_extra_specs.rst)?&lt;br /&gt;
#** eg:  share_type: qos_support='&amp;lt;is&amp;gt; True' or '&amp;lt;is&amp;gt; False' &lt;br /&gt;
#**                            netapp:max_iops=100  or qos:netapp:max_iops=100 or qos:max_iops=100&lt;br /&gt;
#**        driver update: qos_support=true&lt;br /&gt;
#** An alternative could be to have the driver report a range&lt;br /&gt;
# Manila DR update (ameade)&lt;br /&gt;
#* Still no reviews on https://review.openstack.org/#/c/238572/&lt;br /&gt;
#* First-party driver implementation? Which driver, current generic or new solution? When do we need this implemented and who wants to do it?&lt;br /&gt;
#* Replication_change share state - This is the state of the share when any of it's replicas are being promoted. Is 'replication_change' good or is there a better phrase?&lt;br /&gt;
# Manila Driver minimum requirements document update (ganso)&lt;br /&gt;
# Manila Data Copy service name (bswartz)&lt;br /&gt;
#*https://review.openstack.org/#/c/244286/&lt;br /&gt;
# Upcoming change for Manila CI hooks (vponomaryov)&lt;br /&gt;
#*https://review.openstack.org/#/c/243233/&lt;br /&gt;
# Manilaclient enhancement to provide request_id when set http_log_debug is True. It will co-ordinate the request and its id, so it will be helpful to filter the log and the failed request. (Jay Xu)&lt;br /&gt;
#*http://paste.openstack.org/show/478675/&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 5 Nov, 2015, 15:00 UTC'''&lt;br /&gt;
# Decide on read-only access rules as a required feature&lt;br /&gt;
# Manila DR - Design/Code feedback (gouthamr) &lt;br /&gt;
#* [https://wiki.openstack.org/wiki/Manila/design/manila-mitaka-data-replication Design Document]&lt;br /&gt;
#* [https://review.openstack.org/#/c/238572/ Core Implementation on Gerrit]&lt;br /&gt;
#* [https://review.openstack.org/#/c/235448/ Client Implementation on Gerrit]&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 1 Oct, 2015, 15:00 UTC'''&lt;br /&gt;
# Liberty RC2 status&lt;br /&gt;
#* https://launchpad.net/manila/+milestone/liberty-rc2&lt;br /&gt;
#* https://review.openstack.org/#/q/project:openstack/manila+branch:stable/liberty,n,z&lt;br /&gt;
# Mitaka Design Summit&lt;br /&gt;
#* https://etherpad.openstack.org/p/manila-mitaka-summit-topics&lt;br /&gt;
# Vendor driver docs&lt;br /&gt;
#* https://github.com/openstack/manila/blob/master/doc/source/devref/share_back_ends_feature_support_mapping.rst&lt;br /&gt;
# Manila Client Nova Style Microversion Support (cfouts)&lt;br /&gt;
#* https://review.openstack.org/#/c/229142/&lt;br /&gt;
#* http://docs.openstack.org/developer/manila/devref/api_microversion_dev.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 24 Sep, 2015, 15:00 UTC'''&lt;br /&gt;
# 3rd-party CI status&lt;br /&gt;
#* http://ec2-54-67-102-119.us-west-1.compute.amazonaws.com:5000/?project=openstack/manila&amp;amp;user=&amp;amp;timeframe=72&amp;amp;start=&amp;amp;end=&amp;amp;page_size=500&lt;br /&gt;
#* http://ci-watch.tintri.com/project?project=manila&lt;br /&gt;
# Liberty RC status&lt;br /&gt;
# Support for QoS in Manila (zhongjun2)&lt;br /&gt;
#* https://blueprints.launchpad.net/manila/+spec/manila-support-qos&lt;br /&gt;
#* https://wiki.openstack.org/wiki/Manila/QoS&lt;br /&gt;
# Reminder for backend driver maintainers to update feature support table (toabctl)&lt;br /&gt;
#* http://docs.openstack.org/developer/manila/devref/share_back_ends_feature_support_mapping.html&lt;br /&gt;
# Regression when using NetApp - license issue with netapp_lib (toabctl)&lt;br /&gt;
#* https://bugs.launchpad.net/cinder/+bug/1499334&lt;br /&gt;
# Mitaka Design Summit&lt;br /&gt;
#* Propose topics - https://etherpad.openstack.org/p/manila-mitaka-summit-topics&lt;br /&gt;
# Vendor driver docs&lt;br /&gt;
# Open Discussion&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
http://eavesdrop.openstack.org/meetings/manila/&lt;/div&gt;</summary>
		<author><name>Clinton Knight</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Manila/design/manila-generic-groups&amp;diff=124355</id>
		<title>Manila/design/manila-generic-groups</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Manila/design/manila-generic-groups&amp;diff=124355"/>
				<updated>2016-04-22T20:07:20Z</updated>
		
		<summary type="html">&lt;p&gt;Clinton Knight: /* Implementation details */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Manila generic groups =&lt;br /&gt;
== Executive summary ==&lt;br /&gt;
Manila needs a grouping construct that, like shares, is a 1st-class atomic data type.  Our experience with CGs has demonstrated the complexity of adding a grouping capability, yet there are other use cases such as migration, replication, and backup in which some storage controllers could only offer such features on share groups.  CGs also highlighted the poor optics of an advanced feature with comparatively little potential for vendor support.  And adding new grouping constructs for each new feature is not technically feasible.  All of the above may be addressed by generic groups, which we think is a clean extension to the original architecture of Manila.&lt;br /&gt;
== An Intractable Matrix ==&lt;br /&gt;
Manila is at an exciting time in its development, where all the simple features are available and the community is focused on adding high-value features such as migration, replication, and consistency groups.  Experimental code is available for each of these, but little consideration has been given to the obvious need for these complex features to interact not only with each other but also with whatever additional features were added later.  And looking a little deeper, it is apparent that each of these has limitations that could be solved by a single architectural enhancement.&lt;br /&gt;
=== Consistency groups ===&lt;br /&gt;
Consistency groups (CGs) are the only construct in Manila that operates on a group of shares.   For some, a CG implies a guarantee of ordered writes by a storage controller, while for others a CG is a mechanism for taking consistent point-in-time snapshots of a set of shares.  A group with either attribute may have value by itself, but the CGs implementation doesn’t distinguish between them.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
CGs are a highly specialized construct with dedicated CLI commands, REST APIs, database tables, scheduler filters, and driver APIs that totaled over 9900 lines.  None of these are reusable for anything else, and none of the rest of Manila has any awareness of CGs.  Even worse, despite all the complexity of the CG feature, only a small minority of storage backends can support them, so the code-to-value ratio is very low and the limited availability of CGs ensures the user experience is inconsistent between clouds.&lt;br /&gt;
&lt;br /&gt;
=== Replication ===&lt;br /&gt;
Replication is another high value feature, and the Manila implementation is arguably clean and flexible, but as constituted there is no core ability to replicate groups of shares.  It seems reasonable to implement the feature iteratively, beginning with replication of single shares.  However, there has been the tacit acknowledgement that some backends would not be able to replicate individual shares, even though those same backends could potentially replicate a group of shares if the group were constituted in a certain way.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Following the precedent established with CGs, one approach would be to introduce ‘replication groups’ whereby multiple shares could be replicated together.  But this would introduce yet another set of APIs, tables, etc. that are too specialized to use for anything else.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Another approach might be to define CGs as the grouping unit of replication, but this makes little sense because consistency groups (however we define them) and replication are distinct features that shouldn’t be artificially bundled for the sake of expediency of definition or implementation.&lt;br /&gt;
=== Migration ===&lt;br /&gt;
Just as some backends may only be able to replicate shares in groups, it follows that those backends may also need to migrate shares in groups.  And in the case of CGs, it doesn’t make sense to migrate CG members individually; the whole group must be moved, requiring the migration engine to be CG aware.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Consider the following reasonable use cases:&lt;br /&gt;
* Replicate a consistency group&lt;br /&gt;
* Snapshot a replication group&lt;br /&gt;
* Migrate a replication group&lt;br /&gt;
* Retype shares in a consistency group&lt;br /&gt;
* Retype shares in a replication group&lt;br /&gt;
* Backup a consistency group&lt;br /&gt;
* Backup a replication group&lt;br /&gt;
* Apply a common policy to a set of shares&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
On the current path, the support matrix has a dimension dedicated solely to features, so each feature must be coded to be interoperable with every other feature.  This quickly becomes a support and testing nightmare, and it becomes exponentially more complicated to add more features going forward.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Fundamentally, the problem is that we are adding features without an underlying architectural framework on which to hang them.  To escape the matrix, we must step back and rethink a few things.&lt;br /&gt;
&lt;br /&gt;
== A simple solution ==&lt;br /&gt;
So to arrive at a solution, let’s enumerate what we have:&lt;br /&gt;
* Primitive objects (shares) with supported operations controlled by share types that vary by backend&lt;br /&gt;
* A very specific group object (CGs) with limited support potential by backends&lt;br /&gt;
* A number of APIs (CGs, etc.) that many users can’t use at all and appear grafted into the project&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
And what would we prefer:&lt;br /&gt;
* A uniform API and user experience that varies as little as possible by backend&lt;br /&gt;
* A clean way to group shares so we can do CGs, multi-object replication, migration, etc.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
How do we get here?&lt;br /&gt;
* Universally available groups of primitive objects with supported operations that vary by backend&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
=== Idea #1: Introduce a generic Share Group object ===&lt;br /&gt;
Just as Manila has ‘shares’, it should also have ‘share groups’.  In its simplest form, unlike CGs, a share group should not guarantee any specialized operation.  Instead, it should merely constitute an atomic Manila data type on which nearly any Manila action is available.  For example, given a share group, the user should be able to select the group in the Manila UI and invoke features such as snapshot, clone, backup, migrate, replicate, retype, etc.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the general case, group actions are handled by the share manager layer (or potentially the common share driver superclass).  For example, invoking ‘snapshot’ on a group causes the share manager to take a snapshot of each group member individually.  The resulting group snapshot object may be used to create a new group, not unlike how CG snapshots were implemented.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There are numerous advantages to this approach.  Every driver, no matter how unsophisticated, can leverage the manageability goodness of groups.  The user experience is uniform, since groups are always available regardless of which backends are present and because nearly every Manila action available on shares is also available on groups.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Of course, feature-rich backends would like to add their secret sauce, whether it be CGs, group-based replication, or whatever else comes along that might be easier/cheaper/faster to do to groups of shares.  That brings us to a related idea.&lt;br /&gt;
&lt;br /&gt;
=== Idea #2: Introduce Share Group types ===&lt;br /&gt;
Just as Manila has ‘share types’, it should also have ‘share group types’.  Any driver that can perform a group operation in an advantaged way may report that as a group capability, such as:&lt;br /&gt;
* Ordered writes&lt;br /&gt;
* Consistent snapshots&lt;br /&gt;
* Group replication&lt;br /&gt;
* Group backup&lt;br /&gt;
* Group modification&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
As with share types, the cloud administrator predefines share group types that may contain extra specs corresponding to the group capabilities reported by the backends.  The admin also specifies which share type(s) a given group type may contain.  When creating a group, the user specifies the group type and share type, and the scheduler then creates the group on one of the backends that match the specified share and share group type.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anytime a group action, such as ‘snapshot’, comes into the share manager, the manager checks whether its driver offers an advantaged implementation of that operation.  If not, the manager handles the workflow itself as described above.  But if so, the manager routes the workflow to its driver for fulfillment.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The advantages of this approach should be obvious.  Development and testing are simplified because there isn’t a need to define and test a different set of group management APIs for each feature, or to test every combination of every feature.  Instead of becoming an N-by-N matrix of interacting features, Manila largely becomes an N-by-2 matrix of actions that may be invoked on either individual shares or share groups.  Users and admins are already familiar with share types, so introducing share group types would seem a natural and consistent evolution of the same foundational concept.  &lt;br /&gt;
&lt;br /&gt;
The matrix would look like:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Share action !! Share Group action&lt;br /&gt;
|-&lt;br /&gt;
| Create (volume type) || Create (volume types, group type)&lt;br /&gt;
|-&lt;br /&gt;
| Delete || Delete (group, optionally all members)&lt;br /&gt;
|-&lt;br /&gt;
| Snapshot || Snapshot (may or may not be a CG snapshot)&lt;br /&gt;
|-&lt;br /&gt;
| Create from snapshot / Clone || Create from group snapshot / Clone group&lt;br /&gt;
|-&lt;br /&gt;
| Replicate || Replicate&lt;br /&gt;
|-&lt;br /&gt;
| Backup || Backup&lt;br /&gt;
|-&lt;br /&gt;
| Retype || Retype&lt;br /&gt;
|-&lt;br /&gt;
| Migrate || Migrate&lt;br /&gt;
|-&lt;br /&gt;
| Extend / shrink || N/A&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Manila implementation plan ==&lt;br /&gt;
Implementing generic groups in Manila should be a straightforward series of steps:&lt;br /&gt;
# Implement generic groups.  Because we did CGs, we already know all parts of the codebase that must change to support any kind of group.  So the simplest approach is to modify the CG code to morph it into the generic groups feature.&lt;br /&gt;
# Add the share group type feature by duplicating and customizing the share type code.&lt;br /&gt;
# Enhance the scheduler to place groups according to share group types.  Like #1, this is already informed by the CG project.&lt;br /&gt;
# Implement group snapshots in the share manager to demonstrate group snapshots in any driver.&lt;br /&gt;
# Plumb group snapshots to a CG-capable driver to demonstrate CG functionality in the new framework.&lt;br /&gt;
# Update Tempest to cover all of the above.&lt;br /&gt;
# Update Manila client to change CGs to share groups.&lt;br /&gt;
# Enhance Manila client with share group types.&lt;br /&gt;
# Add share group support to Horizon.  We never built CG support into Horizon, so this is all-new work that now has much broader appeal and applicability.&lt;br /&gt;
# Add additional group actions over time (migrate, replicate, retype, clone, …).  At this point, new group capabilities become vertical slices that are simple to add incrementally.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Because we implemented CGs just recently as an experimental feature, we have the freedom to replace that code without deprecation or upgrade considerations.  Steps 1-8 would get Manila to parity with the CG feature added in Liberty, would require only a few person-weeks of effort, and would better position Manila for long-term evolution and supportability.&lt;br /&gt;
=== Implementation details ===&lt;br /&gt;
There are few things to note, several of which were already solved during the CG work.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Groups are first-class objects in Manila, and operations on groups are treated as atomic.  To enable support by as many backends as possible, Manila will still maintain DB objects for both group and member snapshots, just as was done with CGs.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The capabilities of a group will all be public extra specs, similar to snapshot_support in share types.  Users will need to know what a group can do.&lt;br /&gt;
&lt;br /&gt;
A few actions, such as extend &amp;amp; shrink, are inherently applicable only to individual shares.  One could theoretically apply extend to a group, increasing the size of each member, but that seems like an unlikely use case.  Any actions in this category must remain available to group members, and other actions such as taking snapshots of group members &amp;lt;i&amp;gt;could&amp;lt;/i&amp;gt; be allowed, but actions such as migration or replication would be available only at the group level and not on its members.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A group is limited to a single backend.  Allowing groups that span backends is theoretically possible, but that would require fanout of operations from the API layer to multiple share managers across the asynchronous event bus, which would lead to complicated synchronization and state management for little operational benefit.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As was done with Manila CGs, a driver may optionally limit a group to either the confines of a pool or an entire backend.  It is known that pools are the unit of data motion (i.e. replication or migration) for some backends, so we think drivers need this flexibility.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In a departure from the CG implementation, a group type may support multiple share types, but a group may only contain shares of a single type.  This restriction could be revisited in a later release, but it avoids numerous challenges:&lt;br /&gt;
&lt;br /&gt;
* With multiple share types in a group, the number of potential share/group combinations becomes much larger and it becomes more likely that a group is requested that cannot be scheduled.&lt;br /&gt;
* Operators would have to test and support all share/group combinations.&lt;br /&gt;
* Migration becomes more complicated, especially if a group spans pools, since the destination would have to support the same combination of group &amp;amp; share types.&lt;br /&gt;
* Replication is similarly affected.&lt;br /&gt;
* Retype gets weird if some but not all group members must be migrated.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;We considered reusing share types for groups as well.  But share types include a set of public extra specs that may not map well to groups.  And by adding group types as a separate object, there can be little confusion about their purpose and use.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some have noted that extra specs tend to be treated as an AND operation, where all features must be available for a backend to be chosen.  It is conceivable that even if a backend can replicate a group or take consistent snapshots of a group, it might not be able to perform both operations on the same group.  But this problem already exists with share types and hasn’t been a serious issue.  Creating types is an admin-only operation and the burden remains on the admin to understand the capabilities of the backends in use and to create the share types and share group types appropriately.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that this proposal explicitly does not address pool or backend replication, which is fundamentally different.  Actions on shares or share groups are intended for tenants, whereas a pool or backend can contain data from multiple tenants.  So pool or backend operations, while serving potentially valuable use cases, are inherently admin-only workflows that would be designed and exercised differently should Manila support them.&lt;br /&gt;
&lt;br /&gt;
=== Share Group APIs ===&lt;br /&gt;
&lt;br /&gt;
It is possible to design a REST API that seamlessly handles both shares and share groups with little duplication of APIs.  But at this point in Manila's development, it is arguably too late to radically redesign the API.&lt;br /&gt;
&lt;br /&gt;
It may be possible to overload some of the existing APIs to handle both shares and share groups.  For example, POST /shares/{id}/action could accept the ID of a share or share group and just do the right thing.  But other APIs, such as GET /shares are less practical to overload, since a single endpoint would be returning objects of different types.&lt;br /&gt;
&lt;br /&gt;
It seems better to merely duplicate a few APIs with group versions as needed.  For example:&lt;br /&gt;
* POST /shares --&amp;gt; POST /groups&lt;br /&gt;
* POST /shares/{share_id}/action --&amp;gt; POST /groups/{group_id}/action&lt;br /&gt;
* POST /snapshots --&amp;gt; POST /group_snapshots&lt;br /&gt;
&lt;br /&gt;
== Acknowledgments ==&lt;br /&gt;
Most of the analysis and recommendations contained herein apply equally well to Cinder, which is arguably much further down the path of crippling complexity.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This proposal was developed by cknight with input from Manila community members bswartz, ameade, tbarron, and cfouts.  The Cinder conversations about grouping, as well as the groundbreaking contributions of CGs to Cinder, all of which inspired this proposal, were led by xyang.&lt;/div&gt;</summary>
		<author><name>Clinton Knight</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Manila/design/manila-generic-groups&amp;diff=124354</id>
		<title>Manila/design/manila-generic-groups</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Manila/design/manila-generic-groups&amp;diff=124354"/>
				<updated>2016-04-22T20:05:33Z</updated>
		
		<summary type="html">&lt;p&gt;Clinton Knight: /* Implementation details */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Manila generic groups =&lt;br /&gt;
== Executive summary ==&lt;br /&gt;
Manila needs a grouping construct that, like shares, is a 1st-class atomic data type.  Our experience with CGs has demonstrated the complexity of adding a grouping capability, yet there are other use cases such as migration, replication, and backup in which some storage controllers could only offer such features on share groups.  CGs also highlighted the poor optics of an advanced feature with comparatively little potential for vendor support.  And adding new grouping constructs for each new feature is not technically feasible.  All of the above may be addressed by generic groups, which we think is a clean extension to the original architecture of Manila.&lt;br /&gt;
== An Intractable Matrix ==&lt;br /&gt;
Manila is at an exciting time in its development, where all the simple features are available and the community is focused on adding high-value features such as migration, replication, and consistency groups.  Experimental code is available for each of these, but little consideration has been given to the obvious need for these complex features to interact not only with each other but also with whatever additional features were added later.  And looking a little deeper, it is apparent that each of these has limitations that could be solved by a single architectural enhancement.&lt;br /&gt;
=== Consistency groups ===&lt;br /&gt;
Consistency groups (CGs) are the only construct in Manila that operates on a group of shares.   For some, a CG implies a guarantee of ordered writes by a storage controller, while for others a CG is a mechanism for taking consistent point-in-time snapshots of a set of shares.  A group with either attribute may have value by itself, but the CGs implementation doesn’t distinguish between them.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
CGs are a highly specialized construct with dedicated CLI commands, REST APIs, database tables, scheduler filters, and driver APIs that totaled over 9900 lines.  None of these are reusable for anything else, and none of the rest of Manila has any awareness of CGs.  Even worse, despite all the complexity of the CG feature, only a small minority of storage backends can support them, so the code-to-value ratio is very low and the limited availability of CGs ensures the user experience is inconsistent between clouds.&lt;br /&gt;
&lt;br /&gt;
=== Replication ===&lt;br /&gt;
Replication is another high value feature, and the Manila implementation is arguably clean and flexible, but as constituted there is no core ability to replicate groups of shares.  It seems reasonable to implement the feature iteratively, beginning with replication of single shares.  However, there has been the tacit acknowledgement that some backends would not be able to replicate individual shares, even though those same backends could potentially replicate a group of shares if the group were constituted in a certain way.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Following the precedent established with CGs, one approach would be to introduce ‘replication groups’ whereby multiple shares could be replicated together.  But this would introduce yet another set of APIs, tables, etc. that are too specialized to use for anything else.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Another approach might be to define CGs as the grouping unit of replication, but this makes little sense because consistency groups (however we define them) and replication are distinct features that shouldn’t be artificially bundled for the sake of expediency of definition or implementation.&lt;br /&gt;
=== Migration ===&lt;br /&gt;
Just as some backends may only be able to replicate shares in groups, it follows that those backends may also need to migrate shares in groups.  And in the case of CGs, it doesn’t make sense to migrate CG members individually; the whole group must be moved, requiring the migration engine to be CG aware.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Consider the following reasonable use cases:&lt;br /&gt;
* Replicate a consistency group&lt;br /&gt;
* Snapshot a replication group&lt;br /&gt;
* Migrate a replication group&lt;br /&gt;
* Retype shares in a consistency group&lt;br /&gt;
* Retype shares in a replication group&lt;br /&gt;
* Backup a consistency group&lt;br /&gt;
* Backup a replication group&lt;br /&gt;
* Apply a common policy to a set of shares&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
On the current path, the support matrix has a dimension dedicated solely to features, so each feature must be coded to be interoperable with every other feature.  This quickly becomes a support and testing nightmare, and it becomes exponentially more complicated to add more features going forward.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Fundamentally, the problem is that we are adding features without an underlying architectural framework on which to hang them.  To escape the matrix, we must step back and rethink a few things.&lt;br /&gt;
&lt;br /&gt;
== A simple solution ==&lt;br /&gt;
So to arrive at a solution, let’s enumerate what we have:&lt;br /&gt;
* Primitive objects (shares) with supported operations controlled by share types that vary by backend&lt;br /&gt;
* A very specific group object (CGs) with limited support potential by backends&lt;br /&gt;
* A number of APIs (CGs, etc.) that many users can’t use at all and appear grafted into the project&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
And what would we prefer:&lt;br /&gt;
* A uniform API and user experience that varies as little as possible by backend&lt;br /&gt;
* A clean way to group shares so we can do CGs, multi-object replication, migration, etc.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
How do we get here?&lt;br /&gt;
* Universally available groups of primitive objects with supported operations that vary by backend&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
=== Idea #1: Introduce a generic Share Group object ===&lt;br /&gt;
Just as Manila has ‘shares’, it should also have ‘share groups’.  In its simplest form, unlike CGs, a share group should not guarantee any specialized operation.  Instead, it should merely constitute an atomic Manila data type on which nearly any Manila action is available.  For example, given a share group, the user should be able to select the group in the Manila UI and invoke features such as snapshot, clone, backup, migrate, replicate, retype, etc.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the general case, group actions are handled by the share manager layer (or potentially the common share driver superclass).  For example, invoking ‘snapshot’ on a group causes the share manager to take a snapshot of each group member individually.  The resulting group snapshot object may be used to create a new group, not unlike how CG snapshots were implemented.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There are numerous advantages to this approach.  Every driver, no matter how unsophisticated, can leverage the manageability goodness of groups.  The user experience is uniform, since groups are always available regardless of which backends are present and because nearly every Manila action available on shares is also available on groups.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Of course, feature-rich backends would like to add their secret sauce, whether it be CGs, group-based replication, or whatever else comes along that might be easier/cheaper/faster to do to groups of shares.  That brings us to a related idea.&lt;br /&gt;
&lt;br /&gt;
=== Idea #2: Introduce Share Group types ===&lt;br /&gt;
Just as Manila has ‘share types’, it should also have ‘share group types’.  Any driver that can perform a group operation in an advantaged way may report that as a group capability, such as:&lt;br /&gt;
* Ordered writes&lt;br /&gt;
* Consistent snapshots&lt;br /&gt;
* Group replication&lt;br /&gt;
* Group backup&lt;br /&gt;
* Group modification&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
As with share types, the cloud administrator predefines share group types that may contain extra specs corresponding to the group capabilities reported by the backends.  The admin also specifies which share type(s) a given group type may contain.  When creating a group, the user specifies the group type and share type, and the scheduler then creates the group on one of the backends that match the specified share and share group type.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anytime a group action, such as ‘snapshot’, comes into the share manager, the manager checks whether its driver offers an advantaged implementation of that operation.  If not, the manager handles the workflow itself as described above.  But if so, the manager routes the workflow to its driver for fulfillment.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The advantages of this approach should be obvious.  Development and testing are simplified because there isn’t a need to define and test a different set of group management APIs for each feature, or to test every combination of every feature.  Instead of becoming an N-by-N matrix of interacting features, Manila largely becomes an N-by-2 matrix of actions that may be invoked on either individual shares or share groups.  Users and admins are already familiar with share types, so introducing share group types would seem a natural and consistent evolution of the same foundational concept.  &lt;br /&gt;
&lt;br /&gt;
The matrix would look like:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Share action !! Share Group action&lt;br /&gt;
|-&lt;br /&gt;
| Create (volume type) || Create (volume types, group type)&lt;br /&gt;
|-&lt;br /&gt;
| Delete || Delete (group, optionally all members)&lt;br /&gt;
|-&lt;br /&gt;
| Snapshot || Snapshot (may or may not be a CG snapshot)&lt;br /&gt;
|-&lt;br /&gt;
| Create from snapshot / Clone || Create from group snapshot / Clone group&lt;br /&gt;
|-&lt;br /&gt;
| Replicate || Replicate&lt;br /&gt;
|-&lt;br /&gt;
| Backup || Backup&lt;br /&gt;
|-&lt;br /&gt;
| Retype || Retype&lt;br /&gt;
|-&lt;br /&gt;
| Migrate || Migrate&lt;br /&gt;
|-&lt;br /&gt;
| Extend / shrink || N/A&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Manila implementation plan ==&lt;br /&gt;
Implementing generic groups in Manila should be a straightforward series of steps:&lt;br /&gt;
# Implement generic groups.  Because we did CGs, we already know all parts of the codebase that must change to support any kind of group.  So the simplest approach is to modify the CG code to morph it into the generic groups feature.&lt;br /&gt;
# Add the share group type feature by duplicating and customizing the share type code.&lt;br /&gt;
# Enhance the scheduler to place groups according to share group types.  Like #1, this is already informed by the CG project.&lt;br /&gt;
# Implement group snapshots in the share manager to demonstrate group snapshots in any driver.&lt;br /&gt;
# Plumb group snapshots to a CG-capable driver to demonstrate CG functionality in the new framework.&lt;br /&gt;
# Update Tempest to cover all of the above.&lt;br /&gt;
# Update Manila client to change CGs to share groups.&lt;br /&gt;
# Enhance Manila client with share group types.&lt;br /&gt;
# Add share group support to Horizon.  We never built CG support into Horizon, so this is all-new work that now has much broader appeal and applicability.&lt;br /&gt;
# Add additional group actions over time (migrate, replicate, retype, clone, …).  At this point, new group capabilities become vertical slices that are simple to add incrementally.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Because we implemented CGs just recently as an experimental feature, we have the freedom to replace that code without deprecation or upgrade considerations.  Steps 1-8 would get Manila to parity with the CG feature added in Liberty, would require only a few person-weeks of effort, and would better position Manila for long-term evolution and supportability.&lt;br /&gt;
=== Implementation details ===&lt;br /&gt;
There are few things to note, several of which were already solved during the CG work.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Groups are first-class objects in Manila, and operations on groups are treated as atomic.  To enable support by as many backends as possible, Manila will still maintain DB objects for both group and member snapshots, just as was done with CGs.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A few actions, such as extend &amp;amp; shrink, are inherently applicable only to individual shares.  One could theoretically apply extend to a group, increasing the size of each member, but that seems like an unlikely use case.  Any actions in this category must remain available to group members, and other actions such as taking snapshots of group members &amp;lt;i&amp;gt;could&amp;lt;/i&amp;gt; be allowed, but actions such as migration or replication would be available only at the group level and not on its members.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A group is limited to a single backend.  Allowing groups that span backends is theoretically possible, but that would require fanout of operations from the API layer to multiple share managers across the asynchronous event bus, which would lead to complicated synchronization and state management for little operational benefit.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As was done with Manila CGs, a driver may optionally limit a group to either the confines of a pool or an entire backend.  It is known that pools are the unit of data motion (i.e. replication or migration) for some backends, so we think drivers need this flexibility.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In a departure from the CG implementation, a group type may support multiple share types, but a group may only contain shares of a single type.  This restriction could be revisited in a later release, but it avoids numerous challenges:&lt;br /&gt;
&lt;br /&gt;
* With multiple share types in a group, the number of potential share/group combinations becomes much larger and it becomes more likely that a group is requested that cannot be scheduled.&lt;br /&gt;
* Operators would have to test and support all share/group combinations.&lt;br /&gt;
* Migration becomes more complicated, especially if a group spans pools, since the destination would have to support the same combination of group &amp;amp; share types.&lt;br /&gt;
* Replication is similarly affected.&lt;br /&gt;
* Retype gets weird if some but not all group members must be migrated.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;We considered reusing share types for groups as well.  But share types include a set of public extra specs that may not map well to groups.  And by adding group types as a separate object, there can be little confusion about their purpose and use.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some have noted that extra specs tend to be treated as an AND operation, where all features must be available for a backend to be chosen.  It is conceivable that even if a backend can replicate a group or take consistent snapshots of a group, it might not be able to perform both operations on the same group.  But this problem already exists with share types and hasn’t been a serious issue.  Creating types is an admin-only operation and the burden remains on the admin to understand the capabilities of the backends in use and to create the share types and share group types appropriately.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that this proposal explicitly does not address pool or backend replication, which is fundamentally different.  Actions on shares or share groups are intended for tenants, whereas a pool or backend can contain data from multiple tenants.  So pool or backend operations, while serving potentially valuable use cases, are inherently admin-only workflows that would be designed and exercised differently should Manila support them.&lt;br /&gt;
&lt;br /&gt;
=== Share Group APIs ===&lt;br /&gt;
&lt;br /&gt;
It is possible to design a REST API that seamlessly handles both shares and share groups with little duplication of APIs.  But at this point in Manila's development, it is arguably too late to radically redesign the API.&lt;br /&gt;
&lt;br /&gt;
It may be possible to overload some of the existing APIs to handle both shares and share groups.  For example, POST /shares/{id}/action could accept the ID of a share or share group and just do the right thing.  But other APIs, such as GET /shares are less practical to overload, since a single endpoint would be returning objects of different types.&lt;br /&gt;
&lt;br /&gt;
It seems better to merely duplicate a few APIs with group versions as needed.  For example:&lt;br /&gt;
* POST /shares --&amp;gt; POST /groups&lt;br /&gt;
* POST /shares/{share_id}/action --&amp;gt; POST /groups/{group_id}/action&lt;br /&gt;
* POST /snapshots --&amp;gt; POST /group_snapshots&lt;br /&gt;
&lt;br /&gt;
== Acknowledgments ==&lt;br /&gt;
Most of the analysis and recommendations contained herein apply equally well to Cinder, which is arguably much further down the path of crippling complexity.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This proposal was developed by cknight with input from Manila community members bswartz, ameade, tbarron, and cfouts.  The Cinder conversations about grouping, as well as the groundbreaking contributions of CGs to Cinder, all of which inspired this proposal, were led by xyang.&lt;/div&gt;</summary>
		<author><name>Clinton Knight</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Manila/design/manila-generic-groups&amp;diff=124353</id>
		<title>Manila/design/manila-generic-groups</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Manila/design/manila-generic-groups&amp;diff=124353"/>
				<updated>2016-04-22T20:04:55Z</updated>
		
		<summary type="html">&lt;p&gt;Clinton Knight: /* Implementation details */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Manila generic groups =&lt;br /&gt;
== Executive summary ==&lt;br /&gt;
Manila needs a grouping construct that, like shares, is a 1st-class atomic data type.  Our experience with CGs has demonstrated the complexity of adding a grouping capability, yet there are other use cases such as migration, replication, and backup in which some storage controllers could only offer such features on share groups.  CGs also highlighted the poor optics of an advanced feature with comparatively little potential for vendor support.  And adding new grouping constructs for each new feature is not technically feasible.  All of the above may be addressed by generic groups, which we think is a clean extension to the original architecture of Manila.&lt;br /&gt;
== An Intractable Matrix ==&lt;br /&gt;
Manila is at an exciting time in its development, where all the simple features are available and the community is focused on adding high-value features such as migration, replication, and consistency groups.  Experimental code is available for each of these, but little consideration has been given to the obvious need for these complex features to interact not only with each other but also with whatever additional features were added later.  And looking a little deeper, it is apparent that each of these has limitations that could be solved by a single architectural enhancement.&lt;br /&gt;
=== Consistency groups ===&lt;br /&gt;
Consistency groups (CGs) are the only construct in Manila that operates on a group of shares.   For some, a CG implies a guarantee of ordered writes by a storage controller, while for others a CG is a mechanism for taking consistent point-in-time snapshots of a set of shares.  A group with either attribute may have value by itself, but the CGs implementation doesn’t distinguish between them.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
CGs are a highly specialized construct with dedicated CLI commands, REST APIs, database tables, scheduler filters, and driver APIs that totaled over 9900 lines.  None of these are reusable for anything else, and none of the rest of Manila has any awareness of CGs.  Even worse, despite all the complexity of the CG feature, only a small minority of storage backends can support them, so the code-to-value ratio is very low and the limited availability of CGs ensures the user experience is inconsistent between clouds.&lt;br /&gt;
&lt;br /&gt;
=== Replication ===&lt;br /&gt;
Replication is another high value feature, and the Manila implementation is arguably clean and flexible, but as constituted there is no core ability to replicate groups of shares.  It seems reasonable to implement the feature iteratively, beginning with replication of single shares.  However, there has been the tacit acknowledgement that some backends would not be able to replicate individual shares, even though those same backends could potentially replicate a group of shares if the group were constituted in a certain way.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Following the precedent established with CGs, one approach would be to introduce ‘replication groups’ whereby multiple shares could be replicated together.  But this would introduce yet another set of APIs, tables, etc. that are too specialized to use for anything else.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Another approach might be to define CGs as the grouping unit of replication, but this makes little sense because consistency groups (however we define them) and replication are distinct features that shouldn’t be artificially bundled for the sake of expediency of definition or implementation.&lt;br /&gt;
=== Migration ===&lt;br /&gt;
Just as some backends may only be able to replicate shares in groups, it follows that those backends may also need to migrate shares in groups.  And in the case of CGs, it doesn’t make sense to migrate CG members individually; the whole group must be moved, requiring the migration engine to be CG aware.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Consider the following reasonable use cases:&lt;br /&gt;
* Replicate a consistency group&lt;br /&gt;
* Snapshot a replication group&lt;br /&gt;
* Migrate a replication group&lt;br /&gt;
* Retype shares in a consistency group&lt;br /&gt;
* Retype shares in a replication group&lt;br /&gt;
* Backup a consistency group&lt;br /&gt;
* Backup a replication group&lt;br /&gt;
* Apply a common policy to a set of shares&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
On the current path, the support matrix has a dimension dedicated solely to features, so each feature must be coded to be interoperable with every other feature.  This quickly becomes a support and testing nightmare, and it becomes exponentially more complicated to add more features going forward.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Fundamentally, the problem is that we are adding features without an underlying architectural framework on which to hang them.  To escape the matrix, we must step back and rethink a few things.&lt;br /&gt;
&lt;br /&gt;
== A simple solution ==&lt;br /&gt;
So to arrive at a solution, let’s enumerate what we have:&lt;br /&gt;
* Primitive objects (shares) with supported operations controlled by share types that vary by backend&lt;br /&gt;
* A very specific group object (CGs) with limited support potential by backends&lt;br /&gt;
* A number of APIs (CGs, etc.) that many users can’t use at all and appear grafted into the project&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
And what would we prefer:&lt;br /&gt;
* A uniform API and user experience that varies as little as possible by backend&lt;br /&gt;
* A clean way to group shares so we can do CGs, multi-object replication, migration, etc.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
How do we get here?&lt;br /&gt;
* Universally available groups of primitive objects with supported operations that vary by backend&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
=== Idea #1: Introduce a generic Share Group object ===&lt;br /&gt;
Just as Manila has ‘shares’, it should also have ‘share groups’.  In its simplest form, unlike CGs, a share group should not guarantee any specialized operation.  Instead, it should merely constitute an atomic Manila data type on which nearly any Manila action is available.  For example, given a share group, the user should be able to select the group in the Manila UI and invoke features such as snapshot, clone, backup, migrate, replicate, retype, etc.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the general case, group actions are handled by the share manager layer (or potentially the common share driver superclass).  For example, invoking ‘snapshot’ on a group causes the share manager to take a snapshot of each group member individually.  The resulting group snapshot object may be used to create a new group, not unlike how CG snapshots were implemented.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There are numerous advantages to this approach.  Every driver, no matter how unsophisticated, can leverage the manageability goodness of groups.  The user experience is uniform, since groups are always available regardless of which backends are present and because nearly every Manila action available on shares is also available on groups.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Of course, feature-rich backends would like to add their secret sauce, whether it be CGs, group-based replication, or whatever else comes along that might be easier/cheaper/faster to do to groups of shares.  That brings us to a related idea.&lt;br /&gt;
&lt;br /&gt;
=== Idea #2: Introduce Share Group types ===&lt;br /&gt;
Just as Manila has ‘share types’, it should also have ‘share group types’.  Any driver that can perform a group operation in an advantaged way may report that as a group capability, such as:&lt;br /&gt;
* Ordered writes&lt;br /&gt;
* Consistent snapshots&lt;br /&gt;
* Group replication&lt;br /&gt;
* Group backup&lt;br /&gt;
* Group modification&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
As with share types, the cloud administrator predefines share group types that may contain extra specs corresponding to the group capabilities reported by the backends.  The admin also specifies which share type(s) a given group type may contain.  When creating a group, the user specifies the group type and share type, and the scheduler then creates the group on one of the backends that match the specified share and share group type.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anytime a group action, such as ‘snapshot’, comes into the share manager, the manager checks whether its driver offers an advantaged implementation of that operation.  If not, the manager handles the workflow itself as described above.  But if so, the manager routes the workflow to its driver for fulfillment.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The advantages of this approach should be obvious.  Development and testing are simplified because there isn’t a need to define and test a different set of group management APIs for each feature, or to test every combination of every feature.  Instead of becoming an N-by-N matrix of interacting features, Manila largely becomes an N-by-2 matrix of actions that may be invoked on either individual shares or share groups.  Users and admins are already familiar with share types, so introducing share group types would seem a natural and consistent evolution of the same foundational concept.  &lt;br /&gt;
&lt;br /&gt;
The matrix would look like:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Share action !! Share Group action&lt;br /&gt;
|-&lt;br /&gt;
| Create (volume type) || Create (volume types, group type)&lt;br /&gt;
|-&lt;br /&gt;
| Delete || Delete (group, optionally all members)&lt;br /&gt;
|-&lt;br /&gt;
| Snapshot || Snapshot (may or may not be a CG snapshot)&lt;br /&gt;
|-&lt;br /&gt;
| Create from snapshot / Clone || Create from group snapshot / Clone group&lt;br /&gt;
|-&lt;br /&gt;
| Replicate || Replicate&lt;br /&gt;
|-&lt;br /&gt;
| Backup || Backup&lt;br /&gt;
|-&lt;br /&gt;
| Retype || Retype&lt;br /&gt;
|-&lt;br /&gt;
| Migrate || Migrate&lt;br /&gt;
|-&lt;br /&gt;
| Extend / shrink || N/A&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Manila implementation plan ==&lt;br /&gt;
Implementing generic groups in Manila should be a straightforward series of steps:&lt;br /&gt;
# Implement generic groups.  Because we did CGs, we already know all parts of the codebase that must change to support any kind of group.  So the simplest approach is to modify the CG code to morph it into the generic groups feature.&lt;br /&gt;
# Add the share group type feature by duplicating and customizing the share type code.&lt;br /&gt;
# Enhance the scheduler to place groups according to share group types.  Like #1, this is already informed by the CG project.&lt;br /&gt;
# Implement group snapshots in the share manager to demonstrate group snapshots in any driver.&lt;br /&gt;
# Plumb group snapshots to a CG-capable driver to demonstrate CG functionality in the new framework.&lt;br /&gt;
# Update Tempest to cover all of the above.&lt;br /&gt;
# Update Manila client to change CGs to share groups.&lt;br /&gt;
# Enhance Manila client with share group types.&lt;br /&gt;
# Add share group support to Horizon.  We never built CG support into Horizon, so this is all-new work that now has much broader appeal and applicability.&lt;br /&gt;
# Add additional group actions over time (migrate, replicate, retype, clone, …).  At this point, new group capabilities become vertical slices that are simple to add incrementally.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Because we implemented CGs just recently as an experimental feature, we have the freedom to replace that code without deprecation or upgrade considerations.  Steps 1-8 would get Manila to parity with the CG feature added in Liberty, would require only a few person-weeks of effort, and would better position Manila for long-term evolution and supportability.&lt;br /&gt;
=== Implementation details ===&lt;br /&gt;
There are few things to note, several of which were already solved during the CG work.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Groups are first-class objects in Manila, and operations on groups are treated as atomic.  To enable support by as many backends as possible, Manila will still maintain DB objects for both group and member snapshots, just as was done with CGs.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A few actions, such as extend &amp;amp; shrink, are inherently applicable only to individual shares.  One could theoretically apply extend to a group, increasing the size of each member, but that seems like an unlikely use case.  Any actions in this category must remain available to group members, and other actions such as taking snapshots of group members &amp;lt;i&amp;gt;could&amp;lt;/i&amp;gt; be allowed, but actions such as migration or replication would be available only at the group level and not on its members.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A group is limited to a single backend.  Allowing groups that span backends is theoretically possible, but that would require fanout of operations from the API layer to multiple share managers across the asynchronous event bus, which would lead to complicated synchronization and state management for little operational benefit.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As was done with Manila CGs, a driver may optionally limit a group to either the confines of a pool or an entire backend.  It is known that pools are the unit of data motion (i.e. replication or migration) for some backends, so we think drivers need this flexibility.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In a departure from the CG implementation, a group type may support multiple share types, but a group may only contain shares of a single type.  This restriction could be lifted in a later release, but it avoids numerous challenges:&lt;br /&gt;
&lt;br /&gt;
* With multiple share types in a group, the number of potential share/group combinations becomes much larger and it becomes more likely that a group is requested that cannot be scheduled.&lt;br /&gt;
* Operators would have to test and support all share/group combinations.&lt;br /&gt;
* Migration becomes more complicated, especially if a group spans pools, since the destination would have to support the same combination of group &amp;amp; share types.&lt;br /&gt;
* Replication is similarly affected.&lt;br /&gt;
* Retype gets weird if some but not all group members must be migrated.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;We considered reusing share types for groups as well.  But share types include a set of public extra specs that may not map well to groups.  And by adding group types as a separate object, there can be little confusion about their purpose and use.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some have noted that extra specs tend to be treated as an AND operation, where all features must be available for a backend to be chosen.  It is conceivable that even if a backend can replicate a group or take consistent snapshots of a group, it might not be able to perform both operations on the same group.  But this problem already exists with share types and hasn’t been a serious issue.  Creating types is an admin-only operation and the burden remains on the admin to understand the capabilities of the backends in use and to create the share types and share group types appropriately.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that this proposal explicitly does not address pool or backend replication, which is fundamentally different.  Actions on shares or share groups are intended for tenants, whereas a pool or backend can contain data from multiple tenants.  So pool or backend operations, while serving potentially valuable use cases, are inherently admin-only workflows that would be designed and exercised differently should Manila support them.&lt;br /&gt;
&lt;br /&gt;
=== Share Group APIs ===&lt;br /&gt;
&lt;br /&gt;
It is possible to design a REST API that seamlessly handles both shares and share groups with little duplication of APIs.  But at this point in Manila's development, it is arguably too late to radically redesign the API.&lt;br /&gt;
&lt;br /&gt;
It may be possible to overload some of the existing APIs to handle both shares and share groups.  For example, POST /shares/{id}/action could accept the ID of a share or share group and just do the right thing.  But other APIs, such as GET /shares are less practical to overload, since a single endpoint would be returning objects of different types.&lt;br /&gt;
&lt;br /&gt;
It seems better to merely duplicate a few APIs with group versions as needed.  For example:&lt;br /&gt;
* POST /shares --&amp;gt; POST /groups&lt;br /&gt;
* POST /shares/{share_id}/action --&amp;gt; POST /groups/{group_id}/action&lt;br /&gt;
* POST /snapshots --&amp;gt; POST /group_snapshots&lt;br /&gt;
&lt;br /&gt;
== Acknowledgments ==&lt;br /&gt;
Most of the analysis and recommendations contained herein apply equally well to Cinder, which is arguably much further down the path of crippling complexity.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This proposal was developed by cknight with input from Manila community members bswartz, ameade, tbarron, and cfouts.  The Cinder conversations about grouping, as well as the groundbreaking contributions of CGs to Cinder, all of which inspired this proposal, were led by xyang.&lt;/div&gt;</summary>
		<author><name>Clinton Knight</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Manila/design/manila-generic-groups&amp;diff=124352</id>
		<title>Manila/design/manila-generic-groups</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Manila/design/manila-generic-groups&amp;diff=124352"/>
				<updated>2016-04-22T20:03:29Z</updated>
		
		<summary type="html">&lt;p&gt;Clinton Knight: /* Implementation details */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Manila generic groups =&lt;br /&gt;
== Executive summary ==&lt;br /&gt;
Manila needs a grouping construct that, like shares, is a 1st-class atomic data type.  Our experience with CGs has demonstrated the complexity of adding a grouping capability, yet there are other use cases such as migration, replication, and backup in which some storage controllers could only offer such features on share groups.  CGs also highlighted the poor optics of an advanced feature with comparatively little potential for vendor support.  And adding new grouping constructs for each new feature is not technically feasible.  All of the above may be addressed by generic groups, which we think is a clean extension to the original architecture of Manila.&lt;br /&gt;
== An Intractable Matrix ==&lt;br /&gt;
Manila is at an exciting time in its development, where all the simple features are available and the community is focused on adding high-value features such as migration, replication, and consistency groups.  Experimental code is available for each of these, but little consideration has been given to the obvious need for these complex features to interact not only with each other but also with whatever additional features were added later.  And looking a little deeper, it is apparent that each of these has limitations that could be solved by a single architectural enhancement.&lt;br /&gt;
=== Consistency groups ===&lt;br /&gt;
Consistency groups (CGs) are the only construct in Manila that operates on a group of shares.   For some, a CG implies a guarantee of ordered writes by a storage controller, while for others a CG is a mechanism for taking consistent point-in-time snapshots of a set of shares.  A group with either attribute may have value by itself, but the CGs implementation doesn’t distinguish between them.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
CGs are a highly specialized construct with dedicated CLI commands, REST APIs, database tables, scheduler filters, and driver APIs that totaled over 9900 lines.  None of these are reusable for anything else, and none of the rest of Manila has any awareness of CGs.  Even worse, despite all the complexity of the CG feature, only a small minority of storage backends can support them, so the code-to-value ratio is very low and the limited availability of CGs ensures the user experience is inconsistent between clouds.&lt;br /&gt;
&lt;br /&gt;
=== Replication ===&lt;br /&gt;
Replication is another high value feature, and the Manila implementation is arguably clean and flexible, but as constituted there is no core ability to replicate groups of shares.  It seems reasonable to implement the feature iteratively, beginning with replication of single shares.  However, there has been the tacit acknowledgement that some backends would not be able to replicate individual shares, even though those same backends could potentially replicate a group of shares if the group were constituted in a certain way.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Following the precedent established with CGs, one approach would be to introduce ‘replication groups’ whereby multiple shares could be replicated together.  But this would introduce yet another set of APIs, tables, etc. that are too specialized to use for anything else.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Another approach might be to define CGs as the grouping unit of replication, but this makes little sense because consistency groups (however we define them) and replication are distinct features that shouldn’t be artificially bundled for the sake of expediency of definition or implementation.&lt;br /&gt;
=== Migration ===&lt;br /&gt;
Just as some backends may only be able to replicate shares in groups, it follows that those backends may also need to migrate shares in groups.  And in the case of CGs, it doesn’t make sense to migrate CG members individually; the whole group must be moved, requiring the migration engine to be CG aware.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Consider the following reasonable use cases:&lt;br /&gt;
* Replicate a consistency group&lt;br /&gt;
* Snapshot a replication group&lt;br /&gt;
* Migrate a replication group&lt;br /&gt;
* Retype shares in a consistency group&lt;br /&gt;
* Retype shares in a replication group&lt;br /&gt;
* Backup a consistency group&lt;br /&gt;
* Backup a replication group&lt;br /&gt;
* Apply a common policy to a set of shares&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
On the current path, the support matrix has a dimension dedicated solely to features, so each feature must be coded to be interoperable with every other feature.  This quickly becomes a support and testing nightmare, and it becomes exponentially more complicated to add more features going forward.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Fundamentally, the problem is that we are adding features without an underlying architectural framework on which to hang them.  To escape the matrix, we must step back and rethink a few things.&lt;br /&gt;
&lt;br /&gt;
== A simple solution ==&lt;br /&gt;
So to arrive at a solution, let’s enumerate what we have:&lt;br /&gt;
* Primitive objects (shares) with supported operations controlled by share types that vary by backend&lt;br /&gt;
* A very specific group object (CGs) with limited support potential by backends&lt;br /&gt;
* A number of APIs (CGs, etc.) that many users can’t use at all and appear grafted into the project&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
And what would we prefer:&lt;br /&gt;
* A uniform API and user experience that varies as little as possible by backend&lt;br /&gt;
* A clean way to group shares so we can do CGs, multi-object replication, migration, etc.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
How do we get here?&lt;br /&gt;
* Universally available groups of primitive objects with supported operations that vary by backend&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
=== Idea #1: Introduce a generic Share Group object ===&lt;br /&gt;
Just as Manila has ‘shares’, it should also have ‘share groups’.  In its simplest form, unlike CGs, a share group should not guarantee any specialized operation.  Instead, it should merely constitute an atomic Manila data type on which nearly any Manila action is available.  For example, given a share group, the user should be able to select the group in the Manila UI and invoke features such as snapshot, clone, backup, migrate, replicate, retype, etc.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the general case, group actions are handled by the share manager layer (or potentially the common share driver superclass).  For example, invoking ‘snapshot’ on a group causes the share manager to take a snapshot of each group member individually.  The resulting group snapshot object may be used to create a new group, not unlike how CG snapshots were implemented.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There are numerous advantages to this approach.  Every driver, no matter how unsophisticated, can leverage the manageability goodness of groups.  The user experience is uniform, since groups are always available regardless of which backends are present and because nearly every Manila action available on shares is also available on groups.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Of course, feature-rich backends would like to add their secret sauce, whether it be CGs, group-based replication, or whatever else comes along that might be easier/cheaper/faster to do to groups of shares.  That brings us to a related idea.&lt;br /&gt;
&lt;br /&gt;
=== Idea #2: Introduce Share Group types ===&lt;br /&gt;
Just as Manila has ‘share types’, it should also have ‘share group types’.  Any driver that can perform a group operation in an advantaged way may report that as a group capability, such as:&lt;br /&gt;
* Ordered writes&lt;br /&gt;
* Consistent snapshots&lt;br /&gt;
* Group replication&lt;br /&gt;
* Group backup&lt;br /&gt;
* Group modification&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
As with share types, the cloud administrator predefines share group types that may contain extra specs corresponding to the group capabilities reported by the backends.  The admin also specifies which share type(s) a given group type may contain.  When creating a group, the user specifies the group type and share type, and the scheduler then creates the group on one of the backends that match the specified share and share group type.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anytime a group action, such as ‘snapshot’, comes into the share manager, the manager checks whether its driver offers an advantaged implementation of that operation.  If not, the manager handles the workflow itself as described above.  But if so, the manager routes the workflow to its driver for fulfillment.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The advantages of this approach should be obvious.  Development and testing are simplified because there isn’t a need to define and test a different set of group management APIs for each feature, or to test every combination of every feature.  Instead of becoming an N-by-N matrix of interacting features, Manila largely becomes an N-by-2 matrix of actions that may be invoked on either individual shares or share groups.  Users and admins are already familiar with share types, so introducing share group types would seem a natural and consistent evolution of the same foundational concept.  &lt;br /&gt;
&lt;br /&gt;
The matrix would look like:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Share action !! Share Group action&lt;br /&gt;
|-&lt;br /&gt;
| Create (volume type) || Create (volume types, group type)&lt;br /&gt;
|-&lt;br /&gt;
| Delete || Delete (group, optionally all members)&lt;br /&gt;
|-&lt;br /&gt;
| Snapshot || Snapshot (may or may not be a CG snapshot)&lt;br /&gt;
|-&lt;br /&gt;
| Create from snapshot / Clone || Create from group snapshot / Clone group&lt;br /&gt;
|-&lt;br /&gt;
| Replicate || Replicate&lt;br /&gt;
|-&lt;br /&gt;
| Backup || Backup&lt;br /&gt;
|-&lt;br /&gt;
| Retype || Retype&lt;br /&gt;
|-&lt;br /&gt;
| Migrate || Migrate&lt;br /&gt;
|-&lt;br /&gt;
| Extend / shrink || N/A&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Manila implementation plan ==&lt;br /&gt;
Implementing generic groups in Manila should be a straightforward series of steps:&lt;br /&gt;
# Implement generic groups.  Because we did CGs, we already know all parts of the codebase that must change to support any kind of group.  So the simplest approach is to modify the CG code to morph it into the generic groups feature.&lt;br /&gt;
# Add the share group type feature by duplicating and customizing the share type code.&lt;br /&gt;
# Enhance the scheduler to place groups according to share group types.  Like #1, this is already informed by the CG project.&lt;br /&gt;
# Implement group snapshots in the share manager to demonstrate group snapshots in any driver.&lt;br /&gt;
# Plumb group snapshots to a CG-capable driver to demonstrate CG functionality in the new framework.&lt;br /&gt;
# Update Tempest to cover all of the above.&lt;br /&gt;
# Update Manila client to change CGs to share groups.&lt;br /&gt;
# Enhance Manila client with share group types.&lt;br /&gt;
# Add share group support to Horizon.  We never built CG support into Horizon, so this is all-new work that now has much broader appeal and applicability.&lt;br /&gt;
# Add additional group actions over time (migrate, replicate, retype, clone, …).  At this point, new group capabilities become vertical slices that are simple to add incrementally.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Because we implemented CGs just recently as an experimental feature, we have the freedom to replace that code without deprecation or upgrade considerations.  Steps 1-8 would get Manila to parity with the CG feature added in Liberty, would require only a few person-weeks of effort, and would better position Manila for long-term evolution and supportability.&lt;br /&gt;
=== Implementation details ===&lt;br /&gt;
There are few things to note, several of which were already solved during the CG work.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Groups are first-class objects in Manila, and operations on groups are treated as atomic.  To enable support by as many backends as possible, Manila will still maintain DB objects for both group and member snapshots, just as was done with CGs.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A few actions, such as extend &amp;amp; shrink, are inherently applicable only to individual shares.  One could theoretically apply extend to a group, increasing the size of each member, but that seems like an unlikely use case.  Any actions in this category must remain available to group members, and other actions such as taking snapshots of group members could be allowed, but other actions such as migration or replication would be available only at the group level and not on its members.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A group is limited to a single backend.  Allowing groups that span backends is theoretically possible, but that would require fanout of operations from the API layer to multiple share managers across the asynchronous event bus, which would lead to complicated synchronization and state management for little operational benefit.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As was done with Manila CGs, a driver may optionally limit a group to either the confines of a pool or an entire backend.  It is known that pools are the unit of data motion (i.e. replication or migration) for some backends, so we think drivers need this flexibility.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In a departure from the CG implementation, a group type may support multiple share types, but a group may only contain shares of a single type.  This restriction could be lifted in a later release, but it avoids numerous challenges:&lt;br /&gt;
&lt;br /&gt;
* With multiple share types in a group, the number of potential share/group combinations becomes much larger and it becomes more likely that a group is requested that cannot be scheduled.&lt;br /&gt;
* Operators would have to test and support all share/group combinations.&lt;br /&gt;
* Migration becomes more complicated, especially if a group spans pools, since the destination would have to support the same combination of group &amp;amp; share types.&lt;br /&gt;
* Replication is similarly affected.&lt;br /&gt;
* Retype gets weird if some but not all group members must be migrated.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;We considered reusing share types for groups as well.  But share types include a set of public extra specs that may not map well to groups.  And by adding group types as a separate object, there can be little confusion about their purpose and use.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some have noted that extra specs tend to be treated as an AND operation, where all features must be available for a backend to be chosen.  It is conceivable that even if a backend can replicate a group or take consistent snapshots of a group, it might not be able to perform both operations on the same group.  But this problem already exists with share types and hasn’t been a serious issue.  Creating types is an admin-only operation and the burden remains on the admin to understand the capabilities of the backends in use and to create the share types and share group types appropriately.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that this proposal explicitly does not address pool or backend replication, which is fundamentally different.  Actions on shares or share groups are intended for tenants, whereas a pool or backend can contain data from multiple tenants.  So pool or backend operations, while serving potentially valuable use cases, are inherently admin-only workflows that would be designed and exercised differently should Manila support them.&lt;br /&gt;
&lt;br /&gt;
=== Share Group APIs ===&lt;br /&gt;
&lt;br /&gt;
It is possible to design a REST API that seamlessly handles both shares and share groups with little duplication of APIs.  But at this point in Manila's development, it is arguably too late to radically redesign the API.&lt;br /&gt;
&lt;br /&gt;
It may be possible to overload some of the existing APIs to handle both shares and share groups.  For example, POST /shares/{id}/action could accept the ID of a share or share group and just do the right thing.  But other APIs, such as GET /shares are less practical to overload, since a single endpoint would be returning objects of different types.&lt;br /&gt;
&lt;br /&gt;
It seems better to merely duplicate a few APIs with group versions as needed.  For example:&lt;br /&gt;
* POST /shares --&amp;gt; POST /groups&lt;br /&gt;
* POST /shares/{share_id}/action --&amp;gt; POST /groups/{group_id}/action&lt;br /&gt;
* POST /snapshots --&amp;gt; POST /group_snapshots&lt;br /&gt;
&lt;br /&gt;
== Acknowledgments ==&lt;br /&gt;
Most of the analysis and recommendations contained herein apply equally well to Cinder, which is arguably much further down the path of crippling complexity.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This proposal was developed by cknight with input from Manila community members bswartz, ameade, tbarron, and cfouts.  The Cinder conversations about grouping, as well as the groundbreaking contributions of CGs to Cinder, all of which inspired this proposal, were led by xyang.&lt;/div&gt;</summary>
		<author><name>Clinton Knight</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Manila/design/manila-generic-groups&amp;diff=124350</id>
		<title>Manila/design/manila-generic-groups</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Manila/design/manila-generic-groups&amp;diff=124350"/>
				<updated>2016-04-22T19:49:18Z</updated>
		
		<summary type="html">&lt;p&gt;Clinton Knight: /* Idea #2: Introduce Share Group types */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Manila generic groups =&lt;br /&gt;
== Executive summary ==&lt;br /&gt;
Manila needs a grouping construct that, like shares, is a 1st-class atomic data type.  Our experience with CGs has demonstrated the complexity of adding a grouping capability, yet there are other use cases such as migration, replication, and backup in which some storage controllers could only offer such features on share groups.  CGs also highlighted the poor optics of an advanced feature with comparatively little potential for vendor support.  And adding new grouping constructs for each new feature is not technically feasible.  All of the above may be addressed by generic groups, which we think is a clean extension to the original architecture of Manila.&lt;br /&gt;
== An Intractable Matrix ==&lt;br /&gt;
Manila is at an exciting time in its development, where all the simple features are available and the community is focused on adding high-value features such as migration, replication, and consistency groups.  Experimental code is available for each of these, but little consideration has been given to the obvious need for these complex features to interact not only with each other but also with whatever additional features were added later.  And looking a little deeper, it is apparent that each of these has limitations that could be solved by a single architectural enhancement.&lt;br /&gt;
=== Consistency groups ===&lt;br /&gt;
Consistency groups (CGs) are the only construct in Manila that operates on a group of shares.   For some, a CG implies a guarantee of ordered writes by a storage controller, while for others a CG is a mechanism for taking consistent point-in-time snapshots of a set of shares.  A group with either attribute may have value by itself, but the CGs implementation doesn’t distinguish between them.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
CGs are a highly specialized construct with dedicated CLI commands, REST APIs, database tables, scheduler filters, and driver APIs that totaled over 9900 lines.  None of these are reusable for anything else, and none of the rest of Manila has any awareness of CGs.  Even worse, despite all the complexity of the CG feature, only a small minority of storage backends can support them, so the code-to-value ratio is very low and the limited availability of CGs ensures the user experience is inconsistent between clouds.&lt;br /&gt;
&lt;br /&gt;
=== Replication ===&lt;br /&gt;
Replication is another high value feature, and the Manila implementation is arguably clean and flexible, but as constituted there is no core ability to replicate groups of shares.  It seems reasonable to implement the feature iteratively, beginning with replication of single shares.  However, there has been the tacit acknowledgement that some backends would not be able to replicate individual shares, even though those same backends could potentially replicate a group of shares if the group were constituted in a certain way.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Following the precedent established with CGs, one approach would be to introduce ‘replication groups’ whereby multiple shares could be replicated together.  But this would introduce yet another set of APIs, tables, etc. that are too specialized to use for anything else.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Another approach might be to define CGs as the grouping unit of replication, but this makes little sense because consistency groups (however we define them) and replication are distinct features that shouldn’t be artificially bundled for the sake of expediency of definition or implementation.&lt;br /&gt;
=== Migration ===&lt;br /&gt;
Just as some backends may only be able to replicate shares in groups, it follows that those backends may also need to migrate shares in groups.  And in the case of CGs, it doesn’t make sense to migrate CG members individually; the whole group must be moved, requiring the migration engine to be CG aware.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Consider the following reasonable use cases:&lt;br /&gt;
* Replicate a consistency group&lt;br /&gt;
* Snapshot a replication group&lt;br /&gt;
* Migrate a replication group&lt;br /&gt;
* Retype shares in a consistency group&lt;br /&gt;
* Retype shares in a replication group&lt;br /&gt;
* Backup a consistency group&lt;br /&gt;
* Backup a replication group&lt;br /&gt;
* Apply a common policy to a set of shares&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
On the current path, the support matrix has a dimension dedicated solely to features, so each feature must be coded to be interoperable with every other feature.  This quickly becomes a support and testing nightmare, and it becomes exponentially more complicated to add more features going forward.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Fundamentally, the problem is that we are adding features without an underlying architectural framework on which to hang them.  To escape the matrix, we must step back and rethink a few things.&lt;br /&gt;
&lt;br /&gt;
== A simple solution ==&lt;br /&gt;
So to arrive at a solution, let’s enumerate what we have:&lt;br /&gt;
* Primitive objects (shares) with supported operations controlled by share types that vary by backend&lt;br /&gt;
* A very specific group object (CGs) with limited support potential by backends&lt;br /&gt;
* A number of APIs (CGs, etc.) that many users can’t use at all and appear grafted into the project&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
And what would we prefer:&lt;br /&gt;
* A uniform API and user experience that varies as little as possible by backend&lt;br /&gt;
* A clean way to group shares so we can do CGs, multi-object replication, migration, etc.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
How do we get here?&lt;br /&gt;
* Universally available groups of primitive objects with supported operations that vary by backend&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
=== Idea #1: Introduce a generic Share Group object ===&lt;br /&gt;
Just as Manila has ‘shares’, it should also have ‘share groups’.  In its simplest form, unlike CGs, a share group should not guarantee any specialized operation.  Instead, it should merely constitute an atomic Manila data type on which nearly any Manila action is available.  For example, given a share group, the user should be able to select the group in the Manila UI and invoke features such as snapshot, clone, backup, migrate, replicate, retype, etc.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the general case, group actions are handled by the share manager layer (or potentially the common share driver superclass).  For example, invoking ‘snapshot’ on a group causes the share manager to take a snapshot of each group member individually.  The resulting group snapshot object may be used to create a new group, not unlike how CG snapshots were implemented.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There are numerous advantages to this approach.  Every driver, no matter how unsophisticated, can leverage the manageability goodness of groups.  The user experience is uniform, since groups are always available regardless of which backends are present and because nearly every Manila action available on shares is also available on groups.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Of course, feature-rich backends would like to add their secret sauce, whether it be CGs, group-based replication, or whatever else comes along that might be easier/cheaper/faster to do to groups of shares.  That brings us to a related idea.&lt;br /&gt;
&lt;br /&gt;
=== Idea #2: Introduce Share Group types ===&lt;br /&gt;
Just as Manila has ‘share types’, it should also have ‘share group types’.  Any driver that can perform a group operation in an advantaged way may report that as a group capability, such as:&lt;br /&gt;
* Ordered writes&lt;br /&gt;
* Consistent snapshots&lt;br /&gt;
* Group replication&lt;br /&gt;
* Group backup&lt;br /&gt;
* Group modification&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
As with share types, the cloud administrator predefines share group types that may contain extra specs corresponding to the group capabilities reported by the backends.  The admin also specifies which share type(s) a given group type may contain.  When creating a group, the user specifies the group type and share type, and the scheduler then creates the group on one of the backends that match the specified share and share group type.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anytime a group action, such as ‘snapshot’, comes into the share manager, the manager checks whether its driver offers an advantaged implementation of that operation.  If not, the manager handles the workflow itself as described above.  But if so, the manager routes the workflow to its driver for fulfillment.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The advantages of this approach should be obvious.  Development and testing are simplified because there isn’t a need to define and test a different set of group management APIs for each feature, or to test every combination of every feature.  Instead of becoming an N-by-N matrix of interacting features, Manila largely becomes an N-by-2 matrix of actions that may be invoked on either individual shares or share groups.  Users and admins are already familiar with share types, so introducing share group types would seem a natural and consistent evolution of the same foundational concept.  &lt;br /&gt;
&lt;br /&gt;
The matrix would look like:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Share action !! Share Group action&lt;br /&gt;
|-&lt;br /&gt;
| Create (volume type) || Create (volume types, group type)&lt;br /&gt;
|-&lt;br /&gt;
| Delete || Delete (group, optionally all members)&lt;br /&gt;
|-&lt;br /&gt;
| Snapshot || Snapshot (may or may not be a CG snapshot)&lt;br /&gt;
|-&lt;br /&gt;
| Create from snapshot / Clone || Create from group snapshot / Clone group&lt;br /&gt;
|-&lt;br /&gt;
| Replicate || Replicate&lt;br /&gt;
|-&lt;br /&gt;
| Backup || Backup&lt;br /&gt;
|-&lt;br /&gt;
| Retype || Retype&lt;br /&gt;
|-&lt;br /&gt;
| Migrate || Migrate&lt;br /&gt;
|-&lt;br /&gt;
| Extend / shrink || N/A&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Manila implementation plan ==&lt;br /&gt;
Implementing generic groups in Manila should be a straightforward series of steps:&lt;br /&gt;
# Implement generic groups.  Because we did CGs, we already know all parts of the codebase that must change to support any kind of group.  So the simplest approach is to modify the CG code to morph it into the generic groups feature.&lt;br /&gt;
# Add the share group type feature by duplicating and customizing the share type code.&lt;br /&gt;
# Enhance the scheduler to place groups according to share group types.  Like #1, this is already informed by the CG project.&lt;br /&gt;
# Implement group snapshots in the share manager to demonstrate group snapshots in any driver.&lt;br /&gt;
# Plumb group snapshots to a CG-capable driver to demonstrate CG functionality in the new framework.&lt;br /&gt;
# Update Tempest to cover all of the above.&lt;br /&gt;
# Update Manila client to change CGs to share groups.&lt;br /&gt;
# Enhance Manila client with share group types.&lt;br /&gt;
# Add share group support to Horizon.  We never built CG support into Horizon, so this is all-new work that now has much broader appeal and applicability.&lt;br /&gt;
# Add additional group actions over time (migrate, replicate, retype, clone, …).  At this point, new group capabilities become vertical slices that are simple to add incrementally.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Because we implemented CGs just recently as an experimental feature, we have the freedom to replace that code without deprecation or upgrade considerations.  Steps 1-8 would get Manila to parity with the CG feature added in Liberty, would require only a few person-weeks of effort, and would better position Manila for long-term evolution and supportability.&lt;br /&gt;
=== Implementation details ===&lt;br /&gt;
There are few things to note, several of which were already solved during the CG work.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Groups are first-class objects in Manila, and operations on groups are treated as atomic.  For example, a user will see a group snapshot but not the individual snapshots of group members.  To enable support by as many backends as possible, Manila will still maintain DB objects for both group and member snapshots, just as was done with CGs.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A few actions, such as extend &amp;amp; shrink, are inherently applicable only to individual shares.  One could theoretically apply extend to a group, increasing the size of each member, but that seems like an unlikely use case.  Any actions in this category must remain available to group members, although most actions such as clone or snapshot would be available only at the group level and not on its members.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A group is limited to a single backend.  Allowing groups that span backends is theoretically possible, but that would require fanout of operations from the API layer to multiple share managers across the asynchronous event bus, which would lead to complicated synchronization and state management for little operational benefit.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As was done with Manila CGs, a driver may optionally limit a group to either the confines of a pool or an entire backend.  It is known that pools are the unit of data motion (i.e. replication or migration) for some backends, so we think drivers need this flexibility.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We considered reusing share types for groups as well.  But share types include a set of public extra specs that may not map well to groups.  And by adding group types as a separate object, there can be little confusion about their purpose and use.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some have noted that extra specs tend to be treated as an AND operation, where all features must be available for a backend to be chosen.  It is conceivable that even if a backend can replicate a group or take consistent snapshots of a group, it might not be able to perform both operations on the same group.  But this problem already exists with share types and hasn’t been a serious issue.  Creating types is an admin-only operation and the burden remains on the admin to understand the capabilities of the backends in use and to create the share types and share group types appropriately.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that this proposal explicitly does not address pool or backend replication, which is fundamentally different.  Actions on shares or share groups are intended for tenants, whereas a pool or backend can contain data from multiple tenants.  So pool or backend operations, while serving potentially valuable use cases, are inherently admin-only workflows that would be designed and exercised differently should Manila support them.&lt;br /&gt;
&lt;br /&gt;
=== Share Group APIs ===&lt;br /&gt;
&lt;br /&gt;
It is possible to design a REST API that seamlessly handles both shares and share groups with little duplication of APIs.  But at this point in Manila's development, it is arguably too late to radically redesign the API.&lt;br /&gt;
&lt;br /&gt;
It may be possible to overload some of the existing APIs to handle both shares and share groups.  For example, POST /shares/{id}/action could accept the ID of a share or share group and just do the right thing.  But other APIs, such as GET /shares are less practical to overload, since a single endpoint would be returning objects of different types.&lt;br /&gt;
&lt;br /&gt;
It seems better to merely duplicate a few APIs with group versions as needed.  For example:&lt;br /&gt;
* POST /shares --&amp;gt; POST /groups&lt;br /&gt;
* POST /shares/{share_id}/action --&amp;gt; POST /groups/{group_id}/action&lt;br /&gt;
* POST /snapshots --&amp;gt; POST /group_snapshots&lt;br /&gt;
&lt;br /&gt;
== Acknowledgments ==&lt;br /&gt;
Most of the analysis and recommendations contained herein apply equally well to Cinder, which is arguably much further down the path of crippling complexity.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This proposal was developed by cknight with input from Manila community members bswartz, ameade, tbarron, and cfouts.  The Cinder conversations about grouping, as well as the groundbreaking contributions of CGs to Cinder, all of which inspired this proposal, were led by xyang.&lt;/div&gt;</summary>
		<author><name>Clinton Knight</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Manila/design/manila-generic-groups&amp;diff=124349</id>
		<title>Manila/design/manila-generic-groups</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Manila/design/manila-generic-groups&amp;diff=124349"/>
				<updated>2016-04-22T19:45:53Z</updated>
		
		<summary type="html">&lt;p&gt;Clinton Knight: /* Migration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Manila generic groups =&lt;br /&gt;
== Executive summary ==&lt;br /&gt;
Manila needs a grouping construct that, like shares, is a 1st-class atomic data type.  Our experience with CGs has demonstrated the complexity of adding a grouping capability, yet there are other use cases such as migration, replication, and backup in which some storage controllers could only offer such features on share groups.  CGs also highlighted the poor optics of an advanced feature with comparatively little potential for vendor support.  And adding new grouping constructs for each new feature is not technically feasible.  All of the above may be addressed by generic groups, which we think is a clean extension to the original architecture of Manila.&lt;br /&gt;
== An Intractable Matrix ==&lt;br /&gt;
Manila is at an exciting time in its development, where all the simple features are available and the community is focused on adding high-value features such as migration, replication, and consistency groups.  Experimental code is available for each of these, but little consideration has been given to the obvious need for these complex features to interact not only with each other but also with whatever additional features were added later.  And looking a little deeper, it is apparent that each of these has limitations that could be solved by a single architectural enhancement.&lt;br /&gt;
=== Consistency groups ===&lt;br /&gt;
Consistency groups (CGs) are the only construct in Manila that operates on a group of shares.   For some, a CG implies a guarantee of ordered writes by a storage controller, while for others a CG is a mechanism for taking consistent point-in-time snapshots of a set of shares.  A group with either attribute may have value by itself, but the CGs implementation doesn’t distinguish between them.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
CGs are a highly specialized construct with dedicated CLI commands, REST APIs, database tables, scheduler filters, and driver APIs that totaled over 9900 lines.  None of these are reusable for anything else, and none of the rest of Manila has any awareness of CGs.  Even worse, despite all the complexity of the CG feature, only a small minority of storage backends can support them, so the code-to-value ratio is very low and the limited availability of CGs ensures the user experience is inconsistent between clouds.&lt;br /&gt;
&lt;br /&gt;
=== Replication ===&lt;br /&gt;
Replication is another high value feature, and the Manila implementation is arguably clean and flexible, but as constituted there is no core ability to replicate groups of shares.  It seems reasonable to implement the feature iteratively, beginning with replication of single shares.  However, there has been the tacit acknowledgement that some backends would not be able to replicate individual shares, even though those same backends could potentially replicate a group of shares if the group were constituted in a certain way.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Following the precedent established with CGs, one approach would be to introduce ‘replication groups’ whereby multiple shares could be replicated together.  But this would introduce yet another set of APIs, tables, etc. that are too specialized to use for anything else.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Another approach might be to define CGs as the grouping unit of replication, but this makes little sense because consistency groups (however we define them) and replication are distinct features that shouldn’t be artificially bundled for the sake of expediency of definition or implementation.&lt;br /&gt;
=== Migration ===&lt;br /&gt;
Just as some backends may only be able to replicate shares in groups, it follows that those backends may also need to migrate shares in groups.  And in the case of CGs, it doesn’t make sense to migrate CG members individually; the whole group must be moved, requiring the migration engine to be CG aware.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Consider the following reasonable use cases:&lt;br /&gt;
* Replicate a consistency group&lt;br /&gt;
* Snapshot a replication group&lt;br /&gt;
* Migrate a replication group&lt;br /&gt;
* Retype shares in a consistency group&lt;br /&gt;
* Retype shares in a replication group&lt;br /&gt;
* Backup a consistency group&lt;br /&gt;
* Backup a replication group&lt;br /&gt;
* Apply a common policy to a set of shares&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
On the current path, the support matrix has a dimension dedicated solely to features, so each feature must be coded to be interoperable with every other feature.  This quickly becomes a support and testing nightmare, and it becomes exponentially more complicated to add more features going forward.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Fundamentally, the problem is that we are adding features without an underlying architectural framework on which to hang them.  To escape the matrix, we must step back and rethink a few things.&lt;br /&gt;
&lt;br /&gt;
== A simple solution ==&lt;br /&gt;
So to arrive at a solution, let’s enumerate what we have:&lt;br /&gt;
* Primitive objects (shares) with supported operations controlled by share types that vary by backend&lt;br /&gt;
* A very specific group object (CGs) with limited support potential by backends&lt;br /&gt;
* A number of APIs (CGs, etc.) that many users can’t use at all and appear grafted into the project&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
And what would we prefer:&lt;br /&gt;
* A uniform API and user experience that varies as little as possible by backend&lt;br /&gt;
* A clean way to group shares so we can do CGs, multi-object replication, migration, etc.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
How do we get here?&lt;br /&gt;
* Universally available groups of primitive objects with supported operations that vary by backend&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
=== Idea #1: Introduce a generic Share Group object ===&lt;br /&gt;
Just as Manila has ‘shares’, it should also have ‘share groups’.  In its simplest form, unlike CGs, a share group should not guarantee any specialized operation.  Instead, it should merely constitute an atomic Manila data type on which nearly any Manila action is available.  For example, given a share group, the user should be able to select the group in the Manila UI and invoke features such as snapshot, clone, backup, migrate, replicate, retype, etc.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the general case, group actions are handled by the share manager layer (or potentially the common share driver superclass).  For example, invoking ‘snapshot’ on a group causes the share manager to take a snapshot of each group member individually.  The resulting group snapshot object may be used to create a new group, not unlike how CG snapshots were implemented.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There are numerous advantages to this approach.  Every driver, no matter how unsophisticated, can leverage the manageability goodness of groups.  The user experience is uniform, since groups are always available regardless of which backends are present and because nearly every Manila action available on shares is also available on groups.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Of course, feature-rich backends would like to add their secret sauce, whether it be CGs, group-based replication, or whatever else comes along that might be easier/cheaper/faster to do to groups of shares.  That brings us to a related idea.&lt;br /&gt;
&lt;br /&gt;
=== Idea #2: Introduce Share Group types ===&lt;br /&gt;
Just as Manila has ‘share types’, it should also have ‘share group types’.  Any driver that can perform a group operation in an advantaged way may report that as a group capability, such as:&lt;br /&gt;
* Ordered writes&lt;br /&gt;
* Consistent snapshots&lt;br /&gt;
* Group replication&lt;br /&gt;
* Group backup&lt;br /&gt;
* Group modification&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
As with share types, the cloud administrator predefines share group types that may contain extra specs corresponding to the group capabilities reported by the backends.  And when creating a group, the user specifies one or more share types as well as a group type, and the scheduler then creates the group on one of the backends that match the specified share and share group types.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anytime a group action, such as ‘snapshot’, comes into the share manager, the manager checks whether its driver offers an advantaged implementation of that operation.  If not, the manager handles the workflow itself as described above.  But if so, the manager routes the workflow to its driver for fulfillment.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The advantages of this approach should be obvious.  Development and testing are simplified because there isn’t a need to define and test a different set of group management APIs for each feature, or to test every combination of every feature.  Instead of becoming an N-by-N matrix of interacting features, Manila largely becomes an N-by-2 matrix of actions that may be invoked on either individual shares or share groups.  Users and admins are already familiar with share types, so introducing share group types would seem a natural and consistent evolution of the same foundational concept.  &lt;br /&gt;
&lt;br /&gt;
The matrix would look like:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Share action !! Share Group action&lt;br /&gt;
|-&lt;br /&gt;
| Create (volume type) || Create (volume types, group type)&lt;br /&gt;
|-&lt;br /&gt;
| Delete || Delete (group, optionally all members)&lt;br /&gt;
|-&lt;br /&gt;
| Snapshot || Snapshot (may or may not be a CG snapshot)&lt;br /&gt;
|-&lt;br /&gt;
| Create from snapshot / Clone || Create from group snapshot / Clone group&lt;br /&gt;
|-&lt;br /&gt;
| Replicate || Replicate&lt;br /&gt;
|-&lt;br /&gt;
| Backup || Backup&lt;br /&gt;
|-&lt;br /&gt;
| Retype || Retype&lt;br /&gt;
|-&lt;br /&gt;
| Migrate || Migrate&lt;br /&gt;
|-&lt;br /&gt;
| Extend / shrink || N/A&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Manila implementation plan ==&lt;br /&gt;
Implementing generic groups in Manila should be a straightforward series of steps:&lt;br /&gt;
# Implement generic groups.  Because we did CGs, we already know all parts of the codebase that must change to support any kind of group.  So the simplest approach is to modify the CG code to morph it into the generic groups feature.&lt;br /&gt;
# Add the share group type feature by duplicating and customizing the share type code.&lt;br /&gt;
# Enhance the scheduler to place groups according to share group types.  Like #1, this is already informed by the CG project.&lt;br /&gt;
# Implement group snapshots in the share manager to demonstrate group snapshots in any driver.&lt;br /&gt;
# Plumb group snapshots to a CG-capable driver to demonstrate CG functionality in the new framework.&lt;br /&gt;
# Update Tempest to cover all of the above.&lt;br /&gt;
# Update Manila client to change CGs to share groups.&lt;br /&gt;
# Enhance Manila client with share group types.&lt;br /&gt;
# Add share group support to Horizon.  We never built CG support into Horizon, so this is all-new work that now has much broader appeal and applicability.&lt;br /&gt;
# Add additional group actions over time (migrate, replicate, retype, clone, …).  At this point, new group capabilities become vertical slices that are simple to add incrementally.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Because we implemented CGs just recently as an experimental feature, we have the freedom to replace that code without deprecation or upgrade considerations.  Steps 1-8 would get Manila to parity with the CG feature added in Liberty, would require only a few person-weeks of effort, and would better position Manila for long-term evolution and supportability.&lt;br /&gt;
=== Implementation details ===&lt;br /&gt;
There are few things to note, several of which were already solved during the CG work.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Groups are first-class objects in Manila, and operations on groups are treated as atomic.  For example, a user will see a group snapshot but not the individual snapshots of group members.  To enable support by as many backends as possible, Manila will still maintain DB objects for both group and member snapshots, just as was done with CGs.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A few actions, such as extend &amp;amp; shrink, are inherently applicable only to individual shares.  One could theoretically apply extend to a group, increasing the size of each member, but that seems like an unlikely use case.  Any actions in this category must remain available to group members, although most actions such as clone or snapshot would be available only at the group level and not on its members.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A group is limited to a single backend.  Allowing groups that span backends is theoretically possible, but that would require fanout of operations from the API layer to multiple share managers across the asynchronous event bus, which would lead to complicated synchronization and state management for little operational benefit.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As was done with Manila CGs, a driver may optionally limit a group to either the confines of a pool or an entire backend.  It is known that pools are the unit of data motion (i.e. replication or migration) for some backends, so we think drivers need this flexibility.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We considered reusing share types for groups as well.  But share types include a set of public extra specs that may not map well to groups.  And by adding group types as a separate object, there can be little confusion about their purpose and use.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some have noted that extra specs tend to be treated as an AND operation, where all features must be available for a backend to be chosen.  It is conceivable that even if a backend can replicate a group or take consistent snapshots of a group, it might not be able to perform both operations on the same group.  But this problem already exists with share types and hasn’t been a serious issue.  Creating types is an admin-only operation and the burden remains on the admin to understand the capabilities of the backends in use and to create the share types and share group types appropriately.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that this proposal explicitly does not address pool or backend replication, which is fundamentally different.  Actions on shares or share groups are intended for tenants, whereas a pool or backend can contain data from multiple tenants.  So pool or backend operations, while serving potentially valuable use cases, are inherently admin-only workflows that would be designed and exercised differently should Manila support them.&lt;br /&gt;
&lt;br /&gt;
=== Share Group APIs ===&lt;br /&gt;
&lt;br /&gt;
It is possible to design a REST API that seamlessly handles both shares and share groups with little duplication of APIs.  But at this point in Manila's development, it is arguably too late to radically redesign the API.&lt;br /&gt;
&lt;br /&gt;
It may be possible to overload some of the existing APIs to handle both shares and share groups.  For example, POST /shares/{id}/action could accept the ID of a share or share group and just do the right thing.  But other APIs, such as GET /shares are less practical to overload, since a single endpoint would be returning objects of different types.&lt;br /&gt;
&lt;br /&gt;
It seems better to merely duplicate a few APIs with group versions as needed.  For example:&lt;br /&gt;
* POST /shares --&amp;gt; POST /groups&lt;br /&gt;
* POST /shares/{share_id}/action --&amp;gt; POST /groups/{group_id}/action&lt;br /&gt;
* POST /snapshots --&amp;gt; POST /group_snapshots&lt;br /&gt;
&lt;br /&gt;
== Acknowledgments ==&lt;br /&gt;
Most of the analysis and recommendations contained herein apply equally well to Cinder, which is arguably much further down the path of crippling complexity.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This proposal was developed by cknight with input from Manila community members bswartz, ameade, tbarron, and cfouts.  The Cinder conversations about grouping, as well as the groundbreaking contributions of CGs to Cinder, all of which inspired this proposal, were led by xyang.&lt;/div&gt;</summary>
		<author><name>Clinton Knight</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Manila/design/manila-generic-groups&amp;diff=124348</id>
		<title>Manila/design/manila-generic-groups</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Manila/design/manila-generic-groups&amp;diff=124348"/>
				<updated>2016-04-22T19:38:10Z</updated>
		
		<summary type="html">&lt;p&gt;Clinton Knight: /* Idea #1: Introduce a generic Share Group object */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Manila generic groups =&lt;br /&gt;
== Executive summary ==&lt;br /&gt;
Manila needs a grouping construct that, like shares, is a 1st-class atomic data type.  Our experience with CGs has demonstrated the complexity of adding a grouping capability, yet there are other use cases such as migration, replication, and backup in which some storage controllers could only offer such features on share groups.  CGs also highlighted the poor optics of an advanced feature with comparatively little potential for vendor support.  And adding new grouping constructs for each new feature is not technically feasible.  All of the above may be addressed by generic groups, which we think is a clean extension to the original architecture of Manila.&lt;br /&gt;
== An Intractable Matrix ==&lt;br /&gt;
Manila is at an exciting time in its development, where all the simple features are available and the community is focused on adding high-value features such as migration, replication, and consistency groups.  Experimental code is available for each of these, but little consideration has been given to the obvious need for these complex features to interact not only with each other but also with whatever additional features were added later.  And looking a little deeper, it is apparent that each of these has limitations that could be solved by a single architectural enhancement.&lt;br /&gt;
=== Consistency groups ===&lt;br /&gt;
Consistency groups (CGs) are the only construct in Manila that operates on a group of shares.   For some, a CG implies a guarantee of ordered writes by a storage controller, while for others a CG is a mechanism for taking consistent point-in-time snapshots of a set of shares.  A group with either attribute may have value by itself, but the CGs implementation doesn’t distinguish between them.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
CGs are a highly specialized construct with dedicated CLI commands, REST APIs, database tables, scheduler filters, and driver APIs that totaled over 9900 lines.  None of these are reusable for anything else, and none of the rest of Manila has any awareness of CGs.  Even worse, despite all the complexity of the CG feature, only a small minority of storage backends can support them, so the code-to-value ratio is very low and the limited availability of CGs ensures the user experience is inconsistent between clouds.&lt;br /&gt;
&lt;br /&gt;
=== Replication ===&lt;br /&gt;
Replication is another high value feature, and the Manila implementation is arguably clean and flexible, but as constituted there is no core ability to replicate groups of shares.  It seems reasonable to implement the feature iteratively, beginning with replication of single shares.  However, there has been the tacit acknowledgement that some backends would not be able to replicate individual shares, even though those same backends could potentially replicate a group of shares if the group were constituted in a certain way.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Following the precedent established with CGs, one approach would be to introduce ‘replication groups’ whereby multiple shares could be replicated together.  But this would introduce yet another set of APIs, tables, etc. that are too specialized to use for anything else.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Another approach might be to define CGs as the grouping unit of replication, but this makes little sense because consistency groups (however we define them) and replication are distinct features that shouldn’t be artificially bundled for the sake of expediency of definition or implementation.&lt;br /&gt;
=== Migration ===&lt;br /&gt;
Just as some backends may only be able to replicate shares in groups, it follows that those backends may also need to migrate shares in groups.  And in the case of CGs, it doesn’t make sense to migrate CG members individually; the whole group must be moved, requiring the replication engine to be CG aware.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Consider the following reasonable use cases:&lt;br /&gt;
* Replicate a consistency group&lt;br /&gt;
* Snapshot a replication group&lt;br /&gt;
* Migrate a replication group&lt;br /&gt;
* Retype shares in a consistency group&lt;br /&gt;
* Retype shares in a replication group&lt;br /&gt;
* Backup a consistency group&lt;br /&gt;
* Backup a replication group&lt;br /&gt;
* Apply a common policy to a set of shares&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
On the current path, the support matrix has a dimension dedicated solely to features, so each feature must be coded to be interoperable with every other feature.  This quickly becomes a support and testing nightmare, and it becomes exponentially more complicated to add more features going forward.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Fundamentally, the problem is that we are adding features without an underlying architectural framework on which to hang them.  To escape the matrix, we must step back and rethink a few things.&lt;br /&gt;
&lt;br /&gt;
== A simple solution ==&lt;br /&gt;
So to arrive at a solution, let’s enumerate what we have:&lt;br /&gt;
* Primitive objects (shares) with supported operations controlled by share types that vary by backend&lt;br /&gt;
* A very specific group object (CGs) with limited support potential by backends&lt;br /&gt;
* A number of APIs (CGs, etc.) that many users can’t use at all and appear grafted into the project&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
And what would we prefer:&lt;br /&gt;
* A uniform API and user experience that varies as little as possible by backend&lt;br /&gt;
* A clean way to group shares so we can do CGs, multi-object replication, migration, etc.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
How do we get here?&lt;br /&gt;
* Universally available groups of primitive objects with supported operations that vary by backend&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
=== Idea #1: Introduce a generic Share Group object ===&lt;br /&gt;
Just as Manila has ‘shares’, it should also have ‘share groups’.  In its simplest form, unlike CGs, a share group should not guarantee any specialized operation.  Instead, it should merely constitute an atomic Manila data type on which nearly any Manila action is available.  For example, given a share group, the user should be able to select the group in the Manila UI and invoke features such as snapshot, clone, backup, migrate, replicate, retype, etc.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the general case, group actions are handled by the share manager layer (or potentially the common share driver superclass).  For example, invoking ‘snapshot’ on a group causes the share manager to take a snapshot of each group member individually.  The resulting group snapshot object may be used to create a new group, not unlike how CG snapshots were implemented.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There are numerous advantages to this approach.  Every driver, no matter how unsophisticated, can leverage the manageability goodness of groups.  The user experience is uniform, since groups are always available regardless of which backends are present and because nearly every Manila action available on shares is also available on groups.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Of course, feature-rich backends would like to add their secret sauce, whether it be CGs, group-based replication, or whatever else comes along that might be easier/cheaper/faster to do to groups of shares.  That brings us to a related idea.&lt;br /&gt;
&lt;br /&gt;
=== Idea #2: Introduce Share Group types ===&lt;br /&gt;
Just as Manila has ‘share types’, it should also have ‘share group types’.  Any driver that can perform a group operation in an advantaged way may report that as a group capability, such as:&lt;br /&gt;
* Ordered writes&lt;br /&gt;
* Consistent snapshots&lt;br /&gt;
* Group replication&lt;br /&gt;
* Group backup&lt;br /&gt;
* Group modification&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
As with share types, the cloud administrator predefines share group types that may contain extra specs corresponding to the group capabilities reported by the backends.  And when creating a group, the user specifies one or more share types as well as a group type, and the scheduler then creates the group on one of the backends that match the specified share and share group types.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anytime a group action, such as ‘snapshot’, comes into the share manager, the manager checks whether its driver offers an advantaged implementation of that operation.  If not, the manager handles the workflow itself as described above.  But if so, the manager routes the workflow to its driver for fulfillment.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The advantages of this approach should be obvious.  Development and testing are simplified because there isn’t a need to define and test a different set of group management APIs for each feature, or to test every combination of every feature.  Instead of becoming an N-by-N matrix of interacting features, Manila largely becomes an N-by-2 matrix of actions that may be invoked on either individual shares or share groups.  Users and admins are already familiar with share types, so introducing share group types would seem a natural and consistent evolution of the same foundational concept.  &lt;br /&gt;
&lt;br /&gt;
The matrix would look like:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Share action !! Share Group action&lt;br /&gt;
|-&lt;br /&gt;
| Create (volume type) || Create (volume types, group type)&lt;br /&gt;
|-&lt;br /&gt;
| Delete || Delete (group, optionally all members)&lt;br /&gt;
|-&lt;br /&gt;
| Snapshot || Snapshot (may or may not be a CG snapshot)&lt;br /&gt;
|-&lt;br /&gt;
| Create from snapshot / Clone || Create from group snapshot / Clone group&lt;br /&gt;
|-&lt;br /&gt;
| Replicate || Replicate&lt;br /&gt;
|-&lt;br /&gt;
| Backup || Backup&lt;br /&gt;
|-&lt;br /&gt;
| Retype || Retype&lt;br /&gt;
|-&lt;br /&gt;
| Migrate || Migrate&lt;br /&gt;
|-&lt;br /&gt;
| Extend / shrink || N/A&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Manila implementation plan ==&lt;br /&gt;
Implementing generic groups in Manila should be a straightforward series of steps:&lt;br /&gt;
# Implement generic groups.  Because we did CGs, we already know all parts of the codebase that must change to support any kind of group.  So the simplest approach is to modify the CG code to morph it into the generic groups feature.&lt;br /&gt;
# Add the share group type feature by duplicating and customizing the share type code.&lt;br /&gt;
# Enhance the scheduler to place groups according to share group types.  Like #1, this is already informed by the CG project.&lt;br /&gt;
# Implement group snapshots in the share manager to demonstrate group snapshots in any driver.&lt;br /&gt;
# Plumb group snapshots to a CG-capable driver to demonstrate CG functionality in the new framework.&lt;br /&gt;
# Update Tempest to cover all of the above.&lt;br /&gt;
# Update Manila client to change CGs to share groups.&lt;br /&gt;
# Enhance Manila client with share group types.&lt;br /&gt;
# Add share group support to Horizon.  We never built CG support into Horizon, so this is all-new work that now has much broader appeal and applicability.&lt;br /&gt;
# Add additional group actions over time (migrate, replicate, retype, clone, …).  At this point, new group capabilities become vertical slices that are simple to add incrementally.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Because we implemented CGs just recently as an experimental feature, we have the freedom to replace that code without deprecation or upgrade considerations.  Steps 1-8 would get Manila to parity with the CG feature added in Liberty, would require only a few person-weeks of effort, and would better position Manila for long-term evolution and supportability.&lt;br /&gt;
=== Implementation details ===&lt;br /&gt;
There are few things to note, several of which were already solved during the CG work.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Groups are first-class objects in Manila, and operations on groups are treated as atomic.  For example, a user will see a group snapshot but not the individual snapshots of group members.  To enable support by as many backends as possible, Manila will still maintain DB objects for both group and member snapshots, just as was done with CGs.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A few actions, such as extend &amp;amp; shrink, are inherently applicable only to individual shares.  One could theoretically apply extend to a group, increasing the size of each member, but that seems like an unlikely use case.  Any actions in this category must remain available to group members, although most actions such as clone or snapshot would be available only at the group level and not on its members.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A group is limited to a single backend.  Allowing groups that span backends is theoretically possible, but that would require fanout of operations from the API layer to multiple share managers across the asynchronous event bus, which would lead to complicated synchronization and state management for little operational benefit.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As was done with Manila CGs, a driver may optionally limit a group to either the confines of a pool or an entire backend.  It is known that pools are the unit of data motion (i.e. replication or migration) for some backends, so we think drivers need this flexibility.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We considered reusing share types for groups as well.  But share types include a set of public extra specs that may not map well to groups.  And by adding group types as a separate object, there can be little confusion about their purpose and use.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some have noted that extra specs tend to be treated as an AND operation, where all features must be available for a backend to be chosen.  It is conceivable that even if a backend can replicate a group or take consistent snapshots of a group, it might not be able to perform both operations on the same group.  But this problem already exists with share types and hasn’t been a serious issue.  Creating types is an admin-only operation and the burden remains on the admin to understand the capabilities of the backends in use and to create the share types and share group types appropriately.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that this proposal explicitly does not address pool or backend replication, which is fundamentally different.  Actions on shares or share groups are intended for tenants, whereas a pool or backend can contain data from multiple tenants.  So pool or backend operations, while serving potentially valuable use cases, are inherently admin-only workflows that would be designed and exercised differently should Manila support them.&lt;br /&gt;
&lt;br /&gt;
=== Share Group APIs ===&lt;br /&gt;
&lt;br /&gt;
It is possible to design a REST API that seamlessly handles both shares and share groups with little duplication of APIs.  But at this point in Manila's development, it is arguably too late to radically redesign the API.&lt;br /&gt;
&lt;br /&gt;
It may be possible to overload some of the existing APIs to handle both shares and share groups.  For example, POST /shares/{id}/action could accept the ID of a share or share group and just do the right thing.  But other APIs, such as GET /shares are less practical to overload, since a single endpoint would be returning objects of different types.&lt;br /&gt;
&lt;br /&gt;
It seems better to merely duplicate a few APIs with group versions as needed.  For example:&lt;br /&gt;
* POST /shares --&amp;gt; POST /groups&lt;br /&gt;
* POST /shares/{share_id}/action --&amp;gt; POST /groups/{group_id}/action&lt;br /&gt;
* POST /snapshots --&amp;gt; POST /group_snapshots&lt;br /&gt;
&lt;br /&gt;
== Acknowledgments ==&lt;br /&gt;
Most of the analysis and recommendations contained herein apply equally well to Cinder, which is arguably much further down the path of crippling complexity.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This proposal was developed by cknight with input from Manila community members bswartz, ameade, tbarron, and cfouts.  The Cinder conversations about grouping, as well as the groundbreaking contributions of CGs to Cinder, all of which inspired this proposal, were led by xyang.&lt;/div&gt;</summary>
		<author><name>Clinton Knight</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Manila/design/manila-generic-groups&amp;diff=124347</id>
		<title>Manila/design/manila-generic-groups</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Manila/design/manila-generic-groups&amp;diff=124347"/>
				<updated>2016-04-22T19:12:50Z</updated>
		
		<summary type="html">&lt;p&gt;Clinton Knight: /* Consistency groups */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Manila generic groups =&lt;br /&gt;
== Executive summary ==&lt;br /&gt;
Manila needs a grouping construct that, like shares, is a 1st-class atomic data type.  Our experience with CGs has demonstrated the complexity of adding a grouping capability, yet there are other use cases such as migration, replication, and backup in which some storage controllers could only offer such features on share groups.  CGs also highlighted the poor optics of an advanced feature with comparatively little potential for vendor support.  And adding new grouping constructs for each new feature is not technically feasible.  All of the above may be addressed by generic groups, which we think is a clean extension to the original architecture of Manila.&lt;br /&gt;
== An Intractable Matrix ==&lt;br /&gt;
Manila is at an exciting time in its development, where all the simple features are available and the community is focused on adding high-value features such as migration, replication, and consistency groups.  Experimental code is available for each of these, but little consideration has been given to the obvious need for these complex features to interact not only with each other but also with whatever additional features were added later.  And looking a little deeper, it is apparent that each of these has limitations that could be solved by a single architectural enhancement.&lt;br /&gt;
=== Consistency groups ===&lt;br /&gt;
Consistency groups (CGs) are the only construct in Manila that operates on a group of shares.   For some, a CG implies a guarantee of ordered writes by a storage controller, while for others a CG is a mechanism for taking consistent point-in-time snapshots of a set of shares.  A group with either attribute may have value by itself, but the CGs implementation doesn’t distinguish between them.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
CGs are a highly specialized construct with dedicated CLI commands, REST APIs, database tables, scheduler filters, and driver APIs that totaled over 9900 lines.  None of these are reusable for anything else, and none of the rest of Manila has any awareness of CGs.  Even worse, despite all the complexity of the CG feature, only a small minority of storage backends can support them, so the code-to-value ratio is very low and the limited availability of CGs ensures the user experience is inconsistent between clouds.&lt;br /&gt;
&lt;br /&gt;
=== Replication ===&lt;br /&gt;
Replication is another high value feature, and the Manila implementation is arguably clean and flexible, but as constituted there is no core ability to replicate groups of shares.  It seems reasonable to implement the feature iteratively, beginning with replication of single shares.  However, there has been the tacit acknowledgement that some backends would not be able to replicate individual shares, even though those same backends could potentially replicate a group of shares if the group were constituted in a certain way.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Following the precedent established with CGs, one approach would be to introduce ‘replication groups’ whereby multiple shares could be replicated together.  But this would introduce yet another set of APIs, tables, etc. that are too specialized to use for anything else.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Another approach might be to define CGs as the grouping unit of replication, but this makes little sense because consistency groups (however we define them) and replication are distinct features that shouldn’t be artificially bundled for the sake of expediency of definition or implementation.&lt;br /&gt;
=== Migration ===&lt;br /&gt;
Just as some backends may only be able to replicate shares in groups, it follows that those backends may also need to migrate shares in groups.  And in the case of CGs, it doesn’t make sense to migrate CG members individually; the whole group must be moved, requiring the replication engine to be CG aware.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Consider the following reasonable use cases:&lt;br /&gt;
* Replicate a consistency group&lt;br /&gt;
* Snapshot a replication group&lt;br /&gt;
* Migrate a replication group&lt;br /&gt;
* Retype shares in a consistency group&lt;br /&gt;
* Retype shares in a replication group&lt;br /&gt;
* Backup a consistency group&lt;br /&gt;
* Backup a replication group&lt;br /&gt;
* Apply a common policy to a set of shares&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
On the current path, the support matrix has a dimension dedicated solely to features, so each feature must be coded to be interoperable with every other feature.  This quickly becomes a support and testing nightmare, and it becomes exponentially more complicated to add more features going forward.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Fundamentally, the problem is that we are adding features without an underlying architectural framework on which to hang them.  To escape the matrix, we must step back and rethink a few things.&lt;br /&gt;
&lt;br /&gt;
== A simple solution ==&lt;br /&gt;
So to arrive at a solution, let’s enumerate what we have:&lt;br /&gt;
* Primitive objects (shares) with supported operations controlled by share types that vary by backend&lt;br /&gt;
* A very specific group object (CGs) with limited support potential by backends&lt;br /&gt;
* A number of APIs (CGs, etc.) that many users can’t use at all and appear grafted into the project&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
And what would we prefer:&lt;br /&gt;
* A uniform API and user experience that varies as little as possible by backend&lt;br /&gt;
* A clean way to group shares so we can do CGs, multi-object replication, migration, etc.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
How do we get here?&lt;br /&gt;
* Universally available groups of primitive objects with supported operations that vary by backend&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
=== Idea #1: Introduce a generic Share Group object ===&lt;br /&gt;
Just as Manila has ‘shares’, it should also have ‘share groups’.  In its simplest form, unlike CGs, a share group should not guarantee any specialized operation.  Instead, it should merely constitute an atomic Manila data type on which nearly any Manila action is available.  For example, given a share group, the user should be able to select the group in the Manila UI and invoke features such as snapshot, clone, backup, migrate, replicate, retype, etc.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the general case, group actions are handled by the share manager layer (or potentially the common share driver superclass).  For example, invoking ‘snapshot’ on a group causes the share manager to take a snapshot of each group member individually.  The resulting group snapshot object may be used to create a new group, not unlike how CG snapshots were implemented.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There are numerous advantages to this approach.  Every driver, no matter how unsophisticated, can leverage the manageability goodness of groups.  The user experience is uniform, since groups are always available regardless of which backends are present and because nearly every Manila action available on shares is also available on groups.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Of course, feature-rich backends would like to add their secret sauce, whether it be CGs, group-based replication, or whatever else comes along that might be easier/cheaper/faster to do to groups of shares.  That brings us to related idea.&lt;br /&gt;
=== Idea #2: Introduce Share Group types ===&lt;br /&gt;
Just as Manila has ‘share types’, it should also have ‘share group types’.  Any driver that can perform a group operation in an advantaged way may report that as a group capability, such as:&lt;br /&gt;
* Ordered writes&lt;br /&gt;
* Consistent snapshots&lt;br /&gt;
* Group replication&lt;br /&gt;
* Group backup&lt;br /&gt;
* Group modification&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
As with share types, the cloud administrator predefines share group types that may contain extra specs corresponding to the group capabilities reported by the backends.  And when creating a group, the user specifies one or more share types as well as a group type, and the scheduler then creates the group on one of the backends that match the specified share and share group types.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anytime a group action, such as ‘snapshot’, comes into the share manager, the manager checks whether its driver offers an advantaged implementation of that operation.  If not, the manager handles the workflow itself as described above.  But if so, the manager routes the workflow to its driver for fulfillment.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The advantages of this approach should be obvious.  Development and testing are simplified because there isn’t a need to define and test a different set of group management APIs for each feature, or to test every combination of every feature.  Instead of becoming an N-by-N matrix of interacting features, Manila largely becomes an N-by-2 matrix of actions that may be invoked on either individual shares or share groups.  Users and admins are already familiar with share types, so introducing share group types would seem a natural and consistent evolution of the same foundational concept.  &lt;br /&gt;
&lt;br /&gt;
The matrix would look like:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Share action !! Share Group action&lt;br /&gt;
|-&lt;br /&gt;
| Create (volume type) || Create (volume types, group type)&lt;br /&gt;
|-&lt;br /&gt;
| Delete || Delete (group, optionally all members)&lt;br /&gt;
|-&lt;br /&gt;
| Snapshot || Snapshot (may or may not be a CG snapshot)&lt;br /&gt;
|-&lt;br /&gt;
| Create from snapshot / Clone || Create from group snapshot / Clone group&lt;br /&gt;
|-&lt;br /&gt;
| Replicate || Replicate&lt;br /&gt;
|-&lt;br /&gt;
| Backup || Backup&lt;br /&gt;
|-&lt;br /&gt;
| Retype || Retype&lt;br /&gt;
|-&lt;br /&gt;
| Migrate || Migrate&lt;br /&gt;
|-&lt;br /&gt;
| Extend / shrink || N/A&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Manila implementation plan ==&lt;br /&gt;
Implementing generic groups in Manila should be a straightforward series of steps:&lt;br /&gt;
# Implement generic groups.  Because we did CGs, we already know all parts of the codebase that must change to support any kind of group.  So the simplest approach is to modify the CG code to morph it into the generic groups feature.&lt;br /&gt;
# Add the share group type feature by duplicating and customizing the share type code.&lt;br /&gt;
# Enhance the scheduler to place groups according to share group types.  Like #1, this is already informed by the CG project.&lt;br /&gt;
# Implement group snapshots in the share manager to demonstrate group snapshots in any driver.&lt;br /&gt;
# Plumb group snapshots to a CG-capable driver to demonstrate CG functionality in the new framework.&lt;br /&gt;
# Update Tempest to cover all of the above.&lt;br /&gt;
# Update Manila client to change CGs to share groups.&lt;br /&gt;
# Enhance Manila client with share group types.&lt;br /&gt;
# Add share group support to Horizon.  We never built CG support into Horizon, so this is all-new work that now has much broader appeal and applicability.&lt;br /&gt;
# Add additional group actions over time (migrate, replicate, retype, clone, …).  At this point, new group capabilities become vertical slices that are simple to add incrementally.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Because we implemented CGs just recently as an experimental feature, we have the freedom to replace that code without deprecation or upgrade considerations.  Steps 1-8 would get Manila to parity with the CG feature added in Liberty, would require only a few person-weeks of effort, and would better position Manila for long-term evolution and supportability.&lt;br /&gt;
=== Implementation details ===&lt;br /&gt;
There are few things to note, several of which were already solved during the CG work.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Groups are first-class objects in Manila, and operations on groups are treated as atomic.  For example, a user will see a group snapshot but not the individual snapshots of group members.  To enable support by as many backends as possible, Manila will still maintain DB objects for both group and member snapshots, just as was done with CGs.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A few actions, such as extend &amp;amp; shrink, are inherently applicable only to individual shares.  One could theoretically apply extend to a group, increasing the size of each member, but that seems like an unlikely use case.  Any actions in this category must remain available to group members, although most actions such as clone or snapshot would be available only at the group level and not on its members.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A group is limited to a single backend.  Allowing groups that span backends is theoretically possible, but that would require fanout of operations from the API layer to multiple share managers across the asynchronous event bus, which would lead to complicated synchronization and state management for little operational benefit.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As was done with Manila CGs, a driver may optionally limit a group to either the confines of a pool or an entire backend.  It is known that pools are the unit of data motion (i.e. replication or migration) for some backends, so we think drivers need this flexibility.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We considered reusing share types for groups as well.  But share types include a set of public extra specs that may not map well to groups.  And by adding group types as a separate object, there can be little confusion about their purpose and use.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some have noted that extra specs tend to be treated as an AND operation, where all features must be available for a backend to be chosen.  It is conceivable that even if a backend can replicate a group or take consistent snapshots of a group, it might not be able to perform both operations on the same group.  But this problem already exists with share types and hasn’t been a serious issue.  Creating types is an admin-only operation and the burden remains on the admin to understand the capabilities of the backends in use and to create the share types and share group types appropriately.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that this proposal explicitly does not address pool or backend replication, which is fundamentally different.  Actions on shares or share groups are intended for tenants, whereas a pool or backend can contain data from multiple tenants.  So pool or backend operations, while serving potentially valuable use cases, are inherently admin-only workflows that would be designed and exercised differently should Manila support them.&lt;br /&gt;
&lt;br /&gt;
=== Share Group APIs ===&lt;br /&gt;
&lt;br /&gt;
It is possible to design a REST API that seamlessly handles both shares and share groups with little duplication of APIs.  But at this point in Manila's development, it is arguably too late to radically redesign the API.&lt;br /&gt;
&lt;br /&gt;
It may be possible to overload some of the existing APIs to handle both shares and share groups.  For example, POST /shares/{id}/action could accept the ID of a share or share group and just do the right thing.  But other APIs, such as GET /shares are less practical to overload, since a single endpoint would be returning objects of different types.&lt;br /&gt;
&lt;br /&gt;
It seems better to merely duplicate a few APIs with group versions as needed.  For example:&lt;br /&gt;
* POST /shares --&amp;gt; POST /groups&lt;br /&gt;
* POST /shares/{share_id}/action --&amp;gt; POST /groups/{group_id}/action&lt;br /&gt;
* POST /snapshots --&amp;gt; POST /group_snapshots&lt;br /&gt;
&lt;br /&gt;
== Acknowledgments ==&lt;br /&gt;
Most of the analysis and recommendations contained herein apply equally well to Cinder, which is arguably much further down the path of crippling complexity.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This proposal was developed by cknight with input from Manila community members bswartz, ameade, tbarron, and cfouts.  The Cinder conversations about grouping, as well as the groundbreaking contributions of CGs to Cinder, all of which inspired this proposal, were led by xyang.&lt;/div&gt;</summary>
		<author><name>Clinton Knight</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Manila/design/manila-generic-groups&amp;diff=124147</id>
		<title>Manila/design/manila-generic-groups</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Manila/design/manila-generic-groups&amp;diff=124147"/>
				<updated>2016-04-19T13:26:14Z</updated>
		
		<summary type="html">&lt;p&gt;Clinton Knight: /* Idea #2: Introduce Share Group types */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Manila generic groups =&lt;br /&gt;
== Executive summary ==&lt;br /&gt;
Manila needs a grouping construct that, like shares, is a 1st-class atomic data type.  Our experience with CGs has demonstrated the complexity of adding a grouping capability, yet there are other use cases such as migration, replication, and backup in which some storage controllers could only offer such features on share groups.  CGs also highlighted the poor optics of an advanced feature with comparatively little potential for vendor support.  And adding new grouping constructs for each new feature is not technically feasible.  All of the above may be addressed by generic groups, which we think is a clean extension to the original architecture of Manila.&lt;br /&gt;
== An Intractable Matrix ==&lt;br /&gt;
Manila is at an exciting time in its development, where all the simple features are available and the community is focused on adding high-value features such as migration, replication, and consistency groups.  Experimental code is available for each of these, but little consideration has been given to the obvious need for these complex features to interact not only with each other but also with whatever additional features were added later.  And looking a little deeper, it is apparent that each of these has limitations that could be solved by a single architectural enhancement.&lt;br /&gt;
=== Consistency groups ===&lt;br /&gt;
Consistency groups (CGs) are the only construct in Manila that operates on a group of shares.   For some, a CG implies a guarantee of ordered writes by a storage controller, while for others a CG is a mechanism for taking consistent point-in-time snapshots of a set of shares.  A group with either attribute may have value by itself, but the CGs implementation doesn’t distinguish between them.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
CGs are a highly specialized construct with dedicated CLI commands, REST APIs, database tables, scheduler filters, and driver APIs.  None of these are reusable for anything else, and presently none of the rest of Manila has any awareness of CGs.  Even worse, despite all the complexity of the CG feature, only a small minority of storage backends can support them, so the code-to-value ratio is very low.  Finally, the limited availability of CGs ensures the user experience is inconsistent between clouds.&lt;br /&gt;
=== Replication ===&lt;br /&gt;
Replication is another high value feature, and the Manila implementation is arguably clean and flexible, but as constituted there is no core ability to replicate groups of shares.  It seems reasonable to implement the feature iteratively, beginning with replication of single shares.  However, there has been the tacit acknowledgement that some backends would not be able to replicate individual shares, even though those same backends could potentially replicate a group of shares if the group were constituted in a certain way.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Following the precedent established with CGs, one approach would be to introduce ‘replication groups’ whereby multiple shares could be replicated together.  But this would introduce yet another set of APIs, tables, etc. that are too specialized to use for anything else.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Another approach might be to define CGs as the grouping unit of replication, but this makes little sense because consistency groups (however we define them) and replication are distinct features that shouldn’t be artificially bundled for the sake of expediency of definition or implementation.&lt;br /&gt;
=== Migration ===&lt;br /&gt;
Just as some backends may only be able to replicate shares in groups, it follows that those backends may also need to migrate shares in groups.  And in the case of CGs, it doesn’t make sense to migrate CG members individually; the whole group must be moved, requiring the replication engine to be CG aware.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Consider the following reasonable use cases:&lt;br /&gt;
* Replicate a consistency group&lt;br /&gt;
* Snapshot a replication group&lt;br /&gt;
* Migrate a replication group&lt;br /&gt;
* Retype shares in a consistency group&lt;br /&gt;
* Retype shares in a replication group&lt;br /&gt;
* Backup a consistency group&lt;br /&gt;
* Backup a replication group&lt;br /&gt;
* Apply a common policy to a set of shares&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
On the current path, the support matrix has a dimension dedicated solely to features, so each feature must be coded to be interoperable with every other feature.  This quickly becomes a support and testing nightmare, and it becomes exponentially more complicated to add more features going forward.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Fundamentally, the problem is that we are adding features without an underlying architectural framework on which to hang them.  To escape the matrix, we must step back and rethink a few things.&lt;br /&gt;
&lt;br /&gt;
== A simple solution ==&lt;br /&gt;
So to arrive at a solution, let’s enumerate what we have:&lt;br /&gt;
* Primitive objects (shares) with supported operations controlled by share types that vary by backend&lt;br /&gt;
* A very specific group object (CGs) with limited support potential by backends&lt;br /&gt;
* A number of APIs (CGs, etc.) that many users can’t use at all and appear grafted into the project&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
And what would we prefer:&lt;br /&gt;
* A uniform API and user experience that varies as little as possible by backend&lt;br /&gt;
* A clean way to group shares so we can do CGs, multi-object replication, migration, etc.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
How do we get here?&lt;br /&gt;
* Universally available groups of primitive objects with supported operations that vary by backend&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
=== Idea #1: Introduce a generic Share Group object ===&lt;br /&gt;
Just as Manila has ‘shares’, it should also have ‘share groups’.  In its simplest form, unlike CGs, a share group should not guarantee any specialized operation.  Instead, it should merely constitute an atomic Manila data type on which nearly any Manila action is available.  For example, given a share group, the user should be able to select the group in the Manila UI and invoke features such as snapshot, clone, backup, migrate, replicate, retype, etc.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the general case, group actions are handled by the share manager layer (or potentially the common share driver superclass).  For example, invoking ‘snapshot’ on a group causes the share manager to take a snapshot of each group member individually.  The resulting group snapshot object may be used to create a new group, not unlike how CG snapshots were implemented.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There are numerous advantages to this approach.  Every driver, no matter how unsophisticated, can leverage the manageability goodness of groups.  The user experience is uniform, since groups are always available regardless of which backends are present and because nearly every Manila action available on shares is also available on groups.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Of course, feature-rich backends would like to add their secret sauce, whether it be CGs, group-based replication, or whatever else comes along that might be easier/cheaper/faster to do to groups of shares.  That brings us to related idea.&lt;br /&gt;
=== Idea #2: Introduce Share Group types ===&lt;br /&gt;
Just as Manila has ‘share types’, it should also have ‘share group types’.  Any driver that can perform a group operation in an advantaged way may report that as a group capability, such as:&lt;br /&gt;
* Ordered writes&lt;br /&gt;
* Consistent snapshots&lt;br /&gt;
* Group replication&lt;br /&gt;
* Group backup&lt;br /&gt;
* Group modification&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
As with share types, the cloud administrator predefines share group types that may contain extra specs corresponding to the group capabilities reported by the backends.  And when creating a group, the user specifies one or more share types as well as a group type, and the scheduler then creates the group on one of the backends that match the specified share and share group types.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anytime a group action, such as ‘snapshot’, comes into the share manager, the manager checks whether its driver offers an advantaged implementation of that operation.  If not, the manager handles the workflow itself as described above.  But if so, the manager routes the workflow to its driver for fulfillment.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The advantages of this approach should be obvious.  Development and testing are simplified because there isn’t a need to define and test a different set of group management APIs for each feature, or to test every combination of every feature.  Instead of becoming an N-by-N matrix of interacting features, Manila largely becomes an N-by-2 matrix of actions that may be invoked on either individual shares or share groups.  Users and admins are already familiar with share types, so introducing share group types would seem a natural and consistent evolution of the same foundational concept.  &lt;br /&gt;
&lt;br /&gt;
The matrix would look like:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Share action !! Share Group action&lt;br /&gt;
|-&lt;br /&gt;
| Create (volume type) || Create (volume types, group type)&lt;br /&gt;
|-&lt;br /&gt;
| Delete || Delete (group, optionally all members)&lt;br /&gt;
|-&lt;br /&gt;
| Snapshot || Snapshot (may or may not be a CG snapshot)&lt;br /&gt;
|-&lt;br /&gt;
| Create from snapshot / Clone || Create from group snapshot / Clone group&lt;br /&gt;
|-&lt;br /&gt;
| Replicate || Replicate&lt;br /&gt;
|-&lt;br /&gt;
| Backup || Backup&lt;br /&gt;
|-&lt;br /&gt;
| Retype || Retype&lt;br /&gt;
|-&lt;br /&gt;
| Migrate || Migrate&lt;br /&gt;
|-&lt;br /&gt;
| Extend / shrink || N/A&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Manila implementation plan ==&lt;br /&gt;
Implementing generic groups in Manila should be a straightforward series of steps:&lt;br /&gt;
# Implement generic groups.  Because we did CGs, we already know all parts of the codebase that must change to support any kind of group.  So the simplest approach is to modify the CG code to morph it into the generic groups feature.&lt;br /&gt;
# Add the share group type feature by duplicating and customizing the share type code.&lt;br /&gt;
# Enhance the scheduler to place groups according to share group types.  Like #1, this is already informed by the CG project.&lt;br /&gt;
# Implement group snapshots in the share manager to demonstrate group snapshots in any driver.&lt;br /&gt;
# Plumb group snapshots to a CG-capable driver to demonstrate CG functionality in the new framework.&lt;br /&gt;
# Update Tempest to cover all of the above.&lt;br /&gt;
# Update Manila client to change CGs to share groups.&lt;br /&gt;
# Enhance Manila client with share group types.&lt;br /&gt;
# Add share group support to Horizon.  We never built CG support into Horizon, so this is all-new work that now has much broader appeal and applicability.&lt;br /&gt;
# Add additional group actions over time (migrate, replicate, retype, clone, …).  At this point, new group capabilities become vertical slices that are simple to add incrementally.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Because we implemented CGs just recently as an experimental feature, we have the freedom to replace that code without deprecation or upgrade considerations.  Steps 1-8 would get Manila to parity with the CG feature added in Liberty, would require only a few person-weeks of effort, and would better position Manila for long-term evolution and supportability.&lt;br /&gt;
=== Implementation details ===&lt;br /&gt;
There are few things to note, several of which were already solved during the CG work.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Groups are first-class objects in Manila, and operations on groups are treated as atomic.  For example, a user will see a group snapshot but not the individual snapshots of group members.  To enable support by as many backends as possible, Manila will still maintain DB objects for both group and member snapshots, just as was done with CGs.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A few actions, such as extend &amp;amp; shrink, are inherently applicable only to individual shares.  One could theoretically apply extend to a group, increasing the size of each member, but that seems like an unlikely use case.  Any actions in this category must remain available to group members, although most actions such as clone or snapshot would be available only at the group level and not on its members.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A group is limited to a single backend.  Allowing groups that span backends is theoretically possible, but that would require fanout of operations from the API layer to multiple share managers across the asynchronous event bus, which would lead to complicated synchronization and state management for little operational benefit.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As was done with Manila CGs, a driver may optionally limit a group to either the confines of a pool or an entire backend.  It is known that pools are the unit of data motion (i.e. replication or migration) for some backends, so we think drivers need this flexibility.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We considered reusing share types for groups as well.  But share types include a set of public extra specs that may not map well to groups.  And by adding group types as a separate object, there can be little confusion about their purpose and use.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some have noted that extra specs tend to be treated as an AND operation, where all features must be available for a backend to be chosen.  It is conceivable that even if a backend can replicate a group or take consistent snapshots of a group, it might not be able to perform both operations on the same group.  But this problem already exists with share types and hasn’t been a serious issue.  Creating types is an admin-only operation and the burden remains on the admin to understand the capabilities of the backends in use and to create the share types and share group types appropriately.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that this proposal explicitly does not address pool or backend replication, which is fundamentally different.  Actions on shares or share groups are intended for tenants, whereas a pool or backend can contain data from multiple tenants.  So pool or backend operations, while serving potentially valuable use cases, are inherently admin-only workflows that would be designed and exercised differently should Manila support them.&lt;br /&gt;
&lt;br /&gt;
=== Share Group APIs ===&lt;br /&gt;
&lt;br /&gt;
It is possible to design a REST API that seamlessly handles both shares and share groups with little duplication of APIs.  But at this point in Manila's development, it is arguably too late to radically redesign the API.&lt;br /&gt;
&lt;br /&gt;
It may be possible to overload some of the existing APIs to handle both shares and share groups.  For example, POST /shares/{id}/action could accept the ID of a share or share group and just do the right thing.  But other APIs, such as GET /shares are less practical to overload, since a single endpoint would be returning objects of different types.&lt;br /&gt;
&lt;br /&gt;
It seems better to merely duplicate a few APIs with group versions as needed.  For example:&lt;br /&gt;
* POST /shares --&amp;gt; POST /groups&lt;br /&gt;
* POST /shares/{share_id}/action --&amp;gt; POST /groups/{group_id}/action&lt;br /&gt;
* POST /snapshots --&amp;gt; POST /group_snapshots&lt;br /&gt;
&lt;br /&gt;
== Acknowledgments ==&lt;br /&gt;
Most of the analysis and recommendations contained herein apply equally well to Cinder, which is arguably much further down the path of crippling complexity.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This proposal was developed by cknight with input from Manila community members bswartz, ameade, tbarron, and cfouts.  The Cinder conversations about grouping, as well as the groundbreaking contributions of CGs to Cinder, all of which inspired this proposal, were led by xyang.&lt;/div&gt;</summary>
		<author><name>Clinton Knight</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Manila/Meetings&amp;diff=123616</id>
		<title>Manila/Meetings</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Manila/Meetings&amp;diff=123616"/>
				<updated>2016-04-07T13:50:17Z</updated>
		
		<summary type="html">&lt;p&gt;Clinton Knight: /* Next meeting */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Weekly Manila team meeting =&lt;br /&gt;
'''NOTE MEETING TIME: Thursday at 15:00 UTC'''&lt;br /&gt;
&lt;br /&gt;
If you're interested in management of shared filesystems for OpenStack, we have a weekly meetings in &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;#openstack-meeting-alt&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;, on Thursdays at 15:00 UTC.  Please feel free to add items to the agenda below.  NOTE: When adding topics please include your IRC name so we know who's topic it is and how to get more info.&lt;br /&gt;
&lt;br /&gt;
== Next meeting ==&lt;br /&gt;
'''NOTE:''' ''Include your IRC nickname next to agenda items so that you can be called upon in the meeting and arrive at the meeting promptly if placing items in agenda. You might want to put this on your calendar if you are adding items.''&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 7 Apt, 2016, 15:00 UTC'''&lt;br /&gt;
# Access rules (bswartz)&lt;br /&gt;
# Design summit planning (bswartz)&lt;br /&gt;
# Release notes, continued (gouthamr)&lt;br /&gt;
# Open Discussion&lt;br /&gt;
&lt;br /&gt;
== Previous meetings ==&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 31 Mar, 2016, 15:00 UTC'''&lt;br /&gt;
# Mitaka release status&lt;br /&gt;
#* RC1 expected to be the Mitaka release build&lt;br /&gt;
#* Last day for a re-spin is today&lt;br /&gt;
#** http://lists.openstack.org/pipermail/openstack-dev/2016-March/090877.html&lt;br /&gt;
# Design summit planning&lt;br /&gt;
#* Final schedule confirms 2 fishbowls, 4 working sessions, 1 half-day meetup&lt;br /&gt;
#** http://lists.openstack.org/pipermail/openstack-dev/2016-March/091032.html&lt;br /&gt;
#* Voting open now for summit topics&lt;br /&gt;
#** https://etherpad.openstack.org/p/manila-newton-summit-topics&lt;br /&gt;
# Manila Documentation (gouthamr)&lt;br /&gt;
#* Where do our docs live? how do we maintain them? (In Tree: devref, adminref | out of tree: install-guide, config-ref, cloud-admin guide)&lt;br /&gt;
#* Need a docs liaison&lt;br /&gt;
#** https://wiki.openstack.org/wiki/CrossProjectLiaisons#Documentation&lt;br /&gt;
#* Release Notes&lt;br /&gt;
#** http://docs.openstack.org/developer/reno/usage.html&lt;br /&gt;
# Managing/unmanaging replicated shares and snapshots (gouthamr)&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 24 Mar, 2016, 15:00 UTC'''&lt;br /&gt;
# Design summit planning&lt;br /&gt;
#* https://etherpad.openstack.org/p/manila-newton-summit-topics&lt;br /&gt;
# Question about share servers (Jay.Xu)&lt;br /&gt;
#* Is there a way to get gateway IP address when the API setup_server() is invoked. I did not see this attribute in the input parameter network_info. Gateway IP is mandatory to create the interface for EMC storage which will be release coming soon, so it is expected that we can add the gateway IP into NetworkAllocation model if not.&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 10 Mar, 2016, 15:00 UTC'''&lt;br /&gt;
# Common Capabilities Matrix (dustins)&lt;br /&gt;
#* https://review.openstack.org/#/c/288504/&lt;br /&gt;
#* I'm adding a table in the Developer Reference documentation to show which common capabilities are supported by which backends and when that support started.&lt;br /&gt;
#* I've got most drivers covered now.&lt;br /&gt;
#* If you want me to add your capabilities, leave a review on the patch and I'll update the table!&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 25 Feb, 2016, 15:00 UTC'''&lt;br /&gt;
&lt;br /&gt;
# OpenStack bug smash event (toabctl, mkoderer)&lt;br /&gt;
## link: https://etherpad.openstack.org/p/OpenStack-Bug-Smash-Mitaka&lt;br /&gt;
# Status of new drivers&lt;br /&gt;
## M.3 deadline is a week away.&lt;br /&gt;
## Only a few things have merged in the last couple days.  At this rate, many things won't make it.&lt;br /&gt;
## Zuul is busy and will only get worse until the deadline.&lt;br /&gt;
## Multiple Manila gate breakages have occurred recently, and more are likely.&lt;br /&gt;
## The Manila tests are very unreliable at concurrency &amp;gt; 1.&lt;br /&gt;
## The generic driver is too slow to pass the gate at concurrency = 1.&lt;br /&gt;
## The new drivers *are* fast enough to run at concurrency = 1.&lt;br /&gt;
## The new drivers may not be 100% done, but they are done enough to pass reliably at concurrency = 1.&lt;br /&gt;
## We should switch voting to the new drivers NOW, or start throwing stuff overboard for the release.&lt;br /&gt;
# Next Manila mid-cycle location&lt;br /&gt;
## Proposal is to do it in Germany&lt;br /&gt;
## Need to know who could attend at that location.&lt;br /&gt;
## Would it make a difference if the Cinder mid-cycle happens in Dublin, and the Manila meeting is immediately before or after the Cinder one?&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 18 Feb, 2016, 15:00 UTC'''&lt;br /&gt;
&lt;br /&gt;
# Feature Proposal Freeze (bswartz)&lt;br /&gt;
# Open Discussion&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 11 Feb, 2016, 15:00 UTC'''&lt;br /&gt;
&lt;br /&gt;
# Hierarchical port binding support (mkoderer)&lt;br /&gt;
#* https://wiki.openstack.org/wiki/Manila/design/manila-newton-hpb-support&lt;br /&gt;
#* https://blueprints.launchpad.net/manila/+spec/manila-hpb-support&lt;br /&gt;
#* https://review.openstack.org/#/c/277731/&lt;br /&gt;
# Next Manila mid-cycle (mkoderer)&lt;br /&gt;
#* https://etherpad.openstack.org/p/manila-n-release-midcycle&lt;br /&gt;
# Replication + ZFS Driver (bswartz)&lt;br /&gt;
#* https://review.openstack.org/#/c/238572&lt;br /&gt;
# Driver FPF (bswartz)&lt;br /&gt;
#* https://review.openstack.org/#/c/279090/&lt;br /&gt;
#* https://review.openstack.org/#/c/278169/&lt;br /&gt;
# HDFS CI (bswartz)&lt;br /&gt;
'''Scheduled for 4 Feb, 2016, 15:00 UTC'''&lt;br /&gt;
# Data service handling protocol mount commands (ganso)&lt;br /&gt;
#* https://etherpad.openstack.org/p/manila-data-service-mount-meeting&lt;br /&gt;
# Separate process for copy on data service (tpsilva)&lt;br /&gt;
# ZFS driver (bswartz)&lt;br /&gt;
# First party drivers share migration support cooperation (ganso)&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 28 Jan, 2016, 15:00 UTC'''&lt;br /&gt;
# Hierarchical port binding support (mkoderer)&lt;br /&gt;
#* https://etherpad.openstack.org/p/manila-hierarchical-port-binding&lt;br /&gt;
# Core reviewer team and other manila-related projects (bswartz)&lt;br /&gt;
# Replication status (bswartz)&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 21 Jan, 2016, 15:00 UTC'''&lt;br /&gt;
# Update_access backwards compatibility approach discussion. (ganso)&lt;br /&gt;
# Exposing the Data Service to drivers. (ganso)&lt;br /&gt;
# Snapshot manage/unmanage (bswartz)&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 17 Dec, 2015, 15:00 UTC'''&lt;br /&gt;
# Proposal for share groups (cknight)&lt;br /&gt;
# Liberty.1 stable release (bswartz)&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 10 Dec, 2015, 15:00 UTC'''&lt;br /&gt;
# The most of the driver already report the &amp;quot;'QoS_support': False&amp;quot; to scheduler. Does we need to remove it or save it as Qos support flat? and write 'QoS_support' to capabilities_and_extra_specs.rst?(zhongjun)&lt;br /&gt;
##https://github.com/openstack/manila/blob/master/manila/share/drivers/hpe/hpe_3par_driver.py#L391&lt;br /&gt;
##https://github.com/openstack/manila/blob/master/manila/share/drivers/hitachi/hds_hnas.py#L354&lt;br /&gt;
##https://github.com/openstack/manila/blob/master/manila/share/drivers/netapp/dataontap/cluster_mode/lib_base.py#L257&lt;br /&gt;
##https://github.com/openstack/manila/blob/master/manila/scheduler/host_manager.py#L111&lt;br /&gt;
##https://review.openstack.org/#/c/247286/4/doc/source/devref/capabilities_and_extra_specs.rst&lt;br /&gt;
# Architectural concerns and interoperability of new features (cknight)&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 3 Dec, 2015, 15:00 UTC'''&lt;br /&gt;
# Midcycle meetup&lt;br /&gt;
# Add &amp;quot;data loss&amp;quot; flag in DB migrations which lead to losing of existing data and update &amp;quot;manila-manage db sync&amp;quot; command to forbid applying such migrations without &amp;quot;--force&amp;quot; flag (u_glide)&lt;br /&gt;
# Reorganization of Manila scheduler to merge oslo-incubator code and simplify future maintenance  (cknight)&lt;br /&gt;
## https://review.openstack.org/#/c/252060/&lt;br /&gt;
## Mostly for awareness, this is now merged and should be backwards compatible.&lt;br /&gt;
## Cinder could benefit from a similar treatment.  And with the incubator gone, we could explore a common library with the Cinder team, since the heretofore shared components are certain to diverge over time, but I'm not sure how receptive they would be.  Xing?&lt;br /&gt;
# CI reliability&lt;br /&gt;
## Why should we merge patches for drivers whose CI systems consistently fail?  This negates the value of CI.  I think that accepting patches that aren't proven by CI does a disservice to everyone, most of all to the driver owners themselves.  Refusing to merge driver patches without a good CI result for that driver seems like a gentler and more uniform-over-time approach than threatening to throw out a driver near the end of a release.  And why make our illustrious and overworked PTL be the CI policeman when all core reviewers could simply glance at the corresponding CI result before giving +A?  (cknight)&lt;br /&gt;
## http://ci-watch.tintri.com/project?project=manila&lt;br /&gt;
## https://review.openstack.org/#/c/232293/&lt;br /&gt;
## https://review.openstack.org/#/c/235522/&lt;br /&gt;
## https://review.openstack.org/#/c/235726/&lt;br /&gt;
## https://review.openstack.org/#/c/249999/&lt;br /&gt;
## https://review.openstack.org/#/c/237454/&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 19 Nov, 2015, 15:00 UTC'''&lt;br /&gt;
# GB --&amp;gt; GiB (markstur)&lt;br /&gt;
# OpenStack Manuals and Devref (markstur)&lt;br /&gt;
#* Config Ref (and others) are moving to .RST!&lt;br /&gt;
#* How should we document prior releases in devref?&lt;br /&gt;
# Midcycle Meetup Date (bswartz)&lt;br /&gt;
# Deadlines for features (bswartz)&lt;br /&gt;
#* Feature proposal freeze vs Big Features&lt;br /&gt;
#* New drivers&lt;br /&gt;
# Data Copy Service network approach discussion (ganso)&lt;br /&gt;
#* https://drive.google.com/file/d/0B30HPZmaePCHMlAzcjJlYm5rRTA/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 12 Nov, 2015, 15:00 UTC'''&lt;br /&gt;
# Which method is better for Manila QoS(independent way or just use extra specs ) (zhongjun)&lt;br /&gt;
#* link:http://paste.openstack.org/show/477677/ &lt;br /&gt;
#*If use extra specs to config QoS, Does we first need add “QoS_support=true/false” in share_type. Does we need to add QoS_support flag in common capabilities&lt;br /&gt;
#**https://github.com/openstack/manila/blob/master/doc/source/devref/capabilities_and_extra_specs.rst)?&lt;br /&gt;
#** eg:  share_type: qos_support='&amp;lt;is&amp;gt; True' or '&amp;lt;is&amp;gt; False' &lt;br /&gt;
#**                            netapp:max_iops=100  or qos:netapp:max_iops=100 or qos:max_iops=100&lt;br /&gt;
#**        driver update: qos_support=true&lt;br /&gt;
#** An alternative could be to have the driver report a range&lt;br /&gt;
# Manila DR update (ameade)&lt;br /&gt;
#* Still no reviews on https://review.openstack.org/#/c/238572/&lt;br /&gt;
#* First-party driver implementation? Which driver, current generic or new solution? When do we need this implemented and who wants to do it?&lt;br /&gt;
#* Replication_change share state - This is the state of the share when any of it's replicas are being promoted. Is 'replication_change' good or is there a better phrase?&lt;br /&gt;
# Manila Driver minimum requirements document update (ganso)&lt;br /&gt;
# Manila Data Copy service name (bswartz)&lt;br /&gt;
#*https://review.openstack.org/#/c/244286/&lt;br /&gt;
# Upcoming change for Manila CI hooks (vponomaryov)&lt;br /&gt;
#*https://review.openstack.org/#/c/243233/&lt;br /&gt;
# Manilaclient enhancement to provide request_id when set http_log_debug is True. It will co-ordinate the request and its id, so it will be helpful to filter the log and the failed request. (Jay Xu)&lt;br /&gt;
#*http://paste.openstack.org/show/478675/&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 5 Nov, 2015, 15:00 UTC'''&lt;br /&gt;
# Decide on read-only access rules as a required feature&lt;br /&gt;
# Manila DR - Design/Code feedback (gouthamr) &lt;br /&gt;
#* [https://wiki.openstack.org/wiki/Manila/design/manila-mitaka-data-replication Design Document]&lt;br /&gt;
#* [https://review.openstack.org/#/c/238572/ Core Implementation on Gerrit]&lt;br /&gt;
#* [https://review.openstack.org/#/c/235448/ Client Implementation on Gerrit]&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 1 Oct, 2015, 15:00 UTC'''&lt;br /&gt;
# Liberty RC2 status&lt;br /&gt;
#* https://launchpad.net/manila/+milestone/liberty-rc2&lt;br /&gt;
#* https://review.openstack.org/#/q/project:openstack/manila+branch:stable/liberty,n,z&lt;br /&gt;
# Mitaka Design Summit&lt;br /&gt;
#* https://etherpad.openstack.org/p/manila-mitaka-summit-topics&lt;br /&gt;
# Vendor driver docs&lt;br /&gt;
#* https://github.com/openstack/manila/blob/master/doc/source/devref/share_back_ends_feature_support_mapping.rst&lt;br /&gt;
# Manila Client Nova Style Microversion Support (cfouts)&lt;br /&gt;
#* https://review.openstack.org/#/c/229142/&lt;br /&gt;
#* http://docs.openstack.org/developer/manila/devref/api_microversion_dev.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 24 Sep, 2015, 15:00 UTC'''&lt;br /&gt;
# 3rd-party CI status&lt;br /&gt;
#* http://ec2-54-67-102-119.us-west-1.compute.amazonaws.com:5000/?project=openstack/manila&amp;amp;user=&amp;amp;timeframe=72&amp;amp;start=&amp;amp;end=&amp;amp;page_size=500&lt;br /&gt;
#* http://ci-watch.tintri.com/project?project=manila&lt;br /&gt;
# Liberty RC status&lt;br /&gt;
# Support for QoS in Manila (zhongjun2)&lt;br /&gt;
#* https://blueprints.launchpad.net/manila/+spec/manila-support-qos&lt;br /&gt;
#* https://wiki.openstack.org/wiki/Manila/QoS&lt;br /&gt;
# Reminder for backend driver maintainers to update feature support table (toabctl)&lt;br /&gt;
#* http://docs.openstack.org/developer/manila/devref/share_back_ends_feature_support_mapping.html&lt;br /&gt;
# Regression when using NetApp - license issue with netapp_lib (toabctl)&lt;br /&gt;
#* https://bugs.launchpad.net/cinder/+bug/1499334&lt;br /&gt;
# Mitaka Design Summit&lt;br /&gt;
#* Propose topics - https://etherpad.openstack.org/p/manila-mitaka-summit-topics&lt;br /&gt;
# Vendor driver docs&lt;br /&gt;
# Open Discussion&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
http://eavesdrop.openstack.org/meetings/manila/&lt;/div&gt;</summary>
		<author><name>Clinton Knight</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Manila/Meetings&amp;diff=123306</id>
		<title>Manila/Meetings</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Manila/Meetings&amp;diff=123306"/>
				<updated>2016-03-31T14:53:20Z</updated>
		
		<summary type="html">&lt;p&gt;Clinton Knight: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Weekly Manila team meeting =&lt;br /&gt;
'''NOTE MEETING TIME: Thursday at 15:00 UTC'''&lt;br /&gt;
&lt;br /&gt;
If you're interested in management of shared filesystems for OpenStack, we have a weekly meetings in &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;#openstack-meeting-alt&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;, on Thursdays at 15:00 UTC.  Please feel free to add items to the agenda below.  NOTE: When adding topics please include your IRC name so we know who's topic it is and how to get more info.&lt;br /&gt;
&lt;br /&gt;
== Next meeting ==&lt;br /&gt;
'''NOTE:''' ''Include your IRC nickname next to agenda items so that you can be called upon in the meeting and arrive at the meeting promptly if placing items in agenda. You might want to put this on your calendar if you are adding items.''&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 31 Mar, 2016, 15:00 UTC'''&lt;br /&gt;
# Mitaka release status&lt;br /&gt;
#* RC1 expected to be the Mitaka release build&lt;br /&gt;
#* Last day for a re-spin is today&lt;br /&gt;
#** http://lists.openstack.org/pipermail/openstack-dev/2016-March/090877.html&lt;br /&gt;
# Design summit planning&lt;br /&gt;
#* Final schedule confirms 2 fishbowls, 4 working sessions, 1 half-day meetup&lt;br /&gt;
#** http://lists.openstack.org/pipermail/openstack-dev/2016-March/091032.html&lt;br /&gt;
#* Voting open now for summit topics&lt;br /&gt;
#** https://etherpad.openstack.org/p/manila-newton-summit-topics&lt;br /&gt;
# Manila Documentation (gouthamr)&lt;br /&gt;
#* Where do our docs live? how do we maintain them? (In Tree: devref, adminref | out of tree: install-guide, config-ref, cloud-admin guide)&lt;br /&gt;
#* Need a docs liaison&lt;br /&gt;
#** https://wiki.openstack.org/wiki/CrossProjectLiaisons#Documentation&lt;br /&gt;
#* Release Notes&lt;br /&gt;
#** http://docs.openstack.org/developer/reno/usage.html&lt;br /&gt;
# Managing/unmanaging replicated shares and snapshots (gouthamr)&lt;br /&gt;
# Open Discussion&lt;br /&gt;
&lt;br /&gt;
== Previous meetings ==&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 24 Mar, 2016, 15:00 UTC'''&lt;br /&gt;
# Design summit planning&lt;br /&gt;
#* https://etherpad.openstack.org/p/manila-newton-summit-topics&lt;br /&gt;
# Question about share servers (Jay.Xu)&lt;br /&gt;
#* Is there a way to get gateway IP address when the API setup_server() is invoked. I did not see this attribute in the input parameter network_info. Gateway IP is mandatory to create the interface for EMC storage which will be release coming soon, so it is expected that we can add the gateway IP into NetworkAllocation model if not.&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 10 Mar, 2016, 15:00 UTC'''&lt;br /&gt;
# Common Capabilities Matrix (dustins)&lt;br /&gt;
#* https://review.openstack.org/#/c/288504/&lt;br /&gt;
#* I'm adding a table in the Developer Reference documentation to show which common capabilities are supported by which backends and when that support started.&lt;br /&gt;
#* I've got most drivers covered now.&lt;br /&gt;
#* If you want me to add your capabilities, leave a review on the patch and I'll update the table!&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 25 Feb, 2016, 15:00 UTC'''&lt;br /&gt;
&lt;br /&gt;
# OpenStack bug smash event (toabctl, mkoderer)&lt;br /&gt;
## link: https://etherpad.openstack.org/p/OpenStack-Bug-Smash-Mitaka&lt;br /&gt;
# Status of new drivers&lt;br /&gt;
## M.3 deadline is a week away.&lt;br /&gt;
## Only a few things have merged in the last couple days.  At this rate, many things won't make it.&lt;br /&gt;
## Zuul is busy and will only get worse until the deadline.&lt;br /&gt;
## Multiple Manila gate breakages have occurred recently, and more are likely.&lt;br /&gt;
## The Manila tests are very unreliable at concurrency &amp;gt; 1.&lt;br /&gt;
## The generic driver is too slow to pass the gate at concurrency = 1.&lt;br /&gt;
## The new drivers *are* fast enough to run at concurrency = 1.&lt;br /&gt;
## The new drivers may not be 100% done, but they are done enough to pass reliably at concurrency = 1.&lt;br /&gt;
## We should switch voting to the new drivers NOW, or start throwing stuff overboard for the release.&lt;br /&gt;
# Next Manila mid-cycle location&lt;br /&gt;
## Proposal is to do it in Germany&lt;br /&gt;
## Need to know who could attend at that location.&lt;br /&gt;
## Would it make a difference if the Cinder mid-cycle happens in Dublin, and the Manila meeting is immediately before or after the Cinder one?&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 18 Feb, 2016, 15:00 UTC'''&lt;br /&gt;
&lt;br /&gt;
# Feature Proposal Freeze (bswartz)&lt;br /&gt;
# Open Discussion&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 11 Feb, 2016, 15:00 UTC'''&lt;br /&gt;
&lt;br /&gt;
# Hierarchical port binding support (mkoderer)&lt;br /&gt;
#* https://wiki.openstack.org/wiki/Manila/design/manila-newton-hpb-support&lt;br /&gt;
#* https://blueprints.launchpad.net/manila/+spec/manila-hpb-support&lt;br /&gt;
#* https://review.openstack.org/#/c/277731/&lt;br /&gt;
# Next Manila mid-cycle (mkoderer)&lt;br /&gt;
#* https://etherpad.openstack.org/p/manila-n-release-midcycle&lt;br /&gt;
# Replication + ZFS Driver (bswartz)&lt;br /&gt;
#* https://review.openstack.org/#/c/238572&lt;br /&gt;
# Driver FPF (bswartz)&lt;br /&gt;
#* https://review.openstack.org/#/c/279090/&lt;br /&gt;
#* https://review.openstack.org/#/c/278169/&lt;br /&gt;
# HDFS CI (bswartz)&lt;br /&gt;
'''Scheduled for 4 Feb, 2016, 15:00 UTC'''&lt;br /&gt;
# Data service handling protocol mount commands (ganso)&lt;br /&gt;
#* https://etherpad.openstack.org/p/manila-data-service-mount-meeting&lt;br /&gt;
# Separate process for copy on data service (tpsilva)&lt;br /&gt;
# ZFS driver (bswartz)&lt;br /&gt;
# First party drivers share migration support cooperation (ganso)&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 28 Jan, 2016, 15:00 UTC'''&lt;br /&gt;
# Hierarchical port binding support (mkoderer)&lt;br /&gt;
#* https://etherpad.openstack.org/p/manila-hierarchical-port-binding&lt;br /&gt;
# Core reviewer team and other manila-related projects (bswartz)&lt;br /&gt;
# Replication status (bswartz)&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 21 Jan, 2016, 15:00 UTC'''&lt;br /&gt;
# Update_access backwards compatibility approach discussion. (ganso)&lt;br /&gt;
# Exposing the Data Service to drivers. (ganso)&lt;br /&gt;
# Snapshot manage/unmanage (bswartz)&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 17 Dec, 2015, 15:00 UTC'''&lt;br /&gt;
# Proposal for share groups (cknight)&lt;br /&gt;
# Liberty.1 stable release (bswartz)&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 10 Dec, 2015, 15:00 UTC'''&lt;br /&gt;
# The most of the driver already report the &amp;quot;'QoS_support': False&amp;quot; to scheduler. Does we need to remove it or save it as Qos support flat? and write 'QoS_support' to capabilities_and_extra_specs.rst?(zhongjun)&lt;br /&gt;
##https://github.com/openstack/manila/blob/master/manila/share/drivers/hpe/hpe_3par_driver.py#L391&lt;br /&gt;
##https://github.com/openstack/manila/blob/master/manila/share/drivers/hitachi/hds_hnas.py#L354&lt;br /&gt;
##https://github.com/openstack/manila/blob/master/manila/share/drivers/netapp/dataontap/cluster_mode/lib_base.py#L257&lt;br /&gt;
##https://github.com/openstack/manila/blob/master/manila/scheduler/host_manager.py#L111&lt;br /&gt;
##https://review.openstack.org/#/c/247286/4/doc/source/devref/capabilities_and_extra_specs.rst&lt;br /&gt;
# Architectural concerns and interoperability of new features (cknight)&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 3 Dec, 2015, 15:00 UTC'''&lt;br /&gt;
# Midcycle meetup&lt;br /&gt;
# Add &amp;quot;data loss&amp;quot; flag in DB migrations which lead to losing of existing data and update &amp;quot;manila-manage db sync&amp;quot; command to forbid applying such migrations without &amp;quot;--force&amp;quot; flag (u_glide)&lt;br /&gt;
# Reorganization of Manila scheduler to merge oslo-incubator code and simplify future maintenance  (cknight)&lt;br /&gt;
## https://review.openstack.org/#/c/252060/&lt;br /&gt;
## Mostly for awareness, this is now merged and should be backwards compatible.&lt;br /&gt;
## Cinder could benefit from a similar treatment.  And with the incubator gone, we could explore a common library with the Cinder team, since the heretofore shared components are certain to diverge over time, but I'm not sure how receptive they would be.  Xing?&lt;br /&gt;
# CI reliability&lt;br /&gt;
## Why should we merge patches for drivers whose CI systems consistently fail?  This negates the value of CI.  I think that accepting patches that aren't proven by CI does a disservice to everyone, most of all to the driver owners themselves.  Refusing to merge driver patches without a good CI result for that driver seems like a gentler and more uniform-over-time approach than threatening to throw out a driver near the end of a release.  And why make our illustrious and overworked PTL be the CI policeman when all core reviewers could simply glance at the corresponding CI result before giving +A?  (cknight)&lt;br /&gt;
## http://ci-watch.tintri.com/project?project=manila&lt;br /&gt;
## https://review.openstack.org/#/c/232293/&lt;br /&gt;
## https://review.openstack.org/#/c/235522/&lt;br /&gt;
## https://review.openstack.org/#/c/235726/&lt;br /&gt;
## https://review.openstack.org/#/c/249999/&lt;br /&gt;
## https://review.openstack.org/#/c/237454/&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 19 Nov, 2015, 15:00 UTC'''&lt;br /&gt;
# GB --&amp;gt; GiB (markstur)&lt;br /&gt;
# OpenStack Manuals and Devref (markstur)&lt;br /&gt;
#* Config Ref (and others) are moving to .RST!&lt;br /&gt;
#* How should we document prior releases in devref?&lt;br /&gt;
# Midcycle Meetup Date (bswartz)&lt;br /&gt;
# Deadlines for features (bswartz)&lt;br /&gt;
#* Feature proposal freeze vs Big Features&lt;br /&gt;
#* New drivers&lt;br /&gt;
# Data Copy Service network approach discussion (ganso)&lt;br /&gt;
#* https://drive.google.com/file/d/0B30HPZmaePCHMlAzcjJlYm5rRTA/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 12 Nov, 2015, 15:00 UTC'''&lt;br /&gt;
# Which method is better for Manila QoS(independent way or just use extra specs ) (zhongjun)&lt;br /&gt;
#* link:http://paste.openstack.org/show/477677/ &lt;br /&gt;
#*If use extra specs to config QoS, Does we first need add “QoS_support=true/false” in share_type. Does we need to add QoS_support flag in common capabilities&lt;br /&gt;
#**https://github.com/openstack/manila/blob/master/doc/source/devref/capabilities_and_extra_specs.rst)?&lt;br /&gt;
#** eg:  share_type: qos_support='&amp;lt;is&amp;gt; True' or '&amp;lt;is&amp;gt; False' &lt;br /&gt;
#**                            netapp:max_iops=100  or qos:netapp:max_iops=100 or qos:max_iops=100&lt;br /&gt;
#**        driver update: qos_support=true&lt;br /&gt;
#** An alternative could be to have the driver report a range&lt;br /&gt;
# Manila DR update (ameade)&lt;br /&gt;
#* Still no reviews on https://review.openstack.org/#/c/238572/&lt;br /&gt;
#* First-party driver implementation? Which driver, current generic or new solution? When do we need this implemented and who wants to do it?&lt;br /&gt;
#* Replication_change share state - This is the state of the share when any of it's replicas are being promoted. Is 'replication_change' good or is there a better phrase?&lt;br /&gt;
# Manila Driver minimum requirements document update (ganso)&lt;br /&gt;
# Manila Data Copy service name (bswartz)&lt;br /&gt;
#*https://review.openstack.org/#/c/244286/&lt;br /&gt;
# Upcoming change for Manila CI hooks (vponomaryov)&lt;br /&gt;
#*https://review.openstack.org/#/c/243233/&lt;br /&gt;
# Manilaclient enhancement to provide request_id when set http_log_debug is True. It will co-ordinate the request and its id, so it will be helpful to filter the log and the failed request. (Jay Xu)&lt;br /&gt;
#*http://paste.openstack.org/show/478675/&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 5 Nov, 2015, 15:00 UTC'''&lt;br /&gt;
# Decide on read-only access rules as a required feature&lt;br /&gt;
# Manila DR - Design/Code feedback (gouthamr) &lt;br /&gt;
#* [https://wiki.openstack.org/wiki/Manila/design/manila-mitaka-data-replication Design Document]&lt;br /&gt;
#* [https://review.openstack.org/#/c/238572/ Core Implementation on Gerrit]&lt;br /&gt;
#* [https://review.openstack.org/#/c/235448/ Client Implementation on Gerrit]&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 1 Oct, 2015, 15:00 UTC'''&lt;br /&gt;
# Liberty RC2 status&lt;br /&gt;
#* https://launchpad.net/manila/+milestone/liberty-rc2&lt;br /&gt;
#* https://review.openstack.org/#/q/project:openstack/manila+branch:stable/liberty,n,z&lt;br /&gt;
# Mitaka Design Summit&lt;br /&gt;
#* https://etherpad.openstack.org/p/manila-mitaka-summit-topics&lt;br /&gt;
# Vendor driver docs&lt;br /&gt;
#* https://github.com/openstack/manila/blob/master/doc/source/devref/share_back_ends_feature_support_mapping.rst&lt;br /&gt;
# Manila Client Nova Style Microversion Support (cfouts)&lt;br /&gt;
#* https://review.openstack.org/#/c/229142/&lt;br /&gt;
#* http://docs.openstack.org/developer/manila/devref/api_microversion_dev.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 24 Sep, 2015, 15:00 UTC'''&lt;br /&gt;
# 3rd-party CI status&lt;br /&gt;
#* http://ec2-54-67-102-119.us-west-1.compute.amazonaws.com:5000/?project=openstack/manila&amp;amp;user=&amp;amp;timeframe=72&amp;amp;start=&amp;amp;end=&amp;amp;page_size=500&lt;br /&gt;
#* http://ci-watch.tintri.com/project?project=manila&lt;br /&gt;
# Liberty RC status&lt;br /&gt;
# Support for QoS in Manila (zhongjun2)&lt;br /&gt;
#* https://blueprints.launchpad.net/manila/+spec/manila-support-qos&lt;br /&gt;
#* https://wiki.openstack.org/wiki/Manila/QoS&lt;br /&gt;
# Reminder for backend driver maintainers to update feature support table (toabctl)&lt;br /&gt;
#* http://docs.openstack.org/developer/manila/devref/share_back_ends_feature_support_mapping.html&lt;br /&gt;
# Regression when using NetApp - license issue with netapp_lib (toabctl)&lt;br /&gt;
#* https://bugs.launchpad.net/cinder/+bug/1499334&lt;br /&gt;
# Mitaka Design Summit&lt;br /&gt;
#* Propose topics - https://etherpad.openstack.org/p/manila-mitaka-summit-topics&lt;br /&gt;
# Vendor driver docs&lt;br /&gt;
# Open Discussion&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
http://eavesdrop.openstack.org/meetings/manila/&lt;/div&gt;</summary>
		<author><name>Clinton Knight</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Manila/Meetings&amp;diff=123305</id>
		<title>Manila/Meetings</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Manila/Meetings&amp;diff=123305"/>
				<updated>2016-03-31T14:51:07Z</updated>
		
		<summary type="html">&lt;p&gt;Clinton Knight: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Weekly Manila team meeting =&lt;br /&gt;
'''NOTE MEETING TIME: Thursday at 15:00 UTC'''&lt;br /&gt;
&lt;br /&gt;
If you're interested in management of shared filesystems for OpenStack, we have a weekly meetings in &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;#openstack-meeting-alt&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;, on Thursdays at 15:00 UTC.  Please feel free to add items to the agenda below.  NOTE: When adding topics please include your IRC name so we know who's topic it is and how to get more info.&lt;br /&gt;
&lt;br /&gt;
== Next meeting ==&lt;br /&gt;
'''NOTE:''' ''Include your IRC nickname next to agenda items so that you can be called upon in the meeting and arrive at the meeting promptly if placing items in agenda. You might want to put this on your calendar if you are adding items.''&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 31 Mar, 2016, 15:00 UTC'''&lt;br /&gt;
# Mitaka release status&lt;br /&gt;
#* RC1 expected to be the Mitaka release build&lt;br /&gt;
#* Last day for a re-spin is today&lt;br /&gt;
#* http://lists.openstack.org/pipermail/openstack-dev/2016-March/090877.html&lt;br /&gt;
# Design summit planning&lt;br /&gt;
#* Final schedule confirms 2 fishbowls, 4 working sessions, 1 half-day meetup&lt;br /&gt;
#* http://lists.openstack.org/pipermail/openstack-dev/2016-March/091032.html&lt;br /&gt;
#* https://etherpad.openstack.org/p/manila-newton-summit-topics&lt;br /&gt;
# Manila Documentation (gouthamr)&lt;br /&gt;
#* Where do our docs live? how do we maintain them? (In Tree: devref, adminref | out of tree: install-guide, config-ref, cloud-admin guide)&lt;br /&gt;
#* Need a docs liaison https://wiki.openstack.org/wiki/CrossProjectLiaisons#Documentation&lt;br /&gt;
#* Release Notes http://docs.openstack.org/developer/reno/usage.html&lt;br /&gt;
# Managing/unmanaging replicated shares and snapshots (gouthamr)&lt;br /&gt;
# Open Discussion&lt;br /&gt;
&lt;br /&gt;
== Previous meetings ==&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 24 Mar, 2016, 15:00 UTC'''&lt;br /&gt;
# Design summit planning&lt;br /&gt;
#* https://etherpad.openstack.org/p/manila-newton-summit-topics&lt;br /&gt;
# Question about share servers (Jay.Xu)&lt;br /&gt;
#* Is there a way to get gateway IP address when the API setup_server() is invoked. I did not see this attribute in the input parameter network_info. Gateway IP is mandatory to create the interface for EMC storage which will be release coming soon, so it is expected that we can add the gateway IP into NetworkAllocation model if not.&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 10 Mar, 2016, 15:00 UTC'''&lt;br /&gt;
# Common Capabilities Matrix (dustins)&lt;br /&gt;
#* https://review.openstack.org/#/c/288504/&lt;br /&gt;
#* I'm adding a table in the Developer Reference documentation to show which common capabilities are supported by which backends and when that support started.&lt;br /&gt;
#* I've got most drivers covered now.&lt;br /&gt;
#* If you want me to add your capabilities, leave a review on the patch and I'll update the table!&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 25 Feb, 2016, 15:00 UTC'''&lt;br /&gt;
&lt;br /&gt;
# OpenStack bug smash event (toabctl, mkoderer)&lt;br /&gt;
## link: https://etherpad.openstack.org/p/OpenStack-Bug-Smash-Mitaka&lt;br /&gt;
# Status of new drivers&lt;br /&gt;
## M.3 deadline is a week away.&lt;br /&gt;
## Only a few things have merged in the last couple days.  At this rate, many things won't make it.&lt;br /&gt;
## Zuul is busy and will only get worse until the deadline.&lt;br /&gt;
## Multiple Manila gate breakages have occurred recently, and more are likely.&lt;br /&gt;
## The Manila tests are very unreliable at concurrency &amp;gt; 1.&lt;br /&gt;
## The generic driver is too slow to pass the gate at concurrency = 1.&lt;br /&gt;
## The new drivers *are* fast enough to run at concurrency = 1.&lt;br /&gt;
## The new drivers may not be 100% done, but they are done enough to pass reliably at concurrency = 1.&lt;br /&gt;
## We should switch voting to the new drivers NOW, or start throwing stuff overboard for the release.&lt;br /&gt;
# Next Manila mid-cycle location&lt;br /&gt;
## Proposal is to do it in Germany&lt;br /&gt;
## Need to know who could attend at that location.&lt;br /&gt;
## Would it make a difference if the Cinder mid-cycle happens in Dublin, and the Manila meeting is immediately before or after the Cinder one?&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 18 Feb, 2016, 15:00 UTC'''&lt;br /&gt;
&lt;br /&gt;
# Feature Proposal Freeze (bswartz)&lt;br /&gt;
# Open Discussion&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 11 Feb, 2016, 15:00 UTC'''&lt;br /&gt;
&lt;br /&gt;
# Hierarchical port binding support (mkoderer)&lt;br /&gt;
#* https://wiki.openstack.org/wiki/Manila/design/manila-newton-hpb-support&lt;br /&gt;
#* https://blueprints.launchpad.net/manila/+spec/manila-hpb-support&lt;br /&gt;
#* https://review.openstack.org/#/c/277731/&lt;br /&gt;
# Next Manila mid-cycle (mkoderer)&lt;br /&gt;
#* https://etherpad.openstack.org/p/manila-n-release-midcycle&lt;br /&gt;
# Replication + ZFS Driver (bswartz)&lt;br /&gt;
#* https://review.openstack.org/#/c/238572&lt;br /&gt;
# Driver FPF (bswartz)&lt;br /&gt;
#* https://review.openstack.org/#/c/279090/&lt;br /&gt;
#* https://review.openstack.org/#/c/278169/&lt;br /&gt;
# HDFS CI (bswartz)&lt;br /&gt;
'''Scheduled for 4 Feb, 2016, 15:00 UTC'''&lt;br /&gt;
# Data service handling protocol mount commands (ganso)&lt;br /&gt;
#* https://etherpad.openstack.org/p/manila-data-service-mount-meeting&lt;br /&gt;
# Separate process for copy on data service (tpsilva)&lt;br /&gt;
# ZFS driver (bswartz)&lt;br /&gt;
# First party drivers share migration support cooperation (ganso)&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 28 Jan, 2016, 15:00 UTC'''&lt;br /&gt;
# Hierarchical port binding support (mkoderer)&lt;br /&gt;
#* https://etherpad.openstack.org/p/manila-hierarchical-port-binding&lt;br /&gt;
# Core reviewer team and other manila-related projects (bswartz)&lt;br /&gt;
# Replication status (bswartz)&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 21 Jan, 2016, 15:00 UTC'''&lt;br /&gt;
# Update_access backwards compatibility approach discussion. (ganso)&lt;br /&gt;
# Exposing the Data Service to drivers. (ganso)&lt;br /&gt;
# Snapshot manage/unmanage (bswartz)&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 17 Dec, 2015, 15:00 UTC'''&lt;br /&gt;
# Proposal for share groups (cknight)&lt;br /&gt;
# Liberty.1 stable release (bswartz)&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 10 Dec, 2015, 15:00 UTC'''&lt;br /&gt;
# The most of the driver already report the &amp;quot;'QoS_support': False&amp;quot; to scheduler. Does we need to remove it or save it as Qos support flat? and write 'QoS_support' to capabilities_and_extra_specs.rst?(zhongjun)&lt;br /&gt;
##https://github.com/openstack/manila/blob/master/manila/share/drivers/hpe/hpe_3par_driver.py#L391&lt;br /&gt;
##https://github.com/openstack/manila/blob/master/manila/share/drivers/hitachi/hds_hnas.py#L354&lt;br /&gt;
##https://github.com/openstack/manila/blob/master/manila/share/drivers/netapp/dataontap/cluster_mode/lib_base.py#L257&lt;br /&gt;
##https://github.com/openstack/manila/blob/master/manila/scheduler/host_manager.py#L111&lt;br /&gt;
##https://review.openstack.org/#/c/247286/4/doc/source/devref/capabilities_and_extra_specs.rst&lt;br /&gt;
# Architectural concerns and interoperability of new features (cknight)&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 3 Dec, 2015, 15:00 UTC'''&lt;br /&gt;
# Midcycle meetup&lt;br /&gt;
# Add &amp;quot;data loss&amp;quot; flag in DB migrations which lead to losing of existing data and update &amp;quot;manila-manage db sync&amp;quot; command to forbid applying such migrations without &amp;quot;--force&amp;quot; flag (u_glide)&lt;br /&gt;
# Reorganization of Manila scheduler to merge oslo-incubator code and simplify future maintenance  (cknight)&lt;br /&gt;
## https://review.openstack.org/#/c/252060/&lt;br /&gt;
## Mostly for awareness, this is now merged and should be backwards compatible.&lt;br /&gt;
## Cinder could benefit from a similar treatment.  And with the incubator gone, we could explore a common library with the Cinder team, since the heretofore shared components are certain to diverge over time, but I'm not sure how receptive they would be.  Xing?&lt;br /&gt;
# CI reliability&lt;br /&gt;
## Why should we merge patches for drivers whose CI systems consistently fail?  This negates the value of CI.  I think that accepting patches that aren't proven by CI does a disservice to everyone, most of all to the driver owners themselves.  Refusing to merge driver patches without a good CI result for that driver seems like a gentler and more uniform-over-time approach than threatening to throw out a driver near the end of a release.  And why make our illustrious and overworked PTL be the CI policeman when all core reviewers could simply glance at the corresponding CI result before giving +A?  (cknight)&lt;br /&gt;
## http://ci-watch.tintri.com/project?project=manila&lt;br /&gt;
## https://review.openstack.org/#/c/232293/&lt;br /&gt;
## https://review.openstack.org/#/c/235522/&lt;br /&gt;
## https://review.openstack.org/#/c/235726/&lt;br /&gt;
## https://review.openstack.org/#/c/249999/&lt;br /&gt;
## https://review.openstack.org/#/c/237454/&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 19 Nov, 2015, 15:00 UTC'''&lt;br /&gt;
# GB --&amp;gt; GiB (markstur)&lt;br /&gt;
# OpenStack Manuals and Devref (markstur)&lt;br /&gt;
#* Config Ref (and others) are moving to .RST!&lt;br /&gt;
#* How should we document prior releases in devref?&lt;br /&gt;
# Midcycle Meetup Date (bswartz)&lt;br /&gt;
# Deadlines for features (bswartz)&lt;br /&gt;
#* Feature proposal freeze vs Big Features&lt;br /&gt;
#* New drivers&lt;br /&gt;
# Data Copy Service network approach discussion (ganso)&lt;br /&gt;
#* https://drive.google.com/file/d/0B30HPZmaePCHMlAzcjJlYm5rRTA/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 12 Nov, 2015, 15:00 UTC'''&lt;br /&gt;
# Which method is better for Manila QoS(independent way or just use extra specs ) (zhongjun)&lt;br /&gt;
#* link:http://paste.openstack.org/show/477677/ &lt;br /&gt;
#*If use extra specs to config QoS, Does we first need add “QoS_support=true/false” in share_type. Does we need to add QoS_support flag in common capabilities&lt;br /&gt;
#**https://github.com/openstack/manila/blob/master/doc/source/devref/capabilities_and_extra_specs.rst)?&lt;br /&gt;
#** eg:  share_type: qos_support='&amp;lt;is&amp;gt; True' or '&amp;lt;is&amp;gt; False' &lt;br /&gt;
#**                            netapp:max_iops=100  or qos:netapp:max_iops=100 or qos:max_iops=100&lt;br /&gt;
#**        driver update: qos_support=true&lt;br /&gt;
#** An alternative could be to have the driver report a range&lt;br /&gt;
# Manila DR update (ameade)&lt;br /&gt;
#* Still no reviews on https://review.openstack.org/#/c/238572/&lt;br /&gt;
#* First-party driver implementation? Which driver, current generic or new solution? When do we need this implemented and who wants to do it?&lt;br /&gt;
#* Replication_change share state - This is the state of the share when any of it's replicas are being promoted. Is 'replication_change' good or is there a better phrase?&lt;br /&gt;
# Manila Driver minimum requirements document update (ganso)&lt;br /&gt;
# Manila Data Copy service name (bswartz)&lt;br /&gt;
#*https://review.openstack.org/#/c/244286/&lt;br /&gt;
# Upcoming change for Manila CI hooks (vponomaryov)&lt;br /&gt;
#*https://review.openstack.org/#/c/243233/&lt;br /&gt;
# Manilaclient enhancement to provide request_id when set http_log_debug is True. It will co-ordinate the request and its id, so it will be helpful to filter the log and the failed request. (Jay Xu)&lt;br /&gt;
#*http://paste.openstack.org/show/478675/&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 5 Nov, 2015, 15:00 UTC'''&lt;br /&gt;
# Decide on read-only access rules as a required feature&lt;br /&gt;
# Manila DR - Design/Code feedback (gouthamr) &lt;br /&gt;
#* [https://wiki.openstack.org/wiki/Manila/design/manila-mitaka-data-replication Design Document]&lt;br /&gt;
#* [https://review.openstack.org/#/c/238572/ Core Implementation on Gerrit]&lt;br /&gt;
#* [https://review.openstack.org/#/c/235448/ Client Implementation on Gerrit]&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 1 Oct, 2015, 15:00 UTC'''&lt;br /&gt;
# Liberty RC2 status&lt;br /&gt;
#* https://launchpad.net/manila/+milestone/liberty-rc2&lt;br /&gt;
#* https://review.openstack.org/#/q/project:openstack/manila+branch:stable/liberty,n,z&lt;br /&gt;
# Mitaka Design Summit&lt;br /&gt;
#* https://etherpad.openstack.org/p/manila-mitaka-summit-topics&lt;br /&gt;
# Vendor driver docs&lt;br /&gt;
#* https://github.com/openstack/manila/blob/master/doc/source/devref/share_back_ends_feature_support_mapping.rst&lt;br /&gt;
# Manila Client Nova Style Microversion Support (cfouts)&lt;br /&gt;
#* https://review.openstack.org/#/c/229142/&lt;br /&gt;
#* http://docs.openstack.org/developer/manila/devref/api_microversion_dev.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 24 Sep, 2015, 15:00 UTC'''&lt;br /&gt;
# 3rd-party CI status&lt;br /&gt;
#* http://ec2-54-67-102-119.us-west-1.compute.amazonaws.com:5000/?project=openstack/manila&amp;amp;user=&amp;amp;timeframe=72&amp;amp;start=&amp;amp;end=&amp;amp;page_size=500&lt;br /&gt;
#* http://ci-watch.tintri.com/project?project=manila&lt;br /&gt;
# Liberty RC status&lt;br /&gt;
# Support for QoS in Manila (zhongjun2)&lt;br /&gt;
#* https://blueprints.launchpad.net/manila/+spec/manila-support-qos&lt;br /&gt;
#* https://wiki.openstack.org/wiki/Manila/QoS&lt;br /&gt;
# Reminder for backend driver maintainers to update feature support table (toabctl)&lt;br /&gt;
#* http://docs.openstack.org/developer/manila/devref/share_back_ends_feature_support_mapping.html&lt;br /&gt;
# Regression when using NetApp - license issue with netapp_lib (toabctl)&lt;br /&gt;
#* https://bugs.launchpad.net/cinder/+bug/1499334&lt;br /&gt;
# Mitaka Design Summit&lt;br /&gt;
#* Propose topics - https://etherpad.openstack.org/p/manila-mitaka-summit-topics&lt;br /&gt;
# Vendor driver docs&lt;br /&gt;
# Open Discussion&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
http://eavesdrop.openstack.org/meetings/manila/&lt;/div&gt;</summary>
		<author><name>Clinton Knight</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Manila/Meetings&amp;diff=110983</id>
		<title>Manila/Meetings</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Manila/Meetings&amp;diff=110983"/>
				<updated>2016-02-25T15:06:05Z</updated>
		
		<summary type="html">&lt;p&gt;Clinton Knight: /* Next meeting */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Weekly Manila team meeting =&lt;br /&gt;
'''NOTE MEETING TIME: Thursday at 15:00 UTC'''&lt;br /&gt;
&lt;br /&gt;
If you're interested in management of shared filesystems for OpenStack, we have a weekly meetings in &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;#openstack-meeting-alt&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;, on Thursdays at 15:00 UTC.  Please feel free to add items to the agenda below.  NOTE: When adding topics please include your IRC name so we know who's topic it is and how to get more info.&lt;br /&gt;
&lt;br /&gt;
== Next meeting ==&lt;br /&gt;
'''NOTE:''' ''Include your IRC nickname next to agenda items so that you can be called upon in the meeting and arrive at the meeting promptly if placing items in agenda. You might want to put this on your calendar if you are adding items.''&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 25 Feb, 2016, 15:00 UTC'''&lt;br /&gt;
&lt;br /&gt;
# OpenStack bug smash event (toabctl, mkoderer)&lt;br /&gt;
## link: https://etherpad.openstack.org/p/OpenStack-Bug-Smash-Mitaka&lt;br /&gt;
# Status of new drivers&lt;br /&gt;
## M.3 deadline is a week away.&lt;br /&gt;
## Only a few things have merged in the last couple days.  At this rate, many things won't make it.&lt;br /&gt;
## Zuul is busy and will only get worse until the deadline.&lt;br /&gt;
## Multiple Manila gate breakages have occurred recently, and more are likely.&lt;br /&gt;
## The Manila tests are very unreliable at concurrency &amp;gt; 1.&lt;br /&gt;
## The generic driver is too slow to pass the gate at concurrency = 1.&lt;br /&gt;
## The new drivers *are* fast enough to run at concurrency = 1.&lt;br /&gt;
## The new drivers may not be 100% done, but they are done enough to pass reliably at concurrency = 1.&lt;br /&gt;
## We should switch voting to the new drivers NOW, or start throwing stuff overboard for the release.&lt;br /&gt;
# Next Manila mid-cycle location&lt;br /&gt;
## Proposal is to do it in Germany&lt;br /&gt;
## Need to know who could attend at that location.&lt;br /&gt;
## Would it make a difference if the Cinder mid-cycle happens in Dublin, and the Manila meeting is immediately before or after the Cinder one?&lt;br /&gt;
# Open Discussion&lt;br /&gt;
&lt;br /&gt;
== Previous meetings ==&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 18 Feb, 2016, 15:00 UTC'''&lt;br /&gt;
&lt;br /&gt;
# Feature Proposal Freeze (bswartz)&lt;br /&gt;
# Open Discussion&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 11 Feb, 2016, 15:00 UTC'''&lt;br /&gt;
&lt;br /&gt;
# Hierarchical port binding support (mkoderer)&lt;br /&gt;
#* https://wiki.openstack.org/wiki/Manila/design/manila-newton-hpb-support&lt;br /&gt;
#* https://blueprints.launchpad.net/manila/+spec/manila-hpb-support&lt;br /&gt;
#* https://review.openstack.org/#/c/277731/&lt;br /&gt;
# Next Manila mid-cycle (mkoderer)&lt;br /&gt;
#* https://etherpad.openstack.org/p/manila-n-release-midcycle&lt;br /&gt;
# Replication + ZFS Driver (bswartz)&lt;br /&gt;
#* https://review.openstack.org/#/c/238572&lt;br /&gt;
# Driver FPF (bswartz)&lt;br /&gt;
#* https://review.openstack.org/#/c/279090/&lt;br /&gt;
#* https://review.openstack.org/#/c/278169/&lt;br /&gt;
# HDFS CI (bswartz)&lt;br /&gt;
'''Scheduled for 4 Feb, 2016, 15:00 UTC'''&lt;br /&gt;
# Data service handling protocol mount commands (ganso)&lt;br /&gt;
#* https://etherpad.openstack.org/p/manila-data-service-mount-meeting&lt;br /&gt;
# Separate process for copy on data service (tpsilva)&lt;br /&gt;
# ZFS driver (bswartz)&lt;br /&gt;
# First party drivers share migration support cooperation (ganso)&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 28 Jan, 2016, 15:00 UTC'''&lt;br /&gt;
# Hierarchical port binding support (mkoderer)&lt;br /&gt;
#* https://etherpad.openstack.org/p/manila-hierarchical-port-binding&lt;br /&gt;
# Core reviewer team and other manila-related projects (bswartz)&lt;br /&gt;
# Replication status (bswartz)&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 21 Jan, 2016, 15:00 UTC'''&lt;br /&gt;
# Update_access backwards compatibility approach discussion. (ganso)&lt;br /&gt;
# Exposing the Data Service to drivers. (ganso)&lt;br /&gt;
# Snapshot manage/unmanage (bswartz)&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 17 Dec, 2015, 15:00 UTC'''&lt;br /&gt;
# Proposal for share groups (cknight)&lt;br /&gt;
# Liberty.1 stable release (bswartz)&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 10 Dec, 2015, 15:00 UTC'''&lt;br /&gt;
# The most of the driver already report the &amp;quot;'QoS_support': False&amp;quot; to scheduler. Does we need to remove it or save it as Qos support flat? and write 'QoS_support' to capabilities_and_extra_specs.rst?(zhongjun)&lt;br /&gt;
##https://github.com/openstack/manila/blob/master/manila/share/drivers/hpe/hpe_3par_driver.py#L391&lt;br /&gt;
##https://github.com/openstack/manila/blob/master/manila/share/drivers/hitachi/hds_hnas.py#L354&lt;br /&gt;
##https://github.com/openstack/manila/blob/master/manila/share/drivers/netapp/dataontap/cluster_mode/lib_base.py#L257&lt;br /&gt;
##https://github.com/openstack/manila/blob/master/manila/scheduler/host_manager.py#L111&lt;br /&gt;
##https://review.openstack.org/#/c/247286/4/doc/source/devref/capabilities_and_extra_specs.rst&lt;br /&gt;
# Architectural concerns and interoperability of new features (cknight)&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 3 Dec, 2015, 15:00 UTC'''&lt;br /&gt;
# Midcycle meetup&lt;br /&gt;
# Add &amp;quot;data loss&amp;quot; flag in DB migrations which lead to losing of existing data and update &amp;quot;manila-manage db sync&amp;quot; command to forbid applying such migrations without &amp;quot;--force&amp;quot; flag (u_glide)&lt;br /&gt;
# Reorganization of Manila scheduler to merge oslo-incubator code and simplify future maintenance  (cknight)&lt;br /&gt;
## https://review.openstack.org/#/c/252060/&lt;br /&gt;
## Mostly for awareness, this is now merged and should be backwards compatible.&lt;br /&gt;
## Cinder could benefit from a similar treatment.  And with the incubator gone, we could explore a common library with the Cinder team, since the heretofore shared components are certain to diverge over time, but I'm not sure how receptive they would be.  Xing?&lt;br /&gt;
# CI reliability&lt;br /&gt;
## Why should we merge patches for drivers whose CI systems consistently fail?  This negates the value of CI.  I think that accepting patches that aren't proven by CI does a disservice to everyone, most of all to the driver owners themselves.  Refusing to merge driver patches without a good CI result for that driver seems like a gentler and more uniform-over-time approach than threatening to throw out a driver near the end of a release.  And why make our illustrious and overworked PTL be the CI policeman when all core reviewers could simply glance at the corresponding CI result before giving +A?  (cknight)&lt;br /&gt;
## http://ci-watch.tintri.com/project?project=manila&lt;br /&gt;
## https://review.openstack.org/#/c/232293/&lt;br /&gt;
## https://review.openstack.org/#/c/235522/&lt;br /&gt;
## https://review.openstack.org/#/c/235726/&lt;br /&gt;
## https://review.openstack.org/#/c/249999/&lt;br /&gt;
## https://review.openstack.org/#/c/237454/&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 19 Nov, 2015, 15:00 UTC'''&lt;br /&gt;
# GB --&amp;gt; GiB (markstur)&lt;br /&gt;
# OpenStack Manuals and Devref (markstur)&lt;br /&gt;
#* Config Ref (and others) are moving to .RST!&lt;br /&gt;
#* How should we document prior releases in devref?&lt;br /&gt;
# Midcycle Meetup Date (bswartz)&lt;br /&gt;
# Deadlines for features (bswartz)&lt;br /&gt;
#* Feature proposal freeze vs Big Features&lt;br /&gt;
#* New drivers&lt;br /&gt;
# Data Copy Service network approach discussion (ganso)&lt;br /&gt;
#* https://drive.google.com/file/d/0B30HPZmaePCHMlAzcjJlYm5rRTA/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 12 Nov, 2015, 15:00 UTC'''&lt;br /&gt;
# Which method is better for Manila QoS(independent way or just use extra specs ) (zhongjun)&lt;br /&gt;
#* link:http://paste.openstack.org/show/477677/ &lt;br /&gt;
#*If use extra specs to config QoS, Does we first need add “QoS_support=true/false” in share_type. Does we need to add QoS_support flag in common capabilities&lt;br /&gt;
#**https://github.com/openstack/manila/blob/master/doc/source/devref/capabilities_and_extra_specs.rst)?&lt;br /&gt;
#** eg:  share_type: qos_support='&amp;lt;is&amp;gt; True' or '&amp;lt;is&amp;gt; False' &lt;br /&gt;
#**                            netapp:max_iops=100  or qos:netapp:max_iops=100 or qos:max_iops=100&lt;br /&gt;
#**        driver update: qos_support=true&lt;br /&gt;
#** An alternative could be to have the driver report a range&lt;br /&gt;
# Manila DR update (ameade)&lt;br /&gt;
#* Still no reviews on https://review.openstack.org/#/c/238572/&lt;br /&gt;
#* First-party driver implementation? Which driver, current generic or new solution? When do we need this implemented and who wants to do it?&lt;br /&gt;
#* Replication_change share state - This is the state of the share when any of it's replicas are being promoted. Is 'replication_change' good or is there a better phrase?&lt;br /&gt;
# Manila Driver minimum requirements document update (ganso)&lt;br /&gt;
# Manila Data Copy service name (bswartz)&lt;br /&gt;
#*https://review.openstack.org/#/c/244286/&lt;br /&gt;
# Upcoming change for Manila CI hooks (vponomaryov)&lt;br /&gt;
#*https://review.openstack.org/#/c/243233/&lt;br /&gt;
# Manilaclient enhancement to provide request_id when set http_log_debug is True. It will co-ordinate the request and its id, so it will be helpful to filter the log and the failed request. (Jay Xu)&lt;br /&gt;
#*http://paste.openstack.org/show/478675/&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 5 Nov, 2015, 15:00 UTC'''&lt;br /&gt;
# Decide on read-only access rules as a required feature&lt;br /&gt;
# Manila DR - Design/Code feedback (gouthamr) &lt;br /&gt;
#* [https://wiki.openstack.org/wiki/Manila/design/manila-mitaka-data-replication Design Document]&lt;br /&gt;
#* [https://review.openstack.org/#/c/238572/ Core Implementation on Gerrit]&lt;br /&gt;
#* [https://review.openstack.org/#/c/235448/ Client Implementation on Gerrit]&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 1 Oct, 2015, 15:00 UTC'''&lt;br /&gt;
# Liberty RC2 status&lt;br /&gt;
#* https://launchpad.net/manila/+milestone/liberty-rc2&lt;br /&gt;
#* https://review.openstack.org/#/q/project:openstack/manila+branch:stable/liberty,n,z&lt;br /&gt;
# Mitaka Design Summit&lt;br /&gt;
#* https://etherpad.openstack.org/p/manila-mitaka-summit-topics&lt;br /&gt;
# Vendor driver docs&lt;br /&gt;
#* https://github.com/openstack/manila/blob/master/doc/source/devref/share_back_ends_feature_support_mapping.rst&lt;br /&gt;
# Manila Client Nova Style Microversion Support (cfouts)&lt;br /&gt;
#* https://review.openstack.org/#/c/229142/&lt;br /&gt;
#* http://docs.openstack.org/developer/manila/devref/api_microversion_dev.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 24 Sep, 2015, 15:00 UTC'''&lt;br /&gt;
# 3rd-party CI status&lt;br /&gt;
#* http://ec2-54-67-102-119.us-west-1.compute.amazonaws.com:5000/?project=openstack/manila&amp;amp;user=&amp;amp;timeframe=72&amp;amp;start=&amp;amp;end=&amp;amp;page_size=500&lt;br /&gt;
#* http://ci-watch.tintri.com/project?project=manila&lt;br /&gt;
# Liberty RC status&lt;br /&gt;
# Support for QoS in Manila (zhongjun2)&lt;br /&gt;
#* https://blueprints.launchpad.net/manila/+spec/manila-support-qos&lt;br /&gt;
#* https://wiki.openstack.org/wiki/Manila/QoS&lt;br /&gt;
# Reminder for backend driver maintainers to update feature support table (toabctl)&lt;br /&gt;
#* http://docs.openstack.org/developer/manila/devref/share_back_ends_feature_support_mapping.html&lt;br /&gt;
# Regression when using NetApp - license issue with netapp_lib (toabctl)&lt;br /&gt;
#* https://bugs.launchpad.net/cinder/+bug/1499334&lt;br /&gt;
# Mitaka Design Summit&lt;br /&gt;
#* Propose topics - https://etherpad.openstack.org/p/manila-mitaka-summit-topics&lt;br /&gt;
# Vendor driver docs&lt;br /&gt;
# Open Discussion&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
http://eavesdrop.openstack.org/meetings/manila/&lt;/div&gt;</summary>
		<author><name>Clinton Knight</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Manila/Meetings&amp;diff=110973</id>
		<title>Manila/Meetings</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Manila/Meetings&amp;diff=110973"/>
				<updated>2016-02-25T15:03:35Z</updated>
		
		<summary type="html">&lt;p&gt;Clinton Knight: /* Next meeting */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Weekly Manila team meeting =&lt;br /&gt;
'''NOTE MEETING TIME: Thursday at 15:00 UTC'''&lt;br /&gt;
&lt;br /&gt;
If you're interested in management of shared filesystems for OpenStack, we have a weekly meetings in &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;#openstack-meeting-alt&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;, on Thursdays at 15:00 UTC.  Please feel free to add items to the agenda below.  NOTE: When adding topics please include your IRC name so we know who's topic it is and how to get more info.&lt;br /&gt;
&lt;br /&gt;
== Next meeting ==&lt;br /&gt;
'''NOTE:''' ''Include your IRC nickname next to agenda items so that you can be called upon in the meeting and arrive at the meeting promptly if placing items in agenda. You might want to put this on your calendar if you are adding items.''&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 25 Feb, 2016, 15:00 UTC'''&lt;br /&gt;
&lt;br /&gt;
# OpenStack bug smash event (toabctl, mkoderer)&lt;br /&gt;
## link: https://etherpad.openstack.org/p/OpenStack-Bug-Smash-Mitaka&lt;br /&gt;
# Status of new drivers&lt;br /&gt;
## M.3 deadline is a week away.&lt;br /&gt;
## Only a few things have merged in the last couple days.  At this rate, many things won't make it.&lt;br /&gt;
## Zuul is busy and will only get worse until the deadline.&lt;br /&gt;
## Multiple Manila gate breakages have occurred recently, and more are likely.&lt;br /&gt;
## The Manila tests are very unreliable at concurrency &amp;gt; 1.&lt;br /&gt;
## The generic driver is too slow to pass the gate at concurrency = 1.&lt;br /&gt;
## The new drivers *are* fast enough to run at concurrency = 1.&lt;br /&gt;
## The new drivers may not be 100% done, but they are done enough to pass reliably at concurrency = 1.&lt;br /&gt;
## We should switch voting to the new drivers NOW, or start throwing stuff overboard for the release.&lt;br /&gt;
# Open Discussion&lt;br /&gt;
&lt;br /&gt;
== Previous meetings ==&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 18 Feb, 2016, 15:00 UTC'''&lt;br /&gt;
&lt;br /&gt;
# Feature Proposal Freeze (bswartz)&lt;br /&gt;
# Open Discussion&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 11 Feb, 2016, 15:00 UTC'''&lt;br /&gt;
&lt;br /&gt;
# Hierarchical port binding support (mkoderer)&lt;br /&gt;
#* https://wiki.openstack.org/wiki/Manila/design/manila-newton-hpb-support&lt;br /&gt;
#* https://blueprints.launchpad.net/manila/+spec/manila-hpb-support&lt;br /&gt;
#* https://review.openstack.org/#/c/277731/&lt;br /&gt;
# Next Manila mid-cycle (mkoderer)&lt;br /&gt;
#* https://etherpad.openstack.org/p/manila-n-release-midcycle&lt;br /&gt;
# Replication + ZFS Driver (bswartz)&lt;br /&gt;
#* https://review.openstack.org/#/c/238572&lt;br /&gt;
# Driver FPF (bswartz)&lt;br /&gt;
#* https://review.openstack.org/#/c/279090/&lt;br /&gt;
#* https://review.openstack.org/#/c/278169/&lt;br /&gt;
# HDFS CI (bswartz)&lt;br /&gt;
'''Scheduled for 4 Feb, 2016, 15:00 UTC'''&lt;br /&gt;
# Data service handling protocol mount commands (ganso)&lt;br /&gt;
#* https://etherpad.openstack.org/p/manila-data-service-mount-meeting&lt;br /&gt;
# Separate process for copy on data service (tpsilva)&lt;br /&gt;
# ZFS driver (bswartz)&lt;br /&gt;
# First party drivers share migration support cooperation (ganso)&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 28 Jan, 2016, 15:00 UTC'''&lt;br /&gt;
# Hierarchical port binding support (mkoderer)&lt;br /&gt;
#* https://etherpad.openstack.org/p/manila-hierarchical-port-binding&lt;br /&gt;
# Core reviewer team and other manila-related projects (bswartz)&lt;br /&gt;
# Replication status (bswartz)&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 21 Jan, 2016, 15:00 UTC'''&lt;br /&gt;
# Update_access backwards compatibility approach discussion. (ganso)&lt;br /&gt;
# Exposing the Data Service to drivers. (ganso)&lt;br /&gt;
# Snapshot manage/unmanage (bswartz)&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 17 Dec, 2015, 15:00 UTC'''&lt;br /&gt;
# Proposal for share groups (cknight)&lt;br /&gt;
# Liberty.1 stable release (bswartz)&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 10 Dec, 2015, 15:00 UTC'''&lt;br /&gt;
# The most of the driver already report the &amp;quot;'QoS_support': False&amp;quot; to scheduler. Does we need to remove it or save it as Qos support flat? and write 'QoS_support' to capabilities_and_extra_specs.rst?(zhongjun)&lt;br /&gt;
##https://github.com/openstack/manila/blob/master/manila/share/drivers/hpe/hpe_3par_driver.py#L391&lt;br /&gt;
##https://github.com/openstack/manila/blob/master/manila/share/drivers/hitachi/hds_hnas.py#L354&lt;br /&gt;
##https://github.com/openstack/manila/blob/master/manila/share/drivers/netapp/dataontap/cluster_mode/lib_base.py#L257&lt;br /&gt;
##https://github.com/openstack/manila/blob/master/manila/scheduler/host_manager.py#L111&lt;br /&gt;
##https://review.openstack.org/#/c/247286/4/doc/source/devref/capabilities_and_extra_specs.rst&lt;br /&gt;
# Architectural concerns and interoperability of new features (cknight)&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 3 Dec, 2015, 15:00 UTC'''&lt;br /&gt;
# Midcycle meetup&lt;br /&gt;
# Add &amp;quot;data loss&amp;quot; flag in DB migrations which lead to losing of existing data and update &amp;quot;manila-manage db sync&amp;quot; command to forbid applying such migrations without &amp;quot;--force&amp;quot; flag (u_glide)&lt;br /&gt;
# Reorganization of Manila scheduler to merge oslo-incubator code and simplify future maintenance  (cknight)&lt;br /&gt;
## https://review.openstack.org/#/c/252060/&lt;br /&gt;
## Mostly for awareness, this is now merged and should be backwards compatible.&lt;br /&gt;
## Cinder could benefit from a similar treatment.  And with the incubator gone, we could explore a common library with the Cinder team, since the heretofore shared components are certain to diverge over time, but I'm not sure how receptive they would be.  Xing?&lt;br /&gt;
# CI reliability&lt;br /&gt;
## Why should we merge patches for drivers whose CI systems consistently fail?  This negates the value of CI.  I think that accepting patches that aren't proven by CI does a disservice to everyone, most of all to the driver owners themselves.  Refusing to merge driver patches without a good CI result for that driver seems like a gentler and more uniform-over-time approach than threatening to throw out a driver near the end of a release.  And why make our illustrious and overworked PTL be the CI policeman when all core reviewers could simply glance at the corresponding CI result before giving +A?  (cknight)&lt;br /&gt;
## http://ci-watch.tintri.com/project?project=manila&lt;br /&gt;
## https://review.openstack.org/#/c/232293/&lt;br /&gt;
## https://review.openstack.org/#/c/235522/&lt;br /&gt;
## https://review.openstack.org/#/c/235726/&lt;br /&gt;
## https://review.openstack.org/#/c/249999/&lt;br /&gt;
## https://review.openstack.org/#/c/237454/&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 19 Nov, 2015, 15:00 UTC'''&lt;br /&gt;
# GB --&amp;gt; GiB (markstur)&lt;br /&gt;
# OpenStack Manuals and Devref (markstur)&lt;br /&gt;
#* Config Ref (and others) are moving to .RST!&lt;br /&gt;
#* How should we document prior releases in devref?&lt;br /&gt;
# Midcycle Meetup Date (bswartz)&lt;br /&gt;
# Deadlines for features (bswartz)&lt;br /&gt;
#* Feature proposal freeze vs Big Features&lt;br /&gt;
#* New drivers&lt;br /&gt;
# Data Copy Service network approach discussion (ganso)&lt;br /&gt;
#* https://drive.google.com/file/d/0B30HPZmaePCHMlAzcjJlYm5rRTA/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 12 Nov, 2015, 15:00 UTC'''&lt;br /&gt;
# Which method is better for Manila QoS(independent way or just use extra specs ) (zhongjun)&lt;br /&gt;
#* link:http://paste.openstack.org/show/477677/ &lt;br /&gt;
#*If use extra specs to config QoS, Does we first need add “QoS_support=true/false” in share_type. Does we need to add QoS_support flag in common capabilities&lt;br /&gt;
#**https://github.com/openstack/manila/blob/master/doc/source/devref/capabilities_and_extra_specs.rst)?&lt;br /&gt;
#** eg:  share_type: qos_support='&amp;lt;is&amp;gt; True' or '&amp;lt;is&amp;gt; False' &lt;br /&gt;
#**                            netapp:max_iops=100  or qos:netapp:max_iops=100 or qos:max_iops=100&lt;br /&gt;
#**        driver update: qos_support=true&lt;br /&gt;
#** An alternative could be to have the driver report a range&lt;br /&gt;
# Manila DR update (ameade)&lt;br /&gt;
#* Still no reviews on https://review.openstack.org/#/c/238572/&lt;br /&gt;
#* First-party driver implementation? Which driver, current generic or new solution? When do we need this implemented and who wants to do it?&lt;br /&gt;
#* Replication_change share state - This is the state of the share when any of it's replicas are being promoted. Is 'replication_change' good or is there a better phrase?&lt;br /&gt;
# Manila Driver minimum requirements document update (ganso)&lt;br /&gt;
# Manila Data Copy service name (bswartz)&lt;br /&gt;
#*https://review.openstack.org/#/c/244286/&lt;br /&gt;
# Upcoming change for Manila CI hooks (vponomaryov)&lt;br /&gt;
#*https://review.openstack.org/#/c/243233/&lt;br /&gt;
# Manilaclient enhancement to provide request_id when set http_log_debug is True. It will co-ordinate the request and its id, so it will be helpful to filter the log and the failed request. (Jay Xu)&lt;br /&gt;
#*http://paste.openstack.org/show/478675/&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 5 Nov, 2015, 15:00 UTC'''&lt;br /&gt;
# Decide on read-only access rules as a required feature&lt;br /&gt;
# Manila DR - Design/Code feedback (gouthamr) &lt;br /&gt;
#* [https://wiki.openstack.org/wiki/Manila/design/manila-mitaka-data-replication Design Document]&lt;br /&gt;
#* [https://review.openstack.org/#/c/238572/ Core Implementation on Gerrit]&lt;br /&gt;
#* [https://review.openstack.org/#/c/235448/ Client Implementation on Gerrit]&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 1 Oct, 2015, 15:00 UTC'''&lt;br /&gt;
# Liberty RC2 status&lt;br /&gt;
#* https://launchpad.net/manila/+milestone/liberty-rc2&lt;br /&gt;
#* https://review.openstack.org/#/q/project:openstack/manila+branch:stable/liberty,n,z&lt;br /&gt;
# Mitaka Design Summit&lt;br /&gt;
#* https://etherpad.openstack.org/p/manila-mitaka-summit-topics&lt;br /&gt;
# Vendor driver docs&lt;br /&gt;
#* https://github.com/openstack/manila/blob/master/doc/source/devref/share_back_ends_feature_support_mapping.rst&lt;br /&gt;
# Manila Client Nova Style Microversion Support (cfouts)&lt;br /&gt;
#* https://review.openstack.org/#/c/229142/&lt;br /&gt;
#* http://docs.openstack.org/developer/manila/devref/api_microversion_dev.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 24 Sep, 2015, 15:00 UTC'''&lt;br /&gt;
# 3rd-party CI status&lt;br /&gt;
#* http://ec2-54-67-102-119.us-west-1.compute.amazonaws.com:5000/?project=openstack/manila&amp;amp;user=&amp;amp;timeframe=72&amp;amp;start=&amp;amp;end=&amp;amp;page_size=500&lt;br /&gt;
#* http://ci-watch.tintri.com/project?project=manila&lt;br /&gt;
# Liberty RC status&lt;br /&gt;
# Support for QoS in Manila (zhongjun2)&lt;br /&gt;
#* https://blueprints.launchpad.net/manila/+spec/manila-support-qos&lt;br /&gt;
#* https://wiki.openstack.org/wiki/Manila/QoS&lt;br /&gt;
# Reminder for backend driver maintainers to update feature support table (toabctl)&lt;br /&gt;
#* http://docs.openstack.org/developer/manila/devref/share_back_ends_feature_support_mapping.html&lt;br /&gt;
# Regression when using NetApp - license issue with netapp_lib (toabctl)&lt;br /&gt;
#* https://bugs.launchpad.net/cinder/+bug/1499334&lt;br /&gt;
# Mitaka Design Summit&lt;br /&gt;
#* Propose topics - https://etherpad.openstack.org/p/manila-mitaka-summit-topics&lt;br /&gt;
# Vendor driver docs&lt;br /&gt;
# Open Discussion&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
http://eavesdrop.openstack.org/meetings/manila/&lt;/div&gt;</summary>
		<author><name>Clinton Knight</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Manila/Meetings&amp;diff=110968</id>
		<title>Manila/Meetings</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Manila/Meetings&amp;diff=110968"/>
				<updated>2016-02-25T15:01:53Z</updated>
		
		<summary type="html">&lt;p&gt;Clinton Knight: /* Next meeting */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Weekly Manila team meeting =&lt;br /&gt;
'''NOTE MEETING TIME: Thursday at 15:00 UTC'''&lt;br /&gt;
&lt;br /&gt;
If you're interested in management of shared filesystems for OpenStack, we have a weekly meetings in &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;#openstack-meeting-alt&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;, on Thursdays at 15:00 UTC.  Please feel free to add items to the agenda below.  NOTE: When adding topics please include your IRC name so we know who's topic it is and how to get more info.&lt;br /&gt;
&lt;br /&gt;
== Next meeting ==&lt;br /&gt;
'''NOTE:''' ''Include your IRC nickname next to agenda items so that you can be called upon in the meeting and arrive at the meeting promptly if placing items in agenda. You might want to put this on your calendar if you are adding items.''&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 25 Feb, 2016, 15:00 UTC'''&lt;br /&gt;
&lt;br /&gt;
# OpenStack bug smash event (toabctl, mkoderer)&lt;br /&gt;
## link: https://etherpad.openstack.org/p/OpenStack-Bug-Smash-Mitaka&lt;br /&gt;
# Status of new drivers&lt;br /&gt;
## M.3 deadline is a week away.&lt;br /&gt;
## Only a few things have merged in the last couple days.  At this rate, many things won't make it.&lt;br /&gt;
## Zuul is busy and will only get worse until the deadline.&lt;br /&gt;
## Multiple Manila gate breakages have occurred recently, and more are likely.&lt;br /&gt;
## The Manila tests are very unreliable at concurrency &amp;gt; 1.&lt;br /&gt;
## The generic driver is to slow to pass the gate at concurrency = 1.&lt;br /&gt;
## The new drivers *are* fast enough to run at concurrency = 1.&lt;br /&gt;
## The new drivers may not be 100% done, but they are done enough to pass reliably at concurrency = 1.&lt;br /&gt;
## We should switch voting to the new drivers NOW, or start throwing stuff overboard for the release.&lt;br /&gt;
# Open Discussion&lt;br /&gt;
&lt;br /&gt;
== Previous meetings ==&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 18 Feb, 2016, 15:00 UTC'''&lt;br /&gt;
&lt;br /&gt;
# Feature Proposal Freeze (bswartz)&lt;br /&gt;
# Open Discussion&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 11 Feb, 2016, 15:00 UTC'''&lt;br /&gt;
&lt;br /&gt;
# Hierarchical port binding support (mkoderer)&lt;br /&gt;
#* https://wiki.openstack.org/wiki/Manila/design/manila-newton-hpb-support&lt;br /&gt;
#* https://blueprints.launchpad.net/manila/+spec/manila-hpb-support&lt;br /&gt;
#* https://review.openstack.org/#/c/277731/&lt;br /&gt;
# Next Manila mid-cycle (mkoderer)&lt;br /&gt;
#* https://etherpad.openstack.org/p/manila-n-release-midcycle&lt;br /&gt;
# Replication + ZFS Driver (bswartz)&lt;br /&gt;
#* https://review.openstack.org/#/c/238572&lt;br /&gt;
# Driver FPF (bswartz)&lt;br /&gt;
#* https://review.openstack.org/#/c/279090/&lt;br /&gt;
#* https://review.openstack.org/#/c/278169/&lt;br /&gt;
# HDFS CI (bswartz)&lt;br /&gt;
'''Scheduled for 4 Feb, 2016, 15:00 UTC'''&lt;br /&gt;
# Data service handling protocol mount commands (ganso)&lt;br /&gt;
#* https://etherpad.openstack.org/p/manila-data-service-mount-meeting&lt;br /&gt;
# Separate process for copy on data service (tpsilva)&lt;br /&gt;
# ZFS driver (bswartz)&lt;br /&gt;
# First party drivers share migration support cooperation (ganso)&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 28 Jan, 2016, 15:00 UTC'''&lt;br /&gt;
# Hierarchical port binding support (mkoderer)&lt;br /&gt;
#* https://etherpad.openstack.org/p/manila-hierarchical-port-binding&lt;br /&gt;
# Core reviewer team and other manila-related projects (bswartz)&lt;br /&gt;
# Replication status (bswartz)&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 21 Jan, 2016, 15:00 UTC'''&lt;br /&gt;
# Update_access backwards compatibility approach discussion. (ganso)&lt;br /&gt;
# Exposing the Data Service to drivers. (ganso)&lt;br /&gt;
# Snapshot manage/unmanage (bswartz)&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 17 Dec, 2015, 15:00 UTC'''&lt;br /&gt;
# Proposal for share groups (cknight)&lt;br /&gt;
# Liberty.1 stable release (bswartz)&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 10 Dec, 2015, 15:00 UTC'''&lt;br /&gt;
# The most of the driver already report the &amp;quot;'QoS_support': False&amp;quot; to scheduler. Does we need to remove it or save it as Qos support flat? and write 'QoS_support' to capabilities_and_extra_specs.rst?(zhongjun)&lt;br /&gt;
##https://github.com/openstack/manila/blob/master/manila/share/drivers/hpe/hpe_3par_driver.py#L391&lt;br /&gt;
##https://github.com/openstack/manila/blob/master/manila/share/drivers/hitachi/hds_hnas.py#L354&lt;br /&gt;
##https://github.com/openstack/manila/blob/master/manila/share/drivers/netapp/dataontap/cluster_mode/lib_base.py#L257&lt;br /&gt;
##https://github.com/openstack/manila/blob/master/manila/scheduler/host_manager.py#L111&lt;br /&gt;
##https://review.openstack.org/#/c/247286/4/doc/source/devref/capabilities_and_extra_specs.rst&lt;br /&gt;
# Architectural concerns and interoperability of new features (cknight)&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 3 Dec, 2015, 15:00 UTC'''&lt;br /&gt;
# Midcycle meetup&lt;br /&gt;
# Add &amp;quot;data loss&amp;quot; flag in DB migrations which lead to losing of existing data and update &amp;quot;manila-manage db sync&amp;quot; command to forbid applying such migrations without &amp;quot;--force&amp;quot; flag (u_glide)&lt;br /&gt;
# Reorganization of Manila scheduler to merge oslo-incubator code and simplify future maintenance  (cknight)&lt;br /&gt;
## https://review.openstack.org/#/c/252060/&lt;br /&gt;
## Mostly for awareness, this is now merged and should be backwards compatible.&lt;br /&gt;
## Cinder could benefit from a similar treatment.  And with the incubator gone, we could explore a common library with the Cinder team, since the heretofore shared components are certain to diverge over time, but I'm not sure how receptive they would be.  Xing?&lt;br /&gt;
# CI reliability&lt;br /&gt;
## Why should we merge patches for drivers whose CI systems consistently fail?  This negates the value of CI.  I think that accepting patches that aren't proven by CI does a disservice to everyone, most of all to the driver owners themselves.  Refusing to merge driver patches without a good CI result for that driver seems like a gentler and more uniform-over-time approach than threatening to throw out a driver near the end of a release.  And why make our illustrious and overworked PTL be the CI policeman when all core reviewers could simply glance at the corresponding CI result before giving +A?  (cknight)&lt;br /&gt;
## http://ci-watch.tintri.com/project?project=manila&lt;br /&gt;
## https://review.openstack.org/#/c/232293/&lt;br /&gt;
## https://review.openstack.org/#/c/235522/&lt;br /&gt;
## https://review.openstack.org/#/c/235726/&lt;br /&gt;
## https://review.openstack.org/#/c/249999/&lt;br /&gt;
## https://review.openstack.org/#/c/237454/&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 19 Nov, 2015, 15:00 UTC'''&lt;br /&gt;
# GB --&amp;gt; GiB (markstur)&lt;br /&gt;
# OpenStack Manuals and Devref (markstur)&lt;br /&gt;
#* Config Ref (and others) are moving to .RST!&lt;br /&gt;
#* How should we document prior releases in devref?&lt;br /&gt;
# Midcycle Meetup Date (bswartz)&lt;br /&gt;
# Deadlines for features (bswartz)&lt;br /&gt;
#* Feature proposal freeze vs Big Features&lt;br /&gt;
#* New drivers&lt;br /&gt;
# Data Copy Service network approach discussion (ganso)&lt;br /&gt;
#* https://drive.google.com/file/d/0B30HPZmaePCHMlAzcjJlYm5rRTA/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 12 Nov, 2015, 15:00 UTC'''&lt;br /&gt;
# Which method is better for Manila QoS(independent way or just use extra specs ) (zhongjun)&lt;br /&gt;
#* link:http://paste.openstack.org/show/477677/ &lt;br /&gt;
#*If use extra specs to config QoS, Does we first need add “QoS_support=true/false” in share_type. Does we need to add QoS_support flag in common capabilities&lt;br /&gt;
#**https://github.com/openstack/manila/blob/master/doc/source/devref/capabilities_and_extra_specs.rst)?&lt;br /&gt;
#** eg:  share_type: qos_support='&amp;lt;is&amp;gt; True' or '&amp;lt;is&amp;gt; False' &lt;br /&gt;
#**                            netapp:max_iops=100  or qos:netapp:max_iops=100 or qos:max_iops=100&lt;br /&gt;
#**        driver update: qos_support=true&lt;br /&gt;
#** An alternative could be to have the driver report a range&lt;br /&gt;
# Manila DR update (ameade)&lt;br /&gt;
#* Still no reviews on https://review.openstack.org/#/c/238572/&lt;br /&gt;
#* First-party driver implementation? Which driver, current generic or new solution? When do we need this implemented and who wants to do it?&lt;br /&gt;
#* Replication_change share state - This is the state of the share when any of it's replicas are being promoted. Is 'replication_change' good or is there a better phrase?&lt;br /&gt;
# Manila Driver minimum requirements document update (ganso)&lt;br /&gt;
# Manila Data Copy service name (bswartz)&lt;br /&gt;
#*https://review.openstack.org/#/c/244286/&lt;br /&gt;
# Upcoming change for Manila CI hooks (vponomaryov)&lt;br /&gt;
#*https://review.openstack.org/#/c/243233/&lt;br /&gt;
# Manilaclient enhancement to provide request_id when set http_log_debug is True. It will co-ordinate the request and its id, so it will be helpful to filter the log and the failed request. (Jay Xu)&lt;br /&gt;
#*http://paste.openstack.org/show/478675/&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 5 Nov, 2015, 15:00 UTC'''&lt;br /&gt;
# Decide on read-only access rules as a required feature&lt;br /&gt;
# Manila DR - Design/Code feedback (gouthamr) &lt;br /&gt;
#* [https://wiki.openstack.org/wiki/Manila/design/manila-mitaka-data-replication Design Document]&lt;br /&gt;
#* [https://review.openstack.org/#/c/238572/ Core Implementation on Gerrit]&lt;br /&gt;
#* [https://review.openstack.org/#/c/235448/ Client Implementation on Gerrit]&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 1 Oct, 2015, 15:00 UTC'''&lt;br /&gt;
# Liberty RC2 status&lt;br /&gt;
#* https://launchpad.net/manila/+milestone/liberty-rc2&lt;br /&gt;
#* https://review.openstack.org/#/q/project:openstack/manila+branch:stable/liberty,n,z&lt;br /&gt;
# Mitaka Design Summit&lt;br /&gt;
#* https://etherpad.openstack.org/p/manila-mitaka-summit-topics&lt;br /&gt;
# Vendor driver docs&lt;br /&gt;
#* https://github.com/openstack/manila/blob/master/doc/source/devref/share_back_ends_feature_support_mapping.rst&lt;br /&gt;
# Manila Client Nova Style Microversion Support (cfouts)&lt;br /&gt;
#* https://review.openstack.org/#/c/229142/&lt;br /&gt;
#* http://docs.openstack.org/developer/manila/devref/api_microversion_dev.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 24 Sep, 2015, 15:00 UTC'''&lt;br /&gt;
# 3rd-party CI status&lt;br /&gt;
#* http://ec2-54-67-102-119.us-west-1.compute.amazonaws.com:5000/?project=openstack/manila&amp;amp;user=&amp;amp;timeframe=72&amp;amp;start=&amp;amp;end=&amp;amp;page_size=500&lt;br /&gt;
#* http://ci-watch.tintri.com/project?project=manila&lt;br /&gt;
# Liberty RC status&lt;br /&gt;
# Support for QoS in Manila (zhongjun2)&lt;br /&gt;
#* https://blueprints.launchpad.net/manila/+spec/manila-support-qos&lt;br /&gt;
#* https://wiki.openstack.org/wiki/Manila/QoS&lt;br /&gt;
# Reminder for backend driver maintainers to update feature support table (toabctl)&lt;br /&gt;
#* http://docs.openstack.org/developer/manila/devref/share_back_ends_feature_support_mapping.html&lt;br /&gt;
# Regression when using NetApp - license issue with netapp_lib (toabctl)&lt;br /&gt;
#* https://bugs.launchpad.net/cinder/+bug/1499334&lt;br /&gt;
# Mitaka Design Summit&lt;br /&gt;
#* Propose topics - https://etherpad.openstack.org/p/manila-mitaka-summit-topics&lt;br /&gt;
# Vendor driver docs&lt;br /&gt;
# Open Discussion&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
http://eavesdrop.openstack.org/meetings/manila/&lt;/div&gt;</summary>
		<author><name>Clinton Knight</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Manila/Meetings&amp;diff=110957</id>
		<title>Manila/Meetings</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Manila/Meetings&amp;diff=110957"/>
				<updated>2016-02-25T15:00:05Z</updated>
		
		<summary type="html">&lt;p&gt;Clinton Knight: /* Next meeting */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Weekly Manila team meeting =&lt;br /&gt;
'''NOTE MEETING TIME: Thursday at 15:00 UTC'''&lt;br /&gt;
&lt;br /&gt;
If you're interested in management of shared filesystems for OpenStack, we have a weekly meetings in &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;#openstack-meeting-alt&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;, on Thursdays at 15:00 UTC.  Please feel free to add items to the agenda below.  NOTE: When adding topics please include your IRC name so we know who's topic it is and how to get more info.&lt;br /&gt;
&lt;br /&gt;
== Next meeting ==&lt;br /&gt;
'''NOTE:''' ''Include your IRC nickname next to agenda items so that you can be called upon in the meeting and arrive at the meeting promptly if placing items in agenda. You might want to put this on your calendar if you are adding items.''&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 25 Feb, 2016, 15:00 UTC'''&lt;br /&gt;
&lt;br /&gt;
# OpenStack bug smash event (toabctl, mkoderer)&lt;br /&gt;
## link: https://etherpad.openstack.org/p/OpenStack-Bug-Smash-Mitaka&lt;br /&gt;
# Status of new drivers&lt;br /&gt;
## M.3 deadline is a week away.&lt;br /&gt;
## Only a few things have merged in the last couple days.  At this rate, many things won't make it.&lt;br /&gt;
## Zuul is busy and will only get worse until the deadline.&lt;br /&gt;
## Multiple Manila gate breakages have occurred recently, and more are likely.&lt;br /&gt;
## The Manila tests are very unreliable at concurrency &amp;gt; 1.&lt;br /&gt;
## The generic driver is to slow to pass the gate at concurrency = 1.&lt;br /&gt;
## The new drivers may not be 100% done, but they are done enough to pass reliably at concurrency = 1.&lt;br /&gt;
## We should switch voting to the new drivers NOW, or start throwing stuff overboard for the release.&lt;br /&gt;
# Open Discussion&lt;br /&gt;
&lt;br /&gt;
== Previous meetings ==&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 18 Feb, 2016, 15:00 UTC'''&lt;br /&gt;
&lt;br /&gt;
# Feature Proposal Freeze (bswartz)&lt;br /&gt;
# Open Discussion&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 11 Feb, 2016, 15:00 UTC'''&lt;br /&gt;
&lt;br /&gt;
# Hierarchical port binding support (mkoderer)&lt;br /&gt;
#* https://wiki.openstack.org/wiki/Manila/design/manila-newton-hpb-support&lt;br /&gt;
#* https://blueprints.launchpad.net/manila/+spec/manila-hpb-support&lt;br /&gt;
#* https://review.openstack.org/#/c/277731/&lt;br /&gt;
# Next Manila mid-cycle (mkoderer)&lt;br /&gt;
#* https://etherpad.openstack.org/p/manila-n-release-midcycle&lt;br /&gt;
# Replication + ZFS Driver (bswartz)&lt;br /&gt;
#* https://review.openstack.org/#/c/238572&lt;br /&gt;
# Driver FPF (bswartz)&lt;br /&gt;
#* https://review.openstack.org/#/c/279090/&lt;br /&gt;
#* https://review.openstack.org/#/c/278169/&lt;br /&gt;
# HDFS CI (bswartz)&lt;br /&gt;
'''Scheduled for 4 Feb, 2016, 15:00 UTC'''&lt;br /&gt;
# Data service handling protocol mount commands (ganso)&lt;br /&gt;
#* https://etherpad.openstack.org/p/manila-data-service-mount-meeting&lt;br /&gt;
# Separate process for copy on data service (tpsilva)&lt;br /&gt;
# ZFS driver (bswartz)&lt;br /&gt;
# First party drivers share migration support cooperation (ganso)&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 28 Jan, 2016, 15:00 UTC'''&lt;br /&gt;
# Hierarchical port binding support (mkoderer)&lt;br /&gt;
#* https://etherpad.openstack.org/p/manila-hierarchical-port-binding&lt;br /&gt;
# Core reviewer team and other manila-related projects (bswartz)&lt;br /&gt;
# Replication status (bswartz)&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 21 Jan, 2016, 15:00 UTC'''&lt;br /&gt;
# Update_access backwards compatibility approach discussion. (ganso)&lt;br /&gt;
# Exposing the Data Service to drivers. (ganso)&lt;br /&gt;
# Snapshot manage/unmanage (bswartz)&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 17 Dec, 2015, 15:00 UTC'''&lt;br /&gt;
# Proposal for share groups (cknight)&lt;br /&gt;
# Liberty.1 stable release (bswartz)&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 10 Dec, 2015, 15:00 UTC'''&lt;br /&gt;
# The most of the driver already report the &amp;quot;'QoS_support': False&amp;quot; to scheduler. Does we need to remove it or save it as Qos support flat? and write 'QoS_support' to capabilities_and_extra_specs.rst?(zhongjun)&lt;br /&gt;
##https://github.com/openstack/manila/blob/master/manila/share/drivers/hpe/hpe_3par_driver.py#L391&lt;br /&gt;
##https://github.com/openstack/manila/blob/master/manila/share/drivers/hitachi/hds_hnas.py#L354&lt;br /&gt;
##https://github.com/openstack/manila/blob/master/manila/share/drivers/netapp/dataontap/cluster_mode/lib_base.py#L257&lt;br /&gt;
##https://github.com/openstack/manila/blob/master/manila/scheduler/host_manager.py#L111&lt;br /&gt;
##https://review.openstack.org/#/c/247286/4/doc/source/devref/capabilities_and_extra_specs.rst&lt;br /&gt;
# Architectural concerns and interoperability of new features (cknight)&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 3 Dec, 2015, 15:00 UTC'''&lt;br /&gt;
# Midcycle meetup&lt;br /&gt;
# Add &amp;quot;data loss&amp;quot; flag in DB migrations which lead to losing of existing data and update &amp;quot;manila-manage db sync&amp;quot; command to forbid applying such migrations without &amp;quot;--force&amp;quot; flag (u_glide)&lt;br /&gt;
# Reorganization of Manila scheduler to merge oslo-incubator code and simplify future maintenance  (cknight)&lt;br /&gt;
## https://review.openstack.org/#/c/252060/&lt;br /&gt;
## Mostly for awareness, this is now merged and should be backwards compatible.&lt;br /&gt;
## Cinder could benefit from a similar treatment.  And with the incubator gone, we could explore a common library with the Cinder team, since the heretofore shared components are certain to diverge over time, but I'm not sure how receptive they would be.  Xing?&lt;br /&gt;
# CI reliability&lt;br /&gt;
## Why should we merge patches for drivers whose CI systems consistently fail?  This negates the value of CI.  I think that accepting patches that aren't proven by CI does a disservice to everyone, most of all to the driver owners themselves.  Refusing to merge driver patches without a good CI result for that driver seems like a gentler and more uniform-over-time approach than threatening to throw out a driver near the end of a release.  And why make our illustrious and overworked PTL be the CI policeman when all core reviewers could simply glance at the corresponding CI result before giving +A?  (cknight)&lt;br /&gt;
## http://ci-watch.tintri.com/project?project=manila&lt;br /&gt;
## https://review.openstack.org/#/c/232293/&lt;br /&gt;
## https://review.openstack.org/#/c/235522/&lt;br /&gt;
## https://review.openstack.org/#/c/235726/&lt;br /&gt;
## https://review.openstack.org/#/c/249999/&lt;br /&gt;
## https://review.openstack.org/#/c/237454/&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 19 Nov, 2015, 15:00 UTC'''&lt;br /&gt;
# GB --&amp;gt; GiB (markstur)&lt;br /&gt;
# OpenStack Manuals and Devref (markstur)&lt;br /&gt;
#* Config Ref (and others) are moving to .RST!&lt;br /&gt;
#* How should we document prior releases in devref?&lt;br /&gt;
# Midcycle Meetup Date (bswartz)&lt;br /&gt;
# Deadlines for features (bswartz)&lt;br /&gt;
#* Feature proposal freeze vs Big Features&lt;br /&gt;
#* New drivers&lt;br /&gt;
# Data Copy Service network approach discussion (ganso)&lt;br /&gt;
#* https://drive.google.com/file/d/0B30HPZmaePCHMlAzcjJlYm5rRTA/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 12 Nov, 2015, 15:00 UTC'''&lt;br /&gt;
# Which method is better for Manila QoS(independent way or just use extra specs ) (zhongjun)&lt;br /&gt;
#* link:http://paste.openstack.org/show/477677/ &lt;br /&gt;
#*If use extra specs to config QoS, Does we first need add “QoS_support=true/false” in share_type. Does we need to add QoS_support flag in common capabilities&lt;br /&gt;
#**https://github.com/openstack/manila/blob/master/doc/source/devref/capabilities_and_extra_specs.rst)?&lt;br /&gt;
#** eg:  share_type: qos_support='&amp;lt;is&amp;gt; True' or '&amp;lt;is&amp;gt; False' &lt;br /&gt;
#**                            netapp:max_iops=100  or qos:netapp:max_iops=100 or qos:max_iops=100&lt;br /&gt;
#**        driver update: qos_support=true&lt;br /&gt;
#** An alternative could be to have the driver report a range&lt;br /&gt;
# Manila DR update (ameade)&lt;br /&gt;
#* Still no reviews on https://review.openstack.org/#/c/238572/&lt;br /&gt;
#* First-party driver implementation? Which driver, current generic or new solution? When do we need this implemented and who wants to do it?&lt;br /&gt;
#* Replication_change share state - This is the state of the share when any of it's replicas are being promoted. Is 'replication_change' good or is there a better phrase?&lt;br /&gt;
# Manila Driver minimum requirements document update (ganso)&lt;br /&gt;
# Manila Data Copy service name (bswartz)&lt;br /&gt;
#*https://review.openstack.org/#/c/244286/&lt;br /&gt;
# Upcoming change for Manila CI hooks (vponomaryov)&lt;br /&gt;
#*https://review.openstack.org/#/c/243233/&lt;br /&gt;
# Manilaclient enhancement to provide request_id when set http_log_debug is True. It will co-ordinate the request and its id, so it will be helpful to filter the log and the failed request. (Jay Xu)&lt;br /&gt;
#*http://paste.openstack.org/show/478675/&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 5 Nov, 2015, 15:00 UTC'''&lt;br /&gt;
# Decide on read-only access rules as a required feature&lt;br /&gt;
# Manila DR - Design/Code feedback (gouthamr) &lt;br /&gt;
#* [https://wiki.openstack.org/wiki/Manila/design/manila-mitaka-data-replication Design Document]&lt;br /&gt;
#* [https://review.openstack.org/#/c/238572/ Core Implementation on Gerrit]&lt;br /&gt;
#* [https://review.openstack.org/#/c/235448/ Client Implementation on Gerrit]&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 1 Oct, 2015, 15:00 UTC'''&lt;br /&gt;
# Liberty RC2 status&lt;br /&gt;
#* https://launchpad.net/manila/+milestone/liberty-rc2&lt;br /&gt;
#* https://review.openstack.org/#/q/project:openstack/manila+branch:stable/liberty,n,z&lt;br /&gt;
# Mitaka Design Summit&lt;br /&gt;
#* https://etherpad.openstack.org/p/manila-mitaka-summit-topics&lt;br /&gt;
# Vendor driver docs&lt;br /&gt;
#* https://github.com/openstack/manila/blob/master/doc/source/devref/share_back_ends_feature_support_mapping.rst&lt;br /&gt;
# Manila Client Nova Style Microversion Support (cfouts)&lt;br /&gt;
#* https://review.openstack.org/#/c/229142/&lt;br /&gt;
#* http://docs.openstack.org/developer/manila/devref/api_microversion_dev.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 24 Sep, 2015, 15:00 UTC'''&lt;br /&gt;
# 3rd-party CI status&lt;br /&gt;
#* http://ec2-54-67-102-119.us-west-1.compute.amazonaws.com:5000/?project=openstack/manila&amp;amp;user=&amp;amp;timeframe=72&amp;amp;start=&amp;amp;end=&amp;amp;page_size=500&lt;br /&gt;
#* http://ci-watch.tintri.com/project?project=manila&lt;br /&gt;
# Liberty RC status&lt;br /&gt;
# Support for QoS in Manila (zhongjun2)&lt;br /&gt;
#* https://blueprints.launchpad.net/manila/+spec/manila-support-qos&lt;br /&gt;
#* https://wiki.openstack.org/wiki/Manila/QoS&lt;br /&gt;
# Reminder for backend driver maintainers to update feature support table (toabctl)&lt;br /&gt;
#* http://docs.openstack.org/developer/manila/devref/share_back_ends_feature_support_mapping.html&lt;br /&gt;
# Regression when using NetApp - license issue with netapp_lib (toabctl)&lt;br /&gt;
#* https://bugs.launchpad.net/cinder/+bug/1499334&lt;br /&gt;
# Mitaka Design Summit&lt;br /&gt;
#* Propose topics - https://etherpad.openstack.org/p/manila-mitaka-summit-topics&lt;br /&gt;
# Vendor driver docs&lt;br /&gt;
# Open Discussion&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
http://eavesdrop.openstack.org/meetings/manila/&lt;/div&gt;</summary>
		<author><name>Clinton Knight</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Manila/Meetings&amp;diff=110952</id>
		<title>Manila/Meetings</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Manila/Meetings&amp;diff=110952"/>
				<updated>2016-02-25T14:58:18Z</updated>
		
		<summary type="html">&lt;p&gt;Clinton Knight: /* Next meeting */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Weekly Manila team meeting =&lt;br /&gt;
'''NOTE MEETING TIME: Thursday at 15:00 UTC'''&lt;br /&gt;
&lt;br /&gt;
If you're interested in management of shared filesystems for OpenStack, we have a weekly meetings in &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;#openstack-meeting-alt&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;, on Thursdays at 15:00 UTC.  Please feel free to add items to the agenda below.  NOTE: When adding topics please include your IRC name so we know who's topic it is and how to get more info.&lt;br /&gt;
&lt;br /&gt;
== Next meeting ==&lt;br /&gt;
'''NOTE:''' ''Include your IRC nickname next to agenda items so that you can be called upon in the meeting and arrive at the meeting promptly if placing items in agenda. You might want to put this on your calendar if you are adding items.''&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 25 Feb, 2016, 15:00 UTC'''&lt;br /&gt;
&lt;br /&gt;
# OpenStack bug smash event (toabctl, mkoderer)&lt;br /&gt;
## link: https://etherpad.openstack.org/p/OpenStack-Bug-Smash-Mitaka&lt;br /&gt;
# Status of new drivers&lt;br /&gt;
## M.3 deadline is a week away.&lt;br /&gt;
## Only a few things have merged in the last couple days.  At this rate, many things won't make it.&lt;br /&gt;
## Zuul is busy and will only get worse until the deadline.&lt;br /&gt;
## Multiple Manila gate breakages have occurred recently, and more are likely.&lt;br /&gt;
## The Manila tests are very unreliable at concurrency &amp;gt; 1.&lt;br /&gt;
## The generic driver is to slow to pass the gate at concurrency = 1.&lt;br /&gt;
## The new drivers may not be 100%, but they are done enough to pass reliably at concurrency = 1.&lt;br /&gt;
## We should switch voting to the new drivers NOW, or start throwing stuff overboard.&lt;br /&gt;
# Open Discussion&lt;br /&gt;
&lt;br /&gt;
== Previous meetings ==&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 18 Feb, 2016, 15:00 UTC'''&lt;br /&gt;
&lt;br /&gt;
# Feature Proposal Freeze (bswartz)&lt;br /&gt;
# Open Discussion&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 11 Feb, 2016, 15:00 UTC'''&lt;br /&gt;
&lt;br /&gt;
# Hierarchical port binding support (mkoderer)&lt;br /&gt;
#* https://wiki.openstack.org/wiki/Manila/design/manila-newton-hpb-support&lt;br /&gt;
#* https://blueprints.launchpad.net/manila/+spec/manila-hpb-support&lt;br /&gt;
#* https://review.openstack.org/#/c/277731/&lt;br /&gt;
# Next Manila mid-cycle (mkoderer)&lt;br /&gt;
#* https://etherpad.openstack.org/p/manila-n-release-midcycle&lt;br /&gt;
# Replication + ZFS Driver (bswartz)&lt;br /&gt;
#* https://review.openstack.org/#/c/238572&lt;br /&gt;
# Driver FPF (bswartz)&lt;br /&gt;
#* https://review.openstack.org/#/c/279090/&lt;br /&gt;
#* https://review.openstack.org/#/c/278169/&lt;br /&gt;
# HDFS CI (bswartz)&lt;br /&gt;
'''Scheduled for 4 Feb, 2016, 15:00 UTC'''&lt;br /&gt;
# Data service handling protocol mount commands (ganso)&lt;br /&gt;
#* https://etherpad.openstack.org/p/manila-data-service-mount-meeting&lt;br /&gt;
# Separate process for copy on data service (tpsilva)&lt;br /&gt;
# ZFS driver (bswartz)&lt;br /&gt;
# First party drivers share migration support cooperation (ganso)&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 28 Jan, 2016, 15:00 UTC'''&lt;br /&gt;
# Hierarchical port binding support (mkoderer)&lt;br /&gt;
#* https://etherpad.openstack.org/p/manila-hierarchical-port-binding&lt;br /&gt;
# Core reviewer team and other manila-related projects (bswartz)&lt;br /&gt;
# Replication status (bswartz)&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 21 Jan, 2016, 15:00 UTC'''&lt;br /&gt;
# Update_access backwards compatibility approach discussion. (ganso)&lt;br /&gt;
# Exposing the Data Service to drivers. (ganso)&lt;br /&gt;
# Snapshot manage/unmanage (bswartz)&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 17 Dec, 2015, 15:00 UTC'''&lt;br /&gt;
# Proposal for share groups (cknight)&lt;br /&gt;
# Liberty.1 stable release (bswartz)&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 10 Dec, 2015, 15:00 UTC'''&lt;br /&gt;
# The most of the driver already report the &amp;quot;'QoS_support': False&amp;quot; to scheduler. Does we need to remove it or save it as Qos support flat? and write 'QoS_support' to capabilities_and_extra_specs.rst?(zhongjun)&lt;br /&gt;
##https://github.com/openstack/manila/blob/master/manila/share/drivers/hpe/hpe_3par_driver.py#L391&lt;br /&gt;
##https://github.com/openstack/manila/blob/master/manila/share/drivers/hitachi/hds_hnas.py#L354&lt;br /&gt;
##https://github.com/openstack/manila/blob/master/manila/share/drivers/netapp/dataontap/cluster_mode/lib_base.py#L257&lt;br /&gt;
##https://github.com/openstack/manila/blob/master/manila/scheduler/host_manager.py#L111&lt;br /&gt;
##https://review.openstack.org/#/c/247286/4/doc/source/devref/capabilities_and_extra_specs.rst&lt;br /&gt;
# Architectural concerns and interoperability of new features (cknight)&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 3 Dec, 2015, 15:00 UTC'''&lt;br /&gt;
# Midcycle meetup&lt;br /&gt;
# Add &amp;quot;data loss&amp;quot; flag in DB migrations which lead to losing of existing data and update &amp;quot;manila-manage db sync&amp;quot; command to forbid applying such migrations without &amp;quot;--force&amp;quot; flag (u_glide)&lt;br /&gt;
# Reorganization of Manila scheduler to merge oslo-incubator code and simplify future maintenance  (cknight)&lt;br /&gt;
## https://review.openstack.org/#/c/252060/&lt;br /&gt;
## Mostly for awareness, this is now merged and should be backwards compatible.&lt;br /&gt;
## Cinder could benefit from a similar treatment.  And with the incubator gone, we could explore a common library with the Cinder team, since the heretofore shared components are certain to diverge over time, but I'm not sure how receptive they would be.  Xing?&lt;br /&gt;
# CI reliability&lt;br /&gt;
## Why should we merge patches for drivers whose CI systems consistently fail?  This negates the value of CI.  I think that accepting patches that aren't proven by CI does a disservice to everyone, most of all to the driver owners themselves.  Refusing to merge driver patches without a good CI result for that driver seems like a gentler and more uniform-over-time approach than threatening to throw out a driver near the end of a release.  And why make our illustrious and overworked PTL be the CI policeman when all core reviewers could simply glance at the corresponding CI result before giving +A?  (cknight)&lt;br /&gt;
## http://ci-watch.tintri.com/project?project=manila&lt;br /&gt;
## https://review.openstack.org/#/c/232293/&lt;br /&gt;
## https://review.openstack.org/#/c/235522/&lt;br /&gt;
## https://review.openstack.org/#/c/235726/&lt;br /&gt;
## https://review.openstack.org/#/c/249999/&lt;br /&gt;
## https://review.openstack.org/#/c/237454/&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 19 Nov, 2015, 15:00 UTC'''&lt;br /&gt;
# GB --&amp;gt; GiB (markstur)&lt;br /&gt;
# OpenStack Manuals and Devref (markstur)&lt;br /&gt;
#* Config Ref (and others) are moving to .RST!&lt;br /&gt;
#* How should we document prior releases in devref?&lt;br /&gt;
# Midcycle Meetup Date (bswartz)&lt;br /&gt;
# Deadlines for features (bswartz)&lt;br /&gt;
#* Feature proposal freeze vs Big Features&lt;br /&gt;
#* New drivers&lt;br /&gt;
# Data Copy Service network approach discussion (ganso)&lt;br /&gt;
#* https://drive.google.com/file/d/0B30HPZmaePCHMlAzcjJlYm5rRTA/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 12 Nov, 2015, 15:00 UTC'''&lt;br /&gt;
# Which method is better for Manila QoS(independent way or just use extra specs ) (zhongjun)&lt;br /&gt;
#* link:http://paste.openstack.org/show/477677/ &lt;br /&gt;
#*If use extra specs to config QoS, Does we first need add “QoS_support=true/false” in share_type. Does we need to add QoS_support flag in common capabilities&lt;br /&gt;
#**https://github.com/openstack/manila/blob/master/doc/source/devref/capabilities_and_extra_specs.rst)?&lt;br /&gt;
#** eg:  share_type: qos_support='&amp;lt;is&amp;gt; True' or '&amp;lt;is&amp;gt; False' &lt;br /&gt;
#**                            netapp:max_iops=100  or qos:netapp:max_iops=100 or qos:max_iops=100&lt;br /&gt;
#**        driver update: qos_support=true&lt;br /&gt;
#** An alternative could be to have the driver report a range&lt;br /&gt;
# Manila DR update (ameade)&lt;br /&gt;
#* Still no reviews on https://review.openstack.org/#/c/238572/&lt;br /&gt;
#* First-party driver implementation? Which driver, current generic or new solution? When do we need this implemented and who wants to do it?&lt;br /&gt;
#* Replication_change share state - This is the state of the share when any of it's replicas are being promoted. Is 'replication_change' good or is there a better phrase?&lt;br /&gt;
# Manila Driver minimum requirements document update (ganso)&lt;br /&gt;
# Manila Data Copy service name (bswartz)&lt;br /&gt;
#*https://review.openstack.org/#/c/244286/&lt;br /&gt;
# Upcoming change for Manila CI hooks (vponomaryov)&lt;br /&gt;
#*https://review.openstack.org/#/c/243233/&lt;br /&gt;
# Manilaclient enhancement to provide request_id when set http_log_debug is True. It will co-ordinate the request and its id, so it will be helpful to filter the log and the failed request. (Jay Xu)&lt;br /&gt;
#*http://paste.openstack.org/show/478675/&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 5 Nov, 2015, 15:00 UTC'''&lt;br /&gt;
# Decide on read-only access rules as a required feature&lt;br /&gt;
# Manila DR - Design/Code feedback (gouthamr) &lt;br /&gt;
#* [https://wiki.openstack.org/wiki/Manila/design/manila-mitaka-data-replication Design Document]&lt;br /&gt;
#* [https://review.openstack.org/#/c/238572/ Core Implementation on Gerrit]&lt;br /&gt;
#* [https://review.openstack.org/#/c/235448/ Client Implementation on Gerrit]&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 1 Oct, 2015, 15:00 UTC'''&lt;br /&gt;
# Liberty RC2 status&lt;br /&gt;
#* https://launchpad.net/manila/+milestone/liberty-rc2&lt;br /&gt;
#* https://review.openstack.org/#/q/project:openstack/manila+branch:stable/liberty,n,z&lt;br /&gt;
# Mitaka Design Summit&lt;br /&gt;
#* https://etherpad.openstack.org/p/manila-mitaka-summit-topics&lt;br /&gt;
# Vendor driver docs&lt;br /&gt;
#* https://github.com/openstack/manila/blob/master/doc/source/devref/share_back_ends_feature_support_mapping.rst&lt;br /&gt;
# Manila Client Nova Style Microversion Support (cfouts)&lt;br /&gt;
#* https://review.openstack.org/#/c/229142/&lt;br /&gt;
#* http://docs.openstack.org/developer/manila/devref/api_microversion_dev.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 24 Sep, 2015, 15:00 UTC'''&lt;br /&gt;
# 3rd-party CI status&lt;br /&gt;
#* http://ec2-54-67-102-119.us-west-1.compute.amazonaws.com:5000/?project=openstack/manila&amp;amp;user=&amp;amp;timeframe=72&amp;amp;start=&amp;amp;end=&amp;amp;page_size=500&lt;br /&gt;
#* http://ci-watch.tintri.com/project?project=manila&lt;br /&gt;
# Liberty RC status&lt;br /&gt;
# Support for QoS in Manila (zhongjun2)&lt;br /&gt;
#* https://blueprints.launchpad.net/manila/+spec/manila-support-qos&lt;br /&gt;
#* https://wiki.openstack.org/wiki/Manila/QoS&lt;br /&gt;
# Reminder for backend driver maintainers to update feature support table (toabctl)&lt;br /&gt;
#* http://docs.openstack.org/developer/manila/devref/share_back_ends_feature_support_mapping.html&lt;br /&gt;
# Regression when using NetApp - license issue with netapp_lib (toabctl)&lt;br /&gt;
#* https://bugs.launchpad.net/cinder/+bug/1499334&lt;br /&gt;
# Mitaka Design Summit&lt;br /&gt;
#* Propose topics - https://etherpad.openstack.org/p/manila-mitaka-summit-topics&lt;br /&gt;
# Vendor driver docs&lt;br /&gt;
# Open Discussion&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
http://eavesdrop.openstack.org/meetings/manila/&lt;/div&gt;</summary>
		<author><name>Clinton Knight</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Manila/design/manila-generic-groups&amp;diff=101075</id>
		<title>Manila/design/manila-generic-groups</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Manila/design/manila-generic-groups&amp;diff=101075"/>
				<updated>2016-01-13T14:18:09Z</updated>
		
		<summary type="html">&lt;p&gt;Clinton Knight: /* Share Group APIs */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Manila generic groups =&lt;br /&gt;
== Executive summary ==&lt;br /&gt;
Manila needs a grouping construct that, like shares, is a 1st-class atomic data type.  Our experience with CGs has demonstrated the complexity of adding a grouping capability, yet there are other use cases such as migration, replication, and backup in which some storage controllers could only offer such features on share groups.  CGs also highlighted the poor optics of an advanced feature with comparatively little potential for vendor support.  And adding new grouping constructs for each new feature is not technically feasible.  All of the above may be addressed by generic groups, which we think is a clean extension to the original architecture of Manila.&lt;br /&gt;
== An Intractable Matrix ==&lt;br /&gt;
Manila is at an exciting time in its development, where all the simple features are available and the community is focused on adding high-value features such as migration, replication, and consistency groups.  Experimental code is available for each of these, but little consideration has been given to the obvious need for these complex features to interact not only with each other but also with whatever additional features were added later.  And looking a little deeper, it is apparent that each of these has limitations that could be solved by a single architectural enhancement.&lt;br /&gt;
=== Consistency groups ===&lt;br /&gt;
Consistency groups (CGs) are the only construct in Manila that operates on a group of shares.   For some, a CG implies a guarantee of ordered writes by a storage controller, while for others a CG is a mechanism for taking consistent point-in-time snapshots of a set of shares.  A group with either attribute may have value by itself, but the CGs implementation doesn’t distinguish between them.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
CGs are a highly specialized construct with dedicated CLI commands, REST APIs, database tables, scheduler filters, and driver APIs.  None of these are reusable for anything else, and presently none of the rest of Manila has any awareness of CGs.  Even worse, despite all the complexity of the CG feature, only a small minority of storage backends can support them, so the code-to-value ratio is very low.  Finally, the limited availability of CGs ensures the user experience is inconsistent between clouds.&lt;br /&gt;
=== Replication ===&lt;br /&gt;
Replication is another high value feature, and the Manila implementation is arguably clean and flexible, but as constituted there is no core ability to replicate groups of shares.  It seems reasonable to implement the feature iteratively, beginning with replication of single shares.  However, there has been the tacit acknowledgement that some backends would not be able to replicate individual shares, even though those same backends could potentially replicate a group of shares if the group were constituted in a certain way.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Following the precedent established with CGs, one approach would be to introduce ‘replication groups’ whereby multiple shares could be replicated together.  But this would introduce yet another set of APIs, tables, etc. that are too specialized to use for anything else.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Another approach might be to define CGs as the grouping unit of replication, but this makes little sense because consistency groups (however we define them) and replication are distinct features that shouldn’t be artificially bundled for the sake of expediency of definition or implementation.&lt;br /&gt;
=== Migration ===&lt;br /&gt;
Just as some backends may only be able to replicate shares in groups, it follows that those backends may also need to migrate shares in groups.  And in the case of CGs, it doesn’t make sense to migrate CG members individually; the whole group must be moved, requiring the replication engine to be CG aware.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Consider the following reasonable use cases:&lt;br /&gt;
* Replicate a consistency group&lt;br /&gt;
* Snapshot a replication group&lt;br /&gt;
* Migrate a replication group&lt;br /&gt;
* Retype shares in a consistency group&lt;br /&gt;
* Retype shares in a replication group&lt;br /&gt;
* Backup a consistency group&lt;br /&gt;
* Backup a replication group&lt;br /&gt;
* Apply a common policy to a set of shares&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
On the current path, the support matrix has a dimension dedicated solely to features, so each feature must be coded to be interoperable with every other feature.  This quickly becomes a support and testing nightmare, and it becomes exponentially more complicated to add more features going forward.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Fundamentally, the problem is that we are adding features without an underlying architectural framework on which to hang them.  To escape the matrix, we must step back and rethink a few things.&lt;br /&gt;
&lt;br /&gt;
== A simple solution ==&lt;br /&gt;
So to arrive at a solution, let’s enumerate what we have:&lt;br /&gt;
* Primitive objects (shares) with supported operations controlled by share types that vary by backend&lt;br /&gt;
* A very specific group object (CGs) with limited support potential by backends&lt;br /&gt;
* A number of APIs (CGs, etc.) that many users can’t use at all and appear grafted into the project&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
And what would we prefer:&lt;br /&gt;
* A uniform API and user experience that varies as little as possible by backend&lt;br /&gt;
* A clean way to group shares so we can do CGs, multi-object replication, migration, etc.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
How do we get here?&lt;br /&gt;
* Universally available groups of primitive objects with supported operations that vary by backend&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
=== Idea #1: Introduce a generic Share Group object ===&lt;br /&gt;
Just as Manila has ‘shares’, it should also have ‘share groups’.  In its simplest form, unlike CGs, a share group should not guarantee any specialized operation.  Instead, it should merely constitute an atomic Manila data type on which nearly any Manila action is available.  For example, given a share group, the user should be able to select the group in the Manila UI and invoke features such as snapshot, clone, backup, migrate, replicate, retype, etc.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the general case, group actions are handled by the share manager layer (or potentially the common share driver superclass).  For example, invoking ‘snapshot’ on a group causes the share manager to take a snapshot of each group member individually.  The resulting group snapshot object may be used to create a new group, not unlike how CG snapshots were implemented.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There are numerous advantages to this approach.  Every driver, no matter how unsophisticated, can leverage the manageability goodness of groups.  The user experience is uniform, since groups are always available regardless of which backends are present and because nearly every Manila action available on shares is also available on groups.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Of course, feature-rich backends would like to add their secret sauce, whether it be CGs, group-based replication, or whatever else comes along that might be easier/cheaper/faster to do to groups of shares.  That brings us to related idea.&lt;br /&gt;
=== Idea #2: Introduce Share Group types ===&lt;br /&gt;
Just as Manila has ‘share types’, it should also have ‘share group types’.  Any driver that can perform a group operation in an advantaged way may report that as a group capability, such as:&lt;br /&gt;
* Ordered writes&lt;br /&gt;
* Consistent snapshots&lt;br /&gt;
* Group replication&lt;br /&gt;
* Group migration&lt;br /&gt;
* Group backup&lt;br /&gt;
* Group modification&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
As with share types, the cloud administrator predefines share group types that may contain extra specs corresponding to the group capabilities reported by the backends.  And when creating a group, the user specifies one or more share types as well as a group type, and the scheduler then creates the group on one of the backends that match the specified share and share group types.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anytime a group action, such as ‘snapshot’, comes into the share manager, the manager checks whether its driver offers an advantaged implementation of that operation.  If not, the manager handles the workflow itself as described above.  But if so, the manager routes the workflow to its driver for fulfillment.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The advantages of this approach should be obvious.  Development and testing are simplified because there isn’t a need to define and test a different set of group management APIs for each feature, or to test every combination of every feature.  Instead of becoming an N-by-N matrix of interacting features, Manila largely becomes an N-by-2 matrix of actions that may be invoked on either individual shares or share groups.  Users and admins are already familiar with share types, so introducing share group types would seem a natural and consistent evolution of the same foundational concept.  &lt;br /&gt;
&lt;br /&gt;
The matrix would look like:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Share action !! Share Group action&lt;br /&gt;
|-&lt;br /&gt;
| Create (volume type) || Create (volume types, group type)&lt;br /&gt;
|-&lt;br /&gt;
| Delete || Delete (group, optionally all members)&lt;br /&gt;
|-&lt;br /&gt;
| Snapshot || Snapshot (may or may not be a CG snapshot)&lt;br /&gt;
|-&lt;br /&gt;
| Create from snapshot / Clone || Create from group snapshot / Clone group&lt;br /&gt;
|-&lt;br /&gt;
| Replicate || Replicate&lt;br /&gt;
|-&lt;br /&gt;
| Backup || Backup&lt;br /&gt;
|-&lt;br /&gt;
| Retype || Retype&lt;br /&gt;
|-&lt;br /&gt;
| Migrate || Migrate&lt;br /&gt;
|-&lt;br /&gt;
| Extend / shrink || N/A&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Manila implementation plan ==&lt;br /&gt;
Implementing generic groups in Manila should be a straightforward series of steps:&lt;br /&gt;
# Implement generic groups.  Because we did CGs, we already know all parts of the codebase that must change to support any kind of group.  So the simplest approach is to modify the CG code to morph it into the generic groups feature.&lt;br /&gt;
# Add the share group type feature by duplicating and customizing the share type code.&lt;br /&gt;
# Enhance the scheduler to place groups according to share group types.  Like #1, this is already informed by the CG project.&lt;br /&gt;
# Implement group snapshots in the share manager to demonstrate group snapshots in any driver.&lt;br /&gt;
# Plumb group snapshots to a CG-capable driver to demonstrate CG functionality in the new framework.&lt;br /&gt;
# Update Tempest to cover all of the above.&lt;br /&gt;
# Update Manila client to change CGs to share groups.&lt;br /&gt;
# Enhance Manila client with share group types.&lt;br /&gt;
# Add share group support to Horizon.  We never built CG support into Horizon, so this is all-new work that now has much broader appeal and applicability.&lt;br /&gt;
# Add additional group actions over time (migrate, replicate, retype, clone, …).  At this point, new group capabilities become vertical slices that are simple to add incrementally.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Because we implemented CGs just recently as an experimental feature, we have the freedom to replace that code without deprecation or upgrade considerations.  Steps 1-8 would get Manila to parity with the CG feature added in Liberty, would require only a few person-weeks of effort, and would better position Manila for long-term evolution and supportability.&lt;br /&gt;
=== Implementation details ===&lt;br /&gt;
There are few things to note, several of which were already solved during the CG work.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Groups are first-class objects in Manila, and operations on groups are treated as atomic.  For example, a user will see a group snapshot but not the individual snapshots of group members.  To enable support by as many backends as possible, Manila will still maintain DB objects for both group and member snapshots, just as was done with CGs.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A few actions, such as extend &amp;amp; shrink, are inherently applicable only to individual shares.  One could theoretically apply extend to a group, increasing the size of each member, but that seems like an unlikely use case.  Any actions in this category must remain available to group members, although most actions such as clone or snapshot would be available only at the group level and not on its members.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A group is limited to a single backend.  Allowing groups that span backends is theoretically possible, but that would require fanout of operations from the API layer to multiple share managers across the asynchronous event bus, which would lead to complicated synchronization and state management for little operational benefit.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As was done with Manila CGs, a driver may optionally limit a group to either the confines of a pool or an entire backend.  It is known that pools are the unit of data motion (i.e. replication or migration) for some backends, so we think drivers need this flexibility.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We considered reusing share types for groups as well.  But share types include a set of public extra specs that may not map well to groups.  And by adding group types as a separate object, there can be little confusion about their purpose and use.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some have noted that extra specs tend to be treated as an AND operation, where all features must be available for a backend to be chosen.  It is conceivable that even if a backend can replicate a group or take consistent snapshots of a group, it might not be able to perform both operations on the same group.  But this problem already exists with share types and hasn’t been a serious issue.  Creating types is an admin-only operation and the burden remains on the admin to understand the capabilities of the backends in use and to create the share types and share group types appropriately.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that this proposal explicitly does not address pool or backend replication, which is fundamentally different.  Actions on shares or share groups are intended for tenants, whereas a pool or backend can contain data from multiple tenants.  So pool or backend operations, while serving potentially valuable use cases, are inherently admin-only workflows that would be designed and exercised differently should Manila support them.&lt;br /&gt;
&lt;br /&gt;
=== Share Group APIs ===&lt;br /&gt;
&lt;br /&gt;
It is possible to design a REST API that seamlessly handles both shares and share groups with little duplication of APIs.  But at this point in Manila's development, it is arguably too late to radically redesign the API.&lt;br /&gt;
&lt;br /&gt;
It may be possible to overload some of the existing APIs to handle both shares and share groups.  For example, POST /shares/{id}/action could accept the ID of a share or share group and just do the right thing.  But other APIs, such as GET /shares are less practical to overload, since a single endpoint would be returning objects of different types.&lt;br /&gt;
&lt;br /&gt;
It seems better to merely duplicate a few APIs with group versions as needed.  For example:&lt;br /&gt;
* POST /shares --&amp;gt; POST /groups&lt;br /&gt;
* POST /shares/{share_id}/action --&amp;gt; POST /groups/{group_id}/action&lt;br /&gt;
* POST /snapshots --&amp;gt; POST /group_snapshots&lt;br /&gt;
&lt;br /&gt;
== Acknowledgments ==&lt;br /&gt;
Most of the analysis and recommendations contained herein apply equally well to Cinder, which is arguably much further down the path of crippling complexity.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This proposal was developed by cknight with input from Manila community members bswartz, ameade, tbarron, and cfouts.  The Cinder conversations about grouping, as well as the groundbreaking contributions of CGs to Cinder, all of which inspired this proposal, were led by xyang.&lt;/div&gt;</summary>
		<author><name>Clinton Knight</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Manila/design/manila-generic-groups&amp;diff=101074</id>
		<title>Manila/design/manila-generic-groups</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Manila/design/manila-generic-groups&amp;diff=101074"/>
				<updated>2016-01-13T14:17:14Z</updated>
		
		<summary type="html">&lt;p&gt;Clinton Knight: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Manila generic groups =&lt;br /&gt;
== Executive summary ==&lt;br /&gt;
Manila needs a grouping construct that, like shares, is a 1st-class atomic data type.  Our experience with CGs has demonstrated the complexity of adding a grouping capability, yet there are other use cases such as migration, replication, and backup in which some storage controllers could only offer such features on share groups.  CGs also highlighted the poor optics of an advanced feature with comparatively little potential for vendor support.  And adding new grouping constructs for each new feature is not technically feasible.  All of the above may be addressed by generic groups, which we think is a clean extension to the original architecture of Manila.&lt;br /&gt;
== An Intractable Matrix ==&lt;br /&gt;
Manila is at an exciting time in its development, where all the simple features are available and the community is focused on adding high-value features such as migration, replication, and consistency groups.  Experimental code is available for each of these, but little consideration has been given to the obvious need for these complex features to interact not only with each other but also with whatever additional features were added later.  And looking a little deeper, it is apparent that each of these has limitations that could be solved by a single architectural enhancement.&lt;br /&gt;
=== Consistency groups ===&lt;br /&gt;
Consistency groups (CGs) are the only construct in Manila that operates on a group of shares.   For some, a CG implies a guarantee of ordered writes by a storage controller, while for others a CG is a mechanism for taking consistent point-in-time snapshots of a set of shares.  A group with either attribute may have value by itself, but the CGs implementation doesn’t distinguish between them.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
CGs are a highly specialized construct with dedicated CLI commands, REST APIs, database tables, scheduler filters, and driver APIs.  None of these are reusable for anything else, and presently none of the rest of Manila has any awareness of CGs.  Even worse, despite all the complexity of the CG feature, only a small minority of storage backends can support them, so the code-to-value ratio is very low.  Finally, the limited availability of CGs ensures the user experience is inconsistent between clouds.&lt;br /&gt;
=== Replication ===&lt;br /&gt;
Replication is another high value feature, and the Manila implementation is arguably clean and flexible, but as constituted there is no core ability to replicate groups of shares.  It seems reasonable to implement the feature iteratively, beginning with replication of single shares.  However, there has been the tacit acknowledgement that some backends would not be able to replicate individual shares, even though those same backends could potentially replicate a group of shares if the group were constituted in a certain way.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Following the precedent established with CGs, one approach would be to introduce ‘replication groups’ whereby multiple shares could be replicated together.  But this would introduce yet another set of APIs, tables, etc. that are too specialized to use for anything else.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Another approach might be to define CGs as the grouping unit of replication, but this makes little sense because consistency groups (however we define them) and replication are distinct features that shouldn’t be artificially bundled for the sake of expediency of definition or implementation.&lt;br /&gt;
=== Migration ===&lt;br /&gt;
Just as some backends may only be able to replicate shares in groups, it follows that those backends may also need to migrate shares in groups.  And in the case of CGs, it doesn’t make sense to migrate CG members individually; the whole group must be moved, requiring the replication engine to be CG aware.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Consider the following reasonable use cases:&lt;br /&gt;
* Replicate a consistency group&lt;br /&gt;
* Snapshot a replication group&lt;br /&gt;
* Migrate a replication group&lt;br /&gt;
* Retype shares in a consistency group&lt;br /&gt;
* Retype shares in a replication group&lt;br /&gt;
* Backup a consistency group&lt;br /&gt;
* Backup a replication group&lt;br /&gt;
* Apply a common policy to a set of shares&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
On the current path, the support matrix has a dimension dedicated solely to features, so each feature must be coded to be interoperable with every other feature.  This quickly becomes a support and testing nightmare, and it becomes exponentially more complicated to add more features going forward.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Fundamentally, the problem is that we are adding features without an underlying architectural framework on which to hang them.  To escape the matrix, we must step back and rethink a few things.&lt;br /&gt;
&lt;br /&gt;
== A simple solution ==&lt;br /&gt;
So to arrive at a solution, let’s enumerate what we have:&lt;br /&gt;
* Primitive objects (shares) with supported operations controlled by share types that vary by backend&lt;br /&gt;
* A very specific group object (CGs) with limited support potential by backends&lt;br /&gt;
* A number of APIs (CGs, etc.) that many users can’t use at all and appear grafted into the project&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
And what would we prefer:&lt;br /&gt;
* A uniform API and user experience that varies as little as possible by backend&lt;br /&gt;
* A clean way to group shares so we can do CGs, multi-object replication, migration, etc.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
How do we get here?&lt;br /&gt;
* Universally available groups of primitive objects with supported operations that vary by backend&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
=== Idea #1: Introduce a generic Share Group object ===&lt;br /&gt;
Just as Manila has ‘shares’, it should also have ‘share groups’.  In its simplest form, unlike CGs, a share group should not guarantee any specialized operation.  Instead, it should merely constitute an atomic Manila data type on which nearly any Manila action is available.  For example, given a share group, the user should be able to select the group in the Manila UI and invoke features such as snapshot, clone, backup, migrate, replicate, retype, etc.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the general case, group actions are handled by the share manager layer (or potentially the common share driver superclass).  For example, invoking ‘snapshot’ on a group causes the share manager to take a snapshot of each group member individually.  The resulting group snapshot object may be used to create a new group, not unlike how CG snapshots were implemented.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There are numerous advantages to this approach.  Every driver, no matter how unsophisticated, can leverage the manageability goodness of groups.  The user experience is uniform, since groups are always available regardless of which backends are present and because nearly every Manila action available on shares is also available on groups.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Of course, feature-rich backends would like to add their secret sauce, whether it be CGs, group-based replication, or whatever else comes along that might be easier/cheaper/faster to do to groups of shares.  That brings us to related idea.&lt;br /&gt;
=== Idea #2: Introduce Share Group types ===&lt;br /&gt;
Just as Manila has ‘share types’, it should also have ‘share group types’.  Any driver that can perform a group operation in an advantaged way may report that as a group capability, such as:&lt;br /&gt;
* Ordered writes&lt;br /&gt;
* Consistent snapshots&lt;br /&gt;
* Group replication&lt;br /&gt;
* Group migration&lt;br /&gt;
* Group backup&lt;br /&gt;
* Group modification&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
As with share types, the cloud administrator predefines share group types that may contain extra specs corresponding to the group capabilities reported by the backends.  And when creating a group, the user specifies one or more share types as well as a group type, and the scheduler then creates the group on one of the backends that match the specified share and share group types.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anytime a group action, such as ‘snapshot’, comes into the share manager, the manager checks whether its driver offers an advantaged implementation of that operation.  If not, the manager handles the workflow itself as described above.  But if so, the manager routes the workflow to its driver for fulfillment.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The advantages of this approach should be obvious.  Development and testing are simplified because there isn’t a need to define and test a different set of group management APIs for each feature, or to test every combination of every feature.  Instead of becoming an N-by-N matrix of interacting features, Manila largely becomes an N-by-2 matrix of actions that may be invoked on either individual shares or share groups.  Users and admins are already familiar with share types, so introducing share group types would seem a natural and consistent evolution of the same foundational concept.  &lt;br /&gt;
&lt;br /&gt;
The matrix would look like:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Share action !! Share Group action&lt;br /&gt;
|-&lt;br /&gt;
| Create (volume type) || Create (volume types, group type)&lt;br /&gt;
|-&lt;br /&gt;
| Delete || Delete (group, optionally all members)&lt;br /&gt;
|-&lt;br /&gt;
| Snapshot || Snapshot (may or may not be a CG snapshot)&lt;br /&gt;
|-&lt;br /&gt;
| Create from snapshot / Clone || Create from group snapshot / Clone group&lt;br /&gt;
|-&lt;br /&gt;
| Replicate || Replicate&lt;br /&gt;
|-&lt;br /&gt;
| Backup || Backup&lt;br /&gt;
|-&lt;br /&gt;
| Retype || Retype&lt;br /&gt;
|-&lt;br /&gt;
| Migrate || Migrate&lt;br /&gt;
|-&lt;br /&gt;
| Extend / shrink || N/A&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Manila implementation plan ==&lt;br /&gt;
Implementing generic groups in Manila should be a straightforward series of steps:&lt;br /&gt;
# Implement generic groups.  Because we did CGs, we already know all parts of the codebase that must change to support any kind of group.  So the simplest approach is to modify the CG code to morph it into the generic groups feature.&lt;br /&gt;
# Add the share group type feature by duplicating and customizing the share type code.&lt;br /&gt;
# Enhance the scheduler to place groups according to share group types.  Like #1, this is already informed by the CG project.&lt;br /&gt;
# Implement group snapshots in the share manager to demonstrate group snapshots in any driver.&lt;br /&gt;
# Plumb group snapshots to a CG-capable driver to demonstrate CG functionality in the new framework.&lt;br /&gt;
# Update Tempest to cover all of the above.&lt;br /&gt;
# Update Manila client to change CGs to share groups.&lt;br /&gt;
# Enhance Manila client with share group types.&lt;br /&gt;
# Add share group support to Horizon.  We never built CG support into Horizon, so this is all-new work that now has much broader appeal and applicability.&lt;br /&gt;
# Add additional group actions over time (migrate, replicate, retype, clone, …).  At this point, new group capabilities become vertical slices that are simple to add incrementally.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Because we implemented CGs just recently as an experimental feature, we have the freedom to replace that code without deprecation or upgrade considerations.  Steps 1-8 would get Manila to parity with the CG feature added in Liberty, would require only a few person-weeks of effort, and would better position Manila for long-term evolution and supportability.&lt;br /&gt;
=== Implementation details ===&lt;br /&gt;
There are few things to note, several of which were already solved during the CG work.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Groups are first-class objects in Manila, and operations on groups are treated as atomic.  For example, a user will see a group snapshot but not the individual snapshots of group members.  To enable support by as many backends as possible, Manila will still maintain DB objects for both group and member snapshots, just as was done with CGs.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A few actions, such as extend &amp;amp; shrink, are inherently applicable only to individual shares.  One could theoretically apply extend to a group, increasing the size of each member, but that seems like an unlikely use case.  Any actions in this category must remain available to group members, although most actions such as clone or snapshot would be available only at the group level and not on its members.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A group is limited to a single backend.  Allowing groups that span backends is theoretically possible, but that would require fanout of operations from the API layer to multiple share managers across the asynchronous event bus, which would lead to complicated synchronization and state management for little operational benefit.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As was done with Manila CGs, a driver may optionally limit a group to either the confines of a pool or an entire backend.  It is known that pools are the unit of data motion (i.e. replication or migration) for some backends, so we think drivers need this flexibility.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We considered reusing share types for groups as well.  But share types include a set of public extra specs that may not map well to groups.  And by adding group types as a separate object, there can be little confusion about their purpose and use.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some have noted that extra specs tend to be treated as an AND operation, where all features must be available for a backend to be chosen.  It is conceivable that even if a backend can replicate a group or take consistent snapshots of a group, it might not be able to perform both operations on the same group.  But this problem already exists with share types and hasn’t been a serious issue.  Creating types is an admin-only operation and the burden remains on the admin to understand the capabilities of the backends in use and to create the share types and share group types appropriately.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that this proposal explicitly does not address pool or backend replication, which is fundamentally different.  Actions on shares or share groups are intended for tenants, whereas a pool or backend can contain data from multiple tenants.  So pool or backend operations, while serving potentially valuable use cases, are inherently admin-only workflows that would be designed and exercised differently should Manila support them.&lt;br /&gt;
&lt;br /&gt;
=== Share Group APIs ===&lt;br /&gt;
&lt;br /&gt;
It is possible to design a REST API that seamlessly handles both shares and share groups with little duplication of APIs.  But at this point in Manila's development, it is arguably too late to radically redesign the API.&lt;br /&gt;
&lt;br /&gt;
I may be possible to overload some of the existing APIs to handle both shares and share groups.  For example, POST /shares/{id}/action could accept the ID of a share or share group and just do the right thing.  But other APIs, such as GET /shares are less practical to overload, since a single endpoint would be returning objects of different types.&lt;br /&gt;
&lt;br /&gt;
It seems better to merely duplicate a few APIs with group versions as needed.  For example:&lt;br /&gt;
* POST /shares --&amp;gt; POST /groups&lt;br /&gt;
* POST /shares/{share_id}/action --&amp;gt; POST /groups/{group_id}/action&lt;br /&gt;
* POST /snapshots --&amp;gt; POST /group_snapshots&lt;br /&gt;
&lt;br /&gt;
== Acknowledgments ==&lt;br /&gt;
Most of the analysis and recommendations contained herein apply equally well to Cinder, which is arguably much further down the path of crippling complexity.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This proposal was developed by cknight with input from Manila community members bswartz, ameade, tbarron, and cfouts.  The Cinder conversations about grouping, as well as the groundbreaking contributions of CGs to Cinder, all of which inspired this proposal, were led by xyang.&lt;/div&gt;</summary>
		<author><name>Clinton Knight</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Manila/design/manila-generic-groups&amp;diff=99853</id>
		<title>Manila/design/manila-generic-groups</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Manila/design/manila-generic-groups&amp;diff=99853"/>
				<updated>2015-12-16T21:37:19Z</updated>
		
		<summary type="html">&lt;p&gt;Clinton Knight: /* Acknowledgments */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Manila generic groups =&lt;br /&gt;
== Executive summary ==&lt;br /&gt;
Manila needs a grouping construct that, like shares, is a 1st-class atomic data type.  Our experience with CGs has demonstrated the complexity of adding a grouping capability, yet there are other use cases such as migration, replication, and backup in which some storage controllers could only offer such features on share groups.  CGs also highlighted the poor optics of an advanced feature with comparatively little potential for vendor support.  And adding new grouping constructs for each new feature is not technically feasible.  All of the above may be addressed by generic groups, which we think is a clean extension to the original architecture of Manila.&lt;br /&gt;
== An Intractable Matrix ==&lt;br /&gt;
Manila is at an exciting time in its development, where all the simple features are available and the community is focused on adding high-value features such as migration, replication, and consistency groups.  Experimental code is available for each of these, but little consideration has been given to the obvious need for these complex features to interact not only with each other but also with whatever additional features were added later.  And looking a little deeper, it is apparent that each of these has limitations that could be solved by a single architectural enhancement.&lt;br /&gt;
=== Consistency groups ===&lt;br /&gt;
Consistency groups (CGs) are the only construct in Manila that operates on a group of shares.   For some, a CG implies a guarantee of ordered writes by a storage controller, while for others a CG is a mechanism for taking consistent point-in-time snapshots of a set of shares.  A group with either attribute may have value by itself, but the CGs implementation doesn’t distinguish between them.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
CGs are a highly specialized construct with dedicated CLI commands, REST APIs, database tables, scheduler filters, and driver APIs.  None of these are reusable for anything else, and presently none of the rest of Manila has any awareness of CGs.  Even worse, despite all the complexity of the CG feature, only a small minority of storage backends can support them, so the code-to-value ratio is very low.  Finally, the limited availability of CGs ensures the user experience is inconsistent between clouds.&lt;br /&gt;
=== Replication ===&lt;br /&gt;
Replication is another high value feature, and the Manila implementation is arguably clean and flexible, but as constituted there is no core ability to replicate groups of shares.  It seems reasonable to implement the feature iteratively, beginning with replication of single shares.  However, there has been the tacit acknowledgement that some backends would not be able to replicate individual shares, even though those same backends could potentially replicate a group of shares if the group were constituted in a certain way.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Following the precedent established with CGs, one approach would be to introduce ‘replication groups’ whereby multiple shares could be replicated together.  But this would introduce yet another set of APIs, tables, etc. that are too specialized to use for anything else.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Another approach might be to define CGs as the grouping unit of replication, but this makes little sense because consistency groups (however we define them) and replication are distinct features that shouldn’t be artificially bundled for the sake of expediency of definition or implementation.&lt;br /&gt;
=== Migration ===&lt;br /&gt;
Just as some backends may only be able to replicate shares in groups, it follows that those backends may also need to migrate shares in groups.  And in the case of CGs, it doesn’t make sense to migrate CG members individually; the whole group must be moved, requiring the replication engine to be CG aware.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Consider the following reasonable use cases:&lt;br /&gt;
* Replicate a consistency group&lt;br /&gt;
* Snapshot a replication group&lt;br /&gt;
* Migrate a replication group&lt;br /&gt;
* Retype shares in a consistency group&lt;br /&gt;
* Retype shares in a replication group&lt;br /&gt;
* Backup a consistency group&lt;br /&gt;
* Backup a replication group&lt;br /&gt;
* Apply a common policy to a set of shares&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
On the current path, the support matrix has a dimension dedicated solely to features, so each feature must be coded to be interoperable with every other feature.  This quickly becomes a support and testing nightmare, and it becomes exponentially more complicated to add more features going forward.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Fundamentally, the problem is that we are adding features without an underlying architectural framework on which to hang them.  To escape the matrix, we must step back and rethink a few things.&lt;br /&gt;
&lt;br /&gt;
== A simple solution ==&lt;br /&gt;
So to arrive at a solution, let’s enumerate what we have:&lt;br /&gt;
* Primitive objects (shares) with supported operations controlled by share types that vary by backend&lt;br /&gt;
* A very specific group object (CGs) with limited support potential by backends&lt;br /&gt;
* A number of APIs (CGs, etc.) that many users can’t use at all and appear grafted into the project&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
And what would we prefer:&lt;br /&gt;
* A uniform API and user experience that varies as little as possible by backend&lt;br /&gt;
* A clean way to group shares so we can do CGs, multi-object replication, migration, etc.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
How do we get here?&lt;br /&gt;
* Universally available groups of primitive objects with supported operations that vary by backend&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
=== Idea #1: Introduce a generic Share Group object ===&lt;br /&gt;
Just as Manila has ‘shares’, it should also have ‘share groups’.  In its simplest form, unlike CGs, a share group should not guarantee any specialized operation.  Instead, it should merely constitute an atomic Manila data type on which nearly any Manila action is available.  For example, given a share group, the user should be able to select the group in the Manila UI and invoke features such as snapshot, clone, backup, migrate, replicate, retype, etc.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the general case, group actions are handled by the share manager layer (or potentially the common share driver superclass).  For example, invoking ‘snapshot’ on a group causes the share manager to take a snapshot of each group member individually.  The resulting group snapshot object may be used to create a new group, not unlike how CG snapshots were implemented.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There are numerous advantages to this approach.  Every driver, no matter how unsophisticated, can leverage the manageability goodness of groups.  The user experience is uniform, since groups are always available regardless of which backends are present and because nearly every Manila action available on shares is also available on groups.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Of course, feature-rich backends would like to add their secret sauce, whether it be CGs, group-based replication, or whatever else comes along that might be easier/cheaper/faster to do to groups of shares.  That brings us to related idea.&lt;br /&gt;
=== Idea #2: Introduce Share Group types ===&lt;br /&gt;
Just as Manila has ‘share types’, it should also have ‘share group types’.  Any driver that can perform a group operation in an advantaged way may report that as a group capability, such as:&lt;br /&gt;
* Ordered writes&lt;br /&gt;
* Consistent snapshots&lt;br /&gt;
* Group replication&lt;br /&gt;
* Group migration&lt;br /&gt;
* Group backup&lt;br /&gt;
* Group modification&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
As with share types, the cloud administrator predefines share group types that may contain extra specs corresponding to the group capabilities reported by the backends.  And when creating a group, the user specifies one or more share types as well as a group type, and the scheduler then creates the group on one of the backends that match the specified share and share group types.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anytime a group action, such as ‘snapshot’, comes into the share manager, the manager checks whether its driver offers an advantaged implementation of that operation.  If not, the manager handles the workflow itself as described above.  But if so, the manager routes the workflow to its driver for fulfillment.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The advantages of this approach should be obvious.  Development and testing are simplified because there isn’t a need to define and test a different set of group management APIs for each feature, or to test every combination of every feature.  Instead of becoming an N-by-N matrix of interacting features, Manila largely becomes an N-by-2 matrix of actions that may be invoked on either individual shares or share groups.  Users and admins are already familiar with share types, so introducing share group types would seem a natural and consistent evolution of the same foundational concept.  &lt;br /&gt;
&lt;br /&gt;
The matrix would look like:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Share action !! Share Group action&lt;br /&gt;
|-&lt;br /&gt;
| Create (volume type) || Create (volume types, group type)&lt;br /&gt;
|-&lt;br /&gt;
| Delete || Delete (group, optionally all members)&lt;br /&gt;
|-&lt;br /&gt;
| Snapshot || Snapshot (may or may not be a CG snapshot)&lt;br /&gt;
|-&lt;br /&gt;
| Create from snapshot / Clone || Create from group snapshot / Clone group&lt;br /&gt;
|-&lt;br /&gt;
| Replicate || Replicate&lt;br /&gt;
|-&lt;br /&gt;
| Backup || Backup&lt;br /&gt;
|-&lt;br /&gt;
| Retype || Retype&lt;br /&gt;
|-&lt;br /&gt;
| Migrate || Migrate&lt;br /&gt;
|-&lt;br /&gt;
| Extend / shrink || N/A&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Manila implementation plan ==&lt;br /&gt;
Implementing generic groups in Manila should be a straightforward series of steps:&lt;br /&gt;
# Implement generic groups.  Because we did CGs, we already know all parts of the codebase that must change to support any kind of group.  So the simplest approach is to modify the CG code to morph it into the generic groups feature.&lt;br /&gt;
# Add the share group type feature by duplicating and customizing the share type code.&lt;br /&gt;
# Enhance the scheduler to place groups according to share group types.  Like #1, this is already informed by the CG project.&lt;br /&gt;
# Implement group snapshots in the share manager to demonstrate group snapshots in any driver.&lt;br /&gt;
# Plumb group snapshots to a CG-capable driver to demonstrate CG functionality in the new framework.&lt;br /&gt;
# Update Tempest to cover all of the above.&lt;br /&gt;
# Update Manila client to change CGs to share groups.&lt;br /&gt;
# Enhance Manila client with share group types.&lt;br /&gt;
# Add share group support to Horizon.  We never built CG support into Horizon, so this is all-new work that now has much broader appeal and applicability.&lt;br /&gt;
# Add additional group actions over time (migrate, replicate, retype, clone, …).  At this point, new group capabilities become vertical slices that are simple to add incrementally.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Because we implemented CGs just recently as an experimental feature, we have the freedom to replace that code without deprecation or upgrade considerations.  Steps 1-8 would get Manila to parity with the CG feature added in Liberty, would require only a few person-weeks of effort, and would better position Manila for long-term evolution and supportability.&lt;br /&gt;
=== Implementation details ===&lt;br /&gt;
There are few things to note, several of which were already solved during the CG work.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Groups are first-class objects in Manila, and operations on groups are treated as atomic.  For example, a user will see a group snapshot but not the individual snapshots of group members.  To enable support by as many backends as possible, Manila will still maintain DB objects for both group and member snapshots, just as was done with CGs.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A few actions, such as extend &amp;amp; shrink, are inherently applicable only to individual shares.  One could theoretically apply extend to a group, increasing the size of each member, but that seems like an unlikely use case.  Any actions in this category must remain available to group members, although most actions such as clone or snapshot would be available only at the group level and not on its members.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A group is limited to a single backend.  Allowing groups that span backends is theoretically possible, but that would require fanout of operations from the API layer to multiple share managers across the asynchronous event bus, which would lead to complicated synchronization and state management for little operational benefit.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As was done with Manila CGs, a driver may optionally limit a group to either the confines of a pool or an entire backend.  It is known that pools are the unit of data motion (i.e. replication or migration) for some backends, so we think drivers need this flexibility.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We considered reusing share types for groups as well.  But share types include a set of public extra specs that may not map well to groups.  And by adding group types as a separate object, there can be little confusion about their purpose and use.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some have noted that extra specs tend to be treated as an AND operation, where all features must be available for a backend to be chosen.  It is conceivable that even if a backend can replicate a group or take consistent snapshots of a group, it might not be able to perform both operations on the same group.  But this problem already exists with share types and hasn’t been a serious issue.  Creating types is an admin-only operation and the burden remains on the admin to understand the capabilities of the backends in use and to create the share types and share group types appropriately.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that this proposal explicitly does not address pool or backend replication, which is fundamentally different.  Actions on shares or share groups are intended for tenants, whereas a pool or backend can contain data from multiple tenants.  So pool or backend operations, while serving potentially valuable use cases, are inherently admin-only workflows that would be designed and exercised differently should Manila support them.&lt;br /&gt;
&lt;br /&gt;
== Acknowledgments ==&lt;br /&gt;
Most of the analysis and recommendations contained herein apply equally well to Cinder, which is arguably much further down the path of crippling complexity.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This proposal was developed by cknight with input from Manila community members bswartz, ameade, tbarron, and cfouts.  The Cinder conversations about grouping, as well as the groundbreaking contributions of CGs to Cinder, all of which inspired this proposal, were led by xyang.&lt;/div&gt;</summary>
		<author><name>Clinton Knight</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Manila/design/manila-generic-groups&amp;diff=99852</id>
		<title>Manila/design/manila-generic-groups</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Manila/design/manila-generic-groups&amp;diff=99852"/>
				<updated>2015-12-16T21:36:15Z</updated>
		
		<summary type="html">&lt;p&gt;Clinton Knight: /* Acknowledgments */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Manila generic groups =&lt;br /&gt;
== Executive summary ==&lt;br /&gt;
Manila needs a grouping construct that, like shares, is a 1st-class atomic data type.  Our experience with CGs has demonstrated the complexity of adding a grouping capability, yet there are other use cases such as migration, replication, and backup in which some storage controllers could only offer such features on share groups.  CGs also highlighted the poor optics of an advanced feature with comparatively little potential for vendor support.  And adding new grouping constructs for each new feature is not technically feasible.  All of the above may be addressed by generic groups, which we think is a clean extension to the original architecture of Manila.&lt;br /&gt;
== An Intractable Matrix ==&lt;br /&gt;
Manila is at an exciting time in its development, where all the simple features are available and the community is focused on adding high-value features such as migration, replication, and consistency groups.  Experimental code is available for each of these, but little consideration has been given to the obvious need for these complex features to interact not only with each other but also with whatever additional features were added later.  And looking a little deeper, it is apparent that each of these has limitations that could be solved by a single architectural enhancement.&lt;br /&gt;
=== Consistency groups ===&lt;br /&gt;
Consistency groups (CGs) are the only construct in Manila that operates on a group of shares.   For some, a CG implies a guarantee of ordered writes by a storage controller, while for others a CG is a mechanism for taking consistent point-in-time snapshots of a set of shares.  A group with either attribute may have value by itself, but the CGs implementation doesn’t distinguish between them.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
CGs are a highly specialized construct with dedicated CLI commands, REST APIs, database tables, scheduler filters, and driver APIs.  None of these are reusable for anything else, and presently none of the rest of Manila has any awareness of CGs.  Even worse, despite all the complexity of the CG feature, only a small minority of storage backends can support them, so the code-to-value ratio is very low.  Finally, the limited availability of CGs ensures the user experience is inconsistent between clouds.&lt;br /&gt;
=== Replication ===&lt;br /&gt;
Replication is another high value feature, and the Manila implementation is arguably clean and flexible, but as constituted there is no core ability to replicate groups of shares.  It seems reasonable to implement the feature iteratively, beginning with replication of single shares.  However, there has been the tacit acknowledgement that some backends would not be able to replicate individual shares, even though those same backends could potentially replicate a group of shares if the group were constituted in a certain way.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Following the precedent established with CGs, one approach would be to introduce ‘replication groups’ whereby multiple shares could be replicated together.  But this would introduce yet another set of APIs, tables, etc. that are too specialized to use for anything else.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Another approach might be to define CGs as the grouping unit of replication, but this makes little sense because consistency groups (however we define them) and replication are distinct features that shouldn’t be artificially bundled for the sake of expediency of definition or implementation.&lt;br /&gt;
=== Migration ===&lt;br /&gt;
Just as some backends may only be able to replicate shares in groups, it follows that those backends may also need to migrate shares in groups.  And in the case of CGs, it doesn’t make sense to migrate CG members individually; the whole group must be moved, requiring the replication engine to be CG aware.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Consider the following reasonable use cases:&lt;br /&gt;
* Replicate a consistency group&lt;br /&gt;
* Snapshot a replication group&lt;br /&gt;
* Migrate a replication group&lt;br /&gt;
* Retype shares in a consistency group&lt;br /&gt;
* Retype shares in a replication group&lt;br /&gt;
* Backup a consistency group&lt;br /&gt;
* Backup a replication group&lt;br /&gt;
* Apply a common policy to a set of shares&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
On the current path, the support matrix has a dimension dedicated solely to features, so each feature must be coded to be interoperable with every other feature.  This quickly becomes a support and testing nightmare, and it becomes exponentially more complicated to add more features going forward.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Fundamentally, the problem is that we are adding features without an underlying architectural framework on which to hang them.  To escape the matrix, we must step back and rethink a few things.&lt;br /&gt;
&lt;br /&gt;
== A simple solution ==&lt;br /&gt;
So to arrive at a solution, let’s enumerate what we have:&lt;br /&gt;
* Primitive objects (shares) with supported operations controlled by share types that vary by backend&lt;br /&gt;
* A very specific group object (CGs) with limited support potential by backends&lt;br /&gt;
* A number of APIs (CGs, etc.) that many users can’t use at all and appear grafted into the project&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
And what would we prefer:&lt;br /&gt;
* A uniform API and user experience that varies as little as possible by backend&lt;br /&gt;
* A clean way to group shares so we can do CGs, multi-object replication, migration, etc.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
How do we get here?&lt;br /&gt;
* Universally available groups of primitive objects with supported operations that vary by backend&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
=== Idea #1: Introduce a generic Share Group object ===&lt;br /&gt;
Just as Manila has ‘shares’, it should also have ‘share groups’.  In its simplest form, unlike CGs, a share group should not guarantee any specialized operation.  Instead, it should merely constitute an atomic Manila data type on which nearly any Manila action is available.  For example, given a share group, the user should be able to select the group in the Manila UI and invoke features such as snapshot, clone, backup, migrate, replicate, retype, etc.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the general case, group actions are handled by the share manager layer (or potentially the common share driver superclass).  For example, invoking ‘snapshot’ on a group causes the share manager to take a snapshot of each group member individually.  The resulting group snapshot object may be used to create a new group, not unlike how CG snapshots were implemented.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There are numerous advantages to this approach.  Every driver, no matter how unsophisticated, can leverage the manageability goodness of groups.  The user experience is uniform, since groups are always available regardless of which backends are present and because nearly every Manila action available on shares is also available on groups.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Of course, feature-rich backends would like to add their secret sauce, whether it be CGs, group-based replication, or whatever else comes along that might be easier/cheaper/faster to do to groups of shares.  That brings us to related idea.&lt;br /&gt;
=== Idea #2: Introduce Share Group types ===&lt;br /&gt;
Just as Manila has ‘share types’, it should also have ‘share group types’.  Any driver that can perform a group operation in an advantaged way may report that as a group capability, such as:&lt;br /&gt;
* Ordered writes&lt;br /&gt;
* Consistent snapshots&lt;br /&gt;
* Group replication&lt;br /&gt;
* Group migration&lt;br /&gt;
* Group backup&lt;br /&gt;
* Group modification&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
As with share types, the cloud administrator predefines share group types that may contain extra specs corresponding to the group capabilities reported by the backends.  And when creating a group, the user specifies one or more share types as well as a group type, and the scheduler then creates the group on one of the backends that match the specified share and share group types.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anytime a group action, such as ‘snapshot’, comes into the share manager, the manager checks whether its driver offers an advantaged implementation of that operation.  If not, the manager handles the workflow itself as described above.  But if so, the manager routes the workflow to its driver for fulfillment.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The advantages of this approach should be obvious.  Development and testing are simplified because there isn’t a need to define and test a different set of group management APIs for each feature, or to test every combination of every feature.  Instead of becoming an N-by-N matrix of interacting features, Manila largely becomes an N-by-2 matrix of actions that may be invoked on either individual shares or share groups.  Users and admins are already familiar with share types, so introducing share group types would seem a natural and consistent evolution of the same foundational concept.  &lt;br /&gt;
&lt;br /&gt;
The matrix would look like:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Share action !! Share Group action&lt;br /&gt;
|-&lt;br /&gt;
| Create (volume type) || Create (volume types, group type)&lt;br /&gt;
|-&lt;br /&gt;
| Delete || Delete (group, optionally all members)&lt;br /&gt;
|-&lt;br /&gt;
| Snapshot || Snapshot (may or may not be a CG snapshot)&lt;br /&gt;
|-&lt;br /&gt;
| Create from snapshot / Clone || Create from group snapshot / Clone group&lt;br /&gt;
|-&lt;br /&gt;
| Replicate || Replicate&lt;br /&gt;
|-&lt;br /&gt;
| Backup || Backup&lt;br /&gt;
|-&lt;br /&gt;
| Retype || Retype&lt;br /&gt;
|-&lt;br /&gt;
| Migrate || Migrate&lt;br /&gt;
|-&lt;br /&gt;
| Extend / shrink || N/A&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Manila implementation plan ==&lt;br /&gt;
Implementing generic groups in Manila should be a straightforward series of steps:&lt;br /&gt;
# Implement generic groups.  Because we did CGs, we already know all parts of the codebase that must change to support any kind of group.  So the simplest approach is to modify the CG code to morph it into the generic groups feature.&lt;br /&gt;
# Add the share group type feature by duplicating and customizing the share type code.&lt;br /&gt;
# Enhance the scheduler to place groups according to share group types.  Like #1, this is already informed by the CG project.&lt;br /&gt;
# Implement group snapshots in the share manager to demonstrate group snapshots in any driver.&lt;br /&gt;
# Plumb group snapshots to a CG-capable driver to demonstrate CG functionality in the new framework.&lt;br /&gt;
# Update Tempest to cover all of the above.&lt;br /&gt;
# Update Manila client to change CGs to share groups.&lt;br /&gt;
# Enhance Manila client with share group types.&lt;br /&gt;
# Add share group support to Horizon.  We never built CG support into Horizon, so this is all-new work that now has much broader appeal and applicability.&lt;br /&gt;
# Add additional group actions over time (migrate, replicate, retype, clone, …).  At this point, new group capabilities become vertical slices that are simple to add incrementally.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Because we implemented CGs just recently as an experimental feature, we have the freedom to replace that code without deprecation or upgrade considerations.  Steps 1-8 would get Manila to parity with the CG feature added in Liberty, would require only a few person-weeks of effort, and would better position Manila for long-term evolution and supportability.&lt;br /&gt;
=== Implementation details ===&lt;br /&gt;
There are few things to note, several of which were already solved during the CG work.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Groups are first-class objects in Manila, and operations on groups are treated as atomic.  For example, a user will see a group snapshot but not the individual snapshots of group members.  To enable support by as many backends as possible, Manila will still maintain DB objects for both group and member snapshots, just as was done with CGs.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A few actions, such as extend &amp;amp; shrink, are inherently applicable only to individual shares.  One could theoretically apply extend to a group, increasing the size of each member, but that seems like an unlikely use case.  Any actions in this category must remain available to group members, although most actions such as clone or snapshot would be available only at the group level and not on its members.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A group is limited to a single backend.  Allowing groups that span backends is theoretically possible, but that would require fanout of operations from the API layer to multiple share managers across the asynchronous event bus, which would lead to complicated synchronization and state management for little operational benefit.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As was done with Manila CGs, a driver may optionally limit a group to either the confines of a pool or an entire backend.  It is known that pools are the unit of data motion (i.e. replication or migration) for some backends, so we think drivers need this flexibility.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We considered reusing share types for groups as well.  But share types include a set of public extra specs that may not map well to groups.  And by adding group types as a separate object, there can be little confusion about their purpose and use.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some have noted that extra specs tend to be treated as an AND operation, where all features must be available for a backend to be chosen.  It is conceivable that even if a backend can replicate a group or take consistent snapshots of a group, it might not be able to perform both operations on the same group.  But this problem already exists with share types and hasn’t been a serious issue.  Creating types is an admin-only operation and the burden remains on the admin to understand the capabilities of the backends in use and to create the share types and share group types appropriately.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that this proposal explicitly does not address pool or backend replication, which is fundamentally different.  Actions on shares or share groups are intended for tenants, whereas a pool or backend can contain data from multiple tenants.  So pool or backend operations, while serving potentially valuable use cases, are inherently admin-only workflows that would be designed and exercised differently should Manila support them.&lt;br /&gt;
&lt;br /&gt;
== Acknowledgments ==&lt;br /&gt;
Most of the analysis and recommendations contained herein apply equally well to Cinder, which is arguably much further down the path of crippling complexity.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This proposal was developed by cknight with input from Manila community members bswartz, ameade, tbarron, and cfouts.  The ongoing Cinder conversations about grouping, as well as the groundbreaking contributions of CGs to Cinder, all of which inspired this proposal, were led by xyang.&lt;/div&gt;</summary>
		<author><name>Clinton Knight</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Manila/design/manila-generic-groups&amp;diff=99851</id>
		<title>Manila/design/manila-generic-groups</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Manila/design/manila-generic-groups&amp;diff=99851"/>
				<updated>2015-12-16T21:31:24Z</updated>
		
		<summary type="html">&lt;p&gt;Clinton Knight: /* Idea #2: Introduce Share Group types */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Manila generic groups =&lt;br /&gt;
== Executive summary ==&lt;br /&gt;
Manila needs a grouping construct that, like shares, is a 1st-class atomic data type.  Our experience with CGs has demonstrated the complexity of adding a grouping capability, yet there are other use cases such as migration, replication, and backup in which some storage controllers could only offer such features on share groups.  CGs also highlighted the poor optics of an advanced feature with comparatively little potential for vendor support.  And adding new grouping constructs for each new feature is not technically feasible.  All of the above may be addressed by generic groups, which we think is a clean extension to the original architecture of Manila.&lt;br /&gt;
== An Intractable Matrix ==&lt;br /&gt;
Manila is at an exciting time in its development, where all the simple features are available and the community is focused on adding high-value features such as migration, replication, and consistency groups.  Experimental code is available for each of these, but little consideration has been given to the obvious need for these complex features to interact not only with each other but also with whatever additional features were added later.  And looking a little deeper, it is apparent that each of these has limitations that could be solved by a single architectural enhancement.&lt;br /&gt;
=== Consistency groups ===&lt;br /&gt;
Consistency groups (CGs) are the only construct in Manila that operates on a group of shares.   For some, a CG implies a guarantee of ordered writes by a storage controller, while for others a CG is a mechanism for taking consistent point-in-time snapshots of a set of shares.  A group with either attribute may have value by itself, but the CGs implementation doesn’t distinguish between them.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
CGs are a highly specialized construct with dedicated CLI commands, REST APIs, database tables, scheduler filters, and driver APIs.  None of these are reusable for anything else, and presently none of the rest of Manila has any awareness of CGs.  Even worse, despite all the complexity of the CG feature, only a small minority of storage backends can support them, so the code-to-value ratio is very low.  Finally, the limited availability of CGs ensures the user experience is inconsistent between clouds.&lt;br /&gt;
=== Replication ===&lt;br /&gt;
Replication is another high value feature, and the Manila implementation is arguably clean and flexible, but as constituted there is no core ability to replicate groups of shares.  It seems reasonable to implement the feature iteratively, beginning with replication of single shares.  However, there has been the tacit acknowledgement that some backends would not be able to replicate individual shares, even though those same backends could potentially replicate a group of shares if the group were constituted in a certain way.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Following the precedent established with CGs, one approach would be to introduce ‘replication groups’ whereby multiple shares could be replicated together.  But this would introduce yet another set of APIs, tables, etc. that are too specialized to use for anything else.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Another approach might be to define CGs as the grouping unit of replication, but this makes little sense because consistency groups (however we define them) and replication are distinct features that shouldn’t be artificially bundled for the sake of expediency of definition or implementation.&lt;br /&gt;
=== Migration ===&lt;br /&gt;
Just as some backends may only be able to replicate shares in groups, it follows that those backends may also need to migrate shares in groups.  And in the case of CGs, it doesn’t make sense to migrate CG members individually; the whole group must be moved, requiring the replication engine to be CG aware.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Consider the following reasonable use cases:&lt;br /&gt;
* Replicate a consistency group&lt;br /&gt;
* Snapshot a replication group&lt;br /&gt;
* Migrate a replication group&lt;br /&gt;
* Retype shares in a consistency group&lt;br /&gt;
* Retype shares in a replication group&lt;br /&gt;
* Backup a consistency group&lt;br /&gt;
* Backup a replication group&lt;br /&gt;
* Apply a common policy to a set of shares&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
On the current path, the support matrix has a dimension dedicated solely to features, so each feature must be coded to be interoperable with every other feature.  This quickly becomes a support and testing nightmare, and it becomes exponentially more complicated to add more features going forward.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Fundamentally, the problem is that we are adding features without an underlying architectural framework on which to hang them.  To escape the matrix, we must step back and rethink a few things.&lt;br /&gt;
&lt;br /&gt;
== A simple solution ==&lt;br /&gt;
So to arrive at a solution, let’s enumerate what we have:&lt;br /&gt;
* Primitive objects (shares) with supported operations controlled by share types that vary by backend&lt;br /&gt;
* A very specific group object (CGs) with limited support potential by backends&lt;br /&gt;
* A number of APIs (CGs, etc.) that many users can’t use at all and appear grafted into the project&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
And what would we prefer:&lt;br /&gt;
* A uniform API and user experience that varies as little as possible by backend&lt;br /&gt;
* A clean way to group shares so we can do CGs, multi-object replication, migration, etc.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
How do we get here?&lt;br /&gt;
* Universally available groups of primitive objects with supported operations that vary by backend&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
=== Idea #1: Introduce a generic Share Group object ===&lt;br /&gt;
Just as Manila has ‘shares’, it should also have ‘share groups’.  In its simplest form, unlike CGs, a share group should not guarantee any specialized operation.  Instead, it should merely constitute an atomic Manila data type on which nearly any Manila action is available.  For example, given a share group, the user should be able to select the group in the Manila UI and invoke features such as snapshot, clone, backup, migrate, replicate, retype, etc.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the general case, group actions are handled by the share manager layer (or potentially the common share driver superclass).  For example, invoking ‘snapshot’ on a group causes the share manager to take a snapshot of each group member individually.  The resulting group snapshot object may be used to create a new group, not unlike how CG snapshots were implemented.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There are numerous advantages to this approach.  Every driver, no matter how unsophisticated, can leverage the manageability goodness of groups.  The user experience is uniform, since groups are always available regardless of which backends are present and because nearly every Manila action available on shares is also available on groups.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Of course, feature-rich backends would like to add their secret sauce, whether it be CGs, group-based replication, or whatever else comes along that might be easier/cheaper/faster to do to groups of shares.  That brings us to related idea.&lt;br /&gt;
=== Idea #2: Introduce Share Group types ===&lt;br /&gt;
Just as Manila has ‘share types’, it should also have ‘share group types’.  Any driver that can perform a group operation in an advantaged way may report that as a group capability, such as:&lt;br /&gt;
* Ordered writes&lt;br /&gt;
* Consistent snapshots&lt;br /&gt;
* Group replication&lt;br /&gt;
* Group migration&lt;br /&gt;
* Group backup&lt;br /&gt;
* Group modification&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
As with share types, the cloud administrator predefines share group types that may contain extra specs corresponding to the group capabilities reported by the backends.  And when creating a group, the user specifies one or more share types as well as a group type, and the scheduler then creates the group on one of the backends that match the specified share and share group types.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anytime a group action, such as ‘snapshot’, comes into the share manager, the manager checks whether its driver offers an advantaged implementation of that operation.  If not, the manager handles the workflow itself as described above.  But if so, the manager routes the workflow to its driver for fulfillment.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The advantages of this approach should be obvious.  Development and testing are simplified because there isn’t a need to define and test a different set of group management APIs for each feature, or to test every combination of every feature.  Instead of becoming an N-by-N matrix of interacting features, Manila largely becomes an N-by-2 matrix of actions that may be invoked on either individual shares or share groups.  Users and admins are already familiar with share types, so introducing share group types would seem a natural and consistent evolution of the same foundational concept.  &lt;br /&gt;
&lt;br /&gt;
The matrix would look like:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Share action !! Share Group action&lt;br /&gt;
|-&lt;br /&gt;
| Create (volume type) || Create (volume types, group type)&lt;br /&gt;
|-&lt;br /&gt;
| Delete || Delete (group, optionally all members)&lt;br /&gt;
|-&lt;br /&gt;
| Snapshot || Snapshot (may or may not be a CG snapshot)&lt;br /&gt;
|-&lt;br /&gt;
| Create from snapshot / Clone || Create from group snapshot / Clone group&lt;br /&gt;
|-&lt;br /&gt;
| Replicate || Replicate&lt;br /&gt;
|-&lt;br /&gt;
| Backup || Backup&lt;br /&gt;
|-&lt;br /&gt;
| Retype || Retype&lt;br /&gt;
|-&lt;br /&gt;
| Migrate || Migrate&lt;br /&gt;
|-&lt;br /&gt;
| Extend / shrink || N/A&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Manila implementation plan ==&lt;br /&gt;
Implementing generic groups in Manila should be a straightforward series of steps:&lt;br /&gt;
# Implement generic groups.  Because we did CGs, we already know all parts of the codebase that must change to support any kind of group.  So the simplest approach is to modify the CG code to morph it into the generic groups feature.&lt;br /&gt;
# Add the share group type feature by duplicating and customizing the share type code.&lt;br /&gt;
# Enhance the scheduler to place groups according to share group types.  Like #1, this is already informed by the CG project.&lt;br /&gt;
# Implement group snapshots in the share manager to demonstrate group snapshots in any driver.&lt;br /&gt;
# Plumb group snapshots to a CG-capable driver to demonstrate CG functionality in the new framework.&lt;br /&gt;
# Update Tempest to cover all of the above.&lt;br /&gt;
# Update Manila client to change CGs to share groups.&lt;br /&gt;
# Enhance Manila client with share group types.&lt;br /&gt;
# Add share group support to Horizon.  We never built CG support into Horizon, so this is all-new work that now has much broader appeal and applicability.&lt;br /&gt;
# Add additional group actions over time (migrate, replicate, retype, clone, …).  At this point, new group capabilities become vertical slices that are simple to add incrementally.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Because we implemented CGs just recently as an experimental feature, we have the freedom to replace that code without deprecation or upgrade considerations.  Steps 1-8 would get Manila to parity with the CG feature added in Liberty, would require only a few person-weeks of effort, and would better position Manila for long-term evolution and supportability.&lt;br /&gt;
=== Implementation details ===&lt;br /&gt;
There are few things to note, several of which were already solved during the CG work.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Groups are first-class objects in Manila, and operations on groups are treated as atomic.  For example, a user will see a group snapshot but not the individual snapshots of group members.  To enable support by as many backends as possible, Manila will still maintain DB objects for both group and member snapshots, just as was done with CGs.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A few actions, such as extend &amp;amp; shrink, are inherently applicable only to individual shares.  One could theoretically apply extend to a group, increasing the size of each member, but that seems like an unlikely use case.  Any actions in this category must remain available to group members, although most actions such as clone or snapshot would be available only at the group level and not on its members.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A group is limited to a single backend.  Allowing groups that span backends is theoretically possible, but that would require fanout of operations from the API layer to multiple share managers across the asynchronous event bus, which would lead to complicated synchronization and state management for little operational benefit.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As was done with Manila CGs, a driver may optionally limit a group to either the confines of a pool or an entire backend.  It is known that pools are the unit of data motion (i.e. replication or migration) for some backends, so we think drivers need this flexibility.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We considered reusing share types for groups as well.  But share types include a set of public extra specs that may not map well to groups.  And by adding group types as a separate object, there can be little confusion about their purpose and use.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some have noted that extra specs tend to be treated as an AND operation, where all features must be available for a backend to be chosen.  It is conceivable that even if a backend can replicate a group or take consistent snapshots of a group, it might not be able to perform both operations on the same group.  But this problem already exists with share types and hasn’t been a serious issue.  Creating types is an admin-only operation and the burden remains on the admin to understand the capabilities of the backends in use and to create the share types and share group types appropriately.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that this proposal explicitly does not address pool or backend replication, which is fundamentally different.  Actions on shares or share groups are intended for tenants, whereas a pool or backend can contain data from multiple tenants.  So pool or backend operations, while serving potentially valuable use cases, are inherently admin-only workflows that would be designed and exercised differently should Manila support them.&lt;br /&gt;
&lt;br /&gt;
== Acknowledgments ==&lt;br /&gt;
Most of the analysis and recommendations contained herein apply equally well to Cinder, which is arguably much further down the path of crippling complexity.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This proposal was developed by cknight with input from Manila community members bswartz, ameade, tbarron, and cfouts.&lt;/div&gt;</summary>
		<author><name>Clinton Knight</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Manila/design/manila-generic-groups&amp;diff=99850</id>
		<title>Manila/design/manila-generic-groups</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Manila/design/manila-generic-groups&amp;diff=99850"/>
				<updated>2015-12-16T21:29:11Z</updated>
		
		<summary type="html">&lt;p&gt;Clinton Knight: /* Idea #2: Introduce Share Group types */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Manila generic groups =&lt;br /&gt;
== Executive summary ==&lt;br /&gt;
Manila needs a grouping construct that, like shares, is a 1st-class atomic data type.  Our experience with CGs has demonstrated the complexity of adding a grouping capability, yet there are other use cases such as migration, replication, and backup in which some storage controllers could only offer such features on share groups.  CGs also highlighted the poor optics of an advanced feature with comparatively little potential for vendor support.  And adding new grouping constructs for each new feature is not technically feasible.  All of the above may be addressed by generic groups, which we think is a clean extension to the original architecture of Manila.&lt;br /&gt;
== An Intractable Matrix ==&lt;br /&gt;
Manila is at an exciting time in its development, where all the simple features are available and the community is focused on adding high-value features such as migration, replication, and consistency groups.  Experimental code is available for each of these, but little consideration has been given to the obvious need for these complex features to interact not only with each other but also with whatever additional features were added later.  And looking a little deeper, it is apparent that each of these has limitations that could be solved by a single architectural enhancement.&lt;br /&gt;
=== Consistency groups ===&lt;br /&gt;
Consistency groups (CGs) are the only construct in Manila that operates on a group of shares.   For some, a CG implies a guarantee of ordered writes by a storage controller, while for others a CG is a mechanism for taking consistent point-in-time snapshots of a set of shares.  A group with either attribute may have value by itself, but the CGs implementation doesn’t distinguish between them.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
CGs are a highly specialized construct with dedicated CLI commands, REST APIs, database tables, scheduler filters, and driver APIs.  None of these are reusable for anything else, and presently none of the rest of Manila has any awareness of CGs.  Even worse, despite all the complexity of the CG feature, only a small minority of storage backends can support them, so the code-to-value ratio is very low.  Finally, the limited availability of CGs ensures the user experience is inconsistent between clouds.&lt;br /&gt;
=== Replication ===&lt;br /&gt;
Replication is another high value feature, and the Manila implementation is arguably clean and flexible, but as constituted there is no core ability to replicate groups of shares.  It seems reasonable to implement the feature iteratively, beginning with replication of single shares.  However, there has been the tacit acknowledgement that some backends would not be able to replicate individual shares, even though those same backends could potentially replicate a group of shares if the group were constituted in a certain way.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Following the precedent established with CGs, one approach would be to introduce ‘replication groups’ whereby multiple shares could be replicated together.  But this would introduce yet another set of APIs, tables, etc. that are too specialized to use for anything else.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Another approach might be to define CGs as the grouping unit of replication, but this makes little sense because consistency groups (however we define them) and replication are distinct features that shouldn’t be artificially bundled for the sake of expediency of definition or implementation.&lt;br /&gt;
=== Migration ===&lt;br /&gt;
Just as some backends may only be able to replicate shares in groups, it follows that those backends may also need to migrate shares in groups.  And in the case of CGs, it doesn’t make sense to migrate CG members individually; the whole group must be moved, requiring the replication engine to be CG aware.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Consider the following reasonable use cases:&lt;br /&gt;
* Replicate a consistency group&lt;br /&gt;
* Snapshot a replication group&lt;br /&gt;
* Migrate a replication group&lt;br /&gt;
* Retype shares in a consistency group&lt;br /&gt;
* Retype shares in a replication group&lt;br /&gt;
* Backup a consistency group&lt;br /&gt;
* Backup a replication group&lt;br /&gt;
* Apply a common policy to a set of shares&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
On the current path, the support matrix has a dimension dedicated solely to features, so each feature must be coded to be interoperable with every other feature.  This quickly becomes a support and testing nightmare, and it becomes exponentially more complicated to add more features going forward.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Fundamentally, the problem is that we are adding features without an underlying architectural framework on which to hang them.  To escape the matrix, we must step back and rethink a few things.&lt;br /&gt;
&lt;br /&gt;
== A simple solution ==&lt;br /&gt;
So to arrive at a solution, let’s enumerate what we have:&lt;br /&gt;
* Primitive objects (shares) with supported operations controlled by share types that vary by backend&lt;br /&gt;
* A very specific group object (CGs) with limited support potential by backends&lt;br /&gt;
* A number of APIs (CGs, etc.) that many users can’t use at all and appear grafted into the project&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
And what would we prefer:&lt;br /&gt;
* A uniform API and user experience that varies as little as possible by backend&lt;br /&gt;
* A clean way to group shares so we can do CGs, multi-object replication, migration, etc.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
How do we get here?&lt;br /&gt;
* Universally available groups of primitive objects with supported operations that vary by backend&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
=== Idea #1: Introduce a generic Share Group object ===&lt;br /&gt;
Just as Manila has ‘shares’, it should also have ‘share groups’.  In its simplest form, unlike CGs, a share group should not guarantee any specialized operation.  Instead, it should merely constitute an atomic Manila data type on which nearly any Manila action is available.  For example, given a share group, the user should be able to select the group in the Manila UI and invoke features such as snapshot, clone, backup, migrate, replicate, retype, etc.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the general case, group actions are handled by the share manager layer (or potentially the common share driver superclass).  For example, invoking ‘snapshot’ on a group causes the share manager to take a snapshot of each group member individually.  The resulting group snapshot object may be used to create a new group, not unlike how CG snapshots were implemented.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There are numerous advantages to this approach.  Every driver, no matter how unsophisticated, can leverage the manageability goodness of groups.  The user experience is uniform, since groups are always available regardless of which backends are present and because nearly every Manila action available on shares is also available on groups.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Of course, feature-rich backends would like to add their secret sauce, whether it be CGs, group-based replication, or whatever else comes along that might be easier/cheaper/faster to do to groups of shares.  That brings us to related idea.&lt;br /&gt;
=== Idea #2: Introduce Share Group types ===&lt;br /&gt;
Just as Manila has ‘share types’, it should also have ‘share group types’.  Any driver that can perform a group operation in an advantaged way may report that as a group capability, such as:&lt;br /&gt;
* Ordered writes&lt;br /&gt;
* Consistent snapshots&lt;br /&gt;
* Group replication&lt;br /&gt;
* Group migration&lt;br /&gt;
* Group backup&lt;br /&gt;
* Group modification&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
As with share types, the cloud administrator predefines share group types that may contain extra specs corresponding to the group capabilities reported by the backends.  And when creating a group, the user specifies one or more share types as well as a group type, and the scheduler then creates the group on one of the backends that match the specified share and share group types.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anytime a group action, such as ‘snapshot’, comes into the share manager, the manager checks whether its driver offers an advantaged implementation of that operation.  If not, the manager handles the workflow itself as described above.  But if so, the manager routes the workflow to its driver for fulfillment.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The advantages of this approach should be obvious.  Manila can add a single set of group APIs that can service all current and future group operations, including CG snapshots, replication, migration, retype, backup, etc.  Development and testing are simplified because there isn’t a need to define and test a different set of group APIs for each feature, or to test every combination of every feature.  Users and admins are already familiar with share types, so introducing share group types would seem a natural and consistent evolution of the same foundational concept.  Instead of becoming an N-by-N matrix of interacting features, Manila largely becomes an N-by-2 matrix of actions that may be invoked on either individual shares or share groups.&lt;br /&gt;
&lt;br /&gt;
The matrix would look like:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Share action !! Share Group action&lt;br /&gt;
|-&lt;br /&gt;
| Create (volume type) || Create (volume types, group type)&lt;br /&gt;
|-&lt;br /&gt;
| Delete || Delete (group, optionally all members)&lt;br /&gt;
|-&lt;br /&gt;
| Snapshot || Snapshot (may or may not be a CG snapshot)&lt;br /&gt;
|-&lt;br /&gt;
| Create from snapshot / Clone || Create from group snapshot / Clone group&lt;br /&gt;
|-&lt;br /&gt;
| Replicate || Replicate&lt;br /&gt;
|-&lt;br /&gt;
| Backup || Backup&lt;br /&gt;
|-&lt;br /&gt;
| Retype || Retype&lt;br /&gt;
|-&lt;br /&gt;
| Migrate || Migrate&lt;br /&gt;
|-&lt;br /&gt;
| Extend / shrink || N/A&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Manila implementation plan ==&lt;br /&gt;
Implementing generic groups in Manila should be a straightforward series of steps:&lt;br /&gt;
# Implement generic groups.  Because we did CGs, we already know all parts of the codebase that must change to support any kind of group.  So the simplest approach is to modify the CG code to morph it into the generic groups feature.&lt;br /&gt;
# Add the share group type feature by duplicating and customizing the share type code.&lt;br /&gt;
# Enhance the scheduler to place groups according to share group types.  Like #1, this is already informed by the CG project.&lt;br /&gt;
# Implement group snapshots in the share manager to demonstrate group snapshots in any driver.&lt;br /&gt;
# Plumb group snapshots to a CG-capable driver to demonstrate CG functionality in the new framework.&lt;br /&gt;
# Update Tempest to cover all of the above.&lt;br /&gt;
# Update Manila client to change CGs to share groups.&lt;br /&gt;
# Enhance Manila client with share group types.&lt;br /&gt;
# Add share group support to Horizon.  We never built CG support into Horizon, so this is all-new work that now has much broader appeal and applicability.&lt;br /&gt;
# Add additional group actions over time (migrate, replicate, retype, clone, …).  At this point, new group capabilities become vertical slices that are simple to add incrementally.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Because we implemented CGs just recently as an experimental feature, we have the freedom to replace that code without deprecation or upgrade considerations.  Steps 1-8 would get Manila to parity with the CG feature added in Liberty, would require only a few person-weeks of effort, and would better position Manila for long-term evolution and supportability.&lt;br /&gt;
=== Implementation details ===&lt;br /&gt;
There are few things to note, several of which were already solved during the CG work.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Groups are first-class objects in Manila, and operations on groups are treated as atomic.  For example, a user will see a group snapshot but not the individual snapshots of group members.  To enable support by as many backends as possible, Manila will still maintain DB objects for both group and member snapshots, just as was done with CGs.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A few actions, such as extend &amp;amp; shrink, are inherently applicable only to individual shares.  One could theoretically apply extend to a group, increasing the size of each member, but that seems like an unlikely use case.  Any actions in this category must remain available to group members, although most actions such as clone or snapshot would be available only at the group level and not on its members.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A group is limited to a single backend.  Allowing groups that span backends is theoretically possible, but that would require fanout of operations from the API layer to multiple share managers across the asynchronous event bus, which would lead to complicated synchronization and state management for little operational benefit.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As was done with Manila CGs, a driver may optionally limit a group to either the confines of a pool or an entire backend.  It is known that pools are the unit of data motion (i.e. replication or migration) for some backends, so we think drivers need this flexibility.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We considered reusing share types for groups as well.  But share types include a set of public extra specs that may not map well to groups.  And by adding group types as a separate object, there can be little confusion about their purpose and use.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some have noted that extra specs tend to be treated as an AND operation, where all features must be available for a backend to be chosen.  It is conceivable that even if a backend can replicate a group or take consistent snapshots of a group, it might not be able to perform both operations on the same group.  But this problem already exists with share types and hasn’t been a serious issue.  Creating types is an admin-only operation and the burden remains on the admin to understand the capabilities of the backends in use and to create the share types and share group types appropriately.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that this proposal explicitly does not address pool or backend replication, which is fundamentally different.  Actions on shares or share groups are intended for tenants, whereas a pool or backend can contain data from multiple tenants.  So pool or backend operations, while serving potentially valuable use cases, are inherently admin-only workflows that would be designed and exercised differently should Manila support them.&lt;br /&gt;
&lt;br /&gt;
== Acknowledgments ==&lt;br /&gt;
Most of the analysis and recommendations contained herein apply equally well to Cinder, which is arguably much further down the path of crippling complexity.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This proposal was developed by cknight with input from Manila community members bswartz, ameade, tbarron, and cfouts.&lt;/div&gt;</summary>
		<author><name>Clinton Knight</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Manila/design/manila-generic-groups&amp;diff=99844</id>
		<title>Manila/design/manila-generic-groups</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Manila/design/manila-generic-groups&amp;diff=99844"/>
				<updated>2015-12-16T20:49:57Z</updated>
		
		<summary type="html">&lt;p&gt;Clinton Knight: /* Manila implementation plan */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Manila generic groups =&lt;br /&gt;
== Executive summary ==&lt;br /&gt;
Manila needs a grouping construct that, like shares, is a 1st-class atomic data type.  Our experience with CGs has demonstrated the complexity of adding a grouping capability, yet there are other use cases such as migration, replication, and backup in which some storage controllers could only offer such features on share groups.  CGs also highlighted the poor optics of an advanced feature with comparatively little potential for vendor support.  And adding new grouping constructs for each new feature is not technically feasible.  All of the above may be addressed by generic groups, which we think is a clean extension to the original architecture of Manila.&lt;br /&gt;
== An Intractable Matrix ==&lt;br /&gt;
Manila is at an exciting time in its development, where all the simple features are available and the community is focused on adding high-value features such as migration, replication, and consistency groups.  Experimental code is available for each of these, but little consideration has been given to the obvious need for these complex features to interact not only with each other but also with whatever additional features were added later.  And looking a little deeper, it is apparent that each of these has limitations that could be solved by a single architectural enhancement.&lt;br /&gt;
=== Consistency groups ===&lt;br /&gt;
Consistency groups (CGs) are the only construct in Manila that operates on a group of shares.   For some, a CG implies a guarantee of ordered writes by a storage controller, while for others a CG is a mechanism for taking consistent point-in-time snapshots of a set of shares.  A group with either attribute may have value by itself, but the CGs implementation doesn’t distinguish between them.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
CGs are a highly specialized construct with dedicated CLI commands, REST APIs, database tables, scheduler filters, and driver APIs.  None of these are reusable for anything else, and presently none of the rest of Manila has any awareness of CGs.  Even worse, despite all the complexity of the CG feature, only a small minority of storage backends can support them, so the code-to-value ratio is very low.  Finally, the limited availability of CGs ensures the user experience is inconsistent between clouds.&lt;br /&gt;
=== Replication ===&lt;br /&gt;
Replication is another high value feature, and the Manila implementation is arguably clean and flexible, but as constituted there is no core ability to replicate groups of shares.  It seems reasonable to implement the feature iteratively, beginning with replication of single shares.  However, there has been the tacit acknowledgement that some backends would not be able to replicate individual shares, even though those same backends could potentially replicate a group of shares if the group were constituted in a certain way.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Following the precedent established with CGs, one approach would be to introduce ‘replication groups’ whereby multiple shares could be replicated together.  But this would introduce yet another set of APIs, tables, etc. that are too specialized to use for anything else.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Another approach might be to define CGs as the grouping unit of replication, but this makes little sense because consistency groups (however we define them) and replication are distinct features that shouldn’t be artificially bundled for the sake of expediency of definition or implementation.&lt;br /&gt;
=== Migration ===&lt;br /&gt;
Just as some backends may only be able to replicate shares in groups, it follows that those backends may also need to migrate shares in groups.  And in the case of CGs, it doesn’t make sense to migrate CG members individually; the whole group must be moved, requiring the replication engine to be CG aware.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Consider the following reasonable use cases:&lt;br /&gt;
* Replicate a consistency group&lt;br /&gt;
* Snapshot a replication group&lt;br /&gt;
* Migrate a replication group&lt;br /&gt;
* Retype shares in a consistency group&lt;br /&gt;
* Retype shares in a replication group&lt;br /&gt;
* Backup a consistency group&lt;br /&gt;
* Backup a replication group&lt;br /&gt;
* Apply a common policy to a set of shares&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
On the current path, the support matrix has a dimension dedicated solely to features, so each feature must be coded to be interoperable with every other feature.  This quickly becomes a support and testing nightmare, and it becomes exponentially more complicated to add more features going forward.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Fundamentally, the problem is that we are adding features without an underlying architectural framework on which to hang them.  To escape the matrix, we must step back and rethink a few things.&lt;br /&gt;
&lt;br /&gt;
== A simple solution ==&lt;br /&gt;
So to arrive at a solution, let’s enumerate what we have:&lt;br /&gt;
* Primitive objects (shares) with supported operations controlled by share types that vary by backend&lt;br /&gt;
* A very specific group object (CGs) with limited support potential by backends&lt;br /&gt;
* A number of APIs (CGs, etc.) that many users can’t use at all and appear grafted into the project&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
And what would we prefer:&lt;br /&gt;
* A uniform API and user experience that varies as little as possible by backend&lt;br /&gt;
* A clean way to group shares so we can do CGs, multi-object replication, migration, etc.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
How do we get here?&lt;br /&gt;
* Universally available groups of primitive objects with supported operations that vary by backend&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
=== Idea #1: Introduce a generic Share Group object ===&lt;br /&gt;
Just as Manila has ‘shares’, it should also have ‘share groups’.  In its simplest form, unlike CGs, a share group should not guarantee any specialized operation.  Instead, it should merely constitute an atomic Manila data type on which nearly any Manila action is available.  For example, given a share group, the user should be able to select the group in the Manila UI and invoke features such as snapshot, clone, backup, migrate, replicate, retype, etc.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the general case, group actions are handled by the share manager layer (or potentially the common share driver superclass).  For example, invoking ‘snapshot’ on a group causes the share manager to take a snapshot of each group member individually.  The resulting group snapshot object may be used to create a new group, not unlike how CG snapshots were implemented.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There are numerous advantages to this approach.  Every driver, no matter how unsophisticated, can leverage the manageability goodness of groups.  The user experience is uniform, since groups are always available regardless of which backends are present and because nearly every Manila action available on shares is also available on groups.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Of course, feature-rich backends would like to add their secret sauce, whether it be CGs, group-based replication, or whatever else comes along that might be easier/cheaper/faster to do to groups of shares.  That brings us to related idea.&lt;br /&gt;
=== Idea #2: Introduce Share Group types ===&lt;br /&gt;
Just as Manila has ‘share types’, it should also have ‘share group types’.  Any driver that can perform a group operation in an advantaged way may report that as a group capability, such as:&lt;br /&gt;
* Ordered writes&lt;br /&gt;
* Consistent snapshots&lt;br /&gt;
* Group replication&lt;br /&gt;
* Group migration&lt;br /&gt;
* Group backup&lt;br /&gt;
* Group modification&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
As with share types, the cloud administrator predefines share group types that may contain extra specs corresponding to the group capabilities reported by the backends.  And when creating a group, the user specifies one or more share types as well as a group type, and the scheduler then creates the group on one of the backends that match the specified share and share group types.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anytime a group action, such as ‘snapshot’, comes into the share manager, the manager checks whether its driver offers an advantaged implementation of that operation.  If not, the manager handles the workflow itself as described above.  But if so, the manager routes the workflow to its driver for fulfillment.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The advantages of this approach should be obvious.  Manila can add a single set of group APIs that can service all current and future group operations, including CG snapshots, replication, migration, retype, backup, etc.  Development and testing are simplified because there isn’t a need to define and test a different set of group APIs for each feature, or to test every combination of every feature.  Users and admins are already familiar with share types, so introducing share group types would seem a natural and consistent evolution of the same foundational concept.  Instead of becoming an N-by-N matrix of interacting features, Manila largely becomes an N-by-2 matrix of actions that may be invoked on either individual shares or share groups.&lt;br /&gt;
== Manila implementation plan ==&lt;br /&gt;
Implementing generic groups in Manila should be a straightforward series of steps:&lt;br /&gt;
# Implement generic groups.  Because we did CGs, we already know all parts of the codebase that must change to support any kind of group.  So the simplest approach is to modify the CG code to morph it into the generic groups feature.&lt;br /&gt;
# Add the share group type feature by duplicating and customizing the share type code.&lt;br /&gt;
# Enhance the scheduler to place groups according to share group types.  Like #1, this is already informed by the CG project.&lt;br /&gt;
# Implement group snapshots in the share manager to demonstrate group snapshots in any driver.&lt;br /&gt;
# Plumb group snapshots to a CG-capable driver to demonstrate CG functionality in the new framework.&lt;br /&gt;
# Update Tempest to cover all of the above.&lt;br /&gt;
# Update Manila client to change CGs to share groups.&lt;br /&gt;
# Enhance Manila client with share group types.&lt;br /&gt;
# Add share group support to Horizon.  We never built CG support into Horizon, so this is all-new work that now has much broader appeal and applicability.&lt;br /&gt;
# Add additional group actions over time (migrate, replicate, retype, clone, …).  At this point, new group capabilities become vertical slices that are simple to add incrementally.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Because we implemented CGs just recently as an experimental feature, we have the freedom to replace that code without deprecation or upgrade considerations.  Steps 1-8 would get Manila to parity with the CG feature added in Liberty, would require only a few person-weeks of effort, and would better position Manila for long-term evolution and supportability.&lt;br /&gt;
=== Implementation details ===&lt;br /&gt;
There are few things to note, several of which were already solved during the CG work.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Groups are first-class objects in Manila, and operations on groups are treated as atomic.  For example, a user will see a group snapshot but not the individual snapshots of group members.  To enable support by as many backends as possible, Manila will still maintain DB objects for both group and member snapshots, just as was done with CGs.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A few actions, such as extend &amp;amp; shrink, are inherently applicable only to individual shares.  One could theoretically apply extend to a group, increasing the size of each member, but that seems like an unlikely use case.  Any actions in this category must remain available to group members, although most actions such as clone or snapshot would be available only at the group level and not on its members.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A group is limited to a single backend.  Allowing groups that span backends is theoretically possible, but that would require fanout of operations from the API layer to multiple share managers across the asynchronous event bus, which would lead to complicated synchronization and state management for little operational benefit.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As was done with Manila CGs, a driver may optionally limit a group to either the confines of a pool or an entire backend.  It is known that pools are the unit of data motion (i.e. replication or migration) for some backends, so we think drivers need this flexibility.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We considered reusing share types for groups as well.  But share types include a set of public extra specs that may not map well to groups.  And by adding group types as a separate object, there can be little confusion about their purpose and use.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some have noted that extra specs tend to be treated as an AND operation, where all features must be available for a backend to be chosen.  It is conceivable that even if a backend can replicate a group or take consistent snapshots of a group, it might not be able to perform both operations on the same group.  But this problem already exists with share types and hasn’t been a serious issue.  Creating types is an admin-only operation and the burden remains on the admin to understand the capabilities of the backends in use and to create the share types and share group types appropriately.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that this proposal explicitly does not address pool or backend replication, which is fundamentally different.  Actions on shares or share groups are intended for tenants, whereas a pool or backend can contain data from multiple tenants.  So pool or backend operations, while serving potentially valuable use cases, are inherently admin-only workflows that would be designed and exercised differently should Manila support them.&lt;br /&gt;
&lt;br /&gt;
== Acknowledgments ==&lt;br /&gt;
Most of the analysis and recommendations contained herein apply equally well to Cinder, which is arguably much further down the path of crippling complexity.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This proposal was developed by cknight with input from Manila community members bswartz, ameade, tbarron, and cfouts.&lt;/div&gt;</summary>
		<author><name>Clinton Knight</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Manila/design/manila-generic-groups&amp;diff=99843</id>
		<title>Manila/design/manila-generic-groups</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Manila/design/manila-generic-groups&amp;diff=99843"/>
				<updated>2015-12-16T20:48:39Z</updated>
		
		<summary type="html">&lt;p&gt;Clinton Knight: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Manila generic groups =&lt;br /&gt;
== Executive summary ==&lt;br /&gt;
Manila needs a grouping construct that, like shares, is a 1st-class atomic data type.  Our experience with CGs has demonstrated the complexity of adding a grouping capability, yet there are other use cases such as migration, replication, and backup in which some storage controllers could only offer such features on share groups.  CGs also highlighted the poor optics of an advanced feature with comparatively little potential for vendor support.  And adding new grouping constructs for each new feature is not technically feasible.  All of the above may be addressed by generic groups, which we think is a clean extension to the original architecture of Manila.&lt;br /&gt;
== An Intractable Matrix ==&lt;br /&gt;
Manila is at an exciting time in its development, where all the simple features are available and the community is focused on adding high-value features such as migration, replication, and consistency groups.  Experimental code is available for each of these, but little consideration has been given to the obvious need for these complex features to interact not only with each other but also with whatever additional features were added later.  And looking a little deeper, it is apparent that each of these has limitations that could be solved by a single architectural enhancement.&lt;br /&gt;
=== Consistency groups ===&lt;br /&gt;
Consistency groups (CGs) are the only construct in Manila that operates on a group of shares.   For some, a CG implies a guarantee of ordered writes by a storage controller, while for others a CG is a mechanism for taking consistent point-in-time snapshots of a set of shares.  A group with either attribute may have value by itself, but the CGs implementation doesn’t distinguish between them.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
CGs are a highly specialized construct with dedicated CLI commands, REST APIs, database tables, scheduler filters, and driver APIs.  None of these are reusable for anything else, and presently none of the rest of Manila has any awareness of CGs.  Even worse, despite all the complexity of the CG feature, only a small minority of storage backends can support them, so the code-to-value ratio is very low.  Finally, the limited availability of CGs ensures the user experience is inconsistent between clouds.&lt;br /&gt;
=== Replication ===&lt;br /&gt;
Replication is another high value feature, and the Manila implementation is arguably clean and flexible, but as constituted there is no core ability to replicate groups of shares.  It seems reasonable to implement the feature iteratively, beginning with replication of single shares.  However, there has been the tacit acknowledgement that some backends would not be able to replicate individual shares, even though those same backends could potentially replicate a group of shares if the group were constituted in a certain way.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Following the precedent established with CGs, one approach would be to introduce ‘replication groups’ whereby multiple shares could be replicated together.  But this would introduce yet another set of APIs, tables, etc. that are too specialized to use for anything else.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Another approach might be to define CGs as the grouping unit of replication, but this makes little sense because consistency groups (however we define them) and replication are distinct features that shouldn’t be artificially bundled for the sake of expediency of definition or implementation.&lt;br /&gt;
=== Migration ===&lt;br /&gt;
Just as some backends may only be able to replicate shares in groups, it follows that those backends may also need to migrate shares in groups.  And in the case of CGs, it doesn’t make sense to migrate CG members individually; the whole group must be moved, requiring the replication engine to be CG aware.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Consider the following reasonable use cases:&lt;br /&gt;
* Replicate a consistency group&lt;br /&gt;
* Snapshot a replication group&lt;br /&gt;
* Migrate a replication group&lt;br /&gt;
* Retype shares in a consistency group&lt;br /&gt;
* Retype shares in a replication group&lt;br /&gt;
* Backup a consistency group&lt;br /&gt;
* Backup a replication group&lt;br /&gt;
* Apply a common policy to a set of shares&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
On the current path, the support matrix has a dimension dedicated solely to features, so each feature must be coded to be interoperable with every other feature.  This quickly becomes a support and testing nightmare, and it becomes exponentially more complicated to add more features going forward.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Fundamentally, the problem is that we are adding features without an underlying architectural framework on which to hang them.  To escape the matrix, we must step back and rethink a few things.&lt;br /&gt;
&lt;br /&gt;
== A simple solution ==&lt;br /&gt;
So to arrive at a solution, let’s enumerate what we have:&lt;br /&gt;
* Primitive objects (shares) with supported operations controlled by share types that vary by backend&lt;br /&gt;
* A very specific group object (CGs) with limited support potential by backends&lt;br /&gt;
* A number of APIs (CGs, etc.) that many users can’t use at all and appear grafted into the project&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
And what would we prefer:&lt;br /&gt;
* A uniform API and user experience that varies as little as possible by backend&lt;br /&gt;
* A clean way to group shares so we can do CGs, multi-object replication, migration, etc.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
How do we get here?&lt;br /&gt;
* Universally available groups of primitive objects with supported operations that vary by backend&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
=== Idea #1: Introduce a generic Share Group object ===&lt;br /&gt;
Just as Manila has ‘shares’, it should also have ‘share groups’.  In its simplest form, unlike CGs, a share group should not guarantee any specialized operation.  Instead, it should merely constitute an atomic Manila data type on which nearly any Manila action is available.  For example, given a share group, the user should be able to select the group in the Manila UI and invoke features such as snapshot, clone, backup, migrate, replicate, retype, etc.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the general case, group actions are handled by the share manager layer (or potentially the common share driver superclass).  For example, invoking ‘snapshot’ on a group causes the share manager to take a snapshot of each group member individually.  The resulting group snapshot object may be used to create a new group, not unlike how CG snapshots were implemented.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There are numerous advantages to this approach.  Every driver, no matter how unsophisticated, can leverage the manageability goodness of groups.  The user experience is uniform, since groups are always available regardless of which backends are present and because nearly every Manila action available on shares is also available on groups.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Of course, feature-rich backends would like to add their secret sauce, whether it be CGs, group-based replication, or whatever else comes along that might be easier/cheaper/faster to do to groups of shares.  That brings us to related idea.&lt;br /&gt;
=== Idea #2: Introduce Share Group types ===&lt;br /&gt;
Just as Manila has ‘share types’, it should also have ‘share group types’.  Any driver that can perform a group operation in an advantaged way may report that as a group capability, such as:&lt;br /&gt;
* Ordered writes&lt;br /&gt;
* Consistent snapshots&lt;br /&gt;
* Group replication&lt;br /&gt;
* Group migration&lt;br /&gt;
* Group backup&lt;br /&gt;
* Group modification&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
As with share types, the cloud administrator predefines share group types that may contain extra specs corresponding to the group capabilities reported by the backends.  And when creating a group, the user specifies one or more share types as well as a group type, and the scheduler then creates the group on one of the backends that match the specified share and share group types.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anytime a group action, such as ‘snapshot’, comes into the share manager, the manager checks whether its driver offers an advantaged implementation of that operation.  If not, the manager handles the workflow itself as described above.  But if so, the manager routes the workflow to its driver for fulfillment.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The advantages of this approach should be obvious.  Manila can add a single set of group APIs that can service all current and future group operations, including CG snapshots, replication, migration, retype, backup, etc.  Development and testing are simplified because there isn’t a need to define and test a different set of group APIs for each feature, or to test every combination of every feature.  Users and admins are already familiar with share types, so introducing share group types would seem a natural and consistent evolution of the same foundational concept.  Instead of becoming an N-by-N matrix of interacting features, Manila largely becomes an N-by-2 matrix of actions that may be invoked on either individual shares or share groups.&lt;br /&gt;
== Manila implementation plan ==&lt;br /&gt;
Implementing generic groups in Manila should be a straightforward series of steps:&lt;br /&gt;
# Implement generic groups.  Because we did CGs, we already know all parts of the codebase that must change to support any kind of group.  So the simplest approach is to modify the CG code to morph it into the generic groups feature.&lt;br /&gt;
# Add the share group type feature by duplicating and customizing the share type code.&lt;br /&gt;
# Enhance the scheduler to place groups according to share group types.  Like #1, this is already informed by the CG project.&lt;br /&gt;
# Implement group snapshots in the share manager to demonstrate group snapshots in any driver.&lt;br /&gt;
# Plumb group snapshots to a CG-capable driver to demonstrate CG functionality in the new framework.&lt;br /&gt;
# Update Tempest to cover all of the above.&lt;br /&gt;
# Update Manila client to change CGs to share groups.&lt;br /&gt;
# Enhance Manila client with share group types.&lt;br /&gt;
# Add share group support to Horizon.  We never built CG support into Horizon, so this is all-new work that now has much broader appeal and applicability.&lt;br /&gt;
# Add additional group actions over time (migrate, replicate, retype, clone, …).  At this point, new group capabilities become vertical slices that are simple to add incrementally.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Because we implemented CGs just recently as an experimental feature, we have the freedom to replace that code without deprecation or upgrade considerations.  Steps 1-8 would get Manila to parity with the CG feature added in Liberty, would require only a few person-weeks of effort, and would better position Manila for long-term evolution and supportability.&lt;br /&gt;
=== Implementation details ===&lt;br /&gt;
There are few things to note, several of which were already solved during the CG work.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Groups are first-class objects in Manila, and operations on groups are treated as atomic.  For example, a user will see a group snapshot but not the individual snapshots of group members.  To enable support by as many backends as possible, Manila will still maintain DB objects for both group and member snapshots, just as was done with CGs.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A few actions, such as extend &amp;amp; shrink, are inherently applicable only to individual shares.  One could theoretically apply extend to a group, increasing the size of each member, but that seems like an unlikely use case.  Any actions in this category must remain available to group members, although most actions such as clone or snapshot would be available only at the group level and not on its members.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A group is limited to a single backend.  Allowing groups that span backends is theoretically possible, but that would require fanout of operations from the API layer to multiple share managers across the asynchronous event bus, which would lead to complicated synchronization and state management for little operational benefit.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As was done with Manila CGs, a driver may optionally limit a group to either the confines of a pool or an entire backend.  It is known that pools are the unit of data motion (i.e. replication or migration) for some backends, so we think drivers need this flexibility.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We considered reusing share types for groups as well.  But share types include a set of public extra specs that may not map well to groups.  And by adding group types as a separate object, there can be little confusion about their purpose and use.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some have noted that extra specs tend to be treated as an AND operation, where all features must be available for a backend to be chosen.  It is conceivable that even if a backend can replicate a group or take consistent snapshots of a group, it might not be able to perform both operations on the same group.  But this problem already exists with share types and hasn’t been a serious issue.  Creating types is an admin-only operation and the burden remains on the admin to understand the capabilities of the backends in use and to create the share types and share group types appropriately.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that this proposal explicitly does not address pool or backend replication, which is fundamentally different.  Actions on shares or share groups are intended for tenants, whereas a pool or backend can contain data from multiple tenants.  So pool or backend operations, while serving potentially valuable use cases, are inherently admin-only workflows that would be designed and exercised differently should Manila support them.&lt;br /&gt;
== Acknowledgments ==&lt;br /&gt;
Most of the analysis and recommendations contained herein apply equally well to Cinder, which is arguably much further down the path of crippling complexity.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This proposal was developed by cknight with input from Manila community members bswartz, ameade, tbarron, and cfouts.&lt;/div&gt;</summary>
		<author><name>Clinton Knight</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Manila/design/manila-generic-groups&amp;diff=99842</id>
		<title>Manila/design/manila-generic-groups</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Manila/design/manila-generic-groups&amp;diff=99842"/>
				<updated>2015-12-16T20:47:19Z</updated>
		
		<summary type="html">&lt;p&gt;Clinton Knight: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Manila generic groups =&lt;br /&gt;
== Executive summary ==&lt;br /&gt;
Manila needs a grouping construct that, like shares, is a 1st-class atomic data type.  Our experience with CGs has demonstrated the complexity of adding a grouping capability, yet there are other use cases such as migration, replication, and backup in which some storage controllers could only offer such features on share groups.  CGs also highlighted the poor optics of an advanced feature with comparatively little potential for vendor support.  And adding new grouping constructs for each new feature is not technically feasible.  All of the above may be addressed by generic groups, which we think is a clean extension to the original architecture of Manila.&lt;br /&gt;
== An Intractable Matrix ==&lt;br /&gt;
Manila is at an exciting time in its development, where all the simple features are available and the community is focused on adding high-value features such as migration, replication, and consistency groups.  Experimental code is available for each of these, but little consideration has been given to the obvious need for these complex features to interact not only with each other but also with whatever additional features were added later.  And looking a little deeper, it is apparent that each of these has limitations that could be solved by a single architectural enhancement.&lt;br /&gt;
=== Consistency groups ===&lt;br /&gt;
Consistency groups (CGs) are the only construct in Manila that operates on a group of shares.   For some, a CG implies a guarantee of ordered writes by a storage controller, while for others a CG is a mechanism for taking consistent point-in-time snapshots of a set of shares.  A group with either attribute may have value by itself, but the CGs implementation doesn’t distinguish between them.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
CGs are a highly specialized construct with dedicated CLI commands, REST APIs, database tables, scheduler filters, and driver APIs.  None of these are reusable for anything else, and presently none of the rest of Manila has any awareness of CGs.  Even worse, despite all the complexity of the CG feature, only a small minority of storage backends can support them, so the code-to-value ratio is very low.  Finally, the limited availability of CGs ensures the user experience is inconsistent between clouds.&lt;br /&gt;
=== Replication ===&lt;br /&gt;
Replication is another high value feature, and the Manila implementation is arguably clean and flexible, but as constituted there is no core ability to replicate groups of shares.  It seems reasonable to implement the feature iteratively, beginning with replication of single shares.  However, there has been the tacit acknowledgement that some backends would not be able to replicate individual shares, even though those same backends could potentially replicate a group of shares if the group were constituted in a certain way.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Following the precedent established with CGs, one approach would be to introduce ‘replication groups’ whereby multiple shares could be replicated together.  But this would introduce yet another set of APIs, tables, etc. that are too specialized to use for anything else.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Another approach might be to define CGs as the grouping unit of replication, but this makes little sense because consistency groups (however we define them) and replication are distinct features that shouldn’t be artificially bundled for the sake of expediency of definition or implementation.&lt;br /&gt;
=== Migration ===&lt;br /&gt;
Just as some backends may only be able to replicate shares in groups, it follows that those backends may also need to migrate shares in groups.  And in the case of CGs, it doesn’t make sense to migrate CG members individually; the whole group must be moved, requiring the replication engine to be CG aware.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Consider the following reasonable use cases:&lt;br /&gt;
* Replicate a consistency group&lt;br /&gt;
* Snapshot a replication group&lt;br /&gt;
* Migrate a replication group&lt;br /&gt;
* Retype shares in a consistency group&lt;br /&gt;
* Retype shares in a replication group&lt;br /&gt;
* Backup a consistency group&lt;br /&gt;
* Backup a replication group&lt;br /&gt;
* Apply a common policy to a set of shares&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
On the current path, the support matrix has a dimension dedicated solely to features, so each feature must be coded to be interoperable with every other feature.  This quickly becomes a support and testing nightmare, and it becomes exponentially more complicated to add more features going forward.&amp;lt;br /&amp;gt;&lt;br /&gt;
Fundamentally, the problem is that we are adding features without an underlying architectural framework on which to hang them.  To escape the matrix, we must step back and rethink a few things.&lt;br /&gt;
&lt;br /&gt;
== A simple solution ==&lt;br /&gt;
So to arrive at a solution, let’s enumerate what we have:&lt;br /&gt;
* Primitive objects (shares) with supported operations controlled by share types that vary by backend&lt;br /&gt;
* A very specific group object (CGs) with limited support potential by backends&lt;br /&gt;
* A number of APIs (CGs, etc.) that many users can’t use at all and appear grafted into the project&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
And what would we prefer:&lt;br /&gt;
* A uniform API and user experience that varies as little as possible by backend&lt;br /&gt;
* A clean way to group shares so we can do CGs, multi-object replication, migration, etc.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
How do we get here?&lt;br /&gt;
* Universally available groups of primitive objects with supported operations that vary by backend&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
=== Idea #1: Introduce a generic Share Group object ===&lt;br /&gt;
Just as Manila has ‘shares’, it should also have ‘share groups’.  In its simplest form, unlike CGs, a share group should not guarantee any specialized operation.  Instead, it should merely constitute an atomic Manila data type on which nearly any Manila action is available.  For example, given a share group, the user should be able to select the group in the Manila UI and invoke features such as snapshot, clone, backup, migrate, replicate, retype, etc.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
In the general case, group actions are handled by the share manager layer (or potentially the common share driver superclass).  For example, invoking ‘snapshot’ on a group causes the share manager to take a snapshot of each group member individually.  The resulting group snapshot object may be used to create a new group, not unlike how CG snapshots were implemented.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
There are numerous advantages to this approach.  Every driver, no matter how unsophisticated, can leverage the manageability goodness of groups.  The user experience is uniform, since groups are always available regardless of which backends are present and because nearly every Manila action available on shares is also available on groups.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Of course, feature-rich backends would like to add their secret sauce, whether it be CGs, group-based replication, or whatever else comes along that might be easier/cheaper/faster to do to groups of shares.  That brings us to related idea.&lt;br /&gt;
=== Idea #2: Introduce Share Group types ===&lt;br /&gt;
Just as Manila has ‘share types’, it should also have ‘share group types’.  Any driver that can perform a group operation in an advantaged way may report that as a group capability, such as:&lt;br /&gt;
* Ordered writes&lt;br /&gt;
* Consistent snapshots&lt;br /&gt;
* Group replication&lt;br /&gt;
* Group migration&lt;br /&gt;
* Group backup&lt;br /&gt;
* Group modification&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
As with share types, the cloud administrator predefines share group types that may contain extra specs corresponding to the group capabilities reported by the backends.  And when creating a group, the user specifies one or more share types as well as a group type, and the scheduler then creates the group on one of the backends that match the specified share and share group types.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Anytime a group action, such as ‘snapshot’, comes into the share manager, the manager checks whether its driver offers an advantaged implementation of that operation.  If not, the manager handles the workflow itself as described above.  But if so, the manager routes the workflow to its driver for fulfillment.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
The advantages of this approach should be obvious.  Manila can add a single set of group APIs that can service all current and future group operations, including CG snapshots, replication, migration, retype, backup, etc.  Development and testing are simplified because there isn’t a need to define and test a different set of group APIs for each feature, or to test every combination of every feature.  Users and admins are already familiar with share types, so introducing share group types would seem a natural and consistent evolution of the same foundational concept.  Instead of becoming an N-by-N matrix of interacting features, Manila largely becomes an N-by-2 matrix of actions that may be invoked on either individual shares or share groups.&lt;br /&gt;
== Manila implementation plan ==&lt;br /&gt;
Implementing generic groups in Manila should be a straightforward series of steps:&lt;br /&gt;
# Implement generic groups.  Because we did CGs, we already know all parts of the codebase that must change to support any kind of group.  So the simplest approach is to modify the CG code to morph it into the generic groups feature.&lt;br /&gt;
# Add the share group type feature by duplicating and customizing the share type code.&lt;br /&gt;
# Enhance the scheduler to place groups according to share group types.  Like #1, this is already informed by the CG project.&lt;br /&gt;
# Implement group snapshots in the share manager to demonstrate group snapshots in any driver.&lt;br /&gt;
# Plumb group snapshots to a CG-capable driver to demonstrate CG functionality in the new framework.&lt;br /&gt;
# Update Tempest to cover all of the above.&lt;br /&gt;
# Update Manila client to change CGs to share groups.&lt;br /&gt;
# Enhance Manila client with share group types.&lt;br /&gt;
# Add share group support to Horizon.  We never built CG support into Horizon, so this is all-new work that now has much broader appeal and applicability.&lt;br /&gt;
# Add additional group actions over time (migrate, replicate, retype, clone, …).  At this point, new group capabilities become vertical slices that are simple to add incrementally.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Because we implemented CGs just recently as an experimental feature, we have the freedom to replace that code without deprecation or upgrade considerations.  Steps 1-8 would get Manila to parity with the CG feature added in Liberty, would require only a few person-weeks of effort, and would better position Manila for long-term evolution and supportability.&lt;br /&gt;
=== Implementation details ===&lt;br /&gt;
There are few things to note, several of which were already solved during the CG work.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Groups are first-class objects in Manila, and operations on groups are treated as atomic.  For example, a user will see a group snapshot but not the individual snapshots of group members.  To enable support by as many backends as possible, Manila will still maintain DB objects for both group and member snapshots, just as was done with CGs.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
A few actions, such as extend &amp;amp; shrink, are inherently applicable only to individual shares.  One could theoretically apply extend to a group, increasing the size of each member, but that seems like an unlikely use case.  Any actions in this category must remain available to group members, although most actions such as clone or snapshot would be available only at the group level and not on its members.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
A group is limited to a single backend.  Allowing groups that span backends is theoretically possible, but that would require fanout of operations from the API layer to multiple share managers across the asynchronous event bus, which would lead to complicated synchronization and state management for little operational benefit.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
As was done with Manila CGs, a driver may optionally limit a group to either the confines of a pool or an entire backend.  It is known that pools are the unit of data motion (i.e. replication or migration) for some backends, so we think drivers need this flexibility.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
We considered reusing share types for groups as well.  But share types include a set of public extra specs that may not map well to groups.  And by adding group types as a separate object, there can be little confusion about their purpose and use.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Some have noted that extra specs tend to be treated as an AND operation, where all features must be available for a backend to be chosen.  It is conceivable that even if a backend can replicate a group or take consistent snapshots of a group, it might not be able to perform both operations on the same group.  But this problem already exists with share types and hasn’t been a serious issue.  Creating types is an admin-only operation and the burden remains on the admin to understand the capabilities of the backends in use and to create the share types and share group types appropriately.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Note that this proposal explicitly does not address pool or backend replication, which is fundamentally different.  Actions on shares or share groups are intended for tenants, whereas a pool or backend can contain data from multiple tenants.  So pool or backend operations, while serving potentially valuable use cases, are inherently admin-only workflows that would be designed and exercised differently should Manila support them.&lt;br /&gt;
== Acknowledgments ==&lt;br /&gt;
Most of the analysis and recommendations contained herein apply equally well to Cinder, which is arguably much further down the path of crippling complexity.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
This proposal was developed by cknight with input from Manila community members bswartz, ameade, tbarron, and cfouts.&lt;/div&gt;</summary>
		<author><name>Clinton Knight</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Manila/design/manila-generic-groups&amp;diff=99841</id>
		<title>Manila/design/manila-generic-groups</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Manila/design/manila-generic-groups&amp;diff=99841"/>
				<updated>2015-12-16T20:46:34Z</updated>
		
		<summary type="html">&lt;p&gt;Clinton Knight: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Manila generic groups =&lt;br /&gt;
== Executive summary ==&lt;br /&gt;
Manila needs a grouping construct that, like shares, is a 1st-class atomic data type.  Our experience with CGs has demonstrated the complexity of adding a grouping capability, yet there are other use cases such as migration, replication, and backup in which some storage controllers could only offer such features on share groups.  CGs also highlighted the poor optics of an advanced feature with comparatively little potential for vendor support.  And adding new grouping constructs for each new feature is not technically feasible.  All of the above may be addressed by generic groups, which we think is a clean extension to the original architecture of Manila.&lt;br /&gt;
== An Intractable Matrix ==&lt;br /&gt;
Manila is at an exciting time in its development, where all the simple features are available and the community is focused on adding high-value features such as migration, replication, and consistency groups.  Experimental code is available for each of these, but little consideration has been given to the obvious need for these complex features to interact not only with each other but also with whatever additional features were added later.  And looking a little deeper, it is apparent that each of these has limitations that could be solved by a single architectural enhancement.&lt;br /&gt;
=== Consistency groups ===&lt;br /&gt;
Consistency groups (CGs) are the only construct in Manila that operates on a group of shares.   For some, a CG implies a guarantee of ordered writes by a storage controller, while for others a CG is a mechanism for taking consistent point-in-time snapshots of a set of shares.  A group with either attribute may have value by itself, but the CGs implementation doesn’t distinguish between them.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
CGs are a highly specialized construct with dedicated CLI commands, REST APIs, database tables, scheduler filters, and driver APIs.  None of these are reusable for anything else, and presently none of the rest of Manila has any awareness of CGs.  Even worse, despite all the complexity of the CG feature, only a small minority of storage backends can support them, so the code-to-value ratio is very low.  Finally, the limited availability of CGs ensures the user experience is inconsistent between clouds.&lt;br /&gt;
=== Replication ===&lt;br /&gt;
Replication is another high value feature, and the Manila implementation is arguably clean and flexible, but as constituted there is no core ability to replicate groups of shares.  It seems reasonable to implement the feature iteratively, beginning with replication of single shares.  However, there has been the tacit acknowledgement that some backends would not be able to replicate individual shares, even though those same backends could potentially replicate a group of shares if the group were constituted in a certain way.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Following the precedent established with CGs, one approach would be to introduce ‘replication groups’ whereby multiple shares could be replicated together.  But this would introduce yet another set of APIs, tables, etc. that are too specialized to use for anything else.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Another approach might be to define CGs as the grouping unit of replication, but this makes little sense because consistency groups (however we define them) and replication are distinct features that shouldn’t be artificially bundled for the sake of expediency of definition or implementation.&lt;br /&gt;
=== Migration ===&lt;br /&gt;
Just as some backends may only be able to replicate shares in groups, it follows that those backends may also need to migrate shares in groups.  And in the case of CGs, it doesn’t make sense to migrate CG members individually; the whole group must be moved, requiring the replication engine to be CG aware.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Consider the following reasonable use cases:&lt;br /&gt;
* Replicate a consistency group&lt;br /&gt;
* Snapshot a replication group&lt;br /&gt;
* Migrate a replication group&lt;br /&gt;
* Retype shares in a consistency group&lt;br /&gt;
* Retype shares in a replication group&lt;br /&gt;
* Backup a consistency group&lt;br /&gt;
* Backup a replication group&lt;br /&gt;
* Apply a common policy to a set of shares&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
On the current path, the support matrix has a dimension dedicated solely to features, so each feature must be coded to be interoperable with every other feature.  This quickly becomes a support and testing nightmare, and it becomes exponentially more complicated to add more features going forward.  Fundamentally, the problem is that we are adding features without an underlying architectural framework on which to hang them.  To escape the matrix, we must step back and rethink a few things.&lt;br /&gt;
&lt;br /&gt;
== A simple solution ==&lt;br /&gt;
So to arrive at a solution, let’s enumerate what we have:&lt;br /&gt;
* Primitive objects (shares) with supported operations controlled by share types that vary by backend&lt;br /&gt;
* A very specific group object (CGs) with limited support potential by backends&lt;br /&gt;
* A number of APIs (CGs, etc.) that many users can’t use at all and appear grafted into the project&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
And what would we prefer:&lt;br /&gt;
* A uniform API and user experience that varies as little as possible by backend&lt;br /&gt;
* A clean way to group shares so we can do CGs, multi-object replication, migration, etc.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
How do we get here?&lt;br /&gt;
* Universally available groups of primitive objects with supported operations that vary by backend&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
=== Idea #1: Introduce a generic Share Group object ===&lt;br /&gt;
Just as Manila has ‘shares’, it should also have ‘share groups’.  In its simplest form, unlike CGs, a share group should not guarantee any specialized operation.  Instead, it should merely constitute an atomic Manila data type on which nearly any Manila action is available.  For example, given a share group, the user should be able to select the group in the Manila UI and invoke features such as snapshot, clone, backup, migrate, replicate, retype, etc.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
In the general case, group actions are handled by the share manager layer (or potentially the common share driver superclass).  For example, invoking ‘snapshot’ on a group causes the share manager to take a snapshot of each group member individually.  The resulting group snapshot object may be used to create a new group, not unlike how CG snapshots were implemented.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
There are numerous advantages to this approach.  Every driver, no matter how unsophisticated, can leverage the manageability goodness of groups.  The user experience is uniform, since groups are always available regardless of which backends are present and because nearly every Manila action available on shares is also available on groups.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Of course, feature-rich backends would like to add their secret sauce, whether it be CGs, group-based replication, or whatever else comes along that might be easier/cheaper/faster to do to groups of shares.  That brings us to related idea.&lt;br /&gt;
=== Idea #2: Introduce Share Group types ===&lt;br /&gt;
Just as Manila has ‘share types’, it should also have ‘share group types’.  Any driver that can perform a group operation in an advantaged way may report that as a group capability, such as:&lt;br /&gt;
* Ordered writes&lt;br /&gt;
* Consistent snapshots&lt;br /&gt;
* Group replication&lt;br /&gt;
* Group migration&lt;br /&gt;
* Group backup&lt;br /&gt;
* Group modification&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
As with share types, the cloud administrator predefines share group types that may contain extra specs corresponding to the group capabilities reported by the backends.  And when creating a group, the user specifies one or more share types as well as a group type, and the scheduler then creates the group on one of the backends that match the specified share and share group types.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Anytime a group action, such as ‘snapshot’, comes into the share manager, the manager checks whether its driver offers an advantaged implementation of that operation.  If not, the manager handles the workflow itself as described above.  But if so, the manager routes the workflow to its driver for fulfillment.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
The advantages of this approach should be obvious.  Manila can add a single set of group APIs that can service all current and future group operations, including CG snapshots, replication, migration, retype, backup, etc.  Development and testing are simplified because there isn’t a need to define and test a different set of group APIs for each feature, or to test every combination of every feature.  Users and admins are already familiar with share types, so introducing share group types would seem a natural and consistent evolution of the same foundational concept.  Instead of becoming an N-by-N matrix of interacting features, Manila largely becomes an N-by-2 matrix of actions that may be invoked on either individual shares or share groups.&lt;br /&gt;
== Manila implementation plan ==&lt;br /&gt;
Implementing generic groups in Manila should be a straightforward series of steps:&lt;br /&gt;
# Implement generic groups.  Because we did CGs, we already know all parts of the codebase that must change to support any kind of group.  So the simplest approach is to modify the CG code to morph it into the generic groups feature.&lt;br /&gt;
# Add the share group type feature by duplicating and customizing the share type code.&lt;br /&gt;
# Enhance the scheduler to place groups according to share group types.  Like #1, this is already informed by the CG project.&lt;br /&gt;
# Implement group snapshots in the share manager to demonstrate group snapshots in any driver.&lt;br /&gt;
# Plumb group snapshots to a CG-capable driver to demonstrate CG functionality in the new framework.&lt;br /&gt;
# Update Tempest to cover all of the above.&lt;br /&gt;
# Update Manila client to change CGs to share groups.&lt;br /&gt;
# Enhance Manila client with share group types.&lt;br /&gt;
# Add share group support to Horizon.  We never built CG support into Horizon, so this is all-new work that now has much broader appeal and applicability.&lt;br /&gt;
# Add additional group actions over time (migrate, replicate, retype, clone, …).  At this point, new group capabilities become vertical slices that are simple to add incrementally.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Because we implemented CGs just recently as an experimental feature, we have the freedom to replace that code without deprecation or upgrade considerations.  Steps 1-8 would get Manila to parity with the CG feature added in Liberty, would require only a few person-weeks of effort, and would better position Manila for long-term evolution and supportability.&lt;br /&gt;
=== Implementation details ===&lt;br /&gt;
There are few things to note, several of which were already solved during the CG work.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Groups are first-class objects in Manila, and operations on groups are treated as atomic.  For example, a user will see a group snapshot but not the individual snapshots of group members.  To enable support by as many backends as possible, Manila will still maintain DB objects for both group and member snapshots, just as was done with CGs.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
A few actions, such as extend &amp;amp; shrink, are inherently applicable only to individual shares.  One could theoretically apply extend to a group, increasing the size of each member, but that seems like an unlikely use case.  Any actions in this category must remain available to group members, although most actions such as clone or snapshot would be available only at the group level and not on its members.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
A group is limited to a single backend.  Allowing groups that span backends is theoretically possible, but that would require fanout of operations from the API layer to multiple share managers across the asynchronous event bus, which would lead to complicated synchronization and state management for little operational benefit.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
As was done with Manila CGs, a driver may optionally limit a group to either the confines of a pool or an entire backend.  It is known that pools are the unit of data motion (i.e. replication or migration) for some backends, so we think drivers need this flexibility.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
We considered reusing share types for groups as well.  But share types include a set of public extra specs that may not map well to groups.  And by adding group types as a separate object, there can be little confusion about their purpose and use.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Some have noted that extra specs tend to be treated as an AND operation, where all features must be available for a backend to be chosen.  It is conceivable that even if a backend can replicate a group or take consistent snapshots of a group, it might not be able to perform both operations on the same group.  But this problem already exists with share types and hasn’t been a serious issue.  Creating types is an admin-only operation and the burden remains on the admin to understand the capabilities of the backends in use and to create the share types and share group types appropriately.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Note that this proposal explicitly does not address pool or backend replication, which is fundamentally different.  Actions on shares or share groups are intended for tenants, whereas a pool or backend can contain data from multiple tenants.  So pool or backend operations, while serving potentially valuable use cases, are inherently admin-only workflows that would be designed and exercised differently should Manila support them.&lt;br /&gt;
== Acknowledgments ==&lt;br /&gt;
Most of the analysis and recommendations contained herein apply equally well to Cinder, which is arguably much further down the path of crippling complexity.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
This proposal was developed by cknight with input from Manila community members bswartz, ameade, tbarron, and cfouts.&lt;/div&gt;</summary>
		<author><name>Clinton Knight</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Manila/design/manila-generic-groups&amp;diff=99840</id>
		<title>Manila/design/manila-generic-groups</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Manila/design/manila-generic-groups&amp;diff=99840"/>
				<updated>2015-12-16T20:45:52Z</updated>
		
		<summary type="html">&lt;p&gt;Clinton Knight: /* Migration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Manila generic groups =&lt;br /&gt;
== Executive summary ==&lt;br /&gt;
Manila needs a grouping construct that, like shares, is a 1st-class atomic data type.  Our experience with CGs has demonstrated the complexity of adding a grouping capability, yet there are other use cases such as migration, replication, and backup in which some storage controllers could only offer such features on share groups.  CGs also highlighted the poor optics of an advanced feature with comparatively little potential for vendor support.  And adding new grouping constructs for each new feature is not technically feasible.  All of the above may be addressed by generic groups, which we think is a clean extension to the original architecture of Manila.&lt;br /&gt;
== An Intractable Matrix ==&lt;br /&gt;
Manila is at an exciting time in its development, where all the simple features are available and the community is focused on adding high-value features such as migration, replication, and consistency groups.  Experimental code is available for each of these, but little consideration has been given to the obvious need for these complex features to interact not only with each other but also with whatever additional features were added later.  And looking a little deeper, it is apparent that each of these has limitations that could be solved by a single architectural enhancement.&lt;br /&gt;
=== Consistency groups ===&lt;br /&gt;
Consistency groups (CGs) are the only construct in Manila that operates on a group of shares.   For some, a CG implies a guarantee of ordered writes by a storage controller, while for others a CG is a mechanism for taking consistent point-in-time snapshots of a set of shares.  A group with either attribute may have value by itself, but the CGs implementation doesn’t distinguish between them.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
CGs are a highly specialized construct with dedicated CLI commands, REST APIs, database tables, scheduler filters, and driver APIs.  None of these are reusable for anything else, and presently none of the rest of Manila has any awareness of CGs.  Even worse, despite all the complexity of the CG feature, only a small minority of storage backends can support them, so the code-to-value ratio is very low.  Finally, the limited availability of CGs ensures the user experience is inconsistent between clouds.&lt;br /&gt;
=== Replication ===&lt;br /&gt;
Replication is another high value feature, and the Manila implementation is arguably clean and flexible, but as constituted there is no core ability to replicate groups of shares.  It seems reasonable to implement the feature iteratively, beginning with replication of single shares.  However, there has been the tacit acknowledgement that some backends would not be able to replicate individual shares, even though those same backends could potentially replicate a group of shares if the group were constituted in a certain way.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Following the precedent established with CGs, one approach would be to introduce ‘replication groups’ whereby multiple shares could be replicated together.  But this would introduce yet another set of APIs, tables, etc. that are too specialized to use for anything else.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Another approach might be to define CGs as the grouping unit of replication, but this makes little sense because consistency groups (however we define them) and replication are distinct features that shouldn’t be artificially bundled for the sake of expediency of definition or implementation.&lt;br /&gt;
=== Migration ===&lt;br /&gt;
Just as some backends may only be able to replicate shares in groups, it follows that those backends may also need to migrate shares in groups.  And in the case of CGs, it doesn’t make sense to migrate CG members individually; the whole group must be moved, requiring the replication engine to be CG aware.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Consider the following reasonable use cases:&lt;br /&gt;
* Replicate a consistency group&lt;br /&gt;
* Snapshot a replication group&lt;br /&gt;
* Migrate a replication group&lt;br /&gt;
* Retype shares in a consistency group&lt;br /&gt;
* Retype shares in a replication group&lt;br /&gt;
* Backup a consistency group&lt;br /&gt;
* Backup a replication group&lt;br /&gt;
* Apply a common policy to a set of shares&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
On the current path, the support matrix has a dimension dedicated solely to features, so each feature must be coded to be interoperable with every other feature.  This quickly becomes a support and testing nightmare, and it becomes exponentially more complicated to add more features going forward.  Fundamentally, the problem is that we are adding features without an underlying architectural framework on which to hang them.  To escape the matrix, we must step back and rethink a few things.&lt;br /&gt;
&lt;br /&gt;
== A simple solution ==&lt;br /&gt;
So to arrive at a solution, let’s enumerate what we have:&lt;br /&gt;
* Primitive objects (shares) with supported operations controlled by share types that vary by backend&lt;br /&gt;
* A very specific group object (CGs) with limited support potential by backends&lt;br /&gt;
* A number of APIs (CGs, etc.) that many users can’t use at all and appear grafted into the project&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
And what would we prefer:&lt;br /&gt;
* A uniform API and user experience that varies as little as possible by backend&lt;br /&gt;
* A clean way to group shares so we can do CGs, multi-object replication, migration, etc.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
How do we get here?&lt;br /&gt;
* Universally available groups of primitive objects with supported operations that vary by backend&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
=== Idea #1: Introduce a generic Share Group object ===&lt;br /&gt;
Just as Manila has ‘shares’, it should also have ‘share groups’.  In its simplest form, unlike CGs, a share group should not guarantee any specialized operation.  Instead, it should merely constitute an atomic Manila data type on which nearly any Manila action is available.  For example, given a share group, the user should be able to select the group in the Manila UI and invoke features such as snapshot, clone, backup, migrate, replicate, retype, etc.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
In the general case, group actions are handled by the share manager layer (or potentially the common share driver superclass).  For example, invoking ‘snapshot’ on a group causes the share manager to take a snapshot of each group member individually.  The resulting group snapshot object may be used to create a new group, not unlike how CG snapshots were implemented.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
There are numerous advantages to this approach.  Every driver, no matter how unsophisticated, can leverage the manageability goodness of groups.  The user experience is uniform, since groups are always available regardless of which backends are present and because nearly every Manila action available on shares is also available on groups.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Of course, feature-rich backends would like to add their secret sauce, whether it be CGs, group-based replication, or whatever else comes along that might be easier/cheaper/faster to do to groups of shares.  That brings us to related idea.&lt;br /&gt;
=== Idea #2: Introduce Share Group types ===&lt;br /&gt;
Just as Manila has ‘share types’, it should also have ‘share group types’.  Any driver that can perform a group operation in an advantaged way may report that as a group capability, such as:&lt;br /&gt;
* Ordered writes&lt;br /&gt;
* Consistent snapshots&lt;br /&gt;
* Group replication&lt;br /&gt;
* Group migration&lt;br /&gt;
* Group backup&lt;br /&gt;
* Group modification&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
As with share types, the cloud administrator predefines share group types that may contain extra specs corresponding to the group capabilities reported by the backends.  And when creating a group, the user specifies one or more share types as well as a group type, and the scheduler then creates the group on one of the backends that match the specified share and share group types.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Anytime a group action, such as ‘snapshot’, comes into the share manager, the manager checks whether its driver offers an advantaged implementation of that operation.  If not, the manager handles the workflow itself as described above.  But if so, the manager routes the workflow to its driver for fulfillment.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
The advantages of this approach should be obvious.  Manila can add a single set of group APIs that can service all current and future group operations, including CG snapshots, replication, migration, retype, backup, etc.  Development and testing are simplified because there isn’t a need to define and test a different set of group APIs for each feature, or to test every combination of every feature.  Users and admins are already familiar with share types, so introducing share group types would seem a natural and consistent evolution of the same foundational concept.  Instead of becoming an N-by-N matrix of interacting features, Manila largely becomes an N-by-2 matrix of actions that may be invoked on either individual shares or share groups.&lt;br /&gt;
== Manila implementation plan ==&lt;br /&gt;
Implementing generic groups in Manila should be a straightforward series of steps:&lt;br /&gt;
# Implement generic groups.  Because we did CGs, we already know all parts of the codebase that must change to support any kind of group.  So the simplest approach is to modify the CG code to morph it into the generic groups feature.&lt;br /&gt;
# Add the share group type feature by duplicating and customizing the share type code.&lt;br /&gt;
# Enhance the scheduler to place groups according to share group types.  Like #1, this is already informed by the CG project.&lt;br /&gt;
# Implement group snapshots in the share manager to demonstrate group snapshots in any driver.&lt;br /&gt;
# Plumb group snapshots to a CG-capable driver to demonstrate CG functionality in the new framework.&lt;br /&gt;
# Update Tempest to cover all of the above.&lt;br /&gt;
# Update Manila client to change CGs to share groups.&lt;br /&gt;
# Enhance Manila client with share group types.&lt;br /&gt;
# Add share group support to Horizon.  We never built CG support into Horizon, so this is all-new work that now has much broader appeal and applicability.&lt;br /&gt;
# Add additional group actions over time (migrate, replicate, retype, clone, …).  At this point, new group capabilities become vertical slices that are simple to add incrementally.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Because we implemented CGs just recently as an experimental feature, we have the freedom to replace that code without deprecation or upgrade considerations.  Steps 1-8 would get Manila to parity with the CG feature added in Liberty, would require only a few person-weeks of effort, and would better position Manila for long-term evolution and supportability.&lt;br /&gt;
=== Implementation details ===&lt;br /&gt;
There are few things to note, several of which were already solved during the CG work.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Groups are first-class objects in Manila, and operations on groups are treated as atomic.  For example, a user will see a group snapshot but not the individual snapshots of group members.  To enable support by as many backends as possible, Manila will still maintain DB objects for both group and member snapshots, just as was done with CGs.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
A few actions, such as extend &amp;amp; shrink, are inherently applicable only to individual shares.  One could theoretically apply extend to a group, increasing the size of each member, but that seems like an unlikely use case.  Any actions in this category must remain available to group members, although most actions such as clone or snapshot would be available only at the group level and not on its members.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
A group is limited to a single backend.  Allowing groups that span backends is theoretically possible, but that would require fanout of operations from the API layer to multiple share managers across the asynchronous event bus, which would lead to complicated synchronization and state management for little operational benefit.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
As was done with Manila CGs, a driver may optionally limit a group to either the confines of a pool or an entire backend.  It is known that pools are the unit of data motion (i.e. replication or migration) for some backends, so we think drivers need this flexibility.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
We considered reusing share types for groups as well.  But share types include a set of public extra specs that may not map well to groups.  And by adding group types as a separate object, there can be little confusion about their purpose and use.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Some have noted that extra specs tend to be treated as an AND operation, where all features must be available for a backend to be chosen.  It is conceivable that even if a backend can replicate a group or take consistent snapshots of a group, it might not be able to perform both operations on the same group.  But this problem already exists with share types and hasn’t been a serious issue.  Creating types is an admin-only operation and the burden remains on the admin to understand the capabilities of the backends in use and to create the share types and share group types appropriately.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Note that this proposal explicitly does not address pool or backend replication, which is fundamentally different.  Actions on shares or share groups are intended for tenants, whereas a pool or backend can contain data from multiple tenants.  So pool or backend operations, while serving potentially valuable use cases, are inherently admin-only workflows that would be designed and exercised differently should Manila support them.&lt;br /&gt;
== Acknowledgments ==&lt;br /&gt;
Most of the analysis and recommendations contained herein apply equally well to Cinder, which is arguably much further down the path of crippling complexity.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
This proposal was developed by cknight with input from Manila community members bswartz, ameade, tbarron, and cfouts.&lt;/div&gt;</summary>
		<author><name>Clinton Knight</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Manila/design/manila-generic-groups&amp;diff=99839</id>
		<title>Manila/design/manila-generic-groups</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Manila/design/manila-generic-groups&amp;diff=99839"/>
				<updated>2015-12-16T20:45:19Z</updated>
		
		<summary type="html">&lt;p&gt;Clinton Knight: Created page with &amp;quot;= Manila generic groups = == Executive summary == Manila needs a grouping construct that, like shares, is a 1st-class atomic data type.  Our experience with CGs has demonstrat...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Manila generic groups =&lt;br /&gt;
== Executive summary ==&lt;br /&gt;
Manila needs a grouping construct that, like shares, is a 1st-class atomic data type.  Our experience with CGs has demonstrated the complexity of adding a grouping capability, yet there are other use cases such as migration, replication, and backup in which some storage controllers could only offer such features on share groups.  CGs also highlighted the poor optics of an advanced feature with comparatively little potential for vendor support.  And adding new grouping constructs for each new feature is not technically feasible.  All of the above may be addressed by generic groups, which we think is a clean extension to the original architecture of Manila.&lt;br /&gt;
== An Intractable Matrix ==&lt;br /&gt;
Manila is at an exciting time in its development, where all the simple features are available and the community is focused on adding high-value features such as migration, replication, and consistency groups.  Experimental code is available for each of these, but little consideration has been given to the obvious need for these complex features to interact not only with each other but also with whatever additional features were added later.  And looking a little deeper, it is apparent that each of these has limitations that could be solved by a single architectural enhancement.&lt;br /&gt;
=== Consistency groups ===&lt;br /&gt;
Consistency groups (CGs) are the only construct in Manila that operates on a group of shares.   For some, a CG implies a guarantee of ordered writes by a storage controller, while for others a CG is a mechanism for taking consistent point-in-time snapshots of a set of shares.  A group with either attribute may have value by itself, but the CGs implementation doesn’t distinguish between them.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
CGs are a highly specialized construct with dedicated CLI commands, REST APIs, database tables, scheduler filters, and driver APIs.  None of these are reusable for anything else, and presently none of the rest of Manila has any awareness of CGs.  Even worse, despite all the complexity of the CG feature, only a small minority of storage backends can support them, so the code-to-value ratio is very low.  Finally, the limited availability of CGs ensures the user experience is inconsistent between clouds.&lt;br /&gt;
=== Replication ===&lt;br /&gt;
Replication is another high value feature, and the Manila implementation is arguably clean and flexible, but as constituted there is no core ability to replicate groups of shares.  It seems reasonable to implement the feature iteratively, beginning with replication of single shares.  However, there has been the tacit acknowledgement that some backends would not be able to replicate individual shares, even though those same backends could potentially replicate a group of shares if the group were constituted in a certain way.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Following the precedent established with CGs, one approach would be to introduce ‘replication groups’ whereby multiple shares could be replicated together.  But this would introduce yet another set of APIs, tables, etc. that are too specialized to use for anything else.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Another approach might be to define CGs as the grouping unit of replication, but this makes little sense because consistency groups (however we define them) and replication are distinct features that shouldn’t be artificially bundled for the sake of expediency of definition or implementation.&lt;br /&gt;
=== Migration ===&lt;br /&gt;
Just as some backends may only be able to replicate shares in groups, it follows that those backends may also need to migrate shares in groups.  And in the case of CGs, it doesn’t make sense to migrate CG members individually; the whole group must be moved, requiring the replication engine to be CG aware.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Consider the following reasonable use cases:&lt;br /&gt;
* Replicate a consistency group&lt;br /&gt;
* Snapshot a replication group&lt;br /&gt;
* Migrate a replication group&lt;br /&gt;
* Retype shares in a consistency group&lt;br /&gt;
* Retype shares in a replication group&lt;br /&gt;
* Backup a consistency group&lt;br /&gt;
* Backup a replication group&lt;br /&gt;
* Apply a common policy to a set of shares&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
On the current path, the support matrix has a dimension dedicated solely to features, so each feature must be coded to be interoperable with every other feature.  This quickly becomes a support and testing nightmare, and it becomes exponentially more complicated to add more features going forward.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Fundamentally, the problem is that we are adding features without an underlying architectural framework on which to hang them.  To escape the matrix, we must step back and rethink a few things.&lt;br /&gt;
== A simple solution ==&lt;br /&gt;
So to arrive at a solution, let’s enumerate what we have:&lt;br /&gt;
* Primitive objects (shares) with supported operations controlled by share types that vary by backend&lt;br /&gt;
* A very specific group object (CGs) with limited support potential by backends&lt;br /&gt;
* A number of APIs (CGs, etc.) that many users can’t use at all and appear grafted into the project&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
And what would we prefer:&lt;br /&gt;
* A uniform API and user experience that varies as little as possible by backend&lt;br /&gt;
* A clean way to group shares so we can do CGs, multi-object replication, migration, etc.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
How do we get here?&lt;br /&gt;
* Universally available groups of primitive objects with supported operations that vary by backend&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
=== Idea #1: Introduce a generic Share Group object ===&lt;br /&gt;
Just as Manila has ‘shares’, it should also have ‘share groups’.  In its simplest form, unlike CGs, a share group should not guarantee any specialized operation.  Instead, it should merely constitute an atomic Manila data type on which nearly any Manila action is available.  For example, given a share group, the user should be able to select the group in the Manila UI and invoke features such as snapshot, clone, backup, migrate, replicate, retype, etc.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
In the general case, group actions are handled by the share manager layer (or potentially the common share driver superclass).  For example, invoking ‘snapshot’ on a group causes the share manager to take a snapshot of each group member individually.  The resulting group snapshot object may be used to create a new group, not unlike how CG snapshots were implemented.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
There are numerous advantages to this approach.  Every driver, no matter how unsophisticated, can leverage the manageability goodness of groups.  The user experience is uniform, since groups are always available regardless of which backends are present and because nearly every Manila action available on shares is also available on groups.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Of course, feature-rich backends would like to add their secret sauce, whether it be CGs, group-based replication, or whatever else comes along that might be easier/cheaper/faster to do to groups of shares.  That brings us to related idea.&lt;br /&gt;
=== Idea #2: Introduce Share Group types ===&lt;br /&gt;
Just as Manila has ‘share types’, it should also have ‘share group types’.  Any driver that can perform a group operation in an advantaged way may report that as a group capability, such as:&lt;br /&gt;
* Ordered writes&lt;br /&gt;
* Consistent snapshots&lt;br /&gt;
* Group replication&lt;br /&gt;
* Group migration&lt;br /&gt;
* Group backup&lt;br /&gt;
* Group modification&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
As with share types, the cloud administrator predefines share group types that may contain extra specs corresponding to the group capabilities reported by the backends.  And when creating a group, the user specifies one or more share types as well as a group type, and the scheduler then creates the group on one of the backends that match the specified share and share group types.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Anytime a group action, such as ‘snapshot’, comes into the share manager, the manager checks whether its driver offers an advantaged implementation of that operation.  If not, the manager handles the workflow itself as described above.  But if so, the manager routes the workflow to its driver for fulfillment.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
The advantages of this approach should be obvious.  Manila can add a single set of group APIs that can service all current and future group operations, including CG snapshots, replication, migration, retype, backup, etc.  Development and testing are simplified because there isn’t a need to define and test a different set of group APIs for each feature, or to test every combination of every feature.  Users and admins are already familiar with share types, so introducing share group types would seem a natural and consistent evolution of the same foundational concept.  Instead of becoming an N-by-N matrix of interacting features, Manila largely becomes an N-by-2 matrix of actions that may be invoked on either individual shares or share groups.&lt;br /&gt;
== Manila implementation plan ==&lt;br /&gt;
Implementing generic groups in Manila should be a straightforward series of steps:&lt;br /&gt;
# Implement generic groups.  Because we did CGs, we already know all parts of the codebase that must change to support any kind of group.  So the simplest approach is to modify the CG code to morph it into the generic groups feature.&lt;br /&gt;
# Add the share group type feature by duplicating and customizing the share type code.&lt;br /&gt;
# Enhance the scheduler to place groups according to share group types.  Like #1, this is already informed by the CG project.&lt;br /&gt;
# Implement group snapshots in the share manager to demonstrate group snapshots in any driver.&lt;br /&gt;
# Plumb group snapshots to a CG-capable driver to demonstrate CG functionality in the new framework.&lt;br /&gt;
# Update Tempest to cover all of the above.&lt;br /&gt;
# Update Manila client to change CGs to share groups.&lt;br /&gt;
# Enhance Manila client with share group types.&lt;br /&gt;
# Add share group support to Horizon.  We never built CG support into Horizon, so this is all-new work that now has much broader appeal and applicability.&lt;br /&gt;
# Add additional group actions over time (migrate, replicate, retype, clone, …).  At this point, new group capabilities become vertical slices that are simple to add incrementally.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Because we implemented CGs just recently as an experimental feature, we have the freedom to replace that code without deprecation or upgrade considerations.  Steps 1-8 would get Manila to parity with the CG feature added in Liberty, would require only a few person-weeks of effort, and would better position Manila for long-term evolution and supportability.&lt;br /&gt;
=== Implementation details ===&lt;br /&gt;
There are few things to note, several of which were already solved during the CG work.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Groups are first-class objects in Manila, and operations on groups are treated as atomic.  For example, a user will see a group snapshot but not the individual snapshots of group members.  To enable support by as many backends as possible, Manila will still maintain DB objects for both group and member snapshots, just as was done with CGs.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
A few actions, such as extend &amp;amp; shrink, are inherently applicable only to individual shares.  One could theoretically apply extend to a group, increasing the size of each member, but that seems like an unlikely use case.  Any actions in this category must remain available to group members, although most actions such as clone or snapshot would be available only at the group level and not on its members.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
A group is limited to a single backend.  Allowing groups that span backends is theoretically possible, but that would require fanout of operations from the API layer to multiple share managers across the asynchronous event bus, which would lead to complicated synchronization and state management for little operational benefit.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
As was done with Manila CGs, a driver may optionally limit a group to either the confines of a pool or an entire backend.  It is known that pools are the unit of data motion (i.e. replication or migration) for some backends, so we think drivers need this flexibility.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
We considered reusing share types for groups as well.  But share types include a set of public extra specs that may not map well to groups.  And by adding group types as a separate object, there can be little confusion about their purpose and use.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Some have noted that extra specs tend to be treated as an AND operation, where all features must be available for a backend to be chosen.  It is conceivable that even if a backend can replicate a group or take consistent snapshots of a group, it might not be able to perform both operations on the same group.  But this problem already exists with share types and hasn’t been a serious issue.  Creating types is an admin-only operation and the burden remains on the admin to understand the capabilities of the backends in use and to create the share types and share group types appropriately.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Note that this proposal explicitly does not address pool or backend replication, which is fundamentally different.  Actions on shares or share groups are intended for tenants, whereas a pool or backend can contain data from multiple tenants.  So pool or backend operations, while serving potentially valuable use cases, are inherently admin-only workflows that would be designed and exercised differently should Manila support them.&lt;br /&gt;
== Acknowledgments ==&lt;br /&gt;
Most of the analysis and recommendations contained herein apply equally well to Cinder, which is arguably much further down the path of crippling complexity.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
This proposal was developed by cknight with input from Manila community members bswartz, ameade, tbarron, and cfouts.&lt;/div&gt;</summary>
		<author><name>Clinton Knight</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Manila/Meetings&amp;diff=99365</id>
		<title>Manila/Meetings</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Manila/Meetings&amp;diff=99365"/>
				<updated>2015-12-10T14:59:42Z</updated>
		
		<summary type="html">&lt;p&gt;Clinton Knight: /* Next meeting */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Weekly Manila team meeting =&lt;br /&gt;
'''NOTE MEETING TIME: Thursday at 15:00 UTC'''&lt;br /&gt;
&lt;br /&gt;
If you're interested in management of shared filesystems for OpenStack, we have a weekly meetings in &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;#openstack-meeting-alt&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;, on Thursdays at 15:00 UTC.  Please feel free to add items to the agenda below.  NOTE: When adding topics please include your IRC name so we know who's topic it is and how to get more info.&lt;br /&gt;
&lt;br /&gt;
== Next meeting ==&lt;br /&gt;
'''NOTE:''' ''Include your IRC nickname next to agenda items so that you can be called upon in the meeting and arrive at the meeting promptly if placing items in agenda. You might want to put this on your calendar if you are adding items.''&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 10 Dec, 2015, 15:00 UTC'''&lt;br /&gt;
# The most of the driver already report the &amp;quot;'QoS_support': False&amp;quot; to scheduler. Does we need to remove it or save it as Qos support flat? and write 'QoS_support' to capabilities_and_extra_specs.rst?(zhongjun)&lt;br /&gt;
##https://github.com/openstack/manila/blob/master/manila/share/drivers/hpe/hpe_3par_driver.py#L391&lt;br /&gt;
##https://github.com/openstack/manila/blob/master/manila/share/drivers/hitachi/hds_hnas.py#L354&lt;br /&gt;
##https://github.com/openstack/manila/blob/master/manila/share/drivers/netapp/dataontap/cluster_mode/lib_base.py#L257&lt;br /&gt;
##https://github.com/openstack/manila/blob/master/manila/scheduler/host_manager.py#L111&lt;br /&gt;
##https://review.openstack.org/#/c/247286/4/doc/source/devref/capabilities_and_extra_specs.rst&lt;br /&gt;
# Architectural concerns and interoperability of new features (cknight)&lt;br /&gt;
# Open Discussion&lt;br /&gt;
&lt;br /&gt;
== Previous meetings ==&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 3 Dec, 2015, 15:00 UTC'''&lt;br /&gt;
# Midcycle meetup&lt;br /&gt;
# Add &amp;quot;data loss&amp;quot; flag in DB migrations which lead to losing of existing data and update &amp;quot;manila-manage db sync&amp;quot; command to forbid applying such migrations without &amp;quot;--force&amp;quot; flag (u_glide)&lt;br /&gt;
# Reorganization of Manila scheduler to merge oslo-incubator code and simplify future maintenance  (cknight)&lt;br /&gt;
## https://review.openstack.org/#/c/252060/&lt;br /&gt;
## Mostly for awareness, this is now merged and should be backwards compatible.&lt;br /&gt;
## Cinder could benefit from a similar treatment.  And with the incubator gone, we could explore a common library with the Cinder team, since the heretofore shared components are certain to diverge over time, but I'm not sure how receptive they would be.  Xing?&lt;br /&gt;
# CI reliability&lt;br /&gt;
## Why should we merge patches for drivers whose CI systems consistently fail?  This negates the value of CI.  I think that accepting patches that aren't proven by CI does a disservice to everyone, most of all to the driver owners themselves.  Refusing to merge driver patches without a good CI result for that driver seems like a gentler and more uniform-over-time approach than threatening to throw out a driver near the end of a release.  And why make our illustrious and overworked PTL be the CI policeman when all core reviewers could simply glance at the corresponding CI result before giving +A?  (cknight)&lt;br /&gt;
## http://ci-watch.tintri.com/project?project=manila&lt;br /&gt;
## https://review.openstack.org/#/c/232293/&lt;br /&gt;
## https://review.openstack.org/#/c/235522/&lt;br /&gt;
## https://review.openstack.org/#/c/235726/&lt;br /&gt;
## https://review.openstack.org/#/c/249999/&lt;br /&gt;
## https://review.openstack.org/#/c/237454/&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 19 Nov, 2015, 15:00 UTC'''&lt;br /&gt;
# GB --&amp;gt; GiB (markstur)&lt;br /&gt;
# OpenStack Manuals and Devref (markstur)&lt;br /&gt;
#* Config Ref (and others) are moving to .RST!&lt;br /&gt;
#* How should we document prior releases in devref?&lt;br /&gt;
# Midcycle Meetup Date (bswartz)&lt;br /&gt;
# Deadlines for features (bswartz)&lt;br /&gt;
#* Feature proposal freeze vs Big Features&lt;br /&gt;
#* New drivers&lt;br /&gt;
# Data Copy Service network approach discussion (ganso)&lt;br /&gt;
#* https://drive.google.com/file/d/0B30HPZmaePCHMlAzcjJlYm5rRTA/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 12 Nov, 2015, 15:00 UTC'''&lt;br /&gt;
# Which method is better for Manila QoS(independent way or just use extra specs ) (zhongjun)&lt;br /&gt;
#* link:http://paste.openstack.org/show/477677/ &lt;br /&gt;
#*If use extra specs to config QoS, Does we first need add “QoS_support=true/false” in share_type. Does we need to add QoS_support flag in common capabilities&lt;br /&gt;
#**https://github.com/openstack/manila/blob/master/doc/source/devref/capabilities_and_extra_specs.rst)?&lt;br /&gt;
#** eg:  share_type: qos_support='&amp;lt;is&amp;gt; True' or '&amp;lt;is&amp;gt; False' &lt;br /&gt;
#**                            netapp:max_iops=100  or qos:netapp:max_iops=100 or qos:max_iops=100&lt;br /&gt;
#**        driver update: qos_support=true&lt;br /&gt;
#** An alternative could be to have the driver report a range&lt;br /&gt;
# Manila DR update (ameade)&lt;br /&gt;
#* Still no reviews on https://review.openstack.org/#/c/238572/&lt;br /&gt;
#* First-party driver implementation? Which driver, current generic or new solution? When do we need this implemented and who wants to do it?&lt;br /&gt;
#* Replication_change share state - This is the state of the share when any of it's replicas are being promoted. Is 'replication_change' good or is there a better phrase?&lt;br /&gt;
# Manila Driver minimum requirements document update (ganso)&lt;br /&gt;
# Manila Data Copy service name (bswartz)&lt;br /&gt;
#*https://review.openstack.org/#/c/244286/&lt;br /&gt;
# Upcoming change for Manila CI hooks (vponomaryov)&lt;br /&gt;
#*https://review.openstack.org/#/c/243233/&lt;br /&gt;
# Manilaclient enhancement to provide request_id when set http_log_debug is True. It will co-ordinate the request and its id, so it will be helpful to filter the log and the failed request. (Jay Xu)&lt;br /&gt;
#*http://paste.openstack.org/show/478675/&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 5 Nov, 2015, 15:00 UTC'''&lt;br /&gt;
# Decide on read-only access rules as a required feature&lt;br /&gt;
# Manila DR - Design/Code feedback (gouthamr) &lt;br /&gt;
#* [https://wiki.openstack.org/wiki/Manila/design/manila-mitaka-data-replication Design Document]&lt;br /&gt;
#* [https://review.openstack.org/#/c/238572/ Core Implementation on Gerrit]&lt;br /&gt;
#* [https://review.openstack.org/#/c/235448/ Client Implementation on Gerrit]&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 1 Oct, 2015, 15:00 UTC'''&lt;br /&gt;
# Liberty RC2 status&lt;br /&gt;
#* https://launchpad.net/manila/+milestone/liberty-rc2&lt;br /&gt;
#* https://review.openstack.org/#/q/project:openstack/manila+branch:stable/liberty,n,z&lt;br /&gt;
# Mitaka Design Summit&lt;br /&gt;
#* https://etherpad.openstack.org/p/manila-mitaka-summit-topics&lt;br /&gt;
# Vendor driver docs&lt;br /&gt;
#* https://github.com/openstack/manila/blob/master/doc/source/devref/share_back_ends_feature_support_mapping.rst&lt;br /&gt;
# Manila Client Nova Style Microversion Support (cfouts)&lt;br /&gt;
#* https://review.openstack.org/#/c/229142/&lt;br /&gt;
#* http://docs.openstack.org/developer/manila/devref/api_microversion_dev.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 24 Sep, 2015, 15:00 UTC'''&lt;br /&gt;
# 3rd-party CI status&lt;br /&gt;
#* http://ec2-54-67-102-119.us-west-1.compute.amazonaws.com:5000/?project=openstack/manila&amp;amp;user=&amp;amp;timeframe=72&amp;amp;start=&amp;amp;end=&amp;amp;page_size=500&lt;br /&gt;
#* http://ci-watch.tintri.com/project?project=manila&lt;br /&gt;
# Liberty RC status&lt;br /&gt;
# Support for QoS in Manila (zhongjun2)&lt;br /&gt;
#* https://blueprints.launchpad.net/manila/+spec/manila-support-qos&lt;br /&gt;
#* https://wiki.openstack.org/wiki/Manila/QoS&lt;br /&gt;
# Reminder for backend driver maintainers to update feature support table (toabctl)&lt;br /&gt;
#* http://docs.openstack.org/developer/manila/devref/share_back_ends_feature_support_mapping.html&lt;br /&gt;
# Regression when using NetApp - license issue with netapp_lib (toabctl)&lt;br /&gt;
#* https://bugs.launchpad.net/cinder/+bug/1499334&lt;br /&gt;
# Mitaka Design Summit&lt;br /&gt;
#* Propose topics - https://etherpad.openstack.org/p/manila-mitaka-summit-topics&lt;br /&gt;
# Vendor driver docs&lt;br /&gt;
# Open Discussion&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
http://eavesdrop.openstack.org/meetings/manila/&lt;/div&gt;</summary>
		<author><name>Clinton Knight</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Manila/Meetings&amp;diff=98687</id>
		<title>Manila/Meetings</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Manila/Meetings&amp;diff=98687"/>
				<updated>2015-12-03T04:58:23Z</updated>
		
		<summary type="html">&lt;p&gt;Clinton Knight: /* Next meeting */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Weekly Manila team meeting =&lt;br /&gt;
'''NOTE MEETING TIME: Thursday at 15:00 UTC'''&lt;br /&gt;
&lt;br /&gt;
If you're interested in management of shared filesystems for OpenStack, we have a weekly meetings in &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;#openstack-meeting-alt&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;, on Thursdays at 15:00 UTC.  Please feel free to add items to the agenda below.  NOTE: When adding topics please include your IRC name so we know who's topic it is and how to get more info.&lt;br /&gt;
&lt;br /&gt;
== Next meeting ==&lt;br /&gt;
'''NOTE:''' ''Include your IRC nickname next to agenda items so that you can be called upon in the meeting and arrive at the meeting promptly if placing items in agenda. You might want to put this on your calendar if you are adding items.''&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 3 Dec, 2015, 15:00 UTC'''&lt;br /&gt;
# Add &amp;quot;data loss&amp;quot; flag in DB migrations which lead to losing of existing data and update &amp;quot;manila-manage db sync&amp;quot; command to forbid applying such migrations without &amp;quot;--force&amp;quot; flag (u_glide)&lt;br /&gt;
# Reorganization of Manila scheduler to merge oslo-incubator code and simplify future maintenance  (cknight)&lt;br /&gt;
## https://review.openstack.org/#/c/252060/&lt;br /&gt;
## Mostly for awareness, this is now merged and should be backwards compatible.&lt;br /&gt;
## Cinder could benefit from a similar treatment.  And with the incubator gone, we could explore a common library with the Cinder team, since the heretofore shared components are certain to diverge over time, but I'm not sure how receptive they would be.  Xing?&lt;br /&gt;
# CI reliability&lt;br /&gt;
## Why should we merge patches for drivers whose CI systems consistently fail?  This negates the value of CI.  I think that accepting patches that aren't proven by CI does a disservice to everyone, most of all to the driver owners themselves.  Refusing to merge driver patches without a good CI result for that driver seems like a gentler and more uniform-over-time approach than threatening to throw out a driver near the end of a release.  And why make our illustrious and overworked PTL be the CI policeman when all core reviewers could simply glance at the corresponding CI result before giving +A?  (cknight)&lt;br /&gt;
## http://ci-watch.tintri.com/project?project=manila&lt;br /&gt;
## https://review.openstack.org/#/c/232293/&lt;br /&gt;
## https://review.openstack.org/#/c/235522/&lt;br /&gt;
## https://review.openstack.org/#/c/235726/&lt;br /&gt;
## https://review.openstack.org/#/c/249999/&lt;br /&gt;
## https://review.openstack.org/#/c/237454/&lt;br /&gt;
# Open Discussion&lt;br /&gt;
&lt;br /&gt;
== Previous meetings ==&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 19 Nov, 2015, 15:00 UTC'''&lt;br /&gt;
# GB --&amp;gt; GiB (markstur)&lt;br /&gt;
# OpenStack Manuals and Devref (markstur)&lt;br /&gt;
#* Config Ref (and others) are moving to .RST!&lt;br /&gt;
#* How should we document prior releases in devref?&lt;br /&gt;
# Midcycle Meetup Date (bswartz)&lt;br /&gt;
# Deadlines for features (bswartz)&lt;br /&gt;
#* Feature proposal freeze vs Big Features&lt;br /&gt;
#* New drivers&lt;br /&gt;
# Data Copy Service network approach discussion (ganso)&lt;br /&gt;
#* https://drive.google.com/file/d/0B30HPZmaePCHMlAzcjJlYm5rRTA/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 12 Nov, 2015, 15:00 UTC'''&lt;br /&gt;
# Which method is better for Manila QoS(independent way or just use extra specs ) (zhongjun)&lt;br /&gt;
#* link:http://paste.openstack.org/show/477677/ &lt;br /&gt;
#*If use extra specs to config QoS, Does we first need add “QoS_support=true/false” in share_type. Does we need to add QoS_support flag in common capabilities&lt;br /&gt;
#**https://github.com/openstack/manila/blob/master/doc/source/devref/capabilities_and_extra_specs.rst)?&lt;br /&gt;
#** eg:  share_type: qos_support='&amp;lt;is&amp;gt; True' or '&amp;lt;is&amp;gt; False' &lt;br /&gt;
#**                            netapp:max_iops=100  or qos:netapp:max_iops=100 or qos:max_iops=100&lt;br /&gt;
#**        driver update: qos_support=true&lt;br /&gt;
#** An alternative could be to have the driver report a range&lt;br /&gt;
# Manila DR update (ameade)&lt;br /&gt;
#* Still no reviews on https://review.openstack.org/#/c/238572/&lt;br /&gt;
#* First-party driver implementation? Which driver, current generic or new solution? When do we need this implemented and who wants to do it?&lt;br /&gt;
#* Replication_change share state - This is the state of the share when any of it's replicas are being promoted. Is 'replication_change' good or is there a better phrase?&lt;br /&gt;
# Manila Driver minimum requirements document update (ganso)&lt;br /&gt;
# Manila Data Copy service name (bswartz)&lt;br /&gt;
#*https://review.openstack.org/#/c/244286/&lt;br /&gt;
# Upcoming change for Manila CI hooks (vponomaryov)&lt;br /&gt;
#*https://review.openstack.org/#/c/243233/&lt;br /&gt;
# Manilaclient enhancement to provide request_id when set http_log_debug is True. It will co-ordinate the request and its id, so it will be helpful to filter the log and the failed request. (Jay Xu)&lt;br /&gt;
#*http://paste.openstack.org/show/478675/&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 5 Nov, 2015, 15:00 UTC'''&lt;br /&gt;
# Decide on read-only access rules as a required feature&lt;br /&gt;
# Manila DR - Design/Code feedback (gouthamr) &lt;br /&gt;
#* [https://wiki.openstack.org/wiki/Manila/design/manila-mitaka-data-replication Design Document]&lt;br /&gt;
#* [https://review.openstack.org/#/c/238572/ Core Implementation on Gerrit]&lt;br /&gt;
#* [https://review.openstack.org/#/c/235448/ Client Implementation on Gerrit]&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 1 Oct, 2015, 15:00 UTC'''&lt;br /&gt;
# Liberty RC2 status&lt;br /&gt;
#* https://launchpad.net/manila/+milestone/liberty-rc2&lt;br /&gt;
#* https://review.openstack.org/#/q/project:openstack/manila+branch:stable/liberty,n,z&lt;br /&gt;
# Mitaka Design Summit&lt;br /&gt;
#* https://etherpad.openstack.org/p/manila-mitaka-summit-topics&lt;br /&gt;
# Vendor driver docs&lt;br /&gt;
#* https://github.com/openstack/manila/blob/master/doc/source/devref/share_back_ends_feature_support_mapping.rst&lt;br /&gt;
# Manila Client Nova Style Microversion Support (cfouts)&lt;br /&gt;
#* https://review.openstack.org/#/c/229142/&lt;br /&gt;
#* http://docs.openstack.org/developer/manila/devref/api_microversion_dev.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 24 Sep, 2015, 15:00 UTC'''&lt;br /&gt;
# 3rd-party CI status&lt;br /&gt;
#* http://ec2-54-67-102-119.us-west-1.compute.amazonaws.com:5000/?project=openstack/manila&amp;amp;user=&amp;amp;timeframe=72&amp;amp;start=&amp;amp;end=&amp;amp;page_size=500&lt;br /&gt;
#* http://ci-watch.tintri.com/project?project=manila&lt;br /&gt;
# Liberty RC status&lt;br /&gt;
# Support for QoS in Manila (zhongjun2)&lt;br /&gt;
#* https://blueprints.launchpad.net/manila/+spec/manila-support-qos&lt;br /&gt;
#* https://wiki.openstack.org/wiki/Manila/QoS&lt;br /&gt;
# Reminder for backend driver maintainers to update feature support table (toabctl)&lt;br /&gt;
#* http://docs.openstack.org/developer/manila/devref/share_back_ends_feature_support_mapping.html&lt;br /&gt;
# Regression when using NetApp - license issue with netapp_lib (toabctl)&lt;br /&gt;
#* https://bugs.launchpad.net/cinder/+bug/1499334&lt;br /&gt;
# Mitaka Design Summit&lt;br /&gt;
#* Propose topics - https://etherpad.openstack.org/p/manila-mitaka-summit-topics&lt;br /&gt;
# Vendor driver docs&lt;br /&gt;
# Open Discussion&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
http://eavesdrop.openstack.org/meetings/manila/&lt;/div&gt;</summary>
		<author><name>Clinton Knight</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Manila/Meetings&amp;diff=98472</id>
		<title>Manila/Meetings</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Manila/Meetings&amp;diff=98472"/>
				<updated>2015-12-01T21:05:53Z</updated>
		
		<summary type="html">&lt;p&gt;Clinton Knight: /* Next meeting */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Weekly Manila team meeting =&lt;br /&gt;
'''NOTE MEETING TIME: Thursday at 15:00 UTC'''&lt;br /&gt;
&lt;br /&gt;
If you're interested in management of shared filesystems for OpenStack, we have a weekly meetings in &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;#openstack-meeting-alt&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;, on Thursdays at 15:00 UTC.  Please feel free to add items to the agenda below.  NOTE: When adding topics please include your IRC name so we know who's topic it is and how to get more info.&lt;br /&gt;
&lt;br /&gt;
== Next meeting ==&lt;br /&gt;
'''NOTE:''' ''Include your IRC nickname next to agenda items so that you can be called upon in the meeting and arrive at the meeting promptly if placing items in agenda. You might want to put this on your calendar if you are adding items.''&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 3 Dec, 2015, 15:00 UTC'''&lt;br /&gt;
# Add &amp;quot;data loss&amp;quot; flag in DB migrations which lead to losing of existing data and update &amp;quot;manila-manage db sync&amp;quot; command to forbid applying such migrations without &amp;quot;--force&amp;quot; flag (u_glide)&lt;br /&gt;
# Reorganization of Manila scheduler to merge oslo-incubator code and simplify future maintenance (cknight)&lt;br /&gt;
## https://review.openstack.org/#/c/252060/&lt;br /&gt;
# Open Discussion&lt;br /&gt;
&lt;br /&gt;
== Previous meetings ==&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 19 Nov, 2015, 15:00 UTC'''&lt;br /&gt;
# GB --&amp;gt; GiB (markstur)&lt;br /&gt;
# OpenStack Manuals and Devref (markstur)&lt;br /&gt;
#* Config Ref (and others) are moving to .RST!&lt;br /&gt;
#* How should we document prior releases in devref?&lt;br /&gt;
# Midcycle Meetup Date (bswartz)&lt;br /&gt;
# Deadlines for features (bswartz)&lt;br /&gt;
#* Feature proposal freeze vs Big Features&lt;br /&gt;
#* New drivers&lt;br /&gt;
# Data Copy Service network approach discussion (ganso)&lt;br /&gt;
#* https://drive.google.com/file/d/0B30HPZmaePCHMlAzcjJlYm5rRTA/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 12 Nov, 2015, 15:00 UTC'''&lt;br /&gt;
# Which method is better for Manila QoS(independent way or just use extra specs ) (zhongjun)&lt;br /&gt;
#* link:http://paste.openstack.org/show/477677/ &lt;br /&gt;
#*If use extra specs to config QoS, Does we first need add “QoS_support=true/false” in share_type. Does we need to add QoS_support flag in common capabilities&lt;br /&gt;
#**https://github.com/openstack/manila/blob/master/doc/source/devref/capabilities_and_extra_specs.rst)?&lt;br /&gt;
#** eg:  share_type: qos_support='&amp;lt;is&amp;gt; True' or '&amp;lt;is&amp;gt; False' &lt;br /&gt;
#**                            netapp:max_iops=100  or qos:netapp:max_iops=100 or qos:max_iops=100&lt;br /&gt;
#**        driver update: qos_support=true&lt;br /&gt;
#** An alternative could be to have the driver report a range&lt;br /&gt;
# Manila DR update (ameade)&lt;br /&gt;
#* Still no reviews on https://review.openstack.org/#/c/238572/&lt;br /&gt;
#* First-party driver implementation? Which driver, current generic or new solution? When do we need this implemented and who wants to do it?&lt;br /&gt;
#* Replication_change share state - This is the state of the share when any of it's replicas are being promoted. Is 'replication_change' good or is there a better phrase?&lt;br /&gt;
# Manila Driver minimum requirements document update (ganso)&lt;br /&gt;
# Manila Data Copy service name (bswartz)&lt;br /&gt;
#*https://review.openstack.org/#/c/244286/&lt;br /&gt;
# Upcoming change for Manila CI hooks (vponomaryov)&lt;br /&gt;
#*https://review.openstack.org/#/c/243233/&lt;br /&gt;
# Manilaclient enhancement to provide request_id when set http_log_debug is True. It will co-ordinate the request and its id, so it will be helpful to filter the log and the failed request. (Jay Xu)&lt;br /&gt;
#*http://paste.openstack.org/show/478675/&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 5 Nov, 2015, 15:00 UTC'''&lt;br /&gt;
# Decide on read-only access rules as a required feature&lt;br /&gt;
# Manila DR - Design/Code feedback (gouthamr) &lt;br /&gt;
#* [https://wiki.openstack.org/wiki/Manila/design/manila-mitaka-data-replication Design Document]&lt;br /&gt;
#* [https://review.openstack.org/#/c/238572/ Core Implementation on Gerrit]&lt;br /&gt;
#* [https://review.openstack.org/#/c/235448/ Client Implementation on Gerrit]&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 1 Oct, 2015, 15:00 UTC'''&lt;br /&gt;
# Liberty RC2 status&lt;br /&gt;
#* https://launchpad.net/manila/+milestone/liberty-rc2&lt;br /&gt;
#* https://review.openstack.org/#/q/project:openstack/manila+branch:stable/liberty,n,z&lt;br /&gt;
# Mitaka Design Summit&lt;br /&gt;
#* https://etherpad.openstack.org/p/manila-mitaka-summit-topics&lt;br /&gt;
# Vendor driver docs&lt;br /&gt;
#* https://github.com/openstack/manila/blob/master/doc/source/devref/share_back_ends_feature_support_mapping.rst&lt;br /&gt;
# Manila Client Nova Style Microversion Support (cfouts)&lt;br /&gt;
#* https://review.openstack.org/#/c/229142/&lt;br /&gt;
#* http://docs.openstack.org/developer/manila/devref/api_microversion_dev.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 24 Sep, 2015, 15:00 UTC'''&lt;br /&gt;
# 3rd-party CI status&lt;br /&gt;
#* http://ec2-54-67-102-119.us-west-1.compute.amazonaws.com:5000/?project=openstack/manila&amp;amp;user=&amp;amp;timeframe=72&amp;amp;start=&amp;amp;end=&amp;amp;page_size=500&lt;br /&gt;
#* http://ci-watch.tintri.com/project?project=manila&lt;br /&gt;
# Liberty RC status&lt;br /&gt;
# Support for QoS in Manila (zhongjun2)&lt;br /&gt;
#* https://blueprints.launchpad.net/manila/+spec/manila-support-qos&lt;br /&gt;
#* https://wiki.openstack.org/wiki/Manila/QoS&lt;br /&gt;
# Reminder for backend driver maintainers to update feature support table (toabctl)&lt;br /&gt;
#* http://docs.openstack.org/developer/manila/devref/share_back_ends_feature_support_mapping.html&lt;br /&gt;
# Regression when using NetApp - license issue with netapp_lib (toabctl)&lt;br /&gt;
#* https://bugs.launchpad.net/cinder/+bug/1499334&lt;br /&gt;
# Mitaka Design Summit&lt;br /&gt;
#* Propose topics - https://etherpad.openstack.org/p/manila-mitaka-summit-topics&lt;br /&gt;
# Vendor driver docs&lt;br /&gt;
# Open Discussion&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
http://eavesdrop.openstack.org/meetings/manila/&lt;/div&gt;</summary>
		<author><name>Clinton Knight</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Design_Summit/Mitaka/Etherpads&amp;diff=92659</id>
		<title>Design Summit/Mitaka/Etherpads</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Design_Summit/Mitaka/Etherpads&amp;diff=92659"/>
				<updated>2015-10-15T14:39:31Z</updated>
		
		<summary type="html">&lt;p&gt;Clinton Knight: /* Manila */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Summit]]&lt;br /&gt;
[[Category:Liberty]]&lt;br /&gt;
[[Category:Etherpad]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;column-count:3;-moz-column-count:3;-webkit-column-count:3&amp;quot;&amp;gt;&lt;br /&gt;
__TOC__&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
== Event intro/closure ==&lt;br /&gt;
* Tue 11:15: Design Summit 101 [https://etherpad.openstack.org/p/mitaka-design-summit-101]&lt;br /&gt;
* Fri 12:30: Design Summit feedback [https://etherpad.openstack.org/p/mitaka-design-summit-feedback]&lt;br /&gt;
&lt;br /&gt;
== Cinder ==&lt;br /&gt;
* Wed 14.00: Why fight it, Cinder could/should be the next ViPR [https://etherpad.openstack.org/p/mitaka-cinder-direction]&lt;br /&gt;
* Wed 14.50: Availability zones in Cinder [https://etherpad.openstack.org/p/mitaka-cinder-az]&lt;br /&gt;
* Thur 9.00: Experimental APIs and Microversions [https://etherpad.openstack.org/p/mitaka-cinder-experimental-apis]&lt;br /&gt;
* Thur 9.50: Cinder Nova Interaction [https://etherpad.openstack.org/p/mitaka-cinder-nova-interaction]&lt;br /&gt;
* Thur 13.50: Cinder driver interface [https://etherpad.openstack.org/p/mitaka-cinder-driver-interface]&lt;br /&gt;
* Thur 14.40: API Microversions [https://etherpad.openstack.org/p/mitaka-cinder-api-microversions]&lt;br /&gt;
* Thur 15.30: ABC work [https://etherpad.openstack.org/p/mitaka-cinder-abc-work]&lt;br /&gt;
* Thur 15.30: Driver deadlines [https://etherpad.openstack.org/p/mitaka-cinder-driver-deadlines]&lt;br /&gt;
* Thur 16.30: C-Vol Active/Active HA [https://etherpad.openstack.org/p/mitaka-cinder-cvol-aa]&lt;br /&gt;
* Thur 17.20: Volume manager locks [https://etherpad.openstack.org/p/mitaka-cinder-volmgr-locks]&lt;br /&gt;
* Fri: Contributor Meetup [https://etherpad.openstack.org/p/mitaka-cinder-contributor-meetup]&lt;br /&gt;
&lt;br /&gt;
== Congress ==&lt;br /&gt;
* Wed 2:00: [https://etherpad.openstack.org/p/congress-mitaka-arch Distributed architecture and additional features for Mitaka]&lt;br /&gt;
* Wed 2:50: [https://etherpad.openstack.org/p/congress-mitaka-integrations Integration with other projects: congress gating (murano, nova, neutron, etc.), keystone]&lt;br /&gt;
* Wed 3:40: [https://etherpad.openstack.org/p/congress-mitaka-external Discussions with external teams: OPNFV, Monasca]&lt;br /&gt;
&lt;br /&gt;
== Cross-Project workshops ==&lt;br /&gt;
&lt;br /&gt;
All sessions are on Tuesday 2015-10-27&lt;br /&gt;
&lt;br /&gt;
* 11:15&lt;br /&gt;
** Cycle themes [https://etherpad.openstack.org/p/mitaka-crossproject-themes]&lt;br /&gt;
* 12:05&lt;br /&gt;
** Supporting DefCore and Interoperability Testing [https://etherpad.openstack.org/p/mitaka-crossproject-defcore]&lt;br /&gt;
** Tags today and tomorrow [https://etherpad.openstack.org/p/mitaka-crossproject-next-tags]&lt;br /&gt;
* 14:50&lt;br /&gt;
** Role Assignments for Service users [https://etherpad.openstack.org/p/mitaka-cross-project-role-assignment-service-user]&lt;br /&gt;
* 15:40&lt;br /&gt;
** Documenting the OpenStack way [https://etherpad.openstack.org/p/mitaka-crossproject-doc-the-way]&lt;br /&gt;
* 16:40&lt;br /&gt;
** Troubleshooting cross-project comms [https://etherpad.openstack.org/p/mitaka-crossproject-comms]&lt;br /&gt;
* 17:30&lt;br /&gt;
** Serving extreme use cases [https://etherpad.openstack.org/p/mitaka-crossproject-extreme-usecases]&lt;br /&gt;
&lt;br /&gt;
== Ceilometer ==&lt;br /&gt;
* Wednesday, 2015-08-28&lt;br /&gt;
** 11:15 - [https://etherpad.openstack.org/p/mitaka-telemetry-alarms alams]&lt;br /&gt;
** 12:05 - [https://etherpad.openstack.org/p/mitaka-telemetry-ui visualising data]&lt;br /&gt;
** 14:50 - [https://etherpad.openstack.org/p/mitaka-telemetry-upgrades rolling upgrades]&lt;br /&gt;
** 15:40 - [https://etherpad.openstack.org/p/mitaka-telemetry-split componentisation]&lt;br /&gt;
&lt;br /&gt;
* Thursday, 2015-08-29&lt;br /&gt;
** 09:00 - [https://etherpad.openstack.org/p/mitaka-telemetry-testing functional and integration testing]&lt;br /&gt;
** 09ː50 - [https://etherpad.openstack.org/p/mitaka-telemetry-bi business intelligence]&lt;br /&gt;
** 11ː00 - [https://etherpad.openstack.org/p/mitaka-telemetry-polling refined polling]&lt;br /&gt;
** 11ː50 - [https://etherpad.openstack.org/p/mitaka-telemetry-cross-project project data ownership]&lt;br /&gt;
** 13ː50 - [https://etherpad.openstack.org/p/mitaka-telemetry-alarms event alarms]&lt;br /&gt;
&lt;br /&gt;
* Friday, 2015-08-30&lt;br /&gt;
** 09:00 - [https://etherpad.openstack.org/p/mitaka-telemetry-contributors-meetup contributors meetup]&lt;br /&gt;
&lt;br /&gt;
== Designate ==&lt;br /&gt;
&lt;br /&gt;
* Wed 11:15: Roadmap https://etherpad.openstack.org/p/mitaka-designate-summit-roadmap&lt;br /&gt;
* Wed 12:05: Alias Records https://etherpad.openstack.org/p/mitaka-designate-summit-alias&lt;br /&gt;
* Wed 14:00: Batch API Actions https://etherpad.openstack.org/p/mitaka-designate-summit-batch-api&lt;br /&gt;
* Wed 14:50: Embedable Services https://etherpad.openstack.org/p/mitaka-designate-summit-embeddable-services&lt;br /&gt;
* Wed 16:40: Incremental Zone Transfer (IFXR) https://etherpad.openstack.org/p/mitaka-designate-summit-ifxr&lt;br /&gt;
* Fri 14:00: Contributors Meetup https://etherpad.openstack.org/p/mitaka-designate-summit-meetup&lt;br /&gt;
&lt;br /&gt;
== Nova ==&lt;br /&gt;
&lt;br /&gt;
* Wed 11:15: REST API https://etherpad.openstack.org/p/mitaka-nova-api&lt;br /&gt;
* Wed 12:05: Upgrade https://etherpad.openstack.org/p/mitaka-nova-upgrade&lt;br /&gt;
&lt;br /&gt;
* Wed 14:00: Unconference https://etherpad.openstack.org/p/mitaka-nova-unconference&lt;br /&gt;
* Wed 14:50: OS VIF lib https://etherpad.openstack.org/p/mitaka-nova-os-vif-lib&lt;br /&gt;
* Wed 15:40: Resources and Flavors https://etherpad.openstack.org/p/mitaka-nova-resource-modeling&lt;br /&gt;
* Wed 16:40: Resources and Flavors (continued) https://etherpad.openstack.org/p/mitaka-nova-resource-modeling&lt;br /&gt;
* Wed 17:30: SR-IOV https://etherpad.openstack.org/p/mitaka-nova-sr-iov&lt;br /&gt;
&lt;br /&gt;
* Thurs 09:00: Cells v2 https://etherpad.openstack.org/p/mitaka-nova-cells&lt;br /&gt;
* Thurs 9:50: see Cinder track&lt;br /&gt;
* Thurs 11:00: Scheduler https://etherpad.openstack.org/p/mitaka-nova-scheduler&lt;br /&gt;
* Thurs 11:50: see Ironic track&lt;br /&gt;
&lt;br /&gt;
* Thurs 13:50: Unconference https://etherpad.openstack.org/p/mitaka-nova-unconference&lt;br /&gt;
* Thurs 14:40: Error handling https://etherpad.openstack.org/p/mitaka-nova-error-handling&lt;br /&gt;
* Thurs 15:30: Cross Service issues: Server locking, token refresh, Instance users https://etherpad.openstack.org/p/mitaka-nova-service-users&lt;br /&gt;
* Thurs 16:30: Mitaka Priorities https://etherpad.openstack.org/p/mitaka-nova-priorities&lt;br /&gt;
* Thurs 17:20: Unconference https://etherpad.openstack.org/p/mitaka-nova-unconference&lt;br /&gt;
&lt;br /&gt;
* Fri: 09:00 and 14:00: Nova contributors meetup https://etherpad.openstack.org/p/mitaka-nova-summit-meetup&lt;br /&gt;
&lt;br /&gt;
== Manila ==&lt;br /&gt;
* Wed 11:15 - 11:55: (WS) Migration Improvements https://etherpad.openstack.org/p/mitaka-manila-migration-improvements&lt;br /&gt;
* Wed 12:05 - 12:45: (WS) Access Allow/Deny Driver Interface https://etherpad.openstack.org/p/mitaka-manila-allow-deny&lt;br /&gt;
* Thu 11:00 - 11:40: (FB) Share Replication  https://etherpad.openstack.org/p/mitaka-manila-replication&lt;br /&gt;
* Thu 11:50 - 12:30: (FB) Alternative Snapshot Semantics https://etherpad.openstack.org/p/mitaka-manila-snapshot-semantics&lt;br /&gt;
* Thu 14:40 - 15:20: (WS) Export Location Metadata https://etherpad.openstack.org/p/mitaka-manila-export-location-metadata&lt;br /&gt;
* Thu 15:30 - 16:10: (WS) Interactions Between New Features https://etherpad.openstack.org/p/mitaka-manila-feature-interactions&lt;br /&gt;
* Fri 09:00 - 12:30: (CM) Contributor Meetup https://etherpad.openstack.org/p/mitaka-manila-contributor-meetup&lt;br /&gt;
&lt;br /&gt;
== Release management ==&lt;br /&gt;
* Thu 15:30: Mitaka process changes [https://etherpad.openstack.org/p/mitaka-relmgt-process-changes]&lt;br /&gt;
* Thu 16:30: Work session: the Mitaka plan [https://etherpad.openstack.org/p/mitaka-relmgt-plan]&lt;br /&gt;
&lt;br /&gt;
== Puppet OpenStack ==&lt;br /&gt;
* General etherpadː https://etherpad.openstack.org/p/HND-puppet&lt;br /&gt;
*  Wed 2 pm: Code design sessionː https://etherpad.openstack.org/p/HND-puppet-code&lt;br /&gt;
*  Wed 2.50 pm: Code design sessionː https://etherpad.openstack.org/p/HND-puppet-code&lt;br /&gt;
*  Thu 1.50 pm: Community feedbackː https://etherpad.openstack.org/p/HND-puppet-community&lt;br /&gt;
*  Thu 2.40 pm: CI and documentationː https://etherpad.openstack.org/p/HND-puppet-ci and https://etherpad.openstack.org/p/HND-puppet-doc&lt;br /&gt;
*  Thu 4.30 pm: Code design sessionː https://etherpad.openstack.org/p/HND-puppet-code&lt;br /&gt;
&lt;br /&gt;
== Ironic ==&lt;br /&gt;
* The everything etherpad: https://etherpad.openstack.org/p/summit-mitaka-ironic&lt;br /&gt;
* Wednesday fishbowl DS3 2:00-2:40 https://etherpad.openstack.org/p/summit-mitaka-ironic-third-party-ci&lt;br /&gt;
* Wednesday fishbowl DS3 2:50-3:30 https://etherpad.openstack.org/p/summit-mitaka-ironic-group-management&lt;br /&gt;
* Thursday workroom DS10 9:00-9:40 https://etherpad.openstack.org/p/summit-mitaka-ironic-notifications-bus&lt;br /&gt;
* Thursday workroom DS10 9:50-10:30 https://etherpad.openstack.org/p/summit-mitaka-ironic-driver-composition&lt;br /&gt;
* Thursday fishbowl DS3 11:00-11:40 https://etherpad.openstack.org/p/summit-mitaka-ironic-driver-api&lt;br /&gt;
* Thursday fishbowl DS3 11:50-12:30 https://etherpad.openstack.org/p/summit-mitaka-ironic-nova-driver (joint session with Nova)&lt;br /&gt;
* Thursday workroom DS11 4:30-5:10 https://etherpad.openstack.org/p/summit-mitaka-ironic-lock-manager&lt;br /&gt;
* Thursday workroom DS11 5:20-6:00 https://etherpad.openstack.org/p/summit-mitaka-ironic-gate-improvements&lt;br /&gt;
* Friday workroom DS15 9:00-12:30 https://etherpad.openstack.org/p/summit-mitaka-ironic-contributors-meetup (shared space with Infra)&lt;br /&gt;
&lt;br /&gt;
== Heat ==&lt;br /&gt;
*  The everything etherpad: https://etherpad.openstack.org/p/mitaka-heat-sessions&lt;br /&gt;
'''Wed''' &lt;br /&gt;
*  11:15 - 11:55: [https://etherpad.openstack.org/p/mitaka-heat-documentation (W) Documentation improvements] &lt;br /&gt;
*  12:05 - 12:45: [https://etherpad.openstack.org/p/mitaka-heat-tests (W) Heat tests] &lt;br /&gt;
*  14:00 - 14:40: [https://etherpad.openstack.org/p/mitaka-heat-convergence-migration (W) Tool to migrate stacks to/from convergence] &lt;br /&gt;
*  14:50 - 15:30: [https://etherpad.openstack.org/p/mitaka-heat-composition-improvements (F)  Composition improvements ]&lt;br /&gt;
*  15:40 - 16:20: [https://etherpad.openstack.org/p/mitaka-heat-user-ops (F)  User/ops session for summit ]&lt;br /&gt;
'''Thu'''&lt;br /&gt;
*  09:00 - 09:40: [https://etherpad.openstack.org/p/mitaka-heat-autoscaling (W) AutoScaling/Group architecture/roadmap]  &lt;br /&gt;
*  09:50 - 10:30: [https://etherpad.openstack.org/p/mitaka-heat-break-stack-barrier (W)  Breaking the stack barrier]  &lt;br /&gt;
*  11:00 - 11:40: [https://etherpad.openstack.org/p/mitaka-heat-large-stacks (F)  Issues from deploying very large stacks] &lt;br /&gt;
*  11:50 - 12:30: [https://etherpad.openstack.org/p/mitaka-heat-openstackclient (F)  Complete heat support in python-openstackclient  ]&lt;br /&gt;
*  13:50 - 14:30: [https://etherpad.openstack.org/p/mitaka-heat-hooks-notifications (W) Hooks &amp;amp; Notifications ]  &lt;br /&gt;
*  14:40 - 15:20: [https://etherpad.openstack.org/p/mitaka-heat-convergence-ph1 (W) Convergence Phase 1 results]  &lt;br /&gt;
*  15:30 - 16:10: [https://etherpad.openstack.org/p/mitaka-heat-convergence-ph2 (W) Convergence Phase 2 start] &lt;br /&gt;
'''Fri'''&lt;br /&gt;
*  09:00 - 12:30:  [https://etherpad.openstack.org/p/mitaka-heat-summit-meetup Contributor Meetup]&lt;br /&gt;
&lt;br /&gt;
== OpenStack Chef ==&lt;br /&gt;
* general discussion: https://etherpad.openstack.org/p/mitaka-openstack-chef-general&lt;br /&gt;
* defining the refactoring process: https://etherpad.openstack.org/p/mitaka-openstack-chef-refactoring&lt;/div&gt;</summary>
		<author><name>Clinton Knight</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Manila/Meetings&amp;diff=89501</id>
		<title>Manila/Meetings</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Manila/Meetings&amp;diff=89501"/>
				<updated>2015-09-03T14:47:25Z</updated>
		
		<summary type="html">&lt;p&gt;Clinton Knight: /* Next meeting */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Weekly Manila team meeting =&lt;br /&gt;
'''NOTE MEETING TIME: Thursday at 15:00 UTC'''&lt;br /&gt;
&lt;br /&gt;
If you're interested in management of shared filesystems for OpenStack, we have a weekly meetings in &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;#openstack-meeting-alt&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;, on Thursdays at 15:00 UTC.  Please feel free to add items to the agenda below.  NOTE: When adding topics please include your IRC name so we know who's topic it is and how to get more info.&lt;br /&gt;
&lt;br /&gt;
== Next meeting ==&lt;br /&gt;
'''NOTE:''' ''Include your IRC nickname next to agenda items so that you can be called upon in the meeting and arrive at the meeting promptly if placing items in agenda. You might want to put this on your calendar if you are adding items.''&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 3 Sep, 2015, 15:00 UTC'''&lt;br /&gt;
# Manila gate issues&lt;br /&gt;
#* Liberty-3 content&lt;br /&gt;
#* Feature freeze exceptions &amp;amp; deferral candidates&lt;br /&gt;
# 3rd-party CI status&lt;br /&gt;
#* http://ec2-54-67-102-119.us-west-1.compute.amazonaws.com:5000/?project=openstack/manila&amp;amp;user=&amp;amp;timeframe=72&amp;amp;start=&amp;amp;end=&amp;amp;page_size=500&lt;br /&gt;
#* http://ci-watch.tintri.com/project?project=manila&lt;br /&gt;
# Open Discussion&lt;br /&gt;
&lt;br /&gt;
== Previous meetings ==&lt;br /&gt;
&lt;br /&gt;
http://eavesdrop.openstack.org/meetings/manila/&lt;/div&gt;</summary>
		<author><name>Clinton Knight</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Manila/Meetings&amp;diff=89499</id>
		<title>Manila/Meetings</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Manila/Meetings&amp;diff=89499"/>
				<updated>2015-09-03T14:46:15Z</updated>
		
		<summary type="html">&lt;p&gt;Clinton Knight: /* Next meeting */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Weekly Manila team meeting =&lt;br /&gt;
'''NOTE MEETING TIME: Thursday at 15:00 UTC'''&lt;br /&gt;
&lt;br /&gt;
If you're interested in management of shared filesystems for OpenStack, we have a weekly meetings in &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;#openstack-meeting-alt&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;, on Thursdays at 15:00 UTC.  Please feel free to add items to the agenda below.  NOTE: When adding topics please include your IRC name so we know who's topic it is and how to get more info.&lt;br /&gt;
&lt;br /&gt;
== Next meeting ==&lt;br /&gt;
'''NOTE:''' ''Include your IRC nickname next to agenda items so that you can be called upon in the meeting and arrive at the meeting promptly if placing items in agenda. You might want to put this on your calendar if you are adding items.''&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 3 Sep, 2015, 15:00 UTC'''&lt;br /&gt;
# Manila gate issues&lt;br /&gt;
#* Liberty-3 content&lt;br /&gt;
#* Feature freeze exceptions &amp;amp; deferral candidates&lt;br /&gt;
# 3rd-party CI status&lt;br /&gt;
# Open Discussion&lt;br /&gt;
&lt;br /&gt;
== Previous meetings ==&lt;br /&gt;
&lt;br /&gt;
http://eavesdrop.openstack.org/meetings/manila/&lt;/div&gt;</summary>
		<author><name>Clinton Knight</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Manila/Meetings&amp;diff=89498</id>
		<title>Manila/Meetings</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Manila/Meetings&amp;diff=89498"/>
				<updated>2015-09-03T14:29:25Z</updated>
		
		<summary type="html">&lt;p&gt;Clinton Knight: /* Next meeting */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Weekly Manila team meeting =&lt;br /&gt;
'''NOTE MEETING TIME: Thursday at 15:00 UTC'''&lt;br /&gt;
&lt;br /&gt;
If you're interested in management of shared filesystems for OpenStack, we have a weekly meetings in &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;#openstack-meeting-alt&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;, on Thursdays at 15:00 UTC.  Please feel free to add items to the agenda below.  NOTE: When adding topics please include your IRC name so we know who's topic it is and how to get more info.&lt;br /&gt;
&lt;br /&gt;
== Next meeting ==&lt;br /&gt;
'''NOTE:''' ''Include your IRC nickname next to agenda items so that you can be called upon in the meeting and arrive at the meeting promptly if placing items in agenda. You might want to put this on your calendar if you are adding items.''&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 3 Sep, 2015, 15:00 UTC'''&lt;br /&gt;
# Manila gate issues&lt;br /&gt;
#* Liberty-3 content&lt;br /&gt;
#* Feature freeze exceptions &amp;amp; deferral candidates&lt;br /&gt;
# Open Discussion&lt;br /&gt;
&lt;br /&gt;
== Previous meetings ==&lt;br /&gt;
&lt;br /&gt;
http://eavesdrop.openstack.org/meetings/manila/&lt;/div&gt;</summary>
		<author><name>Clinton Knight</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Manila/Meetings&amp;diff=89497</id>
		<title>Manila/Meetings</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Manila/Meetings&amp;diff=89497"/>
				<updated>2015-09-03T14:28:16Z</updated>
		
		<summary type="html">&lt;p&gt;Clinton Knight: /* Next meeting */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Weekly Manila team meeting =&lt;br /&gt;
'''NOTE MEETING TIME: Thursday at 15:00 UTC'''&lt;br /&gt;
&lt;br /&gt;
If you're interested in management of shared filesystems for OpenStack, we have a weekly meetings in &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;#openstack-meeting-alt&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;, on Thursdays at 15:00 UTC.  Please feel free to add items to the agenda below.  NOTE: When adding topics please include your IRC name so we know who's topic it is and how to get more info.&lt;br /&gt;
&lt;br /&gt;
== Next meeting ==&lt;br /&gt;
'''NOTE:''' ''Include your IRC nickname next to agenda items so that you can be called upon in the meeting and arrive at the meeting promptly if placing items in agenda. You might want to put this on your calendar if you are adding items.''&lt;br /&gt;
&lt;br /&gt;
'''Scheduled for 3 Sep, 2015, 15:00 UTC'''&lt;br /&gt;
# Manila gate issues&lt;br /&gt;
#* Liberty-3 content&lt;br /&gt;
#* Feature freeze exceptions&lt;br /&gt;
# Open Discussion&lt;br /&gt;
&lt;br /&gt;
== Previous meetings ==&lt;br /&gt;
&lt;br /&gt;
http://eavesdrop.openstack.org/meetings/manila/&lt;/div&gt;</summary>
		<author><name>Clinton Knight</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Design_Summit/Liberty/Etherpads&amp;diff=81203</id>
		<title>Design Summit/Liberty/Etherpads</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Design_Summit/Liberty/Etherpads&amp;diff=81203"/>
				<updated>2015-05-14T15:38:13Z</updated>
		
		<summary type="html">&lt;p&gt;Clinton Knight: /* Manila */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Summit]]&lt;br /&gt;
[[Category:Liberty]]&lt;br /&gt;
[[Category:Etherpad]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;column-count:3;-moz-column-count:3;-webkit-column-count:3&amp;quot;&amp;gt;&lt;br /&gt;
__TOC__&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
==Cross-Project workshops==&lt;br /&gt;
Tuesday:&lt;br /&gt;
&lt;br /&gt;
* 11:15 - 11:55&lt;br /&gt;
** [https://etherpad.openstack.org/p/liberty-cross-project-python3 Moving apps to Python 3]&lt;br /&gt;
** [https://etherpad.openstack.org/p/liberty-cross-project-user-notifications Async status updates]&lt;br /&gt;
* 12:05 - 12:45&lt;br /&gt;
** Improving UX across all projects&lt;br /&gt;
** Functional Testing Show &amp;amp; Tell&lt;br /&gt;
* 2:00 - 2:40&lt;br /&gt;
** OpenStack SDK&lt;br /&gt;
** Modern JavaScript&lt;br /&gt;
* 2:50 - 3:30&lt;br /&gt;
** [https://etherpad.openstack.org/p/liberty-cross-project-in-team-scaling In-team scaling]&lt;br /&gt;
** Service Catalog Standardization&lt;br /&gt;
* 3:40 - 4:20&lt;br /&gt;
** [https://etherpad.openstack.org/p/liberty-cross-project-api-wg API Working Group]&lt;br /&gt;
** Towards one Network Stack: Part 1 - Neutron Gaps and Concerns&lt;br /&gt;
* 4:40 - 5:20&lt;br /&gt;
** [https://etherpad.openstack.org/p/liberty-cross-project-release-models OpenStack release model(s)]&lt;br /&gt;
** Unified Policy File&lt;br /&gt;
* 5:30 - 6:10&lt;br /&gt;
** OpenStack Documentation&lt;br /&gt;
** [https://etherpad.openstack.org/p/liberty-cross-project-managing-concurrency Managing concurrency]&lt;br /&gt;
&lt;br /&gt;
==Barbican==&lt;br /&gt;
==Ceilometer==&lt;br /&gt;
wednesday:&lt;br /&gt;
* 0900 - 0940: [https://etherpad.openstack.org/p/ceilo-multi-identity componentisation / multi identity]&lt;br /&gt;
* 0950 - 1030: [https://etherpad.openstack.org/p/event_alarm event alarms]&lt;br /&gt;
* 1100 - 1140: [https://etherpad.openstack.org/p/liberty-ceilometer-pipeline-config pipeline configuration]&lt;br /&gt;
* 1150 - 1230: [https://etherpad.openstack.org/p/ceilo-declarative-notifications declarative notification meters]&lt;br /&gt;
* 1440 - 1520: [https://etherpad.openstack.org/p/YVR-ops-ceilometer ops followup]&lt;br /&gt;
* 1530 - 1610: [https://etherpad.openstack.org/p/ceilo-multi-identity componentization carry over]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;thursday:&lt;br /&gt;
* 0900 - 0940: [https://etherpad.openstack.org/p/liberty-ceilometer-meter-deprecation meter deprecation]&lt;br /&gt;
* 0950 - 1030: [https://etherpad.openstack.org/p/liberty-ceilometer-meter-event samples/events integration]&lt;br /&gt;
* 1100 - 1140: [https://etherpad.openstack.org/p/liberty-ceilometer-versioned-objects versioned objects]&lt;br /&gt;
* 1150 - 1230: ops followup&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;friday:&lt;br /&gt;
* 0900 - 1200: [https://etherpad.openstack.org/p/liberty-ceilometer-contributors-meetup contributor meetup]&lt;br /&gt;
&lt;br /&gt;
==Cinder==&lt;br /&gt;
==Designate==&lt;br /&gt;
==Documentation==&lt;br /&gt;
&lt;br /&gt;
* Wednesday • 1:50pm - 2:30pm https://etherpad.openstack.org/p/Documentation__RST_Migration&lt;br /&gt;
* Wednesday • 3:30pm - 4:10pm https://etherpad.openstack.org/p/Documentation__Ops_Work_Session&lt;br /&gt;
* Thursday • 11:50am - 12:30pm https://etherpad.openstack.org/p/Documentation__API_Work_Session&lt;br /&gt;
* Thursday • 1:30pm - 2:10pm https://etherpad.openstack.org/p/Documentation__Blueprint_Work_Session&lt;br /&gt;
* Thursday • 2:20pm - 3:00pm https://etherpad.openstack.org/p/Documentation__Team_Structure_1&lt;br /&gt;
* Thursday • 3:10pm - 3:50pm https://etherpad.openstack.org/p/Documentation__Team_Structure_2&lt;br /&gt;
* Thursday • 4:10pm - 4:50pm https://etherpad.openstack.org/p/Documentation__Info_Architecture_1&lt;br /&gt;
* Thursday • 5:00pm - 5:40pm https://etherpad.openstack.org/p/Documentation__Info_Architecture_2&lt;br /&gt;
* Friday • 9:00am - 12:20pm https://etherpad.openstack.org/p/Documentation__Contributors_Meetup&lt;br /&gt;
&lt;br /&gt;
==Glance==&lt;br /&gt;
==Heat==&lt;br /&gt;
'''Wed'''&lt;br /&gt;
* 09:00 - 09:40: [https://etherpad.openstack.org/p/YVR-heat-liberty-convergence-1 (W) Finishing off Convergence phase 1]&lt;br /&gt;
* 09:50 - 10:30: [https://etherpad.openstack.org/p/YVR-heat-liberty-convergence-2 (W) Convergence phase 2 planning]&lt;br /&gt;
* 11:00 - 11:40: [https://etherpad.openstack.org/p/YVR-heat-liberty-testing (W) Functional and integration testing, identify gaps and suggest improvements]&lt;br /&gt;
* 11:50 - 12:30: [https://etherpad.openstack.org/p/YVR-heat-liberty-lifecycle-ops (W) Better support for lifecycle operations on (tripleo) heat stacks (upgrades etc)]&lt;br /&gt;
* 13:50 - 14:30: [https://etherpad.openstack.org/p/YVR-heat-liberty-client-usability (F) Heat client usability]&lt;br /&gt;
* 14:40 - 15:20: [https://etherpad.openstack.org/p/YVR-heat-liberty-template-format (F) Heat template format improvements]&lt;br /&gt;
* 15:30 - 16:10: [https://etherpad.openstack.org/p/YVR-heat-liberty-rest-api (F) REST API design and roadmap]&lt;br /&gt;
* 16:30 - 17:10: [https://etherpad.openstack.org/p/YVR-heat-liberty-senlin-autoscaling (F) Senlin Autoscaling Project - Deep Dive]&lt;br /&gt;
* 17:20 - 18:00: [https://etherpad.openstack.org/p/YVR-heat-liberty-containers (F) Orchestrating containers with Heat]&lt;br /&gt;
&lt;br /&gt;
'''Thu'''&lt;br /&gt;
* 09:00 - 09:40: [https://etherpad.openstack.org/p/YVR-heat-liberty-alembic (W) Migrating from sqlalchemy-migrations to alembic]&lt;br /&gt;
* 09:50 - 10:30: [https://etherpad.openstack.org/p/YVR-heat-liberty-versioned-objects (W) Future of Versioned objects in heat]&lt;br /&gt;
* 11:00 - 11:40: [https://etherpad.openstack.org/p/YVR-heat-liberty-autoscaling (W) Autoscaling improvements]&lt;br /&gt;
* 11:50 - 12:30: [https://etherpad.openstack.org/p/YVR-heat-liberty-deprecation (W) Our deprecation process]&lt;br /&gt;
* 16:10 - 16:50: [https://etherpad.openstack.org/p/YVR-heat-liberty-contrib-plugins (W) Moving most contrib plugins in-tree]&lt;br /&gt;
* 17:00 - 17:40: [https://etherpad.openstack.org/p/YVR-heat-liberty-resource-registering (W) Conditional registering of resources]&lt;br /&gt;
&lt;br /&gt;
'''Fri'''&lt;br /&gt;
* 09:00-12:20: [https://etherpad.openstack.org/p/YVR-heat-contributor-meetup Contributor Meetup]&lt;br /&gt;
&lt;br /&gt;
==Horizon==&lt;br /&gt;
==Infrastructure==&lt;br /&gt;
* Wed 09:00 - 09:40: [https://etherpad.openstack.org/p/YVR-infra-irc-meetings (W) Work session on Gerrit-driven IRC meetings]&lt;br /&gt;
* Wed 09:50 - 10:30: [https://etherpad.openstack.org/p/YVR-infra-activity-tracking (W) Work session on activity tracking]&lt;br /&gt;
* Thu 09:50 - 10:30: [https://etherpad.openstack.org/p/YVR-infra-task-tracking (F) Task tracking]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Ironic==&lt;br /&gt;
==Keystone==&lt;br /&gt;
==Manila==&lt;br /&gt;
'''Wed'''&lt;br /&gt;
* 09:00 - 09:40: [https://etherpad.openstack.org/p/YVR-manila-liberty-mount-automation (F) Mount automation]&lt;br /&gt;
* 09:50 - 10:30: [https://etherpad.openstack.org/p/YVR-manila-liberty-share-migration (F) Share migration]&lt;br /&gt;
* 11:00 - 11:40: [https://etherpad.openstack.org/p/YVR-manila-liberty-share-replication (F) Share replication]&lt;br /&gt;
* 16:30 - 17:10: [https://etherpad.openstack.org/p/YVR-manila-liberty-versioned-objects-and-apis (W) Versioned objects and APIs]&lt;br /&gt;
* 17:20 - 18:00: [https://etherpad.openstack.org/p/YVR-manila-liberty-fault-indication (W) Fault indication]&lt;br /&gt;
&lt;br /&gt;
'''Thu'''&lt;br /&gt;
* 16:10 - 16:50: [https://etherpad.openstack.org/p/YVR-manila-liberty-thin-provisioning (W) Thin provisioning and consistency groups]&lt;br /&gt;
* 17:00 - 17:40: [https://etherpad.openstack.org/p/YVR-manila-service-image (W) Snapshot-share relationship and Manila service image]&lt;br /&gt;
&lt;br /&gt;
==Neutron==&lt;br /&gt;
&lt;br /&gt;
'''Wed'''&lt;br /&gt;
* 09:00 - 09:40: [https://etherpad.openstack.org/p/YVR-neutron-liberty-development Neutron Liberty Development]&lt;br /&gt;
* 09:50 - 10:30: [https://etherpad.openstack.org/p/YVR-neutron-use-case-discussion Neutron Use Case Discussion]&lt;br /&gt;
* 11:00 - 11:40: [https://etherpad.openstack.org/p/YVR-neutron-vlan-trunk VLAN Aware VMs]&lt;br /&gt;
* 11:50 - 12:30: [https://etherpad.openstack.org/p/YVR-neutron-lightning-talks Neutron Lightning Talks]&lt;br /&gt;
* 13:50 - 14:30: [https://etherpad.openstack.org/p/YVR-neutron-octavia Octavia]&lt;br /&gt;
* 14:40 - 15:20: [https://etherpad.openstack.org/p/YVR-neutron-opendaylight OpenDaylight]&lt;br /&gt;
* 15:30 - 16:10: [https://etherpad.openstack.org/p/YVR-neutron-ovn OVN]&lt;br /&gt;
* 16:30 - 17:10: [https://etherpad.openstack.org/p/YVR-neutron-ironic Ironic and Neutron integration]&lt;br /&gt;
* 17:20 - 18:00: [https://etherpad.openstack.org/p/YVR-neutron-get-me-a-network Get Me a Network!]&lt;br /&gt;
&lt;br /&gt;
'''Thu'''&lt;br /&gt;
* 09:00 - 09:40:  [https://etherpad.openstack.org/p/YVR-neutron-lbaas-use-cases Neutron LBaaS Use Cases]&lt;br /&gt;
* 09:50 - 10:30:  [https://etherpad.openstack.org/p/YVR-neutron-l3 Neutron L3]&lt;br /&gt;
* 11:00 - 11:40: [https://etherpad.openstack.org/p/YVR-neutron-qos QoS]&lt;br /&gt;
* 11:50 - 12:30: [https://etherpad.openstack.org/p/YVR-neutron-third-party-ci-liberty Third Party CI in Liberty and Beyond]&lt;br /&gt;
* 13:30 - 14:10: [https://etherpad.openstack.org/p/YVR-neutron-testing-in-liberty Testing In Liberty]&lt;br /&gt;
* 14:20 - 15:00: [https://etherpad.openstack.org/p/YVR-neutron-RBAC Neutron RBAC]&lt;br /&gt;
* 15:10 - 15:50: [https://etherpad.openstack.org/p/YVR-neutron-sg-fwaas-future-direction SG and FWaaS Future Directions]&lt;br /&gt;
* 16:10 - 16:50: [https://etherpad.openstack.org/p/YVR-neutron-nfv-enhancements Neutron NFV Enhancements]&lt;br /&gt;
&lt;br /&gt;
'''Fri'''&lt;br /&gt;
* 09:00-12:20: [https://etherpad.openstack.org/p/YVR-neutron-contributor-meetup Contributor Meetup]&lt;br /&gt;
&lt;br /&gt;
==Nova==&lt;br /&gt;
&lt;br /&gt;
'''Wednesday:'''&lt;br /&gt;
&lt;br /&gt;
* 09:00 - 09:40: [https://etherpad.openstack.org/p/YVR-nova-scheduler-in-liberty Scheduler in Liberty]&lt;br /&gt;
* 09:50 - 10:30: [https://etherpad.openstack.org/p/YVR-nova-scalling-out-scheduler-for-cells Scaling out scheduler for cells ]&lt;br /&gt;
&lt;br /&gt;
* 11:00 - 11:40: [https://etherpad.openstack.org/p/YVR-nova-cells-v2 Cells v2]&lt;br /&gt;
* 11:50 - 12:30: [https://etherpad.openstack.org/p/YVR-nova-resource-tracker Resource Tracker, Clustered Hypervisors and NFV]&lt;br /&gt;
&lt;br /&gt;
* 13:50 - 14:30: [https://etherpad.openstack.org/p/YVR-nova-spec-blueprint-unconference Nova Spec/Blueprint Unconference]&lt;br /&gt;
* 14:40 - 15:20: [https://etherpad.openstack.org/p/YVR-nova-database-internals Database (part 1)]&lt;br /&gt;
* 15:30 - 16:10: [https://etherpad.openstack.org/p/YVR-nova-functional-testing-feature-classification Functional Testing and Feature Classification]&lt;br /&gt;
&lt;br /&gt;
* 16:30 - 17:10: [https://etherpad.openstack.org/p/YVR-nova-instance-ha-evacuate-resize Dealing with compute host failure: Instance HA, Evacuate, Resize]&lt;br /&gt;
* 17:20 - 18:00: [https://etherpad.openstack.org/p/YVR-nova-api-2.1-in-liberty Nova API v2.1 in Liberty]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
'''Thursday:'''&lt;br /&gt;
&lt;br /&gt;
* 09:00 - 09:40: [https://etherpad.openstack.org/p/YVR-nova-api-2.0-3rd-party Future of Nova API v2.0 and 3rd Party APIs]&lt;br /&gt;
* 09:50 - 10:30: [https://etherpad.openstack.org/p/YVR-nova-quotas-and-database Quotas and Database (part 2)]&lt;br /&gt;
&lt;br /&gt;
* 11:00 - 11:40: [https://etherpad.openstack.org/p/YVR-nova-flavors-and-image-properties Flavors and Image Properties]&lt;br /&gt;
* 11:50 - 12:30: [https://etherpad.openstack.org/p/YVR-nova-error-handling Error Handling]&lt;br /&gt;
&lt;br /&gt;
* 13:30 - 14:10: [https://etherpad.openstack.org/p/YVR-nova-spec-blueprint-unconference Nova Spec/Blueprint Unconference]&lt;br /&gt;
* 14:20 - 15:00: [https://etherpad.openstack.org/p/YVR-nova-liberty-priorities Liberty Priorities (part 1)]&lt;br /&gt;
* 15:10 - 15:50: [https://etherpad.openstack.org/p/YVR-nova-liberty-priorities Liberty Priorities (part 2)]&lt;br /&gt;
&lt;br /&gt;
* 16:10 - 16:50: [https://etherpad.openstack.org/p/YVR-nova-liberty-process Liberty Process and Scaling out Reviews]&lt;br /&gt;
* 17:00 - 17:40: [https://etherpad.openstack.org/p/YVR-nova-network Future of Nova's networking and nova-network]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
'''Friday:'''&lt;br /&gt;
&lt;br /&gt;
* 09:00 - 12:20 and 13:20 - 16:40: [https://etherpad.openstack.org/p/YVR-nova-contributor-meetup Nova Contributor Meetup]&lt;br /&gt;
&lt;br /&gt;
==Oslo==&lt;br /&gt;
&lt;br /&gt;
'''Wednesday:'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* 09:00 - 09:40: [https://etherpad.openstack.org/p/YVR-oslo-versioned-objects-intro (F) Get to know your objects and learn how to version them (an introduction to oslo.versionedobjects)!]&lt;br /&gt;
* 09:50 - 10:30: [https://etherpad.openstack.org/p/YVR-oslo-taskflow-plans (F) Give me liberty, or give me taskflow (come learn about taskflow liberty plans)!]&lt;br /&gt;
* 11:00 - 11:40: [https://etherpad.openstack.org/p/YVR-oslo-rootwrap-plans (W) Give me liberty, or give me wraps (the future of oslo.rootwrap) ]&lt;br /&gt;
* 11:50 - 12:30: [https://etherpad.openstack.org/p/YVR-oslo-functional-testing (W) The cost of liberty is less than the price of functional testing]&lt;br /&gt;
* 13:50 - 14:30: [https://etherpad.openstack.org/p/YVR-oslo-graduation-schedule (W) Give me more oslo in liberty or else! Schedule &amp;amp; new libraries]&lt;br /&gt;
* 14:40 - 15:20: [https://etherpad.openstack.org/p/YVR-oslo-messaging-zmq-status (F) State of zmq in oslo.messaging]&lt;br /&gt;
* 15:30 - 16:10: [https://etherpad.openstack.org/p/YVR-oslo-optional-dependencies (W) Emancipate/liberate your optional dependencies - Optional Dependencies]&lt;br /&gt;
* 16:30 - 17:10: [https://etherpad.openstack.org/p/YVR-oslo-release-process-review (W) Reviewing our release processes]&lt;br /&gt;
* 17:20 - 18:00: [https://etherpad.openstack.org/p/YVR-oslo-config-filter (W) Configuration Filters in oslo.config]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
'''Thursday:'''&lt;br /&gt;
&lt;br /&gt;
* 09:50 - 10:30: [https://etherpad.openstack.org/p/YVR-oslo-strategy-discussion (F) The oslo liberty proclamation (and associated strategy discussion)]&lt;br /&gt;
* 11:00 - 11:40: [https://etherpad.openstack.org/p/YVR-oslo-config-plans (F) Enfranchise oslo.config, let's discuss alternative data sources in oslo.config]&lt;br /&gt;
* 11:50 - 12:30: [https://etherpad.openstack.org/p/YVR-oslo-log-plans (W) Life, Liberty, and the pursuit of oslo.log changes]&lt;br /&gt;
* 13:30 - 14:10: [https://etherpad.openstack.org/p/YVR-oslo-versioned-objects-deep-dive (W) Deep dive on oslo.versionedobjects, bring your wet suits.]&lt;br /&gt;
* 14:20 - 15:00: [https://etherpad.openstack.org/p/YVR-oslo-db-plans (F) For a people who are free, and who mean to remain so, a well organized and armed 'oslo.db' is their best security]&lt;br /&gt;
* 15:10 - 15:50: [https://etherpad.openstack.org/p/YVR-oslo-asyncio (F) Event loops, coroutines, yield from, futures, a discussion on asyncio (and triollus?)]&lt;br /&gt;
* 16:10 - 16:50: [https://etherpad.openstack.org/p/YVR-oslo-messaging-plans (F) Ping pong, oslo.messaging plans for liberty.]&lt;br /&gt;
* 17:00 - 17:40: [https://etherpad.openstack.org/p/YVR-oslo-tech-debt-deprecation (F) How to clean up your tech-debt; let's discuss best practices on how to deprecate things in oslo libraries]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==QA==&lt;br /&gt;
&lt;br /&gt;
'''Wed'''&lt;br /&gt;
&lt;br /&gt;
* 1150-1230 - [https://etherpad.openstack.org/p/YVR-QA-testing-beyond-the-gate Testing beyond the gate]&lt;br /&gt;
* 1350-1430 - [https://etherpad.openstack.org/p/YVR-QA-Devstack-Roadmap Devstack Roadmap]&lt;br /&gt;
* 1440-1520 - [https://etherpad.openstack.org/p/YVR-QA-Tempest-service-clients Work Session: Tempest service clients]&lt;br /&gt;
* 1630-1710 - [https://etherpad.openstack.org/p/YVR-QA-in-the-big-tent QA in the Big Tent]&lt;br /&gt;
&lt;br /&gt;
'''Thurs.'''&lt;br /&gt;
* 0900-0940 - [https://etherpad.openstack.org/p/YVR-QA-idempotent-id Work Session: Idempotent ID]&lt;br /&gt;
* 1330-1410 - [https://etherpad.openstack.org/p/YVR-QA-Tempest-as-a-system-program Work Session: Tempest as System Program]&lt;br /&gt;
* 1420-1500 - [https://etherpad.openstack.org/p/YVR-QA-Tempest-CLI Work Session: Tempest CLI and Tempest Cleanup]&lt;br /&gt;
* 1610-1650 - [https://etherpad.openstack.org/p/YVR-QA-Tempest-Scope-Revisited Tempest Scope Revisited]&lt;br /&gt;
* 1700-1740 - [https://etherpad.openstack.org/p/YVR-QA-Liberty-Priorities Liberty Priorities]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Release Management==&lt;br /&gt;
* Wed 17:20-18:00: [https://etherpad.openstack.org/p/YVR-relmgt-stable-branch Stable branch]&lt;br /&gt;
* Thu 11:00-11:40 [https://etherpad.openstack.org/p/YVR-relmgt-library-releases Work session: Library releases]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Sahara==&lt;br /&gt;
&lt;br /&gt;
'''Wed'''&lt;br /&gt;
&lt;br /&gt;
* 11:00am (W) HA http://etherpad.openstack.org/p/sahara-liberty-ha&lt;br /&gt;
* 11:50am (W) API v2 https://etherpad.openstack.org/p/sahara-liberty-api-v2&lt;br /&gt;
&lt;br /&gt;
''Thu'''&lt;br /&gt;
&lt;br /&gt;
* 1:30pm (F) UI https://etherpad.openstack.org/p/sahara-liberty-ui&lt;br /&gt;
* 2:20pm (F) Security https://etherpad.openstack.org/p/sahara-liberty-security&lt;br /&gt;
* 3:10pm (W) EDP https://etherpad.openstack.org/p/sahara-liberty-edp&lt;br /&gt;
* 4:10pm (W) Resources Visibility/ACL https://etherpad.openstack.org/p/sahara-liberty-resources&lt;br /&gt;
* 5:00pm (W) Plugins https://etherpad.openstack.org/p/sahara-liberty-plugins&lt;br /&gt;
&lt;br /&gt;
''Fri'''&lt;br /&gt;
&lt;br /&gt;
* 9am - 4:40pm Meetup https://etherpad.openstack.org/p/sahara-liberty-meetup&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Security==&lt;br /&gt;
* Wed 13:50-14:30: [https://etherpad.openstack.org/p/YVR-security-vmt Vulnerability management]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Swift==&lt;br /&gt;
==TripleO==&lt;br /&gt;
&lt;br /&gt;
==Trove==&lt;br /&gt;
==Zaqar==&lt;br /&gt;
==Murano==&lt;br /&gt;
'''Thu'''&lt;br /&gt;
&lt;br /&gt;
* 2:20pm (F) [https://etherpad.openstack.org/p/murano-liberty-now-n-future Murano: Now, Liberty and Future]&lt;br /&gt;
* 4:10pm (W) [https://etherpad.openstack.org/p/murano-liberty-work-session-1 Images &amp;amp; Murano]&lt;br /&gt;
* 5:00pm (W) [https://etherpad.openstack.org/p/murano-liberty-work-session-2 Authentication &amp;amp; Agent]&lt;br /&gt;
&lt;br /&gt;
'''Fri'''&lt;br /&gt;
&lt;br /&gt;
* 9am - 4:40pm [https://etherpad.openstack.org/p/murano-liberty-contributors-meetup Contributors Meetup]&lt;br /&gt;
&lt;br /&gt;
==Event intro/closure==&lt;br /&gt;
* Tue 11:15-11:55: [https://etherpad.openstack.org/p/YVR-design-summit-101 Design Summit 101]&lt;br /&gt;
* Fri 16:50-17:30: [https://etherpad.openstack.org/p/YVR-design-summit-feedback Design Summit feedback session]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Ops==&lt;br /&gt;
Tuesday:&lt;br /&gt;
* https://etherpad.openstack.org/p/YVR-ops-101&lt;br /&gt;
* https://etherpad.openstack.org/p/YVR-ops-federation&lt;br /&gt;
* https://etherpad.openstack.org/p/YVR-ops-rabbitmq&lt;br /&gt;
* https://etherpad.openstack.org/p/YVR-ops-logging&lt;br /&gt;
* https://etherpad.openstack.org/p/YVR-ops-arch-show-tell&lt;br /&gt;
* https://etherpad.openstack.org/p/YVR-ops-ceilometer&lt;br /&gt;
* https://etherpad.openstack.org/p/YVR-ops-billing&lt;br /&gt;
* https://etherpad.openstack.org/p/YVR-ops-cinder&lt;br /&gt;
* https://etherpad.openstack.org/p/YVR-ops-legacy-apps&lt;br /&gt;
* https://etherpad.openstack.org/p/YVR-ops-user-committee&lt;br /&gt;
* https://etherpad.openstack.org/p/YVR-ops-hypervisor-tuning&lt;br /&gt;
* https://etherpad.openstack.org/p/YVR-ops-security&lt;br /&gt;
* https://etherpad.openstack.org/p/YVR-ops-deployment&lt;br /&gt;
* https://etherpad.openstack.org/p/YVR-ops-database&lt;br /&gt;
* https://etherpad.openstack.org/p/YVR-ops-evangelism&lt;br /&gt;
* https://etherpad.openstack.org/p/YVR-ops-multi-site&lt;br /&gt;
* https://etherpad.openstack.org/p/YVR-ops-nova&lt;br /&gt;
* https://etherpad.openstack.org/p/YVR-ops-customer-onboarding&lt;br /&gt;
* https://etherpad.openstack.org/p/YVR-ops-containers&lt;br /&gt;
* https://etherpad.openstack.org/p/YVR-ops-neutron&lt;br /&gt;
&lt;br /&gt;
Wednesday:&lt;br /&gt;
* https://etherpad.openstack.org/p/YVR-ops-telco&lt;br /&gt;
* https://etherpad.openstack.org/p/YVR-ops-puppet&lt;br /&gt;
* https://etherpad.openstack.org/p/YVR-ops-chef&lt;br /&gt;
* https://etherpad.openstack.org/p/YVR-ops-hpc&lt;br /&gt;
* https://etherpad.openstack.org/p/YVR-ops-tools&lt;br /&gt;
* https://etherpad.openstack.org/p/YVR-ops-ansible&lt;br /&gt;
* https://etherpad.openstack.org/p/YVR-ops-ceph&lt;br /&gt;
* https://etherpad.openstack.org/p/YVR-ops-tags&lt;br /&gt;
* https://etherpad.openstack.org/p/YVR-ops-large-deployments&lt;br /&gt;
* https://etherpad.openstack.org/p/YVR-ops-burning-issues&lt;br /&gt;
* https://etherpad.openstack.org/p/YVR-ops-docs&lt;br /&gt;
* https://etherpad.openstack.org/p/YVR-ops-tech-choices&lt;br /&gt;
* https://etherpad.openstack.org/p/YVR-ops-cmdb&lt;br /&gt;
* https://etherpad.openstack.org/p/YVR-ops-data-plane-transitions&lt;br /&gt;
* https://etherpad.openstack.org/p/YVR-ops-upgrades&lt;br /&gt;
* https://etherpad.openstack.org/p/YVR-ops-packaging&lt;br /&gt;
* https://etherpad.openstack.org/p/YVR-ops-nova-network&lt;/div&gt;</summary>
		<author><name>Clinton Knight</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Design_Summit/Liberty/Etherpads&amp;diff=81202</id>
		<title>Design Summit/Liberty/Etherpads</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Design_Summit/Liberty/Etherpads&amp;diff=81202"/>
				<updated>2015-05-14T15:37:44Z</updated>
		
		<summary type="html">&lt;p&gt;Clinton Knight: /* Manila */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Summit]]&lt;br /&gt;
[[Category:Liberty]]&lt;br /&gt;
[[Category:Etherpad]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;column-count:3;-moz-column-count:3;-webkit-column-count:3&amp;quot;&amp;gt;&lt;br /&gt;
__TOC__&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
==Cross-Project workshops==&lt;br /&gt;
Tuesday:&lt;br /&gt;
&lt;br /&gt;
* 11:15 - 11:55&lt;br /&gt;
** [https://etherpad.openstack.org/p/liberty-cross-project-python3 Moving apps to Python 3]&lt;br /&gt;
** [https://etherpad.openstack.org/p/liberty-cross-project-user-notifications Async status updates]&lt;br /&gt;
* 12:05 - 12:45&lt;br /&gt;
** Improving UX across all projects&lt;br /&gt;
** Functional Testing Show &amp;amp; Tell&lt;br /&gt;
* 2:00 - 2:40&lt;br /&gt;
** OpenStack SDK&lt;br /&gt;
** Modern JavaScript&lt;br /&gt;
* 2:50 - 3:30&lt;br /&gt;
** [https://etherpad.openstack.org/p/liberty-cross-project-in-team-scaling In-team scaling]&lt;br /&gt;
** Service Catalog Standardization&lt;br /&gt;
* 3:40 - 4:20&lt;br /&gt;
** [https://etherpad.openstack.org/p/liberty-cross-project-api-wg API Working Group]&lt;br /&gt;
** Towards one Network Stack: Part 1 - Neutron Gaps and Concerns&lt;br /&gt;
* 4:40 - 5:20&lt;br /&gt;
** [https://etherpad.openstack.org/p/liberty-cross-project-release-models OpenStack release model(s)]&lt;br /&gt;
** Unified Policy File&lt;br /&gt;
* 5:30 - 6:10&lt;br /&gt;
** OpenStack Documentation&lt;br /&gt;
** [https://etherpad.openstack.org/p/liberty-cross-project-managing-concurrency Managing concurrency]&lt;br /&gt;
&lt;br /&gt;
==Barbican==&lt;br /&gt;
==Ceilometer==&lt;br /&gt;
wednesday:&lt;br /&gt;
* 0900 - 0940: [https://etherpad.openstack.org/p/ceilo-multi-identity componentisation / multi identity]&lt;br /&gt;
* 0950 - 1030: [https://etherpad.openstack.org/p/event_alarm event alarms]&lt;br /&gt;
* 1100 - 1140: [https://etherpad.openstack.org/p/liberty-ceilometer-pipeline-config pipeline configuration]&lt;br /&gt;
* 1150 - 1230: [https://etherpad.openstack.org/p/ceilo-declarative-notifications declarative notification meters]&lt;br /&gt;
* 1440 - 1520: [https://etherpad.openstack.org/p/YVR-ops-ceilometer ops followup]&lt;br /&gt;
* 1530 - 1610: [https://etherpad.openstack.org/p/ceilo-multi-identity componentization carry over]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;thursday:&lt;br /&gt;
* 0900 - 0940: [https://etherpad.openstack.org/p/liberty-ceilometer-meter-deprecation meter deprecation]&lt;br /&gt;
* 0950 - 1030: [https://etherpad.openstack.org/p/liberty-ceilometer-meter-event samples/events integration]&lt;br /&gt;
* 1100 - 1140: [https://etherpad.openstack.org/p/liberty-ceilometer-versioned-objects versioned objects]&lt;br /&gt;
* 1150 - 1230: ops followup&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;friday:&lt;br /&gt;
* 0900 - 1200: [https://etherpad.openstack.org/p/liberty-ceilometer-contributors-meetup contributor meetup]&lt;br /&gt;
&lt;br /&gt;
==Cinder==&lt;br /&gt;
==Designate==&lt;br /&gt;
==Documentation==&lt;br /&gt;
&lt;br /&gt;
* Wednesday • 1:50pm - 2:30pm https://etherpad.openstack.org/p/Documentation__RST_Migration&lt;br /&gt;
* Wednesday • 3:30pm - 4:10pm https://etherpad.openstack.org/p/Documentation__Ops_Work_Session&lt;br /&gt;
* Thursday • 11:50am - 12:30pm https://etherpad.openstack.org/p/Documentation__API_Work_Session&lt;br /&gt;
* Thursday • 1:30pm - 2:10pm https://etherpad.openstack.org/p/Documentation__Blueprint_Work_Session&lt;br /&gt;
* Thursday • 2:20pm - 3:00pm https://etherpad.openstack.org/p/Documentation__Team_Structure_1&lt;br /&gt;
* Thursday • 3:10pm - 3:50pm https://etherpad.openstack.org/p/Documentation__Team_Structure_2&lt;br /&gt;
* Thursday • 4:10pm - 4:50pm https://etherpad.openstack.org/p/Documentation__Info_Architecture_1&lt;br /&gt;
* Thursday • 5:00pm - 5:40pm https://etherpad.openstack.org/p/Documentation__Info_Architecture_2&lt;br /&gt;
* Friday • 9:00am - 12:20pm https://etherpad.openstack.org/p/Documentation__Contributors_Meetup&lt;br /&gt;
&lt;br /&gt;
==Glance==&lt;br /&gt;
==Heat==&lt;br /&gt;
'''Wed'''&lt;br /&gt;
* 09:00 - 09:40: [https://etherpad.openstack.org/p/YVR-heat-liberty-convergence-1 (W) Finishing off Convergence phase 1]&lt;br /&gt;
* 09:50 - 10:30: [https://etherpad.openstack.org/p/YVR-heat-liberty-convergence-2 (W) Convergence phase 2 planning]&lt;br /&gt;
* 11:00 - 11:40: [https://etherpad.openstack.org/p/YVR-heat-liberty-testing (W) Functional and integration testing, identify gaps and suggest improvements]&lt;br /&gt;
* 11:50 - 12:30: [https://etherpad.openstack.org/p/YVR-heat-liberty-lifecycle-ops (W) Better support for lifecycle operations on (tripleo) heat stacks (upgrades etc)]&lt;br /&gt;
* 13:50 - 14:30: [https://etherpad.openstack.org/p/YVR-heat-liberty-client-usability (F) Heat client usability]&lt;br /&gt;
* 14:40 - 15:20: [https://etherpad.openstack.org/p/YVR-heat-liberty-template-format (F) Heat template format improvements]&lt;br /&gt;
* 15:30 - 16:10: [https://etherpad.openstack.org/p/YVR-heat-liberty-rest-api (F) REST API design and roadmap]&lt;br /&gt;
* 16:30 - 17:10: [https://etherpad.openstack.org/p/YVR-heat-liberty-senlin-autoscaling (F) Senlin Autoscaling Project - Deep Dive]&lt;br /&gt;
* 17:20 - 18:00: [https://etherpad.openstack.org/p/YVR-heat-liberty-containers (F) Orchestrating containers with Heat]&lt;br /&gt;
&lt;br /&gt;
'''Thu'''&lt;br /&gt;
* 09:00 - 09:40: [https://etherpad.openstack.org/p/YVR-heat-liberty-alembic (W) Migrating from sqlalchemy-migrations to alembic]&lt;br /&gt;
* 09:50 - 10:30: [https://etherpad.openstack.org/p/YVR-heat-liberty-versioned-objects (W) Future of Versioned objects in heat]&lt;br /&gt;
* 11:00 - 11:40: [https://etherpad.openstack.org/p/YVR-heat-liberty-autoscaling (W) Autoscaling improvements]&lt;br /&gt;
* 11:50 - 12:30: [https://etherpad.openstack.org/p/YVR-heat-liberty-deprecation (W) Our deprecation process]&lt;br /&gt;
* 16:10 - 16:50: [https://etherpad.openstack.org/p/YVR-heat-liberty-contrib-plugins (W) Moving most contrib plugins in-tree]&lt;br /&gt;
* 17:00 - 17:40: [https://etherpad.openstack.org/p/YVR-heat-liberty-resource-registering (W) Conditional registering of resources]&lt;br /&gt;
&lt;br /&gt;
'''Fri'''&lt;br /&gt;
* 09:00-12:20: [https://etherpad.openstack.org/p/YVR-heat-contributor-meetup Contributor Meetup]&lt;br /&gt;
&lt;br /&gt;
==Horizon==&lt;br /&gt;
==Infrastructure==&lt;br /&gt;
* Wed 09:00 - 09:40: [https://etherpad.openstack.org/p/YVR-infra-irc-meetings (W) Work session on Gerrit-driven IRC meetings]&lt;br /&gt;
* Wed 09:50 - 10:30: [https://etherpad.openstack.org/p/YVR-infra-activity-tracking (W) Work session on activity tracking]&lt;br /&gt;
* Thu 09:50 - 10:30: [https://etherpad.openstack.org/p/YVR-infra-task-tracking (F) Task tracking]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Ironic==&lt;br /&gt;
==Keystone==&lt;br /&gt;
==Manila==&lt;br /&gt;
'''Wed'''&lt;br /&gt;
* 09:00 - 09:40: [https://etherpad.openstack.org/p/YVR-manila-liberty-mount-automation (F) Mount automation]&lt;br /&gt;
* 09:50 - 10:30: [https://etherpad.openstack.org/p/YVR-manila-liberty-share-migration (F) Share migration]&lt;br /&gt;
* 11:00 - 11:40: [https://etherpad.openstack.org/p/YVR-manila-liberty-share-replication (F) Share replication]&lt;br /&gt;
* 16:30 - 17:10: [https://etherpad.openstack.org/p/YVR-manila-liberty-versioned-objects-and-apis (W) Versioned objects and APIs]&lt;br /&gt;
* 17:20 - 18:00: [https://etherpad.openstack.org/p/YVR-manila-liberty-fault-indication (W) Fault indication]&lt;br /&gt;
&lt;br /&gt;
'''Thu'''&lt;br /&gt;
* 16:10 - 16:50: [https://etherpad.openstack.org/p/YVR-manila-liberty-thin-provisioning (W) Thin provisioning and consistency groups]&lt;br /&gt;
* 17:00 - 17:40: [https://etherpad.openstack.org/p/YVR-manila-liberty-snapshot-share-relationship-manila-service-image (W) Snapshot-share relationship and Manila service image]&lt;br /&gt;
&lt;br /&gt;
==Neutron==&lt;br /&gt;
&lt;br /&gt;
'''Wed'''&lt;br /&gt;
* 09:00 - 09:40: [https://etherpad.openstack.org/p/YVR-neutron-liberty-development Neutron Liberty Development]&lt;br /&gt;
* 09:50 - 10:30: [https://etherpad.openstack.org/p/YVR-neutron-use-case-discussion Neutron Use Case Discussion]&lt;br /&gt;
* 11:00 - 11:40: [https://etherpad.openstack.org/p/YVR-neutron-vlan-trunk VLAN Aware VMs]&lt;br /&gt;
* 11:50 - 12:30: [https://etherpad.openstack.org/p/YVR-neutron-lightning-talks Neutron Lightning Talks]&lt;br /&gt;
* 13:50 - 14:30: [https://etherpad.openstack.org/p/YVR-neutron-octavia Octavia]&lt;br /&gt;
* 14:40 - 15:20: [https://etherpad.openstack.org/p/YVR-neutron-opendaylight OpenDaylight]&lt;br /&gt;
* 15:30 - 16:10: [https://etherpad.openstack.org/p/YVR-neutron-ovn OVN]&lt;br /&gt;
* 16:30 - 17:10: [https://etherpad.openstack.org/p/YVR-neutron-ironic Ironic and Neutron integration]&lt;br /&gt;
* 17:20 - 18:00: [https://etherpad.openstack.org/p/YVR-neutron-get-me-a-network Get Me a Network!]&lt;br /&gt;
&lt;br /&gt;
'''Thu'''&lt;br /&gt;
* 09:00 - 09:40:  [https://etherpad.openstack.org/p/YVR-neutron-lbaas-use-cases Neutron LBaaS Use Cases]&lt;br /&gt;
* 09:50 - 10:30:  [https://etherpad.openstack.org/p/YVR-neutron-l3 Neutron L3]&lt;br /&gt;
* 11:00 - 11:40: [https://etherpad.openstack.org/p/YVR-neutron-qos QoS]&lt;br /&gt;
* 11:50 - 12:30: [https://etherpad.openstack.org/p/YVR-neutron-third-party-ci-liberty Third Party CI in Liberty and Beyond]&lt;br /&gt;
* 13:30 - 14:10: [https://etherpad.openstack.org/p/YVR-neutron-testing-in-liberty Testing In Liberty]&lt;br /&gt;
* 14:20 - 15:00: [https://etherpad.openstack.org/p/YVR-neutron-RBAC Neutron RBAC]&lt;br /&gt;
* 15:10 - 15:50: [https://etherpad.openstack.org/p/YVR-neutron-sg-fwaas-future-direction SG and FWaaS Future Directions]&lt;br /&gt;
* 16:10 - 16:50: [https://etherpad.openstack.org/p/YVR-neutron-nfv-enhancements Neutron NFV Enhancements]&lt;br /&gt;
&lt;br /&gt;
'''Fri'''&lt;br /&gt;
* 09:00-12:20: [https://etherpad.openstack.org/p/YVR-neutron-contributor-meetup Contributor Meetup]&lt;br /&gt;
&lt;br /&gt;
==Nova==&lt;br /&gt;
&lt;br /&gt;
'''Wednesday:'''&lt;br /&gt;
&lt;br /&gt;
* 09:00 - 09:40: [https://etherpad.openstack.org/p/YVR-nova-scheduler-in-liberty Scheduler in Liberty]&lt;br /&gt;
* 09:50 - 10:30: [https://etherpad.openstack.org/p/YVR-nova-scalling-out-scheduler-for-cells Scaling out scheduler for cells ]&lt;br /&gt;
&lt;br /&gt;
* 11:00 - 11:40: [https://etherpad.openstack.org/p/YVR-nova-cells-v2 Cells v2]&lt;br /&gt;
* 11:50 - 12:30: [https://etherpad.openstack.org/p/YVR-nova-resource-tracker Resource Tracker, Clustered Hypervisors and NFV]&lt;br /&gt;
&lt;br /&gt;
* 13:50 - 14:30: [https://etherpad.openstack.org/p/YVR-nova-spec-blueprint-unconference Nova Spec/Blueprint Unconference]&lt;br /&gt;
* 14:40 - 15:20: [https://etherpad.openstack.org/p/YVR-nova-database-internals Database (part 1)]&lt;br /&gt;
* 15:30 - 16:10: [https://etherpad.openstack.org/p/YVR-nova-functional-testing-feature-classification Functional Testing and Feature Classification]&lt;br /&gt;
&lt;br /&gt;
* 16:30 - 17:10: [https://etherpad.openstack.org/p/YVR-nova-instance-ha-evacuate-resize Dealing with compute host failure: Instance HA, Evacuate, Resize]&lt;br /&gt;
* 17:20 - 18:00: [https://etherpad.openstack.org/p/YVR-nova-api-2.1-in-liberty Nova API v2.1 in Liberty]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
'''Thursday:'''&lt;br /&gt;
&lt;br /&gt;
* 09:00 - 09:40: [https://etherpad.openstack.org/p/YVR-nova-api-2.0-3rd-party Future of Nova API v2.0 and 3rd Party APIs]&lt;br /&gt;
* 09:50 - 10:30: [https://etherpad.openstack.org/p/YVR-nova-quotas-and-database Quotas and Database (part 2)]&lt;br /&gt;
&lt;br /&gt;
* 11:00 - 11:40: [https://etherpad.openstack.org/p/YVR-nova-flavors-and-image-properties Flavors and Image Properties]&lt;br /&gt;
* 11:50 - 12:30: [https://etherpad.openstack.org/p/YVR-nova-error-handling Error Handling]&lt;br /&gt;
&lt;br /&gt;
* 13:30 - 14:10: [https://etherpad.openstack.org/p/YVR-nova-spec-blueprint-unconference Nova Spec/Blueprint Unconference]&lt;br /&gt;
* 14:20 - 15:00: [https://etherpad.openstack.org/p/YVR-nova-liberty-priorities Liberty Priorities (part 1)]&lt;br /&gt;
* 15:10 - 15:50: [https://etherpad.openstack.org/p/YVR-nova-liberty-priorities Liberty Priorities (part 2)]&lt;br /&gt;
&lt;br /&gt;
* 16:10 - 16:50: [https://etherpad.openstack.org/p/YVR-nova-liberty-process Liberty Process and Scaling out Reviews]&lt;br /&gt;
* 17:00 - 17:40: [https://etherpad.openstack.org/p/YVR-nova-network Future of Nova's networking and nova-network]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
'''Friday:'''&lt;br /&gt;
&lt;br /&gt;
* 09:00 - 12:20 and 13:20 - 16:40: [https://etherpad.openstack.org/p/YVR-nova-contributor-meetup Nova Contributor Meetup]&lt;br /&gt;
&lt;br /&gt;
==Oslo==&lt;br /&gt;
&lt;br /&gt;
'''Wednesday:'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* 09:00 - 09:40: [https://etherpad.openstack.org/p/YVR-oslo-versioned-objects-intro (F) Get to know your objects and learn how to version them (an introduction to oslo.versionedobjects)!]&lt;br /&gt;
* 09:50 - 10:30: [https://etherpad.openstack.org/p/YVR-oslo-taskflow-plans (F) Give me liberty, or give me taskflow (come learn about taskflow liberty plans)!]&lt;br /&gt;
* 11:00 - 11:40: [https://etherpad.openstack.org/p/YVR-oslo-rootwrap-plans (W) Give me liberty, or give me wraps (the future of oslo.rootwrap) ]&lt;br /&gt;
* 11:50 - 12:30: [https://etherpad.openstack.org/p/YVR-oslo-functional-testing (W) The cost of liberty is less than the price of functional testing]&lt;br /&gt;
* 13:50 - 14:30: [https://etherpad.openstack.org/p/YVR-oslo-graduation-schedule (W) Give me more oslo in liberty or else! Schedule &amp;amp; new libraries]&lt;br /&gt;
* 14:40 - 15:20: [https://etherpad.openstack.org/p/YVR-oslo-messaging-zmq-status (F) State of zmq in oslo.messaging]&lt;br /&gt;
* 15:30 - 16:10: [https://etherpad.openstack.org/p/YVR-oslo-optional-dependencies (W) Emancipate/liberate your optional dependencies - Optional Dependencies]&lt;br /&gt;
* 16:30 - 17:10: [https://etherpad.openstack.org/p/YVR-oslo-release-process-review (W) Reviewing our release processes]&lt;br /&gt;
* 17:20 - 18:00: [https://etherpad.openstack.org/p/YVR-oslo-config-filter (W) Configuration Filters in oslo.config]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
'''Thursday:'''&lt;br /&gt;
&lt;br /&gt;
* 09:50 - 10:30: [https://etherpad.openstack.org/p/YVR-oslo-strategy-discussion (F) The oslo liberty proclamation (and associated strategy discussion)]&lt;br /&gt;
* 11:00 - 11:40: [https://etherpad.openstack.org/p/YVR-oslo-config-plans (F) Enfranchise oslo.config, let's discuss alternative data sources in oslo.config]&lt;br /&gt;
* 11:50 - 12:30: [https://etherpad.openstack.org/p/YVR-oslo-log-plans (W) Life, Liberty, and the pursuit of oslo.log changes]&lt;br /&gt;
* 13:30 - 14:10: [https://etherpad.openstack.org/p/YVR-oslo-versioned-objects-deep-dive (W) Deep dive on oslo.versionedobjects, bring your wet suits.]&lt;br /&gt;
* 14:20 - 15:00: [https://etherpad.openstack.org/p/YVR-oslo-db-plans (F) For a people who are free, and who mean to remain so, a well organized and armed 'oslo.db' is their best security]&lt;br /&gt;
* 15:10 - 15:50: [https://etherpad.openstack.org/p/YVR-oslo-asyncio (F) Event loops, coroutines, yield from, futures, a discussion on asyncio (and triollus?)]&lt;br /&gt;
* 16:10 - 16:50: [https://etherpad.openstack.org/p/YVR-oslo-messaging-plans (F) Ping pong, oslo.messaging plans for liberty.]&lt;br /&gt;
* 17:00 - 17:40: [https://etherpad.openstack.org/p/YVR-oslo-tech-debt-deprecation (F) How to clean up your tech-debt; let's discuss best practices on how to deprecate things in oslo libraries]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==QA==&lt;br /&gt;
&lt;br /&gt;
'''Wed'''&lt;br /&gt;
&lt;br /&gt;
* 1150-1230 - [https://etherpad.openstack.org/p/YVR-QA-testing-beyond-the-gate Testing beyond the gate]&lt;br /&gt;
* 1350-1430 - [https://etherpad.openstack.org/p/YVR-QA-Devstack-Roadmap Devstack Roadmap]&lt;br /&gt;
* 1440-1520 - [https://etherpad.openstack.org/p/YVR-QA-Tempest-service-clients Work Session: Tempest service clients]&lt;br /&gt;
* 1630-1710 - [https://etherpad.openstack.org/p/YVR-QA-in-the-big-tent QA in the Big Tent]&lt;br /&gt;
&lt;br /&gt;
'''Thurs.'''&lt;br /&gt;
* 0900-0940 - [https://etherpad.openstack.org/p/YVR-QA-idempotent-id Work Session: Idempotent ID]&lt;br /&gt;
* 1330-1410 - [https://etherpad.openstack.org/p/YVR-QA-Tempest-as-a-system-program Work Session: Tempest as System Program]&lt;br /&gt;
* 1420-1500 - [https://etherpad.openstack.org/p/YVR-QA-Tempest-CLI Work Session: Tempest CLI and Tempest Cleanup]&lt;br /&gt;
* 1610-1650 - [https://etherpad.openstack.org/p/YVR-QA-Tempest-Scope-Revisited Tempest Scope Revisited]&lt;br /&gt;
* 1700-1740 - [https://etherpad.openstack.org/p/YVR-QA-Liberty-Priorities Liberty Priorities]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Release Management==&lt;br /&gt;
* Wed 17:20-18:00: [https://etherpad.openstack.org/p/YVR-relmgt-stable-branch Stable branch]&lt;br /&gt;
* Thu 11:00-11:40 [https://etherpad.openstack.org/p/YVR-relmgt-library-releases Work session: Library releases]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Sahara==&lt;br /&gt;
&lt;br /&gt;
'''Wed'''&lt;br /&gt;
&lt;br /&gt;
* 11:00am (W) HA http://etherpad.openstack.org/p/sahara-liberty-ha&lt;br /&gt;
* 11:50am (W) API v2 https://etherpad.openstack.org/p/sahara-liberty-api-v2&lt;br /&gt;
&lt;br /&gt;
''Thu'''&lt;br /&gt;
&lt;br /&gt;
* 1:30pm (F) UI https://etherpad.openstack.org/p/sahara-liberty-ui&lt;br /&gt;
* 2:20pm (F) Security https://etherpad.openstack.org/p/sahara-liberty-security&lt;br /&gt;
* 3:10pm (W) EDP https://etherpad.openstack.org/p/sahara-liberty-edp&lt;br /&gt;
* 4:10pm (W) Resources Visibility/ACL https://etherpad.openstack.org/p/sahara-liberty-resources&lt;br /&gt;
* 5:00pm (W) Plugins https://etherpad.openstack.org/p/sahara-liberty-plugins&lt;br /&gt;
&lt;br /&gt;
''Fri'''&lt;br /&gt;
&lt;br /&gt;
* 9am - 4:40pm Meetup https://etherpad.openstack.org/p/sahara-liberty-meetup&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Security==&lt;br /&gt;
* Wed 13:50-14:30: [https://etherpad.openstack.org/p/YVR-security-vmt Vulnerability management]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Swift==&lt;br /&gt;
==TripleO==&lt;br /&gt;
&lt;br /&gt;
==Trove==&lt;br /&gt;
==Zaqar==&lt;br /&gt;
==Murano==&lt;br /&gt;
'''Thu'''&lt;br /&gt;
&lt;br /&gt;
* 2:20pm (F) [https://etherpad.openstack.org/p/murano-liberty-now-n-future Murano: Now, Liberty and Future]&lt;br /&gt;
* 4:10pm (W) [https://etherpad.openstack.org/p/murano-liberty-work-session-1 Images &amp;amp; Murano]&lt;br /&gt;
* 5:00pm (W) [https://etherpad.openstack.org/p/murano-liberty-work-session-2 Authentication &amp;amp; Agent]&lt;br /&gt;
&lt;br /&gt;
'''Fri'''&lt;br /&gt;
&lt;br /&gt;
* 9am - 4:40pm [https://etherpad.openstack.org/p/murano-liberty-contributors-meetup Contributors Meetup]&lt;br /&gt;
&lt;br /&gt;
==Event intro/closure==&lt;br /&gt;
* Tue 11:15-11:55: [https://etherpad.openstack.org/p/YVR-design-summit-101 Design Summit 101]&lt;br /&gt;
* Fri 16:50-17:30: [https://etherpad.openstack.org/p/YVR-design-summit-feedback Design Summit feedback session]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Ops==&lt;br /&gt;
Tuesday:&lt;br /&gt;
* https://etherpad.openstack.org/p/YVR-ops-101&lt;br /&gt;
* https://etherpad.openstack.org/p/YVR-ops-federation&lt;br /&gt;
* https://etherpad.openstack.org/p/YVR-ops-rabbitmq&lt;br /&gt;
* https://etherpad.openstack.org/p/YVR-ops-logging&lt;br /&gt;
* https://etherpad.openstack.org/p/YVR-ops-arch-show-tell&lt;br /&gt;
* https://etherpad.openstack.org/p/YVR-ops-ceilometer&lt;br /&gt;
* https://etherpad.openstack.org/p/YVR-ops-billing&lt;br /&gt;
* https://etherpad.openstack.org/p/YVR-ops-cinder&lt;br /&gt;
* https://etherpad.openstack.org/p/YVR-ops-legacy-apps&lt;br /&gt;
* https://etherpad.openstack.org/p/YVR-ops-user-committee&lt;br /&gt;
* https://etherpad.openstack.org/p/YVR-ops-hypervisor-tuning&lt;br /&gt;
* https://etherpad.openstack.org/p/YVR-ops-security&lt;br /&gt;
* https://etherpad.openstack.org/p/YVR-ops-deployment&lt;br /&gt;
* https://etherpad.openstack.org/p/YVR-ops-database&lt;br /&gt;
* https://etherpad.openstack.org/p/YVR-ops-evangelism&lt;br /&gt;
* https://etherpad.openstack.org/p/YVR-ops-multi-site&lt;br /&gt;
* https://etherpad.openstack.org/p/YVR-ops-nova&lt;br /&gt;
* https://etherpad.openstack.org/p/YVR-ops-customer-onboarding&lt;br /&gt;
* https://etherpad.openstack.org/p/YVR-ops-containers&lt;br /&gt;
* https://etherpad.openstack.org/p/YVR-ops-neutron&lt;br /&gt;
&lt;br /&gt;
Wednesday:&lt;br /&gt;
* https://etherpad.openstack.org/p/YVR-ops-telco&lt;br /&gt;
* https://etherpad.openstack.org/p/YVR-ops-puppet&lt;br /&gt;
* https://etherpad.openstack.org/p/YVR-ops-chef&lt;br /&gt;
* https://etherpad.openstack.org/p/YVR-ops-hpc&lt;br /&gt;
* https://etherpad.openstack.org/p/YVR-ops-tools&lt;br /&gt;
* https://etherpad.openstack.org/p/YVR-ops-ansible&lt;br /&gt;
* https://etherpad.openstack.org/p/YVR-ops-ceph&lt;br /&gt;
* https://etherpad.openstack.org/p/YVR-ops-tags&lt;br /&gt;
* https://etherpad.openstack.org/p/YVR-ops-large-deployments&lt;br /&gt;
* https://etherpad.openstack.org/p/YVR-ops-burning-issues&lt;br /&gt;
* https://etherpad.openstack.org/p/YVR-ops-docs&lt;br /&gt;
* https://etherpad.openstack.org/p/YVR-ops-tech-choices&lt;br /&gt;
* https://etherpad.openstack.org/p/YVR-ops-cmdb&lt;br /&gt;
* https://etherpad.openstack.org/p/YVR-ops-data-plane-transitions&lt;br /&gt;
* https://etherpad.openstack.org/p/YVR-ops-upgrades&lt;br /&gt;
* https://etherpad.openstack.org/p/YVR-ops-packaging&lt;br /&gt;
* https://etherpad.openstack.org/p/YVR-ops-nova-network&lt;/div&gt;</summary>
		<author><name>Clinton Knight</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Manila/MountAutomation&amp;diff=81030</id>
		<title>Manila/MountAutomation</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Manila/MountAutomation&amp;diff=81030"/>
				<updated>2015-05-12T20:05:53Z</updated>
		
		<summary type="html">&lt;p&gt;Clinton Knight: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Intro =&lt;br /&gt;
We considered multiple approaches for addressing mount automation. The thinking has come a long way since we originally considered the problem 2+ years ago, but we still don't have a &amp;quot;silver bullet&amp;quot; approach that works in a wide variety of application and has no drawbacks.&lt;br /&gt;
&lt;br /&gt;
= Questions =&lt;br /&gt;
We decided to evaluate the various approaches using the follow measurements:&lt;br /&gt;
* Is the approach limited to a subset of scenarios?&lt;br /&gt;
* Does the approach allow for instantaneous/synchronous mounting?&lt;br /&gt;
* Does the approach allow for persistent mounts that survive across reboots?&lt;br /&gt;
* Can the approach handle the case when the client is down at the time of attach/detach?&lt;br /&gt;
* What security considerations exist?&lt;br /&gt;
* What network considerations exist?&lt;br /&gt;
* Are there any external dependencies?&lt;br /&gt;
* Does the approach require Manila to store any state?&lt;br /&gt;
* Does the approach allow Manila to enable use cases that would be impossible without mount automation, such as automatically updating mounts in the event of a DR failover?&lt;br /&gt;
* How much effort is required to implement the approach?&lt;br /&gt;
* How resistant are users likely to be to the approach?&lt;br /&gt;
* Does the approach require Manila to expand it's project scope (to manage things that it currently has no knowledge of)?&lt;br /&gt;
&lt;br /&gt;
The hardest thing about this feature, aside from the fact that there are no silver bullet solutions, is that the feature doesn't allow users to do anything that wasn't already possible. For the most part, this is about simplifying something which can be done already (with the exception of the DR use case, mentioned above).&lt;br /&gt;
&lt;br /&gt;
= Approaches Summary =&lt;br /&gt;
Approaches considered:&lt;br /&gt;
&lt;br /&gt;
* SSH/PsExec (very well understood approach we've considered from the beginning)&lt;br /&gt;
* Agent - write a custom agent to solve the problem (also well understood and old idea)&lt;br /&gt;
* Zeroconf-based advertisements - a new idea that came from the Paris summit&lt;br /&gt;
* AutoFS - leverage autofs to solve the problem on UNIX&lt;br /&gt;
* LDAP/AD - insert mount information into the directory service and let clients pull it from there&lt;br /&gt;
* Cloud-Init - piggyback on cloudinit (a shippable demo is available for this that will be shown at the Liberty summit)&lt;br /&gt;
* VirtFS - virtfs gives us the closest model to cinder, and attaches/detaches make significantly more sense in this context&lt;br /&gt;
* Do nothing, and prescribe recipes how to automate mounts with existing tools, such as Heat.&lt;br /&gt;
&lt;br /&gt;
= Approaches =&lt;br /&gt;
&lt;br /&gt;
== SSH/PsExec ==&lt;br /&gt;
The simplest and most widely usable approach for automating mounts is to use management software that already exists in the OS. For UNIX, this is SSH. For Windows, it would be the various forms of Windows remote-management such as PsExec (PsExec is an SSH-like tool that works out of the box on nearly all Windows machines) or PowerShell.&lt;br /&gt;
&lt;br /&gt;
The idea here is to give Manila the root password, root key, or Administrator creds for all of your clients, and to let Manila reach out and poke them to trigger them to mount or unmount shares at the appropriate times.&lt;br /&gt;
&lt;br /&gt;
The value of this approach is that it has no dependencies on anything other than standard OS facilities and is therefore likely to be widely compatible.&lt;br /&gt;
&lt;br /&gt;
* Is the approach limited to a subset of scenarios?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; No.&lt;br /&gt;
&lt;br /&gt;
* Does the approach allow for instantaneous/synchronous mounting?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; Yes.&lt;br /&gt;
&lt;br /&gt;
* Does the approach allow for persistent mounts that survive across reboots?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; Yes.&lt;br /&gt;
&lt;br /&gt;
* Can the approach handle the case when the client is down at the time of attach/detach?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:red&amp;quot;&amp;gt;bad&amp;lt;/span&amp;gt; No.&lt;br /&gt;
&lt;br /&gt;
* What security considerations exist?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:red&amp;quot;&amp;gt;bad&amp;lt;/span&amp;gt; Tenants have to hand over to Manila administrator credentials for all of the guests for which they want Manila to automate mounts. This can create a huge trust barrier.&lt;br /&gt;
&lt;br /&gt;
* What network considerations exist?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:red&amp;quot;&amp;gt;bad&amp;lt;/span&amp;gt; Manila will need network access directly to every client for which its automating mounts. This can be easy in some cases and near impossible in other cases.&lt;br /&gt;
&lt;br /&gt;
* Are there any external dependencies?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:yellow&amp;quot;&amp;gt;caution&amp;lt;/span&amp;gt; Manila needs an SSH client (easy) and a PsExec client (hard). PsExec is a Windows binary, which could be ported to UNIX, but most likely at considerable cost.&lt;br /&gt;
&lt;br /&gt;
* Does the approach require Manila to store any state?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:yellow&amp;quot;&amp;gt;caution&amp;lt;/span&amp;gt; Yes. Manila needs to store credentials for the clients, and also information about IP addresses and networks to find the clients.&lt;br /&gt;
&lt;br /&gt;
* Does the approach allow Manila to enable use cases that would be impossible without mount automation, such as automatically updating mounts in the event of a DR failover?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; Yes. If Manila can push mount operations at will, then automatically updating mounts in the DR failover case becomes possible.&lt;br /&gt;
&lt;br /&gt;
* How much effort is required to implement the approach?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:yellow&amp;quot;&amp;gt;caution&amp;lt;/span&amp;gt; For UNIX-only, medium. For Windows, significantly more if we want to undertake something with PsExec.&lt;br /&gt;
&lt;br /&gt;
* How resistant are users likely to be to the approach?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; It's optional, but some users may choose not to use this feature based on the requirement to hand overs root creds to Manila.&lt;br /&gt;
&lt;br /&gt;
* Does the approach require Manila to expand it's project scope (to manage things that it currently has no knowledge of)?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:red&amp;quot;&amp;gt;bad&amp;lt;/span&amp;gt; Yes. Manila would needs to become aware of clients and their networks. This is currently out of scope for Manila.&lt;br /&gt;
&lt;br /&gt;
== Agent ==&lt;br /&gt;
Writing an agent gives us ultimate flexibility. Agents can listen for requests from Manila, they can pull updates from Manila periodically or at boot, and they can perform ANY change we like on the clients, at any time. Many problems becomes simple when you can assume the existence of an agent on the client.&lt;br /&gt;
&lt;br /&gt;
There are obvious downsides to this approach, chiefly the trust issue that most users will have about installing a new piece of software on their guests, and the significant effort involved with creating a new piece of software and maintaining it. There are also security concerns, because we will be responsible if a bug in the agent software exposes a user to mischief and mayhem.&lt;br /&gt;
&lt;br /&gt;
* Is the approach limited to a subset of scenarios?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; No.&lt;br /&gt;
&lt;br /&gt;
* Does the approach allow for instantaneous/synchronous mounting?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; Yes.&lt;br /&gt;
&lt;br /&gt;
* Does the approach allow for persistent mounts that survive across reboots?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; Yes.&lt;br /&gt;
&lt;br /&gt;
* Can the approach handle the case when the client is down at the time of attach/detach?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; Yes.&lt;br /&gt;
&lt;br /&gt;
* What security considerations exist?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:red&amp;quot;&amp;gt;bad&amp;lt;/span&amp;gt; We get to design our own security. This gives us excellent flexibility, but we have to design something that strikes a good balance between protecting users and being usable, which is always hard. Regardless, we will face trust problems until we have a proven track record.&lt;br /&gt;
&lt;br /&gt;
* What network considerations exist?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:yellow&amp;quot;&amp;gt;caution&amp;lt;/span&amp;gt; The network considerations are similar to the SSH approach, because Manila will need to reach out and poke the agent. Also the agent will need a reverse path back to the Manila server to do pull requests, which might be desirable at boot time.&lt;br /&gt;
&lt;br /&gt;
* Are there any external dependencies?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:yellow&amp;quot;&amp;gt;caution&amp;lt;/span&amp;gt; The external dependency is the agent itself. We cannot force anyone to install it, so in cases where it doesn't exist, we will be unable to do anything.&lt;br /&gt;
&lt;br /&gt;
* Does the approach require Manila to store any state?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:yellow&amp;quot;&amp;gt;caution&amp;lt;/span&amp;gt; Yes. Manila will need to track the agents and some security information in order to contact them and authenticate with them.&lt;br /&gt;
&lt;br /&gt;
* Does the approach allow Manila to enable use cases that would be impossible without mount automation, such as automatically updating mounts in the event of a DR failover?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; Yes.&lt;br /&gt;
&lt;br /&gt;
* How much effort is required to implement the approach?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:red&amp;quot;&amp;gt;bad&amp;lt;/span&amp;gt; Very high.&lt;br /&gt;
&lt;br /&gt;
* How resistant are users likely to be to the approach?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:red&amp;quot;&amp;gt;bad&amp;lt;/span&amp;gt; Very resistent. It's another thing to install and another thing to security audit. Another thing to worry about.&lt;br /&gt;
&lt;br /&gt;
* Does the approach require Manila to expand it's project scope (to manage things that it currently has no knowledge of)?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:red&amp;quot;&amp;gt;bad&amp;lt;/span&amp;gt; Yes. Not only does Manila need to become aware of clients and client networks, but now Manila needs to create a whole new project and maintain that software as well.&lt;br /&gt;
&lt;br /&gt;
== Zeroconf-based advertisements ==&lt;br /&gt;
Zeroconf is an interesting approach for advertising services on networks, which layers on top of DNS (or mDNS in peer to peer environments). Zeroconf has existing support for advertisement of CIFS share and NFS exports, but there is no evidence that modern operating systems react to these advertisements automatically by (for example) mounting them.&lt;br /&gt;
&lt;br /&gt;
Zeroconf also only solves half the problem of mount automation. It can notify clients of the existence of something they can mount, but it doesn't tell them precisely WHERE to mount it. For some scenarios, a random mount point might be acceptable (VDI) but for others, it would be a dealbreaker (database as a service).&lt;br /&gt;
&lt;br /&gt;
It's unlikely that we could address unmounting with this approach.&lt;br /&gt;
&lt;br /&gt;
* Is the approach limited to a subset of scenarios?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:red&amp;quot;&amp;gt;bad&amp;lt;/span&amp;gt; Yes.&lt;br /&gt;
&lt;br /&gt;
* Does the approach allow for instantaneous/synchronous mounting?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:yellow&amp;quot;&amp;gt;caution&amp;lt;/span&amp;gt; Maybe.&lt;br /&gt;
&lt;br /&gt;
* Does the approach allow for persistent mounts that survive across reboots?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:yellow&amp;quot;&amp;gt;caution&amp;lt;/span&amp;gt; Maybe.&lt;br /&gt;
&lt;br /&gt;
* Can the approach handle the case when the client is down at the time of attach/detach?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; Yes.&lt;br /&gt;
&lt;br /&gt;
* What security considerations exist?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; Possibly none.&lt;br /&gt;
&lt;br /&gt;
* What network considerations exist?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:red&amp;quot;&amp;gt;bad&amp;lt;/span&amp;gt; Zeroconf relies heavily on multicast, which rarely crosses router boundaries (the admin has to configure multicast routing). In order to get the advertisements onto the right networks, Manila would need to perform some weird gymnastics, most likely involving service VMs with lots and lots of network ports.&lt;br /&gt;
&lt;br /&gt;
* Are there any external dependencies?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:red&amp;quot;&amp;gt;bad&amp;lt;/span&amp;gt; Yes. Zeroconf is not universally available in guest images or enabled.&lt;br /&gt;
&lt;br /&gt;
* Does the approach require Manila to store any state?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:yellow&amp;quot;&amp;gt;caution&amp;lt;/span&amp;gt; Yes. Manila would need to know which clients to advertise to and on which networks.&lt;br /&gt;
&lt;br /&gt;
* Does the approach allow Manila to enable use cases that would be impossible without mount automation, such as automatically updating mounts in the event of a DR failover?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:red&amp;quot;&amp;gt;bad&amp;lt;/span&amp;gt; No. It's unlikely that an advertisement-based approach would allow for the fast unmount-move-mount semantics needed to cleanly failover.&lt;br /&gt;
&lt;br /&gt;
* How much effort is required to implement the approach?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:red&amp;quot;&amp;gt;bad&amp;lt;/span&amp;gt; Unknown, but not small. There are probably existing libraries we can use to do zeroconf-based-advertising, but all of the service VM and networking stuff required to make it work will still be considerable effort.&lt;br /&gt;
&lt;br /&gt;
* How resistant are users likely to be to the approach?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; Very little. The approach is not invasive at all, aside from the possibly scary service VM that attaches to thousands of networks to send advertisements.&lt;br /&gt;
&lt;br /&gt;
* Does the approach require Manila to expand it's project scope (to manage things that it currently has no knowledge of)?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:red&amp;quot;&amp;gt;bad&amp;lt;/span&amp;gt; Yes. Manila needs to know about clients and networks to be able to advertise to them. Also, we need to maintain the software image that goes on the advertising service VM. This would require creating a new GitHub repo and maintaining a new project.&lt;br /&gt;
&lt;br /&gt;
== AutoFS ==&lt;br /&gt;
Many UNIX users already use autofs to control large numbers of NFS mounts. The advantage to autofs is that you can make a single change to a file on a server, and suddenly thousands of clients can mount something new.&lt;br /&gt;
&lt;br /&gt;
One downside is that autofs doesn't actually mount stuff immediately. It's an event-based system that relies on just-in-time mounting on the client side, so that if the client tries to access the mount point before it's mounted, it asks the server what is the correct thing to mount and mounts it. This creates real problems with changes to mounts or unmounts, because they basically become impossible without a reboot or some other approach described elsewhere in this document.&lt;br /&gt;
&lt;br /&gt;
The other downside is that autofs is extremely flexible. Different users probably use it in very different ways and a single approach probably won't meet all users' needs without some customization by the user.&lt;br /&gt;
&lt;br /&gt;
* Is the approach limited to a subset of scenarios?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:red&amp;quot;&amp;gt;bad&amp;lt;/span&amp;gt; Yes. It would be UNIX only, and only work if autofs was in use, and only if autofs was configured in a way that it was compatible with Manila.&lt;br /&gt;
&lt;br /&gt;
* Does the approach allow for instantaneous/synchronous mounting?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:red&amp;quot;&amp;gt;bad&amp;lt;/span&amp;gt; Not really. The just-in-time approach is instantaneous, except that mount doesn't actually happen until its needed.&lt;br /&gt;
&lt;br /&gt;
* Does the approach allow for persistent mounts that survive across reboots?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; Yes.&lt;br /&gt;
&lt;br /&gt;
* Can the approach handle the case when the client is down at the time of attach/detach?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; Yes.&lt;br /&gt;
&lt;br /&gt;
* What security considerations exist?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:yellow&amp;quot;&amp;gt;caution&amp;lt;/span&amp;gt; Manila needs write access to the place where the autofs tables live. This is likely to vary from case to case, but it would be sensitive information and access to it would always be protected.&lt;br /&gt;
&lt;br /&gt;
* What network considerations exist?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; None.&lt;br /&gt;
&lt;br /&gt;
* Are there any external dependencies?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:yellow&amp;quot;&amp;gt;caution&amp;lt;/span&amp;gt; Yes, autofs would be needed.&lt;br /&gt;
&lt;br /&gt;
* Does the approach require Manila to store any state?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; Possibly not. Manila could simply push updates to autofs and then forget about them, and the right thing would happen.&lt;br /&gt;
&lt;br /&gt;
* Does the approach allow Manila to enable use cases that would be impossible without mount automation, such as automatically updating mounts in the event of a DR failover?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:red&amp;quot;&amp;gt;bad&amp;lt;/span&amp;gt; Probably not. Autofs is not friendly to changes, because once the client has its mount it doesn't go back and pull changes from the server anymore.&lt;br /&gt;
&lt;br /&gt;
* How much effort is required to implement the approach?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; Fairly low. It's just some code that tweaks and autofs table. The effort gets higher if we try to get clever and support lots of ways of using autofs.&lt;br /&gt;
&lt;br /&gt;
* How resistant are users likely to be to the approach?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; Very low. Users like this idea, but they probably haven't thought through all the downsides.&lt;br /&gt;
&lt;br /&gt;
* Does the approach require Manila to expand it's project scope (to manage things that it currently has no knowledge of)?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; No. This feature can be implemented on the side without significantly changing Manila itself.&lt;br /&gt;
&lt;br /&gt;
== LDAP/AD ==&lt;br /&gt;
Directory services create a centralized place for clients to get information. A list of mounts could be one kind of information stored in a directory service. For Windows, the AD server tells each user where his home directory is, for example. On UNIX, LDAP can be a similar repository, but coupled with autofs for mounting.&lt;br /&gt;
&lt;br /&gt;
We haven't determined 100% whether these tools are flexible enough out of the box, but they provide a reasonable building block that could be combined with some scripts to facilitate mount automation. That being said, this approach has enough drawbacks that we didn't consider it worthwhile to dig deeper.&lt;br /&gt;
&lt;br /&gt;
* Is the approach limited to a subset of scenarios?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:red&amp;quot;&amp;gt;bad&amp;lt;/span&amp;gt; Yes. Not all environments have LDAP/AD.&lt;br /&gt;
&lt;br /&gt;
* Does the approach allow for instantaneous/synchronous mounting?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:red&amp;quot;&amp;gt;bad&amp;lt;/span&amp;gt; No.&lt;br /&gt;
&lt;br /&gt;
* Does the approach allow for persistent mounts that survive across reboots?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; Yes.&lt;br /&gt;
&lt;br /&gt;
* Can the approach handle the case when the client is down at the time of attach/detach?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; Yes.&lt;br /&gt;
&lt;br /&gt;
* What security considerations exist?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:yellow&amp;quot;&amp;gt;caution&amp;lt;/span&amp;gt; Manila needs write access to the LDAP/AD server. In theory we already have this with the security service that's part of the share network, but not all clients actually use that feature, so it would make setting up security services a prerequisute.&lt;br /&gt;
&lt;br /&gt;
* What network considerations exist?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; None.&lt;br /&gt;
&lt;br /&gt;
* Are there any external dependencies?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:yellow&amp;quot;&amp;gt;caution&amp;lt;/span&amp;gt; Yes, the LDAP/AD server. Also software to communicate with those servers from Manila.&lt;br /&gt;
&lt;br /&gt;
* Does the approach require Manila to store any state?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; No.&lt;br /&gt;
&lt;br /&gt;
* Does the approach allow Manila to enable use cases that would be impossible without mount automation, such as automatically updating mounts in the event of a DR failover?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:red&amp;quot;&amp;gt;bad&amp;lt;/span&amp;gt; No.&lt;br /&gt;
&lt;br /&gt;
* How much effort is required to implement the approach?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:yellow&amp;quot;&amp;gt;caution&amp;lt;/span&amp;gt; Medium. Storing some records in a server is not super hard. The challenge would be getting client software to talk to those services.&lt;br /&gt;
&lt;br /&gt;
* How resistant are users likely to be to the approach?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; Pretty low. It's not invasive and it piggybacks on stuff they already do.&lt;br /&gt;
&lt;br /&gt;
* Does the approach require Manila to expand it's project scope (to manage things that it currently has no knowledge of)?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; No, not unless we need to write some new software to communicate with AD or LDAP.&lt;br /&gt;
&lt;br /&gt;
== Cloud-Init ==&lt;br /&gt;
Clout-init is widely available in OpenStack clouds (but nowhere near universally available). It runs at startup and pulls identity information from a directory service. We could store our mount information in that directory and make Cloud-Init perform the mounts for us.&lt;br /&gt;
&lt;br /&gt;
This is similar to an agent based approach, except the agent is owned by someone else and only runs at startup time, so listening for requests wouldn't be possible.&lt;br /&gt;
&lt;br /&gt;
As a slight variation, a script inserted by Cloud-Init could get mount information from the Nova metadata service, which would not store Manila data but would query Manila for the latest share mounts on demand.&lt;br /&gt;
&lt;br /&gt;
* Is the approach limited to a subset of scenarios?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:yellow&amp;quot;&amp;gt;caution&amp;lt;/span&amp;gt; Yes. Cloud-Init is common, but by no means universal.&lt;br /&gt;
&lt;br /&gt;
* Does the approach allow for instantaneous/synchronous mounting?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:red&amp;quot;&amp;gt;bad&amp;lt;/span&amp;gt; No.&lt;br /&gt;
&lt;br /&gt;
* Does the approach allow for persistent mounts that survive across reboots?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; Yes.&lt;br /&gt;
&lt;br /&gt;
* Can the approach handle the case when the client is down at the time of attach/detach?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; Yes.&lt;br /&gt;
&lt;br /&gt;
* What security considerations exist?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:yellow&amp;quot;&amp;gt;caution&amp;lt;/span&amp;gt; Manila needs access to modify the directory that Cloud-Init pulls from, or the service invoked by Cloud-Init (i.e. Nova metadata service) needs Manila credentials). However, this is a single trust relationship which should be easy to configure.&lt;br /&gt;
&lt;br /&gt;
* What network considerations exist?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; None.&lt;br /&gt;
&lt;br /&gt;
* Are there any external dependencies?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:yellow&amp;quot;&amp;gt;caution&amp;lt;/span&amp;gt; Dependency on Cloud-Init.&lt;br /&gt;
&lt;br /&gt;
* Does the approach require Manila to store any state?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; No.&lt;br /&gt;
&lt;br /&gt;
* Does the approach allow Manila to enable use cases that would be impossible without mount automation, such as automatically updating mounts in the event of a DR failover?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; No (unless clients were rebooted as part of the same DR failover).&lt;br /&gt;
&lt;br /&gt;
* How much effort is required to implement the approach?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; Fairly low. We prototyped this (Nova metadata service + Cloud-Init) in a week.&lt;br /&gt;
&lt;br /&gt;
* How resistant are users likely to be to the approach?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; Fairly low. Users that like Cloud-Init will find this to be a natural expansion.&lt;br /&gt;
&lt;br /&gt;
* Does the approach require Manila to expand it's project scope (to manage things that it currently has no knowledge of)?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; No.&lt;br /&gt;
&lt;br /&gt;
== VirtFS ==&lt;br /&gt;
VirtFS is hypervisor controlled and extremely similar to the Cinder/block-based approach insofar as the guest simply sees a PCI PnP event and reacts to it. Manila would only need to communicate with Nova and we could safely ignore the guest.&lt;br /&gt;
&lt;br /&gt;
The downsides to VirtFS are well known -- chiefly the lack of support in Windows guests, lack of support in certain hypervisors, and the lack of support for bare metal.&lt;br /&gt;
&lt;br /&gt;
* Is the approach limited to a subset of scenarios?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:red&amp;quot;&amp;gt;bad&amp;lt;/span&amp;gt; Yes, only situations where VirtFS is used.&lt;br /&gt;
&lt;br /&gt;
* Does the approach allow for instantaneous/synchronous mounting?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; Yes.&lt;br /&gt;
&lt;br /&gt;
* Does the approach allow for persistent mounts that survive across reboots?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; Yes.&lt;br /&gt;
&lt;br /&gt;
* Can the approach handle the case when the client is down at the time of attach/detach?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; Undefined. Like Cinder, there is no concept of a volume attached to an instance that's not currently running.&lt;br /&gt;
&lt;br /&gt;
* What security considerations exist?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; None.&lt;br /&gt;
&lt;br /&gt;
* What network considerations exist?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; None.&lt;br /&gt;
&lt;br /&gt;
* Are there any external dependencies?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:red&amp;quot;&amp;gt;bad&amp;lt;/span&amp;gt; VirtFS. And something to manage the virtfs/hypervisor setup -- Nova would be the obvious thing to do this.&lt;br /&gt;
&lt;br /&gt;
* Does the approach require Manila to store any state?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; No.&lt;br /&gt;
&lt;br /&gt;
* Does the approach allow Manila to enable use cases that would be impossible without mount automation, such as automatically updating mounts in the event of a DR failover?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; Yes. In fact this approach is by far the best approach for making DR seamless.&lt;br /&gt;
&lt;br /&gt;
* How much effort is required to implement the approach?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; Low. In this scenario we really don't do much of anything in Manila because all of the VirtFS work would be in Nova anyways.&lt;br /&gt;
&lt;br /&gt;
* How resistant are users likely to be to the approach?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:yellow&amp;quot;&amp;gt;caution&amp;lt;/span&amp;gt; Mixed. Some love virtfs, others hate it. For cases where it's possible, it would be a very attractive. For cases where it's not possible, who cares?&lt;br /&gt;
&lt;br /&gt;
* Does the approach require Manila to expand it's project scope (to manage things that it currently has no knowledge of)?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; No.&lt;br /&gt;
&lt;br /&gt;
== Do Nothing ==&lt;br /&gt;
The idea here is to recognize that mount automation is a non-feature. Nothing we add in Manila will enable anything you can't already do manually, and there is little point to making Manila try to simplify a task which can already be simplified more effectively using existing tools.&lt;br /&gt;
&lt;br /&gt;
Consider a workflow that uses Heat to create a Manila share and some Nova instances to provide a service of some kind. Heat has all the of information it needs to perform the mount itself, and Heat is more than capable of automating these kinds of things. Customers may prefer to do this themselves, because they'll get extra flexibility and won't be locked into a narrow approach implemented inside Manila.&lt;br /&gt;
&lt;br /&gt;
If we were to pursue this approach, we would focus on providing concrete examples to users for how to leverage tools like Heat to automate mounts, and we would add these examples to the documentation.&lt;br /&gt;
&lt;br /&gt;
There are no obvious downsides to this approach, other than that it feels like we're sidestepping the problem.&lt;br /&gt;
&lt;br /&gt;
* Is the approach limited to a subset of scenarios?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; No.&lt;br /&gt;
&lt;br /&gt;
* Does the approach allow for instantaneous/synchronous mounting?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; Yes.&lt;br /&gt;
&lt;br /&gt;
* Does the approach allow for persistent mounts that survive across reboots?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; Yes.&lt;br /&gt;
&lt;br /&gt;
* Can the approach handle the case when the client is down at the time of attach/detach?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; Yes.&lt;br /&gt;
&lt;br /&gt;
* What security considerations exist?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; None in Manila. Obviously the tool (like Heat) doing the automation would need authentication creds, but such tools need those anyways, so they are in many ways best suited to solve the security problems.&lt;br /&gt;
&lt;br /&gt;
* What network considerations exist?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; None in Manila. Obviously the tool (like Heat) doing the automation would need network access to the client, but such tools need that anyways, so they are in many ways best suited to deal with network complexity.&lt;br /&gt;
&lt;br /&gt;
* Are there any external dependencies?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; No real dependencies. You need to bring your own automation and the dependencies are whatever you bring.&lt;br /&gt;
&lt;br /&gt;
* Does the approach require Manila to store any state?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; No.&lt;br /&gt;
&lt;br /&gt;
* Does the approach allow Manila to enable use cases that would be impossible without mount automation, such as automatically updating mounts in the event of a DR failover?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:red&amp;quot;&amp;gt;bad&amp;lt;/span&amp;gt; No, not unless the DR failover is also automated by the same process automating the mounts.&lt;br /&gt;
&lt;br /&gt;
* How much effort is required to implement the approach?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; Very little. This is largely a documentation exercise.&lt;br /&gt;
&lt;br /&gt;
* How resistant are users likely to be to the approach?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; Not resistant at all, since this choice gives them maximum flexibility. Some users may be disappointed that there is no magic button, but that was fantasy anyways.&lt;br /&gt;
&lt;br /&gt;
* Does the approach require Manila to expand it's project scope (to manage things that it currently has no knowledge of)?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; No.&lt;br /&gt;
&lt;br /&gt;
= Plugin Approach =&lt;br /&gt;
&lt;br /&gt;
Based on the mixed advantages and disadvantages of the above approaches, and based on the likelihood that other people will have other ideas for how to tackle this problem, we recommend tackling this problem by building a &amp;quot;plugin&amp;quot; framework in Manila that enables mount automation with a variety of approaches.&lt;br /&gt;
&lt;br /&gt;
We will assume that all of the above approaches will eventually be implemented by various people in the community, and the goal of the core feature is to provide the basic primitives to allow all of the approaches to work. Which approaches get used in practice will depend on choices made by individual deployers or tenants.&lt;br /&gt;
&lt;br /&gt;
The plugin approach will need to provide a mechanism for &amp;quot;attachments&amp;quot; between clients and shares to be tracked and for the software responsible for performing mounts and unmounts to query that mechanism and to be notified of changes.&lt;br /&gt;
&lt;br /&gt;
Some questions to be answered by the design:&lt;br /&gt;
* What are the types of things that shares can be attached to? IPs? Networks? Users? Nova Instances?&lt;br /&gt;
* When does a share become &amp;quot;attached&amp;quot;? When access is granted? When a separate &amp;quot;attach&amp;quot; API is called?&lt;br /&gt;
* Who is the consumer of the attachment information/notifications? The administrator? The tenants? Both?&lt;br /&gt;
&lt;br /&gt;
The plugin design should include enough detail that we can be confident that ALL of the proposed approaches could be accommodated, however we won't actually design all of the above approaches. We will start with designs for 1 or 2 highly popular approaches (to prove the approach and make it actually usable) and encourage the community to expand on the others.&lt;br /&gt;
&lt;br /&gt;
Assumed highly popular approaches:&lt;br /&gt;
* Cloud-Init w/ Nova metadata&lt;br /&gt;
* Nova agent&lt;/div&gt;</summary>
		<author><name>Clinton Knight</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Manila/MountAutomation&amp;diff=81029</id>
		<title>Manila/MountAutomation</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Manila/MountAutomation&amp;diff=81029"/>
				<updated>2015-05-12T19:54:53Z</updated>
		
		<summary type="html">&lt;p&gt;Clinton Knight: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Intro =&lt;br /&gt;
We considered multiple approaches for addressing mount automation. The thinking has come a long way since we originally considered the problem 2+ years ago, but we still don't have a &amp;quot;silver bullet&amp;quot; approach that works in a wide variety of application and has no drawbacks.&lt;br /&gt;
&lt;br /&gt;
== Questions ==&lt;br /&gt;
We decided to evaluate the various approaches using the follow measurements:&lt;br /&gt;
* Is the approach limited to a subset of scenarios?&lt;br /&gt;
* Does the approach allow for instantaneous/synchronous mounting?&lt;br /&gt;
* Does the approach allow for persistent mounts that survive across reboots?&lt;br /&gt;
* Can the approach handle the case when the client is down at the time of attach/detach?&lt;br /&gt;
* What security considerations exist?&lt;br /&gt;
* What network considerations exist?&lt;br /&gt;
* Are there any external dependencies?&lt;br /&gt;
* Does the approach require Manila to store any state?&lt;br /&gt;
* Does the approach allow Manila to enable use cases that would be impossible without mount automation, such as automatically updating mounts in the event of a DR failover?&lt;br /&gt;
* How much effort is required to implement the approach?&lt;br /&gt;
* How resistant are users likely to be to the approach?&lt;br /&gt;
* Does the approach require Manila to expand it's project scope (to manage things that it currently has no knowledge of)?&lt;br /&gt;
&lt;br /&gt;
The hardest thing about this feature, aside from the fact that there are no silver bullet solutions, is that the feature doesn't allow users to do anything that wasn't already possible. For the most part, this is about simplifying something which can be done already (with the exception of the DR use case, mentioned above).&lt;br /&gt;
&lt;br /&gt;
== Approaches Summary ==&lt;br /&gt;
Approaches considered:&lt;br /&gt;
&lt;br /&gt;
* SSH/PsExec (very well understood approach we've considered from the beginning)&lt;br /&gt;
* Agent - write a custom agent to solve the problem (also well understood and old idea)&lt;br /&gt;
* Zeroconf-based advertisements - a new idea that came from the Paris summit&lt;br /&gt;
* AutoFS - leverage autofs to solve the problem on UNIX&lt;br /&gt;
* LDAP/AD - insert mount information into the directory service and let clients pull it from there&lt;br /&gt;
* Cloud-Init - piggyback on cloudinit (a shippable demo is available for this that will be shown at the Liberty summit)&lt;br /&gt;
* VirtFS - virtfs gives us the closest model to cinder, and attaches/detaches make significantly more sense in this context&lt;br /&gt;
* Do nothing, and prescribe recipes how to automate mounts with existing tools, such as Heat.&lt;br /&gt;
&lt;br /&gt;
== Approaches ==&lt;br /&gt;
&lt;br /&gt;
=== SSH/PsExec ===&lt;br /&gt;
The simplest and most widely usable approach for automating mounts is to use management software that already exists in the OS. For UNIX, this is SSH. For Windows, it would be the various forms of Windows remote-management such as PsExec (PsExec is an SSH-like tool that works out of the box on nearly all Windows machines) or PowerShell.&lt;br /&gt;
&lt;br /&gt;
The idea here is to give Manila the root password, root key, or Administrator creds for all of your clients, and to let Manila reach out and poke them to trigger them to mount or unmount shares at the appropriate times.&lt;br /&gt;
&lt;br /&gt;
The value of this approach is that it has no dependencies on anything other than standard OS facilities and is therefore likely to be widely compatible.&lt;br /&gt;
&lt;br /&gt;
* Is the approach limited to a subset of scenarios?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; No.&lt;br /&gt;
&lt;br /&gt;
* Does the approach allow for instantaneous/synchronous mounting?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; Yes.&lt;br /&gt;
&lt;br /&gt;
* Does the approach allow for persistent mounts that survive across reboots?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; Yes.&lt;br /&gt;
&lt;br /&gt;
* Can the approach handle the case when the client is down at the time of attach/detach?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:red&amp;quot;&amp;gt;bad&amp;lt;/span&amp;gt; No.&lt;br /&gt;
&lt;br /&gt;
* What security considerations exist?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:red&amp;quot;&amp;gt;bad&amp;lt;/span&amp;gt; Tenants have to hand over to Manila administrator credentials for all of the guests for which they want Manila to automate mounts. This can create a huge trust barrier.&lt;br /&gt;
&lt;br /&gt;
* What network considerations exist?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:red&amp;quot;&amp;gt;bad&amp;lt;/span&amp;gt; Manila will need network access directly to every client for which its automating mounts. This can be easy in some cases and near impossible in other cases.&lt;br /&gt;
&lt;br /&gt;
* Are there any external dependencies?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:yellow&amp;quot;&amp;gt;caution&amp;lt;/span&amp;gt; Manila needs an SSH client (easy) and a PsExec client (hard). PsExec is a Windows binary, which could be ported to UNIX, but most likely at considerable cost.&lt;br /&gt;
&lt;br /&gt;
* Does the approach require Manila to store any state?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:yellow&amp;quot;&amp;gt;caution&amp;lt;/span&amp;gt; Yes. Manila needs to store credentials for the clients, and also information about IP addresses and networks to find the clients.&lt;br /&gt;
&lt;br /&gt;
* Does the approach allow Manila to enable use cases that would be impossible without mount automation, such as automatically updating mounts in the event of a DR failover?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; Yes. If Manila can push mount operations at will, then automatically updating mounts in the DR failover case becomes possible.&lt;br /&gt;
&lt;br /&gt;
* How much effort is required to implement the approach?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:yellow&amp;quot;&amp;gt;caution&amp;lt;/span&amp;gt; For UNIX-only, medium. For Windows, significantly more if we want to undertake something with PsExec.&lt;br /&gt;
&lt;br /&gt;
* How resistant are users likely to be to the approach?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; It's optional, but some users may choose not to use this feature based on the requirement to hand overs root creds to Manila.&lt;br /&gt;
&lt;br /&gt;
* Does the approach require Manila to expand it's project scope (to manage things that it currently has no knowledge of)?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:red&amp;quot;&amp;gt;bad&amp;lt;/span&amp;gt; Yes. Manila would needs to become aware of clients and their networks. This is currently out of scope for Manila.&lt;br /&gt;
&lt;br /&gt;
=== Agent ===&lt;br /&gt;
Writing an agent gives us ultimate flexibility. Agents can listen for requests from Manila, they can pull updates from Manila periodically or at boot, and they can perform ANY change we like on the clients, at any time. Many problems becomes simple when you can assume the existence of an agent on the client.&lt;br /&gt;
&lt;br /&gt;
There are obvious downsides to this approach, chiefly the trust issue that most users will have about installing a new piece of software on their guests, and the significant effort involved with creating a new piece of software and maintaining it. There are also security concerns, because we will be responsible if a bug in the agent software exposes a user to mischief and mayhem.&lt;br /&gt;
&lt;br /&gt;
* Is the approach limited to a subset of scenarios?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; No.&lt;br /&gt;
&lt;br /&gt;
* Does the approach allow for instantaneous/synchronous mounting?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; Yes.&lt;br /&gt;
&lt;br /&gt;
* Does the approach allow for persistent mounts that survive across reboots?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; Yes.&lt;br /&gt;
&lt;br /&gt;
* Can the approach handle the case when the client is down at the time of attach/detach?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; Yes.&lt;br /&gt;
&lt;br /&gt;
* What security considerations exist?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:red&amp;quot;&amp;gt;bad&amp;lt;/span&amp;gt; We get to design our own security. This gives us excellent flexibility, but we have to design something that strikes a good balance between protecting users and being usable, which is always hard. Regardless, we will face trust problems until we have a proven track record.&lt;br /&gt;
&lt;br /&gt;
* What network considerations exist?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:yellow&amp;quot;&amp;gt;caution&amp;lt;/span&amp;gt; The network considerations are similar to the SSH approach, because Manila will need to reach out and poke the agent. Also the agent will need a reverse path back to the Manila server to do pull requests, which might be desirable at boot time.&lt;br /&gt;
&lt;br /&gt;
* Are there any external dependencies?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:yellow&amp;quot;&amp;gt;caution&amp;lt;/span&amp;gt; The external dependency is the agent itself. We cannot force anyone to install it, so in cases where it doesn't exist, we will be unable to do anything.&lt;br /&gt;
&lt;br /&gt;
* Does the approach require Manila to store any state?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:yellow&amp;quot;&amp;gt;caution&amp;lt;/span&amp;gt; Yes. Manila will need to track the agents and some security information in order to contact them and authenticate with them.&lt;br /&gt;
&lt;br /&gt;
* Does the approach allow Manila to enable use cases that would be impossible without mount automation, such as automatically updating mounts in the event of a DR failover?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; Yes.&lt;br /&gt;
&lt;br /&gt;
* How much effort is required to implement the approach?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:red&amp;quot;&amp;gt;bad&amp;lt;/span&amp;gt; Very high.&lt;br /&gt;
&lt;br /&gt;
* How resistant are users likely to be to the approach?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:red&amp;quot;&amp;gt;bad&amp;lt;/span&amp;gt; Very resistent. It's another thing to install and another thing to security audit. Another thing to worry about.&lt;br /&gt;
&lt;br /&gt;
* Does the approach require Manila to expand it's project scope (to manage things that it currently has no knowledge of)?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:red&amp;quot;&amp;gt;bad&amp;lt;/span&amp;gt; Yes. Not only does Manila need to become aware of clients and client networks, but now Manila needs to create a whole new project and maintain that software as well.&lt;br /&gt;
&lt;br /&gt;
=== Zeroconf-based advertisements ===&lt;br /&gt;
Zeroconf is an interesting approach for advertising services on networks, which layers on top of DNS (or mDNS in peer to peer environments). Zeroconf has existing support for advertisement of CIFS share and NFS exports, but there is no evidence that modern operating systems react to these advertisements automatically by (for example) mounting them.&lt;br /&gt;
&lt;br /&gt;
Zeroconf also only solves half the problem of mount automation. It can notify clients of the existence of something they can mount, but it doesn't tell them precisely WHERE to mount it. For some scenarios, a random mount point might be acceptable (VDI) but for others, it would be a dealbreaker (database as a service).&lt;br /&gt;
&lt;br /&gt;
It's unlikely that we could address unmounting with this approach.&lt;br /&gt;
&lt;br /&gt;
* Is the approach limited to a subset of scenarios?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:red&amp;quot;&amp;gt;bad&amp;lt;/span&amp;gt; Yes.&lt;br /&gt;
&lt;br /&gt;
* Does the approach allow for instantaneous/synchronous mounting?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:yellow&amp;quot;&amp;gt;caution&amp;lt;/span&amp;gt; Maybe.&lt;br /&gt;
&lt;br /&gt;
* Does the approach allow for persistent mounts that survive across reboots?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:yellow&amp;quot;&amp;gt;caution&amp;lt;/span&amp;gt; Maybe.&lt;br /&gt;
&lt;br /&gt;
* Can the approach handle the case when the client is down at the time of attach/detach?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; Yes.&lt;br /&gt;
&lt;br /&gt;
* What security considerations exist?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; Possibly none.&lt;br /&gt;
&lt;br /&gt;
* What network considerations exist?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:red&amp;quot;&amp;gt;bad&amp;lt;/span&amp;gt; Zeroconf relies heavily on multicast, which rarely crosses router boundaries (the admin has to configure multicast routing). In order to get the advertisements onto the right networks, Manila would need to perform some weird gymnastics, most likely involving service VMs with lots and lots of network ports.&lt;br /&gt;
&lt;br /&gt;
* Are there any external dependencies?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:red&amp;quot;&amp;gt;bad&amp;lt;/span&amp;gt; Yes. Zeroconf is not universally available in guest images or enabled.&lt;br /&gt;
&lt;br /&gt;
* Does the approach require Manila to store any state?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:yellow&amp;quot;&amp;gt;caution&amp;lt;/span&amp;gt; Yes. Manila would need to know which clients to advertise to and on which networks.&lt;br /&gt;
&lt;br /&gt;
* Does the approach allow Manila to enable use cases that would be impossible without mount automation, such as automatically updating mounts in the event of a DR failover?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:red&amp;quot;&amp;gt;bad&amp;lt;/span&amp;gt; No. It's unlikely that an advertisement-based approach would allow for the fast unmount-move-mount semantics needed to cleanly failover.&lt;br /&gt;
&lt;br /&gt;
* How much effort is required to implement the approach?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:red&amp;quot;&amp;gt;bad&amp;lt;/span&amp;gt; Unknown, but not small. There are probably existing libraries we can use to do zeroconf-based-advertising, but all of the service VM and networking stuff required to make it work will still be considerable effort.&lt;br /&gt;
&lt;br /&gt;
* How resistant are users likely to be to the approach?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; Very little. The approach is not invasive at all, aside from the possibly scary service VM that attaches to thousands of networks to send advertisements.&lt;br /&gt;
&lt;br /&gt;
* Does the approach require Manila to expand it's project scope (to manage things that it currently has no knowledge of)?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:red&amp;quot;&amp;gt;bad&amp;lt;/span&amp;gt; Yes. Manila needs to know about clients and networks to be able to advertise to them. Also, we need to maintain the software image that goes on the advertising service VM. This would require creating a new GitHub repo and maintaining a new project.&lt;br /&gt;
&lt;br /&gt;
=== AutoFS ===&lt;br /&gt;
Many UNIX users already use autofs to control large numbers of NFS mounts. The advantage to autofs is that you can make a single change to a file on a server, and suddenly thousands of clients can mount something new.&lt;br /&gt;
&lt;br /&gt;
One downside is that autofs doesn't actually mount stuff immediately. It's an event-based system that relies on just-in-time mounting on the client side, so that if the client tries to access the mount point before it's mounted, it asks the server what is the correct thing to mount and mounts it. This creates real problems with changes to mounts or unmounts, because they basically become impossible without a reboot or some other approach described elsewhere in this document.&lt;br /&gt;
&lt;br /&gt;
The other downside is that autofs is extremely flexible. Different users probably use it in very different ways and a single approach probably won't meet all users' needs without some customization by the user.&lt;br /&gt;
&lt;br /&gt;
* Is the approach limited to a subset of scenarios?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:red&amp;quot;&amp;gt;bad&amp;lt;/span&amp;gt; Yes. It would be UNIX only, and only work if autofs was in use, and only if autofs was configured in a way that it was compatible with Manila.&lt;br /&gt;
&lt;br /&gt;
* Does the approach allow for instantaneous/synchronous mounting?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:red&amp;quot;&amp;gt;bad&amp;lt;/span&amp;gt; Not really. The just-in-time approach is instantaneous, except that mount doesn't actually happen until its needed.&lt;br /&gt;
&lt;br /&gt;
* Does the approach allow for persistent mounts that survive across reboots?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; Yes.&lt;br /&gt;
&lt;br /&gt;
* Can the approach handle the case when the client is down at the time of attach/detach?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; Yes.&lt;br /&gt;
&lt;br /&gt;
* What security considerations exist?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:yellow&amp;quot;&amp;gt;caution&amp;lt;/span&amp;gt; Manila needs write access to the place where the autofs tables live. This is likely to vary from case to case, but it would be sensitive information and access to it would always be protected.&lt;br /&gt;
&lt;br /&gt;
* What network considerations exist?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; None.&lt;br /&gt;
&lt;br /&gt;
* Are there any external dependencies?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:yellow&amp;quot;&amp;gt;caution&amp;lt;/span&amp;gt; Yes, autofs would be needed.&lt;br /&gt;
&lt;br /&gt;
* Does the approach require Manila to store any state?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; Possibly not. Manila could simply push updates to autofs and then forget about them, and the right thing would happen.&lt;br /&gt;
&lt;br /&gt;
* Does the approach allow Manila to enable use cases that would be impossible without mount automation, such as automatically updating mounts in the event of a DR failover?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:red&amp;quot;&amp;gt;bad&amp;lt;/span&amp;gt; Probably not. Autofs is not friendly to changes, because once the client has its mount it doesn't go back and pull changes from the server anymore.&lt;br /&gt;
&lt;br /&gt;
* How much effort is required to implement the approach?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; Fairly low. It's just some code that tweaks and autofs table. The effort gets higher if we try to get clever and support lots of ways of using autofs.&lt;br /&gt;
&lt;br /&gt;
* How resistant are users likely to be to the approach?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; Very low. Users like this idea, but they probably haven't thought through all the downsides.&lt;br /&gt;
&lt;br /&gt;
* Does the approach require Manila to expand it's project scope (to manage things that it currently has no knowledge of)?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; No. This feature can be implemented on the side without significantly changing Manila itself.&lt;br /&gt;
&lt;br /&gt;
=== LDAP/AD ===&lt;br /&gt;
Directory services create a centralized place for clients to get information. A list of mounts could be one kind of information stored in a directory service. For Windows, the AD server tells each user where his home directory is, for example. On UNIX, LDAP can be a similar repository, but coupled with autofs for mounting.&lt;br /&gt;
&lt;br /&gt;
We haven't determined 100% whether these tools are flexible enough out of the box, but they provide a reasonable building block that could be combined with some scripts to facilitate mount automation. That being said, this approach has enough drawbacks that we didn't consider it worthwhile to dig deeper.&lt;br /&gt;
&lt;br /&gt;
* Is the approach limited to a subset of scenarios?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:red&amp;quot;&amp;gt;bad&amp;lt;/span&amp;gt; Yes. Not all environments have LDAP/AD.&lt;br /&gt;
&lt;br /&gt;
* Does the approach allow for instantaneous/synchronous mounting?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:red&amp;quot;&amp;gt;bad&amp;lt;/span&amp;gt; No.&lt;br /&gt;
&lt;br /&gt;
* Does the approach allow for persistent mounts that survive across reboots?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; Yes.&lt;br /&gt;
&lt;br /&gt;
* Can the approach handle the case when the client is down at the time of attach/detach?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; Yes.&lt;br /&gt;
&lt;br /&gt;
* What security considerations exist?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:yellow&amp;quot;&amp;gt;caution&amp;lt;/span&amp;gt; Manila needs write access to the LDAP/AD server. In theory we already have this with the security service that's part of the share network, but not all clients actually use that feature, so it would make setting up security services a prerequisute.&lt;br /&gt;
&lt;br /&gt;
* What network considerations exist?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; None.&lt;br /&gt;
&lt;br /&gt;
* Are there any external dependencies?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:yellow&amp;quot;&amp;gt;caution&amp;lt;/span&amp;gt; Yes, the LDAP/AD server. Also software to communicate with those servers from Manila.&lt;br /&gt;
&lt;br /&gt;
* Does the approach require Manila to store any state?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; No.&lt;br /&gt;
&lt;br /&gt;
* Does the approach allow Manila to enable use cases that would be impossible without mount automation, such as automatically updating mounts in the event of a DR failover?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:red&amp;quot;&amp;gt;bad&amp;lt;/span&amp;gt; No.&lt;br /&gt;
&lt;br /&gt;
* How much effort is required to implement the approach?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:yellow&amp;quot;&amp;gt;caution&amp;lt;/span&amp;gt; Medium. Storing some records in a server is not super hard. The challenge would be getting client software to talk to those services.&lt;br /&gt;
&lt;br /&gt;
* How resistant are users likely to be to the approach?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; Pretty low. It's not invasive and it piggybacks on stuff they already do.&lt;br /&gt;
&lt;br /&gt;
* Does the approach require Manila to expand it's project scope (to manage things that it currently has no knowledge of)?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; No, not unless we need to write some new software to communicate with AD or LDAP.&lt;br /&gt;
&lt;br /&gt;
=== Cloud-Init ===&lt;br /&gt;
Clout-init is widely available in OpenStack clouds (but nowhere near universally available). It runs at startup and pulls identity information from a directory service. We could store our mount information in that directory and make Cloud-Init perform the mounts for us.&lt;br /&gt;
&lt;br /&gt;
This is similar to an agent based approach, except the agent is owned by someone else and only runs at startup time, so listening for requests wouldn't be possible.&lt;br /&gt;
&lt;br /&gt;
As a slight variation, a script inserted by Cloud-Init could get mount information from the Nova metadata service, which would not store Manila data but would query Manila for the latest share mounts on demand.&lt;br /&gt;
&lt;br /&gt;
* Is the approach limited to a subset of scenarios?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:yellow&amp;quot;&amp;gt;caution&amp;lt;/span&amp;gt; Yes. Cloud-Init is common, but by no means universal.&lt;br /&gt;
&lt;br /&gt;
* Does the approach allow for instantaneous/synchronous mounting?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:red&amp;quot;&amp;gt;bad&amp;lt;/span&amp;gt; No.&lt;br /&gt;
&lt;br /&gt;
* Does the approach allow for persistent mounts that survive across reboots?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; Yes.&lt;br /&gt;
&lt;br /&gt;
* Can the approach handle the case when the client is down at the time of attach/detach?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; Yes.&lt;br /&gt;
&lt;br /&gt;
* What security considerations exist?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:yellow&amp;quot;&amp;gt;caution&amp;lt;/span&amp;gt; Manila needs access to modify the directory that Cloud-Init pulls from, or the service invoked by Cloud-Init (i.e. Nova metadata service) needs Manila credentials). However, this is a single trust relationship which should be easy to configure.&lt;br /&gt;
&lt;br /&gt;
* What network considerations exist?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; None.&lt;br /&gt;
&lt;br /&gt;
* Are there any external dependencies?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:yellow&amp;quot;&amp;gt;caution&amp;lt;/span&amp;gt; Dependency on Cloud-Init.&lt;br /&gt;
&lt;br /&gt;
* Does the approach require Manila to store any state?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; No.&lt;br /&gt;
&lt;br /&gt;
* Does the approach allow Manila to enable use cases that would be impossible without mount automation, such as automatically updating mounts in the event of a DR failover?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; No (unless clients were rebooted as part of the same DR failover).&lt;br /&gt;
&lt;br /&gt;
* How much effort is required to implement the approach?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; Fairly low. We prototyped this (Nova metadata service + Cloud-Init) in a week.&lt;br /&gt;
&lt;br /&gt;
* How resistant are users likely to be to the approach?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; Fairly low. Users that like Cloud-Init will find this to be a natural expansion.&lt;br /&gt;
&lt;br /&gt;
* Does the approach require Manila to expand it's project scope (to manage things that it currently has no knowledge of)?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; No.&lt;br /&gt;
&lt;br /&gt;
=== VirtFS ===&lt;br /&gt;
VirtFS is hypervisor controlled and extremely similar to the Cinder/block-based approach insofar as the guest simply sees a PCI PnP event and reacts to it. Manila would only need to communicate with Nova and we could safely ignore the guest.&lt;br /&gt;
&lt;br /&gt;
The downsides to VirtFS are well known -- chiefly the lack of support in Windows guests, lack of support in certain hypervisors, and the lack of support for bare metal.&lt;br /&gt;
&lt;br /&gt;
* Is the approach limited to a subset of scenarios?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:red&amp;quot;&amp;gt;bad&amp;lt;/span&amp;gt; Yes, only situations where VirtFS is used.&lt;br /&gt;
&lt;br /&gt;
* Does the approach allow for instantaneous/synchronous mounting?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; Yes.&lt;br /&gt;
&lt;br /&gt;
* Does the approach allow for persistent mounts that survive across reboots?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; Yes.&lt;br /&gt;
&lt;br /&gt;
* Can the approach handle the case when the client is down at the time of attach/detach?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; Undefined. Like Cinder, there is no concept of a volume attached to an instance that's not currently running.&lt;br /&gt;
&lt;br /&gt;
* What security considerations exist?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; None.&lt;br /&gt;
&lt;br /&gt;
* What network considerations exist?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; None.&lt;br /&gt;
&lt;br /&gt;
* Are there any external dependencies?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:red&amp;quot;&amp;gt;bad&amp;lt;/span&amp;gt; VirtFS. And something to manage the virtfs/hypervisor setup -- Nova would be the obvious thing to do this.&lt;br /&gt;
&lt;br /&gt;
* Does the approach require Manila to store any state?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; No.&lt;br /&gt;
&lt;br /&gt;
* Does the approach allow Manila to enable use cases that would be impossible without mount automation, such as automatically updating mounts in the event of a DR failover?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; Yes. In fact this approach is by far the best approach for making DR seamless.&lt;br /&gt;
&lt;br /&gt;
* How much effort is required to implement the approach?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; Low. In this scenario we really don't do much of anything in Manila because all of the VirtFS work would be in Nova anyways.&lt;br /&gt;
&lt;br /&gt;
* How resistant are users likely to be to the approach?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:yellow&amp;quot;&amp;gt;caution&amp;lt;/span&amp;gt; Mixed. Some love virtfs, others hate it. For cases where it's possible, it would be a very attractive. For cases where it's not possible, who cares?&lt;br /&gt;
&lt;br /&gt;
* Does the approach require Manila to expand it's project scope (to manage things that it currently has no knowledge of)?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; No.&lt;br /&gt;
&lt;br /&gt;
=== Do Nothing ===&lt;br /&gt;
The idea here is to recognize that mount automation is a non-feature. Nothing we add in Manila will enable anything you can't already do manually, and there is little point to making Manila try to simplify a task which can already be simplified more effectively using existing tools.&lt;br /&gt;
&lt;br /&gt;
Consider a workflow that uses Heat to create a Manila share and some Nova instances to provide a service of some kind. Heat has all the of information it needs to perform the mount itself, and Heat is more than capable of automating these kinds of things. Customers may prefer to do this themselves, because they'll get extra flexibility and won't be locked into a narrow approach implemented inside Manila.&lt;br /&gt;
&lt;br /&gt;
If we were to pursue this approach, we would focus on providing concrete examples to users for how to leverage tools like Heat to automate mounts, and we would add these examples to the documentation.&lt;br /&gt;
&lt;br /&gt;
There are no obvious downsides to this approach, other than that it feels like we're sidestepping the problem.&lt;br /&gt;
&lt;br /&gt;
* Is the approach limited to a subset of scenarios?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; No.&lt;br /&gt;
&lt;br /&gt;
* Does the approach allow for instantaneous/synchronous mounting?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; Yes.&lt;br /&gt;
&lt;br /&gt;
* Does the approach allow for persistent mounts that survive across reboots?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; Yes.&lt;br /&gt;
&lt;br /&gt;
* Can the approach handle the case when the client is down at the time of attach/detach?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; Yes.&lt;br /&gt;
&lt;br /&gt;
* What security considerations exist?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; None in Manila. Obviously the tool (like Heat) doing the automation would need authentication creds, but such tools need those anyways, so they are in many ways best suited to solve the security problems.&lt;br /&gt;
&lt;br /&gt;
* What network considerations exist?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; None in Manila. Obviously the tool (like Heat) doing the automation would need network access to the client, but such tools need that anyways, so they are in many ways best suited to deal with network complexity.&lt;br /&gt;
&lt;br /&gt;
* Are there any external dependencies?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; No real dependencies. You need to bring your own automation and the dependencies are whatever you bring.&lt;br /&gt;
&lt;br /&gt;
* Does the approach require Manila to store any state?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; No.&lt;br /&gt;
&lt;br /&gt;
* Does the approach allow Manila to enable use cases that would be impossible without mount automation, such as automatically updating mounts in the event of a DR failover?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:red&amp;quot;&amp;gt;bad&amp;lt;/span&amp;gt; No, not unless the DR failover is also automated by the same process automating the mounts.&lt;br /&gt;
&lt;br /&gt;
* How much effort is required to implement the approach?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; Very little. This is largely a documentation exercise.&lt;br /&gt;
&lt;br /&gt;
* How resistant are users likely to be to the approach?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; Not resistant at all, since this choice gives them maximum flexibility. Some users may be disappointed that there is no magic button, but that was fantasy anyways.&lt;br /&gt;
&lt;br /&gt;
* Does the approach require Manila to expand it's project scope (to manage things that it currently has no knowledge of)?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; No.&lt;br /&gt;
&lt;br /&gt;
== Plugin Approach ==&lt;br /&gt;
&lt;br /&gt;
Based on the mixed advantages and disadvantages of the above approaches, and based on the likelihood that other people will have other ideas for how to tackle this problem, we recommend tackling this problem by building a &amp;quot;plugin&amp;quot; framework in Manila that enables mount automation with a variety of approaches.&lt;br /&gt;
&lt;br /&gt;
We will assume that all of the above approaches will eventually be implemented by various people in the community, and the goal of the core feature is to provide the basic primitives to allow all of the approaches to work. Which approaches get used in practice will depend on choices made by individual deployers or tenants.&lt;br /&gt;
&lt;br /&gt;
The plugin approach will need to provide a mechanism for &amp;quot;attachments&amp;quot; between clients and shares to be tracked and for the software responsible for performing mounts and unmounts to query that mechanism and to be notified of changes.&lt;br /&gt;
&lt;br /&gt;
Some questions to be answered by the design:&lt;br /&gt;
* What are the types of things that shares can be attached to? IPs? Networks? Users? Nova Instances?&lt;br /&gt;
* When does a share become &amp;quot;attached&amp;quot;? When access is granted? When a separate &amp;quot;attach&amp;quot; API is called?&lt;br /&gt;
* Who is the consumer of the attachment information/notifications? The administrator? The tenants? Both?&lt;br /&gt;
&lt;br /&gt;
The plugin design should include enough detail that we can be confident that ALL of the proposed approaches could be accommodated, however we won't actually design all of the above approaches. We will start with designs for 1 or 2 highly popular approaches (to prove the approach and make it actually usable) and encourage the community to expand on the others.&lt;br /&gt;
&lt;br /&gt;
Assumed highly popular approaches:&lt;br /&gt;
* Cloud-Init w/ Nova metadata&lt;br /&gt;
* Nova agent&lt;/div&gt;</summary>
		<author><name>Clinton Knight</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Manila/MountAutomation&amp;diff=81028</id>
		<title>Manila/MountAutomation</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Manila/MountAutomation&amp;diff=81028"/>
				<updated>2015-05-12T19:50:33Z</updated>
		
		<summary type="html">&lt;p&gt;Clinton Knight: Created page with &amp;quot;= Intro = We considered multiple approaches for addressing mount automation. The thinking has come a long way since we originally considered the problem 2+ years ago, but we s...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Intro =&lt;br /&gt;
We considered multiple approaches for addressing mount automation. The thinking has come a long way since we originally considered the problem 2+ years ago, but we still don't have a &amp;quot;silver bullet&amp;quot; approach that works in a wide variety of application and has no drawbacks.&lt;br /&gt;
&lt;br /&gt;
=== Questions ===&lt;br /&gt;
We decided to evaluate the various approaches using the follow measurements:&lt;br /&gt;
* Is the approach limited to a subset of scenarios?&lt;br /&gt;
* Does the approach allow for instantaneous/synchronous mounting?&lt;br /&gt;
* Does the approach allow for persistent mounts that survive across reboots?&lt;br /&gt;
* Can the approach handle the case when the client is down at the time of attach/detach?&lt;br /&gt;
* What security considerations exist?&lt;br /&gt;
* What network considerations exist?&lt;br /&gt;
* Are there any external dependencies?&lt;br /&gt;
* Does the approach require Manila to store any state?&lt;br /&gt;
* Does the approach allow Manila to enable use cases that would be impossible without mount automation, such as automatically updating mounts in the event of a DR failover?&lt;br /&gt;
* How much effort is required to implement the approach?&lt;br /&gt;
* How resistant are users likely to be to the approach?&lt;br /&gt;
* Does the approach require Manila to expand it's project scope (to manage things that it currently has no knowledge of)?&lt;br /&gt;
&lt;br /&gt;
The hardest thing about this feature, aside from the fact that there are no silver bullet solutions, is that the feature doesn't allow users to do anything that wasn't already possible. For the most part, this is about simplifying something which can be done already (with the exception of the DR use case, mentioned above).&lt;br /&gt;
&lt;br /&gt;
=== Approaches Summary ===&lt;br /&gt;
Approaches considered:&lt;br /&gt;
&lt;br /&gt;
* SSH/PsExec (very well understood approach we've considered from the beginning)&lt;br /&gt;
* Agent - write a custom agent to solve the problem (also well understood and old idea)&lt;br /&gt;
* Zeroconf-based advertisements - a new idea that came from the Paris summit&lt;br /&gt;
* AutoFS - leverage autofs to solve the problem on UNIX&lt;br /&gt;
* LDAP/AD - insert mount information into the directory service and let clients pull it from there&lt;br /&gt;
* Cloud-Init - piggyback on cloudinit (a shippable demo is available for this that will be shown at the Liberty summit)&lt;br /&gt;
* VirtFS - virtfs gives us the closest model to cinder, and attaches/detaches make significantly more sense in this context&lt;br /&gt;
* Do nothing, and prescribe recipes how to automate mounts with existing tools, such as Heat.&lt;br /&gt;
&lt;br /&gt;
= Approaches =&lt;br /&gt;
&lt;br /&gt;
== SSH/PsExec ==&lt;br /&gt;
The simplest and most widely usable approach for automating mounts is to use management software that already exists in the OS. For UNIX, this is SSH. For Windows, it would be the various forms of Windows remote-management such as PsExec (PsExec is an SSH-like tool that works out of the box on nearly all Windows machines) or PowerShell.&lt;br /&gt;
&lt;br /&gt;
The idea here is to give Manila the root password, root key, or Administrator creds for all of your clients, and to let Manila reach out and poke them to trigger them to mount or unmount shares at the appropriate times.&lt;br /&gt;
&lt;br /&gt;
The value of this approach is that it has no dependencies on anything other than standard OS facilities and is therefore likely to be widely compatible.&lt;br /&gt;
&lt;br /&gt;
* Is the approach limited to a subset of scenarios?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; No.&lt;br /&gt;
&lt;br /&gt;
* Does the approach allow for instantaneous/synchronous mounting?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; Yes.&lt;br /&gt;
&lt;br /&gt;
* Does the approach allow for persistent mounts that survive across reboots?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; Yes.&lt;br /&gt;
&lt;br /&gt;
* Can the approach handle the case when the client is down at the time of attach/detach?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:red&amp;quot;&amp;gt;bad&amp;lt;/span&amp;gt; No.&lt;br /&gt;
&lt;br /&gt;
* What security considerations exist?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:red&amp;quot;&amp;gt;bad&amp;lt;/span&amp;gt; Tenants have to hand over to Manila administrator credentials for all of the guests for which they want Manila to automate mounts. This can create a huge trust barrier.&lt;br /&gt;
&lt;br /&gt;
* What network considerations exist?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:red&amp;quot;&amp;gt;bad&amp;lt;/span&amp;gt; Manila will need network access directly to every client for which its automating mounts. This can be easy in some cases and near impossible in other cases.&lt;br /&gt;
&lt;br /&gt;
* Are there any external dependencies?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:yellow&amp;quot;&amp;gt;caution&amp;lt;/span&amp;gt; Manila needs an SSH client (easy) and a PsExec client (hard). PsExec is a Windows binary, which could be ported to UNIX, but most likely at considerable cost.&lt;br /&gt;
&lt;br /&gt;
* Does the approach require Manila to store any state?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:yellow&amp;quot;&amp;gt;caution&amp;lt;/span&amp;gt; Yes. Manila needs to store credentials for the clients, and also information about IP addresses and networks to find the clients.&lt;br /&gt;
&lt;br /&gt;
* Does the approach allow Manila to enable use cases that would be impossible without mount automation, such as automatically updating mounts in the event of a DR failover?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; Yes. If Manila can push mount operations at will, then automatically updating mounts in the DR failover case becomes possible.&lt;br /&gt;
&lt;br /&gt;
* How much effort is required to implement the approach?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:yellow&amp;quot;&amp;gt;caution&amp;lt;/span&amp;gt; For UNIX-only, medium. For Windows, significantly more if we want to undertake something with PsExec.&lt;br /&gt;
&lt;br /&gt;
* How resistant are users likely to be to the approach?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; It's optional, but some users may choose not to use this feature based on the requirement to hand overs root creds to Manila.&lt;br /&gt;
&lt;br /&gt;
* Does the approach require Manila to expand it's project scope (to manage things that it currently has no knowledge of)?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:red&amp;quot;&amp;gt;bad&amp;lt;/span&amp;gt; Yes. Manila would needs to become aware of clients and their networks. This is currently out of scope for Manila.&lt;br /&gt;
&lt;br /&gt;
== Agent ==&lt;br /&gt;
Writing an agent gives us ultimate flexibility. Agents can listen for requests from Manila, they can pull updates from Manila periodically or at boot, and they can perform ANY change we like on the clients, at any time. Many problems becomes simple when you can assume the existence of an agent on the client.&lt;br /&gt;
&lt;br /&gt;
There are obvious downsides to this approach, chiefly the trust issue that most users will have about installing a new piece of software on their guests, and the significant effort involved with creating a new piece of software and maintaining it. There are also security concerns, because we will be responsible if a bug in the agent software exposes a user to mischief and mayhem.&lt;br /&gt;
&lt;br /&gt;
* Is the approach limited to a subset of scenarios?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; No.&lt;br /&gt;
&lt;br /&gt;
* Does the approach allow for instantaneous/synchronous mounting?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; Yes.&lt;br /&gt;
&lt;br /&gt;
* Does the approach allow for persistent mounts that survive across reboots?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; Yes.&lt;br /&gt;
&lt;br /&gt;
* Can the approach handle the case when the client is down at the time of attach/detach?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; Yes.&lt;br /&gt;
&lt;br /&gt;
* What security considerations exist?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:red&amp;quot;&amp;gt;bad&amp;lt;/span&amp;gt; We get to design our own security. This gives us excellent flexibility, but we have to design something that strikes a good balance between protecting users and being usable, which is always hard. Regardless, we will face trust problems until we have a proven track record.&lt;br /&gt;
&lt;br /&gt;
* What network considerations exist?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:yellow&amp;quot;&amp;gt;caution&amp;lt;/span&amp;gt; The network considerations are similar to the SSH approach, because Manila will need to reach out and poke the agent. Also the agent will need a reverse path back to the Manila server to do pull requests, which might be desirable at boot time.&lt;br /&gt;
&lt;br /&gt;
* Are there any external dependencies?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:yellow&amp;quot;&amp;gt;caution&amp;lt;/span&amp;gt; The external dependency is the agent itself. We cannot force anyone to install it, so in cases where it doesn't exist, we will be unable to do anything.&lt;br /&gt;
&lt;br /&gt;
* Does the approach require Manila to store any state?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:yellow&amp;quot;&amp;gt;caution&amp;lt;/span&amp;gt; Yes. Manila will need to track the agents and some security information in order to contact them and authenticate with them.&lt;br /&gt;
&lt;br /&gt;
* Does the approach allow Manila to enable use cases that would be impossible without mount automation, such as automatically updating mounts in the event of a DR failover?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; Yes.&lt;br /&gt;
&lt;br /&gt;
* How much effort is required to implement the approach?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:red&amp;quot;&amp;gt;bad&amp;lt;/span&amp;gt; Very high.&lt;br /&gt;
&lt;br /&gt;
* How resistant are users likely to be to the approach?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:red&amp;quot;&amp;gt;bad&amp;lt;/span&amp;gt; Very resistent. It's another thing to install and another thing to security audit. Another thing to worry about.&lt;br /&gt;
&lt;br /&gt;
* Does the approach require Manila to expand it's project scope (to manage things that it currently has no knowledge of)?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:red&amp;quot;&amp;gt;bad&amp;lt;/span&amp;gt; Yes. Not only does Manila need to become aware of clients and client networks, but now Manila needs to create a whole new project and maintain that software as well.&lt;br /&gt;
&lt;br /&gt;
== Zeroconf-based advertisements ==&lt;br /&gt;
Zeroconf is an interesting approach for advertising services on networks, which layers on top of DNS (or mDNS in peer to peer environments). Zeroconf has existing support for advertisement of CIFS share and NFS exports, but there is no evidence that modern operating systems react to these advertisements automatically by (for example) mounting them.&lt;br /&gt;
&lt;br /&gt;
Zeroconf also only solves half the problem of mount automation. It can notify clients of the existence of something they can mount, but it doesn't tell them precisely WHERE to mount it. For some scenarios, a random mount point might be acceptable (VDI) but for others, it would be a dealbreaker (database as a service).&lt;br /&gt;
&lt;br /&gt;
It's unlikely that we could address unmounting with this approach.&lt;br /&gt;
&lt;br /&gt;
* Is the approach limited to a subset of scenarios?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:red&amp;quot;&amp;gt;bad&amp;lt;/span&amp;gt; Yes.&lt;br /&gt;
&lt;br /&gt;
* Does the approach allow for instantaneous/synchronous mounting?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:yellow&amp;quot;&amp;gt;caution&amp;lt;/span&amp;gt; Maybe.&lt;br /&gt;
&lt;br /&gt;
* Does the approach allow for persistent mounts that survive across reboots?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:yellow&amp;quot;&amp;gt;caution&amp;lt;/span&amp;gt; Maybe.&lt;br /&gt;
&lt;br /&gt;
* Can the approach handle the case when the client is down at the time of attach/detach?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; Yes.&lt;br /&gt;
&lt;br /&gt;
* What security considerations exist?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; Possibly none.&lt;br /&gt;
&lt;br /&gt;
* What network considerations exist?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:red&amp;quot;&amp;gt;bad&amp;lt;/span&amp;gt; Zeroconf relies heavily on multicast, which rarely crosses router boundaries (the admin has to configure multicast routing). In order to get the advertisements onto the right networks, Manila would need to perform some weird gymnastics, most likely involving service VMs with lots and lots of network ports.&lt;br /&gt;
&lt;br /&gt;
* Are there any external dependencies?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:red&amp;quot;&amp;gt;bad&amp;lt;/span&amp;gt; Yes. Zeroconf is not universally available in guest images or enabled.&lt;br /&gt;
&lt;br /&gt;
* Does the approach require Manila to store any state?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:yellow&amp;quot;&amp;gt;caution&amp;lt;/span&amp;gt; Yes. Manila would need to know which clients to advertise to and on which networks.&lt;br /&gt;
&lt;br /&gt;
* Does the approach allow Manila to enable use cases that would be impossible without mount automation, such as automatically updating mounts in the event of a DR failover?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:red&amp;quot;&amp;gt;bad&amp;lt;/span&amp;gt; No. It's unlikely that an advertisement-based approach would allow for the fast unmount-move-mount semantics needed to cleanly failover.&lt;br /&gt;
&lt;br /&gt;
* How much effort is required to implement the approach?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:red&amp;quot;&amp;gt;bad&amp;lt;/span&amp;gt; Unknown, but not small. There are probably existing libraries we can use to do zeroconf-based-advertising, but all of the service VM and networking stuff required to make it work will still be considerable effort.&lt;br /&gt;
&lt;br /&gt;
* How resistant are users likely to be to the approach?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; Very little. The approach is not invasive at all, aside from the possibly scary service VM that attaches to thousands of networks to send advertisements.&lt;br /&gt;
&lt;br /&gt;
* Does the approach require Manila to expand it's project scope (to manage things that it currently has no knowledge of)?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:red&amp;quot;&amp;gt;bad&amp;lt;/span&amp;gt; Yes. Manila needs to know about clients and networks to be able to advertise to them. Also, we need to maintain the software image that goes on the advertising service VM. This would require creating a new GitHub repo and maintaining a new project.&lt;br /&gt;
&lt;br /&gt;
== AutoFS ==&lt;br /&gt;
Many UNIX users already use autofs to control large numbers of NFS mounts. The advantage to autofs is that you can make a single change to a file on a server, and suddenly thousands of clients can mount something new.&lt;br /&gt;
&lt;br /&gt;
One downside is that autofs doesn't actually mount stuff immediately. It's an event-based system that relies on just-in-time mounting on the client side, so that if the client tries to access the mount point before it's mounted, it asks the server what is the correct thing to mount and mounts it. This creates real problems with changes to mounts or unmounts, because they basically become impossible without a reboot or some other approach described elsewhere in this document.&lt;br /&gt;
&lt;br /&gt;
The other downside is that autofs is extremely flexible. Different users probably use it in very different ways and a single approach probably won't meet all users' needs without some customization by the user.&lt;br /&gt;
&lt;br /&gt;
* Is the approach limited to a subset of scenarios?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:red&amp;quot;&amp;gt;bad&amp;lt;/span&amp;gt; Yes. It would be UNIX only, and only work if autofs was in use, and only if autofs was configured in a way that it was compatible with Manila.&lt;br /&gt;
&lt;br /&gt;
* Does the approach allow for instantaneous/synchronous mounting?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:red&amp;quot;&amp;gt;bad&amp;lt;/span&amp;gt; Not really. The just-in-time approach is instantaneous, except that mount doesn't actually happen until its needed.&lt;br /&gt;
&lt;br /&gt;
* Does the approach allow for persistent mounts that survive across reboots?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; Yes.&lt;br /&gt;
&lt;br /&gt;
* Can the approach handle the case when the client is down at the time of attach/detach?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; Yes.&lt;br /&gt;
&lt;br /&gt;
* What security considerations exist?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:yellow&amp;quot;&amp;gt;caution&amp;lt;/span&amp;gt; Manila needs write access to the place where the autofs tables live. This is likely to vary from case to case, but it would be sensitive information and access to it would always be protected.&lt;br /&gt;
&lt;br /&gt;
* What network considerations exist?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; None.&lt;br /&gt;
&lt;br /&gt;
* Are there any external dependencies?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:yellow&amp;quot;&amp;gt;caution&amp;lt;/span&amp;gt; Yes, autofs would be needed.&lt;br /&gt;
&lt;br /&gt;
* Does the approach require Manila to store any state?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; Possibly not. Manila could simply push updates to autofs and then forget about them, and the right thing would happen.&lt;br /&gt;
&lt;br /&gt;
* Does the approach allow Manila to enable use cases that would be impossible without mount automation, such as automatically updating mounts in the event of a DR failover?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:red&amp;quot;&amp;gt;bad&amp;lt;/span&amp;gt; Probably not. Autofs is not friendly to changes, because once the client has its mount it doesn't go back and pull changes from the server anymore.&lt;br /&gt;
&lt;br /&gt;
* How much effort is required to implement the approach?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; Fairly low. It's just some code that tweaks and autofs table. The effort gets higher if we try to get clever and support lots of ways of using autofs.&lt;br /&gt;
&lt;br /&gt;
* How resistant are users likely to be to the approach?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; Very low. Users like this idea, but they probably haven't thought through all the downsides.&lt;br /&gt;
&lt;br /&gt;
* Does the approach require Manila to expand it's project scope (to manage things that it currently has no knowledge of)?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; No. This feature can be implemented on the side without significantly changing Manila itself.&lt;br /&gt;
&lt;br /&gt;
== LDAP/AD ==&lt;br /&gt;
Directory services create a centralized place for clients to get information. A list of mounts could be one kind of information stored in a directory service. For Windows, the AD server tells each user where his home directory is, for example. On UNIX, LDAP can be a similar repository, but coupled with autofs for mounting.&lt;br /&gt;
&lt;br /&gt;
We haven't determined 100% whether these tools are flexible enough out of the box, but they provide a reasonable building block that could be combined with some scripts to facilitate mount automation. That being said, this approach has enough drawbacks that we didn't consider it worthwhile to dig deeper.&lt;br /&gt;
&lt;br /&gt;
* Is the approach limited to a subset of scenarios?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:red&amp;quot;&amp;gt;bad&amp;lt;/span&amp;gt; Yes. Not all environments have LDAP/AD.&lt;br /&gt;
&lt;br /&gt;
* Does the approach allow for instantaneous/synchronous mounting?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:red&amp;quot;&amp;gt;bad&amp;lt;/span&amp;gt; No.&lt;br /&gt;
&lt;br /&gt;
* Does the approach allow for persistent mounts that survive across reboots?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; Yes.&lt;br /&gt;
&lt;br /&gt;
* Can the approach handle the case when the client is down at the time of attach/detach?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; Yes.&lt;br /&gt;
&lt;br /&gt;
* What security considerations exist?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:yellow&amp;quot;&amp;gt;caution&amp;lt;/span&amp;gt; Manila needs write access to the LDAP/AD server. In theory we already have this with the security service that's part of the share network, but not all clients actually use that feature, so it would make setting up security services a prerequisute.&lt;br /&gt;
&lt;br /&gt;
* What network considerations exist?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; None.&lt;br /&gt;
&lt;br /&gt;
* Are there any external dependencies?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:yellow&amp;quot;&amp;gt;caution&amp;lt;/span&amp;gt; Yes, the LDAP/AD server. Also software to communicate with those servers from Manila.&lt;br /&gt;
&lt;br /&gt;
* Does the approach require Manila to store any state?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; No.&lt;br /&gt;
&lt;br /&gt;
* Does the approach allow Manila to enable use cases that would be impossible without mount automation, such as automatically updating mounts in the event of a DR failover?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:red&amp;quot;&amp;gt;bad&amp;lt;/span&amp;gt; No.&lt;br /&gt;
&lt;br /&gt;
* How much effort is required to implement the approach?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:yellow&amp;quot;&amp;gt;caution&amp;lt;/span&amp;gt; Medium. Storing some records in a server is not super hard. The challenge would be getting client software to talk to those services.&lt;br /&gt;
&lt;br /&gt;
* How resistant are users likely to be to the approach?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; Pretty low. It's not invasive and it piggybacks on stuff they already do.&lt;br /&gt;
&lt;br /&gt;
* Does the approach require Manila to expand it's project scope (to manage things that it currently has no knowledge of)?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; No, not unless we need to write some new software to communicate with AD or LDAP.&lt;br /&gt;
&lt;br /&gt;
== Cloud-Init ==&lt;br /&gt;
Clout-init is widely available in OpenStack clouds (but nowhere near universally available). It runs at startup and pulls identity information from a directory service. We could store our mount information in that directory and make Cloud-Init perform the mounts for us.&lt;br /&gt;
&lt;br /&gt;
This is similar to an agent based approach, except the agent is owned by someone else and only runs at startup time, so listening for requests wouldn't be possible.&lt;br /&gt;
&lt;br /&gt;
As a slight variation, a script inserted by Cloud-Init could get mount information from the Nova metadata service, which would not store Manila data but would query Manila for the latest share mounts on demand.&lt;br /&gt;
&lt;br /&gt;
* Is the approach limited to a subset of scenarios?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:yellow&amp;quot;&amp;gt;caution&amp;lt;/span&amp;gt; Yes. Cloud-Init is common, but by no means universal.&lt;br /&gt;
&lt;br /&gt;
* Does the approach allow for instantaneous/synchronous mounting?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:red&amp;quot;&amp;gt;bad&amp;lt;/span&amp;gt; No.&lt;br /&gt;
&lt;br /&gt;
* Does the approach allow for persistent mounts that survive across reboots?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; Yes.&lt;br /&gt;
&lt;br /&gt;
* Can the approach handle the case when the client is down at the time of attach/detach?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; Yes.&lt;br /&gt;
&lt;br /&gt;
* What security considerations exist?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:yellow&amp;quot;&amp;gt;caution&amp;lt;/span&amp;gt; Manila needs access to modify the directory that Cloud-Init pulls from, or the service invoked by Cloud-Init (i.e. Nova metadata service) needs Manila credentials). However, this is a single trust relationship which should be easy to configure.&lt;br /&gt;
&lt;br /&gt;
* What network considerations exist?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; None.&lt;br /&gt;
&lt;br /&gt;
* Are there any external dependencies?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:yellow&amp;quot;&amp;gt;caution&amp;lt;/span&amp;gt; Dependency on Cloud-Init.&lt;br /&gt;
&lt;br /&gt;
* Does the approach require Manila to store any state?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; No.&lt;br /&gt;
&lt;br /&gt;
* Does the approach allow Manila to enable use cases that would be impossible without mount automation, such as automatically updating mounts in the event of a DR failover?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; No (unless clients were rebooted as part of the same DR failover).&lt;br /&gt;
&lt;br /&gt;
* How much effort is required to implement the approach?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; Fairly low. We prototyped this (Nova metadata service + Cloud-Init) in a week.&lt;br /&gt;
&lt;br /&gt;
* How resistant are users likely to be to the approach?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; Fairly low. Users that like Cloud-Init will find this to be a natural expansion.&lt;br /&gt;
&lt;br /&gt;
* Does the approach require Manila to expand it's project scope (to manage things that it currently has no knowledge of)?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; No.&lt;br /&gt;
&lt;br /&gt;
== VirtFS ==&lt;br /&gt;
VirtFS is hypervisor controlled and extremely similar to the Cinder/block-based approach insofar as the guest simply sees a PCI PnP event and reacts to it. Manila would only need to communicate with Nova and we could safely ignore the guest.&lt;br /&gt;
&lt;br /&gt;
The downsides to VirtFS are well known -- chiefly the lack of support in Windows guests, lack of support in certain hypervisors, and the lack of support for bare metal.&lt;br /&gt;
&lt;br /&gt;
* Is the approach limited to a subset of scenarios?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:red&amp;quot;&amp;gt;bad&amp;lt;/span&amp;gt; Yes, only situations where VirtFS is used.&lt;br /&gt;
&lt;br /&gt;
* Does the approach allow for instantaneous/synchronous mounting?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; Yes.&lt;br /&gt;
&lt;br /&gt;
* Does the approach allow for persistent mounts that survive across reboots?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; Yes.&lt;br /&gt;
&lt;br /&gt;
* Can the approach handle the case when the client is down at the time of attach/detach?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; Undefined. Like Cinder, there is no concept of a volume attached to an instance that's not currently running.&lt;br /&gt;
&lt;br /&gt;
* What security considerations exist?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; None.&lt;br /&gt;
&lt;br /&gt;
* What network considerations exist?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; None.&lt;br /&gt;
&lt;br /&gt;
* Are there any external dependencies?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:red&amp;quot;&amp;gt;bad&amp;lt;/span&amp;gt; VirtFS. And something to manage the virtfs/hypervisor setup -- Nova would be the obvious thing to do this.&lt;br /&gt;
&lt;br /&gt;
* Does the approach require Manila to store any state?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; No.&lt;br /&gt;
&lt;br /&gt;
* Does the approach allow Manila to enable use cases that would be impossible without mount automation, such as automatically updating mounts in the event of a DR failover?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; Yes. In fact this approach is by far the best approach for making DR seamless.&lt;br /&gt;
&lt;br /&gt;
* How much effort is required to implement the approach?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; Low. In this scenario we really don't do much of anything in Manila because all of the VirtFS work would be in Nova anyways.&lt;br /&gt;
&lt;br /&gt;
* How resistant are users likely to be to the approach?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:yellow&amp;quot;&amp;gt;caution&amp;lt;/span&amp;gt; Mixed. Some love virtfs, others hate it. For cases where it's possible, it would be a very attractive. For cases where it's not possible, who cares?&lt;br /&gt;
&lt;br /&gt;
* Does the approach require Manila to expand it's project scope (to manage things that it currently has no knowledge of)?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; No.&lt;br /&gt;
&lt;br /&gt;
== Do Nothing ==&lt;br /&gt;
The idea here is to recognize that mount automation is a non-feature. Nothing we add in Manila will enable anything you can't already do manually, and there is little point to making Manila try to simplify a task which can already be simplified more effectively using existing tools.&lt;br /&gt;
&lt;br /&gt;
Consider a workflow that uses Heat to create a Manila share and some Nova instances to provide a service of some kind. Heat has all the of information it needs to perform the mount itself, and Heat is more than capable of automating these kinds of things. Customers may prefer to do this themselves, because they'll get extra flexibility and won't be locked into a narrow approach implemented inside Manila.&lt;br /&gt;
&lt;br /&gt;
If we were to pursue this approach, we would focus on providing concrete examples to users for how to leverage tools like Heat to automate mounts, and we would add these examples to the documentation.&lt;br /&gt;
&lt;br /&gt;
There are no obvious downsides to this approach, other than that it feels like we're sidestepping the problem.&lt;br /&gt;
&lt;br /&gt;
* Is the approach limited to a subset of scenarios?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; No.&lt;br /&gt;
&lt;br /&gt;
* Does the approach allow for instantaneous/synchronous mounting?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; Yes.&lt;br /&gt;
&lt;br /&gt;
* Does the approach allow for persistent mounts that survive across reboots?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; Yes.&lt;br /&gt;
&lt;br /&gt;
* Can the approach handle the case when the client is down at the time of attach/detach?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; Yes.&lt;br /&gt;
&lt;br /&gt;
* What security considerations exist?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; None in Manila. Obviously the tool (like Heat) doing the automation would need authentication creds, but such tools need those anyways, so they are in many ways best suited to solve the security problems.&lt;br /&gt;
&lt;br /&gt;
* What network considerations exist?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; None in Manila. Obviously the tool (like Heat) doing the automation would need network access to the client, but such tools need that anyways, so they are in many ways best suited to deal with network complexity.&lt;br /&gt;
&lt;br /&gt;
* Are there any external dependencies?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; No real dependencies. You need to bring your own automation and the dependencies are whatever you bring.&lt;br /&gt;
&lt;br /&gt;
* Does the approach require Manila to store any state?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; No.&lt;br /&gt;
&lt;br /&gt;
* Does the approach allow Manila to enable use cases that would be impossible without mount automation, such as automatically updating mounts in the event of a DR failover?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:red&amp;quot;&amp;gt;bad&amp;lt;/span&amp;gt; No, not unless the DR failover is also automated by the same process automating the mounts.&lt;br /&gt;
&lt;br /&gt;
* How much effort is required to implement the approach?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; Very little. This is largely a documentation exercise.&lt;br /&gt;
&lt;br /&gt;
* How resistant are users likely to be to the approach?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; Not resistant at all, since this choice gives them maximum flexibility. Some users may be disappointed that there is no magic button, but that was fantasy anyways.&lt;br /&gt;
&lt;br /&gt;
* Does the approach require Manila to expand it's project scope (to manage things that it currently has no knowledge of)?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background:green&amp;quot;&amp;gt;good&amp;lt;/span&amp;gt; No.&lt;br /&gt;
&lt;br /&gt;
= Plugin Approach =&lt;br /&gt;
&lt;br /&gt;
Based on the mixed advantages and disadvantages of the above approaches, and based on the likelihood that other people will have other ideas for how to tackle this problem, we recommend tackling this problem by building a &amp;quot;plugin&amp;quot; framework in Manila that enables mount automation with a variety of approaches.&lt;br /&gt;
&lt;br /&gt;
We will assume that all of the above approaches will eventually be implemented by various people in the community, and the goal of the core feature is to provide the basic primitives to allow all of the approaches to work. Which approaches get used in practice will depend on choices made by individual deployers or tenants.&lt;br /&gt;
&lt;br /&gt;
The plugin approach will need to provide a mechanism for &amp;quot;attachments&amp;quot; between clients and shares to be tracked and for the software responsible for performing mounts and unmounts to query that mechanism and to be notified of changes.&lt;br /&gt;
&lt;br /&gt;
Some questions to be answered by the design:&lt;br /&gt;
* What are the types of things that shares can be attached to? IPs? Networks? Users? Nova Instances?&lt;br /&gt;
* When does a share become &amp;quot;attached&amp;quot;? When access is granted? When a separate &amp;quot;attach&amp;quot; API is called?&lt;br /&gt;
* Who is the consumer of the attachment information/notifications? The administrator? The tenants? Both?&lt;br /&gt;
&lt;br /&gt;
The plugin design should include enough detail that we can be confident that ALL of the proposed approaches could be accommodated, however we won't actually design all of the above approaches. We will start with designs for 1 or 2 highly popular approaches (to prove the approach and make it actually usable) and encourage the community to expand on the others.&lt;br /&gt;
&lt;br /&gt;
Assumed highly popular approaches:&lt;br /&gt;
* Cloud-Init w/ Nova metadata&lt;br /&gt;
* Nova agent&lt;/div&gt;</summary>
		<author><name>Clinton Knight</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Design_Summit/Liberty/Etherpads&amp;diff=81008</id>
		<title>Design Summit/Liberty/Etherpads</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Design_Summit/Liberty/Etherpads&amp;diff=81008"/>
				<updated>2015-05-12T15:06:23Z</updated>
		
		<summary type="html">&lt;p&gt;Clinton Knight: /* Manila */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Summit]]&lt;br /&gt;
[[Category:Liberty]]&lt;br /&gt;
[[Category:Etherpad]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;column-count:3;-moz-column-count:3;-webkit-column-count:3&amp;quot;&amp;gt;&lt;br /&gt;
__TOC__&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
==Cross-Project workshops==&lt;br /&gt;
Tuesday:&lt;br /&gt;
&lt;br /&gt;
* 11:15 - 11:55&lt;br /&gt;
** [https://etherpad.openstack.org/p/liberty-cross-project-python3 Moving apps to Python 3]&lt;br /&gt;
** [https://etherpad.openstack.org/p/liberty-cross-project-user-notifications Async status updates]&lt;br /&gt;
* 12:05 - 12:45&lt;br /&gt;
** Improving UX across all projects&lt;br /&gt;
** Functional Testing Show &amp;amp; Tell&lt;br /&gt;
* 2:00 - 2:40&lt;br /&gt;
** OpenStack SDK&lt;br /&gt;
** Modern JavaScript&lt;br /&gt;
* 2:50 - 3:30&lt;br /&gt;
** [https://etherpad.openstack.org/p/liberty-cross-project-in-team-scaling In-team scaling]&lt;br /&gt;
** Service Catalog Standardization&lt;br /&gt;
* 3:40 - 4:20&lt;br /&gt;
** API Working Group&lt;br /&gt;
** Towards one Network Stack: Part 1 - Neutron Gaps and Concerns&lt;br /&gt;
* 4:40 - 5:20&lt;br /&gt;
** [https://etherpad.openstack.org/p/liberty-cross-project-release-models OpenStack release model(s)]&lt;br /&gt;
** Unified Policy File&lt;br /&gt;
* 5:30 - 6:10&lt;br /&gt;
** OpenStack Documentation&lt;br /&gt;
** [https://etherpad.openstack.org/p/liberty-cross-project-managing-concurrency Managing concurrency]&lt;br /&gt;
&lt;br /&gt;
==Barbican==&lt;br /&gt;
==Ceilometer==&lt;br /&gt;
wednesday:&lt;br /&gt;
* 0900 - 0940: [https://etherpad.openstack.org/p/ceilo-multi-identity componentisation / multi identity]&lt;br /&gt;
* 0950 - 1030: [https://etherpad.openstack.org/p/event_alarm event alarms]&lt;br /&gt;
* 1100 - 1140: [https://etherpad.openstack.org/p/liberty-ceilometer-pipeline-config pipeline configuration]&lt;br /&gt;
* 1150 - 1230: [https://etherpad.openstack.org/p/ceilo-declarative-notifications declarative notification meters]&lt;br /&gt;
* 1440 - 1520: [https://etherpad.openstack.org/p/YVR-ops-ceilometer ops followup]&lt;br /&gt;
* 1530 - 1610: [https://etherpad.openstack.org/p/ceilo-multi-identity componentization carry over]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;thursday:&lt;br /&gt;
* 0900 - 0940: [https://etherpad.openstack.org/p/liberty-ceilometer-meter-deprecation meter deprecation]&lt;br /&gt;
* 0950 - 1030: [https://etherpad.openstack.org/p/liberty-ceilometer-meter-event samples/events integration]&lt;br /&gt;
* 1100 - 1140: [https://etherpad.openstack.org/p/liberty-ceilometer-versioned-objects versioned objects]&lt;br /&gt;
* 1150 - 1230: ops followup&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;friday:&lt;br /&gt;
* 0900 - 1200: [https://etherpad.openstack.org/p/liberty-ceilometer-contributors-meetup contributor meetup]&lt;br /&gt;
&lt;br /&gt;
==Cinder==&lt;br /&gt;
==Designate==&lt;br /&gt;
==Documentation==&lt;br /&gt;
==Glance==&lt;br /&gt;
==Heat==&lt;br /&gt;
=== Wed ===&lt;br /&gt;
* 09:00 - 09:40: [https://etherpad.openstack.org/p/YVR-heat-liberty-convergence-1 (W) Finishing off Convergence phase 1]&lt;br /&gt;
* 09:50 - 10:30: [https://etherpad.openstack.org/p/YVR-heat-liberty-convergence-2 (W) Convergence phase 2 planning]&lt;br /&gt;
* 11:00 - 11:40: [https://etherpad.openstack.org/p/YVR-heat-liberty-testing (W) Functional and integration testing, identify gaps and suggest improvements]&lt;br /&gt;
* 11:50 - 12:30: [https://etherpad.openstack.org/p/YVR-heat-liberty-lifecycle-ops (W) Better support for lifecycle operations on (tripleo) heat stacks (upgrades etc)]&lt;br /&gt;
* 13:50 - 14:30: [https://etherpad.openstack.org/p/YVR-heat-liberty-client-usability (F) Heat client usability]&lt;br /&gt;
* 14:40 - 15:20: [https://etherpad.openstack.org/p/YVR-heat-liberty-template-format (F) Heat template format improvements]&lt;br /&gt;
* 15:30 - 16:10: [https://etherpad.openstack.org/p/YVR-heat-liberty-rest-api (F) REST API design and roadmap]&lt;br /&gt;
* 16:30 - 17:10: [https://etherpad.openstack.org/p/YVR-heat-liberty-senlin-autoscaling (F) Senlin Autoscaling Project - Deep Dive]&lt;br /&gt;
* 17:20 - 18:00: [https://etherpad.openstack.org/p/YVR-heat-liberty-containers (F) Orchestrating containers with Heat]&lt;br /&gt;
&lt;br /&gt;
=== Thu ===&lt;br /&gt;
* 09:00 - 09:40: [https://etherpad.openstack.org/p/YVR-heat-liberty-alembic (W) Migrating from sqlalchemy-migrations to alembic]&lt;br /&gt;
* 09:50 - 10:30: [https://etherpad.openstack.org/p/YVR-heat-liberty-versioned-objects (W) Future of Versioned objects in heat]&lt;br /&gt;
* 11:00 - 11:40: [https://etherpad.openstack.org/p/YVR-heat-liberty-autoscaling (W) Autoscaling improvements]&lt;br /&gt;
* 11:50 - 12:30: [https://etherpad.openstack.org/p/YVR-heat-liberty-deprecation (W) Our deprecation process]&lt;br /&gt;
* 16:10 - 16:50: [https://etherpad.openstack.org/p/YVR-heat-liberty-contrib-plugins (W) Moving most contrib plugins in-tree]&lt;br /&gt;
* 17:00 - 17:40: [https://etherpad.openstack.org/p/YVR-heat-liberty-resource-registering (W) Conditional registering of resources]&lt;br /&gt;
&lt;br /&gt;
=== Fri ===&lt;br /&gt;
* 09:00-12:20: [https://etherpad.openstack.org/p/YVR-heat-contributor-meetup Contributor Meetup]&lt;br /&gt;
&lt;br /&gt;
==Horizon==&lt;br /&gt;
==Infrastructure==&lt;br /&gt;
==Ironic==&lt;br /&gt;
==Keystone==&lt;br /&gt;
==Manila==&lt;br /&gt;
=== Wed ===&lt;br /&gt;
* 09:00 - 09:40: [https://etherpad.openstack.org/p/YVR-manila-liberty-mount-automation (F) Mount automation]&lt;br /&gt;
* 09:50 - 10:30: [https://etherpad.openstack.org/p/YVR-manila-liberty-share-migration (F) Share migration]&lt;br /&gt;
* 11:00 - 11:40: [https://etherpad.openstack.org/p/YVR-manila-liberty-share-replication (F) Share replication]&lt;br /&gt;
* 16:30 - 17:10: [https://etherpad.openstack.org/p/YVR-manila-liberty-versioned-objects-and-apis (W) Versioned objects and APIs]&lt;br /&gt;
* 17:20 - 18:00: [https://etherpad.openstack.org/p/YVR-manila-liberty-fault-indication (W) Fault indication]&lt;br /&gt;
&lt;br /&gt;
=== Thu ===&lt;br /&gt;
* 16:10 - 16:50: [https://etherpad.openstack.org/p/YVR-manila-liberty-thin-provisioning-consistency-groups (W) Thin provisioning and consistency groups]&lt;br /&gt;
* 17:00 - 17:40: [https://etherpad.openstack.org/p/YVR-manila-liberty-snapshot-share-relationship-manila-service-image (W) Snapshot-share relationship and Manila service image]&lt;br /&gt;
&lt;br /&gt;
==Neutron==&lt;br /&gt;
=== Tue ===&lt;br /&gt;
=== Wed ===&lt;br /&gt;
* 09:00 - 09:40: [https://etherpad.openstack.org/p/YVR-neutron-liberty-development Neutron Liberty Development]&lt;br /&gt;
* 09:50 - 10:30: [https://etherpad.openstack.org/p/YVR-neutron-use-case-discussion Neutron Use Case Discussion]&lt;br /&gt;
* 11:00 - 11:40: [https://etherpad.openstack.org/p/YVR-neutron-vlan-trunk VLAN Aware VMs]&lt;br /&gt;
* 11:50 - 12:30: Neutron Lightning Talks (no etherpad)&lt;br /&gt;
* 13:50 - 14:30: [https://etherpad.openstack.org/p/YVR-neutron-octavia Octavia]&lt;br /&gt;
* 14:40 - 15:20: [https://etherpad.openstack.org/p/YVR-neutron-opendaylight OpenDaylight]&lt;br /&gt;
* 15:30 - 16:10: [https://etherpad.openstack.org/p/YVR-neutron-ovn OVN]&lt;br /&gt;
* 16:30 - 17:10: [https://etherpad.openstack.org/p/YVR-neutron-ironic Ironic and Neutron integration]&lt;br /&gt;
* 17:20 - 18:00: [https://etherpad.openstack.org/p/YVR-neutron-get-me-a-network Get Me a Network!]&lt;br /&gt;
&lt;br /&gt;
=== Thu ===&lt;br /&gt;
* 09:00 - 09:40:  [https://etherpad.openstack.org/p/YVR-neutron-lbaas-use-cases Neutron LBaaS Use Cases]&lt;br /&gt;
* 09:50 - 10:30:  [https://etherpad.openstack.org/p/YVR-neutron-l3 Neutron L3]&lt;br /&gt;
* 11:00 - 11:40: [https://etherpad.openstack.org/p/YVR-neutron-qos QoS]&lt;br /&gt;
* 11:50 - 12:30: [https://etherpad.openstack.org/p/YVR-neutron-third-party-ci-liberty Third Party CI in Liberty and Beyond]&lt;br /&gt;
* 13:30 - 14:10: [https://etherpad.openstack.org/p/YVR-neutron-testing-in-liberty Testing In Liberty]&lt;br /&gt;
* 14:20 - 15:00: [https://etherpad.openstack.org/p/YVR-neutron-RBAC Neutron RBAC]&lt;br /&gt;
* 15:10 - 15:50: [https://etherpad.openstack.org/p/YVR-neutron-sg-fwaas-future-direction SG and FWaaS Future Directions]&lt;br /&gt;
* 16:10 - 16:50: [https://etherpad.openstack.org/p/YVR-neutron-nfv-enhancements Neutron NFV Enhancements]&lt;br /&gt;
=== Fri ===&lt;br /&gt;
* 09:00-12:20: [https://etherpad.openstack.org/p/YVR-neutron-contributor-meetup Contributor Meetup]&lt;br /&gt;
&lt;br /&gt;
==Nova==&lt;br /&gt;
&lt;br /&gt;
'''Wednesday:'''&lt;br /&gt;
&lt;br /&gt;
* 09:00 - 09:40: [https://etherpad.openstack.org/p/YVR-nova-scheduler-in-liberty Scheduler in Liberty]&lt;br /&gt;
* 09:50 - 10:30: [https://etherpad.openstack.org/p/YVR-nova-scalling-out-scheduler-for-cells Scaling out scheduler for cells ]&lt;br /&gt;
&lt;br /&gt;
* 11:00 - 11:40: [https://etherpad.openstack.org/p/YVR-nova-cells-v2 Cells v2]&lt;br /&gt;
* 11:50 - 12:30: [https://etherpad.openstack.org/p/YVR-nova-resource-tracker Resource Tracker, Clustered Hypervisors and NFV]&lt;br /&gt;
&lt;br /&gt;
* 13:50 - 14:30: [https://etherpad.openstack.org/p/YVR-nova-spec-blueprint-unconference Nova Spec/Blueprint Unconference]&lt;br /&gt;
* 14:40 - 15:20: [https://etherpad.openstack.org/p/YVR-nova-database-internals Database (part 1)]&lt;br /&gt;
* 15:30 - 16:10: [https://etherpad.openstack.org/p/YVR-nova-functional-testing-feature-classification Functional Testing and Feature Classification]&lt;br /&gt;
&lt;br /&gt;
* 16:30 - 17:10: [https://etherpad.openstack.org/p/YVR-nova-instance-ha-evacuate-resize Dealing with compute host failure: Instance HA, Evacuate, Resize]&lt;br /&gt;
* 17:20 - 18:00: [https://etherpad.openstack.org/p/YVR-nova-api-2.1-in-liberty Nova API v2.1 in Liberty]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
'''Thursday:'''&lt;br /&gt;
&lt;br /&gt;
* 09:00 - 09:40: [https://etherpad.openstack.org/p/YVR-nova-api-2.0-3rd-party Future of Nova API v2.0 and 3rd Party APIs]&lt;br /&gt;
* 09:50 - 10:30: [https://etherpad.openstack.org/p/YVR-nova-quotas-and-database Quotas and Database (part 2)]&lt;br /&gt;
&lt;br /&gt;
* 11:00 - 11:40: [https://etherpad.openstack.org/p/YVR-nova-flavors-and-image-properties Flavors and Image Properties]&lt;br /&gt;
* 11:50 - 12:30: [https://etherpad.openstack.org/p/YVR-nova-error-handling Error Handling]&lt;br /&gt;
&lt;br /&gt;
* 13:30 - 14:10: [https://etherpad.openstack.org/p/YVR-nova-spec-blueprint-unconference Nova Spec/Blueprint Unconference]&lt;br /&gt;
* 14:20 - 15:00: [https://etherpad.openstack.org/p/YVR-nova-liberty-priorities Liberty Priorities (part 1)]&lt;br /&gt;
* 15:10 - 15:50: [https://etherpad.openstack.org/p/YVR-nova-liberty-priorities Liberty Priorities (part 2)]&lt;br /&gt;
&lt;br /&gt;
* 16:10 - 16:50: [https://etherpad.openstack.org/p/YVR-nova-liberty-process Liberty Process and Scaling out Reviews]&lt;br /&gt;
* 17:00 - 17:40: [https://etherpad.openstack.org/p/YVR-nova-network Future of Nova's networking and nova-network]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
'''Friday:'''&lt;br /&gt;
&lt;br /&gt;
* 09:00 - 12:20 and 13:20 - 16:40: [https://etherpad.openstack.org/p/YVR-nova-contributor-meetup Nova Contributor Meetup]&lt;br /&gt;
&lt;br /&gt;
==Oslo==&lt;br /&gt;
&lt;br /&gt;
'''Wednesday:'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* 09:00 - 09:40: [https://etherpad.openstack.org/p/YVR-oslo-versioned-objects-intro (F) Get to know your objects and learn how to version them (an introduction to oslo.versionedobjects)!]&lt;br /&gt;
* 09:50 - 10:30: [https://etherpad.openstack.org/p/YVR-oslo-taskflow-plans (F) Give me liberty, or give me taskflow (come learn about taskflow liberty plans)!]&lt;br /&gt;
* 11:00 - 11:40: [https://etherpad.openstack.org/p/YVR-oslo-rootwrap-plans (W) Give me liberty, or give me wraps (the future of oslo.rootwrap) ]&lt;br /&gt;
* 11:50 - 12:30: [https://etherpad.openstack.org/p/YVR-oslo-functional-testing (W) The cost of liberty is less than the price of functional testing]&lt;br /&gt;
* 13:50 - 14:30: [https://etherpad.openstack.org/p/YVR-oslo-graduation-schedule (W) Give me more oslo in liberty or else! Schedule &amp;amp; new libraries]&lt;br /&gt;
* 14:40 - 15:20: [https://etherpad.openstack.org/p/YVR-oslo-messaging-zmq-status (F) State of zmq in oslo.messaging]&lt;br /&gt;
* 15:30 - 16:10: [https://etherpad.openstack.org/p/YVR-oslo-optional-dependencies (W) Emancipate/liberate your optional dependencies - Optional Dependencies]&lt;br /&gt;
* 16:30 - 17:10: [https://etherpad.openstack.org/p/YVR-oslo-release-process-review (W) Reviewing our release processes]&lt;br /&gt;
* 17:20 - 18:00: [https://etherpad.openstack.org/p/YVR-oslo-config-filter (W) Configuration Filters in oslo.config]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
'''Thursday:'''&lt;br /&gt;
&lt;br /&gt;
* 09:50 - 10:30: [https://etherpad.openstack.org/p/YVR-oslo-strategy-discussion (F) The oslo liberty proclamation (and associated strategy discussion)]&lt;br /&gt;
* 11:00 - 11:40: [https://etherpad.openstack.org/p/YVR-oslo-config-plans (F) Enfranchise oslo.config, let's discuss alternative data sources in oslo.config]&lt;br /&gt;
* 11:50 - 12:30: [https://etherpad.openstack.org/p/YVR-oslo-log-plans (W) Life, Liberty, and the pursuit of oslo.log changes]&lt;br /&gt;
* 13:30 - 14:10: [https://etherpad.openstack.org/p/YVR-oslo-versioned-objects-deep-dive (W) Deep dive on oslo.versionedobjects, bring your wet suits.]&lt;br /&gt;
* 14:20 - 15:00: [https://etherpad.openstack.org/p/YVR-oslo-db-plans (F) For a people who are free, and who mean to remain so, a well organized and armed 'oslo.db' is their best security]&lt;br /&gt;
* 15:10 - 15:50: [https://etherpad.openstack.org/p/YVR-oslo-asyncio (F) Event loops, coroutines, yield from, futures, a discussion on asyncio (and triollus?)]&lt;br /&gt;
* 16:10 - 16:50: [https://etherpad.openstack.org/p/YVR-oslo-messaging-plans (F) Ping pong, oslo.messaging plans for liberty.]&lt;br /&gt;
* 17:00 - 17:40: [https://etherpad.openstack.org/p/YVR-oslo-tech-debt-deprecation (F) How to clean up your tech-debt; let's discuss best practices on how to deprecate things in oslo libraries]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==QA==&lt;br /&gt;
&lt;br /&gt;
=== Wed. ===&lt;br /&gt;
&lt;br /&gt;
* 1150-1230 - [https://etherpad.openstack.org/p/YVR-QA-testing-beyond-the-gate Testing beyond the gate]&lt;br /&gt;
* 1350-1430 - [https://etherpad.openstack.org/p/YVR-QA-Devstack-Roadmap Devstack Roadmap]&lt;br /&gt;
* 1440-1520 - [https://etherpad.openstack.org/p/YVR-QA-Tempest-service-clients Work Session: Tempest service clients]&lt;br /&gt;
* 1630-1710 - [https://etherpad.openstack.org/p/YVR-QA-in-the-big-tent QA in the Big Tent]&lt;br /&gt;
&lt;br /&gt;
=== Thurs. ===&lt;br /&gt;
* 0900-0940 - [https://etherpad.openstack.org/p/YVR-QA-idempotent-id Work Session: Idempotent ID]&lt;br /&gt;
* 1330-1410 - [https://etherpad.openstack.org/p/YVR-QA-Tempest-as-a-system-program Work Session: Tempest as System Program]&lt;br /&gt;
* 1420-1500 - [https://etherpad.openstack.org/p/YVR-QA-Tempest-CLI Work Session: Tempest CLI and Tempest Cleanup]&lt;br /&gt;
* 1610-1650 - [https://etherpad.openstack.org/p/YVR-QA-Tempest-Scope-Revisited Tempest Scope Revisited]&lt;br /&gt;
* 1700-1740 - [https://etherpad.openstack.org/p/YVR-QA-Liberty-Priorities Liberty Priorities]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Release Management==&lt;br /&gt;
* Wed 17:20-18:00: [https://etherpad.openstack.org/p/YVR-relmgt-stable-branch Stable branch]&lt;br /&gt;
* Thu 11:00-11:40 [https://etherpad.openstack.org/p/YVR-relmgt-library-releases Work session: Library releases]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Sahara==&lt;br /&gt;
&lt;br /&gt;
=== Wed ===&lt;br /&gt;
&lt;br /&gt;
* 11:00am (W) HA http://etherpad.openstack.org/p/sahara-liberty-ha&lt;br /&gt;
* 11:50am (W) API v2 https://etherpad.openstack.org/p/sahara-liberty-api-v2&lt;br /&gt;
&lt;br /&gt;
=== Thu ===&lt;br /&gt;
&lt;br /&gt;
* 1:30pm (F) UI https://etherpad.openstack.org/p/sahara-liberty-ui&lt;br /&gt;
* 2:20pm (F) Security https://etherpad.openstack.org/p/sahara-liberty-security&lt;br /&gt;
* 3:10pm (W) EDP https://etherpad.openstack.org/p/sahara-liberty-edp&lt;br /&gt;
* 4:10pm (W) Resources Visibility/ACL https://etherpad.openstack.org/p/sahara-liberty-resources&lt;br /&gt;
* 5:00pm (W) Plugins https://etherpad.openstack.org/p/sahara-liberty-plugins&lt;br /&gt;
&lt;br /&gt;
=== Fri ===&lt;br /&gt;
&lt;br /&gt;
* 9am - 4:40pm Meetup https://etherpad.openstack.org/p/sahara-liberty-meetup&lt;br /&gt;
&lt;br /&gt;
==Swift==&lt;br /&gt;
==TripleO==&lt;br /&gt;
&lt;br /&gt;
==Trove==&lt;br /&gt;
==Zaqar==&lt;br /&gt;
==Event intro/closure==&lt;br /&gt;
* Tue 11:15-11:55: [https://etherpad.openstack.org/p/YVR-design-summit-101 Design Summit 101]&lt;br /&gt;
* Fri 16:50-17:30: [https://etherpad.openstack.org/p/YVR-design-summit-feedback Design Summit feedback session]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Ops==&lt;br /&gt;
Tuesday:&lt;br /&gt;
* https://etherpad.openstack.org/p/YVR-ops-101&lt;br /&gt;
* https://etherpad.openstack.org/p/YVR-ops-federation&lt;br /&gt;
* https://etherpad.openstack.org/p/YVR-ops-rabbitmq&lt;br /&gt;
* https://etherpad.openstack.org/p/YVR-ops-logging&lt;br /&gt;
* https://etherpad.openstack.org/p/YVR-ops-arch-show-tell&lt;br /&gt;
* https://etherpad.openstack.org/p/YVR-ops-ceilometer&lt;br /&gt;
* https://etherpad.openstack.org/p/YVR-ops-billing&lt;br /&gt;
* https://etherpad.openstack.org/p/YVR-ops-cinder&lt;br /&gt;
* https://etherpad.openstack.org/p/YVR-ops-legacy-apps&lt;br /&gt;
* https://etherpad.openstack.org/p/YVR-ops-user-committee&lt;br /&gt;
* https://etherpad.openstack.org/p/YVR-ops-hypervisor-tuning&lt;br /&gt;
* https://etherpad.openstack.org/p/YVR-ops-security&lt;br /&gt;
* https://etherpad.openstack.org/p/YVR-ops-deployment&lt;br /&gt;
* https://etherpad.openstack.org/p/YVR-ops-database&lt;br /&gt;
* https://etherpad.openstack.org/p/YVR-ops-evangelism&lt;br /&gt;
* https://etherpad.openstack.org/p/YVR-ops-multi-site&lt;br /&gt;
* https://etherpad.openstack.org/p/YVR-ops-nova&lt;br /&gt;
* https://etherpad.openstack.org/p/YVR-ops-customer-onboarding&lt;br /&gt;
* https://etherpad.openstack.org/p/YVR-ops-containers&lt;br /&gt;
* https://etherpad.openstack.org/p/YVR-ops-neutron&lt;br /&gt;
&lt;br /&gt;
Wednesday:&lt;br /&gt;
* https://etherpad.openstack.org/p/YVR-ops-telco&lt;br /&gt;
* https://etherpad.openstack.org/p/YVR-ops-puppet&lt;br /&gt;
* https://etherpad.openstack.org/p/YVR-ops-chef&lt;br /&gt;
* https://etherpad.openstack.org/p/YVR-ops-hpc&lt;br /&gt;
* https://etherpad.openstack.org/p/YVR-ops-tools&lt;br /&gt;
* https://etherpad.openstack.org/p/YVR-ops-ansible&lt;br /&gt;
* https://etherpad.openstack.org/p/YVR-ops-ceph&lt;br /&gt;
* https://etherpad.openstack.org/p/YVR-ops-tags&lt;br /&gt;
* https://etherpad.openstack.org/p/YVR-ops-large-deployments&lt;br /&gt;
* https://etherpad.openstack.org/p/YVR-ops-burning-issues&lt;br /&gt;
* https://etherpad.openstack.org/p/YVR-ops-docs&lt;br /&gt;
* https://etherpad.openstack.org/p/YVR-ops-tech-choices&lt;br /&gt;
* https://etherpad.openstack.org/p/YVR-ops-cmdb&lt;br /&gt;
* https://etherpad.openstack.org/p/YVR-ops-data-plane-transitions&lt;br /&gt;
* https://etherpad.openstack.org/p/YVR-ops-upgrades&lt;br /&gt;
* https://etherpad.openstack.org/p/YVR-ops-packaging&lt;br /&gt;
* https://etherpad.openstack.org/p/YVR-ops-nova-network&lt;/div&gt;</summary>
		<author><name>Clinton Knight</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Design_Summit/Liberty/Etherpads&amp;diff=81006</id>
		<title>Design Summit/Liberty/Etherpads</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Design_Summit/Liberty/Etherpads&amp;diff=81006"/>
				<updated>2015-05-12T14:56:50Z</updated>
		
		<summary type="html">&lt;p&gt;Clinton Knight: /* Manila */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Summit]]&lt;br /&gt;
[[Category:Liberty]]&lt;br /&gt;
[[Category:Etherpad]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;column-count:3;-moz-column-count:3;-webkit-column-count:3&amp;quot;&amp;gt;&lt;br /&gt;
__TOC__&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
==Cross-Project workshops==&lt;br /&gt;
Tuesday:&lt;br /&gt;
&lt;br /&gt;
* 11:15 - 11:55&lt;br /&gt;
** [https://etherpad.openstack.org/p/liberty-cross-project-python3 Moving apps to Python 3]&lt;br /&gt;
** [https://etherpad.openstack.org/p/liberty-cross-project-user-notifications Async status updates]&lt;br /&gt;
* 12:05 - 12:45&lt;br /&gt;
** Improving UX across all projects&lt;br /&gt;
** Functional Testing Show &amp;amp; Tell&lt;br /&gt;
* 2:00 - 2:40&lt;br /&gt;
** OpenStack SDK&lt;br /&gt;
** Modern JavaScript&lt;br /&gt;
* 2:50 - 3:30&lt;br /&gt;
** [https://etherpad.openstack.org/p/liberty-cross-project-in-team-scaling In-team scaling]&lt;br /&gt;
** Service Catalog Standardization&lt;br /&gt;
* 3:40 - 4:20&lt;br /&gt;
** API Working Group&lt;br /&gt;
** Towards one Network Stack: Part 1 - Neutron Gaps and Concerns&lt;br /&gt;
* 4:40 - 5:20&lt;br /&gt;
** [https://etherpad.openstack.org/p/liberty-cross-project-release-models OpenStack release model(s)]&lt;br /&gt;
** Unified Policy File&lt;br /&gt;
* 5:30 - 6:10&lt;br /&gt;
** OpenStack Documentation&lt;br /&gt;
** [https://etherpad.openstack.org/p/liberty-cross-project-managing-concurrency Managing concurrency]&lt;br /&gt;
&lt;br /&gt;
==Barbican==&lt;br /&gt;
==Ceilometer==&lt;br /&gt;
wednesday:&lt;br /&gt;
* 0900 - 0940: [https://etherpad.openstack.org/p/ceilo-multi-identity componentisation / multi identity]&lt;br /&gt;
* 0950 - 1030: [https://etherpad.openstack.org/p/event_alarm event alarms]&lt;br /&gt;
* 1100 - 1140: [https://etherpad.openstack.org/p/liberty-ceilometer-pipeline-config pipeline configuration]&lt;br /&gt;
* 1150 - 1230: [https://etherpad.openstack.org/p/ceilo-declarative-notifications declarative notification meters]&lt;br /&gt;
* 1440 - 1520: [https://etherpad.openstack.org/p/YVR-ops-ceilometer ops followup]&lt;br /&gt;
* 1530 - 1610: [https://etherpad.openstack.org/p/ceilo-multi-identity componentization carry over]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;thursday:&lt;br /&gt;
* 0900 - 0940: [https://etherpad.openstack.org/p/liberty-ceilometer-meter-deprecation meter deprecation]&lt;br /&gt;
* 0950 - 1030: [https://etherpad.openstack.org/p/liberty-ceilometer-meter-event samples/events integration]&lt;br /&gt;
* 1100 - 1140: [https://etherpad.openstack.org/p/liberty-ceilometer-versioned-objects versioned objects]&lt;br /&gt;
* 1150 - 1230: ops followup&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;friday:&lt;br /&gt;
* 0900 - 1200: [https://etherpad.openstack.org/p/liberty-ceilometer-contributors-meetup contributor meetup]&lt;br /&gt;
&lt;br /&gt;
==Cinder==&lt;br /&gt;
==Designate==&lt;br /&gt;
==Documentation==&lt;br /&gt;
==Glance==&lt;br /&gt;
==Heat==&lt;br /&gt;
=== Wed ===&lt;br /&gt;
* 09:00 - 09:40: [https://etherpad.openstack.org/p/YVR-heat-liberty-convergence-1 (W) Finishing off Convergence phase 1]&lt;br /&gt;
* 09:50 - 10:30: [https://etherpad.openstack.org/p/YVR-heat-liberty-convergence-2 (W) Convergence phase 2 planning]&lt;br /&gt;
* 11:00 - 11:40: [https://etherpad.openstack.org/p/YVR-heat-liberty-testing (W) Functional and integration testing, identify gaps and suggest improvements]&lt;br /&gt;
* 11:50 - 12:30: [https://etherpad.openstack.org/p/YVR-heat-liberty-lifecycle-ops (W) Better support for lifecycle operations on (tripleo) heat stacks (upgrades etc)]&lt;br /&gt;
* 13:50 - 14:30: [https://etherpad.openstack.org/p/YVR-heat-liberty-client-usability (F) Heat client usability]&lt;br /&gt;
* 14:40 - 15:20: [https://etherpad.openstack.org/p/YVR-heat-liberty-template-format (F) Heat template format improvements]&lt;br /&gt;
* 15:30 - 16:10: [https://etherpad.openstack.org/p/YVR-heat-liberty-rest-api (F) REST API design and roadmap]&lt;br /&gt;
* 16:30 - 17:10: [https://etherpad.openstack.org/p/YVR-heat-liberty-senlin-autoscaling (F) Senlin Autoscaling Project - Deep Dive]&lt;br /&gt;
* 17:20 - 18:00: [https://etherpad.openstack.org/p/YVR-heat-liberty-containers (F) Orchestrating containers with Heat]&lt;br /&gt;
&lt;br /&gt;
=== Thu ===&lt;br /&gt;
* 09:00 - 09:40: [https://etherpad.openstack.org/p/YVR-heat-liberty-alembic (W) Migrating from sqlalchemy-migrations to alembic]&lt;br /&gt;
* 09:50 - 10:30: [https://etherpad.openstack.org/p/YVR-heat-liberty-versioned-objects (W) Future of Versioned objects in heat]&lt;br /&gt;
* 11:00 - 11:40: [https://etherpad.openstack.org/p/YVR-heat-liberty-autoscaling (W) Autoscaling improvements]&lt;br /&gt;
* 11:50 - 12:30: [https://etherpad.openstack.org/p/YVR-heat-liberty-deprecation (W) Our deprecation process]&lt;br /&gt;
* 16:10 - 16:50: [https://etherpad.openstack.org/p/YVR-heat-liberty-contrib-plugins (W) Moving most contrib plugins in-tree]&lt;br /&gt;
* 17:00 - 17:40: [https://etherpad.openstack.org/p/YVR-heat-liberty-resource-registering (W) Conditional registering of resources]&lt;br /&gt;
&lt;br /&gt;
=== Fri ===&lt;br /&gt;
* 09:00-12:20: [https://etherpad.openstack.org/p/YVR-heat-contributor-meetup Contributor Meetup]&lt;br /&gt;
&lt;br /&gt;
==Horizon==&lt;br /&gt;
==Infrastructure==&lt;br /&gt;
==Ironic==&lt;br /&gt;
==Keystone==&lt;br /&gt;
==Manila==&lt;br /&gt;
=== Wed ===&lt;br /&gt;
* 09:00 - 09:40: [https://etherpad.openstack.org/p/YVR-manila-liberty-mount-automation (F) Mount automation]&lt;br /&gt;
* 09:50 - 10:30: [https://etherpad.openstack.org/p/YVR-manila-liberty-share-migration (F) Share migration]&lt;br /&gt;
* 11:00 - 11:40: [https://etherpad.openstack.org/p/YVR-manila-liberty-share-replication (F) Share replication]&lt;br /&gt;
* 16:30 - 17:10: [https://etherpad.openstack.org/p/YVR-manila-liberty-working-session-1 (W) Working session 1]&lt;br /&gt;
* 17:20 - 18:00: [https://etherpad.openstack.org/p/YVR-manila-liberty-working-session-2 (W) Working session 2]&lt;br /&gt;
&lt;br /&gt;
==Neutron==&lt;br /&gt;
=== Tue ===&lt;br /&gt;
=== Wed ===&lt;br /&gt;
* 09:00 - 09:40: [https://etherpad.openstack.org/p/YVR-neutron-liberty-development Neutron Liberty Development]&lt;br /&gt;
* 09:50 - 10:30: [https://etherpad.openstack.org/p/YVR-neutron-use-case-discussion Neutron Use Case Discussion]&lt;br /&gt;
* 11:00 - 11:40: [https://etherpad.openstack.org/p/YVR-neutron-vlan-trunk VLAN Aware VMs]&lt;br /&gt;
* 11:50 - 12:30: Neutron Lightning Talks (no etherpad)&lt;br /&gt;
* 13:50 - 14:30: [https://etherpad.openstack.org/p/YVR-neutron-octavia Octavia]&lt;br /&gt;
* 14:40 - 15:20: [https://etherpad.openstack.org/p/YVR-neutron-opendaylight OpenDaylight]&lt;br /&gt;
* 15:30 - 16:10: [https://etherpad.openstack.org/p/YVR-neutron-ovn OVN]&lt;br /&gt;
* 16:30 - 17:10: [https://etherpad.openstack.org/p/YVR-neutron-ironic Ironic and Neutron integration]&lt;br /&gt;
* 17:20 - 18:00: [https://etherpad.openstack.org/p/YVR-neutron-get-me-a-network Get Me a Network!]&lt;br /&gt;
&lt;br /&gt;
=== Thu ===&lt;br /&gt;
* 09:00 - 09:40:  [https://etherpad.openstack.org/p/YVR-neutron-lbaas-use-cases Neutron LBaaS Use Cases]&lt;br /&gt;
* 09:50 - 10:30:  [https://etherpad.openstack.org/p/YVR-neutron-l3 Neutron L3]&lt;br /&gt;
* 11:00 - 11:40: [https://etherpad.openstack.org/p/YVR-neutron-qos QoS]&lt;br /&gt;
* 11:50 - 12:30: [https://etherpad.openstack.org/p/YVR-neutron-third-party-ci-liberty Third Party CI in Liberty and Beyond]&lt;br /&gt;
* 13:30 - 14:10: [https://etherpad.openstack.org/p/YVR-neutron-testing-in-liberty Testing In Liberty]&lt;br /&gt;
* 14:20 - 15:00: [https://etherpad.openstack.org/p/YVR-neutron-RBAC Neutron RBAC]&lt;br /&gt;
* 15:10 - 15:50: [https://etherpad.openstack.org/p/YVR-neutron-sg-fwaas-future-direction SG and FWaaS Future Directions]&lt;br /&gt;
* 16:10 - 16:50: [https://etherpad.openstack.org/p/YVR-neutron-nfv-enhancements Neutron NFV Enhancements]&lt;br /&gt;
=== Fri ===&lt;br /&gt;
* 09:00-12:20: [https://etherpad.openstack.org/p/YVR-neutron-contributor-meetup Contributor Meetup]&lt;br /&gt;
&lt;br /&gt;
==Nova==&lt;br /&gt;
&lt;br /&gt;
'''Wednesday:'''&lt;br /&gt;
&lt;br /&gt;
* 09:00 - 09:40: [https://etherpad.openstack.org/p/YVR-nova-scheduler-in-liberty Scheduler in Liberty]&lt;br /&gt;
* 09:50 - 10:30: [https://etherpad.openstack.org/p/YVR-nova-scalling-out-scheduler-for-cells Scaling out scheduler for cells ]&lt;br /&gt;
&lt;br /&gt;
* 11:00 - 11:40: [https://etherpad.openstack.org/p/YVR-nova-cells-v2 Cells v2]&lt;br /&gt;
* 11:50 - 12:30: [https://etherpad.openstack.org/p/YVR-nova-resource-tracker Resource Tracker, Clustered Hypervisors and NFV]&lt;br /&gt;
&lt;br /&gt;
* 13:50 - 14:30: [https://etherpad.openstack.org/p/YVR-nova-spec-blueprint-unconference Nova Spec/Blueprint Unconference]&lt;br /&gt;
* 14:40 - 15:20: [https://etherpad.openstack.org/p/YVR-nova-database-internals Database (part 1)]&lt;br /&gt;
* 15:30 - 16:10: [https://etherpad.openstack.org/p/YVR-nova-functional-testing-feature-classification Functional Testing and Feature Classification]&lt;br /&gt;
&lt;br /&gt;
* 16:30 - 17:10: [https://etherpad.openstack.org/p/YVR-nova-instance-ha-evacuate-resize Dealing with compute host failure: Instance HA, Evacuate, Resize]&lt;br /&gt;
* 17:20 - 18:00: [https://etherpad.openstack.org/p/YVR-nova-api-2.1-in-liberty Nova API v2.1 in Liberty]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
'''Thursday:'''&lt;br /&gt;
&lt;br /&gt;
* 09:00 - 09:40: [https://etherpad.openstack.org/p/YVR-nova-api-2.0-3rd-party Future of Nova API v2.0 and 3rd Party APIs]&lt;br /&gt;
* 09:50 - 10:30: [https://etherpad.openstack.org/p/YVR-nova-quotas-and-database Quotas and Database (part 2)]&lt;br /&gt;
&lt;br /&gt;
* 11:00 - 11:40: [https://etherpad.openstack.org/p/YVR-nova-flavors-and-image-properties Flavors and Image Properties]&lt;br /&gt;
* 11:50 - 12:30: [https://etherpad.openstack.org/p/YVR-nova-error-handling Error Handling]&lt;br /&gt;
&lt;br /&gt;
* 13:30 - 14:10: [https://etherpad.openstack.org/p/YVR-nova-spec-blueprint-unconference Nova Spec/Blueprint Unconference]&lt;br /&gt;
* 14:20 - 15:00: [https://etherpad.openstack.org/p/YVR-nova-liberty-priorities Liberty Priorities (part 1)]&lt;br /&gt;
* 15:10 - 15:50: [https://etherpad.openstack.org/p/YVR-nova-liberty-priorities Liberty Priorities (part 2)]&lt;br /&gt;
&lt;br /&gt;
* 16:10 - 16:50: [https://etherpad.openstack.org/p/YVR-nova-liberty-process Liberty Process and Scaling out Reviews]&lt;br /&gt;
* 17:00 - 17:40: [https://etherpad.openstack.org/p/YVR-nova-network Future of Nova's networking and nova-network]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
'''Friday:'''&lt;br /&gt;
&lt;br /&gt;
* 09:00 - 12:20 and 13:20 - 16:40: [https://etherpad.openstack.org/p/YVR-nova-contributor-meetup Nova Contributor Meetup]&lt;br /&gt;
&lt;br /&gt;
==Oslo==&lt;br /&gt;
&lt;br /&gt;
'''Wednesday:'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* 09:00 - 09:40: [https://etherpad.openstack.org/p/YVR-oslo-versioned-objects-intro (F) Get to know your objects and learn how to version them (an introduction to oslo.versionedobjects)!]&lt;br /&gt;
* 09:50 - 10:30: [https://etherpad.openstack.org/p/YVR-oslo-taskflow-plans (F) Give me liberty, or give me taskflow (come learn about taskflow liberty plans)!]&lt;br /&gt;
* 11:00 - 11:40: [https://etherpad.openstack.org/p/YVR-oslo-rootwrap-plans (W) Give me liberty, or give me wraps (the future of oslo.rootwrap) ]&lt;br /&gt;
* 11:50 - 12:30: [https://etherpad.openstack.org/p/YVR-oslo-functional-testing (W) The cost of liberty is less than the price of functional testing]&lt;br /&gt;
* 13:50 - 14:30: [https://etherpad.openstack.org/p/YVR-oslo-graduation-schedule (W) Give me more oslo in liberty or else! Schedule &amp;amp; new libraries]&lt;br /&gt;
* 14:40 - 15:20: [https://etherpad.openstack.org/p/YVR-oslo-messaging-zmq-status (F) State of zmq in oslo.messaging]&lt;br /&gt;
* 15:30 - 16:10: [https://etherpad.openstack.org/p/YVR-oslo-optional-dependencies (W) Emancipate/liberate your optional dependencies - Optional Dependencies]&lt;br /&gt;
* 16:30 - 17:10: [https://etherpad.openstack.org/p/YVR-oslo-release-process-review (W) Reviewing our release processes]&lt;br /&gt;
* 17:20 - 18:00: [https://etherpad.openstack.org/p/YVR-oslo-config-filter (W) Configuration Filters in oslo.config]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
'''Thursday:'''&lt;br /&gt;
&lt;br /&gt;
* 09:50 - 10:30: [https://etherpad.openstack.org/p/YVR-oslo-strategy-discussion (F) The oslo liberty proclamation (and associated strategy discussion)]&lt;br /&gt;
* 11:00 - 11:40: [https://etherpad.openstack.org/p/YVR-oslo-config-plans (F) Enfranchise oslo.config, let's discuss alternative data sources in oslo.config]&lt;br /&gt;
* 11:50 - 12:30: [https://etherpad.openstack.org/p/YVR-oslo-log-plans (W) Life, Liberty, and the pursuit of oslo.log changes]&lt;br /&gt;
* 13:30 - 14:10: [https://etherpad.openstack.org/p/YVR-oslo-versioned-objects-deep-dive (W) Deep dive on oslo.versionedobjects, bring your wet suits.]&lt;br /&gt;
* 14:20 - 15:00: [https://etherpad.openstack.org/p/YVR-oslo-db-plans (F) For a people who are free, and who mean to remain so, a well organized and armed 'oslo.db' is their best security]&lt;br /&gt;
* 15:10 - 15:50: [https://etherpad.openstack.org/p/YVR-oslo-asyncio (F) Event loops, coroutines, yield from, futures, a discussion on asyncio (and triollus?)]&lt;br /&gt;
* 16:10 - 16:50: [https://etherpad.openstack.org/p/YVR-oslo-messaging-plans (F) Ping pong, oslo.messaging plans for liberty.]&lt;br /&gt;
* 17:00 - 17:40: [https://etherpad.openstack.org/p/YVR-oslo-tech-debt-deprecation (F) How to clean up your tech-debt; let's discuss best practices on how to deprecate things in oslo libraries]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==QA==&lt;br /&gt;
&lt;br /&gt;
=== Wed. ===&lt;br /&gt;
&lt;br /&gt;
* 1150-1230 - [https://etherpad.openstack.org/p/YVR-QA-testing-beyond-the-gate Testing beyond the gate]&lt;br /&gt;
* 1350-1430 - [https://etherpad.openstack.org/p/YVR-QA-Devstack-Roadmap Devstack Roadmap]&lt;br /&gt;
* 1440-1520 - [https://etherpad.openstack.org/p/YVR-QA-Tempest-service-clients Work Session: Tempest service clients]&lt;br /&gt;
* 1630-1710 - [https://etherpad.openstack.org/p/YVR-QA-in-the-big-tent QA in the Big Tent]&lt;br /&gt;
&lt;br /&gt;
=== Thurs. ===&lt;br /&gt;
* 0900-0940 - [https://etherpad.openstack.org/p/YVR-QA-idempotent-id Work Session: Idempotent ID]&lt;br /&gt;
* 1330-1410 - [https://etherpad.openstack.org/p/YVR-QA-Tempest-as-a-system-program Work Session: Tempest as System Program]&lt;br /&gt;
* 1420-1500 - [https://etherpad.openstack.org/p/YVR-QA-Tempest-CLI Work Session: Tempest CLI and Tempest Cleanup]&lt;br /&gt;
* 1610-1650 - [https://etherpad.openstack.org/p/YVR-QA-Tempest-Scope-Revisited Tempest Scope Revisited]&lt;br /&gt;
* 1700-1740 - [https://etherpad.openstack.org/p/YVR-QA-Liberty-Priorities Liberty Priorities]&lt;br /&gt;
&lt;br /&gt;
==Release Management==&lt;br /&gt;
* Wed 17:20-18:00: [https://etherpad.openstack.org/p/YVR-relmgt-stable-branch Stable branch]&lt;br /&gt;
* Thu 11:00-11:40 [https://etherpad.openstack.org/p/YVR-relmgt-library-releases Work session: Library releases]&lt;br /&gt;
&lt;br /&gt;
==Sahara==&lt;br /&gt;
&lt;br /&gt;
=== Wed ===&lt;br /&gt;
&lt;br /&gt;
* 11:00am (W) HA http://etherpad.openstack.org/p/sahara-liberty-ha&lt;br /&gt;
* 11:50am (W) API v2 https://etherpad.openstack.org/p/sahara-liberty-api-v2&lt;br /&gt;
&lt;br /&gt;
=== Thu ===&lt;br /&gt;
&lt;br /&gt;
* 1:30pm (F) UI https://etherpad.openstack.org/p/sahara-liberty-ui&lt;br /&gt;
* 2:20pm (F) Security https://etherpad.openstack.org/p/sahara-liberty-security&lt;br /&gt;
* 3:10pm (W) EDP https://etherpad.openstack.org/p/sahara-liberty-edp&lt;br /&gt;
* 4:10pm (W) Resources Visibility/ACL https://etherpad.openstack.org/p/sahara-liberty-resources&lt;br /&gt;
* 5:00pm (W) Plugins https://etherpad.openstack.org/p/sahara-liberty-plugins&lt;br /&gt;
&lt;br /&gt;
=== Fri ===&lt;br /&gt;
&lt;br /&gt;
* 9am - 4:40pm Meetup https://etherpad.openstack.org/p/sahara-liberty-meetup&lt;br /&gt;
&lt;br /&gt;
==Swift==&lt;br /&gt;
==TripleO==&lt;br /&gt;
&lt;br /&gt;
==Trove==&lt;br /&gt;
==Zaqar==&lt;br /&gt;
==Other Projects==&lt;br /&gt;
==Event intro/closure==&lt;br /&gt;
==Ops==&lt;br /&gt;
Tuesday:&lt;br /&gt;
* https://etherpad.openstack.org/p/YVR-ops-101&lt;br /&gt;
* https://etherpad.openstack.org/p/YVR-ops-federation&lt;br /&gt;
* https://etherpad.openstack.org/p/YVR-ops-rabbitmq&lt;br /&gt;
* https://etherpad.openstack.org/p/YVR-ops-logging&lt;br /&gt;
* https://etherpad.openstack.org/p/YVR-ops-arch-show-tell&lt;br /&gt;
* https://etherpad.openstack.org/p/YVR-ops-ceilometer&lt;br /&gt;
* https://etherpad.openstack.org/p/YVR-ops-billing&lt;br /&gt;
* https://etherpad.openstack.org/p/YVR-ops-cinder&lt;br /&gt;
* https://etherpad.openstack.org/p/YVR-ops-legacy-apps&lt;br /&gt;
* https://etherpad.openstack.org/p/YVR-ops-user-committee&lt;br /&gt;
* https://etherpad.openstack.org/p/YVR-ops-hypervisor-tuning&lt;br /&gt;
* https://etherpad.openstack.org/p/YVR-ops-security&lt;br /&gt;
* https://etherpad.openstack.org/p/YVR-ops-deployment&lt;br /&gt;
* https://etherpad.openstack.org/p/YVR-ops-database&lt;br /&gt;
* https://etherpad.openstack.org/p/YVR-ops-evangelism&lt;br /&gt;
* https://etherpad.openstack.org/p/YVR-ops-multi-site&lt;br /&gt;
* https://etherpad.openstack.org/p/YVR-ops-nova&lt;br /&gt;
* https://etherpad.openstack.org/p/YVR-ops-customer-onboarding&lt;br /&gt;
* https://etherpad.openstack.org/p/YVR-ops-containers&lt;br /&gt;
* https://etherpad.openstack.org/p/YVR-ops-neutron&lt;br /&gt;
&lt;br /&gt;
Wednesday:&lt;br /&gt;
* https://etherpad.openstack.org/p/YVR-ops-telco&lt;br /&gt;
* https://etherpad.openstack.org/p/YVR-ops-puppet&lt;br /&gt;
* https://etherpad.openstack.org/p/YVR-ops-chef&lt;br /&gt;
* https://etherpad.openstack.org/p/YVR-ops-hpc&lt;br /&gt;
* https://etherpad.openstack.org/p/YVR-ops-tools&lt;br /&gt;
* https://etherpad.openstack.org/p/YVR-ops-ansible&lt;br /&gt;
* https://etherpad.openstack.org/p/YVR-ops-ceph&lt;br /&gt;
* https://etherpad.openstack.org/p/YVR-ops-tags&lt;br /&gt;
* https://etherpad.openstack.org/p/YVR-ops-large-deployments&lt;br /&gt;
* https://etherpad.openstack.org/p/YVR-ops-burning-issues&lt;br /&gt;
* https://etherpad.openstack.org/p/YVR-ops-docs&lt;br /&gt;
* https://etherpad.openstack.org/p/YVR-ops-tech-choices&lt;br /&gt;
* https://etherpad.openstack.org/p/YVR-ops-cmdb&lt;br /&gt;
* https://etherpad.openstack.org/p/YVR-ops-data-plane-transitions&lt;br /&gt;
* https://etherpad.openstack.org/p/YVR-ops-upgrades&lt;br /&gt;
* https://etherpad.openstack.org/p/YVR-ops-packaging&lt;br /&gt;
* https://etherpad.openstack.org/p/YVR-ops-nova-network&lt;/div&gt;</summary>
		<author><name>Clinton Knight</name></author>	</entry>

	</feed>