Cisco Configuration Engine Administration Guide
Bulk Data Manager
Downloads: This chapterpdf (PDF - 160.0KB) The complete bookPDF (PDF - 5.52MB) | Feedback

Bulk Data Manager

Table Of Contents

Bulk Data Manager

XML DTD

Uploading Bulk Data

Command-Line Upload of Bulk Data

Using Data Converter Utility

Creating Sample Data

NSM Data Without Image Info

NSM Data Sample With Image Info

Image Sample Data


Bulk Data Manager


To access Bulk Data management tasks, log into the system (see "Logging In" section on page 2-1). Then, from the Home page, click the Tools tab. The Tools page appears.

From the Tools page, click Bulk Data Mgr. The Bulk Data Page appears showing:

Upload Bulk Data

Create Sample Data

XML DTD

The following example shows the Document Type Definition (DTD) for the XML bulk upload:

<?xml version="1.0" encoding="utf-8"?>
<!ELEMENT cns-bulk-upload (cns-element-data)>
<!ATTLIST cns-bulk-upload
    stop-on-error (true | false) "false"
    version (2.0 | 3.0) "3.0"
>
<!ELEMENT cns-element-data ( NSM-DATA | IMAGE-DATA)>
<!ELEMENT NSM-DATA (cns-device-info*, cns-sub-device-info*, cns-application-info*, 
cns-group-info*)>
<!ATTLIST NSM-DATA
    op-type (add|edit|delete) #REQUIRED
    validate-data (true | false) "false"
>
<!ELEMENT cns-device-info (cns-device-name, cns-extended-attr*, dev-image-information?, 
imgw-data?)>
<!ELEMENT cns-device-name (#PCDATA)>
<!ATTLIST cns-device-info
        dev-type (other | imgw | pix ) "other"
>
<!ELEMENT cns-extended-attr (#PCDATA)>
<!ATTLIST cns-extended-attr
        name CDATA #REQUIRED
>
<!ELEMENT dev-image-information (image-id, activation-template?, dev-image-info*)>
<!ELEMENT image-id (#PCDATA)>
<!ELEMENT activation-template (#PCDATA)>
<!ELEMENT dev-image-info (image-name, distribution)>
<!ELEMENT image-name (#PCDATA)>
<!ELEMENT distribution ( destination?, location)>
<!ATTLIST distribution
    overwrite  (yes | no) "no"
    erase-flash (yes | no) "no"
    activate (true | false) "false"
>
<!ELEMENT destination (#PCDATA)>
<!ELEMENT location (#PCDATA)>

<!-- Imgw-data-->
<!ELEMENT imgw-data (gateway-id?, device-type?, simulation-agent*, hop-information*)>
<!ELEMENT gateway-id (#PCDATA)>
<!ELEMENT device-type (#PCDATA)>
<!ELEMENT simulation-agent (#PCDATA)>
<!ELEMENT hop-information (hop-type, ip-address?, port?, username?, password?)>
<!ELEMENT hop-type (#PCDATA)>
<!ELEMENT ip-address (#PCDATA)>
<!ELEMENT port (#PCDATA)>
<!ELEMENT username (#PCDATA)>
<!ELEMENT password (#PCDATA)>

<!-- sub-device info-->
<!ELEMENT cns-sub-device-info (cns-sub-device-name, sub-device-id, line-card-type, 
cns-extended-attr*, main-device-name?)>
<!ELEMENT cns-sub-device-name (#PCDATA)>
<!ELEMENT sub-device-id (#PCDATA)>
<!ELEMENT line-card-type (#PCDATA)>
<!ELEMENT main-device-name (#PCDATA)>

<!ELEMENT cns-application-info (cns-application-name, cns-subject-mapping*)>
<!ELEMENT cns-application-name (#PCDATA)>
<!ELEMENT cns-subject-mapping (cns-original-subject, cns-pub-mapping*, cns-sub-mapping*, 
cns-pub-default, cns-sub-default)>
<!ELEMENT cns-original-subject (#PCDATA)>
<!ELEMENT cns-pub-mapping (#PCDATA)>
<!ELEMENT cns-sub-mapping (#PCDATA)>
<!ELEMENT cns-pub-default (#PCDATA)>
<!ELEMENT cns-sub-default (#PCDATA)>

<!ELEMENT cns-group-info (cns-group-name,cns-group-new-name?, cns-group-member*)>
<!ELEMENT cns-group-name (#PCDATA)>
<!ELEMENT cns-group-new-name (#PCDATA)>
<!ELEMENT cns-group-member (#PCDATA)>
<!ATTLIST cns-group-member
    type  (DEV | GRP) "DEV"
>
<!-- Here starts the definition for Image-data-->
<!ELEMENT IMAGE-DATA (image+)>
<!ATTLIST IMAGE-DATA
    op-type (add|edit|delete) #REQUIRED
    validate-data (true | false) "false"
>
<!ELEMENT image (name, image-info)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT image-info (img-name, img-chksum?, hdr-chksum?, software-version?, 
system-description?, file-byte-size?, platform-family-name?, img-
location*)>
<!ATTLIST image-info
        image-type (IOS | pix-image | pdm | other) "IOS"
>
<!ELEMENT img-name (#PCDATA)>
<!ELEMENT img-chksum (#PCDATA)>
<!ELEMENT hdr-chksum (#PCDATA)>
<!ELEMENT file-byte-size (#PCDATA)>
<!ELEMENT system-description (#PCDATA)>
<!ELEMENT platform-family-name (#PCDATA)>
<!ELEMENT software-version (#PCDATA)>
<!ELEMENT img-location (#PCDATA)>

Uploading Bulk Data


Step 1 From the Bulk Data main menu, click Upload Bulk Data.

The Upload Bulk Data parameters page appears (see Figure 16-1).

Figure 16-1 Upload Bulk Data Parameters

Step 2 If you know the filename of the data file you want to load, enter it in the Filename field, otherwise use the browse function.

Table 16-1shows the valid values for this field.

Table 16-1 Valid Values for Upload Bulk Data

Attribute
Description
Valid Values

Filename

Name of the file containing the data to be uploaded.

a-z
A-Z
0-9
-(hyphen)
_ (under-score)
. (period)


Step 3 Use the drop-down arrow to select the Data Format:

XML

CSV

Step 4 To clear this task, click Reset.

Step 5 To upload this data file, click Upload.


Command-Line Upload of Bulk Data

You can also upload the XML file to the directory using a command line utility as follows:

FTP the bulk upload XML file to the $CISCO_CE_INSTALL_ROOT/CSCOdat/scripts directory on the host system.

Step 6 Log into the box using Telnet.

Step 7 Go to: $CISCO_CE_INSTALL_ROOT/CSCOdat/scripts.

Step 8 Run the following command to invoke the bulk upload command line utility:

./upload.sh <xml filename>

For example: ./upload.sh my_bulk_data.xml

This uploads the data to the LDAP directory.


Using Data Converter Utility

There is a data converter utility that you can use to convert bulk upload data on a system with a release prior to 3.0. This will allow you to do a bulk upload of data to Cisco Configuration Engine.

You can find this utility in <install base dir>/ConfigEngine/CSCOdat/XMLTransform.

Creating Sample Data

Even though the DTD (see "XML DTD" section) outlines the structure of the input XML file, it does not convey the information about what values should be given for each tag. By looking at the sample data files in this section, you can get an idea of how the data should be arranged in the Bulk Upload XML file.


Step 1 From the Bulk Data main menu, click Add Bulk Data.

The Upload Bulk Data page appears (see Figure 16-2).

Figure 16-2 Create Sample Data Page

Step 2 Enter the prefix name for this sample in the Prefix field.

Table 16-2 shows valid values for these fields.

Table 16-2 Valid Values for Create Sample Data

Attribute
Description
Valid Values

Prefix

Prefix that is used to create the device/application/group objects.

a-z
A-Z
0-9
-(hyphen)
_ (under-score)
. (period)

Data Format

XML, CSV

From drop-down list

Sample Data Without image info

Creates application, group, device data without the image information for device.

From drop-down list

Sample Data With image info

Creates application, group, device data without the image information for device.

Also creates IMAGE object data.

From drop-down list

Sample IMAGE Data only

Creates only IMAGE object data

From drop-down list


Step 3 Select Sample Data.

Step 4 To create this sample, click OK.


NSM Data Without Image Info

The following example shows sample device data in XML format:

    <?xml version="1.0" encoding="UTF-8" ?> 
    <!DOCTYPE cns-bulk-upload (View Source for full doctype...)> 
- <cns-bulk-upload stop-on-error="false" version="3.0">
- <cns-element-data>
- <NSM-DATA op-type="add" validate-data="false">
- <cns-device-info dev-type="other">
  <cns-device-name>myDeviceDevice1</cns-device-name> 
  <cns-extended-attr name="IOSconfigtemplate">DemoRouter.cfgtpl</cns-extended-attr> 
  <cns-extended-attr name="IOSConfigID">myDeviceDevice1</cns-extended-attr> 
  <cns-extended-attr name="IOSEventID">myDeviceDevice1</cns-extended-attr> 
- <dev-image-information>
  <image-id>myDeviceDevice1</image-id> 
    </dev-image-information>
    </cns-device-info>
- <cns-device-info dev-type="other">
  <cns-device-name>myDeviceDevice2</cns-device-name> 
  <cns-extended-attr name="IOSconfigtemplate">DemoRouter.cfgtpl</cns-extended-attr> 
  <cns-extended-attr name="parent">/config/myDeviceGroup1</cns-extended-attr> 
  <cns-extended-attr name="IOSConfigID">myDeviceDevice2</cns-extended-attr> 
  <cns-extended-attr name="IOSEventID">myDeviceDevice2</cns-extended-attr> 
- <dev-image-information>
  <image-id>myDeviceDevice2</image-id> 
    </dev-image-information>
    </cns-device-info>
- <cns-device-info dev-type="pix">
  <cns-device-name>myDeviceDevice3</cns-device-name> 
  <cns-extended-attr name="AuthPassword">myDevicepwd</cns-extended-attr> 
  <cns-extended-attr name="IOSconfigtemplate">DemoRouter.cfgtpl</cns-extended-attr> 
  <cns-extended-attr name="parent">/config/myDeviceGroup2</cns-extended-attr> 
  <cns-extended-attr name="IOSConfigID">myDeviceDevice3</cns-extended-attr> 
  <cns-extended-attr name="IOSEventID">myDeviceDevice3</cns-extended-attr> 
- <dev-image-information>
  <image-id>myDeviceDevice3</image-id> 
    </dev-image-information>
    </cns-device-info>
- <cns-device-info dev-type="imgw">
  <cns-device-name>myDeviceDevice4</cns-device-name> 
  <cns-extended-attr name="IOSconfigtemplate">DemoRouter.cfgtpl</cns-extended-attr> 
  <cns-extended-attr 
    name="parent">/config/myDeviceGroup2/myDeviceSubGroup1</cns-extended-attr> 
  <cns-extended-attr name="IOSConfigID">myDeviceDevice4</cns-extended-attr> 
  <cns-extended-attr name="IOSEventID">myDeviceDevice4</cns-extended-attr> 
  - <dev-image-information>
  <image-id>myDeviceDevice4</image-id> 
    </dev-image-information>
- <imgw-data>
  <gateway-id>myDeviceIMGWGatewayID4</gateway-id> 
  <device-type>IOS</device-type> 
  <simulation-agent>IMAGEAGENT</simulation-agent> 
  <simulation-agent>CONFIGAGENT</simulation-agent> 
- <hop-information>
  <hop-type>IOS_LOGIN</hop-type> 
  <ip-address>0.0.0.0</ip-address> 
  <port>0000</port> 
  <username>myDeviceusr4</username> 
  <password>myDevicepwd4</password> 
    </hop-information>
- <hop-information>
  <hop-type>IOS_EN</hop-type> 
  <ip-address /> 
  <port /> 
  <username /> 
  <password>myDevicepasswd4</password> 
    </hop-information>
    </imgw-data>
    </cns-device-info>
- <cns-device-info dev-type="imgw">
  <cns-device-name>myDeviceDevice5</cns-device-name> 
  <cns-extended-attr name="IOSconfigtemplate">DemoRouter.cfgtpl</cns-extended-attr> 
  <cns-extended-attr 
name="parent">/config/myDeviceGroup2/myDeviceSubGroup2</cns-extended-attr> 
  <cns-extended-attr name="IOSConfigID">myDeviceDevice5</cns-extended-attr> 
  <cns-extended-attr name="IOSEventID">myDeviceDevice5</cns-extended-attr> 
- <dev-image-information>
  <image-id>myDeviceDevice5</image-id> 
    </dev-image-information>
- <imgw-data>
  <gateway-id>myDeviceIMGWGatewayID5</gateway-id> 
  <device-type>IOS</device-type> 
  <simulation-agent>IMAGEAGENT</simulation-agent> 
  <simulation-agent>CONFIGAGENT</simulation-agent> 
- <hop-information>
  <hop-type>IOS_LOGIN</hop-type> 
  <ip-address>0.0.0.0</ip-address> 
  <port>0000</port> 
  <username>myDeviceusr5</username> 
  <password>myDevicepwd5</password> 
    </hop-information>
- <hop-information>
  <hop-type>IOS_EN</hop-type> 
  <ip-address /> 
  <port /> 
  <username /> 
  <password>myDevicepasswd5</password> 
    </hop-information>
    </imgw-data>
    </cns-device-info>
- <cns-group-info>
  <cns-group-name>/config/myDeviceGroup1</cns-group-name> 
  <cns-group-member type="GRP">myDeviceSubGroup1</cns-group-member> 
    </cns-group-info>
- <cns-group-info>
  <cns-group-name>/config/myDeviceGroup2</cns-group-name> 
  <cns-group-member type="GRP">myDeviceSubGroup1</cns-group-member> 
  <cns-group-member type="GRP">myDeviceSubGroup2</cns-group-member> 
    </cns-group-info>
    </NSM-DATA>
    </cns-element-data>
    </cns-bulk-upload>

NSM Data Sample With Image Info

The following example shows sample data with the image in XML format:

    <?xml version="1.0" encoding="UTF-8" ?> 
    <!DOCTYPE cns-bulk-upload (View Source for full doctype...)> 
- <cns-bulk-upload stop-on-error="false" version="3.0">
- <cns-element-data>
- <NSM-DATA op-type="add" validate-data="false">
- <cns-device-info dev-type="other">
  <cns-device-name>myDeviceDevice1</cns-device-name> 
  <cns-extended-attr name="IOSconfigtemplate">DemoRouter.cfgtpl</cns-extended-attr> 
  <cns-extended-attr name="IOSConfigID">myDeviceDevice1</cns-extended-attr> 
  <cns-extended-attr name="IOSEventID">myDeviceDevice1</cns-extended-attr> 
- <dev-image-information>
  <image-id>myDeviceDevice1</image-id> 
  <activation-template>DemoRouter.cfgtpl</activation-template> 
- <dev-image-info>
  <image-name>myDeviceIMAGEObj1</image-name> 
- <distribution activate="false" erase-flash="no" overwrite="yes">
  <destination>flash</destination> 
  <location>tftp://test.com/c7200-js-mz1</location> 
    </distribution>
    </dev-image-info>
    </dev-image-information>
    </cns-device-info>
- <cns-device-info dev-type="other">
  <cns-device-name>myDeviceDevice2</cns-device-name> 
  <cns-extended-attr name="IOSconfigtemplate">DemoRouter.cfgtpl</cns-extended-attr> 
  <cns-extended-attr name="parent">/config/myDeviceGroup1</cns-extended-attr> 
  <cns-extended-attr name="IOSConfigID">myDeviceDevice2</cns-extended-attr> 
  <cns-extended-attr name="IOSEventID">myDeviceDevice2</cns-extended-attr> 
- <dev-image-information>
  <image-id>myDeviceDevice2</image-id> 
  <activation-template>DemoRouter.cfgtpl</activation-template> 
- <dev-image-info>
  <image-name>myDeviceIMAGEObj2</image-name> 
- <distribution activate="false" erase-flash="no" overwrite="yes">
  <destination>flash</destination> 
  <location>tftp://test.com/c7200-js-mz2</location> 
    </distribution>
    </dev-image-info>
    </dev-image-information>
    </cns-device-info>
- <cns-device-info dev-type="pix">
  <cns-device-name>myDeviceDevice3</cns-device-name> 
  <cns-extended-attr name="AuthPassword">myDevicepwd</cns-extended-attr> 
  <cns-extended-attr name="IOSconfigtemplate">DemoRouter.cfgtpl</cns-extended-attr> 
  <cns-extended-attr name="parent">/config/myDeviceGroup2</cns-extended-attr> 
  <cns-extended-attr name="IOSConfigID">myDeviceDevice3</cns-extended-attr> 
  <cns-extended-attr name="IOSEventID">myDeviceDevice3</cns-extended-attr> 
- <dev-image-information>
  <image-id>myDeviceDevice3</image-id> 
  <activation-template>DemoRouter.cfgtpl</activation-template> 
- <dev-image-info>
  <image-name>myDeviceIMAGEObj3</image-name> 
- <distribution activate="false" erase-flash="no" overwrite="yes">
  <destination>flash</destination> 
  <location>tftp://test.com/c7200-js-mz3</location> 
    </distribution>
    </dev-image-info>
    </dev-image-information>
    </cns-device-info>
- <cns-device-info dev-type="imgw">
  <cns-device-name>myDeviceDevice4</cns-device-name> 
  <cns-extended-attr name="IOSconfigtemplate">DemoRouter.cfgtpl</cns-extended-attr> 
  <cns-extended-attr 
name="parent">/config/myDeviceGroup2/myDeviceSubGroup1</cns-extended-attr> 
  <cns-extended-attr name="IOSConfigID">myDeviceDevice4</cns-extended-attr> 
  <cns-extended-attr name="IOSEventID">myDeviceDevice4</cns-extended-attr> 
- <dev-image-information>
  <image-id>myDeviceDevice4</image-id> 
  <activation-template>DemoRouter.cfgtpl</activation-template> 
- <dev-image-info>
  <image-name>myDeviceIMAGEObj4</image-name> 
- <distribution activate="false" erase-flash="no" overwrite="yes">
  <destination>flash</destination> 
  <location>tftp://test.com/c7200-js-mz4</location> 
    </distribution>
    </dev-image-info>
    </dev-image-information>
- <imgw-data>
  <gateway-id>myDeviceIMGWGatewayID4</gateway-id> 
  <device-type>IOS</device-type> 
  <simulation-agent>IMAGEAGENT</simulation-agent> 
  <simulation-agent>CONFIGAGENT</simulation-agent> 
- <hop-information>
  <hop-type>IOS_LOGIN</hop-type> 
  <ip-address>0.0.0.0</ip-address> 
  <port>0000</port> 
  <username>myDeviceusr4</username> 
  <password>myDevicepwd4</password> 
    </hop-information>
- <hop-information>
  <hop-type>IOS_EN</hop-type> 
  <ip-address /> 
  <port /> 
  <username /> 
  <password>myDevicepasswd4</password> 
    </hop-information>
    </imgw-data>
    </cns-device-info>
- <cns-device-info dev-type="imgw">
  <cns-device-name>myDeviceDevice5</cns-device-name> 
  <cns-extended-attr name="IOSconfigtemplate">DemoRouter.cfgtpl</cns-extended-attr> 
  <cns-extended-attr 
name="parent">/config/myDeviceGroup2/myDeviceSubGroup2</cns-extended-attr> 
  <cns-extended-attr name="IOSConfigID">myDeviceDevice5</cns-extended-attr> 
  <cns-extended-attr name="IOSEventID">myDeviceDevice5</cns-extended-attr> 
- <dev-image-information>
  <image-id>myDeviceDevice5</image-id> 
  <activation-template>DemoRouter.cfgtpl</activation-template> 
- <dev-image-info>
  <image-name>myDeviceIMAGEObj5</image-name> 
- <distribution activate="false" erase-flash="no" overwrite="yes">
  <destination>flash</destination> 
  <location>tftp://test.com/c7200-js-mz5</location> 
    </distribution>
    </dev-image-info>
    </dev-image-information>
- <imgw-data>
  <gateway-id>myDeviceIMGWGatewayID5</gateway-id> 
  <device-type>IOS</device-type> 
  <simulation-agent>IMAGEAGENT</simulation-agent> 
  <simulation-agent>CONFIGAGENT</simulation-agent> 
- <hop-information>
  <hop-type>IOS_LOGIN</hop-type> 
  <ip-address>0.0.0.0</ip-address> 
  <port>0000</port> 
  <username>myDeviceusr5</username> 
  <password>myDevicepwd5</password> 
    </hop-information>
- <hop-information>
  <hop-type>IOS_EN</hop-type> 
  <ip-address /> 
  <port /> 
  <username /> 
  <password>myDevicepasswd5</password> 
    </hop-information>
    </imgw-data>
    </cns-device-info>
- <cns-group-info>
  <cns-group-name>/config/myDeviceGroup1</cns-group-name> 
  <cns-group-member type="GRP">myDeviceSubGroup1</cns-group-member> 
  </cns-group-info>
- <cns-group-info>
  <cns-group-name>/config/myDeviceGroup2</cns-group-name> 
  <cns-group-member type="GRP">myDeviceSubGroup1</cns-group-member> 
  <cns-group-member type="GRP">myDeviceSubGroup2</cns-group-member> 
    </cns-group-info>
    </NSM-DATA>
    </cns-element-data>
    </cns-bulk-upload>

NOTES

For Bulk Upload of NSM devices with Image Info, make sure that the image objects referenced in the dev-image-info element tag already exist.

The location given should be one of the multiple image locations specified with the image object.

If there are errors while adding the devices, please check the error file provided as a result of the Upload operation. There can be an exception given as CISException, which points to the CISDevice creation failed, which could have occurred if you had ignored the checklist. In this case, just recheck the information provided in the dev-image-information element tag. Correct the file and upload it again.

Image Sample Data

The following example shows image data sample:

    <?xml version="1.0" encoding="UTF-8" ?> 
    <!DOCTYPE cns-bulk-upload (View Source for full doctype...)> 
- <cns-bulk-upload stop-on-error="false" version="3.0">
- <cns-element-data>
- <IMAGE-DATA op-type="add" validate-data="false">
- <image>
  <name>myDeviceIMAGEObj1</name> 
- <image-info image-type="IOS">
  <img-name>c7200-js-mz1</img-name> 
  <img-chksum>0x1256faf245</img-chksum> 
  <software-version>12.2(8)T6</software-version> 
  <system-description>Cisco Network Operating System</system-description> 
  <file-byte-size>1040</file-byte-size> 
  <platform-family-name>7200</platform-family-name> 
  <img-location>tftp://test.com/c7200-js-mz1</img-location> 
    </image-info>
    </image>
- <image>
  <name>myDeviceIMAGEObj2</name> 
- <image-info image-type="IOS">
  <img-name>c7200-js-mz2</img-name> 
  <img-chksum>0x1256faf245</img-chksum> 
  <software-version>12.2(8)T6</software-version> 
  <system-description>Cisco Network Operating System</system-description> 
  <file-byte-size>1040</file-byte-size> 
  <platform-family-name>7200</platform-family-name> 
  <img-location>tftp://test.com/c7200-js-mz2</img-location> 
    </image-info>
    </image>
- <image>
  <name>myDeviceIMAGEObj3</name> 
- <image-info image-type="pix-image">
  <img-name>c7200-js-mz3</img-name> 
  <img-chksum>0x1256faf245</img-chksum> 
  <software-version>12.2(8)T6</software-version> 
  <system-description>Cisco Network Operating System</system-description> 
  <file-byte-size>1040</file-byte-size> 
  <platform-family-name>7200</platform-family-name> 
  <img-location>tftp://test.com/c7200-js-mz3</img-location> 
    </image-info>
    </image>
- <image>
  <name>myDeviceIMAGEObj4</name> 
- <image-info image-type="IOS">
  <img-name>c7200-js-mz4</img-name> 
  <img-chksum>0x1256faf245</img-chksum> 
  <software-version>12.2(8)T6</software-version> 
  <system-description>Cisco Network Operating System</system-description> 
  <file-byte-size>1040</file-byte-size> 
  <platform-family-name>7200</platform-family-name> 
  <img-location>tftp://test.com/c7200-js-mz4</img-location> 
    </image-info>
    </image>
- <image>
  <name>myDeviceIMAGEObj5</name> 
- <image-info image-type="IOS">
  <img-name>c7200-js-mz5</img-name> 
  <img-chksum>0x1256faf245</img-chksum> 
  <software-version>12.2(8)T6</software-version> 
  <system-description>Cisco Network Operating System</system-description> 
  <file-byte-size>1040</file-byte-size> 
  <platform-family-name>7200</platform-family-name> 
  <img-location>tftp://test.com/c7200-js-mz5</img-location> 
    </image-info>
    </image>
    </IMAGE-DATA>
    </cns-element-data>
    </cns-bulk-upload>