def create(context, name, extra_specs=None, is_public=True, projects=None, description=None): """Creates share types.""" extra_specs = extra_specs or {} projects = projects or [] try: get_valid_required_extra_specs(extra_specs) get_valid_optional_extra_specs(extra_specs) except exception.InvalidExtraSpec as e: raise exception.InvalidShareType(reason=six.text_type(e)) extra_specs = sanitize_extra_specs(extra_specs) try: type_ref = db.share_type_create(context, dict(name=name, description=description, extra_specs=extra_specs, is_public=is_public), projects=projects) except db_exception.DBError: LOG.exception('DB error.') raise exception.ShareTypeCreateFailed(name=name, extra_specs=extra_specs) return type_ref
def create(context, name, extra_specs=None, is_public=True, projects=None): """Creates share types.""" extra_specs = extra_specs or {} projects = projects or [] if constants.ExtraSpecs.SNAPSHOT_SUPPORT not in list(extra_specs): extra_specs[constants.ExtraSpecs.SNAPSHOT_SUPPORT] = 'True' try: get_valid_required_extra_specs(extra_specs) except exception.InvalidExtraSpec as e: raise exception.InvalidShareType(reason=six.text_type(e)) try: type_ref = db.share_type_create(context, dict(name=name, extra_specs=extra_specs, is_public=is_public), projects=projects) except db_exception.DBError as e: LOG.exception(_LE('DB error: %s'), e) raise exception.ShareTypeCreateFailed(name=name, extra_specs=extra_specs) return type_ref