diff --git a/openstackclient/volume/v1/type.py b/openstackclient/volume/v1/type.py
index 9f4d3df445..9d79f8b3e3 100644
--- a/openstackclient/volume/v1/type.py
+++ b/openstackclient/volume/v1/type.py
@@ -24,18 +24,18 @@ from cliff import show
 from openstackclient.common import utils
 
 
-class CreateType(show.ShowOne):
-    """Create type command"""
+class CreateVolumeType(show.ShowOne):
+    """Create volume type command"""
 
     api = 'volume'
-    log = logging.getLogger(__name__ + '.CreateType')
+    log = logging.getLogger(__name__ + '.CreateVolumeType')
 
     def get_parser(self, prog_name):
-        parser = super(CreateType, self).get_parser(prog_name)
+        parser = super(CreateVolumeType, self).get_parser(prog_name)
         parser.add_argument(
             'name',
             metavar='<name>',
-            help='New type name',
+            help='New volume type name',
         )
         return parser
 
@@ -51,59 +51,71 @@ class CreateType(show.ShowOne):
         return zip(*sorted(info.iteritems()))
 
 
-class DeleteType(command.Command):
-    """Delete type command"""
+class DeleteVolumeType(command.Command):
+    """Delete volume type command"""
 
     api = 'volume'
-    log = logging.getLogger(__name__ + '.DeleteType')
+    log = logging.getLogger(__name__ + '.DeleteVolumeType')
 
     def get_parser(self, prog_name):
-        parser = super(DeleteType, self).get_parser(prog_name)
+        parser = super(DeleteVolumeType, self).get_parser(prog_name)
         parser.add_argument(
-            'type',
-            metavar='<type>',
-            help='Name or ID of type to delete',
+            'volume_type',
+            metavar='<volume-type>',
+            help='Name or ID of volume type to delete',
         )
         return parser
 
     def take_action(self, parsed_args):
         self.log.debug('take_action(%s)' % parsed_args)
         volume_client = self.app.client_manager.volume
-        volume_type = utils.find_resource(
-            volume_client.volume_types, parsed_args.type)
-        volume_client.volume_types.delete(volume_type.id)
+        volume_type_id = utils.find_resource(
+            volume_client.volume_types, parsed_args.volume_type).id
+        volume_client.volume_types.delete(volume_type_id)
         return
 
 
-class ListType(lister.Lister):
-    """List type command"""
+class ListVolumeType(lister.Lister):
+    """List volume type command"""
 
     api = 'volume'
-    log = logging.getLogger(__name__ + '.ListType')
+    log = logging.getLogger(__name__ + '.ListVolumeType')
+
+    def get_parser(self, prog_name):
+        parser = super(ListVolumeType, self).get_parser(prog_name)
+        parser.add_argument(
+            '--long',
+            action='store_true',
+            default=False,
+            help='Additional fields are listed in output')
+        return parser
 
     def take_action(self, parsed_args):
         self.log.debug('take_action(%s)' % parsed_args)
-        columns = ('ID', 'Name')
+        if parsed_args.long:
+            columns = ('ID', 'Name', 'Extra Specs')
+        else:
+            columns = ('ID', 'Name')
         data = self.app.client_manager.volume.volume_types.list()
         return (columns,
                 (utils.get_item_properties(
                     s, columns,
-                    formatters={},
+                    formatters={'Extra Specs': _format_type_list_extra_specs},
                 ) for s in data))
 
 
-class SetType(command.Command):
-    """Set type command"""
+class SetVolumeType(command.Command):
+    """Set volume type command"""
 
     api = 'volume'
-    log = logging.getLogger(__name__ + '.SetType')
+    log = logging.getLogger(__name__ + '.SetVolumeType')
 
     def get_parser(self, prog_name):
-        parser = super(SetType, self).get_parser(prog_name)
+        parser = super(SetVolumeType, self).get_parser(prog_name)
         parser.add_argument(
-            'type',
-            metavar='<type>',
-            help='Type ID to update',
+            'volume_type',
+            metavar='<volume-type>',
+            help='Volume type name or ID to update',
         )
         parser.add_argument(
             'meta_data',
@@ -117,27 +129,26 @@ class SetType(command.Command):
 
         meta = dict(v.split('=') for v in parsed_args.meta_data.split(' '))
         volume_client = self.app.client_manager.volume
-        volume_type = volume_client.volume_types.get(
-            parsed_args.type
-        )
+        volume_type = utils.find_resource(
+            volume_client.volume_types, parsed_args.volume_type)
 
         volume_type.set_keys(meta)
 
         return
 
 
-class UnsetType(command.Command):
-    """Unset type command"""
+class UnsetVolumeType(command.Command):
+    """Unset volume type command"""
 
     api = 'volume'
-    log = logging.getLogger(__name__ + '.UnsetType')
+    log = logging.getLogger(__name__ + '.UnsetVolumeType')
 
     def get_parser(self, prog_name):
-        parser = super(UnsetType, self).get_parser(prog_name)
+        parser = super(UnsetVolumeType, self).get_parser(prog_name)
         parser.add_argument(
-            'type',
-            metavar='<type>',
-            help='Type ID to update',
+            'volume_type',
+            metavar='<volume-type>',
+            help='Type ID or name to update',
         )
         parser.add_argument(
             'meta_data',
@@ -149,11 +160,25 @@ class UnsetType(command.Command):
     def take_action(self, parsed_args):
         self.log.debug('take_action(%s)' % parsed_args)
         volume_client = self.app.client_manager.volume
-        volume_type = volume_client.volume_types.get(
-            parsed_args.type
-        )
+        volume_type = utils.find_resource(
+            volume_client.volume_types, parsed_args.volume_type)
+
         key_list = []
         key_list.append(parsed_args.meta_data)
         volume_type.unset_keys(key_list)
 
         return
+
+
+def _format_type_list_extra_specs(vol_type):
+    """Return a string containing the key value pairs
+
+    :param server: a single VolumeType resource
+    :rtype: a string formatted to key=value
+    """
+
+    keys = vol_type.get_keys()
+    output = ""
+    for s in keys:
+        output = output + s + "=" + keys[s] + "; "
+    return output
diff --git a/setup.py b/setup.py
index 861497fa2a..eb193b4c24 100644
--- a/setup.py
+++ b/setup.py
@@ -191,11 +191,13 @@ setuptools.setup(
             'unpause_server=openstackclient.compute.v2.server:UnpauseServer',
         ],
         'openstack.volume.v1': [
-            'create_type=openstackclient.volume.v1.type:CreateType',
-            'delete_type=openstackclient.volume.v1.type:DeleteType',
-            'list_type=openstackclient.volume.v1.type:ListType',
-            'set_type=openstackclient.volume.v1.type:SetType',
-            'unset_type=openstackclient.volume.v1.type:UnsetType',
+            'create_volume-type=' +
+            'openstackclient.volume.v1.type:CreateVolumeType',
+            'delete_volume-type=' +
+            'openstackclient.volume.v1.type:DeleteVolumeType',
+            'list_volume-type=openstackclient.volume.v1.type:ListVolumeType',
+            'set_volume-type=openstackclient.volume.v1.type:SetVolumeType',
+            'unset_volume-type=openstackclient.volume.v1.type:UnsetVolumeType',
             'show_quota=openstackclient.volume.v1.quota:ShowQuota',
             'list_quota=openstackclient.volume.v1.quota:ListQuota',
             'set_quota=openstackclient.volume.v1.quota:SetQuota',