Getting Contents Being Protected using REST API

Last post 06-30-2017, 1:03 PM by Yashwanth. 3 replies.
Sort Posts: Previous Next
  • Getting Contents Being Protected using REST API
    Posted: 06-14-2017, 11:06 AM

    My team is working on creating a script that will get the content that is being protected for all client. We were able to successfully get the content for most clients but ran into 5 cases where we were unable to retrieve the content that is being protected:

    1. File Archiver

    2. Exchange Database

    3. Exchange Mailbox

    4. Oracle

    5. File System that are using a Subclient Policy

    Does anyone know how I would retrieve the content being protected for those cases?

     

    Thanks!

  • Re: Getting Contents Being Protected using REST API
    Posted: 06-19-2017, 5:37 PM

    Hi Stephanie,

    http://documentation.commvault.com/commvault/v11/article?p=features/rest_api/operations/post_browse.htm

    The above documented Rest API would work for File Archiver and File System that uses Subclient Policy. 

    Sample Request/Response For Exchange Mailbox:

    Request:

    API=POST /DoBrowse , payload - formatted XML=

    <?xml version="1.0" encoding="UTF-8"?>
    <databrowse_BrowseRequest opType="0">
    <entity subclientId="83" applicationId="137" clientName="test-div-admin1" backupsetId="81" instanceId="17" clientId="22" subclientName="usermailbox" backupsetName="User Mailbox" instanceName="defaultInstanceName" appName="Exchange Mailbox"/>
    <paths path="\"/>
    <options skipIndexRestore="0"/>
    <mode mode="7"/>
    <advOptions copyPrecedence="0"/>
    <queries type="0" queryId="0" fileOrFolder="3">
    <dataParam>
    <paging firstNode="0" skipNode="0" pageSize="20"/>
    <sortParam ascending="1">
    <sortBy val="52"/>
    </sortParam>
    </dataParam>
    <whereClause connector="0">
    <criteria field="76" dataOperator="9">
    <values val="00000000000000000000000000000001"/>
    </criteria>
    </whereClause>
    </queries>
    <queries type="1" queryId="1">
    <aggrParam aggrType="4" field="0"/>
    <whereClause connector="0">
    <criteria field="76" dataOperator="9">
    <values val="00000000000000000000000000000001"/>
    </criteria>
    </whereClause>
    </queries>
    </databrowse_BrowseRequest>

    Response:

    <databrowse_BrowseResponseList>
    <browseResponses respType="0" workerId="120">
    <session sessionId="1497974175-120" />
    <browseResult queryId="0">
    <dataResultSet path="\MB\{203B39D0X6A94X4A39X9DDEX2EF47D57DBC3}" size="0" modificationTime="1495047159">
    <flags isPseudo="0" mailbox="1" isFake="0" snap="0" />
    <advancedData offset="0" archiveFileId="357">
    <subclient type="0" _type_="7" applicationId="83" />
    <advConfig>
    <browseAdvancedConfigResp commcellNumber="114059720" />
    </advConfig>
    <browseMetaData>
    <indexing parentObjectGUID="00000000000000000000000000000001" objectGUID="203B39D0X6A94X4A39X9DDEX2EF47D57DBC3" />
    <exchDataV2 type="0" migrated="0">
    <mbxInfo name="sh_new1 (sh_new1@testexch.commvault.com)" GUID="203b39d0x6a94x4a39x9ddex2ef47d57dbc3" />
    </exchDataV2>
    </browseMetaData>
    </advancedData>
    </dataResultSet>
    <dataResultSet path="\MB\{04DF30D6X079DX45B7X9FF9XD23F8DC49009}" size="0" modificationTime="1493234207">
    <flags isPseudo="0" mailbox="1" isFake="0" snap="0" />
    <advancedData offset="0" archiveFileId="263">
    <subclient type="0" _type_="7" applicationId="83" />
    <advConfig>
    <browseAdvancedConfigResp commcellNumber="114059720" />
    </advConfig>
    <browseMetaData>
    <indexing parentObjectGUID="00000000000000000000000000000001" objectGUID="04DF30D6X079DX45B7X9FF9XD23F8DC49009" />
    <exchDataV2 type="0" migrated="0">
    <mbxInfo name="sh_new2 (sh_new2@testexch.commvault.com)" GUID="04df30d6x079dx45b7x9ff9xd23f8dc49009" />
    </exchDataV2>
    </browseMetaData>
    </advancedData>
    </dataResultSet>
    <dataResultSet path="\MB\{8D9834D7X277CX43B1XA32AXA8E1A72212E0}" size="0" modificationTime="1494013721">
    <flags isPseudo="0" mailbox="1" isFake="0" snap="0" />
    <advancedData offset="0" archiveFileId="323">
    <subclient type="0" _type_="7" applicationId="83" />
    <advConfig>
    <browseAdvancedConfigResp commcellNumber="114059720" />
    </advConfig>
    <browseMetaData>
    <indexing parentObjectGUID="00000000000000000000000000000001" objectGUID="8D9834D7X277CX43B1XA32AXA8E1A72212E0" />
    <exchDataV2 type="0" migrated="0">
    <mbxInfo name="sh_new3 (sh_new3@testexch.commvault.com)" GUID="8d9834d7x277cx43b1xa32axa8e1a72212e0" />
    </exchDataV2>
    </browseMetaData>
    </advancedData>
    </dataResultSet>
    <dataResultSet path="\MB\{3978F293XF7CBX402CX89FBX910E956771E4}" size="0" modificationTime="1493322541">
    <flags isPseudo="0" mailbox="1" isFake="0" snap="0" />
    <advancedData offset="0" archiveFileId="291">
    <subclient type="0" _type_="7" applicationId="83" />
    <advConfig>
    <browseAdvancedConfigResp commcellNumber="114059720" />
    </advConfig>
    <browseMetaData>
    <indexing parentObjectGUID="00000000000000000000000000000001" objectGUID="3978F293XF7CBX402CX89FBX910E956771E4" />
    <exchDataV2 type="0" migrated="0">
    <mbxInfo name="sh_new4 (sh_new4@testexch.commvault.com)" GUID="3978f293xf7cbx402cx89fbx910e956771e4" />
    </exchDataV2>
    </browseMetaData>
    </advancedData>
    </dataResultSet>
    <dataResultSet path="\MB\{6ADECD3CXF089X4C43XBE2BX4706E35EE34B}" size="0" modificationTime="1494021114">
    <flags isPseudo="0" mailbox="1" isFake="0" snap="0" />
    <advancedData offset="0" archiveFileId="326">
    <subclient type="0" _type_="7" applicationId="83" />
    <advConfig>
    <browseAdvancedConfigResp commcellNumber="114059720" />
    </advConfig>
    <browseMetaData>
    <indexing parentObjectGUID="00000000000000000000000000000001" objectGUID="6ADECD3CXF089X4C43XBE2BX4706E35EE34B" />
    <exchDataV2 type="0" migrated="0">
    <mbxInfo name="sh_new5 (sh_new5@testexch.commvault.com)" GUID="6adecd3cxf089x4c43xbe2bx4706e35ee34b" />
    </exchDataV2>
    </browseMetaData>
    </advancedData>
    </dataResultSet>
    <dataResultSet path="\MB\{C40BFA49XD7BCX4773XA370X78831920C5EF}" size="0" modificationTime="1493232576">
    <flags isPseudo="0" mailbox="1" isFake="0" snap="0" />
    <advancedData offset="0" archiveFileId="245">
    <subclient type="0" _type_="7" applicationId="83" />
    <advConfig>
    <browseAdvancedConfigResp commcellNumber="114059720" />
    </advConfig>
    <browseMetaData>
    <indexing parentObjectGUID="00000000000000000000000000000001" objectGUID="C40BFA49XD7BCX4773XA370X78831920C5EF" />
    <exchDataV2 type="0" migrated="0">
    <mbxInfo name="sh_test1 (sh_test1@testexch.commvault.com)" GUID="c40bfa49xd7bcx4773xa370x78831920c5ef" />
    </exchDataV2>
    </browseMetaData>
    </advancedData>
    </dataResultSet>
    <dataResultSet path="\MB\{E2724B53XC44AX4F52XA0C9X64FC15748B72}" size="0" modificationTime="1493232267">
    <flags isPseudo="0" mailbox="1" isFake="0" snap="0" />
    <advancedData offset="0" archiveFileId="239">
    <subclient type="0" _type_="7" applicationId="83" />
    <advConfig>
    <browseAdvancedConfigResp commcellNumber="114059720" />
    </advConfig>
    <browseMetaData>
    <indexing parentObjectGUID="00000000000000000000000000000001" objectGUID="E2724B53XC44AX4F52XA0C9X64FC15748B72" />
    <exchDataV2 type="0" migrated="0">
    <mbxInfo name="sh_test13 (sh_test13@testexch.commvault.com)" GUID="e2724b53xc44ax4f52xa0c9x64fc15748b72" />
    </exchDataV2>
    </browseMetaData>
    </advancedData>
    </dataResultSet>
    <dataResultSet path="\MB\{91AE0ECBX6D8EX4281X9175X96C20AEFE34E}" size="0" modificationTime="1493232867">
    <flags isPseudo="0" mailbox="1" isFake="0" snap="0" />
    <advancedData offset="0" archiveFileId="248">
    <subclient type="0" _type_="7" applicationId="83" />
    <advConfig>
    <browseAdvancedConfigResp commcellNumber="114059720" />
    </advConfig>
    <browseMetaData>
    <indexing parentObjectGUID="00000000000000000000000000000001" objectGUID="91AE0ECBX6D8EX4281X9175X96C20AEFE34E" />
    <exchDataV2 type="0" migrated="0">
    <mbxInfo name="sh_test2 (sh_test2@testexch.commvault.com)" GUID="91ae0ecbx6d8ex4281x9175x96c20aefe34e" />
    </exchDataV2>
    </browseMetaData>
    </advancedData>
    </dataResultSet>
    </browseResult>
    </browseResponses>
    <browseResponses respType="0" workerId="120">
    <session sessionId="1497974175-120" />
    <browseResult queryId="1">
    <aggrResultSet result="8" />
    </browseResult>
    </browseResponses>
    <browseResponses respType="5" workerId="120">
    <session sessionId="1497974175-120" />
    </browseResponses>
    </databrowse_BrowseResponseList>
     
    Sample Request/Response For Exchange Database:
    Request:
    API=POST /DoBrowse , payload - formatted XML=
    <?xml version="1.0" encoding="UTF-8"?>
    <databrowse_BrowseRequest authToken="34eea5371b5554fbad1bf2d2042918bb4481600b0857a34bc35d30dbbd9973d4be9fe653da8da22f773055b8a4bbe25172399da284024cc37a7dfdd04b8fc74ed3638d49504c6965a24bc441a9d13006fe2bd2c81e91766043a94ab25868cccbba6b5e97104f4ee6398286d86cc1a973ea58dbcda11f6008dfee128c18b56678100eb033069b0574a4d2aabb3a0a8ee0f03e14d4846767567a9714c80b13caa85e807d54d3e651b57f45a6ca36ae1842c5867ebe0c5c3487104875246a95ced7abafb959380a290fe1621217c4b6556a98b0ee0c4e609e480225c8c65ddbd2545c661f257775a72340fff917ebad1e27f0976a16b4eacf3be2ae5f57b85638543235a21b775c7f3a1" opType="0">
    <entity applicationId="53" backupsetId="77" clientId="78" clientName="test2" instanceId="73" subclientId="91" />
    <paths path="\Microsoft Information Store" />
    <timeRange fromTime="0" toTime="2147483647" />
    <options bypassSubclientConfig="1" instantSend="1" showDeletedFiles="1" skipIndexRestore="0" />
    <mode mode="3" />
    <queries queryId="0" type="0">
    <dataParam>
    <paging firstNode="0" pageSize="15" skipNode="0" />
    <sortParam ascending="1">
    <sortBy val="38" />
    <sortBy val="0" />
    </sortParam>
    </dataParam>
    </queries>
    <queries queryId="1" type="1">
    <aggrParam aggrType="4" field="0" />
    </queries>
    </databrowse_BrowseRequest>
    Response:
    <?xml version="1.0" encoding="UTF-8"?>
    <databrowse_BrowseResponseList>
    <browseResponses respType="0" workerId="7">
    <session sessionId="1497968537-7" />
    <browseResult queryId="0">
    <dataResultSet path="\Microsoft Information Store\Nikon04DB2" size="1533091840" modificationTime="1497018602" displayName="Nikon04DB2" name="|3|#12!Nikon04DB2" displayPath="\Microsoft Information Store\Nikon04DB2">
    <flags isPseudo="0" directory="1" isFake="0" snap="0" />
    <advancedData imageMap="1117 IN " backupJobId="1117" referenceTime="1497018710" cipId="0" offset="1353600243" archiveGroupId="8" backupTime="1497018710" archiveFileId="640">
    <subclient type="0" _type_="7" applicationId="91" />
    <sourceCommServer _type_="1" commCellId="2" type="0" />
    <advConfig>
    <browseAdvancedConfigResp commcellNumber="10976878" />
    </advConfig>
    <browseMetaData>
    <exchDb dbMetadataType="4">
    <dbInfo EdbPath="C:\Program Files\Microsoft\Exchange Server\V14\Mailbox\Nikon04DB2\Nikon04DB2.edb" BkpOpt="0" />
    </exchDb>
    <indexing folderSize="1533091840" />
    <dmStubData guid="f8bf188632174a0af3f7668d086d9d33" />
    </browseMetaData>
    </advancedData>
    </dataResultSet>
    </browseResult>
    </browseResponses>
    <browseResponses respType="0" workerId="7">
    <session sessionId="1497968537-7" />
    <browseResult queryId="1">
    <aggrResultSet result="1" />
    </browseResult>
    </browseResponses>
    <browseResponses respType="5" workerId="7">
    <session sessionId="1497968537-7" />
    </browseResponses>
    </databrowse_BrowseResponseList>
     

    Sample Request/Response For Oracle:

    Example1:

    Request: API=POST <webservice>/Instance/DBBrowse/415 , payload - formatted XML=

    <?xml version="1.0" encoding="UTF-8"?>
    <Api_DBBrowseRequest path="/">
    <entity applicationId="22" clientName="11g-db" instanceId="415" clientId="138" instanceName="ORCL" appName="Oracle Database"/>
    </Api_DBBrowseRequest>
    Response:
    <?xml version="1.0" encoding="UTF-8" standalone="no" ?>
    <Api_DBBrowseResp>
    <oracleContent fileType="5" tableSpace="AAA_TS_1"/>
    <oracleContent fileType="5" tableSpace="ASDF_TS_1"/>
    <oracleContent fileType="5" tableSpace="ASDF_TS_2"/>
    <oracleContent fileType="5" tableSpace="CM_TS_1"/>
    <oracleContent fileType="5" tableSpace="EXAMPLE"/>
    <oracleContent fileType="5" tableSpace="KRFINAL"/>
    <oracleContent fileType="5" tableSpace="KRTB"/>
    <oracleContent fileType="5" tableSpace="NEW_TS_1"/>
    <oracleContent fileType="5" tableSpace="QQQ_TS_1"/>
    <oracleContent fileType="5" tableSpace="QUIZ_TS_1"/>
    <oracleContent fileType="5" tableSpace="QUIZ_TS_2"/>
    <oracleContent fileType="5" tableSpace="SAISR_TS_1"/>
    <oracleContent fileType="5" tableSpace="SYSAUX"/>
    <oracleContent fileType="5" tableSpace="SYSTEM"/>
    <oracleContent fileType="5" tableSpace="UNDOTBS1"/>
    <oracleContent fileType="5" tableSpace="USERS"/>
    <oracleContent fileType="5" tableSpace="WIN_TS_1"/>
    <oracleContent fileType="5" tableSpace="WW_TS_1"/>
    </Api_DBBrowseResp>

     Example2:

    Request: API=POST <webservice>/Instance/DBBrowse/415 , payload - formatted XML=

    <?xml version="1.0" encoding="UTF-8"?>
    <Api_DBBrowseRequest path="/AAA_TS_1" pointInTime="1496682931">
    <entity applicationId="22" clientName="11g-db" instanceId="415" clientId="138" instanceName="ORCL" appName="Oracle Database"/>
    </Api_DBBrowseRequest>
    Response:
    <?xml version="1.0" encoding="UTF-8" standalone="no" ?>
    <Api_DBBrowseResp>
    <oracleContent dataFile="/u01/app/oracle/oradata/orcl/aaa_TS_1_data.dbf" fileType="1" tableSpace="AAA_TS_1"/>
    </Api_DBBrowseResp>
  • Re: Getting Contents Being Protected using REST API
    Posted: 06-27-2017, 5:46 PM

    Hi Yashwanth,

    Thank you for your response! Smile

    We tried using the method you recommended for the File archiver but it's not working. This is what we end up getting:

    This was the input

     resReq='<?xml version="1.0" encoding="UTF-8"?><databrowse_BrowseRequest opType="browse"><entity clientName="basis" applicationId="58" clientId="32032" subclientId="1757" backupsetId="1440" instanceId="174"/><paths path="\"/><options skipIndexRestore="0"/><mode mode="7"/><advOptions copyPrecedence="0"/></databrowse_BrowseRequest>'

    This is what we requested:
    >>> r = requests.post(service+'/DoBrowse',data=resReq, headers=headers) 

    This was the output
    <databrowse_BrowseResponseList>\r\n\t<browseResponses respType="3">\r\n\t\t<messages errorMessage="" errorCode="1" />\r\n\t</browseResponses>\r\n</databrowse_BrowseResponseList> 
     
    I did noticed that your response code is 0 but we are receiving a 3. Any idea what the 3 stands for or where I can find that information?
     
    Thanks again!
  • Re: Getting Contents Being Protected using REST API
    Posted: 06-30-2017, 1:03 PM

    Hi Stephanie,

    respType="3" indicates BrowseResponseType_Error

    The error is due to optype="browse". We're expecting an integer value. Could you please change it to optype=0 similar to other examples.

    Yash

The content of the forums, threads and posts reflects the thoughts and opinions of each author, and does not represent the thoughts, opinions, plans or strategies of Commvault Systems, Inc. ("Commvault") and Commvault undertakes no obligation to update, correct or modify any statements made in this forum. Any and all third party links, statements, comments, or feedback posted to, or otherwise provided by this forum, thread or post are not affiliated with, nor endorsed by, Commvault.
Commvault, Commvault and logo, the “CV” logo, Commvault Systems, Solving Forward, SIM, Singular Information Management, Simpana, Commvault Galaxy, Unified Data Management, QiNetix, Quick Recovery, QR, CommNet, GridStor, Vault Tracker, InnerVault, QuickSnap, QSnap, Recovery Director, CommServe, CommCell, SnapProtect, ROMS, and CommValue, are trademarks or registered trademarks of Commvault Systems, Inc. All other third party brands, products, service names, trademarks, or registered service marks are the property of and used to identify the products or services of their respective owners. All specifications are subject to change without notice.
Close
Copyright © 2017 Commvault | All Rights Reserved. | Legal | Privacy Policy