code: func (os *OpenStack) CreateVolume(name string, size int, vtype, availability, snapshotID string, tags *map[string]string) (string, string, error) {
  	volumes, err := os.volumeService("")
  	if err != nil || volumes == nil {
  		glog.Errorf("Unable to initialize cinder client for region: %s", os.region)
  		return "", "", err
  	}
  
  	opts := VolumeCreateOpts{
  		Name:             name,
  		Size:             size,
  		VolumeType:       vtype,
  		Availability:     availability,
  		SourceSnapshotID: snapshotID,
  	}
  	if tags != nil {
  		opts.Metadata = *tags
  	}
  
  	volumeID, volumeAZ, err := volumes.createVolume(opts)
  
  	if err != nil {
  		glog.Errorf("Failed to create a %d GB volume: %v", size, err)
  		return "", "", err
  	}
  
  	glog.Infof("Created volume %v in Availability Zone: %v", volumeID, volumeAZ)
  	return volumeID, volumeAZ, nil
  }
docs: // CreateVolume of given size (in GiB)