def delete_address_scope(self, context, id): with db_api.context_manager.writer.using(context): address_scope = super(Ml2PlusPlugin, self).get_address_scope(context, id) mech_context = driver_context.AddressScopeContext( self, context, address_scope) self.mechanism_manager.delete_address_scope_precommit(mech_context) super(Ml2PlusPlugin, self).delete_address_scope(context, id) self.mechanism_manager.delete_address_scope_postcommit(mech_context)
def delete_address_scope(self, context, id): session = context.session with session.begin(subtransactions=True): address_scope = super(Ml2PlusPlugin, self).get_address_scope(context, id) mech_context = driver_context.AddressScopeContext( self, context, address_scope) self.mechanism_manager.delete_address_scope_precommit(mech_context) super(Ml2PlusPlugin, self).delete_address_scope(context, id) self.mechanism_manager.delete_address_scope_postcommit(mech_context)
def update_address_scope(self, context, id, address_scope): with db_api.context_manager.writer.using(context): original_address_scope = super(Ml2PlusPlugin, self).get_address_scope( context, id) updated_address_scope = super(Ml2PlusPlugin, self).update_address_scope( context, id, address_scope) self.extension_manager.process_update_address_scope( context, address_scope[as_ext.ADDRESS_SCOPE], updated_address_scope) mech_context = driver_context.AddressScopeContext( self, context, updated_address_scope, original_address_scope=original_address_scope) self.mechanism_manager.update_address_scope_precommit(mech_context) self.mechanism_manager.update_address_scope_postcommit(mech_context) return updated_address_scope
def update_address_scope(self, context, id, address_scope): session = context.session with session.begin(subtransactions=True): original_address_scope = super(Ml2PlusPlugin, self).get_address_scope( context, id) updated_address_scope = super(Ml2PlusPlugin, self).update_address_scope( context, id, address_scope) self.extension_manager.process_update_address_scope( context, address_scope[as_ext.ADDRESS_SCOPE], updated_address_scope) mech_context = driver_context.AddressScopeContext( self, context, updated_address_scope, original_address_scope=original_address_scope) self.mechanism_manager.update_address_scope_precommit(mech_context) self.mechanism_manager.update_address_scope_postcommit(mech_context) return updated_address_scope
def create_address_scope(self, context, address_scope): self._ensure_tenant(context, address_scope[as_ext.ADDRESS_SCOPE]) with db_api.context_manager.writer.using(context): result = super(Ml2PlusPlugin, self).create_address_scope(context, address_scope) self.extension_manager.process_create_address_scope( context, address_scope[as_ext.ADDRESS_SCOPE], result) mech_context = driver_context.AddressScopeContext( self, context, result) self.mechanism_manager.create_address_scope_precommit(mech_context) try: self.mechanism_manager.create_address_scope_postcommit( mech_context) except ml2_exc.MechanismDriverError: with excutils.save_and_reraise_exception(): LOG.error( "mechanism_manager.create_address_scope_" "postcommit failed, deleting address_scope" " '%s'", result['id']) self.delete_address_scope(context, result['id']) return result