Call to_primitive on volumes.rpcapi.create_volume
cinder.volume.rpcapi.create_volume does not convert the request_spec to
primitive before casting the request. This makes requests containing non
primitive types to fail. For example:
cinder create --metadata=Type=test --source-volid $VOLID 1
This will create a new database record and call create_volume on
volume.rpcapi. This will fail because VolumeMetadata won't be
serialized correctly when calling cast. This, however, is not True when
--source-volid is not passed because in such case,
scheduler.rpcpai.create_volume will be called, which converts
request_spec to primitive correctly.
Closes-Bug: #
1213964
Change-Id: I096d815254c9782390fba05ea9cd9af925635402