The The "softnas-cmd" command line interface utility facilitates integration with the REST API as a CLI (command line interface). softnas-cmd is written in CURL and is cross-platform code. It may also be useful as example code for how to use the API, for those who wish to explore it in more detail as a working example. This document has been produced by running `softnas-cmd --help`.
...
As with all SoftNAS API applications, softnas-cmd requires that you first authenticate with the SoftNAS server using the "login" command. Once you are logged in, softnas-cmd maintains a simulated cookie jar that emulates how a browser interacts with a web server to maintain session security (required by the SoftNAS server). Subsequent commands issued via the softnas-cmd CLI make use of the login session (which expires after 30 minutes).
Usage:
softnas-cmd [-h | --help] | [[-b | --base_url URL] [-s | --session_id SESSION_ID] [-i | --insecure] | [-t | --pretty_print] COMMAND [OPTIONS]]
OPTIONS:
-h [command name], --help [command name]
...
Display json result with indentation.
Commands:
Table of Contents | ||||
---|---|---|---|---|
|
login
Login into SoftNAS Application.
COMMAND OPTIONS:
username
password
EXAMPLE:
softnas-cmd login softnas Pass4W0rd
logout
Logout from SoftNAS Application.
EXAMPLE:
softnas-cmd logout
resetsessiontimer
This command is used to keep session active. By default session timeout is set to 30 minutes. if you want to keep session from being expired just call this function.
EXAMPLE:
softnas-cmd resetsessiontimer
licenseinfo
Returns the current license information.
EXAMPLE:
softnas-cmd licenseinfo
licenseactivate
Activate a license key for use with SoftNAS
COMMAND OPTIONS:
licencekey: the licence key; i.e., "softnas"
...
hardware id: can be obtained from "licenseinfo" in amazon the hardware id is the instance id
EXAMPLE:
softnas-cmd licenseactivate CEAASA-BESNJA-8MEED6-AHAZZN-XHWB8X-A2NUK3 RBLLC i-0b06fe44
internallicense
Force SoftNAS to use its built-in, default license.
EXAMPLE:
softnas-cmd internallicense
ackagreement
Acknowledge the license agreement (to enable use of the product).
EXAMPLE:
softnas-cmd ackagreement
checkupdate
Check to see if new software updates are available.
EXAMPLE:
softnas-cmd internallicense
executeupdate
Execute and apply software updates.
EXAMPLE:
softnas-cmd executeupdate
statusupdate
Return the status of an update that is in-progress (started by executeupdate).
EXAMPLE:
softnas-cmd statusupdate
availabledisks
Returns list of available disk devices.
EXAMPLE:
softnas-cmd availabledisks
pools
Lists available storage pools.
COMMAND OPTIONS:
start: position to start from (used for pagination)
limit: number of items to get
EXAMPLE:
softnas-cmd pools 1 10
pooldetails
List a storage pool's detailed attributes.
COMMAND OPTIONS:
pool name: the pool name
EXAMPLE:
softnas-cmd pooldetails pool1
poolcommand
Issue a command to control a storage pool.
COMMAND OPTIONS:
command name: zpool command name (startscrub, stopscrub, setonline, setoffline, removedevice, replacedevice)
pool name: the pool name
EXAMPLE:
softnas-cmd poolcommand <command> [arguments]
deletepool
Delete pool storage.
COMMAND OPTIONS:
pool name: the pool name
EXAMPLE:
softnas-cmd deletepool pool1
volumes
List available storage volumes.
COMMAND OPTIONS:
start: position to start from (used for pagination)
limit: number of items to get
EXAMPLE:
softnas-cmd volumes 1 10
createvolume
Create a volume.
COMMAND OPTIONS:
vol_name: name of volume
pool: selected pool name
...
- disabled: this disables synchronous requests. File system transactions are only committed to stable storage periodically. This option will give the highest performance. However, it is very dangerous as ZFS would be ignoring the synchronous transaction demands of applications such as databases or NFS. Administrators should only use this option when the risks are understood.
EXAMPLE:
softnas-cmd createvolume vol_name=volume5 pool=pool3 vol_type=filesystem provisioning=thin exportNFS=on shareCIFS=on dedup=on enable_snapshot=on schedule_name=Default hourlysnaps=5 dailysnaps=10 weeklysnaps=0 sync=always
editvolume
Edit a volume.
EXAMPLE:
softnas-cmd availabledisks
deletevolume
Delete a volume.
COMMAND OPTIONS:
volume name: name of volume
pool name: pool name
EXAMPLE:
softnas-cmd deletevolume volume6 pool3
schedulelist
List available schedules.
EXAMPLE:
softnas-cmd schedulelist
snapshotlist
List available snapshots.
COMMAND OPTIONS:
pool name: pool name i.e 'pool3/vol1'
...
limit: number of items to get
EXAMPLE:
softnas-cmd snapshotlist pool3/vol1 0 10
snapcommand
Issue a volume snapshot control command.
COMMAND OPTIONS:
command: possible values
- create: create new snapshot. Related options:
...
- snapshots: list of snapshot to be deleted in this format "poolname,volumename,snapshotname:poolname1,volumename1,snapshotname1". see example
EXAMPLE 1 :
Create snapshot.
softnas-cmd snapcommand create pool_name=pool1 volume_name=vol1
EXAMPLE 2 :
Clone snapshot.
softnas-cmd snapcommand clone pool_name=pool1 volume_name=vol1 snap_name=snaphot1
EXAMPLE 3 :
Delete snapshots.
softnas-cmd snapcommand delete 'snapshots=pool1,volume1,snap-20150605-140647-cloned-Jun52015-141106:pool1,volume1,snap-20150606-070607'
iscsitargetlist
Provides a list of available iSCSI targets.
COMMAND OPTIONS:
start: position to start from (used for pagination)
limit: number of items to get
EXAMPLE:
softnas-cmd iscsitargetlist 0 10
diskdevices
List of available disk devices and their status
EXAMPLE:
softnas-cmd diskdevices
diskmgmt
Issue a disk management command.
COMMAND OPTIONS:
command: possible values
- createS3disk: create s3 disk. Related options:
...
- encrypted: password for encrypting the disk
EXAMPLE 1:
Create s3 disk.
softnas-cmd diskmgmt createS3disk AWSAccessKey=YOUR_AWS_ACCESS_KEY_ID AWSSecretKey=YOUR_AWS_SECRET_KEY s3bucket=softnas-test-1 bucketroot=softnas sizeMaxValue=500 sizeMaxUnits=GB region=default encrypted diskpassword=password123* readahead blockCacheDevice=/dev/xvdf
EXAMPLE 2:
Get list of buckets.
softnas-cmd diskmgmt bucketlist
EXAMPLE 3:
Get list of s3 setting stored in config file.
softnas-cmd diskmgmt getS3settings
EXAMPLE 4:
Delete S3 disk.
softnas-cmd diskmgmt deleteS3disk "/dev/s3-0"
EXAMPLE 5:
Create EBS Disk General Purpose (SSD).
softnas-cmd diskmgmt createEBSdisk AWSAccessKey=XXXXXXXXXXXXXXXXXX AWSSecretKey='XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' sizeMaxValue=10 type=gp2 numberDisks=2 deleteOnTermination prewarming -t
EXAMPLE 6:
Create EBS Disk Provisioned IOPS (SSD).
softnas-cmd diskmgmt createEBSdisk AWSAccessKey=XXXXXXXXXXXXXXXXXX AWSSecretKey='XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' sizeMaxValue=100 type=io1 iops=3000 numberDisks=2 deleteOnTermination prewarming -t
EXAMPLE 7 :
Create Azure Disk.
softnas-cmd diskmgmt createAzureDisk username=softnas password=Pass4W0rd storageAccount=SoftnasStorage sizeMaxValue=100 sizeMaxUnits=GB -t
parted_command
Issue a disk partitioning command.
COMMAND OPTIONS:
command: possible values
- partition_all: partition all disks that are not partitioned
...
- disk name: selected disk device name
EXAMPLE:
softnas-cmd parted_command add_partition dev/xvdr
snaprepcommand
Issue SnapReplicate command.
COMMAND OPTIONS:
command: possible values
- snapverify: verify the remote node. Related options:
...
- limit: number of items to get
- forcesync forcesync: force full synchronization of all volumes image or specific volume between nodes
- volume_
...
path: optional, you can specify a volume (poolname/volumename) to force full synchronization
- replicatenow replicatenow: get snapreplicate log
- activate activate: activate replication
- deactivate deactivate: deactivate replication
- takeover takeover: takeover as replication source
- giveback giveback: giveback replication source duties
- deletereplication deletereplication: remove the replication
- getsettings getsettings: get replication settings
- modifysettings modifysettings: edit replication settings
- loglevel loglevel: Logging Level. Possible values
--
...
info: Informational, warning and error messages (default)
...
-- debug: Debug, informational, warning and error messages (all messages)
...
--
...
warn: Warning and error messages
...
-- error: Error messages only
...
-- fatal: Fatal messages only
...
--
...
off: No messages (not recommended)
- transportcmd transportcmd: Transport Command
- transportflags : Transport Flags
- cipherspec cipherspec: Cipher Spec
- compressenabled compressenabled: Compress data stream (consumes additional CPU)
- throttleenabled throttleenabled: enable bandwidth Throttle (per stream)
- throttlelimit throttlelimit: limit size
- throttleunits throttleunits: size unit possible values
-- b => bits/sec
...
-- k => Kbits/sec
...
-- m => Mbits/sec
...
-- B => Bytes/sec
...
-- K => Kbytes/sec
...
-- M => MBytes/sec
EXAMPLE 1:
...
Verify the SnapReplicate remote node.
softnas-cmd snaprepcommand snapverify remotenode=10.227.57.227 userid=softnas password=Pass4W0rd -t
...
EXAMPLE 2:
...
Initiate snapreplicate.
softnas-cmd snaprepcommand initsnapreplicate remotenode=10.227.57.227 userid=softnas password=Pass4W0rd type=target -
...
t
EXAMPLE 3:
...
Get snapreplicate status.
softnas-cmd snaprepcommand snapreplicatestatus start=0 limit=10 -t
...
EXAMPLE 4:
...
Get snapreplicate log
softnas-cmd snaprepcommand snapreplog start=0 limit=10 -t
...
EXAMPLE 5:
...
Delete snapreplication.
softnas-cmd snaprepcommand deletereplication -t
...
EXAMPLE 6:
...
Get replication settings.
softnas-cmd snaprepcommand getsettings -t
...
EXAMPLE 7:
...
Force full synchronization of all volumes images between 2 nodes
softnas-cmd snaprepcommand forcesync -t
...
EXAMPLE 8:
...
Force full synchronization volume image between 2 nodes, you . You can specify a volume (poolname/volumename) to force full synchronization.
softnas-cmd snaprepcommand forcesync poolname/volumename -t
...
EXAMPLE 9:
...
Start replication cycle.
softnas-cmd snaprepcommand replicatenow -t
...
EXAMPLE 10:
...
Activate replication.
softnas-cmd snaprepcommand activate -t
...
EXAMPLE 11:
...
Deactivate replication
softnas-cmd snaprepcommand deactivate -t
...
EXAMPLE 12:
...
Change role to primary node.
softnas-cmd snaprepcommand takeover -t
...
EXAMPLE 13:
...
Change role to secondery secondary node.
softnas-cmd snaprepcommand giveback -t
...
EXAMPLE 14:
...
Modify replication settings
softnas-cmd snaprepcommand modifysettings loglevel=info transportcmd=ssh transportflags="-o ConnectTimeout=30" cipherspec="aes128-cbc,blowfish-cbc,3des-cbc,cast128-cbc,aes192-cbc,aes256-cbc" compressenabled=on throttleenabled=on throttlelimit=200 throttleunits=K throttleflags= -t
...
hacommand
issue Issue ha command.
COMMAND OPTIONS:
command: possible values:
- checklicense checklicense: check for valid ha license
-
...
haLicenseKey: Ha license key (required)
...
-
...
regname: license registration name (optional). If not specified it will use softnas.ini registration name.
- checkHAcontroller: Check for valid HA Controller IP address
-
...
haControllerIP: Controller IP address
- install install: Begin install HA from the SnapReplicate "source" node
-
...
haLicenseKey: Ha license key (required)
...
-
...
regname: license registration name (optional). If not specified it will use softnas.ini registration name.
- add add: Begin Add configuration of SNAP HA from the SnapReplicate "source" node
-
...
AWSAccessKey: AWS Access Key
...
-
...
AWSSecretKey: AWS Secret Key
...
- ha_
...
type: Possible values :
...
- VIP: for private virtual ip
...
- EIP: for AWS elastic IP
...
-
...
vip: virtual IP (AWS Elastic IP)
...
-
...
haControllerIP: Controller IP address (required only on Virtual machine)
- del del: Delete HA from SnapReplicate
- azure_install install: Begin install Azure HA from the SnapReplicate "source" node
-
...
azureUsername: The main azure username credential (required)
...
-
...
azurePassword: The main azure password credential (required)
...
-
...
vip: A virtual IP address (VIP or VIPA) is a private IP address that doesn't correspond to an actual physical network interface (port). ie 192.168.1.1
- azure_delete delete: Delete Azure HA from SnapReplicate
EXAMPLE 1:
...
Check HA license.
softnas-cmd hacommand checklicense XXXXX-XXXXX-XXXXX-XXXXX-XXXXX-XXXXX --pretty_print
...
EXAMPLE 2:
...
Install HA.
softnas-cmd hacommand install XXXXX-XXXXX-XXXXX-XXXXX-XXXXX-XXXXX --pretty_print
...
EXAMPLE 3:
Add HA.
softnas-cmd hacommand add YOUR_AWS_ACCESS_KEY YOUR_AWS_SECRET_KEY EIP 54.84.87.120 --pretty_print
...
EXAMPLE 4:
check HA controller
softnas-cmd hacommand checkHAcontroller 50.15.14.15 --pretty_print
...
EXAMPLE 5:
...
Delete HA.
softnas-cmd hacommand del --pretty_print
...
EXAMPLE 6:
Azure install HA.
softnas-cmd hacommand azure_install azureUsername azurePassword 192.168.1.1 --pretty_print
...
EXAMPLE 7:
Azure delete HA.
softnas-cmd hacommand azure_delele --pretty_print
perfmon
perfmon get Get performance monitoring status information.
IMPORTANT: This command gives 30 records. You should call this command in serie series between each call less than 10 sec to get performance monitoring status information. For the first call this command will return all values as false and each next call with new record values.
EXAMPLE:
softnas-cmd perfmon
overview
get NAS overview status information
...