Repository: softlayer/softlayer-python
Pull request #2086 (2023-09-12 21:56:12)

v6.1.8 version bump


Patch:
diff --git a/SoftLayer/CLI/account/cancel_item.py b/SoftLayer/CLI/account/cancel_item.py
index 5b2b9b3d..dddde0c6 100644
--- a/SoftLayer/CLI/account/cancel_item.py
+++ b/SoftLayer/CLI/account/cancel_item.py
@@ -11,11 +11,7 @@
 @click.argument('identifier')
 @environment.pass_env
 def cli(env, identifier):
-    """Cancel the resource or service for a billing item.
-
-    By default the billing item will be canceled on the next bill date and
-    reclaim of the resource will begin shortly after the cancellation
-    """
+    """Cancels a billing item."""
 
     manager = AccountManager(env.client)
     item = manager.cancel_item(identifier)
diff --git a/SoftLayer/CLI/block/cancel.py b/SoftLayer/CLI/block/cancel.py
index 3d25cc27..abf82890 100644
--- a/SoftLayer/CLI/block/cancel.py
+++ b/SoftLayer/CLI/block/cancel.py
@@ -16,22 +16,14 @@
               is_flag=True,
               help="Cancels the block storage volume immediately instead "
                    "of on the billing anniversary")
-@click.option('--force', default=False, is_flag=True, help="Force cancel block volume without confirmation")
 @environment.pass_env
-def cli(env, volume_id, reason, immediate, force):
-    """Cancel an existing block storage volume.
-
-    Example::
-        slcli block volume-cancel 12345678 --immediate -f
-        This command cancels volume with ID 12345678 immediately and without asking for confirmation.
-"""
+def cli(env, volume_id, reason, immediate):
+    """Cancel an existing block storage volume."""
 
     block_storage_manager = SoftLayer.BlockStorageManager(env.client)
 
-    if not force:
-        if not (env.skip_confirmations or
-                formatting.confirm(f"This will cancel the block volume: {volume_id} and cannot be undone. Continue?")):
-            raise exceptions.CLIAbort('Aborted')
+    if not (env.skip_confirmations or formatting.no_going_back(volume_id)):
+        raise exceptions.CLIAbort('Aborted')
 
     cancelled = block_storage_manager.cancel_block_volume(volume_id,
                                                           reason, immediate)
diff --git a/SoftLayer/CLI/block/duplicate.py b/SoftLayer/CLI/block/duplicate.py
index 44a077bc..152a557a 100644
--- a/SoftLayer/CLI/block/duplicate.py
+++ b/SoftLayer/CLI/block/duplicate.py
@@ -64,13 +64,7 @@
 def cli(env, origin_volume_id, origin_snapshot_id, duplicate_size,
         duplicate_iops, duplicate_tier, duplicate_snapshot_size, billing,
         dependent_duplicate):
-    """Order a duplicate block storage volume.
-
-    Example::
-        slcli block volume-duplicate 12345678
-        This command shows order a new volume by duplicating the volume with ID 12345678.
-"""
-
+    """Order a duplicate block storage volume."""
     block_manager = SoftLayer.BlockStorageManager(env.client)
 
     hourly_billing_flag = False
diff --git a/SoftLayer/CLI/block/limit.py b/SoftLayer/CLI/block/limit.py
index 7b64b0b9..30242487 100644
--- a/SoftLayer/CLI/block/limit.py
+++ b/SoftLayer/CLI/block/limit.py
@@ -18,13 +18,7 @@
 @click.option('--datacenter', '-d', help='Filter by datacenter')
 @environment.pass_env
 def cli(env, sortby, datacenter):
-    """List number of block storage volumes limit per datacenter.
-
-    Example::
-        slcli block volume-limits
-        This command lists the storage limits per datacenter for this account.
-"""
-
+    """List number of block storage volumes limit per datacenter."""
     block_manager = SoftLayer.BlockStorageManager(env.client)
     block_volumes = block_manager.list_block_volume_limit()
 
diff --git a/SoftLayer/CLI/block/list.py b/SoftLayer/CLI/block/list.py
index 9a65603e..992d421a 100644
--- a/SoftLayer/CLI/block/list.py
+++ b/SoftLayer/CLI/block/list.py
@@ -64,14 +64,7 @@
               default=','.join(DEFAULT_COLUMNS))
 @environment.pass_env
 def cli(env, sortby, columns, datacenter, username, storage_type, order):
-    """List block storage.
-
-    Example::
-        slcli block volume-list -d dal09 -t endurance --sortby capacity_gb
-        This command lists all endurance volumes on current account \
-that are located at dal09, and sorts them by capacity.
-"""
-
+    """List block storage."""
     block_manager = SoftLayer.BlockStorageManager(env.client)
     block_volumes = block_manager.list_block_volumes(datacenter=datacenter,
                                                      username=username,
diff --git a/SoftLayer/CLI/block/modify.py b/SoftLayer/CLI/block/modify.py
index fac2af59..9bc785f3 100644
--- a/SoftLayer/CLI/block/modify.py
+++ b/SoftLayer/CLI/block/modify.py
@@ -33,16 +33,7 @@
               type=click.Choice(['0.25', '2', '4', '10']))
 @environment.pass_env
 def cli(env, volume_id, new_size, new_iops, new_tier):
-    """Modify an existing block storage volume.
-
-    Example::
-        slcli block volume-modify 12345678 --new-size 1000 --new-iops 4000
-        This command modify a volume 12345678 with size is 1000GB, IOPS is 4000.
-
-        slcli block volume-modify 12345678 --new-size 500 --new-tier 4
-        This command modify a volume 12345678 with size is 500GB, tier level is 4 IOPS per GB.
-"""
-
+    """Modify an existing block storage volume."""
     block_manager = SoftLayer.BlockStorageManager(env.client)
 
     if new_tier is not None:
diff --git a/SoftLayer/CLI/block/options.py b/SoftLayer/CLI/block/options.py
index fbd2d7f1..69faab66 100644
--- a/SoftLayer/CLI/block/options.py
+++ b/SoftLayer/CLI/block/options.py
@@ -19,23 +19,7 @@
                    'add it to the --prices option using location short name, e.g. --prices dal13')
 @environment.pass_env
 def cli(env, prices, location=None):
-    """List all options for ordering a block storage
-
-    Example::
-        slcli block volume-options
-        This command lists all options for creating a \
-block storage volume, including storage type, volume size, OS type, IOPS, tier level, datacenter, and snapshot size.
-
-        slcli block volume-options --prices
-        This command lists all options for creating a \
-block storage volume, including storage type, volume size, OS type, IOPS, tier level, \
-datacenter, and snapshot size along with prices.
-
-        slcli block volume-options --prices dal03
-        This command lists all options for creating a \
-block storage volume, including storage type, volume size, \
-OS type, IOPS, tier level, datacenter, and snapshot size along with prices for a given location.
-"""
+    """List all options for ordering a block storage"""
 
     order_manager = SoftLayer.OrderingManager(env.client)
     items = order_manager.get_items(PACKAGE_STORAGE, mask="mask[categories]")
diff --git a/SoftLayer/CLI/block/snapshot/cancel.py b/SoftLayer/CLI/block/snapshot/cancel.py
index 575bbac0..100aac61 100644
--- a/SoftLayer/CLI/block/snapshot/cancel.py
+++ b/SoftLayer/CLI/block/snapshot/cancel.py
@@ -16,9 +16,8 @@
               is_flag=True,
               help="Cancels the snapshot space immediately instead "
                    "of on the billing anniversary.")
-@click.option('--force',  default=False, is_flag=True, help="Force modify")
 @environment.pass_env
-def cli(env, volume_id, reason, immediate, force):
+def cli(env, volume_id, reason, immediate):
     """Cancel existing snapshot space for a given volume."""
 
     block_storage_manager = SoftLayer.BlockStorageManager(env.client)
@@ -26,11 +25,6 @@ def cli(env, volume_id, reason, immediate, force):
     if not (env.skip_confirmations or formatting.no_going_back(volume_id)):
         raise exceptions.CLIAbort('Aborted')
 
-    if not force:
-        if not (env.skip_confirmations or
-                formatting.confirm("This action will incur charges on your account. Continue?")):
-            raise exceptions.CLIAbort('Aborted')
-
     cancelled = block_storage_manager.cancel_snapshot_space(
         volume_id, reason, immediate)
 
diff --git a/SoftLayer/CLI/block/snapshot/enable.py b/SoftLayer/CLI/block/snapshot/enable.py
index ec54aa0c..2fda6f8d 100644
--- a/SoftLayer/CLI/block/snapshot/enable.py
+++ b/SoftLayer/CLI/block/snapshot/enable.py
@@ -16,13 +16,13 @@
               help='Number of snapshots to retain.',
               required=True)
 @click.option('--minute',
-              help='Minute of the hour when snapshots should be taken, integer between 0 to 59.',
+              help='Minute of the day when snapshots should be taken.',
               default=0)
 @click.option('--hour',
-              help='Hour of the day when snapshots should be taken, integer between 0 to 23.',
+              help='Hour of the day when snapshots should be taken.',
               default=0)
 @click.option('--day-of-week',
-              help='Day of the week when snapshots should be taken, integer between 0 to 6',
+              help='Day of the week when snapshots should be taken.',
               default='SUNDAY')
 @environment.pass_env
 def cli(env, volume_id, schedule_type, retention_count,
diff --git a/SoftLayer/CLI/dedicatedhost/create_options.py b/SoftLayer/CLI/dedicatedhost/create_options.py
index 323bda9d..8ad5aafc 100644
--- a/SoftLayer/CLI/dedicatedhost/create_options.py
+++ b/SoftLayer/CLI/dedicatedhost/create_options.py
@@ -22,10 +22,9 @@
 def cli(env, **kwargs):
     """host order options for a given dedicated host.
 
-    Example::
-        To get a list of available backend routers see example:
-        slcli dh create-options --datacenter dal05 --flavor 56_CORES_X_242_RAM_X_1_4_TB
-"""
+    To get a list of available backend routers see example:
+    slcli dh create-options --datacenter dal05 --flavor 56_CORES_X_242_RAM_X_1_4_TB
+    """
 
     mgr = SoftLayer.DedicatedHostManager(env.client)
     tables = []
diff --git a/SoftLayer/CLI/dns/record_edit.py b/SoftLayer/CLI/dns/record_edit.py
index 5b5b3c8c..ff3fe402 100644
--- a/SoftLayer/CLI/dns/record_edit.py
+++ b/SoftLayer/CLI/dns/record_edit.py
@@ -19,16 +19,7 @@
               help='TTL value in seconds, such as 86400')
 @environment.pass_env
 def cli(env, zone_id, by_record, by_id, data, ttl):
-    """Update DNS record.
-
-    Example::
-        slcli dns record-edit ibm.com --by-id 12345678 --data 127.0.0.2 --ttl 3600
-        This command edits records under the zone: ibm.com, whose ID is 12345678, \
-and sets its data to "127.0.0.2" and ttl to 3600.
-
-        slcli dns record-edit ibm.com --by-record kibana --ttl 3600
-        This command edits records under the zone: ibm.com, whose host is "kibana", and sets their ttl all to 3600.
-"""
+    """Update DNS record."""
     manager = SoftLayer.DNSManager(env.client)
     zone_id = helpers.resolve_id(manager.resolve_ids, zone_id, name='zone')
 
diff --git a/SoftLayer/CLI/dns/record_list.py b/SoftLayer/CLI/dns/record_list.py
index 8fc3b12f..3a223bfd 100644
--- a/SoftLayer/CLI/dns/record_list.py
+++ b/SoftLayer/CLI/dns/record_list.py
@@ -19,13 +19,7 @@
 @click.option('--type', 'record_type', help='Record type, such as A or CNAME')
 @environment.pass_env
 def cli(env, zone, data, record, ttl, record_type):
-    """List all records in a zone.
-
-    Example::
-        slcli dns record-list ibm.com --record elasticsearch --type A --ttl 900
-        This command lists all A records under the zone: ibm.com, and \
-filters by host is elasticsearch and ttl is 900 seconds.
-"""
+    """List all records in a zone."""
 
     manager = SoftLayer.DNSManager(env.client)
     table = formatting.Table(['id', 'record', 'type', 'ttl', 'data'])
diff --git a/SoftLayer/CLI/dns/record_remove.py b/SoftLayer/CLI/dns/record_remove.py
index 19694deb..5d538d55 100644
--- a/SoftLayer/CLI/dns/record_remove.py
+++ b/SoftLayer/CLI/dns/record_remove.py
@@ -13,12 +13,7 @@
 @click.argument('record_id')
 @environment.pass_env
 def cli(env, record_id):
-    """Remove resource record.
-
-    Example::
-        slcli dns record-remove 12345678
-        This command removes resource record with ID 12345678.
-"""
+    """Remove resource record."""
 
     manager = SoftLayer.DNSManager(env.client)
 
diff --git a/SoftLayer/CLI/dns/zone_create.py b/SoftLayer/CLI/dns/zone_create.py
index 2a48c66e..227bea89 100644
--- a/SoftLayer/CLI/dns/zone_create.py
+++ b/SoftLayer/CLI/dns/zone_create.py
@@ -11,12 +11,7 @@
 @click.argument('zone')
 @environment.pass_env
 def cli(env, zone):
-    """Create a zone.
-
-    Example::
-        slcli dns zone-create ibm.com
-        This command creates a zone that is named ibm.com.
-"""
+    """Create a zone."""
 
     manager = SoftLayer.DNSManager(env.client)
     manager.create_zone(zone)
diff --git a/SoftLayer/CLI/dns/zone_delete.py b/SoftLayer/CLI/dns/zone_delete.py
index 83eb1127..4e36a5f0 100644
--- a/SoftLayer/CLI/dns/zone_delete.py
+++ b/SoftLayer/CLI/dns/zone_delete.py
@@ -14,12 +14,7 @@
 @click.argument('zone')
 @environment.pass_env
 def cli(env, zone):
-    """Delete zone.
-
-    Example::
-        slcli dns zone-delete ibm.com
-        This command deletes a zone that is named ibm.com
-"""
+    """Delete zone."""
 
     manager = SoftLayer.DNSManager(env.client)
     zone_id = helpers.resolve_id(manager.resolve_ids, zone, name='zone')
diff --git a/SoftLayer/CLI/dns/zone_import.py b/SoftLayer/CLI/dns/zone_import.py
index fc83a80f..2fed0cdc 100644
--- a/SoftLayer/CLI/dns/zone_import.py
+++ b/SoftLayer/CLI/dns/zone_import.py
@@ -23,12 +23,7 @@
 @click.option('--dry-run', is_flag=True, help="Don't actually create records")
 @environment.pass_env
 def cli(env, zonefile, dry_run):
-    """Import zone based off a BIND zone file.
-
-    Example::
-        slcli dns import ~/ibm.com.txt
-        This command imports zone and its resource records from file: ~/ibm.com.txt
-"""
+    """Import zone based off a BIND zone file."""
 
     manager = SoftLayer.DNSManager(env.client)
     with open(zonefile, encoding="utf-8") as zone_f:
diff --git a/SoftLayer/CLI/dns/zone_list.py b/SoftLayer/CLI/dns/zone_list.py
index 721c0678..4ec56147 100644
--- a/SoftLayer/CLI/dns/zone_list.py
+++ b/SoftLayer/CLI/dns/zone_list.py
@@ -12,12 +12,7 @@
 @click.command(cls=SoftLayer.CLI.command.SLCommand, )
 @environment.pass_env
 def cli(env):
-    """List all zones.
-
-    Example::
-        slcli dns zone-list
-        This command lists all zones under current account.
-"""
+    """List all zones."""
 
     manager = SoftLayer.DNSManager(env.client)
     object_mask = "mask[id,name,serial,updateDate,resourceRecordCount]"
diff --git a/SoftLayer/CLI/dns/zone_print.py b/SoftLayer/CLI/dns/zone_print.py
index 02baaa0f..71703d01 100644
--- a/SoftLayer/CLI/dns/zone_print.py
+++ b/SoftLayer/CLI/dns/zone_print.py
@@ -12,12 +12,7 @@
 @click.argument('zone')
 @environment.pass_env
 def cli(env, zone):
-    """Print zone in BIND format.
-
-    Example::
-        slcli dns zone-print ibm.com
-        This command prints zone that is named ibm.com, and in BIND format.
-"""
+    """Print zone in BIND format."""
 
     manager = SoftLayer.DNSManager(env.client)
     zone_id = helpers.resolve_id(manager.resolve_ids, zone, name='zone')
diff --git a/SoftLayer/CLI/file/access/authorize.py b/SoftLayer/CLI/file/access/authorize.py
index 7a5dbf6f..a927b4a8 100644
--- a/SoftLayer/CLI/file/access/authorize.py
+++ b/SoftLayer/CLI/file/access/authorize.py
@@ -25,13 +25,7 @@
 @environment.pass_env
 def cli(env, volume_id, hardware_id, virtual_id, ip_address_id,
         ip_address, subnet_id):
-    """Authorizes hosts to access a given volume
-
-    Example::
-        slcli file access-authorize 12345678 --virtual-id 87654321
-        This command authorizes virtual server with ID 87654321 to access volume with ID 12345678.
-"""
-
+    """Authorizes hosts to access a given volume"""
     file_manager = SoftLayer.FileStorageManager(env.client)
     ip_address_id_list = list(ip_address_id)
 
diff --git a/SoftLayer/CLI/file/access/list.py b/SoftLayer/CLI/file/access/list.py
index b3415e2e..b913ee5b 100644
--- a/SoftLayer/CLI/file/access/list.py
+++ b/SoftLayer/CLI/file/access/list.py
@@ -19,13 +19,7 @@
               default=','.join(storage_utils.DEFAULT_COLUMNS))
 @environment.pass_env
 def cli(env, columns, sortby, volume_id):
-    """List ACLs.
-
-    Example::
-        slcli file access-list 12345678 --sortby id
-        This command lists all hosts that are authorized to access volume with ID 12345678 and sorts them by ID.
-"""
-
+    """List ACLs."""
     file_manager = SoftLayer.FileStorageManager(env.client)
     resolved_id = helpers.resolve_id(file_manager.resolve_ids, volume_id, 'Volume Id')
     access_list = file_manager.get_file_volume_access_list(
diff --git a/SoftLayer/CLI/file/access/revoke.py b/SoftLayer/CLI/file/access/revoke.py
index 3575dd48..3533b59c 100644
--- a/SoftLayer/CLI/file/access/revoke.py
+++ b/SoftLayer/CLI/file/access/revoke.py
@@ -25,13 +25,7 @@
 @environment.pass_env
 def cli(env, volume_id, hardware_id, virtual_id, ip_address_id,
         ip_address, subnet_id):
-    """Revokes authorization for hosts accessing a given volume
-
-    Example::
-        slcli file access-revoke 12345678 --virtual-id 87654321
-        This command revokes access of virtual server with ID 87654321 to volume with ID 12345678.
-"""
-
+    """Revokes authorization for hosts accessing a given volume"""
     file_manager = SoftLayer.FileStorageManager(env.client)
     ip_address_id_list = list(ip_address_id)
 
diff --git a/SoftLayer/CLI/file/replication/disaster_recovery_failover.py b/SoftLayer/CLI/file/replication/disaster_recovery_failover.py
index fe1d4689..57ffc8af 100644
--- a/SoftLayer/CLI/file/replication/disaster_recovery_failover.py
+++ b/SoftLayer/CLI/file/replication/disaster_recovery_failover.py
@@ -19,12 +19,7 @@
 @click.option('--replicant-id', help="ID of the replicant volume")
 @environment.pass_env
 def cli(env, volume_id, replicant_id):
-    """Failover an inaccessible file volume to its available replicant volume.
-
-    Example::
-        slcli file disaster-recovery-failover 12345678 87654321
-        This command performs failover operation for volume with ID 12345678 to replica volume with ID 87654321.
-"""
+    """Failover an inaccessible file volume to its available replicant volume."""
     file_storage_manager = SoftLayer.FileStorageManager(env.client)
 
     click.secho("""WARNING : Failover an inaccessible file volume to its available replicant volume."""
diff --git a/SoftLayer/CLI/file/replication/failback.py b/SoftLayer/CLI/file/replication/failback.py
index e78c26e3..3b810427 100644
--- a/SoftLayer/CLI/file/replication/failback.py
+++ b/SoftLayer/CLI/file/replication/failback.py
@@ -11,12 +11,7 @@
 @click.argument('volume-id')
 @environment.pass_env
 def cli(env, volume_id):
-    """Failback a file volume from the given replicant volume.
-
-    Example::
-        slcli file replica-failback 12345678
-        This command performs failback operation for volume with ID 12345678.
-"""
+    """Failback a file volume from the given replicant volume."""
     file_storage_manager = SoftLayer.FileStorageManager(env.client)
 
     success = file_storage_manager.failback_from_replicant(volume_id)
diff --git a/SoftLayer/CLI/file/replication/failover.py b/SoftLayer/CLI/file/replication/failover.py
index 3507dbc4..1902f228 100644
--- a/SoftLayer/CLI/file/replication/failover.py
+++ b/SoftLayer/CLI/file/replication/failover.py
@@ -11,12 +11,7 @@
 @click.option('--replicant-id', help="ID of the replicant volume")
 @environment.pass_env
 def cli(env, volume_id, replicant_id):
-    """Failover a file volume to the given replicant volume.
-
-    Example::
-        slcli file replica-failover 12345678 87654321
-        This command performs failover operation for volume with ID 12345678 to replica volume with ID 87654321.
-"""
+    """Failover a file volume to the given replicant volume."""
     file_storage_manager = SoftLayer.FileStorageManager(env.client)
 
     success = file_storage_manager.failover_to_replicant(
diff --git a/SoftLayer/CLI/file/replication/locations.py b/SoftLayer/CLI/file/replication/locations.py
index 7ed56c27..0dbc1704 100644
--- a/SoftLayer/CLI/file/replication/locations.py
+++ b/SoftLayer/CLI/file/replication/locations.py
@@ -29,12 +29,7 @@
               default=','.join(DEFAULT_COLUMNS))
 @environment.pass_env
 def cli(env, columns, sortby, volume_id):
-    """List suitable replication datacenters for the given volume.
-
-    Example::
-        slcl file replica-locations 12345678
-        This command lists suitable replication data centers for block volume with ID 12345678.
-    """
+    """List suitable replication datacenters for the given volume."""
     file_storage_manager = SoftLayer.FileStorageManager(env.client)
 
     legal_centers = file_storage_manager.get_replication_locations(
diff --git a/SoftLayer/CLI/file/replication/order.py b/SoftLayer/CLI/file/replication/order.py
index ae9e517d..14e4ae15 100644
--- a/SoftLayer/CLI/file/replication/order.py
+++ b/SoftLayer/CLI/file/replication/order.py
@@ -5,7 +5,6 @@
 import SoftLayer
 from SoftLayer.CLI import environment
 from SoftLayer.CLI import exceptions
-from SoftLayer.CLI import formatting
 from SoftLayer.CLI import helpers
 from SoftLayer import utils
 
@@ -28,47 +27,21 @@
               help='Endurance Storage Tier (IOPS per GB) of the primary'
               ' volume for which a replicant is ordered [optional]',
               type=click.Choice(['0.25', '2', '4', '10']))
-@click.option('--iops', '-i', type=int,
-              help='Performance Storage IOPs, between 100 and 6000 in multiples of 100,'
-              'if no IOPS value is specified, the IOPS value of the original volume will be used',
-              )
-@click.option('--force', default=False, is_flag=True, help="Force cancel block volume without confirmation")
 @environment.pass_env
-def cli(env, volume_id, snapshot_schedule, location, tier, iops, force):
-    """Order a file storage replica volume.
-
-    Example::
-        slcli file replica-order 12345678 -s DAILY -d dal09 --tier 4 --os-type LINUX
-        This command orders a replica for volume with ID 12345678, which performs DAILY
-        replication, is located at dal09, tier level is 4, OS type is Linux.
-    """
+def cli(env, volume_id, snapshot_schedule, location, tier):
+    """Order a file storage replica volume."""
     file_manager = SoftLayer.FileStorageManager(env.client)
     file_volume_id = helpers.resolve_id(file_manager.resolve_ids, volume_id, 'File Storage')
 
     if tier is not None:
         tier = float(tier)
 
-    if iops is not None:
-        if iops < 100 or iops > 6000:
-            raise exceptions.CLIHalt("-i|--iops must be between 100 and 6000, inclusive. "
-                                     "Run 'slcli block volume-options' to check available options.")
-
-        if iops % 100 != 0:
-            raise exceptions.CLIHalt("-i|--iops must be a multiple of 100. "
-                                     "Run 'slcli block volume-options' to check available options.")
-
-    if not force:
-        if not (env.skip_confirmations or
-                formatting.confirm(f"This will Order a file storage replica volume: {volume_id} "
-                                   "and cannot be undone. Continue?")):
-            raise exceptions.CLIAbort('Aborted.')
-
     try:
         order = file_manager.order_replicant_volume(
             file_volume_id,
             snapshot_schedule=snapshot_schedule,
             location=location,
-            tier=tier, iops=iops,
+            tier=tier,
         )
     except ValueError as ex:
         raise exceptions.ArgumentError(str(ex))
diff --git a/SoftLayer/CLI/file/replication/partners.py b/SoftLayer/CLI/file/replication/partners.py
index 6305cbf7..e4eb971d 100644
--- a/SoftLayer/CLI/file/replication/partners.py
+++ b/SoftLayer/CLI/file/replication/partners.py
@@ -21,12 +21,7 @@
               default=','.join(DEFAULT_COLUMNS))
 @environment.pass_env
 def cli(env, columns, sortby, volume_id):
-    """List existing replicant volumes for a file volume.
-
-    Example::
-        slcli file replica-partners 12345678
-        This command lists existing replicant volumes for block volume with ID 12345678.
-    """
+    """List existing replicant volumes for a file volume."""
     file_storage_manager = SoftLayer.FileStorageManager(env.client)
 
     legal_volumes = file_storage_manager.get_replication_partners(
diff --git a/SoftLayer/CLI/file/snapshot/cancel.py b/SoftLayer/CLI/file/snapshot/cancel.py
index ea78f138..d2b9f815 100644
--- a/SoftLayer/CLI/file/snapshot/cancel.py
+++ b/SoftLayer/CLI/file/snapshot/cancel.py
@@ -16,21 +16,14 @@
               is_flag=True,
               help="Cancels the snapshot space immediately instead "
                    "of on the billing anniversary")
-@click.option('--force', default=False, is_flag=True, help="Force cancel block volume without confirmation")
 @environment.pass_env
-def cli(env, volume_id, reason, immediate, force):
-    """Cancel existing snapshot space for a given volume.
-
-    Example::
-        slcli file snapshot-cancel 12345678 --immediate -f
-        This command cancels snapshot with ID 12345678 immediately without asking for confirmation.
-    """
+def cli(env, volume_id, reason, immediate):
+    """Cancel existing snapshot space for a given volume."""
 
     file_storage_manager = SoftLayer.FileStorageManager(env.client)
 
-    if not force:
-        if not (env.skip_confirmations or formatting.no_going_back(volume_id)):
-            raise exceptions.CLIAbort('Aborted.')
+    if not (env.skip_confirmations or formatting.no_going_back(volume_id)):
+        raise exceptions.CLIAbort('Aborted')
 
     cancelled = file_storage_manager.cancel_snapshot_space(
         volume_id, reason, immediate)
diff --git a/SoftLayer/CLI/file/snapshot/create.py b/SoftLayer/CLI/file/snapshot/create.py
index a4d9356c..b45a253b 100644
--- a/SoftLayer/CLI/file/snapshot/create.py
+++ b/SoftLayer/CLI/file/snapshot/create.py
@@ -12,13 +12,7 @@
               help='Notes to set on the new snapshot')
 @environment.pass_env
 def cli(env, volume_id, notes):
-    """Creates a snapshot on a given volume
-
-    Example::
-
-        slcli file snapshot-create 12345678 --note snapshotforsoftlayer
-        This command creates a snapshot for volume with ID 12345678 and with addition note as snapshotforsoftlayer.
-    """
+    """Creates a snapshot on a given volume"""
     file_storage_manager = SoftLayer.FileStorageManager(env.client)
     snapshot = file_storage_manager.create_snapshot(volume_id, notes=notes)
 
diff --git a/SoftLayer/CLI/file/snapshot/disable.py b/SoftLayer/CLI/file/snapshot/disable.py
index 27cf4917..66bf4777 100644
--- a/SoftLayer/CLI/file/snapshot/disable.py
+++ b/SoftLayer/CLI/file/snapshot/disable.py
@@ -14,13 +14,7 @@
               required=True)
 @environment.pass_env
 def cli(env, volume_id, schedule_type):
-    """Disables snapshots on the specified schedule for a given volume
-
-    Example::
-
-        slcli file snapshot-disable 12345678 -s DAILY
-        This command disables daily snapshot for volume with ID 12345678.
-    """
+    """Disables snapshots on the specified schedule for a given volume"""
 
     if (schedule_type not in ['INTERVAL', 'HOURLY', 'DAILY', 'WEEKLY']):
         raise exceptions.CLIAbort(
diff --git a/SoftLayer/CLI/file/snapshot/enable.py b/SoftLayer/CLI/file/snapshot/enable.py
index 67bf0652..477ab567 100644
--- a/SoftLayer/CLI/file/snapshot/enable.py
+++ b/SoftLayer/CLI/file/snapshot/enable.py
@@ -27,14 +27,7 @@
 @environment.pass_env
 def cli(env, volume_id, schedule_type, retention_count,
         minute, hour, day_of_week):
-    """Enables snapshots for a given volume on the specified schedule
-
-    Example::
-
-        slcli file snapshot-enable 12345678 -s WEEKLY -c 5 -m 0 --hour 2 -d 0
-        This command enables snapshot for volume with ID 12345678, snapshot is
-        taken weekly on every Sunday at 2:00, and up to 5 snapshots are retained.
-    """
+    """Enables snapshots for a given volume on the specified schedule"""
     file_manager = SoftLayer.FileStorageManager(env.client)
 
     valid_schedule_types = {'INTERVAL', 'HOURLY', 'DAILY', 'WEEKLY'}
diff --git a/SoftLayer/CLI/file/snapshot/list.py b/SoftLayer/CLI/file/snapshot/list.py
index cc8a355a..9663a456 100644
--- a/SoftLayer/CLI/file/snapshot/list.py
+++ b/SoftLayer/CLI/file/snapshot/list.py
@@ -35,12 +35,7 @@
               default=','.join(DEFAULT_COLUMNS))
 @environment.pass_env
 def cli(env, volume_id, sortby, columns):
-    """List file storage snapshots.
-
-    Example::
-    slcli file snapshot-list 12345678 --sortby id
-    This command lists all snapshots of volume with ID 12345678 and sorts them by ID.
-"""
+    """List file storage snapshots."""
     file_manager = SoftLayer.FileStorageManager(env.client)
     resolved_id = helpers.resolve_id(file_manager.resolve_ids, volume_id, 'Volume Id')
     snapshots = file_manager.get_file_volume_snapshot_list(
diff --git a/SoftLayer/CLI/file/snapshot/order.py b/SoftLayer/CLI/file/snapshot/order.py
index 131e8dce..f03a3cd3 100644
--- a/SoftLayer/CLI/file/snapshot/order.py
+++ b/SoftLayer/CLI/file/snapshot/order.py
@@ -25,12 +25,7 @@
               is_flag=True)
 @environment.pass_env
 def cli(env, volume_id, capacity, tier, upgrade):
-    """Order snapshot space for a file storage volume.
-
-    Example::
-    slcli file snapshot-order 12345678 -s 1000 -t 4
-    This command orders snapshot space for volume with ID 12345678, the size is 1000GB, the tier level is 4 IOPS per GB.
-"""
+    """Order snapshot space for a file storage volume."""
     file_manager = SoftLayer.FileStorageManager(env.client)
 
     if tier is not None:
diff --git a/SoftLayer/CLI/file/snapshot/restore.py b/SoftLayer/CLI/file/snapshot/restore.py
index 8db08e93..d54dd94a 100644
--- a/SoftLayer/CLI/file/snapshot/restore.py
+++ b/SoftLayer/CLI/file/snapshot/restore.py
@@ -13,12 +13,7 @@
               ' to restore the block volume')
 @environment.pass_env
 def cli(env, volume_id, snapshot_id):
-    """Restore file volume using a given snapshot
-
-    Example::
-    slcli file snapshot-restore 12345678 -s 87654321
-    This command restores volume with ID 12345678 from snapshot with ID 87654321.
-"""
+    """Restore file volume using a given snapshot"""
     file_manager = SoftLayer.FileStorageManager(env.client)
     success = file_manager.restore_from_snapshot(volume_id, snapshot_id)
 
diff --git a/SoftLayer/CLI/hardware/cancel.py b/SoftLayer/CLI/hardware/cancel.py
index ed8633fc..8af07787 100644
--- a/SoftLayer/CLI/hardware/cancel.py
+++ b/SoftLayer/CLI/hardware/cancel.py
@@ -20,9 +20,8 @@
               help="An optional comment to add to the cancellation ticket")
 @click.option('--reason',
               help="An optional cancellation reason. See cancel-reasons for a list of available options")
-@click.option('--force',  default=False, is_flag=True, help="Force modify")
 @environment.pass_env
-def cli(env, identifier, immediate, comment, reason, force):
+def cli(env, identifier, immediate, comment, reason):
     """Cancel a dedicated server."""
 
     mgr = SoftLayer.HardwareManager(env.client)
@@ -31,9 +30,4 @@ def cli(env, identifier, immediate, comment, reason, force):
     if not (env.skip_confirmations or formatting.no_going_back(hw_id)):
         raise exceptions.CLIAbort('Aborted')
 
-    if not force:
-        if not (env.skip_confirmations or
-                formatting.confirm("This action will incur charges on your account. Continue?")):
-            raise exceptions.CLIAbort('Aborted')
-
     mgr.cancel_hardware(hw_id, reason, comment, immediate)
diff --git a/SoftLayer/CLI/hardware/create.py b/SoftLayer/CLI/hardware/create.py
index eaa9e0a2..3547344a 100644
--- a/SoftLayer/CLI/hardware/create.py
+++ b/SoftLayer/CLI/hardware/create.py
@@ -37,9 +37,8 @@
               help="The ID of the private ROUTER on which you want the virtual server placed")
 @helpers.multi_option('--key', '-k', help="SSH keys to add to the root user")
 @helpers.multi_option('--extra', '-e', help="Extra option Key Names")
-@click.option('--force',  default=False, is_flag=True, help="Force modify")
 @environment.pass_env
-def cli(env, force, **args):
+def cli(env, **args):
     """Order/create a dedicated server."""
     mgr = SoftLayer.HardwareManager(env.client)
     network = SoftLayer.NetworkManager(env.client)
@@ -106,10 +105,9 @@ def cli(env, force, **args):
         for pod in pods:
             if args.get('datacenter') in pod['name']:
                 click.secho(f"Warning: Closed soon: {pod['name']}", fg='yellow')
-        if not force:
-            if not (env.skip_confirmations or formatting.confirm(
-                    "This action will incur charges on your account. Continue?")):
-                raise exceptions.CLIAbort('Aborting dedicated server order.')
+        if not (env.skip_confirmations or formatting.confirm(
+                "This action will incur charges on your account. Continue?")):
+            raise exceptions.CLIAbort('Aborting dedicated server order.')
 
         result = mgr.place_order(**order)
 
diff --git a/SoftLayer/CLI/loadbal/health.py b/SoftLayer/CLI/loadbal/health.py
index 10619d94..00107229 100644
--- a/SoftLayer/CLI/loadbal/health.py
+++ b/SoftLayer/CLI/loadbal/health.py
@@ -17,13 +17,7 @@
 @click.option('--url', '-u', help="Url path for HTTP/HTTPS checks.")
 @environment.pass_env
 def cli(env, identifier, uuid, interval, retry, timeout, url):
-    """Manage LBaaS health checks.
-
-    Example::
-
-        slcli loadbal health-edit (--lb-id LOADBAL_ID) (--health-uuid HEALTH_CHECK_UUID) [-i, --interval INTERVAL]
-        [-r, --retry RETRY] [-t, --timeout TIMEOUT] [-u, --url URL]
-    """
+    """Manage LBaaS health checks."""
 
     if not any([interval, retry, timeout, url]):
         raise exceptions.ArgumentError("Specify either interval, retry, timeout, url")
diff --git a/SoftLayer/CLI/loadbal/layer7_policy_list.py b/SoftLayer/CLI/loadbal/layer7_policy_list.py
index d304def1..60c93897 100644
--- a/SoftLayer/CLI/loadbal/layer7_policy_list.py
+++ b/SoftLayer/CLI/loadbal/layer7_policy_list.py
@@ -13,12 +13,7 @@
               help="Front-end Protocol identifier")
 @environment.pass_env
 def policies(env, protocol_id):
-    """List policies of the front-end protocol (listener).
-
-    Example::
-
-        slcli loadbal l7policies (--protocol-id PROTOCOL_ID)
-    """
+    """List policies of the front-end protocol (listener)."""
     mgr = SoftLayer.LoadBalancerManager(env.client)
 
     if protocol_id:
diff --git a/SoftLayer/CLI/loadbal/order.py b/SoftLayer/CLI/loadbal/order.py
index 9fe7cf44..532bd3ba 100644
--- a/SoftLayer/CLI/loadbal/order.py
+++ b/SoftLayer/CLI/loadbal/order.py
@@ -153,19 +153,13 @@ def order_options(env, datacenter):
 
 @click.command(cls=SoftLayer.CLI.command.SLCommand, )
 @click.argument('identifier')
-@click.option('--force', default=False, is_flag=True, help="Force cancel LBaaS Instance without confirmation")
 @environment.pass_env
-def cancel(env, identifier, force):
+def cancel(env, identifier):
     """Cancels a LBaaS instance"""
 
     mgr = SoftLayer.LoadBalancerManager(env.client)
     uuid, _ = mgr.get_lbaas_uuid_id(identifier)
 
-    if not force:
-        if not (env.skip_confirmations or
-                formatting.confirm("This will cancel the LBaaS Instance and cannot be undone. Continue?")):
-            raise exceptions.CLIAbort('Aborted')
-
     try:
         mgr.cancel_lbaas(uuid)
         click.secho(f"LB {identifier} canceled succesfully.", fg='green')
diff --git a/SoftLayer/CLI/loadbal/pools.py b/SoftLayer/CLI/loadbal/pools.py
index 8ef46737..e33f2696 100644
--- a/SoftLayer/CLI/loadbal/pools.py
+++ b/SoftLayer/CLI/loadbal/pools.py
@@ -169,13 +169,6 @@ def l7pool_add(env, identifier, **args):
     """Adds a new l7 pool
 
     -S is in colon deliminated format to make grouping IP:port:weight a bit easier.
-
-    Example::
-
-        slcli loadbal l7pool-add (--id LOADBAL_ID) (-n, --name NAME) [-m, --method METHOD]
-        [-s, --server BACKEND_IP:PORT] [-p, --protocol PROTOCOL] [--health-path PATH]
-        [--health-interval INTERVAL] [--health-retry RETRY]
-        [--health-timeout TIMEOUT] [--sticky cookie | source-ip]
     """
 
     mgr = SoftLayer.LoadBalancerManager(env.client)
diff --git a/SoftLayer/CLI/routes.py b/SoftLayer/CLI/routes.py
index dbaf1cfe..54c1deaa 100644
--- a/SoftLayer/CLI/routes.py
+++ b/SoftLayer/CLI/routes.py
@@ -403,8 +403,6 @@
     ('user:device-access', 'SoftLayer.CLI.user.device_access:cli'),
     ('user:vpn-manual', 'SoftLayer.CLI.user.vpn_manual:cli'),
     ('user:vpn-subnet', 'SoftLayer.CLI.user.vpn_subnet:cli'),
-    ('user:vpn-enable', 'SoftLayer.CLI.user.vpn_enable_or_disable:vpn_enable'),
-    ('user:vpn-disable', 'SoftLayer.CLI.user.vpn_enable_or_disable:vpn_disable'),
     ('user:remove-access', 'SoftLayer.CLI.user.remove_access:cli'),
     ('user:grant-access', 'SoftLayer.CLI.user.grant_access:cli'),
     ('user:vpn-password', 'SoftLayer.CLI.user.vpn_password:cli'),
diff --git a/SoftLayer/CLI/ticket/list.py b/SoftLayer/CLI/ticket/list.py
index 186c15f2..ea0febfe 100644
--- a/SoftLayer/CLI/ticket/list.py
+++ b/SoftLayer/CLI/ticket/list.py
@@ -12,19 +12,15 @@
 @click.command(cls=SoftLayer.CLI.command.SLCommand, )
 @click.option('--open / --closed', 'is_open', default=True,
               help="Display only open or closed tickets")
-@click.option('--limit', default=100, show_default=True, type=click.INT, help="Result limit")
-@click.option("--all", "-a", "all_tickets", is_flag=True, default=False, help="Return all tickets")
 @environment.pass_env
-def cli(env, is_open, limit, all_tickets):
+def cli(env, is_open):
     """List tickets."""
     ticket_mgr = SoftLayer.TicketManager(env.client)
     table = formatting.Table([
         'id', 'Case_Number', 'assigned_user', 'title', 'last_edited', 'status', 'updates', 'priority'
     ])
 
-    tickets = ticket_mgr.list_tickets(open_status=is_open,
-                                      closed_status=not is_open, limit=limit, all_tickets=all_tickets)
-
+    tickets = ticket_mgr.list_tickets(open_status=is_open, closed_status=not is_open)
     for ticket in tickets:
         user = formatting.blank()
         if ticket.get('assignedUser'):
diff --git a/SoftLayer/CLI/user/permissions.py b/SoftLayer/CLI/user/permissions.py
index 4aaeeb12..908dd43a 100644
--- a/SoftLayer/CLI/user/permissions.py
+++ b/SoftLayer/CLI/user/permissions.py
@@ -45,12 +45,7 @@ def permission_table(user_permissions, all_permissions):
     table.align['Assigned'] = 'l'
     for perm in all_permissions:
         assigned = user_permissions.get(perm['keyName'], False)
-        hide_permission_list = ['ACCOUNT_SUMMARY_VIEW', 'REQUEST_COMPLIANCE_REPORT',
-                                'COMPANY_EDIT', 'ONE_TIME_PAYMENTS', 'UPDATE_PAYMENT_DETAILS',
-                                'EU_LIMITED_PROCESSING_MANAGE', 'TICKET_ADD', 'TICKET_EDIT',
-                                'TICKET_SEARCH', 'TICKET_VIEW', 'TICKET_VIEW_ALL']
-        if perm['keyName'] not in hide_permission_list:
-            table.add_row([perm['name'], perm['keyName'], assigned])
+        table.add_row([perm['name'], perm['keyName'], assigned])
     return table
 
 
diff --git a/SoftLayer/CLI/user/vpn_enable_or_disable.py b/SoftLayer/CLI/user/vpn_enable_or_disable.py
deleted file mode 100644
index 2e8216d2..00000000
--- a/SoftLayer/CLI/user/vpn_enable_or_disable.py
+++ /dev/null
@@ -1,49 +0,0 @@
-"""Enable or Disable vpn for a user."""
-# :license: MIT, see LICENSE for more details.
-
-
-import click
-
-import SoftLayer
-from SoftLayer.CLI import environment
-from SoftLayer.CLI import helpers
-
-
-@click.command(cls=SoftLayer.CLI.command.SLCommand, )
-@click.argument('user')
-@environment.pass_env
-def vpn_enable(env, user):
-    """Enable vpn for a user.
-
-    Example::
-        slcli user vpn-enable 1234567
-    """
-
-    mgr = SoftLayer.UserManager(env.client)
-    user_id = helpers.resolve_id(mgr.resolve_ids, user, 'username')
-
-    result = mgr.vpn_enable_or_disable(user_id, True)
-    message = f"{user} vpn is successfully enabled"
-
-    if result:
-        click.secho(message, fg='green')
-
-
-@click.command(cls=SoftLayer.CLI.command.SLCommand, )
-@click.argument('user')
-@environment.pass_env
-def vpn_disable(env, user):
-    """Disable vpn for a user.
-
-    Example::
-        slcli user vpn-disable 1234567
-    """
-
-    mgr = SoftLayer.UserManager(env.client)
-    user_id = helpers.resolve_id(mgr.resolve_ids, user, 'username')
-
-    result = mgr.vpn_enable_or_disable(user_id, False)
-    message = f"{user} vpn is successfully disabled"
-
-    if result:
-        click.secho(message, fg='green')
diff --git a/SoftLayer/CLI/vpn/ipsec/cancel.py b/SoftLayer/CLI/vpn/ipsec/cancel.py
index 05688a10..66006991 100644
--- a/SoftLayer/CLI/vpn/ipsec/cancel.py
+++ b/SoftLayer/CLI/vpn/ipsec/cancel.py
@@ -5,8 +5,6 @@
 
 import SoftLayer
 from SoftLayer.CLI import environment
-from SoftLayer.CLI import exceptions
-from SoftLayer.CLI import formatting
 
 
 @click.command(cls=SoftLayer.CLI.command.SLCommand, )
@@ -17,9 +15,8 @@
               help="Cancels the service  immediately (instead of on the billing anniversary)")
 @click.option('--reason',
               help="An optional cancellation reason. See cancel-reasons for a list of available options")
-@click.option('--force', default=False, is_flag=True, help="Force cancel ipsec vpn without confirmation")
 @environment.pass_env
-def cli(env, identifier, immediate, reason, force):
+def cli(env, identifier, immediate, reason):
     """Cancel a IPSEC VPN tunnel context."""
 
     manager = SoftLayer.IPSECManager(env.client)
@@ -28,11 +25,6 @@ def cli(env, identifier, immediate, reason, force):
     if 'billingItem' not in context:
         raise SoftLayer.SoftLayerError("Cannot locate billing. May already be cancelled.")
 
-    if not force:
-        if not (env.skip_confirmations or
-                formatting.confirm("This will cancel the Ipsec Vpn and cannot be undone. Continue?")):
-            raise exceptions.CLIAbort('Aborted')
-
     result = manager.cancel_item(context['billingItem']['id'], immediate, reason)
 
     if result:
diff --git a/SoftLayer/CLI/vpn/ipsec/list.py b/SoftLayer/CLI/vpn/ipsec/list.py
index 652bd833..a9f8c703 100644
--- a/SoftLayer/CLI/vpn/ipsec/list.py
+++ b/SoftLayer/CLI/vpn/ipsec/list.py
@@ -9,10 +9,8 @@
 
 
 @click.command(cls=SoftLayer.CLI.command.SLCommand, )
-@click.option('--sortby', help='Column to sort by',
-              default='created')
 @environment.pass_env
-def cli(env, sortby):
+def cli(env):
     """List IPSec VPN tunnel contexts"""
     manager = SoftLayer.IPSECManager(env.client)
     contexts = manager.get_tunnel_contexts()
@@ -23,8 +21,6 @@ def cli(env, sortby):
                               'internal peer IP address',
                               'remote peer IP address',
                               'created'])
-    table.sortby = sortby
-
     for context in contexts:
         table.add_row([context.get('id', ''),
                        context.get('name', ''),
diff --git a/SoftLayer/consts.py b/SoftLayer/consts.py
index 4ed36b83..0af80d99 100644
--- a/SoftLayer/consts.py
+++ b/SoftLayer/consts.py
@@ -5,7 +5,7 @@
 
     :license: MIT, see LICENSE for more details.
 """
-VERSION = 'v6.1.7'
+VERSION = 'v6.1.8'
 API_PUBLIC_ENDPOINT = 'https://api.softlayer.com/xmlrpc/v3.1/'
 API_PRIVATE_ENDPOINT = 'https://api.service.softlayer.com/xmlrpc/v3.1/'
 API_PUBLIC_ENDPOINT_REST = 'https://api.softlayer.com/rest/v3.1/'
diff --git a/SoftLayer/managers/ticket.py b/SoftLayer/managers/ticket.py
index 558a8a9a..006ebb8a 100644
--- a/SoftLayer/managers/ticket.py
+++ b/SoftLayer/managers/ticket.py
@@ -22,12 +22,11 @@ def __init__(self, client):
         self.account = self.client['Account']
         self.ticket = self.client['Ticket']
 
-    def list_tickets(self, open_status=True, closed_status=True, limit=None, all_tickets=False):
+    def list_tickets(self, open_status=True, closed_status=True):
         """List all tickets.
 
         :param boolean open_status: include open tickets
         :param boolean closed_status: include closed tickets
-        :param int limit: result limit
         """
         mask = """mask[id, serviceProviderResourceId, title, assignedUser[firstName, lastName], priority,
                   createDate, lastEditDate, accountId, status, updateCount]"""
@@ -40,8 +39,7 @@ def list_tickets(self, open_status=True, closed_status=True, limit=None, all_tic
                 call = 'getClosedTickets'
             else:
                 raise ValueError("open_status and closed_status cannot both be False")
-
-        return self.client.call('Account', call, mask=mask, iter=all_tickets, limit=limit)
+        return self.client.call('Account', call, mask=mask, iter=False, limit=100)
 
     def list_subjects(self):
         """List all ticket subjects."""
diff --git a/SoftLayer/managers/user.py b/SoftLayer/managers/user.py
index cafdf1b8..6682c0cf 100644
--- a/SoftLayer/managers/user.py
+++ b/SoftLayer/managers/user.py
@@ -361,17 +361,6 @@ def vpn_manual(self, user_id, value):
         user_object = {'vpnManualConfig': value}
         return self.edit_user(user_id, user_object)
 
-    def vpn_enable_or_disable(self, user_id, value):
-        """Enable or Disable vpn for a user.
-
-        :param int user_id: User to edit.
-        :param bool value: Value for vpn enable flag.
-        or
-        :param bool value: Value for vpn disable flag.
-        """
-        user_object = {'sslVpnAllowedFlag': value}
-        return self.edit_user(user_id, user_object)
-
     def vpn_subnet_add(self, user_id, subnet_ids):
         """Add subnets for a user.
 
diff --git a/docs/cli/users.rst b/docs/cli/users.rst
index af86b4a9..e3d45bb1 100644
--- a/docs/cli/users.rst
+++ b/docs/cli/users.rst
@@ -64,14 +64,6 @@ Version 5.6.0 introduces the ability to interact with user accounts from the cli
     :prog: user vpn-password
     :show-nested:
 
-.. click:: SoftLayer.CLI.user.vpn_enable_or_disable:vpn_enable
-    :prog: user vpn-enable
-    :show-nested:
-
-.. click:: SoftLayer.CLI.user.vpn_enable_or_disable:vpn_disable
-    :prog: user vpn-disable
-    :show-nested:
-
 .. click:: SoftLayer.CLI.user.apikey:cli
     :prog: user apikey
     :show-nested:
diff --git a/setup.py b/setup.py
index f2efcd9d..6ec823b4 100644
--- a/setup.py
+++ b/setup.py
@@ -16,7 +16,7 @@
 
 setup(
     name='SoftLayer',
-    version='6.1.7',
+    version='6.1.8',
     description=DESCRIPTION,
     long_description=LONG_DESCRIPTION,
     long_description_content_type='text/x-rst',
@@ -40,7 +40,7 @@
         'prompt_toolkit >= 2',
         'pygments >= 2.0.0',
         'urllib3 >= 1.24',
-        'rich == 13.5.2'
+        'rich == 13.5.1'
     ],
     keywords=['softlayer', 'cloud', 'slcli'],
     classifiers=[
diff --git a/tools/requirements.txt b/tools/requirements.txt
index 1371ad79..6e820b55 100644
--- a/tools/requirements.txt
+++ b/tools/requirements.txt
@@ -4,6 +4,6 @@ requests >= 2.20.0
 prompt_toolkit >= 2
 pygments >= 2.0.0
 urllib3 >= 1.24
-rich == 13.5.2
+rich == 13.5.1
 # only used for soap transport
 # softlayer-zeep >= 5.0.0


Test patch:
diff --git a/tests/CLI/modules/block_tests.py b/tests/CLI/modules/block_tests.py
index 5a7cd7c8..ac34b537 100644
--- a/tests/CLI/modules/block_tests.py
+++ b/tests/CLI/modules/block_tests.py
@@ -978,18 +978,3 @@ def test_block_duplicate_covert_status(self):
 
         self.assert_no_fail(result)
         self.assert_called_with('SoftLayer_Network_Storage', 'getDuplicateConversionStatus')
-
-    @mock.patch('SoftLayer.CLI.formatting.confirm')
-    def test_cancel_block_volume_force(self, confirm_mock):
-        confirm_mock.return_value = False
-        result = self.run_command(['block', 'volume-cancel', '12345678', '--immediate', '--force'])
-        self.assert_no_fail(result)
-        self.assertEqual('Block volume with id 12345678 has been marked'
-                         ' for immediate cancellation\n', result.output)
-
-    @mock.patch('SoftLayer.CLI.formatting.confirm')
-    def test_cancel_block_volume_no_force(self, confirm_mock):
-        confirm_mock.return_value = False
-        result = self.run_command(['block', 'volume-cancel', '12345678'])
-        self.assertEqual(2, result.exit_code)
-        self.assertEqual('Aborted', result.exception.message)
diff --git a/tests/CLI/modules/file_tests.py b/tests/CLI/modules/file_tests.py
index a1749e7f..b9222574 100644
--- a/tests/CLI/modules/file_tests.py
+++ b/tests/CLI/modules/file_tests.py
@@ -828,25 +828,3 @@ def test_modify_order_no_force(self, confirm_mock):
 
         self.assertEqual(2, result.exit_code)
         self.assertEqual('Aborted', result.exception.message)
-
-    def test_file_replica_order_iops(self):
-        result_1 = self.run_command(['file', 'replica-order', '4917309', '-s', 'HOURLY', '-l', 'dal09', '-i', '121'])
-        self.assertEqual("-i|--iops must be a multiple of 100. "
-                         "Run 'slcli block volume-options' to check available options.\n", result_1.output)
-        result_2 = self.run_command(['file', 'replica-order', '4917309', '-s', 'HOURLY', '-l', 'dal09', '-i', '90'])
-        self.assertEqual("-i|--iops must be between 100 and 6000, inclusive. "
-                         "Run 'slcli block volume-options' to check available options.\n", result_2.output)
-
-    @mock.patch('SoftLayer.CLI.formatting.confirm')
-    def test_file_replica_order_force(self, confirm_mock):
-        confirm_mock.return_value = False
-        result = self.run_command(['file', 'replica-order', '4917309', '-s', 'HOURLY', '-l', 'dal09'])
-        self.assertEqual(2, result.exit_code)
-        self.assertEqual('Aborted.', result.exception.message)
-
-    @mock.patch('SoftLayer.CLI.formatting.confirm')
-    def test_file_snapshot_cancel_force(self, confirm_mock):
-        confirm_mock.return_value = False
-        result = self.run_command(['file', 'snapshot-cancel', '4917309'])
-        self.assertEqual(2, result.exit_code)
-        self.assertEqual('Aborted.', result.exception.message)
diff --git a/tests/CLI/modules/server_tests.py b/tests/CLI/modules/server_tests.py
index 7a4d1de3..1f17e0c2 100644
--- a/tests/CLI/modules/server_tests.py
+++ b/tests/CLI/modules/server_tests.py
@@ -922,7 +922,6 @@ def test_create_hw_no_confirm(self, confirm_mock):
                                    '--network=TEST_NETWORK', '--os=UBUNTU_12_64'])
 
         self.assertEqual(result.exit_code, 2)
-        self.assertEqual('Aborting dedicated server order.', result.exception.message)
 
     @mock.patch('SoftLayer.CLI.formatting.confirm')
     def test_authorize_hw_no_confirm(self, confirm_mock):
diff --git a/tests/CLI/modules/ticket_tests.py b/tests/CLI/modules/ticket_tests.py
index 91f64dcb..fb5ff8ec 100644
--- a/tests/CLI/modules/ticket_tests.py
+++ b/tests/CLI/modules/ticket_tests.py
@@ -358,33 +358,3 @@ def test_ticket_json(self):
                     'update 3': 'By emp1 (Employee) employee says something'}
         self.assert_no_fail(result)
         self.assertEqual(json.loads(result.output), expected)
-
-    def test_list_limit(self):
-        result = self.run_command(['ticket', 'list', '--limit', '1'])
-
-        expected = [{
-            'assigned_user': 'John Smith',
-            'Case_Number': 'CS123456',
-            'id': 102,
-            'last_edited': '2013-08-01',
-            'priority': 0,
-            'status': 'Open',
-            'title': 'Cloud Instance Cancellation - 08/01/13',
-            'updates': 0}]
-        self.assert_no_fail(result)
-        self.assertEqual(expected, json.loads(result.output))
-
-    def test_list_all_open(self):
-        result = self.run_command(['ticket', 'list', '--all'])
-
-        expected = [{
-            'assigned_user': 'John Smith',
-            'Case_Number': 'CS123456',
-            'id': 102,
-            'last_edited': '2013-08-01',
-            'priority': 0,
-            'status': 'Open',
-            'title': 'Cloud Instance Cancellation - 08/01/13',
-            'updates': 0}]
-        self.assert_no_fail(result)
-        self.assertEqual(expected, json.loads(result.output))
diff --git a/tests/CLI/modules/user_tests.py b/tests/CLI/modules/user_tests.py
index 804c9ef1..02956e68 100644
--- a/tests/CLI/modules/user_tests.py
+++ b/tests/CLI/modules/user_tests.py
@@ -8,9 +8,10 @@
 import sys
 import unittest
 
+from unittest import mock as mock
+
 from SoftLayer.fixtures import SoftLayer_User_Customer
 from SoftLayer import testing
-from unittest import mock as mock
 
 
 class UserCLITests(testing.TestCase):
@@ -415,27 +416,3 @@ def test_remove_api_authentication_key(self):
     def test_refresh_api_authentication_key(self):
         result = self.run_command(['user', 'apikey', '123456', '--refresh'])
         self.assert_no_fail(result)
-
-    def test_vpn_disable(self):
-        result = self.run_command(['user', 'vpn-disable', '8344458'])
-        self.assert_no_fail(result)
-        self.assert_called_with('SoftLayer_User_Customer', 'editObject', identifier=8344458)
-
-        result = self.run_command(['user', 'vpn-disable', '8344458'])
-        permission_m = self.set_mock('SoftLayer_User_Customer', 'editObject')
-        permission_m.return_value = {'sslVpnAllowedFlag': False}
-        self.assert_no_fail(result)
-        self.assert_called_with('SoftLayer_User_Customer', 'editObject', identifier=8344458)
-        self.assertEqual('8344458 vpn is successfully disabled\n', result.output)
-
-    def test_vpn_enable(self):
-        result = self.run_command(['user', 'vpn-enable', '8344458'])
-        self.assert_no_fail(result)
-        self.assert_called_with('SoftLayer_User_Customer', 'editObject', identifier=8344458)
-
-        result = self.run_command(['user', 'vpn-enable', '8344458'])
-        permission_m = self.set_mock('SoftLayer_User_Customer', 'editObject')
-        permission_m.return_value = {'sslVpnAllowedFlag': True}
-        self.assert_no_fail(result)
-        self.assert_called_with('SoftLayer_User_Customer', 'editObject', identifier=8344458)
-        self.assertEqual('8344458 vpn is successfully enabled\n', result.output)
diff --git a/tests/managers/block_tests.py b/tests/managers/block_tests.py
index 54dfc6e3..e3c351ee 100644
--- a/tests/managers/block_tests.py
+++ b/tests/managers/block_tests.py
@@ -14,7 +14,6 @@
 from SoftLayer.fixtures import SoftLayer_Product_Order
 from SoftLayer.fixtures import SoftLayer_Product_Package
 from SoftLayer import testing
-from unittest import mock as mock
 
 
 class BlockTests(testing.TestCase):
@@ -282,14 +281,6 @@ def test_cancel_snapshot_immediately(self):
             identifier=123,
         )
 
-    @mock.patch('SoftLayer.CLI.formatting.confirm')
-    def test_snapshot_cancel_no_force(self, confirm_mock):
-        confirm_mock.return_value = False
-        result = self.run_command(['block', 'snapshot-cancel', '102'])
-
-        self.assertEqual(2, result.exit_code)
-        self.assertEqual('Aborted', result.exception.message)
-
     def test_cancel_snapshot_hourly_billing_immediate_true(self):
         mock = self.set_mock('SoftLayer_Network_Storage', 'getObject')
         mock.return_value = {
diff --git a/tests/managers/hardware_tests.py b/tests/managers/hardware_tests.py
index 05790469..e8f70840 100644
--- a/tests/managers/hardware_tests.py
+++ b/tests/managers/hardware_tests.py
@@ -1052,11 +1052,3 @@ def test_is_private(self):
         item_public = {'attributes': [{'attributeTypeKeyName': 'NOT_PRIVATE_NETWORK_ONLY'}]}
         self.assertTrue(managers.hardware._is_private_port_speed_item(item_private))
         self.assertFalse(managers.hardware._is_private_port_speed_item(item_public))
-
-    @mock.patch('SoftLayer.CLI.formatting.confirm')
-    def test_hardware_cancel_no_force(self, confirm_mock):
-        confirm_mock.return_value = False
-        result = self.run_command(['hardware', 'cancel', '102'])
-
-        self.assertEqual(2, result.exit_code)
-        self.assertEqual('Aborted', result.exception.message)
diff --git a/tests/managers/user_tests.py b/tests/managers/user_tests.py
index b5b5f9da..2d50d820 100644
--- a/tests/managers/user_tests.py
+++ b/tests/managers/user_tests.py
@@ -183,24 +183,6 @@ def test_format_permission_object_all(self):
         self.assert_called_with(service_name, 'getAllObjects')
         self.assertEqual(expected, result)
 
-    def test_hide_permissions(self):
-        result = self.manager.get_all_permissions()
-        hide_permissions = [
-            {'keyName': 'ACCOUNT_SUMMARY_VIEW'},
-            {'keyName': 'REQUEST_COMPLIANCE_REPORT'},
-            {'keyName': 'COMPANY_EDIT'},
-            {'keyName': 'ONE_TIME_PAYMENTS'},
-            {'keyName': 'UPDATE_PAYMENT_DETAILS'},
-            {'keyName': 'EU_LIMITED_PROCESSING_MANAGE'},
-            {'keyName': 'TICKET_ADD'},
-            {'keyName': 'TICKET_EDIT'},
-            {'keyName': 'TICKET_SEARCH'},
-            {'keyName': 'TICKET_VIEW'},
-            {'keyName': 'TICKET_VIEW_ALL'}
-        ]
-        self.assert_called_with('SoftLayer_User_Permission_Action', 'getAllObjects')
-        self.assertNotEqual(hide_permissions, result)
-
     def test_get_current_user(self):
         result = self.manager.get_current_user()
         self.assert_called_with('SoftLayer_Account', 'getCurrentUser', mask=mock.ANY)