Tegile IntelliFlash API Reference Version 2.3 Intelli Flash V2 3 Guide 9

User Manual:

Open the PDF directly: View PDF PDF.
Page Count: 449

DownloadTegile IntelliFlash API Reference Version 2.3 Intelli Flash V2 3 Guide 9
Open PDF In BrowserView PDF
Tegile IntelliFlash API Reference
Guide
Version 2.3

Tegile IntelliFlash API Reference Guide, Version 2.3

Contents
About this Guide........................................................................................................ 12

Audience...................................................................................................................................12
Tegile Documentation............................................................................................................ 12
Document Revision History...................................................................................................13

Chapter 1: Introduction to the IntelliFlash API.................................... 1
API Version History................................................................................................................... 2
Key Features.............................................................................................................................. 8
Scope of the API....................................................................................................................... 9
Unified APIs............................................................................................................................. 10
Error and Exception Handling in the API............................................................................ 10
Error Codes..............................................................................................................................10
curl Syntax............................................................................................................................... 11
Using the API Examples.........................................................................................................11
Creating a Volume and Exposing It......................................................................................12
Backing Up a Volume.............................................................................................................13

Chapter 2: Sample Programs.................................................................15
Sample Perl Script.................................................................................................................. 16
Sample Python Program........................................................................................................16
Sample PowerShell Program.................................................................................................19

Chapter 3: User and Group Methods................................................... 21
changeUserPassword............................................................................................................. 22
createGroup.............................................................................................................................23
createGroup.............................................................................................................................24
createUser................................................................................................................................26
createUser................................................................................................................................27
createUserAndGroup..............................................................................................................29
deleteGroup.............................................................................................................................30
deleteUser................................................................................................................................32
listGroups................................................................................................................................. 33
listUsers....................................................................................................................................34

Chapter 4: SAN Methods........................................................................37
addInitiatorToInitiatorGroup................................................................................................. 38
createFCInitiator......................................................................................................................39
createInitiatorGroup............................................................................................................... 41
createIscsiInitiator...................................................................................................................42
createISCSITarget.................................................................................................................... 44
createISCSITargetForGroup....................................................................................................47

ii | Contents

Tegile IntelliFlash API Reference Guide, Version 2.3

createMappingForVolume......................................................................................................49
createMappingForVolume......................................................................................................50
createTargetGroup.................................................................................................................. 53
deleteInitiatorGroup............................................................................................................... 55
deleteISCSIInitiator..................................................................................................................56
deleteISCSITarget.................................................................................................................... 58
deleteMappingFromVolume.................................................................................................. 60
deleteTargetGroup.................................................................................................................. 61
getInitiatorGroup.................................................................................................................... 63
getProjectDefaultFcITView..................................................................................................... 64
getProjectDefaultIscsiITView..................................................................................................66
getVolumeITView.....................................................................................................................69
initiatorGroupExists................................................................................................................ 71
listFCInitiators.......................................................................................................................... 72
listFCInitiatorGroups...............................................................................................................74
listFCTargets.............................................................................................................................75
listFCTargetGroups..................................................................................................................77
listInitiatorGroups................................................................................................................... 78
listISCSIInitiatorGroups...........................................................................................................79
listISCSIInitiators......................................................................................................................80
listInitiatorsInInitiatorGroup.................................................................................................. 82
listISCSITargetGroups............................................................................................................. 83
listISCSITargets.........................................................................................................................84
listTargetGroups...................................................................................................................... 86
listTargetsInTargetGroup........................................................................................................87
modifyISCSITargetAlias........................................................................................................... 88
moveTargetToTargetGroup.................................................................................................... 90
moveInitiatorToInitiatorGroup.............................................................................................. 93

Chapter 5: Dataset Methods................................................................. 97
abortCopy.................................................................................................................................99
checkPoolIntegrity................................................................................................................ 100
copyDataset........................................................................................................................... 102
createProject..........................................................................................................................105
createMappingForProject.................................................................................................... 107
createShare............................................................................................................................111
createShare............................................................................................................................113
createVolume........................................................................................................................ 115
deleteDataset........................................................................................................................ 117
deleteDataset........................................................................................................................ 118
deleteMappingFromProject................................................................................................. 121
deletePool.............................................................................................................................. 123
deleteProject..........................................................................................................................125
deleteShare............................................................................................................................126
deleteShare............................................................................................................................128
deleteVolume........................................................................................................................ 130
deleteVolume........................................................................................................................ 131
exportPool............................................................................................................................. 133

iii

Tegile IntelliFlash API Reference Guide, Version 2.3

getCopyStatus........................................................................................................................135
getDatasetSpaceInfo............................................................................................................ 137
getFloatingIPList.................................................................................................................... 138
getPoolSpaceInfo.................................................................................................................. 141
getProject............................................................................................................................... 142
getProjectProperty................................................................................................................145
getShare................................................................................................................................. 146
getShareProperty.................................................................................................................. 149
getVolume.............................................................................................................................. 151
getVolumeProperty...............................................................................................................154
importPool............................................................................................................................. 155
inheritPropertyFromProject.................................................................................................157
isProjectExposedOverNFS....................................................................................................159
isShareExposedOverNFS......................................................................................................161
listAllCopyOperations........................................................................................................... 162
listLunsById............................................................................................................................164
listPools.................................................................................................................................. 166
listProjects..............................................................................................................................167
listRunningCopyOperations.................................................................................................168
listShares................................................................................................................................170
listSharesByMountPoints..................................................................................................... 171
listVolumes.............................................................................................................................173
modifyProjectProperties...................................................................................................... 175
modifyShareProperties........................................................................................................ 177
modifyVolumeProperties..................................................................................................... 179
resetPoolError....................................................................................................................... 181
setNFSSharingOnProject...................................................................................................... 183
setNFSSharingOnShare........................................................................................................ 186

Chapter 6: Snapshot Methods.............................................................189
cloneProjectSnapshot...........................................................................................................190
cloneReplicaProjectSnapshot.............................................................................................. 192
cloneReplicaSubProjectSnapshot....................................................................................... 194
cloneShareSnapshot.............................................................................................................196
cloneVolumeSnapshot..........................................................................................................197
cloneVolumeSnapshot..........................................................................................................199
createProjectSnapshot......................................................................................................... 201
createShareSnapshot........................................................................................................... 202
createSnapshotSchedule..................................................................................................... 204
createVolumeSnapshot........................................................................................................ 207
deleteProjectSnapshot......................................................................................................... 209
deleteShareSnapshot........................................................................................................... 211
deleteSnapshotSchedule..................................................................................................... 213
deleteSnapshotSchedules....................................................................................................215
deleteVolumeSnapshot........................................................................................................ 217
getProjectCloneStatus.......................................................................................................... 219
getProjectSnapshotCreationStatus.....................................................................................220
getShareSnapshotCreationStatus....................................................................................... 222

iv | Contents

Tegile IntelliFlash API Reference Guide, Version 2.3

getSnapshotSchedule...........................................................................................................224
getVolumeSnapshotCreationStatus....................................................................................227
inheritSnapshotSettingsFromProject................................................................................. 228
isSnapshotSchedulesInheritedFromProject...................................................................... 230
listDependenciesAndSnapshotCountOnDelete................................................................ 231
listDependenciesAndSnapshotCountOnRollback.............................................................233
listSnapshots......................................................................................................................... 235
rollBackToProjectSnapshot.................................................................................................. 237
rollBackToShareSnapshot.................................................................................................... 238
rollBackToVolumeSnapshot................................................................................................. 239

Chapter 7: Replication Methods......................................................... 241
getReplicationConfigList.......................................................................................................242
getReplicationStatus............................................................................................................. 243
startReplication..................................................................................................................... 245

Chapter 8: System Methods................................................................ 247
getDiskCount......................................................................................................................... 248
getDisks.................................................................................................................................. 248
getDisksByChassis.................................................................................................................251
getSMBConfig........................................................................................................................ 253
getUpgradeHistory................................................................................................................254
identifyDisk............................................................................................................................ 255
identifyDiskByIndex.............................................................................................................. 257
isProjectExposedOverSMB...................................................................................................259
isShareExposedOverSMB.....................................................................................................261
listSystemProperties.............................................................................................................263
setSMBConfig........................................................................................................................ 264
setSMBSharingOnProject.....................................................................................................266
setSMBSharingOnShare....................................................................................................... 268

Chapter 9: Network ACL Methods......................................................273
addNFSNetworkACLOnProject............................................................................................ 274
addNFSNetworkACLOnShare.............................................................................................. 277
addSMBNetworkACLOnProject........................................................................................... 280
addSMBNetworkACLOnShare............................................................................................. 284
getNFSNetworkACLsOnProject............................................................................................287
getNFSNetworkACLsOnShare..............................................................................................289
getSMBNetworkACLsOnProject...........................................................................................291
getSMBNetworkACLsOnShare.............................................................................................293
inheritNetworkACLsettingsFromProject.............................................................................295
removeAllNFSNetworkACLsOnProject................................................................................297
removeAllNFSNetworkACLsOnShare..................................................................................299
removeAllSMBNetworkACLsOnProject.............................................................................. 300
removeAllSMBNetworkACLsOnShare.................................................................................302
removeNFSNetworkACLOnProject......................................................................................303

v

Tegile IntelliFlash API Reference Guide, Version 2.3

removeNFSNetworkACLOnShare........................................................................................306
removeSMBNetworkACLOnProject.....................................................................................308
removeSMBNetworkACLOnShare.......................................................................................310
setNFSNetworkACLsOnProject............................................................................................312
setNFSNetworkACLsOnShare.............................................................................................. 315
setSMBNetworkACLsOnProject...........................................................................................319
setSMBNetworkACLsOnShare............................................................................................. 323

Chapter 10: SNMP Methods.................................................................327
addSNMPTrapListener..........................................................................................................328
disableSNMPService............................................................................................................. 330
enableSNMPService..............................................................................................................331
getSNMPSettings...................................................................................................................333
isSNMPServiceEnabled.........................................................................................................334
modifySNMPCommunityString........................................................................................... 335
recreateSNMPTables.............................................................................................................337
removeSNMPTrapListener................................................................................................... 338
resyncSNMPTables................................................................................................................340

Chapter 11: Analytics Methods...........................................................343
getOneMinuteSystemAnalyticsHistory...............................................................................344
getOneMinuteDataAnalyticsHistory................................................................................... 358

Chapter 12: Notification Methods......................................................375
getRecentNotifications......................................................................................................... 376
getRecentCriticalNotifications............................................................................................. 378

Chapter 13: Objects.............................................................................. 383
ArrayUpgrade_V2_1.............................................................................................................. 385
CopyDestination_V2_1..........................................................................................................385
CopySource_V2_1.................................................................................................................. 385
CopyStatus_V2_1................................................................................................................... 386
DataAnalyticsResult_V2_3.................................................................................................... 387
DatasetProperty_V2_1.......................................................................................................... 387
DatasetSpaceInfo_V2_1........................................................................................................ 387
DatasetStatus........................................................................................................................ 388
Disk_V2_1............................................................................................................................... 389
FCInitiator_V2_1.....................................................................................................................389
FCTarget_V2_1........................................................................................................................389
FloatingIP_V2_2......................................................................................................................390
InitiatorGroup_V2_1.............................................................................................................. 390
IscsiInitiator_V1_0..................................................................................................................390
ISCSIInitiator_V2_1................................................................................................................ 391
ISCSITarget_V2_1................................................................................................................... 392
ISCSITargetCreate_V2_1........................................................................................................393
ITView_V2_1............................................................................................................................394

vi | Contents

Tegile IntelliFlash API Reference Guide, Version 2.3

LocalGroup_V1_2...................................................................................................................394
LocalUser_V1_2......................................................................................................................394
LunStatus............................................................................................................................... 395
NetworkACL_V2_1................................................................................................................. 396
Notification_V2_3.................................................................................................................. 396
Pool_V1_0............................................................................................................................... 397
PoolSpaceInfo_V2_1..............................................................................................................397
Project_V1_0...........................................................................................................................398
Project_V1_2...........................................................................................................................398
Project_V2_1...........................................................................................................................398
ProjectCloneProgressStatus_v1_2.......................................................................................402
ReplicationConfig_V1_2........................................................................................................ 402
ReplicationStatus_v1_2.........................................................................................................402
Schedule_V2_1.......................................................................................................................403
Share_V1_0.............................................................................................................................405
Share_V2_1.............................................................................................................................405
ShareOptions.........................................................................................................................408
SharePermissions................................................................................................................. 409
SMBConfig_V2_2....................................................................................................................409
SnapShotDeletionStatus...................................................................................................... 410
SnapshotProgressStatus...................................................................................................... 410
SnapshotSchedule_V2_1...................................................................................................... 410
SNMP_Setting_V2_1.............................................................................................................. 410
SystemAnalyticsResult_V2_3................................................................................................411
TargetGroup_V2_2.................................................................................................................411
Volume_V1_0......................................................................................................................... 411
Volume_V2_1......................................................................................................................... 412
UserACL (Read Only) v2.1....................................................................................................414

Chapter 14: Enumerations...................................................................415
CLEANUP_STATUS................................................................................................................. 416
CLONE_PROGRESS_STATUS..................................................................................................416
COMMAND_STATUS.............................................................................................................. 416
Mode_enum...........................................................................................................................417
OVERWRITE_STATUS..............................................................................................................417
Permission_type_enum........................................................................................................ 417
Replication_Scope_Option................................................................................................... 418
SNAPSHOT_DELETION_STATUS........................................................................................... 418
SNAPSHOT_PROGRESS_STATUS.......................................................................................... 419
State........................................................................................................................................419
ZEBI_SYSTEM_PROPERTY..................................................................................................... 420

Appendix A: Appendix A...................................................................... 421
JSON Quick Reference..........................................................................................................422

Appendix B: Appendix B...................................................................... 425

vii

Tegile IntelliFlash API Reference Guide, Version 2.3

Deprecated APIs................................................................................................................... 426
createSnapshots......................................................................................................... 426
deleteSnapshots......................................................................................................... 428
deleteSnapshots......................................................................................................... 430
cloneSnapshot.............................................................................................................432

viii | Contents

Tegile IntelliFlash API Reference Guide, Version 2.3

ix

Tegile IntelliFlash API Reference Guide, Version 2.3

Copyright
© 2018 Western Digital Corporation or its affiliates. All Rights Reserved.

Notice: No part of this publication may be reproduced or transmitted in any form or by
any means, electronic or mechanical, including photocopying and recording, or stored in
a database or retrieval system for any purpose, without the express written permission of
Western Digital Corporation or its affiliates (hereinafter referred to as Western Digital or
Tegile). Tegile is a Western Digital brand.
Tegile reserves the right to make changes to this document at any time without notice
and assumes no responsibility for its use. Tegile products and services can be ordered
only under the terms and conditions of Tegile's applicable agreements. All of the features
described in this document may not be currently available. Refer to the latest product
announcement or contact your local Tegile sales office for information on feature and
product availability. This document includes the latest information available at the time of
publication.
Tegile, IntelliFlash, IntelliFlash HD, IntelliCare, IntelliShell, Zebi, and MASS are trademarks of
Western Digital Corporation or its affiliates in the United States and other countries.
All other trademarks, service marks, and company names in this document are properties of
their respective owners.
Western Digital Corporation | 7999 Gateway Blvd. | Suite 120 | Newark, CA 94560 | 1-855-5TEGILE (1-855-583-4453) | www.tegile.com

10

Copyright

11

Tegile IntelliFlash API Reference Guide, Version 2.3

About this Guide
This API Reference Guide contains detailed information about using the IntelliFlash REST
APIs.
Note: To reference older versions of the software, this document uses the term
IntelliFlash instead of Zebi, except where noted.

Audience
This API Reference Guide is intended for developers and solution engineers who will be
creating applications using the IntelliFlash REST APIs.

Tegile Documentation
The following table lists the technical documentation types available for Tegile arrays and
expansion shelves.
Table 1: Tegile Documentation

12

Name

Description

IntelliFlash N-Series All-Flash Array
Hardware Guide

Contains detailed descriptions, hardware
specifications, and rack installation instructions for
the N-Series NVMe storage arrays.

Tegile IntelliFlash User Guide

Contains detailed instructions on how to configure,
use, and administer Tegile arrays.

Tegile IntelliFlash API Reference
Guide

Contains detailed information about the Tegile REST
APIs.

Tegile IntelliFlash Release Notes

Provides details on enhancements, fixed issues, and
known issues for a release.

About this Guide

Document Revision History
Table 2: IntelliFlash API Guide Revisions
Date

Description

11/29/2018

Update for the new APIs included in IntelliFlash REST APIs
version 2.3. IntelliFlash 3.9.0.0 uses version 2.3 of the APIs.
The following new APIs are added:
•
•
•
•

07/16/2018

getOneMinuteDataAnalyticsHistory
getOneMinuteSystemAnalyticsHistory
getRecentNotifications
getRecentCriticalNotifications

Update for the new APIs included in IntelliFlash REST APIs
version 2.2. IntelliFlash 3.7.1.0 uses version 2.2 of the APIs.
Document changes include:
• Chapter 1: Introduction to the IntelliFlash API [updated
the API Version History topic with new and updated APIs
introduced in version 2.2].
• Chapter 5: Dataset Methods [added new APIs
introduced in version 2.2: moveInitiatorToInitiatorGroup,
listTargetGroups, getSMBConfig, setSMBConfig, and
getFloatingIPList. Updated moveTargetToTargetGroup,
getDisks identifyDisk, and identifyDiskByIndex].
• Chapter 11: Objects [updated Share v2_1. Added
TargetGroup_V2_2].

11/17/2017

Document changes include:
• Chapter 1: Introduction to the IntelliFlash API [updated;
includes a new topic, API Version History.]
• Chapter 11: Objects [updated Project_V2_1]
• Throughout guide: Added "First Available Version" section
in all the API method descriptions.

13

Tegile IntelliFlash API Reference Guide, Version 2.3

Date

Description

10/10/2017

Update for the new APIs included in IntelliFlash REST API
version 2.1. IntelliFlash 3.7.0.x uses version 2.1 of the
IntelliFlash APIs.
Document changes include:
• Chapter 1: Introduction to the IntelliFlash API [updated;
Supercedes previous Chapter 2: Common Workflows,
Chapter 3: Using the API Method Reference, and Chapter
13: IntelliFlash API Error Codes.]
• Chapter 4: SAN Methods [updated]
• Chapter 5: Dataset Methods [updated]
• Chapter 6: Snapshot Methods [updated]
• Chapter 8: System Methods [updated]
• Chapter 9: Network ACL Methods [new]
• Chapter 10: SNMP Methods [new]
• Chapter 11: Objects [updated]

07/31/2017

Miscellaneous changes: Updated examples, descriptions,
and tables throughout the document.

07/08/2016

Updated for IntelliFlash version 3.5.0.1. Three new APIs
added: rollBackToProjectSnapshot, rollBackToVolumeSnapshot,
and rollBackToShareSnapshot. Enhanced listSystemProperties
API and updated parameters for ZEBI_SYSTEM_PROPERTY and
Using the API Examples.

01/26/2015

Initial release for IntelliFlash REST APIs version 2.0. The
changes in this version are the following:
• Added cloneVolumeSnapshot API.
• Removed Best practices for accessing the controllers
using the API section.
• Added Unified APIs section.
• Changed the path ../v1/... to ../v2/.. for all the APIs.

14

About this Guide

15

Chapter 1
Introduction to the IntelliFlash API
Topics:
•
•
•
•
•
•
•
•
•
•

API Version History
Key Features
Scope of the API
Unified APIs
Error and Exception Handling in
the API
Error Codes
curl Syntax
Using the API Examples
Creating a Volume and Exposing It
Backing Up a Volume

The IntelliFlash API provides an interface to securely
configure and provision storage on IntelliFlash using a
programming or scripting language. It enables you to
integrate Tegile arrays with third-party software. It also
allows you to automate common and repetitive tasks,
such as retrieving a list of volumes and their status,
provisioning new volumes, and creating and managing
snapshots.

Introduction to the IntelliFlash API | 1

Tegile IntelliFlash API Reference Guide, Version 2.3

API Version History
APIs

Introduced in
API Version

First Available
IntelliFlash Version

2.3

IntelliFlash 3.9.0.0

2.2

IntelliFlash 3.7.1.0

moveTargetToTargetGroup

2.1 (introduced)

getDisks

2.2 (updated)

IntelliFlash 3.7.0.x
(introduced)

getOneMinuteDataAnalyticsHistory
getOneMinuteSystemAnalyticsHistory
getRecentNotifications
getRecentCriticalNotifications
moveInitiatorToInitiatorGroup
listTargetGroups
getSMBConfig
setSMBConfig
getFloatingIPList

identifyDisk
identifyDiskByIndex

IntelliFlash 3.7.1.0
(updated)

Share v2_1 object
abortCopy
addNFSNetworkACLOnProject
addNFSNetworkACLOnShare
addSMBNetworkACLOnProject
addSMBNetworkACLOnShare
addSNMPTrapListener
checkPoolIntegrity
cloneReplicaProjectSnapshot
cloneReplicaSubProjectSnapshot
copyDataset

2

2.1

IntelliFlash 3.7.0.x

Introduction to the IntelliFlash API

APIs
createFCInitiator

Introduced in
API Version

First Available
IntelliFlash Version

2.1

IntelliFlash 3.7.0.x

2.1

IntelliFlash 3.7.0.x

createISCSITarget
createISCSITargetForGroup
createMappingForVolume
createProject
createMappingForProject
createSnapshotSchedule
createTargetGroup
deleteDataset
deleteInitiatorGroup
deleteISCSIInitiator
deleteISCSITarget
deleteMappingFromProject
deletePool
deleteProject
deleteShare
deleteSnapshotSchedule
deleteSnapshotSchedules
deleteTargetGroup
deleteVolume
disableSNMPService
enableSNMPService
exportPool

3

Tegile IntelliFlash API Reference Guide, Version 2.3

APIs
getCopyStatus
getDatasetSpaceInfo
getDiskCount
getDisksByChassis
getNFSNetworkACLsOnProject
getNFSNetworkACLsOnShare
getPoolSpaceInfo
getProject
getProjectDefaultFcITView
getProjectDefaultIscsiITView
getProjectProperty
getShare
getShareProperty
getSMBNetworkACLsOnProject
getSMBNetworkACLsOnShare
getSnapshotSchedule
getSNMPSettings
getUpgradeHistory
getVolume
getVolumeITView
getVolumeProperty

4

Introduced in
API Version
2.1

First Available
IntelliFlash Version
IntelliFlash 3.7.0.x

Introduction to the IntelliFlash API

APIs
importPool

Introduced in
API Version

First Available
IntelliFlash Version

2.1

IntelliFlash 3.7.0.x

2.1

IntelliFlash 3.7.0.x

inheritNetworkACLsettingsFromProject
inheritPropertyFromProject
inheritSnapshotSettingsFromProject
isProjectExposedOverNFS
isProjectExposedOverSMB
isShareExposedOverNFS
isShareExposedOverSMB
isSnapshotSchedulesInheritedFromProject
isSNMPServiceEnabled
listAllCopyOperations
listDependenciesAndSnapshotCountOnDelete
listDependenciesAndSnapshotCountOnRollback
listFCInitiators
listFCTargets
listInitiatorGroups
listISCSIInitiators
listISCSITargets
listRunningCopyOperations
listSharesByMountPoints
modifyISCSITargetAlias
modifyProjectProperties
modifyShareProperties
modifySNMPCommunityString
modifyVolumeProperties

5

Tegile IntelliFlash API Reference Guide, Version 2.3

APIs
recreateSnmpTables

Introduced in
API Version

First Available
IntelliFlash Version

2.1

IntelliFlash 3.7.0.x

2.1

IntelliFlash 3.7.0.x

2.1

IntelliFlash 3.7.0.x

removeAllNFSNetworkACLsOnProject
removeAllNFSNetworkACLsOnShare
removeAllSMBNetworkACLsOnProject
removeAllSMBNetworkACLsOnShare
removeNFSNetworkACLOnProject
removeNFSNetworkACLOnShare
removeSMBNetworkACLOnProject
removeSMBNetworkACLOnShare
removeSNMPTrapListener
resetPoolError
resyncSnmpTables
setNFSNetworkACLsOnProject
setNFSNetworkACLsOnShare
setNFSSharingOnProject
setNFSSharingOnShare
setSMBNetworkACLsOnProject
setSMBNetworkACLsOnShare
setSMBSharingOnProject
setSMBSharingOnShare
recreateSNMPTables
resyncSNMPTables
rollBackToProjectSnapshot

IntelliFlash 3.5.4.0
2.0

IntelliFlash 3.5.0.1

2.0

IntelliFlash 3.5.0.0

rollBackToShareSnapshot
rollBackToVolumeSnapshot
cloneVolumeSnapshot

6

Introduction to the IntelliFlash API

APIs
changeUserPassword

Introduced in
API Version

First Available
IntelliFlash Version

1.2

IntelliFlash 2.1.2.1

1.2

IntelliFlash 2.1.2.1

cloneProjectSnapshot
cloneShareSnapshot
cloneVolumeSnapshot
cloneVolumeSnapshot
createGroup
createProjectSnapshot
createShareSnapshot
createUser
createUserAndGroup
createVolumeSnapshot
deleteGroup
deleteProjectSnapshot
deleteShareSnapshot
deleteUser
deleteVolumeSnapshot
getProjectCloneStatus
getProjectSnapshotCreationStatus
getReplicationConfigList
getReplicationStatus
getShareSnapshotCreationStatus
getVolumeSnapshotCreationStatus
listGroups
listUsers
startReplication

7

Tegile IntelliFlash API Reference Guide, Version 2.3

APIs
addInitiatorToInitiatorGroup

Introduced in
API Version

First Available
IntelliFlash Version

1.0

IntelliFlash 2.1.0.0

1.0

IntelliFlash 2.1.0.0

cloneSnapshot
createInitiatorGroup
createIscsiInitiator
createMappingForVolume
createSnapshots
createVolume
deleteDataset
deleteMappingFromVolume
deleteSnapshots
deleteVolume
getInitiatorGroup
initiatorGroupExists
listFCInitiatorGroups
listFCTargetGroups
listInitiatorsInInitiatorGroup
listISCSIInitiatorGroups
listISCSITargetGroups
listLunsById
listPools
listProjects
listShares
listSnapshots
listSystemProperties
listTargetsInTargetGroup
listVolumes

Key Features
The key features of the IntelliFlash API are:

8

Introduction to the IntelliFlash API

• REST (Representational State Transfer) API: The API uses HTTP 1.1 request methods.
Because HTTP is a well-known protocol and many scripting languages support it, it
simplifies the task of building scripts and applications that use the API.
• JSON (JavaScript Object Notation) data structures: The API uses JSON as the data
exchange format. All parameters in requests sent by the client must use JSON. Similarly,
the responses sent by the server (including error responses) are JSON data structures.
• HTTPS: The API uses HTTPS to secure the communication between the client and the
server.
• Basic Authentication: The API uses HTTP Basic authentication over Transport Layer
Security (TLS)/Secure Sockets Layer (SSL). This allows only authorized personnel/programs
to securely access the API.
Warning: Because the API requires the IntelliFlash Web UI administrator credentials
for authentication, make sure to adequately secure the machine and the user account
from which the client programs/scripts are run. Administrators must ensure that the
credentials are not compromised by someone reading the script.

Scope of the API
The IntelliFlash REST APIs enable you to do the following tasks:
• List pools, projects, volumes, users, groups, LUNs, shares, snapshots, initiators, initiator
groups, targets, target groups, and system properties.
• Create users, groups, volumes, snapshots, initiator groups, mapping for volumes, and
iSCSI initiators.
• Clone snapshots.
• Roll back project, share, and volume snapshots.
• Delete users, groups, snapshots, volumes, shares, mapping for volume, volume snapshot,
share snapshot, and other datasets.
• Check whether an initiator group exists.
• Add an initiator to an initiator group.
• Retrieve the initiator group for an initiator.
• Obtain replication configuration list, status, and to start replication.
• View history of IntelliFlash installations and upgrades to the array.
• Delete, export, import, or expand pools
• Create or delete projects
• View, modify, or manage projects and dataset properties
• Add, set, or modify ACLs on projects and shares
• Create or move target groups
• Clone replica datasets
• Obtain IT views on SAN volumes and projects
• View space info for pools and datasets
• Create or delete mappings for projects and volumes
• View or identify disks
• View, create, inherit, or delete snapshot schedules
• View, create, or delete SAN targets, target groups, and initiators

9

Tegile IntelliFlash API Reference Guide, Version 2.3

•
•
•
•

Enable or disable SNMP services
Add or remove SNMP trap listeners
Copy datasets, list or abort any ongoing copy operations
Promote clones before deleting a share or LUN

Unified APIs
IntelliFlash REST APIs run on and obtain results from both controllers in a Tegile array.
For example, the listProjects API returns projects belonging to a pool, irrespective of the
controller on which the pool currently resides (Controller-A or Controller-B).
Note: The IntelliFlash REST APIs are unified starting from API version 2.0. Previous
versions of the IntelliFlash REST APIs—version 1.0 and version 1.2—could access only
one controller in an API request.
Invoking the Unified API with the array management IP address
You are required to use the array management IP address instead of the controller
management IP addresses for the unified API to work correctly.
URL changes across the API versions
APIs in version 2.x include "/v2/" in the API endpoint. For example:
https:///zebi/api/v2/

Error and Exception Handling in the API
In situations where a method does not succeed, the API will return one or more of the
following responses:
• An HTTP status code that indicates an error. Possible status codes include:
• 400 (bad request)
• 404 (not found).
• 500 (internal server error).
• An integer that indicates an error (for example the values listed in the COMMAND_STATUS,
CLEANUP_STATUS, and SNAPSHOT_PROGRESS_STATUS enumerations.)
• A JSON object that contains a enumeration field that indicates an error.

Error Codes
The IntelliFlash API uses the following error codes.

10

Error Code

Description

EZEBI_GENERAL

Indicates a general error.

Introduction to the IntelliFlash API

Error Code

Description

EZEBI_INVALID_ARGUMENT

Indicates invalid arguments.

EZEBI_PERMISSION_DENIED

Indicates that permission is denied.

EZEBI_NOMEMORY

Indicates that no memory is left.

EZEBI_NOSPACE

Indicates that no space is left on device.

EZEBI_RESOURCE_SUSPENDED

Indicates that resource operation is suspended.

EZEBI_RESOURCE_BUSY

Indicates that resource is busy.

EZEBI_RESOURCE_INUSE

Indicates that resource required is being used by
others.

EZEBI_RESOURCE_EXIST

Indicates that target already exists.

EZEBI_RESOURCE_CORRUPTED

Indicates that resource is corrupted.

EZEBI_RESOURCE_NOT_FOUND

Indicates that resource is not found.

EZEBI_REQUEST_EXIST

Indicates that request is in progress already.

EZEBI_REQUEST_INTERRUPTED

Indicates that request is interrupted.

EZEBI_REQUEST_TIMEOUT

Indicates that request is timed out.

EZEBI_HOST_UNREACHABLE

Indicates that host is unreachable.

EZEBI_HOST_UNKNOWN

Indicates that host is unknown.

curl Syntax
The examples use the curl command to represent the HTTP requests.

The curl examples include the HTTP headers, the JSON data sent in the request, and the
endpoint of the API.
Tegile arrays use a self-signed certificate. This may prevent the curl command from
working. As a workaround, you can use the –k parameter with the curl command to ignore
the warnings/errors generated due to the self-signed certificate.

Using the API Examples
The documentation for each API method includes examples.
The examples use the curl command for the requests. The documentation for most API
methods includes two types of examples:
• Working examples with sample responses.
• Erroneous examples with error responses. These examples are erroneous because they
use incorrect data for a particular context. The purpose of the erroneous examples is only
to illustrate some of the responses that a Tegile array will return if it receives incorrect
data.

11

Tegile IntelliFlash API Reference Guide, Version 2.3

Before using the examples in your scripts and programs, ensure that you make the following
changes:
• Use the authentication token returned by your Tegile array instead of the dummy token
(AUTH_TOKEN) given in the examples. The authentication token must be encoded
as a Base64 string to use the REST API. For example, you can use the following Linux
command (that is part of the Linux coreutils package) to convert your credentials to
Base64.
# echo -n 'username:password' | base64

• Use data that is relevant to your environment and requirements instead of the dummy
data given in the examples.
• Use the Array Management IP address instead of the dummy IP address given in the
examples.

Creating a Volume and Exposing It
Prerequisites
You can create a volume and expose it using the IntelliFlash API. To accomplish this, you
must first ensure that the Tegile array contains the following:
• A pool
• A project in that pool
• An FC or iSCSI target
• An FC or iSCSI target group
• A mapping between the target and the target group
After ensuring that the prerequisites listed above are met, use the IntelliFlash API to:
1. Create a volume using the createVolume method.
2. Create an iSCSI initiator using the createIscsiInitiator method.
3. Create an initiator group using the createInitiatorGroup method.
Note: You do not need to create FC initiators. If the FC fabric configurations are
correct, the initiators automatically log in to the target ports.
4. Associate the initiator with the initiator group using the addInitiatorToInitiatorGroup
method.
5. Map the volume to a target group and an initiator group using the
createMappingForVolume method.

12

Introduction to the IntelliFlash API

Backing Up a Volume
You can back up an existing IntelliFlash volume using the IntelliFlash API.
To accomplish this, use the IntelliFlash API to complete the following steps:
1. Create a volume snapshot using the createVolumeSnapshot method.
2. Create a clone from the volume snapshot using the cloneVolumeSnapshot method.
3. Mount the newly cloned volume and take a backup.
4. Clean up the cloned volume using the deleteVolume method.
5. Clean up the snapshot from which the clone was created using the deleteVolumeSnapshot
method.

13

Chapter 2
Sample Programs
Topics:
•
•
•

Sample Perl Script
Sample Python Program
Sample PowerShell Program

The following sample programs illustrate how to access
the IntelliFlash API using Perl and Python.
Note: The IntelliFlash API uses basic authentication
over HTTPS. If you are using self-signed certificates
on the Tegile array, the program that invokes the
IntelliFlash APIs must include instructions to trust
the SSL certificate.

Sample Programs | 15

Tegile IntelliFlash API Reference Guide, Version 2.3

Sample Perl Script
The following Perl script illustrates how to authenticate, accept (trust) the self-signed
certificate, and invoke the listPools API.
use
use
use
use

REST::Client;
JSON;
Data::Dumper;
MIME::Base64;

# next line is for ignoring the certificate if it is self-signed.
$ENV{PERL_LWP_SSL_VERIFY_HOSTNAME}=0;
$username = 'admin';
$password = 't';
my $host= "https://198.51.100.10";
my $url = "/zebi/api/v2/listPools";
my $json_data = "";
# Below line is for basic authentication
my $headers = { Accept => 'application/json',
Authorization => 'Basic '. encode_base64($username . ':' .
$password)};
my $client = REST::Client->new();
$client->setHost($host);
$client->setTimeout(60);
# For API Call
$client->POST($url,($json_data,$headers));
print Dumper ($client->responseContent());

Note:
You must replace the IP address (198.51.100.10) with your Array Management IP
address.

Sample Python Program
The following Python program illustrates how to authenticate, accept (trust) the self-signed
certificate, and invoke the following APIs:
• listPools
• listProjects
• listVolumes
• createVolumeSnapshot
• cloneVolumeSnapshot
• getReplicationConfigList

16

Sample Programs

• startReplication
• getReplicationStatus
import httplib2;
import base64;
import json;
##h = httplib2.Http();
h = httplib2.Http(disable_ssl_certificate_validation=True);
auth = base64.encodestring('admin' + ":" + "t");
url = "https://198.51.100.10/zebi/api/v2/listPools";
method = "GET";
headerMap = {'content-type':'application/json', 'Authorization' : 'Basic ' +
auth};
resp, content = h.request(url, method, headers=headerMap);
poolArray = json.loads(content);
# List projects inside a the pool
url = "https://198.51.100.10/zebi/api/v2/listProjects";
method = "POST";
poolName = poolArray[0]["name"];
#Prepare Parameter Array
paramArray = [];
paramArray.append(poolName);
paramArray.append(True);
paramJSONData = json.dumps(paramArray);
resp, content = h.request(url, method, paramJSONData, headers=headerMap);
projectArray = json.loads(content);
print resp.status;
print content;
#List Volumes inside a project
url = "https://198.51.100.10/zebi/api/v2/listVolumes";
method = "POST";
projectName = projectArray[0]["name"];
paramArray = [];
paramArray.append(poolName);
paramArray.append(projectName);
paramArray.append(True);
paramJSONData = json.dumps(paramArray);
resp, content = h.request(url, method, paramJSONData, headers=headerMap);
volumeArray = json.loads(content);
#Create a volume snapshot
url = "https://198.51.100.10/zebi/api/v2/createVolumeSnapshot";
method = "POST";
snapName = "API-SNAP";

17

Tegile IntelliFlash API Reference Guide, Version 2.3

firstVolume = volumeArray[0];
paramArray = [];
paramArray.append(firstVolume);
paramArray.append(snapName);
paramArray.append(False);
paramJSONData = json.dumps(paramArray);
print paramJSONData;
resp, content = h.request(url, method, paramJSONData, headers=headerMap);
print resp.status;
print content;
url = "https://198.51.100.10/zebi/api/v2/cloneVolumeSnapshot";
method = "POST";
snapshotPath = firstVolume["datasetPath"] + "@" + "Manual-V-" + snapName;
volumeCloneName = "API-Clone";
paramArray = [];
paramArray.append(snapshotPath);
paramArray.append(volumeCloneName);
paramArray.append(False);
paramArray.append(True);
paramJSONData = json.dumps(paramArray);
print paramJSONData;
resp, content = h.request(url, method, paramJSONData, headers=headerMap);
print resp.status;
print content;
#Replication configs
url = "https://198.51.100.10/zebi/api/v2/getReplicationConfigList";
method = "POST";
projectName = "vdi";
paramArray = [];
paramArray.append(poolName);
paramArray.append(projectName);
paramJSONData = json.dumps(paramArray);
print paramJSONData;
resp, content = h.request(url, method, paramJSONData, headers=headerMap);
replicationConfigArray = json.loads(content);
firstReplicationConfig = replicationConfigArray[0];
#Trigger replication
url = "https://198.51.100.10/zebi/api/v2/startReplication";
method = "POST";
projectName = "vdi";
paramArray = [];
paramArray.append(firstReplicationConfig);
paramJSONData = json.dumps(paramArray);
print paramJSONData;
resp, content = h.request(url, method, paramJSONData, headers=headerMap);
print resp.status;
print content;
url = "https://198.51.100.10/zebi/api/v2/getReplicationStatus";
method = "POST";

18

Sample Programs

projectName = "vdi";
paramArray = [];
paramArray.append(firstReplicationConfig);
paramJSONData = json.dumps(paramArray);
print paramJSONData;
resp, content = h.request(url, method, paramJSONData, headers=headerMap);
print resp.status;
print content;

Note: You must replace the IP address (198.51.100.10) with the IP address of your
Tegile array.

Sample PowerShell Program
The following PowerShell program illustrates how to authenticate, accept (trust) the selfsigned certificate, and invoke the createShare API.
$bytes = [System.Text.Encoding]::UTF8.GetBytes("admin:s")
$token = [System.Convert]::ToBase64String($bytes)
$headers = @{"Authorization"="Basic $token"; "Content-Type"="application/
json"}
$url = "https://198.51.100.10/zebi/api/v2/createShare"
$method = "POST"
[System.Net.ServicePointManager]::ServerCertificateValidationCallback =
{$TRUE}
[System.Net.ServicePointManager]::SecurityProtocol =
[System.Net.SecurityProtocolType]::Tls12;
$shareOptions = @{}
$shareOptions.add("blockSize", "64KB")
$shareOptions.add("quota", -1)
$shareOptions.add("reservation", -1)
#This group should already exist on the array.
#A better approach is to obtain the group list using the listGroups API and
then
#use the needed group, instead of hard-coding like below
$group = @{}
$group.add("groupName", "group01")
$group.add("groupId", 104)
$groupList = @($group)
$sharePermission = @{}
$sharePermission.add("groupList", $groupList)
$sharePermission.add("sharePermissionEnum", 2) #2 is group permission
$sharePermission.add("sharePermissionMode", 0) #0 is "Allow"
$sharePermissionArray = @($sharePermission)
$parameters = "pool-b","test-project","APIShare",$shareOptions,
$sharePermissionArray
$jsonString = ConvertTo-Json -Compress -Depth 4 $parameters

19

Tegile IntelliFlash API Reference Guide, Version 2.3

$jsonString
Invoke-RestMethod -Method $method -Headers $headers -Uri $url -Body
$jsonString

Note: You must replace the IP address (198.51.100.10) with the IP address of your
Tegile array.

20

Chapter 3
User and Group Methods
Topics:
•
•
•
•
•
•
•
•
•
•

changeUserPassword
createGroup
createGroup
createUser
createUser
createUserAndGroup
deleteGroup
deleteUser
listGroups
listUsers

The following sections describe User and Group API
methods, parameters and return types. They also include
examples with sample responses.

User and Group Methods | 21

Tegile IntelliFlash API Reference Guide, Version 2.3

changeUserPassword
Sets a new password for the specified user (a "Local User" that was created on the Tegile
array).
First Available Version
API v1.2, IntelliFlash 2.1.2.1
Related APIs
listUsers
Parameters
userName
Name of the user.
password
Password of the new user. The '/' and space characters and the empty and null
strings are not allowed in password.
Returns
Returns an integer: the number 0 if the request succeeds.
Examples
Example 1
Request (curl)
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H Content-Type:application/json \
-d '["UserName", "Password"]' \
https://198.51.100.10/zebi/api/v2/changeUserPassword -k

Response
The above request returns the HTTP status code 200 (OK) and the following data:
0

Example 2
Erroneous Request (curl)
curl -X POST -H "Authorization:Basic Auth_TOKEN" \

22

User and Group Methods

-H Content-Type:application/json \
-d '["IncorrectUserName", "Password"]' \
https://198.51.100.10/zebi/api/v2/changeUserPassword -k

Error Response
The above request returns the HTTP status code 400 (bad request) and the following
message:
{

}

message: "User IncorrectUserName does not exist."
extendedData: { }
details: ""
code: "EZEBI_GENERAL"

createGroup
Creates a user group with the specified group name and group ID.
First Available Version
API v1.2, IntelliFlash 2.1.2.1
Related APIs
listGroups, createGroup, createUserAndGroup, deleteGroup, listUsers, deleteUser.
Parameters
groupName
Name of the group. The characters /, \\, !, @, #, $, %, ^, *, (, ), :, ;, \, are not
allowed in the groupname. The empty and "guest" strings and the null value
are also not allowed in the groupname.
gid
Group ID of the group. The group ID should be a number less than 99999999.
Returns
Returns an integer: the number 0 if the request succeeds.
Examples
Example 1
Request (curl)
curl -X POST -H "Authorization:Basic Auth_TOKEN" \

23

Tegile IntelliFlash API Reference Guide, Version 2.3

-H Content-Type:application/json \
-d '["NewGroup", 1234]' \
https://198.51.100.10/zebi/api/v2/createGroup -k

Response
The above request returns the HTTP status code 200 (OK) and the following data:
0

Example 2
Erroneous Request (curl)
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H Content-Type:application/json \
-d '["NewGroup", 1234]' \
https://198.51.100.10/zebi/api/v2/createGroup -k

Error Response
The above request returns the HTTP status code 400 (bad request) and the following
message:
{

}

message:
"The specified group Id already belongs to another group."
extendedData: { }
details:
""
code:
"EZEBI_GENERAL"

createGroup
Creates a user group with the specified group name. The group ID is generated by the
system.
First Available Version
API v1.2, IntelliFlash 2.1.2.1
Related APIs
listGroups, createGroup, createUserAndGroup, deleteGroup, listUsers, deleteUser.
Parameters
groupName

24

User and Group Methods

Name of the group. The characters /, \\, !, @, #, $, %, ^, *, (, ), :, ;, \, are not
allowed in the groupname. The empty and "guest" strings and the null value
are also not allowed in the groupname.
Returns
Returns an integer: the number 0 if the request succeeds.
Examples
Example 1
Request (curl)
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H Content-Type:application/json \
-d '["AnotherNewGroup"]' \
https://198.51.100.10/zebi/api/v2/createGroup -k

Response
The above request returns the HTTP status code 200 (OK) and the following data:
0

Example 2
Erroneous Request (curl)
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H Content-Type:application/json \
-d '[""]' https://198.51.100.10/zebi/api/v2/createGroup -k

Error Response
The above request returns the HTTP status code 400 (bad request) and the following
message:
{

}

message:
"Invalid Group Name."
extendedData: { }
details:
""
code:
"EZEBI_GENERAL"

25

Tegile IntelliFlash API Reference Guide, Version 2.3

createUser
Creates a user with given username, user ID, group name, and password.
First Available Version
API v1.2, IntelliFlash 2.1.2.1
Related APIs
listUsers, listGroups, createUser, createUserAndGroup, deleteUser.
Parameters
userName
Username of the new user. The characters /, \\, !, @, #, $, %, ^, *, (, ), :, ;, \, are
not allowed in the username. The empty and "guest" strings and the null value
are also not allowed in the username.
uid
User ID of the new user.
groupName
Name of the group in which the new user will be included. The characters /, \
\, !, @, #, $, %, ^, *, (, ), :, ;, \, are not allowed in the groupname. The empty and
"guest" strings and the null value are also not allowed in the groupname.
password
Password of the new user. The '/' and space charatcers and the empty and null
strings are not allowed in password.
Returns
Returns an integer: the number 0 if the request succeeds.
Examples
Example 1
Request (curl)
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H Content-Type:application/json \
-d '["UserName", 123, "GroupName", "newpwd"]' \
https://198.51.100.10/zebi/api/v2/createUser -k

Response

26

User and Group Methods

The above request returns the HTTP status code 200 (OK) and the following data:
0

Example 2
Erroneous Request (curl)
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H Content-Type:application/json \
-d '["UserName", 123, "IncorrectGroupName", "newpwd"]' \
https://198.51.100.10/zebi/api/v2/createUser -k

Error Response
The above request returns the HTTP status code 400 (bad request) and the following
message:
{

}

message:
"Group IncorrectGroupName does not exist."
extendedData: { }
details:
""
code:
"EZEBI_GENERAL"

createUser
Creates a user with given username, group name, and password. The user ID is generated by
the system.
First Available Version
API v1.2, IntelliFlash 2.1.2.1
Related APIs
listUsers, listGroups, createUser, createUserAndGroup, deleteUser.
Parameters
userName
Username of the user that will be created. The characters /, \\, !, @, #, $, %, ^, *,
(, ), :, ;, \, are not allowed in the username. The empty and "guest" strings and
the null value are also not allowed in the username.
groupName

27

Tegile IntelliFlash API Reference Guide, Version 2.3

Name of the group in which the new user will be included. The characters /, \
\, !, @, #, $, %, ^, *, (, ), :, ;, \, are not allowed in the groupname. The empty and
"guest" strings and the null value are also not allowed in the groupname.
password
Password of the new user. The '/' and space characters and the empty and null
strings are not allowed in password.
Returns
Returns an integer: the number 0 if the request succeeds.
Examples
Example 1
Request (curl)
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H Content-Type:application/json \
-d '["NewUserName", "ExistingGroupName", "NewUserPwd"]' \
https://198.51.100.10/zebi/api/v2/createUser -k

Response
The above request returns the HTTP status code 200 (OK) and the following data:
0

Example 2
Erroneous Request (curl)
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H Content-Type:application/json \
-d '["NewUserName", "NotAGroupName", "NewUserPwd"]' \
https://198.51.100.10/zebi/api/v2/createUser -k

Error Response
The above request returns the HTTP status code 400 (bad request) and the following
message:
{

28

message:
"Group TechPub does not exist."
extendedData: { }
details:
""
code:
"EZEBI_GENERAL"

User and Group Methods

}

createUserAndGroup
Creates user and group with auto generated user ID and group ID. The group will be created
first and then the user. The user will be associated with the group. If the group with given
group name already exists, the user will be created and associated with the existing group.
First Available Version
API v1.2, IntelliFlash 2.1.2.1
Related APIs
listUsers, listGroups, createGroup, createGroup, deleteGroup, createUser, createUser, deleteUser.
Parameters
userName
Username of the new user. The characters /, \\, !, @, #, $, %, ^, *, (, ), :, ;, \, are
not allowed in the username. The empty and "guest" strings and the null value
are also not allowed in the username.
password
Password of the new user.
groupName
Name of the group in which the new user will be included. The characters /, \
\, !, @, #, $, %, ^, *, (, ), :, ;, \, are not allowed in the groupname. The empty and
"guest" strings and the null value are also not allowed in the groupname.
Returns
Returns an integer: the number 0 if the request succeeds.
Examples
Example 1
Request (curl)
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H Content-Type:application/json \
-d '["testUser2", "testpwd2", "testGroup2"]' \
https://198.51.100.10/zebi/api/v2/createUserAndGroup -k

Response

29

Tegile IntelliFlash API Reference Guide, Version 2.3

The above request returns the HTTP status code 200 (OK) and the following data:
0

Example 2
Erroneous Request (curl)
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H Content-Type:application/json \
-d '["testUser2", "testpwd2", "testGroup2"]' \
https://198.51.100.10/zebi/api/v2/createUserAndGroup -k

Error Response
The above request returns the HTTP status code 400 (bad request) and the following
message:
{

message:
"UX: /usr/sbin/useradd: ERROR: testUser2 is already in use.
Choose another.\ 9"
extendedData: { }
details:
""
code:
"EZEBI_GENERAL"
}

deleteGroup
Deletes the specified user group (a "Local Group" that was created on the Tegile array). If the
group contains existing users, all the users would not be part of this group.
Warning:
• The delete operation is not reversible.
• If you do not require the users in this group, it is recommended to delete the users
before deleting the group.
First Available Version
API v1.2, IntelliFlash 2.1.2.1
Related APIs
listGroups, listUsers, deleteUser, createUserAndGroup.
Parameters
groupName

30

User and Group Methods

Name of the group that has to be deleted. The characters /, \\, !, @, #, $, %, ^, *,
(, ), :, ;, \, are not allowed in the groupname. The empty and "guest" strings and
the null value are also not allowed in the groupname.
Returns
Returns an integer: the number 0 if the request succeeds.
Examples
Example 1
Request (curl)
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H Content-Type:application/json \
-d '["NewGroup"]' \
https://198.51.100.10/zebi/api/v2/deleteGroup -k

Response
The above request returns the HTTP status code 200 (OK) and the following data:
0

Example 2
Erroneous Request (curl)
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H Content-Type:application/json \
-d '["NewGroup"]' \
https://198.51.100.10/zebi/api/v2/deleteGroup -k

Error Response
The above request returns the HTTP status code 400 (bad request) and the following
message:
{

}

message:
"Group NewGroup does not exist."
extendedData: { }
details:
""
code:
"EZEBI_GENERAL"

31

Tegile IntelliFlash API Reference Guide, Version 2.3

deleteUser
Deletes the specified user (a "Local User" that was created on the Tegile array).
Warning: The delete operation is not reversible.
First Available Version
API v1.2, IntelliFlash 2.1.2.1
Related APIs
listUsers, listGroups, deleteGroup.
Parameters
userName
Name of the user. The characters /, \\, !, @, #, $, %, ^, *, (, ), :, ;, \, are not
allowed in the username. The empty and "guest" strings and the null value are
also not allowed in the username.
Returns
Returns an integer: the number 0 if the request succeeds.
Examples
Example 1
Request (curl)
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H Content-Type:application/json \
-d '["testUser2"]' \
https://198.51.100.10/zebi/api/v2/deleteUser -k

Response
The above request returns the HTTP status code 200 (OK) and the following data:
0

Example 2
Erroneous Request (curl)
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H Content-Type:application/json \

32

User and Group Methods

-d '["testUser2"]' \
https://198.51.100.10/zebi/api/v2/deleteUser -k

Error Response
The above request returns the HTTP status code 400 (bad request) and the following
message:
{

}

message:
"User testUser2 does not exist."
extendedData: { }
details:
""
code:
"EZEBI_GENERAL"

listGroups
Lists all the local groups and the users included in each group. This is an HTTP GET method.
First Available Version
API v1.2, IntelliFlash 2.1.2.1
Related APIs
createGroup, createGroup, deleteGroup, createUserAndGroup, listUsers.
Parameters
None
Returns
Returns an array of JSON objects. Each object has the group name, group ID,
and users of a group. The user list itself is a JSON array containing the names
of users in a group.
Example
Request (curl)
curl -X GET -H "Authorization:Basic Auth_TOKEN" \
-H Content-Type:application/json \
https://198.51.100.10/zebi/api/v2/listGroups -k

Response
The above request returns the HTTP status code 200 (OK) and the following data:
[

33

Tegile IntelliFlash API Reference Guide, Version 2.3

{
"groupName":"nfsgrp1",
"groupId":104,
"userList":["nfsuser1"]
},
{
"groupName":"nfsgrp4",
"groupId":106,
"userList":["nfsuser4"]
},
{
"groupName":"nfsgrp5",
"groupId":105,
"userList":["nfsuser5"]
},
{
"groupName":"nfsgrp2",
"groupId":108,
"userList":["nfsuser2"]
},
{
"groupName":"nfsgrp3",
"groupId":107,
"userList":["nfsuser3"]
}
]

listUsers
Lists all the local users with their user ID, group name, and group ID. This is an HTTP GET
method.
First Available Version
API v1.2, IntelliFlash 2.1.2.1
Related APIs
listGroups, createUser, createUser, createUserAndGroup, deleteUser.
Parameters
None
Returns
Returns an array of JSON objects. Each object has the user name, user ID,
group name, and group ID of a local user.
Example
Request (curl)
curl -X GET -H "Authorization:Basic Auth_TOKEN" \

34

User and Group Methods

-H Content-Type:application/json \
https://198.51.100.10/zebi/api/v2/listUsers -k

Response
The above request returns the HTTP status code 200 (OK) and the following data:
[
{
"userName":"nfsuser1",
"groupName":"nfsgrp1",
"userId":104,"groupId":104
}
,
{"userName":"nfsuser5",
"groupName":"nfsgrp5",
"userId":105,
"groupId":105
},
{
"userName":"nfsuser4",
"groupName":"nfsgrp4",
"userId":106,
"groupId":106},
{
"userName":"nfsuser3",
"groupName":"nfsgrp3",
"userId":107,
"groupId":107
},
{"userName":"nfsuser2",
"groupName":"nfsgrp2",
"userId":108,
"groupId":108
}
]

35

Chapter 4
SAN Methods
Topics:
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•

addInitiatorToInitiatorGroup
createFCInitiator
createInitiatorGroup
createIscsiInitiator
createISCSITarget
createISCSITargetForGroup
createMappingForVolume
createMappingForVolume
createTargetGroup
deleteInitiatorGroup
deleteISCSIInitiator
deleteISCSITarget
deleteMappingFromVolume
deleteTargetGroup
getInitiatorGroup
getProjectDefaultFcITView
getProjectDefaultIscsiITView
getVolumeITView
initiatorGroupExists
listFCInitiators
listFCInitiatorGroups
listFCTargets
listFCTargetGroups
listInitiatorGroups
listISCSIInitiatorGroups
listISCSIInitiators
listInitiatorsInInitiatorGroup
listISCSITargetGroups
listISCSITargets
listTargetGroups
listTargetsInTargetGroup
modifyISCSITargetAlias
moveTargetToTargetGroup
moveInitiatorToInitiatorGroup

The following sections describe SAN methods, parameters
and return types. They also include examples with sample
responses.

SAN Methods | 37

Tegile IntelliFlash API Reference Guide, Version 2.3

addInitiatorToInitiatorGroup
Associates an initiator with an initiator group. If the initiator group is not present, then this
method attempts to create it. If the initiator does not exist, then the method fails.
First Available Version
API v1.0, IntelliFlash 2.1.0.0
Related APIs
initiatorGroupExists, addInitiatorToInitiatorGroup
Parameters
initiatorName
The name of an initiator.
initiatorGroupName
A string: the name of an initiator group.
Returns
Returns an integer, where:
• 0 indicates that the request succeeded
• 1 indicates that the request was not attempted
• 2 indicates that the request failed
Examples
Example 1
Request (curl)
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H Content-Type:application/json \
-d '["iqn.2012-11.com.tegile.iscsi:Initiator1", "iscsi-TestGroup"]' \
https://198.51.100.10/zebi/api/v2/addInitiatorToInitiatorGroup -k

Response
The above request returns the HTTP status code 200 (OK) and an integer 0 indicating
success.
Example 2

38

SAN Methods

Erroneous Request
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H Content-Type:application/json \
-d '["iqn.2012-11.com.tegile.iscsi:Initiator2", "iscsi-TestGroup2"]'\
https://198.51.100.10/zebi/api/v2/addInitiatorToInitiatorGroup -k

Error Response
In the above request, the initiator already exists in the group. So the request returns the
HTTP status code 400 (bad request) and the following message:
{

}

"message": "Failed to add initiator group member
iqn.2012-11.com.tegile.iscsi:Initiator2
to iscsi-TestGroup2 : STMF_ERROR_EXISTS",
"extendedData": {},
"details": "",
"code": "EZEBI_GENERAL"

createFCInitiator
Creates the Fibre Channel (FC) Initiator on the IntelliFlash Array.
First Available Version
API v2.1, IntelliFlash 3.7.0.x
Related APIs
listFCInitiators, deleteISCSIInitiator, listInitiatorGroups, createIscsiInitiator
Parameters
initiatorName
The name of the fibre channel initiator you want to create. This must be in the
format wwn.<16 hex digits>. For example, wwn.5001438001FF7742.
initiatorGroupName
The name of the fibre channel initiator group to add the initiator as a member.
Returns
Returns an integer status where:
• 0 indicates that the request succeeded.

39

Tegile IntelliFlash API Reference Guide, Version 2.3

• 1 indicates that the request was not attempted.
• 2 indicates that the request failed.
Exceptions Thrown
EZEBI_RESOURCE_NOT_FOUND
This exception is thrown if the specified initiator group is not found.
EZEBI_RESOURCE_EXIST
This exception is thrown if the specified initiator already exists.
EZEBI_INVALID_ARGUMENT
This exception is thrown for the following conditions:
• If the parameters are invalid (bad format or blank)
• If the initiator group is over 512 characters long
• If the initiator group has invalid characters such as *,#,/,\\,!,@,~,(,),[,],{,},=,
and %.
• If the initiator name is not in the format of wwn.<16 alpha-numeric-hex
characters>
EZEBI_GENERAL
This exception is thrown if the operation failed.
Examples
Example 1
Request (curl)
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H "Content-Type:application/json" \
-H 'cache-control: no-cache' \
-d '["wwn.5001438001ffbbbb", "fc-igroup"]' \
https://198.51.100.10/zebi/api/v2/createFCInitiator -k

Response
The above request returns the HTTP status code 200 (OK) and an integer status of 0 to
indicate that the initiator was created in the specified initiator group.
Example 2
Erroneous Request (curl)
curl -X POST -H "Authorization:Basic Auth_TOKEN" \

40

SAN Methods

-H "Content-Type:application/json" \
-H 'cache-control: no-cache' \
-d '["wwn.5001438001ffbbbb", "fc-igroup"]' \
https://198.51.100.10/zebi/api/v2/createFCInitiator -k

Error Response
In this example, the fibre channel initiator already exists. So the request returns the HTTP
status code 400 (bad request) and the following response:
{"code":"EZEBI_RESOURCE_EXIST","details":"",
"message":"The Fibre Channel initiator [wwn.5001438001ffbbbb]
already exists, but must not exist for this operation
[create initiator].","extendedData":{}}

createInitiatorGroup
Creates an initiator group on a Tegile array.
First Available Version
API v1.0, IntelliFlash 2.1.0.0
Related APIs
createIscsiInitiator, listInitiatorsInInitiatorGroup, addInitiatorToInitiatorGroup
Parameters
initiatorGroupName
A string: name of the new initiator group. The characters ,, /,\\, !, ?, @, <, >, #,
$, ',%, ^,*,(, ), ~,+, =, },|, {, [, ], ;, \', \", _, & are not allowed in initiatorgroupname.
The empty and space characters and the null values are not allowed in
initiatorgroupname.
Returns
Returns an integer, where:
• 0 indicates that the request succeeded
• 1 indicates that the request was not attempted
• 2 indicates that the request failed
Examples
Example 1

41

Tegile IntelliFlash API Reference Guide, Version 2.3

Request (curl)
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H Content-Type:application/json \
-d '[ "APIInitiatorGroup" ]' \
https://198.51.100.10/zebi/api/v2/createInitiatorGroup -k

Response
The above request returns the HTTP status code 200 (OK) and the integer 0 indicating
success.
Example 2
Erroneous Request
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H Content-Type:application/json \
-d '[ "API_InitiatorGroup" ]' \
https://198.51.100.10/zebi/api/v2/createInitiatorGroup -k

Error Response
The above request returns the HTTP status code 400 (bad request) and the following
message:
{

}

"message":"Initiator group name cannot have special characters
like *,#,/,\\,!,@,~,(,),[,],{,},=,%...",
"extendedData":{},
"details":"",
"code":"EZEBI_GENERAL"

createIscsiInitiator
Creates an iSCSI initiator object on the Tegile array. If the initiator name already exists, then
the method fails.
First Available Version
API v1.0, IntelliFlash 2.1.0.0
Related APIs
initiatorGroupExists, addInitiatorToInitiatorGroup
Parameters
iscsiInitiator

42

SAN Methods

A JSON object of type IscsiInitiator_V1_0 that contains the name of the initiator
and optional CHAP information.
Returns
Returns an integer, where
• 0 indicates that the request succeeded
• 1 indicates that the request was not attempted
• 2 indicates that the request failed
Examples
Example 1
Request (curl)
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H Content-Type:application/json \
-d '[{"initiatorName":"iqn.2012-10.com.acme:test1",
"chapUserName":"","chapSecret":""}]' \
https://198.51.100.10/zebi/api/v2/createIscsiInitiator -k

Response
The above request returns the HTTP status code 200 (OK) and an integer 0 indicating
success.
Example 2
Erroneous Request
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H Content-Type:application/json \
-d '[{"initiatorName":"","chapUserName":"","chapSecret":""}]' \
https://198.51.100.10/zebi/api/v2/createIscsiInitiator -k

Error Response
In the above request, the initiator name is empty. So the request returns the HTTP status
code 400 (bad request) and the following message:
{

}

"code": "EZEBI_INVALID_ARGUMENT",
"details": "",
"message": "Initiator name is not valid.",
"extendedData": {}

43

Tegile IntelliFlash API Reference Guide, Version 2.3

createISCSITarget
Creates an iSCSI target with the specified target group, chap authentication, alias, and
network bindings.
This API allows the user to specify all the attributes of the target in the JSON
ISCSITargetCreate_V2_1 parameter object passed.
First Available Version
API v2.1, IntelliFlash 3.7.0.x
Related APIs
createTargetGroup, moveTargetToTargetGroup, createISCSITargetForGroup, deleteISCSITarget,
modifyISCSITargetAlias, listISCSITargets
Parameters
iscsiTarget
A JSON object of type ISCSITargetCreate_V2_1 that contains the attributes of the
iSCSI target to create.
The JSON fields of the iSCSI target object parameter are
• targetSuffixName
• targetAlias
• targetGroupName
• targetAuthenticationMode
• targetChapName
• targetChapSecret
• targetNetworkBinding
The target suffix name is the user specified portion after the iqn target name
colon character. For example, iqn.2012-02.com.tegile:myTargetSuffix.
Specify only a target suffix and not the full target name because the iSCSI
target prefix is pre-defined for all targets on the array. The alias is the user
friendly alternate name of the target.
The authentication mode is a value of ‘none’, ‘chap’, or ‘mutual’. The chapName
and chapSecret must be set depending on whether the authentication mode
is set. Only if ‘mutual’ authentication is set, the chapName and chapSecret
must be specified. The network binding (IP:PORT) can be any of the bindings

44

SAN Methods

associated with the target group name’s pool. The default target group cannot
be modified or used here.
Returns
Returns an integer status where:
• 0 indicates that the request succeeded.
• 1 indicates that the request was not attempted.
• 2 indicates that the request failed.
Exceptions Thrown
EZEBI_RESOURCE_NOT_FOUND
This exception is thrown if the specified iSCSI target group does not exist.
EZEBI_RESOURCE_EXIST
This exception is thrown if the specified target already exists.
EZEBI_INVALID_ARGUMENT
This exception is thrown for the following conditions:
• If the parameters are invalid (bad format or blank)
• If the default group is being modified
EZEBI_GENERAL
This exception is thrown if the operation failed.
Examples
Example 1
Request (curl)
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H "Content-Type:application/json" \
-H 'cache-control: no-cache' \
-d '[{
"targetSuffixName": "test",
"targetAlias": "testAlias",
"targetGroupName": "iscsi-tgroup",
"targetAuthenticationMode": "none",
"targetChapName": "",
"targetChapSecret": "",
"targetNetworkBinding": [
"10.68.97.211:3260"
] } ]' \
https://198.51.100.10/zebi/api/v2/createISCSITarget -k

45

Tegile IntelliFlash API Reference Guide, Version 2.3

Response
The above request returns the HTTP status code 200 (OK) and an integer status of 0 to
indicate that the target "iqn.2012-02.com.tegile:test" was created in the specified target
group “iscsi-tgroup”.
Example 2
Erroneous Request (curl)
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H "Content-Type:application/json" \
-H 'cache-control: no-cache' \
-d '[{
"targetSuffixName": "test3",
"targetAlias": "testAlias",
"targetGroupName": "iscsi-tgroup",
"targetAuthenticationMode": "invalidauth",
"targetChapName": "",
"targetChapSecret": "",
"targetNetworkBinding": [
"10.68.97.211:3260"
] } ] ' \
https://198.51.100.10/zebi/api/v2/createISCSITarget -k

Error Response
In this example, the chap authentication is an invalid type value. So the request returns the
HTTP status code 400 (bad request) and the following response:
{

"code": "EZEBI_INVALID_ARGUMENT",
"details": "createISCSITarget.arg0.targetAuthenticationMode value
'invalidauth':
Chap authentication should be one of the values:none, chap, or mutual
createISCSITarget.arg0 value
'com.tegile.skywalk.api.v2.IPublicAPI_V2_1$ISCSITargetCreate_V2_1@45b06d12':
Invalid CHAP authentication passed[invalidauth],
supported values are: none, chap, or mutual.",
"message":
"Chap authentication should be one of the values:none, chap, or mutual
Invalid CHAP authentication passed[invalidauth],
supported values are: none, chap, or mutual.",
"extendedData": {
"EX_CAUSE_MESSAGE": null
}

}

46

SAN Methods

createISCSITargetForGroup
Creates an ISCSI target for the specified target group.
First Available Version
API v2.1, IntelliFlash 3.7.0.x
Related APIs
createTargetGroup, moveTargetToTargetGroup, createISCSITarget
Parameters
targetNameSuffix
The iSCSI target name suffix.
This is the portion of the iSCSI iqn name that comes after the colon. This is the
user specified part of the target name.
targetAlias
The iSCSI alias user friendly name used to refer to the target.
This is typically the same as the target suffix.
targetGroupName
Existing iSCSI target group that the new target will be a member of.
New targets created here cannot be added to the default target group. So the
name here cannot be the default target group.
Returns
Returns an integer status where:
• 0 indicates that the request succeeded.
• 1 indicates that the request was not attempted.
• 2 indicates that the request failed.
Exceptions Thrown
EZEBI_RESOURCE_NOT_FOUND
This exception is thrown if the specified target group does not exist.
EZEBI_RESOURCE_EXIST
This exception is thrown if the specified target already exists.
EZEBI_INVALID_ARGUMENT

47

Tegile IntelliFlash API Reference Guide, Version 2.3

This exception is thrown for the following conditions:
• If the parameters are invalid (bad format or blank)
• If the target group has invalid characters such as *,#,/,\\,!,@,~,(,),[,],{,},=, and
%.
• If the target group is the default target group
• If the target group is over 512 characters long
EZEBI_GENERAL
This exception is thrown if the operation failed.
Examples
Example 1
Request (curl)
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H "Content-Type:application/json" \
-H 'cache-control: no-cache' \
-d '["myTargetSuffix", "myTargetAlias","myTargetGroup" ]' \
https://198.51.100.10/zebi/api/v2/createISCSITargetForGroup -k

Response
The above request returns the HTTP status code 200 (OK) and an integer status of 0 to
indicate that the target "iqn.2012-02.com.tegile:myTargetSuffix" was created in the specified
target group “myTargetGroup”.
Example 2
Erroneous Request (curl)
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H "Content-Type:application/json" \
-H 'cache-control: no-cache' \
-d '["myTargetSuffix", "myTargetAlias","group-does-not-exist-yet" ]' \
https://198.51.100.10/zebi/api/v2/createISCSITargetForGroup -k

Error Response
In this example, the target group does not exist. So the request returns the HTTP status code
400 (bad request) and the following response:
{

48

"code": "EZEBI_RESOURCE_NOT_FOUND",

SAN Methods

}

"details": "Failed to find target group [group-does-not-exist-yet].",
"message": "Failed to setup iSCSI target for creation on target group:
group-does-not-exist-yet",
"extendedData":
{
"EX_CAUSE_MESSAGE":
"Failed to find target group [group-does-not-exist-yet].",
"EX_CAUSE_CODE_NAME": "EZEBI_RESOURCE_NOT_FOUND"
}

createMappingForVolume
Maps a volume to an initiator group and a target group.
First Available Version
API v1.0, IntelliFlash 2.1.0.0
Related APIs
deleteMappingFromVolume, initiatorGroupExists, listISCSIInitiatorGroups, listISCSITargetGroups,
createVolume.
Parameters
datasetPath
The dataset path of the volume. This is a string. The dataset path has the
format: PoolName/Local/ProjectName/VolumeName. You can get the
datasetPath from the listVolumes API. For more information, see listVolumes
and Volume_V1_0.
initiatorGroupName
The name of the initiator group to which the volume must be mapped. This is
a string.
targetGroupName
The name of the target group to which the volume must be mapped. This is a
string.
lunNumber
The LUN number for the newly defined LUN. To assign a LUN number
automatically (default), use the value -1. This is an integer.
Returns
Returns an integer, where
• 0 indicates that the request succeeded.

49

Tegile IntelliFlash API Reference Guide, Version 2.3

• 1 indicates that the request was not attempted.
• 2 indicates that the request failed.
Examples
Example 1
Request (curl)
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H Content-Type:application/json \
-d '[ "pool1/Local/TechPubs/TechPubsLUN", \
"api_InitiatorGroup", \
"iqn.2014-11.com.tegile.iscsi:testtargetgroup-group", -1]' \
https://198.51.100.10/zebi/api/v2/createMappingForVolume -k

Response
0

Example 2
Erroneous Request
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H Content-Type:application/json \
-d '[ "pool1/Local/TechPubs/TechPubsLUN2", \
"api_InitiatorGroup", \
"iqn.2014-11.com.tegile.iscsi:testtargetgroup-group", -1]' \
https://198.51.100.10/zebi/api/v2/createMappingForVolume -k

Error Response
If the initiator group is not found, the above request returns the HTTP status code 200 (OK)
and no data.

createMappingForVolume
Creates a mapping for a volume, with the option for it to be read only.
First Available Version
API v2.1, IntelliFlash 3.7.0.x
Related APIs
createMappingForProject, deleteMappingFromProject

50

SAN Methods

Parameters
datasetPath
Path of the LUN. The format is /Local//
.
This operation is not allowed for Replica datasets.
initiatorGroupName
Name of the initiator group in the existing mapping.
targetGroupName
Name of the target group in the existing mapping.
LUNNumber
LUN number to use. Pass a value of -1 if you want the system to assign an
available LUN number.
readOnly
Whether mapping is read-only. The values are True and False.
Returns
COMMAND_STATUS.COMMAND_SUCCEED (0) on success.
Exceptions Thrown
EZEBI_RESOURCE_NOT_FOUND
This exception is thrown if the specified project, initiator group, or target group
cannot be found.
EZEBI_INVALID_ARGUMENT
This exception is thrown for any of the following reasons:
• The path specified belongs to a replica dataset.
• The volume protocol does not match the protocol of the SAN groups.
• The mapping does not exist.
• The mapping for this target group already exists (when trying to make All
mapping).
• The mapping with 'All' initiator groups already exists on this target group for
this LUN.
Examples
Example 1

51

Tegile IntelliFlash API Reference Guide, Version 2.3

Request (curl)
curl -X POST \
-H 'authorization: Basic Auth_TOKEN \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '[
"pool-a/Local/demoProject/demoLUN", "All", "demoiSCSITargetGroup", 1, true
]' \
https://198.51.100.10/zebi/api/v2/createMappingForVolume -k

Response
The above request returns the HTTP status code 200 (OK) and 0 indicating success.
Example 2
Erroneous Request (curl)
curl -X POST \
-H 'authorization: Basic Auth_TOKEN \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '[
"pool-a/Local/demoProject/demoLUN", "All", "default-pool-a-iscsi-targetgroup", 1, true
]' \
https://198.51.100.10/zebi/api/v2/createMappingForVolume -k

Error Response
In this example, the request returns the HTTP status code 400 (Bad Request) and the
following message:
{

}

"code":"EZEBI_INVALID_ARGUMENT",
"details":"",
"message":"View already exists with different read only value: true",
"extendedData":{}

Example 3
Erroneous Request
curl -X POST \
-H 'authorization: Basic Auth_TOKEN \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '[
"pool-a/Local/demoProject/demoLUN", "demoFCInitiatorGroup",
"demoiSCSITargetGroup", 1, true

52

SAN Methods

]' \
https://198.51.100.10/zebi/api/v2/createMappingForVolume -k

Error Response
The above request returns the HTTP status code 400 (bad request) and the following
message:
{

"code":"EZEBI_INVALID_ARGUMENT",
"details":"",
"message":"Cannot create mapping: volume protocol does not match
protocol
of specified initiator group.",
"extendedData":{}

}

createTargetGroup
Creates a target group with the specified target group name in the resource group
containing the named pool.
First Available Version
API v2.1, IntelliFlash 3.7.0.x
Related APIs
moveTargetToTargetGroup, listFCTargetGroups, listISCSITargetGroups
Parameters
targetGroupName
Name of the new target group.
poolName
Specifies the pool resource group to place the target group.
The poolName applies to iSCSI target groups only. For FC target groups, specify
an empty string or null.
Returns
Returns an integer status where:
• 0 indicates that the request succeeded.
• 1 indicates that the request failed.

53

Tegile IntelliFlash API Reference Guide, Version 2.3

Exceptions Thrown
EZEBI_RESOURCE_NOT_FOUND
This exception is thrown if the specified pool cannot be found.
EZEBI_INVALID_ARGUMENT
This exception is thrown if an invalid character is detected in either the
targetGroupName or poolName.
Examples
Example 1
Request (curl)
curl -X POST \
-H 'authorization: Basic AUTH_TOKEN' \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '["aCoolTargetGroup", "pool63a"]' \
https://198.51.100.10/zebi/api/v2/createTargetGroup -k

Response
The above request returns the HTTP status code 200 (OK) and 0 indicating a succesful
request to create an iSCSI target group.
Example 2
Erroneous Request (curl)
curl -X POST \
-H 'authorization: Basic AUTH_TOKEN' \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '["aBad#TargetGroup", "pool63a"]' \
https://198.51.100.10/zebi/api/v2/createTargetGroup -k

Error Response
The above request contains invalid characters. So the request returns HTTP status code 400
(bad request) and the following JSON exception:
{

54

"code": "EZEBI_INVALID_ARGUMENT",
"details": "createTargetGroup.arg0 value
'aBad#TargetGroup': Target group name cannot have
special characters like *,#,/,\\,!,@,~,(,),[,],{,},=,%...",
"message":
"Target group name cannot have special characters like
*,#,/,\\,!,@,~,(,),[,],{,},=,%...",

SAN Methods

}

"extendedData": {
"EX_CAUSE_MESSAGE": null
}

deleteInitiatorGroup
Deletes the initiator group specified from the IntelliFlash array.
First Available Version
API v2.1, IntelliFlash 3.7.0.x
Related APIs
listInitiatorGroups, deleteISCSIInitiator, createInitiatorGroup
Parameters
initiatorGroupName
The name of the initiator group you want to delete.
Returns
Returns an integer status where:
• 0 indicates that the request succeeded.
• 1 indicates that the request was not attempted.
• 2 indicates that the request failed.
Exceptions Thrown
EZEBI_RESOURCE_NOT_FOUND
This exception is thrown if the specified initiator group is not found.
EZEBI_INVALID_ARGUMENT
This exception is thrown for the following conditions:
• If the parameters are invalid (bad format or blank)
• If the initiator group is over 512 characters long
EZEBI_GENERAL
This exception is thrown if the operation failed.
Examples
Example 1

55

Tegile IntelliFlash API Reference Guide, Version 2.3

Request (curl)
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H "Content-Type:application/json" \
-H 'cache-control: no-cache' \
-d '["myInitiatorGroupToDelete"]' \
https://198.51.100.10/zebi/api/v2/deleteInitiatorGroup -k

Response
The above request returns the HTTP status code 200 (OK) and an integer status of 0 to
indicate that the initiator group ‘myInitiatorGroupToDelete’ was deleted.
Example 2
Erroneous Request (curl)
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H "Content-Type:application/json" \
-H 'cache-control: no-cache' \
-d '["myGroupToDeleteDoesNotExist"]' \
https://198.51.100.10/zebi/api/v2/deleteInitiatorGroup -k

Error Response
In this example, the initiator group does not exist. So the request returns the HTTP status
code 404 (not found) and the following response:
{"code":"EZEBI_RESOURCE_NOT_FOUND",
"details":"Failed to delete initiator group myGroupToDeleteDoesNotExist :
STMF_ERROR_NOT_FOUND",
"message":"Error detected deleting initiator group
[myGroupToDeleteDoesNotExist].",
"extendedData":
{"EX_CAUSE_MESSAGE":
"Failed to delete initiator group myGroupToDeleteDoesNotExist :
STMF_ERROR_NOT_FOUND",
"EX_CAUSE_CODE_NAME":"com.tegile.solaris.lib.stmf.StmfException:
Failed to delete initiator group myGroupToDeleteDoesNotExist :
STMF_ERROR_NOT_FOUND","EX_CAUSE_CODE_NUMBER":"32770"}}

deleteISCSIInitiator
Deletes an ISCSI initiator with the specified initiator name.
First Available Version
API v2.1, IntelliFlash 3.7.0.x

56

SAN Methods

Related APIs
deleteIscsiInitiator, listISCSIInitiatorGroups, listISCSITargets, createIscsiInitiator
Parameters
initiatorName
The name of the initiator you want to delete. For example,
iqn.1991-05.com.microsoft:test.tegile.com. The 'initiatorName' is returned by
listISCSIInitiators API.
Values returned
Returns an integer status where:
• 0 indicates that the request succeeded.
• 1 indicates that the request was not attempted.
• 2 indicates that the request failed.
Exceptions Thrown
EZEBI_RESOURCE_NOT_FOUND
This exception is thrown if the specified iSCSI target does not exist.
EZEBI_INVALID_ARGUMENT
This exception is thrown for the following conditions:
• If the parameters are invalid (bad format or blank)
• If the default group is being modified
EZEBI_GENERAL
This exception is thrown if the operation failed.
Examples
Example 1
Request (curl)
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H "Content-Type:application/json" \
-d '["iqn.1991-05.com.microsoft:test.tegile.com"]' \
https://198.51.100.10/zebi/api/v2/deleteISCSIInitiator -k

Response
The above request returns the HTTP status code 200 (OK) and an integer status of 0 to
indicate that the target "iqn.2012-02.com.tegile:test" was deleted.

57

Tegile IntelliFlash API Reference Guide, Version 2.3

Example 2
Erroneous Request (curl)
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H "Content-Type:application/json" \
-H 'cache-control: no-cache' \
-d '["iqn.1991-05.com.microsoft:doesnotexist.tegile.com"]' \
https://10.68.97.100/zebi/api/v2/deleteISCSIInitiator -k

Error Response
In this example, the initiator does not exist. So the request returns the HTTP status code 404
(not found) and the following response:
{"code":"EZEBI_RESOURCE_NOT_FOUND",
"details":"ISCSI Initiator was not found.",
"message":"Failed to find iSCSI Initiator to delete
[iqn.1991-05.com.microsoft:doesnotexist.tegile.com].",
"extendedData":{"EX_CAUSE_MESSAGE":"ISCSI Initiator was not found.",
"EX_CAUSE_CODE_NAME":"EZEBI_RESOURCE_NOT_FOUND"}}

deleteISCSITarget
Deletes an iSCSI target with the specified target name.
First Available Version
API v2.1, IntelliFlash 3.7.0.x
Related APIs
createTargetGroup, moveTargetToTargetGroup, createISCSITargetForGroup, createISCSITarget,
modifyISCSITargetAlias, listISCSITargets
Parameters
targetName
The name of the target you want to delete. For example,
iqn.2012-02.com.tegile:myTargetSuffix.
The targetName is returned by listISCSITargets API. Targets in default target
group cannot be deleted.
Returns
Returns an integer status where:

58

SAN Methods

• 0 indicates that the request succeeded.
• 1 indicates that the request was not attempted.
• 2 indicates that the request failed.
Exceptions Thrown
EZEBI_RESOURCE_NOT_FOUND
This exception is thrown if the specified iSCSI target does not exist.
EZEBI_INVALID_ARGUMENT
This exception is thrown for the following conditions:
• If the parameters are invalid (bad format or blank)
• If the default group is being modified
EZEBI_GENERAL
This exception is thrown if the operation failed.
Examples
Example 1
Request (curl)
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H "Content-Type:application/json" \
-d '["iqn.2012-02.com.tegile:test"]' \
https://198.51.100.10/zebi/api/v2/deleteISCSITarget -k

Response
The above request returns the HTTP status code 200 (OK) and an integer status of 0 to
indicate that the target "iqn.2012-02.com.tegile:test" was deleted.
Example 2
Erroneous Request (curl)
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H "Content-Type:application/json" \
-H 'cache-control: no-cache' \
-d '["iqn.2012-02.com.tegile:doesnotexist"]' \
https://10.68.97.100/zebi/api/v2/deleteISCSITarget -k

Error Response

59

Tegile IntelliFlash API Reference Guide, Version 2.3

In this example, the target does not exist. So the request returns the HTTP status code 404
(not found) and the following response:
{"code":"EZEBI_RESOURCE_NOT_FOUND","details":"",
"message":"Failed to find iSCSI
Target[iqn.2012-02.com.tegile:doesnotexist].
The target must exist for this operation to succeed.",
"extendedData":{}}

deleteMappingFromVolume
Deletes the view (mapping) between the given volume, initiator group, and target group.
Note: The delete operation deletes the mapping. But you can add the original
mapping again.
First Available Version
API v1.0, IntelliFlash 2.1.0.0
Related APIs
createMappingForVolume, initiatorGroupExists, listISCSIInitiatorGroups, listISCSITargetGroups,
listVolumes.
Parameters
datasetPath
A string: the dataset path for the volume. The dataset path has the format:
PoolName/Local/ProjectName/VolumeName. You can get the datasetPath
from the listVolumes API. For more information, see listVolumes and
Volume_V1_0.
initiatorGroupName
A string. The name of an initiator group.
targetGroupName
A string. The name of a target group.
Returns
Returns an integer, where
• 0 indicates that the request succeeded
• 1 indicates that the request was not attempted
• 2 indicates that the request failed

60

SAN Methods

Examples
Example 1
Request (curl)
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H Content-Type:application/json \
-d '["pool1/Local/TechPubs/TechPubsLUN", \
"iscsi-initiatorGroup", \
"iscsi-TargetGroup"]' \
https://198.51.100.10/zebi/api/v2/deleteMappingFromVolume -k

Response
The above request returns an integer 0, which indicates success.
Example 2
Erroneous Request
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H Content-Type:application/json \
-d '["pool1/Local/TechPubs2/TechPubsLUN", \
"iscsi-initiatorGroup", \
"iscsi-TargetGroup"]' \
https://198.51.100.10/zebi/api/v2/deleteMappingFromVolume -k

Error Response
HTTP Status Code: 500
{
"message": "Unable to open pool1/Local/TechPubs2 : dataset does not exist",
"extendedData": {
"EX_CAUSE_CODE_NAME": "EZFS_NOENT",
"EX_CAUSE_MESSAGE": "Unable to open pool1/Local/TechPubs2 : dataset does
not exist",
"EX_CAUSE_CODE_NUMBER": "2009"
},
"details": "Unable to open pool1/Local/TechPubs2 : dataset does not exist",
"code": "EZEBI_RESOURCE_NOT_FOUND"
}

deleteTargetGroup
Deletes the target group specified from the IntelliFlash array.
First Available Version
API v2.1, IntelliFlash 3.7.0.x

61

Tegile IntelliFlash API Reference Guide, Version 2.3

Related APIs
createTargetGroup, moveTargetToTargetGroup, createISCSITarget
Parameters
targetGroupName
The name of the target group you want to delete.
Returns
Returns an integer status where:
• 0 indicates that the request succeeded.
• 1 indicates that the request was not attempted.
• 2 indicates that the request failed.
Exceptions Thrown
EZEBI_RESOURCE_NOT_FOUND
This exception is thrown if the specified target group is not found.
EZEBI_INVALID_ARGUMENT
This exception is thrown for the following conditions:
• If the parameters are invalid (bad format or blank)
• If the target group is over 512 characters long
• If the target group is the default target group
EZEBI_GENERAL
This exception is thrown if the operation failed.
Examples
Example 1
Request (curl)
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H "Content-Type:application/json" \
-H 'cache-control: no-cache' \
-d '["myTargetGroupToDelete"]' \
https://198.51.100.10/zebi/api/v2/deleteTargetGroup -k

Response:

62

SAN Methods

The above request returns the HTTP status code 200 (OK) and an integer status of 0 to
indicate that the target group ‘myTargetGroupToDelete’ was deleted.
Example 2
Erroneous Request (curl)
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H "Content-Type:application/json" \
-H 'cache-control: no-cache' \
-d '["myTargetGroupToDeleteDoesNotExist"]' \
https://198.51.100.10/zebi/api/v2/deleteTargetGroup -k

Error Response
In this example, the target group does not exist. So the request returns the HTTP status code
404 (not found) and the following response:
{"code":"EZEBI_RESOURCE_NOT_FOUND","details":"",
"message":"Failed to find target group
[myTargetGroupToDeleteDoesNotExist].",
"extendedData":{}}

getInitiatorGroup
Obtains the name of the initiator group to which the initiator belongs.
First Available Version
API v1.0, IntelliFlash 2.1.0.0
Related APIs
listInitiatorsInInitiatorGroup, createIscsiInitiator, addInitiatorToInitiatorGroup
Parameters
initiatorName
The name of the initiator. This is a string.
Returns
Returns a JSON string. The string has the name of the initiator group
associated with the given initiator.
Examples
Example 1

63

Tegile IntelliFlash API Reference Guide, Version 2.3

Request (curl)
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H Content-Type:application/json \
-d '["iqn.2012-11.com.tegile.iscsi:api-initiator-1"]' \
https://198.51.100.10/zebi/api/v2/getInitiatorGroup -k

Response
The above request returns the HTTP status code 200 (OK) and the following data:
"iqn.2012-11.com.tegile.iscsi:testinigroup-group"

Example 2
Erroneous Request
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H Content-Type:application/json \
-d '["iqn.2012-11.com.tegile.iscsi:api-initiator-2"]' \
https://198.51.100.10/zebi/api/v2/getInitiatorGroup -k

Error Response
If the initiator name is not found, the request returns the HTTP status code 200 (OK) and no
data.

getProjectDefaultFcITView
Lists all of the existing default Fibre Channel views given a project’s dataset path.
First Available Version
API v2.1, IntelliFlash 3.7.0.x
Related APIs
getVolumeITView, getProjectDefaultIscsiITView
Parameters
datasetPath
A string representing the project dataset path.

64

SAN Methods

A project dataset must start with a letter followed by a series of alpha-numeric. It can
contain only the following characters: 'A-Z', 'a-z', '0-9', '_', '.', '-', ':', and '/'. The dataset,
however, should not end with '/'.
Returns
A list of ITView_V2_1 objects.
Exceptions Thrown
EZEBI_RESOURCE_NOT_FOUND
If the specified project cannot be found.
EZEBI_INVALID_ARGUMENT
If an invalid character is detected in the project dataset path.
Examples
Example 1
Request (curl)
curl -X POST \
-H 'authorization: Basic Auth_TOKEN' \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '["pool-a/Local/fctest"]' \
https://198.51.100.10/zebi/api/v2/getProjectDefaultFcITView -k

Response
The above request returns the HTTP status code 200 (OK) and a list of the ITView_V2_1
objects:
[

]

{

}

"hostGroupName": "newfc",
"targetGroupName": "default-fc-target-group",
"lunNbr": -1,
"readOnly": false

Example 2
Erroneous Request (curl)
curl -X POST \
-H 'authorization: Basic Auth_TOKEN' \

65

Tegile IntelliFlash API Reference Guide, Version 2.3

-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '["pool63b/Local/nonExistentTestProject"]' \
https://198.51.100.10/zebi/api/v2/getProjectDefaultFcITView -k

Error Response
The above request returns the HTTP status code 404 (not found) and the following message:
{

"code": "EZEBI_RESOURCE_NOT_FOUND",
"details": "",
"message": "Cannot find the specified project 'pool63b/Local/
nonExistentTestProject'.",
"extendedData": {}
}

Example 3
Erroneous Request (curl)
curl -X POST \
-H 'authorization: Basic Auth_TOKEN' \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '["pool63b/Lo+cal/testProject"]' \
https://198.51.100.10/zebi/api/v2/getProjectDefaultFcITView -k

Error Response
The above request returns the HTTP status code 400 (bad request) and the following
message:
{

"code": "EZEBI_INVALID_ARGUMENT",
"details": "getProjectDefaultFcITView.arg0
value 'pool63b/Lo+cal/testProject':
Dataset path is not in the expected format that starts with a letter
followed by alpha-numeric and may contain only the following:
'A-Z', 'a-z', '0-9', '_', '.', '-', ':', and '/' but not end with '/'.",
"message": "Dataset path is not in the expected format that starts
with a letter followed by alpha-numeric and may contain only the
following:
'A-Z', 'a-z', '0-9', '_', '.', '-', ':', and '/' but not end with '/'.",
"extendedData": {
"EX_CAUSE_MESSAGE": null
}

}

getProjectDefaultIscsiITView
Returns all the existing default iSCSI views for the specified project dataset path.

66

SAN Methods

First Available Version
API v2.1, IntelliFlash 3.7.0.x
Related APIs
getVolumeITView, getProjectDefaultFcITView
Parameters
datasetPath
A string representing the project dataset path.
A project dataset must start with a letter followed by a series of alphanumeric.
It can contain only the following characters: 'A-Z', 'a-z', '0-9', '_', '.', '-', ':', and '/'.
The dataset, however, should not end with '/'.
Returns
A list of ITView_V2_1 objects.
Exceptions Thrown
EZEBI_RESOURCE_NOT_FOUND
This exception is thrown if the specified project cannot be found.
EZEBI_INVALID_ARGUMENT
This exception is thrown if an invalid character is detected in the project
dataset path.
Examples
Example 1
Request (curl)
curl -X POST \
-H 'authorization: Basic Auth_TOKEN' \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '["pool-test/Local/proj_snap"]' \
https://198.51.100.10/zebi/api/v2/getProjectDefaultIscsiITView -k

Response
The above request returns the HTTP status code 200 (OK) and a list of ITView_V2_1 objects if
found.
{

"hostGroupName": "All",

67

Tegile IntelliFlash API Reference Guide, Version 2.3

]

}

"targetGroupName": "default-pool-test-iscsi-target-group",
"lunNbr": -1,
"readOnly": false

Example 2
Erroneous Request (curl)
curl -X POST \
-H 'authorization: Basic Auth_TOKEN' \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '["pool63b/Local/nonExistentTestProject"]' \
https://198.51.100.10/zebi/api/v2/getProjectDefaultIscsiITView -k

Error Response
The above request returns the HTTP status code 404 (not found) and the following message:
{

}

"code": "EZEBI_RESOURCE_NOT_FOUND",
"details": "",
"message": "Cannot find the specified project
'pool63b/Local/nonExistentTestProject'.",
"extendedData": {}

Example 3
Erroneous Request (curl)
curl -X POST \
-H 'authorization: Basic AUTH_TOKEN' \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '["pool63b/Lo+cal/testProject"]' \
https://198.51.100.10/zebi/api/v2/getProjectDefaultIscsiITView -k

Error Response
The above request returns the HTTP status code 400 (bad request) and the following
message:
{

68

"code": "EZEBI_INVALID_ARGUMENT",
"details": "getProjectDefaultIscsiITView.arg0
value 'pool63b/Lo+cal/testProject':
Dataset path is not in the expected format that starts with a letter
followed by alpha-numeric and may contain only the following:
'A-Z', 'a-z', '0-9', '_', '.', '-', ':', and '/' but not end with '/'.",

SAN Methods

"message": "Dataset path is not in the expected format that starts
with a letter followed by alpha-numeric and may contain only the
following:
'A-Z', 'a-z', '0-9', '_', '.', '-', ':', and '/' but not end with '/'.",
"extendedData": {
"EX_CAUSE_MESSAGE": null
}

}

getVolumeITView
Lists all the existing default iSCSI views for the specified volume dataset path.
First Available Version
API v2.1, IntelliFlash 3.7.0.x
Related APIs
getProjectDefaultIscsiITView, getProjectDefaultFcITView
Parameters
datasetPath
A string representing the volume dataset path.
A volume dataset must start with a letter followed by a series of alpha-numeric
characters. It can contain only the following characters: 'A-Z', 'a-z', '0-9', '_', '.', '-',
':', and '/'. The dataset, however, should not end with '/'.
Returns
A list of ITView_V2_1 objects.
Exceptions Thrown
EZEBI_INVALID_ARGUMENT
This exception is thrown if an invalid character is detected in the volume
dataset path.
EZEBI_RESOURCE_NOT_FOUND
This exception is thrown if the specified volume doesn’t exist.
Examples
Example 1

69

Tegile IntelliFlash API Reference Guide, Version 2.3

Request (curl)
curl -X POST \
-H 'authorization: Basic AUTH_TOKEN' \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '["pool63b/Local/testProject/LUN1"]' \
https://198.51.100.10/zebi/api/v2/getVolumeITView -k

Response
The above request returns the HTTP status code 200 (OK) and a list of ITView_V2_1 objects.
[

{

"hostGroupName": "All",
"targetGroupName": "iqn.2012-02.com.tegile:repz61-pool63b-testprojectgroup",
"lunNbr": 0,
"readOnly": false
}
]

Example 2
Erroneous Request (curl)
curl -X POST \
-H 'authorization: Basic AUTH_TOKEN' \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '["pool63b/Local/testProject/nonExistentLlun"]' \
https://198.51.100.10/zebi/api/v2/getVolumeITView -k

Error Response
The above request returns the HTTP status code 404 (not found) and the following message:
{

}

"code": "EZEBI_RESOURCE_NOT_FOUND",
"details": "",
"message": "Cannot find the specified volume
'pool63b/Local/testProject/nonExistentLun'.",
"extendedData": {}

Example 3
Erroneous Request (curl)
curl
-H
-H
-H
-d

70

-X POST \
'authorization: Basic AUTH_TOKEN' \
'cache-control: no-cache' \
'content-type: application/json' \
'["pool63b/Lo+cal/testProject/nonExistentLun"]' \

SAN Methods

https://198.51.100.10/zebi/api/v2/getVolumeITView -k

Error Response
The above request returns the HTTP status code 400 (bad request) and the following
message:
{

}

"code": "EZEBI_INVALID_ARGUMENT",
"details": "getVolumeITView.arg0 value
'pool63b/Lo+cal/testProject/nonExistentLun':
Dataset path is not in the expected format that starts with a
letter followed by alpha-numeric and may contain only the following:
'A-Z', 'a-z', '0-9', '_', '.', '-', ':', and '/' but not end with '/'.",
"message": "Dataset path is not in the expected format that starts with
a letter followed by alpha-numeric and may contain only the following:
'A-Z', 'a-z', '0-9', '_', '.', '-', ':', and '/' but not end with '/'.",
"extendedData": {
"EX_CAUSE_MESSAGE": null
}

initiatorGroupExists
Checks if an initiator group exists on the Tegile array.
First Available Version
API v1.0, IntelliFlash 2.1.0.0
Related APIs
listInitiatorsInInitiatorGroup, addInitiatorToInitiatorGroup
Parameters
initiatorGroupName
A string: the name of the initiator group.
Returns
Returns a boolean value: true if the group exists, and false if it does not.
Examples
Example 1
Request (curl)
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H Content-Type:application/json \
-d '["iqn.2012-11.com.tegile.iscsi:testinigroup-group"]' \

71

Tegile IntelliFlash API Reference Guide, Version 2.3

https://198.51.100.10/zebi/api/v2/initiatorGroupExists -k

Response
If the initiator group exists, the above request returns the HTTP status code 200 (OK) and the
following data:
true

Example 2
Erroneous Request
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H Content-Type:application/json -d '[2012]' \
https://198.51.100.10/zebi/api/v2/initiatorGroupExists -k

Response
If the initiator group does not exist, the above request returns the HTTP status code 200 (OK)
and the following data:
false

listFCInitiators
Lists the FC initiators on the IntelliFlash array.
First Available Version
API v2.1, IntelliFlash 3.7.0.x
Related APIs
createFCInitiator, listFCInitiatorGroups, listInitiatorsInInitiatorGroup, listTargetsInTargetGroup
Parameters
initiatorNamePattern
The name of the FC initiator you want to retrieve, or a regular expression
pattern to retrieve more than one FC initiator name.
For example:
• "wwn.21000024FF279210" lists a specific initiator.
• ".*" lists all Fibre Channel initiators.

72

SAN Methods

• "wwn.123.*" lists FC initiators starting with wwn.123.
• ".*89112" lists initiators ending with 89112.
Returns
A JSON array of the FCInitiator_V2_1 objects that contain the details of the ISCSI initiators that
currently exist.
Exceptions Thrown
EZEBI_INVALID_ARGUMENT
This exception is thrown if the parameters are invalid (bad format, blank, or an
invalid regular expression).
EZEBI_GENERAL
This exception is thrown if the operation failed.
Examples
Example 1
Request (curl)
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H "Content-Type:application/json" \
-H 'cache-control: no-cache' \
-d '[".*"]'
\
https://198.51.100.10/zebi/api/v2/listFCInitiators -k

Response:
The above request returns the HTTP status code 200 (OK) and an array of JSON
FCInitiator_V2_1 objects for all the FC initiators found on the array. For example:
[

{
},
{

]

}

"initiatorName": "wwn.5001438001FF7742",
"initiatorGroupName": "fc-igroup"
"initiatorName": "wwn.5001438001FFBBBA",
"initiatorGroupName": "fc-igroup"

Example 2

73

Tegile IntelliFlash API Reference Guide, Version 2.3

Erroneous Request (curl)
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H "Content-Type:application/json" \
-H 'cache-control: no-cache' \
-d '["wwn.5001438001FCCCCC"]' \
https://198.51.100.10/zebi/api/v2/listFCInitiators -k

Error Response
In this example, the initiator pattern requested does not exist. So the request returns HTTP
status code 200 (OK) and an empty array of array of JSON FCInitiator_V2_1 objects.
Example 3
Erroneous Request (curl)
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H "Content-Type:application/json" \
-H 'cache-control: no-cache' \
-d '[""]' \
https://198.51.100.10/zebi/api/v2/listIFCInitiators -k

Error Response
The above request returns the HTTP status code 400 (bad request) and the following
response:
{

"code": "EZEBI_INVALID_ARGUMENT",
"details": "listFCInitiators.arg0 value '':
Pattern name is not valid, an invalid null, empty or blank pattern name
was detected.",
"message": "Pattern name is not valid,
an invalid null, empty or blank pattern name was detected.",
"extendedData": {
"EX_CAUSE_MESSAGE": null
}

}

listFCInitiatorGroups
Lists the names of all Fibre Channel initiator groups created on a Tegile array. This is an
HTTP GET method.
First Available Version
API v1.0, IntelliFlash 2.1.0.0
Related APIs

74

SAN Methods

listFCTargetGroups, listInitiatorsInInitiatorGroup, createMappingForVolume.
Parameters
None
Returns
Returns an array of JSON strings. Each string in this list is a group name within
the complete list of Fibre Channel Initiator group names found on the Tegile
array.
Example
Request (curl)
curl -X GET -H "Authorization:Basic Auth_TOKEN" \
-H Content-Type:application/json \
-d '[]' https://198.51.100.10/zebi/api/v2/listFCInitiatorGroups

-k

Response
[
"fcinigroup",
"fcinigroup1"
]

listFCTargets
Lists the Fibre Channel (FC) targets on the IntelliFlash array.
First Available Version
API v2.1, IntelliFlash 3.7.0.x
Related APIs
listTargetsInTargetGroup, createTargetGroup, moveTargetToTargetGroup
Parameters
targetNamePattern
The name of the FC target you want to retrieve, or a regular expression pattern
to retrieve more than one FC target name.
For example:
• "wwn.1234567890123456" lists a specific FC target.

75

Tegile IntelliFlash API Reference Guide, Version 2.3

• ".*" retrieves all the FC targets.
• "wwn.210.*" retrieves targets starting with wwn.210.
• ".*89112" retrieves targets ending with 89112.
Returns
A JSON array of the FCTarget_V2_1 objects that contains the details of the available FC targets.
Exceptions Thrown
EZEBI_INVALID_ARGUMENT
This exception is thrown if the parameters are invalid (bad format, blank, or an
invalid regular expression).
EZEBI_GENERAL
This exception is thrown if the operation failed.
Examples
Example 1
Request (curl)
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H "Content-Type:application/json" \
-H 'cache-control: no-cache' \
-d '[".*"]'
\
https://198.51.100.10/zebi/api/v2/listFCTargets -k

Response
The above request returns the HTTP status code 200 (OK) and an array of JSON FCTarget_V2_1
objects for all the FC targets found on the array. For example:
[

{

},
{

76

"targetName": "wwn.21000042BB326F3C",
"targetStatus": "online",
"targetNode": "controller-a",
"targetGroupName": "default-fc-target-group",
"targetSpeed": "4Gb"
"targetPortType": "HBA"
"targetName": "wwn.31C5A0BE4F7D7463",
"targetStatus": "offline",
"targetNode": "controller-b",
"targetGroupName": "",
"targetSpeed": "not established"
"targetPortType": "NPIV"

SAN Methods

]

},

Example 2
Erroneous Request (curl)
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H "Content-Type:application/json" \
-H 'cache-control: no-cache' \
-d '["wwn.5001438001FCCCCC"]' \
https://198.51.100.10/zebi/api/v2/listFCTargets -k

Error Response
In this example, the target pattern requested does not exist. So the request returns HTTP
status code 200 (OK) and an empty array of the JSON FCTarget_V2_1 objects.
Example 3
Erroneous Request (curl)
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H "Content-Type:application/json" \
-H 'cache-control: no-cache' \
-d '[""]' \
https://198.51.100.10/zebi/api/v2/listIFCTargets -k

Error Response
The above request returns the HTTP status code 400 (bad request) and the following
response:
{

}

"code": "EZEBI_INVALID_ARGUMENT",
"details": "listFCTargets.arg0 value '':
Pattern name is not valid, an invalid null,
empty or blank pattern name was detected.",
"message": "Pattern name is not valid, an invalid null,
empty or blank pattern name was detected.",
"extendedData": {
"EX_CAUSE_MESSAGE": null
}

listFCTargetGroups
Lists all Fibre Channel Target groups available on a Tegile array. This is an HTTP GET method.
First Available Version

77

Tegile IntelliFlash API Reference Guide, Version 2.3

API v1.0, IntelliFlash 2.1.1.1
Related APIs
listFCInitiatorGroups, createMappingForVolume.
Parameters
None
Returns
Returns an array of JSON strings. Each string returned is the name of one Fibre
Channel (FC) target group within the list of all FC target groups on the array. If
the array does not have any FC card, an empty array is returned.
Example
Request (curl)
curl -X GET -H "Authorization:Basic Auth_TOKEN" \
-H Content-Type:application/json \
https://198.51.100.10/zebi/api/v2/listFCTargetGroups -k

Response
[

"default-fc-target-group"

]

listInitiatorGroups
Lists all initiator groups available on the IntelliFlash array.
First Available Version
API v2.1, IntelliFlash 3.7.0.x
Related APIs
deleteInitiatorGroup
Parameters
None

78

SAN Methods

Returns
A list of InitiatorGroup_V2_1 objects.
Example
Request (curl)
curl -X POST \
-H 'authorization: Basic Auth_TOKEN' \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '[]' \
https://198.51.100.10/zebi/api/v2/listInitiatorGroups -k

Response
The above request returns the HTTP status code 200 (OK) and a list of InitiatorGroup_V2_1
objects if found.
[

{
},
{

]

}

"initiatorGroupName": "esx124group",
"intendedProtocol": "iSCSI"
"initiatorGroupName": "esx125group",
"intendedProtocol": "iSCSI"

listISCSIInitiatorGroups
Lists all the iSCSI initiator groups available on a Tegile array. This is an HTTP GET method.
First Available Version
API v1.0, IntelliFlash 2.1.0.0
Related APIs
listISCSITargetGroups, initiatorGroupExists, addInitiatorToInitiatorGroup,
createMappingForVolume.
Parameters
None
Returns
Returns an array of JSON strings. Each string has the names of all iSCSI
Initiator groups on the Tegile array.

79

Tegile IntelliFlash API Reference Guide, Version 2.3

Example
Request (curl)
curl -X GET -H "Authorization:Basic Auth_TOKEN" \
-H Content-Type:application/json \
https://198.51.100.10/zebi/api/v2/listISCSIInitiatorGroups \
-k

Response
[
"inigrp1",
"testinigroup"
]

listISCSIInitiators
Lists the iSCSI initiator details on the IntelliFlash array.
First Available Version
API v2.1, IntelliFlash 3.7.0.x
Related APIs
deleteIscsiInitiator, listISCSIInitiatorGroups, listInitiatorsInIntiatorGroup, listISCSITargets,
createIscsiInitiator
Parameters
initiatorNamePattern
The name of the iSCSI initiator you want to retrieve, or a regular expression
pattern to retrieve more than one iSCSI initiators.
For example, "iqn.1991-05.com.microsoft:myHost" lists a specific initiator, ".*"
retrieves all the initiators, "iqn.1991-05.com.microsoft:.*" retrieves initiators
with that prefix, ".*myHost.*" retrieves initiators that contain 'myHost' in the
name.
Returns
A JSON array of the ISCSIInitiator_V2_1 objects that contain the details of the ISCSI initiators
that currently exist.

80

SAN Methods

Exceptions Thrown
EZEBI_INVALID_ARGUMENT
This exception is thrown if the parameters are invalid (bad format, blank, or an
invalid regular expression).
EZEBI_GENERAL
This exception is thrown if the operation failed.
Examples
Example 1
Request (curl)
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H "Content-Type:application/json" \
-H 'cache-control: no-cache' \
-d '[".*"]' \
https://10.68.89.10/zebi/api/v2/listISCSIInitiators -k

Response:
The above request returns the HTTP status code 200 (OK) and an array of JSON
ISCSIInitiator_V2_1 objects for all the ISCSI initiators found on the array. For example:
[

{

},
{

]

}

"initiatorName": "eui.1543553633737272",
"initiatorGroupName": "",
"chapUserName": null,
"chapSecret": null
"initiatorName": "iqn.1991-05.com.microsoft:a.tegile.com",
"initiatorGroupName": "iscsi-igroup1",
"chapUserName": "myChapName",
"chapSecret": null

Example 2
Erroneous Request (curl)
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H "Content-Type:application/json" \
-H 'cache-control: no-cache' \
-d '["iqn.2012-02.com.tegile:does-not-exist"]' \
https://10.68.89.10/zebi/api/v2/listISCSIInitiators -k

81

Tegile IntelliFlash API Reference Guide, Version 2.3

Error Response
In this example, the initiator pattern requested does not exist. So the request returns HTTP
status code 200 (OK) and an empty array of JSON ISCSIInitiator_V2_1 objects.
Example 3
Erroneous Request (curl)
curl -X POST -H "Authorization:Basic Auth_TOKEN"
-H "Content-Type:application/json" \
-H 'cache-control: no-cache' \
-d '["*()(&^%$"]' \
https://10.68.89.10/zebi/api/v2/listISCSIInitiators -k

Error Response
The above request returns the HTTP status code 400 (bad request) and the following
response:
{

}

"code": "EZEBI_INVALID_ARGUMENT",
"details": "listISCSIInitiators.arg0 value ‘*()(&^%$’:
Invalid regular expression argument was detected.
Please check the regular expression syntax.",
"message": "Invalid regular expression argument was detected.
Please check the regular expression syntax.",
"extendedData": {
"EX_CAUSE_MESSAGE": null
}

listInitiatorsInInitiatorGroup
Lists all initiators belonging to the specified initiator group.
First Available Version
API v1.0, IntelliFlash 2.1.0.0
Related APIs
initiatorGroupExists, getInitiatorGroup, listTargetsInTargetGroup.
Parameters
initiatorGroupName
A string: name of an iSCSI or a Fibre Channel initiator group.
Returns

82

SAN Methods

Returns an array of JSON strings. Each string returned has a name of an
initiator in the specified initiator group.
Examples
Example 1
Request (curl)
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H Content-Type:application/json \
-d '["APIInitiatorGroup"]' \
https://198.51.100.10/zebi/api/v2/listInitiatorsInInitiatorGroup -k

Response
[
"iqn.1998-01.com.vmware:esx99",
"iqn.1998-01.com.vmware:esx98"
]

Example 2
Erroneous Request
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H Content-Type:application/json \
-d '["iqn.2012-11.com.tegile.iscsi:testinigroup-grp"]' \
https://198.51.100.10/zebi/api/v2/listInitiatorsInInitiatorGroup -k

Error Response
If the initiator group is not found, the above request returns the HTTP status code 200 (OK)
and no data.

listISCSITargetGroups
Lists all the iSCSI target groups available on an array. This is an HTTP GET method.
First Available Version
API v1.0, IntelliFlash 2.1.0.0
Related APIs
listISCSIInitiatorGroups, createMappingForVolume.
Parameters
None

83

Tegile IntelliFlash API Reference Guide, Version 2.3

Returns
Returns an array of JSON strings. Each string returned is a name of an iSCSI
target group found within the list of all iSCSI target groups found on the array.
Example
Request (curl)
curl -X GET -H "Authorization:Basic Auth_TOKEN" \
-H Content-Type:application/json \
https://198.51.100.10/zebi/api/v2/listISCSITargetGroups -k

Response
[
"default-p1aut-iscsi-target-group",
"tgtgrp1","testtargetgroup"
]

listISCSITargets
Lists the iSCSI target details on the IntelliFlash array.
First Available Version
API v2.1, IntelliFlash 3.7.0.x
Related APIs
createTargetGroup, moveTargetToTargetGroup, createISCSITarget, createISCSITargetForGroup,
deleteISCSITarget
Parameters
targetNamePattern
The name of the target you want to retrieve, or a target name regular
expression pattern to retrieve a list of targets.
For example, "iqn.2012-12.com.acme:atarget" lists a specific target, ".*"
retrieves all the iSCSI targets, "iqn.2012-12.com.tegile:.*" retrieves targets with
the prefix iqn.2012-12.com.tegile, ".*pool-a.*" retrieves targets with 'pool-a' in
the name.
Returns
A JSON array of ISCSITarget_V2_1 objects that contain the details of the ISCSI targets.

84

SAN Methods

Exceptions Thrown
EZEBI_INVALID_ARGUMENT
This exception is thrown if the parameters are invalid (bad format, blank, or an
invalid regular expression).
EZEBI_GENERAL
This exception is thrown if the operation failed.
Examples
Example 1
Request (curl)
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H "Content-Type:application/json" \
-H 'cache-control: no-cache' \
-d '[".*"]' \
https://10.68.89.10/zebi/api/v2/listISCSITargets -k

Response:
The above request returns the HTTP status code 200 (OK) and a JSON array of
ISCSITarget_V2_1 objects for all the ISCSI targets found on the array. For example:
[

{

},
{

} ]

"targetSuffixName": "test",
"targetAlias": "iscsi-alias",
"targetGroupName": "iscsi-tgroup",
"targetAuthenticationMode": "none",
"targetChapName": "",
"targetChapSecret": null,
"targetNetworkBinding": [
"10.68.97.211:3260"
],
"targetName": "iqn.2012-02.com.tegile:test"
"targetSuffixName": "pool-demo",
"targetAlias": "pool-demo",
"targetGroupName": "default-pool-demo-iscsi-target-group",
"targetAuthenticationMode": "none",
"targetChapName": "",
"targetChapSecret": null,
"targetNetworkBinding": [
"10.68.97.212:3260"
],
"targetName": "iqn.2012-02.com.tegile:pool-demo"

Example 2

85

Tegile IntelliFlash API Reference Guide, Version 2.3

Erroneous Request (curl)
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H "Content-Type:application/json" \
-H 'cache-control: no-cache' \
-d '["iqn.2012-02.com.tegile:no-exist"]' \
https://10.68.89.10/zebi/api/v2/listISCSITargets -k

Error Response
In this example, the target pattern requested does not exist. So the request returns HTTP
status code 200 (OK) and an empty array of JSON ISCSITarget_V2_1 objects for ISCSI targets
found on the array.

listTargetGroups
Lists all target groups available on the IntelliFlash array.
If no targets are mapped to a target group, the intendedProtocol is shown as "Unknown."
First Available Version
API v2.2, IntelliFlash 3.7.1.0
Related APIs
createTargetGroup, listISCSITargetGroups, listFCTargetGroups
Parameters
None
Returns
A list of TargetGroup_V2_2 objects.
Example
Request (curl)
curl -X POST \
-H 'authorization: Basic Auth_TOKEN' \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '[]' \
https://198.51.100.10/zebi/api/v2/listTargetGroups -k

86

SAN Methods

Response
The above request returns the HTTP status code 200 (OK) and a list of TargetGroup_V2_2
objects:
[
{
"targetGroupName": "default-fc-target-group",
"intendedProtocol": "FC"
},
{
"targetGroupName": "default-pool-a-iscsi-target-group",
"intendedProtocol": "iSCSI"
},
{
"targetGroupName": "default-pool-a-virtual-fc-target-group",
"intendedProtocol": "FC"
},
{
"targetGroupName": "iqn.2012-02.com.tegile:trayambah.a-pool-a-proj1-group",
"intendedProtocol": "Unknown"
}
]

listTargetsInTargetGroup
Lists all targets associated with the target group.
First Available Version
API v1.0, IntelliFlash 2.1.0.0
Related APIs
listInitiatorsInInitiatorGroup, createMappingForVolume.
Parameters
targetGroupName
A string: name of an iSCSI or a Fibre Channel target group.
Returns
Returns an array of JSON strings. Each string returned is a name of a target in
the specified target group.
Examples
Example 1

87

Tegile IntelliFlash API Reference Guide, Version 2.3

Request (curl)
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H Content-Type:application/json \
-d '["iscsitarget61"]' \
https://198.51.100.10/zebi/api/v2/listTargetsInTargetGroup \
-k

Response
[
"iqn.2012-02.com.tegile:iscsitarget61",
"iqn.2012-02.com.tegile:test",
"iqn.2012-02.com.tegile:test1"
]

Example 2
Erroneous Request
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H Content-Type:application/json \
-d '["default-test1-iscsi-target-group"]' \
https://198.51.100.10/zebi/api/v2/listTargetsInTargetGroup \
-k

Error Response
If the target group is not found, the above request returns the HTTP status code 200 (OK)
and no data.

modifyISCSITargetAlias
Modifies the iSCSI target alias (or user friendly name) of the target to newly specified name.
First Available Version
API v2.1, IntelliFlash 3.7.0.x
Related APIs
Parameters
targetName

88

SAN Methods

The name of the target you want to modify. For example,
"iqn.2012-02.com.tegile:myTargetSuffix". The targetName is returned by
listISCSITargets API. The targets in default target group cannot be modified.
targetAlias
The new target alias name.
Returns
Returns an integer status where:
• 0 indicates that the request succeeded.
• 1 indicates that the request was not attempted.
• 2 indicates that the request failed.
Exceptions Thrown
EZEBI_RESOURCE_NOT_FOUND
This exception is thrown if the specified iSCSI target does not exist.
EZEBI_INVALID_ARGUMENT
This exception is thrown for the following conditions:
• If the parameters are invalid (bad format or blank)
• If the default target is being modified
EZEBI_GENERAL
This exception is thrown if the operation failed.
Examples
Example 1
Request (curl)
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H "Content-Type:application/json" \
-H 'cache-control: no-cache' \
-d '["iqn.2012-02.com.tegile:test","rename-this-alias"]' \
https://10.68.89.10/zebi/api/v2/modifyISCSITargetAlias -k

Response
The above request returns the HTTP status code 200 (OK) and an integer status of 0 to
indicate that the user friendly alias of the target "iqn.2012-02.com.tegile:test" has been
renamed to “rename-this-alias”.
Example 2

89

Tegile IntelliFlash API Reference Guide, Version 2.3

Erroneous Request (curl)
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H "Content-Type:application/json" \
-H 'cache-control: no-cache' \
-d '["iqn.2012-02.com.tegile:does-not-exist",”new-alias”]' \
https://10.68.89.10/zebi/api/v2/modifyISCSITargetAlias -k

Error Response
In this example, the target does not exist. So the request returns the HTTP status code 404
(not found) and the following response:
{"code":"EZEBI_RESOURCE_NOT_FOUND",
"details":"Failed to find iSCSI Target[iqn.2012-02.com.tegile:does-notexist].
The target must exist for this operation to succeed.",
"message":"Failed to find iSCSI Target to modify
[iqn.2012-02.com.tegile:does-not-exist].",
"extendedData":{"EX_CAUSE_MESSAGE":
"Failed to find iSCSI Target[iqn.2012-02.com.tegile:does-not-exist]. T
he target must exist for this operation to succeed.",
"EX_CAUSE_CODE_NAME":"EZEBI_RESOURCE_NOT_FOUND"}}

moveTargetToTargetGroup
Moves an iSCSI or Fibre Channel target to an existing target group.
First Available Version
API v2.1, IntelliFlash 3.7.0.x
Updated in API v2.2.
Related APIs
createTargetGroup, listFCTargetGroups, listISCSITargetGroups, listTargetGroups, createISCSITarget,
listTargetsInTargetGroup
Parameters
targetName
Name of the target you want to move. This can be an iSCSI or Fibre Channel
target name.
For iSCSI target name, it must be in the format, iqn.yyyy-mm.
[reverse-domain-name]:unique-user-suffix. For example,
iqn.2012-02.com.tegile:myTargetPool1Suffix.

90

SAN Methods

For Fibre Channel target. it must be in the format, wwn.[16-hexadecimalnumbers]. For example, wwn.21000024FF199A22.
destinationTargetGroupName
Name of the destination target group. This must be an existing target group.
The protocol (iSCSI or FC) of the target being moved must match the protocol
of the destination target group, or the target group must be empty. The iSCSI
targets must match the resource group of the destination target resource
group. The target cannot be moved to or from the default target group. If the
target is already in a target group, the API removes the target from that target
group.
force
Boolean value indicating to bypass in-use target check.
Note: This parameter is included in API v2.2.
If the value is true, the API moves the target even if it is in an active project or
LUN mapping. If the value is false, API throws an exception when the target is
being used in a project or LUN mapping.
Returns
Returns an integer status where:
• 0 indicates that the request succeeded.
• 1 indicates that the request was not attempted.
• 2 indicates that the request failed.
Exceptions Thrown
EZEBI_RESOURCE_NOT_FOUND
This exception is thrown if the target or target group does not exist.
EZEBI_INVALID_ARGUMENT
This exception is thrown for the following conditions:
• If an invalid character is detected in either the targetName or the
destinationTargetGroupName.
• If the target group has a different protocol or belongs to a different
resource group than the target.
• If an attempt is made to move a target to or from the default target groups.
EZEBI_GENERAL

91

Tegile IntelliFlash API Reference Guide, Version 2.3

This exception is thrown if an internal error is detected.
EZEBI_RESOURCE_BUSY
This exception is thrown if the target is already in a group that is in an active
LUN or project mapping.
Examples
Exampe 1
Request (curl)
curl -X POST \
-H 'authorization: Basic Auth_TOKEN' \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '["iqn.2012-02.com.tegile:testtarget1", "aCoolTargetGroup", false]' \
https://198.51.100.10/zebi/api/v2/moveTargetToTargetGroup -k

Response
The above request returns the HTTP status code 200 (OK) and an integer 0 indicating a
successful operation.
Example 2
Erroneous Request (curl)
curl -X POST \
-H 'authorization: Basic Auth_TOKEN' \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '["iqn.2012-02.com.tegile:testtarget1", "aNonExistentTargetGroup",
false]' \
https://198.51.100.10/zebi/api/v2/moveTargetToTargetGroup -k

Erroneous Response
The above request returns the HTTP status code 404 (not found) and the following message:
{

}

"code": "EZEBI_RESOURCE_NOT_FOUND",
"details": "",
"message": "Cannot find target group: aNonExistentTargetGroup",
"extendedData": {}

Example 3
Erroneous Request (curl)
curl -X POST \

92

SAN Methods

-H 'authorization: Basic AUTH_TOKEN' \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '["iqn.2012-02.com.tegile:testtarget1", "emptyTargetGroup", false]' \
https://198.51.100.10/zebi/api/v2/moveTargetToTargetGroup -k

Erroneous Response
The above request returns the HTTP status code 400 (bad request) and the following
message:
{

}

"code": "EZEBI_RESOURCE_BUSY",
"details": "Unable to remove the target safely
from its current active Target Group. Please remove 'is-tgroup-active’
from its existing project and LUN mapping(s) and try again.
Can't remove the Target because the group [is-tgroup-active]
which contains the target is being used by 1 lun(s)",
"message": "Failed to move target [iqn.2012-02.com.tegile:target1]
to the target group [emptyTargetGroup]",
"extendedData":
{"EX_CAUSE_MESSAGE": "Unable to remove the Target safely from its
current active Target Group. Please remove 'is-tgroup-active'
from its existing project and LUN mapping(s) and try again.
Can't remove the Target because the group [is-tgroup-active]
which contains the target is being used by 1 lun(s)",
"EX_CAUSE_CODE_NAME": "EZEBI_RESOURCE_BUSY"
}

moveInitiatorToInitiatorGroup
Moves an iSCSI or Fibre Channel initiator to an existing initiator group.
First Available Version
API v2.2, IntelliFlash 3.7.1.0
Related APIs
listISCSIIntiators, listInitiatorsInIntiatorGroup, listISCSIInitiatorGroups, listInitiatorGroups,
createIscsiInitiator, addInitiatorToInitiatorGroup, createFCInitiator, createInitiatorGroup
Parameters
initiatorName
Name of the initiator you want to move.
This can be an iSCSI or Fibre Channel initiator in any of the following formats:
• iqn.yyyy-mm.[reverse-domain-name]:unique-user-suffix

93

Tegile IntelliFlash API Reference Guide, Version 2.3

• eui.[16-hexadecimal-digits]

• wwn.[16-hexadecimal-numbers]
For example, iqn.2017-12.com.tegile.dev:test,
eui.1543553633737279 or wwn.5001438002211672.
destinationInitiatorGroupName
Name of the destination initiator group. This must be an existing initiator
group.
The protocol (iSCSI or FC) of the initiator being moved must match the protocol
of the destination initiator group, or the initiator group must be empty. If the
initiator is already in an initiator group, the API removes the initiator from that
initiator group.
force
Boolean value indicating to bypass in-use initiator check.
If the value is true, the API moves the initiator even if it is in an active project or
LUN mapping. If the value is false, API throws an exception when the initiator
is being used in a project or LUN mapping.
Returns
Returns an integer status where:
• 0 indicates that the request succeeded.
• 1 indicates that the request was not attempted.
• 2 indicates that the request failed.
Exceptions Thrown
EZEBI_RESOURCE_NOT_FOUND
This exception is thrown if the initiator or initiator group does not exist.
EZEBI_INVALID_ARGUMENT
This exception is thrown for the following conditions:
• If an invalid character is detected in either the initiatorName or the
destinationInitiatorGroupName parameters.
• If the initiator group has a different protocol than the initiator.
EZEBI_GENERAL
This exception is thrown if an internal error is detected.
EZEBI_RESOURCE_BUSY

94

SAN Methods

This exception is thrown if the initiator is already in a group that is in an active
LUN or project mapping.
Examples
Exampe 1
Request (curl)
curl -X POST \
-H 'authorization: Basic Auth_TOKEN' \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '["iqn.2012-02.com.tegile:testInitiator1", "emptyInitiatorGroup",
false]' \
https://198.51.100.10/zebi/api/v2/moveInitiatorToInitiatorGroup -k

Response
The above request returns the HTTP status code 200 (OK) and an integer 0 indicating a
successful operation.
Example 2
Erroneous Request (curl)
curl -X POST \
-H 'authorization: Basic Auth_TOKEN' \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '["iqn.2012-02.com.tegile:testInitiator1", "NonExistentInitiatorGroup",
false]' \
https://198.51.100.10/zebi/api/v2/moveInitiatorToInitiatorGroup -k

Erroneous Response
The above request returns the HTTP status code 404 (not found) and the following message:
{

"code": "EZEBI_RESOURCE_NOT_FOUND",
"details": "Please specify an existing iSCSI or Fibre Channel initiator
group.",
"message": "Initiator group [nonExistentInitiatorGroup] to move
the initiator into was not found.",
"extendedData": {}

}

Example 3
Erroneous Request (curl)
curl -X POST \

95

Tegile IntelliFlash API Reference Guide, Version 2.3

-H 'authorization: Basic YOUR_TOKEN' \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '["iqn.2017-10.com.tegile.dev:initiator1", "empty-is-igroup", false]' \
https://YOUR_IP/zebi/api/v2/moveInitiatorToInitiatorGroup -k

Erroneous Response
The above request returns the HTTP status code 400 (bad request) and the following
message:
{

"code": "EZEBI_RESOURCE_BUSY",
"details": "Unable to remove initiator safely
from its current active initiator group. Please remove inuse-is-igroup
from its existing project and LUN mapping(s) and try again.
Can't remove the Initiator because the group [inuse-is-igroup]
which contains the initiator is being used by 1 Lun(s)",
"message": "Failed to move initiator
[iqn.2017-10.com.tegile.dev:initiator1]
to the initiator group [empty-is-igroup]",
"extendedData":
{
"EX_CAUSE_MESSAGE":
"Unable to remove initiator safely from
its current active initiator group. Please remove
inuse-is-igroup from its existing project and LUN mapping(s) and try
again.
Can't remove the Initiator because the group [inuse-is-igroup]
which contains the initiator is being used by 1 Lun(s)",
"EX_CAUSE_CODE_NAME": "EZEBI_RESOURCE_BUSY"
}

}

96

Chapter 5
Dataset Methods
Topics:
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•

abortCopy
checkPoolIntegrity
copyDataset
createProject
createMappingForProject
createShare
createShare
createVolume
deleteDataset
deleteDataset
deleteMappingFromProject
deletePool
deleteProject
deleteShare
deleteShare
deleteVolume
deleteVolume
exportPool
getCopyStatus
getDatasetSpaceInfo
getFloatingIPList
getPoolSpaceInfo
getProject
getProjectProperty
getShare
getShareProperty
getVolume
getVolumeProperty
importPool
inheritPropertyFromProject
isProjectExposedOverNFS
isShareExposedOverNFS
listAllCopyOperations
listLunsById
listPools
listProjects
listRunningCopyOperations

The following sections describe Dataset methods,
parameters and return types. They also include examples
with sample responses.

Dataset Methods | 97

Tegile IntelliFlash API Reference Guide, Version 2.3

•
•
•
•
•
•
•
•
•

98

listShares
listSharesByMountPoints
listVolumes
modifyProjectProperties
modifyShareProperties
modifyVolumeProperties
resetPoolError
setNFSSharingOnProject
setNFSSharingOnShare

Dataset Methods

abortCopy
Aborts a running copy operation.
First Available Version
API v2.1, IntelliFlash 3.7.0.x
Related APIs
copyDataset, getCopyStatus, listRunningCopyOperations, listAllCopyOperations
Parameters
taskGUID
The GUID of the copy operation task to be aborted.
Returns
Returns the HTTP status code 200 (OK) and return code 0.
Exceptions Thrown
EZEBI_GENERAL
This exception is thrown if the task GUID is invalid for the array.
Examples
Example 1
Request (curl)
curl -X POST \
-H 'authorization: Basic Auth_TOKEN' \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '["europa:84944c8a-8bc1-4705-809e-144363797a57"]'
https://198.51.100.10/zebi/api/v2/abortCopy -k

Response
The above request returns the HTTP status code 200 (OK).
Example 2
Erroneous Request (curl)

99

Tegile IntelliFlash API Reference Guide, Version 2.3

curl -X POST \
-H 'authorization: Basic Auth_TOKEN' \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '["europa1:84944c8a-8bc1-4705-809e-144363797a57"]'
https://198.51.100.10/zebi/api/v2/abortCopy -k

Error Response
The above request returns HTTP status code 400 with the following message:
{

"code": "EZEBI_INVALID_ARGUMENT",
"details": "",
"message": "Cannot find copy task
'europ1a:84944c8a-8bc1-4705-809e-144363797a57'
in pool: europa1.",
"extendedData": {}

}

checkPoolIntegrity
Validates the integrity of the disks associated with a pool.
First Available Version
API v2.1, IntelliFlash 3.7.0.x
Related APIs
importPoool, exportPool, resetPoolError
Parameters
poolName
Name of the pool where you want to clear the errors.
start
An integer which specifies whether to start (1) or stop (0) the pool integrity
check.
Returns
Returns an integer status where:
• 0 indicates that the request succeeded.
• 1 indicates that the request failed.

100

Dataset Methods

Exceptions Thrown
EZEBI_RESOURCE_NOT_FOUND
This exception is thrown if the pool does not exist.
EZEBI_INVALID_ARGUMENT
This exception is thrown if an invalid character is detected in the pool name or
a start value is not 0 or 1.
EZEBI_GENERAL
This exception is thrown if the operation failed.
Examples
Example 1
Request (curl)
curl -X POST \
-H 'authorization: Basic AUTH_TOKEN' \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '["pool6a", 1]' \
https://198.51.100.10/zebi/api/v2/checkPoolIntegrity -k

Response
The above request returns the HTTP status code 200 (OK) and 0 as integer indicating a
successful operation.
Example 2
Erroneous Request (curl)
curl -X POST \
-H 'authorization: Basic AUTH_TOKEN' \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '["nonExistentPool6a", 1]' \
https://198.51.100.10/zebi/api/v2/checkPoolIntegrity -k

Error Response
The above request returns the HTTP status code 404 (not found) and the following message:
{

"code": "EZEBI_RESOURCE_NOT_FOUND",
"details": "Pool not found.",
"message": "The pool [nonExistentPool6a] was not found.",
"extendedData": {
"EX_CAUSE_MESSAGE": "Pool not found.",
"EX_CAUSE_CODE_NAME": "EZEBI_RESOURCE_NOT_FOUND"
}

101

Tegile IntelliFlash API Reference Guide, Version 2.3

}

Example 3
Erroneous Request (curl)
curl -X POST \
-H 'authorization: Basic AUTH_TOKEN' \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '["pool63a", 0]' \
https://198.51.100.10/zebi/api/v2/checkPoolIntegrity -k

Error Response
The above request returns the HTTP status code 400 (bad request) and the following
message:
{

}

"code": "EZEBI_GENERAL",
"details": "",
"message": "Failed to check pool [pool63a] integrity.
This could be due to an invalid scan pool state transition request",
"extendedData": {}

copyDataset
Starts a copy operation.
First Available Version
API v2.1, IntelliFlash 3.7.0.x
Related APIs
getCopyStatus, listRunningCopyOperations, listAllCopyOperations, abortCopy
Parameters
CopySource_V2_1
CopyDestination_V2_1
Returns
A task GUID for the copy operation.
Exceptions Thrown
EZEBI_RESOURCE_NOT_FOUND

102

Dataset Methods

This exception is thrown if the specified source dataset is not available.
EZEBI_INVALID_ARGUMENT
This exception is thrown for the following conditions:
• If an invalid character is present in the CopySource_V2_1 or the
CopyDestination_V2_1 field.
• If the specified source dataset is not available.
• If the dataset names are invalid.
• If the host is invalid.
• If the start and end subproject suffix numbers are invalid.
Examples
Example 1
Request (curl)
curl -X POST \
-H 'authorization: Basic Auth_TOKEN' \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '[{"poolName": "europa",
"projectName": "images",
"subProjectName": "template"
},
{
"hostName": "10.68.132.120",
"poolName": "napa",
"projectName": "remotecopy",
"subProjectNamePrefix": "prod",
"subProjectNameNumberStart": 1,
"subProjectNameNumberEnd": 3,
"subProjectNameWildcard": ""
}
]' \
https://198.51.100.10/zebi/api/v2/copyDataset -k

Response
The above request returns the HTTP status code 200 (OK) and a string. The returned string is
the copy operation’s GUID:
'84944c8a-8bc1-4705-809e-144363797a57'

Example 2
Erroneous Request (curl)

103

Tegile IntelliFlash API Reference Guide, Version 2.3

curl -X POST \
-H 'authorization: Basic Auth_TOKEN' \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '[{"poolName": "europa1",
"projectName": "images",
"subProjectName": "template"
},
{
"hostName": "10.68.132.120",
"poolName": "napa",
"projectName": "remotecopy",
"subProjectNamePrefix": "prod",
"subProjectNameNumberStart": 1,
"subProjectNameNumberEnd": 3,
"subProjectNameWildcard": ""
}
]' \
https://198.51.100.10/zebi/api/v2/copyDataset -k

Error Response
The above request returns HTTP status code 400 with the following message:
{

}

"code": "EZEBI_INVALID_ARGUMENT",
"details": "",
"message": "Unable to find project images in europa1",
"extendedData": {}

Example 3
Erroneous Request (curl)
curl -X POST \
-H 'authorization: Basic Auth_TOKEN' \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '[{"poolName": "europa1@",
"projectName": "images",
"subProjectName": "template"
},
{
"hostName": "10.68.132.120",
"poolName": "napa",
"projectName": "remotecopy",
"subProjectNamePrefix": "prod",
"subProjectNameNumberStart": 1,
"subProjectNameNumberEnd": 3,
"subProjectNameWildcard": ""
}
]' \
https://198.51.100.10/zebi/api/v2/copyDataset -k

104

Dataset Methods

Error Response
The above request returns the HTTP status code 400 and the following message:
{

}

"code": "EZEBI_INVALID_ARGUMENT",
"details": "copyDataset.arg0.poolName value 'europa1@':
Pool name is not in the expected format
that starts with a letter followed by alpha-numeric,_,-....",
"message": "Pool name is not in the expected format
that starts with a letter followed by alpha-numeric,_,-....",
"extendedData": {
"EX_CAUSE_MESSAGE": null
}

createProject
Creates a generic project with given parameters.
First Available Version
API v2.1, IntelliFlash 3.7.0.x
Related APIs
getProject, modifyProjectProperties, getProjectProperty
Parameters
Project
A Project_V2_1 object for which project needs to be created.
If the parameters are not specified, default values are used. “poolName”,
“projectName” are mandatory. You can configure other general properties in
Project_V2_1 that are not marked as “read only”.
Returns
Returns an integer status where:
• 0 indicates that the request succeeded.
• 1 indicates that the request was not attempted.
• 2 indicates that the request failed.
Exceptions Thrown
EZEBI_INVALID_ARGUMENT

105

Tegile IntelliFlash API Reference Guide, Version 2.3

If the parameters are invalid (when the key-value pair is not supported by
Project_V2_1).
Examples
Example 1
Request (curl)
curl
-H
-H
-H
-d

-X POST \
'authorization: Basic Auth_TOKEN' \
'cache-control: no-cache' \
'content-type: application/json' \
'[
{
"projectName":"general-project",
"poolName":"pool-a",
"quotaInByte":42949672960,
"intendedProtocolList":["iSCSI", "NFS"],
"compression":"gzip-9",
"recordSize":"128Kb",
"dedup":"on"
}
]'
https://198.51.100.10/zebi/api/v2/createProject -k

Response
The above request returns the HTTP status code 200 (OK) and an integer 0.
Example 2
Erroneous Request (curl)
curl
-H
-H
-H
-d

-X POST \
'authorization: Basic Auth_TOKEN' \
'cache-control: no-cache' \
'content-type: application/json' \
'[
{
"projectName":"general-project",
"poolName":"pool-a",
"quotaInByte":42949672960,
"intendedProtocolList":["iSCSI", "NFS"],
"compression":"really-bad-compression-algorithm",
"recordSize":"128Kb",
"dedup":"on"
}
]'
https://198.51.100.10/zebi/api/v2/createProject -k

Error Response

106

Dataset Methods

The above request returns the HTTP status code 400 (bad request) and the following
message:
{

"code": "EZEBI_INVALID_ARGUMENT",
"details": "createProject.arg0 value
'com.tegile.skywalk.api.v2.IPublicAPI_V2_1$Project_V2_1@1778db80':
Invalid Compression Algorithm, disable compression by passing in 'Off'
or enable compression by using one of the following: Lzjb, Gzip-2, Gzip,
Gzip-9, Lz4.",
"message": "Invalid Compression Algorithm, disable compression by passing
in 'Off'
or enable compression by using one of the following: Lzjb, Gzip-2, Gzip,
Gzip-9, Lz4.",
"extendedData": {
"EX_CAUSE_MESSAGE": null
}

}

createMappingForProject
Creates a project-level default mapping.
First Available Version
API v2.1, IntelliFlash 3.7.0.x
Related APIs
deleteMappingFromProject, createMappingForVolume
Parameters
datasetPath
Path of the project. The format is .
This operation is not allowed for replica project datasets.
initiatorGroupName
Name of the initiator group.
targetGroupName
Name of the target group.
readOnly
Whether mapping is read-only. The values are True and False.
Returns
COMMAND_STATUS.COMMAND_SUCCEED (0) on success or if the desired view already exists.

107

Tegile IntelliFlash API Reference Guide, Version 2.3

Exceptions Thrown
EZEBI_RESOURCE_NOT_FOUND
This exception is thrown if the specified project, initiator group, or target group
cannot be found.
EZEBI_INVALID_ARGUMENT
This exception is thrown for any of the following reasons:
• The path specified belongs to a replica dataset.
• The target group and initiator group have different protocols.
• The target group and initiator group are either iSCSI or FC protocols
(unknown).
• The view already exists with the wrong read-only type.
• The mapping for this target group already exists (when trying to make All
mapping).
• The mapping with 'All' initiator groups already exists on this target group.
Examples
Example 1
Request (curl)
curl -X POST \
-H 'authorization: Basic Auth_TOKEN \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '[
"pool-a/Local/demoProject", "All", "default-pool-a-iscsi-target-group",
true
]' \
https://198.51.100.10/zebi/api/v2/createMappingForProject -k

Response
The above request returns the HTTP status code 200 (OK) and 0 indicating success.
Example 2
Erroneous Request (curl)
curl -X POST \
-H 'authorization: Basic Auth_TOKEN \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '[
"pool-a/Local/demoProject", "demoiSCSIInitiatorGroup",
"demoiSCSITargetGroup", true

108

Dataset Methods

]' \
https://198.51.100.10/zebi/api/v2/createMappingForProject -k

Error Response
In this example, the request returns the HTTP status code 400 (Bad Request) and the
following message:
{

"code":"EZEBI_INVALID_ARGUMENT",
"details":"",
"message":"Specified initiator and target groups are not the same
protocol.
Initiator protocol: Unknown. Target protocol: iSCSI",
"extendedData":{}

}

Example 3
Erroneous Request
curl -X POST \
-H 'authorization: Basic Auth_TOKEN \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '[
"pool-a/Replica/replicaProject", "All", "default-pool-a-iscsi-targetgroup", true
]' \
https://198.51.100.10/zebi/api/v2/createMappingForProject -k

Error Response
In this example, the request returns the HTTP status code 400 (Bad Request) and the
following message:
{

"code":"EZEBI_INVALID_ARGUMENT",
"details":"createMappingForProject.arg0 value 'pool-a/Replica/
replicaProject':
Local dataset path expected. For example, valid formats are 'pool-name/
Local/project-name'
or 'pool-name/Local/project-name/share-or-lun-name'.",
"message":"Local dataset path expected. For example, valid formats are
'pool-name/Local/project-name' or 'pool-name/Local/project-name/shareor-lun-name'.",
"extendedData":{"EX_CAUSE_MESSAGE":null}
}

Example 4

109

Tegile IntelliFlash API Reference Guide, Version 2.3

Erroneous Request
curl -X POST \
-H 'authorization: Basic Auth_TOKEN' \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '[
"pool-a/Replica/replicaProject", "All", "default-pool-a-iscsi-targetgroup", true
]' \
https://198.51.100.10/zebi/api/v2/createMappingForProject -k

Error Response
In this example, the request returns the HTTP status code 400 (Bad Request) and the
following message:
{

"code":"EZEBI_INVALID_ARGUMENT",
"details":"createMappingForProject.arg0 value 'pool-a/Replica/
replicaProject':
Local dataset path expected.
For example, valid formats are 'pool-name/Local/project-name'
or
'pool-name/Local/project-name/share-or-lun-name'.",
"message":"Local dataset path expected.
For example, valid formats are 'pool-name/Local/project-name'
or
'pool-name/Local/project-name/share-or-lun-name'.",
"extendedData":{"EX_CAUSE_MESSAGE":null}
}

Example 5
Erroneous Request
curl -X POST \
-H 'authorization: Basic Auth_TOKEN' \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '[
"pool-a/Local/demoProject", "demoFCInitiatorGroup", "demoiSCSITargetGroup",
true
]' \
https://198.51.100.10/zebi/api/v2/createMappingForProject -k

Error Response
In this example, the request returns the HTTP status code 400 (Bad Request) and the
following message:
{

110

Dataset Methods

"code":"EZEBI_INVALID_ARGUMENT",
"details":"",
"message":"Specified initiator and target groups are not the same
protocol.
Initiator protocol: FC. Target protocol: iSCSI",
"extendedData":{}

}

createShare
Creates a share with the specified share options and share permissions.
Important:
In an SMB3 enabled environment, if a project has both NFS and SMB sharing enabled,
creating share using createShare API is not supported. To enable share creation, turn
off any one of these protocols on the project.
First Available Version
API v1.2, IntelliFlash 2.1.2.1
Related APIs
listShares, createShare, deleteShare.
Parameters
poolName
A string : the name of the pool in which the share is created.
projectName
A string: the name of the project in which the share is created. The
characters ,, /,\\, !, ?, @, <, >, #, $, ',%, ^,*,(, ), ~,+, =, },|, :, {, [, ], ;, \', \", & are not
allowed in projectname. The empty and space characters and the null values
are not allowed in projectname.
shareName
A string: the share name.
shareOptions
A ShareOptions object that specifies the mount point, block size, quota, and
reservation. This parameter is optional. If some of the settings included in this
parameter are not specified, the defaults are as follows:
• If Block Size is null or is an empty string ("") then the block size of the new
share is set to 32KB and the override record (Block) size flag is set to false.

111

Tegile IntelliFlash API Reference Guide, Version 2.3

• If the Mount Point is not specified or is an empty string ("") then the default
mountpoint is used and the override mountpoint flag is set to false.
• If the Quota and Reservation are not specified or is set to "-1" then no quota
or reservation is applied to the new share.
sharePermissions
An array of the SharePermissions object that defines permissions for the new
share using ACLs.
Returns
Returns an integer: the number 0, if the request succeeds.
Examples
Example 1
Request (curl)
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H Content-Type:application/json \
-d '["poolName", "projectName", "newShareName", \
{
\
"blockSize": "64KB",
\
"quota": -1,
\
"reservation": -1
\
},
\
[{
\
"sharePermissionEnum": 2,
\
"sharePermissionMode": 0,
\
"groupList": [{
\
"groupName": "newGroupName",
\
"groupId": 104
\
}]
\
}]
\
]
\
https://198.51.100.10/zebi/api/v2/createShare -k

Response
HTTP Status Code: 200
0

Example 2
Erroneous Request
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H Content-Type:application/json \

112

Dataset Methods

-d '["BadPoolName", "projectName", "newShare2",
{
"blockSize": "64KB",
"quota": -1,
"reservation": -1
},
[{
"sharePermissionEnum": 2,
\
"sharePermissionMode": 0,
\
"groupList": [{
"groupName": "newGroupName",
"groupId": 104
}]
}]

]

https://198.51.100.10/zebi/api/v2/createShare -k

\
\
\
\
\
\
\
\
\
\
\
\
\

Error Response
HTTP Status Code: 400
{

}

"message":
"Error while saving: shareName.
Reason: Unable to open BadPoolName/Local/projectName:
dataset does not exist",
"extendedData": { },
"details":
"",
"code":
"EZEBI_GENERAL"

createShare
Creates a share with the default share properties (A block size of 32 KB; no quota; no
reservation).
Important:
In an SMB3 enabled environment, if a project has both NFS and SMB sharing enabled,
creating share using createShare API is not supported. To enable share creation, turn
off any one of these protocols on the project.
First Available Version
API v1.2, IntelliFlash 2.1.2.1
Related APIs
listShares, createShare, deleteShare.
Parameters
poolName

113

Tegile IntelliFlash API Reference Guide, Version 2.3

A string: the name of the pool in which the share is created.
projectName
A string: the name of the project in which the share is created. The
characters ,, /,\\, !, ?, @, <, >, #, $, ',%, ^,*,(, ), ~,+, =, },|, :, {, [, ], ;, \', \", & are not
allowed in projectname. The empty and space characters and the null values
are not allowed in projectname.
shareName
A string: the share name.
sharePermissions
An array of the SharePermissions object that defines permissions for the new
share using ACLs.
Returns
An integer: The number 0 if the request succeeds.
Examples
Example 1
Request (curl)
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H Content-Type:application/json \
-d '["poolName", "projectName", "shareName",
\
[
\
{"sharePermissionEnum": 2, "sharePermissionMode": 0,
"groupList": [
\
{"groupName": "newAPIGroup", "groupId": 104}
\
]
\
}
\
]
\
https://198.51.100.10/zebi/api/v2/createShare -k

Response
HTTP Status Code: 200
0

Example 2
Erroneous Request

114

\

Dataset Methods

curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H Content-Type:application/json \
-d '["BadPoolName", "projectName", "shareName",
\
[
\
{"sharePermissionEnum": 2, "sharePermissionMode": 0,
"groupList": [
\
{"groupName": "newAPIGroup", "groupId": 104}
\
]
\
}
\
]
\
https://198.51.100.10/zebi/api/v2/createShare -k

\

Error Response
HTTP Status Code: 400
{

}

"message":
"Error while saving: shareName.
Reason: Unable to open BadPoolName/Local/projectName:
dataset does not exist",
"extendedData": { },
"details":
"",
"code":
"EZEBI_GENERAL"

createVolume
Creates a volume with the specified settings.
First Available Version
API v1.0, IntelliFlash 2.1.0.0
Related APIs
initiatorGroupExists, addInitiatorToInitiatorGroup
Parameters
volume
A JSON object of type Volume_V1_0 that contains the parameters required to
create the volume.
inheritSANViewSettingsFromProject
Indicates whether to copy the view settings related to the intended protocol
(iSCSI or FC) from the project. The default views created on the project are
copied over if this parameter is true. If this parameter is false, then the volume
is created with no views attached to it. This is a boolean value.
Returns

115

Tegile IntelliFlash API Reference Guide, Version 2.3

Returns an integer, where:
• 0 indicates that the request succeeded.
• 1 indicates that the request was not attempted.
• 2 indicates that the request failed.
Examples
Example 1
Request (curl)
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H Content-Type:application/json \
-d '[
\
{
\
"blockSize":"32KB",
\
"datasetPath":"pool1/Local/TechPubs",
\
"local":true,
\
"name":"api_createVolume_name",
\
"poolName":"pool1",
\
"projectName":"TechPubs",
\
"protocol":"iSCSI",
\
"thinProvision":true,
\
"volSize":3276800000},
\
true]' \
https://198.51.100.10/zebi/api/v2/createVolume -k

Response
0

Example 2
Erroneous Request
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H Content-Type:application/json \
-d '[
\
{
\
"blockSize":"32KB",
"datasetPath":"pool1/Local/TechPubsBadPath",
"local":true,
"name":"api_createVolume_name",
"poolName":"pool1",
"projectName":"TechPubs",
"protocol":"iSCSI",
"thinProvision":true,
"volSize":3276800000},
true]'
https://198.51.100.10/zebi/api/v2/createVolume -k

116

\
\

\
\
\
\
\
\
\
\

Dataset Methods

Error Response
HTTP Status Code: 400
{
"message": "A volume/share with the same name pool1/Local/TechPubs/
api_createVolume_name already exists.",
"extendedData": {},
"details": "",
"code": "EZEBI_GENERAL"
}

deleteDataset
Deletes the specified dataset.
Caution: If the recursive parameter is set to true all dependent objects are
deleted. For example, if the datasetPath points to a project all shares and LUNs in
the project, and their snapshots and clones are deleted.
Warning: The delete operation is not reversible.
First Available Version
API v1.0, IntelliFlash 2.1.0.0
Related APIs
listVolumes
Parameters
datasetPath
A string: the path to the dataset. The dataset path has the format: PoolName/
Local/ProjectName/VolumeName.
recursive
A boolean value: indicates whether the dependents (for example clones of the
dataset) of this dataset should be removed (if true) before trying to delete the
dataset or not (if false). Deletion might fail if the dataset has dependents.
errorIfNotExist
A boolean value: indicates whether to raise (if true) an exception if the path
specified by datasetPath does not exist.
Returns
Returns no data.

117

Tegile IntelliFlash API Reference Guide, Version 2.3

Examples
Example 1
Request (curl)
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H Content-Type:application/json \
-d '["pool1/Local/TechPubs/TechPubsTest",true, true]' \
https://198.51.100.10/zebi/api/v2/deleteDataset -k

Response
On success, the above request returns the HTTP status code 200 (OK) and no data.
Example 2
Erroneous Request
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H Content-Type:application/ \
-d '["pool1/Local/TechPubs/api_createVolume_name", \
false, false]' \
https://198.51.100.10/zebi/api/v2/deleteDataset -k

Error Response
The above request returns the HTTP status code 400 (bad request) and the following
message:
{

}

"message": "Unable to delete pool1/Local/TechPubs/api_createVolume_name",
"extendedData": {
"EX_CAUSE_CODE_NAME": "EZFS_BUSY",
"EX_CAUSE_MESSAGE": "dataset is busy",
"EX_CAUSE_CODE_NUMBER": "2007"
},
"details": "dataset is busy",
"code": "EZEBI_GENERAL"

deleteDataset
Promotes dependents as specified, and deletes the dataset whose path is supplied as an
argument.
Dependents are deleted as well if promote is false.

118

Dataset Methods

First Available Version
API v2.1, IntelliFlash 3.7.0.x
Related APIs
deleteShare, deleteVolume
Parameters
datasetPath
This string uniquely identifies the dataset on the IntelliFlash array.
recursive
Defines whether to remove the dependants (clones for example) and LUN
of the dataset before trying to delete it. Deletion might fail if there are
dependants or a LUN exists on a dataset.
errorIfNotExist
Defines whether to raise an exception if the datasetPath to delete doesn't
exist.
promote
Defines whether to promote dependents.
Returns
COMMAND_STATUS.COMMAND_SUCCEED(0) on success.
Exceptions Thrown
EZEBI_RESOURCE_NOT_FOUND
This error is thrown if the specified dataset doesn’t exist.
EZEBI_RESOURCE_INUSE
This error is thrown for the following conditions:
• If replication is currently running
• If replication configuration exists and the project to delete is local
• If deleting replication configuration fails
EZEBI_RESOURCE_SUSPENDED
This error is thrown if the pool is suspended.
EZEBI_INVALID_ARGUMENT
This error is thrown for the following conditions:

119

Tegile IntelliFlash API Reference Guide, Version 2.3

• If the dataset is empty
• If the dataset length is greater than the maximum length
• If the dataset contains invalid characters
EZEBI_GENERAL
This error is thrown if deletion failed.
Examples
Example 1
Request (curl)
curl
-H
-H
-H
-d

-X POST \
'authorization: Basic Auth_TOKEN' \
'cache-control: no-cache' \
'content-type: application/json' \
'[
“pool-a/Local/my-project/my-dataset”, false, true, true
]'
https://198.51.100.10/zebi/api/v2/deleteDataset -k

Response
The above request returns the HTTP status code 200 (OK) and 0 as integer indicating a
successful operation.
Example 2
Erroneous Request (curl)
curl
-H
-H
-H
-d

-X POST \
'authorization: Basic Auth_TOKEN' \
'cache-control: no-cache' \
'content-type: application/json' \
'[
“pool-a/Local/my-project/non-exist-dataset”, false, true, true
]' https://198.51.100.10/zebi/api/v2/deleteDataset -k

Error Response
The above request returns the HTTP status code 404 (not found) and the following message:
{

}

120

"code": "EZEBI_RESOURCE_NOT_FOUND",
"details": "",
"message": "No such dataset exists.",
"extendedData": {}

Dataset Methods

deleteMappingFromProject
Deletes an existing project mapping.
First Available Version
API v2.1, IntelliFlash 3.7.0.x
Related APIs
createMappingForProject, createMappingForVolume
Parameters
datasetPath
Path of the project. The format is .
initiatorGroupName
Name of the initiator group in the existing mapping.
targetGroupName
Name of the target group in the existing mapping.
Returns
COMMAND_STATUS.COMMAND_SUCCEED (0) on success.
Exceptions Thrown
EZEBI_RESOURCE_NOT_FOUND
This exception is thrown if the specified project, initiator group, or target group
cannot be found.
EZEBI_INVALID_ARGUMENT
This exception is thrown for any of the following reasons:
• The target group and initiator group have different protocols.
• The target group and initiator group are either iSCSI or FC protocols
(unknown).
• The view or mapping does not exist.
Examples
Example 1

121

Tegile IntelliFlash API Reference Guide, Version 2.3

Request (curl)
curl -X POST \
-H 'authorization: Basic Auth_TOKEN \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '[
"pool-a/Local/demoProject", "demoiSCSIInitiatorGroup",
"demoiSCSITargetGroup"
]' \
https://198.51.100.10/zebi/api/v2/deleteMappingFromProject -k

Response
The above request returns the HTTP status code 200 (OK) and 0 indicating success.
Example 2
Erroneous Request (curl)
curl
-H
-H
-H
-d

-X POST \
'authorization: Basic Auth_TOKEN' \
'cache-control: no-cache' \
'content-type: application/json' \
'["pool-a/Local/demoProject",
"demoiSCSIInitiatorGroup",
"demoiSCSITargetGroup"
]' \
https://198.51.100.10/zebi/api/v2/deleteMappingFromProject -k

Error Response
In this example, the request returns the HTTP status code 400 (bad request) and the
following message:
{

"code":"EZEBI_INVALID_ARGUMENT",
"details":"",
"message":"Did not find the view to delete.
Project=pool-a/Local/demoProject.
Initiator group=demoiSCSIInitiatorGroup .Target
group=demoiSCSITargetGroup",
"extendedData":{}

}

Example 3
Erroneous Request
curl -X POST \
-H 'authorization: Basic Auth_TOKEN' \
-H 'cache-control: no-cache' \

122

Dataset Methods

-H 'content-type: application/json' \
-d '["pool-a/Local/demoProject",
"demoiSCSIInitiatorGroup",
"UNKNOWNiSCSITargetGroup"
]' \
https://198.51.100.10/zebi/api/v2/deleteMappingFromProject -k

Error Response
The above request returns the HTTP status code 404 (not found) and the following message:
{

"code":"EZEBI_RESOURCE_NOT_FOUND",
"details":"",
"message":"Specified target group 'UNKNOWNiSCSITargetGroup' does not
exist.",
"extendedData":{}

}

deletePool
Deletes a pool.
First Available Version
API v2.1, IntelliFlash 3.7.0.x
Related APIs
importPool, exportPool, resetPoolError, checkPoolIntegrity
Parameters
poolName
Name of the pool to delete.
force
A boolean, which specifies whether to force the deletion of the pool with its
dependents.
Returns
Returns an integer status where:
• 0 indicates that the request succeeded.
• 1 indicates that the request failed.

123

Tegile IntelliFlash API Reference Guide, Version 2.3

Exceptions Thrown
EZEBI_RESOURCE_NOT_FOUND
If the pool does not exist.
EZEBI_INVALID_ARGUMENT
If an invalid character is detected in the pool name.
Examples
Example 1
Request (curl)
curl -X POST \
-H 'authorization: Basic AUTH_TOKEN' \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '["pool6a", false]' \
https://198.51.100.10/zebi/api/v2/deletePool -k

Response
The above request returns the HTTP status code 200 (OK) and 0 as integer indicating a
successful operation.
Example 2
Erroneous Request (curl)
curl -X POST \
-H 'authorization: Basic AUTH_TOKEN' \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '["nonExistentPool6a", false]' \
https://198.51.100.10/zebi/api/v2/deletePool -k

Error Response
The above request returns the HTTP status code 404 (not found) and the following message:
{

}

124

"code": "EZEBI_RESOURCE_NOT_FOUND",
"details": "Pool not found.",
"message": "The pool [nonExistentPool63a] was not found.",
"extendedData": {
"EX_CAUSE_MESSAGE": "Pool not found.",
"EX_CAUSE_CODE_NAME": "EZEBI_RESOURCE_NOT_FOUND"
}

Dataset Methods

deleteProject
Deletes a project
First Available Version
API v2.1, IntelliFlash 3.7.0.x
Related APIs
createProject, listProjects
Parameters
projectDatasetpath
The path for the project dataset.
Returns
Returns an integer status where:
• 0 indicates that the request succeeded.
• 1 indicates that the request failed.
Exceptions Thrown
EZEBI_RESOURCE_NOT_FOUND
This exception is thrown if the specified project doesn’t exist.
EZEBI_INVALID_ARGUMENT
This exception is thrown if an invalid character is detected in the project
dataset path.
EZEBI_GENERAL
This exception is thrown if the operation failed.
Examples
Example 1
Request (curl)
curl -X POST \
-H 'authorization: Basic AUTH_TOKEN' \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '["pool63a/Local/testProject"]' \
https://198.51.100.10/zebi/api/v2/deleteProject -k

125

Tegile IntelliFlash API Reference Guide, Version 2.3

Response
The above request returns the HTTP status code 200 (OK) and 0 as integer indicating a
successful operation.
Erroneous Request (curl)
curl -X POST \
-H 'authorization: Basic AUTH_TOKEN' \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '["pool63a/Local/nonExistentProject"]' \
https://198.51.100.10/zebi/api/v2/deleteProject -k

Example 2
Error Response
The above request returns the HTTP status code 404 (not found) and the following message:
{

"code": "EZEBI_RESOURCE_NOT_FOUND",
"details": "",
"message": "Cannot find the specified project 'pool63a/Local/
nonExistentProject'.",
"extendedData": {}
}

deleteShare
Promotes dependents as specified, and then deletes the share whose dataset path is
supplied as an argument.
Dependents are deleted as well if promote is false.
First Available Version
API v2.1, IntelliFlash 3.7.0.x
Related APIs
deleteDataset
Parameters
datasetPath
This string identifies the share on the IntelliFlash array.
recursive
Whether to remove the dependents of the dataset before deleting it.

126

Dataset Methods

errorIfNotExist
Whether to raise an exception if the datasetPath to delete doesn't exist.
promote
Whether to remove the dependents of the dataset before deleting it.
Returns
COMMAND_STATUS.COMMAND_SUCCEED (0) on success.
Exceptions Thrown
EZEBI_RESOURCE_NOT_FOUND
This exception is thrown if a dataset is not found.
EZEBI_RESOURCE_INUSE
This exception is thrown if the replication is currently running.
EZEBI_RESOURCE_SUSPENDED
This exception is thrown if the pool is suspended.
EZEBI_GENERAL
This exception is thrown if deletion failed.
EZEBI_INVALID_ARGUMENT
This exception is thrown for the following conditions:
• If the dataset is empty
• If the length is greater than the maximum length
• If it contains invalid characters
Examples
Example 1
Request (curl):
curl
-H
-H
-H
-d

-X POST \
'authorization: Basic Auth_TOKEN' \
'cache-control: no-cache' \
'content-type: application/json' \
'[
“pool-a/Local/my-project/my-share”, false, true, true
]' https://198.51.100.10/zebi/api/v2/deleteShare -k

Response
The above request returns the HTTP status code 200 (OK) and 0 as integer indicating a
successful operation.

127

Tegile IntelliFlash API Reference Guide, Version 2.3

Example 2
Erroneous Request (curl)
curl
-H
-H
-H
-d

-X POST \
'authorization: Basic Auth_TOKEN' \
'cache-control: no-cache' \
'content-type: application/json' \
'[
“pool-a/Local/my-project/non-exist-share”, false, true, true
]' https://198.51.100.10/zebi/api/v2/deleteShare -k

Error Response
The above request returns the HTTP status code 404 (not found) and the
following message:
{

}

"code": "EZEBI_RESOURCE_NOT_FOUND",
"details": "",
"message": "No such share exists.",
"extendedData": {}

deleteShare
Deletes the specified share and optionally any dependents of the share.
Caution: If the recursive parameter is set to true, all dependent objects
(snapshots and clones of the given share) are also deleted.
Warning: The delete operation is not reversable.
First Available Version
API v1.2, IntelliFlash 2.1.2.1
Related APIs
listShares, createShare, createShare.
Parameters
datasetPath
A string: the path which uniquely identifies the share. The dataset path has
the format: PoolName/Local/ProjectName/ShareName. You can obtain the
datasetPath from the listShares API. For more information, see listShares
and Share_V1_0.
recursive

128

Dataset Methods

A boolean: a true specifies that dependents of the share should be deleted
before deleting the share or not (false)
errorIfNotExist
A boolean value: that specifies if an exception is raised (if true) if the given
dataset path does not exist or not (if false).
Returns
Returns no data.
Examples
Example 1
Request (curl)
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H Content-Type:application/json \
-d '["Pool1/Local/Project1/Share1", false, false]' \
https://198.51.100.10/zebi/api/v2/deleteShare -k

Response
On success, the above request returns the HTTP status code 200 (OK) and no data.
Example 2
Erroneous Request
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H Content-Type:application/json \
-d '["test/Local/KKKK/NoSuchShare", false, false]' \
https://198.51.100.10/zebi/api/v2/deleteShare -k

Error Response
The above request returns the HTTP status code 500 (internal server error) and the following
message:
{
"message":"Unable to open test/Local/KKKK : dataset does not exist",
"extendedData":
{"EX_CAUSE_CODE_NAME":"EZFS_NOENT",
"EX_CAUSE_MESSAGE":"Unable to open test/Local/KKKK : dataset does not
exist",
"EX_CAUSE_CODE_NUMBER":"2009"},
"details":"Unable to open test/Local/KKKK : dataset does not exist",
"code":"EZEBI_RESOURCE_NOT_FOUND"
}

129

Tegile IntelliFlash API Reference Guide, Version 2.3

deleteVolume
Deletes the specified volume, and optionally, any dependents of the volume.
Caution: If the recursive parameter is set to true, all dependent objects
(snapshots and clones of the given volume) are also deleted.
Warning: The delete operation is not reversible.
First Available Version
API v1.0, IntelliFlash 2.1.0.0
Related APIs
listVolumes, createVolume.
Parameters
datasetPath
A string: the path which uniquely identifies the volume on the Tegile array.
The dataset path has the format: PoolName/Local/ProjectName/
VolumeName. You can get the datasetPath from the listVolumes API. For
more information, see listVolumes and Volume_V1_0.
recursive
A boolean: indicates whether the dependents (for example, clones of the
dataset) of the dataset should be removed (if true) before trying to delete the
dataset. This API fails if you try to delete a volume that has dependents and
the recursive parameter is set to false.
errorIfNotExist
A boolean value: indicates whether to raise (if true) an exception if the path
specified by the dataset parameter does not exist.
Returns
Returns no data.
Examples
Example 1
Request (curl)
curl -X POST -H "Authorization:Basic Auth_TOKEN" \

130

Dataset Methods

-H Content-Type:application/json \
-d '["pool1/Local/TechPubs/api_createVolume_name_2", \
true,true]' \
https://198.51.100.10/zebi/api/v2/deleteVolume -k

Response
The above request returns the HTTP status code 200 (OK) and no data.
Example 2
Erroneous Request
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H Content-Type:application/json \
-d '["pool1/Local/TechPubs/api_createVolume_", \
true,true]' \
https://198.51.100.10/zebi/api/v2/deleteVolume -k

Error Response
The above request returns the HTTP status code 500 (internal server error) and the following
message:
{

"message": "Unable to delete pool1/Local/TechPubs/api_createVolume_
because it does not exist",
"extendedData": {},
"details": "",
"code": "EZEBI_RESOURCE_NOT_FOUND"

}

deleteVolume
Promotes the specified dependent and then deletes the volume whose dataset path is
supplied as an argument. Dependents are deleted as well if promote is false.
First Available Version
API v2.1, IntelliFlash 3.7.0.x
Related APIs
deleteDataset
Parameters
datasetpath
The string that uniquely identifies the volume on the IntelliFlash array.

131

Tegile IntelliFlash API Reference Guide, Version 2.3

recursive
Whether to remove the dependants (for example, clones) and lun of the
dataset before trying to delete it. Deletion might fail if there are dependants or
lun existing on the dataset.
errorIfNotExist
Whether to raise an exception if the datasetPath to delete doesn't exist.
promote
Whether to promote clone before deletion
Returns
COMMAND_STATUS.COMMAND_SUCCEED(0) on success
Exceptions Thrown
EZEBI_RESOURCE_NOT_FOUND
This exception is thrown if the dataset is not found.
EZEBI_RESOURCE_INUSE
This exception is thrown if replication is currently running.
EZEBI_RESOURCE_SUSPENDED
This exception is thrown if pool is suspended.
EZEBI_GENERAL
This exception is thrown if deletion failed.
EZEBI_INVALID_ARGUMENT
This exception is thrown for the following conditions:
• If the dataset is empty
• If the length is greater than the maximum length
• If it contains invalid characters
Examples
Example 1
Request (curl):
curl
-H
-H
-H
-d

-X POST \
'authorization: Basic Auth_TOKEN' \
'cache-control: no-cache' \
'content-type: application/json' \
'[
“pool-a/Local/my-project/my-volume”, false, true, true
]' https://198.51.100.10/zebi/api/v2/deleteVolume -k

132

Dataset Methods

Response
The above request returns the HTTP status code 200 (OK) and 0 as integer indicating a
successful operation.
Example 2
Erroneous Request (curl)
curl
-H
-H
-H
-d

-X POST \
'authorization: Basic Auth_TOKEN' \
'cache-control: no-cache' \
'content-type: application/json' \
'[
“pool-a/Local/my-project/non-exist-volume”, false, true, true
]' https://198.51.100.10/zebi/api/v2/deleteVolume -k

Error Response
The above request returns the HTTP status code 404 and the following message:
{

}

"code": "EZEBI_RESOURCE_NOT_FOUND",
"details": "",
"message": "No such volume exists.",
"extendedData": {}

exportPool
Exports a pool.
First Available Version
API v2.1, IntelliFlash 3.7.0.x
Related APIs
deletePool, importPool, resetPoolError, checkPoolIntegrity
Parameters
poolName
Name of the pool to export.
Returns
Returns an integer status where:
• 0 indicates that the request succeeded.

133

Tegile IntelliFlash API Reference Guide, Version 2.3

• 1 indicates that the request failed.
Exceptions Thrown
EZEBI_RESOURCE_NOT_FOUND
If the pool does not exist.
EZEBI_INVALID_ARGUMENT
If an invalid character is detected in the poolName.
EZEBI_RESOURCE_EXIST
If an active pool with the same name exists already.
EZEBI_OPERATION_NOT_ALLOWED
If pool is in a state where export cannot be done.
EZEBI_GENERAL
Examples
Example 1
Request (curl):
curl -X POST \
-H 'authorization: Basic AUTH_TOKEN' \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '["pool6a"]' \
https://198.51.100.10/zebi/api/v2/exportPool -k

Response
The above request returns the HTTP status code 200 (OK) and 0 as integer indicating a
successful operation.
Example 2
Erroneous Request
curl -X POST \
-H 'authorization: Basic AUTH_TOKEN' \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '["nonExistentPool6a", false]' \
https://198.51.100.10/zebi/api/v2/exportPool -k

Error Response

134

Dataset Methods

The above request returns the HTTP status code 404 (not found) and thefollowing message:
{

}

"code": "EZEBI_RESOURCE_NOT_FOUND",
"details": "Pool requested for export was not found",
"message": "Failed to export the pool [nonExistentPool6a].",
"extendedData": {
"EX_CAUSE_MESSAGE": "Pool requested for export was not found",
"EX_CAUSE_CODE_NAME": "EZEBI_RESOURCE_NOT_FOUND"
}

getCopyStatus
Returns the status of a copy operation task.
First Available Version
API v2.1, IntelliFlash 3.7.0.x
Related APIs
copyDataset, listRunningCopyOperations, listAllCopyOperations, abortCopy
Parameters
taskGUID
The GUID of the copy operation task.
Returns
Returns the CopyDestination_V2_1 object.
Exceptions Thrown
EZEBI_GENERAL
This exception is thrown if the task GUID is invalid.
Examples
Example 1
Request (curl)
curl
-H
-H
-H
-d

-X POST \
'authorization: Basic Auth_TOKEN' \
'cache-control: no-cache' \
'content-type: application/json' \
'["europa:84944c8a-8bc1-4705-809e-144363797a57"]' \

135

Tegile IntelliFlash API Reference Guide, Version 2.3

https://198.51.100.10/zebi/api/v2/getCopyStatus -k

Response
The above request returns the HTTP status code 200 (OK) and the CopyDestination_V2_1
object.
{

}

"numberOfCopies": 3,
"completedCopies": 3,
"status": "COMPLETED",
"allDatasets": [
"napa/Local/remotecopy/prod1",
"napa/Local/remotecopy/prod2",
"napa/Local/remotecopy/prod3"
],
"completedDatasets": [
"napa/Local/remotecopy/prod1",
"napa/Local/remotecopy/prod2",
"napa/Local/remotecopy/prod3"
],
"pendingDatasets": [],
"percentComplete": 100,
"errorCode": null,
"startTime": "2017-07-10T11:00:16-07:00",
"endTime": "2017-07-10T11:01:03-07:00"

Example 2
Erroneous Request (curl)
curl -X POST \
-H 'authorization: Basic Auth_TOKEN' \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '["euro:84944c8a-8bc1-4705-809e-144363797a57"]' \
https://198.51.100.10/zebi/api/v2/getCopyStatus -k

Error Response
The above request returns HTTP status code 400 with the following message:
{

}

136

"code": "EZEBI_GENERAL",
"details": "",
"message": "Pool euro is not mounted.",
"extendedData": {}

Dataset Methods

getDatasetSpaceInfo
Returns a DatasetSpaceInfo_V2_1 object if the specified dataset exists.
First Available Version
API v2.1, IntelliFlash 3.7.0.x
Related APIs
getPoolSpaceInfo
Parameters
Dataset-path
A string specifying path to the dataset (share or volume).
Returns
A DatasetSpaceInfo_V2_1 object.
Exceptions Thrown
EZEBI_INVALID_ARGUMENT
This error is thrown if the parameters are invalid (if dataset name contains
special characters).
EZEBI_GENERAL
This error is thrown if the operation failed with internal reasons.
EZEBI_RESOURCE_NOT_FOUND
This error is thrown if the specified dataset doesn’t exist.
Examples
Example 1
Request (curl)
curl
-H
-H
-H
-d

-X POST \
'authorization: Basic Auth_TOKEN' \
'cache-control: no-cache' \
'content-type: application/json' \
'[
{
"pool-a/Local/my-project/my-dataset"
}
]'
https://198.51.100.10/zebi/api/v2/getDatasetSpaceInfo -k

137

Tegile IntelliFlash API Reference Guide, Version 2.3

Response
The above request returns the HTTP status code 200 (OK) and a DatasetSpaceInfo_V2_1
object.
{

}

"originalUsedByDataAndSnapshot": 30208,
"usedByDataAndSnapshot": 30208,
"compressionSavingsPercentage": 0,
"available": 1202104,
"usedByData": 13824,
"usedBySnapshot": 16384,
"usedByReservation": 0,
"quota": 1232312,
"volSize": 0

Example 2
Erroneous Request (curl)
curl
-H
-H
-H
-d

-X POST \
'authorization: Basic Auth_TOKEN' \
'cache-control: no-cache' \
'content-type: application/json' \
'[
{
"pool-a/Local/my-project/non-exist"
}
]'
https://198.51.100.10/zebi/api/v2/getDatasetSpaceInfo -k

Error Response
The above request returns the HTTP status code 404 (not found) and the following message:
{

}

"code": "EZEBI_RESOURCE_NOT_FOUND",
"details": "",
"message": "Cannot find dataset: pool-a/Local/my-project/non-exist",
"extendedData": {}

getFloatingIPList
Lists floating IP addresses associated with a storage pool.
First Available Version
API v2.2, IntelliFlash 3.7.1.0
Parameters
poolName

138

Dataset Methods

The name of the target pool.
For empty string "", the API lists all the floating IP addresses.
Returns
Returns a FloatingIP_V2_2 object.
Exceptions Thrown
EZEBI_RESOURCE_NOT_FOUND
This exception is thrown if the specified pool does not exist.
EZEBI_GENERAL
This exception is thrown if an internal error is detected.
EZEBI_INVALID_ARGUMENT
This exception is thrown if the pool name is invalid.
Examples
Example 1
Request (curl)
curl -X POST \
-H 'authorization: Basic Auth_TOKEN' \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '["pool-a"]' \
https://198.51.100.10/zebi/api/v2/getFloatingIPList -k

Response
[

{

"resourceGroupName": "defaultResourceGroup1",
"description": "data_10g_0@ha-controller-b,data_10g_0@ha-controller-a",
"failoverMode": "Immediately",
"ipAddress": "198.51.10.20",
"netmask": "255.255.0.0",
"poolName": "pool-a"

}

]

Example 2
Request (curl)
curl -X POST \

139

Tegile IntelliFlash API Reference Guide, Version 2.3

-H 'authorization: Basic Auth_TOKEN' \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '[""]' \
https://198.51.100.10/zebi/api/v2/getFloatingIPList -k

Response
As the request was sent with an empty string, the API returns all the floating IP addresses.
[

{

"resourceGroupName": "defaultResourceGroup1",
"description": "data_10g_0@ha-controller-b,data_10g_0@ha-controller-a",
"failoverMode": "Immediately",
"ipAddress": "198.30.10.20",
"netmask": "255.255.0.0",
"poolName": "pool-a"
},

{
"resourceGroupName": "defaultResourceGroup1",
"description": "data_10g_0@ha-controller-b,data_10g_0@ha-controller-a",
"failoverMode": "Immediately",
"ipAddress": "198.168.100.50",
"netmask": "255.255.0.0",
"poolName": "pool-b"
},
]

Example 3
Erroneous Request (curl)
curl -X POST \
-H 'authorization: Basic Auth_TOKEN' \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '[null]' \
https://198.51.100.10/zebi/api/v2/getFloatingIPList -k

Error Response
[

{

"code": "EZEBI_INVALID_ARGUMENT",
"details": "getFloatingIPList.arg0.value 'null':
Pool name is not valid, null, or empty name detected.",
"message": "Pool name is not valid, null, or empty name detected.",
"extendedData":
{
"EX_CAUSE_MESSAGE": null
}

}

]

140

Dataset Methods

getPoolSpaceInfo
Returns a PoolSpaceInfo_V2_1 object if it exists.
First Available Version
API v2.1, IntelliFlash 3.7.0.x
Related APIs
getDatasetSpaceInfo
Parameters
Pool-name
A string specifying pool name.
Returns
A PoolSpaceInfo_V2_1 object.
Exceptions Thrown
EZEBI_INVALID_ARGUMENT
This error is thrown if the parameters are invalid (pool name contains special
characters).
EZEBI_GENERAL
This error is thrown if the operation failed with internal reasons.
EZEBI_RESOURCE_NOT_FOUND
This error is thrown if the specified pool doesn’t exist.
Examples
Example 1
Request (curl)
curl -X POST \
-H 'authorization: Basic Auth_TOKEN' \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '[
{
"pool-a"
}
]' https://198.51.100.10/zebi/api/v2/getPoolSpaceInfo -k

141

Tegile IntelliFlash API Reference Guide, Version 2.3

Response
The above request returns the HTTP status code 200 (OK) and a PoolSpaceInfo_V2_1 object.
{

}

"totalPoolSize": 1024173568,
"originalUsedByDataAndSnapshot": 899392896,
"usedByDataAndSnapshot": 248960000,
"compressionSavingsPercentage": 72.32,
"dedupeSavingsPercentage": 0,
"totalSavingsPercentage": 72.32,
"usedByAll": 252706816,
"available": 771466752,
"usedByData": 248025600,
"usedBySnapshot": 934400,
"usedByReservation": 0,
"totalMetaSize": 0,
"usedMeta": 0

Example 2
Erroneous Request (curl)
curl -X POST \
-H 'authorization: Basic Auth_TOKEN' \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '[
{
"pool-non-exist"
}
]' https://198.51.100.10/zebi/api/v2/getPoolSpaceInfo -k

Error Response
The above request returns the HTTP status code 404 (Not found) and the following message:
{

}

"code": "EZEBI_RESOURCE_NOT_FOUND",
"details": "",
"message": "Cannot find the pool: pool-non-exist",
"extendedData": {}

getProject
Returns a Project_V2_1 object if the project exists.
Related APIs
createProject, modifyProjectProperties, getProjectProperty

142

Dataset Methods

Parameters
pool-name
A string specifying the name of the pool
Project-name
A string specifying the name of the project.
Is-local
A Boolean value indicating whether the project is local or replica.
project
The name of the project.
Returns
A Project_V2_1 object.
Exceptions thrown
EZEBI_INVALID_ARGUMENT
This exception is thrown if the parameters are invalid (project or pool name
contains special characters).
EZEBI_GENERAL
This exception is thrown if operation failed with internal reasons.
EZEBI_RESOURCE_NOT_FOUND
This exception is thrown if specified project doesn’t exist.
Examples
Example 1
Request (curl)
curl -X POST \
-H 'authorization: Basic YOUR_TOKEN' \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '[
"pool-a", "my-project", true
]' https://YOUR_IP/zebi/api/v2/getProject -k

Response
The above request returns the HTTP status code 200 (OK) and a Project_V2_1 object.
{

"poolName": "pool-a",

143

Tegile IntelliFlash API Reference Guide, Version 2.3

}

"projectName": "my-project ",
"localDataset": true,
"purpose": "generic",
"mountPoint": "/export/my-project ",
"compression": "lz4",
"compressedLog": "off",
"intendedProtocolList": [
"NFS",
"SMB",
"FC",
"iSCSI"
],
"quotaInByte": 0,
"quotaEnabled": false,
"dedup": "on",
"copies": "1",
"primaryCache": "all",
"secondaryCache": "all",
"readonly": "off",
"logbias": "latency",
"aclInherit": "off",
"aclMode": "passthrough",
"krbStatus": false,
"defaultVolumeSizeInByte": 1073741824,
"defaultVolumeBlockSize": "4KB",
"defaultThinProvisioning": true,
"sync": "standard",
"zfsDataSetName": "pool-a/Local/my-project ",
"recordSize": "16KB",
"quota": 0,
"quotaMetric": "GB",
"defaultVolumeSize": 1,
"defaultVolumeSizeUnit": "GB"

Example 2
Erroneous Request (curl)
curl
-H
-H
-H
-d
]'

-X POST \
'authorization: Basic YOUR_TOKEN' \
'cache-control: no-cache' \
'content-type: application/json' \
'[
"pool-a", "non-exist", true
https://YOUR_IP/zebi/api/v2/getProject -k

Error Response
The above request returns the HTTP status code 404 (Not found) and the following message:
{

"code": "EZEBI_RESOURCE_NOT_FOUND",
"details": "",
"message": "Cannot find the specified project 'pool-a/Local/nonexist'.",
"extendedData": {}

144

Dataset Methods

}

getProjectProperty
Returns a DatasetProperty_V2_1 object if the project exists.
First Available Version
API v2.1, IntelliFlash 3.7.0.x
Related APIs
createProject, modifyProjectProperties, getProject
Parameters
Dataset-path
A string specifying the project path.
Property-name
A string specifying the property to query.
Returns
A DatasetProperty_V2_1 object that contains the query key and value.
Exceptions Thrown
EZEBI_INVALID_ARGUMENT
This exception is thrown if the parameters are invalid (project or property
name contains invalid characters).
EZEBI_RESOURCE_NOT_FOUND
This exception is thrown if the specified project doesn’t exist.
Examples
Example 1
Request (curl)
curl
-H
-H
-H
-d

-X POST \
'authorization: Basic Auth_TOKEN' \
'cache-control: no-cache' \
'content-type: application/json' \
'[
"pool-a/Local/my-project", "dedup"
]'

145

Tegile IntelliFlash API Reference Guide, Version 2.3

https://198.51.100.10/zebi/api/v2/getProjectProperty -k

Response
The above request returns the HTTP status code 200 (OK) and a DatasetProperty_V2_1 object.
{
}

"propertyKey": "dedup",
"propertyValue": "on"

Example 2
Erroneous Request (curl)
curl
-H
-H
-H
-d

-X POST \
'authorization: Basic Auth_TOKEN' \
'cache-control: no-cache' \
'content-type: application/json' \
'[
"pool-a/Local/my-project", "non-exist-property"
]'
https://198.51.100.10/zebi/api/v2/getProjectProperty -k

Error Response
The above request returns the HTTP status code 400 (bad request) and the following
message:
{

}

"code": "EZEBI_INVALID_ARGUMENT",
"details": "",
"message": "Can't get property:non-exist-property.
Please supply a valid project property.
Check API documents for more details",
"extendedData": {}

getShare
Returns a Share_V2_1 object if it exists.
First Available Version
API v2.1, IntelliFlash 3.7.0.x
Related APIs
createShare, modifyShareProperties, getShareProperty

146

Dataset Methods

Parameters
Share-path
A string specifying path to share.
Returns
A Share_V2_1 object.
Exceptions Thrown
EZEBI_INVALID_ARGUMENT
This exception is thrown if the parameters are invalid (project or share name
contains special characters).
EZEBI_GENERAL
This exception is thrown if the operation failed with internal reasons.
EZEBI_RESOURCE_NOT_FOUND
This exception is thrown if the specified share doesn’t exist.
Examples
Example 1
Request (curl)
curl -X POST \
-H 'authorization: Basic Auth_TOKEN' \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '[
{
"pool-a/Local/my-project/my-share"
}
]' https://198.51.100.10/zebi/api/v2/getShare -k

Response
The above request returns the HTTP status code 200 (OK) and a Share_V2_1 object.
{

"name": "my-share",
"poolName": "pool-a",
"projectName": "my-project ",
"purpose": "custom",
"guid": "07ee6f26-f701-4e98-8db6-778736e72df8",
"compression": "lz4",
"overrideCompression": false,
"localDataset": true,
"reservationInByte": 43,
"reservation": 0.00004100799560546875,
"reservationMetric": "MB",

147

Tegile IntelliFlash API Reference Guide, Version 2.3

"reservationEnabled": true,
"dedup": "on",
"overrideDedup": false,
"copies": "1",
"overrideCopies": false,
"primaryCache": "metadata",
"overridePrimaryCache": true,
"secondaryCache": "all",
"overrideSecondaryCache": false,
"readonly": "off",
"overrideReadonly": false,
"logbias": "throughput",
"overrideLogbias": true,
"sync": "standard",
"overrideSync": false,
"overrideProjectSnapshotSettings": false,
"zfsDataSetName": "pool-a/Local/my-project /my-share ",
"compressedLog": "off",
"overrideCompressedLog": true,
"overrideMountPoint": true,
"quotaInByte": 1232312,
"quota": 1.1752243041992188,
"quotaMetric": "MB",
"quotaEnabled": true,
"mountPoint": "/export/my-project/my-share",
"availableSize": 1202104,
"totalSize": 1232312,
"overrideSharenfs": true,
"overrideSharesmb": true,
"krbStatus": false,
"cifsDisplayName": "my-share",
"guestStatus": false,
"aclInherit": "off",
"overrideAclInherit": false,
"recordSize": "16KB",
"overrideRecordSize": false,
"atime": "on",
"nbmand": "off",
"aclList": [
{
"id": 0,
"controllerId": null,
"aclType": "Group",
"aclUser": null,
"aclGroup": "dasd",
"aclValDisplay": "rwxpdDaARWcCos",
"aclVal": 2032127,
"aclMode": "Allow",
"aclInheritanceFlag": "Default",
"includeSubShares": false,
"userId": 0,
"groupId": 104
},
{
"id": 0,
"controllerId": null,
"aclType": "User",
"aclUser": "user1",
"aclGroup": null,
"aclValDisplay": "rwxpdDaARWcCos",
"aclVal": 2032127,

148

Dataset Methods

"aclMode": "Allow",
"aclInheritanceFlag": "Default",
"includeSubShares": false,
"userId": 104,
"groupId": 0

}

}
],
"containerName": "Local"

Example 2
Erroneous Request (curl)
curl -X POST \
-H 'authorization: Basic Auth_TOKEN' \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '[
{
"pool-a/Local/my-project/non-exist"
}
]' https://198.51.100.10/zebi/api/v2/getShare -k

Error Response
The above request returns the HTTP status code 500 (internal server error) and the following
message:
{

"code": "EZEBI_RESOURCE_NOT_FOUND",
"details": "Unable to open pool-a/Local/my-project/non-exist: dataset
does not exist",
"message": "Unable to open pool-a/Local/my-project/non-exist: dataset
does not exist",
"extendedData": {
"EX_CAUSE_MESSAGE": "Unable to open pool-a/Local/
my-project/non-exist: dataset does not exist",
"EX_CAUSE_CODE_NAME": "EZFS_NOENT",
"EX_CAUSE_CODE_NUMBER": "2009"
}

}

getShareProperty
Returns a DatasetProperty_V2_1 if it exists.
First Available Version
API v2.1, IntelliFlash 3.7.0.x
Related APIs
createVolume, modifyVolumeProperties, getVolumeProperty, getProjectProperty

149

Tegile IntelliFlash API Reference Guide, Version 2.3

Parameters
Share-path
A string specifying the path to share.
Returns
A DatasetProperty_V2_1 contains the query key and value.
Exceptions Thrown
EZEBI_INVALID_ARGUMENT
This error is thrown if the parameters are invalid (project or share name
contains special characters)
EZEBI_GENERAL
This error is thrown if the operation failed with internal reasons.
EZEBI_RESOURCE_NOT_FOUND
This error is thrown if the specified share doesn’t exist.
Examples
Example 1
Request (curl)
curl -X POST \
-H 'authorization: Basic Auth_TOKEN' \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '[
{
"pool-a/Local/my-project/my-share",
"quotaInByte"
}
]' https://198.51.100.10/zebi/api/v2/getShareProperty -k

Response
The above request returns the HTTP status code 200 (OK) and a DatasetProperty_V2_1 object.
{

"propertyKey": "quotaInByte",
"propertyValue": 0

}
Erroneous Request (curl)
curl -X POST \
-H 'authorization: Basic Auth_TOKEN' \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '[
{

150

Dataset Methods

"pool-a/Local/my-project/my-share",
"non-exist-property"

}

]'

https://198.51.100.10/zebi/api/v2/getShareProperty -k

Example 2
Erroneous Request
curl -X POST \
-H 'authorization: Basic Auth_TOKEN' \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '[
{
"pool-a/Local/my- project/my-share",
"non-exist-property"
}
]'
https://198.51.100.10/zebi/api/v2/getShareProperty -k

Error Response
The above request returns the HTTP status code 400 (bad request) and the following
message:
{

"code": "EZEBI_INVALID_ARGUMENT",
"details": "",
"message": "Can't get property:non-exist-property is not a valid
field!.
Please supply a valid property. Check API documents for more details",
"extendedData": {}

}

getVolume
Returns a Volume_V2_1 object if it exists.
First Available Version
API v2.1, IntelliFlash 3.7.0.x
Related APIs
createVolume, modifyVolumeProperties, getVolumeProperty
Parameters
Volume-path
A string specifying the path to volume.

151

Tegile IntelliFlash API Reference Guide, Version 2.3

Returns
A Volume_V2_1 object.
Exceptions Thrown
EZEBI_INVALID_ARGUMENT
This exception is thrown if the parameters are invalid (project or volume name
contains special characters).
EZEBI_GENERAL
This exception is thrown if the operation failed with internal reasons.
EZEBI_RESOURCE_NOT_FOUND
This exception is thrown if the specified volume doesn’t exist.
Examples
Example 1
Request (curl)
curl -X POST \
-H 'authorization: Basic Auth_TOKEN' \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '[
{
"pool-a/Local/my-project/my-volume"
}
]' https://198.51.100.10/zebi/api/v2/getVolume -k

Response
The above request returns the HTTP status code 200 (OK) and a Volume_V2_1 object.
{

152

"name": "my-volume",
"poolName": "pool-a",
"projectName": "my-project",
"purpose": "custom",
"guid": "007ef1b2-cae6-41ff-9523-de0d81249819",
"compression": "lz4",
"overrideCompression": false,
"localDataset": true,
"reservationInByte": 0,
"reservation": 0,
"reservationMetric": null,
"reservationEnabled": false,
"dedup": "off",
"overrideDedup": false,
"copies": "1",
"overrideCopies": false,
"primaryCache": "all",
"overridePrimaryCache": false,

Dataset Methods

}

"secondaryCache": "all",
"overrideSecondaryCache": false,
"readonly": "off",
"overrideReadonly": false,
"logbias": "latency",
"overrideLogbias": false,
"sync": "standard",
"overrideSync": false,
"overrideProjectSnapshotSettings": false,
"zfsDataSetName": "pool-a/Local/my-project/ my-volume ",
"compressedLog": "off",
"overrideCompressedLog": false,
"volSize": 33285996544,
"luId": "600144F087EC75370000594058180013",
"usedSize": 48733696,
"thinProvisioning": true,
"blockSize": "32KB",
"writeBackCache": "enable",
"overrideViews": false,
"protocol": "iSCSI",
"containerName": "Local"

Example 2
Erroneous Request (curl)
curl -X POST \
-H 'authorization: Basic Auth_TOKEN' \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '[
{
"pool-a/Local/my-project/non-exist"
}
]' https://198.51.100.10/zebi/api/v2/getVolume -k

Error Response
The above request returns the HTTP status code 500 (internal server error) and the following
message:
{

"code": "EZEBI_RESOURCE_NOT_FOUND",
"details": "Unable to open pool-a/Local/my-project/non-exist: dataset
does not exist",
"message": "Unable to open pool-a/Local/my-project/non-exist: dataset
does not exist",
"extendedData": {
"EX_CAUSE_MESSAGE": "Unable to open pool-a/Local/my-project
/non-exist: dataset does not exist",
"EX_CAUSE_CODE_NAME": "EZFS_NOENT",
"EX_CAUSE_CODE_NUMBER": "2009"
}

}

153

Tegile IntelliFlash API Reference Guide, Version 2.3

getVolumeProperty
Returns a DatasetProperty_V2_1 object if it exists.
First Available Version
API v2.1, IntelliFlash 3.7.0.x
Related APIs
createVolume, modifyVolumeProperties, getShareProperty, getProjectProperty
Parameters
Volume-path
A string specifying path to volume.
Returns
A DatasetProperty_V2_1 object that contains the query key and value.
Exceptions Thrown
EZEBI_INVALID_ARGUMENT
This exception is thrown if the parameters are invalid (project or volume name
contains special characters).
EZEBI_GENERAL
This exception is thrown if the operation failed with internal reasons.
EZEBI_RESOURCE_NOT_FOUND
This exception is thrown if the specified volume doesn’t exist.
Examples
Example 1
Request (curl)
curl -X POST \
-H 'authorization: Basic Auth_TOKEN' \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '[
"pool-a/Local/my-project/my-volume",
"dedup"
]' https://198.51.100.10/zebi/api/v2/getVolumeProperty -k

Response

154

Dataset Methods

The above request returns the HTTP status code 200 (OK) and a DatasetProperty_V2_1 object.
{

"propertyKey": "dedup",
"propertyValue": "off"

}

Example 2
Erroneous Request (curl)
curl
-H
-H
-H
-d

-X POST \
'authorization: Basic Auth_TOKEN' \
'cache-control: no-cache' \
'content-type: application/json' \
'[
"pool-a/Local/my-project/my-volume",
"non-exist-property"
]'
https://198.51.100.10/zebi/api/v2/getVolumeProperty -k

Error Response
The above request returns the HTTP status code 400 (bad request) and the following
message:
{

"code": "EZEBI_INVALID_ARGUMENT",
"details": "",
"message": "Can't get property:non-exist-property is not a valid
field!.
Please supply a valid property. Check API documents for more details",
"extendedData": {}

}

importPool
Imports a pool.
First Available Version
API v2.1, IntelliFlash 3.7.0.x
Related APIs
deletePool, exportPool, resetPoolError, checkPoolIntegrity
Parameters
poolName
Name of the pool to import.

155

Tegile IntelliFlash API Reference Guide, Version 2.3

Returns
Returns an integer status where:
• 0 indicates that the request succeeded.
• 1 indicates that the request failed.
Exceptions Thrown
EZEBI_RESOURCE_NOT_FOUND
This exception is thrown if the pool does not exist.
EZEBI_INVALID_ARGUMENT
This exception is thrown if an invalid character is detected in the poolName.
EZEBI_RESOURCE_EXIST
This exception is thrown if an active pool with the same name exists already.
EZEBI_OPERATION_NOT_ALLOWED
This exception is thrown if pool is in a state that doesn't permit import.
EZEBI_GENERAL
This exception is thrown if the operation failed.
Examples
Example 1
Request (curl)
curl -X POST \
-H 'authorization: Basic AUTH_TOKEN' \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '["pool6a"]' \
https://198.51.100.10/zebi/api/v2/importPool -k

Response
The above request returns the HTTP status code 200 (OK) and 0 as integer indicating a
successful operation.
Example 2
Erroneous Request (curl)
curl
-H
-H
-H

156

-X POST \
'authorization: Basic AUTH_TOKEN' \
'cache-control: no-cache' \
'content-type: application/json' \

Dataset Methods

-d '["nonExistentPool6a", false]' \
https://198.51.100.10/zebi/api/v2/importPool -k

Error Response
The above request returns the HTTP status code 404 (not found) and the following message:
{

}

"code": "EZEBI_RESOURCE_NOT_FOUND",
"details": "Pool requested for import was not found",
"message": "Failed to import the pool [nonExistentPool6a].",
"extendedData": {
"EX_CAUSE_MESSAGE": "Pool requested for import was not found",
"EX_CAUSE_CODE_NAME": "EZEBI_RESOURCE_NOT_FOUND"
}

inheritPropertyFromProject
Reverts share or volume configuration value to parent configuration value.
First Available Version
API v2.1, IntelliFlash 3.7.0.x
Related APIs
createProject, modifyProjectProperties, getProjectProperty, modifyShareProperties,
modifyVolumeProperties
Parameters
Dataset-path
A string specifying path to the dataset (either share or volume).
Property-name
A string specifying the property to revert.
Valid property name includes Compression, Dedup, Copies,
PrimaryCache, SecondaryCache, Readonly, Logbias, Sync, CompressedLog,
ProjectSnapshotSettings, MountPoint, Sharenfs, Sharesmb, AclInherit, and
Views.
Returns
Returns an integer status where:
• 0 indicates that the request succeeded.

157

Tegile IntelliFlash API Reference Guide, Version 2.3

• 1 indicates that the request was not attempted.
• 2 indicates that the request failed.
Exceptions Thrown
EZEBI_INVALID_ARGUMENT
This exception is thrown if the parameters are invalid (project or share name
contains special characters).
EZEBI_GENERAL
This exception is thrown if the operation failed with internal reasons.
EZEBI_RESOURCE_NOT_FOUND
This exception is thrown if the specified dataset doesn’t exist.
Examples
Example 1
Request (curl)
curl -X POST \
-H 'authorization: Basic Auth_TOKEN' \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '[
{
"pool-a/Local/my-project/my-dataset",
"Dedup"
}
]'
https://198.51.100.10/zebi/api/v2/inheritPropertyFromProject -k

Response
The above request returns the HTTP status code 200 (OK) and an integer.
Example 2
Erroneous Request (curl)
curl -X POST \
-H 'authorization: Basic Auth_TOKEN' \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '[
{
"pool-a/Local/my-project/my-dataset",
"non-supported-property"
}
]'
https://198.51.100.10/zebi/api/v2/inheritPropertyFromProject -k

158

Dataset Methods

Error Response
The above request returns the HTTP status code 400 (bad request) and the following
message:
{

"code": "EZEBI_INVALID_ARGUMENT",
"details": "inheritPropertyFromProject.arg1 value 'non-supportedproperty':
Supported Inheritable Properties includes: Compression, Dedup, Copies,
PrimaryCache,
SecondaryCache, Readonly, Logbias, Sync, CompressedLog,
ProjectSnapshotSettings,
MountPoint, Sharenfs, Sharesmb, AclInherit, Views.",
"message": "Supported Inheritable Properties includes:
Compression, Dedup, Copies, PrimaryCache, SecondaryCache, Readonly,
Logbias, Sync,
CompressedLog, ProjectSnapshotSettings, MountPoint, Sharenfs, Sharesmb,
AclInherit, Views.",
"extendedData": {
"EX_CAUSE_MESSAGE": null
}
}

isProjectExposedOverNFS
Returns whether the NFS protocol is enabled for a project.
First Available Version
API v2.1, IntelliFlash 3.7.0.x
Related APIs
setNFSSharingOnProject, setNFSNetworkACLsOnProject, addNFSNetworkACLOnProject,
removeNFSNetworkACLOnProject, removeAllNFSNetworkACLsOnProject,
getNFSNetworkACLsOnProject
Parameters
datasetPath
Path of the project. The format is /Local/.
This operation is not allowed for replica project datasets.
Returns
Returns True or False based on whether NFS protocol is enabled.

159

Tegile IntelliFlash API Reference Guide, Version 2.3

Exceptions Thrown
EZEBI_RESOURCE_NOT_FOUND
This exception is thrown if the specified project cannot be found.
EZEBI_INVALID_ARGUMENT
This exception is thrown if the path specified belongs to replica dataset.
EZEBI_GENERAL
This exception is thrown if the operation failed.
Examples
Example 1
Request (curl)
curl -X POST \
-H 'authorization: Basic Auth_TOKEN \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '[
"pool-a/Local/demoProject"
]' \
https://198.51.100.10/zebi/api/v2/isProjectExposedOverNFS -k

Response
The above request returns the HTTP status code 200 (OK) and returns a true or false value
indicating whether NFS is enabled over the specified project.
Example 2
Erroneous Request (curl)
curl -X POST \
-H 'authorization: Basic Auth_TOKEN \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '[
"pool-a/Local/UNKNOWNProject"
]' \
https://198.51.100.10/zebi/api/v2/isProjectExposedOverNFS -k

Error Response
The above request returns the HTTP status code 404 (not found) and the following message:
{

160

Dataset Methods

"code":"EZEBI_RESOURCE_NOT_FOUND",
"details":"",
"message":"Cannot find the specified project 'pool-a/Local/
UNKNOWNProject'.",
"extendedData":{}
}

isShareExposedOverNFS
Returns whether the NFS protocol is enabled for the share.
First Available Version
API v2.1, IntelliFlash 3.7.0.x
Related APIs
setNFSSharingOnShare, setNFSNetworkACLsOnShare, addNFSNetworkACLOnShare,
removeNFSNetworkACLOnShare, removeAllNFSNetworkACLsOnShare, getNFSNetworkACLsOnShare
Parameters
datasetPath
Path of the share. The format is /Local//
.
This operation is not allowed for replica share datasets.
Returns
Returns True or False based on whether the NFS protocol is enabled.
Exceptions Thrown
EZEBI_RESOURCE_NOT_FOUND
This exception is thrown if the specified share cannot be found.
EZEBI_INVALID_ARGUMENT
This exception is thrown if the path specified belongs to replica dataset.
EZEBI_GENERAL
This exception is thrown if the operation failed.
Examples
Example 1

161

Tegile IntelliFlash API Reference Guide, Version 2.3

Request (curl)
curl -X POST \
-H 'authorization: Basic Auth_TOKEN \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '[
"pool-a/Local/Project/demoShare"
]' \
https://198.51.100.10/zebi/api/v2/isShareExposedOverNFS -k

Response:
The above request returns the HTTP status code 200 (OK) and the following response:
true

Example 2
Erroneous Request (curl)
curl -X POST \
-H 'authorization: Basic Auth_TOKEN \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '[
"pool-a/Local/Project/UNKNOWNShare"
]' \
https://198.51.100.10/zebi/api/v2/isShareExposedOverNFS -k

Error Response
The above request returns the HTTP status code 500 (internal server error) and the following
message:
{

"code":"EZEBI_RESOURCE_NOT_FOUND",
"details":"",
"message":"Cannot find the specified share 'pool-a/Local/Project/
UNKNOWNShare'.",
"extendedData":{}
}

listAllCopyOperations
Lists all copy operations.

162

Dataset Methods

First Available Version
API v2.1, IntelliFlash 3.7.0.x
Related APIs
copyDataset, getCopyStatus, listRunningCopyOperations, abortCopy
Parameters
None
Returns
Lists the GUIDs of all copy operations.
Exceptions Thrown
None
Examples
Example 1
Request (curl)
curl -X GET \
-H 'authorization: Basic Auth_TOKEN' \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
https://198.51.100.10/zebi/api/v2/listAllCopyOperations -k

Response
The above request returns the HTTP status code 200 (OK) and a list of GUIDs.
[

]

"europa:aeca7e25-a74e-4a81-860d-e1f3640f2ad5",
"europa:2282afb2-97b2-4ff8-86e5-10e3368766a3",
"europa:69bc5f81-242d-4908-9b5c-5a4029cadd7d",
"europa:a621708c-9a09-44da-b4d8-733a9e4883b5",
"europa:bb8602e3-1431-4507-b83e-63e7a4ae2bf5",
"europa:0e7b6bc7-5337-4974-83db-6f9e179034ea",
"europa:42a85c00-d067-42c9-9947-883e853d0862",
"europa:12bebd45-ae3c-451d-98ea-befdd595568a",
"europa:825ae7b1-f596-400d-89bc-a4f7466badc3",
"europa:1e1bc102-d8cc-4f8e-88b0-a0cc41f224fc",
"europa:69bc5f81-242d-4908-9b5c-5a4029cadd7d"

163

Tegile IntelliFlash API Reference Guide, Version 2.3

listLunsById
Lists LUN details for the specified LUN IDs.
First Available Version
API v1.0, IntelliFlash 2.1.0.0
Related APIs
listPools, listProjects, listVolumes, listShares, createVolume.
Parameters
lunIds
An array of strings where each string contains the logical unit ID of a LUN on
the array. For example, “600144F0FA2A820000004FF35C280003”.
Returns
A JSON array of LunStatus objects that contain details of the requested LUNs.
Examples
Example 1
Request (curl)
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H Content-Type:application/json \
-d
'[["600144F0B4510D0000005631F7DB0001","600144F0B4510D0000005631F7E80002"]]'
\
https://198.51.100.10/zebi/api/v2/listLunsById -k

Response
[
{

164

"viewCount" : 1,
"operationalStatus" : 2,
"metaFile" : null,
"commandStatus" :0,
"size" :"1073741824",
"vendorId" : null,
"writeCacheDisable" : false,
"dataFile" :"/dev/zvol/rdsk/pool-a/Local/smb_nfs/llun1",
"guid" :"600144F0B4510D0000005631F7DB0001",
"accessState" :0,
"commandException" : null,
"blockSize" : null,
"productId" :null,
"serialNumber" : null,

Dataset Methods

},
{

}
]

"writeProtect" : false,
"alias" :"/dev/zvol/rdsk/pool-a/Local/smb_nfs/llun1",
"mgmtURL" :"",
"datasetPath" : "pool-a/Local/smb_nfs/llun1"
"viewCount" : 1,
"operationalStatus" :2,
"metaFile" : null,
"commandStatus" : 0,
"size" : "",
"vendorId" : null,
"writeCacheDisable" :false,
"dataFile" : "/dev/zvol/rdsk/pool-a/Local/smb_nfs/lun2",
"guid" :"600144F0B4510D0000005631F7E80002",
"accessState" :0,
"commandException" : null,
"blockSize" : null,
"productId" :null,
"serialNumber" : null,
"writeProtect" : false,
"alias" :"/dev/zvol/rdsk/pool-a/Local/smb_nfs/lun2",
"mgmtURL" :"",
"datasetPath" : "pool-a/Local/smb_nfs/lun2"

Example 2
Erroneous Request
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H Content-Type:application/json \
-d '[["600144F012190100000052D92EC20165"]]' \
https://198.51.100.10/zebi/api/v2/listLunsById -k

Error Response
HTTP Status Code: 200
[
{
"commandStatus": 2,
"commandException": {
"code": "EZEBI_RESOURCE_NOT_FOUND",
"details": "",
"extendedData": {},
"message": "Lun 600144F012190100000052D92EC20165 doesn't exist"
},
"guid": null,
"alias": null,
"dataFile": null,
"metaFile": null,
"vendorId": null,
"productId": null,
"mgmtURL": null,
"serialNumber": null,
"viewCount": 0,
"size": null,

165

Tegile IntelliFlash API Reference Guide, Version 2.3

]

}

"blockSize": null,
"writeProtect": false,
"writeCacheDisable": false,
"operationalStatus": 0,
"accessState": 0,
"datasetPath": null

listPools
Lists all the pools on the array. This is an HTTP GET method.
First Available Version
API v1.0, IntelliFlash 2.1.0.0
Related APIs
listProjects, listVolumes, listLunsById, listShares.
Parameters
None
Returns
Returns a JSON array of Pool_V1_0 objects that contains details of all the pools.
Example
Request (curl)
curl -X GET -H "Authorization:Basic Auth_TOKEN" \
-H Content-Type:application/json -d '[]'\
https://198.51.100.10/zebi/api/v2/listPools -k

Response
[
{
"name":"pool-a",
"availableSize":3931776248832,
"totalSize":3931908341760
},
{
"name":"pool-b",
"availableSize":1965925029376,
"totalSize":1965954170880
}

166

Dataset Methods

listProjects
Lists all the local or replicated projects in a pool.
First Available Version
API v1.0, IntelliFlash 2.1.0.0
Related APIs
listPools, listVolumes, listLunsById, listShares.
Parameters
poolName
A string: the name of the pool for which projects need to be listed.
local
A boolean: a true returns the local projects only; a false returns the
replicated projects only.
Returns
Returns a JSON array of Project_V1_0 objects that contains details of all the
local or replicated projects in the specified pool.
Examples
Example 1
Request (curl)
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H Content-Type:application/json \
-d '["plaut", true]' \
https://198.51.100.10/zebi/api/v2/listProjects -k

Response
[
{
"poolName":"p1aut",
"name":"CIFS_TEST",
"local":true
},
{
"poolName":"p1aut",
"name":"new_proj",
"local":true
}

167

Tegile IntelliFlash API Reference Guide, Version 2.3

]

Example 2
Erroneous Request
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H Content-Type:application/json -d '["pool11",true]' \
https://198.51.100.10/zebi/api/v2/listProjects -k

Error Response
HTTP Status Code: 500
{
"message": "Unable to open pool11/Local : dataset does not exist",
"extendedData": {
"EX_CAUSE_CODE_NAME": "EZFS_NOENT",
"EX_CAUSE_MESSAGE": "Unable to open pool11/Local : dataset does not
exist",
"EX_CAUSE_CODE_NUMBER": "2009"
},
"details": "Unable to open pool11/Local : dataset does not exist",
"code": "EZEBI_RESOURCE_NOT_FOUND"
}

listRunningCopyOperations
Lists all running copy operations.
First Available Version
API v2.1, IntelliFlash 3.7.0.x
Related APIs
copyDataset, getCopyStatus, listAllCopyOperations, abortCopy
Parameters
None
Returns
Lists the GUIDs of all currently running operations. Copy operations that are completed or
aborted are not listed.
Exceptions Thrown
None

168

Dataset Methods

Examples
Example 1
Request (curl)
curl -X GET \
-H 'authorization: Basic Auth_TOKEN' \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
https://198.51.100.10/zebi/api/v2/listRunningCopyOperations -k

Response
The above request returns the HTTP status code 200 (OK) and a list of GUIDs. For example:
[
]

"europa:137b93ca-280f-4693-a4d8-a39496827d9e",
"europa:69bc5f81-242d-4908-9b5c-5a4029cadd7d"

Example 2
Erroneous Request (curl)
curl -X POST \
-H 'authorization: Basic Auth_TOKEN' \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '[{"poolName": "europa1",
"projectName": "images",
"subProjectName": "template"
},
{
"hostName": "10.68.132.120",
"poolName": "napa",
"projectName": "remotecopy",
"subProjectNamePrefix": "prod",
"subProjectNameNumberStart": 1,
"subProjectNameNumberEnd": 3,
"subProjectNameWildcard": ""
}
]' \
https://198.51.100.10/zebi/api/v2/copyDataset -k

Error Response
The above request returns HTTP status code 400 with the following message:
{

169

Tegile IntelliFlash API Reference Guide, Version 2.3

}

"code": "EZEBI_INVALID_ARGUMENT",
"details": "",
"message": "Unable to find project images in europa1",
"extendedData": {}

listShares
Lists all the local and replicated shares in a project.
First Available Version
API v1.0, IntelliFlash 2.1.0.0
Related APIs
listPools, listProjects, listVolumes, listLunsById, createShare, createShare.
Parameters
poolName
A string: the name of the pool that contains the project specified by the
projectName parameter.
projectName
A string: the name of the project for which shares need to be listed.
local
A boolean: a true returns the local shares only; a false returns the replicated
shares only.
Returns
Returns a JSON array of Share_V1_0 objects that contains details of all the local
or replicated shares in the specified pool and project.
Examples
Example 1
Request (curl)
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H Content-Type:application/json \
-d '["p1aut","project2", true]' \
https://198.51.100.10/zebi/api/v2/listShares -k

170

Dataset Methods

Response
[

]

{

}

"poolName": "p1aut",
"projectName": "project2",
"name": "default_share",
"availableSize": 9275971622400,
"totalSize": 9275971769856,
"datasetPath": "p1aut/Local/project2/default_share",
"mountpoint": /export/p1aut/project2/default_share,
"local": true

Example 2
Erroneous Request
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H Content-Type:application/json \
-d '["pool0","TechPubs", true]' \
https://198.51.100.10/zebi/api/v2/listShares -k

Error Response
HTTP Status Code: 500
{
"message": "Unable to open pool0/Local/TechPubs : dataset does not exist",
"extendedData": {
"EX_CAUSE_CODE_NAME": "EZFS_NOENT",
"EX_CAUSE_MESSAGE": "Unable to open pool0/Local/TechPubs : dataset
does not exist",
"EX_CAUSE_CODE_NUMBER": "2009"
},
"details": "Unable to open pool0/Local/TechPubs : dataset does not exist",
"code": "EZEBI_RESOURCE_NOT_FOUND"
}

listSharesByMountPoints
Lists all shares available for given mountpoints or mountpoint patterns.
Sample valid patterns include:
• /export/project/share1, /export/project/*, /export/project?/Share[1-3]
• /export/project/{share1,newshare}, *Project*
First Available Version
API v2.1, IntelliFlash 3.7.0.x

171

Tegile IntelliFlash API Reference Guide, Version 2.3

Related APIs
listShares
Parameters
mountPointPatterns
An array of of mount points patterns.
Returns
A list of key value pairs, which consists of a mount point and its associated Share_V2_1 object.
Exceptions Thrown
EZEBI_RESOURCE_NOT_FOUND
This exception is thrown if the specific resource (pool, project, or share) is not
found.
EZEBI_INVALID_ARGUMENT
This exception is thrown if the mountpoint pattern is invalid.
Examples
Example 1
Request (curl)
curl -X POST \
-H 'authorization: Basic AUTH_TOKEN' \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '[["/export/*"]]' \
https://198.51.100.10/zebi/api/v2/listSharesByMountPoints -k

Response
The above request returns the HTTP status code 200 (OK) and a list of key-value pairs that
consists of a mount point and its associated Share_V2_1 object.
{

172

"/export/*": [
{
"poolName": "pool63b",
"projectName": "testProject",
"name": "testShare",
"availableSize": 1930781823488,
"totalSize": 1945635603968,
"datasetPath": "pool63b/Local/testProject/testShare",
"mountpoint": "/export/testProject/testShare",
"local": true

Dataset Methods

},
{

}

]

}

"poolName": "pool63a",
"projectName": "doNotCreateMeAgain",
"name": "firstShare",
"availableSize": 1073693696,
"totalSize": 1073741824,
"datasetPath": "pool63a/Local/doNotCreateMeAgain/firstShare",
"mountpoint": "/export/doNotCreateMeAgain",
"local": true

Example 2
Erroneous Request (curl)
curl -X POST \
-H 'authorization: Basic AUTH_TOKEN' \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '[["export/*"]]' \
https://198.51.100.10/zebi/api/v2/listSharesByMountPoints -k

Error Response
The above request returns the HTTP status code 400 (bad request) and the following
message:
{

}

"code": "EZEBI_INVALID_ARGUMENT",
"details": "",
"message": "Mountpoint Pattern is not valid.
It can begin with '/', '[', '{' or '*'.
Example: /export/ExampleProject , *export/*.",
"extendedData": {}

listVolumes
Lists all the local or replicated volumes within a project.
First Available Version
API v1.0, IntelliFlash 2.1.0.0
Related APIs
listPools, listProjects, listLunsById, listShares, createVolume.
Parameters
poolName

173

Tegile IntelliFlash API Reference Guide, Version 2.3

A string: the name of the pool that contains the project specified by the
projectName parameter.
projectName
A string: the name of the project for which volumes need to be listed.
local
A boolean: a true returns the local volumes only; a false returns the
replicated volumes only.
Returns
Returns a JSON array of Volume_V1_0 objects that contains details of all the
local or replicated volumes within the requested project.
Examples
Example 1
Request (curl)
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H Content-Type:application/json \
-d '["plaut","project1", true]' \
https://198.51.100.10/zebi/api/v2/listVolumes -k

Response
[

{

}

"poolName":"p1aut",
"projectName":"project1",
"name":"iscsilun_0",
"luId":"600144F0DE8CCA000000561C554A0006",
"volSize":1073741824,
"blockSize":"4KB",
"thinProvision":false,
"protocol":"iSCSI",
"datasetPath":"p1aut/Local/project2/iscsilun_0",
"local":true

Example 2
Erroneous Request
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H Content-Type:application/json \
-d '["pool0","TechPubs", true]' \
https://198.51.100.10/zebi/api/v2/listVolumes -k

174

Dataset Methods

Error Response
HTTP Status Code: 500
{
"message": "Unable to open pool0/Local/TechPubs : dataset does not exist",
"extendedData": {
"EX_CAUSE_CODE_NAME": "EZFS_NOENT",
"EX_CAUSE_MESSAGE": "Unable to open pool0/Local/TechPubs : dataset
does not exist",
"EX_CAUSE_CODE_NUMBER": "2009"
},
"details": "Unable to open pool0/Local/TechPubs : dataset does not exist",
"code": "EZEBI_RESOURCE_NOT_FOUND"
}

modifyProjectProperties
Modifies project properties with given values.
First Available Version
API v2.1, IntelliFlash 3.7.0.x
Related APIs
createProject, getProject, getProjectProperty
Parameters
Project-path
A string specifying the path of the project.
Project
A Project_V2_1 object as key-value collection of properties to change.
You can modify other properties in Project_V2_1 that are not marked as “read
only”.
Returns
Returns an integer status where:
• 0 indicates that the request succeeded.
• 1 indicates that the request was not attempted.
• 2 indicates that the request failed.
Exceptions Thrown
EZEBI_INVALID_ARGUMENT

175

Tegile IntelliFlash API Reference Guide, Version 2.3

If the parameters are invalid (when an invalid key-value pair is not supported by
Project_V2_1).
EZEBI_RESOURCE_NOT_FOUND
If the specified project doesn’t exist.
Examples
Example 1
Request (curl):
curl -X POST \
-H 'authorization: Basic Auth_TOKEN' \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '[
"pool-a/Local/my-project",
{
"quotaInByte":42949672960,
"compression":"gzip-9",
"recordSize":"128Kb",
"dedup":"on"
}
]' https://198.51.100.10/zebi/api/v2/modifyProjectProperties -k

Response
The above request returns the HTTP status code 200 (OK) and an integer.
Example 2
Erroneous Request (curl)
curl -X POST \
-H 'authorization: Basic Auth_TOKEN' \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '[
"pool-a/Local/my-project",
{
"quotaInByte":123,
// invalid
"compression":"gzip-9",
"recordSize":"128Kb",
"dedup":"on"
}
]' https://198.51.100.10/zebi/api/v2/modifyProjectProperties -k

Error Response
The above request returns the HTTP status code 400 (bad request) and the following
message:
{

176

"code": "EZEBI_INVALID_ARGUMENT",
"details": "modifyProjectProperties.arg1 value

Dataset Methods

'com.tegile.skywalk.api.v2.IPublicAPI_V2_1$Project_V2_1@7049d5c7':
Please set quotaInByte, reservationInByte to configure quota/reservation
feature.
quotaInByte/reservationInByte value should be at least 1MB(1048576),
or set to 0 for no limit.",
"message": "Please set quotaInByte, reservationInByte to
configure quota/reservation feature.
quotaInByte/reservationInByte value should be at least
1MB(1048576),
or set to 0 for no limit.",
"extendedData": {
"EX_CAUSE_MESSAGE": null
}

}

modifyShareProperties
Returns a Share_V2_1 object if it exists.
You can configure other general properties in Share_V2_1 that is not marked as “read only”.
First Available Version
API v2.1, IntelliFlash 3.7.0.x
Related APIs
createShare, getShare
Parameters
Share-path
A string specifying the path to share.
Share
A Share_V2_1 object as key-value collection of properties to change.
Returns
Returns an integer status where:
• 0 indicates that the request succeeded.
• 1 indicates that the request was not attempted.
• 2 indicates that the request failed.
Exceptions Thrown
EZEBI_INVALID_ARGUMENT

177

Tegile IntelliFlash API Reference Guide, Version 2.3

This exception is thrown if the parameters are invalid (project or share name
contains special characters).
EZEBI_GENERAL
This exception is thrown if the operation failed with internal reasons.
EZEBI_RESOURCE_NOT_FOUND
This exception is thrown if the specified share doesn’t exist.
Examples
Request (curl)
curl
-H
-H
-H
-d

-X POST \
'authorization: Basic Auth_TOKEN' \
'cache-control: no-cache' \
'content-type: application/json' \
'[
"pool-a/Local/my-project/my-share",
{
"sync":"always",
"quotaInByte":123456789
}
]'
https://198.51.100.10/zebi/api/v2/modifyShareProperties -k

Response
The above request returns the HTTP status code 200 (OK) and an integer.
Example 2
Erroneous Request (curl)
curl
-H
-H
-H
-d

-X POST \
'authorization: Basic Auth_TOKEN' \
'cache-control: no-cache' \
'content-type: application/json' \
'[
"pool-a/Local/my-project/my-share",
{
"non-exist-property":"always",
"quotaInByte":123456789
}
]'
https://198.51.100.10/zebi/api/v2/modifyShareProperties -k

Error Response
The above request returns the HTTP status code 404 (Not found) and the following message:
{

178

"code": "EZEBI_GENERAL",
"details": "No suitable method found. Please check if method name

Dataset Methods

and arguments are correct.",
"message": "No suitable method found. Please check if method name
and arguments are correct.",
"extendedData": {
"EX_CAUSE_MESSAGE": "No suitable method found. Please check if
method name and arguments are correct."
}

}

Example 3
Erroneous Request (curl)
curl
-H
-H
-H
-d

-X POST \
'authorization: Basic Auth_TOKEN' \
'cache-control: no-cache' \
'content-type: application/json' \
'[
"pool-a/Local/my-project/my-share",
{
"sync":"non-valid-value",
"quotaInByte":123456789
}
]'
https://198.51.100.10/zebi/api/v2/modifyShareProperties -k

Error Response
The above request returns the HTTP status code 400 (bad request) and the following
message:
{

}

"code": "EZEBI_INVALID_ARGUMENT",
"details": "modifyShareProperties.arg1 value 'com.tegile.skywalk.api.v2.
IPublicAPI_V2_1$Share_V2_1@1c8df8ce': Supported Data Sync Preference
includes: Standard, Always.",
"message": "Supported Data Sync Preference includes: Standard, Always.",
"extendedData":
{
"EX_CAUSE_MESSAGE": null
}

modifyVolumeProperties
Modifies volume properties with given values.
You can configure other general properties in Volume_V2_1 that is not marked as “read only”.
First Available Version
API v2.1, IntelliFlash 3.7.0.x

179

Tegile IntelliFlash API Reference Guide, Version 2.3

Related APIs
createVolume, getVolume
Parameters
Volume-path
A string specifying the path of the volume.
Volume
A Volume_V2_1 object as key-value collection of properties to change.
Returns
Returns an integer status where:
• 0 indicates that the request succeeded.
• 1 indicates that the request was not attempted.
• 2 indicates that the request failed.
Exceptions Thrown
EZEBI_INVALID_ARGUMENT
This exception is thrown if the parameters are invalid (project or volume name
contains special characters).
EZEBI_GENERAL
This exception is thrown if the operation failed with internal reasons.
EZEBI_RESOURCE_NOT_FOUND
This exception is thrown if the specified volume doesn’t exist.
Examples
Example 1
Request (curl)
curl
-H
-H
-H
-d

180

-X POST \
'authorization: Basic Auth_TOKEN' \
'cache-control: no-cache' \
'content-type: application/json' \
'[
{
"projectName":"general-project",
"poolName":"pool-a",
"quotaInByte":42949672960,
"compression":"gzip-9",
"recordSize":"128Kb",
"dedup":"on"

Dataset Methods

}
]'
https://198.51.100.10/zebi/api/v2/modifyVolumeProperties -k

Response
The above request returns the HTTP status code 200 (OK) and an integer.
Example 2
Erroneous Request (curl)
curl
-H
-H
-H
-d

-X POST \
'authorization: Basic Auth_TOKEN' \
'cache-control: no-cache' \
'content-type: application/json' \
'[
{
"projectName":"general-project",
"poolName":"pool-a",
"quotaInByte":42949672960,
"compression":"really-bad-compression-algorithm",
"recordSize":"128Kb",
"dedup":"on"
}
]'
https://198.51.100.10/zebi/api/v2/modifyVolumeProperties -k

Error Response
The above request returns the HTTP status code 400 (bad request) and the following
message:
{

"code": "EZEBI_INVALID_ARGUMENT",
"details": "createProject.arg0 value
'com.tegile.skywalk.api.v2.IPublicAPI_V2_1$Project_V2_1@1778db80':
Invalid Compression Algorithm, disable compression by passing in
'Off' or enable compression by using one of the following:
Lzjb, Gzip-2, Gzip, Gzip-9, Lz4.",
"message": "Invalid Compression Algorithm, disable compression by
passing in 'Off' or enable
compression by using one of the following: Lzjb, Gzip-2, Gzip, Gzip-9,
Lz4.",
"extendedData": {"EX_CAUSE_MESSAGE": null}

}

resetPoolError
Clears errors associated with a pool.

181

Tegile IntelliFlash API Reference Guide, Version 2.3

First Available Version
API v2.1, IntelliFlash 3.7.0.x
Related APIs
deletePool, exportPool, importPool, checkPoolIntegrity
Parameters
poolName
Name of the pool where you want to clear the errors.
Returns
Returns an integer status where:
• 0 indicates that the request succeeded.
• 1 indicates that the request failed.
Exceptions Thrown
EZEBI_RESOURCE_NOT_FOUND
This exception is thrown if the pool does not exist.
EZEBI_INVALID_ARGUMENT
This exception is thrown if an invalid character is detected in the poolName.
EZEBI_GENERAL
This exception is thrown if the operation failed.
Examples
Example 1
Request (curl)
curl -X POST \
-H 'authorization: Basic AUTH_TOKEN' \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '["pool63a"]' \
https://198.51.100.10/zebi/api/v2/resetPoolError -k

Response
The above request returns the HTTP status code 200 (OK) and 0 as integer indicating a
successful operation.
Example 2

182

Dataset Methods

Erroneous Request (curl)
curl -X POST \
-H 'authorization: Basic AUTH_TOKEN' \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '["nonExistentPool6a"]' \
https://198.51.100.10/zebi/api/v2/resetPoolError -k

Error Response
The above request returns the HTTP status code 404 (not found) and the following message:
{

}

"code": "EZEBI_RESOURCE_NOT_FOUND",
"details": "Pool not found.",
"message": "The pool [nonExistentPool6a] was not found.",
"extendedData": {
"EX_CAUSE_MESSAGE": "Pool not found.",
"EX_CAUSE_CODE_NAME": "EZEBI_RESOURCE_NOT_FOUND"
}

setNFSSharingOnProject
Enables or disables NFS protocol for project. If you disable NFS protocol for a project, any
existing network ACLs on the project are removed as well.
First Available Version
API v2.1, IntelliFlash 3.7.0.x
Related APIs
setNFSNetworkACLsOnProject, addNFSNetworkACLOnProject, removeNFSNetworkACLOnProject,
removeAllNFSNetworkACLsOnProject, isProjectExposedOverNFS, getNFSNetworkACLsOnProject
Parameters
datasetPath
Path of the project. The format is /Local/.
This operation is not allowed for replica project datasets.
turnOn
Enables or disables NFS protocol on the project.

183

Tegile IntelliFlash API Reference Guide, Version 2.3

Returns
COMMAND_STATUS.COMMAND_SUCCEED (0) on success.
Exceptions Thrown
EZEBI_RESOURCE_NOT_FOUND
This exception is thrown if the specified project is not found.
EZEBI_INVALID_ARGUMENT
This exception is thrown if the path specified belongs to a replica dataset.
EZEBI_GENERAL
This exception is thrown if the operation failed.
Examples
Example 1
Request (curl)
curl -X POST \
-H 'authorization: Basic Auth_TOKEN \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '[
"pool-a/Local/demoProject", true
]' \
https://198.51.100.10/zebi/api/v2/setNFSSharingOnProject -k

Response
The above request returns the HTTP status code 200 (OK) and 0 indicating success. This
enables NFS sharing on the specified project.
Example 2
Request (curl)
curl -X POST \
-H 'authorization: Basic Auth_TOKEN \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '[
"pool-a/Local/demoProject", false
]' \
https://198.51.100.10/zebi/api/v2/setNFSSharingOnProject -k

Response

184

Dataset Methods

The above request returns the HTTP status code 200 (OK) and 0 indicating success. This
disables NFS sharing on the specified project.
Example 3
Erroneous Request
curl -X POST \
-H 'authorization: Basic Auth_TOKEN \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '[
"pool-a/Local/UNKNOWNProject", true
]' \
https://198.51.100.10/zebi/api/v2/setNFSSharingOnProject -k

Error Response
The above request returns the HTTP status code 404 (not found) and the following message:
{

"code":"EZEBI_RESOURCE_NOT_FOUND",
"details":"",
"message":"Cannot find the specified project 'pool-a/Local/
UNKNOWNProject'.",
"extendedData":{}
}

Example 4
Erroneous Request
curl -X POST \
-H 'authorization: Basic Auth_TOKEN \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '[
"pool-a/Replica/replicaProject", true
]' \
https://198.51.100.10/zebi/api/v2/setNFSSharingOnProject -k

Error Response
The above request returns the HTTP status code 400 (bad request) and the following
message:
{

"code":"EZEBI_INVALID_ARGUMENT",

185

Tegile IntelliFlash API Reference Guide, Version 2.3

"details":"setNFSSharingOnProject.arg0 value 'pool-a/Replica/
replicaProject':
Local dataset path expected. For example, valid formats are
'pool-name/Local/project-name' or 'pool-name/Local/project-name/shareor-lun-name'.",
"message":"Local dataset path expected.
For example, valid formats are 'pool-name/Local/project-name' or
'pool-name/Local/project-name/share-or-lun-name'.",
"extendedData":{"EX_CAUSE_MESSAGE":null}
}

setNFSSharingOnShare
Enables or disables NFS protocol for a share.
First Available Version
API v2.1, IntelliFlash 3.7.0.x
Related APIs
setNFSNetworkACLsOnShare, addNFSNetworkACLOnShare, removeNFSNetworkACLOnShare,
removeAllNFSNetworkACLsOnShare, isShareExposedOverNFS, getNFSNetworkACLsOnShare
Parameters
datasetPath
Path of the project. The format is /Local//
.
This operation is not allowed for replica project datasets.
turnOn
Enables or disables NFS protocol on the share.
Returns
COMMAND_STATUS.COMMAND_SUCCEED (0) on success.
Exceptions Thrown
EZEBI_RESOURCE_NOT_FOUND
This exception is thrown if the specified share is not found.
EZEBI_INVALID_ARGUMENT
This exception is thrown if the path specified belongs to a replica dataset.
EZEBI_GENERAL
This exception is thrown if the operation failed.

186

Dataset Methods

Examples
Example 1
Request (curl)
curl
-H
-H
-H
-d

-X POST \
'Authorization:Basic Auth_TOKEN' \
'cache-control: no-cache' \
'Content-Type:application/json' \
'["pool-a/Local/project/demoShare", true]'
https://198.51.100.10/zebi/api/v2/setNFSSharingOnShare -k

Response
The above request returns the HTTP status code 200 (OK).
Example 2
Erroneous Request (curl)
curl
-H
-H
-H
-d

-X POST \
'Authorization:Basic Auth_TOKEN' \
'cache-control: no-cache' \
'Content-Type:application/json' \
'["pool-a/Local/project/UNKNOWNShare", true]'
https://198.51.100.10/zebi/api/v2/setNFSSharingOnShare -k

Error Response
The above request returns the HTTP status code 500 (internal server error) and the following
response:
{

}

"code": "EZEBI_RESOURCE_NOT_FOUND",
"details": "Unable to open pool-a/Local/project/UNKNOWNShare :
dataset does not exist",
"message": "Unable to open pool-a/Local/project/UNKNOWNShare :
dataset does not exist",
"extendedData": {
"EX_CAUSE_MESSAGE": "Unable to open pool-a/Local/project/UNKNOWNShare :
dataset does not exist",
"EX_CAUSE_CODE_NAME": "EZFS_NOENT",
"EX_CAUSE_CODE_NUMBER": "2009" }

Example 3
Erroneous Request
curl -X POST

\

187

Tegile IntelliFlash API Reference Guide, Version 2.3

-H
-H
-H
-d

'Authorization:Basic Auth_TOKEN' \
'cache-control: no-cache' \
'Content-Type:application/json' \
'["pool-a/Replica/replicaProj/replicaShare", true]'
https://198.51.100.10/zebi/api/v2/setNFSSharingOnShare -k

Error Response
The above request returns the HTTP status code 400 (bad request) and the following
message:
{

"code":"EZEBI_INVALID_ARGUMENT",
"details":"setNFSSharingOnShare.arg0 value
'pool-a/Replica/replicaProj/replicaShare': Local dataset path
expected.
For example, valid formats are 'pool-name/Local/project-name' or
'pool-name/Local/project-name/share-or-lun-name'.",
"message":"Local dataset path expected.
For example, valid formats are 'pool-name/Local/project-name'
or
'pool-name/Local/project-name/share-or-lun-name'.",
"extendedData":{
"EX_CAUSE_MESSAGE":null
}
}

188

Chapter 6
Snapshot Methods
Topics:
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•

The following sections describe Snapshot methods,
parameters and return types. They also include examples
with sample responses.

cloneProjectSnapshot
cloneReplicaProjectSnapshot
cloneReplicaSubProjectSnapshot
cloneShareSnapshot
cloneVolumeSnapshot
cloneVolumeSnapshot
createProjectSnapshot
createShareSnapshot
createSnapshotSchedule
createVolumeSnapshot
deleteProjectSnapshot
deleteShareSnapshot
deleteSnapshotSchedule
deleteSnapshotSchedules
deleteVolumeSnapshot
getProjectCloneStatus
getProjectSnapshotCreationStatus
getShareSnapshotCreationStatus
getSnapshotSchedule
getVolumeSnapshotCreationStatus
inheritSnapshotSettingsFromProject
isSnapshotSchedulesInheritedFromProject
listDependenciesAndSnapshotCountOnDelete
listDependenciesAndSnapshotCountOnRollback
listSnapshots
rollBackToProjectSnapshot
rollBackToShareSnapshot
rollBackToVolumeSnapshot

Snapshot Methods | 189

Tegile IntelliFlash API Reference Guide, Version 2.3

cloneProjectSnapshot
Clones the specified project-level snapshot. This creates new datasets at the share and
volume levels for all shares and volumes that have a snapshot with the specified name.
First Available Version
API v1.2, IntelliFlash 2.1.2.1
Related APIs
getProjectCloneStatus, createProjectSnapshot, deleteProjectSnapshot.
Parameters
snapshotPath
Path of the project-level snapshot that has to be cloned. The snapshot path
has the format: PoolName/Local/ProjectName@SnapshotName. You can get
the snapshotPath from the listSnapshots API. For more information, see
listSnapshots.
cloneName
A string that is used to create names of the new datasets. The clone name
is appended to the resultant share and volume names. The characters ,, /,
\\, !, ?, @, <, >, #, $, ',%, ^,*,(, ), ~,+, =, },|, :, {, [, ], ;, \', \", & are not allowed in
clonename. The empty and space characters and the null values are not
allowed in clonename.
inheritProjectSettings
A boolean value that indicates whether the new dataset will inherit project
settings.
Returns
No Data.
Examples
Example 1
Request (curl)
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H "Content-Type:application/json" \
-d '["pool1/Local/sProj@Manual-P-NewTPSS", \
"mkclone", false]' \
https://198.51.100.10/zebi/api/v2/cloneProjectSnapshot -k

190

Snapshot Methods

Response
The above request returns the HTTP status code 200 (OK) and no data.
Example 2
Erroneous Request
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H "Content-Type:application/json" \
-d '["pool1/Local/sProj@NewTPSS", \
"mkclone2", false]' \
https://198.51.100.10/zebi/api/v2/cloneProjectSnapshot -k

Error Response
The above request returns the HTTP status code 400 (bad request) and the following
message:
{

message:
"Unable to open pool1/Local/sProj@NewTPSS: dataset does not
exist."
extendedData: { }
details:
""
code:
"EZEBI_GENERAL"

}

Example 3
Erroneous Request
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H "Content-Type:application/json" \
-d '["pool1/Local/sProj@Manual-P-NewTPSS", \
"", false]' \
https://198.51.100.10/zebi/api/v2/cloneProjectSnapshot -k

Error Response
The above request returns the HTTP status code 400 (bad request) and the following
message:
{

}

message:
"Clone name is not valid."
extendedData: { }
details:
""
code:
"EZEBI_GENERAL"

191

Tegile IntelliFlash API Reference Guide, Version 2.3

cloneReplicaProjectSnapshot
Clones a replica project by its specified snapshot.
First Available Version
API v2.1, IntelliFlash 3.7.0.x
Related APIs
cloneReplicaSubProjectSnapshot
Parameters
snapshotPath
Snapshot path of the project to clone from. The path can be pool/
container/project@snapshot or pool/project@snapshot.
cloneName
The name of the clone project.
readOnly
Read only clone.
inheritSettings
Inherit project settings.
keepLuGuid
Keep LUN GUID
Returns
COMMAND_STATUS.COMMAND_SUCCEED(0) on success.
Exceptions Thrown
EZEBI_RESOURCE_NOT_FOUND
This exception is thrown if the specific project is not found.
EZEBI_INVALID_ARGUMENT
This exception is thrown if the snapshot path is invalid.
EZEBI_RESOURCE_INUSE
This exception is thrown if the target project name or target project mount
point already exists.
EZEBI_REQUEST_INTERRUPTED

192

Snapshot Methods

This exception is thrown if the clone failed.
EZEBI_GENERAL
This exception is thrown if the operation failed.
Examples
Example 1
Request (curl)
curl
-H
-H
-H
-d

-X POST \
'authorization: Basic Auth_TOKENY' \
'cache-control: no-cache' \
'content-type: application/json' \
'[
“pool-a/Replica/my-project@my-snapshot”, “my-clone”, false, true, true
]' https://198.51.100.10/zebi/api/v2/cloneReplicaProjectSnapshot -k

Response
The above request returns the HTTP status code 200 (OK) and 0 as an integer indicating a
successful operation.
Example 2
Erroneous Request (curl)
curl
-H
-H
-H
-d

-X POST \
'authorization: Basic Auth_TOKEN' \
'cache-control: no-cache' \
'content-type: application/json' \
'[
“pool-a/Replica/my-project@non-exist-snapshot”, “my-clone”, false, true,
true
]'
https://198.51.100.10/zebi/api/v2/cloneReplicaProjectSnapshot -k

Error Response
The above request returns the HTTP status code 400 (bad request) and the following
message:
{

"code": "EZEBI_GENERAL",
"details": "Failed to clone from pool-a/Replica/my-project@non-existsnapshot to
pool-a/Local/myclone.
Result message: Failure: cannot open 'pool-a/Replica/my-project@nonexist-snapshot':
dataset does not exist",
"message": "Failed to clone Project 'my-project' when cloning
'pool-a/Replica/my-project@non-exist-snapshot'.",
"extendedData": {"EX_CAUSE_MESSAGE": "Failed to clone from
pool-a/Replica/my-project@non-exist-snapshot to pool-a/Local/myclone.

193

Tegile IntelliFlash API Reference Guide, Version 2.3

Result message: Failure: cannot open 'pool-a/Replica/my-project@nonexist-snapshot':
dataset does not exist", "EX_CAUSE_CODE_NAME":"EZEBI_GENERAL"}
}

cloneReplicaSubProjectSnapshot
Clones a replica sub-project by the specified snapshot.
First Available Version
API v2.1, IntelliFlash 3.7.0.x
Related APIs
cloneReplicaProjectSnapshot
Parameters
snapshotPath
Snapshot path of the project to clone from. The path could be pool/
container/project@snapshot or pool/project@snapshot.
cloneName
The name of the clone project.
readOnly
Read-only clone.
inheritSettings
Inherit project settings.
keepLuGuid
Keep LUN GUID
Returns
COMMAND_STATUS.COMMAND_SUCCEED(0) on success.
Exceptions Thrown
EZEBI_RESOURCE_NOT_FOUND
This exception is thrown if the specific project is not found.
EZEBI_INVALID_ARGUMENT
This exception is thrown if the snapshot path is invalid.

194

Snapshot Methods

EZEBI_RESOURCE_INUSE
This exception is thrown if the target project name or target project mount
point already exists.
EZEBI_REQUEST_INTERRUPTED
This exception is thrown if the clone failed.
EZEBI_GENERAL
This exception is thrown if the operation failed.
Examples
Example 1
Request (curl)
curl
-H
-H
-H
-d

-X POST \
'authorization: Basic Auth_TOKEN' \
'cache-control: no-cache' \
'content-type: application/json' \
'[
"pool-a/Replica/my-project/my-dataset@my-snapshot", "my-clone", false,
true, true
]'
https://198.51.100.10/zebi/api/v2/cloneReplicaSubProjectSnapshot -k

Response
The above request returns the HTTP status code 200 (OK) and 0 as integer indicating a
successful operation.
Example 2
Erroneous Request (curl)
curl
-H
-H
-H
-d

-X POST \
'authorization: Basic Auth_TOKEN' \
'cache-control: no-cache' \
'content-type: application/json' \
'[
"pool-a/Replica/my-project/my-dataset@non-exist-snapshot",
"my-clone", false, true, true
]'
https://198.51.100.10/zebi/api/v2/cloneReplicaSubProjectSnapshot -k

Error Response
The above request returns the HTTP status code 400 (bad request) and the following
message:
{

"code": "EZEBI_REQUEST_INTERRUPTED",

195

Tegile IntelliFlash API Reference Guide, Version 2.3

"details": "Failed to clone from pool-a/Replica/my-project/mydataset@non-exist-snapshot
to pool-a/Local/myclone/my-dataset. Result message: Failure: cannot
open
'pool-a/Replica/my-project/my-dataset@non-exist-snapshot': dataset does
not exist",
"message": "Failed to clone share 'pool-a/Replica/my-project/mydataset@non-exist-snapshot'.",
"extendedData": {"EX_CAUSE_MESSAGE": "Failed to clone from
pool-a/Replica/my-project/my-dataset@non-exist-snapshot to pool-a/
Local/myclone/my-dataset.
Result message: Failure: cannot open 'pool-a/Replica/my-project/mydataset@non-exist-snapshot':
dataset does not exist", "EX_CAUSE_CODE_NAME":"EZEBI_GENERAL"}
}

cloneShareSnapshot
Clones the specified share-level snapshot.
First Available Version
API v1.2, IntelliFlash 2.1.2.1
Related APIs
createShareSnapshot, deleteShareSnapshot.
Parameters
snapshotPath
Path of the share-level snapshot that has to be cloned. The snapshot path
has the format: PoolName/Local/ProjectName/ShareName@SnapshotName.
You can get the snapshotPath from the listSnapshots API. For more
information, see listSnapshots.
cloneName
A string that is used to create the name of the new dataset. The clone name is
appended to the resultant share name. The characters ,, /,\\, !, ?, @, <, >, #, $, ',
%, ^,*,(, ), ~,+, =, },|, :, {, [, ], ;, \', \", & are not allowed in clonename. The empty
and space characters and the null values are not allowed in clonename.
inheritShareSettings
A boolean value that indicates whether the new dataset will inherit the share
settings.
Returns
No Data.

196

Snapshot Methods

Examples
Example 1
Request (curl)
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H "Content-Type:application/json" \
-d '["pool1/Local/sProj/TP_Check@Manual-P-NewTPSS",\
"mk32", false]' \
https://198.51.100.10/zebi/api/v2/cloneShareSnapshot -k

Response
The above request returns the HTTP status code 200 (OK) and no data.
Example 2
Erroneous Request
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H "Content-Type:application/json" \
-d '["pool1/Local/sProj/TP_Check/Manual-P-NewTPSS", \
"mk11", false]'
https://198.51.100.10/zebi/api/v2/cloneShareSnapshot -k

Error Response
The above request returns the HTTP status code 400 (bad request) and the following
message:
{

message:

"Error while cloning: pool1/Local/sProj/TP_Check@null.
Reason: Unable to open pool1/Local/sProj/mk11 : dataset does

not exist"
extendedData: { }
details:
""
code:
"EZEBI_GENERAL"

}

cloneVolumeSnapshot
Clones the specified snapshot of a volume.
First Available Version
API v2.0, IntelliFlash 3.5.0.0
Related APIs
cloneVolumeSnapshot, createVolumeSnapshot, deleteVolumeSnapshot.

197

Tegile IntelliFlash API Reference Guide, Version 2.3

Parameters
snapshotPath
The snapshot path of the volume dataset to be cloned. The snapshot path has
the format: PoolName/Local/ProjectName/VolumeName@SnapshotName.
You can get the snapshotPath from the listSnapshots API. For more
information, see listSnapshots.
cloneName
A string that is used to create the name of the new dataset. The clone name is
appended to the resultant volume name. The characters ,, /,\\, !, ?, @, <, >, #, $,
',%, ^,*,(, ), ~,+, =, },|, :, {, [, ], ;, \', \", & are not allowed in clonename. The empty
and space characters and the null values are not allowed in clonename.
inheritViewsFromVolume
A boolean value that indicates whether the new dataset will inherit views from
the volume.
inheritViewsFromProject
A boolean value that indicates whether the new dataset will inherit views from
the project.
protocol
A boolean value that indicates protocol to be set for the clone. Valid values are
true for iSCSI and false for FC.
Returns
No Data.
Examples
Example 1
Request (curl)
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H "Content-Type:application/json" \
-d '["pool1/Local/vProj/volume1@Manual-Vsnap5",
"vol_clone_new_iscsi_5", true, true, true]' \
https://198.51.100.10/zebi/api/v2/cloneVolumeSnapshot -k

Response
The above request returns the HTTP status code 200 (OK) and no data.

198

Snapshot Methods

cloneVolumeSnapshot
Clones the specified snapshot of a volume.
First Available Version
API v1.2, IntelliFlash 2.1.2.1
Related APIs
cloneVolumeSnapshot,createVolumeSnapshot, deleteVolumeSnapshot.
Parameters
snapshotPath
The snapshot path of the volume dataset to be cloned. The snapshot path has
the format: PoolName/Local/ProjectName/VolumeName@SnapshotName.
You can get the snapshotPath from the listSnapshots API. For more
information, see listSnapshots.
cloneName
A string that is used to create the name of the new dataset. The clone name is
appended to the resultant volume name. The characters ,, /,\\, !, ?, @, <, >, #, $,
',%, ^,*,(, ), ~,+, =, },|, :, {, [, ], ;, \', \", & are not allowed in clonename. The empty
and space characters and the null values are not allowed in clonename.
inheritViewsFromVolume
A boolean value that indicates whether the new dataset will inherit views from
the volume.
inheritViewsFromProject
A boolean value that indicates whether the new dataset will inherit views from
the project.
Returns
No Data.
Examples
Example 1
Request (curl)
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H "Content-Type:application/json" \

199

Tegile IntelliFlash API Reference Guide, Version 2.3

-d '["pool1/Local/vProj/vol2\
@Manual-V-vProj_S3", "mkclone2", false, false]' \
https://198.51.100.10/zebi/api/v2/cloneVolumeSnapshot -k

Response
The above request returns the HTTP status code 200 (OK) and no data.
Example 2
Erroneous Request
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H "Content-Type:application/json" \
-d '["pool1/Local/vProj/vol2\
@vProj_S3","mkclone2", false]' \
https://198.51.100.10/zebi/api/v2/cloneVolumeSnapshot -k

Error Response
The above request returns the HTTP status code 400 (bad request) and the following
message:
{

message:
"No such method found in v2. Please check if method name and
arguments are correct."
extendedData: {
EX_CAUSE_MESSAGE:
"No such method found in v2.
Please check if method name and arguments are correct."
}
details:
"No such method found in v2.
Please check if method name and arguments are correct."
code:
"EZEBI_GENERAL"

}

Example 3
Erroneous Request
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H "Content-Type:application/json" \
-d '["pool1/Local/vProj/vol2@vProj","mkclone2", false]' \
https://198.51.100.10/zebi/api/v2/cloneVolumeSnapshot -k

Error Response
The above request returns the HTTP status code 400 (bad request) and the following
message:
{

200

message:

"Unknown error cloning volume."

Snapshot Methods

}

extendedData: { }
details:
""
code:
"EZEBI_GENERAL"

createProjectSnapshot
Recursively creates snapshots of the specified project and the datasets within the project.
The string "Manual-P-" is prefixed to the names of the snapshots created.
First Available Version
API v1.2, IntelliFlash 2.1.2.1
Related APIs
getProjectSnapshotCreationStatus, listSnapshots, createVolumeSnapshot, createShareSnapshot,
deleteProjectSnapshot.
Parameters
project
A Project_V1_2 object that specifies the project for which the snapshots are
created.
snapshotName
Name for the new snapshots that are created. The characters ,, /,\\, !, ?, @, <,
>, #, $, ',%, ^,*,(, ), ~,+, =, },|, :, {, [, ], ;, \', \", & are not allowed in snapshotName.
The empty and space characters and the null values are not allowed in
snapshotName.
quiesce
A boolean that specifies whether the snapshot is quiesced or not.
Returns
No Data.
Examples
Example 1
Request (curl)
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H "Content-Type:application/json" \

201

Tegile IntelliFlash API Reference Guide, Version 2.3

-d '[{"name": "sProj", "local": true, \
"poolName": "pool1"}, "NewTPSS9", false]' \
https://198.51.100.10/zebi/api/v2/createProjectSnapshot -k

Response
The above request returns the HTTP status code 200 (OK) and no data.
Example 2
Erroneous Request
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H "Content-Type:application/json" \
-d '[{"name": "sProj", "local": true, \
"poolName": "NotExistantPool"}, "NewTPSS9", false]' \
https://198.51.100.10/zebi/api/v2/createProjectSnapshot -k

Error Response
The above request returns the HTTP status code 400 (bad request) and the following
message:
{

message:
"Unable to open NotExistantPool/Local/sProj: dataset does not
exist."
extendedData: { }
details:
""
code:
"EZEBI_GENERAL"

}

createShareSnapshot
Recursively creates snapshot of the specified share. The string "Manual-S-" is prefixed to
names of the snapshots created.
First Available Version
API v1.2, IntelliFlash 2.1.2.1
Related APIs
getShareSnapshotCreationStatus, listSnapshots, deleteShareSnapshot, cloneShareSnapshot.
Parameters
share
The Share_V1_0 object that specifies the share for which the snapshots are
created.

202

Snapshot Methods

snapshotName
Name for the new snapshots that are created. The characters ,, /,\\, !, ?, @, <,
>, #, $, ',%, ^,*,(, ), ~,+, =, },|, :, {, [, ], ;, \', \", & are not allowed in snapshotName.
The empty and space characters and the null values are not allowed in
snapshotName.
quiesce
A boolean value that specifies whether the snapshots are quiesced or not.
Returns
No Data.
Examples
Example 1
Request (curl)
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H "Content-Type:application/json" \
-d '[{"poolName": "pool1", "projectName": "sProj",\
"name": "TP_Check-newclone", "availableSize": 0, \
"totalSize": 7794361020176, \
"datasetPath": "pool1/Local/sProj/TP_Check-newclone", \
"mountpoint": null, "local": true }, \
"NewShareSnapShot", false]' \
https://198.51.100.10/zebi/api/v2/createShareSnapshot -k

Response
The above request returns the HTTP status code 200 (OK) and no data.
Example 2
Erroneous Request
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H "Content-Type:application/json" \
-d '[{"poolName": "pool1", "projectName": "sProj", \
"name": "TP_Check-newclone", "availableSize": 0, \
"totalSize": 7794361020176, \
"datasetPath": "pool1/Local/sProj/TP_Check-newclone", \
"mountpoint": null, "local": true }, \
"NewShareSnapShot", false]' \
https://198.51.100.10/zebi/api/v2/createShareSnapshot -k

Error Response

203

Tegile IntelliFlash API Reference Guide, Version 2.3

The above request returns the HTTP status code 400 (bad request) and the following
message:
{ message: "Unable to open NotAPool/Local/sProj/TP_s1:
dataset does not exist."
extendedData: { }
details:
""
code:
"EZEBI_GENERAL"}

createSnapshotSchedule
Creates a snapshot schedule for the specified dataset.
First Available Version
API v2.1, IntelliFlash 3.7.0.x
Related APIs
getSnapshotSchedule, deleteSnapshotSchedules, deleteSnapshotSchedule
Parameters
schedule
Snapshot schedule definition.
This operation is not allowed for replica project datasets.
Returns
Returns a schedule ID.
Exceptions Thrown
EZEBI_RESOURCE_NOT_FOUND
This exception is thrown if the specified dataset does not exist.
EZEBI_INVALID_ARGUMENT
This exception is thrown if the schedule is invalid.
Examples
Example 1
Request (curl)
curl -X POST \

204

Snapshot Methods

-H
-H
-H
-d

{

'authorization: Basic Auth_TOKEN \
'cache-control: no-cache' \
'content-type: application/json' \
'[
"scheduleId":0,
"retentionPeriod": 6,
"scheduleIntervalType": "Week",
"repeatInterval": 1,
"startDate": "2017-08-09",
"startTime": "10:00",
"endTime": "",
"daysOfWeek": "2,3,4,5,6",
"dayOfMonth": 0,
"weekdayOfMonth": "",
"datasetPath": "pool-a/Local/demoProject",
"quiesce": "Off"

}
]' \
https://198.51.100.10/zebi/api/v2/createSnapshotSchedule -k

Response:
The above request returns the HTTP status code 200 (OK) and a new schedule ID. For
example, 44.
Example 2
Erroneous Request (curl)
curl
-H
-H
-H
-d
{

-X POST \
'authorization: Basic Auth_TOKEN \
'cache-control: no-cache' \
'content-type: application/json' \
'[
"scheduleId":0,
"retentionPeriod": 6,
"scheduleIntervalType": "Hour",
"repeatInterval": 1,
"startDate": "2017-08-10",
"startTime": "10:00",
"endTime": "",
"daysOfWeek": "",
"dayOfMonth": 0,
"weekdayOfMonth": "",
"datasetPath": "pool-a/Local/demoProject",
"quiesce": "Off"

}
]' \
https://198.51.100.10/zebi/api/v2/createSnapshotSchedule -k

Response

205

Tegile IntelliFlash API Reference Guide, Version 2.3

In this example, the request returns the HTTP status code 400 (Bad Request) and the
following message:
{

"code":"EZEBI_INVALID_ARGUMENT",
"details":"createSnapshotSchedule.arg0
value
'com.tegile.skywalk.api.v2.IPublicAPI_V2_1$SnapshotSchedule_V2_1@10ed209':
Invalid end time. End time should be in 24HR HH:MM format.",
"message":"Invalid end time. End time should be in 24HR HH:MM format.",
"extendedData":{"EX_CAUSE_MESSAGE":null}

}

Example 3
Erroneous Request
curl
-H
-H
-H
-d
{

-X POST \
'authorization: Basic Auth_TOKEN \
'cache-control: no-cache' \
'content-type: application/json' \
'[
"scheduleId":0,
"retentionPeriod": 6,
"scheduleIntervalType": "Monthly",
"repeatInterval": 1,
"startDate": "2017-08-10",
"startTime": "10:00",
"endTime": "20:00",
"daysOfWeek": "",
"dayOfMonth": 0,
"weekdayOfMonth": "",
"datasetPath": "pool-a/Local/demoProject",
"quiesce": "Off"

}
]' \
https://198.51.100.10/zebi/api/v2/createSnapshotSchedule -k

Error Response
The above request returns the HTTP status code 400 (bad request) and the following
message:
{

"code":"EZEBI_INVALID_ARGUMENT",
"details":"createSnapshotSchedule.arg0 value
'com.tegile.skywalk.api.v2.IPublicAPI_V2_1$SnapshotSchedule_V2_1@5b6c021e':
Invalid schedule interval type.
Possible values are: Minute, Hour, Day, Week, Month.",
"message":"Invalid schedule interval type.
Possible values are: Minute, Hour, Day, Week, Month.",

206

Snapshot Methods

"extendedData":{"EX_CAUSE_MESSAGE":null}

}

Example 4
Erroneous Request
curl
-H
-H
-H
-d
{

-X POST \
'authorization: Basic Auth_TOKEN \
'cache-control: no-cache' \
'content-type: application/json' \
'[
"scheduleId":0,
"retentionPeriod": 6,
"scheduleIntervalType": "Hour",
"repeatInterval": 1,
"startDate": "2017-08-10",
"startTime": "10:00",
"endTime": "20:00",
"daysOfWeek": "",
"dayOfMonth": 0,
"weekdayOfMonth": "",
"datasetPath": "pool-a/Local/UNKNOWNProject",
"quiesce": "Off"

}
]' \
https://198.51.100.10/zebi/api/v2/createSnapshotSchedule -k

Error Response
The above request returns the HTTP status code 404 (not found) and the following message:
{

}

"code":"EZEBI_RESOURCE_NOT_FOUND",
"details":"",
"message":"Dataset does not exist.",
"extendedData":{}

createVolumeSnapshot
Recursively creates snapshot of the specified volume. The string "Manual-V-" is prefixed to
the names of the snapshots created.
First Available Version
API v1.2, IntelliFlash 2.1.2.1
Related APIs

207

Tegile IntelliFlash API Reference Guide, Version 2.3

getProjectSnapshotCreationStatus, listSnapshots, createProjectSnapshot, createShareSnapshot,
deleteProjectSnapshot.
Parameters
volume
A Volume_V1_0 object for which snapshot needs to be created.
snapshotName
Name for the new snapshots that are created. The characters ,, /,\\, !, ?, @, <,
>, #, $, ',%, ^,*,(, ), ~,+, =, },|, :, {, [, ], ;, \', \", & are not allowed in snapshotName.
The empty and space characters and the null values are not allowed in
snapshotName.
quiesce
A boolean value that specifies whether the snapshots are quiesced or not.
Returns
No Data.
Examples
Example 1
Request (curl)
curl -X POST -H "Authorization:Basic Auth_TOKEN"
-H "Content-Type:application/json" \
-d '[{"poolName": "pool1", \
"projectName": "vProj", "name": "vol2", \
"luId": "600144F0A6308900000053BD51250002", \
"volSize": 161061273600, "blockSize": "32KB", \
"thinProvision": false, "protocol": "FC", \
"datasetPath": "pool1/Local/vProj/vol2", \
"local": true}, "vProj_S3", false]' \
https://198.51.100.10/zebi/api/v2/createVolumeSnapshot -k

Response
The above request returns the HTTP status code 200 (OK) and no data.
Example 2
Erroneous Request
curl -X POST -H "Authorization:Basic Auth_TOKEN"
-H "Content-Type:application/json" \
-d '[{"poolName": "NotaPool", \

208

Snapshot Methods

"projectName": "vProj", "name": "vol2", \
"luId": "600144F0A6308900000053BD51250002", \
"volSize": 161061273600, "blockSize": "32KB", \
"thinProvision": false, "protocol": "FC", \
"datasetPath": "NotaPool/Local/vProj/vol2", \
"local": true}, "vProj_S3", false]' \
https://198.51.100.10/zebi/api/v2/createVolumeSnapshot -k

Error Response
The above request returns the HTTP status code 400 (bad request) and the following
message:
{

message:

"Unable to open NotaPool/Local/vProj/vol2: \
dataset does not exist."
extendedData: { }
details:
""
code:
"EZEBI_GENERAL"

}

deleteProjectSnapshot
Deletes the specified project snapshot.
Caution: If the recursive parameter is set to true, all dependent objects
(snapshots and clones of the specified project snapshot) are also deleted.
Warning: The delete operation is not reversable.
First Available Version
API v1.2, IntelliFlash 2.1.2.1
Related APIs
createProjectSnapshot.
Parameters
projectSnapshotPath
Dataset path of the project snapshot. The dataset path of a project snapshot
has the following format: PoolName/Local/ProjectName@SnapshotName.
You can get the snapshotPath from the listSnapshots API. For more
information, see listSnapshots.
recursive

209

Tegile IntelliFlash API Reference Guide, Version 2.3

A boolean value that specifies whether dependents of the snapshot are
deleted before the snapshot is deleted.
Returns
A JSON object of type SnapShotDeletionStatus that contains information about
the snapshot deletion status.
Examples
Example 1
Request (curl)
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H "Content-Type:application/json" \
-d '["pool1/Local/sProj@Manual-P-NewTPSS2", \
true]' \
https://198.51.100.10/zebi/api/v2/deleteProjectSnapshot

-k

Response
The above request returns the HTTP status code 200 (OK) and the following data:
{
snapshotDeletionStatus:
0
deletedList: [
"pool1/Local/sProj@Manual-P-NewTPSS9"
"pool1/Local/sProj/TP_Check@Manual-P-NewTPSS9"
"pool1/Local/sProj/TP_Check-newclone@Manual-P-NewTPSS9"
"pool1/Local/sProj/TP_NFS_Share@Manual-P-NewTPSS9"
"pool1/Local/sProj/TP_NFS_Share-newclone@Manual-P-NewTPSS9"
"pool1/Local/sProj/manus-pc-backup@Manual-P-NewTPSS9"
"pool1/Local/sProj/newShareClone@Manual-P-NewTPSS9"
]
failedToDeleteList: [ ]
}

Example 2
Erroneous Request
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H "Content-Type:application/json" \
-d '["pool1/Local/sProj@NewTPSS2", true]' \
https://198.51.100.10/zebi/api/v2/deleteProjectSnapshot -k

Error Response

210

Snapshot Methods

The above request returns the HTTP status code 200 (OK) and the following data:
{
snapshotDeletionStatus:
2
deletedList: [ ]
failedToDeleteList: ["pool1/Local/sProj@NewTPSS2"]
}

Example 3
Erroneous Request
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H "Content-Type:application/json" \
-d '["pool1/Local/sProj/Manual-P-NewTPSS2", \
true]' \
https://198.51.100.10/zebi/api/v2/deleteProjectSnapshot -k

Error Response
The above request returns the HTTP status code 400 (bad request) and the following
message:
{

}

message:
"Unable to open NotAPool/Local/sProj: dataset does not exist."
extendedData: { }
details:
""
code:
"EZEBI_GENERAL"

deleteShareSnapshot
Deletes the specified share snapshot.
Caution: If the recursive parameter is set to true, all dependent objects
(snapshots and clones of the specified share snapshot) are also deleted.
Warning: The delete operation is not reversable.
First Available Version
API v1.2, IntelliFlash 2.1.2.1
Related APIs
createShareSnapshot.
Parameters

211

Tegile IntelliFlash API Reference Guide, Version 2.3

shareSnapshotPath
Dataset path of the share snapshot. The dataset path of
a share snapshot has the following format: PoolName/
Local/ProjectName/ShareName@SnapshotName. You can get the
snapshotPath from the listSnapshots API. For more information, see
listSnapshots.
recursive
A boolean value that specifies whether dependents of the snapshot are
deleted before deleting the snapshot.
Returns
A JSON object of type SnapShotDeletionStatus.
Examples
Example 1
Request (curl)
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H "Content-Type:application/json" \
-d '["pool1/Local/proj1/share1@Manual-P-snap1", false]' \
https://198.51.100.10/zebi/api/v2/deleteShareSnapshot -k

Response
{
snapshotDeletionStatus:
0
deletedList: ["pool1/Local/proj1/share1@Manual-P-snap1"]
failedToDeleteList: [ ]
}

Example 2
Erroneous Request
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H "Content-Type:application/json" \
-d '["pool1/Local/proj1/NoSuchShare@Manual-P-snap1", false]' \
https://198.51.100.10/zebi/api/v2/deleteShareSnapshot -k

Error Response

212

Snapshot Methods

The above request returns the HTTP status code 400 (bad request) and the following
message:
{

}

snapshotDeletionStatus:
2
deletedList: [ ]
failedToDeleteList: [
"pool1/Local/proj1/NoSuchShare@Manual-P-snap1"
]

deleteSnapshotSchedule
Deletes the snapshot schedule for the dataset path, specified by the snapshot ID.
First Available Version
API v2.1, IntelliFlash 3.7.0.x
Related APIs
createSnapshotSchedule, getSnapshotSchedule, deleteSnapshotSchedules
Parameters
datasetPath
Full path of the dataset or project.
This operation is not allowed for replica project datasets.
scheduleId
ID of the snapshot schedule.
Returns
COMMAND_STATUS.COMMAND_SUCCEED (0) on success.
Exceptions Thrown
EZEBI_RESOURCE_NOT_FOUND
This exception is thrown if the specified dataset does not exist.
EZEBI_INVALID_ARGUMENT
This exception is thrown if the path specified belongs to a replica dataset or if
the dataset path is invalid.

213

Tegile IntelliFlash API Reference Guide, Version 2.3

Examples
Example 1
Request (curl)
curl -X POST \
-H 'authorization: Basic Auth_TOKEN \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '[
"pool-a/Local/demoProject", 41
]' \
https://198.51.100.10/zebi/api/v2/deleteSnapshotSchedule -k

Response
The above request returns the HTTP status code 200 (OK) and 0 indicating success.
Example 2
Erroneous Request (curl)
curl -X POST \
-H 'authorization: Basic Auth_TOKEN \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '[
"pool-a/Local/demoProject", 100
]' \
https://198.51.100.10/zebi/api/v2/deleteSnapshotSchedule -k

Error Response
In this example, the request returns the HTTP status code 400 (bad request) and the
following message:
{

}

"code":"EZEBI_INVALID_ARGUMENT",
"details":"",
"message":"Specified schedule id does not exist.",
"extendedData":{}

Example 3
Erroneous Request
curl -X POST \

214

Snapshot Methods

-H 'authorization: Basic Auth_TOKEN \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '[
"pool-a/Replica/replicaProject", 10
]' \
https://198.51.100.10/zebi/api/v2/deleteSnapshotSchedule -k

Error Response
The above request returns the HTTP status code 400 (bad request) and the following
message:
{

"code":"EZEBI_INVALID_ARGUMENT",
"details":"deleteSnapshotSchedule.arg0 value 'pool-a/Replica/
replicaProject':
Local dataset path expected. For example, valid formats are
'pool-name/Local/project-name' or 'pool-name/Local/project-name/shareor-lun-name'.",
"message":"Local dataset path expected. For example,
valid formats are 'pool-name/Local/project-name' or
'pool-name/Local/project-name/share-or-lun-name'.",
"extendedData":{"EX_CAUSE_MESSAGE":null}
}

deleteSnapshotSchedules
Deletes all snapshot schedules for the specified dataset.
First Available Version
API v2.1, IntelliFlash 3.7.0.x
Related APIs
createSnapshotSchedule, getSnapshotSchedule, deleteSnapshotSchedule
Parameters
datasetPath
Full path of the dataset or project.
This operation is not allowed for replica project datasets.
Returns
COMMAND_STATUS.COMMAND_SUCCEED (0) on success.

215

Tegile IntelliFlash API Reference Guide, Version 2.3

Exceptions Thrown
EZEBI_RESOURCE_NOT_FOUND
This exception is thrown if the specified dataset does not exist.
EZEBI_INVALID_ARGUMENT
This exception is thrown if the path specified belongs to a replica dataset or if
the dataset path is invalid.
Examples
Example 1
Request (curl)
curl -X POST \
-H 'authorization: Basic Auth_TOKEN \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '[
"pool-a/Local/demoProject"
]' \
https://198.51.100.10/zebi/api/v2/deleteSnapshotSchedules -k

Response
The above request returns the HTTP status code 200 (OK) and 0 indicating success.
Example 2
Request (curl)
curl -X POST \
-H 'authorization: Basic Auth_TOKEN \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '[
"pool-a/Local/UNKNOWNProject"
]' \
https://198.51.100.10/zebi/api/v2/deleteSnapshotSchedules -k

Response
In this example, the request returns the HTTP status code 404 (Not Found) and the following
message:
{

216

"code":"EZEBI_RESOURCE_NOT_FOUND",
"details":"",

Snapshot Methods

}

"message":"Dataset does not exist.",
"extendedData":{}

Example 3
Request
curl -X POST \
-H 'authorization: Basic Auth_TOKEN \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '[
"pool-a/Replica/replicaProject"
]' \
https://198.51.100.10/zebi/api/v2/deleteSnapshotSchedules -k

Response
The above request returns the HTTP status code 400 (bad request) and the following
message:
{

"code":"EZEBI_INVALID_ARGUMENT",
"details":"deleteSnapshotSchedule.arg0 value 'pool-a/Replica/
replicaProject':
Local dataset path expected. For example, valid formats are
'pool-name/Local/project-name' or 'pool-name/Local/project-name/shareor-lun-name'.",
"message":"Local dataset path expected. For example,
valid formats are 'pool-name/Local/project-name' or
'pool-name/Local/project-name/share-or-lun-name'.",
"extendedData":{"EX_CAUSE_MESSAGE":null}
}

deleteVolumeSnapshot
Deletes the specified volume snapshot.
Caution: If the recursive parameter is set to true, all dependent objects
(snapshots and clones of the specified volume snapshot) are also deleted.
Warning: The delete operation is not reversable.
First Available Version
API v1.2, IntelliFlash 2.1.2.1
Related APIs

217

Tegile IntelliFlash API Reference Guide, Version 2.3

createVolumeSnapshot
Parameters
volumeSnapshotPath
Dataset path of the volume snapshot. The dataset path of
a volume snapshot has the following format: PoolName/
Local/ProjectName/VolumeName@SnapshotName. You can get the
snapshotPath from the listSnapshots API. For more information, see
listSnapshots.
recursive
A boolean value that specifies whether dependents of the snapshot are
deleted before deleting the snapshot.
Returns
A JSON object of type SnapShotDeletionStatus.
Examples
Example 1
Request (curl)
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H "Content-Type:application/json" \
-d '[{"pool1/Local/proj1/vol1@Manual-V-snap1", false}]' \
https://198.51.100.10/zebi/api/v2/deleteVolumeSnapshot -k

Response
The above request returns the HTTP status code 200 (OK) and the following data:
{

snapshotDeletionStatus:
0
deletedList: ["pool1/Local/proj1/vol1@Manual-V-snap1"]
failedToDeleteList: [ ]

}

Example 2
Erroneous Request
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H "Content-Type:application/json" \
-d '[{"pool1/Local/NoProj/vol1@Manual-V-snap1", false}]' \
https://198.51.100.10/zebi/api/v2/deleteVolumeSnapshot -k

218

Snapshot Methods

Error Response
The above request returns the HTTP status code 400 (bad request) and the following
message:
{

message:
"Unable to open pool1/Local/NoProj/vol1@Manual-V-snap1: dataset
does not exist."
extendedData: { }
details:
""
code:
"EZEBI_GENERAL"

}

getProjectCloneStatus
Gets the status of a clone request on the specified project snapshot.
First Available Version
API v1.2, IntelliFlash 2.1.2.1
Related APIs
cloneProjectSnapshot.
Parameters
snapshotPath
Path to a project snapshot. The snapshot path has the format: PoolName/
Local/ProjectName@SnapshotName. You can get the snapshotPath from the
listSnapshots API. For more information, see listSnapshots.
cloneName
Name of the new dataset.
Returns
A JSON object of type ProjectCloneProgressStatus_v1_2.
Examples
Example 1
Request (curl)
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H "Content-Type:application/json" \
-d '["pool1/Local/sProj@Manual-P-NewTPSS", \
"mkclone"]' \

219

Tegile IntelliFlash API Reference Guide, Version 2.3

https://198.51.100.10/zebi/api/v2/getProjectCloneStatus -k

Response
The above request returns the HTTP status code 200 (OK) and the following data:
{

}

failedSubProjects:
totalSubProjects:
projectCloneState:

1

6

3

Example 2
Erroneous Request
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H "Content-Type:application/json" \
-d '["pool1/Local/sProj@NewTPSS","mkclone"]' \
https://198.51.100.10/zebi/api/v2/getProjectCloneStatus -k

Error Response
The above request returns the HTTP status code 400 (bad request) and the following
message:
{

message:
"Unable to open pool1/Local/sProj@NewTPSS: dataset does not
exist."
extendedData: { }
details:
""
code:
"EZEBI_GENERAL"

}

getProjectSnapshotCreationStatus
Gets the status of a project snapshot creation request.
First Available Version
API v1.2, IntelliFlash 2.1.2.1
Related APIs
createProjectSnapshot.
Parameters
dataSetPath

220

Snapshot Methods

Dataset path of the project. The dataset path has the format: PoolName/
Local/ProjectName. You can get the datasetPath from the listProjects
API. For more information, see listProjects.
snapshotName
Name of the project snapshot for which status is required. You must use the
name that you specified while invoking the createProjectSnapshot API, because
this API prefixes the string "Manual-P-" to the name before getting the status.
Returns
A JSON object of type SnapshotProgressStatus.
Examples
Example 1
Request (curl)
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H "Content-Type:application/json" \
-d '["pool1/Local/sProj", "NewTPSS111"]' \
https://198.51.100.10/zebi/api/v2/\
getProjectSnapshotCreationStatus -k

Response
The above request returns the HTTP status code 200 (OK) and the following data:
[

]

{
}

snapshotProgressStatus: 0

Example 2
Erroneous Request
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H "Content-Type:application/json" \
-d '["NotAPool/Local/sProj", ""]' \
https://198.51.100.10/zebi/api/v2/\
getProjectSnapshotCreationStatus -k

Error Response

221

Tegile IntelliFlash API Reference Guide, Version 2.3

The above request returns the HTTP status code 200 (OK) and the following data:
{
}

snapshotProgressStatus:

2

Example 3
Erroneous Request
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H "Content-Type:application/json" \
-d '["NotAPool/Local/sProj", "NewTPSS111"]' \
https://198.51.100.10/zebi/api/v2/\
getProjectSnapshotCreationStatus -k

Error Response
The above request returns the HTTP status code 400 (bad request) and the following
message:
{

}

message:
"Unable to open pool1/Local/sProj2: dataset does not exist."
extendedData: { }
details:
""
code:
"EZEBI_GENERAL"

getShareSnapshotCreationStatus
Gets the status of a share snapshot creation request.
First Available Version
API v1.2, IntelliFlash 2.1.2.1
Related APIs
createShareSnapshot.
Parameters
dataSetPath
Dataset path of the share. The dataset path has the format: PoolName/
Local/ProjectName/ShareName. You can get the datasetPath from the
listShares API. For more information, see listShares and Share_V1_0.
snapshotName

222

Snapshot Methods

Name of the share snapshot for which status is required. You must use the
name that you specified while invoking the createShareSnapshot API, because
this API prefixes the string "Manual-S-" to the name before getting the status.
Returns
A JSON object of type SnapshotProgressStatus.
Examples
Example 1
Request (curl)
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H "Content-Type:application/json" \
-d '["pool1/Local/sProj/TP_Check-newclone", \
"NewShareSnapShot"]' \
https://198.51.100.10/zebi/api/v2/\
getShareSnapshotCreationStatus -k

Response
The above request returns the HTTP status code 200 (OK) and the following data:
[

]

{
}

snapshotProgressStatus: 0

Example 2
Erroneous Request
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H "Content-Type:application/json" \
-d '["pool1/Local/sProj/TP_Check", \
"NotASnapShot"]' \
https://198.51.100.10/zebi/api/v2/\
getShareSnapshotCreationStatus -k

Error Response
The above request returns the HTTP status code 200 (OK) and the following data:
[

{
}

snapshotProgressStatus: 2

223

Tegile IntelliFlash API Reference Guide, Version 2.3

]

Example 3
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H "Content-Type:application/json" \
-d '["NotAPool/Local/sProj/TP_Check", \
"NotASnapShot"]' \
https://198.51.100.10/zebi/api/v2/\
getShareSnapshotCreationStatus -k

Error Response
The above request returns the HTTP status code 400 (bad request) and the following
message:
{

message:
"Unable to open NotAPool/Local/sProj/TP_Check: dataset does not
exist."
extendedData: { }
details:
""
code:
"EZEBI_GENERAL"

}

getSnapshotSchedule
Returns snapshot schedules for a dataset.
First Available Version
API v2.1, IntelliFlash 3.7.0.x
Related APIs
createSnapshotSchedule, deleteSnapshotSchedules, deleteSnapshotSchedule
Parameters
datasetPath
Full path of the dataset.
This operation is not allowed for replica project datasets.
Returns
Returns a list of snapshot schedules for the specified dataset path.

224

Snapshot Methods

Exceptions Thrown
EZEBI_RESOURCE_NOT_FOUND
This exception is thrown if the specified dataset does not exist.
EZEBI_INVALID_ARGUMENT
This exception is thrown if the path specified belongs to a replica dataset.
Examples
Example 1
Request (curl)
curl -X POST \
-H 'authorization: Basic Auth_TOKEN \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '[
"pool-a/Local/demoProject"
]' \
https://198.51.100.10/zebi/api/v2/getSnapshotSchedule -k

Response:
The above request returns the HTTP status code 200 (OK) and a schedule object as shown
below.
[

]

{

}

"scheduleId": 42,
"retentionPeriod": 6,
"scheduleIntervalType": "Week",
"repeatInterval": 1,
"startDate": "2017-08-09",
"startTime": "00:00",
"endTime": "00:00",
"daysOfWeek": "2,3,4,5,6",
"dayOfMonth": 0,
"weekdayOfMonth": null,
"datasetPath": "pool-a/Local/demoProject",
"quiesce": "Off"

Example 2
Erroneous Request (curl)
curl -X POST \

225

Tegile IntelliFlash API Reference Guide, Version 2.3

-H 'authorization: Basic Auth_TOKEN \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '[
"pool-a/Local/UNKNOWNProject"
]' \
https://198.51.100.10/zebi/api/v2/getSnapshotSchedule -k

Response
The above request returns the HTTP status code 404 (Not Found) and the following
message:
{

}

"code":"EZEBI_RESOURCE_NOT_FOUND",
"details":"",
"message":"Dataset does not exist.",
"extendedData":{}

Example 3
Erroneous Request (curl)
curl -X POST \
-H 'authorization: Basic Auth_TOKEN \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '[
"pool-a/Replica/replicaProject"
]' \
https://198.51.100.10/zebi/api/v2/getSnapshotSchedule -k

Response
In this example, the request returns the HTTP status code 400 (Bad Request) and the
following message:
{

}

226

"code":"EZEBI_INVALID_ARGUMENT",
"details":"getSnapshotSchedule.arg0 value
'pool-a/Replica/replicaProject': Local dataset path expected.
For example, valid formats are 'pool-name/Local/project-name' or
'pool-name/Local/project-name/share-or-lun-name'.",
"message":"Local dataset path expected.
For example, valid formats are 'pool-name/Local/project-name' or
'pool-name/Local/project-name/share-or-lun-name'.",
"extendedData":{"EX_CAUSE_MESSAGE":null}

Snapshot Methods

getVolumeSnapshotCreationStatus
Gets the status of a volume snapshot creation request.
First Available Version
API v1.2, IntelliFlash 2.1.2.1
Related APIs
createVolumeSnapshot.
Parameters
dataSetPath
Dataset path of the volume. The dataset path has the format: PoolName/
Local/ProjectName/VolumeName. You can get the datasetPath from the
listVolumes API. For more information, see listVolumes and Volume_V1_0.
snapshotName
Name of the volume snapshot for which status is required. You must use the
name that you specified while invoking the createVolumeSnapshot API, because
this API prefixes the string "Manual-V-" to the name before getting the status.
Returns
A JSON object of type SnapshotProgressStatus.
Examples
Example 1
Request (curl)
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H "Content-Type:application/json" \
-d '["pool1/Local/vProj/vol2", \
"vProj_S3"]' \
https://198.51.100.10/zebi/api/v2/\
getVolumeSnapshotCreationStatus -k

Response
The above request returns the HTTP status code 200 (OK) and the following data.
[

{
}

snapshotProgressStatus: 0

227

Tegile IntelliFlash API Reference Guide, Version 2.3

]

Example 2
Erroneous Request
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H "Content-Type:application/json" \
-d '["pool1/Local/vProj/vol2", \
"vProj_S"]' \
https://198.51.100.10/zebi/api/v2/\
getVolumeSnapshotCreationStatus -k

Error Response
The above request returns the HTTP status code 200 (OK) and the following data:
{snapshotProgressStatus:

2}

Example 3
Erroneous Request
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H "Content-Type:application/json" \
-d '["NoPool/Local/vProj/vol2", \
"vProj_S3"]' \
https://198.51.100.10/zebi/api/v2/\
getVolumeSnapshotCreationStatus -k

Error Response
The above request returns the HTTP status code 400 (bad request) and the following
message:
{

message:
"Unable to open NoPool/Local/vProj/vol2: dataset does not
exist."
extendedData: { }
details:
""
code:
"EZEBI_GENERAL"

}

inheritSnapshotSettingsFromProject
Inherits project snapshot settings for local dataset.

228

Snapshot Methods

First Available Version
API v2.1, IntelliFlash 3.7.0.x
Related APIs
isSnapshotSchedulesInheritedFromProject
Parameters
datasetPath
This string uniquely identifies the dataset on the IntelliFlash array.
Returns
COMMAND_STATUS.COMMAND_SUCCEED(0) on success.
Exceptions Thrown
EZEBI_RESOURCE_NOT_FOUND
This error is thrown if the specified dataset doesn’t exist.
EZEBI_INVALID_ARGUMENT
This error is thrown if the path specified belongs to a replica dataset.
Examples
Example 1
Request (curl)
curl
-H
-H
-H
-d

-X POST \
'authorization: Basic Auth_TOKEN' \
'cache-control: no-cache' \
'content-type: application/json' \
'[
“pool-a/Local/my-project/my-dataset”
]'
https://198.51.100.10/zebi/api/v2/inheritSnapshotSettingsFromProject -k

Response
The above request returns the HTTP status code 200 (OK) and 0 as integer indicating a
successful operation.
Example 2
Erroneous Request (curl)
curl -X POST \
-H 'authorization: Basic Auth_TOKEN' \

229

Tegile IntelliFlash API Reference Guide, Version 2.3

-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '[
“pool-a/Local/my-project/non-exist-dataset”

]'
https://198.51.100.10/zebi/api/v2/inheritSnapshotSettingsFromProject -k

Error Response
The above request returns the HTTP status code 404 (not found) and the following message:
{

}

"code": "EZEBI_RESOURCE_NOT_FOUND",
"details": "",
"message": "Invalid dataset path. ",
"extendedData": {}

isSnapshotSchedulesInheritedFromProject
Checks whether the dataset is currently inheriting project snapshot settings.
First Available Version
API v2.1, IntelliFlash 3.7.0.x
Related APIs
inheritSnapshotSettingsFromProject
Parameters
datasetPath
This string uniquely identifies the dataset on the IntelliFlash array.
Returns
TRUE, if the snapshot schedule is inherited from project
FALSE, if the snapshot schedule is overridden by the project rule
Exceptions Thrown
EZEBI_RESOURCE_NOT_FOUND
This error is thrown if the specified dataset doesn’t exist.
Examples
Example 1

230

Snapshot Methods

Request (curl)
curl
-H
-H
-H
-d

-X POST \
'authorization: Basic Auth_TOKEN' \
'cache-control: no-cache' \
'content-type: application/json' \
'[
“pool-a/Local/my-project/my-dataset”
]'
https://198.51.100.10/zebi/api/v2/isSnapshotSchedulesInheritedFromProject -k

Response
The above request returns the HTTP status code 200 (OK) and a boolean (true or false).
Example 2
curl
-H
-H
-H
-d

-X POST \
'authorization: Basic Auth_TOKEN' \
'cache-control: no-cache' \
'content-type: application/json' \
'[
“pool-a/Local/my-project/non-exist-dataset”
]'
https://198.51.100.10/zebi/api/v2/isSnapshotSchedulesInheritedFromProject -k

Error Response
The above request returns the HTTP status code 404 (not found) and the following message:
{

}

"code": "EZEBI_RESOURCE_NOT_FOUND",
"details": "",
"message": "Invalid dataset path. ",
"extendedData": {}

listDependenciesAndSnapshotCountOnDelete
Lists all the dependents affected by the delete operation.
First Available Version
API v2.1, IntelliFlash 3.7.0.x
Related APIs
listDependenciesAndSnapshotCountOnRollback

231

Tegile IntelliFlash API Reference Guide, Version 2.3

Parameters
path
The project path, share or volume path, or snapshot path to delete.
Returns
A Dependencies object.
Exceptions Thrown
EZEBI_RESOURCE_NOT_FOUND
This error is thrown if the specified project path, share or volume path, or
snapshot path is not found.
EZEBI_INVALID_ARGUMENT
This error is thrown if the specified path is invalid.
Examples
Example 1
Request (curl)
curl
-H
-H
-H
-d

-X POST \
'authorization: Basic Auth_TOKEN' \
'cache-control: no-cache' \
'content-type: application/json' \
'[
"pool-01/Local/genericProject"
]'
https://198.51.100.10/zebi/api/v2/listDependenciesAndSnapshotCountOnDelete k

Response
{

232

"deleteableSnapCount": {
"pool-01/Local/genericProject/clone2": 2,
"pool-01/Local/genericProject/genericLun-genericProject-clone": 38,
"pool-01/Local/genericProject/clone3": 1,
"pool-01/Local/genericProject/genericLun": 4351,
"pool-01/Local/genericProject/genericLun-genericProjectClone": 2,
"pool-01/Local/genericProject": 3,
"pool-01/Local/genericProject/
genericLun-genericProject-clone-genericProjectClone": 1
},
"deleteableClonesWithSnapCount": {
"pool-01/Local/genericProject/clone2": 2,
"pool-01/Local/genericProject/clone3": 1,
"pool-01/Local/genericProject/genericLun-genericProjectClone": 2,
"pool-01/Local/genericProject/genericLun": 4351,
"pool-01/Local/genericProject/clone2-rollbackclone": 0,

Snapshot Methods

"pool-01/Local/genericProject/
genericLun-genericProjectClone-rollbackclone": 0,
"pool-01/Local/genericProject/
genericLun-genericProject-clone-genericProjectClone": 1,
"pool-01/Local/genericProject/clone3-rollbackclone": 0,
"pool-01/Local/genericProject/genericLun-rollbackclone": 0,
"pool-01/Local/genericProject/
genericLun-genericProject-clone-genericProjectClone-rollbackclone":

0,
}

}

"pool-01/Local/genericProject/
genericLun-genericProject-clone-rollbackclone": 0

Example 2
Erroneous Request (curl)
curl
-H
-H
-H
-d

-X POST \
'authorization: Basic Auth_TOKEN' \
'cache-control: no-cache' \
'content-type: application/json' \
'[
"pool-01/Local/non-exist-project"

]'
https://198.51.100.10/zebi/api/v2/listDependenciesAndSnapshotCountOnDelete k

Error Response
The above request returns the HTTP status code 404 (not found) and the following message:
{

}

"code": "EZEBI_RESOURCE_NOT_FOUND",
"details": "",
"message": "Dataset does not exist. ",
"extendedData": {}

listDependenciesAndSnapshotCountOnRollback
Lists all the dependents affected by the rollback operation.
First Available Version
API v2.1, IntelliFlash 3.7.0.x
Related APIs
listDependenciesAndSnapshotCountOnDelete

233

Tegile IntelliFlash API Reference Guide, Version 2.3

Parameters
snapshotPath
The project path, share or volume path, or snapshot path to roll back to.
Returns
A Dependencies object.
Exceptions Thrown
EZEBI_RESOURCE_NOT_FOUND
This error is thrown if the specified snapshot is not found.
EZEBI_INVALID_ARGUMENT
This error is thrown if the specified snapshot path is invalid.
Examples
Example 1
Request (curl)
curl
-H
-H
-H
-d

-X POST \
'authorization: Basic Auth_TOKEN' \
'cache-control: no-cache' \
'content-type: application/json' \
'[
“"pool-01/Local/genericProject@Manual-P-ss"”
]'
https://198.51.100.10/zebi/api/v2/listDependenciesAndSnapshotCountOnRollback
-k

Response
{

"deleteableSnapCount": {
"pool-01/Local/genericProject/genericLun-genericProject-clone": 1,
"pool-01/Local/genericProject/genericLun": 1,
"pool-01/Local/genericProject": 1
},
"deleteableClonesWithSnapCount": {
"pool-01/Local/genericProject/genericLun-rollbackclone": 0,
"pool-01/Local/genericProject/genericLun-genericProject-clonerollbackclone": 0
}
}

Example 2

234

Snapshot Methods

Erroneous Request (curl)
curl
-H
-H
-H
-d

-X POST \
'authorization: Basic Auth_TOKEN' \
'cache-control: no-cache' \
'content-type: application/json' \
'[
“"pool-01/Local/genericProject@non-exist-snapshot"”
]'
https://198.51.100.10198.51.100.10/zebi/api/v2/
listDependenciesAndSnapshotCountOnRollback -k

Error Response
The above request returns the HTTP status code 404 (not found) and the following message:
{

}

"code": "EZEBI_RESOURCE_NOT_FOUND",
"details": "",
"message": "Dataset does not exist. ",
"extendedData": {}

listSnapshots
Lists names of snapshots (from the specified dataset) that match with the given regex
pattern.
First Available Version
API v1.0, IntelliFlash 2.1.0.0
Parameters
datasetPath
A string that contains the dataset path. The dataset path has the format:
PoolName/Local/ProjectName/VolumeName. You can get the datasetPath
from the listVolumes API. For more information, see listVolumes and
Volume_V1_0.
snapshotPattern
A string that contains a regex pattern for matching snapshot names. Use an
empty string to list all snapshots.
Returns
A JSON array of strings that contains names of snapshots (from the specified
dataset) that match with the given regex pattern.

235

Tegile IntelliFlash API Reference Guide, Version 2.3

Examples
Example 1
Request (curl)
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H Content-Type:application/json \
-d '["pool1/Local/TechPubs/TechPubsLUN",".*"]' \
https://198.51.100.10/zebi/api/v2/listSnapshots -k

Response
The above request returns the HTTP status code 200 (OK) and the following data:
[

]

"Auto-LF-Day-011714-21:15",
"Auto-LF-Day-011814-21:15",
"Auto-LF-Day-011914-21:15",
"Auto-LF-Week-011914-21:30",
"Auto-LF-Day-012014-21:15",
"Auto-LF-Day-012114-21:15"

Example 2
Erroneous Request
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H Content-Type:application/json \
-d '["pool1/Local/TechPubs/TechPubs",""]' \
https://198.51.100.10/zebi/api/v2/listSnapshots -k

Error Response
HTTP Status Code: 500
{
"message": "Unable to open pool1/Local/TechPubs/TechPubs : dataset does
not exist",
"extendedData": {
"EX_CAUSE_CODE_NAME": "EZFS_NOENT",
"EX_CAUSE_MESSAGE": "Unable to open pool1/Local/TechPubs/TechPubs :
dataset does not exist",
"EX_CAUSE_CODE_NUMBER": "2009"
},
"details": "Unable to open pool1/Local/TechPubs/TechPubs : dataset does
not exist",
"code": "EZEBI_RESOURCE_NOT_FOUND"
}

236

Snapshot Methods

rollBackToProjectSnapshot
Reverts the project state to the point-in-time state when the snapshot was taken.
Caution: If the deleteDependents parameter is set to true, all dependent objects
(snapshots and clones of the specified project snapshot) are also deleted.
First Available Version
API v2.0, IntelliFlash 3.5.0.1
Related APIs
createProjectSnapshot, listSnapshots, deleteProjectSnapshot
Parameters
snapshotPath
Path of the project-level snapshot that has to be rolled back. The snapshot
path has the format: PoolName/Local/ProjectName@SnapshotName. You can
get the snapshotPath from the listSnapshots API. For more information,
see listSnapshots.
deleteDependents
A boolean value: indicates whether to delete the snapshot dependents.
If the deleteDependents is set to false and rollback is invoked, the method
throws an error if there are existing dependents for the snapshot.
Returns
Returns an integer: the number 0 if the request succeeds.
Examples
Example 1
Request (curl)
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H "Content-Type:application/json" \
-d '["pool-2-mirror/Local/proj-test@Manual-P-test",true]' \
https://198.51.100.10/zebi/api/v2/rollBackToProjectSnapshot

-k

Response
The above request returns the HTTP status code 200 (OK) and the following data.
0

237

Tegile IntelliFlash API Reference Guide, Version 2.3

Example 2
Erroneous Request
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H "Content-Type:application/json" \
-d '["pool-2-mirror/Local/proj-test1@Manual-P-test",true]' \
https://198.51.100.10/zebi/api/v2/rollBackToProjectSnapshot -k

Error Response
{"message":"Snapshot
pool-2-mirror/Local/proj-test1@Manual-P-test does not
exist.","extendedData":{},"details":"","code":"EZEBI_GENERAL"}

rollBackToShareSnapshot
Reverts the share state to the point-in-time state when the snapshot was taken.
Caution: If the deleteDependents parameter is set to true, all dependent objects
(snapshots and clones of the specified share snapshot) are also deleted.
First Available Version
API v2.0, IntelliFlash 3.5.0.1
Related APIs
createShareSnapshot, listSnapshots, deleteShareSnapshot
Parameters
snapshotPath
Path of the share-level snapshot that has to be rolled back. The snapshot path
has the format: PoolName/Local/ProjectName/ShareName@SnapshotName.
You can get the snapshotPath from the listSnapshots API. For more
information, see listSnapshots.
deleteDependents
A boolean value: indicates whether to delete the snapshot dependents.
If the deleteDependents is set to false and rollback is invoked, the method
throws an error if there are existing dependents for the snapshot.
Returns
Returns an integer: the number 0 if the request succeeds.

238

Snapshot Methods

Examples
Example 1
Request (curl)
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H "Content-Type:application/json" \
-d '["pool-2-mirror/Local/proj-test/share1@Manual-S-test",true]' \
https://198.51.100.10/zebi/api/v2/rollBackToShareSnapshot -k

Response
The above request returns the HTTP status code 200 (OK) and the following data.
0

Example 2
Erroneous Request
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H "Content-Type:application/json" \
-d '["pool-2-mirror/Local/proj-test/share_test@Manual-S-test",true]' \
https://198.51.100.10/zebi/api/v2/rollBackToShareSnapshot -k

Error Response
{"message":"Snapshot
pool-2-mirror/Local/proj-test/share_test@Manual-S-test does not
exist.","extendedData":{},"details":"","code":"EZEBI_GENERAL"}

rollBackToVolumeSnapshot
Reverts the volume state to the point-in-time state when the snapshot was taken.
Caution: If the deleteDependents parameter is set to true, all dependent objects
(snapshots and clones of the specified volume snapshot) are also deleted.
First Available Version
API v2.0, IntelliFlash 3.5.0.1
Related APIs
createVolumeSnapshot, listSnapshots, deleteVolumeSnapshot
Parameters
snapshotPath

239

Tegile IntelliFlash API Reference Guide, Version 2.3

Path of the volume-level snapshot that has to be rolled
back. The snapshot path has the format: PoolName/
Local/ProjectName/VolumeName@SnapshotName. You can get the
snapshotPath from the listSnapshots API. For more information, see
listSnapshots.
deleteDependents
A boolean value: indicates whether to delete the snapshot dependents.
If the deleteDependents is set to false and rollback is invoked, the method
throws an error if there are existing dependents for the snapshot.
Returns
Returns an integer: the number 0 if the request succeeds.
Examples
Example 1
Request (curl)
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H "Content-Type:application/json" \
-d '["pool-2-mirror/Local/proj-test/lun_test@Manual-V-test",true]' \
https://198.51.100.10/zebi/api/v2/rollBackToVolumeSnapshot -k

Response
The above request returns the HTTP status code 200 (OK) and the following data.
0

Example 2
Erroneous Request
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H "Content-Type:application/json" \
-d '["pool-2-mirror/Local/proj-test/lun_test_dummy@Manual-V-test",true]' \
https://198.51.100.10/zebi/api/v2/rollBackToVolumeSnapshot -k

Error Response
{"message":"Snapshot
pool-2-mirror/Local/proj-test/lun_test_dummy@Manual-V-test does not
exist.","extendedData":{},"details":"","code":"EZEBI_GENERAL"}

240

Chapter 7
Replication Methods
Topics:
•
•
•

getReplicationConfigList
getReplicationStatus
startReplication

The following sections describe Replication methods,
parameters and return types. They also include examples
with sample responses.

Replication Methods | 241

Tegile IntelliFlash API Reference Guide, Version 2.3

getReplicationConfigList
Lists all the replication configurations for the specified project.
First Available Version
API v1.2, IntelliFlash 2.1.2.1
Related APIs
getReplicationStatus.
Parameters
poolName
Name of a pool.
projectName
Name of a project within the specified pool.
Returns
A JSON object of type ReplicationConfig_V1_2.
Examples
Example 1
Request (curl)
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H "Content-Type:application/json" \
-d '["pool1","p1"]' \
https://198.51.100.10/zebi/api/v2/getReplicationConfigList -k

Response
The above request returns the HTTP status code 200 (OK) and the following data:
[

242

{

id:
1
projectName:
"p1"
projectGuid:
"f5553354-2a91-4533-8e98-1cd52b1da3d6"
poolName:
"pool1"
baseDataSetName:
"pool1/Local/p1"
scopeOption:
0
remoteHost:
"198.51.100.11"
lastSnapshotName:
""
remotePoolName:
"san-pool"
remoteProjectName:
"p1"

Replication Methods

]

}

remoteBaseDataSetName:

"san-pool/Replica/p1"

Example 2
Erroneous Request
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H "Content-Type:application/json" \
-d '["NotAPool","Failover_LUN"]' \
https://198.51.100.10/zebi/api/v2/getReplicationConfigList -k

Error Response
The above request returns the HTTP status code 400 (bad request) and the following
message:
{

}

message:
null
extendedData: {
EX_CAUSE_MESSAGE:
}
details:
null
code:
"EZEBI_GENERAL"

null

getReplicationStatus
Lists the replication status for the specified replication configuration.
First Available Version
API v1.2, IntelliFlash 2.1.2.1
Related APIs
getReplicationConfigList, startReplication.
Parameters
replicationConfig
An object of type ReplicationConfig_V1_2 that contains the replication
configuration. You can get the list of replication configurations from
the getReplicationConfigList API. For more information, see
getReplicationConfigList.
Returns
A JSON object of type ReplicationStatus_v1_2.

243

Tegile IntelliFlash API Reference Guide, Version 2.3

Examples
Example 1
Request (curl)
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H "Content-Type:application/json" -d '[
\
{
\
"id": 1, \
"projectName": "p1",
\
"projectGuid": "f5553354-2a91-4533-8e98-1cd52b1da3d6",
\
"poolName": "pool1",
\
"baseDataSetName": "pool1/Local/p1",
\
"scopeOption": 0,
\
"remoteHost": "198.51.100.11",
\
"lastSnapshotName": "",
\
"remotePoolName": "san-pool",
\
"remoteProjectName": "p1",
\
"remoteBaseDataSetName": "san-pool/Replica/p1" \
}
\
]'
\
https://198.51.100.10/zebi/api/v2/getReplicationStatus -k

Response
The above request returns the HTTP status code 200 (OK) and the following data:
{
currentStatus:
1
startTimestamp:
1410165951163
completeTimestamp:
1410165951163
updateTimestamp:
1410165951120
dataSent:
0
sendSpeed:
0
taskSize:
0
completedTask:
0
}

Example 2
Erroneous Request
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H "Content-Type:application/json" \
-d '[ \
{ \
"id": 1, \
"projectName": "p2", \
"projectGuid": "f5553354-2a91-4533-8e98-1cd52b1da3d6", \
"poolName": "pool-22", \
"baseDataSetName": "pool1/Local/p1", \
"scopeOption": 0, \
"remoteHost": "10.7.1.16", \
"lastSnapshotName": "", \

244

Replication Methods

"remotePoolName": "san-pool", \
"remoteProjectName": "p1", \
"remoteBaseDataSetName": "san-pool/Replica/p1" \
} \
]' https://198.51.100.10/zebi/api/v2/getReplicationStatus -k

Error Response
The above request returns the HTTP status code 400 (bad request) and the following
message:
{
message:
"Pool pool-22 is not mounted."
extendedData: { }
details:
""
code:
"EZEBI_GENERAL"
}

startReplication
Starts a replication for the specified replication configuration.
First Available Version
API v1.2, IntelliFlash 2.1.2.1
Related APIs
getReplicationConfigList, getReplicationStatus.
Parameters
replicationConfig
An object of type ReplicationConfig_V1_2 that contains the replication
configuration.
Returns
No Data.
Examples
Example 1
Request (curl)
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H "Content-Type:application/json" \
-d '[
\
{
\
"projectName": "rep_project",
\

245

Tegile IntelliFlash API Reference Guide, Version 2.3

"remoteProjectName": "replica_project",
\
"remoteBaseDataSetName": "testpool/Replica/replica_project",
"poolName": "pool1",
\
"lastSnapshotName": "",
\
"scopeOption": 1,
\
"remoteHost": "198.51.100.20",
\
"baseDataSetName": "p1aut-1/Local/rep_project",
\
"id": 1,
\
"projectGuid": "9d6b46ce-05dd-4df1-9ca9-4924bfeb9473",
\
"remotePoolName": "testpool"
\
}
\
]'
\
https://198.51.100.10/zebi/api/v2/startReplication -k

\

Response
The above request returns the HTTP status code 200 (OK) and no data.
Example 2
Erroneous Request
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H "Content-Type:application/json" \
-d '[
\
{
\
"projectName": "rep_project",
\
"remoteProjectName": "replica_project",
\
"remoteBaseDataSetName": "testpool/Replica/replica_project",
"poolName": "pool-22",
\
"lastSnapshotName": "",
\
"scopeOption": 1,
\
"remoteHost": "198.51.100.20",
\
"baseDataSetName": "p1aut-1/Local/rep_project",
\
"id": 1,
\
"projectGuid": "9d6b46ce-05dd-4df1-9ca9-4924bfeb9473",
\
"remotePoolName": "testpool"
\
}
\
]'
\
https://198.51.100.10/zebi/api/v2/startReplication -k

\

Error Response
The above request returns the HTTP status code 400 (bad request) and the following
message:
{
message:
"Pool pool-22 is not mounted."
extendedData: { }
details:
""
code:
"EZEBI_GENERAL"
}

246

Chapter 8
System Methods
Topics:
•
•
•
•
•
•
•
•
•
•
•
•
•

getDiskCount
getDisks
getDisksByChassis
getSMBConfig
getUpgradeHistory
identifyDisk
identifyDiskByIndex
isProjectExposedOverSMB
isShareExposedOverSMB
listSystemProperties
setSMBConfig
setSMBSharingOnProject
setSMBSharingOnShare

The following sections describe the System methods,
parameters and return types. They also include examples
with sample responses.

System Methods | 247

Tegile IntelliFlash API Reference Guide, Version 2.3

getDiskCount
Returns the count of disks connected to the IntelliFlash array.
First Available Version
API v2.1, IntelliFlash 3.7.0.x
Related APIs
getDisksByChassis, getDisks, identifyDisk, identifyDiskByIndex
Parameters
None
Returns
An integer count of all the disks found on the IntelliFlash array.
Exceptions Thrown
EZEBI_GENERAL
This exception is thrown if the operation failed.
Examples
Example 1
Request (curl)
curl -X POST \
-H "Authorization:Basic Auth_TOKEN" \
-H "Content-Type:application/json" -d '[]' \
-H 'cache-control: no-cache' \
https://10.68.97.100/zebi/api/v2/getDiskCount -k

Response
The above request returns the HTTP status code 200 (OK) and a numeric count of the disks
detected. For example, 27.

getDisks
Returns the details of disks connected to the IntelliFlash Array.

248

System Methods

First Available Version
API v2.1, IntelliFlash 3.7.0.x
Related APIs
getDisksByChassis, getDiskCount, identifyDisk, identifyDiskByIndex
Parameters
diskAliasPattern
The disk name (alias) to obtain detailed JSON disk objects. This is the same
disk alias name shown in IntelliFlash Web UI for each disk.
This parameter can be a complete specific disk name or partial regular
expression to match several disks.
For example, you can specify c2t5000C50040CF0707d0 to obtain a specific
disk, ".*" to obtain all disks, c2t5000C50040.* to obtain disks starting
with c2t5000C50040, c2t5000.* to obtain disks starting with c2t5000,
.*5000C50040CF07.* to obtain disks that contain 5000C50040CF07 in the
name.
Returns
A JSON array of the Disk_V2_1 objects that contain the details of the requested disks.
Exceptions Thrown
EZEBI_INVALID_ARGUMENT
This exception is thrown if the parameters are invalid (for example, bad format
or blank), or if the requested wild card regular expression is in an invalid
format.
EZEBI_GENERAL
This exception is thrown if the operation failed.
Examples
Example 1
Request (curl)
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H "Content-Type:application/json" \
-H 'cache-control: no-cache' \
-d '[".*"]' \
https://198.51.100.10/zebi/api/v2/getDisks -k

249

Tegile IntelliFlash API Reference Guide, Version 2.3

Response
The above request returns the HTTP status code 200 (OK) and a list of all disks on that
IntelliFlash array. For example:
[

{

},
{

},
{

]

}

"diskChassisIndex": 0,
"diskBayIndex": 0,
"diskChassisName": "[N5800]",
"diskSize": "1.46 TiB",
"poolName": "r2",
"diskType": "NVMe",
"diskAlias": "c4t000CCA0B01331E00d0",
"deviceId": "w000cca0b01331e00"
"diskChassisIndex": 0,
"diskBayIndex": 1,
"diskChassisName": "[N5800]",
"diskSize": "1.46 TiB",
"poolName": "",
"diskType": "NVMe",
"diskAlias": "c5t000CCA0B01335F00d0",
"deviceId": "w000cca0b01335f00"
"diskChassisIndex": 0,
"diskBayIndex": 2,
"diskChassisName": "[N5800]",
"diskSize": "1.46 TiB",
"poolName": "",
"diskType": "NVMe",
"diskAlias": "c6t000CCA0B01335A80d0",
"deviceId": "w000cca0b01335a80"

Example 2
Erroneous Request (curl)
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H "Content-Type:application/json" \
-H 'cache-control: no-cache' \
-d '["c2t5000C50040CF0F97d0" ]' \
https://198.51.100.10/zebi/api/v2/getDisks -k

Error Response

250

System Methods

In this example, the disk "c2t5000C50040CF0F97d0" does not exist. So the request returns
the HTTP status code 200 (OK) and the following response of an empty array of disks:
[]

Example 3
Request (curl)
curl -X POST -H "Authorization:Basic AUTH_TOKEN" \
-H "Content-Type:application/json" \
-H 'cache-control: no-cache' \
-d '[""]' \
https://198.51.100.10/zebi/api/v2/getDisks -k

Response
In this example, the disk name was empty. So the request returns the HTTP status code 400
(Bad Request) and the following response:
{

}

"code": "EZEBI_INVALID_ARGUMENT",
"details": "getDisks.arg0 value '': Pattern name is not valid,
an invalid null, empty or blank pattern name was detected.",
"message": "Pattern name is not valid, an invalid null,
empty or blank pattern name was detected.",
"extendedData":
{
"EX_CAUSE_MESSAGE": null
}

getDisksByChassis
Lists the disks connected to the specified disk chassis. The chassis are the IntelliFlash array
itself (head) and the JBOD chassis connected to the array.
First Available Version
API v2.1, IntelliFlash 3.7.0.x
Related APIs
getDisks, getDiskCount, identifyDisk, identifyDiskByIndex
Parameters
chassisIndex

251

Tegile IntelliFlash API Reference Guide, Version 2.3

The chassis index on the array that contains the disk bays to enumerate. Often
the array has only one disk chassis, which would be chassis index 0. But an
array with 3 chassis might typically have chassis index 0, 1, and 2, depending
how they are connected. The chassis index can be retrieved by calling getDisks
API first in the returned JSON array of Disk_V2_1 objects.
Returns
A JSON array of the Disk_V2_1 objects that contain the details of the disks found on the
requested chassis.
Exceptions Thrown
EZEBI_RESOURCE_NOT_FOUND
This exception is thrown if the requested disk chassis index does not exist, or
is out of range.
EZEBI_GENERAL
This exception is thrown if the operation failed.
Examples
Example 1
Request (curl)
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H "Content-Type:application/json" \
-H 'cache-control: no-cache' \
-d '[0]' \
https://198.51.100.10/zebi/api/v2/getDisksByChassis -k

Response
The above request returns the HTTP status code 200 (OK) and a JSON array of Disk_V2_1
objects on the first chassis. For example:
{

},
{

252

"diskChassisIndex": 0,
"diskBayIndex": 1,
"diskChassisName": "IS1201-0022[HA2100]",
"diskSize": "1.82 TB",
"poolName": "ZebiSystem",
"diskType": "HDD",
"diskAlias": "c2t5000C50040CF04E7d0",
"deviceId": "n5000c50040cf04e7"

System Methods

}

"diskChassisIndex": 0,
"diskBayIndex": 2,
"diskChassisName": "IS1201-0022[HA2100]",
"diskSize": "1.82 TB",
"poolName": "vmpool",
"diskType": "HDD",
"diskAlias": "c2t5000C50040CF0707d0",
"deviceId": "n5000c50040cf0707"

Example 2
Erroneous Request (curl)
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H "Content-Type:application/json" \
-H 'cache-control: no-cache' \
-d '[500]' \
https://198.51.100.10/zebi/api/v2/getDisksByChassis -k

Error Response
As the chassis index 500 does not exist, the request returns the HTTP status code 404 (not
found) and the following exception:
{
"code":"EZEBI_RESOURCE_NOT_FOUND",
"details":"",
"message":"Failed to find the disk chassis requested (500).",
"extendedData":{}
}

getSMBConfig
Lists all the SMB configuration values.
First Available Version
API v2.2, IntelliFlash 3.7.1.0
Related APIs
setSMBConfig
Parameters
None

253

Tegile IntelliFlash API Reference Guide, Version 2.3

Returns
Returns an SMBConfig_V2_2 object that contains the SMB configuration details.
Exceptions Thrown
EZEBI_GENERAL
This exception is thrown if the operation failed.
Examples
Example 1
Request (curl)
curl -X POST \
-H 'authorization: Basic Auth_TOKEN \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
https://198.51.100.10/zebi/api/v2/getSMBConfig -k

Response
{

}

"pdc": null,
"subsharesFeatureEnabled": false,
"smbProtocolMode": "SMB3",
"restrictAnonymous": true,
"restrictGuest": true

getUpgradeHistory
Returns the history of IntelliFlash software installs and upgrades for the array.
First Available Version
API v2.1, IntelliFlash 3.7.0.x
Related APIs
listSystemProperties
Parameters
N/A

254

System Methods

Returns
A JSON array of the ArrayUpgrade_V2_1 objects that contain the upgrades done on the
IntelliFlash array.
Exceptions Thrown
EZEBI_GENERAL
This exception is thrown if the operation failed.
Examples
Example 1
Request (curl)
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H "Content-Type:application/json" \
-H 'cache-control: no-cache' \
-d '[]'
\
https://198.51.100.10/zebi/api/v2/getUpgradeHistory

-k

Response:
The above request returns the HTTP status code 200 (OK) and the ArrayUpgrade_V2_1 objects
that contain the upgrades done on the IntelliFlash array. For example:
[

{

},
{

},
{

]

}

"version": "3.7.0.0.170619",
"timeInstalledOnNodeA": "Tue Jun 20 14:19:39 PDT 2017",
"timeInstalledOnNodeB": "Tue Jun 20 13:43:25 PDT 2017"
"version": "3.7.0.0.170425",
"timeInstalledOnNodeA": "Wed Apr 26 22:07:17 PDT 2017",
"timeInstalledOnNodeB": "Wed Apr 26 21:31:57 PDT 2017"
"version": "3.6.0.0.170215",
"timeInstalledOnNodeA": "Wed Feb 15 13:09:10 PST 2017",
"timeInstalledOnNodeB": "Wed Feb 15 16:28:39 PST 2017"

identifyDisk
Identifies a disk connected to the IntelliFlash array by flashing the bay light of the disk.

255

Tegile IntelliFlash API Reference Guide, Version 2.3

First Available Version
API v2.1, IntelliFlash 3.7.0.x
Related APIs
getDisks, getDisksByChassis, getDiskCount, identifyDiskByIndex
Parameters
diskAlias
The name of the disk, which you want to identify. For example,
c2t5000C50040CF0707d0 could be the disk name.
This is the same disk alias name shown in the IntelliFlash Web UI for each disk.
Returns
Returns an integer status, where:
• 0 indicates that the request succeeded.
• 1 indicates that the request was not attempted.
• 2 indicates that the request failed.
Exceptions Thrown
EZEBI_RESOURCE_NOT_FOUND
This exception is thrown if the specified disk was not found.
EZEBI_GENERAL
This exception is thrown if the operation failed.
EZEBI_INVALID_ARGUMENT
This exception is thrown if the disk name parameter is invalid (bad format or
blank).
Examples
Example 1
Request (curl)
curl -X POST \
-H "Authorization:Basic Auth_TOKEN" \
-H "Content-Type:application/json" \
-H 'cache-control: no-cache' \
-d '["c2t5000C500409B5663d0",true]' \
https://198.51.100.10/zebi/api/v2/identifyDisk -k

256

System Methods

Response
The above request returns the HTTP status code 200 (OK) and 0. This indicates that the
blinking disk light for the disk "c2t5000C500409B5663d0" was successfully turned on.
Example 2
Erroneous Request (curl)
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H "Content-Type:application/json" \
-H 'cache-control: no-cache' \
-d '["XYZ",true]' \
https://198.51.100.10/zebi/api/v2/identifyDisk -k

Error Response
In this example, 'xyz' is not a valid disk name. The disk name must be in the
c[Controller#]t[Target#]d[Disk#] format. For example, c2t5000C50040CF0F97d0.
So the request returns the HTTP status code 400 (bad request) and the following response:
{
be

"code": "EZEBI_INVALID_ARGUMENT",
"details": "identifyDisk.arg0 value 'xyz': The disk alias name should

in the format of c[Controller#]t[Target#]d[Disk#] (e.g.
c2t5000C50040CF0F97d0).
Disk names can be found in the UI disk hardware page, or by enumerating
all disks.",
"message": "The disk alias name should in
the format of c[Controller#]t[Target#]d[Disk#] (e.g.
c2t5000C50040CF0F97d0).
Disk names can be found in the UI disk hardware page, or by enumerating
all disks.",
"extendedData":
{
"EX_CAUSE_MESSAGE": null
}
}

identifyDiskByIndex
Identifies a disk connected to the IntelliFlash Web UI array by flashing the bay light of the
disk.
First Available Version
API v2.1, IntelliFlash 3.7.0.x

257

Tegile IntelliFlash API Reference Guide, Version 2.3

Related APIs
getDisks, getDisksByChassis, getDiskCount, identifyDisk
Parameters
diskBayIndex
The disk bay index number of the disk you want to identify.
This is the same number displayed in the IntelliFlash Web UI and same disk
index number returned in the disk objects by the getDisks API
chassisIndex
The disk chassis index number of the disk you want to identify. This is the
same disk chassis index number returned in the disk objects by the getDisks
API and displayed in the IntelliFlash Web UI.
blinkLED
JSON boolean to indicate whether to turn on or turn off the disk bay light used
to identify the disk.
Returns
Returns an integer status where:
• 0 indicates that the request succeeded.
• 1 indicates that the request was not attempted.
• 2 indicates that the request failed.
Exceptions Thrown
EZEBI_RESOURCE_NOT_FOUND
This exception is thrown if the chassis index or disk bay index is out of range
or not found.
EZEBI_GENERAL
This exception is thrown if the operation failed.
Examples
Example 1
Request (curl)
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H "Content-Type:application/json" \
-H 'cache-control: no-cache' \
-d '[2,2,true]' \

258

System Methods

https://198.51.100.10/zebi/api/v2/identifyDiskByIndex -k

Response
The above request returns the HTTP status code 200 (OK) and 0. This indicates that the
blinking disk light was successfully turned on.
Example 2
Erroneous Request (curl)
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H "Content-Type:application/json" \
-d '[2,10000,true]' \
https://198.51.100.10/zebi/api/v2/identifyDiskByIndex -k

Error Response
In this example, 10000 is not a valid existing disk chassis index . So the request returns the
HTTP status code 400 (bad request) and the following response:
{

}

"code": "EZEBI_RESOURCE_NOT_FOUND",
"details": "",
"message": "Invalid chassis index of 10000 was passed,
the maximum chassis index currently available is 2.",
"extendedData": {}

isProjectExposedOverSMB
Returns whether the SMB protocol is enabled for a project.
First Available Version
API v2.1, IntelliFlash 3.7.0.x
Related APIs
setSMBSharingOnProject, setSMBNetworkACLsOnProject, addSMBNetworkACLOnProject,
removeSMBNetworkACLOnProject, removeAllSMBNetworkACLsOnProject,
getSMBNetworkACLsOnProject
Parameters
datasetPath
Path of the project. The format is /Local/.

259

Tegile IntelliFlash API Reference Guide, Version 2.3

This operation is not allowed for replica project datasets.
Returns
Returns True or False based on whether SMB protocol is enabled.
Exceptions Thrown
EZEBI_RESOURCE_NOT_FOUND
This exception is thrown if the specified project cannot be found.
EZEBI_INVALID_ARGUMENT
This exception is thrown if the path specified belongs to replica dataset.
EZEBI_GENERAL
This exception is thrown if the operation failed.
Examples
Example 1
Request (curl)
curl -X POST \
-H 'authorization: Basic Auth_TOKEN \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '[
"pool-a/Local/demoProject"
]' \
https://198.51.100.10/zebi/api/v2/isProjectExposedOverSMB -k

Response:
The above request returns the HTTP status code 200 (OK) and returns a true or false value
indicating whether SMB is enabled over the specified project.
Example 2
Erroneous Request (curl)
curl -X POST \
-H 'authorization: Basic Auth_TOKEN \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '[
"pool-a/Local/UNKNOWNProject"
]' \
https://198.51.100.10/zebi/api/v2/isProjectExposedOverSMB -k

260

System Methods

Error Response:
The above request returns the HTTP status code 404 (not found) and the following message:
{

"code":"EZEBI_RESOURCE_NOT_FOUND",
"details":"",
"message":"Cannot find the specified project 'pool-a/Local/
UNKNOWNProject'.",
"extendedData":{}
}

isShareExposedOverSMB
Returns whether the SMB protocol is enabled for a share.
First Available Version
API v2.1, IntelliFlash 3.7.0.x
Related APIs
setSMBSharingOnShare, setSMBNetworkACLsOnShare, addSMBNetworkACLOnShare,
removeSMBNetworkACLOnShare, removeAllSMBNetworkACLsOnShare,
getSMBNetworkACLsOnShare
Parameters
datasetPath
Path of the share. The format is /Local//
.
Returns
Returns True or False based on whether the SMB protocol is enabled.
Exceptions Thrown
EZEBI_RESOURCE_NOT_FOUND
This exception is thrown if the specified share cannot be found.
EZEBI_INVALID_ARGUMENT
This exception is thrown if the path specified belongs to replica dataset.
EZEBI_GENERAL

261

Tegile IntelliFlash API Reference Guide, Version 2.3

This exception is thrown if the operation failed.
Examples
Example 1
Request (curl)
curl -X POST \
-H 'authorization: Basic Auth_TOKEN \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '[
"pool-a/Local/Project/demoShare"
]' \
https://198.51.100.10/zebi/api/v2/isShareExposedOverSMB -k

Response
The above request returns the HTTP status code 200 (OK) and returns the following
response:
true

Example 2
Erroneous Request (curl)
curl -X POST \
-H 'authorization: Basic Auth_TOKEN \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '[
"pool-a/Local/Project/UNKNOWNShare"
]' \
https://198.51.100.10/zebi/api/v2/isShareExposedOverSMB -k

Error Response
The above request returns the HTTP status code 500 (internal server error) and the following
response:
{

"code":"EZEBI_RESOURCE_NOT_FOUND",
"details":"",
"message":"Cannot find the specified share 'pool-a/Local/Project/
UNKNOWNShare'.",
"extendedData":{}
}

262

System Methods

listSystemProperties
Lists values of the requested system properties for a Tegile array.
First Available Version
API v1.0, IntelliFlash 2.1.0.0
Parameters
properties
An array of strings where each string is a predefined string literal indicating a
system property. The enumeration ZEBI_SYSTEM_PROPERTY defines the string
literals that can be requested.
Returns
A JSON array of strings that contains values of the requested system
properties. The error "EZEBI_RESOURCE_NOT_FOUND" is returned if a
requested system property is not available.
Examples
Example 1
Request (curl)
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H Content-Type:application/json \
-d '[["ZEBI_API_VERSION","ZEBI_APPLIANCE_VERSION"]]' \
https://198.51.100.10/zebi/api/v2/listSystemProperties -k

Response
[

"1.2",

"A1"]

Example 2
Erroneous Request
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H Content-Type:application/json \
-d '[["ZEBI_API_VERSIONS"]]' \
https://198.51.100.10/zebi/api/v2/listSystemProperties -k

Error Response
[

263

Tegile IntelliFlash API Reference Guide, Version 2.3

"EZEBI_RESOURCE_NOT_FOUND"
]

setSMBConfig
Defines SMB configuration values.
First Available Version
API v2.2, IntelliFlash 3.7.1.0
Related APIs
getSMBConfig
Parameters
An SMBConfig_V2_2 object that contains the SMB configuration details.
Returns
Returns an integer status where:
• 0 indicates that the request succeeded.
• 1 indicates that the request was not attempted.
• 2 indicates that the request failed.
Exceptions Thrown
EZEBI_INVALID_ARGUMENT
This exception is thrown if the path specified belongs to a replica dataset.
EZEBI_GENERAL
This exception is thrown if the operation failed.
Examples
Example 1
Request (curl)
curl -X POST \
-H 'authorization: Basic Auth_TOKEN \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '[{"smbProtocolMode": "SMB3"}]' \
https://198.51.100.10/zebi/api/v2/setSMBConfig -k

264

System Methods

Response
The above request returns the HTTP status code 200 (OK) and 0 indicating success.
Example 2
Erroneous Request (curl)
curl -X POST \
-H 'authorization: Basic Auth_TOKEN \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '[
{"smbProtocolMode": "SMB3"}
]' \
https://198.51.100.10/zebi/api/v2/setSMBConfig -k

Error Response
{

"code": "EZEBI_GENERAL",
"details": "",
"message": "The following shares have NFS and SMB enabled and hence
cannot move to SMB3:
pool-a/Local/proj1/share-1, pool-a/Local/proj1/share-2."
"extendedData": []

}

Example 3
Erroneous Request (curl)
curl -X POST \
-H 'authorization: Basic Auth_TOKEN \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '[
{"smbProtocolMode": "SMB1"}
]' \
https://198.51.100.10/zebi/api/v2/setSMBConfig -k

Error Response
{

"code": "EZEBI_INVALID_ARGUMENT",
"details": "setSMBConfig.arg0.smbProtocolMode value 'SMB1':
Incorrect input: SMB protocol can only be CIFS or SMB3.",
"message": "Incorrect input: SMB protocol can only be CIFS or SMB3.",
"extendedData": {
"EX_CAUSE_MESSAGE": null
}

265

Tegile IntelliFlash API Reference Guide, Version 2.3

}

setSMBSharingOnProject
Enables or disables SMB protocol for project. If you disable SMB protocol for a project, any
existing network ACLs on the project are removed as well.
First Available Version
API v2.1, IntelliFlash 3.7.0.x
Related APIs
setSMBNetworkACLsOnProject, addSMBNetworkACLOnProject, removeSMBNetworkACLOnProject,
removeAllSMBNetworkACLsOnProject, isProjectExposedOverSMB, getSMBNetworkACLsOnProject
Parameters
datasetPath
Path of the project. The format is /Local/.
This operation is not allowed for replica project datasets.
turnOn
Enables or disables SMB protocol on the project.
Returns
COMMAND_STATUS.COMMAND_SUCCEED (0) on success.
Exceptions Thrown
EZEBI_RESOURCE_NOT_FOUND
This exception is thrown if the specified project is not found.
EZEBI_INVALID_ARGUMENT
This exception is thrown if the path specified belongs to a replica dataset.
EZEBI_GENERAL
This exception is thrown if the operation failed.
Examples
Example 1
Request (curl)

266

System Methods

curl -X POST \
-H 'authorization: Basic Auth_TOKEN \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '[
"pool-a/Local/demoProject", true
]' \
https://198.51.100.10/zebi/api/v2/setSMBSharingOnProject -k

Response
The above request returns the HTTP status code 200 (OK) and 0 indicating success. This
enables SMB sharing on the specified project.
Example 2
Request (curl)
curl -X POST \
-H 'authorization: Basic Auth_TOKEN \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '[
"pool-a/Local/demoProject", false
]' \
https://198.51.100.10/zebi/api/v2/setSMBSharingOnProject -k

Response
The above request returns the HTTP status code 200 (OK) and 0 indicating success. This
disables CMB sharing on the specified project.
Example 3
Erroneous Request
curl -X POST \
-H 'authorization: Basic Auth_TOKEN \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '[
"pool-a/Local/UNKNOWNProject", true
]' \
https://198.51.100.10/zebi/api/v2/setSMBSharingOnProject -k

Error Response
The above request returns the HTTP status code 404 (not found) and the following message:
{

"code":"EZEBI_RESOURCE_NOT_FOUND",

267

Tegile IntelliFlash API Reference Guide, Version 2.3

"details":"",
"message":"Cannot find the specified project 'pool-a/Local/
UNKNOWNProject'.",
"extendedData":{}
}

Example 4
Erroneous Request
curl -X POST \
-H 'authorization: Basic Auth_TOKEN \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '[
"pool-a/Replica/replicaProject", true
]' \
https://198.51.100.10/zebi/api/v2/setSMBSharingOnProject -k

Error Response
The above request returns the HTTP status code 400 (bad request) and the following
message:
{

"code":"EZEBI_INVALID_ARGUMENT",
"details":"setSMBSharingOnProject.arg0 value 'pool-a/Replica/
replicaProject':
Local dataset path expected. For example, valid formats are
'pool-name/Local/project-name' or 'pool-name/Local/project-name/shareor-lun-name'.",
"message":"Local dataset path expected.
For example, valid formats are 'pool-name/Local/project-name' or
'pool-name/Local/project-name/share-or-lun-name'.",
"extendedData":{"EX_CAUSE_MESSAGE":null}
}

setSMBSharingOnShare
Enables or disables SMB protocol for share. If the dataset contains any network ACLs, they
are removed as well.
First Available Version
API v2.1, IntelliFlash 3.7.0.x

268

System Methods

Related APIs
setSMBNetworkACLsOnShare, addSMBNetworkACLOnShare, removeSMBNetworkACLOnShare,
removeAllSMBNetworkACLsOnShare, isShareExposedOverSMB, getSMBNetworkACLsOnShare
Parameters
datasetPath
Path of the project. The format is /Local//
.
This operation is not allowed for replica project datasets.
turnOn
Enables SMB protocol on the project.
displayName
Display name of the share.
enableGuestMode
Enables guests mode for the share.
Returns
COMMAND_STATUS.COMMAND_SUCCEED (0) on success.
Exceptions Thrown
EZEBI_RESOURCE_NOT_FOUND
This exception is thrown if the specified share is not found.
EZEBI_INVALID_ARGUMENT
This exception is thrown if the path specified belongs to a replica dataset.
EZEBI_GENERAL
This exception is thrown if the operation failed.
Examples
Example 1
Request (curl)
curl
-H
-H
-H
-d

-X POST \
'Authorization:Basic Auth_TOKEN' \
'cache-control: no-cache' \
'Content-Type:application/json' \
'["pool-a/Local/project/demoShare", true, "test", true]'

269

Tegile IntelliFlash API Reference Guide, Version 2.3

https://198.51.100.10/zebi/api/v2/setSMBSharingOnShare -k

Response
The above request returns the HTTP status code 200 (OK).
Example 2
Request (curl)
curl
-H
-H
-H
-d

-X POST \
'Authorization:Basic Auth_TOKEN' \
'cache-control: no-cache' \
'Content-Type:application/json' \
'["pool-a/Local/project/UNKNOWNShare", true, "test", true]'
https://198.51.100.10/zebi/api/v2/setSMBSharingOnShare -k

Response
The above request returns the HTTP status code 500 (internal server error) and the following
response:
{

}

"code": "EZEBI_RESOURCE_NOT_FOUND",
"details": "Unable to open pool-a/Local/project/UNKNOWNShare :
dataset does not exist",
"message": "Unable to open pool-a/Local/project/UNKNOWNShare :
dataset does not exist",
"extendedData": {
"EX_CAUSE_MESSAGE": "Unable to open pool-a/Local/project/UNKNOWNShare :
dataset does not exist",
"EX_CAUSE_CODE_NAME": "EZFS_NOENT",
"EX_CAUSE_CODE_NUMBER": "2009" }

Example 3
Erroneous Request
curl
-H
-H
-H
-d

-X POST \
'Authorization:Basic Auth_TOKEN' \
'cache-control: no-cache' \
'Content-Type:application/json' \
'["pool-a/Replica/replicaProj/replicaShare", true, "test", true]'
https://198.51.100.10/zebi/api/v2/setSMBSharingOnShare -k

Error Response
The above request returns the HTTP status code 404 (not found) and the following message:
{"code":"EZEBI_INVALID_ARGUMENT",

270

System Methods

"details":"setSMBSharingOnShare.arg0 value
'pool-a/Replica/replicaProj/replicaShare': Local dataset path expected.
For example, valid formats are 'pool-name/Local/project-name' or
'pool-name/Local/project-name/share-or-lun-name'.",
"message":"Local dataset path expected.
For example, valid formats are 'pool-name/Local/project-name' or
'pool-name/Local/project-name/share-or-lun-name'.","extendedData":
{"EX_CAUSE_MESSAGE":null}}

271

Chapter 9
Network ACL Methods
Topics:
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•

addNFSNetworkACLOnProject
addNFSNetworkACLOnShare
addSMBNetworkACLOnProject
addSMBNetworkACLOnShare
getNFSNetworkACLsOnProject
getNFSNetworkACLsOnShare
getSMBNetworkACLsOnProject
getSMBNetworkACLsOnShare
inheritNetworkACLsettingsFromProject
removeAllNFSNetworkACLsOnProject
removeAllNFSNetworkACLsOnShare
removeAllSMBNetworkACLsOnProject
removeAllSMBNetworkACLsOnShare
removeNFSNetworkACLOnProject
removeNFSNetworkACLOnShare
removeSMBNetworkACLOnProject
removeSMBNetworkACLOnShare
setNFSNetworkACLsOnProject
setNFSNetworkACLsOnShare
setSMBNetworkACLsOnProject
setSMBNetworkACLsOnShare

The following sections describe Network ACL methods,
parameters and return types. They also include examples
with sample responses.

Network ACL Methods | 273

Tegile IntelliFlash API Reference Guide, Version 2.3

addNFSNetworkACLOnProject
Adds network ACL to the NFS project.
First Available Version
API v2.1, IntelliFlash 3.7.0.x
Related APIs
setNFSSharingOnProject, setNFSNetworkACLsOnProject, removeNFSNetworkACLOnProject,
removeAllNFSNetworkACLsOnProject, isProjectExposedOverNFS, getNFSNetworkACLsOnProject
Parameters
datasetPath
Path of the project. The format is /Local/.
This operation is not allowed for replica project datasets.
type
Type of network ACL host, whether IP or FQDN.
host
The host to use for providing access.
accessMode
Access mode. 'rw' for Read-Write access, 'ro' for Read-Only access.
isRoot
Whether ACL is root access.
Returns
COMMAND_STATUS.COMMAND_SUCCEED (0) on success.
Exceptions Thrown
EZEBI_RESOURCE_NOT_FOUND
This exception is thrown if the specified project cannot be found.
EZEBI_INVALID_ARGUMENT
This exception is thrown for the following conditions:
• If an incorrect IP address or access mode is specified.
• If the specified project does not support the protocol.
• If the path specified belongs to a replica dataset.

274

Network ACL Methods

EZEBI_GENERAL
This exception is thrown if the operation failed.
Examples
Example 1
Request (curl)
curl -X POST \
-H 'authorization: Basic Auth_TOKEN \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '[
"pool-a/Local/demoProject", "FQDN", "www.example.com", "rw", true
]' \
https://198.51.100.10/zebi/api/v2/addNFSNetworkACLOnProject -k

Response:
The above request returns the HTTP status code 200 (OK) and 0 indicating success.
Example 2
Request (curl)
curl -X POST \
-H 'authorization: Basic Auth_TOKEN \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '[
"pool-a/Local/demoProject", "IP", "198.51.100.255", "rw", true
]' \
https://198.51.100.10/zebi/api/v2/addNFSNetworkACLOnProject -k

Response
The above request returns the HTTP status code 200 (OK) and 0 indicating success.
Example 3
Erroneous Request (curl)
curl -X POST \
-H 'authorization: Basic Auth_TOKEN \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '[
"pool-a/Local/demoProject", "IP", "198.51.100.255", "rw", true
]' \
https://198.51.100.10/zebi/api/v2/addNFSNetworkACLOnProject -k

275

Tegile IntelliFlash API Reference Guide, Version 2.3

Response
The above request returns the HTTP status code 404 (not found) and the following message:
{

"code":"EZEBI_RESOURCE_NOT_FOUND",
"details":"NFS sharing is not enabled on the specified dataset.
Please enable NFS sharing on the dataset and then try the operation
again.",
"message":"NFS sharing is not enabled for the specified project
'pool-a/Local/demoProject'.",
"extendedData":{}

}

Example 4
Erroneous Request
curl -X POST \
-H 'authorization: Basic Auth_TOKEN \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '[
"pool-a/Local/UNKNOWNProject", "IP", "198.51.100.255", "rw", true
]' \
https://198.51.100.10/zebi/api/v2/addNFSNetworkACLOnProject -k

Error Response
The above request returns the HTTP status code 404 (not found) and the following message:
{

"code":"EZEBI_RESOURCE_NOT_FOUND",
"details":"",
"message":"Cannot find the specified project 'pool-a/Local/
UNKNOWNProject'.",
"extendedData":{}
}

Example 5
Erroneous Request
curl
-H
-H
-H
-d

276

-X POST \
'authorization: Basic Auth_TOKEN \
'cache-control: no-cache' \
'content-type: application/json' \
'[

Network ACL Methods

"pool-a/Local/demoProject", "IP", "198.51.100.255", "read-write", true
]' \
https://198.51.100.10/zebi/api/v2/addNFSNetworkACLOnProject -k

Error Response
The above request returns the HTTP status code 400 (bad request) and the following
message:
{

"code":"EZEBI_INVALID_ARGUMENT",
"details":"addNFSNetworkACLOnProject.arg3
value 'read-write': Network ACL can only be \"rw\" (Read-Write) or \"ro
\" (Read-Only).",
"message":"Network ACL can only be \"rw\" (Read-Write) or \"ro\" (ReadOnly).",
"extendedData":{"EX_CAUSE_MESSAGE":null}
}

addNFSNetworkACLOnShare
Adds network ACL to the NFS share.
First Available Version
API v2.1, IntelliFlash 3.7.0.x
Related APIs
setNFSSharingOnShare, setNFSNetworkACLsOnShare, removeNFSNetworkACLOnShare,
removeAllNFSNetworkACLsOnShare, isShareExposedOverNFS, getNFSNetworkACLsOnShare
Parameters
datasetPath
Path of the share. The format is /Local//
.
This operation is not allowed for replica share datasets.
type
Type of network ACL host, whether IP or FQDN.
host
The host to use for providing access.
accessMode
Access mode. 'rw' for Read-Write access, 'ro' for Read-Only access.

277

Tegile IntelliFlash API Reference Guide, Version 2.3

isRoot
Whether ACL is root access.
Returns
COMMAND_STATUS.COMMAND_SUCCEED (0) on success.
Exceptions Thrown
EZEBI_RESOURCE_NOT_FOUND
This exception is thrown if the specified share cannot be found.
EZEBI_INVALID_ARGUMENT
This exception is thrown for the following conditions:
• If an incorrect IP address or access mode is specified.
• If the specified share does not support the protocol.
• If the path specified belongs to a replica dataset.
EZEBI_GENERAL
This exception is thrown if the operation failed.
Examples
Example 1
Request (curl)
curl -X POST \
-H 'authorization: Basic Auth_TOKEN \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '[
"pool-a/Local/Project/demoShare", "FQDN", "www.example.com", "rw", true
]' \
https://198.51.100.10/zebi/api/v2/addNFSNetworkACLOnShare -k

Response
The above request returns the HTTP status code 200 (OK) and 0 indicating success.
Example 2
Request (curl)
curl -X POST \
-H 'authorization: Basic Auth_TOKEN \
-H 'cache-control: no-cache' \

278

Network ACL Methods

-H 'content-type: application/json' \
-d '[
"pool-a/Local/Project/demoShare", "IP", "198.51.100.255", "rw", true
]' \
https://198.51.100.10/zebi/api/v2/addNFSNetworkACLOnShare -k

Response
The above request returns the HTTP status code 200 (OK) and 0 indicating success.
Example 3
Erroneous Request (curl)
curl -X POST \
-H 'authorization: Basic Auth_TOKEN \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '[pool-a/Local/Project/demoShare", "IP", "198.51.100.255", "rw", true]'
\
https://198.51.100.10/zebi/api/v2/addNFSNetworkACLOnShare -k

Response
The above request returns the HTTP status code 500 (internal server error) and the following
message:
{

"code":"EZEBI_RESOURCE_NOT_FOUND",
"details":"NFS sharing is not enabled on the specified dataset.
Please enable NFS sharing on the dataset and then try the operation
again.",
"message":"NFS sharing is not enabled for the specified share
'pool-a/Local/Project/demoShare'.",
"extendedData":{}

}

Example 4
Erroneous Request
curl -X POST \
-H 'authorization: Basic Auth_TOKEN \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '[
"pool-a/Local/Project/UNKNOWNShare", "IP", "198.51.100.255", "rw", true
]' \
https://198.51.100.10/zebi/api/v2/addNFSNetworkACLOnShare -k

279

Tegile IntelliFlash API Reference Guide, Version 2.3

Error Response
The above request returns the HTTP status code 500 (internal server error) and the following
message:
{

"code":"EZEBI_RESOURCE_NOT_FOUND",
"details":"",
"message":"Cannot find the specified share 'pool-a/Local/Project/
UNKNOWNShare'.",
"extendedData":{}
}

Example 5
Erroneous Request
curl -X POST \
-H 'authorization: Basic Auth_TOKEN \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '[
"pool-a/Local/Project/demoShare", "IP", "198.51.100.255", "read-write",
true
]' \
https://198.51.100.10/zebi/api/v2/addNFSNetworkACLOnShare -k

Error Response
The above request returns the HTTP status code 400 (bad request) and the following
message:
{

"code":"EZEBI_INVALID_ARGUMENT",
"details":"addNFSNetworkACLOnShare.arg3
value 'read-write': Network ACL can only be \"rw\" (Read-Write) or \"ro
\" (Read-Only).",
"message":"Network ACL can only be \"rw\" (Read-Write) or \"ro\" (ReadOnly).",
"extendedData":{"EX_CAUSE_MESSAGE":null}
}

addSMBNetworkACLOnProject
Adds network ACL to the SMB project.
First Available Version
API v2.1, IntelliFlash 3.7.0.x

280

Network ACL Methods

Related APIs
setSMBSharingOnProject, setSMBNetworkACLsOnProject, removeSMBNetworkACLOnProject,
removeAllSMBNetworkACLsOnProject, isProjectExposedOverSMB, getSMBNetworkACLsOnProject
Parameters
datasetPath
Path of the project. The format is /Local/.
This operation is not allowed for replica project datasets.
type
Type of network ACL host, whether IP or FQDN.
host
The host to use for providing access.
accessMode
Access mode. 'rw' for Read-Write access, 'ro' for Read-Only access.
Returns
COMMAND_STATUS.COMMAND_SUCCEED (0) on success.
Exceptions Thrown
EZEBI_RESOURCE_NOT_FOUND
This exception is thrown if the specified project cannot be found.
EZEBI_INVALID_ARGUMENT
This exception is thrown for the following conditions:
• If an incorrect IP address or access mode is specified.
• If the specified project does not support the protocol.
• If the path specified belongs to a replica dataset.
EZEBI_GENERAL
This exception is thrown if the operation failed.
Examples
Example 1
Request (curl)
curl -X POST \
-H 'authorization: Basic Auth_TOKEN \

281

Tegile IntelliFlash API Reference Guide, Version 2.3

-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '[
"pool-a/Local/demoProject", "FQDN", "www.example.com", "rw", true
]' \
https://198.51.100.10/zebi/api/v2/addSMBNetworkACLOnProject -k

Response
The above request returns the HTTP status code 200 (OK) and 0 indicating success.
Example 2
Request (curl)
curl -X POST \
-H 'authorization: Basic Auth_TOKEN \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '[
"pool-a/Local/demoProject", "IP", "198.51.100.255", "rw", true
]' \
https://198.51.100.10/zebi/api/v2/addSMBNetworkACLOnProject -k

Response
The above request returns the HTTP status code 200 (OK) and 0 indicating success.
Example 3
Erroneous Request (curl)
curl -X POST \
-H 'authorization: Basic Auth_TOKEN \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '[
"pool-a/Local/demoProject", "IP", "198.51.100.255", "rw", true
]' \
https://198.51.100.10/zebi/api/v2/addSMBNetworkACLOnProject -k

Response
The above request returns the HTTP status code 404 (not found) and the following message:
{

"code":"EZEBI_RESOURCE_NOT_FOUND",
"details":"SMB sharing is not enabled on the specified dataset.
Please enable SMB sharing on the dataset and then try the operation
again.",
"message":"SMB sharing is not enabled for the specified project

282

Network ACL Methods

}

'pool-a/Local/demoProject'.",
"extendedData":{}

Example 4
Erroneous Request
curl -X POST \
-H 'authorization: Basic Auth_TOKEN \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '[
"pool-a/Local/UNKNOWNProject", "IP", "198.51.100.255", "rw", true
]' \
https://198.51.100.10/zebi/api/v2/addSMBNetworkACLOnProject -k

Error Response
The above request returns the HTTP status code 404 (not found) and the following message:
{

"code":"EZEBI_RESOURCE_NOT_FOUND",
"details":"",
"message":"Cannot find the specified project 'pool-a/Local/
UNKNOWNProject'.",
"extendedData":{}
}

Example 5
Erroneous Request
curl -X POST \
-H 'authorization: Basic Auth_TOKEN \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '[
"pool-a/Local/demoProject", "IP", "198.51.100.255", "read-write", true
]' \
https://198.51.100.10/zebi/api/v2/addSMBNetworkACLOnProject -k

Error Response
The above request returns the HTTP status code 400 (bad request) and the following
message:
{

"code":"EZEBI_INVALID_ARGUMENT",
"details":"addSMBNetworkACLOnProject.arg3

283

Tegile IntelliFlash API Reference Guide, Version 2.3

value 'read-write': Network ACL can only be \"rw\" (Read-Write) or \"ro
\" (Read-Only).",
"message":"Network ACL can only be \"rw\" (Read-Write) or \"ro\" (ReadOnly).",
"extendedData":{"EX_CAUSE_MESSAGE":null}
}

addSMBNetworkACLOnShare
Adds a network ACL to the SMB share.
First Available Version
API v2.1, IntelliFlash 3.7.0.x
Related APIs
setSMBSharingOnShare, setSMBNetworkACLsOnShare, removeSMBNetworkACLOnShare,
removeAllSMBNetworkACLsOnShare, isShareExposedOverSMB, getSMBNetworkACLsOnShare
Parameters
datasetPath
Path of the share. The format is /Local//
.
This operation is not allowed for replica share datasets.
type
Type of network ACL host, whether IP or FQDN.
host
The host to use for providing access.
accessMode
Access mode. 'rw' for Read-Write access, 'ro' for Read-Only access.
Returns
COMMAND_STATUS.COMMAND_SUCCEED (0) on success.
Exceptions Thrown
EZEBI_RESOURCE_NOT_FOUND
This exception is thrown if the specified share cannot be found.
EZEBI_INVALID_ARGUMENT
This exception is thrown for the following conditions:

284

Network ACL Methods

• If an incorrect IP address or access mode is specified.
• If the specified share does not support the protocol.
• If the path specified belongs to a replica dataset.
EZEBI_GENERAL
This exception is thrown if the operation failed.
Examples
Example 1
Request (curl)
curl -X POST \
-H 'authorization: Basic Auth_TOKEN \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '[
"pool-a/Local/Project/demoShare", "FQDN", "www.example.com", "rw", true
]' \
https://198.51.100.10/zebi/api/v2/addSMBNetworkACLOnShare -k

Response
The above request returns the HTTP status code 200 (OK).
Example 2
Request (curl)
curl -X POST \
-H 'authorization: Basic Auth_TOKEN \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '[
"pool-a/Local/Project/demoShare", "IP", "198.51.100.255", "rw", true
]' \
https://198.51.100.10/zebi/api/v2/addSMBNetworkACLOnShare -k

Response
The above request returns the HTTP status code 200 (OK).
Example 3
Erroneous Request (curl)
curl -X POST \
-H 'authorization: Basic Auth_TOKEN \

285

Tegile IntelliFlash API Reference Guide, Version 2.3

-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '[
"pool-a/Local/Project/demoShare", "IP", "198.51.100.255", "rw", true
]' \
https://198.51.100.10/zebi/api/v2/addSMBNetworkACLOnShare -k

Response
The above request returns the HTTP status code 500 (internal server error) and the following
message:
{

"code":"EZEBI_RESOURCE_NOT_FOUND",
"details":"SMB sharing is not enabled on the specified dataset.
Please enable SMB sharing on the dataset and then try the operation
again.",
"message":"SMB sharing is not enabled for the specified project
'pool-a/Local/Project/demoShare'.",
"extendedData":{}

}

Example 4
Erroneous Request
curl -X POST \
-H 'authorization: Basic Auth_TOKEN \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '[
"pool-a/Local/Project/UNKNOWNShare", "IP", "198.51.100.255", "rw", true
]' \
https://198.51.100.10/zebi/api/v2/addSMBNetworkACLOnShare -k

Error Response
The above request returns the HTTP status code 500 (internal server error) and the following
message:
{

"code":"EZEBI_RESOURCE_NOT_FOUND",
"details":"",
"message":"Cannot find the specified project 'pool-a/Local/Project/
UNKNOWNShare'.",
"extendedData":{}
}

Example 5

286

Network ACL Methods

Erroneous Request
curl -X POST \
-H 'authorization: Basic Auth_TOKEN \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '[
"pool-a/Local/Project/demoShare", "IP", "198.51.100.255", "read-write",
true
]' \
https://198.51.100.10/zebi/api/v2/addSMBNetworkACLOnShare -k

Error Response
The above request returns the HTTP status code 400 (bad request) and the following
message:
{

"code":"EZEBI_INVALID_ARGUMENT",
"details":"addSMBNetworkACLOnShare.arg3
value 'read-write': Network ACL can only be \"rw\" (Read-Write) or \"ro
\" (Read-Only).",
"message":"Network ACL can only be \"rw\" (Read-Write) or \"ro\" (ReadOnly).",
"extendedData":{"EX_CAUSE_MESSAGE":null}
}

getNFSNetworkACLsOnProject
Returns all the network ACLs of the NFS project.
First Available Version
API v2.1, IntelliFlash 3.7.0.x
Related APIs
setNFSSharingOnProject, setNFSNetworkACLsOnProject, addNFSNetworkACLOnProject,
removeNFSNetworkACLOnProject, removeAllNFSNetworkACLsOnProject, isProjectExposedOverNFS
Parameters
datasetPath
Path of the project. The format is /Local/.
Returns
List of network ACLs objects of type NetworkACL_V2_1.

287

Tegile IntelliFlash API Reference Guide, Version 2.3

Exceptions Thrown
EZEBI_RESOURCE_NOT_FOUND
This exception is thrown if the specified project cannot be found.
EZEBI_GENERAL
This exception is thrown if the operation failed.
Examples
Example 1
Request (curl)
curl -X POST \
-H 'authorization: Basic Auth_TOKEN \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '[
"pool-a/Local/demoProject"
]' \
https://198.51.100.10/zebi/api/v2/getNFSNetworkACLsOnProject -k

Response
The above request returns the HTTP status code 200 (OK) and returns the list of NFS
network ACL objects.
[

{

},
{

}

]

"hostType":"IP",
"host":"198.51.100.255",
"accessMode":"ro",
"rootAccessForNFS":true
"hostType":"FQDN",
"host":"www.example.com",
"accessMode":"rw",
"rootAccessForNFS":true

Example 2
Erroneous Request (curl)
curl
-H
-H
-H

288

-X POST \
'authorization: Basic Auth_TOKEN \
'cache-control: no-cache' \
'content-type: application/json' \

Network ACL Methods

-d '[
"pool-a/Local/UNKNOWNProject"
]' \
https://198.51.100.10/zebi/api/v2/getNFSNetworkACLsOnProject -k

Error Response
The above request returns the HTTP status code 404 (not found) and the following message:
{

"code":"EZEBI_RESOURCE_NOT_FOUND",
"details":"",
"message":"Cannot find the specified project 'pool-a/Local/
UNKNOWNProject'.",
"extendedData":{}
}

getNFSNetworkACLsOnShare
Returns all the network ACLs of the NFS share.
First Available Version
API v2.1, IntelliFlash 3.7.0.x
Related APIs
setNFSSharingOnShare, setNFSNetworkACLsOnShare, addNFSNetworkACLOnShare,
removeNFSNetworkACLOnShare, removeAllNFSNetworkACLsOnShare, isShareExposedOverNFS
Parameters
datasetPath
Path of the share. The format is /Local//
.
Returns
List of network ACLs objects of type NetworkACL_V2_1.
Exceptions Thrown
EZEBI_RESOURCE_NOT_FOUND
This exception is thrown if the specified share cannot be found.
EZEBI_GENERAL
This exception is thrown if the operation failed.

289

Tegile IntelliFlash API Reference Guide, Version 2.3

Examples
Example 1
Request (curl)
curl -X POST \
-H 'authorization: Basic Auth_TOKEN \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '[
"pool-a/Local/Project/demoShare"
]' \
https://198.51.100.10/zebi/api/v2/getNFSNetworkACLsOnShare -k

Response
The above request returns the HTTP status code 200 (OK) and returns the list of NFS
network ACL objects.
[

{

},
{

]

}

"hostType":"IP",
"host":"198.51.100.255",
"accessMode":"ro",
"rootAccessForNFS":true
"hostType":"FQDN",
"host":"www.example.com",
"accessMode":"rw",
"rootAccessForNFS":true

Example 2
Erroneous Request (curl)
curl -X POST \
-H 'authorization: Basic Auth_TOKEN \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '[
"pool-a/Local/Project/UNKNOWNShare"
]' \
https://198.51.100.10/zebi/api/v2/getNFSNetworkACLsOnShare -k

Error Response

290

Network ACL Methods

The above request returns the HTTP status code 500 (internal server error) and the following
response:
{

"code":"EZEBI_RESOURCE_NOT_FOUND",
"details":"",
"message":"Cannot find the specified share 'pool-a/Local/Project/
UNKNOWNShare'.",
"extendedData":{}
}

getSMBNetworkACLsOnProject
Returns all the network ACLs of the SMB project.
First Available Version
API v2.1, IntelliFlash 3.7.0.x
Related APIs
setSMBSharingOnProject, setSMBNetworkACLsOnProject, addSMBNetworkACLOnProject,
removeSMBNetworkACLOnProject, removeAllSMBNetworkACLsOnProject,
isProjectExposedOverSMB
Parameters
datasetPath
Path of the project. The format is /Local/.
Returns
List of network ACL objects of type NetworkACL_V2_1.
Exceptions Thrown
EZEBI_RESOURCE_NOT_FOUND
This exception is thrown if the specified project cannot be found.
EZEBI_GENERAL
This exception is thrown if the operation failed.
Examples
Example 1

291

Tegile IntelliFlash API Reference Guide, Version 2.3

Request (curl)
curl -X POST \
-H 'authorization: Basic Auth_TOKEN \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '[
"pool-a/Local/demoProject"
]' \
https://198.51.100.10/zebi/api/v2/getSMBNetworkACLsOnProject -k

Response:
The above request returns the HTTP status code 200 (OK) and returns the list of SMB
network ACL objects.
[

{

},
{

]

}

"hostType":"IP",
"host":"198.51.100.255",
"accessMode":"ro",
"rootAccessForNFS":true
"hostType":"FQDN",
"host":"www.example.com",
"accessMode":"rw",
"rootAccessForNFS":true

Example 2
Erroneous Request (curl)
curl -X POST \
-H 'authorization: Basic Auth_TOKEN \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '[
"pool-a/Local/UNKNOWNProject"
]' \
https://198.51.100.10/zebi/api/v2/getSMBNetworkACLsOnProject -k

Error Response
The above request returns the HTTP status code 404 (not found) and the following message:
{

292

"code":"EZEBI_RESOURCE_NOT_FOUND",

Network ACL Methods

"details":"",
"message":"Cannot find the specified project 'pool-a/Local/
UNKNOWNProject'.",
"extendedData":{}
}

getSMBNetworkACLsOnShare
Returns all the network ACLs of the SMB share.
First Available Version
API v2.1, IntelliFlash 3.7.0.x
Related APIs
setSMBSharingOnShare, setSMBNetworkACLsOnShare, addSMBNetworkACLOnShare,
removeSMBNetworkACLOnShare, removeAllSMBNetworkACLsOnShare, isShareExposedOverSMB
Parameters
datasetPath
Path of the share. The format is /Local//
.
Returns
List of network ACL objects of the NetworkACL_V2_1 type.
Exceptions Thrown
EZEBI_RESOURCE_NOT_FOUND
This exception is thrown if the specified share cannot be found.
EZEBI_GENERAL
This exception is thrown if the operation failed.
Examples
Example 1
Request (curl)
curl
-H
-H
-H
-d

-X POST \
'authorization: Basic Auth_TOKEN \
'cache-control: no-cache' \
'content-type: application/json' \
'[

293

Tegile IntelliFlash API Reference Guide, Version 2.3

"pool-a/Local/Project/demoShare"
]' \
https://198.51.100.10/zebi/api/v2/getSMBNetworkACLsOnShare -k

Response
The above request returns the HTTP status code 200 (OK) and the following response:
[

{

},
{

}

]

"hostType":"IP",
"host":"198.51.100.255",
"accessMode":"ro",
"rootAccessForNFS":true
"hostType":"FQDN",
"host":"www.example.com",
"accessMode":"rw",
"rootAccessForNFS":true

Example 2
Erroneous Request (curl)
curl -X POST \
-H 'authorization: Basic Auth_TOKEN \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '[
"pool-a/Local/Project/UNKNOWNShare"
]' \
https://198.51.100.10/zebi/api/v2/getSMBNetworkACLsOnShare -k

Error Response
The above request returns the HTTP status code 500 (internal server error) and the following
message:
{

"code":"EZEBI_RESOURCE_NOT_FOUND",
"details":"SMB sharing is not enabled on the specified dataset.
Please enable SMB sharing on the dataset and then try the
operation again.",
"message":"SMB sharing is not enabled for the specified share
'pool-a/Local/Project/UNKNOWNShare'.",
"extendedData":{}

}

294

Network ACL Methods

inheritNetworkACLsettingsFromProject
Enables or disables NFS protocol for a share.
First Available Version
API v2.1, IntelliFlash 3.7.0.x
Related APIs
setNFSNetworkACLsOnShare, addNFSNetworkACLOnShare, removeNFSNetworkACLOnShare,
removeAllNFSNetworkACLsOnShare, isShareExposedOverNFS, getNFSNetworkACLsOnShare,
setNFSNetworkACLsOnShare, addNFSNetworkACLOnShare, removeNFSNetworkACLOnShare,
removeAllNFSNetworkACLsOnShare, isShareExposedOverNFS, getNFSNetworkACLsOnShare
Parameters
datasetPath
Path of the project. The format is /Local//
.
This operation is not allowed for replica share datasets.
Values returned
COMMAND_STATUS.COMMAND_SUCCEED (0) on success.
Exceptions Thrown
EZEBI_RESOURCE_NOT_FOUND
This exception is thrown if the specified share cannot be found.
EZEBI_INVALID_ARGUMENT
This exception is thrown if the path specified belongs to a replica dataset.
EZEBI_GENERAL
This exception is thrown if the operation failed.
Examples
Example 1
Request (curl)
curl -X POST \
-H 'Authorization:Basic Auth_TOKEN' \
-H 'cache-control: no-cache' \

295

Tegile IntelliFlash API Reference Guide, Version 2.3

-H 'Content-Type:application/json' \
-d '["pool-a/Local/project/demoShare"]' \
https://198.51.100.10/zebi/api/v2/inheritNetworkACLsettingsFromProject
-k

Response
The above request returns the HTTP status code 200 (OK).
Example 2
Erroneous Request (curl)
curl
-H
-H
-H
-d
-k

-X POST \
'Authorization:Basic Auth_TOKEN' \
'cache-control: no-cache' \
'Content-Type:application/json' \
'["pool-a/Local/project/UNKNOWNShare"]'
https://198.51.100.10/zebi/api/v2/inheritNetworkACLsettingsFromProject

Response
The above request returns the HTTP status code 500 (internal server error) and the following
response:
{

}

"code": "EZEBI_RESOURCE_NOT_FOUND",
"details": "Unable to open pool-a/Local/project/UNKNOWNShare :
dataset does not exist",
"message": "Unable to open pool-a/Local/project/UNKNOWNShare :
dataset does not exist",
"extendedData": {
"EX_CAUSE_MESSAGE": "Unable to open pool-a/Local/project/UNKNOWNShare :
dataset does not exist",
"EX_CAUSE_CODE_NAME": "EZFS_NOENT",
"EX_CAUSE_CODE_NUMBER": "2009" }

Example 3
Erroneous Request
curl
-H
-H
-H
-d
-k

296

-X POST \
'Authorization:Basic Auth_TOKEN' \
'cache-control: no-cache' \
'Content-Type:application/json' \
'["pool-a/Replica/replicaProj/replicaShare"]'
https://198.51.100.10/zebi/api/v2/inheritNetworkACLsettingsFromProject

Network ACL Methods

Error Response
The above request returns the HTTP status code 400 (bad request) and the following
message:
{

"code":"EZEBI_INVALID_ARGUMENT",
"details":"inheritNetworkACLsettingsFromProject.arg0 value
'pool-a/Replica/replicaProj/replicaShare': Local dataset path
expected.
For example, valid formats are 'pool-name/Local/project-name'
or
'pool-name/Local/project-name/share-or-lun-name'.",
"message":"Local dataset path expected.
For example, valid formats are 'pool-name/Local/project-name' or
'pool-name/Local/project-name/share-or-lun-name'.",
"extendedData":{
"EX_CAUSE_MESSAGE":null
}

}

removeAllNFSNetworkACLsOnProject
Removes all network ACLs from an NFS project.
First Available Version
API v2.1, IntelliFlash 3.7.0.x
Related APIs
setNFSSharingOnProject, setNFSNetworkACLsOnProject, addNFSNetworkACLOnProject,
removeNFSNetworkACLOnProject, isProjectExposedOverNFS, getNFSNetworkACLsOnProject
Parameters
datasetPath
Path of the project. The format is /Local/.
Returns
COMMAND_STATUS.COMMAND_SUCCEED (0) on success.
Exceptions Thrown
EZEBI_RESOURCE_NOT_FOUND
This exception is thrown if the specified project cannot be found.
EZEBI_INVALID_ARGUMENT

297

Tegile IntelliFlash API Reference Guide, Version 2.3

This exception is thrown if the specified project does not support the protocol.
EZEBI_GENERAL
This exception is thrown if the operation failed.
Examples
Example 1
Request (curl)
curl -X POST \
-H 'authorization: Basic Auth_TOKEN \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '[
"pool-a/Local/demoProject"
]' \
https://198.51.100.10/zebi/api/v2/removeAllNFSNetworkACLsOnProject -k

Response
The above request returns the HTTP status code 200 (OK) and 0 indicating success.
Example 2
Erroneous Request (curl)
curl -X POST \
-H 'authorization: Basic Auth_TOKEN \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '[
"pool-a/Local/UNKNOWNProject"
]' \
https://198.51.100.10/zebi/api/v2/removeAllNFSNetworkACLsOnProject -k

Response
The above request returns the HTTP status code 404 (not found) and the following message:
{

"code":"EZEBI_RESOURCE_NOT_FOUND",
"details":"",
"message":"Cannot find the specified project 'pool-a/Local/
UNKNOWNProject'.",
"extendedData":{}
}

298

Network ACL Methods

removeAllNFSNetworkACLsOnShare
Removes all network ACLs from an NFS share.
First Available Version
API v2.1, IntelliFlash 3.7.0.x
Related APIs
setNFSSharingOnShare, setNFSNetworkACLsOnShare, addNFSNetworkACLOnShare,
removeNFSNetworkACLOnShare, isShareExposedOverNFS, getNFSNetworkACLsOnShare
Parameters
datasetPath
Path of the share. The format is /Local//
.
Returns
COMMAND_STATUS.COMMAND_SUCCEED (0) on success.
Exceptions Thrown
EZEBI_RESOURCE_NOT_FOUND
This exception is thrown if the specified share cannot be found.
EZEBI_INVALID_ARGUMENT
This exception is thrown if the specified share does not support the protocol.
EZEBI_GENERAL
This exception is thrown if the operation failed.
Examples
Example 1
Request (curl)
curl -X POST \
-H 'authorization: Basic Auth_TOKEN \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '["pool-a/Local/Project/demoShare"]'
https://198.51.100.10/zebi/api/v2/removeAllNFSNetworkACLsOnShare -k

299

Tegile IntelliFlash API Reference Guide, Version 2.3

Response
The above request returns the HTTP status code 200 (OK).
Example 2
Erroneous Request (curl)
curl -X POST \
-H 'authorization: Basic Auth_TOKEN \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '["pool-a/Local/Project/UNKNOWNShare"]'
https://198.51.100.10/zebi/api/v2/removeAllNFSNetworkACLsOnShare -k

Response
The above request returns the HTTP status code 500 (internal server error) and the following
message:
{

"code":"EZEBI_RESOURCE_NOT_FOUND",
"details":"",
"NFS sharing is not enabled on the specified dataset.
Please enable NFS sharing on the dataset and then try the operation
again.",
"message":"NFS sharing is not enabled for the specified share
'pool-a/Local/project/UNKNOWNShare'.","extendedData":{}}}

removeAllSMBNetworkACLsOnProject
Removes all network ACLs from an SMB project.
First Available Version
API v2.1, IntelliFlash 3.7.0.x
Related APIs
setSMBSharingOnProject, setSMBNetworkACLsOnProject, addSMBNetworkACLOnProject,
removeSMBNetworkACLOnProject, isProjectExposedOverSMB, getSMBNetworkACLsOnProject
Parameters
datasetPath
Path of the project. The format is /Local/.
This operation is not allowed for replica project datasets.

300

Network ACL Methods

Returns
COMMAND_STATUS.COMMAND_SUCCEED (0) on success.
Exceptions Thrown
EZEBI_RESOURCE_NOT_FOUND
This exception is thrown if the specified project cannot be found.
EZEBI_INVALID_ARGUMENT
This exception is thrown if the specified project does not support the protocol.
EZEBI_GENERAL
This exception is thrown if the operation failed.
Examples
Example 1
Request (curl)
curl -X POST \
-H 'authorization: Basic Auth_TOKEN \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '[
"pool-a/Local/demoProject"
]' \
https://198.51.100.10/zebi/api/v2/removeAllSMBNetworkACLsOnProject -k

Response
The above request returns the HTTP status code 200 (OK) and 0 indicating success.
Example 2
Erroneous Request (curl)
curl -X POST \
-H 'authorization: Basic Auth_TOKEN \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '[
"pool-a/Local/UNKNOWNProject"
]' \
https://198.51.100.10/zebi/api/v2/removeAllSMBNetworkACLsOnProject -k

Response

301

Tegile IntelliFlash API Reference Guide, Version 2.3

The above request returns the HTTP status code 404 (not found) and the following message:
{

"code":"EZEBI_RESOURCE_NOT_FOUND",
"details":"",
"message":"Cannot find the specified project 'pool-a/Local/
UNKNOWNProject'.",
"extendedData":{}
}

removeAllSMBNetworkACLsOnShare
Removes all network ACLs from an SMB share.
First Available Version
API v2.1, IntelliFlash 3.7.0.x
Related APIs
setSMBSharingOnShare, setSMBNetworkACLsOnShare, addSMBNetworkACLOnShare,
removeSMBNetworkACLOnShare, isShareExposedOverSMB, getSMBNetworkACLsOnShare
Parameters
datasetPath
Path of the share. The format is /Local//
.
This operation is not allowed for replica share datasets.
Returns
COMMAND_STATUS.COMMAND_SUCCEED (0) on success.
Exceptions Thrown
EZEBI_RESOURCE_NOT_FOUND
This exception is thrown if the specified share cannot be found.
EZEBI_INVALID_ARGUMENT
This exception is thrown if the specified share does not support the protocol.
EZEBI_GENERAL
This exception is thrown if the operation failed.

302

Network ACL Methods

Examples
Example 1
Request (curl)
curl -X POST \
-H 'authorization: Basic Auth_TOKEN \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '["pool-a/Local/Project/demoShare"]' \
https://198.51.100.10/zebi/api/v2/removeAllSMBNetworkACLsOnShare -k

Response
The above request returns the HTTP status code 200 (OK).
Example 2
Erroneous Request
curl -X POST \
-H 'authorization: Basic Auth_TOKEN \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '["pool-a/Local/Project/UNKNOWNShare"]' \
https://198.51.100.10/zebi/api/v2/removeAllSMBNetworkACLsOnShare -k

Error Response
The above request returns the HTTP status code 500 (internal server error) and the following
message:
{"code":"EZEBI_RESOURCE_NOT_FOUND",
"details":"SMB sharing is not enabled on the specified dataset.
Please enable SMB sharing on the dataset and then try the operation
again.",
"message":"SMB sharing is not enabled for the specified share
'pool-a/Local/project/UNKNOWNShare'.","extendedData":{}}

removeNFSNetworkACLOnProject
Removes network ACL from an NFS project.
First Available Version
API v2.1, IntelliFlash 3.7.0.x

303

Tegile IntelliFlash API Reference Guide, Version 2.3

Related APIs
setNFSSharingOnProject, setNFSNetworkACLsOnProject, addNFSNetworkACLOnProject,
removeAllNFSNetworkACLsOnProject, isProjectExposedOverNFS, getNFSNetworkACLsOnProject
Parameters
datasetPath
Path of the project. The format is /Local/.
This operation is not allowed for replica project datasets.
type
Type of network ACL host, whether IP or FQDN.
host
The host to use for providing access.
Returns
COMMAND_STATUS.COMMAND_SUCCEED (0) on success.
Exceptions Thrown
EZEBI_RESOURCE_NOT_FOUND
This exception is thrown if the specified project cannot be found, or if the
specified ACL does not exist.
EZEBI_INVALID_ARGUMENT
This exception is thrown if the path specified belongs to a replica dataset.
EZEBI_GENERAL
This exception is thrown if the operation failed.
Examples
Example 1
Request (curl)
curl -X POST \
-H 'authorization: Basic Auth_TOKEN \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '[
"pool-a/Local/demoProject", "IP", "198.51.100.255"
]' \
https://198.51.100.10/zebi/api/v2/removeNFSNetworkACLOnProject -k

304

Network ACL Methods

Response
The above request returns the HTTP status code 200 (OK) and 0 indicating success.
Example 2
Erroneous Request (curl)
curl -X POST \
-H 'authorization: Basic Auth_TOKEN \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '[
"pool-a/Local/UNKNOWNProject", "IP", "198.51.100.255"
]' \
https://198.51.100.10/zebi/api/v2/removeNFSNetworkACLOnProject -k

Error Response
The above request returns the HTTP status code 404 (not found) and the following message:
{

"code":"EZEBI_RESOURCE_NOT_FOUND",
"details":"",
"message":"Cannot find the specified project 'pool-a/Local/
UNKNOWNProject'.",
"extendedData":{}
}

Example 3
Erroneous Request
curl -X POST \
-H 'authorization: Basic Auth_TOKEN \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '[
"pool-a/Local/demoProject", "FQDN", "www.example.com"
]' \
https://198.51.100.10/zebi/api/v2/removeNFSNetworkACLOnProject -k

Error Response
The above request returns the HTTP status code 404 (not found) and the following message:
{

"code":"EZEBI_RESOURCE_NOT_FOUND",
"details":"",

305

Tegile IntelliFlash API Reference Guide, Version 2.3

"message":"The specified ACL 'www.example.com' does not belong to the
dataset.",
"extendedData":{}

}

removeNFSNetworkACLOnShare
Removes network ACL from an NFS share.
First Available Version
API v2.1, IntelliFlash 3.7.0.x
Related APIs
setNFSSharingOnShare, setNFSNetworkACLsOnShare, addNFSNetworkACLOnShare,
removeAllNFSNetworkACLsOnShare, isShareExposedOverNFS, getNFSNetworkACLsOnShare
Parameters
datasetPath
Path of the share. The format is /Local//
.
This operation is not allowed for replica share datasets.
type
Type of network ACL host, whether IP or FQDN.
host
The host to use for providing access.
Returns
COMMAND_STATUS.COMMAND_SUCCEED (0) on success.
Exceptions Thrown
EZEBI_RESOURCE_NOT_FOUND
This exception is thrown if the specified share cannot be found, or if the
specified ACL does not exist.
EZEBI_INVALID_ARGUMENT
This exception is thrown if the path specified belongs to a replica dataset.
EZEBI_GENERAL

306

Network ACL Methods

This exception is thrown if the operation failed.
Examples
Example 1
Request (curl)
curl -X POST \
-H 'authorization: Basic Auth_TOKEN \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '[
"pool-a/Local/Project/demoShare", "IP", "198.51.100.255"
]' \
https://198.51.100.10/zebi/api/v2/removeNFSNetworkACLOnShare -k

Response
The above request returns the HTTP status code 200 (OK).
Example 2
Erroneous Request (curl)
curl -X POST \
-H 'authorization: Basic Auth_TOKEN \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '[
"pool-a/Local/Project/demoShare", "IP", "198.51.100.255"
]' \
https://198.51.100.10/zebi/api/v2/removeNFSNetworkACLOnShare -k

Response
The above request returns the HTTP status code 500 (internal server error) and the following
message:
{

"code":"EZEBI_RESOURCE_NOT_FOUND",
"details":"",
"NFS sharing is not enabled on the specified dataset.
Please enable NFS sharing on the dataset and then try the operation
again.",
"message":"NFS sharing is not enabled for the specified share
'pool-a/Local/project/demoShare'.","extendedData":{}}}

307

Tegile IntelliFlash API Reference Guide, Version 2.3

removeSMBNetworkACLOnProject
Removes network ACL from an SMB project.
First Available Version
API v2.1, IntelliFlash 3.7.0.x
Related APIs
setSMBSharingOnProject, setSMBNetworkACLsOnProject, addSMBNetworkACLOnProject,
removeAllSMBNetworkACLsOnProject, isProjectExposedOverSMB, getSMBNetworkACLsOnProject
Parameters
datasetPath
Path of the project. The format is /Local/.
This operation is not allowed for replica project datasets.
type
Type of network ACL host, whether IP or FQDN.
host
The host to use for providing access.
Returns
COMMAND_STATUS.COMMAND_SUCCEED (0) on success.
Exceptions Thrown
EZEBI_RESOURCE_NOT_FOUND
This exception is thrown if the specified project cannot be found, or if the
specified ACL does not exist.
EZEBI_INVALID_ARGUMENT
This exception is thrown if the path specified belongs to a replica dataset.
EZEBI_GENERAL
This exception is thrown if the operation failed.
Examples
Example 1

308

Network ACL Methods

Request (curl)
curl -X POST \
-H 'authorization: Basic Auth_TOKEN \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '[
"pool-a/Local/demoProject", "IP", "198.51.100.255"
]' \
https://198.51.100.10/zebi/api/v2/removeSMBNetworkACLOnProject -k

Response
The above request returns the HTTP status code 200 (OK) and 0 indicating success.
Example 2
Erroneous Request (curl)
curl -X POST \
-H 'authorization: Basic Auth_TOKEN \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '[
"pool-a/Local/UNKNOWNProject", "IP", "198.51.100.255"
]' \
https://198.51.100.10/zebi/api/v2/removeSMBNetworkACLOnProject -k

Response
The above request returns the HTTP status code 404 (not found) and the following message:
{

"code":"EZEBI_RESOURCE_NOT_FOUND",
"details":"",
"message":"Cannot find the specified project 'pool-a/Local/
UNKNOWNProject'.",
"extendedData":{}
}

Example 3
Erroneous Request
curl -X POST \
-H 'authorization: Basic Auth_TOKEN \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '[
"pool-a/Local/demoProject", "IP", "198.51.100.255"

309

Tegile IntelliFlash API Reference Guide, Version 2.3

]' \
https://198.51.100.10/zebi/api/v2/removeSMBNetworkACLOnProject -k

Error Response
The above request returns the HTTP status code 404 (not found) and the following message:
{

"code":"EZEBI_RESOURCE_NOT_FOUND",
"details":"",
"message":"The specified ACL '@198.51.100.255' does not belong to the
dataset.",
"extendedData":{}

}

removeSMBNetworkACLOnShare
Removes network ACL from an SMB share.
First Available Version
API v2.1, IntelliFlash 3.7.0.x
Related APIs
setSMBSharingOnShare, setSMBNetworkACLsOnShare, addSMBNetworkACLOnShare,
removeAllSMBNetworkACLsOnShare, isShareExposedOverSMB, getSMBNetworkACLsOnShare
Parameters
datasetPath
Path of the share. The format is /Local//
.
This operation is not allowed for replica share datasets.
type
Type of network ACL host, whether IP or FQDN.
host
The host to use for providing access.
Returns
COMMAND_STATUS.COMMAND_SUCCEED (0) on success.

310

Network ACL Methods

Exceptions Thrown
EZEBI_RESOURCE_NOT_FOUND
This exception is thrown if the specified share cannot be found, or if the
specified ACL does not exist.
EZEBI_INVALID_ARGUMENT
This exception is thrown if the share specified belongs to a replica dataset.
EZEBI_GENERAL
This exception is thrown if the operation failed.
Examples
Example 1
Request (curl)
curl -X POST \
-H 'authorization: Basic Auth_TOKEN \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '[
"pool-a/Local/Project/demoShare", "IP", "198.51.100.255"
]' \
https://198.51.100.10/zebi/api/v2/removeSMBNetworkACLOnShare -k

Response
The above request returns the HTTP status code 200 (OK).
Example 2
Erroneous Request
curl -X POST \
-H 'authorization: Basic Auth_TOKEN \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '[
"pool-a/Local/Project/demoShare", "IP", "198.51.100.255"
]' \
https://198.51.100.10/zebi/api/v2/removeSMBNetworkACLOnShare -k

Error Response
The above request returns the HTTP status code 500 (internal server error) and the following
message:

311

Tegile IntelliFlash API Reference Guide, Version 2.3

{"code":"EZEBI_RESOURCE_NOT_FOUND",
"details":"SMB sharing is not enabled on the specified dataset.
Please enable SMB sharing on the dataset and then try the operation
again.",
"message":"SMB sharing is not enabled for the specified share
'pool-a/Local/project/demoShare'.","extendedData":{}}

setNFSNetworkACLsOnProject
Set the network ACLs on the NFS project. If the dataset contains any existing network ACLs,
they are replaced with the new ones.
First Available Version
API v2.1, IntelliFlash 3.7.0.x
Related APIs
setNFSSharingOnProject, addNFSNetworkACLOnProject, removeNFSNetworkACLOnProject,
removeAllNFSNetworkACLsOnProject, isProjectExposedOverNFS, getNFSNetworkACLsOnProject
Parameters
datasetPath
Path of the project. The format is /Local/.
This operation is not allowed for replica project datasets.
networkACLs
Array of Network ACLs. Each object in the array is of the NetworkACL_V2_1
type.
Returns
COMMAND_STATUS.COMMAND_SUCCEED (0) on success.
Exceptions Thrown
EZEBI_RESOURCE_NOT_FOUND
This exception is thrown if the specified project cannot be found.
EZEBI_INVALID_ARGUMENT
This exception is thrown for the following conditions:
• If an incorrect IP address or access mode is specified.
• If the specified project does not support the protocol.
• If the path specified belongs to a replica dataset.

312

Network ACL Methods

EZEBI_GENERAL
This exception is thrown if the operation failed.
Examples
Example 1
Request (curl)
curl -X POST \
-H 'authorization: Basic Auth_TOKEN \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '[
"pool-a/Local/demoProject", [{"hostType": "IP", "host":"198.51.100.255",
"accessMode":"ro", "rootAccessForNFS":true},
{"hostType": "FQDN", "host":"www.example.com", "accessMode":"rw",
"rootAccessForNFS":true}]
]' \
https://198.51.100.10/zebi/api/v2/setNFSNetworkACLsOnProject -k

Response
The above request returns the HTTP status code 200 (OK) and 0 indicating success.
Example 2
Request (curl)

curl -X POST \
-H 'authorization: Basic Auth_TOKEN' \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '[
"pool-a/Local/demoProject",
[{"hostType": "IP", "host":"198.51.100.255", "accessMode":"ro",
"rootAccessForNFS":true}]
]' \
https://198.51.100.10/zebi/api/v2/setNFSNetworkACLsOnProject -k

Response
The above request returns the HTTP status code 200 (OK) and 0 indicating success.
Example 3
Erroneous Request (curl)
curl -X POST \

313

Tegile IntelliFlash API Reference Guide, Version 2.3

-H 'authorization: Basic Auth_TOKEN \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '[
"pool-a/Local/demoProject",
[{"hostType": "IP", "host":"198.51.100.255", "accessMode":"ro",
"rootAccessForNFS":true}, {"hostType": "FQDN",
"host":"www.example.com",
"accessMode":"rw", "rootAccessForNFS":true}]
]' \
https://198.51.100.10/zebi/api/v2/setNFSNetworkACLsOnProject -k

Response
The above request returns the HTTP status code 404 (not found) and the following message:
{

"code":"EZEBI_RESOURCE_NOT_FOUND",
"details":"NFS sharing is not enabled on the specified dataset.
Please enable NFS sharing on the dataset and then try the operation
again.",
"message":"NFS sharing is not enabled for the specified project
'pool-a/Local/demoProject'.",
"extendedData":{}

}

Example 4
Erroneous Request
curl -X POST \
-H 'authorization: Basic Auth_TOKEN \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '[
"pool-a/Local/demoProject",
[{"hostType": "IP", "host":"198.51.100.255", "accessMode":"ro",
"rootAccessForNFS":true}, {"hostType": "FQDN",
"host":"www.example.com",
"accessMode":"rw", "rootAccessForNFS":true}]
]' \
https://198.51.100.10/zebi/api/v2/setNFSNetworkACLsOnProject -k

Error Response
The above request returns the HTTP status code 400 (bad request) and the following
message:

{

314

"code":"EZEBI_INVALID_ARGUMENT",

Network ACL Methods

}

"details":"setNFSNetworkACLsOnProject.arg1[0] value
'com.example.skywalk.api.v2.IPublicAPI_V2_1$NetworkACL_V2_1@6cb39d3b':
Internet Protocol Network Address is in the wrong format.
Expecting a address in the NNN.NNN.NNN.NNN format, where each
address whole number is no greater than 255.",
"message":"Internet Protocol Network Address is in the wrong format.
Expecting a address in the NNN.NNN.NNN.NNN format, where each address
whole number is no greater than 255.",
"extendedData":{"EX_CAUSE_MESSAGE":null}

Example 5
Erroneous Request
curl -X POST \
-H 'authorization: Basic Auth_TOKEN \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '[
"pool-a/Replica/replicaProject", [{"hostType": "IP",
"host":"198.51.100.255",
"accessMode":"ro", "rootAccessForNFS":true},
{"hostType": "FQDN", "host":"www.example.com",
"accessMode":"rw", "rootAccessForNFS":true}]
]' \
https://198.51.100.10/zebi/api/v2/setNFSNetworkACLsOnProject -k

Error Response
The above request returns the HTTP status code 400 (bad request) and the following
message:
{

"code":"EZEBI_INVALID_ARGUMENT",
"details":"setNFSNetworkACLsOnProject.arg0 value 'pool-a/Replica/
replicaProject':
Local dataset path expected. For example, valid formats are
'pool-name/Local/project-name' or
'pool-name/Local/project-name/share-or-lun-name'.",
"message":"Local dataset path expected.
For example, valid formats are 'pool-name/Local/project-name' or
'pool-name/Local/project-name/share-or-lun-name'.",
"extendedData":{"EX_CAUSE_MESSAGE":null}
}

setNFSNetworkACLsOnShare
Set the network ACLs on the NFS share. If the dataset contains any existing network ACLs,
they are replaced with the new ones.

315

Tegile IntelliFlash API Reference Guide, Version 2.3

First Available Version
API v2.1, IntelliFlash 3.7.0.x
Related APIs
setNFSSharingOnShare, addNFSNetworkACLOnShare, removeNFSNetworkACLOnShare,
removeAllNFSNetworkACLsOnShare, isShareExposedOverNFS, getNFSNetworkACLsOnShare
Parameters
datasetPath
Path of the share. The format is /Local//
.
This operation is not allowed for replica project datasets.
networkACLs
Array of Network ACLs. Each object in the array is of the NetworkACL_V2_1
type.
Returns
COMMAND_STATUS.COMMAND_SUCCEED (0) on success.
Exceptions Thrown
EZEBI_RESOURCE_NOT_FOUND
This exception is thrown if the specified share cannot be found.
EZEBI_INVALID_ARGUMENT
This exception is thrown for the following conditions:
• If an incorrect IP address or access mode is specified.
• If the specified share does not support the protocol.
• If the path specified belongs to a replica dataset.
EZEBI_GENERAL
This exception is thrown if the operation failed.
Examples
Example 1
Request (curl)
curl -X POST

316

\

Network ACL Methods

-H
-H
-H
-d

'Authorization:Basic Auth_TOKEN' \
'cache-control: no-cache' \
'Content-Type:application/json' \
'["pool-a/Local/project/demoShare",
[{"hostType": "IP", "host":"198.51.100.255",
"accessMode":"ro", "rootAccessForNFS":true},
{"hostType": "FQDN", "host":"www.example.com", "accessMode":"rw",
"rootAccessForNFS":true}]]'
https://198.51.100.10/zebi/api/v2/setNFSNetworkACLsOnShare -k

Response
The above request returns the HTTP status code 200 (OK).
Example 2
Erroneous Request (curl)
curl
-H
-H
-H
-d

-X POST \
'Authorization:Basic Auth_TOKEN' \
'cache-control: no-cache' \
'Content-Type:application/json' \
'["pool-a/Local/project/demoShare",
[{"hostType": "IP", "host":"198.51.100.255", "accessMode":"ro",
"rootAccessForNFS":true},
{"hostType": "FQDN", "host":"www.example.com", "accessMode":"rw",
"rootAccessForNFS":true}]]'
https://198.51.100.10/zebi/api/v2/setNFSNetworkACLsOnShare -k

Error Response
The above request returns the HTTP status code 500 (internal server error) and the following
message:
{"code":"EZEBI_RESOURCE_NOT_FOUND","details":
"NFS sharing is not enabled on the specified dataset.
Please enable NFS sharing on the dataset and then try the operation again.
","message":"NFS sharing is not enabled for the specified share
'pool-a/Local/project/demoShare'.","extendedData":{}}

Example 3
Erroneous Request
curl
-H
-H
-H
-d

-X POST \
'Authorization:Basic Auth_TOKEN' \
'cache-control: no-cache' \
'Content-Type:application/json' \
'["pool-a/Local/project/demoShare",
[{"hostType": "IP", "host":"198.51.100.255", "accessMode":"ro",
"rootAccessForNFS":true},
{"hostType": "FQDN", "host":"www.example.com",
"accessMode":"rw", "rootAccessForNFS":true}]]'

317

Tegile IntelliFlash API Reference Guide, Version 2.3

https://198.51.100.10/zebi/api/v2/setNFSNetworkACLsOnShare -k

Error Response
The above request returns the HTTP status code 400 (bad request) and the following
message:
{

"code":"EZEBI_INVALID_ARGUMENT",
"details":"setNFSNetworkACLsOnShare.arg1[0] value
'com.example.skywalk.api.v2.IPublicAPI_V2_1$NetworkACL_V2_1@6cb39d3b':
Internet Protocol Network Address is in the wrong format.
Expecting a address in the NNN.NNN.NNN.NNN format, where each
address whole number is no greater than 255.",
"message":"Internet Protocol Network Address is in the wrong format.
Expecting a address in the NNN.NNN.NNN.NNN format, where each address
whole number is no greater than 255.",
"extendedData":{"EX_CAUSE_MESSAGE":null}

}

Example 4
Erroneous Request
curl
-H
-H
-H
-d

-X POST \
'Authorization:Basic Auth_TOKEN' \
'cache-control: no-cache' \
'Content-Type:application/json' \
'["pool-a/Replica/replicaProj/replicaShare",
[{"hostType": "IP", "host":"198.51.100.255", "accessMode":"ro",
"rootAccessForNFS":true},
{"hostType": "FQDN", "host":"www.example.com", "accessMode":"rw",
"rootAccessForNFS":true}]]'
https://198.51.100.10/zebi/api/v2/setSMBNetworkACLsOnShare -k

Error Response
The above request returns the HTTP status code 400 (bad request) and the following
message:
{

"code":"EZEBI_INVALID_ARGUMENT",
"details":"setNFSNetworkACLsOnShare.arg0 value 'pool-a/Replica/
replicaProject':
Local dataset path expected. For example, valid formats are
'pool-name/Local/project-name' or
'pool-name/Local/project-name/share-or-lun-name'.",
"message":"Local dataset path expected.
For example, valid formats are 'pool-name/Local/project-name' or
'pool-name/Local/project-name/share-or-lun-name'.",
"extendedData":{"EX_CAUSE_MESSAGE":null}
}

318

Network ACL Methods

Example 5
Erroneous Request
curl -X POST \
-H 'authorization: Basic Auth_TOKEN' \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '[
"pool-a/Replica/replicaProject",
[{"hostType": "IP", "host":"10.10.10.10",
"accessMode":"ro", "rootAccessForNFS":true},
{"hostType": "FQDN", "host":"www.example.com",
"accessMode":"rw", "rootAccessForNFS":true}]
]' \
https://198.51.100.10/zebi/api/v2/setSMBNetworkACLsOnProject -k

Error Response
The above request returns the HTTP status code 400 (bad request) and the following
message:
{

or

or
}

"code":"EZEBI_INVALID_ARGUMENT",
"details":"setSMBNetworkACLsOnProject.arg0 value
'pool-a/Replica/replicaProject': Local dataset path expected.
For example, valid formats are 'pool-name/Local/project-name'
'pool-name/Local/project-name/share-or-lun-name'.",
"message":"Local dataset path expected.
For example, valid formats are 'pool-name/Local/project-name'
'pool-name/Local/project-name/share-or-lun-name'.",
"extendedData":{"EX_CAUSE_MESSAGE":null}

setSMBNetworkACLsOnProject
Sets the network ACLs on the SMB project.
First Available Version
API v2.1, IntelliFlash 3.7.0.x
Related APIs
setSMBSharingOnProject, addSMBNetworkACLOnProject, removeSMBNetworkACLOnProject,
removeAllSMBNetworkACLsOnProject, isProjectExposedOverSMB, getSMBNetworkACLsOnProject

319

Tegile IntelliFlash API Reference Guide, Version 2.3

Parameters
datasetPath
Path of the project. The format is /Local/.
This operation is not allowed for replica project datasets.
networkACLs
Array of Network ACLs. Each object in the array is of type NetworkACL_V2_1.
Returns
COMMAND_STATUS.COMMAND_SUCCEED (0) on success.
Exceptions Thrown
EZEBI_RESOURCE_NOT_FOUND
This exception is thrown if the specified project cannot be found.
EZEBI_INVALID_ARGUMENT
This exception is thrown for the following conditions:
• If an incorrect IP address or access mode is specified.
• If the specified project does not support the protocol.
• If the path specified belongs to a replica dataset.
EZEBI_GENERAL
This exception is thrown if the operation failed.
Examples
Example 1
Request (curl)
curl -X POST \
-H 'authorization: Basic Auth_TOKEN \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '[
"pool-a/Local/demoProject", [{"hostType": "IP", "host":"198.51.100.255",
"accessMode":"ro", "rootAccessForNFS":true},
{"hostType": "FQDN", "host":"www.example.com", "accessMode":"rw",
"rootAccessForNFS":true}]
]' \
https://198.51.100.10/zebi/api/v2/setSMBNetworkACLsOnProject -k

Response

320

Network ACL Methods

The above request returns the HTTP status code 200 (OK) and 0 indicating success.
Example 2
Erroneous Request (curl)
curl -X POST \
-H 'authorization: Basic Auth_TOKEN \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '[
"pool-a/Local/demoProject",
[{"hostType": "IP", "host":"198.51.100.255", "accessMode":"ro",
"rootAccessForNFS":true}, {"hostType": "FQDN",
"host":"www.example.com",
"accessMode":"rw", "rootAccessForNFS":true}]
]' \
https://198.51.100.10/zebi/api/v2/setSMBNetworkACLsOnProject -k

Response
The above request returns the HTTP status code 404 (not found) and the following message:
{

"code":"EZEBI_RESOURCE_NOT_FOUND",
"details":"SMB sharing is not enabled on the specified dataset.
Please enable SMB sharing on the dataset and then try the operation
again.",
"message":"SMB sharing is not enabled for the specified project
'pool-a/Local/demoProject'.",
"extendedData":{}

}

Example 3
Erroneous Request
curl -X POST \
-H 'authorization: Basic Auth_TOKEN \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '[
"pool-a/Local/demoProject",
[{"hostType": "IP", "host":"198.51.100.255", "accessMode":"ro",
"rootAccessForNFS":true}, {"hostType": "FQDN",
"host":"www.example.com",
"accessMode":"rw", "rootAccessForNFS":true}]
]' \
https://198.51.100.10/zebi/api/v2/setSMBNetworkACLsOnProject -k

Error Response

321

Tegile IntelliFlash API Reference Guide, Version 2.3

The above request returns the HTTP status code 400 (bad request) and the following
message:

{

}

"code":"EZEBI_INVALID_ARGUMENT",
"details":"setSMBNetworkACLsOnProject.arg1[0] value
'com.example.skywalk.api.v2.IPublicAPI_V2_1$NetworkACL_V2_1@6cb39d3b':
Internet Protocol Network Address is in the wrong format.
Expecting a address in the NNN.NNN.NNN.NNN format, where each
address whole number is no greater than 255.",
"message":"Internet Protocol Network Address is in the wrong format.
Expecting a address in the NNN.NNN.NNN.NNN format, where each address
whole number is no greater than 255.",
"extendedData":{"EX_CAUSE_MESSAGE":null}

Example 4
Erroneous Request
curl -X POST \
-H 'authorization: Basic Auth_TOKEN \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '[
"pool-a/Replica/replicaProject", [{"hostType": "IP",
"host":"198.51.100.255",
"accessMode":"ro", "rootAccessForNFS":true},
{"hostType": "FQDN", "host":"www.example.com",
"accessMode":"rw", "rootAccessForNFS":true}]
]' \
https://198.51.100.10/zebi/api/v2/setSMBNetworkACLsOnProject -k

Error Response
The above request returns the HTTP status code 400 (bad request) and the following
message:
{

"code":"EZEBI_INVALID_ARGUMENT",
"details":"setSMBNetworkACLsOnProject.arg0 value 'pool-a/Replica/
replicaProject':
Local dataset path expected. For example, valid formats are
'pool-name/Local/project-name' or
'pool-name/Local/project-name/share-or-lun-name'.",
"message":"Local dataset path expected.
For example, valid formats are 'pool-name/Local/project-name' or
'pool-name/Local/project-name/share-or-lun-name'.",
"extendedData":{"EX_CAUSE_MESSAGE":null}
}

322

Network ACL Methods

setSMBNetworkACLsOnShare
Sets the network ACLs on the SMB share.
First Available Version
API v2.1, IntelliFlash 3.7.0.x
Related APIs
setSMBSharingOnShare, addSMBNetworkACLOnShare, removeSMBNetworkACLOnShare,
removeAllSMBNetworkACLsOnShare, isShareExposedOverSMB, getSMBNetworkACLsOnShare
Parameters
datasetPath
Path of the share. The format is /Local/.
This operation is not allowed for replica share datasets.
networkACLs
Array of Network ACLs. Each object in the array is of type NetworkACL_V2_1.
Returns
COMMAND_STATUS.COMMAND_SUCCEED (0) on success.
Exceptions Thrown
EZEBI_RESOURCE_NOT_FOUND
This exception is thrown if the specified share cannot be found.
EZEBI_INVALID_ARGUMENT
This exception is thrown for the following conditions:
• If an incorrect IP address or access mode is specified.
• If the specified share does not support the protocol.
• If the path specified belongs to a replica dataset.
EZEBI_GENERAL
This exception is thrown if the operation failed.

323

Tegile IntelliFlash API Reference Guide, Version 2.3

Examples
Example 1
Request (curl)
curl -X POST \
-H 'authorization: Basic Auth_TOKEN \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '[
"pool-a/Local/Project/DemoShare", [{"hostType": "IP",
"host":"198.51.100.255",
"accessMode":"ro", "rootAccessForNFS":true},
{"hostType": "FQDN", "host":"www.example.com", "accessMode":"rw",
"rootAccessForNFS":true}]
]' \
https://198.51.100.10/zebi/api/v2/setSMBNetworkACLsOnShare -k

Response
The above request returns the HTTP status code 200 (OK).
Example 2
Erroneous Request (curl)
curl -X POST \
-H 'authorization: Basic Auth_TOKEN \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '[
"pool-a/Local/Project/demoShare",
[{"hostType": "IP", "host":"198.51.100.255", "accessMode":"ro",
"rootAccessForNFS":true}, {"hostType": "FQDN",
"host":"www.example.com",
"accessMode":"rw", "rootAccessForNFS":true}]
]' \
https://198.51.100.10/zebi/api/v2/setSMBNetworkACLsOnShare -k

Response
The above request returns the HTTP status code 500 (internal server error) and the following
message:
{

"code":"EZEBI_RESOURCE_NOT_FOUND",
"details":"SMB sharing is not enabled on the specified dataset.
Please enable SMB sharing on the dataset and then try the operation
again.",
"message":"SMB sharing is not enabled for the specified share
'pool-a/Local/Project/demoShare'.",

324

Network ACL Methods

}

"extendedData":{}

Example 3
Erroneous Request
curl -X POST \
-H 'authorization: Basic Auth_TOKEN \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '[
"pool-a/Local/Project/demoShare",
[{"hostType": "IP", "host":"198.51.100.255", "accessMode":"ro",
"rootAccessForNFS":true}, {"hostType": "FQDN",
"host":"www.example.com",
"accessMode":"rw", "rootAccessForNFS":true}]
]' \
https://198.51.100.10/zebi/api/v2/setSMBNetworkACLsOnShare -k

Error Response
The above request returns the HTTP status code 400 (Bad Request) and the following
message:

{

}

"code":"EZEBI_INVALID_ARGUMENT",
"details":"setSMBNetworkACLsOnShare.arg1[0] value
'com.example.skywalk.api.v2.IPublicAPI_V2_1$NetworkACL_V2_1@6cb39d3b':
Internet Protocol Network Address is in the wrong format.
Expecting a address in the NNN.NNN.NNN.NNN format, where each
address whole number is no greater than 255.",
"message":"Internet Protocol Network Address is in the wrong format.
Expecting a address in the NNN.NNN.NNN.NNN format, where each address
whole number is no greater than 255.",
"extendedData":{"EX_CAUSE_MESSAGE":null}

Example 4
Erroneous Request
curl -X POST \
-H 'authorization: Basic Auth_TOKEN \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '[
"pool-a/Replica/replicaProject/replicaShare",
[{"hostType": "IP", "host":"198.51.100.255",
"accessMode":"ro", "rootAccessForNFS":true},

325

Tegile IntelliFlash API Reference Guide, Version 2.3

{"hostType": "FQDN", "host":"www.example.com",
"accessMode":"rw", "rootAccessForNFS":true}]
]' \
https://198.51.100.10/zebi/api/v2/setSMBNetworkACLsOnShare -k

Error Response
The above request returns the HTTP status code 400 (bad request) and the following
message:
{

}

326

"code":"EZEBI_INVALID_ARGUMENT",
"details":"setSMBNetworkACLsOnShare.arg0 value
'pool-a/Replica/replicaProject/replicaShare':
Local dataset path expected. For example, valid formats are
'pool-name/Local/project-name' or
'pool-name/Local/project-name/share-or-lun-name'.",
"message":"Local dataset path expected.
For example, valid formats are 'pool-name/Local/project-name' or
'pool-name/Local/project-name/share-or-lun-name'.",
"extendedData":{"EX_CAUSE_MESSAGE":null}

Chapter 10
SNMP Methods
Topics:
•
•
•
•
•
•
•
•
•

addSNMPTrapListener
disableSNMPService
enableSNMPService
getSNMPSettings
isSNMPServiceEnabled
modifySNMPCommunityString
recreateSNMPTables
removeSNMPTrapListener
resyncSNMPTables

The following sections describe SNMP methods,
parameters and return types. They also include examples
with sample responses.

SNMP Methods | 327

Tegile IntelliFlash API Reference Guide, Version 2.3

addSNMPTrapListener
Adds an SNMP trap listener address that receives the SNMP event notifications.
First Available Version
API v2.1, IntelliFlash 3.7.0.x
Related APIs
enableSNMPService, disableSNMPService, isSNMPServiceEnabled, removeSNMPTrapListener,
getSNMPSettings, modifySNMPCommunityString
Parameters
trapListenerIp
IP address of the Trap listener.
Only up to 10 listeners are allowed. Must be a valid IPv4 address. The IP
address cannot be any of the reserved addresses. For example, addresses
such as 127.0.0.1, 0.0.0.0 and 255.255.255.255 are not allowed.
trapListenerPort
Port number of the Trap listener. The trap port must be in the 1-65535 range.
Returns
Returns an integer status where:
• 0 indicates that the request succeeded.
• 1 indicates that the request was not attempted.
• 2 indicates that the request failed.
Exceptions Thrown
EZEBI_RESOURCE_EXIST
This exception is thrown if the trap listener you added already exists.
EZEBI_INVALID_ARGUMENT
This exception is thrown if the IPv4 address of the listener is invalid (incorrectly
blank, invalid IPv4 format, the trap port not in the 1-65535 range, or the SNMP
service not enabled).
EZEBI_GENERAL
This exception is thrown if the operation failed.

328

SNMP Methods

Examples
Example 1
Request (curl)
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H "Content-Type:application/json" \
-H 'cache-control: no-cache' \
-d '["10.68.50.10",162]'
\
https://198.51.100.10/zebi/api/v2/addSNMPTrapListener

-k

Response
The above request returns the HTTP status code 200 (OK) and 0, indicating that it
successfully added the SNMP trap listener.
Example 2
Erroneous Request (curl)
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H "Content-Type:application/json" \
-H 'cache-control: no-cache' \
-d '["10.68.50.10",162]'
\
https://198.51.100.10/zebi/api/v2/addSNMPTrapListener

-k

Response
In this example, the requested SNMP trap listener already exists. So the request returns the
HTTP status code 400 (bad request) and the following response:
{

"code": "EZEBI_RESOURCE_EXIST",
"details": "",
"message":
"Trap listener 10.68.50.10:162 already exists in SNMP settings and
cannot be added",
"extendedData": {}

}

Example 3
Erroneous Request (curl)
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H "Content-Type:application/json" \
-H 'cache-control: no-cache' \
-d '["10.68.500.500",162]'
\
https://198.51.100.10/zebi/api/v2/addSNMPTrapListener

-k

329

Tegile IntelliFlash API Reference Guide, Version 2.3

Response
In this example, the SNMP trap was requested for an invalid IP address. So the request
returns the HTTP status code 400 (bad request) and the following response:
{

}

"code": "EZEBI_INVALID_ARGUMENT",
"details": "addSNMPTrapListener.arg0 value '10.68.500.500':
Internet Protocol Network Address is in the wrong format.
Expecting a address in the NNN.NNN.NNN.NNN format,
where each address whole number is no greater than 255.",
"message": "Internet Protocol Network Address is in the wrong format.
Expecting a address in the NNN.NNN.NNN.NNN format,
where each address whole number is no greater than 255.",
"extendedData": {
"EX_CAUSE_MESSAGE": null
}

disableSNMPService
Disables the SNMP service on the IntelliFlash array.
First Available Version
API v2.1, IntelliFlash 3.7.0.x
Related APIs
enableSNMPService, isSNMPServiceEnabled, addSNMPTrapListener, removeSNMPTrapListener,
getSNMPSettings, modifySNMPCommunityString
Parameters
None
Returns
Returns an integer status where:
• 0 indicates that the request succeeded.
• 1 indicates that the request was not attempted.
• 2 indicates that the request failed.
Exceptions Thrown
EZEBI_GENERAL
This exception is thrown if the operation failed.

330

SNMP Methods

Examples
Example 1
Request (curl)
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H "Content-Type:application/json" \
-H 'cache-control: no-cache' \
-d '[]'
\
https://198.51.100.10/zebi/api/v2/disableSNMPService

-k

Response
The above request returns the HTTP status code 200 (OK) and 0, indicating that the API
successfully disabled the service.

enableSNMPService
Enables the SNMP service on the IntelliFlash array and sets the SNMP community string.
First Available Version
API v2.1, IntelliFlash 3.7.0.x
Related APIs
disableSNMPService, isSNMPServiceEnabled, addSNMPTrapListener, removeSNMPTrapListener,
getSNMPSettings, modifySNMPCommunityString
Parameters
communityString
Community string to be used on the enabled SNMP service. The SNMP
community string cannot be longer than 64 characters. It cannot have special
characters such as *,#,/,\\,!,@,~,(,),[,],{,},=, and %.
Returns
Returns an integer status where:
• 0 indicates that the request succeeded.
• 1 indicates that the request was not attempted.
• 2 indicates that the request failed.
Exceptions Thrown
EZEBI_INVALID_ARGUMENT

331

Tegile IntelliFlash API Reference Guide, Version 2.3

This exception is thrown if the parameter is invalid. The SNMP community
string is invalid when it is incorrectly blank or beyond 64 characters long, or
has non-alphanumeric characters other than, dash, underscore or period.
EZEBI_GENERAL
This exception is thrown if the operation failed.
Examples
Example 1
Request (curl)
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H "Content-Type:application/json" \
-H 'cache-control: no-cache' \
-d '["public"]'
\
https://198.51.100.10/zebi/api/v2/enableSNMPService

-k

Response
The above request returns the HTTP status code 200 (OK) and 0, indicating that the API
successfully enabled the service.
Example 2
Request (curl)
curl -X POST -H "Authorization:Basic Auth_TOKEN"
-H "Content-Type:application/json" \
-d '["public#!@~"]'
\
https://198.51.100.10/zebi/api/v2/enableSNMPService

-k

Response
In this example, the requested SNMP community string format was invalid. So the request
returns the HTTP status code 400 (bad request) and the following response:
{

332

"code": "EZEBI_INVALID_ARGUMENT",
"details": "enableSNMPService.arg0 value ‘public#!@~’':
SNMP Community String cannot be longer than 64 characters
and it cannot have special characters
like *,#,/,\\,!,@,~,(,),[,],{,},=,%... (default='public')",
"message": "SNMP Community String cannot be longer than 64 characters
and it cannot have special characters
like *,#,/,\\,!,@,~,(,),[,],{,},=,%... (default='public')",
"extendedData": {
"EX_CAUSE_MESSAGE": null
}

SNMP Methods

}

getSNMPSettings
Returns the SNMP settings of the current SNMP service.
This includes the trap listeners and the SNMP community string in the JSON object
SNMP_Setting_V2_1.
First Available Version
API v2.1, IntelliFlash 3.7.0.x
Related APIs
enableSNMPService, disableSNMPService, isSNMPServiceEnabled, addSNMPTrapListener,
removeSNMPTrapListener, modifySNMPCommunityString
Parameters
None
Returns
Returns the JSON object SNMP_Setting_V2_1, which contains an array of the SNMP trap
listener ip:port values, and the SNMP community string.
Exceptions Thrown
EZEBI_GENERAL
This exception is thrown if the operation failed.
Examples
Example 1
Request (curl)
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H "Content-Type:application/json" \
-H 'cache-control: no-cache' \
-d '[]'
\
https://198.51.100.10/zebi/api/v2/getSNMPSettings -k

Response

333

Tegile IntelliFlash API Reference Guide, Version 2.3

The above request returns the HTTP status code 200 (OK) and a JSON object
SNMP_Setting_V2_1. For example:
{

}

"communityString": "public3",
"trapListeners": [
"10.68.97.43:162",
"10.68.97.44:162",
"10.68.97.45:162",
"10.68.97.46:162",
"10.68.50.10:10000"
]

Example 2
Erroneous Request (curl)
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H 'cache-control: no-cache' \
-H "Content-Type:application/json" \
-d '[]'
\
https://198.51.100.10/zebi/api/v2/getSNMPSettings -k

Response
In this example, the requested SNMP service is not running. So the request returns the HTTP
status code 400 (bad request) and the following response:
{

"code": "EZEBI_RESOURCE_NOT_FOUND",
"details": "",
"message": "SNMP Service must be enabled for this operation. Please
enable SNMP and try again.",
"extendedData": {}

}

isSNMPServiceEnabled
Checks whether the SNMP Service is enabled.
First Available Version
API v2.1, IntelliFlash 3.7.0.x

334

SNMP Methods

Related APIs
enableSNMPService, disableSNMPService, addSNMPTrapListener, removeSNMPTrapListener,
getSNMPSettings, modifySNMPCommunityString
Parameters
None
Returns
Returns a JSON boolean status where:
• False indicates that the service is not enabled.
• True indicates that the service is enabled.
Exceptions Thrown
EZEBI_GENERAL
This exception is thrown if the operation failed.
Examples
Example 1
Request (curl)
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H "Content-Type:application/json" \
-H 'cache-control: no-cache' \
-d '[]'
\
https://198.51.100.10/zebi/api/v2/isSNMPServiceEnabled

-k

Response
The above request returns the HTTP status code 200 (OK) and JSON boolean result (true =
SNMP enabled), indicating that the service is enabled.

modifySNMPCommunityString
Modifies the SNMP community string to be a new value.
First Available Version
API v2.1, IntelliFlash 3.7.0.x

335

Tegile IntelliFlash API Reference Guide, Version 2.3

Related APIs
enableSNMPService, disableSNMPService, isSNMPServiceEnabled, addSNMPTrapListener,
removeSNMPTrapListener, getSNMPSettings
Parameters
communityString
Community string to be used on the enabled SNMP service. The SNMP
community string cannot be longer than 64 characters. It cannot have special
characters such as *,#,/,\\,!,@,~,(,),[,],{,},=, and %.
Returns
Returns an integer status where:
• 0 indicates that the request succeeded.
• 1 indicates that the request was not attempted.
• 2 indicates that the request failed.
Exceptions Thrown
EZEBI_INVALID_ARGUMENT
This exception is thrown if the community string parameter is invalid. The
SNMP community string is invalid when it is incorrectly blank or beyond
64 characters long, or has non-alphanumeric characters other than dash,
underscore or period.
EZEBI_GENERAL
This exception is thrown if the operation failed.
Examples
Example 1
Request (curl)
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H "Content-Type:application/json" \
-H 'cache-control: no-cache' \
-d '["public2"]'
\
https://198.51.100.10/zebi/api/v2/modifySNMPCommunityString

-k

Response
The above request returns the HTTP status code 200 (OK) and 0, indicating that it
successfully modified the SNMP community string to “public2”.

336

SNMP Methods

Example 2
Request (curl)
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H "Content-Type:application/json" \
-H 'cache-control: no-cache' \
-d '["public#!@~"]'
\
https://198.51.100.10/zebi/api/v2/modifySNMPCommunityString

-k

Response
In this example, the requested SNMP community string format was invalid. So the request
returns the HTTP status code 400 (bad request) and the following response:
{

}

"code": "EZEBI_INVALID_ARGUMENT",
"details": "enableSNMPService.arg0 value ‘public#!@~’':
SNMP Community String cannot be longer than 64 characters
and it cannot have special characters
like *,#,/,\\,!,@,~,(,),[,],{,},=,%... (default='public')",
"message": "SNMP Community String cannot be longer than 64 characters
and it cannot have special characters
like *,#,/,\\,!,@,~,(,),[,],{,},=,%... (default='public')",
"extendedData": {
"EX_CAUSE_MESSAGE": null
}

recreateSNMPTables
Recreates the SNMP entries. After deletion or creation of objects, the SNMP table entries
might have gaps in the indices. Use this API to re-index the table entries.
First Available Version
API v2.1, IntelliFlash 3.5.4.0/3.7.0.x
Related APIs
resyncSNMPTables
Parameters
None
Returns
COMMAND_STATUS.COMMAND_SUCCEED (0) on success.

337

Tegile IntelliFlash API Reference Guide, Version 2.3

Exceptions Thrown
EZEBI_GENERAL
This exception is thrown if the operation failed or SNMP is not enabled.
Examples
Example 1
Request (curl)
curl
-H
-H
-H
-d

-X POST \
'authorization: Basic Auth_TOKEN \
'cache-control: no-cache' \
'content-type: application/json' \
'[

]' \
https://198.51.100.10/zebi/api/v2/recreateSNMPTables -k

Response:
The above request returns the HTTP status code 200 (OK) and 0 indicating success. This
initiates the SNMP table recreation in the background in asynchronous mode.

removeSNMPTrapListener
Removes an SNMP trap listener address that would have received SNMP event notifications.
First Available Version
API v2.1, IntelliFlash 3.7.0.x
Related APIs
enableSNMPService, disableSNMPService, isSNMPServiceEnabled, addSNMPTrapListener,
getSNMPSettings, modifySNMPCommunityString
Parameters
trapListenerIp
IP address of the Trap listener.
Only up to 10 listeners are allowed. Must be a valid IPv4 address. The IP
address cannot be any of the reserved addresses. For example, addresses
such as 127.0.0.1, 0.0.0.0 and 255.255.255.255 are not allowed.
trapListenerPort

338

SNMP Methods

Port number of the Trap listener. The trap port must be in the 1-65535 range.
Returns
Returns an integer status where:
• 0 indicates that the request succeeded.
• 1 indicates that the request was not attempted.
• 2 indicates that the request failed.
Exceptions Thrown
EZEBI_RESOURCE_NOT_FOUND
This exception is thrown if the trap listener does not exist.
EZEBI_INVALID_ARGUMENT
This exception is thrown if the IPv4 address of the listener is invalid (incorrectly
blank, invalid IPv4 format, the trap port not in the 1-65535 range, or the SNMP
service not enabled).
EZEBI_GENERAL
This exception is thrown if the operation failed.
Examples
Example 1
Request (curl)
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H "Content-Type:application/json" \
-H 'cache-control: no-cache' \
-d '["10.68.50.10",162]'
\
https://198.51.100.10/zebi/api/v2/removeSNMPTrapListener

-k

Response
The above request returns the HTTP status code 200 (OK) and 0, indicating that it
successfully removed the SNMP trap listener.
Example 2
Erroneous Request (curl)
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H "Content-Type:application/json" \
-H 'cache-control: no-cache' \
-d '["10.68.50.28",162]'
\

339

Tegile IntelliFlash API Reference Guide, Version 2.3

https://198.51.100.10/zebi/api/v2/removeSNMPTrapListener

-k

Response
In this example, the requested SNMP trap listener does not exist. So the request returns the
HTTP status code 400 (bad request) and the following response:
{

}

"code": "EZEBI_RESOURCE_NOT_FOUND",
"details": "",
"message": "Failed to find SNMP trap listener to remove",
"extendedData": {}

resyncSNMPTables
Resyncs the SNMP entries between the two controllers of the array. SNMP queries can be
sent to the management IP address or the individual controller IP address. If querying the
individual controllers for the same OID (SNMP Object Index) fetches different response, use
this API to resync the table entries between the controllers.
First Available Version
API v2.1, IntelliFlash 3.5.4.0/3.7.0.x
Related APIs
recreateSNMPTables
Parameters
None
Returns
COMMAND_STATUS.COMMAND_SUCCEED (0) on success.
Exceptions Thrown
EZEBI_GENERAL
This exception is thrown if the operation failed, or SNMP is not enabled.
Examples
Example 1

340

SNMP Methods

Request (curl)
curl
-H
-H
-H
-d

-X POST \
'authorization: Basic Auth_TOKEN \
'cache-control: no-cache' \
'content-type: application/json' \
'[

]' \
https://198.51.100.10/zebi/api/v2/resyncSNMPTables -k

Response:
The above request returns the HTTP status code 200 (OK) and 0 indicating success. This
initiates the SNMP table resync between controllers in the background in asynchronous
mode.

341

Chapter 11
Analytics Methods
Topics:
•
•

The following sections describe analytics methods,
parameters and return types. They also include examples
getOneMinuteSystemAnalyticsHistory with sample responses.
getOneMinuteDataAnalyticsHistory

Analytics Methods | 343

Tegile IntelliFlash API Reference Guide, Version 2.3

getOneMinuteSystemAnalyticsHistory
Returns the previous minute of analytics history for the specified system analytics.
The available system analytics are as follows:
• CPU: Provides the CPU usage data for each controller.
The following values are returned:
• Controller-[AB]/User: Percent CPU time spent in user space.
• Controller-[AB]/System: Percent CPU time spent in kernel.
• Controller-[AB]/Total_Used: Total percent CPU time used.
• Controller-[AB]/Interrupts: Average interrupts fired per second.
• Controller-[AB]/System_Calls: Average system calls per second.
• Cache Hits: Provides information on filesystem cache usage for each controller.
The following values are returned:
• Controller-[AB]/SSD_Reads: Percentage of reads that hit SSD cache.
• Controller-[AB]/RAM_Reads: Percentage of reads that hit RAM cache.
• Controller-[AB]/Cache_Reads: Percentage of reads that hit either RAM or SSD cache.
• Pool Performance: Provides average disk IO statistics for each disk type in each pool.
The values are returned in the following format:
[pool-name]/[disk-type]/[statistic]

Disk-types have the following values:
• Data: Disks used for data-only. HDDs in hybrid pools.
• Cache: SSDs designated as read/write cache.
• Meta: SSDs designated for metadata only.
• Iflash: SSD disk type housing metadata and cache.
The following statistics are returned for each disk:
• Read_MBps
• Write_Mbps
• Read_Ops
• Write_Ops
• Read_Latency
• Write_Latency
MBps and Ops values are per-second averages. Latency values are per-operation
averages in milliseconds.

344

Analytics Methods

• Network: Provides network IO statistics for each interface, interface group, and
controller.
For interfaces, the values are returned in the following format:
Controller-[AB]/I/[name]/[statistic]

For interface groups, the values are returned in the following format:
Controller-[AB]/IG/[name]/[statistic]

For controllers, the values are returned in the following format:
Controller-[AB]/Total/[statistic]

The following statistics are returned for each interface, interface group, or controller:
• Read_Mbps
• Transmit_Mbps
The network statistics are provided in Mbps, while all the other data statistics are
provided in MBps.
First Available Version
API v2.3, IntelliFlash 3.9.0.0
Related APIs
getOneMinuteDataAnalyticsHistory
Parameters
analyticsTypes
An array of requested analytics types to include. The allowed values are
NETWORK, POOL_PERFORMANCE, CPU, and CACHE_HITS.
Returns
Returns arrays of SystemAnalyticsResult_V2_3 objects.
Exceptions Thrown
EZEBI_GENERAL
This exception is thrown when an internal error is detected.
EZEBI_INVALID_ARGUMENT
This exception is thrown when a non-existent system analytic is requested.

345

Tegile IntelliFlash API Reference Guide, Version 2.3

Examples
Example 1
Request (curl)
curl -X POST \
-H 'authorization: Basic Auth_TOKEN \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '[
["NETWORK", "POOL_PERFORMANCE", "CPU", "CACHE_HITS"]
]' \
https://198.51.100.10/zebi/api/v2/getOneMinuteSystemAnalyticsHistory -k

Response:
[

346

{

"systemAnalyticsType": "POOL_PERFORMANCE",
"timestamps": [
1527187950000,
1527187955000,
1527187960000,
1527187965000,
1527187970000,
1527187975000,
1527187980000,
1527187985000,
1527187990000,
1527187995000,
1527188000000,
1527188005000
],
"datapoints": {
"pool-a/Iflash/Read_Latency": [
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
],
"pool-a/Data/Write_MBps": [
6.11,
13.75,
13.41,
9.21,
15.65,

Analytics Methods

4.11,
10.86,
16.16,
4.8,
15.11,
13.55,
11.09

],
"pool-a/Iflash/Write_Latency": [
1.74,
0.61,
0.4,
0.38,
1.51,
0.6,
0.51,
0.65,
0.32,
0.52,
0.44,
0.52
],
"pool-a/Iflash/Read_MBps": [
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
],
"pool-a/Data/Write_Latency": [
8.07,
102.73,
111.88,
86.99,
45.92,
33.55,
74.72,
98.97,
55.25,
92.84,
115.95,
86.53
],
"pool-a/Data/Read_Ops": [
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,

347

Tegile IntelliFlash API Reference Guide, Version 2.3

0,
0

],
"pool-a/Data/Read_MBps": [
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
],
"pool-a/Iflash/Write_Ops": [
653.25,
563,
588.5,
600.5,
669.5,
614.75,
594,
606.5,
605.5,
589.5,
580.25,
604.5
],
"pool-a/Data/Read_Latency": [
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
],
"pool-a/Data/Write_Ops": [
11,
13.5,
14,
10,
22.5,
5.5,
12,
17.5,
5.5,
16.5,
13,
12.5
],
"pool-a/Iflash/Read_Ops": [
0,

348

Analytics Methods

0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0

],
"pool-a/Iflash/Write_MBps": [
18.64,
19.22,
20.19,
20.54,
19.29,
20.38,
19.98,
20.16,
20.7,
19.73,
19.78,
20.48
]

},
{

},
"averages": {
"pool-a/Iflash/Read_Latency": 0,
"pool-a/Data/Write_MBps": 11.15,
"pool-a/Iflash/Write_Latency": 0.68,
"pool-a/Iflash/Read_MBps": 0,
"pool-a/Data/Write_Latency": 76.12,
"pool-a/Data/Read_Ops": 0,
"pool-a/Data/Read_MBps": 0,
"pool-a/Iflash/Write_Ops": 605.81,
"pool-a/Data/Read_Latency": 0,
"pool-a/Data/Write_Ops": 12.79,
"pool-a/Iflash/Read_Ops": 0,
"pool-a/Iflash/Write_MBps": 19.92
}
"systemAnalyticsType": "NETWORK",
"timestamps": [
1527187950000,
1527187955000,
1527187960000,
1527187965000,
1527187970000,
1527187975000,
1527187980000,
1527187985000,
1527187990000,
1527187995000,
1527188000000,
1527188005000
],
"datapoints": {
"Controller-B/I/igb0/Receive_Mbps": [
8,

349

Tegile IntelliFlash API Reference Guide, Version 2.3

8,
8,
7,
8,
8,
8,
8,
8,
8,
8,
8

],
"Controller-B/IG/mgmt0/Transmit_Mbps": [
292,
299,
303,
279,
302,
296,
302,
302,
302,
294,
303,
294
],
"Controller-A/Total/Transmit_Mbps": [
7,
8,
8,
8,
7,
8,
8,
8,
8,
8,
8,
8
],
"Controller-A/I/igb0/Transmit_Mbps": [
7,
8,
8,
8,
7,
8,
8,
8,
8,
8,
8,
8
],
"Controller-A/IG/mgmt0/Transmit_Mbps": [
7,
8,
8,
8,
7,
8,

350

Analytics Methods

8,
8,
8,
8,
8,
8

],
"Controller-B/Total/Transmit_Mbps": [
292,
299,
303,
279,
302,
296,
302,
302,
302,
294,
303,
294
],
"Controller-A/I/igb0/Receive_Mbps": [
269,
289,
302,
307,
277,
303,
297,
299,
309,
294,
296,
305
],
"Controller-B/I/igb0/Transmit_Mbps": [
292,
299,
303,
279,
302,
296,
302,
302,
302,
294,
303,
294
],
"Controller-A/IG/mgmt0/Receive_Mbps": [
269,
289,
302,
307,
277,
303,
297,
299,
309,
294,
296,

351

Tegile IntelliFlash API Reference Guide, Version 2.3

305
],
"Controller-B/IG/mgmt0/Receive_Mbps": [
8,
8,
8,
7,
8,
8,
8,
8,
8,
8,
8,
8
],
"Controller-A/Total/Receive_Mbps": [
269,
289,
302,
307,
277,
303,
297,
299,
309,
294,
296,
305
],
"Controller-B/Total/Receive_Mbps": [
8,
8,
8,
7,
8,
8,
8,
8,
8,
8,
8,
8
]

},
{

352

},
"averages": {
"Controller-B/I/igb0/Receive_Mbps": 7.92,
"Controller-B/IG/mgmt0/Transmit_Mbps": 297.33,
"Controller-A/Total/Transmit_Mbps": 7.83,
"Controller-A/I/igb0/Transmit_Mbps": 7.83,
"Controller-A/IG/mgmt0/Transmit_Mbps": 7.83,
"Controller-B/Total/Transmit_Mbps": 297.33,
"Controller-A/I/igb0/Receive_Mbps": 295.58,
"Controller-B/I/igb0/Transmit_Mbps": 297.33,
"Controller-A/IG/mgmt0/Receive_Mbps": 295.58,
"Controller-B/IG/mgmt0/Receive_Mbps": 7.92,
"Controller-A/Total/Receive_Mbps": 295.58,
"Controller-B/Total/Receive_Mbps": 7.92
}

Analytics Methods

"systemAnalyticsType": "CACHE_HITS",
"timestamps": [
1527187950000,
1527187955000,
1527187960000,
1527187965000,
1527187970000,
1527187975000,
1527187980000,
1527187985000,
1527187990000,
1527187995000,
1527188000000,
1527188005000
],
"datapoints": {
"Controller-A/SSD_Reads": [
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
],
"Controller-B/SSD_Reads": [
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
],
"Controller-A/Cache_Reads": [
100,
100,
100,
100,
100,
100,
100,
100,
100,
100,
100,
100
],
"Controller-B/RAM_Reads": [
100,
100,

353

Tegile IntelliFlash API Reference Guide, Version 2.3

100,
100,
100,
100,
100,
100,
100,
100,
100,
100

],
"Controller-A/RAM_Reads": [
100,
100,
100,
100,
100,
100,
100,
100,
100,
100,
100,
100
],
"Controller-B/Cache_Reads": [
100,
100,
100,
100,
100,
100,
100,
100,
100,
100,
100,
100
]

},
{

354

},
"averages": {
"Controller-A/SSD_Reads": 0,
"Controller-B/SSD_Reads": 0,
"Controller-A/Cache_Reads": 100,
"Controller-B/RAM_Reads": 100,
"Controller-A/RAM_Reads": 100,
"Controller-B/Cache_Reads": 100
}
"systemAnalyticsType": "CPU",
"timestamps": [
1527187950000,
1527187955000,
1527187960000,
1527187965000,
1527187970000,
1527187975000,
1527187980000,
1527187985000,
1527187990000,

Analytics Methods

1527187995000,
1527188000000,
1527188005000

],
"datapoints": {
"Controller-A/Total_Used": [
7,
6,
5,
5,
6,
5,
6,
6,
5,
8,
5,
5
],
"Controller-A/System": [
5,
6,
5,
5,
6,
5,
6,
6,
5,
7,
5,
5
],
"Controller-B/Interrupts": [
18073,
2883,
2698,
17917,
5275,
2707,
18019,
2719,
2788,
18173,
5145,
2818
],
"Controller-A/User": [
2,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0
],

355

Tegile IntelliFlash API Reference Guide, Version 2.3

"Controller-B/System_Calls": [
28848,
30049,
27126,
28281,
31055,
33048,
29474,
30022,
30586,
30349,
28219,
28531
],
"Controller-A/Interrupts": [
3712,
21457,
2734,
2772,
18501,
3448,
3827,
22768,
2719,
3590,
9798,
8864
],
"Controller-A/System_Calls": [
41815,
44313,
44414,
45189,
44876,
42671,
44464,
45133,
45545,
48780,
42323,
44076
],
"Controller-B/User": [
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
],
"Controller-B/System": [
7,
8,
7,
7,

356

Analytics Methods

9,
9,
7,
8,
7,
7,
7,
7

],
"Controller-B/Total_Used": [
7,
8,
7,
7,
9,
9,
7,
8,
7,
7,
7,
7
]

]

}

},
"averages": {
"Controller-A/Total_Used": 5.75,
"Controller-A/System": 5.5,
"Controller-B/Interrupts": 8267.92,
"Controller-A/User": 0.25,
"Controller-B/System_Calls": 29632.33,
"Controller-A/Interrupts": 8682.5,
"Controller-A/System_Calls": 44466.58,
"Controller-B/User": 0,
"Controller-B/System": 7.5,
"Controller-B/Total_Used": 7.5
}

Example 2
Erroneous Request (curl)
curl -X POST \
-H 'authorization: Basic Auth_TOKEN \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '[
["NONE"]
]' \
https://198.51.100.10/zebi/api/v2/getOneMinuteSystemAnalyticsHistory -k

Error Response:
{

357

Tegile IntelliFlash API Reference Guide, Version 2.3

}

"code": "EZEBI_INVALID_ARGUMENT",
"details": "",
"message": "Unknown system analytics type: 'NONE'",
"extendedData": {}

getOneMinuteDataAnalyticsHistory
Returns the previous minute of analytics history for the specified data entities.
The API returns the following values for each given data entity:
• Read_MBps
• Write_MBps
• Total_MBps
• Read_Ops
• Write_Ops
• Total_Ops
• Read_Latency
• Write_Latency
• Average_Latency
MBps and Ops values are per-second averages. Latency values are per-operation averages in
milliseconds.
First Available Version
API v2.3, IntelliFlash 3.9.0.0
Related APIs
getOneMinuteSystemAnalyticsHistory
Parameters
datasets
A dataset can be a pool, project, share, or LUN. The path for each dataset
should be in the following format:
[pool[/project[/dataset]]]

VMs
Provide the VM name in any of the following formats:
[vm-name]

358

Analytics Methods

[pool-name]/[vm-name]
[esx-host]/[vm-name]
[pool-name]/[esx-host]/[vm-name]

If multiple VMs match a given name, then all the macthing VMs are included.
protocols
A protocol name such as NFS, SMB, ISCSI, or FC.
Returns
Returns arrays of DataAnalyticsResult_V2_3 objects.
Exceptions Thrown
EZEBI_GENERAL
This exception is thrown when an internal error is detected.
EZEBI_INVALID_ARGUMENT
This exception is thrown when a non-existent protocol is requested.
Examples
Example 1
Request (curl)
curl -X POST \
-H 'authorization: Basic Auth_TOKEN \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '[
["pool-a", "pool-a/nfs2", "pool-a/nfs2/sh1"],
null,
["NFS", "ISCSI"]
]' \
https://198.51.100.10/zebi/api/v2/getOneMinuteDataAnalyticsHistory -k

Response:
[

{

"entityType": "PROJECT",
"entityName": "pool-a/nfs2",
"timestamps": [
1527188375000,
1527188380000,

359

Tegile IntelliFlash API Reference Guide, Version 2.3

1527188385000,
1527188390000,
1527188395000,
1527188400000,
1527188405000,
1527188410000,
1527188415000,
1527188420000,
1527188425000,
1527188430000

],
"datapoints": {
"Read_Ops": [
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
],
"Write_Ops": [
1143,
1153,
1124,
1122,
1033,
1057,
1136,
1151,
1163,
1156,
1141,
1145
],
"Read_MBps": [
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
],
"Write_Latency": [
0.52,
0.57,
0.51,
0.54,
1.88,
1.34,

360

Analytics Methods

0.52,
0.59,
0.5,
0.51,
0.52,
0.53

],
"Total_MBps": [
35.74,
36.03,
35.15,
35.09,
32.3,
33.04,
35.51,
35.99,
36.35,
36.14,
35.66,
35.8
],
"Read_Latency": [
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
],
"Total_Ops": [
1143,
1153,
1124,
1122,
1033,
1057,
1136,
1151,
1163,
1156,
1141,
1145
],
"Write_MBps": [
35.74,
36.03,
35.15,
35.09,
32.3,
33.04,
35.51,
35.99,
36.35,
36.14,
35.66,

361

Tegile IntelliFlash API Reference Guide, Version 2.3

35.8
],
"Average_Latency": [
0.52,
0.57,
0.51,
0.54,
1.88,
1.34,
0.52,
0.59,
0.5,
0.51,
0.52,
0.53
]

},
{

362

},
"averages": {
"Read_Ops": 0,
"Write_Ops": 1127,
"Read_MBps": 0,
"Write_Latency": 0.71,
"Total_MBps": 35.23,
"Read_Latency": 0,
"Total_Ops": 1127,
"Write_MBps": 35.23,
"Average_Latency": 0.71
}
"entityType": "DATASET",
"entityName": "pool-a/nfs2/sh1",
"timestamps": [
1527188375000,
1527188380000,
1527188385000,
1527188390000,
1527188395000,
1527188400000,
1527188405000,
1527188410000,
1527188415000,
1527188420000,
1527188425000,
1527188430000
],
"datapoints": {
"Read_Ops": [
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
],

Analytics Methods

"Write_Ops": [
1143,
1153,
1124,
1122,
1033,
1057,
1136,
1151,
1163,
1156,
1141,
1145
],
"Read_MBps": [
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
],
"Write_Latency": [
0.52,
0.57,
0.51,
0.54,
1.88,
1.34,
0.52,
0.59,
0.5,
0.51,
0.52,
0.53
],
"Total_MBps": [
35.74,
36.03,
35.15,
35.09,
32.3,
33.04,
35.51,
35.99,
36.35,
36.14,
35.66,
35.8
],
"Read_Latency": [
0,
0,
0,
0,

363

Tegile IntelliFlash API Reference Guide, Version 2.3

0,
0,
0,
0,
0,
0,
0,
0

],
"Total_Ops": [
1143,
1153,
1124,
1122,
1033,
1057,
1136,
1151,
1163,
1156,
1141,
1145
],
"Write_MBps": [
35.74,
36.03,
35.15,
35.09,
32.3,
33.04,
35.51,
35.99,
36.35,
36.14,
35.66,
35.8
],
"Average_Latency": [
0.52,
0.57,
0.51,
0.54,
1.88,
1.34,
0.52,
0.59,
0.5,
0.51,
0.52,
0.53
]

},
"averages": {
"Read_Ops": 0,
"Write_Ops": 1127,
"Read_MBps": 0,
"Write_Latency": 0.71,
"Total_MBps": 35.23,
"Read_Latency": 0,
"Total_Ops": 1127,
"Write_MBps": 35.23,

364

Analytics Methods

},
{

}

"Average_Latency": 0.71

"entityType": "PROTOCOL",
"entityName": "ISCSI",
"timestamps": [
1527188375000,
1527188380000,
1527188385000,
1527188390000,
1527188395000,
1527188400000,
1527188405000,
1527188410000,
1527188415000,
1527188420000,
1527188425000,
1527188430000
],
"datapoints": {
"Read_Ops": [
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
],
"Write_Ops": [
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
],
"Read_MBps": [
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,

365

Tegile IntelliFlash API Reference Guide, Version 2.3

0
],
"Write_Latency": [
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
],
"Total_MBps": [
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
],
"Read_Latency": [
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
],
"Total_Ops": [
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
],
"Write_MBps": [
0,
0,

366

Analytics Methods

0,
0,
0,
0,
0,
0,
0,
0,
0,
0

],
"Average_Latency": [
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
]

},
{

},
"averages": {
"Read_Ops": 0,
"Write_Ops": 0,
"Read_MBps": 0,
"Write_Latency": 0,
"Total_MBps": 0,
"Read_Latency": 0,
"Total_Ops": 0,
"Write_MBps": 0,
"Average_Latency": 0
}
"entityType": "POOL",
"entityName": "pool-a",
"timestamps": [
1527188375000,
1527188380000,
1527188385000,
1527188390000,
1527188395000,
1527188400000,
1527188405000,
1527188410000,
1527188415000,
1527188420000,
1527188425000,
1527188430000
],
"datapoints": {
"Read_Ops": [
0,
0,
0,
0,

367

Tegile IntelliFlash API Reference Guide, Version 2.3

0,
0,
0,
0,
0,
0,
0,
0

],
"Write_Ops": [
1143,
1153,
1124,
1122,
1033,
1057,
1136,
1151,
1163,
1156,
1141,
1145
],
"Read_MBps": [
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
],
"Write_Latency": [
0.52,
0.57,
0.51,
0.54,
1.88,
1.34,
0.52,
0.59,
0.5,
0.51,
0.52,
0.53
],
"Total_MBps": [
35.74,
36.03,
35.15,
35.09,
32.3,
33.04,
35.51,
35.99,
36.35,

368

Analytics Methods

36.14,
35.66,
35.8

},

],
"Read_Latency": [
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
],
"Total_Ops": [
1143,
1153,
1124,
1122,
1033,
1057,
1136,
1151,
1163,
1156,
1141,
1145
],
"Write_MBps": [
35.74,
36.03,
35.15,
35.09,
32.3,
33.04,
35.51,
35.99,
36.35,
36.14,
35.66,
35.8
],
"Average_Latency": [
0.52,
0.57,
0.51,
0.54,
1.88,
1.34,
0.52,
0.59,
0.5,
0.51,
0.52,
0.53
]

369

Tegile IntelliFlash API Reference Guide, Version 2.3

},
{

370

"averages": {
"Read_Ops": 0,
"Write_Ops": 1127,
"Read_MBps": 0,
"Write_Latency": 0.71,
"Total_MBps": 35.23,
"Read_Latency": 0,
"Total_Ops": 1127,
"Write_MBps": 35.23,
"Average_Latency": 0.71
}
"entityType": "PROTOCOL",
"entityName": "NFS",
"timestamps": [
1527188375000,
1527188380000,
1527188385000,
1527188390000,
1527188395000,
1527188400000,
1527188405000,
1527188410000,
1527188415000,
1527188420000,
1527188425000,
1527188430000
],
"datapoints": {
"Read_Ops": [
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
],
"Write_Ops": [
1143,
1153,
1124,
1122,
1033,
1057,
1136,
1151,
1163,
1156,
1141,
1145
],
"Read_MBps": [
0,
0,

Analytics Methods

0,
0,
0,
0,
0,
0,
0,
0,
0,
0

],
"Write_Latency": [
0.52,
0.57,
0.51,
0.54,
1.88,
1.34,
0.52,
0.59,
0.5,
0.51,
0.52,
0.53
],
"Total_MBps": [
35.74,
36.03,
35.15,
35.09,
32.3,
33.04,
35.51,
35.99,
36.35,
36.14,
35.66,
35.8
],
"Read_Latency": [
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
],
"Total_Ops": [
1143,
1153,
1124,
1122,
1033,
1057,
1136,

371

Tegile IntelliFlash API Reference Guide, Version 2.3

1151,
1163,
1156,
1141,
1145

],
"Write_MBps": [
35.74,
36.03,
35.15,
35.09,
32.3,
33.04,
35.51,
35.99,
36.35,
36.14,
35.66,
35.8
],
"Average_Latency": [
0.52,
0.57,
0.51,
0.54,
1.88,
1.34,
0.52,
0.59,
0.5,
0.51,
0.52,
0.53
]

]

}

},
"averages": {
"Read_Ops": 0,
"Write_Ops": 1127,
"Read_MBps": 0,
"Write_Latency": 0.71,
"Total_MBps": 35.23,
"Read_Latency": 0,
"Total_Ops": 1127,
"Write_MBps": 35.23,
"Average_Latency": 0.71
}

Example 2
Erroneous Request (curl)
curl -X POST \
-H 'authorization: Basic Auth_TOKEN \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '[
null,

372

Analytics Methods

null,
["VFS"]
]' \
https://198.51.100.10/zebi/api/v2/getOneMinuteDataAnalyticsHistory -k

Error Response:
{

}

"code": "EZEBI_INVALID_ARGUMENT",
"details": "",
"message": "Unknown protocol requested: 'VFS'",
"extendedData": {}

373

Chapter 12
Notification Methods
Topics:
•
•

getRecentNotifications
getRecentCriticalNotifications

The following sections describe notification methods,
parameters and return types. They also include examples
with sample responses.

Notification Methods | 375

Tegile IntelliFlash API Reference Guide, Version 2.3

getRecentNotifications
Returns the most recent events within the specified duration that exceed the specified
priority and match the event code filter.
First Available Version
API v2.3, IntelliFlash 3.9.0.0
Related APIs
getRecentCriticalNotifications
Parameters
durationInMinutes
The duration in minutes.
lowestPriority
Minimum priority. Accepted values are LOW, MEDIUM, HIGH, and CRITICAL.
The values are case sensitive.
eventCodeFilter
Free-text filter for event code. For example, SNP and POL. A null filter value
returns all results.
Returns
Returns an array of Notification_V2_3 objects.
Exceptions Thrown
EZEBI_INVALID_ARGUMENT
This exception is thrown if the priority is not a known value, or if the duration
is zero or negative.
Examples
Example 1
Request (curl)
curl
-H
-H
-H
-d

376

-X POST \
'authorization: Basic Auth_TOKEN \
'cache-control: no-cache' \
'content-type: application/json' \
'[

Notification Methods

8400,
"CRITICAL",
""
]' \
https://198.51.100.10/zebi/api/v2/getRecentNotifications -k

Response:
[

{

"timestamp": 1536728451968,
"eventCode": "DSK2208W22011",
"priority": "Critical",
"description": "JBOD Information mismatch across ha controllers for
jbod with chasis serial: 1123581321345589.",
"errorMessage": null,
"details": {
"User": "SYSTEM",
"Message": "Controller-A: [Chasis Id = TS1406-0090, Model = ]",
"Controller-B": "[Chasis Id = ST1403-0036, Model = ]"
}
},
{
"timestamp": 1536728417815,
"eventCode": "DSK2208W22011",
"priority": "Critical",
"description": "JBOD Information mismatch across ha controllers for
jbod with chasis serial: 1123581321345589.",
"errorMessage": null,
"details": {
"User": "SYSTEM",
"Message": "Controller-A: [Chasis Id = TS1406-0090, Model = ]",
"Controller-B": "[Chasis Id = ST1403-0036, Model = ]"
}
},
{
"timestamp": 1536693680334,
"eventCode": "CTR3600E36001",
"priority": "Critical",
"description": "Controller '2400-b' is down.",
"errorMessage": null,
"details": {
"User": "SYSTEM",
"Host 2": "2400-b",
"Host 1": "2400-a"
}
},
{
"timestamp": 1536693568659,
"eventCode": "CTR3600E36001",
"priority": "Critical",
"description": "Controller '2400-a' is down.",
"errorMessage": null,
"details": {
"User": "SYSTEM",
"Host 2": "2400-a",
"Host 1": "2400-b"
}

377

Tegile IntelliFlash API Reference Guide, Version 2.3

}

]

Example 2
Erroneous Request (curl)
curl
-H
-H
-H
-d

-X POST \
'authorization: Basic Auth_TOKEN \
'cache-control: no-cache' \
'content-type: application/json' \
'[
7400,
"VERY HIGH",
""
]
' \
https://198.51.100.10/zebi/api/v2/getRecentNotifications -k

Error Response:
{

}

"code": "EZEBI_INVALID_ARGUMENT",
"details": "getRecentNotifications.arg1 value 'VERY HIGH':
Invalid priority requested: 'VERY HIGH'",
"message": "Invalid priority requested: 'VERY HIGH'",
"extendedData": {
"EX_CAUSE_MESSAGE": null
}

getRecentCriticalNotifications
Returns the most recent critical events within the specified duration.
First Available Version
API v2.3, IntelliFlash 3.9.0.0
Related APIs
getRecentNotifications
Parameters
durationInMinutes
The duration in minutes.

378

Notification Methods

Returns
Returns an array of Notification_V2_3 objects.
Exceptions Thrown
EZEBI_INVALID_ARGUMENT
This exception is thrown if the duration is zero or negative.
Examples
Example 1
Request (curl)
curl
-H
-H
-H
-d

-X POST \
'authorization: Basic Auth_TOKEN \
'cache-control: no-cache' \
'content-type: application/json' \
'[
55000
]' \
https://198.51.100.10/zebi/api/v2/getRecentCriticalNotifications -k

Response:
[

{

},
{

"timestamp": 1532602657656,
"eventCode": "DSK2204E23001",
"priority": "Critical",
"description": "Disk error occurred. A disk read error occurred.",
"errorMessage": null,
"details": {
"VdevDevId": "id1,kdev@w000cca0b01a37e80/a",
"Product Id": "N5200-D1",
"User": "SYSTEM",
"Message": "Disk error occurred. A disk read error occurred.",
"Make": "HGST-HUSMR7619BDP3Y1",
"Fault Disk Information": "Unavailable",
"Chassis Id": "TG1806-1002",
"VdevType": "disk",
"Server Id": "NVMe-B",
"PoolName": "pool-2",
"VdevPath": "/dev/dsk/c8t000CCA0B01A37E80d0s0",
"ParentType": "--",
"RecordBy": "SystemMonitor"
}
"timestamp": 1532595977954,
"eventCode": "DSK2204E23001",
"priority": "Critical",
"description": "Disk error occurred.

A disk read error occurred.",

379

Tegile IntelliFlash API Reference Guide, Version 2.3

},
{

},
{

}

380

"errorMessage": null,
"details": {
"VdevDevId": "id1,kdev@w000cca0b01a37e80/a",
"Product Id": "N5200-D1",
"User": "SYSTEM",
"Message": "Disk error occurred. A disk read error occurred.",
"Make": "HGST-HUSMR7619BDP3Y1",
"Fault Disk Information": "Unavailable",
"Chassis Id": "TG1806-1002",
"VdevType": "disk",
"Server Id": "NVMe-B",
"PoolName": "pool-2",
"VdevPath": "/dev/dsk/c8t000CCA0B01A37E80d0s0",
"ParentType": "--",
"RecordBy": "SystemMonitor"
}
"timestamp": 1532595438903,
"eventCode": "DSK2204E23001",
"priority": "Critical",
"description": "Disk error occurred. A disk read error occurred.",
"errorMessage": null,
"details": {
"VdevDevId": "id1,kdev@w000cca0b01a37e80/a",
"Product Id": "N5200-D1",
"User": "SYSTEM",
"Message": "Disk error occurred. A disk read error occurred.",
"Make": "HGST-HUSMR7619BDP3Y1",
"Fault Disk Information": "Unavailable",
"Chassis Id": "TG1806-1002",
"VdevType": "disk",
"Server Id": "NVMe-B",
"PoolName": "pool-2",
"VdevPath": "/dev/dsk/c8t000CCA0B01A37E80d0s0",
"ParentType": "--",
"RecordBy": "SystemMonitor"
}
"timestamp": 1532502366523,
"eventCode": "DSK2204E23001",
"priority": "Critical",
"description": "Disk error occurred. A disk read error occurred.",
"errorMessage": null,
"details": {
"VdevDevId": "id1,kdev@w000cca0b01a37e80/a",
"Product Id": "N5200-D1",
"User": "SYSTEM",
"Message": "Disk error occurred. A disk read error occurred.",
"Make": "HGST-HUSMR7619BDP3Y1",
"Fault Disk Information": "Unavailable",
"Chassis Id": "TG1806-1002",
"VdevType": "disk",
"Server Id": "NVMe-B",
"PoolName": "pool-2",
"VdevPath": "/dev/dsk/c8t000CCA0B01A37E80d0s0",
"ParentType": "--",
"RecordBy": "SystemMonitor"
}

Notification Methods

]

Example 2
Erroneous Request (curl)
curl
-H
-H
-H
-d
0

-X POST \
'authorization: Basic Auth_TOKEN \
'cache-control: no-cache' \
'content-type: application/json' \
'[

]' \
https://198.51.100.10/zebi/api/v2/getRecentCriticalNotifications -k

Error Response:
{

}

"code": "EZEBI_INVALID_ARGUMENT",
"details": "",
"message": "Invalid duration: '0' minutes",
"extendedData": {}

381

Chapter 13
Objects
Topics:
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•

ArrayUpgrade_V2_1
CopyDestination_V2_1
CopySource_V2_1
CopyStatus_V2_1
DataAnalyticsResult_V2_3
DatasetProperty_V2_1
DatasetSpaceInfo_V2_1
DatasetStatus
Disk_V2_1
FCInitiator_V2_1
FCTarget_V2_1
FloatingIP_V2_2
InitiatorGroup_V2_1
IscsiInitiator_V1_0
ISCSIInitiator_V2_1
ISCSITarget_V2_1
ISCSITargetCreate_V2_1
ITView_V2_1
LocalGroup_V1_2
LocalUser_V1_2
LunStatus
NetworkACL_V2_1
Notification_V2_3
Pool_V1_0
PoolSpaceInfo_V2_1
Project_V1_0
Project_V1_2
Project_V2_1
ProjectCloneProgressStatus_v1_2
ReplicationConfig_V1_2
ReplicationStatus_v1_2
Schedule_V2_1
Share_V1_0
Share_V2_1
ShareOptions
SharePermissions
SMBConfig_V2_2

The following sections describe the objects used by the
IntelliFlash API.

Objects | 383

Tegile IntelliFlash API Reference Guide, Version 2.3

•
•
•
•
•
•
•
•
•

384

SnapShotDeletionStatus
SnapshotProgressStatus
SnapshotSchedule_V2_1
SNMP_Setting_V2_1
SystemAnalyticsResult_V2_3
TargetGroup_V2_2
Volume_V1_0
Volume_V2_1
UserACL (Read Only) v2.1

Objects

ArrayUpgrade_V2_1
This class represents the upgrade and install history of the array. Each object instance is one
IntelliFlash OS install or upgrade.
Field

Type

Description

Version

String

Version of the install or upgrade.

timeInstalledOnNodeA String

Date and time the upgrade or install was done for
node A.

timeInstalledOnNodeB String

Date and time the upgrade or install was done for
node B.

CopyDestination_V2_1
Object defining destination datasets.
Field

Description

hostName

Destination partner system name.
Leave this field empty for same array.

poolName

Destination pool.

projectName

Destination project.

subProjectNamePrefix

Destination sub project name prefix.
Leave this field empty for project copy.

subProjectNameNumberStart

Destination sub project name suffix start. The value
should be a number.

subProjectNameNumberEnd

Destination sub project name suffix end. The value
should be a number.

subProjectNameWildcard

Destination sub project name wildcard (bash style).

CopySource_V2_1
Object defining the source dataset.

385

Tegile IntelliFlash API Reference Guide, Version 2.3

Field

Description

poolName

Source dataset pool.

projectName

Source dataset project.

subProjectName

Source sub project name.
Leave this field empty for project copy.

CopyStatus_V2_1
Object representing the current status of the copy operation.
Field

Description

completedCopies

Completed copies for the task.

status

Current status of the task.
It has the following values:
• Unknown
• Start
• Connected
• Sending
• Local Replication
• Completed
• Error
• Paused

386

allDatasets

All datasets created by the task.

completedDatasets

Datasets completed by the task.

pendingDatasets

Datasets yet to be created by the task.

percentComplete

Percentage of task completion.

errorCode

Error code of the task, if there is any error.

startTime

Start time of the task.

endTime

End time of the task.

Objects

DataAnalyticsResult_V2_3
Field

Type

Description

entityType

String

Data entity type.

Possible values are VM, Dataset, Project, Pool, and Prot
entityName

String

Data entity name.
For a dataset, pool, or a project, this is a path with the
following format:
[pool[/project[/dataset]]]

For a VM, this is a VM path with the following format:
[pool]/[esx-host]/[vm-name]

For a protocol, this is a protocol name, such as NFS, SM
or FC.
timestamps

Array of longs

Milliseconds since Unix epoch (midnight Jan 1 1970).

Datapoints

Map (String-->Array of
numbers)

Datapoint list mapping. Each datapoint list has one elem
per timestamp. Possible values are Read_MBps, Write_M
Read_IOPs, Write_IOPs, Read_Latency, and Write_Latenc

Averages

Map (String-->Array of
numbers)

Averages of the datapoint listings.

DatasetProperty_V2_1
Field

Description

propertyKey

Key of the property

propertyValue

Value of the property

DatasetSpaceInfo_V2_1
Field

Description

originalUsedByDataAndSnapshot

Original used by dataset data and snapshot before
compression (bytes).

usedByDataAndSnapshot

Amount used by the dataset data and snapshot
after compression (bytes).

compressionSavingsPercentage

Amount saved from compression as a percentage.

387

Tegile IntelliFlash API Reference Guide, Version 2.3

Field

Description

available

For datasets with a quota, this represents the
amount of space remaining in the quota.
For shares and luns without a quota, this
represents the amount of space remaining in the
project's quota (if it exists).
If a quota does not exist on a project, this value
represents the amount of space (in bytes)
remaining on the pool.

usedByData

Amount used by this dataset's data after
compression (bytes).

usedBySnapshot

Amount used by this dataset's snapshots after
compression (bytes).

usedByReservation

Share and project field. Amount used by
reservation (bytes).

quota

Share and project field. The user assigned quota for
the dataset (bytes). The quota is 0 if it doesn't exist.

volSize

Volume only field. The size of the volume (bytes).

DatasetStatus

388

Field

Type

Description

cleanupException

String

Contains details of the exception, if an
exception occurs.

cleanupStatus

Integer

An integer return value as defined in
CLEANUP_STATUS.

commandException

String

Contains details of the exception, if an
exception occurs.

commandStatus

Integer

An integer return value as defined in
COMMAND_STATUS.

datasetPath

String

A string that contains the dataset path.
A dataset path should have the format
PoolName/Local/ProjectName/VolumeName
for volumes and PoolName/
Local/ProjectName/ShareName for shares.

overwriteException

String

Contains details of the exception, if an
exception occurs.

Objects

Field

Type

Description

overwriteStatus

Integer

An integer value as defined in
OVERWRITE_STATUS.

Disk_V2_1
Field

Type

Description

diskChassisIndex Integer

Index of the chassis to enumerate, as listed by getDisks() API.

diskBayIndex

Disk bay index relative to each disk chassis (as listed by the Web UI, and
is zero relative).

Integer

diskChassisName String

Name of the disk chassis as given by
• Web UI
• serial number [chassis name]

diskSize

String

Disk size with units (for example, 2TB).

poolName

String

Pool that is using the disk currently.

diskType

String

Disk type (for example, HDD, RW_META_SSD, or NVMe).

diskAlias

String

Disk name used to identify the disk.
For example, "c2t5000CCA013067A90d0".

deviceId

String

Disk device id that is unique across array controllers.

FCInitiator_V2_1
This class represents the initiator for the FC protocol.
Field

Type

Description

initiatorName

String

Initiator name (for example,
"wwn.5001438001FFAAAA" ).

initiatorGroupName String

Initiator group name.

FCTarget_V2_1
This class represents the target for the FC protocol.
Field

Type

Description

targetName

String

Target name (for example, “wwn.21000024FF236C15”)

389

Tegile IntelliFlash API Reference Guide, Version 2.3

Field

Type

Description

targetStatus

String

Target status (for example, “online” or “offline”).

targetNode

String

Node (or IntelliFlash controller) where the target is active.

targetGroupName

String

Target group name.

targetSpeed

String

Target speed (for example, 4GB, 8GB, or “not established”).

targetPortType

String

Whether the target port type is HBA or NPIV.

FloatingIP_V2_2
Field

Type

Description

resourceGroupName String

The name of the resource group.

failoverMode

Lists the condition for a failover.

String

The failover condition can be Immediately, Never, or Wait
till all IP addresses fail.
ipAddress

String

The floating IP addresses.

netmask

String

The netmask of the floating IP address.

poolName

String

Pools associated with this IP address.

Field

Type

Description

initiatorGroupName

String

Initiator group name as listed in the Web UI.

intendedProtocol

String

The protocol the initiator group is configured to use (e.g.
iSCSI, FC, or Unknown)

InitiatorGroup_V2_1

IscsiInitiator_V1_0

390

Field

Type

Description

chapSecret

String

Optional CHAP secret if the initiator uses CHAP for
authentication.

chapUserName

String

Optional CHAP username if the initiator uses CHAP for
authentication.

Objects

Field

Type

Description

initiatorName

String

Standard initiator names can have either of these two
formats:
• iqn.yyyy-mm.[reverse-domain-name]
• eui.02004567A425678D (EUI-64 identifier - 16
ASCII-encoded hexadecimal digits)
The characters ,, /,\\, !, ?, @, <, >, #, $, ',%, ^,*,
(, ), ~,+, =, },|, {, [, ], ;, \', \", _, & are not allowed
in initiatorgroupname. The empty and space
characters and the null values are not allowed in
initiatorgroupname.

ISCSIInitiator_V2_1
This class represents the ISCSI initiator attributes.
Field

Type

Description

initiatorName

String

Initiator Name (iqn or eui iscsi name)
This must be in the iqn.yyyy.mmm.[reverse-domainname]:unique-name or eui.16-hexadecimal-digits and no more
than 255 characters.

initiatorGroupName String

Initiator or host group name.
This cannot have special characters such as ' ', *, #, /, \\, !, @, ~, (, ),
[, ], {, }, =, and %. The string must be between 1 to 512 characters
long.

chapUserName

String

Optional chap user name if the initiator uses chap for
authentication.
If specified this chap user name can’t be blank or cannot have
special characters such as ' ', \\, /, !, #, $, %, ^, &, *, (, ), :, ;, and @.

chapSecret

String

Optional chap secret if the initiator uses CHAP authentication.
This is only used on write-modify-create methods. The string is
always null or empty for read methods.
The chap secret must between 12 and 16 characters if specified,
and cannot have special characters such as such as ' ', \\, /, !, #, $,
%, ^, &, *, (, ), :, ;, and @.

391

Tegile IntelliFlash API Reference Guide, Version 2.3

ISCSITarget_V2_1
This class represents the target for the iSCSI protocol and is returned when enumerating
iSCSI targets.
Field

Type

Description

targetName

String

This is the full ISCSI target name enumerated in the
format:
iqn.yyyy-mm.[reverse-domain-name]:userspecified-suffix.

targetSuffixName

String

Target suffix or user-specified portion of the iSCSI
target name after the iqn colon.
For example, iqn.2012-12.com.tegile:targetSuffixName.

targetAlias

String

Target Alias, as alternate user friendly name of target.
This is often the same as the target name suffix.

targetGroupName

String

Target group name.

targetAuthenticationMode

String

Target authentication type.
The values must be 'none', 'chap', or 'mutual' string
names.
'none' indicates no user or password required, 'chap'
indicates one way authentication (no user or password
required), 'mutual' is two way authentication (provide
chap user and secret).

392

targetChapName

String

User name for the chap authentication. Only required if
'mutual' chap authentication is chosen.

targetChapSecret

String

Password for the chap authentication. Only required if
'mutual' chap authentication is chosen.

targetNetworkBinding

String[ ]

Network binding string (ip:port) indicating the network
ports to bind the target with.

Objects

ISCSITargetCreate_V2_1
This class represents the target for iSCSI protocol and can be used to create an iSCSI target.
Field

Type

Description

targetSuffixName

String

Target suffix. This is just the user specified portion of the
iSCSI target name after the iqn colon.
For example,
iqn.2012-12.com.tegile:targetSuffixName.
This cannot have special characters such as ' ',*,#,/,\\,!,@,~,
(,),[,],{,},=, and %. The string must be between 1 to 255
characters long.

targetAlias

String

Target Alias, as alternate user friendly name of target (often
same as target name suffix).

targetGroupName

String

Target group name
This cannot have special characters such as *, #, /, \\, !, @, ~,
(, ), [, ], {, }, =, and %. The string must be 1 to 512 characters
long.

targetAuthenticationMode String

Target authentication type, which must be 'none', 'chap', or
'mutual' string names.
'none' indicates no user or password required, 'chap'
indicates one way authentication (no user or password
required), and 'mutual' is two way authentication (provide
chap user and secret).

targetChapName

String

Optional user name for the chap authentication.
Only required if 'mutual' chap authentication was chosen. If
specified this chap user name can’t be blank or cannot have
special characters such as ' ', \\, /, !, #, $, %, ^, &, *, (, ), :, ;,
and @.

393

Tegile IntelliFlash API Reference Guide, Version 2.3

Field

Type

Description

targetChapSecret

String

Optional password for the chap authentication.
Only required if 'mutual' chap authentication is chosen.
This is only set on write or modify operations. For read
operations, this string is null. The chap secret must
between 12 and 16 characters if specified, and cannot have
special characters such as ' ', \\, /, !, #, $, %, ^, &, *, (, ), :, ;,
and @.

targetNetworkBinding

String[ ] Network Binding (in ip:port format) string indicating the
network ports to bind target with.

ITView_V2_1
Field

Type

Description

hostGroupName

String

Name of the host group

targetGroupName

String

Name of the target group

lunNbr

Integer

LUN number associated with the
mapping. Populated with the default lun
number -1 for project default mappings

readOnly

Boolean

Flag that indicates whether the view is
read only. True for read only, false for
read-write.

LocalGroup_V1_2
Field

Type

Description

groupId

Integer

Group ID of the group

groupName

String

Name of the group

userList

List

List of users associated to the group

LocalUser_V1_2

394

Objects

Field

Type

Description

groupId

Integer

Group ID of the group

groupName

String

Name of the group

userId

Integer

User ID of the user

userName

String

Name of the user

LunStatus
Field

Type

Description

accessState

Integer

An integer indicating whether the LUN is:
•
•
•
•

active (0)
active to standby (1)
standby (2)
standby to active (3)

alias

String

The LUN alias, if specified.

blockSize

String

The block size of the LUN.

commandException String

Contains details of the exception, if an exception
occurs.

commandStatus

Integer

An integer return value as defined in
COMMAND_STATUS.

dataFile

String

The data file path for the LUN.

datasetPath

String

A string that contains the path to the dataset. The
dataset path should have the format PoolName/
Local/ProjectName/VolumeName for LUNs.

guid

String

The lunId of the LUN.

metaFile

String

The meta file path of the LUN.

mgmtURL

String

The management URL of the LUN.

operationalStatus

Integer

Operational status of the LU.
• Stmf (SCSI target mode framework) logical unit
offline (0)
• Stmf logical unit offlining (1)
• Stmf logical unit online (2)
• Stmf logical unit onlining (3)
• Stmf logical unit unregistered (4)

productId

String

Field not used.

395

Tegile IntelliFlash API Reference Guide, Version 2.3

Field

Type

Description

serialNumber

String

Field not used.

size

String

The size of the LUN.

vendorId

String

Field not used.

viewCount

Integer

The number of mappings defined for the LUN.

writeCacheDisable

Boolean

A boolean that indicates if the data write cache is
disabled.

writeProtect

Boolean

A boolean that indicates if write protect is enabled
or disabled.
The values are as follows:
• Read-Only (True)
• Write (False)

NetworkACL_V2_1
Field

Type

Description

hostType

String

Type of network ACL host, IP address or FQDN.

host

String

Host to which access is provided.

accessMode

String

Access mode: 'ro' for read-only access or 'rw' for readwrite access.

rootAccessForNFS

String

Flag that indicates whether the NFS ACL has root
access.
Note: This is applicable only for NFS ACLs.

Notification_V2_3

396

Field

Type

Description

timestamp

Long

Milliseconds since Unix epoch (midnight Jan 1 1970).

eventCode

String

Event-unique code.

priority

String

Priority. Possible values are LOW, MEDIUM, HIGH, or
CRITICAL.

description

String

Event description or subject.

errorMessage

String

Error message (if applicable).

Objects

Field

Type

Description

details

Map of
key-value
pairs

Key value mapping of event-specific details.

Pool_V1_0
Field

Type

Description

availableSize

Long

The available size of the pool in bytes.

name

String

Name of the storage pool.

totalSize

Long

The total size of the pool in bytes.

PoolSpaceInfo_V2_1
Field

Description

totalPoolSize

Total size of the pool (bytes).

originalUsedByDataAndSnapshot

Original used by data and snapshot before
compression and deduplication (bytes).

usedByDataAndSnapshot

Amount used by data and snapshot after compression
and deduplication (bytes).

compressionSavingsPercentage

Amount saved from compression as a percentage.

dedupeSavingsPercentage

Amount saved from deduplication as a percentage.

totalSavingsPercentage

Amount saved from compression and deduplication as
a percentage.

usedByAll

Amount used for data and reservation (bytes).

available

Amount of available space left on the pool (bytes).

usedByData

Amount used by data after compression and
deduplication (bytes).

usedByReservation

Amount used by reservation (bytes).

usedBySnapshot

Amount used by snapshot after compression and
deduplication (bytes).

totalMetaSize

Total metadata size (bytes).

usedMeta

Used metadata (bytes).

397

Tegile IntelliFlash API Reference Guide, Version 2.3

Project_V1_0
Field

Type

Description

local

Boolean

Indicates whether the project belongs to the current
array.

name

String

Name of the project.

poolName

String

The pool in which the project exists.

Field

Type

Description

local

boolean

Indicates whether the project belongs to the current
array.

name

String

Name of the project.

poolName

String

The pool in which the project exists.

Project_V1_2

Project_V2_1
Field

Description

poolName

Name of the pool.
This field is mandatory while creating a project. The field
becomes read only after creation.

projectName

Name of the project.
This field is mandatory while creating a project. The field
becomes read only after creation.

localDataset

Indicates whether it is a local project or a replica from a remote
system.
True indicates local, while False indicates replica.
This field is read only.

purpose

Purpose of the project.
Project created by createProject API has a “generic” purpose.
This field is read only.

398

Objects

Field

Description

mountPoint

Mount point of the project on file system.
This field is read only.

compression

Compression algorithm applied on the project.
Supported values:
•
•
•
•
•
•

compressedLog

off
lzjb
gzip-2
gzip
gzip-9
lz4 (default)

Log compression algorithm for the project.
Supported values:
• lz4
• off (default)

intendedProtocolList

Adds protocol features to the project. This field is a list of string
values, and is read only.
The default value is "NFS, SMB, FC, iSCSI". The value can also be
a combination of any of the following protocols:
•
•
•
•

FC
iSCSI
NFS
SMB
Note: After you create a project, you cannot
dynamically modify this property.

quotaInByte

Enables quota on the project if intended for NFS use.
The value should be greater than 1 MB (1048576 bytes). The
default value is 0 (no limit).

quotaEnabled

Checks whether quota is enabled on the project.
This field is read only.

quota

Quota number.
This field is read only.

quotaMetric

Quota metric unit.
This field is read only.

399

Tegile IntelliFlash API Reference Guide, Version 2.3

Field

Description

dedup

Turns on or off deduplication on the project.
Supported values:
• on (default)
• off

copies

Specifies number of the project copies.
Supported values:
• 1 (default)
• 2
• 3

primaryCache

Specifies primary cache type.
Supported values:
• All (default)
• None
• Metadata

secondaryCache

Specifies secondary cache type.
Supported values:
• All (default)
• None
• Metadata

readonly

Specifies whether project is read only.
Supported values:
• On
• Off

logbias

Specifies log bias type.
Supported values:
• Latency (default)
• Throughput

aclInherit

Turns on or off ACL inheritance on the project.
Supported values:
• On (default)
• Off

400

Objects

Field

Description

aclMode

Checks the ACL mode on the project.
This field is read only.

krbStatus

Checks the krb status if SMB is enabled.
This field is read only.

defaultVolumeSizeInByte

Default volume size.
The value should be greater than 1 MB (1048576 bytes). The
default value is 1 GB.

defaultVolumeSize

Volume size number.
This field is read only.

defaultVolumeSizeUnit

Volume size unit.
This field is read only.

defaultVolumeBlockSize

Sets default volume block size.
Supported values:
•
•
•
•
•
•

4 KB
8 KB
16 KB
32 KB (default)
64 KB
128 KB

defaultThinProvisioning

Sets default thin provisioning for volume. The value is either
True or False.

sync

Checks synchronization mode.
This field is read only.

zfsDataSetName

Returns ZFS dataset path name.
This field is read only.

recordSize

Default share block size.
Supported values:
•
•
•
•
•
•

4 KB
8 KB
16 KB
32 KB (default)
64 KB
128 KB

401

Tegile IntelliFlash API Reference Guide, Version 2.3

ProjectCloneProgressStatus_v1_2
Field

Type

Description

failedSubProjects

Integer

Number of sub projects (shares and
volumes) for which clone snapshot
has failed.

projectCloneState

Integer

The integer return value is defined in
CLONE_PROGRESS_STATUS.

totalSubProjects

Integer

Total number of sub projects for the
given project.

ReplicationConfig_V1_2
Field

Type

Description

baseDataSetName

String

Base Dataset name

id

Long

Replication config ID

lastSnapshotName

String

Last snapshot name

poolName

String

Pool name

projectGuid

String

Project Guid

projectName

String

Project name

remoteBaseDataSetName

String

Remote dataset name

remoteHost

String

Target(Remote) host

remotePoolName

String

Remote pool name

remoteProjectName

String

Remote project name

scopeOption

Integer

The integer return
value is defined in
Replication_Scope_Option.

ReplicationStatus_v1_2

402

Field

Type

Description

completedTask

Integer

Number of tasks completed.

completeTimestamp

Date

Time stamp indicating when
replication was completed.

Objects

Field

Type

Description

currentStatus

Integer

Current status of replication. The
integer return value is defined in State

dataSent

Long

Total data sent.

sendSpeed

Long

Replication data send speed.

startTimestamp

Date

Time stamp indicating when
replication started.

taskSize

Integer

Total task size.

updateTimestamp

Date

Time stamp indicating when
replication was last updated.

Schedule_V2_1
Field

Type

Description

scheduleId

Integer

Schedule ID. Read-Only field.

retentionPeriod

Integer

Maximum period to retain snapshots.
Schedule Interval Type

Retention Period Unit

Minutes

Days

Hourly

Days

Daily

Weeks

Weekly

Months

Monthly

Years

scheduleIntervalTypeString

Type of schedule interval. The possible values are minutes, hours,
days, weeks, or months.

repeatInterval

How often the schedule should recur.

Integer

Schedule Interval Type

Retention Interval

Minutes

Minutes

Hourly

Hours

Daily

Days

Weekly

Weeks

Monthly

Months

403

Tegile IntelliFlash API Reference Guide, Version 2.3

Field

Type

Description

startDate

String

Start date for scheduling a snapshot in future.
Should be specified in YYYY-MM-DD format.
Start date can be either current date or a date in future.

startTime

String

Start time for the schedule. This should be in 24HR HH:MM format.
The date cannot be a past date.

endTime

String

End time for the schedule. This should be in 24HR HH:MM format.
This is applicable only for Minutes and Hourly Schedule interval
types.

daysOfWeek

String

Days of the Week.
This is for the Weekly Schedule interval types.
Should be specified in comma-separated numbers and each
number specifying day of the week.
For example:
Sunday:1, Monday:2, Tuesday:3 and so on.
For Weekdays Only: 2,3,4,5,6
For Weekend Only: 1,7
For Mon-Wednesday only: 2,4

dayOfMonth

String

Day of the month.
This is for the monthly schedule interval types and the value
indicates the date of each month when the schedule should be run.
If the specified date does not exist in the s month, the job is not run
and is scheduled to next month, depending on the repeat interval
specified.
For example, not each month has 31 days, so the job is skipped for
those months.
Either this field or weekdayOfMonth can be specified, but not both.

404

Objects

Field

Type

Description

weekdayOfMonth

String

Weekday of the month. This should be in W:D format.
This is for the monthly schedule interval types.
Examples:
Sunday:1, Monday:2, Tuesday:3 and so on.
2nd Monday of the Month : 2:2
4th Thursday of the Month : 4:5
This field could also contain the value "LAST" to indicate that the job
has to run on the last day of the month.
Either this field or the dayOfWeek can be specified, but not both.

Share_V1_0
Field

Type

Description

availableSize

Long

The available size of the share in bytes.

datasetPath

String

This field is a string that uniquely identifies
the share on a Tegile array. A dataset
path should have the format: PoolName/
Local/ProjectName/ShareName.

local

Boolean

This boolean identifies whether the share belongs
to a local project or a replicated project.

mountpoint

String

This string exposes the mountpoint of the share on
a Tegile array.

name

String

Name of the share.

poolName

String

The pool that contains this share.

projectName

String

The project that contains this share.

totalSize

Long

The total size of the share in bytes.

Share_V2_1
Field

Description

name

Name of the dataset. This field is read only.

poolName

Name of the parent storage pool. This field is read only.

projectName

Name of the project. This field is read only.

405

Tegile IntelliFlash API Reference Guide, Version 2.3

Field

Description

purpose

Purpose of the dataset. This field is read only.

guid

Global unique identifier of the dataset. This field is read
only.

compression

Compression algorithm that applies on the dataset.
Supported values:
•
•
•
•
•
•

406

off
lzjb
gzip-2
gzip
gzip-9
lz4

overrideCompression

Checks whether compression algorithm overrides parent
project. This field is read only.

localDataset

Indicates whether the dataset is local or replica. This field
is read only.

reservationInByte

Enables reservation on the dataset. This value should be
greater than 1 MB (1048576 bytes) or set to 0 (no limit).

reservationEnabled

Checks whether reservation is enabled on the dataset.
This field is read only.

reservation

Reservation number. This field is read only.

reservationMetric

Reservation metric unit. This field is read only.

dedup

Turns on or off deduplication on the dataset. Supported
values are on and off.

overrideDedup

Check whether deduplication overrides parent project.
This field is read only.

primaryCache

Specifies primary cache type. Supported values are All,
None, and Metadata.

overridePrimaryCache

Checks whether primary cache overrides parent project.
This field is read only.

secondaryCache

Specifies secondary cache type. Supported values are All,
None, and Metadata.

overrideSecondaryCache

Checks whether secondary cache overrides parent
project.

readonly

Specifies whether the dataset is read only. Supported
values are On and Off

Objects

Field

Description

overrideReadonly

Checks whether read only overrides parent project. This
field is read only.

logbias

Specifies log bias type. Supported values are Latency and
Throughput

overrideLogbias

Checks whether log bias overrides parent project. This
field is read only.

sync

Checks the synchronization mode. This field is read only.

overrideSync

Checks whether sync mode overrides parent project. This
field is read only.

overrideProjectSnapshot

Checks whether snapshot settings override parent project.
This field is read only.

Settings
zfsDataSetName

Returns ZFS dataset path name. This field is read only.

compressedLog

Log compression algorithm for the dataset. Supported
values are lz4 and off.

overrideCompressedLog

Checks whether log compression algorithm overrides
parent project. This field is read only.

containerName

Checks current dataset container name. This field is read
only.

mountPoint

Checks current mount point. This field is read only.

overrideMountPoint

Check whether mount point overrides default. This field is
read only.

quotaInByte

Enables quota on the share if intended for NFS use. This
value should be greater than 1 MB (1048576 bytes) or set
to 0 (no limit).

quotaEnabled

Checks whether quota is enabled on the share. This field
is read only.

quota

Quota number. This field is read only.

quotaMetric

Quota metric unit. This field is read only.

availableSize

Checks current available share size. This field is read only.

totalSize

Checks current total share size. This field is read only.

overrideSharenfs

Checks whether NFS sharing overrides project setting.
This field is read only.

overrideSharesmb

Checks whether SMB sharing overrides project setting.
This field is read only.

407

Tegile IntelliFlash API Reference Guide, Version 2.3

Field

Description

krbStatus

Checks current Kerberos status of the share if SMB is
enabled. This field is read only.

cifsDisplayName

Checks CIFS display name. This field is read only.

guestStatus

Checks guest status of the share. This field is read only.

aclInherit

Turns on or off ACL inheritance on the project. Supported
values are On and Off.

overrideAclInherit

Check whether aclInherit overrides parent project setting.
This field is read only.

recordSize

Default share block size.
Supported values:
•
•
•
•
•
•

4 KB
8 KB
16 KB
32 KB
64 KB
128 KB

This field can be modified.
overrideRecordSize

Check whether share block size overrides parent project.
This field is read only.

atime

Checks access time. This field can be modified.

nbmand

Checks non-blocking mandatory locks. This field can be
modified.

aclList

A list of UserACL objects. This field checks current ACLs
applied to the share. This field is read only.

ShareOptions

408

Field

Type

Description

blockSize

String

Block size of the share. Valid values are 4KB, 8KB,
16KB, 32KB, 64KB, or 128KB.

mountPoint

String

Mount point of the share

quota

Long

Maximum amount of storage space (in bytes) the
share can use. If set to "-1", no quota limit is set on the
share.

Objects

Field

Type

Description

reservation

Long

Amount of storage space (in bytes) reserved for the
share. If set to "-1", no storage space is reserved for
the share.

SharePermissions
Field

Type

Description

groupList

Array

A JSON array of LocalGroup_V1_2
object. You can use the response
of the listGroups method for this
paramater. This will be used if the
sharePermissionEnum parameter
(Permission_type_enum) is set to
GROUP.

sharePermissionEnum

Integer

User ACL permission type.
Valid values are defined by the
Permission_type_enum enumeration.

sharePermissionMode

Integer

User ACL mode. Valid values
are defined by the Mode_enum
enumeration.

userList

Array

A JSON array of LocalUser_V1_2
object. You can use the response
of the listUsers method for this
parameter. This will be used if the
sharePermissionEnum parameter
(Permission_type_enum) is set to USER.

SMBConfig_V2_2
Field

Type

Description

pdc

String

Primary domain controller.

subsharesFeatureEnabled
Boolean

Determines whether subshare can be created. Set the
field to true or false.

smbProtocolMode

String

The protocol mode, whether CIFS or SMB 3.0.

restrictAnonymous

Boolean

Determines whether to restrict anonymous SMB user. Set
the field to true or false

restrictGuest

Boolean

Determines whether to restrict SMB guest user. Set the
field to true or false.

409

Tegile IntelliFlash API Reference Guide, Version 2.3

SnapShotDeletionStatus
Field

Type

Description

deletedList

List

Deleted snapshots list

failedToDeleteList

List

Not deleted snapshots list

snapshotDeletionStatus Integer

The integer return
value is defined in
SNAPSHOT_DELETION_STATUS

SnapshotProgressStatus
Field

Type

Description

snapshotProgressStatus

Integer

An integer from the enumeration
SNAPSHOT_PROGRESS_STATUS that indicates the
snapshot progress status.

SnapshotSchedule_V2_1
Field

Type

datasetPath String

Description
Dataset path. It can be a project, LUN or a share.
This should not be a replica dataset.

quiesce

String

Quiesce on or off.

SNMP_Setting_V2_1
This class represents the SNMP service settings (community string and trap listeners).
Field

410

Type

Description

communityString String

SNMP Community String. This must be 1 to 64 alpha-numeric
characters, or should be * _, -, . (default='public'))

trapListeners

List of Trap listeners strings in IP:Port_Number format.

String

Objects

SystemAnalyticsResult_V2_3
Field

Type

Description

systemAnalyticsType String

System analytics type.
Possible values are CPU, CACHE_HITS,
POOL_PERFORMANCE, and NETWORK.

timestamps

Array of longs

Milliseconds since Unix epoch (midnight Jan 1 1970).

Datapoints

Map (String->Array of
numbers)

Datapoint list mapping. Each datapoint list has one
element per timestamp.

Averages

Map (String->Array of
numbers)

Averages of the datapoint listings.

TargetGroup_V2_2
Field

Type

Description

targetGroupName

String

Target group name as listed in the Web UI.

intendedProtocol

String

The protocol ( iSCSI, FC, or Unknown) that the target group
is configured to use.
Unknown is listed when there are no targets mapped to
the target group.

Volume_V1_0
Field

Type

Description

blockSize

String

The block size of the volume.

datasetPath

String

This field is a string that uniquely identifies
the volume on a Tegile array. A dataset
path should have the format: PoolName/
Local/ProjectName/VolumeName. You can get the
datasetPath from the listVolumes API. For more
information, see listVolumes. The datasetPath is not
required for createVolume API.

local

Boolean

This boolean identifies whether the volume
belongs to a local project or a replicated project.
The local boolean is not required for createVolume
API.

411

Tegile IntelliFlash API Reference Guide, Version 2.3

Field

Type

Description

luId

String

The unique identifier for the lun. The luId is not
required for createVolume API.

name

String

Name of the volume.

poolName

String

The pool that contains this volume.

projectName

String

The project that contains this volume.

protocol

String

This is the protocol on which the volume will
be exposed. The valid values are iSCSI, FC, and
Unknown.

thinProvision

Boolean

Indicates whether this volume is thin provisioned
or thick provisioned.

volSize

Long

The size of the volume in bytes.

Volume_V2_1

412

Field

Description

name

Name of the dataset. This field is read only.

poolName

Name of the parent storage pool. This field is read only.

projectName

Name of the project. This field is read only.

purpose

Purpose of the dataset. This field is read only.

guid

Global unique identifier of the dataset. This field is read
only.

compression

Compression algorithm applied on the dataset. Supported
values are off, lzjb, gzip-2, gzip, gzip-9, and lz4.

overrideCompression

Checks whether compression algorithm overrides parent
project. This field is read only.

localDataset

Indicates whether the dataset is local or replica. This field
is read only.

reservationInByte

Enables reservation on the dataset. The value should be
greater than 1 MB (1048576 bytes) or set to 0 (no limit).

reservationEnabled

Checks whether reservation is enabled on the dataset.
This field is read only.

reservation

Reservation number. This field is read only.

reservationMetric

Reservation metric unit. This field is read only.

dedup

Turns on or off deduplication on the dataset. Supported
values are on and off.

Objects

Field

Description

overrideDedup

Checks whether deduplication overrides parent project.
This field is read only.

primaryCache

Specifies primary cache type. Supported values are All,
None, and Metadata.

overridePrimaryCache

Checks whether primary cache overrides parent project.
This field is read only.

secondaryCache

Specifies secondary cache type. Supported values are All,
None, and Metadata.

overrideSecondaryCache

Checks whether secondary cache overrides parent project.
This field is read only.

readonly

Specifies whether it is read only. Supported values are on
and off.

overrideReadonly

Checks whether read only overrides parent project. This
field is read only.

logbias

Specify log bias type. Supported values are Latency and
Throughput.

overrideLogbias

Checks whether log bias overrides parent project. This
field is read only.

sync

Checks synchronization mode. This field is read only.

overrideSync

Checks whether sync mode overrides parent project. This
field is read only.

overrideProjectSnapshotSettingsChecks whether snapshot settings override parent project.
This field is read only.
zfsDataSetName

Returns ZFS dataset path name. This field is read only.

compressedLog

Log compression algorithm for the dataset. Supported
values are lz4 and off.

overrideCompressedLog

Checks whether log compression algorithm overrides
parent project. This field is read only.

containerName

Checks current dataset container name. This field is read
only.

volSize

Volume size in bytes. This field is read only.

luId

Unique identifier for the lun. This field is read only.

usedSize

Used Volume size in bytes. This field is read only.

thinProvisioning

Indicates whether this volume is thin provisioned. This
field is read only.

413

Tegile IntelliFlash API Reference Guide, Version 2.3

Field

Description

blockSize

Sets volume block size.
Supported values:
•
•
•
•
•
•

4 KB
8 KB
16 KB
32 KB
64 KB
128 KB

writeBackCache

Enables or disables disk write back cache. Supported
values are Enable and Disable.

overrideViews

Checks whether initiator-target view overrides parent
project. This field is read only.

Protocol

Checks current protocol for the volume. This field is read
only.

UserACL (Read Only) v2.1

414

Field

Description

id

Trivia

controllerId

Trivia

aclType

Group/User/Everyone

aclUser

If type is User, show user name

aclGroup

If type is Group, show group name

aclValDisplay

String of ACL value. For example,
rwxpdDaARWcCos.

aclVal

Integer value of aclValDisplay.

aclMode

Allow or deny

aclInheritanceFlag

Inheritance type. Default/Files/Directories/
Both

includeSubShares

True/False

Chapter 14
Enumerations
Topics:
•
•
•
•
•
•
•
•
•
•
•

CLEANUP_STATUS
CLONE_PROGRESS_STATUS
COMMAND_STATUS
Mode_enum
OVERWRITE_STATUS
Permission_type_enum
Replication_Scope_Option
SNAPSHOT_DELETION_STATUS
SNAPSHOT_PROGRESS_STATUS
State
ZEBI_SYSTEM_PROPERTY

The following sections describe the enumerations used by
the IntelliFlash API.

Enumerations | 415

Tegile IntelliFlash API Reference Guide, Version 2.3

CLEANUP_STATUS
Status

Returned
Value

Description

CLEANUP_NONE

0

Indicates cleanup is not needed.

CLEANUP_NEEDED

1

Indicates that cleanup is needed.

CLEANUP_DONE

2

Indicates that cleanup is completed.

CLEANUP_FAILED

3

Indicates that cleanup has failed.

CLONE_PROGRESS_STATUS
Indicates the status of a clone project snapshot request.
Status

Returned
Value

Description

INPROGRESS

0

Indicates that the cloneProjectSnapshot request is in
progress.

SUCCESS

1

Indicates that all of the project snapshots are cloned
successfully.

PARTIAL

2

Indicates that some of the project snapshots are
cloned successfully

FAILURE

3

Indicates that none of the project snapshots are
cloned.

Related APIs, Objects, and Enumerations
A value from this enumeration is returned by the getProjectCloneStatus API to indicate the
status of a project clone request.
getProjectCloneStatus, cloneProjectSnapshot, ProjectCloneProgressStatus_v1_2.

COMMAND_STATUS

416

Status

Returned
Value

Description

COMMAND_SUCCEED

0

Indicates that command (request)
succeeded.

COMMAND_NOT_ATTEMPTED

1

Indicates that command (request) not
attempted.

Enumerations

Status

Returned
Value

Description

COMMAND_FAILED

2

Indicates that command (request)
failed.

Mode_enum
Indicates the mode for ACLs supplied using the SharePermissions object to the createShare
methods.
Value

Returned
Value

Description

ALLOW

0

Indicates that permission should be granted to the specified
set of users.

DENY

1

Indicates that permission should be denied to the specified
set of users.

Related APIs, Objects, and Enumerations
createShare, createShare, SharePermissions.

OVERWRITE_STATUS
Status

Returned
Value

Description

OVERWRITE_NONE

0

Indicates overwrite is not required.

OVERWRITE_DONE

1

Indicates overwrite completed.

OVERWRITE_FAILED

2

Indicates overwrite failed.

Permission_type_enum
Indicates the scope of ACLs supplied using the SharePermissions object to the createShare
methods.
Value

Returned Description
Value

EVERYONE

0

Indicates that the supplied ACL is for everyone.

USER

1

Indicates that the supplied ACL is for the specified user.

417

Tegile IntelliFlash API Reference Guide, Version 2.3

Value

Returned Description
Value

GROUP

2

Indicates that the supplied ACL is for the specified
group.

Related APIs, Objects, and Enumerations
createShare, createShare, SharePermissions.

Replication_Scope_Option
Specifies the condition that determines which datasets in a project will be replicated when
you start replication on the project.
Value

Returned Description
Value

FULL

0

All datasets in the project will be replicated

INCLUDE

1

All selected datasets will be replicated

EXCLUDE

2

All selected datasets will not be replicated

Related APIs, Objects, and Enumerations
getReplicationConfigList, getReplicationStatus, startReplication, ReplicationConfig_V1_2.

SNAPSHOT_DELETION_STATUS
Indicates the status of a snapshot deletion request.
Status

Returned
Value

Description

SUCCESS

0

Indicates that the snapshot deletion succeeded.

PARTIAL

1

This value is applicable only to the
deleteProjectSnapshot API. It indicates that only
some of the snapshots could be deleted (other
snapshots that were selected for deletion could not
be deleted.)

FAILURE

2

Indicates that the snapshot deletion has failed.

Related APIs, Objects, and Enumerations
deleteProjectSnapshot, deleteVolumeSnapshot, deleteShareSnapshot.

418

Enumerations

SNAPSHOT_PROGRESS_STATUS
Status

Returned
Value

Description

SUCCESS

0

The snapshot request completed
successfully.

INPROGRESS

1

The snapshot request is in progress.

ERROR

2

The snapshot request failed due to an error.

State
The State enumeration indicates the state of a replication request.
Status

Returned
Value

Description

UNKNOWN

0

Indicates that the replication task exited due to an
unknown error.

START

1

Indicates that the replication task has started.

RESTART

2

Indicates that an interrupted replication task has
restarted.

SENDING

3

Indicates that the system is sending replication data.

COMPLETING

4

Indicates that data transfer for replication is
complete, and the replication task is finishing.

COMPLETED

5

Indicates that the replication task is complete.

ERROR

6

Indicates that the replication task exited with an
error due to system, network, or other issues.

ABORTING

7

Indicates that the initial state (before ABORTED)
of an aborted replication. You cannot restart the
replication task if it is aborting.

ABORTED

8

Indicates that you have aborted the replication. If
you abort a replication, the system rolls back to the
previous replication snapshot completely.

ABANDONING

9

Indicates that the system is ABANDONING a running
replication task. The system abandons a replication
if you manually switchover the pool or if the pool
goes offline for any reason.

419

Tegile IntelliFlash API Reference Guide, Version 2.3

States of a replication task
An uninterrupted and successful replication task goes through the start, sending,
completing, and completed states. If the task fails due to an error or if you abort a running
task, you can restart it at a later time.
Related APIs, Objects, and Enumerations
getReplicationConfigList, getReplicationStatus, startReplication, ReplicationConfig_V1_2,
ReplicationStatus_v1_2.

ZEBI_SYSTEM_PROPERTY

420

Value

Description

ZEBI_APPLIANCE_MODEL

Indicates the array model.

ZEBI_APPLIANCE_VERSION

Indicates the array version.

ZEBI_GUI_VERSION

The IntelliFlash Web UI version.

ZEBI_SUPPORTED_TDPS_API_VERSIONS

The Tegile Data Protection Services (TDPS)
versions supported by this version of the
IntelliFlash API.

ZEBI_API_MINOR_VERSION

Indicates the minor version of the
IntelliFlash API.

ZEBI_API_VERSION

Indicates the full version of the IntelliFlash
API.

INTELLIFLASH_ARRAY_GUID

Indicates the GUID of the IntelliFlash array.

INTELLIFLASH_ARRAY_FQDN

Indicates the FQDN of the IntelliFlash array.

Appendix

A

Appendix A
Topics:
•

JSON Quick Reference

Appendix A | 421

Tegile IntelliFlash API Reference Guide, Version 2.3

JSON Quick Reference
This quick reference includes some JSON examples for users who are not familiar with the
JSON syntax.
All JSON data sent in HTTP requests must be enclosed within square brackets ( [ ] ). For
example, to send a single string, use the following:
[“pool1”]

Note: As JSON ignores whitespace, such as newlines, tabs, and spaces, you can also
send the following:
[
]

“pool1”

Boolean
true
false

Integers
213

String
“pool1”

Array of strings
[
]

“string1”,”string2”,”string3”

Objects
{

}

“lunNumber”:-1,
“name”:”testVol”,
“local”:true,

Array of objects
[

422

Appendix A

]

{“lunNumber”:-1,“name”:”testVol”,“local”:true},
{“lunNumber”:-1,“name”:”testVol”,“local”:true}

Mixed
“DatasetPath”,
[{“lunNumber”:-1,“name”:”testVol”,“local”:true}],
true

423

Appendix

B

Appendix B
Topics:
•

Deprecated APIs

Appendix B | 425

Tegile IntelliFlash API Reference Guide, Version 2.3

Deprecated APIs
The following APIs have been deprecated. Instead of the deprecated APIs, use one of the
alternate APIs suggested.

createSnapshots
Creates a snapshot for the specified dataset using the specified snapshot name. It can also
delete previously-created snapshots, if an error occurs.
Alternate APIs
The createSnapshots API is deprecated. Use the createVolumeSnapshot, createProjectSnapshot,
or createShareSnapshot APIs instead.
Related APIs
getProjectSnapshotCreationStatus, getVolumeSnapshotCreationStatus,
getShareSnapshotCreationStatus, listSnapshots, cloneSnapshot .
Parameters
snapshotPaths
An array of strings that specify the dataset path (including the name
of the snapshot to be created.) This string should have the format:
datasetPath@SnapshotName. The datasetPath should identify a share or
a volume.
override
A boolean value that indicates whether a snapshot is regenerated (if true) if a
snapshot with the same name already exists.
cleanupOnError
A boolean value that indicates whether to clean up (if true) previously-created
snapshots if an error happens.
Returns
A JSON array of DatasetStatus objects that contain the dataset path of the
newly created snapshot and the results of the operation.
Examples
Request (curl):
curl -X POST -H "Authorization:Basic Auth_TOKEN" \

426

Appendix B

-H Content-Type:application/json \
-d '[["pool1/Local/TechPubs/TechPubsTest@api_SnapShotName_1"], \
false, false]' \
https://198.51.100.10/zebi/api/v2/createSnapshots -k

Response
[

{

"datasetPath": "pool1/Local/TechPubs/
TechPubsTest@api_SnapShotName_1",
"overwriteStatus": 0,
"overwriteException": null,
"commandStatus": 0,
"commandException": null,
"cleanupStatus": 0,
"cleanupException": null
}
]

Erroneous Request (curl)
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H Content-Type:application/json \
-d '[["pool1/Local/TechPubs/TechPubs@api_SnapShotName_4"], \
false, false]' \
https://198.51.100.10/zebi/api/v2/createSnapshots -k

Error Response
[

{

"datasetPath": "pool1/Local/TechPubs/
TechPubs@api_SnapShotName_4",
"overwriteStatus": 0,
"overwriteException": null,
"commandStatus": 2,
"commandException": {
"code": "EZEBI_RESOURCE_NOT_FOUND",
"details": "Unable to open pool1/Local/TechPubs/
TechPubs : dataset does not exist",
"extendedData": {
"EX_CAUSE_CODE_NAME": "EZFS_NOENT",
"EX_CAUSE_MESSAGE": "Unable to open pool1/Local/
TechPubs/TechPubs : dataset does not exist",
"EX_CAUSE_CODE_NUMBER": "2009"
},
"message": "Unable to open pool1/Local/TechPubs/
TechPubs : dataset does not exist"
},
"cleanupStatus": 0,
"cleanupException": null
}

427

Tegile IntelliFlash API Reference Guide, Version 2.3

]

deleteSnapshots
Deletes the specified snapshots and optionally, all dependent snapshots.
Caution: If the recursive parameter is set to true, all dependent objects
(snapshots and clones of the specified snapshot) are also deleted.
Alternate APIs
The deleteSnapshots API is deprecated. Use the deleteShareSnapshot or
deleteVolumeSnapshot APIs instead.
Related APIs
createSnapshots
Parameters
snapshotPaths
An array of strings that contains paths to snapshots to be deleted. This
snapshot paths should have the format: datasetPath@SnapshotName. The
datasetPath should be a path to a valid share or volume.
recursive
A boolean value that indicates whether to remove the dependents (if true) of
this snapshot before trying to delete it.
errorIfNotExist
A boolean that indicates whether to raise an exception (if true) if any of the
given snapshot path does not exist.
Returns
A JSON array of DatasetStatus objects that contain the dataset path of the
deleted snapshot and results of the operation.
Examples
Request (curl):
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H Content-Type:application/json \
-d '[["pool1/Local/TechPubs/TechPubsTest@api_SnapShotName_1"], \
false, true]' \

428

Appendix B

https://198.51.100.10/zebi/api/v2/deleteSnapshots -k

Response
[
{
"datasetPath": "pool1/Local/TechPubs/
TechPubsTest@api_SnapShotName_1",
"overwriteStatus": 0,
"overwriteException": null,
"commandStatus": 0,
"commandException": null,
"cleanupStatus": 0,
"cleanupException": null
}
]

Erroneous Request (curl)
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H Content-Type:application/json \
-d '[["pool1/Local/TechPubs/TechPubs@api_SnapShotName_1"], \
false, true]' \
https://198.51.100.10/zebi/api/v2/deleteSnapshots -k

Error Response
[
[
{
"datasetPath": "pool1/Local/TechPubs/
TechPubs@api_SnapShotName_1",
"overwriteStatus": 0,
"overwriteException": null,
"commandStatus": 2,
"commandException": {
"code": "EZEBI_RESOURCE_NOT_FOUND",
"details": "Unable to open pool1/Local/TechPubs/
TechPubs@api_SnapShotName_1 : dataset does not exist",
"extendedData": {
"EX_CAUSE_CODE_NAME": "EZFS_NOENT",
"EX_CAUSE_MESSAGE": "Unable to open pool1/Local/TechPubs/
TechPubs@api_SnapShotName_1 : dataset does not exist",
"EX_CAUSE_CODE_NUMBER": "2009"
},
"message": "Dataset pool1/Local/TechPubs/
TechPubs@api_SnapShotName_1 does not exists"
},
"cleanupStatus": 0,
"cleanupException": null
}
]

429

Tegile IntelliFlash API Reference Guide, Version 2.3

]

deleteSnapshots
Deletes snapshots (and optionally all dependent snapshots in the specified path) whose
names match with the given pattern.
Caution: If the recursive parameter is set to true, all dependent objects
(snapshots and clones of the specified snapshot) are also deleted.
Alternate APIs
The deleteSnapshots API is deprecated. Use the deleteShareSnapshot or
deleteVolumeSnapshot APIs instead.
Related APIs
createSnapshots
Parameters
datasetPath
A string that contains the dataset path of the snapshot. The dataset path has
the format: PoolName/Local/ProjectName/VolumeName.
snapshotPattern
A regular expression (regex) for matching snapshot names. Use an empty
string to delete all snapshots in the given path.
recursive
A boolean value that indicates whether to remove (if true) dependents of the
matching snapshots before deleting the snapshots themselves.
errorIfNotExist
A boolean value that indicates whether to raise an exception (if true) if the
path specified by datasetPath does not exist.
Returns
A JSON array of DatasetStatus objects that contain the dataset path of the
deleted snapshot and results of the operation.

430

Appendix B

Examples
Request (curl):
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H Content-Type:application/json \
-d '["pool1/Local/TechPubs/TechPubsTest", "api*", \
false, true]' \
https://198.51.100.10/zebi/api/v2/deleteSnapshots -k

Response
[
{
"datasetPath": "api_SnapShotName_1",
"overwriteStatus": 0,
"overwriteException": null,
"commandStatus": 2,
"commandException": {
"code": "EZEBI_RESOURCE_NOT_FOUND",
"details": "Unable to open api_SnapShotName_1 : dataset does not
exist",
"extendedData": {
"EX_CAUSE_CODE_NAME": "EZFS_NOENT",
"EX_CAUSE_MESSAGE": "Unable to open api_SnapShotName_1 :
dataset does not exist",
"EX_CAUSE_CODE_NUMBER": "2009"
},
"message": "Dataset api_SnapShotName_1 does not exists"
},
"cleanupStatus": 0,
"cleanupException": null
},
{
"datasetPath": "Auto-LF-Day-012114-21:15",
"overwriteStatus": 0,
"overwriteException": null,
"commandStatus": 2,
"commandException": {
"code": "EZEBI_RESOURCE_NOT_FOUND",
"details": "Unable to open Auto-LF-Day-012114-21:15 : dataset
does not exist",
"extendedData": {
"EX_CAUSE_CODE_NAME": "EZFS_NOENT",
"EX_CAUSE_MESSAGE": "Unable to open Auto-LF-Day-012114-21:15 :
dataset does not exist",
"EX_CAUSE_CODE_NUMBER": "2009"
},
"message": "Dataset Auto-LF-Day-012114-21:15 does not exists"
},
"cleanupStatus": 0,
"cleanupException": null
}
]

431

Tegile IntelliFlash API Reference Guide, Version 2.3

Erroneous Request (curl)
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H Content-Type:application/json \
-d '["pool1/Local/TechPubs/TechPubs", "api*", \
false, true]' \
https://198.51.100.10/zebi/api/v2/deleteSnapshots -k

Error Response
{
"message": "Unable to open pool1/Local/TechPubs/TechPubs :
dataset does not exist",
"extendedData": {
"EX_CAUSE_CODE_NAME": "EZFS_NOENT",
"EX_CAUSE_MESSAGE": "Unable to open pool1/Local/TechPubs/
TechPubs : dataset does not exist",
"EX_CAUSE_CODE_NUMBER": "2009"
},
"details": "Unable to open pool1/Local/TechPubs/TechPubs :
dataset does not exist",
"code": "EZEBI_RESOURCE_NOT_FOUND"
}

cloneSnapshot
Clones a snapshot to a new dataset.
Alternate APIs
The cloneSnapshot API is deprecated. Use the cloneProjectSnapshot, cloneShareSnapshot, or
cloneVolumeSnapshot APIs instead.
Related APIs
listSnapshots, createSnapshots.
Parameters
snapshotPath
A string that identifies the path for the snapshot that needs to be cloned. The
snapshot path has the format: datasetPath@snapshotName. The datasetPath
must be a valid path to a share or a volume.
cloneName
A string that contains the name of the new dataset.
clonesSettings

432

Appendix B

A boolean value that indicates whether to clone the settings that are required
to share the new dataset.
readOnly
A boolean value that indicates whether to make the new dataset a read-only
clone.
promotesIt
A boolean value that indicates whether to promote the new dataset so that it
is possible to remove to old dataset.
Returns
If the dataset is a volume, the LUN ID (GUID) of the new volume is returned. If
the dataset is a share, nothing is returned.
Examples
Request (curl):
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H Content-Type:application/json \
-d '["pool1/Local/TechPubs/TechPubsTest@api_SnapShotName_1", \
"api_CloneName_1", false, false, false]' \
https://198.51.100.10/zebi/api/v2/cloneSnapshot -k

Response
The above request returns the HTTP status code 200 (OK) and no data.
Erroneous Request 1 (curl)
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H Content-Type:application/json \
-d '["pool1/Local/TechPubs/TechPubsTest@api_SnapShotName-Bad", \
"api_CloneName_1", false, false, false]' \
https://198.51.100.10/zebi/api/v2/cloneSnapshot -k

Error Response
HTTP Status Code: 400
{
"message": "An entity with the same name already exists.",
"extendedData": {},
"details": "",
"code": "EZEBI_GENERAL"
}

433

Tegile IntelliFlash API Reference Guide, Version 2.3

Erroneous Request 2 (curl)
curl -X POST -H "Authorization:Basic Auth_TOKEN" \
-H Content-Type:application/json \
-d '["pool1/Local/TechPubs/TechPubs@api_SnapShotName", \
"api_CloneName_1", false, false, false]' \
https://198.51.100.10/zebi/api/v2/cloneSnapshot -k

Error Response
{

"message": "Unable to open pool1/Local/TechPubs/TechPubs :
dataset does not exist",
"extendedData": {
"EX_CAUSE_CODE_NAME": "EZFS_NOENT",
"EX_CAUSE_MESSAGE": "Unable to open pool1/Local/
TechPubs/TechPubs : dataset does not exist",
"EX_CAUSE_CODE_NUMBER": "2009"
},
"details": "Unable to open pool1/Local/TechPubs/TechPubs :
dataset does not exist",
"code": "EZEBI_RESOURCE_NOT_FOUND"
}

434



Source Exif Data:
File Type                       : PDF
File Type Extension             : pdf
MIME Type                       : application/pdf
Linearized                      : No
Has XFA                         : No
XMP Toolkit                     : Adobe XMP Core 5.2-c001 63.139439, 2010/09/27-13:37:26
Format                          : application/pdf
Language                        : en-US
Date                            : 2018:11:28 14:42:26+05:30
Title                           : Tegile IntelliFlash API Reference Version 2.3
Creator                         : 
Producer                        : Apache FOP Version 2.1
PDF Version                     : 1.4
Creator Tool                    : Apache FOP Version 2.1
Metadata Date                   : 2018:11:28 15:07:39+05:30
Create Date                     : 2018:11:28 14:42:26+05:30
Modify Date                     : 2018:11:28 15:07:39+05:30
Document ID                     : uuid:4a8a509a-9722-4b72-ad93-2af00db3b3ad
Instance ID                     : uuid:ea322d94-8597-4c5e-a79f-dadf025c4184
Page Mode                       : UseOutlines
Page Count                      : 449
Profile CMM Type                : Little CMS
Profile Version                 : 2.1.0
Profile Class                   : Display Device Profile
Color Space Data                : RGB
Profile Connection Space        : XYZ
Profile Date Time               : 1998:02:09 06:49:00
Profile File Signature          : acsp
Primary Platform                : Microsoft Corporation
CMM Flags                       : Not Embedded, Independent
Device Manufacturer             : Hewlett-Packard
Device Model                    : sRGB
Device Attributes               : Reflective, Glossy, Positive, Color
Rendering Intent                : Perceptual
Connection Space Illuminant     : 0.9642 1 0.82491
Profile Creator                 : Little CMS
Profile ID                      : 0
Profile Copyright               : Copyright (c) 1998 Hewlett-Packard Company
Profile Description             : sRGB IEC61966-2.1
Media White Point               : 0.95045 1 1.08905
Media Black Point               : 0 0 0
Red Matrix Column               : 0.43607 0.22249 0.01392
Green Matrix Column             : 0.38515 0.71687 0.09708
Blue Matrix Column              : 0.14307 0.06061 0.7141
Device Mfg Desc                 : IEC http://www.iec.ch
Device Model Desc               : IEC 61966-2.1 Default RGB colour space - sRGB
Viewing Cond Desc               : Reference Viewing Condition in IEC61966-2.1
Viewing Cond Illuminant         : 19.6445 20.3718 16.8089
Viewing Cond Surround           : 3.92889 4.07439 3.36179
Viewing Cond Illuminant Type    : D50
Luminance                       : 76.03647 80 87.12462
Measurement Observer            : CIE 1931
Measurement Backing             : 0 0 0
Measurement Geometry            : Unknown
Measurement Flare               : 0.999%
Measurement Illuminant          : D65
Technology                      : Cathode Ray Tube Display
Red Tone Reproduction Curve     : (Binary data 2060 bytes, use -b option to extract)
Green Tone Reproduction Curve   : (Binary data 2060 bytes, use -b option to extract)
Blue Tone Reproduction Curve    : (Binary data 2060 bytes, use -b option to extract)
Warning                         : [Minor] Ignored duplicate Info dictionary
EXIF Metadata provided by EXIF.tools

Navigation menu