diff --git a/circle/openstack_api/__init__.py b/circle/openstack_api/__init__.py index 83432e6..7326356 100644 --- a/circle/openstack_api/__init__.py +++ b/circle/openstack_api/__init__.py @@ -32,7 +32,7 @@ shouldn't need to understand the finer details of APIs for Keystone/Nova/Glance/Swift et. al. """ from openstack_api import base -# from openstack_api import cinder +from openstack_api import cinder from openstack_api import glance # from openstack_api import keystone # from openstack_api import network diff --git a/circle/openstack_api/cinder.py b/circle/openstack_api/cinder.py index 185044d..c79499b 100644 --- a/circle/openstack_api/cinder.py +++ b/circle/openstack_api/cinder.py @@ -31,15 +31,14 @@ from cinderclient import client as cinder_client from cinderclient import exceptions as cinder_exception from cinderclient.v2.contrib import list_extensions as cinder_list_extensions -from horizon import exceptions -from horizon.utils import functions as utils -from horizon.utils.memoized import memoized -from horizon.utils.memoized import memoized_with_request +from openstack_api import exceptions +from openstack_api.utils import functions as utils +from openstack_api.utils.memoized import memoized +from openstack_api.utils.memoized import memoized_with_request -from openstack_dashboard.api import base -from openstack_dashboard.api import microversions -from openstack_dashboard.api import nova -from openstack_dashboard.contrib.developer.profiler import api as profiler +from openstack_api import base +from openstack_api import microversions +from openstack_api import nova LOG = logging.getLogger(__name__) @@ -286,7 +285,7 @@ def update_pagination(entities, page_size, marker, sort_dir): return entities, has_more_data, has_prev_data -@profiler.trace + def volume_list_paged(request, search_opts=None, marker=None, paginate=False, sort_dir="desc"): """List volumes with pagination. @@ -328,7 +327,7 @@ def volume_list_paged(request, search_opts=None, marker=None, paginate=False, return volumes, has_more_data, has_prev_data -@profiler.trace + def volume_get(request, volume_id): volume_data = cinderclient(request).volumes.get(volume_id) @@ -352,7 +351,7 @@ def volume_get(request, volume_id): return Volume(volume_data) -@profiler.trace + def volume_create(request, size, name, description, volume_type, snapshot_id=None, metadata=None, image_id=None, availability_zone=None, source_volid=None): @@ -370,30 +369,30 @@ def volume_create(request, size, name, description, volume_type, return Volume(volume) -@profiler.trace + def volume_extend(request, volume_id, new_size): return cinderclient(request).volumes.extend(volume_id, new_size) -@profiler.trace + def volume_delete(request, volume_id): return cinderclient(request).volumes.delete(volume_id) -@profiler.trace + def volume_retype(request, volume_id, new_type, migration_policy): return cinderclient(request).volumes.retype(volume_id, new_type, migration_policy) -@profiler.trace + def volume_set_bootable(request, volume_id, bootable): return cinderclient(request).volumes.set_bootable(volume_id, bootable) -@profiler.trace + def volume_update(request, volume_id, name, description): vol_data = {'name': name, 'description': description} @@ -402,22 +401,22 @@ def volume_update(request, volume_id, name, description): **vol_data) -@profiler.trace + def volume_set_metadata(request, volume_id, metadata): return cinderclient(request).volumes.set_metadata(volume_id, metadata) -@profiler.trace + def volume_delete_metadata(request, volume_id, keys): return cinderclient(request).volumes.delete_metadata(volume_id, keys) -@profiler.trace + def volume_reset_state(request, volume_id, state): return cinderclient(request).volumes.reset_state(volume_id, state) -@profiler.trace + def volume_upload_to_image(request, volume_id, force, image_name, container_format, disk_format): return cinderclient(request).volumes.upload_to_image(volume_id, @@ -427,12 +426,12 @@ def volume_upload_to_image(request, volume_id, force, image_name, disk_format) -@profiler.trace + def volume_get_encryption_metadata(request, volume_id): return cinderclient(request).volumes.get_encryption_metadata(volume_id) -@profiler.trace + def volume_migrate(request, volume_id, host, force_host_copy=False, lock_volume=False): return cinderclient(request).volumes.migrate_volume(volume_id, @@ -441,13 +440,13 @@ def volume_migrate(request, volume_id, host, force_host_copy=False, lock_volume) -@profiler.trace + def volume_snapshot_get(request, snapshot_id): snapshot = cinderclient(request).volume_snapshots.get(snapshot_id) return VolumeSnapshot(snapshot) -@profiler.trace + def volume_snapshot_list(request, search_opts=None): snapshots, _, __ = volume_snapshot_list_paged(request, search_opts=search_opts, @@ -455,7 +454,7 @@ def volume_snapshot_list(request, search_opts=None): return snapshots -@profiler.trace + def volume_snapshot_list_paged(request, search_opts=None, marker=None, paginate=False, sort_dir="desc"): has_more_data = False @@ -486,7 +485,7 @@ def volume_snapshot_list_paged(request, search_opts=None, marker=None, return snapshots, has_more_data, has_prev_data -@profiler.trace + def volume_snapshot_create(request, volume_id, name, description=None, force=False): data = {'name': name, @@ -498,12 +497,12 @@ def volume_snapshot_create(request, volume_id, name, volume_id, **data)) -@profiler.trace + def volume_snapshot_delete(request, snapshot_id): return cinderclient(request).volume_snapshots.delete(snapshot_id) -@profiler.trace + def volume_snapshot_update(request, snapshot_id, name, description): snapshot_data = {'name': name, 'description': description} @@ -512,31 +511,31 @@ def volume_snapshot_update(request, snapshot_id, name, description): **snapshot_data) -@profiler.trace + def volume_snapshot_set_metadata(request, snapshot_id, metadata): return cinderclient(request).volume_snapshots.set_metadata( snapshot_id, metadata) -@profiler.trace + def volume_snapshot_delete_metadata(request, snapshot_id, keys): return cinderclient(request).volume_snapshots.delete_metadata( snapshot_id, keys) -@profiler.trace + def volume_snapshot_reset_state(request, snapshot_id, state): return cinderclient(request).volume_snapshots.reset_state( snapshot_id, state) -@profiler.trace + def volume_cgroup_get(request, cgroup_id): cgroup = cinderclient(request).consistencygroups.get(cgroup_id) return VolumeConsistencyGroup(cgroup) -@profiler.trace + def volume_cgroup_get_with_vol_type_names(request, cgroup_id): cgroup = volume_cgroup_get(request, cgroup_id) vol_types = volume_type_list(request) @@ -549,7 +548,7 @@ def volume_cgroup_get_with_vol_type_names(request, cgroup_id): return cgroup -@profiler.trace + def volume_cgroup_list(request, search_opts=None): c_client = cinderclient(request) if c_client is None: @@ -558,7 +557,7 @@ def volume_cgroup_list(request, search_opts=None): search_opts=search_opts)] -@profiler.trace + def volume_cgroup_list_with_vol_type_names(request, search_opts=None): cgroups = volume_cgroup_list(request, search_opts) vol_types = volume_type_list(request) @@ -573,7 +572,7 @@ def volume_cgroup_list_with_vol_type_names(request, search_opts=None): return cgroups -@profiler.trace + def volume_cgroup_create(request, volume_types, name, description=None, availability_zone=None): data = {'name': name, @@ -585,7 +584,7 @@ def volume_cgroup_create(request, volume_types, name, return VolumeConsistencyGroup(cgroup) -@profiler.trace + def volume_cgroup_create_from_source(request, name, cg_snapshot_id=None, source_cgroup_id=None, description=None, @@ -600,12 +599,12 @@ def volume_cgroup_create_from_source(request, name, cg_snapshot_id=None, project_id)) -@profiler.trace + def volume_cgroup_delete(request, cgroup_id, force=False): return cinderclient(request).consistencygroups.delete(cgroup_id, force) -@profiler.trace + def volume_cgroup_update(request, cgroup_id, name=None, description=None, add_vols=None, remove_vols=None): cgroup_data = {} @@ -658,7 +657,7 @@ def volume_backup_supported(request): return cinder_config.get('enable_backup', False) -@profiler.trace + def volume_backup_get(request, backup_id): backup = cinderclient(request).backups.get(backup_id) return VolumeBackup(backup) @@ -669,7 +668,7 @@ def volume_backup_list(request): return backups -@profiler.trace + def volume_backup_list_paged(request, marker=None, paginate=False, sort_dir="desc"): has_more_data = False @@ -700,7 +699,7 @@ def volume_backup_list_paged(request, marker=None, paginate=False, return backups, has_more_data, has_prev_data -@profiler.trace + def volume_backup_create(request, volume_id, container_name, @@ -719,18 +718,18 @@ def volume_backup_create(request, return VolumeBackup(backup) -@profiler.trace + def volume_backup_delete(request, backup_id): return cinderclient(request).backups.delete(backup_id) -@profiler.trace + def volume_backup_restore(request, backup_id, volume_id): return cinderclient(request).restores.restore(backup_id=backup_id, volume_id=volume_id) -@profiler.trace + def volume_manage(request, host, identifier, @@ -753,12 +752,12 @@ def volume_manage(request, bootable=bootable) -@profiler.trace + def volume_unmanage(request, volume_id): return cinderclient(request).volumes.unmanage(volume=volume_id) -@profiler.trace + def tenant_quota_get(request, tenant_id): c_client = cinderclient(request) if c_client is None: @@ -766,12 +765,12 @@ def tenant_quota_get(request, tenant_id): return base.QuotaSet(c_client.quotas.get(tenant_id)) -@profiler.trace + def tenant_quota_update(request, tenant_id, **kwargs): return cinderclient(request).quotas.update(tenant_id, **kwargs) -@profiler.trace + def default_quota_get(request, tenant_id): return base.QuotaSet(cinderclient(request).quotas.defaults(tenant_id)) @@ -816,23 +815,23 @@ def volume_type_get_with_qos_association(request, volume_type_id): return vol_type -@profiler.trace + def default_quota_update(request, **kwargs): cinderclient(request).quota_classes.update(DEFAULT_QUOTA_NAME, **kwargs) -@profiler.trace + def volume_type_list(request): return cinderclient(request).volume_types.list() -@profiler.trace + def volume_type_create(request, name, description=None, is_public=True): return cinderclient(request).volume_types.create(name, description, is_public) -@profiler.trace + def volume_type_update(request, volume_type_id, name=None, description=None, is_public=None): return cinderclient(request).volume_types.update(volume_type_id, @@ -841,13 +840,13 @@ def volume_type_update(request, volume_type_id, name=None, description=None, is_public) -@profiler.trace + @memoized def volume_type_default(request): return cinderclient(request).volume_types.default() -@profiler.trace + def volume_type_delete(request, volume_type_id): try: return cinderclient(request).volume_types.delete(volume_type_id) @@ -856,39 +855,39 @@ def volume_type_delete(request, volume_type_id): "This volume type is used by one or more volumes.")) -@profiler.trace + def volume_type_get(request, volume_type_id): return cinderclient(request).volume_types.get(volume_type_id) -@profiler.trace + def volume_encryption_type_create(request, volume_type_id, data): return cinderclient(request).volume_encryption_types.create(volume_type_id, specs=data) -@profiler.trace + def volume_encryption_type_delete(request, volume_type_id): return cinderclient(request).volume_encryption_types.delete(volume_type_id) -@profiler.trace + def volume_encryption_type_get(request, volume_type_id): return cinderclient(request).volume_encryption_types.get(volume_type_id) -@profiler.trace + def volume_encryption_type_list(request): return cinderclient(request).volume_encryption_types.list() -@profiler.trace + def volume_encryption_type_update(request, volume_type_id, data): return cinderclient(request).volume_encryption_types.update(volume_type_id, specs=data) -@profiler.trace + def volume_type_extra_get(request, type_id, raw=False): vol_type = volume_type_get(request, type_id) extras = vol_type.get_keys() @@ -910,22 +909,22 @@ def volume_type_extra_delete(request, type_id, keys): return vol_type.unset_keys(keys) -@profiler.trace + def qos_spec_list(request): return cinderclient(request).qos_specs.list() -@profiler.trace + def qos_spec_get(request, qos_spec_id): return cinderclient(request).qos_specs.get(qos_spec_id) -@profiler.trace + def qos_spec_delete(request, qos_spec_id): return cinderclient(request).qos_specs.delete(qos_spec_id, force=True) -@profiler.trace + def qos_spec_create(request, name, specs): return cinderclient(request).qos_specs.create(name, specs) @@ -939,27 +938,27 @@ def qos_spec_get_keys(request, qos_spec_id, raw=False): key, value in qos_specs.items()] -@profiler.trace + def qos_spec_set_keys(request, qos_spec_id, specs): return cinderclient(request).qos_specs.set_keys(qos_spec_id, specs) -@profiler.trace + def qos_spec_unset_keys(request, qos_spec_id, specs): return cinderclient(request).qos_specs.unset_keys(qos_spec_id, specs) -@profiler.trace + def qos_spec_associate(request, qos_specs, vol_type_id): return cinderclient(request).qos_specs.associate(qos_specs, vol_type_id) -@profiler.trace + def qos_spec_disassociate(request, qos_specs, vol_type_id): return cinderclient(request).qos_specs.disassociate(qos_specs, vol_type_id) -@profiler.trace + def qos_spec_get_associations(request, qos_spec_id): return cinderclient(request).qos_specs.get_associations(qos_spec_id) @@ -968,7 +967,7 @@ def qos_specs_list(request): return [QosSpecs(s) for s in qos_spec_list(request)] -@profiler.trace + @memoized def tenant_absolute_limits(request, tenant_id=None): limits = cinderclient(request).limits.get(tenant_id=tenant_id).absolute @@ -989,17 +988,17 @@ def tenant_absolute_limits(request, tenant_id=None): return limits_dict -@profiler.trace + def service_list(request): return cinderclient(request).services.list() -@profiler.trace + def availability_zone_list(request, detailed=False): return cinderclient(request).availability_zones.list(detailed=detailed) -@profiler.trace + @memoized_with_request(cinderclient) def list_extensions(cinder_api): return tuple(cinder_list_extensions.ListExtManager(cinder_api).show_all()) @@ -1014,7 +1013,7 @@ def extension_supported(extensions, extension_name): return False -@profiler.trace + def transfer_list(request, detailed=True, search_opts=None): """List volume transfers. @@ -1030,29 +1029,29 @@ def transfer_list(request, detailed=True, search_opts=None): return [] -@profiler.trace + def transfer_get(request, transfer_id): transfer_data = cinderclient(request).transfers.get(transfer_id) return VolumeTransfer(transfer_data) -@profiler.trace + def transfer_create(request, transfer_id, name): volume = cinderclient(request).transfers.create(transfer_id, name) return VolumeTransfer(volume) -@profiler.trace + def transfer_accept(request, transfer_id, auth_key): return cinderclient(request).transfers.accept(transfer_id, auth_key) -@profiler.trace + def transfer_delete(request, transfer_id): return cinderclient(request).transfers.delete(transfer_id) -@profiler.trace + def pool_list(request, detailed=False): c_client = cinderclient(request) if c_client is None: @@ -1062,7 +1061,7 @@ def pool_list(request, detailed=False): detailed=detailed)] -@profiler.trace + def message_list(request, search_opts=None): version = get_microversion(request, ['message_list']) if version is None: diff --git a/circle/openstack_api/nova.py b/circle/openstack_api/nova.py index d96f812..f8e77e1 100644 --- a/circle/openstack_api/nova.py +++ b/circle/openstack_api/nova.py @@ -809,7 +809,7 @@ def instance_volume_detach(request, instance_id, att_id): def instance_volumes_list(request, instance_id): - from openstack_dashboard.api import cinder + from openstack_api import cinder volumes = novaclient(request).volumes.get_server_volumes(instance_id)