From a4f087b7a1050ac1a7e6391faa8d8003824c68ac Mon Sep 17 00:00:00 2001 From: Victor Stinner Date: Fri, 12 Jun 2015 14:55:37 +0200 Subject: [PATCH] Replace dict(obj.iteritems() with dict(obj) Since oslo.db 1.10, it's possible to convert directly a SQLAlchemy object to a dictionary using dict(obj) instead of having to write dict(obj.iteritems()). dict(obj) works also on regular dictionaries to duplicate a dictionary. Blueprint cinder-python3 Change-Id: I868a055d5bbfe6646aad3e36e1bf6c7a1ad7b449 --- cinder/api/contrib/backups.py | 8 ++++---- cinder/api/contrib/cgsnapshots.py | 2 +- cinder/api/contrib/consistencygroups.py | 4 ++-- cinder/api/contrib/volume_image_metadata.py | 3 +-- cinder/api/contrib/volume_manage.py | 2 +- cinder/api/contrib/volume_transfer.py | 4 ++-- cinder/api/v1/volumes.py | 4 ++-- cinder/api/v2/volumes.py | 4 ++-- cinder/backup/api.py | 2 +- cinder/consistencygroup/api.py | 4 ++-- cinder/db/sqlalchemy/api.py | 2 +- cinder/scheduler/host_manager.py | 4 ++-- cinder/tests/unit/test_volume.py | 2 +- cinder/transfer/api.py | 2 +- cinder/volume/api.py | 8 ++++---- 15 files changed, 27 insertions(+), 28 deletions(-) diff --git a/cinder/api/contrib/backups.py b/cinder/api/contrib/backups.py index 51d3fb496a9..1b68e1234e3 100644 --- a/cinder/api/contrib/backups.py +++ b/cinder/api/contrib/backups.py @@ -272,7 +272,7 @@ class BackupsController(wsgi.Controller): except exception.ServiceNotFound as error: raise exc.HTTPInternalServerError(explanation=error.msg) - retval = self._view_builder.summary(req, dict(new_backup.iteritems())) + retval = self._view_builder.summary(req, dict(new_backup)) return retval @wsgi.response(202) @@ -316,7 +316,7 @@ class BackupsController(wsgi.Controller): explanation=error.msg, headers={'Retry-After': 0}) retval = self._view_builder.restore_summary( - req, dict(new_restore.iteritems())) + req, dict(new_restore)) return retval @wsgi.response(200) @@ -334,7 +334,7 @@ class BackupsController(wsgi.Controller): raise exc.HTTPBadRequest(explanation=error.msg) retval = self._view_builder.export_summary( - req, dict(backup_info.iteritems())) + req, dict(backup_info)) LOG.debug('export record output: %s.', retval) return retval @@ -370,7 +370,7 @@ class BackupsController(wsgi.Controller): except exception.ServiceNotFound as error: raise exc.HTTPInternalServerError(explanation=error.msg) - retval = self._view_builder.summary(req, dict(new_backup.iteritems())) + retval = self._view_builder.summary(req, dict(new_backup)) LOG.debug('import record output: %s.', retval) return retval diff --git a/cinder/api/contrib/cgsnapshots.py b/cinder/api/contrib/cgsnapshots.py index 77bd046b738..76aa3823913 100644 --- a/cinder/api/contrib/cgsnapshots.py +++ b/cinder/api/contrib/cgsnapshots.py @@ -196,7 +196,7 @@ class CgsnapshotsController(wsgi.Controller): retval = self._view_builder.summary( req, - dict(new_cgsnapshot.iteritems())) + dict(new_cgsnapshot)) return retval diff --git a/cinder/api/contrib/consistencygroups.py b/cinder/api/contrib/consistencygroups.py index 8e531f18a46..9a147292a72 100644 --- a/cinder/api/contrib/consistencygroups.py +++ b/cinder/api/contrib/consistencygroups.py @@ -248,7 +248,7 @@ class ConsistencyGroupsController(wsgi.Controller): retval = self._view_builder.summary( req, - dict(new_consistencygroup.iteritems())) + dict(new_consistencygroup)) return retval @wsgi.response(202) @@ -300,7 +300,7 @@ class ConsistencyGroupsController(wsgi.Controller): retval = self._view_builder.summary( req, - dict(new_consistencygroup.iteritems())) + dict(new_consistencygroup)) return retval @wsgi.serializers(xml=ConsistencyGroupTemplate) diff --git a/cinder/api/contrib/volume_image_metadata.py b/cinder/api/contrib/volume_image_metadata.py index 454bc5092d9..729d577f88c 100644 --- a/cinder/api/contrib/volume_image_metadata.py +++ b/cinder/api/contrib/volume_image_metadata.py @@ -62,8 +62,7 @@ class VolumeImageMetadataController(wsgi.Controller): except Exception: return if image_meta: - resp_volume['volume_image_metadata'] = dict( - image_meta.iteritems()) + resp_volume['volume_image_metadata'] = dict(image_meta) @wsgi.extends def show(self, req, resp_obj, id): diff --git a/cinder/api/contrib/volume_manage.py b/cinder/api/contrib/volume_manage.py index ca9c3b174ea..55e681f8428 100644 --- a/cinder/api/contrib/volume_manage.py +++ b/cinder/api/contrib/volume_manage.py @@ -145,7 +145,7 @@ class VolumeManageController(wsgi.Controller): msg = _("Service not found.") raise exc.HTTPNotFound(explanation=msg) - new_volume = dict(new_volume.iteritems()) + new_volume = dict(new_volume) utils.add_visible_admin_metadata(new_volume) return self._view_builder.detail(req, new_volume) diff --git a/cinder/api/contrib/volume_transfer.py b/cinder/api/contrib/volume_transfer.py index 132e122af4b..469f591ea0c 100644 --- a/cinder/api/contrib/volume_transfer.py +++ b/cinder/api/contrib/volume_transfer.py @@ -175,7 +175,7 @@ class VolumeTransferController(wsgi.Controller): raise exc.HTTPNotFound(explanation=error.msg) transfer = self._view_builder.create(req, - dict(new_transfer.iteritems())) + dict(new_transfer)) return transfer @wsgi.response(202) @@ -211,7 +211,7 @@ class VolumeTransferController(wsgi.Controller): transfer = \ self._view_builder.summary(req, - dict(accepted_transfer.iteritems())) + dict(accepted_transfer)) return transfer def delete(self, req, id): diff --git a/cinder/api/v1/volumes.py b/cinder/api/v1/volumes.py index 781acb1572d..ba9fdf3967c 100644 --- a/cinder/api/v1/volumes.py +++ b/cinder/api/v1/volumes.py @@ -292,7 +292,7 @@ class VolumeController(wsgi.Controller): filters=search_opts, viewable_admin_meta=True) - volumes = [dict(vol.iteritems()) for vol in volumes] + volumes = [dict(vol) for vol in volumes] for volume in volumes: utils.add_visible_admin_metadata(volume) @@ -401,7 +401,7 @@ class VolumeController(wsgi.Controller): # 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. - new_volume = dict(new_volume.iteritems()) + new_volume = dict(new_volume) retval = _translate_volume_detail_view(context, new_volume, image_uuid) diff --git a/cinder/api/v2/volumes.py b/cinder/api/v2/volumes.py index 6c8c47ffc2e..4be05fed1c2 100644 --- a/cinder/api/v2/volumes.py +++ b/cinder/api/v2/volumes.py @@ -256,7 +256,7 @@ class VolumeController(wsgi.Controller): filters=filters, viewable_admin_meta=True) - volumes = [dict(vol.iteritems()) for vol in volumes] + volumes = [dict(vol) for vol in volumes] for volume in volumes: utils.add_visible_admin_metadata(volume) @@ -442,7 +442,7 @@ class VolumeController(wsgi.Controller): # 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. - new_volume = dict(new_volume.iteritems()) + new_volume = dict(new_volume) retval = self._view_builder.detail(req, new_volume) return retval diff --git a/cinder/backup/api.py b/cinder/backup/api.py index 1c94dd05936..06918174dd7 100644 --- a/cinder/backup/api.py +++ b/cinder/backup/api.py @@ -61,7 +61,7 @@ class API(base.Base): def get(self, context, backup_id): check_policy(context, 'get') rv = self.db.backup_get(context, backup_id) - return dict(rv.iteritems()) + return dict(rv) def delete(self, context, backup_id): """Make the RPC call to delete a volume backup.""" diff --git a/cinder/consistencygroup/api.py b/cinder/consistencygroup/api.py index 75506c475f0..6d7c5e036c0 100644 --- a/cinder/consistencygroup/api.py +++ b/cinder/consistencygroup/api.py @@ -580,7 +580,7 @@ class API(base.Base): def get(self, context, group_id): rv = self.db.consistencygroup_get(context, group_id) - group = dict(rv.iteritems()) + group = dict(rv) check_policy(context, 'get', group) return group @@ -676,7 +676,7 @@ class API(base.Base): def get_cgsnapshot(self, context, cgsnapshot_id): check_policy(context, 'get_cgsnapshot') rv = self.db.cgsnapshot_get(context, cgsnapshot_id) - return dict(rv.iteritems()) + return dict(rv) def get_all_cgsnapshots(self, context, search_opts=None): check_policy(context, 'get_all_cgsnapshots') diff --git a/cinder/db/sqlalchemy/api.py b/cinder/db/sqlalchemy/api.py index 2a5bf2ac1c6..12206516a1e 100644 --- a/cinder/db/sqlalchemy/api.py +++ b/cinder/db/sqlalchemy/api.py @@ -69,7 +69,7 @@ def _create_facade_lazily(): if _FACADE is None: _FACADE = db_session.EngineFacade( CONF.database.connection, - **dict(CONF.database.iteritems()) + **dict(CONF.database) ) if CONF.profiler.profiler_enabled: diff --git a/cinder/scheduler/host_manager.py b/cinder/scheduler/host_manager.py index 77faf1d2cb9..0964048b1d2 100644 --- a/cinder/scheduler/host_manager.py +++ b/cinder/scheduler/host_manager.py @@ -495,12 +495,12 @@ class HostManager(object): host_state = self.host_state_cls(host, capabilities=capabilities, service= - dict(service.iteritems())) + dict(service)) self.host_state_map[host] = host_state # update capabilities and attributes in host_state host_state.update_from_volume_capability(capabilities, service= - dict(service.iteritems())) + dict(service)) active_hosts.add(host) self._no_capabilities_hosts = no_capabilities_hosts diff --git a/cinder/tests/unit/test_volume.py b/cinder/tests/unit/test_volume.py index 82b482fb0cc..9f64045a6e8 100644 --- a/cinder/tests/unit/test_volume.py +++ b/cinder/tests/unit/test_volume.py @@ -2883,7 +2883,7 @@ class VolumeTestCase(BaseVolumeTestCase): snapshot_obj = objects.Snapshot.get_by_id(self.context, snapshot_id) snap = db.snapshot_get(context.get_admin_context(), snapshot_id) - result_dict = dict(snap.iteritems()) + result_dict = dict(snap) result_meta = { result_dict['snapshot_metadata'][0].key: result_dict['snapshot_metadata'][0].value} diff --git a/cinder/transfer/api.py b/cinder/transfer/api.py index d173280130b..0ad3fccf3af 100644 --- a/cinder/transfer/api.py +++ b/cinder/transfer/api.py @@ -56,7 +56,7 @@ class API(base.Base): def get(self, context, transfer_id): rv = self.db.transfer_get(context, transfer_id) - return dict(rv.iteritems()) + return dict(rv) def delete(self, context, transfer_id): """Make the RPC call to delete a volume transfer.""" diff --git a/cinder/volume/api.py b/cinder/volume/api.py index ecfcbfa902d..e62144f8c3f 100644 --- a/cinder/volume/api.py +++ b/cinder/volume/api.py @@ -408,7 +408,7 @@ class API(base.Base): else: ctxt = context rv = self.db.volume_get(ctxt, volume_id) - volume = dict(rv.iteritems()) + volume = dict(rv) try: check_policy(context, 'get', volume) except exception.PolicyNotAuthorized: @@ -501,7 +501,7 @@ class API(base.Base): check_policy(context, 'get_volume') vref = self.db.volume_get(context, volume_id) LOG.info(_LI("Volume retrieved successfully."), resource=vref) - return dict(vref.iteritems()) + return dict(vref) def get_all_snapshots(self, context, search_opts=None): check_policy(context, 'get_all_snapshots') @@ -941,7 +941,7 @@ class API(base.Base): rv = self.db.volume_metadata_get(context, volume['id']) LOG.info(_LI("Get volume metadata completed successfully."), resource=volume) - return dict(rv.iteritems()) + return dict(rv) @wrap_check_policy def delete_volume_metadata(self, context, volume, key): @@ -1011,7 +1011,7 @@ class API(base.Base): rv = self.db.volume_admin_metadata_get(context, volume['id']) LOG.info(_LI("Get volume admin metadata completed successfully."), resource=volume) - return dict(rv.iteritems()) + return dict(rv) @wrap_check_policy def delete_volume_admin_metadata(self, context, volume, key):