'Create or update a block device mapping in API cells.  If
create is True, only try to create.  If create is None, try to
update but fall back to create.  If create is False, only attempt
to update.  This maps to nova-conductor\'s behavior.'

def bdm_update_or_create_at_top(self, ctxt, bdm, create=None):

    if self.client.can_send_version('1.28'):
        version = '1.28'
    else:
        version = '1.10'
        bdm = objects_base.obj_to_primitive(bdm)
    cctxt = self.client.prepare(version=version)
    try:
        cctxt.cast(ctxt, 'bdm_update_or_create_at_top', bdm=bdm, create=create)
    except Exception:
        LOG.exception('Failed    to    notify    cells    of    BDM    update/create.')
