The cinder.volume.drivers.tintri Module

Volume driver for Tintri storage.

class TClient(hostname, username, password, api_version='v310')

Bases: object

REST client for Tintri storage.

clone_volume(snapshot_uuid, volume_path)

Clones a volume from snapshot.

create_snapshot(volume_path, volume_name, volume_id, snapshot_name, deletion_policy=None)

Creates a volume snapshot.

delete(api)
delete_snapshot(snapshot_uuid)

Deletes a snapshot.

get(api)
get_image_snapshots_to_date(date)
get_query(api, query)
get_snapshot(volume_id)

Gets a volume snapshot.

login(username, password)
logout()
post(api, payload)
put(api, payload)
class TintriDriver(*args, **kwargs)

Bases: cinder.volume.driver.ManageableVD, cinder.volume.driver.CloneableImageVD, cinder.volume.drivers.nfs.NfsDriver

Base class for Tintri driver.

Version History

2.1.0.1 - Liberty driver
2.2.0.1 - Mitaka driver
        -- Retype
        -- Image cache clean up
        -- Direct image clone fix
CI_WIKI_NAME = 'Tintri_CI'
REQUIRED_OPTIONS = ['tintri_server_hostname', 'tintri_server_username', 'tintri_server_password']
VENDOR = 'Tintri'
VERSION = '2.2.0.1'
clone_image(context, volume, image_location, image_meta, image_service)

Creates a volume efficiently from an existing image.

image_location is a string whose format depends on the image service backend in use. The driver should use it to determine whether cloning is possible.

Returns a dict of volume properties eg. provider_location, boolean indicating whether cloning occurred.

copy_image_to_volume(context, volume, image_service, image_id)

Fetches the image from image_service and write it to the volume.

create_cloned_volume(volume, src_vref)

Creates a clone of the specified volume.

create_snapshot(snapshot)

Creates a snapshot.

create_volume_from_snapshot(volume, snapshot)

Creates a volume from snapshot.

delete_snapshot(snapshot)

Deletes a snapshot.

do_setup(context)
get_pool(volume)

Returns pool name where volume resides.

Parameters:volume – The volume hosted by the driver.
Returns:Name of the pool where given volume is hosted.
manage_existing(volume, existing_ref)

Brings an existing backend storage object under Cinder management.

existing_ref is passed straight through from the API request’s manage_existing_ref value, and it is up to the driver how this should be interpreted. It should be sufficient to identify a storage object that the driver should somehow associate with the newly-created cinder volume structure.

Parameters:
  • volume – Cinder volume to manage
  • existing_ref – Driver-specific information used to identify a volume
manage_existing_get_size(volume, existing_ref)

Returns size of volume to be managed by manage_existing.

When calculating the size, round up to the next GB.

Parameters:
  • volume – Cinder volume to manage
  • existing_ref – Driver-specific information used to identify a volume
retype(context, volume, new_type, diff, host)

Retype from one volume type to another.

At this point Tintri VMstore does not differentiate between volume types on the same array. This is a no-op for us.

unmanage(volume)

Removes the specified volume from Cinder management.

Does not delete the underlying backend storage object.

Parameters:volume – Cinder volume to unmanage