If you pass name parameter with long string of more than 255 characters, then cinder api returns 500 error.
$ cinder type-create ggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggghhhhhhhhhhhhhhhh
ERROR: The server has either erred or is incapable of performing the requested operation. (HTTP 500) (Request-ID: req-7c625e98-9744-4feb-856a-9085c1f70738)
$cinder type-update 3229e0e1-479c-4989-8f07-7554029a02c2 --name 67ygukkkkkkkkkkygggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggg
ERROR: Cannot update volume_type 3229e0e1-479c-4989-8f07-7554029a02c2 (HTTP 500) (Request-ID: req-8be130a4-e345-488f-b06f-7d5f3f062b16)
Error log of cinder api:
DBError: (DataError) (1406, "Data too long for column 'name' at row 1") 'INSERT INTO volume_types (created_at, updated_at, deleted_at, deleted, id, name, description, qos_specs_id, is_public) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s)' (datetime.datetime(2015, 4, 30, 9, 25, 15, 379494), None, None, 0, '98aa8ea1-fee1-45c5-b3b0-024064714557', 'ggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggghhhhhhhhhhhhhhhh', None, None, 1)
2015-04-30 02:25:15.381 TRACE cinder.volume.volume_types
2015-04-30 02:25:15.383 ERROR cinder.api.middleware.fault [req-7c625e98-9744-4feb-856a-9085c1f70738 a29cb2fa77ea44e4ab07cacbfa0365fd 11b77d031924417489bce1267e11002b] Caught error: Cannot create volume_type with name ggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggghhhhhhhhhhhhhhhh and specs {}
2015-04-30 02:25:15.384 INFO cinder.api.middleware.fault [req-7c625e98-9744-4feb-856a-9085c1f70738 a29cb2fa77ea44e4ab07cacbfa0365fd 11b77d031924417489bce1267e11002b] http://10.69.4.136:8776/v2/11b77d031924417489bce1267e11002b/types returned with HTTP 500
2015-04-30 02:25:15.384 INFO eventlet.wsgi.server [req-7c625e98-9744-4feb-856a-9085c1f70738 a29cb2fa77ea44e4ab07cacbfa0365fd 11b77d031924417489bce1267e11002b] 10.69.4.136 - - [30/Apr/2015 02:25:15] "POST /v2/11b77d031924417489bce1267e11002b/types HTTP/1.1" 500 401 0.094978
Have you tried to do the same thing using horizon? This does not look a bug to me. It looks like a defined limitation. If horizon allows you to input more than Cinder can handle then you have a bug, in horizon, but there's no way you can control that in the CLI.