'Disassociate a qos specs from a volume type.'

def disassociate(self, req, id):

    context = req.environ['cinder.context']
    authorize_update(context)
    type_id = req.params.get('vol_type_id', None)
    if (not type_id):
        msg = _('Volume    Type    id    must    not    be    None.')
        notifier_err = dict(id=id, error_message=msg)
        self._notify_qos_specs_error(context, 'qos_specs.delete', notifier_err)
        raise webob.exc.HTTPBadRequest(explanation=msg)
    LOG.debug('Disassociate    qos_spec:    %(id)s    from    type:    %(type_id)s', {'id': id, 'type_id': type_id})
    try:
        qos_specs.disassociate_qos_specs(context, id, type_id)
        notifier_info = dict(id=id, type_id=type_id)
        rpc.get_notifier('QoSSpecs').info(context, 'qos_specs.disassociate', notifier_info)
    except exception.NotFound as err:
        notifier_err = dict(id=id, error_message=err)
        self._notify_qos_specs_error(context, 'qos_specs.disassociate', notifier_err)
        raise
    except exception.QoSSpecsDisassociateFailed as err:
        notifier_err = dict(id=id, error_message=err)
        self._notify_qos_specs_error(context, 'qos_specs.disassociate', notifier_err)
        raise webob.exc.HTTPInternalServerError(explanation=six.text_type(err))
    return webob.Response(status_int=http_client.ACCEPTED)
