From c112a4115171ef0f5d4e559ab1338593493c9c3b Mon Sep 17 00:00:00 2001
From: Yulia Portnova <yportnova@mirantis.com>
Date: Wed, 4 Sep 2013 10:15:04 +0300
Subject: [PATCH] volume api removed

---
 .idea/workspace.xml                           | 1383 +++++------------
 manila/api/contrib/admin_actions.py           |  174 ---
 .../contrib/extended_snapshot_attributes.py   |  125 --
 manila/api/contrib/hosts.py                   |  265 ----
 manila/api/contrib/types_extra_specs.py       |  162 --
 manila/api/contrib/types_manage.py            |  122 --
 manila/api/contrib/volume_actions.py          |  204 ---
 manila/api/contrib/volume_host_attribute.py   |   93 --
 manila/api/contrib/volume_image_metadata.py   |  106 --
 manila/api/contrib/volume_tenant_attribute.py |   91 --
 manila/api/v1/router.py                       |   48 -
 manila/api/v1/snapshot_metadata.py            |  164 --
 manila/api/v1/snapshots.py                    |  234 ---
 manila/api/v1/types.py                        |   80 -
 manila/api/v1/volume_metadata.py              |  164 --
 manila/api/v1/volumes.py                      |  421 -----
 manila/api/v2/router.py                       |   25 +-
 manila/api/v2/snapshot_metadata.py            |  164 --
 manila/api/v2/snapshots.py                    |  257 ---
 manila/api/v2/types.py                        |   80 -
 manila/api/v2/views/volumes.py                |  122 --
 manila/api/v2/volumes.py                      |  362 -----
 manila/api/views/types.py                     |   34 -
 23 files changed, 423 insertions(+), 4457 deletions(-)
 delete mode 100644 manila/api/contrib/admin_actions.py
 delete mode 100644 manila/api/contrib/extended_snapshot_attributes.py
 delete mode 100644 manila/api/contrib/hosts.py
 delete mode 100644 manila/api/contrib/types_extra_specs.py
 delete mode 100644 manila/api/contrib/types_manage.py
 delete mode 100644 manila/api/contrib/volume_actions.py
 delete mode 100644 manila/api/contrib/volume_host_attribute.py
 delete mode 100644 manila/api/contrib/volume_image_metadata.py
 delete mode 100644 manila/api/contrib/volume_tenant_attribute.py
 delete mode 100644 manila/api/v1/snapshot_metadata.py
 delete mode 100644 manila/api/v1/snapshots.py
 delete mode 100644 manila/api/v1/types.py
 delete mode 100644 manila/api/v1/volume_metadata.py
 delete mode 100644 manila/api/v1/volumes.py
 delete mode 100644 manila/api/v2/snapshot_metadata.py
 delete mode 100644 manila/api/v2/snapshots.py
 delete mode 100644 manila/api/v2/types.py
 delete mode 100644 manila/api/v2/views/volumes.py
 delete mode 100644 manila/api/v2/volumes.py
 delete mode 100644 manila/api/views/types.py

diff --git a/.idea/workspace.xml b/.idea/workspace.xml
index 2b85114393..a3de0fec7e 100644
--- a/.idea/workspace.xml
+++ b/.idea/workspace.xml
@@ -2,814 +2,113 @@
 <project version="4">
   <component name="ChangeListManager">
     <list default="true" id="1b1c7685-def3-415f-9322-bbcb3d480c5d" name="Default" comment="">
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/db/sqlalchemy/migrate_repo/versions/001_cinder_init.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/db/sqlalchemy/migrate_repo/versions/002_quota_class.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/db/sqlalchemy/migrate_repo/versions/003_glance_metadata.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/db/sqlalchemy/migrate_repo/versions/004_volume_type_to_uuid.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/db/sqlalchemy/migrate_repo/versions/005_add_source_volume_column.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/db/sqlalchemy/migrate_repo/versions/008_add_backup.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/db/sqlalchemy/migrate_repo/versions/009_add_snapshot_metadata_table.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/db/sqlalchemy/migrate_repo/versions/010_add_share_tables.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/db/sqlalchemy/migrate_repo/versions/011_add_share_snapshot_table.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/__init__.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/api/__init__.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/api/contrib/__init__.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/api/openstack/__init__.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/api/openstack/volume/__init__.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/backup/__init__.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/db/__init__.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/openstack/common/rpc/__init__.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/openstack/common/scheduler/filters/__init__.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/openstack/common/scheduler/weights/__init__.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/scheduler/__init__.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/share/__init__.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/share/drivers/__init__.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/tests/__init__.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/tests/api/__init__.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/tests/api/contrib/__init__.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/tests/api/openstack/__init__.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/tests/image/__init__.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/tests/integrated/__init__.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/tests/scheduler/__init__.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/volume/__init__.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/volume/drivers/__init__.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/volume/drivers/san/__init__.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/api/contrib/admin_actions.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/openstack/common/rpc/amqp.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/backup/api.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/db/api.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/db/sqlalchemy/api.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/openstack/common/notifier/api.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/share/api.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/volume/api.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/volume/drivers/netapp/api.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/api/auth.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/api/middleware/auth.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/openstack/common/scheduler/filters/availability_zone_filter.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/api/contrib/backups.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/api/views/backups.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/db/base.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/tests/windows/basetestcase.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/openstack/common/scheduler/filters/capabilities_filter.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/scheduler/weights/capacity.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/scheduler/filters/capacity_filter.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/scheduler/chance.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/locale/bg_BG/LC_MESSAGES/cinder.po" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/locale/bs/LC_MESSAGES/cinder.po" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/locale/cs/LC_MESSAGES/cinder.po" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/locale/da/LC_MESSAGES/cinder.po" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/locale/de/LC_MESSAGES/cinder.po" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/locale/en_AU/LC_MESSAGES/cinder.po" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/locale/en_GB/LC_MESSAGES/cinder.po" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/locale/en_US/LC_MESSAGES/cinder.po" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/locale/es/LC_MESSAGES/cinder.po" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/locale/fi_FI/LC_MESSAGES/cinder.po" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/locale/fr/LC_MESSAGES/cinder.po" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/locale/it/LC_MESSAGES/cinder.po" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/locale/ja/LC_MESSAGES/cinder.po" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/locale/ko/LC_MESSAGES/cinder.po" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/locale/ko_KR/LC_MESSAGES/cinder.po" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/locale/pt_BR/LC_MESSAGES/cinder.po" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/locale/ru/LC_MESSAGES/cinder.po" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/locale/tl/LC_MESSAGES/cinder.po" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/locale/tr/LC_MESSAGES/cinder.po" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/locale/uk/LC_MESSAGES/cinder.po" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/locale/vi_VN/LC_MESSAGES/cinder.po" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/locale/zh_CN/LC_MESSAGES/cinder.po" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/locale/zh_TW/LC_MESSAGES/cinder.po" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/tests/integrated/api/client.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/openstack/common/rootwrap/cmd.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/api/common.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/openstack/common/rpc/common.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/share/configuration.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/volume/configuration.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/context.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/volume/drivers/coraid.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/tests/declare_flags.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/openstack/common/rpc/dispatcher.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/scheduler/driver.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/share/driver.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/volume/driver.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/volume/drivers/emc/emc_smis_common.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/volume/drivers/emc/emc_smis_iscsi.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/exception.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/openstack/common/exception.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/openstack/common/excutils.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/api/contrib/extended_snapshot_attributes.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/api/extensions.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/openstack/common/scheduler/filters/extra_specs_ops.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/tests/image/fake.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/tests/fake_driver.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/tests/fake_flags.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/tests/backup/fake_service.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/tests/backup/fake_swift_client.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/tests/fake_utils.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/tests/api/fakes.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/tests/db/fakes.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/tests/scheduler/fakes.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/api/middleware/fault.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/scheduler/filter_scheduler.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/flags.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/tests/api/extensions/foxinsocks.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/openstack/common/gettextutils.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/image/glance.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/volume/drivers/glusterfs.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/scheduler/host_manager.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/api/contrib/hosts.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/volume/drivers/san/hp/hp_3par_common.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/volume/drivers/san/hp/hp_3par_fc.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/volume/drivers/san/hp/hp_3par_iscsi.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/volume/drivers/san/hp_lefthand.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/volume/drivers/huawei/huawei_iscsi.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/api/contrib/image_create.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/image/image_utils.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/openstack/common/rpc/impl_fake.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/openstack/common/rpc/impl_kombu.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/openstack/common/rpc/impl_qpid.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/openstack/common/rpc/impl_zmq.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/tests/integrated/integrated_helpers.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/brick/iscsi/iscsi.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/volume/drivers/netapp/iscsi.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/openstack/common/scheduler/filters/json_filter.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/volume/drivers/nexenta/jsonrpc.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/openstack/common/jsonutils.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/volume/drivers/xenapi/lib.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/api/v1/limits.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/api/v2/limits.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/api/views/limits.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/openstack/common/lockutils.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/openstack/common/log.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/openstack/common/notifier/log_notifier.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/openstack/common/loopingcall.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/brick/local_dev/lvm.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/share/drivers/lvm.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/volume/drivers/lvm.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/manager.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/backup/manager.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/scheduler/manager.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/share/manager.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/volume/manager.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/bin/manila-all" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/bin/manila-api" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/bin/manila-backup" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/bin/manila-clear-rabbit-queues" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/bin/manila-manage" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/bin/manila-rootwrap" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/bin/manila-rpc-zmq-receiver" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/bin/manila-scheduler" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/bin/manila-share" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/bin/manila-volume-usage-audit" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/bin/manila-volume" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/openstack/common/rpc/matchmaker.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/openstack/common/rpc/matchmaker_redis.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/db/migration.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/db/sqlalchemy/migration.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/db/sqlalchemy/models.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/share/drivers/netapp.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/volume/drivers/nfs.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/volume/drivers/netapp/nfs.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/policy.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/openstack/common/policy.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/openstack/common/processutils.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/openstack/common/rpc/proxy.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/quota.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/api/contrib/quota_classes.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/api/contrib/quotas.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/openstack/common/notifier/rabbit_notifier.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/volume/drivers/rbd.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/scheduler/filters/retry_filter.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/api/v1/router.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/api/v2/router.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/openstack/common/notifier/rpc_notifier.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/openstack/common/notifier/rpc_notifier2.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/backup/rpcapi.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/scheduler/rpcapi.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/share/rpcapi.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/volume/rpcapi.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/tests/runtime_flags.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/volume/drivers/san/san.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/volume/drivers/scality.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/scheduler/scheduler_options.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/service.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/openstack/common/service.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/openstack/common/rpc/service.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/api/contrib/services.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/db/sqlalchemy/session.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/api/contrib/share_actions.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/api/contrib/share_snapshots.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/api/views/share_snapshots.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/api/contrib/shares.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/api/views/shares.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/volume/drivers/sheepdog.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/scheduler/simple.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/api/sizelimit.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/api/middleware/sizelimit.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/volume/drivers/xenapi/sm.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/api/v1/snapshot_metadata.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/api/v2/snapshot_metadata.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/api/v1/snapshots.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/api/v2/snapshots.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/volume/drivers/san/solaris.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/volume/drivers/solidfire.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/common/sqlalchemyutils.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/volume/drivers/storwize_svc.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/openstack/common/strutils.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/tests/api/contrib/stubs.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/tests/api/v1/stubs.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/tests/api/v2/stubs.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/backup/services/swift.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/test.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/tests/test_HpSanISCSIDriver.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/tests/api/contrib/test_admin_actions.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/tests/api/middleware/test_auth.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/tests/test_backup.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/tests/test_backup_swift.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/tests/api/contrib/test_backups.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/tests/brick/test_brick_lvm.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/tests/scheduler/test_capacity_weigher.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/tests/api/test_common.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/tests/test_context.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/tests/test_coraid.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/tests/test_drivers_compatibility.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/tests/test_emc.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/tests/test_exception.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/tests/api/contrib/test_extended_snapshot_attributes.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/tests/api/test_extensions.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/tests/integrated/test_extensions.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/tests/api/middleware/test_faults.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/tests/scheduler/test_filter_scheduler.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/tests/test_flags.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/tests/image/test_glance.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/tests/test_glusterfs.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/tests/scheduler/test_host_filters.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/tests/scheduler/test_host_manager.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/tests/api/contrib/test_hosts.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/tests/test_hp3par.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/tests/test_huawei.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/tests/test_iscsi.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/tests/api/v1/test_limits.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/tests/api/v2/test_limits.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/tests/integrated/test_login.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/tests/test_migrations.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/tests/test_misc.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/tests/test_netapp.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/tests/test_netapp_nfs.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/tests/test_nexenta.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/tests/test_nfs.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/tests/test_policy.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/tests/test_quota.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/tests/test_rbd.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/tests/api/test_router.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/tests/scheduler/test_rpcapi.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/tests/test_scality.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/tests/scheduler/test_scheduler.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/tests/scheduler/test_scheduler_options.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/tests/test_service.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/tests/api/contrib/test_services.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/tests/test_share.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/tests/api/contrib/test_share_actions.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/tests/test_share_api.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/tests/test_share_driver.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/tests/test_share_lvm.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/tests/test_share_netapp.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/tests/test_share_rpcapi.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/tests/api/contrib/test_share_snapshots.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/tests/api/contrib/test_shares.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/tests/test_sheepdog.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/tests/api/middleware/test_sizelimit.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/tests/test_skip_examples.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/tests/api/v1/test_snapshot_metadata.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/tests/api/v2/test_snapshot_metadata.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/tests/api/v1/test_snapshots.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/tests/api/v2/test_snapshots.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/tests/test_solidfire.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/tests/test_storwize_svc.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/tests/test_test.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/tests/test_test_utils.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/tests/api/v1/test_types.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/tests/api/v2/test_types.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/tests/api/contrib/test_types_extra_specs.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/tests/api/contrib/test_types_manage.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/tests/test_utils.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/tests/test_volume.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/tests/api/contrib/test_volume_actions.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/tests/test_volume_configuration.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/tests/test_volume_glance_metadata.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/tests/api/contrib/test_volume_host_attribute.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/tests/api/contrib/test_volume_image_metadata.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/tests/api/v1/test_volume_metadata.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/tests/test_volume_rpcapi.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/tests/api/contrib/test_volume_tenant_attribute.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/tests/test_volume_types.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/tests/test_volume_types_extra_specs.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/tests/test_volume_utils.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/tests/api/v1/test_volumes.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/tests/api/v2/test_volumes.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/tests/integrated/test_volumes.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/tests/test_windows.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/tests/test_wsgi.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/tests/api/test_wsgi.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/tests/api/openstack/test_wsgi.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/tests/test_xenapi_sm.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/tests/test_xiv.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/tests/integrated/test_xml.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/tests/api/test_xmlutil.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/tests/test_zadara.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/openstack/common/threadgroup.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/api/v1/types.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/api/v2/types.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/api/views/types.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/api/contrib/types_extra_specs.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/api/contrib/types_manage.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/api/urlmap.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/api/openstack/urlmap.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/utils.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/tests/utils.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/volume/utils.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/version.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/api/versions.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/api/openstack/volume/versions.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/volume/drivers/nexenta/volume.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/api/contrib/volume_actions.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/api/contrib/volume_host_attribute.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/api/contrib/volume_image_metadata.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/api/v1/volume_metadata.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/api/contrib/volume_tenant_attribute.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/volume/volume_types.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/api/v1/volumes.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/api/v2/volumes.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/api/v2/views/volumes.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/volume/drivers/windows.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/tests/windows/windowsutils.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/openstack/common/rootwrap/wrapper.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/wsgi.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/api/openstack/wsgi.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/volume/drivers/xiv.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/api/xmlutil.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/volume/drivers/zadara.py" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/manila/openstack/common/rpc/zmq_receiver.py" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/bin/cinder-all" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/bin/cinder-api" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/bin/cinder-backup" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/bin/cinder-clear-rabbit-queues" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/bin/cinder-manage" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/bin/cinder-rootwrap" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/bin/cinder-rpc-zmq-receiver" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/bin/cinder-scheduler" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/bin/cinder-share" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/bin/cinder-volume" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/bin/cinder-volume-usage-audit" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/__init__.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/api/__init__.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/api/auth.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/api/common.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/api/contrib/__init__.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/api/contrib/admin_actions.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/api/contrib/backups.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/api/contrib/extended_snapshot_attributes.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/api/contrib/hosts.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/api/contrib/image_create.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/api/contrib/quota_classes.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/api/contrib/quotas.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/api/contrib/services.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/api/contrib/share_actions.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/api/contrib/share_snapshots.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/api/contrib/shares.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/api/contrib/types_extra_specs.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/api/contrib/types_manage.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/api/contrib/volume_actions.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/api/contrib/volume_host_attribute.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/api/contrib/volume_image_metadata.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/api/contrib/volume_tenant_attribute.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/api/extensions.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/api/middleware/auth.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/api/middleware/fault.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/api/middleware/sizelimit.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/api/openstack/__init__.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/api/openstack/urlmap.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/api/openstack/volume/__init__.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/api/openstack/volume/versions.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/api/openstack/wsgi.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/api/sizelimit.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/api/urlmap.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/api/v1/limits.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/api/v1/router.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/api/v1/snapshot_metadata.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/api/v1/snapshots.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/api/v1/types.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/api/v1/volume_metadata.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/api/v1/volumes.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/api/v2/limits.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/api/v2/router.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/api/v2/snapshot_metadata.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/api/v2/snapshots.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/api/v2/types.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/api/v2/views/volumes.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/api/v2/volumes.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/api/versions.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/api/views/backups.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/api/views/limits.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/api/views/share_snapshots.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/api/views/shares.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/api/views/types.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/api/xmlutil.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/backup/__init__.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/backup/api.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/backup/manager.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/backup/rpcapi.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/backup/services/swift.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/brick/iscsi/iscsi.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/brick/local_dev/lvm.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/common/sqlalchemyutils.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/context.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/db/__init__.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/db/api.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/db/base.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/db/migration.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/db/sqlalchemy/api.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/db/sqlalchemy/migrate_repo/versions/001_cinder_init.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/db/sqlalchemy/migrate_repo/versions/002_quota_class.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/db/sqlalchemy/migrate_repo/versions/003_glance_metadata.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/db/sqlalchemy/migrate_repo/versions/004_volume_type_to_uuid.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/db/sqlalchemy/migrate_repo/versions/005_add_source_volume_column.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/db/sqlalchemy/migrate_repo/versions/008_add_backup.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/db/sqlalchemy/migrate_repo/versions/009_add_snapshot_metadata_table.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/db/sqlalchemy/migrate_repo/versions/010_add_share_tables.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/db/sqlalchemy/migrate_repo/versions/011_add_share_snapshot_table.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/db/sqlalchemy/migration.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/db/sqlalchemy/models.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/db/sqlalchemy/session.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/exception.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/flags.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/image/glance.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/image/image_utils.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/locale/bg_BG/LC_MESSAGES/cinder.po" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/locale/bs/LC_MESSAGES/cinder.po" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/locale/cs/LC_MESSAGES/cinder.po" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/locale/da/LC_MESSAGES/cinder.po" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/locale/de/LC_MESSAGES/cinder.po" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/locale/en_AU/LC_MESSAGES/cinder.po" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/locale/en_GB/LC_MESSAGES/cinder.po" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/locale/en_US/LC_MESSAGES/cinder.po" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/locale/es/LC_MESSAGES/cinder.po" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/locale/fi_FI/LC_MESSAGES/cinder.po" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/locale/fr/LC_MESSAGES/cinder.po" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/locale/it/LC_MESSAGES/cinder.po" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/locale/ja/LC_MESSAGES/cinder.po" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/locale/ko/LC_MESSAGES/cinder.po" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/locale/ko_KR/LC_MESSAGES/cinder.po" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/locale/pt_BR/LC_MESSAGES/cinder.po" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/locale/ru/LC_MESSAGES/cinder.po" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/locale/tl/LC_MESSAGES/cinder.po" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/locale/tr/LC_MESSAGES/cinder.po" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/locale/uk/LC_MESSAGES/cinder.po" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/locale/vi_VN/LC_MESSAGES/cinder.po" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/locale/zh_CN/LC_MESSAGES/cinder.po" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/locale/zh_TW/LC_MESSAGES/cinder.po" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/manager.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/openstack/common/exception.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/openstack/common/excutils.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/openstack/common/gettextutils.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/openstack/common/jsonutils.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/openstack/common/lockutils.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/openstack/common/log.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/openstack/common/loopingcall.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/openstack/common/notifier/api.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/openstack/common/notifier/log_notifier.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/openstack/common/notifier/rabbit_notifier.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/openstack/common/notifier/rpc_notifier.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/openstack/common/notifier/rpc_notifier2.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/openstack/common/policy.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/openstack/common/processutils.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/openstack/common/rootwrap/cmd.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/openstack/common/rootwrap/wrapper.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/openstack/common/rpc/__init__.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/openstack/common/rpc/amqp.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/openstack/common/rpc/common.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/openstack/common/rpc/dispatcher.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/openstack/common/rpc/impl_fake.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/openstack/common/rpc/impl_kombu.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/openstack/common/rpc/impl_qpid.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/openstack/common/rpc/impl_zmq.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/openstack/common/rpc/matchmaker.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/openstack/common/rpc/matchmaker_redis.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/openstack/common/rpc/proxy.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/openstack/common/rpc/service.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/openstack/common/rpc/zmq_receiver.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/openstack/common/scheduler/filters/__init__.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/openstack/common/scheduler/filters/availability_zone_filter.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/openstack/common/scheduler/filters/capabilities_filter.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/openstack/common/scheduler/filters/extra_specs_ops.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/openstack/common/scheduler/filters/json_filter.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/openstack/common/scheduler/weights/__init__.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/openstack/common/service.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/openstack/common/strutils.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/openstack/common/threadgroup.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/policy.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/quota.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/scheduler/__init__.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/scheduler/chance.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/scheduler/driver.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/scheduler/filter_scheduler.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/scheduler/filters/capacity_filter.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/scheduler/filters/retry_filter.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/scheduler/host_manager.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/scheduler/manager.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/scheduler/rpcapi.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/scheduler/scheduler_options.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/scheduler/simple.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/scheduler/weights/capacity.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/service.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/share/__init__.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/share/api.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/share/configuration.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/share/driver.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/share/drivers/__init__.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/share/drivers/lvm.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/share/drivers/netapp.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/share/manager.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/share/rpcapi.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/test.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/tests/__init__.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/tests/api/__init__.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/tests/api/contrib/__init__.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/tests/api/contrib/stubs.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/tests/api/contrib/test_admin_actions.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/tests/api/contrib/test_backups.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/tests/api/contrib/test_extended_snapshot_attributes.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/tests/api/contrib/test_hosts.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/tests/api/contrib/test_services.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/tests/api/contrib/test_share_actions.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/tests/api/contrib/test_share_snapshots.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/tests/api/contrib/test_shares.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/tests/api/contrib/test_types_extra_specs.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/tests/api/contrib/test_types_manage.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/tests/api/contrib/test_volume_actions.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/tests/api/contrib/test_volume_host_attribute.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/tests/api/contrib/test_volume_image_metadata.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/tests/api/contrib/test_volume_tenant_attribute.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/tests/api/extensions/foxinsocks.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/tests/api/fakes.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/tests/api/middleware/test_auth.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/tests/api/middleware/test_faults.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/tests/api/middleware/test_sizelimit.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/tests/api/openstack/__init__.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/tests/api/openstack/test_wsgi.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/tests/api/test_common.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/tests/api/test_extensions.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/tests/api/test_router.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/tests/api/test_wsgi.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/tests/api/test_xmlutil.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/tests/api/v1/stubs.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/tests/api/v1/test_limits.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/tests/api/v1/test_snapshot_metadata.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/tests/api/v1/test_snapshots.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/tests/api/v1/test_types.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/tests/api/v1/test_volume_metadata.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/tests/api/v1/test_volumes.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/tests/api/v2/stubs.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/tests/api/v2/test_limits.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/tests/api/v2/test_snapshot_metadata.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/tests/api/v2/test_snapshots.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/tests/api/v2/test_types.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/tests/api/v2/test_volumes.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/tests/backup/fake_service.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/tests/backup/fake_swift_client.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/tests/brick/test_brick_lvm.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/tests/db/fakes.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/tests/declare_flags.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/tests/fake_driver.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/tests/fake_flags.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/tests/fake_utils.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/tests/image/__init__.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/tests/image/fake.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/tests/image/test_glance.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/tests/integrated/__init__.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/tests/integrated/api/client.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/tests/integrated/integrated_helpers.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/tests/integrated/test_extensions.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/tests/integrated/test_login.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/tests/integrated/test_volumes.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/tests/integrated/test_xml.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/tests/runtime_flags.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/tests/scheduler/__init__.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/tests/scheduler/fakes.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/tests/scheduler/test_capacity_weigher.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/tests/scheduler/test_filter_scheduler.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/tests/scheduler/test_host_filters.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/tests/scheduler/test_host_manager.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/tests/scheduler/test_rpcapi.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/tests/scheduler/test_scheduler.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/tests/scheduler/test_scheduler_options.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/tests/test_HpSanISCSIDriver.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/tests/test_backup.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/tests/test_backup_swift.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/tests/test_context.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/tests/test_coraid.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/tests/test_drivers_compatibility.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/tests/test_emc.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/tests/test_exception.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/tests/test_flags.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/tests/test_glusterfs.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/tests/test_hp3par.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/tests/test_huawei.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/tests/test_iscsi.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/tests/test_migrations.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/tests/test_misc.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/tests/test_netapp.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/tests/test_netapp_nfs.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/tests/test_nexenta.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/tests/test_nfs.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/tests/test_policy.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/tests/test_quota.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/tests/test_rbd.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/tests/test_scality.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/tests/test_service.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/tests/test_share.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/tests/test_share_api.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/tests/test_share_driver.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/tests/test_share_lvm.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/tests/test_share_netapp.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/tests/test_share_rpcapi.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/tests/test_sheepdog.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/tests/test_skip_examples.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/tests/test_solidfire.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/tests/test_storwize_svc.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/tests/test_test.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/tests/test_test_utils.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/tests/test_utils.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/tests/test_volume.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/tests/test_volume_configuration.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/tests/test_volume_glance_metadata.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/tests/test_volume_rpcapi.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/tests/test_volume_types.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/tests/test_volume_types_extra_specs.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/tests/test_volume_utils.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/tests/test_windows.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/tests/test_wsgi.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/tests/test_xenapi_sm.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/tests/test_xiv.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/tests/test_zadara.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/tests/utils.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/tests/windows/basetestcase.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/tests/windows/windowsutils.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/utils.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/version.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/volume/__init__.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/volume/api.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/volume/configuration.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/volume/driver.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/volume/drivers/__init__.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/volume/drivers/coraid.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/volume/drivers/emc/emc_smis_common.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/volume/drivers/emc/emc_smis_iscsi.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/volume/drivers/glusterfs.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/volume/drivers/huawei/huawei_iscsi.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/volume/drivers/lvm.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/volume/drivers/netapp/api.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/volume/drivers/netapp/iscsi.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/volume/drivers/netapp/nfs.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/volume/drivers/nexenta/jsonrpc.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/volume/drivers/nexenta/volume.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/volume/drivers/nfs.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/volume/drivers/rbd.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/volume/drivers/san/__init__.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/volume/drivers/san/hp/hp_3par_common.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/volume/drivers/san/hp/hp_3par_fc.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/volume/drivers/san/hp/hp_3par_iscsi.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/volume/drivers/san/hp_lefthand.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/volume/drivers/san/san.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/volume/drivers/san/solaris.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/volume/drivers/scality.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/volume/drivers/sheepdog.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/volume/drivers/solidfire.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/volume/drivers/storwize_svc.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/volume/drivers/windows.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/volume/drivers/xenapi/lib.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/volume/drivers/xenapi/sm.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/volume/drivers/xiv.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/volume/drivers/zadara.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/volume/manager.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/volume/rpcapi.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/volume/utils.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/volume/volume_types.py" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/cinder/wsgi.py" afterPath="" />
-      <change type="MOVED" beforePath="$PROJECT_DIR$/cinder/api/middleware/__init__.py" afterPath="$PROJECT_DIR$/manila/api/middleware/__init__.py" />
-      <change type="MOVED" beforePath="$PROJECT_DIR$/cinder/api/schemas/atom-link.rng" afterPath="$PROJECT_DIR$/manila/api/schemas/atom-link.rng" />
-      <change type="MOVED" beforePath="$PROJECT_DIR$/cinder/api/schemas/v1.1/extension.rng" afterPath="$PROJECT_DIR$/manila/api/schemas/v1.1/extension.rng" />
-      <change type="MOVED" beforePath="$PROJECT_DIR$/cinder/api/schemas/v1.1/extensions.rng" afterPath="$PROJECT_DIR$/manila/api/schemas/v1.1/extensions.rng" />
-      <change type="MOVED" beforePath="$PROJECT_DIR$/cinder/api/schemas/v1.1/limits.rng" afterPath="$PROJECT_DIR$/manila/api/schemas/v1.1/limits.rng" />
-      <change type="MOVED" beforePath="$PROJECT_DIR$/cinder/api/schemas/v1.1/metadata.rng" afterPath="$PROJECT_DIR$/manila/api/schemas/v1.1/metadata.rng" />
-      <change type="MOVED" beforePath="$PROJECT_DIR$/cinder/api/v1/__init__.py" afterPath="$PROJECT_DIR$/manila/api/v1/__init__.py" />
-      <change type="MOVED" beforePath="$PROJECT_DIR$/cinder/api/v2/__init__.py" afterPath="$PROJECT_DIR$/manila/api/v2/__init__.py" />
-      <change type="MOVED" beforePath="$PROJECT_DIR$/cinder/api/v2/views/__init__.py" afterPath="$PROJECT_DIR$/manila/api/v2/views/__init__.py" />
-      <change type="MOVED" beforePath="$PROJECT_DIR$/cinder/api/views/__init__.py" afterPath="$PROJECT_DIR$/manila/api/views/__init__.py" />
-      <change type="MOVED" beforePath="$PROJECT_DIR$/cinder/api/views/versions.py" afterPath="$PROJECT_DIR$/manila/api/views/versions.py" />
-      <change type="MOVED" beforePath="$PROJECT_DIR$/cinder/backup/services/__init__.py" afterPath="$PROJECT_DIR$/manila/backup/services/__init__.py" />
-      <change type="MOVED" beforePath="$PROJECT_DIR$/cinder/brick/__init__.py" afterPath="$PROJECT_DIR$/manila/brick/__init__.py" />
-      <change type="MOVED" beforePath="$PROJECT_DIR$/cinder/brick/iscsi/__init__.py" afterPath="$PROJECT_DIR$/manila/brick/iscsi/__init__.py" />
-      <change type="MOVED" beforePath="$PROJECT_DIR$/cinder/brick/local_dev/__init__.py" afterPath="$PROJECT_DIR$/manila/brick/local_dev/__init__.py" />
-      <change type="MOVED" beforePath="$PROJECT_DIR$/cinder/common/__init__.py" afterPath="$PROJECT_DIR$/manila/common/__init__.py" />
-      <change type="MOVED" beforePath="$PROJECT_DIR$/cinder/compute/__init__.py" afterPath="$PROJECT_DIR$/manila/compute/__init__.py" />
-      <change type="MOVED" beforePath="$PROJECT_DIR$/cinder/compute/aggregate_states.py" afterPath="$PROJECT_DIR$/manila/compute/aggregate_states.py" />
-      <change type="MOVED" beforePath="$PROJECT_DIR$/cinder/db/sqlalchemy/__init__.py" afterPath="$PROJECT_DIR$/manila/db/sqlalchemy/__init__.py" />
-      <change type="MOVED" beforePath="$PROJECT_DIR$/cinder/db/sqlalchemy/migrate_repo/README" afterPath="$PROJECT_DIR$/manila/db/sqlalchemy/migrate_repo/README" />
-      <change type="MOVED" beforePath="$PROJECT_DIR$/cinder/db/sqlalchemy/migrate_repo/__init__.py" afterPath="$PROJECT_DIR$/manila/db/sqlalchemy/migrate_repo/__init__.py" />
-      <change type="MOVED" beforePath="$PROJECT_DIR$/cinder/db/sqlalchemy/migrate_repo/manage.py" afterPath="$PROJECT_DIR$/manila/db/sqlalchemy/migrate_repo/manage.py" />
-      <change type="MOVED" beforePath="$PROJECT_DIR$/cinder/db/sqlalchemy/migrate_repo/migrate.cfg" afterPath="$PROJECT_DIR$/manila/db/sqlalchemy/migrate_repo/migrate.cfg" />
-      <change type="MOVED" beforePath="$PROJECT_DIR$/cinder/db/sqlalchemy/migrate_repo/versions/005_sqlite_downgrade.sql" afterPath="$PROJECT_DIR$/manila/db/sqlalchemy/migrate_repo/versions/005_sqlite_downgrade.sql" />
-      <change type="MOVED" beforePath="$PROJECT_DIR$/cinder/db/sqlalchemy/migrate_repo/versions/006_snapshots_add_provider_location.py" afterPath="$PROJECT_DIR$/manila/db/sqlalchemy/migrate_repo/versions/006_snapshots_add_provider_location.py" />
-      <change type="MOVED" beforePath="$PROJECT_DIR$/cinder/db/sqlalchemy/migrate_repo/versions/007_add_volume_snapshot_fk.py" afterPath="$PROJECT_DIR$/manila/db/sqlalchemy/migrate_repo/versions/007_add_volume_snapshot_fk.py" />
-      <change type="MOVED" beforePath="$PROJECT_DIR$/cinder/db/sqlalchemy/migrate_repo/versions/007_sqlite_downgrade.sql" afterPath="$PROJECT_DIR$/manila/db/sqlalchemy/migrate_repo/versions/007_sqlite_downgrade.sql" />
-      <change type="MOVED" beforePath="$PROJECT_DIR$/cinder/db/sqlalchemy/migrate_repo/versions/__init__.py" afterPath="$PROJECT_DIR$/manila/db/sqlalchemy/migrate_repo/versions/__init__.py" />
-      <change type="MOVED" beforePath="$PROJECT_DIR$/cinder/image/__init__.py" afterPath="$PROJECT_DIR$/manila/image/__init__.py" />
-      <change type="MOVED" beforePath="$PROJECT_DIR$/cinder/locale/cinder.pot" afterPath="$PROJECT_DIR$/manila/locale/cinder.pot" />
-      <change type="MOVED" beforePath="$PROJECT_DIR$/cinder/openstack/__init__.py" afterPath="$PROJECT_DIR$/manila/openstack/__init__.py" />
-      <change type="MOVED" beforePath="$PROJECT_DIR$/cinder/openstack/common/README" afterPath="$PROJECT_DIR$/manila/openstack/common/README" />
-      <change type="MOVED" beforePath="$PROJECT_DIR$/cinder/openstack/common/__init__.py" afterPath="$PROJECT_DIR$/manila/openstack/common/__init__.py" />
-      <change type="MOVED" beforePath="$PROJECT_DIR$/cinder/openstack/common/context.py" afterPath="$PROJECT_DIR$/manila/openstack/common/context.py" />
-      <change type="MOVED" beforePath="$PROJECT_DIR$/cinder/openstack/common/eventlet_backdoor.py" afterPath="$PROJECT_DIR$/manila/openstack/common/eventlet_backdoor.py" />
-      <change type="MOVED" beforePath="$PROJECT_DIR$/cinder/openstack/common/fileutils.py" afterPath="$PROJECT_DIR$/manila/openstack/common/fileutils.py" />
-      <change type="MOVED" beforePath="$PROJECT_DIR$/cinder/openstack/common/importutils.py" afterPath="$PROJECT_DIR$/manila/openstack/common/importutils.py" />
-      <change type="MOVED" beforePath="$PROJECT_DIR$/cinder/openstack/common/local.py" afterPath="$PROJECT_DIR$/manila/openstack/common/local.py" />
-      <change type="MOVED" beforePath="$PROJECT_DIR$/cinder/openstack/common/network_utils.py" afterPath="$PROJECT_DIR$/manila/openstack/common/network_utils.py" />
-      <change type="MOVED" beforePath="$PROJECT_DIR$/cinder/openstack/common/notifier/__init__.py" afterPath="$PROJECT_DIR$/manila/openstack/common/notifier/__init__.py" />
-      <change type="MOVED" beforePath="$PROJECT_DIR$/cinder/openstack/common/notifier/no_op_notifier.py" afterPath="$PROJECT_DIR$/manila/openstack/common/notifier/no_op_notifier.py" />
-      <change type="MOVED" beforePath="$PROJECT_DIR$/cinder/openstack/common/notifier/test_notifier.py" afterPath="$PROJECT_DIR$/manila/openstack/common/notifier/test_notifier.py" />
-      <change type="MOVED" beforePath="$PROJECT_DIR$/cinder/openstack/common/rootwrap/__init__.py" afterPath="$PROJECT_DIR$/manila/openstack/common/rootwrap/__init__.py" />
-      <change type="MOVED" beforePath="$PROJECT_DIR$/cinder/openstack/common/rootwrap/filters.py" afterPath="$PROJECT_DIR$/manila/openstack/common/rootwrap/filters.py" />
-      <change type="MOVED" beforePath="$PROJECT_DIR$/cinder/openstack/common/scheduler/__init__.py" afterPath="$PROJECT_DIR$/manila/openstack/common/scheduler/__init__.py" />
-      <change type="MOVED" beforePath="$PROJECT_DIR$/cinder/openstack/common/scheduler/filter.py" afterPath="$PROJECT_DIR$/manila/openstack/common/scheduler/filter.py" />
-      <change type="MOVED" beforePath="$PROJECT_DIR$/cinder/openstack/common/scheduler/weight.py" afterPath="$PROJECT_DIR$/manila/openstack/common/scheduler/weight.py" />
-      <change type="MOVED" beforePath="$PROJECT_DIR$/cinder/openstack/common/timeutils.py" afterPath="$PROJECT_DIR$/manila/openstack/common/timeutils.py" />
-      <change type="MOVED" beforePath="$PROJECT_DIR$/cinder/openstack/common/uuidutils.py" afterPath="$PROJECT_DIR$/manila/openstack/common/uuidutils.py" />
-      <change type="MOVED" beforePath="$PROJECT_DIR$/cinder/scheduler/filters/__init__.py" afterPath="$PROJECT_DIR$/manila/scheduler/filters/__init__.py" />
-      <change type="MOVED" beforePath="$PROJECT_DIR$/cinder/scheduler/weights/__init__.py" afterPath="$PROJECT_DIR$/manila/scheduler/weights/__init__.py" />
-      <change type="MOVED" beforePath="$PROJECT_DIR$/cinder/testing/README.rst" afterPath="$PROJECT_DIR$/manila/testing/README.rst" />
-      <change type="MOVED" beforePath="$PROJECT_DIR$/cinder/tests/api/common.py" afterPath="$PROJECT_DIR$/manila/tests/api/common.py" />
-      <change type="MOVED" beforePath="$PROJECT_DIR$/cinder/tests/api/extensions/__init__.py" afterPath="$PROJECT_DIR$/manila/tests/api/extensions/__init__.py" />
-      <change type="MOVED" beforePath="$PROJECT_DIR$/cinder/tests/api/middleware/__init__.py" afterPath="$PROJECT_DIR$/manila/tests/api/middleware/__init__.py" />
-      <change type="MOVED" beforePath="$PROJECT_DIR$/cinder/tests/api/v1/__init__.py" afterPath="$PROJECT_DIR$/manila/tests/api/v1/__init__.py" />
-      <change type="MOVED" beforePath="$PROJECT_DIR$/cinder/tests/api/v2/__init__.py" afterPath="$PROJECT_DIR$/manila/tests/api/v2/__init__.py" />
-      <change type="MOVED" beforePath="$PROJECT_DIR$/cinder/tests/backup/__init__.py" afterPath="$PROJECT_DIR$/manila/tests/backup/__init__.py" />
-      <change type="MOVED" beforePath="$PROJECT_DIR$/cinder/tests/brick/__init__.py" afterPath="$PROJECT_DIR$/manila/tests/brick/__init__.py" />
-      <change type="MOVED" beforePath="$PROJECT_DIR$/cinder/tests/db/__init__.py" afterPath="$PROJECT_DIR$/manila/tests/db/__init__.py" />
-      <change type="MOVED" beforePath="$PROJECT_DIR$/cinder/tests/glance/__init__.py" afterPath="$PROJECT_DIR$/manila/tests/glance/__init__.py" />
-      <change type="MOVED" beforePath="$PROJECT_DIR$/cinder/tests/glance/stubs.py" afterPath="$PROJECT_DIR$/manila/tests/glance/stubs.py" />
-      <change type="MOVED" beforePath="$PROJECT_DIR$/cinder/tests/integrated/api/__init__.py" afterPath="$PROJECT_DIR$/manila/tests/integrated/api/__init__.py" />
-      <change type="MOVED" beforePath="$PROJECT_DIR$/cinder/tests/monkey_patch_example/__init__.py" afterPath="$PROJECT_DIR$/manila/tests/monkey_patch_example/__init__.py" />
-      <change type="MOVED" beforePath="$PROJECT_DIR$/cinder/tests/monkey_patch_example/example_a.py" afterPath="$PROJECT_DIR$/manila/tests/monkey_patch_example/example_a.py" />
-      <change type="MOVED" beforePath="$PROJECT_DIR$/cinder/tests/monkey_patch_example/example_b.py" afterPath="$PROJECT_DIR$/manila/tests/monkey_patch_example/example_b.py" />
-      <change type="MOVED" beforePath="$PROJECT_DIR$/cinder/tests/policy.json" afterPath="$PROJECT_DIR$/manila/tests/policy.json" />
-      <change type="MOVED" beforePath="$PROJECT_DIR$/cinder/tests/test_api.py" afterPath="$PROJECT_DIR$/manila/tests/test_api.py" />
-      <change type="MOVED" beforePath="$PROJECT_DIR$/cinder/tests/test_migrations.conf" afterPath="$PROJECT_DIR$/manila/tests/test_migrations.conf" />
-      <change type="MOVED" beforePath="$PROJECT_DIR$/cinder/tests/var/ca.crt" afterPath="$PROJECT_DIR$/manila/tests/var/ca.crt" />
-      <change type="MOVED" beforePath="$PROJECT_DIR$/cinder/tests/var/certificate.crt" afterPath="$PROJECT_DIR$/manila/tests/var/certificate.crt" />
-      <change type="MOVED" beforePath="$PROJECT_DIR$/cinder/tests/var/privatekey.key" afterPath="$PROJECT_DIR$/manila/tests/var/privatekey.key" />
-      <change type="MOVED" beforePath="$PROJECT_DIR$/cinder/tests/windows/__init__.py" afterPath="$PROJECT_DIR$/manila/tests/windows/__init__.py" />
-      <change type="MOVED" beforePath="$PROJECT_DIR$/cinder/tests/windows/db_fakes.py" afterPath="$PROJECT_DIR$/manila/tests/windows/db_fakes.py" />
-      <change type="MOVED" beforePath="$PROJECT_DIR$/cinder/tests/windows/mockproxy.py" afterPath="$PROJECT_DIR$/manila/tests/windows/mockproxy.py" />
-      <change type="MOVED" beforePath="$PROJECT_DIR$/cinder/tests/windows/stubs/README.rst" afterPath="$PROJECT_DIR$/manila/tests/windows/stubs/README.rst" />
-      <change type="MOVED" beforePath="$PROJECT_DIR$/cinder/tests/windows/stubs/test_windows.TestWindowsDriver.test_check_for_setup_errors_wmi.p.gz" afterPath="$PROJECT_DIR$/manila/tests/windows/stubs/test_windows.TestWindowsDriver.test_check_for_setup_errors_wmi.p.gz" />
-      <change type="MOVED" beforePath="$PROJECT_DIR$/cinder/tests/windows/stubs/test_windows.TestWindowsDriver.test_create_export_os.p.gz" afterPath="$PROJECT_DIR$/manila/tests/windows/stubs/test_windows.TestWindowsDriver.test_create_export_os.p.gz" />
-      <change type="MOVED" beforePath="$PROJECT_DIR$/cinder/tests/windows/stubs/test_windows.TestWindowsDriver.test_create_export_wmi.p.gz" afterPath="$PROJECT_DIR$/manila/tests/windows/stubs/test_windows.TestWindowsDriver.test_create_export_wmi.p.gz" />
-      <change type="MOVED" beforePath="$PROJECT_DIR$/cinder/tests/windows/stubs/test_windows.TestWindowsDriver.test_create_snapshot_os.p.gz" afterPath="$PROJECT_DIR$/manila/tests/windows/stubs/test_windows.TestWindowsDriver.test_create_snapshot_os.p.gz" />
-      <change type="MOVED" beforePath="$PROJECT_DIR$/cinder/tests/windows/stubs/test_windows.TestWindowsDriver.test_create_snapshot_wmi.p.gz" afterPath="$PROJECT_DIR$/manila/tests/windows/stubs/test_windows.TestWindowsDriver.test_create_snapshot_wmi.p.gz" />
-      <change type="MOVED" beforePath="$PROJECT_DIR$/cinder/tests/windows/stubs/test_windows.TestWindowsDriver.test_create_volume_from_snapshot_os.p.gz" afterPath="$PROJECT_DIR$/manila/tests/windows/stubs/test_windows.TestWindowsDriver.test_create_volume_from_snapshot_os.p.gz" />
-      <change type="MOVED" beforePath="$PROJECT_DIR$/cinder/tests/windows/stubs/test_windows.TestWindowsDriver.test_create_volume_from_snapshot_wmi.p.gz" afterPath="$PROJECT_DIR$/manila/tests/windows/stubs/test_windows.TestWindowsDriver.test_create_volume_from_snapshot_wmi.p.gz" />
-      <change type="MOVED" beforePath="$PROJECT_DIR$/cinder/tests/windows/stubs/test_windows.TestWindowsDriver.test_create_volume_os.p.gz" afterPath="$PROJECT_DIR$/manila/tests/windows/stubs/test_windows.TestWindowsDriver.test_create_volume_os.p.gz" />
-      <change type="MOVED" beforePath="$PROJECT_DIR$/cinder/tests/windows/stubs/test_windows.TestWindowsDriver.test_create_volume_wmi.p.gz" afterPath="$PROJECT_DIR$/manila/tests/windows/stubs/test_windows.TestWindowsDriver.test_create_volume_wmi.p.gz" />
-      <change type="MOVED" beforePath="$PROJECT_DIR$/cinder/tests/windows/stubs/test_windows.TestWindowsDriver.test_delete_snapshot_os.p.gz" afterPath="$PROJECT_DIR$/manila/tests/windows/stubs/test_windows.TestWindowsDriver.test_delete_snapshot_os.p.gz" />
-      <change type="MOVED" beforePath="$PROJECT_DIR$/cinder/tests/windows/stubs/test_windows.TestWindowsDriver.test_delete_snapshot_wmi.p.gz" afterPath="$PROJECT_DIR$/manila/tests/windows/stubs/test_windows.TestWindowsDriver.test_delete_snapshot_wmi.p.gz" />
-      <change type="MOVED" beforePath="$PROJECT_DIR$/cinder/tests/windows/stubs/test_windows.TestWindowsDriver.test_delete_volume_os.p.gz" afterPath="$PROJECT_DIR$/manila/tests/windows/stubs/test_windows.TestWindowsDriver.test_delete_volume_os.p.gz" />
-      <change type="MOVED" beforePath="$PROJECT_DIR$/cinder/tests/windows/stubs/test_windows.TestWindowsDriver.test_delete_volume_wmi.p.gz" afterPath="$PROJECT_DIR$/manila/tests/windows/stubs/test_windows.TestWindowsDriver.test_delete_volume_wmi.p.gz" />
-      <change type="MOVED" beforePath="$PROJECT_DIR$/cinder/tests/windows/stubs/test_windows.TestWindowsDriver.test_ensure_export_os.p.gz" afterPath="$PROJECT_DIR$/manila/tests/windows/stubs/test_windows.TestWindowsDriver.test_ensure_export_os.p.gz" />
-      <change type="MOVED" beforePath="$PROJECT_DIR$/cinder/tests/windows/stubs/test_windows.TestWindowsDriver.test_ensure_export_wmi.p.gz" afterPath="$PROJECT_DIR$/manila/tests/windows/stubs/test_windows.TestWindowsDriver.test_ensure_export_wmi.p.gz" />
-      <change type="MOVED" beforePath="$PROJECT_DIR$/cinder/tests/windows/stubs/test_windows.TestWindowsDriver.test_initialize_connection_os.p.gz" afterPath="$PROJECT_DIR$/manila/tests/windows/stubs/test_windows.TestWindowsDriver.test_initialize_connection_os.p.gz" />
-      <change type="MOVED" beforePath="$PROJECT_DIR$/cinder/tests/windows/stubs/test_windows.TestWindowsDriver.test_initialize_connection_wmi.p.gz" afterPath="$PROJECT_DIR$/manila/tests/windows/stubs/test_windows.TestWindowsDriver.test_initialize_connection_wmi.p.gz" />
-      <change type="MOVED" beforePath="$PROJECT_DIR$/cinder/tests/windows/stubs/test_windows.TestWindowsDriver.test_remove_export_os.p.gz" afterPath="$PROJECT_DIR$/manila/tests/windows/stubs/test_windows.TestWindowsDriver.test_remove_export_os.p.gz" />
-      <change type="MOVED" beforePath="$PROJECT_DIR$/cinder/tests/windows/stubs/test_windows.TestWindowsDriver.test_remove_export_wmi.p.gz" afterPath="$PROJECT_DIR$/manila/tests/windows/stubs/test_windows.TestWindowsDriver.test_remove_export_wmi.p.gz" />
-      <change type="MOVED" beforePath="$PROJECT_DIR$/cinder/tests/xenapi/__init__.py" afterPath="$PROJECT_DIR$/manila/tests/xenapi/__init__.py" />
-      <change type="MOVED" beforePath="$PROJECT_DIR$/cinder/volume/drivers/emc/__init__.py" afterPath="$PROJECT_DIR$/manila/volume/drivers/emc/__init__.py" />
-      <change type="MOVED" beforePath="$PROJECT_DIR$/cinder/volume/drivers/emc/cinder_emc_config.xml.sample" afterPath="$PROJECT_DIR$/manila/volume/drivers/emc/cinder_emc_config.xml.sample" />
-      <change type="MOVED" beforePath="$PROJECT_DIR$/cinder/volume/drivers/huawei/__init__.py" afterPath="$PROJECT_DIR$/manila/volume/drivers/huawei/__init__.py" />
-      <change type="MOVED" beforePath="$PROJECT_DIR$/cinder/volume/drivers/huawei/cinder_huawei_conf.xml.sample" afterPath="$PROJECT_DIR$/manila/volume/drivers/huawei/cinder_huawei_conf.xml.sample" />
-      <change type="MOVED" beforePath="$PROJECT_DIR$/cinder/volume/drivers/netapp/__init__.py" afterPath="$PROJECT_DIR$/manila/volume/drivers/netapp/__init__.py" />
-      <change type="MOVED" beforePath="$PROJECT_DIR$/cinder/volume/drivers/nexenta/__init__.py" afterPath="$PROJECT_DIR$/manila/volume/drivers/nexenta/__init__.py" />
-      <change type="MOVED" beforePath="$PROJECT_DIR$/cinder/volume/drivers/san/hp/__init__.py" afterPath="$PROJECT_DIR$/manila/volume/drivers/san/hp/__init__.py" />
-      <change type="MOVED" beforePath="$PROJECT_DIR$/cinder/volume/drivers/xenapi/__init__.py" afterPath="$PROJECT_DIR$/manila/volume/drivers/xenapi/__init__.py" />
-      <change type="MOVED" beforePath="$PROJECT_DIR$/cinder/volume/drivers/xenapi/tools.py" afterPath="$PROJECT_DIR$/manila/volume/drivers/xenapi/tools.py" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/doc/ext/cinder_autodoc.py" afterPath="$PROJECT_DIR$/doc/ext/cinder_autodoc.py" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/doc/source/conf.py" afterPath="$PROJECT_DIR$/doc/source/conf.py" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/tools/conf/extract_opts.py" afterPath="$PROJECT_DIR$/tools/conf/extract_opts.py" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/tools/lintstack.py" afterPath="$PROJECT_DIR$/tools/lintstack.py" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/tools/patch_tox_venv.py" afterPath="$PROJECT_DIR$/tools/patch_tox_venv.py" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/setup.cfg" afterPath="$PROJECT_DIR$/setup.cfg" />
+      <change type="DELETED" beforePath="$PROJECT_DIR$/manila/api/contrib/admin_actions.py" afterPath="" />
+      <change type="DELETED" beforePath="$PROJECT_DIR$/manila/api/contrib/extended_snapshot_attributes.py" afterPath="" />
+      <change type="DELETED" beforePath="$PROJECT_DIR$/manila/api/contrib/hosts.py" afterPath="" />
+      <change type="DELETED" beforePath="$PROJECT_DIR$/manila/api/contrib/types_extra_specs.py" afterPath="" />
+      <change type="DELETED" beforePath="$PROJECT_DIR$/manila/api/contrib/types_manage.py" afterPath="" />
+      <change type="DELETED" beforePath="$PROJECT_DIR$/manila/api/contrib/volume_actions.py" afterPath="" />
+      <change type="DELETED" beforePath="$PROJECT_DIR$/manila/api/contrib/volume_host_attribute.py" afterPath="" />
+      <change type="DELETED" beforePath="$PROJECT_DIR$/manila/api/contrib/volume_image_metadata.py" afterPath="" />
+      <change type="DELETED" beforePath="$PROJECT_DIR$/manila/api/contrib/volume_tenant_attribute.py" afterPath="" />
+      <change type="DELETED" beforePath="$PROJECT_DIR$/manila/api/v1/snapshot_metadata.py" afterPath="" />
+      <change type="DELETED" beforePath="$PROJECT_DIR$/manila/api/v1/snapshots.py" afterPath="" />
+      <change type="DELETED" beforePath="$PROJECT_DIR$/manila/api/v1/types.py" afterPath="" />
+      <change type="DELETED" beforePath="$PROJECT_DIR$/manila/api/v1/volume_metadata.py" afterPath="" />
+      <change type="DELETED" beforePath="$PROJECT_DIR$/manila/api/v1/volumes.py" afterPath="" />
+      <change type="DELETED" beforePath="$PROJECT_DIR$/manila/api/v2/snapshot_metadata.py" afterPath="" />
+      <change type="DELETED" beforePath="$PROJECT_DIR$/manila/api/v2/snapshots.py" afterPath="" />
+      <change type="DELETED" beforePath="$PROJECT_DIR$/manila/api/v2/types.py" afterPath="" />
+      <change type="DELETED" beforePath="$PROJECT_DIR$/manila/api/v2/views/volumes.py" afterPath="" />
+      <change type="DELETED" beforePath="$PROJECT_DIR$/manila/api/v2/volumes.py" afterPath="" />
+      <change type="DELETED" beforePath="$PROJECT_DIR$/manila/api/views/types.py" afterPath="" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/manila/api/v1/router.py" afterPath="$PROJECT_DIR$/manila/api/v1/router.py" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/manila/api/v2/router.py" afterPath="$PROJECT_DIR$/manila/api/v2/router.py" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/workspace.xml" afterPath="$PROJECT_DIR$/.idea/workspace.xml" />
     </list>
     <ignored path="manila.iws" />
     <ignored path=".idea/workspace.xml" />
-    <file path="/Dummy.txt" changelist="1b1c7685-def3-415f-9322-bbcb3d480c5d" time="1377869547775" ignored="false" />
-    <file path="/a.dummy" changelist="1b1c7685-def3-415f-9322-bbcb3d480c5d" time="1377869962180" ignored="false" />
+    <file path="/Dummy.txt" changelist="1b1c7685-def3-415f-9322-bbcb3d480c5d" time="1378207548419" ignored="false" />
+    <file path="/a.dummy" changelist="1b1c7685-def3-415f-9322-bbcb3d480c5d" time="1378278263409" ignored="false" />
+    <file path="/migration.py" changelist="1b1c7685-def3-415f-9322-bbcb3d480c5d" time="1378193247103" ignored="false" />
+    <file path="/models.py" changelist="1b1c7685-def3-415f-9322-bbcb3d480c5d" time="1378195295470" ignored="false" />
+    <file path="/migrate.cfg" changelist="1b1c7685-def3-415f-9322-bbcb3d480c5d" time="1378195338621" ignored="false" />
+    <file path="/001_manila_init.py" changelist="1b1c7685-def3-415f-9322-bbcb3d480c5d" time="1378195376666" ignored="false" />
+    <file path="/__init__.py" changelist="1b1c7685-def3-415f-9322-bbcb3d480c5d" time="1378195469985" ignored="false" />
+    <file path="$PROJECT_DIR$/../python-manilaclient/setup.py" changelist="1b1c7685-def3-415f-9322-bbcb3d480c5d" time="1378208244534" ignored="false" />
+    <file path="/setup.py" changelist="1b1c7685-def3-415f-9322-bbcb3d480c5d" time="1378208172263" ignored="false" />
+    <file path="$PROJECT_DIR$/../python-manilaclient/LICENSE" changelist="1b1c7685-def3-415f-9322-bbcb3d480c5d" time="1378208236147" ignored="false" />
+    <file path="$PROJECT_DIR$/../python-manilaclient/README.rst" changelist="1b1c7685-def3-415f-9322-bbcb3d480c5d" time="1378208244534" ignored="false" />
+    <file path="$PROJECT_DIR$/../python-manilaclient/manilaclient/v2/volume_backups_restore.py" changelist="1b1c7685-def3-415f-9322-bbcb3d480c5d" time="1378208244533" ignored="false" />
+    <file path="$PROJECT_DIR$/../python-manilaclient/openstack-common.conf" changelist="1b1c7685-def3-415f-9322-bbcb3d480c5d" time="1378208244534" ignored="false" />
+    <file path="$PROJECT_DIR$/../python-manilaclient/manilaclient/v2/__init__.py" changelist="1b1c7685-def3-415f-9322-bbcb3d480c5d" time="1378208244534" ignored="false" />
+    <file path="$PROJECT_DIR$/../python-manilaclient/manilaclient/v2/volume_snapshots.py" changelist="1b1c7685-def3-415f-9322-bbcb3d480c5d" time="1378208244534" ignored="false" />
+    <file path="$PROJECT_DIR$/../python-manilaclient/manilaclient/v2/contrib/list_extensions.py" changelist="1b1c7685-def3-415f-9322-bbcb3d480c5d" time="1378208244534" ignored="false" />
+    <file path="$PROJECT_DIR$/../python-manilaclient/tests/test_utils.py" changelist="1b1c7685-def3-415f-9322-bbcb3d480c5d" time="1378208244534" ignored="false" />
+    <file path="$PROJECT_DIR$/../python-manilaclient/manilaclient/v1/volume_backups_restore.py" changelist="1b1c7685-def3-415f-9322-bbcb3d480c5d" time="1378208244534" ignored="false" />
+    <file path="$PROJECT_DIR$/../python-manilaclient/run_tests.sh" changelist="1b1c7685-def3-415f-9322-bbcb3d480c5d" time="1378208244534" ignored="false" />
+    <file path="$PROJECT_DIR$/../python-manilaclient/manilaclient/v1/__init__.py" changelist="1b1c7685-def3-415f-9322-bbcb3d480c5d" time="1378208244534" ignored="false" />
+    <file path="$PROJECT_DIR$/../python-manilaclient/tests/test_client.py" changelist="1b1c7685-def3-415f-9322-bbcb3d480c5d" time="1378208244534" ignored="false" />
+    <file path="$PROJECT_DIR$/../python-manilaclient/manilaclient/v1/volume_snapshots.py" changelist="1b1c7685-def3-415f-9322-bbcb3d480c5d" time="1378208244534" ignored="false" />
+    <file path="$PROJECT_DIR$/../python-manilaclient/manilaclient/v1/volume_types.py" changelist="1b1c7685-def3-415f-9322-bbcb3d480c5d" time="1378208244534" ignored="false" />
+    <file path="$PROJECT_DIR$/../python-manilaclient/tests/test_service_catalog.py" changelist="1b1c7685-def3-415f-9322-bbcb3d480c5d" time="1378208244534" ignored="false" />
+    <file path="$PROJECT_DIR$/../python-manilaclient/manilaclient/v1/volume_backups.py" changelist="1b1c7685-def3-415f-9322-bbcb3d480c5d" time="1378208244534" ignored="false" />
+    <file path="$PROJECT_DIR$/../python-manilaclient/manilaclient/shell.py" changelist="1b1c7685-def3-415f-9322-bbcb3d480c5d" time="1378208244534" ignored="false" />
+    <file path="$PROJECT_DIR$/../python-manilaclient/tests/test_http.py" changelist="1b1c7685-def3-415f-9322-bbcb3d480c5d" time="1378208244534" ignored="false" />
+    <file path="$PROJECT_DIR$/../python-manilaclient/manilaclient/utils.py" changelist="1b1c7685-def3-415f-9322-bbcb3d480c5d" time="1378208244534" ignored="false" />
+    <file path="$PROJECT_DIR$/../python-manilaclient/tests/test_base.py" changelist="1b1c7685-def3-415f-9322-bbcb3d480c5d" time="1378208244534" ignored="false" />
+    <file path="$PROJECT_DIR$/../python-manilaclient/tests/test_shell.py" changelist="1b1c7685-def3-415f-9322-bbcb3d480c5d" time="1378208244534" ignored="false" />
+    <file path="$PROJECT_DIR$/../python-manilaclient/manilaclient/base.py" changelist="1b1c7685-def3-415f-9322-bbcb3d480c5d" time="1378209841523" ignored="false" />
+    <file path="$PROJECT_DIR$/../python-manilaclient/manilaclient/extension.py" changelist="1b1c7685-def3-415f-9322-bbcb3d480c5d" time="1378208244534" ignored="false" />
+    <file path="$PROJECT_DIR$/../python-manilaclient/manilaclient/client.py" changelist="1b1c7685-def3-415f-9322-bbcb3d480c5d" time="1378208244534" ignored="false" />
+    <file path="$PROJECT_DIR$/../python-manilaclient/manilaclient/service_catalog.py" changelist="1b1c7685-def3-415f-9322-bbcb3d480c5d" time="1378208244534" ignored="false" />
+    <file path="$PROJECT_DIR$/../python-manilaclient/tests/v1/test_types.py" changelist="1b1c7685-def3-415f-9322-bbcb3d480c5d" time="1378208244534" ignored="false" />
+    <file path="$PROJECT_DIR$/../python-manilaclient/tests/v1/test_shell.py" changelist="1b1c7685-def3-415f-9322-bbcb3d480c5d" time="1378208244534" ignored="false" />
+    <file path="$PROJECT_DIR$/../python-manilaclient/tests/v1/fakes.py" changelist="1b1c7685-def3-415f-9322-bbcb3d480c5d" time="1378208244534" ignored="false" />
+    <file path="$PROJECT_DIR$/../python-manilaclient/manilaclient/v1/shell.py" changelist="1b1c7685-def3-415f-9322-bbcb3d480c5d" time="1378208244534" ignored="false" />
+    <file path="$PROJECT_DIR$/../python-manilaclient/tests/v1/test_auth.py" changelist="1b1c7685-def3-415f-9322-bbcb3d480c5d" time="1378208244534" ignored="false" />
+    <file path="$PROJECT_DIR$/../python-manilaclient/manilaclient/v2/volume_types.py" changelist="1b1c7685-def3-415f-9322-bbcb3d480c5d" time="1378208244534" ignored="false" />
+    <file path="$PROJECT_DIR$/../python-manilaclient/manilaclient/v1/share_snapshots.py" changelist="1b1c7685-def3-415f-9322-bbcb3d480c5d" time="1378208244534" ignored="false" />
+    <file path="$PROJECT_DIR$/../python-manilaclient/manilaclient/v2/volume_backups.py" changelist="1b1c7685-def3-415f-9322-bbcb3d480c5d" time="1378208244534" ignored="false" />
+    <file path="$PROJECT_DIR$/../python-manilaclient/manilaclient/v1/contrib/list_extensions.py" changelist="1b1c7685-def3-415f-9322-bbcb3d480c5d" time="1378208244534" ignored="false" />
+    <file path="$PROJECT_DIR$/../python-manilaclient/manilaclient/v1/volumes.py" changelist="1b1c7685-def3-415f-9322-bbcb3d480c5d" time="1378208244534" ignored="false" />
+    <file path="$PROJECT_DIR$/../python-manilaclient/tests/v1/shares/test_share_snapshots.py" changelist="1b1c7685-def3-415f-9322-bbcb3d480c5d" time="1378208244534" ignored="false" />
+    <file path="$PROJECT_DIR$/../python-manilaclient/tests/v1/shares/fakes.py" changelist="1b1c7685-def3-415f-9322-bbcb3d480c5d" time="1378208244534" ignored="false" />
+    <file path="$PROJECT_DIR$/../python-manilaclient/tests/v1/shares/test_shares.py" changelist="1b1c7685-def3-415f-9322-bbcb3d480c5d" time="1378208244534" ignored="false" />
+    <file path="$PROJECT_DIR$/../python-manilaclient/tests/v1/contrib/test_list_extensions.py" changelist="1b1c7685-def3-415f-9322-bbcb3d480c5d" time="1378208244534" ignored="false" />
+    <file path="$PROJECT_DIR$/../python-manilaclient/tests/v2/test_types.py" changelist="1b1c7685-def3-415f-9322-bbcb3d480c5d" time="1378208244534" ignored="false" />
+    <file path="$PROJECT_DIR$/../python-manilaclient/tests/v2/test_shell.py" changelist="1b1c7685-def3-415f-9322-bbcb3d480c5d" time="1378208244534" ignored="false" />
+    <file path="$PROJECT_DIR$/../python-manilaclient/tests/v2/fakes.py" changelist="1b1c7685-def3-415f-9322-bbcb3d480c5d" time="1378208244534" ignored="false" />
+    <file path="$PROJECT_DIR$/../python-manilaclient/tests/v2/test_auth.py" changelist="1b1c7685-def3-415f-9322-bbcb3d480c5d" time="1378208244534" ignored="false" />
+    <file path="$PROJECT_DIR$/../python-manilaclient/manilaclient/openstack/common/version.py" changelist="1b1c7685-def3-415f-9322-bbcb3d480c5d" time="1378208244534" ignored="false" />
+    <file path="$PROJECT_DIR$/../python-manilaclient/tests/v2/shares/test_share_snapshots.py" changelist="1b1c7685-def3-415f-9322-bbcb3d480c5d" time="1378208244534" ignored="false" />
+    <file path="$PROJECT_DIR$/../python-manilaclient/doc/Makefile" changelist="1b1c7685-def3-415f-9322-bbcb3d480c5d" time="1378208244534" ignored="false" />
+    <file path="$PROJECT_DIR$/../python-manilaclient/tests/v2/shares/fakes.py" changelist="1b1c7685-def3-415f-9322-bbcb3d480c5d" time="1378208244534" ignored="false" />
+    <file path="$PROJECT_DIR$/../python-manilaclient/tests/v2/shares/test_shares.py" changelist="1b1c7685-def3-415f-9322-bbcb3d480c5d" time="1378208244534" ignored="false" />
+    <file path="$PROJECT_DIR$/../python-manilaclient/doc/source/index.rst" changelist="1b1c7685-def3-415f-9322-bbcb3d480c5d" time="1378208244534" ignored="false" />
+    <file path="$PROJECT_DIR$/../python-manilaclient/doc/source/conf.py" changelist="1b1c7685-def3-415f-9322-bbcb3d480c5d" time="1378208244534" ignored="false" />
+    <file path="$PROJECT_DIR$/../python-manilaclient/tests/v2/contrib/test_list_extensions.py" changelist="1b1c7685-def3-415f-9322-bbcb3d480c5d" time="1378208244534" ignored="false" />
+    <file path="$PROJECT_DIR$/../python-manilaclient/tools/install_venv.py" changelist="1b1c7685-def3-415f-9322-bbcb3d480c5d" time="1378208244534" ignored="false" />
+    <file path="$PROJECT_DIR$/../python-manilaclient/tools/cinder.bash_completion" changelist="1b1c7685-def3-415f-9322-bbcb3d480c5d" time="1378208244534" ignored="false" />
+    <file path="$PROJECT_DIR$/../python-manilaclient/manilaclient/v2/shell.py" changelist="1b1c7685-def3-415f-9322-bbcb3d480c5d" time="1378208244534" ignored="false" />
+    <file path="$PROJECT_DIR$/../python-manilaclient/manilaclient/v1/limits.py" changelist="1b1c7685-def3-415f-9322-bbcb3d480c5d" time="1378208244534" ignored="false" />
+    <file path="$PROJECT_DIR$/../python-manilaclient/manilaclient/v1/client.py" changelist="1b1c7685-def3-415f-9322-bbcb3d480c5d" time="1378209975637" ignored="false" />
+    <file path="$PROJECT_DIR$/../python-manilaclient/manilaclient/v1/shares.py" changelist="1b1c7685-def3-415f-9322-bbcb3d480c5d" time="1378208244534" ignored="false" />
+    <file path="$PROJECT_DIR$/../python-manilaclient/manilaclient/v1/quotas.py" changelist="1b1c7685-def3-415f-9322-bbcb3d480c5d" time="1378208244534" ignored="false" />
+    <file path="$PROJECT_DIR$/../python-manilaclient/manilaclient/v1/quota_classes.py" changelist="1b1c7685-def3-415f-9322-bbcb3d480c5d" time="1378208244534" ignored="false" />
+    <file path="$PROJECT_DIR$/../python-manilaclient/manilaclient/__init__.py" changelist="1b1c7685-def3-415f-9322-bbcb3d480c5d" time="1378208244534" ignored="false" />
+    <file path="$PROJECT_DIR$/../python-manilaclient/manilaclient/v2/volumes.py" changelist="1b1c7685-def3-415f-9322-bbcb3d480c5d" time="1378208244534" ignored="false" />
+    <file path="$PROJECT_DIR$/../python-manilaclient/manilaclient/v2/share_snapshots.py" changelist="1b1c7685-def3-415f-9322-bbcb3d480c5d" time="1378208244534" ignored="false" />
+    <file path="$PROJECT_DIR$/../python-manilaclient/manilaclient/v2/limits.py" changelist="1b1c7685-def3-415f-9322-bbcb3d480c5d" time="1378208244534" ignored="false" />
+    <file path="$PROJECT_DIR$/../python-manilaclient/manilaclient/v2/client.py" changelist="1b1c7685-def3-415f-9322-bbcb3d480c5d" time="1378208244534" ignored="false" />
+    <file path="$PROJECT_DIR$/../python-manilaclient/manilaclient/v2/shares.py" changelist="1b1c7685-def3-415f-9322-bbcb3d480c5d" time="1378208244534" ignored="false" />
+    <file path="$PROJECT_DIR$/../python-manilaclient/manilaclient/v2/quotas.py" changelist="1b1c7685-def3-415f-9322-bbcb3d480c5d" time="1378208244534" ignored="false" />
+    <file path="$PROJECT_DIR$/../python-manilaclient/manilaclient/v2/quota_classes.py" changelist="1b1c7685-def3-415f-9322-bbcb3d480c5d" time="1378208244534" ignored="false" />
+    <file path="$PROJECT_DIR$/../python-manilaclient/tox.ini" changelist="1b1c7685-def3-415f-9322-bbcb3d480c5d" time="1378208244534" ignored="false" />
+    <file path="/base.py" changelist="1b1c7685-def3-415f-9322-bbcb3d480c5d" time="1378209841523" ignored="false" />
+    <file path="/client.py" changelist="1b1c7685-def3-415f-9322-bbcb3d480c5d" time="1378209975637" ignored="false" />
+    <file path="/manila-api" changelist="1b1c7685-def3-415f-9322-bbcb3d480c5d" time="1378212629636" ignored="false" />
+    <file path="/auth.py" changelist="1b1c7685-def3-415f-9322-bbcb3d480c5d" time="1378213653088" ignored="false" />
     <option name="TRACKING_ENABLED" value="true" />
     <option name="SHOW_DIALOG" value="false" />
     <option name="HIGHLIGHT_CONFLICTS" value="true" />
@@ -829,92 +128,98 @@
   </component>
   <component name="FileEditorManager">
     <leaf>
-      <file leaf-file-name="manila-backup" pinned="false" current="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/bin/manila-backup">
+      <file leaf-file-name="api.py" pinned="false" current="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/manila/db/api.py">
           <provider selected="true" editor-type-id="text-editor">
-            <state line="17" column="22" selection-start="706" selection-end="706" vertical-scroll-proportion="0.0">
+            <state line="69" column="19" selection-start="2706" selection-end="2706" vertical-scroll-proportion="-12.84">
               <folding />
             </state>
           </provider>
         </entry>
       </file>
-      <file leaf-file-name="manila-clear-rabbit-queues" pinned="false" current="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/bin/manila-clear-rabbit-queues">
+      <file leaf-file-name="models.py" pinned="false" current="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/manila/db/sqlalchemy/models.py">
           <provider selected="true" editor-type-id="text-editor">
-            <state line="18" column="53" selection-start="755" selection-end="755" vertical-scroll-proportion="0.0">
+            <state line="294" column="22" selection-start="9404" selection-end="9404" vertical-scroll-proportion="-16.92">
+              <folding>
+                <element signature="e#928#988#0" expanded="true" />
+              </folding>
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file leaf-file-name="iscsi.py" pinned="false" current="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/manila/brick/iscsi/iscsi.py">
+          <provider selected="true" editor-type-id="text-editor">
+            <state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="-0.0">
               <folding />
             </state>
           </provider>
         </entry>
       </file>
-      <file leaf-file-name="manila-manage" pinned="false" current="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/bin/manila-manage">
+      <file leaf-file-name="manila-api" pinned="false" current="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/bin/manila-api">
           <provider selected="true" editor-type-id="text-editor">
-            <state line="53" column="20" selection-start="2506" selection-end="2506" vertical-scroll-proportion="0.0">
+            <state line="49" column="27" selection-start="1639" selection-end="1639" vertical-scroll-proportion="-7.72">
               <folding />
             </state>
           </provider>
         </entry>
       </file>
-      <file leaf-file-name="manila-rootwrap" pinned="false" current="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/bin/manila-rootwrap">
+      <file leaf-file-name="service.py" pinned="false" current="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/manila/service.py">
           <provider selected="true" editor-type-id="text-editor">
-            <state line="22" column="20" selection-start="840" selection-end="840" vertical-scroll-proportion="0.0">
+            <state line="521" column="8" selection-start="18410" selection-end="18410" vertical-scroll-proportion="13.32">
               <folding />
             </state>
           </provider>
         </entry>
       </file>
-      <file leaf-file-name="manila-rpc-zmq-receiver" pinned="false" current="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/bin/manila-rpc-zmq-receiver">
+      <file leaf-file-name="auth.py" pinned="false" current="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/manila/api/middleware/auth.py">
           <provider selected="true" editor-type-id="text-editor">
-            <state line="24" column="8" selection-start="772" selection-end="772" vertical-scroll-proportion="0.0">
+            <state line="71" column="12" selection-start="2224" selection-end="2224" vertical-scroll-proportion="-1.7142857">
+              <folding>
+                <element signature="e#707#716#0" expanded="true" />
+              </folding>
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file leaf-file-name="extensions.py" pinned="false" current="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/manila/api/extensions.py">
+          <provider selected="true" editor-type-id="text-editor">
+            <state line="185" column="42" selection-start="5369" selection-end="5375" vertical-scroll-proportion="-1.7142857">
               <folding />
             </state>
           </provider>
         </entry>
       </file>
-      <file leaf-file-name="manila-scheduler" pinned="false" current="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/bin/manila-scheduler">
+      <file leaf-file-name="image_create.py" pinned="false" current="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/manila/api/contrib/image_create.py">
           <provider selected="true" editor-type-id="text-editor">
-            <state line="19" column="22" selection-start="821" selection-end="821" vertical-scroll-proportion="0.0">
+            <state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="9.44">
               <folding />
             </state>
           </provider>
         </entry>
       </file>
-      <file leaf-file-name="manila-share" pinned="false" current="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/bin/manila-share">
+      <file leaf-file-name="router.py" pinned="false" current="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/manila/api/v1/router.py">
           <provider selected="true" editor-type-id="text-editor">
-            <state line="18" column="22" selection-start="711" selection-end="711" vertical-scroll-proportion="0.0">
+            <state line="25" column="32" selection-start="954" selection-end="954" vertical-scroll-proportion="-6.0">
               <folding />
             </state>
           </provider>
         </entry>
       </file>
-      <file leaf-file-name="manila-volume" pinned="false" current="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/bin/manila-volume">
+      <file leaf-file-name="router.py" pinned="false" current="true" current-in-tab="true">
+        <entry file="file://$PROJECT_DIR$/manila/api/v2/router.py">
           <provider selected="true" editor-type-id="text-editor">
-            <state line="19" column="22" selection-start="821" selection-end="821" vertical-scroll-proportion="0.0">
-              <folding />
-            </state>
-          </provider>
-        </entry>
-      </file>
-      <file leaf-file-name="manila-volume-usage-audit" pinned="false" current="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/bin/manila-volume-usage-audit">
-          <provider selected="true" editor-type-id="text-editor">
-            <state line="70" column="0" selection-start="2654" selection-end="2654" vertical-scroll-proportion="0.0">
-              <folding />
-            </state>
-          </provider>
-        </entry>
-      </file>
-      <file leaf-file-name="setup.cfg" pinned="false" current="true" current-in-tab="true">
-        <entry file="file://$PROJECT_DIR$/setup.cfg">
-          <provider selected="true" editor-type-id="text-editor">
-            <state line="19" column="0" selection-start="606" selection-end="606" vertical-scroll-proportion="0.5153707">
-              <folding />
+            <state line="46" column="32" selection-start="1563" selection-end="1563" vertical-scroll-proportion="0.7178683">
+              <folding>
+                <element signature="e#860#893#0" expanded="true" />
+              </folding>
             </state>
           </provider>
         </entry>
@@ -937,27 +242,30 @@
   <component name="IdeDocumentHistory">
     <option name="changedFiles">
       <list>
-        <option value="$PROJECT_DIR$/manila/image/glance.py" />
-        <option value="$PROJECT_DIR$/bin/cinder-all" />
-        <option value="$PROJECT_DIR$/bin/cinder-api" />
-        <option value="$PROJECT_DIR$/bin/cinder-backup" />
-        <option value="$PROJECT_DIR$/bin/cinder-clear-rabbit-queues" />
-        <option value="$PROJECT_DIR$/bin/cinder-manage" />
-        <option value="$PROJECT_DIR$/bin/cinder-rootwrap" />
-        <option value="$PROJECT_DIR$/bin/cinder-rpc-zmq-receiver" />
-        <option value="$PROJECT_DIR$/bin/cinder-scheduler" />
-        <option value="$PROJECT_DIR$/bin/cinder-share" />
-        <option value="$PROJECT_DIR$/bin/cinder-volume" />
-        <option value="$PROJECT_DIR$/bin/cinder-volume-usage-audit" />
+        <option value="$PROJECT_DIR$/manila/db/sqlalchemy/migration.py" />
+        <option value="$PROJECT_DIR$/manila/db/sqlalchemy/migrate_repo/migrate.cfg" />
+        <option value="$PROJECT_DIR$/manila/db/sqlalchemy/migrate_repo/versions/001_manila_init.py" />
+        <option value="$PROJECT_DIR$/manila/db/__init__.py" />
+        <option value="$PROJECT_DIR$/manila/db/sqlalchemy/api.py" />
         <option value="$PROJECT_DIR$/setup.cfg" />
+        <option value="$PROJECT_DIR$/bin/manila-manage" />
+        <option value="$PROJECT_DIR$/manila/exception.py" />
+        <option value="$PROJECT_DIR$/manila/flags.py" />
+        <option value="$PROJECT_DIR$/manila/db/api.py" />
+        <option value="$PROJECT_DIR$/manila/db/sqlalchemy/models.py" />
+        <option value="$PROJECT_DIR$/bin/manila-api" />
+        <option value="$PROJECT_DIR$/manila/api/middleware/auth.py" />
+        <option value="$PROJECT_DIR$/manila/api/contrib/admin_actions.py" />
+        <option value="$PROJECT_DIR$/manila/api/v1/router.py" />
+        <option value="$PROJECT_DIR$/manila/api/v2/router.py" />
       </list>
     </option>
   </component>
   <component name="ProjectFrameBounds">
-    <option name="x" value="65" />
-    <option name="y" value="52" />
-    <option name="width" value="1855" />
-    <option name="height" value="1028" />
+    <option name="x" value="64" />
+    <option name="y" value="-4" />
+    <option name="width" value="1303" />
+    <option name="height" value="773" />
   </component>
   <component name="ProjectLevelVcsManager" settingsEditedManually="false">
     <OptionsSetting value="true" id="Add" />
@@ -985,6 +293,7 @@
       <sortByType />
     </navigator>
     <panes>
+      <pane id="Scope" />
       <pane id="ProjectPane">
         <subPane>
           <PATH>
@@ -1013,21 +322,153 @@
               <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
             </PATH_ELEMENT>
             <PATH_ELEMENT>
-              <option name="myItemId" value="bin" />
+              <option name="myItemId" value="manila" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+          </PATH>
+          <PATH>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="manila" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="manila" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="manila" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="api" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+          </PATH>
+          <PATH>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="manila" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="manila" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="manila" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="api" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="views" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+          </PATH>
+          <PATH>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="manila" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="manila" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="manila" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="api" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="v2" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+          </PATH>
+          <PATH>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="manila" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="manila" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="manila" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="api" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="v2" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="views" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+          </PATH>
+          <PATH>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="manila" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="manila" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="manila" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="api" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="v1" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+          </PATH>
+          <PATH>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="manila" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="manila" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="manila" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="api" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
+            <PATH_ELEMENT>
+              <option name="myItemId" value="middleware" />
               <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
             </PATH_ELEMENT>
           </PATH>
         </subPane>
       </pane>
-      <pane id="Scope" />
     </panes>
   </component>
   <component name="PropertiesComponent">
     <property name="options.splitter.main.proportions" value="0.3" />
     <property name="WebServerToolWindowFactoryState" value="false" />
     <property name="options.lastSelected" value="project.propVCSSupport.Mappings" />
-    <property name="options.splitter.details.proportions" value="0.2" />
+    <property name="last_opened_file_path" value="$PROJECT_DIR$/../python-manilaclient" />
     <property name="options.searchVisible" value="true" />
+    <property name="options.splitter.details.proportions" value="0.2" />
   </component>
   <component name="RunManager">
     <configuration default="true" type="tests" factoryName="Nosetests">
@@ -1101,26 +542,26 @@
     <servers />
   </component>
   <component name="ToolWindowManager">
-    <frame x="65" y="52" width="1855" height="1028" extended-state="7" />
+    <frame x="64" y="-4" width="1303" height="773" extended-state="6" />
     <editor active="false" />
     <layout>
-      <window_info id="Changes" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
+      <window_info id="Changes" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
       <window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
-      <window_info id="Find" active="true" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.339934" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
-      <window_info id="Database" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
+      <window_info id="Find" active="true" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.35332254" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
+      <window_info id="Database" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
       <window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
-      <window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.2498618" sideWeight="0.660066" order="0" side_tool="false" content_ui="combo" />
+      <window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.28856915" sideWeight="0.6466775" order="0" side_tool="false" content_ui="combo" />
       <window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.4" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
-      <window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="-1" side_tool="true" content_ui="tabs" />
-      <window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="-1" side_tool="true" content_ui="tabs" />
+      <window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="2" side_tool="true" content_ui="tabs" />
+      <window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="7" side_tool="true" content_ui="tabs" />
       <window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
-      <window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
+      <window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
       <window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
       <window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
       <window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
       <window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="SLIDING" type="SLIDING" visible="false" weight="0.4" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
-      <window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.4" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
       <window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" />
+      <window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.4" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
     </layout>
   </component>
   <component name="VcsContentAnnotationSettings">
@@ -1185,103 +626,123 @@
   </component>
   <component name="editorHistoryManager">
     <entry file="file://$PROJECT_DIR$/manila/compute/aggregate_states.py">
+      <provider selected="true" editor-type-id="text-editor">
+        <state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="-0.33451957">
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/manila/compute/__init__.py">
       <provider selected="true" editor-type-id="text-editor">
         <state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0">
           <folding />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/manila/image/glance.py">
-      <provider selected="true" editor-type-id="text-editor">
-        <state line="34" column="23" selection-start="1040" selection-end="1040" vertical-scroll-proportion="0.0">
-          <folding />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/bin/manila-all">
-      <provider selected="true" editor-type-id="text-editor">
-        <state line="44" column="5" selection-start="1535" selection-end="1535" vertical-scroll-proportion="0.0">
-          <folding />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/bin/manila-api">
-      <provider selected="true" editor-type-id="text-editor">
-        <state line="19" column="22" selection-start="820" selection-end="820" vertical-scroll-proportion="0.0">
-          <folding />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/bin/manila-backup">
-      <provider selected="true" editor-type-id="text-editor">
-        <state line="17" column="22" selection-start="706" selection-end="706" vertical-scroll-proportion="0.0">
-          <folding />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/bin/manila-clear-rabbit-queues">
-      <provider selected="true" editor-type-id="text-editor">
-        <state line="18" column="53" selection-start="755" selection-end="755" vertical-scroll-proportion="0.0">
-          <folding />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/bin/manila-manage">
-      <provider selected="true" editor-type-id="text-editor">
-        <state line="53" column="20" selection-start="2506" selection-end="2506" vertical-scroll-proportion="0.0">
-          <folding />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/bin/manila-rootwrap">
-      <provider selected="true" editor-type-id="text-editor">
-        <state line="22" column="20" selection-start="840" selection-end="840" vertical-scroll-proportion="0.0">
-          <folding />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/bin/manila-rpc-zmq-receiver">
-      <provider selected="true" editor-type-id="text-editor">
-        <state line="24" column="8" selection-start="772" selection-end="772" vertical-scroll-proportion="0.0">
-          <folding />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/bin/manila-scheduler">
-      <provider selected="true" editor-type-id="text-editor">
-        <state line="19" column="22" selection-start="821" selection-end="821" vertical-scroll-proportion="0.0">
-          <folding />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/bin/manila-share">
-      <provider selected="true" editor-type-id="text-editor">
-        <state line="18" column="22" selection-start="711" selection-end="711" vertical-scroll-proportion="0.0">
-          <folding />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/bin/manila-volume">
-      <provider selected="true" editor-type-id="text-editor">
-        <state line="19" column="22" selection-start="821" selection-end="821" vertical-scroll-proportion="0.0">
-          <folding />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/bin/manila-volume-usage-audit">
-      <provider selected="true" editor-type-id="text-editor">
-        <state line="70" column="0" selection-start="2654" selection-end="2654" vertical-scroll-proportion="0.0">
-          <folding />
-        </state>
-      </provider>
-    </entry>
     <entry file="file://$PROJECT_DIR$/setup.cfg">
       <provider selected="true" editor-type-id="text-editor">
-        <state line="19" column="0" selection-start="606" selection-end="606" vertical-scroll-proportion="0.5153707">
+        <state line="35" column="20" selection-start="892" selection-end="892" vertical-scroll-proportion="0.0">
           <folding />
         </state>
       </provider>
     </entry>
+    <entry file="file://$PROJECT_DIR$/bin/manila-manage">
+      <provider selected="true" editor-type-id="text-editor">
+        <state line="644" column="48" selection-start="23215" selection-end="23215" vertical-scroll-proportion="-120.92">
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/manila/exception.py">
+      <provider selected="true" editor-type-id="text-editor">
+        <state line="564" column="49" selection-start="15313" selection-end="15313" vertical-scroll-proportion="-1.6428572">
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/manila/flags.py">
+      <provider selected="true" editor-type-id="text-editor">
+        <state line="226" column="74" selection-start="9048" selection-end="9048" vertical-scroll-proportion="-1.6428572">
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/manila/db/api.py">
+      <provider selected="true" editor-type-id="text-editor">
+        <state line="69" column="19" selection-start="2706" selection-end="2706" vertical-scroll-proportion="-12.84">
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/manila/db/sqlalchemy/models.py">
+      <provider selected="true" editor-type-id="text-editor">
+        <state line="294" column="22" selection-start="9404" selection-end="9404" vertical-scroll-proportion="-16.92">
+          <folding>
+            <element signature="e#928#988#0" expanded="true" />
+          </folding>
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/manila/brick/iscsi/iscsi.py">
+      <provider selected="true" editor-type-id="text-editor">
+        <state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0">
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/bin/manila-api">
+      <provider selected="true" editor-type-id="text-editor">
+        <state line="49" column="27" selection-start="1639" selection-end="1639" vertical-scroll-proportion="-7.72">
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/manila/service.py">
+      <provider selected="true" editor-type-id="text-editor">
+        <state line="521" column="8" selection-start="18410" selection-end="18410" vertical-scroll-proportion="13.32">
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/manila/api/middleware/auth.py">
+      <provider selected="true" editor-type-id="text-editor">
+        <state line="71" column="12" selection-start="2224" selection-end="2224" vertical-scroll-proportion="-1.7142857">
+          <folding>
+            <element signature="e#707#716#0" expanded="true" />
+          </folding>
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/manila/api/extensions.py">
+      <provider selected="true" editor-type-id="text-editor">
+        <state line="185" column="42" selection-start="5369" selection-end="5375" vertical-scroll-proportion="-1.7142857">
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/manila/api/contrib/image_create.py">
+      <provider selected="true" editor-type-id="text-editor">
+        <state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="9.44">
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/manila/api/v1/router.py">
+      <provider selected="true" editor-type-id="text-editor">
+        <state line="25" column="32" selection-start="954" selection-end="954" vertical-scroll-proportion="-6.0">
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/manila/api/v2/router.py">
+      <provider selected="true" editor-type-id="text-editor">
+        <state line="46" column="32" selection-start="1563" selection-end="1563" vertical-scroll-proportion="0.7178683">
+          <folding>
+            <element signature="e#860#893#0" expanded="true" />
+          </folding>
+        </state>
+      </provider>
+    </entry>
   </component>
 </project>
 
diff --git a/manila/api/contrib/admin_actions.py b/manila/api/contrib/admin_actions.py
deleted file mode 100644
index 455de06b12..0000000000
--- a/manila/api/contrib/admin_actions.py
+++ /dev/null
@@ -1,174 +0,0 @@
-#   Copyright 2012 OpenStack, LLC.
-#
-#   Licensed under the Apache License, Version 2.0 (the "License"); you may
-#   not use this file except in compliance with the License. You may obtain
-#   a copy of the License at
-#
-#       http://www.apache.org/licenses/LICENSE-2.0
-#
-#   Unless required by applicable law or agreed to in writing, software
-#   distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-#   WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-#   License for the specific language governing permissions and limitations
-#   under the License.
-
-import webob
-from webob import exc
-
-from manila.api import extensions
-from manila.api.openstack import wsgi
-from manila import db
-from manila import exception
-from manila.openstack.common import log as logging
-from manila import volume
-
-
-LOG = logging.getLogger(__name__)
-
-
-class AdminController(wsgi.Controller):
-    """Abstract base class for AdminControllers."""
-
-    collection = None  # api collection to extend
-
-    # FIXME(clayg): this will be hard to keep up-to-date
-    # Concrete classes can expand or over-ride
-    valid_status = set([
-        'creating',
-        'available',
-        'deleting',
-        'error',
-        'error_deleting',
-    ])
-
-    def __init__(self, *args, **kwargs):
-        super(AdminController, self).__init__(*args, **kwargs)
-        # singular name of the resource
-        self.resource_name = self.collection.rstrip('s')
-        self.volume_api = volume.API()
-
-    def _update(self, *args, **kwargs):
-        raise NotImplementedError()
-
-    def _get(self, *args, **kwargs):
-        raise NotImplementedError()
-
-    def _delete(self, *args, **kwargs):
-        raise NotImplementedError()
-
-    def validate_update(self, body):
-        update = {}
-        try:
-            update['status'] = body['status']
-        except (TypeError, KeyError):
-            raise exc.HTTPBadRequest("Must specify 'status'")
-        if update['status'] not in self.valid_status:
-            raise exc.HTTPBadRequest("Must specify a valid status")
-        return update
-
-    def authorize(self, context, action_name):
-        # e.g. "snapshot_admin_actions:reset_status"
-        action = '%s_admin_actions:%s' % (self.resource_name, action_name)
-        extensions.extension_authorizer('volume', action)(context)
-
-    @wsgi.action('os-reset_status')
-    def _reset_status(self, req, id, body):
-        """Reset status on the resource."""
-        context = req.environ['manila.context']
-        self.authorize(context, 'reset_status')
-        update = self.validate_update(body['os-reset_status'])
-        msg = _("Updating %(resource)s '%(id)s' with '%(update)r'")
-        LOG.debug(msg, {'resource': self.resource_name, 'id': id,
-                        'update': update})
-        try:
-            self._update(context, id, update)
-        except exception.NotFound, e:
-            raise exc.HTTPNotFound(e)
-        return webob.Response(status_int=202)
-
-    @wsgi.action('os-force_delete')
-    def _force_delete(self, req, id, body):
-        """Delete a resource, bypassing the check that it must be available."""
-        context = req.environ['manila.context']
-        self.authorize(context, 'force_delete')
-        try:
-            resource = self._get(context, id)
-        except exception.NotFound:
-            raise exc.HTTPNotFound()
-        self._delete(context, resource, force=True)
-        return webob.Response(status_int=202)
-
-
-class VolumeAdminController(AdminController):
-    """AdminController for Volumes."""
-
-    collection = 'volumes'
-    valid_status = AdminController.valid_status.union(
-        set(['attaching', 'in-use', 'detaching']))
-
-    def _update(self, *args, **kwargs):
-        db.volume_update(*args, **kwargs)
-
-    def _get(self, *args, **kwargs):
-        return self.volume_api.get(*args, **kwargs)
-
-    def _delete(self, *args, **kwargs):
-        return self.volume_api.delete(*args, **kwargs)
-
-    def validate_update(self, body):
-        update = super(VolumeAdminController, self).validate_update(body)
-        if 'attach_status' in body:
-            if body['attach_status'] not in ('detached', 'attached'):
-                raise exc.HTTPBadRequest("Must specify a valid attach_status")
-            update['attach_status'] = body['attach_status']
-        return update
-
-    @wsgi.action('os-force_detach')
-    def _force_detach(self, req, id, body):
-        """
-        Roll back a bad detach after the volume been disconnected from
-        the hypervisor.
-        """
-        context = req.environ['manila.context']
-        self.authorize(context, 'force_detach')
-        try:
-            volume = self._get(context, id)
-        except exception.NotFound:
-            raise exc.HTTPNotFound()
-        self.volume_api.terminate_connection(context, volume,
-                                             {}, force=True)
-        self.volume_api.detach(context, volume)
-        return webob.Response(status_int=202)
-
-
-class SnapshotAdminController(AdminController):
-    """AdminController for Snapshots."""
-
-    collection = 'snapshots'
-
-    def _update(self, *args, **kwargs):
-        db.snapshot_update(*args, **kwargs)
-
-    def _get(self, *args, **kwargs):
-        return self.volume_api.get_snapshot(*args, **kwargs)
-
-    def _delete(self, *args, **kwargs):
-        return self.volume_api.delete_snapshot(*args, **kwargs)
-
-
-class Admin_actions(extensions.ExtensionDescriptor):
-    """Enable admin actions."""
-
-    name = "AdminActions"
-    alias = "os-admin-actions"
-    namespace = "http://docs.openstack.org/volume/ext/admin-actions/api/v1.1"
-    updated = "2012-08-25T00:00:00+00:00"
-
-    def get_controller_extensions(self):
-        exts = []
-        for class_ in (VolumeAdminController, SnapshotAdminController):
-            controller = class_()
-            extension = extensions.ControllerExtension(
-                self, class_.collection, controller)
-            exts.append(extension)
-        return exts
diff --git a/manila/api/contrib/extended_snapshot_attributes.py b/manila/api/contrib/extended_snapshot_attributes.py
deleted file mode 100644
index d9d7b15af4..0000000000
--- a/manila/api/contrib/extended_snapshot_attributes.py
+++ /dev/null
@@ -1,125 +0,0 @@
-#   Copyright 2012 OpenStack, LLC.
-#
-#   Licensed under the Apache License, Version 2.0 (the "License"); you may
-#   not use this file except in compliance with the License. You may obtain
-#   a copy of the License at
-#
-#       http://www.apache.org/licenses/LICENSE-2.0
-#
-#   Unless required by applicable law or agreed to in writing, software
-#   distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-#   WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-#   License for the specific language governing permissions and limitations
-#   under the License.
-
-"""The Extended Snapshot Attributes API extension."""
-
-from webob import exc
-
-from manila.api import extensions
-from manila.api.openstack import wsgi
-from manila.api import xmlutil
-from manila import exception
-from manila import flags
-from manila.openstack.common import log as logging
-from manila import volume
-
-
-FLAGS = flags.FLAGS
-LOG = logging.getLogger(__name__)
-authorize = extensions.soft_extension_authorizer(
-    'volume',
-    'extended_snapshot_attributes')
-
-
-class ExtendedSnapshotAttributesController(wsgi.Controller):
-    def __init__(self, *args, **kwargs):
-        super(ExtendedSnapshotAttributesController, self).__init__(*args,
-                                                                   **kwargs)
-        self.volume_api = volume.API()
-
-    def _get_snapshots(self, context):
-        snapshots = self.volume_api.get_all_snapshots(context)
-        rval = dict((snapshot['id'], snapshot) for snapshot in snapshots)
-        return rval
-
-    def _extend_snapshot(self, context, snapshot, data):
-        for attr in ['project_id', 'progress']:
-            key = "%s:%s" % (Extended_snapshot_attributes.alias, attr)
-            snapshot[key] = data[attr]
-
-    @wsgi.extends
-    def show(self, req, resp_obj, id):
-        context = req.environ['manila.context']
-        if authorize(context):
-            # Attach our slave template to the response object
-            resp_obj.attach(xml=ExtendedSnapshotAttributeTemplate())
-
-            try:
-                snapshot = self.volume_api.get_snapshot(context, id)
-            except exception.NotFound:
-                explanation = _("Snapshot not found.")
-                raise exc.HTTPNotFound(explanation=explanation)
-
-            self._extend_snapshot(context, resp_obj.obj['snapshot'], snapshot)
-
-    @wsgi.extends
-    def detail(self, req, resp_obj):
-        context = req.environ['manila.context']
-        if authorize(context):
-            # Attach our slave template to the response object
-            resp_obj.attach(xml=ExtendedSnapshotAttributesTemplate())
-
-            snapshots = list(resp_obj.obj.get('snapshots', []))
-            db_snapshots = self._get_snapshots(context)
-
-            for snapshot_object in snapshots:
-                try:
-                    snapshot_data = db_snapshots[snapshot_object['id']]
-                except KeyError:
-                    continue
-
-                self._extend_snapshot(context, snapshot_object, snapshot_data)
-
-
-class Extended_snapshot_attributes(extensions.ExtensionDescriptor):
-    """Extended SnapshotAttributes support."""
-
-    name = "ExtendedSnapshotAttributes"
-    alias = "os-extended-snapshot-attributes"
-    namespace = ("http://docs.openstack.org/volume/ext/"
-                 "extended_snapshot_attributes/api/v1")
-    updated = "2012-06-19T00:00:00+00:00"
-
-    def get_controller_extensions(self):
-        controller = ExtendedSnapshotAttributesController()
-        extension = extensions.ControllerExtension(self, 'snapshots',
-                                                   controller)
-        return [extension]
-
-
-def make_snapshot(elem):
-    elem.set('{%s}project_id' % Extended_snapshot_attributes.namespace,
-             '%s:project_id' % Extended_snapshot_attributes.alias)
-    elem.set('{%s}progress' % Extended_snapshot_attributes.namespace,
-             '%s:progress' % Extended_snapshot_attributes.alias)
-
-
-class ExtendedSnapshotAttributeTemplate(xmlutil.TemplateBuilder):
-    def construct(self):
-        root = xmlutil.TemplateElement('snapshot', selector='snapshot')
-        make_snapshot(root)
-        alias = Extended_snapshot_attributes.alias
-        namespace = Extended_snapshot_attributes.namespace
-        return xmlutil.SlaveTemplate(root, 1, nsmap={alias: namespace})
-
-
-class ExtendedSnapshotAttributesTemplate(xmlutil.TemplateBuilder):
-    def construct(self):
-        root = xmlutil.TemplateElement('snapshots')
-        elem = xmlutil.SubTemplateElement(root, 'snapshot',
-                                          selector='snapshots')
-        make_snapshot(elem)
-        alias = Extended_snapshot_attributes.alias
-        namespace = Extended_snapshot_attributes.namespace
-        return xmlutil.SlaveTemplate(root, 1, nsmap={alias: namespace})
diff --git a/manila/api/contrib/hosts.py b/manila/api/contrib/hosts.py
deleted file mode 100644
index 4c93f25254..0000000000
--- a/manila/api/contrib/hosts.py
+++ /dev/null
@@ -1,265 +0,0 @@
-# Copyright (c) 2011 OpenStack, LLC.
-# All Rights Reserved.
-#
-#    Licensed under the Apache License, Version 2.0 (the "License"); you may
-#    not use this file except in compliance with the License. You may obtain
-#    a copy of the License at
-#
-#         http://www.apache.org/licenses/LICENSE-2.0
-#
-#    Unless required by applicable law or agreed to in writing, software
-#    distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-#    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-#    License for the specific language governing permissions and limitations
-#    under the License.
-
-"""The hosts admin extension."""
-
-import webob.exc
-from xml.parsers import expat
-
-from manila.api import extensions
-from manila.api.openstack import wsgi
-from manila.api import xmlutil
-from manila import db
-from manila import exception
-from manila import flags
-from manila.openstack.common import log as logging
-from manila.openstack.common import timeutils
-from manila import utils
-from manila.volume import api as volume_api
-
-FLAGS = flags.FLAGS
-LOG = logging.getLogger(__name__)
-authorize = extensions.extension_authorizer('volume', 'hosts')
-
-
-class HostIndexTemplate(xmlutil.TemplateBuilder):
-    def construct(self):
-        root = xmlutil.TemplateElement('hosts')
-        elem = xmlutil.SubTemplateElement(root, 'host', selector='hosts')
-        elem.set('service-status')
-        elem.set('service')
-        elem.set('zone')
-        elem.set('service-state')
-        elem.set('host_name')
-        elem.set('last-update')
-
-        return xmlutil.MasterTemplate(root, 1)
-
-
-class HostUpdateTemplate(xmlutil.TemplateBuilder):
-    def construct(self):
-        root = xmlutil.TemplateElement('host')
-        root.set('host')
-        root.set('status')
-
-        return xmlutil.MasterTemplate(root, 1)
-
-
-class HostActionTemplate(xmlutil.TemplateBuilder):
-    def construct(self):
-        root = xmlutil.TemplateElement('host')
-        root.set('host')
-
-        return xmlutil.MasterTemplate(root, 1)
-
-
-class HostShowTemplate(xmlutil.TemplateBuilder):
-    def construct(self):
-        root = xmlutil.TemplateElement('host')
-        elem = xmlutil.make_flat_dict('resource', selector='host',
-                                      subselector='resource')
-        root.append(elem)
-
-        return xmlutil.MasterTemplate(root, 1)
-
-
-class HostDeserializer(wsgi.XMLDeserializer):
-    def default(self, string):
-        try:
-            node = utils.safe_minidom_parse_string(string)
-        except expat.ExpatError:
-            msg = _("cannot understand XML")
-            raise exception.MalformedRequestBody(reason=msg)
-
-        updates = {}
-        for child in node.childNodes[0].childNodes:
-            updates[child.tagName] = self.extract_text(child)
-
-        return dict(body=updates)
-
-
-def _list_hosts(req, service=None):
-    """Returns a summary list of hosts."""
-    curr_time = timeutils.utcnow()
-    context = req.environ['manila.context']
-    services = db.service_get_all(context, False)
-    zone = ''
-    if 'zone' in req.GET:
-        zone = req.GET['zone']
-    if zone:
-        services = [s for s in services if s['availability_zone'] == zone]
-    hosts = []
-    for host in services:
-        delta = curr_time - (host['updated_at'] or host['created_at'])
-        alive = abs(utils.total_seconds(delta)) <= FLAGS.service_down_time
-        status = (alive and "available") or "unavailable"
-        active = 'enabled'
-        if host['disabled']:
-            active = 'disabled'
-        LOG.debug('status, active and update: %s, %s, %s' %
-                  (status, active, host['updated_at']))
-        hosts.append({'host_name': host['host'],
-                      'service': host['topic'],
-                      'zone': host['availability_zone'],
-                      'service-status': status,
-                      'service-state': active,
-                      'last-update': host['updated_at']})
-    if service:
-        hosts = [host for host in hosts
-                 if host["service"] == service]
-    return hosts
-
-
-def check_host(fn):
-    """Makes sure that the host exists."""
-    def wrapped(self, req, id, service=None, *args, **kwargs):
-        listed_hosts = _list_hosts(req, service)
-        hosts = [h["host_name"] for h in listed_hosts]
-        if id in hosts:
-            return fn(self, req, id, *args, **kwargs)
-        else:
-            message = _("Host '%s' could not be found.") % id
-            raise webob.exc.HTTPNotFound(explanation=message)
-    return wrapped
-
-
-class HostController(object):
-    """The Hosts API controller for the OpenStack API."""
-    def __init__(self):
-        self.api = volume_api.HostAPI()
-        super(HostController, self).__init__()
-
-    @wsgi.serializers(xml=HostIndexTemplate)
-    def index(self, req):
-        authorize(req.environ['manila.context'])
-        return {'hosts': _list_hosts(req)}
-
-    @wsgi.serializers(xml=HostUpdateTemplate)
-    @wsgi.deserializers(xml=HostDeserializer)
-    @check_host
-    def update(self, req, id, body):
-        authorize(req.environ['manila.context'])
-        update_values = {}
-        for raw_key, raw_val in body.iteritems():
-            key = raw_key.lower().strip()
-            val = raw_val.lower().strip()
-            if key == "status":
-                if val in ("enable", "disable"):
-                    update_values['status'] = val.startswith("enable")
-                else:
-                    explanation = _("Invalid status: '%s'") % raw_val
-                    raise webob.exc.HTTPBadRequest(explanation=explanation)
-            else:
-                explanation = _("Invalid update setting: '%s'") % raw_key
-                raise webob.exc.HTTPBadRequest(explanation=explanation)
-        update_setters = {'status': self._set_enabled_status}
-        result = {}
-        for key, value in update_values.iteritems():
-            result.update(update_setters[key](req, id, value))
-        return result
-
-    def _set_enabled_status(self, req, host, enabled):
-        """Sets the specified host's ability to accept new volumes."""
-        context = req.environ['manila.context']
-        state = "enabled" if enabled else "disabled"
-        LOG.audit(_("Setting host %(host)s to %(state)s.") % locals())
-        result = self.api.set_host_enabled(context,
-                                           host=host,
-                                           enabled=enabled)
-        if result not in ("enabled", "disabled"):
-            # An error message was returned
-            raise webob.exc.HTTPBadRequest(explanation=result)
-        return {"host": host, "status": result}
-
-    @wsgi.serializers(xml=HostShowTemplate)
-    def show(self, req, id):
-        """Shows the volume usage info given by hosts.
-
-        :param context: security context
-        :param host: hostname
-        :returns: expected to use HostShowTemplate.
-            ex.::
-
-                {'host': {'resource':D},..}
-                D: {'host': 'hostname','project': 'admin',
-                    'volume_count': 1, 'total_volume_gb': 2048}
-        """
-        host = id
-        context = req.environ['manila.context']
-        if not context.is_admin:
-            msg = _("Describe-resource is admin only functionality")
-            raise webob.exc.HTTPForbidden(explanation=msg)
-
-        try:
-            host_ref = db.service_get_by_host_and_topic(context,
-                                                        host,
-                                                        FLAGS.volume_topic)
-        except exception.ServiceNotFound:
-            raise webob.exc.HTTPNotFound(explanation=_("Host not found"))
-
-        # Getting total available/used resource
-        # TODO(jdg): Add summary info for Snapshots
-        volume_refs = db.volume_get_all_by_host(context, host_ref['host'])
-        (count, sum) = db.volume_data_get_for_host(context,
-                                                   host_ref['host'])
-
-        snap_count_total = 0
-        snap_sum_total = 0
-        resources = [{'resource': {'host': host, 'project': '(total)',
-                      'volume_count': str(count),
-                      'total_volume_gb': str(sum),
-                      'snapshot_count': str(snap_count_total),
-                      'total_snapshot_gb': str(snap_sum_total)}}]
-
-        project_ids = [v['project_id'] for v in volume_refs]
-        project_ids = list(set(project_ids))
-        for project_id in project_ids:
-            (count, sum) = db.volume_data_get_for_project(context, project_id)
-            (snap_count, snap_sum) = db.snapshot_data_get_for_project(
-                context,
-                project_id)
-            resources.append(
-                {'resource':
-                    {'host': host,
-                     'project': project_id,
-                     'volume_count': str(count),
-                     'total_volume_gb': str(sum),
-                     'snapshot_count': str(snap_count),
-                     'total_snapshot_gb': str(snap_sum)}})
-            snap_count_total += int(snap_count)
-            snap_sum_total += int(snap_sum)
-        resources[0]['resource']['snapshot_count'] = str(snap_count_total)
-        resources[0]['resource']['total_snapshot_gb'] = str(snap_sum_total)
-        return {"host": resources}
-
-
-class Hosts(extensions.ExtensionDescriptor):
-    """Admin-only host administration"""
-
-    name = "Hosts"
-    alias = "os-hosts"
-    namespace = "http://docs.openstack.org/volume/ext/hosts/api/v1.1"
-    updated = "2011-06-29T00:00:00+00:00"
-
-    def get_resources(self):
-        resources = [extensions.ResourceExtension('os-hosts',
-                                                  HostController(),
-                                                  collection_actions={
-                                                      'update': 'PUT'},
-                                                  member_actions={
-                                                      'startup': 'GET',
-                                                      'shutdown': 'GET',
-                                                      'reboot': 'GET'})]
-        return resources
diff --git a/manila/api/contrib/types_extra_specs.py b/manila/api/contrib/types_extra_specs.py
deleted file mode 100644
index 85cbbe794c..0000000000
--- a/manila/api/contrib/types_extra_specs.py
+++ /dev/null
@@ -1,162 +0,0 @@
-# vim: tabstop=4 shiftwidth=4 softtabstop=4
-
-# Copyright (c) 2011 Zadara Storage Inc.
-# Copyright (c) 2011 OpenStack LLC.
-#
-#    Licensed under the Apache License, Version 2.0 (the "License"); you may
-#    not use this file except in compliance with the License. You may obtain
-#    a copy of the License at
-#
-#         http://www.apache.org/licenses/LICENSE-2.0
-#
-#    Unless required by applicable law or agreed to in writing, software
-#    distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-#    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-#    License for the specific language governing permissions and limitations
-#    under the License.
-
-"""The volume types extra specs extension"""
-
-import webob
-
-from manila.api import extensions
-from manila.api.openstack import wsgi
-from manila.api import xmlutil
-from manila import db
-from manila import exception
-from manila.openstack.common.notifier import api as notifier_api
-from manila.volume import volume_types
-
-authorize = extensions.extension_authorizer('volume', 'types_extra_specs')
-
-
-class VolumeTypeExtraSpecsTemplate(xmlutil.TemplateBuilder):
-    def construct(self):
-        root = xmlutil.make_flat_dict('extra_specs', selector='extra_specs')
-        return xmlutil.MasterTemplate(root, 1)
-
-
-class VolumeTypeExtraSpecTemplate(xmlutil.TemplateBuilder):
-    def construct(self):
-        tagname = xmlutil.Selector('key')
-
-        def extraspec_sel(obj, do_raise=False):
-            # Have to extract the key and value for later use...
-            key, value = obj.items()[0]
-            return dict(key=key, value=value)
-
-        root = xmlutil.TemplateElement(tagname, selector=extraspec_sel)
-        root.text = 'value'
-        return xmlutil.MasterTemplate(root, 1)
-
-
-class VolumeTypeExtraSpecsController(wsgi.Controller):
-    """ The volume type extra specs API controller for the OpenStack API """
-
-    def _get_extra_specs(self, context, type_id):
-        extra_specs = db.volume_type_extra_specs_get(context, type_id)
-        specs_dict = {}
-        for key, value in extra_specs.iteritems():
-            specs_dict[key] = value
-        return dict(extra_specs=specs_dict)
-
-    def _check_type(self, context, type_id):
-        try:
-            volume_types.get_volume_type(context, type_id)
-        except exception.NotFound as ex:
-            raise webob.exc.HTTPNotFound(explanation=unicode(ex))
-
-    @wsgi.serializers(xml=VolumeTypeExtraSpecsTemplate)
-    def index(self, req, type_id):
-        """ Returns the list of extra specs for a given volume type """
-        context = req.environ['manila.context']
-        authorize(context)
-        self._check_type(context, type_id)
-        return self._get_extra_specs(context, type_id)
-
-    @wsgi.serializers(xml=VolumeTypeExtraSpecsTemplate)
-    def create(self, req, type_id, body=None):
-        context = req.environ['manila.context']
-        authorize(context)
-
-        if not self.is_valid_body(body, 'extra_specs'):
-            raise webob.exc.HTTPBadRequest()
-
-        self._check_type(context, type_id)
-
-        specs = body['extra_specs']
-        db.volume_type_extra_specs_update_or_create(context,
-                                                    type_id,
-                                                    specs)
-        notifier_info = dict(type_id=type_id, specs=specs)
-        notifier_api.notify(context, 'volumeTypeExtraSpecs',
-                            'volume_type_extra_specs.create',
-                            notifier_api.INFO, notifier_info)
-        return body
-
-    @wsgi.serializers(xml=VolumeTypeExtraSpecTemplate)
-    def update(self, req, type_id, id, body=None):
-        context = req.environ['manila.context']
-        authorize(context)
-        if not body:
-            expl = _('Request body empty')
-            raise webob.exc.HTTPBadRequest(explanation=expl)
-        self._check_type(context, type_id)
-        if id not in body:
-            expl = _('Request body and URI mismatch')
-            raise webob.exc.HTTPBadRequest(explanation=expl)
-        if len(body) > 1:
-            expl = _('Request body contains too many items')
-            raise webob.exc.HTTPBadRequest(explanation=expl)
-        db.volume_type_extra_specs_update_or_create(context,
-                                                    type_id,
-                                                    body)
-        notifier_info = dict(type_id=type_id, id=id)
-        notifier_api.notify(context, 'volumeTypeExtraSpecs',
-                            'volume_type_extra_specs.update',
-                            notifier_api.INFO, notifier_info)
-        return body
-
-    @wsgi.serializers(xml=VolumeTypeExtraSpecTemplate)
-    def show(self, req, type_id, id):
-        """Return a single extra spec item."""
-        context = req.environ['manila.context']
-        authorize(context)
-        self._check_type(context, type_id)
-        specs = self._get_extra_specs(context, type_id)
-        if id in specs['extra_specs']:
-            return {id: specs['extra_specs'][id]}
-        else:
-            raise webob.exc.HTTPNotFound()
-
-    def delete(self, req, type_id, id):
-        """ Deletes an existing extra spec """
-        context = req.environ['manila.context']
-        self._check_type(context, type_id)
-        authorize(context)
-        db.volume_type_extra_specs_delete(context, type_id, id)
-        notifier_info = dict(type_id=type_id, id=id)
-        notifier_api.notify(context, 'volumeTypeExtraSpecs',
-                            'volume_type_extra_specs.delete',
-                            notifier_api.INFO, notifier_info)
-        return webob.Response(status_int=202)
-
-
-class Types_extra_specs(extensions.ExtensionDescriptor):
-    """Types extra specs support"""
-
-    name = "TypesExtraSpecs"
-    alias = "os-types-extra-specs"
-    namespace = "http://docs.openstack.org/volume/ext/types-extra-specs/api/v1"
-    updated = "2011-08-24T00:00:00+00:00"
-
-    def get_resources(self):
-        resources = []
-        res = extensions.ResourceExtension('extra_specs',
-                                           VolumeTypeExtraSpecsController(),
-                                           parent=dict(member_name='type',
-                                                       collection_name='types')
-                                           )
-        resources.append(res)
-
-        return resources
diff --git a/manila/api/contrib/types_manage.py b/manila/api/contrib/types_manage.py
deleted file mode 100644
index 0c4dacf1af..0000000000
--- a/manila/api/contrib/types_manage.py
+++ /dev/null
@@ -1,122 +0,0 @@
-# vim: tabstop=4 shiftwidth=4 softtabstop=4
-
-# Copyright (c) 2011 Zadara Storage Inc.
-# Copyright (c) 2011 OpenStack LLC.
-#
-#    Licensed under the Apache License, Version 2.0 (the "License"); you may
-#    not use this file except in compliance with the License. You may obtain
-#    a copy of the License at
-#
-#         http://www.apache.org/licenses/LICENSE-2.0
-#
-#    Unless required by applicable law or agreed to in writing, software
-#    distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-#    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-#    License for the specific language governing permissions and limitations
-#    under the License.
-
-"""The volume types manage extension."""
-
-import webob
-
-from manila.api import extensions
-from manila.api.openstack import wsgi
-from manila.api.v1 import types
-from manila.api.views import types as views_types
-from manila import exception
-from manila.openstack.common.notifier import api as notifier_api
-from manila.volume import volume_types
-
-
-authorize = extensions.extension_authorizer('volume', 'types_manage')
-
-
-class VolumeTypesManageController(wsgi.Controller):
-    """The volume types API controller for the OpenStack API."""
-
-    _view_builder_class = views_types.ViewBuilder
-
-    def _notify_voloume_type_error(self, context, method, payload):
-        notifier_api.notify(context,
-                            'volumeType',
-                            method,
-                            notifier_api.ERROR,
-                            payload)
-
-    @wsgi.action("create")
-    @wsgi.serializers(xml=types.VolumeTypeTemplate)
-    def _create(self, req, body):
-        """Creates a new volume type."""
-        context = req.environ['manila.context']
-        authorize(context)
-
-        if not self.is_valid_body(body, 'volume_type'):
-            raise webob.exc.HTTPBadRequest()
-
-        vol_type = body['volume_type']
-        name = vol_type.get('name', None)
-        specs = vol_type.get('extra_specs', {})
-
-        if name is None or name == "":
-            raise webob.exc.HTTPBadRequest()
-
-        try:
-            volume_types.create(context, name, specs)
-            vol_type = volume_types.get_volume_type_by_name(context, name)
-            notifier_info = dict(volume_types=vol_type)
-            notifier_api.notify(context, 'volumeType',
-                                'volume_type.create',
-                                notifier_api.INFO, notifier_info)
-
-        except exception.VolumeTypeExists as err:
-            notifier_err = dict(volume_types=vol_type, error_message=str(err))
-            self._notify_voloume_type_error(context,
-                                            'volume_type.create',
-                                            notifier_err)
-
-            raise webob.exc.HTTPConflict(explanation=str(err))
-        except exception.NotFound as err:
-            notifier_err = dict(volume_types=vol_type, error_message=str(err))
-            self._notify_voloume_type_error(context,
-                                            'volume_type.create',
-                                            notifier_err)
-            raise webob.exc.HTTPNotFound()
-
-        return self._view_builder.show(req, vol_type)
-
-    @wsgi.action("delete")
-    def _delete(self, req, id):
-        """Deletes an existing volume type."""
-        context = req.environ['manila.context']
-        authorize(context)
-
-        try:
-            vol_type = volume_types.get_volume_type(context, id)
-            volume_types.destroy(context, vol_type['id'])
-            notifier_info = dict(volume_types=vol_type)
-            notifier_api.notify(context, 'volumeType',
-                                'volume_type.delete',
-                                notifier_api.INFO, notifier_info)
-        except exception.NotFound as err:
-            notifier_err = dict(id=id, error_message=str(err))
-            self._notify_voloume_type_error(context,
-                                            'volume_type.delete',
-                                            notifier_err)
-
-            raise webob.exc.HTTPNotFound()
-
-        return webob.Response(status_int=202)
-
-
-class Types_manage(extensions.ExtensionDescriptor):
-    """Types manage support."""
-
-    name = "TypesManage"
-    alias = "os-types-manage"
-    namespace = "http://docs.openstack.org/volume/ext/types-manage/api/v1"
-    updated = "2011-08-24T00:00:00+00:00"
-
-    def get_controller_extensions(self):
-        controller = VolumeTypesManageController()
-        extension = extensions.ControllerExtension(self, 'types', controller)
-        return [extension]
diff --git a/manila/api/contrib/volume_actions.py b/manila/api/contrib/volume_actions.py
deleted file mode 100644
index 87cdfea7d3..0000000000
--- a/manila/api/contrib/volume_actions.py
+++ /dev/null
@@ -1,204 +0,0 @@
-#   Copyright 2012 OpenStack, LLC.
-#
-#   Licensed under the Apache License, Version 2.0 (the "License"); you may
-#   not use this file except in compliance with the License. You may obtain
-#   a copy of the License at
-#
-#       http://www.apache.org/licenses/LICENSE-2.0
-#
-#   Unless required by applicable law or agreed to in writing, software
-#   distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-#   WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-#   License for the specific language governing permissions and limitations
-#   under the License.
-
-import webob
-
-from manila.api import extensions
-from manila.api.openstack import wsgi
-from manila.api import xmlutil
-from manila import exception
-from manila import flags
-from manila.openstack.common import log as logging
-from manila.openstack.common.rpc import common as rpc_common
-from manila import utils
-from manila import volume
-
-
-FLAGS = flags.FLAGS
-LOG = logging.getLogger(__name__)
-
-
-def authorize(context, action_name):
-    action = 'volume_actions:%s' % action_name
-    extensions.extension_authorizer('volume', action)(context)
-
-
-class VolumeToImageSerializer(xmlutil.TemplateBuilder):
-    def construct(self):
-        root = xmlutil.TemplateElement('os-volume_upload_image',
-                                       selector='os-volume_upload_image')
-        root.set('id')
-        root.set('updated_at')
-        root.set('status')
-        root.set('display_description')
-        root.set('size')
-        root.set('volume_type')
-        root.set('image_id')
-        root.set('container_format')
-        root.set('disk_format')
-        root.set('image_name')
-        return xmlutil.MasterTemplate(root, 1)
-
-
-class VolumeToImageDeserializer(wsgi.XMLDeserializer):
-    """Deserializer to handle xml-formatted requests."""
-    def default(self, string):
-        dom = utils.safe_minidom_parse_string(string)
-        action_node = dom.childNodes[0]
-        action_name = action_node.tagName
-
-        action_data = {}
-        attributes = ["force", "image_name", "container_format", "disk_format"]
-        for attr in attributes:
-            if action_node.hasAttribute(attr):
-                action_data[attr] = action_node.getAttribute(attr)
-        if 'force' in action_data and action_data['force'] == 'True':
-            action_data['force'] = True
-        return {'body': {action_name: action_data}}
-
-
-class VolumeActionsController(wsgi.Controller):
-    def __init__(self, *args, **kwargs):
-        super(VolumeActionsController, self).__init__(*args, **kwargs)
-        self.volume_api = volume.API()
-
-    @wsgi.action('os-attach')
-    def _attach(self, req, id, body):
-        """Add attachment metadata."""
-        context = req.environ['manila.context']
-        volume = self.volume_api.get(context, id)
-
-        instance_uuid = body['os-attach']['instance_uuid']
-        mountpoint = body['os-attach']['mountpoint']
-
-        self.volume_api.attach(context, volume,
-                               instance_uuid, mountpoint)
-        return webob.Response(status_int=202)
-
-    @wsgi.action('os-detach')
-    def _detach(self, req, id, body):
-        """Clear attachment metadata."""
-        context = req.environ['manila.context']
-        volume = self.volume_api.get(context, id)
-        self.volume_api.detach(context, volume)
-        return webob.Response(status_int=202)
-
-    @wsgi.action('os-reserve')
-    def _reserve(self, req, id, body):
-        """Mark volume as reserved."""
-        context = req.environ['manila.context']
-        volume = self.volume_api.get(context, id)
-        self.volume_api.reserve_volume(context, volume)
-        return webob.Response(status_int=202)
-
-    @wsgi.action('os-unreserve')
-    def _unreserve(self, req, id, body):
-        """Unmark volume as reserved."""
-        context = req.environ['manila.context']
-        volume = self.volume_api.get(context, id)
-        self.volume_api.unreserve_volume(context, volume)
-        return webob.Response(status_int=202)
-
-    @wsgi.action('os-begin_detaching')
-    def _begin_detaching(self, req, id, body):
-        """Update volume status to 'detaching'."""
-        context = req.environ['manila.context']
-        volume = self.volume_api.get(context, id)
-        self.volume_api.begin_detaching(context, volume)
-        return webob.Response(status_int=202)
-
-    @wsgi.action('os-roll_detaching')
-    def _roll_detaching(self, req, id, body):
-        """Roll back volume status to 'in-use'."""
-        context = req.environ['manila.context']
-        volume = self.volume_api.get(context, id)
-        self.volume_api.roll_detaching(context, volume)
-        return webob.Response(status_int=202)
-
-    @wsgi.action('os-initialize_connection')
-    def _initialize_connection(self, req, id, body):
-        """Initialize volume attachment."""
-        context = req.environ['manila.context']
-        volume = self.volume_api.get(context, id)
-        connector = body['os-initialize_connection']['connector']
-        info = self.volume_api.initialize_connection(context,
-                                                     volume,
-                                                     connector)
-        return {'connection_info': info}
-
-    @wsgi.action('os-terminate_connection')
-    def _terminate_connection(self, req, id, body):
-        """Terminate volume attachment."""
-        context = req.environ['manila.context']
-        volume = self.volume_api.get(context, id)
-        connector = body['os-terminate_connection']['connector']
-        self.volume_api.terminate_connection(context, volume, connector)
-        return webob.Response(status_int=202)
-
-    @wsgi.response(202)
-    @wsgi.action('os-volume_upload_image')
-    @wsgi.serializers(xml=VolumeToImageSerializer)
-    @wsgi.deserializers(xml=VolumeToImageDeserializer)
-    def _volume_upload_image(self, req, id, body):
-        """Uploads the specified volume to image service."""
-        context = req.environ['manila.context']
-        try:
-            params = body['os-volume_upload_image']
-        except (TypeError, KeyError):
-            msg = _("Invalid request body")
-            raise webob.exc.HTTPBadRequest(explanation=msg)
-
-        if not params.get("image_name"):
-            msg = _("No image_name was specified in request.")
-            raise webob.exc.HTTPBadRequest(explanation=msg)
-
-        force = params.get('force', False)
-        try:
-            volume = self.volume_api.get(context, id)
-        except exception.VolumeNotFound, error:
-            raise webob.exc.HTTPNotFound(explanation=unicode(error))
-        authorize(context, "upload_image")
-        image_metadata = {"container_format": params.get("container_format",
-                                                         "bare"),
-                          "disk_format": params.get("disk_format", "raw"),
-                          "name": params["image_name"]}
-        try:
-            response = self.volume_api.copy_volume_to_image(context,
-                                                            volume,
-                                                            image_metadata,
-                                                            force)
-        except exception.InvalidVolume, error:
-            raise webob.exc.HTTPBadRequest(explanation=unicode(error))
-        except ValueError, error:
-            raise webob.exc.HTTPBadRequest(explanation=unicode(error))
-        except rpc_common.RemoteError as error:
-            msg = "%(err_type)s: %(err_msg)s" % {'err_type': error.exc_type,
-                                                 'err_msg': error.value}
-            raise webob.exc.HTTPBadRequest(explanation=msg)
-        return {'os-volume_upload_image': response}
-
-
-class Volume_actions(extensions.ExtensionDescriptor):
-    """Enable volume actions
-    """
-
-    name = "VolumeActions"
-    alias = "os-volume-actions"
-    namespace = "http://docs.openstack.org/volume/ext/volume-actions/api/v1.1"
-    updated = "2012-05-31T00:00:00+00:00"
-
-    def get_controller_extensions(self):
-        controller = VolumeActionsController()
-        extension = extensions.ControllerExtension(self, 'volumes', controller)
-        return [extension]
diff --git a/manila/api/contrib/volume_host_attribute.py b/manila/api/contrib/volume_host_attribute.py
deleted file mode 100644
index 573d83a23d..0000000000
--- a/manila/api/contrib/volume_host_attribute.py
+++ /dev/null
@@ -1,93 +0,0 @@
-#   Copyright 2012 OpenStack, LLC.
-#
-#   Licensed under the Apache License, Version 2.0 (the "License"); you may
-#   not use this file except in compliance with the License. You may obtain
-#   a copy of the License at
-#
-#       http://www.apache.org/licenses/LICENSE-2.0
-#
-#   Unless required by applicable law or agreed to in writing, software
-#   distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-#   WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-#   License for the specific language governing permissions and limitations
-#   under the License.
-
-from manila.api import extensions
-from manila.api.openstack import wsgi
-from manila.api import xmlutil
-from manila.openstack.common import log as logging
-from manila import volume
-
-
-LOG = logging.getLogger(__name__)
-authorize = extensions.soft_extension_authorizer('volume',
-                                                 'volume_host_attribute')
-
-
-class VolumeHostAttributeController(wsgi.Controller):
-    def __init__(self, *args, **kwargs):
-        super(VolumeHostAttributeController, self).__init__(*args, **kwargs)
-        self.volume_api = volume.API()
-
-    def _add_volume_host_attribute(self, context, resp_volume):
-        try:
-            db_volume = self.volume_api.get(context, resp_volume['id'])
-        except Exception:
-            return
-        else:
-            key = "%s:host" % Volume_host_attribute.alias
-            resp_volume[key] = db_volume['host']
-
-    @wsgi.extends
-    def show(self, req, resp_obj, id):
-        context = req.environ['manila.context']
-        if authorize(context):
-            resp_obj.attach(xml=VolumeHostAttributeTemplate())
-            self._add_volume_host_attribute(context, resp_obj.obj['volume'])
-
-    @wsgi.extends
-    def detail(self, req, resp_obj):
-        context = req.environ['manila.context']
-        if authorize(context):
-            resp_obj.attach(xml=VolumeListHostAttributeTemplate())
-            for volume in list(resp_obj.obj['volumes']):
-                self._add_volume_host_attribute(context, volume)
-
-
-class Volume_host_attribute(extensions.ExtensionDescriptor):
-    """Expose host as an attribute of a volume."""
-
-    name = "VolumeHostAttribute"
-    alias = "os-vol-host-attr"
-    namespace = ("http://docs.openstack.org/volume/ext/"
-                 "volume_host_attribute/api/v1")
-    updated = "2011-11-03T00:00:00+00:00"
-
-    def get_controller_extensions(self):
-        controller = VolumeHostAttributeController()
-        extension = extensions.ControllerExtension(self, 'volumes', controller)
-        return [extension]
-
-
-def make_volume(elem):
-    elem.set('{%s}host' % Volume_host_attribute.namespace,
-             '%s:host' % Volume_host_attribute.alias)
-
-
-class VolumeHostAttributeTemplate(xmlutil.TemplateBuilder):
-    def construct(self):
-        root = xmlutil.TemplateElement('volume', selector='volume')
-        make_volume(root)
-        alias = Volume_host_attribute.alias
-        namespace = Volume_host_attribute.namespace
-        return xmlutil.SlaveTemplate(root, 1, nsmap={alias: namespace})
-
-
-class VolumeListHostAttributeTemplate(xmlutil.TemplateBuilder):
-    def construct(self):
-        root = xmlutil.TemplateElement('volumes')
-        elem = xmlutil.SubTemplateElement(root, 'volume', selector='volumes')
-        make_volume(elem)
-        alias = Volume_host_attribute.alias
-        namespace = Volume_host_attribute.namespace
-        return xmlutil.SlaveTemplate(root, 1, nsmap={alias: namespace})
diff --git a/manila/api/contrib/volume_image_metadata.py b/manila/api/contrib/volume_image_metadata.py
deleted file mode 100644
index 66054d4be8..0000000000
--- a/manila/api/contrib/volume_image_metadata.py
+++ /dev/null
@@ -1,106 +0,0 @@
-#   Copyright 2012 OpenStack, LLC.
-#
-#   Licensed under the Apache License, Version 2.0 (the "License"); you may
-#   not use this file except in compliance with the License. You may obtain
-#   a copy of the License at
-#
-#       http://www.apache.org/licenses/LICENSE-2.0
-#
-#   Unless required by applicable law or agreed to in writing, software
-#   distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-#   WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-#   License for the specific language governing permissions and limitations
-#   under the License.
-
-"""The Volume Image Metadata API extension."""
-
-from manila.api import extensions
-from manila.api.openstack import wsgi
-from manila.api import xmlutil
-from manila import volume
-
-
-authorize = extensions.soft_extension_authorizer('volume',
-                                                 'volume_image_metadata')
-
-
-class VolumeImageMetadataController(wsgi.Controller):
-    def __init__(self, *args, **kwargs):
-        super(VolumeImageMetadataController, self).__init__(*args, **kwargs)
-        self.volume_api = volume.API()
-
-    def _add_image_metadata(self, context, resp_volume):
-        try:
-            image_meta = self.volume_api.get_volume_image_metadata(
-                context, resp_volume)
-        except Exception:
-            return
-        else:
-            if image_meta:
-                resp_volume['volume_image_metadata'] = dict(
-                    image_meta.iteritems())
-
-    @wsgi.extends
-    def show(self, req, resp_obj, id):
-        context = req.environ['manila.context']
-        if authorize(context):
-            resp_obj.attach(xml=VolumeImageMetadataTemplate())
-            self._add_image_metadata(context, resp_obj.obj['volume'])
-
-    @wsgi.extends
-    def detail(self, req, resp_obj):
-        context = req.environ['manila.context']
-        if authorize(context):
-            resp_obj.attach(xml=VolumesImageMetadataTemplate())
-            for volume in list(resp_obj.obj.get('volumes', [])):
-                self._add_image_metadata(context, volume)
-
-
-class Volume_image_metadata(extensions.ExtensionDescriptor):
-    """Show image metadata associated with the volume"""
-
-    name = "VolumeImageMetadata"
-    alias = "os-vol-image-meta"
-    namespace = ("http://docs.openstack.org/volume/ext/"
-                 "volume_image_metadata/api/v1")
-    updated = "2012-12-07T00:00:00+00:00"
-
-    def get_controller_extensions(self):
-        controller = VolumeImageMetadataController()
-        extension = extensions.ControllerExtension(self, 'volumes', controller)
-        return [extension]
-
-
-class VolumeImageMetadataMetadataTemplate(xmlutil.TemplateBuilder):
-    def construct(self):
-        root = xmlutil.TemplateElement('volume_image_metadata',
-                                       selector='volume_image_metadata')
-        elem = xmlutil.SubTemplateElement(root, 'meta',
-                                          selector=xmlutil.get_items)
-        elem.set('key', 0)
-        elem.text = 1
-
-        return xmlutil.MasterTemplate(root, 1)
-
-
-class VolumeImageMetadataTemplate(xmlutil.TemplateBuilder):
-    def construct(self):
-        root = xmlutil.TemplateElement('volume', selector='volume')
-        root.append(VolumeImageMetadataMetadataTemplate())
-
-        alias = Volume_image_metadata.alias
-        namespace = Volume_image_metadata.namespace
-
-        return xmlutil.SlaveTemplate(root, 1, nsmap={alias: namespace})
-
-
-class VolumesImageMetadataTemplate(xmlutil.TemplateBuilder):
-    def construct(self):
-        root = xmlutil.TemplateElement('volumes')
-        elem = xmlutil.SubTemplateElement(root, 'volume', selector='volume')
-        elem.append(VolumeImageMetadataMetadataTemplate())
-
-        alias = Volume_image_metadata.alias
-        namespace = Volume_image_metadata.namespace
-
-        return xmlutil.SlaveTemplate(root, 1, nsmap={alias: namespace})
diff --git a/manila/api/contrib/volume_tenant_attribute.py b/manila/api/contrib/volume_tenant_attribute.py
deleted file mode 100644
index 35f24048a1..0000000000
--- a/manila/api/contrib/volume_tenant_attribute.py
+++ /dev/null
@@ -1,91 +0,0 @@
-#   Copyright 2012 OpenStack, LLC.
-#
-#   Licensed under the Apache License, Version 2.0 (the "License"); you may
-#   not use this file except in compliance with the License. You may obtain
-#   a copy of the License at
-#
-#       http://www.apache.org/licenses/LICENSE-2.0
-#
-#   Unless required by applicable law or agreed to in writing, software
-#   distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-#   WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-#   License for the specific language governing permissions and limitations
-#   under the License.
-
-from manila.api import extensions
-from manila.api.openstack import wsgi
-from manila.api import xmlutil
-from manila import volume
-
-
-authorize = extensions.soft_extension_authorizer('volume',
-                                                 'volume_tenant_attribute')
-
-
-class VolumeTenantAttributeController(wsgi.Controller):
-    def __init__(self, *args, **kwargs):
-        super(VolumeTenantAttributeController, self).__init__(*args, **kwargs)
-        self.volume_api = volume.API()
-
-    def _add_volume_tenant_attribute(self, context, resp_volume):
-        try:
-            db_volume = self.volume_api.get(context, resp_volume['id'])
-        except Exception:
-            return
-        else:
-            key = "%s:tenant_id" % Volume_tenant_attribute.alias
-            resp_volume[key] = db_volume['project_id']
-
-    @wsgi.extends
-    def show(self, req, resp_obj, id):
-        context = req.environ['manila.context']
-        if authorize(context):
-            resp_obj.attach(xml=VolumeTenantAttributeTemplate())
-            self._add_volume_tenant_attribute(context, resp_obj.obj['volume'])
-
-    @wsgi.extends
-    def detail(self, req, resp_obj):
-        context = req.environ['manila.context']
-        if authorize(context):
-            resp_obj.attach(xml=VolumeListTenantAttributeTemplate())
-            for volume in list(resp_obj.obj['volumes']):
-                self._add_volume_tenant_attribute(context, volume)
-
-
-class Volume_tenant_attribute(extensions.ExtensionDescriptor):
-    """Expose the internal project_id as an attribute of a volume."""
-
-    name = "VolumeTenantAttribute"
-    alias = "os-vol-tenant-attr"
-    namespace = ("http://docs.openstack.org/volume/ext/"
-                 "volume_tenant_attribute/api/v1")
-    updated = "2011-11-03T00:00:00+00:00"
-
-    def get_controller_extensions(self):
-        controller = VolumeTenantAttributeController()
-        extension = extensions.ControllerExtension(self, 'volumes', controller)
-        return [extension]
-
-
-def make_volume(elem):
-    elem.set('{%s}tenant_id' % Volume_tenant_attribute.namespace,
-             '%s:tenant_id' % Volume_tenant_attribute.alias)
-
-
-class VolumeTenantAttributeTemplate(xmlutil.TemplateBuilder):
-    def construct(self):
-        root = xmlutil.TemplateElement('volume', selector='volume')
-        make_volume(root)
-        alias = Volume_tenant_attribute.alias
-        namespace = Volume_tenant_attribute.namespace
-        return xmlutil.SlaveTemplate(root, 1, nsmap={alias: namespace})
-
-
-class VolumeListTenantAttributeTemplate(xmlutil.TemplateBuilder):
-    def construct(self):
-        root = xmlutil.TemplateElement('volumes')
-        elem = xmlutil.SubTemplateElement(root, 'volume', selector='volumes')
-        make_volume(elem)
-        alias = Volume_tenant_attribute.alias
-        namespace = Volume_tenant_attribute.namespace
-        return xmlutil.SlaveTemplate(root, 1, nsmap={alias: namespace})
diff --git a/manila/api/v1/router.py b/manila/api/v1/router.py
index 9b61b67734..b608d74c33 100644
--- a/manila/api/v1/router.py
+++ b/manila/api/v1/router.py
@@ -24,11 +24,6 @@ WSGI middleware for OpenStack Volume API.
 from manila.api import extensions
 import manila.api.openstack
 from manila.api.v1 import limits
-from manila.api.v1 import snapshot_metadata
-from manila.api.v1 import snapshots
-from manila.api.v1 import types
-from manila.api.v1 import volume_metadata
-from manila.api.v1 import volumes
 from manila.api import versions
 from manila.openstack.common import log as logging
 
@@ -50,46 +45,3 @@ class APIRouter(manila.api.openstack.APIRouter):
                        action='show')
 
         mapper.redirect("", "/")
-
-        self.resources['volumes'] = volumes.create_resource(ext_mgr)
-        mapper.resource("volume", "volumes",
-                        controller=self.resources['volumes'],
-                        collection={'detail': 'GET'},
-                        member={'action': 'POST'})
-
-        self.resources['types'] = types.create_resource()
-        mapper.resource("type", "types",
-                        controller=self.resources['types'])
-
-        self.resources['snapshots'] = snapshots.create_resource(ext_mgr)
-        mapper.resource("snapshot", "snapshots",
-                        controller=self.resources['snapshots'],
-                        collection={'detail': 'GET'},
-                        member={'action': 'POST'})
-
-        self.resources['snapshot_metadata'] = \
-            snapshot_metadata.create_resource()
-        snapshot_metadata_controller = self.resources['snapshot_metadata']
-
-        mapper.resource("snapshot_metadata", "metadata",
-                        controller=snapshot_metadata_controller,
-                        parent_resource=dict(member_name='snapshot',
-                        collection_name='snapshots'))
-
-        self.resources['limits'] = limits.create_resource()
-        mapper.resource("limit", "limits",
-                        controller=self.resources['limits'])
-        self.resources['volume_metadata'] = \
-            volume_metadata.create_resource()
-        volume_metadata_controller = self.resources['volume_metadata']
-
-        mapper.resource("volume_metadata", "metadata",
-                        controller=volume_metadata_controller,
-                        parent_resource=dict(member_name='volume',
-                        collection_name='volumes'))
-
-        mapper.connect("metadata",
-                       "/{project_id}/volumes/{volume_id}/metadata",
-                       controller=volume_metadata_controller,
-                       action='update_all',
-                       conditions={"method": ['PUT']})
diff --git a/manila/api/v1/snapshot_metadata.py b/manila/api/v1/snapshot_metadata.py
deleted file mode 100644
index cf573fdcff..0000000000
--- a/manila/api/v1/snapshot_metadata.py
+++ /dev/null
@@ -1,164 +0,0 @@
-# vim: tabstop=4 shiftwidth=4 softtabstop=4
-
-# Copyright 2011 OpenStack LLC.
-# All Rights Reserved.
-#
-#    Licensed under the Apache License, Version 2.0 (the "License"); you may
-#    not use this file except in compliance with the License. You may obtain
-#    a copy of the License at
-#
-#         http://www.apache.org/licenses/LICENSE-2.0
-#
-#    Unless required by applicable law or agreed to in writing, software
-#    distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-#    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-#    License for the specific language governing permissions and limitations
-#    under the License.
-
-import webob
-
-from manila.api import common
-from manila.api.openstack import wsgi
-from manila import exception
-from manila import volume
-from webob import exc
-
-
-class Controller(object):
-    """ The volume metadata API controller for the OpenStack API """
-
-    def __init__(self):
-        self.volume_api = volume.API()
-        super(Controller, self).__init__()
-
-    def _get_metadata(self, context, snapshot_id):
-        try:
-            snapshot = self.volume_api.get_snapshot(context, snapshot_id)
-            meta = self.volume_api.get_snapshot_metadata(context, snapshot)
-        except exception.SnapshotNotFound:
-            msg = _('snapshot does not exist')
-            raise exc.HTTPNotFound(explanation=msg)
-        return meta
-
-    @wsgi.serializers(xml=common.MetadataTemplate)
-    def index(self, req, snapshot_id):
-        """ Returns the list of metadata for a given snapshot"""
-        context = req.environ['manila.context']
-        return {'metadata': self._get_metadata(context, snapshot_id)}
-
-    @wsgi.serializers(xml=common.MetadataTemplate)
-    @wsgi.deserializers(xml=common.MetadataDeserializer)
-    def create(self, req, snapshot_id, body):
-        try:
-            metadata = body['metadata']
-        except (KeyError, TypeError):
-            msg = _("Malformed request body")
-            raise exc.HTTPBadRequest(explanation=msg)
-
-        context = req.environ['manila.context']
-
-        new_metadata = self._update_snapshot_metadata(context,
-                                                      snapshot_id,
-                                                      metadata,
-                                                      delete=False)
-
-        return {'metadata': new_metadata}
-
-    @wsgi.serializers(xml=common.MetaItemTemplate)
-    @wsgi.deserializers(xml=common.MetaItemDeserializer)
-    def update(self, req, snapshot_id, id, body):
-        try:
-            meta_item = body['meta']
-        except (TypeError, KeyError):
-            expl = _('Malformed request body')
-            raise exc.HTTPBadRequest(explanation=expl)
-
-        if id not in meta_item:
-            expl = _('Request body and URI mismatch')
-            raise exc.HTTPBadRequest(explanation=expl)
-
-        if len(meta_item) > 1:
-            expl = _('Request body contains too many items')
-            raise exc.HTTPBadRequest(explanation=expl)
-
-        context = req.environ['manila.context']
-        self._update_snapshot_metadata(context,
-                                       snapshot_id,
-                                       meta_item,
-                                       delete=False)
-
-        return {'meta': meta_item}
-
-    @wsgi.serializers(xml=common.MetadataTemplate)
-    @wsgi.deserializers(xml=common.MetadataDeserializer)
-    def update_all(self, req, snapshot_id, body):
-        try:
-            metadata = body['metadata']
-        except (TypeError, KeyError):
-            expl = _('Malformed request body')
-            raise exc.HTTPBadRequest(explanation=expl)
-
-        context = req.environ['manila.context']
-        new_metadata = self._update_snapshot_metadata(context,
-                                                      snapshot_id,
-                                                      metadata,
-                                                      delete=True)
-
-        return {'metadata': new_metadata}
-
-    def _update_snapshot_metadata(self, context,
-                                  snapshot_id, metadata,
-                                  delete=False):
-        try:
-            snapshot = self.volume_api.get_snapshot(context, snapshot_id)
-            return self.volume_api.update_snapshot_metadata(context,
-                                                            snapshot,
-                                                            metadata,
-                                                            delete)
-        except exception.SnapshotNotFound:
-            msg = _('snapshot does not exist')
-            raise exc.HTTPNotFound(explanation=msg)
-
-        except (ValueError, AttributeError):
-            msg = _("Malformed request body")
-            raise exc.HTTPBadRequest(explanation=msg)
-
-        except exception.InvalidVolumeMetadata as error:
-            raise exc.HTTPBadRequest(explanation=unicode(error))
-
-        except exception.InvalidVolumeMetadataSize as error:
-            raise exc.HTTPRequestEntityTooLarge(explanation=unicode(error))
-
-    @wsgi.serializers(xml=common.MetaItemTemplate)
-    def show(self, req, snapshot_id, id):
-        """ Return a single metadata item """
-        context = req.environ['manila.context']
-        data = self._get_metadata(context, snapshot_id)
-
-        try:
-            return {'meta': {id: data[id]}}
-        except KeyError:
-            msg = _("Metadata item was not found")
-            raise exc.HTTPNotFound(explanation=msg)
-
-    def delete(self, req, snapshot_id, id):
-        """ Deletes an existing metadata """
-        context = req.environ['manila.context']
-
-        metadata = self._get_metadata(context, snapshot_id)
-
-        if id not in metadata:
-            msg = _("Metadata item was not found")
-            raise exc.HTTPNotFound(explanation=msg)
-
-        try:
-            snapshot = self.volume_api.get_snapshot(context, snapshot_id)
-            self.volume_api.delete_snapshot_metadata(context, snapshot, id)
-        except exception.SnapshotNotFound:
-            msg = _('snapshot does not exist')
-            raise exc.HTTPNotFound(explanation=msg)
-        return webob.Response(status_int=200)
-
-
-def create_resource():
-    return wsgi.Resource(Controller())
diff --git a/manila/api/v1/snapshots.py b/manila/api/v1/snapshots.py
deleted file mode 100644
index 33816855ea..0000000000
--- a/manila/api/v1/snapshots.py
+++ /dev/null
@@ -1,234 +0,0 @@
-# Copyright 2011 Justin Santa Barbara
-# All Rights Reserved.
-#
-#    Licensed under the Apache License, Version 2.0 (the "License"); you may
-#    not use this file except in compliance with the License. You may obtain
-#    a copy of the License at
-#
-#         http://www.apache.org/licenses/LICENSE-2.0
-#
-#    Unless required by applicable law or agreed to in writing, software
-#    distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-#    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-#    License for the specific language governing permissions and limitations
-#    under the License.
-
-"""The volumes snapshots api."""
-
-import webob
-from webob import exc
-
-from manila.api import common
-from manila.api.openstack import wsgi
-from manila.api.v1 import volumes
-from manila.api import xmlutil
-from manila import exception
-from manila import flags
-from manila.openstack.common import log as logging
-from manila.openstack.common import strutils
-from manila import utils
-from manila import volume
-
-
-LOG = logging.getLogger(__name__)
-
-
-FLAGS = flags.FLAGS
-
-
-def _translate_snapshot_detail_view(context, snapshot):
-    """Maps keys for snapshots details view."""
-
-    d = _translate_snapshot_summary_view(context, snapshot)
-
-    # NOTE(gagupta): No additional data / lookups at the moment
-    return d
-
-
-def _translate_snapshot_summary_view(context, snapshot):
-    """Maps keys for snapshots summary view."""
-    d = {}
-
-    d['id'] = snapshot['id']
-    d['created_at'] = snapshot['created_at']
-    d['display_name'] = snapshot['display_name']
-    d['display_description'] = snapshot['display_description']
-    d['volume_id'] = snapshot['volume_id']
-    d['status'] = snapshot['status']
-    d['size'] = snapshot['volume_size']
-
-    if snapshot.get('snapshot_metadata'):
-        metadata = snapshot.get('snapshot_metadata')
-        d['metadata'] = dict((item['key'], item['value']) for item in metadata)
-    # avoid circular ref when vol is a Volume instance
-    elif snapshot.get('metadata') and isinstance(snapshot.get('metadata'),
-                                                 dict):
-        d['metadata'] = snapshot['metadata']
-    else:
-        d['metadata'] = {}
-    return d
-
-
-def make_snapshot(elem):
-    elem.set('id')
-    elem.set('status')
-    elem.set('size')
-    elem.set('created_at')
-    elem.set('display_name')
-    elem.set('display_description')
-    elem.set('volume_id')
-    elem.append(common.MetadataTemplate())
-
-
-class SnapshotTemplate(xmlutil.TemplateBuilder):
-    def construct(self):
-        root = xmlutil.TemplateElement('snapshot', selector='snapshot')
-        make_snapshot(root)
-        return xmlutil.MasterTemplate(root, 1)
-
-
-class SnapshotsTemplate(xmlutil.TemplateBuilder):
-    def construct(self):
-        root = xmlutil.TemplateElement('snapshots')
-        elem = xmlutil.SubTemplateElement(root, 'snapshot',
-                                          selector='snapshots')
-        make_snapshot(elem)
-        return xmlutil.MasterTemplate(root, 1)
-
-
-class SnapshotsController(wsgi.Controller):
-    """The Volumes API controller for the OpenStack API."""
-
-    def __init__(self, ext_mgr=None):
-        self.volume_api = volume.API()
-        self.ext_mgr = ext_mgr
-        super(SnapshotsController, self).__init__()
-
-    @wsgi.serializers(xml=SnapshotTemplate)
-    def show(self, req, id):
-        """Return data about the given snapshot."""
-        context = req.environ['manila.context']
-
-        try:
-            vol = self.volume_api.get_snapshot(context, id)
-        except exception.NotFound:
-            raise exc.HTTPNotFound()
-
-        return {'snapshot': _translate_snapshot_detail_view(context, vol)}
-
-    def delete(self, req, id):
-        """Delete a snapshot."""
-        context = req.environ['manila.context']
-
-        LOG.audit(_("Delete snapshot with id: %s"), id, context=context)
-
-        try:
-            snapshot = self.volume_api.get_snapshot(context, id)
-            self.volume_api.delete_snapshot(context, snapshot)
-        except exception.NotFound:
-            raise exc.HTTPNotFound()
-        return webob.Response(status_int=202)
-
-    @wsgi.serializers(xml=SnapshotsTemplate)
-    def index(self, req):
-        """Returns a summary list of snapshots."""
-        return self._items(req, entity_maker=_translate_snapshot_summary_view)
-
-    @wsgi.serializers(xml=SnapshotsTemplate)
-    def detail(self, req):
-        """Returns a detailed list of snapshots."""
-        return self._items(req, entity_maker=_translate_snapshot_detail_view)
-
-    def _items(self, req, entity_maker):
-        """Returns a list of snapshots, transformed through entity_maker."""
-        context = req.environ['manila.context']
-
-        search_opts = {}
-        search_opts.update(req.GET)
-        allowed_search_options = ('status', 'volume_id', 'display_name')
-        volumes.remove_invalid_options(context, search_opts,
-                                       allowed_search_options)
-
-        snapshots = self.volume_api.get_all_snapshots(context,
-                                                      search_opts=search_opts)
-        limited_list = common.limited(snapshots, req)
-        res = [entity_maker(context, snapshot) for snapshot in limited_list]
-        return {'snapshots': res}
-
-    @wsgi.serializers(xml=SnapshotTemplate)
-    def create(self, req, body):
-        """Creates a new snapshot."""
-        kwargs = {}
-        context = req.environ['manila.context']
-
-        if not self.is_valid_body(body, 'snapshot'):
-            raise exc.HTTPUnprocessableEntity()
-
-        snapshot = body['snapshot']
-        kwargs['metadata'] = snapshot.get('metadata', None)
-
-        volume_id = snapshot['volume_id']
-        volume = self.volume_api.get(context, volume_id)
-        force = snapshot.get('force', False)
-        msg = _("Create snapshot from volume %s")
-        LOG.audit(msg, volume_id, context=context)
-
-        if not utils.is_valid_boolstr(force):
-            msg = _("Invalid value '%s' for force. ") % force
-            raise exception.InvalidParameterValue(err=msg)
-
-        if strutils.bool_from_string(force):
-            new_snapshot = self.volume_api.create_snapshot_force(
-                context,
-                volume,
-                snapshot.get('display_name'),
-                snapshot.get('display_description'),
-                **kwargs)
-        else:
-            new_snapshot = self.volume_api.create_snapshot(
-                context,
-                volume,
-                snapshot.get('display_name'),
-                snapshot.get('display_description'),
-                **kwargs)
-
-        retval = _translate_snapshot_detail_view(context, new_snapshot)
-
-        return {'snapshot': retval}
-
-    @wsgi.serializers(xml=SnapshotTemplate)
-    def update(self, req, id, body):
-        """Update a snapshot."""
-        context = req.environ['manila.context']
-
-        if not body:
-            raise exc.HTTPUnprocessableEntity()
-
-        if 'snapshot' not in body:
-            raise exc.HTTPUnprocessableEntity()
-
-        snapshot = body['snapshot']
-        update_dict = {}
-
-        valid_update_keys = (
-            'display_name',
-            'display_description',
-        )
-
-        for key in valid_update_keys:
-            if key in snapshot:
-                update_dict[key] = snapshot[key]
-
-        try:
-            snapshot = self.volume_api.get_snapshot(context, id)
-            self.volume_api.update_snapshot(context, snapshot, update_dict)
-        except exception.NotFound:
-            raise exc.HTTPNotFound()
-
-        snapshot.update(update_dict)
-
-        return {'snapshot': _translate_snapshot_detail_view(context, snapshot)}
-
-
-def create_resource(ext_mgr):
-    return wsgi.Resource(SnapshotsController(ext_mgr))
diff --git a/manila/api/v1/types.py b/manila/api/v1/types.py
deleted file mode 100644
index 6af805f289..0000000000
--- a/manila/api/v1/types.py
+++ /dev/null
@@ -1,80 +0,0 @@
-# vim: tabstop=4 shiftwidth=4 softtabstop=4
-
-# Copyright (c) 2011 Zadara Storage Inc.
-# Copyright (c) 2011 OpenStack LLC.
-#
-#    Licensed under the Apache License, Version 2.0 (the "License"); you may
-#    not use this file except in compliance with the License. You may obtain
-#    a copy of the License at
-#
-#         http://www.apache.org/licenses/LICENSE-2.0
-#
-#    Unless required by applicable law or agreed to in writing, software
-#    distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-#    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-#    License for the specific language governing permissions and limitations
-#    under the License.
-
-"""The volume type & volume types extra specs extension."""
-
-from webob import exc
-
-from manila.api.openstack import wsgi
-from manila.api.views import types as views_types
-from manila.api import xmlutil
-from manila import exception
-from manila.volume import volume_types
-
-
-def make_voltype(elem):
-    elem.set('id')
-    elem.set('name')
-    extra_specs = xmlutil.make_flat_dict('extra_specs', selector='extra_specs')
-    elem.append(extra_specs)
-
-
-class VolumeTypeTemplate(xmlutil.TemplateBuilder):
-    def construct(self):
-        root = xmlutil.TemplateElement('volume_type', selector='volume_type')
-        make_voltype(root)
-        return xmlutil.MasterTemplate(root, 1)
-
-
-class VolumeTypesTemplate(xmlutil.TemplateBuilder):
-    def construct(self):
-        root = xmlutil.TemplateElement('volume_types')
-        elem = xmlutil.SubTemplateElement(root, 'volume_type',
-                                          selector='volume_types')
-        make_voltype(elem)
-        return xmlutil.MasterTemplate(root, 1)
-
-
-class VolumeTypesController(wsgi.Controller):
-    """The volume types API controller for the OpenStack API."""
-
-    _view_builder_class = views_types.ViewBuilder
-
-    @wsgi.serializers(xml=VolumeTypesTemplate)
-    def index(self, req):
-        """Returns the list of volume types."""
-        context = req.environ['manila.context']
-        vol_types = volume_types.get_all_types(context).values()
-        return self._view_builder.index(req, vol_types)
-
-    @wsgi.serializers(xml=VolumeTypeTemplate)
-    def show(self, req, id):
-        """Return a single volume type item."""
-        context = req.environ['manila.context']
-
-        try:
-            vol_type = volume_types.get_volume_type(context, id)
-        except exception.NotFound:
-            raise exc.HTTPNotFound()
-
-        # TODO(bcwaldon): remove str cast once we use uuids
-        vol_type['id'] = str(vol_type['id'])
-        return self._view_builder.show(req, vol_type)
-
-
-def create_resource():
-    return wsgi.Resource(VolumeTypesController())
diff --git a/manila/api/v1/volume_metadata.py b/manila/api/v1/volume_metadata.py
deleted file mode 100644
index e7da0d7277..0000000000
--- a/manila/api/v1/volume_metadata.py
+++ /dev/null
@@ -1,164 +0,0 @@
-# vim: tabstop=4 shiftwidth=4 softtabstop=4
-
-# Copyright 2011 OpenStack LLC.
-# All Rights Reserved.
-#
-#    Licensed under the Apache License, Version 2.0 (the "License"); you may
-#    not use this file except in compliance with the License. You may obtain
-#    a copy of the License at
-#
-#         http://www.apache.org/licenses/LICENSE-2.0
-#
-#    Unless required by applicable law or agreed to in writing, software
-#    distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-#    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-#    License for the specific language governing permissions and limitations
-#    under the License.
-
-import webob
-
-from manila.api import common
-from manila.api.openstack import wsgi
-from manila import exception
-from manila import volume
-from webob import exc
-
-
-class Controller(object):
-    """ The volume metadata API controller for the OpenStack API """
-
-    def __init__(self):
-        self.volume_api = volume.API()
-        super(Controller, self).__init__()
-
-    def _get_metadata(self, context, volume_id):
-        try:
-            volume = self.volume_api.get(context, volume_id)
-            meta = self.volume_api.get_volume_metadata(context, volume)
-        except exception.VolumeNotFound:
-            msg = _('volume does not exist')
-            raise exc.HTTPNotFound(explanation=msg)
-        return meta
-
-    @wsgi.serializers(xml=common.MetadataTemplate)
-    def index(self, req, volume_id):
-        """ Returns the list of metadata for a given volume"""
-        context = req.environ['manila.context']
-        return {'metadata': self._get_metadata(context, volume_id)}
-
-    @wsgi.serializers(xml=common.MetadataTemplate)
-    @wsgi.deserializers(xml=common.MetadataDeserializer)
-    def create(self, req, volume_id, body):
-        try:
-            metadata = body['metadata']
-        except (KeyError, TypeError):
-            msg = _("Malformed request body")
-            raise exc.HTTPBadRequest(explanation=msg)
-
-        context = req.environ['manila.context']
-
-        new_metadata = self._update_volume_metadata(context,
-                                                    volume_id,
-                                                    metadata,
-                                                    delete=False)
-
-        return {'metadata': new_metadata}
-
-    @wsgi.serializers(xml=common.MetaItemTemplate)
-    @wsgi.deserializers(xml=common.MetaItemDeserializer)
-    def update(self, req, volume_id, id, body):
-        try:
-            meta_item = body['meta']
-        except (TypeError, KeyError):
-            expl = _('Malformed request body')
-            raise exc.HTTPBadRequest(explanation=expl)
-
-        if id not in meta_item:
-            expl = _('Request body and URI mismatch')
-            raise exc.HTTPBadRequest(explanation=expl)
-
-        if len(meta_item) > 1:
-            expl = _('Request body contains too many items')
-            raise exc.HTTPBadRequest(explanation=expl)
-
-        context = req.environ['manila.context']
-        self._update_volume_metadata(context,
-                                     volume_id,
-                                     meta_item,
-                                     delete=False)
-
-        return {'meta': meta_item}
-
-    @wsgi.serializers(xml=common.MetadataTemplate)
-    @wsgi.deserializers(xml=common.MetadataDeserializer)
-    def update_all(self, req, volume_id, body):
-        try:
-            metadata = body['metadata']
-        except (TypeError, KeyError):
-            expl = _('Malformed request body')
-            raise exc.HTTPBadRequest(explanation=expl)
-
-        context = req.environ['manila.context']
-        new_metadata = self._update_volume_metadata(context,
-                                                    volume_id,
-                                                    metadata,
-                                                    delete=True)
-
-        return {'metadata': new_metadata}
-
-    def _update_volume_metadata(self, context,
-                                volume_id, metadata,
-                                delete=False):
-        try:
-            volume = self.volume_api.get(context, volume_id)
-            return self.volume_api.update_volume_metadata(context,
-                                                          volume,
-                                                          metadata,
-                                                          delete)
-        except exception.VolumeNotFound:
-            msg = _('volume does not exist')
-            raise exc.HTTPNotFound(explanation=msg)
-
-        except (ValueError, AttributeError):
-            msg = _("Malformed request body")
-            raise exc.HTTPBadRequest(explanation=msg)
-
-        except exception.InvalidVolumeMetadata as error:
-            raise exc.HTTPBadRequest(explanation=unicode(error))
-
-        except exception.InvalidVolumeMetadataSize as error:
-            raise exc.HTTPRequestEntityTooLarge(explanation=unicode(error))
-
-    @wsgi.serializers(xml=common.MetaItemTemplate)
-    def show(self, req, volume_id, id):
-        """ Return a single metadata item """
-        context = req.environ['manila.context']
-        data = self._get_metadata(context, volume_id)
-
-        try:
-            return {'meta': {id: data[id]}}
-        except KeyError:
-            msg = _("Metadata item was not found")
-            raise exc.HTTPNotFound(explanation=msg)
-
-    def delete(self, req, volume_id, id):
-        """ Deletes an existing metadata """
-        context = req.environ['manila.context']
-
-        metadata = self._get_metadata(context, volume_id)
-
-        if id not in metadata:
-            msg = _("Metadata item was not found")
-            raise exc.HTTPNotFound(explanation=msg)
-
-        try:
-            volume = self.volume_api.get(context, volume_id)
-            self.volume_api.delete_volume_metadata(context, volume, id)
-        except exception.VolumeNotFound:
-            msg = _('volume does not exist')
-            raise exc.HTTPNotFound(explanation=msg)
-        return webob.Response(status_int=200)
-
-
-def create_resource():
-    return wsgi.Resource(Controller())
diff --git a/manila/api/v1/volumes.py b/manila/api/v1/volumes.py
deleted file mode 100644
index 97b3cf70a2..0000000000
--- a/manila/api/v1/volumes.py
+++ /dev/null
@@ -1,421 +0,0 @@
-# Copyright 2011 Justin Santa Barbara
-# All Rights Reserved.
-#
-#    Licensed under the Apache License, Version 2.0 (the "License"); you may
-#    not use this file except in compliance with the License. You may obtain
-#    a copy of the License at
-#
-#         http://www.apache.org/licenses/LICENSE-2.0
-#
-#    Unless required by applicable law or agreed to in writing, software
-#    distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-#    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-#    License for the specific language governing permissions and limitations
-#    under the License.
-
-"""The volumes api."""
-
-import webob
-from webob import exc
-
-from manila.api import common
-from manila.api.openstack import wsgi
-from manila.api import xmlutil
-from manila import exception
-from manila import flags
-from manila.openstack.common import log as logging
-from manila.openstack.common import uuidutils
-from manila import utils
-from manila import volume
-from manila.volume import volume_types
-
-
-LOG = logging.getLogger(__name__)
-
-
-FLAGS = flags.FLAGS
-
-
-def _translate_attachment_detail_view(_context, vol):
-    """Maps keys for attachment details view."""
-
-    d = _translate_attachment_summary_view(_context, vol)
-
-    # No additional data / lookups at the moment
-
-    return d
-
-
-def _translate_attachment_summary_view(_context, vol):
-    """Maps keys for attachment summary view."""
-    d = {}
-
-    volume_id = vol['id']
-
-    # NOTE(justinsb): We use the volume id as the id of the attachment object
-    d['id'] = volume_id
-
-    d['volume_id'] = volume_id
-    d['server_id'] = vol['instance_uuid']
-    if vol.get('mountpoint'):
-        d['device'] = vol['mountpoint']
-
-    return d
-
-
-def _translate_volume_detail_view(context, vol, image_id=None):
-    """Maps keys for volumes details view."""
-
-    d = _translate_volume_summary_view(context, vol, image_id)
-
-    # No additional data / lookups at the moment
-
-    return d
-
-
-def _translate_volume_summary_view(context, vol, image_id=None):
-    """Maps keys for volumes summary view."""
-    d = {}
-
-    d['id'] = vol['id']
-    d['status'] = vol['status']
-    d['size'] = vol['size']
-    d['availability_zone'] = vol['availability_zone']
-    d['created_at'] = vol['created_at']
-
-    d['attachments'] = []
-    if vol['attach_status'] == 'attached':
-        attachment = _translate_attachment_detail_view(context, vol)
-        d['attachments'].append(attachment)
-
-    d['display_name'] = vol['display_name']
-    d['display_description'] = vol['display_description']
-
-    if vol['volume_type_id'] and vol.get('volume_type'):
-        d['volume_type'] = vol['volume_type']['name']
-    else:
-        # TODO(bcwaldon): remove str cast once we use uuids
-        d['volume_type'] = str(vol['volume_type_id'])
-
-    d['snapshot_id'] = vol['snapshot_id']
-    d['source_volid'] = vol['source_volid']
-
-    if image_id:
-        d['image_id'] = image_id
-
-    LOG.audit(_("vol=%s"), vol, context=context)
-
-    if vol.get('volume_metadata'):
-        metadata = vol.get('volume_metadata')
-        d['metadata'] = dict((item['key'], item['value']) for item in metadata)
-    # avoid circular ref when vol is a Volume instance
-    elif vol.get('metadata') and isinstance(vol.get('metadata'), dict):
-        d['metadata'] = vol['metadata']
-    else:
-        d['metadata'] = {}
-
-    if vol.get('volume_glance_metadata'):
-        d['bootable'] = 'true'
-    else:
-        d['bootable'] = 'false'
-
-    return d
-
-
-def make_attachment(elem):
-    elem.set('id')
-    elem.set('server_id')
-    elem.set('volume_id')
-    elem.set('device')
-
-
-def make_volume(elem):
-    elem.set('id')
-    elem.set('status')
-    elem.set('size')
-    elem.set('availability_zone')
-    elem.set('created_at')
-    elem.set('display_name')
-    elem.set('display_description')
-    elem.set('volume_type')
-    elem.set('snapshot_id')
-    elem.set('source_volid')
-
-    attachments = xmlutil.SubTemplateElement(elem, 'attachments')
-    attachment = xmlutil.SubTemplateElement(attachments, 'attachment',
-                                            selector='attachments')
-    make_attachment(attachment)
-
-    # Attach metadata node
-    elem.append(common.MetadataTemplate())
-
-
-volume_nsmap = {None: xmlutil.XMLNS_VOLUME_V1, 'atom': xmlutil.XMLNS_ATOM}
-
-
-class VolumeTemplate(xmlutil.TemplateBuilder):
-    def construct(self):
-        root = xmlutil.TemplateElement('volume', selector='volume')
-        make_volume(root)
-        return xmlutil.MasterTemplate(root, 1, nsmap=volume_nsmap)
-
-
-class VolumesTemplate(xmlutil.TemplateBuilder):
-    def construct(self):
-        root = xmlutil.TemplateElement('volumes')
-        elem = xmlutil.SubTemplateElement(root, 'volume', selector='volumes')
-        make_volume(elem)
-        return xmlutil.MasterTemplate(root, 1, nsmap=volume_nsmap)
-
-
-class CommonDeserializer(wsgi.MetadataXMLDeserializer):
-    """Common deserializer to handle xml-formatted volume requests.
-
-       Handles standard volume attributes as well as the optional metadata
-       attribute
-    """
-
-    metadata_deserializer = common.MetadataXMLDeserializer()
-
-    def _extract_volume(self, node):
-        """Marshal the volume attribute of a parsed request."""
-        volume = {}
-        volume_node = self.find_first_child_named(node, 'volume')
-
-        attributes = ['display_name', 'display_description', 'size',
-                      'volume_type', 'availability_zone']
-        for attr in attributes:
-            if volume_node.getAttribute(attr):
-                volume[attr] = volume_node.getAttribute(attr)
-
-        metadata_node = self.find_first_child_named(volume_node, 'metadata')
-        if metadata_node is not None:
-            volume['metadata'] = self.extract_metadata(metadata_node)
-
-        return volume
-
-
-class CreateDeserializer(CommonDeserializer):
-    """Deserializer to handle xml-formatted create volume requests.
-
-       Handles standard volume attributes as well as the optional metadata
-       attribute
-    """
-
-    def default(self, string):
-        """Deserialize an xml-formatted volume create request."""
-        dom = utils.safe_minidom_parse_string(string)
-        volume = self._extract_volume(dom)
-        return {'body': {'volume': volume}}
-
-
-class VolumeController(wsgi.Controller):
-    """The Volumes API controller for the OpenStack API."""
-
-    def __init__(self, ext_mgr):
-        self.volume_api = volume.API()
-        self.ext_mgr = ext_mgr
-        super(VolumeController, self).__init__()
-
-    @wsgi.serializers(xml=VolumeTemplate)
-    def show(self, req, id):
-        """Return data about the given volume."""
-        context = req.environ['manila.context']
-
-        try:
-            vol = self.volume_api.get(context, id)
-        except exception.NotFound:
-            raise exc.HTTPNotFound()
-
-        return {'volume': _translate_volume_detail_view(context, vol)}
-
-    def delete(self, req, id):
-        """Delete a volume."""
-        context = req.environ['manila.context']
-
-        LOG.audit(_("Delete volume with id: %s"), id, context=context)
-
-        try:
-            volume = self.volume_api.get(context, id)
-            self.volume_api.delete(context, volume)
-        except exception.NotFound:
-            raise exc.HTTPNotFound()
-        return webob.Response(status_int=202)
-
-    @wsgi.serializers(xml=VolumesTemplate)
-    def index(self, req):
-        """Returns a summary list of volumes."""
-        return self._items(req, entity_maker=_translate_volume_summary_view)
-
-    @wsgi.serializers(xml=VolumesTemplate)
-    def detail(self, req):
-        """Returns a detailed list of volumes."""
-        return self._items(req, entity_maker=_translate_volume_detail_view)
-
-    def _items(self, req, entity_maker):
-        """Returns a list of volumes, transformed through entity_maker."""
-
-        search_opts = {}
-        search_opts.update(req.GET)
-
-        context = req.environ['manila.context']
-        remove_invalid_options(context,
-                               search_opts, self._get_volume_search_options())
-
-        volumes = self.volume_api.get_all(context, marker=None, limit=None,
-                                          sort_key='created_at',
-                                          sort_dir='desc', filters=search_opts)
-        limited_list = common.limited(volumes, req)
-        res = [entity_maker(context, vol) for vol in limited_list]
-        return {'volumes': res}
-
-    def _image_uuid_from_href(self, image_href):
-        # If the image href was generated by nova api, strip image_href
-        # down to an id.
-        try:
-            image_uuid = image_href.split('/').pop()
-        except (TypeError, AttributeError):
-            msg = _("Invalid imageRef provided.")
-            raise exc.HTTPBadRequest(explanation=msg)
-
-        if not uuidutils.is_uuid_like(image_uuid):
-            msg = _("Invalid imageRef provided.")
-            raise exc.HTTPBadRequest(explanation=msg)
-
-        return image_uuid
-
-    @wsgi.serializers(xml=VolumeTemplate)
-    @wsgi.deserializers(xml=CreateDeserializer)
-    def create(self, req, body):
-        """Creates a new volume."""
-        if not self.is_valid_body(body, 'volume'):
-            raise exc.HTTPUnprocessableEntity()
-
-        context = req.environ['manila.context']
-        volume = body['volume']
-
-        kwargs = {}
-
-        req_volume_type = volume.get('volume_type', None)
-        if req_volume_type:
-            if not uuidutils.is_uuid_like(req_volume_type):
-                try:
-                    kwargs['volume_type'] = \
-                        volume_types.get_volume_type_by_name(
-                            context, req_volume_type)
-                except exception.VolumeTypeNotFound:
-                    explanation = 'Volume type not found.'
-                    raise exc.HTTPNotFound(explanation=explanation)
-            else:
-                try:
-                    kwargs['volume_type'] = volume_types.get_volume_type(
-                        context, req_volume_type)
-                except exception.VolumeTypeNotFound:
-                    explanation = 'Volume type not found.'
-                    raise exc.HTTPNotFound(explanation=explanation)
-
-        kwargs['metadata'] = volume.get('metadata', None)
-
-        snapshot_id = volume.get('snapshot_id')
-        if snapshot_id is not None:
-            kwargs['snapshot'] = self.volume_api.get_snapshot(context,
-                                                              snapshot_id)
-        else:
-            kwargs['snapshot'] = None
-
-        source_volid = volume.get('source_volid')
-        if source_volid is not None:
-            kwargs['source_volume'] = self.volume_api.get_volume(context,
-                                                                 source_volid)
-        else:
-            kwargs['source_volume'] = None
-
-        size = volume.get('size', None)
-        if size is None and kwargs['snapshot'] is not None:
-            size = kwargs['snapshot']['volume_size']
-        elif size is None and kwargs['source_volume'] is not None:
-            size = kwargs['source_volume']['size']
-
-        LOG.audit(_("Create volume of %s GB"), size, context=context)
-
-        image_href = None
-        image_uuid = None
-        if self.ext_mgr.is_loaded('os-image-create'):
-            image_href = volume.get('imageRef')
-            if image_href:
-                image_uuid = self._image_uuid_from_href(image_href)
-                kwargs['image_id'] = image_uuid
-
-        kwargs['availability_zone'] = volume.get('availability_zone', None)
-
-        new_volume = self.volume_api.create(context,
-                                            size,
-                                            volume.get('display_name'),
-                                            volume.get('display_description'),
-                                            **kwargs)
-
-        # TODO(vish): Instance should be None at db layer instead of
-        #             trying to lazy load, but for now we turn it into
-        #             a dict to avoid an error.
-        retval = _translate_volume_detail_view(context,
-                                               dict(new_volume.iteritems()),
-                                               image_uuid)
-
-        return {'volume': retval}
-
-    def _get_volume_search_options(self):
-        """Return volume search options allowed by non-admin."""
-        return ('display_name', 'status')
-
-    @wsgi.serializers(xml=VolumeTemplate)
-    def update(self, req, id, body):
-        """Update a volume."""
-        context = req.environ['manila.context']
-
-        if not body:
-            raise exc.HTTPUnprocessableEntity()
-
-        if 'volume' not in body:
-            raise exc.HTTPUnprocessableEntity()
-
-        volume = body['volume']
-        update_dict = {}
-
-        valid_update_keys = (
-            'display_name',
-            'display_description',
-            'metadata',
-        )
-
-        for key in valid_update_keys:
-            if key in volume:
-                update_dict[key] = volume[key]
-
-        try:
-            volume = self.volume_api.get(context, id)
-            self.volume_api.update(context, volume, update_dict)
-        except exception.NotFound:
-            raise exc.HTTPNotFound()
-
-        volume.update(update_dict)
-
-        return {'volume': _translate_volume_detail_view(context, volume)}
-
-
-def create_resource(ext_mgr):
-    return wsgi.Resource(VolumeController(ext_mgr))
-
-
-def remove_invalid_options(context, search_options, allowed_search_options):
-    """Remove search options that are not valid for non-admin API/context."""
-    if context.is_admin:
-        # Allow all options
-        return
-    # Otherwise, strip out all unknown options
-    unknown_options = [opt for opt in search_options
-                       if opt not in allowed_search_options]
-    bad_options = ", ".join(unknown_options)
-    log_msg = _("Removing options '%(bad_options)s' from query") % locals()
-    LOG.debug(log_msg)
-    for opt in unknown_options:
-        del search_options[opt]
diff --git a/manila/api/v2/router.py b/manila/api/v2/router.py
index d86ff4ff3f..4a7b607781 100644
--- a/manila/api/v2/router.py
+++ b/manila/api/v2/router.py
@@ -24,9 +24,6 @@ WSGI middleware for OpenStack Volume API.
 from manila.api import extensions
 import manila.api.openstack
 from manila.api.v2 import limits
-from manila.api.v2 import snapshots
-from manila.api.v2 import types
-from manila.api.v2 import volumes
 from manila.api import versions
 from manila.openstack.common import log as logging
 
@@ -47,24 +44,4 @@ class APIRouter(manila.api.openstack.APIRouter):
                        controller=self.resources['versions'],
                        action='show')
 
-        mapper.redirect("", "/")
-
-        self.resources['volumes'] = volumes.create_resource(ext_mgr)
-        mapper.resource("volume", "volumes",
-                        controller=self.resources['volumes'],
-                        collection={'detail': 'GET'},
-                        member={'action': 'POST'})
-
-        self.resources['types'] = types.create_resource()
-        mapper.resource("type", "types",
-                        controller=self.resources['types'])
-
-        self.resources['snapshots'] = snapshots.create_resource(ext_mgr)
-        mapper.resource("snapshot", "snapshots",
-                        controller=self.resources['snapshots'],
-                        collection={'detail': 'GET'},
-                        member={'action': 'POST'})
-
-        self.resources['limits'] = limits.create_resource()
-        mapper.resource("limit", "limits",
-                        controller=self.resources['limits'])
+        mapper.redirect("", "/")
\ No newline at end of file
diff --git a/manila/api/v2/snapshot_metadata.py b/manila/api/v2/snapshot_metadata.py
deleted file mode 100644
index cf573fdcff..0000000000
--- a/manila/api/v2/snapshot_metadata.py
+++ /dev/null
@@ -1,164 +0,0 @@
-# vim: tabstop=4 shiftwidth=4 softtabstop=4
-
-# Copyright 2011 OpenStack LLC.
-# All Rights Reserved.
-#
-#    Licensed under the Apache License, Version 2.0 (the "License"); you may
-#    not use this file except in compliance with the License. You may obtain
-#    a copy of the License at
-#
-#         http://www.apache.org/licenses/LICENSE-2.0
-#
-#    Unless required by applicable law or agreed to in writing, software
-#    distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-#    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-#    License for the specific language governing permissions and limitations
-#    under the License.
-
-import webob
-
-from manila.api import common
-from manila.api.openstack import wsgi
-from manila import exception
-from manila import volume
-from webob import exc
-
-
-class Controller(object):
-    """ The volume metadata API controller for the OpenStack API """
-
-    def __init__(self):
-        self.volume_api = volume.API()
-        super(Controller, self).__init__()
-
-    def _get_metadata(self, context, snapshot_id):
-        try:
-            snapshot = self.volume_api.get_snapshot(context, snapshot_id)
-            meta = self.volume_api.get_snapshot_metadata(context, snapshot)
-        except exception.SnapshotNotFound:
-            msg = _('snapshot does not exist')
-            raise exc.HTTPNotFound(explanation=msg)
-        return meta
-
-    @wsgi.serializers(xml=common.MetadataTemplate)
-    def index(self, req, snapshot_id):
-        """ Returns the list of metadata for a given snapshot"""
-        context = req.environ['manila.context']
-        return {'metadata': self._get_metadata(context, snapshot_id)}
-
-    @wsgi.serializers(xml=common.MetadataTemplate)
-    @wsgi.deserializers(xml=common.MetadataDeserializer)
-    def create(self, req, snapshot_id, body):
-        try:
-            metadata = body['metadata']
-        except (KeyError, TypeError):
-            msg = _("Malformed request body")
-            raise exc.HTTPBadRequest(explanation=msg)
-
-        context = req.environ['manila.context']
-
-        new_metadata = self._update_snapshot_metadata(context,
-                                                      snapshot_id,
-                                                      metadata,
-                                                      delete=False)
-
-        return {'metadata': new_metadata}
-
-    @wsgi.serializers(xml=common.MetaItemTemplate)
-    @wsgi.deserializers(xml=common.MetaItemDeserializer)
-    def update(self, req, snapshot_id, id, body):
-        try:
-            meta_item = body['meta']
-        except (TypeError, KeyError):
-            expl = _('Malformed request body')
-            raise exc.HTTPBadRequest(explanation=expl)
-
-        if id not in meta_item:
-            expl = _('Request body and URI mismatch')
-            raise exc.HTTPBadRequest(explanation=expl)
-
-        if len(meta_item) > 1:
-            expl = _('Request body contains too many items')
-            raise exc.HTTPBadRequest(explanation=expl)
-
-        context = req.environ['manila.context']
-        self._update_snapshot_metadata(context,
-                                       snapshot_id,
-                                       meta_item,
-                                       delete=False)
-
-        return {'meta': meta_item}
-
-    @wsgi.serializers(xml=common.MetadataTemplate)
-    @wsgi.deserializers(xml=common.MetadataDeserializer)
-    def update_all(self, req, snapshot_id, body):
-        try:
-            metadata = body['metadata']
-        except (TypeError, KeyError):
-            expl = _('Malformed request body')
-            raise exc.HTTPBadRequest(explanation=expl)
-
-        context = req.environ['manila.context']
-        new_metadata = self._update_snapshot_metadata(context,
-                                                      snapshot_id,
-                                                      metadata,
-                                                      delete=True)
-
-        return {'metadata': new_metadata}
-
-    def _update_snapshot_metadata(self, context,
-                                  snapshot_id, metadata,
-                                  delete=False):
-        try:
-            snapshot = self.volume_api.get_snapshot(context, snapshot_id)
-            return self.volume_api.update_snapshot_metadata(context,
-                                                            snapshot,
-                                                            metadata,
-                                                            delete)
-        except exception.SnapshotNotFound:
-            msg = _('snapshot does not exist')
-            raise exc.HTTPNotFound(explanation=msg)
-
-        except (ValueError, AttributeError):
-            msg = _("Malformed request body")
-            raise exc.HTTPBadRequest(explanation=msg)
-
-        except exception.InvalidVolumeMetadata as error:
-            raise exc.HTTPBadRequest(explanation=unicode(error))
-
-        except exception.InvalidVolumeMetadataSize as error:
-            raise exc.HTTPRequestEntityTooLarge(explanation=unicode(error))
-
-    @wsgi.serializers(xml=common.MetaItemTemplate)
-    def show(self, req, snapshot_id, id):
-        """ Return a single metadata item """
-        context = req.environ['manila.context']
-        data = self._get_metadata(context, snapshot_id)
-
-        try:
-            return {'meta': {id: data[id]}}
-        except KeyError:
-            msg = _("Metadata item was not found")
-            raise exc.HTTPNotFound(explanation=msg)
-
-    def delete(self, req, snapshot_id, id):
-        """ Deletes an existing metadata """
-        context = req.environ['manila.context']
-
-        metadata = self._get_metadata(context, snapshot_id)
-
-        if id not in metadata:
-            msg = _("Metadata item was not found")
-            raise exc.HTTPNotFound(explanation=msg)
-
-        try:
-            snapshot = self.volume_api.get_snapshot(context, snapshot_id)
-            self.volume_api.delete_snapshot_metadata(context, snapshot, id)
-        except exception.SnapshotNotFound:
-            msg = _('snapshot does not exist')
-            raise exc.HTTPNotFound(explanation=msg)
-        return webob.Response(status_int=200)
-
-
-def create_resource():
-    return wsgi.Resource(Controller())
diff --git a/manila/api/v2/snapshots.py b/manila/api/v2/snapshots.py
deleted file mode 100644
index 6ec08c50f4..0000000000
--- a/manila/api/v2/snapshots.py
+++ /dev/null
@@ -1,257 +0,0 @@
-# Copyright 2011 Justin Santa Barbara
-# All Rights Reserved.
-#
-#    Licensed under the Apache License, Version 2.0 (the "License"); you may
-#    not use this file except in compliance with the License. You may obtain
-#    a copy of the License at
-#
-#         http://www.apache.org/licenses/LICENSE-2.0
-#
-#    Unless required by applicable law or agreed to in writing, software
-#    distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-#    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-#    License for the specific language governing permissions and limitations
-#    under the License.
-
-"""The volumes snapshots api."""
-
-import webob
-from webob import exc
-
-from manila.api import common
-from manila.api.openstack import wsgi
-from manila.api.v2 import volumes
-from manila.api import xmlutil
-from manila import exception
-from manila import flags
-from manila.openstack.common import log as logging
-from manila.openstack.common import strutils
-from manila import utils
-from manila import volume
-
-
-LOG = logging.getLogger(__name__)
-
-
-FLAGS = flags.FLAGS
-
-
-def _translate_snapshot_detail_view(context, snapshot):
-    """Maps keys for snapshots details view."""
-
-    d = _translate_snapshot_summary_view(context, snapshot)
-
-    # NOTE(gagupta): No additional data / lookups at the moment
-    return d
-
-
-def _translate_snapshot_summary_view(context, snapshot):
-    """Maps keys for snapshots summary view."""
-    d = {}
-
-    d['id'] = snapshot['id']
-    d['created_at'] = snapshot['created_at']
-    d['name'] = snapshot['display_name']
-    d['description'] = snapshot['display_description']
-    d['volume_id'] = snapshot['volume_id']
-    d['status'] = snapshot['status']
-    d['size'] = snapshot['volume_size']
-
-    if snapshot.get('snapshot_metadata'):
-        metadata = snapshot.get('snapshot_metadata')
-        d['metadata'] = dict((item['key'], item['value']) for item in metadata)
-    # avoid circular ref when vol is a Volume instance
-    elif snapshot.get('metadata') and isinstance(snapshot.get('metadata'),
-                                                 dict):
-        d['metadata'] = snapshot['metadata']
-    else:
-        d['metadata'] = {}
-    return d
-
-
-def make_snapshot(elem):
-    elem.set('id')
-    elem.set('status')
-    elem.set('size')
-    elem.set('created_at')
-    elem.set('name')
-    elem.set('description')
-    elem.set('volume_id')
-    elem.append(common.MetadataTemplate())
-
-
-class SnapshotTemplate(xmlutil.TemplateBuilder):
-    def construct(self):
-        root = xmlutil.TemplateElement('snapshot', selector='snapshot')
-        make_snapshot(root)
-        return xmlutil.MasterTemplate(root, 1)
-
-
-class SnapshotsTemplate(xmlutil.TemplateBuilder):
-    def construct(self):
-        root = xmlutil.TemplateElement('snapshots')
-        elem = xmlutil.SubTemplateElement(root, 'snapshot',
-                                          selector='snapshots')
-        make_snapshot(elem)
-        return xmlutil.MasterTemplate(root, 1)
-
-
-class SnapshotsController(wsgi.Controller):
-    """The Volumes API controller for the OpenStack API."""
-
-    def __init__(self, ext_mgr=None):
-        self.volume_api = volume.API()
-        self.ext_mgr = ext_mgr
-        super(SnapshotsController, self).__init__()
-
-    @wsgi.serializers(xml=SnapshotTemplate)
-    def show(self, req, id):
-        """Return data about the given snapshot."""
-        context = req.environ['manila.context']
-
-        try:
-            vol = self.volume_api.get_snapshot(context, id)
-        except exception.NotFound:
-            raise exc.HTTPNotFound()
-
-        return {'snapshot': _translate_snapshot_detail_view(context, vol)}
-
-    def delete(self, req, id):
-        """Delete a snapshot."""
-        context = req.environ['manila.context']
-
-        LOG.audit(_("Delete snapshot with id: %s"), id, context=context)
-
-        try:
-            snapshot = self.volume_api.get_snapshot(context, id)
-            self.volume_api.delete_snapshot(context, snapshot)
-        except exception.NotFound:
-            raise exc.HTTPNotFound()
-        return webob.Response(status_int=202)
-
-    @wsgi.serializers(xml=SnapshotsTemplate)
-    def index(self, req):
-        """Returns a summary list of snapshots."""
-        return self._items(req, entity_maker=_translate_snapshot_summary_view)
-
-    @wsgi.serializers(xml=SnapshotsTemplate)
-    def detail(self, req):
-        """Returns a detailed list of snapshots."""
-        return self._items(req, entity_maker=_translate_snapshot_detail_view)
-
-    def _items(self, req, entity_maker):
-        """Returns a list of snapshots, transformed through entity_maker."""
-        context = req.environ['manila.context']
-
-        search_opts = {}
-        search_opts.update(req.GET)
-        allowed_search_options = ('status', 'volume_id', 'name')
-        volumes.remove_invalid_options(context, search_opts,
-                                       allowed_search_options)
-
-        # NOTE(thingee): v2 API allows name instead of display_name
-        if 'name' in search_opts:
-            search_opts['display_name'] = search_opts['name']
-            del search_opts['name']
-
-        snapshots = self.volume_api.get_all_snapshots(context,
-                                                      search_opts=search_opts)
-        limited_list = common.limited(snapshots, req)
-        res = [entity_maker(context, snapshot) for snapshot in limited_list]
-        return {'snapshots': res}
-
-    @wsgi.response(202)
-    @wsgi.serializers(xml=SnapshotTemplate)
-    def create(self, req, body):
-        """Creates a new snapshot."""
-        kwargs = {}
-        context = req.environ['manila.context']
-
-        if not self.is_valid_body(body, 'snapshot'):
-            raise exc.HTTPBadRequest()
-
-        snapshot = body['snapshot']
-        kwargs['metadata'] = snapshot.get('metadata', None)
-
-        volume_id = snapshot['volume_id']
-        volume = self.volume_api.get(context, volume_id)
-        force = snapshot.get('force', False)
-        msg = _("Create snapshot from volume %s")
-        LOG.audit(msg, volume_id, context=context)
-
-        # NOTE(thingee): v2 API allows name instead of display_name
-        if 'name' in snapshot:
-            snapshot['display_name'] = snapshot.get('name')
-            del snapshot['name']
-
-        if not utils.is_valid_boolstr(force):
-            msg = _("Invalid value '%s' for force. ") % force
-            raise exception.InvalidParameterValue(err=msg)
-
-        if strutils.bool_from_string(force):
-            new_snapshot = self.volume_api.create_snapshot_force(
-                context,
-                volume,
-                snapshot.get('display_name'),
-                snapshot.get('description'),
-                **kwargs)
-        else:
-            new_snapshot = self.volume_api.create_snapshot(
-                context,
-                volume,
-                snapshot.get('display_name'),
-                snapshot.get('description'),
-                **kwargs)
-
-        retval = _translate_snapshot_detail_view(context, new_snapshot)
-
-        return {'snapshot': retval}
-
-    @wsgi.serializers(xml=SnapshotTemplate)
-    def update(self, req, id, body):
-        """Update a snapshot."""
-        context = req.environ['manila.context']
-
-        if not body:
-            raise exc.HTTPBadRequest()
-
-        if 'snapshot' not in body:
-            raise exc.HTTPBadRequest()
-
-        snapshot = body['snapshot']
-        update_dict = {}
-
-        valid_update_keys = (
-            'name',
-            'description',
-            'display_description',
-        )
-
-        # NOTE(thingee): v2 API allows description instead of
-        # display_description
-        if 'description' in snapshot:
-            snapshot['display_description'] = snapshot['description']
-            del snapshot['description']
-
-        for key in valid_update_keys:
-            if key in snapshot:
-                update_dict[key] = snapshot[key]
-
-        # NOTE(thingee): v2 API allows name instead of display_name
-        if 'name' in update_dict:
-            update_dict['display_name'] = update_dict['name']
-            del update_dict['name']
-
-        try:
-            snapshot = self.volume_api.get_snapshot(context, id)
-            self.volume_api.update_snapshot(context, snapshot, update_dict)
-        except exception.NotFound:
-            raise exc.HTTPNotFound()
-
-        snapshot.update(update_dict)
-
-        return {'snapshot': _translate_snapshot_detail_view(context, snapshot)}
-
-
-def create_resource(ext_mgr):
-    return wsgi.Resource(SnapshotsController(ext_mgr))
diff --git a/manila/api/v2/types.py b/manila/api/v2/types.py
deleted file mode 100644
index 6af805f289..0000000000
--- a/manila/api/v2/types.py
+++ /dev/null
@@ -1,80 +0,0 @@
-# vim: tabstop=4 shiftwidth=4 softtabstop=4
-
-# Copyright (c) 2011 Zadara Storage Inc.
-# Copyright (c) 2011 OpenStack LLC.
-#
-#    Licensed under the Apache License, Version 2.0 (the "License"); you may
-#    not use this file except in compliance with the License. You may obtain
-#    a copy of the License at
-#
-#         http://www.apache.org/licenses/LICENSE-2.0
-#
-#    Unless required by applicable law or agreed to in writing, software
-#    distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-#    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-#    License for the specific language governing permissions and limitations
-#    under the License.
-
-"""The volume type & volume types extra specs extension."""
-
-from webob import exc
-
-from manila.api.openstack import wsgi
-from manila.api.views import types as views_types
-from manila.api import xmlutil
-from manila import exception
-from manila.volume import volume_types
-
-
-def make_voltype(elem):
-    elem.set('id')
-    elem.set('name')
-    extra_specs = xmlutil.make_flat_dict('extra_specs', selector='extra_specs')
-    elem.append(extra_specs)
-
-
-class VolumeTypeTemplate(xmlutil.TemplateBuilder):
-    def construct(self):
-        root = xmlutil.TemplateElement('volume_type', selector='volume_type')
-        make_voltype(root)
-        return xmlutil.MasterTemplate(root, 1)
-
-
-class VolumeTypesTemplate(xmlutil.TemplateBuilder):
-    def construct(self):
-        root = xmlutil.TemplateElement('volume_types')
-        elem = xmlutil.SubTemplateElement(root, 'volume_type',
-                                          selector='volume_types')
-        make_voltype(elem)
-        return xmlutil.MasterTemplate(root, 1)
-
-
-class VolumeTypesController(wsgi.Controller):
-    """The volume types API controller for the OpenStack API."""
-
-    _view_builder_class = views_types.ViewBuilder
-
-    @wsgi.serializers(xml=VolumeTypesTemplate)
-    def index(self, req):
-        """Returns the list of volume types."""
-        context = req.environ['manila.context']
-        vol_types = volume_types.get_all_types(context).values()
-        return self._view_builder.index(req, vol_types)
-
-    @wsgi.serializers(xml=VolumeTypeTemplate)
-    def show(self, req, id):
-        """Return a single volume type item."""
-        context = req.environ['manila.context']
-
-        try:
-            vol_type = volume_types.get_volume_type(context, id)
-        except exception.NotFound:
-            raise exc.HTTPNotFound()
-
-        # TODO(bcwaldon): remove str cast once we use uuids
-        vol_type['id'] = str(vol_type['id'])
-        return self._view_builder.show(req, vol_type)
-
-
-def create_resource():
-    return wsgi.Resource(VolumeTypesController())
diff --git a/manila/api/v2/views/volumes.py b/manila/api/v2/views/volumes.py
deleted file mode 100644
index a85aacebc7..0000000000
--- a/manila/api/v2/views/volumes.py
+++ /dev/null
@@ -1,122 +0,0 @@
-# vim: tabstop=4 shiftwidth=4 softtabstop=4
-
-# Copyright 2012 OpenStack LLC.
-# All Rights Reserved.
-#
-#    Licensed under the Apache License, Version 2.0 (the "License"); you may
-#    not use this file except in compliance with the License. You may obtain
-#    a copy of the License at
-#
-#         http://www.apache.org/licenses/LICENSE-2.0
-#
-#    Unless required by applicable law or agreed to in writing, software
-#    distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-#    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-#    License for the specific language governing permissions and limitations
-#    under the License.
-
-from manila.api import common
-from manila.openstack.common import log as logging
-
-
-LOG = logging.getLogger(__name__)
-
-
-class ViewBuilder(common.ViewBuilder):
-    """Model a server API response as a python dictionary."""
-
-    _collection_name = "volumes"
-
-    def __init__(self):
-        """Initialize view builder."""
-        super(ViewBuilder, self).__init__()
-
-    def summary_list(self, request, volumes):
-        """Show a list of volumes without many details."""
-        return self._list_view(self.summary, request, volumes)
-
-    def detail_list(self, request, volumes):
-        """Detailed view of a list of volumes."""
-        return self._list_view(self.detail, request, volumes)
-
-    def summary(self, request, volume):
-        """Generic, non-detailed view of an volume."""
-        return {
-            'volume': {
-                'id': volume['id'],
-                'name': volume['display_name'],
-                'links': self._get_links(request,
-                                         volume['id']),
-            },
-        }
-
-    def detail(self, request, volume):
-        """Detailed view of a single volume."""
-        return {
-            'volume': {
-                'id': volume.get('id'),
-                'status': volume.get('status'),
-                'size': volume.get('size'),
-                'availability_zone': volume.get('availability_zone'),
-                'created_at': volume.get('created_at'),
-                'attachments': self._get_attachments(volume),
-                'name': volume.get('display_name'),
-                'description': volume.get('display_description'),
-                'volume_type': self._get_volume_type(volume),
-                'snapshot_id': volume.get('snapshot_id'),
-                'source_volid': volume.get('source_volid'),
-                'metadata': self._get_volume_metadata(volume),
-                'links': self._get_links(request, volume['id'])
-            }
-        }
-
-    def _get_attachments(self, volume):
-        """Retrieves the attachments of the volume object"""
-        attachments = []
-
-        if volume['attach_status'] == 'attached':
-            d = {}
-            volume_id = volume['id']
-
-            # note(justinsb): we use the volume id as the id of the attachments
-            # object
-            d['id'] = volume_id
-
-            d['volume_id'] = volume_id
-            d['server_id'] = volume['instance_uuid']
-            if volume.get('mountpoint'):
-                d['device'] = volume['mountpoint']
-            attachments.append(d)
-
-        return attachments
-
-    def _get_volume_metadata(self, volume):
-        """Retrieves the metadata of the volume object"""
-        if volume.get('volume_metadata'):
-            metadata = volume.get('volume_metadata')
-            return dict((item['key'], item['value']) for item in metadata)
-        # avoid circular ref when vol is a Volume instance
-        elif volume.get('metadata') and isinstance(volume.get('metadata'),
-                                                   dict):
-            return volume['metadata']
-        return {}
-
-    def _get_volume_type(self, volume):
-        """Retrieves the type the volume object is"""
-        if volume['volume_type_id'] and volume.get('volume_type'):
-            return volume['volume_type']['name']
-        else:
-            return volume['volume_type_id']
-
-    def _list_view(self, func, request, volumes):
-        """Provide a view for a list of volumes."""
-        volumes_list = [func(request, volume)['volume'] for volume in volumes]
-        volumes_links = self._get_collection_links(request,
-                                                   volumes,
-                                                   self._collection_name)
-        volumes_dict = dict(volumes=volumes_list)
-
-        if volumes_links:
-            volumes_dict['volumes_links'] = volumes_links
-
-        return volumes_dict
diff --git a/manila/api/v2/volumes.py b/manila/api/v2/volumes.py
deleted file mode 100644
index 5fd3c1fee8..0000000000
--- a/manila/api/v2/volumes.py
+++ /dev/null
@@ -1,362 +0,0 @@
-# Copyright 2011 Justin Santa Barbara
-# All Rights Reserved.
-#
-#    Licensed under the Apache License, Version 2.0 (the "License"); you may
-#    not use this file except in compliance with the License. You may obtain
-#    a copy of the License at
-#
-#         http://www.apache.org/licenses/LICENSE-2.0
-#
-#    Unless required by applicable law or agreed to in writing, software
-#    distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-#    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-#    License for the specific language governing permissions and limitations
-#    under the License.
-
-"""The volumes api."""
-
-import webob
-from webob import exc
-
-from manila.api import common
-from manila.api.openstack import wsgi
-from manila.api.v2.views import volumes as volume_views
-from manila.api import xmlutil
-from manila import exception
-from manila import flags
-from manila.openstack.common import log as logging
-from manila.openstack.common import uuidutils
-from manila import utils
-from manila import volume
-from manila.volume import volume_types
-
-
-LOG = logging.getLogger(__name__)
-
-
-FLAGS = flags.FLAGS
-
-
-def make_attachment(elem):
-    elem.set('id')
-    elem.set('server_id')
-    elem.set('volume_id')
-    elem.set('device')
-
-
-def make_volume(elem):
-    elem.set('id')
-    elem.set('status')
-    elem.set('size')
-    elem.set('availability_zone')
-    elem.set('created_at')
-    elem.set('name')
-    elem.set('description')
-    elem.set('volume_type')
-    elem.set('snapshot_id')
-    elem.set('source_volid')
-
-    attachments = xmlutil.SubTemplateElement(elem, 'attachments')
-    attachment = xmlutil.SubTemplateElement(attachments, 'attachment',
-                                            selector='attachments')
-    make_attachment(attachment)
-
-    # Attach metadata node
-    elem.append(common.MetadataTemplate())
-
-
-volume_nsmap = {None: xmlutil.XMLNS_VOLUME_V2, 'atom': xmlutil.XMLNS_ATOM}
-
-
-class VolumeTemplate(xmlutil.TemplateBuilder):
-    def construct(self):
-        root = xmlutil.TemplateElement('volume', selector='volume')
-        make_volume(root)
-        return xmlutil.MasterTemplate(root, 1, nsmap=volume_nsmap)
-
-
-class VolumesTemplate(xmlutil.TemplateBuilder):
-    def construct(self):
-        root = xmlutil.TemplateElement('volumes')
-        elem = xmlutil.SubTemplateElement(root, 'volume', selector='volumes')
-        make_volume(elem)
-        return xmlutil.MasterTemplate(root, 1, nsmap=volume_nsmap)
-
-
-class CommonDeserializer(wsgi.MetadataXMLDeserializer):
-    """Common deserializer to handle xml-formatted volume requests.
-
-       Handles standard volume attributes as well as the optional metadata
-       attribute
-    """
-
-    metadata_deserializer = common.MetadataXMLDeserializer()
-
-    def _extract_volume(self, node):
-        """Marshal the volume attribute of a parsed request."""
-        volume = {}
-        volume_node = self.find_first_child_named(node, 'volume')
-
-        attributes = ['name', 'description', 'size',
-                      'volume_type', 'availability_zone']
-        for attr in attributes:
-            if volume_node.getAttribute(attr):
-                volume[attr] = volume_node.getAttribute(attr)
-
-        metadata_node = self.find_first_child_named(volume_node, 'metadata')
-        if metadata_node is not None:
-            volume['metadata'] = self.extract_metadata(metadata_node)
-
-        return volume
-
-
-class CreateDeserializer(CommonDeserializer):
-    """Deserializer to handle xml-formatted create volume requests.
-
-       Handles standard volume attributes as well as the optional metadata
-       attribute
-    """
-
-    def default(self, string):
-        """Deserialize an xml-formatted volume create request."""
-        dom = utils.safe_minidom_parse_string(string)
-        volume = self._extract_volume(dom)
-        return {'body': {'volume': volume}}
-
-
-class VolumeController(wsgi.Controller):
-    """The Volumes API controller for the OpenStack API."""
-
-    _view_builder_class = volume_views.ViewBuilder
-
-    def __init__(self, ext_mgr):
-        self.volume_api = volume.API()
-        self.ext_mgr = ext_mgr
-        super(VolumeController, self).__init__()
-
-    @wsgi.serializers(xml=VolumeTemplate)
-    def show(self, req, id):
-        """Return data about the given volume."""
-        context = req.environ['manila.context']
-
-        try:
-            vol = self.volume_api.get(context, id)
-        except exception.NotFound:
-            raise exc.HTTPNotFound()
-
-        return self._view_builder.detail(req, vol)
-
-    def delete(self, req, id):
-        """Delete a volume."""
-        context = req.environ['manila.context']
-
-        LOG.audit(_("Delete volume with id: %s"), id, context=context)
-
-        try:
-            volume = self.volume_api.get(context, id)
-            self.volume_api.delete(context, volume)
-        except exception.NotFound:
-            raise exc.HTTPNotFound()
-        return webob.Response(status_int=202)
-
-    @wsgi.serializers(xml=VolumesTemplate)
-    def index(self, req):
-        """Returns a summary list of volumes."""
-        return self._get_volumes(req, is_detail=False)
-
-    @wsgi.serializers(xml=VolumesTemplate)
-    def detail(self, req):
-        """Returns a detailed list of volumes."""
-        return self._get_volumes(req, is_detail=True)
-
-    def _get_volumes(self, req, is_detail):
-        """Returns a list of volumes, transformed through view builder."""
-
-        context = req.environ['manila.context']
-
-        params = req.params.copy()
-        marker = params.pop('marker', None)
-        limit = params.pop('limit', None)
-        sort_key = params.pop('sort_key', 'created_at')
-        sort_dir = params.pop('sort_dir', 'desc')
-        params.pop('offset', None)
-        filters = params
-
-        remove_invalid_options(context,
-                               filters, self._get_volume_filter_options())
-
-        # NOTE(thingee): v2 API allows name instead of display_name
-        if 'name' in filters:
-            filters['display_name'] = filters['name']
-            del filters['name']
-
-        volumes = self.volume_api.get_all(context, marker, limit, sort_key,
-                                          sort_dir, filters)
-        limited_list = common.limited(volumes, req)
-
-        if is_detail:
-            volumes = self._view_builder.detail_list(req, limited_list)
-        else:
-            volumes = self._view_builder.summary_list(req, limited_list)
-        return volumes
-
-    def _image_uuid_from_href(self, image_href):
-        # If the image href was generated by nova api, strip image_href
-        # down to an id.
-        try:
-            image_uuid = image_href.split('/').pop()
-        except (TypeError, AttributeError):
-            msg = _("Invalid imageRef provided.")
-            raise exc.HTTPBadRequest(explanation=msg)
-
-        if not uuidutils.is_uuid_like(image_uuid):
-            msg = _("Invalid imageRef provided.")
-            raise exc.HTTPBadRequest(explanation=msg)
-
-        return image_uuid
-
-    @wsgi.response(202)
-    @wsgi.serializers(xml=VolumeTemplate)
-    @wsgi.deserializers(xml=CreateDeserializer)
-    def create(self, req, body):
-        """Creates a new volume."""
-        if not self.is_valid_body(body, 'volume'):
-            raise exc.HTTPBadRequest()
-
-        context = req.environ['manila.context']
-        volume = body['volume']
-
-        kwargs = {}
-
-        # NOTE(thingee): v2 API allows name instead of display_name
-        if volume.get('name'):
-            volume['display_name'] = volume.get('name')
-            del volume['name']
-
-        # NOTE(thingee): v2 API allows description instead of description
-        if volume.get('description'):
-            volume['display_description'] = volume.get('description')
-            del volume['description']
-
-        req_volume_type = volume.get('volume_type', None)
-        if req_volume_type:
-            try:
-                kwargs['volume_type'] = volume_types.get_volume_type(
-                    context, req_volume_type)
-            except exception.VolumeTypeNotFound:
-                explanation = 'Volume type not found.'
-                raise exc.HTTPNotFound(explanation=explanation)
-
-        kwargs['metadata'] = volume.get('metadata', None)
-
-        snapshot_id = volume.get('snapshot_id')
-        if snapshot_id is not None:
-            kwargs['snapshot'] = self.volume_api.get_snapshot(context,
-                                                              snapshot_id)
-        else:
-            kwargs['snapshot'] = None
-
-        source_volid = volume.get('source_volid')
-        if source_volid is not None:
-            kwargs['source_volume'] = self.volume_api.get_volume(context,
-                                                                 source_volid)
-        else:
-            kwargs['source_volume'] = None
-
-        size = volume.get('size', None)
-        if size is None and kwargs['snapshot'] is not None:
-            size = kwargs['snapshot']['volume_size']
-        elif size is None and kwargs['source_volume'] is not None:
-            size = kwargs['source_volume']['size']
-
-        LOG.audit(_("Create volume of %s GB"), size, context=context)
-
-        image_href = None
-        image_uuid = None
-        if self.ext_mgr.is_loaded('os-image-create'):
-            image_href = volume.get('imageRef')
-            if image_href:
-                image_uuid = self._image_uuid_from_href(image_href)
-                kwargs['image_id'] = image_uuid
-
-        kwargs['availability_zone'] = volume.get('availability_zone', None)
-
-        new_volume = self.volume_api.create(context,
-                                            size,
-                                            volume.get('display_name'),
-                                            volume.get('display_description'),
-                                            **kwargs)
-
-        # TODO(vish): Instance should be None at db layer instead of
-        #             trying to lazy load, but for now we turn it into
-        #             a dict to avoid an error.
-        retval = self._view_builder.summary(req, dict(new_volume.iteritems()))
-
-        return retval
-
-    def _get_volume_filter_options(self):
-        """Return volume search options allowed by non-admin."""
-        return ('name', 'status')
-
-    @wsgi.serializers(xml=VolumeTemplate)
-    def update(self, req, id, body):
-        """Update a volume."""
-        context = req.environ['manila.context']
-
-        if not body:
-            raise exc.HTTPBadRequest()
-
-        if 'volume' not in body:
-            raise exc.HTTPBadRequest()
-
-        volume = body['volume']
-        update_dict = {}
-
-        valid_update_keys = (
-            'name',
-            'description',
-            'metadata',
-        )
-
-        for key in valid_update_keys:
-            if key in volume:
-                update_dict[key] = volume[key]
-
-        # NOTE(thingee): v2 API allows name instead of display_name
-        if 'name' in update_dict:
-            update_dict['display_name'] = update_dict['name']
-            del update_dict['name']
-
-        # NOTE(thingee): v2 API allows name instead of display_name
-        if 'description' in update_dict:
-            update_dict['display_description'] = update_dict['description']
-            del update_dict['description']
-
-        try:
-            volume = self.volume_api.get(context, id)
-            self.volume_api.update(context, volume, update_dict)
-        except exception.NotFound:
-            raise exc.HTTPNotFound()
-
-        volume.update(update_dict)
-
-        return self._view_builder.detail(req, volume)
-
-
-def create_resource(ext_mgr):
-    return wsgi.Resource(VolumeController(ext_mgr))
-
-
-def remove_invalid_options(context, filters, allowed_search_options):
-    """Remove search options that are not valid for non-admin API/context."""
-    if context.is_admin:
-        # Allow all options
-        return
-    # Otherwise, strip out all unknown options
-    unknown_options = [opt for opt in filters
-                       if opt not in allowed_search_options]
-    bad_options = ", ".join(unknown_options)
-    log_msg = _("Removing options '%s' from query") % bad_options
-    LOG.debug(log_msg)
-    for opt in unknown_options:
-        del filters[opt]
diff --git a/manila/api/views/types.py b/manila/api/views/types.py
deleted file mode 100644
index c95981ed78..0000000000
--- a/manila/api/views/types.py
+++ /dev/null
@@ -1,34 +0,0 @@
-# vim: tabstop=4 shiftwidth=4 softtabstop=4
-
-# Copyright 2012 Red Hat, Inc.
-# All Rights Reserved.
-#
-#    Licensed under the Apache License, Version 2.0 (the "License"); you may
-#    not use this file except in compliance with the License. You may obtain
-#    a copy of the License at
-#
-#         http://www.apache.org/licenses/LICENSE-2.0
-#
-#    Unless required by applicable law or agreed to in writing, software
-#    distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-#    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-#    License for the specific language governing permissions and limitations
-#    under the License.
-
-from manila.api import common
-
-
-class ViewBuilder(common.ViewBuilder):
-
-    def show(self, request, volume_type, brief=False):
-        """Trim away extraneous volume type attributes."""
-        trimmed = dict(id=volume_type.get('id'),
-                       name=volume_type.get('name'),
-                       extra_specs=volume_type.get('extra_specs'))
-        return trimmed if brief else dict(volume_type=trimmed)
-
-    def index(self, request, volume_types):
-        """Index over trimmed volume types"""
-        volume_types_list = [self.show(request, volume_type, True)
-                             for volume_type in volume_types]
-        return dict(volume_types=volume_types_list)