IPControl CLI API Guide
IPControl CLI API Guide
The information in this document is subject to change without notice. Names of individuals and companies, as w ell as data used in
examples, are fictitious unless otherwise noted. No part of this document may be copied, reproduced, or electronically transmitted in
any form without the express written consent of BT Diamond IP.
July 2013
Command Line Interface (CLI) and Application Program Interface (API) Guide
DID# IPC6002 Revision 2
Version 6.0
2013 BT Americas, Inc.
BT Diamond IP
801 Springdale Drive, Suite 100
Exton, PA 19341
Tel. +1 610.423.4770
Fax +1 610.423.4774
Contents
Introduction ............................................................................................................................... 1
About This Guide ..................................................................................................................................................................... 1
iii
Contents
DeleteAddrPool ..................................................................................................................................................................92
DeleteAggregateBlo ck ........................................................................................................................................................94
DeleteBlo ck .........................................................................................................................................................................96
DeleteContain er ..................................................................................................................................................................98
DeleteDevice .....................................................................................................................................................................100
DeleteDomain ...................................................................................................................................................................102
DeleteDeviceInterface ......................................................................................................................................................104
DeleteDeviceResourceReco rd .........................................................................................................................................106
DeleteDomainResourceReco rd .......................................................................................................................................108
DeleteNetElement ............................................................................................................................................................110
DeleteNetElementInterface.............................................................................................................................................112
DeleteNetService...............................................................................................................................................................114
DeletePrefixPool ...............................................................................................................................................................116
DeleteTask .........................................................................................................................................................................118
DeleteZone ........................................................................................................................................................................119
DeleteZoneResourceRecord ............................................................................................................................................121
Tasks .......................................................................................................................................................................................123
ArpDiscoverNetElement Task........................................................................................................................................123
Dh cpConfigurationTask ..................................................................................................................................................125
DHCPUtilization ..............................................................................................................................................................127
DiscoverNetElement ........................................................................................................................................................128
DnsConfigurationTask .....................................................................................................................................................130
GlobalRollup .....................................................................................................................................................................132
GlobalSyn c.........................................................................................................................................................................133
TaskStatus ..........................................................................................................................................................................134
Updates ...................................................................................................................................................................................136
DetachBlo ck ......................................................................................................................................................................136
JoinBlock............................................................................................................................................................................138
ModifyAddrpool ...............................................................................................................................................................139
ModifyBlo ck ......................................................................................................................................................................142
ModifyContainer ...............................................................................................................................................................148
ModifyDevice ....................................................................................................................................................................153
ModifyDeviceResourceRecord ........................................................................................................................................157
ModifyDh cpServer ...........................................................................................................................................................160
ModifyDomainResourceReco rd......................................................................................................................................163
ModifyNetElementInterface............................................................................................................................................166
ModifyPendingApproval ..................................................................................................................................................168
ModifyPrefixPool..............................................................................................................................................................170
SplitBlo ck ...........................................................................................................................................................................173
UseNextReservedIPAddress............................................................................................................................................175
Utilities ....................................................................................................................................................................................176
Dh cpRelease ......................................................................................................................................................................176
Purge...................................................................................................................................................................................179
Contents
Contents
ExportChildBlo ck .............................................................................................................................................................292
ExportContainer ...............................................................................................................................................................297
ExportDevice ....................................................................................................................................................................299
ExportDeviceResourceRecord ........................................................................................................................................305
ExportPrefixPool ..............................................................................................................................................................309
ExportResourceRecordPendingApproval ......................................................................................................................312
ExportResourceRecordPendingApprovalStatus ...........................................................................................................315
Updates ...................................................................................................................................................................................318
UseNextReservedIPAddress............................................................................................................................................318
Deletes ....................................................................................................................................................................................320
DeleteAddrPool ................................................................................................................................................................320
DeleteAggregateBlo ck ......................................................................................................................................................322
DeleteBlo ck .......................................................................................................................................................................324
DeleteContain er ................................................................................................................................................................325
DeleteDevice .....................................................................................................................................................................326
DeleteDeviceInterface ......................................................................................................................................................328
DeleteDeviceResourceReco rd .........................................................................................................................................331
DeleteDomain ...................................................................................................................................................................334
DeleteDomainResourceReco rd .......................................................................................................................................336
DeleteNetElement ............................................................................................................................................................338
DeleteNetElementInterface.............................................................................................................................................340
DeleteNetService...............................................................................................................................................................342
DeletePrefixPool ...............................................................................................................................................................344
DeleteTaskByDate ............................................................................................................................................................346
DeleteTaskByDays ............................................................................................................................................................347
DeleteTaskById .................................................................................................................................................................348
DeleteZone ........................................................................................................................................................................349
DeleteZoneResourceRecord ............................................................................................................................................351
Appendix A
IPControl 6.0..........................................................................................................................................................................370
Introduction
Introduction 1
CLI Nam e
Brief Description
Data Dependencies
ImportContainer (logical)
Imports logical
containers
N/A
ImportNetElement
Imports network
elements such as
routers and switches
N/A
ImportContainer (device)
Imports device
containers
ImportRootBlock
ImportChildBlock
Imports child IP
address blocks
ImportDevice
Imports devices
Direct
Sequence
7
8
9
CLI Nam e
Brief Description
Data Dependencies
DiscoverNetElement
DHCPUtilization
ImportElementSnapshot
Imports network
element data
ImportServiceSnapshot
ImportDNS
10
11
Executing Commands
Each CLI is capable of being executed either directly by invoking the Java JVM, or indirectly
via the available command script. The direct approach requires a rather lengthy and
cumbersome syntax, while the indirect method requires the proper passing of necessary
parameters.
Direct
The following is an example of the direct method of execution (it assumes that the IPControl
environment variables, namely INC_HOME, JAVA_HOME and CLASSPATH are resident):
$INCHOME/jre/bin/java DINC_HOME=$INCHOME DNCX_HOME=$NCX_HOME Duser.dir=$INCHOME
cp $CLASSPATH com.diamondip.netcontrol.cli.ImportNetService u joe p joepwd
f southeast.csv
Indirect
The following example executes the same call but uses the indirect approach of calling a
predefined command script:
/opt/incontrol/ImportNetService.sh u joe p joepwd f southeast.csv
File Format
The format for import files is comma-separated values (CSV) and Microsoft Excel Workbook
(.xls or .xlsx).. These files are easily created or modified using any standard text editor. For
greater ease of use, most spreadsheet applications like Microsoft Excel or OpenOffice Calc
support saving as a CSV format.
Template files for each CLI are available in the templates directory underneath the CLI
directory (typically <product home>/etc/cli).
Note when creating import files, any lines that begin with the pound (#) character are ignored
by the InControl CLIs.
File Form at
Im port
Modify
Delete
Address Pool
Aggregate Block
Child Block
Container
Device
Device Interface
Device RR
DHCP Server
DNS
Domain
Domain RR
Galaxy Domain
Net Element
Net Service
Prefix Pool
RR Pending Approval
X
X
X
X
X
X
X
X
Root Block
Zone
Zone RR
Next Available IP
X
(see ImportZone)
X
X
Join Block
Split Block
Detach Block
Task
Im port
GlobalNetElementSync
GlobalNetServiceSync
ImportElementSnapshot
ImportServiceSnapshot
GlobalRollup
DiscoverNetElement
DhcpConfigurationTask
DhcpUtilization
GetTask
GetTaskStatus
DeleteTask
Export
Modify
Delete
Export
Im portAddrpool
Imports
ImportAddrpool
Overview
The ImportAddrpool CLI allows the user to bulk import address pools into IPControl.
Usage
Direct
$INCHOME/jre/bin/java cp $CLASSPATH
com.diamondip.netcontrol.cli.ImportAddrpoolCLI u <userId> -p <pswd>
-f <import filename> [-r <rejects file>] [-e <error messages>] [-?]
Parameters
Param eter
Required
Description
-u <userId>
Yes
User Id
-p <pswd>
Yes
Password
-?
No
Print help
-f <import filename>
Yes
The name of the file to import. See below for the required file
format.
-r <rejects file>
No
-e <error messages>
No
The name of the file that error messages will be reported in.
Usage Example
This example imports address pools from the newaddrpools.csv file, places into the
newaddrpools.reject file any records that could not be imported, and reports errors to the
importerrors.txt file.
$INCHOME/etc/cli/ImportAddrpool.sh u joe p joepwd f newaddrpools.csv
r newaddrpools.reject e importerrors.txt
File Format
Col
Field
Accepted Values
Required
Start Address
Yes
Im portAddrpool
Col
Field
Accepted Values
Required
End Address
Yes, for
IPv4 pool.
Yes
Name
No
Share Name
No
Container
No, unless
Start
address is
not
unique.
Yes, when
a DHCP
server is
not
defined
for the
subnet.
No
No
No
No
allowA|allowB
L
No
denyA|denyB
Im portAddrpool
Col
Field
Accepted Values
Required
PrefixLength
Yes, for
IPv6 pool.
Im portAggregateBlock
ImportAggregateBlock
Overview
The ImportAggregateBlock CLI allows the user to insert an intermediate level Aggregate
block between existing blocks in the block hierarchy. By specifying a parent block, target
block and a container, IPControl will validate and insert the desired aggregate block. It will
also adjust the parent block assignments of any would-be child blocks.
Usage
Direct
$INCHOME/jre/bin/java cp $CLASSPATH
com.diamondip.netcontrol.cli.ImportAggregateBlockCLI u <userId> -p <pswd>
-f <import filename> [-r <rejects file>] [-e <error messages>] [-?]
Parameters
Param eter
Required
Description
-u <userId>
Yes
User Id
-p <pswd>
Yes
Password
-?
No
Print help
-f <import filename>
Yes
The name of the file to import. See below for the required file format.
-r <rejects file>
No
The name of the file that rejected (non-imported) records will be placed
in.
-e <error messages>
No
The name of the file that error messages will be reported in.
Usage Example
This example imports aggregate blocks from the newaggblocks.csv file, places into the
newaggblocks.reject file any records that could not be imported, and reports errors to the
importerrors.txt file.
$INCHOME/etc/cli/ImportAggregateBlock.sh u joe p joepwd f newaggblocks.csv
r newaggblocks.reject e importerrors.txt
File Format
Col
Field
Container
Accepted Values
Required
Yes
Im portAggregateBlock
Col
Field
Accepted Values
Required
Start Address
Yes
Block Size
Yes
Block Type
No
Block Name
No
Description
No
SWIP Name
Yes, if
required by
container
rules
Allocation Reason
No
Allocation Reason
Description
No
Interface Name
Yes, if block is
being added
to device
container.
Otherwise,
no.
Interface Offset or
Address
No
Create Reverse
Domains
No
Domain Type
No
Yes, for
UDFs defined
as required
fields.
Parent Container
Yes
Yes
Yes
Im portChildBlock
ImportChildBlock
Overview
The ImportChildBlock CLI allows the user to bulk import child blocks into IPControl. It
also allows modification of existing records when using the overwrite option (-o) and the
expanded format, described later in this section. It can also be used to attach an existing block
to another container, by specifying an existing Address Block.
Usage
Direct
$INCHOME/jre/bin/java cp $CLASSPATH
com.diamondip.netcontrol.cli.ImportChildBlockCLI u <userId> -p <pswd>
-f <import filename> [-r <rejects file>] [-e <error messages>] [-o] [-v] [-?]
Parameters
Param eter
Required
Description
-u <userId>
Yes
User Id
-p <pswd>
Yes
Password
-?
No
Print help
-f <import filename>
Yes
The name of the file to import. See below for the required file
format.
-r <rejects file>
No
-e <error messages>
No
The name of the file that error messages will be reported in.
-o
No
-v
No
Usage Example
This example imports child blocks from the newchildblocks.csv file, places into the
newchildblocks.reject file any records that could not be imported, and reports errors to the
importerrors.txt file.
$INCHOME/etc/cli/ImportChildBlock.sh u joe p joepwd f newchildblocks.csv
r newchildblocks.reject e importerrors.txt
Im portChildBlock
Import with overwite using expanded format and the !BLANK! keyword
Im portChildBlock
File Format
Col
Field
Accepted Values
Required
Container
Yes
Yes | No
Block type
No
Block Name
No
Address Block
No
Description
No
Current Status
Yes
SWIP Name
Yes, if
required by
Container
rules
Allocation
Reason
No
Allocation
Reason
Description
No
Allocation
Template
No
Interface Name
Yes, if block
is being
added to
device
container.
Otherwise,
no.
Im portChildBlock
Col
Field
Accepted Values
Required
Interface Offset
or Address
No. An
offset of 1 is
assumed if
none is
specified.
Create Reverse
Domains
No
Domain Type
No
User Defined
Fields
Yes, for
UDFs
defined as
required
fields.
Exclude From
Discovery
No
DHCP Option
Set
No
No
DNS Servers
No
Im portChildBlock
Col
Field
Accepted Values
Required
Default Gateway
No
Primary DHCP
Server
No
Failover DHCP
Server
No
DNS Forward
Domains
No
hr.ins.com.|dmz.com./External
In this example, hr.ins.com uses the default domain
type, and dmz.com is of type External.
Y
DNS Reverse
Domains
No
Primary WINS
Server
No
AA
Allocation
Strategy
No
Primary Subnet
No
Im portContainer
ImportContainer
Overview
The ImportContainer CLI allows the user to bulk import containers into IPControl.
Usage
Direct
$INCHOME/jre/bin/java cp $CLASSPATH
com.diamondip.netcontrol.cli.ImportContainerCLI u <userId> -p <pswd>
-f <import filename> [-r <rejects file>] [-e <error messages>] [-?]
Parameters
Param eter
Required
Description
-u <userId>
Yes
User Id
-p <pswd>
Yes
Password
-?
No
Print help
-f <import filename>
Yes
The name of the file to import. See below for the required file
format.
-r <rejects file>
No
-e <error messages>
No
The name of the file that error messages will be reported in.
Usage Example
This example imports containers from the newcontainers.csv file, places into the newcontainers.reject
file any records that could not be imported, and reports errors to the importerrors.txt file.
$INCHOME/etc/cli/ImportContainer.sh u joe p joepwd f newcontainers.csv
r newcontainers.reject e importerrors.txt
File Format
Col
Field
Accepted Values
Required
Container Name
Yes
Container
Description
No
Im portContainer
Col
Field
Accepted Values
Required
Parent Container
Yes
Container Type
Yes
Rule1
No
blocktype1|templateone/blocktype2/block
type3|templatetwo
In this example, blocktype2 does not use an
information template.
F
Rule2
No
Rule3
No
Rule4
No
Rule5
No
devicetype1|templateone/devicetype2/
devicetype3|templatetwo
In this example, devicetype2 does not use an
information template.
To specify that all device types should be allowed,
use ALL. To specify that no device types should be
allowed, use NONE.
ALL is the default.
J
Information
Template
No
Im portContainer
Col
Field
Accepted Values
Required
Yes, for
UDFs
defined as
required
fields
fieldOne=valueOne|fieldTwo=valueTwo
If the UDF type is Checkbox, the valid values are
on or off.
If the UDF type is Textarea, use \n to separate
lines.
L
Maintain History
Records
No
Im portDevice
ImportDevice
Overview
The ImportDevice CLI imports devices into IPControl. This is used to bulk load
information about existing network devices. It also allows modification of existing records
when using the overwrite option (-o) and the expanded format, described later in this section.
Usage
Direct
$INCHOME/jre/bin/java cp $CLASSPATH
com.diamondip.ipcontrol.cli.ImportDevice u <userId> -p <pswd>
-f <import_file> [-e <error messages>] [-r <rejects file>] [-o] [-v] [-?]
Parameters
Param eter
Required
Description
-u <userId>
Yes
User Id
-p <pswd>
Yes
Password
-?
No
Print help
-f <import filename>
Yes
The name of the file to import. See below for the required file
format.
-r <rejects file>
No
-e <error messages>
No
The name of the file that error messages will be reported in.
-o
No
-v
No
Usage Example
This example imports all of the devices in the file devices.csv and reports errors to the
importerrors.txt file.
$INCHOME/etc/cli/ImportDevice.sh u joe p joepwd f devices.csv e importerrors.txt
r importrejects.txt
Im portDevice
Import with overwite using expanded format and the !BLANK! keyword
Im portDevice
File Format
Col
Field
Accepted Values
Required
IP Address
Yes
Address Type
Host Name
Device Type
Hardware Type
MAC Address
Yes
Yes
Yes, if
Hostname
specifies use
of naming
policy
No
Yes, if
Hardware
Type is
specified or
if address
type is
Manual
DHCP
Im portDevice
Col
Field
Accepted Values
Required
Resource Record
Flag
No
Domain Name
Container
Yes, if
overlapping
space is in
use and the
block name
is
ambiguous.
Domain Type
No
Description
No
Yes, for
UDFs
defined as
required
fields.
Yes, if
Resource
Record Flag
is true
and the
block policy
has no
forward
domains.
Aliases
No
Im portDevice
Col
Field
Accepted Values
Required
Ignore Warning
No
Interface Names
Yes, if
multiple IP
Addresses
are entered
in Column
A.
Exclude from
Discovery Flags
Yes, if
multiple IP
Addresses
are entered
in Column
A.
Virtual flag
DUID
No
Yes, for
Address
Type
Manual
NA
DHCPV6.
Im portDomain
ImportDomain
Overview
Parameters
Param eter
Required
Description
-u <userId>
Yes
User Id
-p <pswd>
Yes
Password
-?
No
Print help
-f <import filename>
Yes
The name of the file to import. See below for the required file
format.
-r <rejects file>
No
-e <error messages>
No
The name of the file that error messages will be reported in.
-v <verbose>
No
Usage Example
This example imports all of the domains in the file domains.csv and reports errors to the
importerrors.txt file.
$INCHOME/etc/cli/ImportDomain.sh u joe p joepwd f domains.csv e importerrors.txt
r importrejects.txt
File Format
Col
Field
Accepted Values
Required
Domain Name
Yes
Domain Type
No
Managed
No
Im portDomain
Col
Field
Accepted Values
Required
Delegated
No
Reverse
No
Derivative
No
Template Domain
Yes, if
Derivative is
ALIAS
Serial Number
No
Refresh
No
Retry
No
Expire
No
Negative Cache
TTL
No
Default TTL
No
Contact
O
P
No
Information
Template
No
Yes, for
UDFs
defined as
required
fields.
Im portDeviceResourceRecord
ImportDeviceResourceRecord
Overview
The ImportDeviceResourceRecord CLI allows the user to bulk import DNS resource
records for a device into IPControl.
Usage
Direct
$INCHOME/jre/bin/java cp $CLASSPATH
com.diamondip.ipcontrol.cli.ImportDeviceResourceRecordCLI u <userId> -p <pswd>
-f <import filename> [-r <rejects file>] [-e <error messages>] [-?]
Parameters
Param eter
Required
Description
-u <userId>
Yes
User Id
-p <pswd>
Yes
Password
-?
No
Print help
-f <import filename>
Yes
The name of the file to import. See below for the required file
format.
-r <rejects file>
No
-e <error messages>
No
The name of the file that error messages will be reported in.
Usage Example
This example imports resource records from the newresourcerecs.csv file, places into the
newresourcerecs.reject file any records that could not be imported, and reports errors to the
importerrors.txt file.
$INCHOME/etc/cli/ImportDeviceResourceRecord.sh u joe p joepwd
f newresourcerecs.csv r newresroucerecs.reject e importerrors.txt
File Format
Col
Field
Accepted Values
Required
Domain
Yes
Domain Type
No
Owner
Yes
Im portDeviceResourceRecord
Col
Field
Accepted Values
Required
Host Name
Yes, unless
IP Address
is specified.
IP Address
Yes, unless
Host Name
is specified.
Container
Yes, if IP
Address in
overlapping
space.
TTL
No
Class
No
Resource
Record Type
Yes
Data
The text for the DATA area of the resource record. Note
that this section is specific to the type of resource record.
Refer to the appropriate RFC for exact text that should be
entered.
Yes
Comment
No
Im portDhcpServer
ImportDhcpServer
Overview
Parameters
Param eter
Required
Description
-u <userId>
Yes
User Id
-p <pswd>
Yes
Password
-?
No
Print help
-f <import filename>
Yes
The name of the file to import. See below for the required file
format.
-r <rejects file>
No
-e <error messages>
No
The name of the file that error messages will be reported in.
File Format
Col
Field
Accepted Values
Required
Name
Yes
IP Address
Yes
Product
Yes
Agent
Yes
Default Threshold
No
Global Sync
No
Configuration Path
No
Im portDhcpServer
Col
Field
Accepted Values
Required
Lease Path
No
Start Script
No
Stop Script
No
Collection Type
SCP or FTP
No
Collection Port
No
Collection User
No
Collection
Password
No
Collect Backup
Subnets
No
CLI Command
No
CLI User
No
CLI Password
No
CLI Arguments
No
DDNS
No
No
No
DHCP Client
Classes
No
DHCP Failover IP
Address
No
DHCP Failover
Port
No
Configuration File
Pre-Extension
No
AA
Configuration File
Post-Extension
AB
V4V6Both
Yes
Im portDNS
ImportDNS
Overview
The ImportDNS CLI allows the user to import the contents of a DNS zone file, or the zone
files referenced by master zones declared in an ISC BIND 8.x and newer named.conf file.
Usage
Direct
$INCHOME/jre/bin/java cp $CLASSPATH
com.diamondip.ipcontrol.cli.dnsimport.DNSImport f <import filename> -s <server>
[-v <view>] [-z <zone>] [-l] [-t <domainType>] [-m <view/zone=domainType, >]
[-n] [-2 None|ZoneOnly|ZoneAndRR] [-c container]
Parameters
Param eter
Required
Description
-f <import filename>
Yes
-s <server>
Yes
-v <view>
No
-z <zone>
No
-l
No
-t
No
Im portDNS
Param eter
Required
Description
-m
No
Note: Quotes are not necessary unless there are spaces in the
DomainType names. They are used here for completeness.
-n
No
-2
No
-c
No
-h, -?
No
Print help.
Description
The ImportDNS CLI imports DNS resource records contained in zone data files into
IPControl. It does this by sequentially reading each resource record contained in a specified
zone file, processing each one according to a set of rules described below, and then inserting
some portion of the resulting data into IPControl.
Resource records read from zone files are initially processed using the same rules described in
RFC 1035. This means that after initial processing the resource record will contain all the
required fields: Name, Type, Class, TTL, and Rdata. This processing can include filling in any
missing TTL values or Name fields, correctly using the Origin when an @ character is
Com mand Line Interfaces (CLI) 31
Im portDNS
encountered in a name field, and appending the Origin when appropriate as described by RFC
1035. The resulting resource record is then processed using rules specific to each resource
records Type field. The type-specific rules are described in Table 2:
Table 2 Type-specific Rules
Type
Description
SOA
Data from the SOA record is used to create or update a domain in IPControl. The
domain name is taken from the name field of the resource record. If the domain does
not exist in IPControl it will be created. When a domain is created by the ImportDNS
CLI its parent domain will be created and linked to its child, or sub-domain. This
process continues until an existing parent is found, or a top level domain is created.
Top level domains created in this way have no parent associated with them. After the
domain and its parents have been created, or if it already exists in IPControl, the data
from the imported record will be used to update the domain. This includes the serial
number, refresh, retry, expire, negative caching TTL, default TTL, and contact fields.
In addition, the managed and delegated properties will be set for the domain. Note: If
parent domains are created as a result of the record being imported, the delegated
property will be set, while the managed property will not be set. If the domain name
ends with .in-addr.arpa. the reverse property will be set.
Data from each A record is used to create resource record entries attached to domains
in IPControl and additionally can create individual IP addresses and devices. When
importing an A record the ImportDNS CLI will use the left-most label of the domain
supplied in the name field as the host portion of the FQDN for the host. If the
resulting domain (everything to the right of the left-most label) does not exist in
IPControl, then it will be created along with any necessary parent domains. The newly
created domain will have its managed property set, while its delegated property will not
be set. If parent domains were also created, their delegated property will be set and
their managed property will not be set. If the address found in the rdata field of the
resource record can be located within an existing address block defined in IPControl,
an IP address will be created using the rdata field, and a device will be created using the
name field. The device and IP address will also be associated with the resource record
in addition to the domain.
PTR
Data from each PTR record is used in the same way as data from A records with the
exception that the name and rdata field are swapped when creating an IP address and
device.
NS
MX
MX records are imported into IPControl and attached to the domain supplied in the
name field.
Im portDNS
Type
Description
SRV
The data from SRV records are processed in the same way as other resource records
with the exception of the name field. The name field of SRV records specifies a service
available for the domain for which it is a part of. The service type and protocol is
encoded in the left portion of its name field. To avoid collision with the rest of the
domain name space, leading underbars are prepended to the labels that describe the
service. This practice is not always followed in the field and so the ImportDNS CLI
uses the following rule to determine where the domain name part of the name field
starts. It considers all the labels to the right of the right-most label that starts with an
underscore to be part of the domain name of the SRV record.
For example in the following SRV record:
_ldap._tcp.pdc._msdcs.sw.ins.com. 600 SRV 0 100 400 pdc.sw.ins.com.
The service specification part would be: _ldap._tcp.pdc._msdcs
and the domain name part would be: sw.ins.com.
All others
The domain name that the resource record will be placed in is taken from the name
field of the resource record after the left label has been removed. If the domain cannot
be found in IPControl it will be created, along with any necessary parent domains.
Parent domains will have the delegated property set and the managed property not set.
A resource record object is created using the data supplied by the imported record, and
it is linked to the domain.
Examples
The usage examples below use these example zone data or configuration files:
Example zone data file db.example:
$TTL 3600
@ IN SOA thomas.example.com. hostmaster.thomas.example.com. (
1
; Serial number
10800 ; Refresh
3600
; Retry
604800 ; Expire
86400 )
; Minimum TTL
IN NS
thomas.example.com.
localhost
IN A 127.0.0.1
dhcp
IN A 192.168.0.1
thomas
IN A 192.168.0.2
msdc
IN A 192.168.0.3
www
IN A 192.168.0.4
ftp
IN A 192.168.0.5
mail
IN A 192.168.0.6
_ftp._tcp
_http._tcp
IN SRV
0 100 400 ftp.example.com.
IN SRV 0 100 434.www.example.com.
dns
w3
web
incoming
smtp
pop
IN
IN
IN
IN
IN
IN
CNAME
CNAME
CNAME
CNAME
CNAME
CNAME
thomas.example.com
www.example.com.
www.example.com.
ftp.example.com.
mail.example.com.
mail.example.com.
Im portDNS
2.0.168.192.in-addr.arpa. IN NS thomas.example.com.
1.0.168.192.in-addr.arpa.
2.0.168.192.in-addr.arpa.
3.0.168.192.in-addr.arpa.
4.0.168.192.in-addr.arpa.
5.0.168.192.in-addr.arpa.
6.0.168.192.in-addr.arpa.
PTR
PTR
PTR
PTR
PTR
PTR
dhcp.example.com.
thomas.example.com.
msdc.example.com.
www.example.com.
ftp.example.com.
mail.example.com.
directory /var/lib/named;
notify no;
};
zone example.com. {
type master;
file db.example;
};
zone 0.168.192.in-addr.arpa. {
type master;
file db.0.168.192;
};
Usage Example 1
This example creates master zones linked to the server dns1.sw.ins.com using the zone
data contained within the zone files that are referenced by the master zone declarations within
the named.conf file, specifically the files db.example and db.0.168.192. The following domains are
created: com., example.com., and 0.168.192.in-addr.arpa. The domain
example.com. has 14 resource records associated with it, all the ones declared in the
db.example file except the SOA record, and the NS record. The data from the SOA record
updates the domain example.com with the values from its rdata field. The domain
example.com. is marked as delegated and managed. The domain 0.168.192.inaddr.arpa. has associated with it the resource records from the db.0.168.192 file except the
SOA and NS records. Its properties are also updated with the information from the SOA
record for the zone, and are marked as delegated and managed. It is also marked as reverse.
$INCHOME/etc/cli/ImportDNS.cmd -f /etc/named.conf -s dns1.sw.ins.com
Usage Example 2
This example imports the resource records declared in the zone file db.192.168.0. The domain
0.168.192.in-addr.arpa is created if it does not already exist. The domain has its
delegated, managed, and reverse properties set. The zone 0.168.192.in-addr.arpa is
created and associated with the server dns1.sw.ins.com.
Im portDNS
Usage Example 3
This example imports the resource records declared in the zone file db.hr.ins.com. The domain
hr.ins.com is created if it does not already exist. The domain has its delegated, managed,
and reverse properties set. The domain is assigned to the internal DomainType. The zone
hr.ins.com is created and associated with the server dns1.sw.ins.com.
$INCHOME/etc/cli/ImportDNS.cmd -f db.hr.ins.com -s dns1.sw.ins.com
-z hr.ins.com t internal
Usage Example 4
This example creates master zones linked to the server dns1.sw.ins.com using the zone
data contained within the zone files that are referenced by the master zone declarations within
the named.conf file, specifically the files db.example and db.0.168.192. The following domains are
created, if they did not already exist: com., example.com., in-addr.arpa. , and
0.168.192.in-addr.arpa. The domain example.com. has 14 resource records
associated with it, all the ones declared in the db.example file except the SOA record, and the
NS record. The data from the SOA record update the domain example.com with the values
from its rdata field. The domain example.com. is marked as delegated and managed. The
domains com. and example.com are assigned to the external DomainType. The domains
in-addr.arpa and 0.168.192.in-addr.arpa. are assigned to the Default
DomainType. The domain 0.168.192.in-addr.arpa. has associated with it the
resource records from the db.0.168.192 file except the SOA and NS records. Its properties are
also updated with the information from the SOA record for the zone, and are marked as
delegated and managed. It is also marked as reverse.
$INCHOME/etc/cli/ImportDNS.cmd -f /etc/named.conf -s dns1.sw.ins.com
m example.com=external
Usage Example 5
This example creates master zones linked to the server dns1.sw.ins.com using the zone
data contained within the zone files that are referenced by the master zone declarations within
the named.conf file, specifically the files db.example and db.0.168.192. The following domains are
created: com., example.com., and 0.168.192.in-addr.arpa. The domain
example.com. has 14 resource records associated with it, all the ones declared in the
db.example file except the SOA record, and the NS record. The data from the SOA record
updates the domain example.com with the values from its rdata field. The domain
example.com. is marked as delegated and managed. The domain 0.168.192.inaddr.arpa. is associated with it the resource records from the db.0.168.192 file except the
SOA and NS records. Its properties are also updated with the information from the SOA
record for the zone, and are marked as delegated and managed. It is also marked as reverse.
$INCHOME/etc/cli/ImportDNS.cmd -f /etc/named.conf -s dns1.sw.ins.com -2 ZoneOnly
In addition, a zone definition is created for the Slave zone foo.com. Its masters substatement is set to 192.168.0.1; 192.168.0.2. If necessary the domain foo.com is
also created with the SOA information found in the file bak.foo.com. The domain is marked as
delegated and managed. No resource records are imported for foo.com.
Com mand Line Interfaces (CLI) 35
Im portDNS
Usage Example 6
This example creates master zones linked to the server dns1.sw.ins.com using the zone
data contained within the zone files that are referenced by the master zone declarations within
the named.conf file, specifically the files db.example and db.0.168.192. The following domains are
created: com., example.com., and 0.168.192.in-addr.arpa. The domain
example.com. has 14 resource records associated with it, all the ones declared in the
db.example file except the SOA record, and the NS record. The data from the SOA record
updates the domain example.com with the values from its rdata field. The domain
example.com. is marked as delegated and managed. The domain 0.168.192.inaddr.arpa. has associated with it the resource records from the db.0.168.192 file except the
SOA and NS records. Its properties are also updated with the information from the SOA
record for the zone, and are marked as delegated and managed. It is also marked as reverse.
$INCHOME/etc/cli/ImportDNS.cmd -f /etc/named.conf -s dns1.sw.ins.com -2 ZoneAndRR
In addition, a zone definition is created for the Slave zone foo.com. Its masters substatement is set to 192.168.0.1; 192.168.0.2. If it did not already exist, the domain
foo.com is also created with the SOA information found in the file bak.foo.com. The
domain is marked as delegated and managed. The domain has associated with it the resource
records from the bak.foo.com file except the SOA and NS records.
Return codes
Im portDomainResourceRecord
ImportDomainResourceRecord
Overview
The ImportDomainResourceRecord CLI allows the user to bulk import DNS resource
records for a domain into IPControl. This CLI allows the administrator to enter resource
records that are not bound to a particular device.
Note: For Glue records that link one zone to another, use the
ImportZoneResourceRecord CLI.
Usage
Direct
$INCHOME/jre/bin/java cp $CLASSPATH
com.diamondip.ipcontrol.cli.ImportDomainResourceRecordCLI u <userId> -p <pswd>
-f <import filename> [-r <rejects file>] [-e <error messages>] [-?]
Parameters
Param eter
Required Description
-u <userId>
Yes
User Id
-p <pswd>
Yes
Password
-?
No
Print help
-f <import filename>
Yes
The name of the file to import. See below for the required file format.
-r <rejects file>
No
The name of the file that rejected (non-imported) records will be placed
in.
-e <error messages>
No
The name of the file that error messages will be reported in.
Usage Example
This example imports resource records from the newresourcerecs.csv file, places into the
newresourcerecs.reject file any records that could not be imported, and reports errors to the
importerrors.txt file.
$INCHOME/etc/cli/ImportDomainResourceRecord.sh u joe p joepwd f newresourcerecs.csv
r newresroucerecs.reject e importerrors.txt
Im portDomainResourceRecord
File Format
Col
Field
Accepted Values
Required
Domain
Yes
Domain Type
No
Owner
Yes
TTL
Class
No
Resource Record
Type
Yes
Data
Yes
Comment
No
No
Im portElementSnapshot
ImportElementSnapshot
Overview
The ImportElementSnapshot CLI allows the user to import interfaces and blocks
discovered by either a Discover Router Subnets or Global Synchronization of Network
Elements task. Typically, such tasks are used to query the current state of the network and
perform difference analysis to compare actual deployment with the topology modeled in
IPControl. However, during the initial setup of the system the queried information from
these tasks can be used to populate the original IPControl model. This CLI then, is used to
perform this initial population of discovered blocks and interfaces.
Usage
Direct
$INCHOME/jre/bin/java cp $CLASSPATH
com.diamondip.netcontrol.cli.ImportElementSnapshot u <userId> -p <pswd>
-t <taskId> [-o <output file>] [-v] [-?]
Parameters
Param eter
Required
Description
-u <userId>
Yes
User Id
-p <pswd>
Yes
Password
-?
No
Print help
-t <taskId>
Yes
-o <output file>
No
The name of the file to write all output. If not specified output will be sent
to STDOUT.
-v
No
Usage Example
This example imports blocks and interfaces discovered by task 12345, and places into the
elementsnapshot.out file any output messages.
$INCHOME/etc/cli/ImportElementSnapshot.sh u joe p joepwd t 12345 -o elementsnapshot.out
Im portGalaxyDomain
ImportGalaxyDomain
Overview
The ImportGalaxyDomain CLI allows the user to bulk import Galaxy Domains into
IPControl.
Usage
Direct
$INCHOME/jre/bin/java cp $CLASSPATH
com.diamondip.ipcontrol.cli.ImportGalaxyDomainCLI u <userId> -p <pswd>
-f <import filename> [-r <rejects file>] [-e <error messages>] [-v] [-?]
Parameters
Param eter
Required
Description
-u <userId>
Yes
User Id
-p <pswd>
Yes
Password
-?
No
Print help
-f <import filename>
Yes
The name of the file to import. See below for the required file format.
-r <rejects file>
No
-e <error messages>
No
The name of the file that error messages will be reported in.
-v
No
Usage Example
This example import galaxy domains from the newgdomains.csv file, places into the
newgdomains.reject file any records that could not be imported, and reports errors to the
importerrors.txt file.
$INCHOME/etc/cli/ImportGalaxyDomain.sh u joe p joepwd f newgdomains.csv
-r newgdomains.reject e importerrors.txt
Im portGalaxyDomain
File Format
Col
Field
Accepted Values
Required
Galaxy Name
Yes
Domain Name
Yes
Domain Type
No
View
No
Im portNetElement
ImportNetElement
Overview
The ImportNetElement CLI allows the user to bulk import network elements into
IPControl.
Usage
Direct
$INCHOME/jre/bin/java cp $CLASSPATH
com.diamondip.netcontrol.cli.ImportNetElementCLI u <userId> -p <pswd>
-f <import filename> [-r <rejects file>] [-e <error messages>] [-?]
Parameters
Param eter
Required
Description
-u <userId>
Yes
User Id
-p <pswd>
Yes
Password
-?
No
Print help
-f <import filename>
Yes
The name of the file to import. See below for the required file format.
-r <rejects file>
No
-e <error messages>
No
The name of the file that error messages will be reported in.
Usage Example
This example imports Network Elements from the netelements.csv file, places into the
netelements.reject file any records that could not be imported, and reports errors to the
importerrors.txt file.
$INCHOME/etc/cli/ImportNetElement.sh u joe p joepwd f netelements.csv
r netelements.reject e importerrors.txt
File Format
Col
Field
Accepted Values
Required
Name
Yes
IP Address/FQDN
Yes
Im portNetElement
Col
Field
Accepted Values
Required
Vendor
Yes when
Model is
specified.
Model
Yes when
Vendor is
specified.
Type
Yes
Global Sync
Yes
Agent Name
Yes
Telnet user
No
Telnet password
No
Enable password
No
No
Interface List
No
V3 Username
No
V3 Authentication
Protocol
No
V3 Authentication
Password
No
V3 Privacy Protocol
No
V3 Privacy Password
No
V3 Context Name
No
V3 Engine ID
No
Im portNetElementInterface
ImportNetElementInterface
Overview
The ImportNetElementInterface CLI allows the user to bulk import network element
interfaces into IPControl.
Usage
Direct
$INCHOME/jre/bin/java cp $CLASSPATH
com.diamondip.ipcontrol.cli.ImportNetElementInterfaceCLI u <userId> -p <pswd>
-f <import filename> [-r <rejects file>] [-e <error messages>] [-v] [-?]
Parameters
Param eter
Required
Description
-u <userId>
Yes
User Id
-p <pswd>
Yes
Password
-?
No
Print help
-f <import filename>
Yes
The name of the file to import. See below for the required file format.
-r <rejects file>
No
-e <error messages>
No
The name of the file that error messages will be reported in.
-v
No
Usage Example
This example imports Network Elements interfaces from the netelementinterfaces.csv file, places
into the netelementinterfaces.reject file any records that could not be imported, and reports errors
to the importerrors.txt file.
$INCHOME/etc/cli/ImportNetElementInterface.sh u joe p joepwd
f netelementinterfaces.csv r netelementinterfaces.reject e importerrors.txt
File Format
Col
Field
Accepted Values
Required
Name
Yes
Interface Name
Yes
Status
No
Im portNetService
ImportNetService
Overview
The ImportNetService CLI allows the user to bulk import DHCP network services into
IPControl.
Note: This CLI has been deprecated as of IPControl 6.0. Use the ImportDhcpServer CLI
instead. ImportNetService support will be removed in a future release.
Usage
Direct
$INCHOME/jre/bin/java cp $CLASSPATH
com.diamondip.netcontrol.cli.ImportNetServiceCLI u <userId> -p <pswd>
-f <import filename> [-r <rejects file>] [-e <error messages>] [-?]
Parameter
Param eter
Required
Description
-u <userId>
Yes
User Id
-p <pswd>
Yes
Password
-?
No
Print help
-f <import filename>
Yes
The name of the file to import. See below for the required file
format.
-r <rejects file>
No
-e <error messages>
No
The name of the file that error messages will be reported in.
Usage Example
This example imports network services from the netservices.csv file, places into the netservices.reject
file any records that could not be imported, and reports errors to the importerrors.txt file.
$INCHOME/etc/cli/ImportNetService.sh u joe p joepwd f netservices.csv
r netservices.reject e importerrors.txt
File Format
Col
Field
Accepted Values
Required
Name
Yes
IP Address/FQDN
Yes
Im portNetService
Col
Field
Accepted Values
Required
Type
No
Product name
Yes
Agent name
Yes
Global Sync
No
Collection Method
No
No
No
Collection port
No
Container(s)
No longer used.
VendorInfo
No
Im portNetService
Col
Field
Accepted Values
Required
WarningThreshold
No
Im portNetServiceWithTemplate
ImportNetServiceWithTemplate
Overview
The ImportNetServiceWithTemplate CLI allows the user to bulk import DNS servers
into IPControl by applying a pre-defined Server Template.
Using the IPControl GUI, create a DNS Server Template. This is accomplished through the
System Network Services Policies & Options DNS Server Templates. Then use this
CLI to create new servers using that template.
Usage
Direct
$INCHOME/jre/bin/java cp $CLASSPATH
com.diamondip.netcontrol.cli.ImportNetServiceWithTemplateCLI u <userId> -p <pswd>
-f <import filename> [-r <rejects file>] [-e <error messages>] [-?]
Parameters
Param eter
Required
Description
-u <userId>
Yes
User Id
-p <pswd>
Yes
Password
-?
No
Print help
-f <import filename>
Yes
The name of the file to import. See below for the required file
format.
-r <rejects file>
No
-e <error messages>
No
The name of the file that error messages will be reported in.
Usage Example
This example imports network services with template from the netserviceswithtemp.csv file, places
into the netserviceswithtemp.reject file any records that could not be imported, and reports errors
to the importerrors.txt file.
$INCHOME/etc/cli/ImportNetServiceWithTemplate.sh u joe p joepwd
f netserviceswithtemp.csv r netserviceswithtemp.reject e importerrors.txt
File Format
Col
Field
Accepted Values
Required
Name
Yes
Col
Field
Accepted Values
Required
IP Address
Yes
Type
No
Template name
Yes
Agent name
Yes
Im portPrefixPool
ImportPrefixPool
Overview
The ImportPrefixPool CLI allows the user to bulk import prefix pools into IPControl.
Usage
Direct
$INCHOME/jre/bin/java cp $CLASSPATH
com.diamondip.netcontrol.cli.ImportPrefixPoolCLI u <userId> -p <pswd>
-f <import filename> [-r <rejects file>] [-e <error messages>] [-?]
Parameters
Param eter
Required
Description
-u <userId>
Yes
User Id
-p <pswd>
Yes
Password
-?
No
Print help
-f <import filename>
Yes
The name of the file to import. See below for the required file
format.
-r <rejects file>
No
-e <error messages>
No
The name of the file that error messages will be reported in.
Usage Example
This example imports prefix pools from the newprefixpools.csv file, places into the
newprefixpools.reject file any records that could not be imported, and reports errors to the
importerrors.txt file.
$INCHOME/etc/cli/ImportPrefixPool.sh u joe p joepwd f newprefixpools.csv
r newprefixpools.reject e importerrors.txt
File Format
Col
Field
Accepted Values
Required
Start Address
Yes
Length
Yes
Yes
Name
No
Im portPrefixPool
Col
Field
Accepted Values
Required
Container
No, unless
Start
address is
not
unique.
Delegated Prefix
Length
Yes
Longest Prefix
Length
No
Shortest Prefix
Length
No
No
No
No
No
No
Im portRootBlock
ImportRootBlock
Overview
The ImportRootBlock CLI allows the user to bulk import root blocks into IPControl.
Usage
Direct
$INCHOME/jre/bin/java cp $CLASSPATH
com.diamondip.netcontrol.cli.ImportRootBlockCLI u <userId> -p <pswd>
-f <import filename> [-r <rejects file>] [-e <error messages>] [-?]
Parameters
Param eter
Required
Description
-u <userId>
Yes
User Id
-p <pswd>
Yes
Password
-?
No
Print help
-f <import filename>
Yes
The name of the file to import. See below for the required file
format.
-r <rejects file>
No
-e <error messages>
No
The name of the file that error messages will be reported in.
Usage Example
This example imports Root Blocks from the newrootblocks.csv file, places into the
newrootblocks.reject file any records that could not be imported, and reports errors to the
importerrors.txt file.
$INCHOME/etc/cli/ImportRootBlock.sh u joe p joepwd f newrootblocks.csv
r newrootblocks.reject e importerrors.txt
File Format
Col
Field
Accepted Values
Required
Container
Yes
IP space
Yes
Im portRootBlock
Col
Field
Accepted Values
Required
Block size
Yes
Description
No
Block type
No
Block Name
No
No
Regional Internet
Registry
No
Organization Id
No
Allocation Reason
No
Allocation Reason
Description
No
SWIP/Net Name
Yes, if
required
by
Container
rules
Create Reverse
Domains
No
Domain Type
No
Yes, for
UDFs
defined as
required
fields.
Im portServiceSnapshot
ImportServiceSnapshot
Overview
The ImportServiceSnapshot CLI allows the user to import address pools discovered by
either a Collect DHCP Utilization or Global Synchronization of DHCP Servers task.
Typically, such tasks are used to query the current state of the network and perform difference
analysis to compare actual deployment with the topology modeled in IPControl. However,
during the initial setup of the system the queried information from these tasks can be used to
populate the original IPControl model. This CLI then, is used to perform this initial
population of discovered address pools.
Usage
Direct
$INCHOME/jre/bin/java cp $CLASSPATH
com.diamondip.netcontrol.cli.ImportServiceSnapshot u <userId> -p <pswd>
-t <taskId> [-?]
Parameters
Param eter
Required
Description
-u <userId>
Yes
User Id
-p <pswd>
Yes
Password
-?
No
Print help
-t <taskId>
Yes
Usage Example
This example imports address pools discovered by task 12345, places into the
servicesnapshot.reject file any records that could not be imported, and reports errors to the
importerrors.txt file.
$INCHOME/etc/cli/ImportServiceSnapshot.sh u joe p joepwd t 12345
Im portZone
ImportZone
Overview
The ImportZone CLI allows the user to bulk import DNS zones into IPControl, and to
update existing DNS zones.
Usage
Direct
$INCHOME/jre/bin/java cp $CLASSPATH
com.diamondip.ipcontrol.cli.ImportDnsZoneCLI u <userId> -p <pswd>
-f <import filename> [-r <rejects file>] [-e <error messages>] [-?]
Parameters
Param eter
Required
Description
-u <userId>
Yes
User Id
-p <pswd>
Yes
Password
-?
No
Print help
-f <import filename>
Yes
The name of the file to import. See below for the required file
format.
-r <rejects file>
No
-e <error messages>
No
The name of the file that error messages will be reported in.
Usage Example
This example imports zones from the newzones.csv file, places into the newzones.reject file any
records that could not be imported, and reports errors to the importerrors.txt file.
Note: Zone options are not supported in the first release of this service.
$INCHOME/etc/cli/ImportZone.sh u joe p joepwd f newzones.csv -r newzones.reject
e importerrors.txt
CNR Servers
Important! For CNR servers, either Update Policies (Column R) or Allow Update (Column
Q) MUST allow dynamic updates from localhost in order for IPControl to successfully manage
the zone without having to overwrite the zone every time the resource records change.
Im portZone
File Format
Col
Field
Accepted Values
Required
Server
Yes, if
GalaxyNa
me is not
supplied.
Zone type
Yes
Domain Name
Yes
Domain Type
No
Update Zone
No
View
No
Filename
No
Automatic Generation
of NS/GLUE Records
No
MNAME
No
No
Masters
Yes for
zone types
slave and
stub
No
No
Template Zone
No
Im portZone
Col
Field
Accepted Values
Required
Alias Zone
No
Galaxy Name
Future Use
No
Update Policy
Dynamic Zone
Yes, when
Dynamic
Zone is
true, one
of Allow
Update
ACL or
Update
Policy
must be
specified.
See Allow
Update
ACL
No
Im portZoneResourceRecord
ImportZoneResourceRecord
Overview
The ImportZoneResourceRecord CLI allows the user to bulk import DNS resource
records for a zone into IPControl.
Note: this interface should not be confused with the ImportDomainResourceRecord
CLI, which is used to add records to a domain. ImportZoneResourceRecord is only
effective when the Automatic Generation of NS/Glue Records is set to OFF on the target
zone.
Usage
Direct
$INCHOME/jre/bin/java cp $CLASSPATH
com.diamondip.ipcontrol.cli.ImportZoneResourceRecordCLI u <userId> -p <pswd>
-f <import filename> [-r <rejects file>] [-e <error messages>] [-?]
Parameters
Param eter
Required
Description
-u <userId>
Yes
User Id
-p <pswd>
Yes
Password
-?
No
Print help
-f <import filename>
Yes
The name of the file to import. See below for the required file format.
-r <rejects file>
No
-e <error messages>
No
The name of the file that error messages will be reported in.
Usage Example
This example imports resource records from the newresourcerecs.csv file, places into the
newresourcerecs.reject file any records that could not be imported, and reports errors to the
importerrors.txt file.
$INCHOME/etc/cli/ImportZoneResourceRecord.sh u joe p joepwd f newresourcerecs.csv
r newresroucerecs.reject e importerrors.txt
Im portZoneResourceRecord
File Format
Col
Field
Accepted Values
Required
Server
Yes
View
Yes
Zone
Yes
Owner
Yes
TTL
Class
No
Yes
Data
Yes
No
Im portZoneResourceRecord
Exports
Export CLIs allow you to retrieve and filter information from IPControl. Data may be
viewed on the screen, or output into a file suitable for modifying and importing.
Note that user access control lists (ACL) are enforced, which may affect export results. Users
are not allowed to perform exports on data without the appropriate Read rights in the system.
ExportChildBlock
ExportChildBlock
Overview
The ExportChildBlock CLI exports a list of all the Child Blocks into a specified file. This
file can be modified and then imported using the ImportChildBlock CLI.
Usage
Direct
$INCHOME/jre/bin/java cp $CLASSPATH
com.diamondip.ipcontrol.cli.ExportChildBlockCLI u <userId> -p <pswd>
[-n name] [-i ipaddress>] [-j <interface>] [-d <user defined field name=value>]
[-r <ipaddressrange>] [-s <status>] [-b <block>] [-c <container>] [-t <blocktype>]
[-f <export-file>] [-pb <parentBlock>] [-pc <parentContainer>] [-h] [-l] [-ex] [-v] [-?]
Parameters
Param eter
Required
Description
-u <userId>
Yes
User Id
-p <pswd>
Yes
Password
-?
No
Print help
-f <export filename>
No
The name of the file to export the data to. If no file name is specified,
results are outputted to the screen.
-b <block
address/size>
No
Filter. Specify the CIDR notation of a block. That is, specify the
starting IP address for the block, followed by the block size, separated
by a slash /. For example, 10.0.0.0/24. The wildcard character * can
be used in the start address only.
-c <container name>
No
No
-de [description]
No
ExportChildBlock
Param eter
Required Description
-ex
No
-h (--recurse)
No
-i <IP address>
No
Filter. Specify an IP address which falls within the start and end
address of a block.
-j <Interface>
No
-l (--includeFreeBlocks) No
Flag. By default, the list of exported child blocks will not include the
free blocks which are maintained by IPControl. Include this Boolean
option for the free blocks to be included in the export.
-n <block name>
No
No
-pc <parentContainer>
No
Filter. Specify the name of the specific blocks parent blocks container.
Only valid when accompanied by pb option. Specifying the container
can help to avoid ambiguity. A fully qualified container name may be
supplied.
No
No
-t <block type>
No
Filter. Specify the name of a specific block type or use the wildcard
character * to perform a partial match on the block type name.
Usage Example
This example exports all child blocks to the file rbexport.csv in the current directory.
$INCHOME/etc/cli/ExportChildBlock.sh u joe p joepwd f rbexport.csv
This example exports child blocks that begin with the name MyBlock and that are of block
type Private to the file rbexport.csv.
$INCHOME/etc/cli/ExportChildBlock.sh u joe p joepwd f rbexport.csv n MyBlock*
-t Private
This example exports all child blocks of the parent block named 172.16.0.0/23.
$INCHOME/etc/cli/ExportChildBlock.sh u joe p joepwd f rbexport.csv pb 172.16.0.0/23
This example exports all child blocks of the parent block named 172.16.0.0/23
recursively.
ExportChildBlock
This example exports all child blocks of the parent block named 172.16.0.0/23 contained
in container /InControl/Canada/North.
$INCHOME/etc/cli/ExportChildBlock.sh u joe p joepwd f rbexport.csv pb 172.16.0.0/23
pc /InControl/Canada/North
This example exports all child blocks in the container named CA, with the output in expanded
format.
$INCHOME/etc/cli/ExportChildBlock.sh u joe p joepwd f cexport.csv c CA ex
The first row is a header line, beginning with ^. The column headers beyond the
architected column AA contain the user defined field tags.
Column P contains Expanded when the row includes user defined fields beyond
column AA. Row 3 has no user defined fields defined for that block.
Only those user defined field tags defined for the blocks exported (based on container
and blockType) will have columns in the output file.
In this example, columns AB-AD contain the values for the user defined fields. If
there is no value, as in row 2 column AD, the cell will be blank.
You can use ImportChildBlock to import an expanded format exported file by using
the o (overwrite) parameter.
File Format
Field
Accepted Values
Required
Container
Yes
ExportChildBlock
Col
Field
Accepted Values
Required
Yes | No
Block type
No
Block Name
No
Address Block
No
Description
No
Current Status
Yes
SWIP Name
Yes, if
required by
Container
rules
Allocation Reason
No
Allocation Reason
Description
No
Allocation Template
No
Interface Name
Yes, if
block is
being added
to device
container.
Otherwise,
no.
Interface Offset or
Address
No. An
offset of 1
is assumed
if none is
specified.
Create Reverse
Domains
No
Domain Type
No
ExportChildBlock
Col
Field
Accepted Values
Required
Yes, for
UDFs
defined as
required
fields.
Exclude From
Discovery
No
No
No
DNS Servers
No
Default Gateway
No
No
No
No
hr.ins.com.|dmz.com./External
In this example, hr.ins.com uses the default
domain type, and dmz.com is of type External.
ExportChildBlock
Col
Field
Accepted Values
Required
No
AA
Allocation Strategy
AB
Primary Subnet
No
No
No
ExportContainer
ExportContainer
Overview
The ExportContainer CLI exports containers into a specified file. This file can be
modified and then imported using the ImportContainer CLI.
Usage
Direct
$INCHOME/jre/bin/java cp $CLASSPATH
com.diamondip.ipcontrol.cli.ExportContainerCLI u <userId> -p <pswd>
[-f <export filename>] [-n containerName] [-d udfName=value] [-fp] [-v] [-?]
Parameters
Param eter
Required
Description
-u <userId>
Yes
User Id
-p <pswd>
Yes
Password
-?
No
Print help
-f <export filename>
No
The name of the file to export the data to. If omitted, results are sent to
the screen.
-n [containerName]
No
Filter. Allows you to filter export based on the name of the container.
Use a * character (within single quotes, i.e., n ContainerName*)
for wildcarding. NOTE: if both n and d are specified, the export
includes containers that satisfy both criteria.
-d [udfName=value]
No
Filter. Allows you to filter export based the user defined field name and
value. Only containers that have this UDF set to this value will be
exported. For wildcarding, use a * character w ithin double quotes,
i.e., d udfName=value*. Also surround the parameter with single
quotes if there is an embedded blank in the filter string. NOTE: if both
n and d are specified, the export includes containers that satisfy both
criteria.
-fp
No
Populates the parent container field using the long format, for example:
IPControl/Texas/Dallas
-v
No
Usage Examples
This example exports all containers to the file named exportcontainer.csv file in the current
directory.
$INCHOME/etc/cli/ExportContainer.sh u joe p joepwd f exportcontainer.csv
This example exports all containers whose name starts with the characters West.
Com mand Line Interfaces (CLI) 67
ExportContainer
This example exports all containers that have a UDF named customer with the value
12345.
$INCHOME/etc/cli/ExportContainer.sh u joe p joepwd f exportcontainer.csv
d customer=12345
File Format
Field
Accepted Values
Col
Field
Accepted Values
Container Name
Container Description
Parent Container
Container Type
Rule1
Rule2
Rule3
A listing of the block types that can be used for space allocation
from the parent container, separated by /.
Rule4
A listing of the block types for which SWIP Names are required,
separated by /.
Rule5
Information Template
Maintain History
Records
ExportDevice
ExportDevice
Overview
The ExportDevice CLI exports a list of all the Devices into a specified file. This file can be
modified and then imported using the ImportDevice CLI.
Usage
Direct
$INCHOME/jre/bin/java cp $CLASSPATH
com.diamondip.ipcontrol.cli.ExportDeviceCLI u <userId> -p <pswd>
[-f <export filename>] [-i ipaddress] [-n deviceName] [-d udfName=value] [-m domainName]
[-r ipaddress1/ipaddress2] [-e devicetype] [-b blockName] [-c containerName]
[-t blocktype] [-ex] [-v] [-?]
Parameters
Param eter
Required
Description
-u <userId>
Yes
User Id
-p <pswd>
Yes
Password
-?
No
Print help
-f <export filename>
No
The name of the file to export the data to. If no file name is
specified, results are outputted to the screen.
-at [addressType]
No
-b [blockName]
No
-c [containerName]
No
-d [udfName=value]
No
Filter. Allows you to filter export based on the user defined name
and value of the device. For wildcarding, use a * character within
double quotes, i.e., d udfName=value*. Also surround the
parameter with double quotes if there is an embedded blank in the
filter string.
ExportDevice
Param eter
Required
Description
-de [description]
No
-e [devicetype]
No
Filter. Allows you to filter export based the user device type name.
-ex
No
-h
No
No
-i [ipaddress]
No
-m [domain]
No
-n [name]
No
-r [ipaddress1/ipaddress2]
No
-t [blocktype]
No
-v
No
-vf [true|false]
No
Usage Examples
This example exports all devices to file named exportdevice.csv in the current directory.
$INCHOME/etc/cli/ExportDevice.sh u joe p joepwd f exportdevice.csv
This example exports devices that contain an IP address within the range of 10.0.0.1
through 10.0.0.200 inclusive, to the file exportdevice.csv.
$INCHOME/etc/cli/ExportDevice.sh u joe p joepwd f exportdevice.csv
r 10.0.0.1/10.0.0.200
This example exports devices that are located in the container named Exton to the file
exportdevice.csv.
$INCHOME/etc/cli/ExportDevice.sh u joe p joepwd f exportdevice.csv c Exton
ExportDevice
This example exports devices in the container named Pennsylvania, with the
output in expanded format.
$INCHOME/etc/cli/ExportDevice.sh u joe p joepwd f cexportdevice.csv c Pennsylvania
ex
In this example, columns S-X contain the values for the user defined fields. If there is no
value, as in row 6 column U, the cell will be blank. In this example, when
deviceType=Router or Printer, columns S-V are used. When deviceType=PC, W and X
are used.
ExportDevice
File Format
Field
Accepted Values
Required
IP Address
Yes
Address Type
Yes
Hostname
Yes
Device Type
Yes
Hardware Type
No
Mac Address
No
No
Domain Name
No
Container Name
Yes
Domain Type
No
Description
No
No
Aliases
No
Duplicate warning
No
Interface Names
No
No
Virtual
No
DUID
No
ExportDeviceResourceRecord
ExportDeviceResourceRecord
Overview
Parameters
Param eter
Required
Description
-u <userId>
Yes
User Id
-p <pswd>
Yes
Password
-?
No
Print help
No
The name of the file to export the data to. If no file name is
specified, results are outputted to the screen.
No
No
Filter. Allows you to filter export based the user defined name
and value the device owns.
No
Filter. Allows you to filter export based the user device type
name.
No
No
No
-f <export filename>
-c <containerName>
-d <udfName=value>
-e <devicetype>
-i <ipaddress>
-m <domain>
-a <domaintype>
ExportDeviceResourceRecord
Param eter
Required
Description
-n <name>
No
-r <ipaddress1/ipaddress2>
No
-t <blocktype>
No
-b <blockName>
No
No
No
No
No
-h
-o <option>
-s <batch-size>
-v
Usage Examples
This example exports all device resource records (that appear on the devices Resource Record
tab within the user interface) for the device at 10.0.0.24, to a file named exportdevicerr.csv in
the current directory. The output is formatted for the ImportDeviceResourceRecord
CLI.
$INCHOME/etc/cli/ExportDeviceResourceRecord.sh u joe p joepwd i 10.0.0.24
f exportdevicerr.csv
This example exports all device resource records (that appear on the devices Resource Record
tab within the user interface) for the device with hostname switch00024 to a file named
exportdevicerr.csv in the current directory. The output is formatted for the
ModifyDeviceResourceRecord CLI.
$INCHOME/etc/cli/ExportDeviceResourceRecord.sh u joe p joepwd n switch00024
f exportdevicerr.csv o M
This example exports all device resource records (that appear on a devices Resource Record
tab within the user interface) for devices located in container Exton to a file named
exportdevicerr.csv in the current directory. The output is formatted for the
ModifyDeviceResourceRecord CLI.
$INCHOME/etc/cli/ExportDeviceResourceRecord.sh u joe p joepwd c Exton exportdevicerr.csv
o M
ExportNetElement
File Format
Field
Accepted Values
Domain
Domain Type
Owner
The OWNER section of the resource record. Note that this section
is specific to the type of resource record. Refer to the appropriate
RFC for exact text that should be entered.
Host Name
IP Address
Container
The name of the container that holds the device. This is required
only if there is overlapping address space in use and the ip address
is in overlapping space. The container is then used to uniquely
determine the device.
TTL
Class
Data
The text for the DATA area of the resource record. Note that this
section is specific to the type of resource record. Refer to the
appropriate RFC for exact text that should be entered.
Comment
The format for the export file when o M is specified will be of the format that the
ModifyDeviceResourceRecord CLI requires.
For example, suppose a device at 10.0.0.24 has 4 resource records (that appear on the devices
Resource Record tab within the user interface). The set of attribute-value pairs before the
colon identifies the record to be changed. The set following the colon specifies the values to
be changed. All of the values that can be modified are exported.
ipAddress=10.0.0.24,container=IPControl/Texas/Dallas,owner=switch00026,domain=mycompany.com
,domainType=Default,resourceRecType=A:owner=switch00026,resourceRecType=A,TTL=2400,data=10.
0.0.24,domain=mycompany.com,domainType=Default,comment=
ipAddress=10.0.0.24,container=IPControl/Texas/Dallas,owner=24.0.0,domain=10.in-addr.arpa,do
mainType=Default,resourceRecType=PTR:owner=24.0.0,resourceRecType=PTR,TTL=2400,data=switch0
0026.mycompany.com,domain=10.in-addr.arpa,domainType=Default,comment=
ipAddress=10.0.0.24,container=IPControl/Texas/Dallas,owner=switch00026,domain=mycompany.com
,domainType=External,resourceRecType=A:owner=switch00026,resourceRecType=A,TTL=2400,data=10
.0.0.24,domain=mycompany.com,domainType=External,comment=
ipAddress=10.0.0.24,container=IPControl/Texas/Dallas,owner=24.0.0,domain=10.in-addr.arpa,do
mainType=External,resourceRecType=PTR:owner=24.0.0,resourceRecType=PTR,TTL=2400,data=switch
00026.mycompany.com,domain=10.in-addr.arpa,domainType=External,comment=
ExportNetElement
ExportNetElement
Overview
The ExportNetElement CLI exports a list of all the Network Elements into a specified
file. This file can be modified and then imported using the ImportNetElement CLI.
Usage
Direct
$INCHOME/jre/bin/java cp $CLASSPATH
com.diamondip.netcontrol.cli.ExportNetElementCLI u <userId> -p <pswd>
[-f <export filename>] [-n <NetElement Name>] [-i <IP Address or host name>]
[-vendor <Network Element vendor>] [-model <Network Element model>] [-e <Element type>]
[-globalSync <Y|N>] [-agent <Agent Name>] [-c <Container Name>] [-s batch-size] [-?]
Parameters
Param eter
Required
Description
-u <userId>
Yes
User Id
-p <pswd>
Yes
Password
-?
No
Print help
-f <export filename>
No
The name of the file to export the data to. If no file name is
specified, results are outputted to the screen.
-n <NetElement Name>
No
Filter. Allows you to filter export based on specific fields. See file
format for accepted values. If the network element name contains
embedded spaces, surround the name with double-quotes, for
example, exton closet .
No
Filter. Allows you to filter export based on specific fields. See file
format for accepted values.
-vendor <Network
Element vendor>
No
Filter. Allows you to filter export based on specific fields. See file
format for accepted values. If the vendor name contains
embedded spaces, surround the name with double-quotes.
-model <Network
Element model>
No
Filter. Allows you to filter export based on specific fields. See file
format for accepted values. If the model name contains embedded
spaces, surround the name with double-quotes.
-e <Element type>
No
Filter. Allows you to filter export based on specific fields. See file
format for accepted values.
-globalSync <Y|N>
No
Filter. Allows you to filter export based on specific fields. See file
format for accepted values.
ExportNetElement
Param eter
Required
Description
No
Filter. Allows you to filter export based on specific fields. See file
format for accepted values. If the agent name contains embedded
spaces, surround the name with double-quotes.
-c <Container Name>
No
-o
No
-s
No
-v
No
Usage Example
This example exports all network elements to an neexport.csv file in the current directory.
$INCHOME/etc/cli/ExportNetElement.sh u joe p joepwd f neexport.csv
This example exports Cisco network elements that are not included in the GlobalSync
process to the file neexport.csv.
$INCHOME/etc/cli/ExportNetElement.sh u joe p joepwd f neexport.csv globalSync N
vendor Cisco Systems
File Format
Field
Accepted Values
Required
Name
Yes
IP Address/FQDN
Yes
Vendor
Yes
Model
Yes
Type
Yes
Global Sync
Yes
Agent Name
Yes
Telnet user
Telnet password
No
Enable password
No
No
Interfaces
No
No
ExportNetElement
Col
Field
Accepted Values
Required
V3 Username
No
V3 Authentication
Protocol
No
V3 Authentication
Password
No
V3 Privacy Protocol
No
V3 Privacy Password
No
V3 Context Name
No
V3 Engine ID
No
ExportNetService
ExportNetService
Overview
The ExportNetService CLI exports a list of all the DHCP Network Services into a
specified file. This file can be modified and then imported using the ImportNetService
CLI.
Usage
Direct
$INCHOME/jre/bin/java cp $CLASSPATH
com.diamondip.netcontrol.cli.ExportNetServiceCLI u <userId> -p <pswd>
[-f <export filename>] [-name <NetService Name>] [-address <IP Address or host name>]
[-type <NetService Type>] [-product <Product name>] [-agent <Agent name>]
[-globalsync <Y|N>] [-s batch-size] [-?]
Parameters
Param eter
Required
Description
-u <userId>
Yes
User Id
-p <pswd>
Yes
Password
-?
No
Print help
-f <export filename>
No
No
No
No
No
ExportNetService
-c <Container Name>
No
- globalsync <Y|N>
No
-o
No
-s
No
-type
No
-v
No
Usage Example
This example exports network services to an nsexport.csv file in the current directory.
$INCHOME/etc/cli/ExportNetService.sh u joe p joepwd f nsexport.csv
This example exports network services using the product INS DHCP to the standard output
(usually screen).
$INCHOME/etc/cli/ExportNetService.sh u joe p joepwd product INS DHCP
File Format
Field
Accepted Values
Required
Name
Yes
IP Address/FQDN
Yes
Type
No
Product name
Yes
Agent name
Yes
Global Sync
Yes
Collection Method
Yes
Yes
Yes
ExportNetService
Col
Field
Accepted Values
Required
Collection port
No
Container(s)
No longer used.
VendorInfo
No
WarningThreshold
No
Note: The CLI does not export columns H or I since these could contain sensitive
information. The columns are preserved to maintain conformity with the
ImportNetService CLI.
ExportPrefixPool
ExportPrefixPool
Overview
The ExportPrefixPool CLI exports a list of all the V6 Prefix Pools into a specified file.
This file can be modified and then imported using the ImportPrefixPool CLI.
Usage
Direct
$INCHOME/jre/bin/java cp $CLASSPATH
com.diamondip.ipcontrol.cli.ExportPrefixPoolCLI u <userId> -p <pswd>
[-f <export filename>] [-name <Prefix Pool Name>] [-ipaddress <IP Address>]
[-container <Container Name>] [-ipaddressrange <Contained IP Address Range
IPAddress/length>] [-netservice <DHCP Server Name>] [-?]
Parameters
Param eter
Required
Description
-u <userId>
Yes
User Id
-p <pswd>
Yes
Password
-?
No
Print help
-f <import filename>
No
No
No
No
No
No
ExportPrefixPool
Usage Example
This example exports network services to an prefixpoolexport.csv file in the current directory.
$INCHOME/etc/cli/ExportPrefixPool.sh u joe p joepwd f prefixpoolexport.csv
This example exports prefixpools using the netservice INS DHCP to the standard output
(usually screen).
$INCHOME/etc/cli/ExportNetService.sh u joe p joepwd netservice INS DHCP
File Format
Field
Accepted Values
Required
Start Address
Yes
Length
Yes
Yes
Name
Container
No, unless
Start
address is
not
unique.
Delegated Prefix
Length
Yes
Longest Prefix
Length
No
Shortest Prefix
Length
No
No
No
No
No
No
allowA|allowB
M
No
denyA|denyB
ExportResourceRecordPendingApproval
ExportResourceRecordPendingApproval
Overview
Parameters
Param eter
Required
Description
-u <userId>
Yes
User Id
-p <pswd>
Yes
Password
-?
No
Print help
No
The name of the file to export the data to. If not specified,
results are written to the screen.
No
No
No
-x <action>
No
-v
No
-f <export filename>
-m <domain>
-a <domaintype>
-q <requesting admin>
ExportResourceRecordPendingApproval
Usage Examples
This example exports all resource records that are in a pending approval state for
administrator joe to a file named exportpending.csv in the current directory.
$INCHOME/etc/cli/ExportResourceRecordPendingApproval.sh u joe p joepwd
f exportpending.csv
The following example exports all resource records that are in a pending state for
administrator joe , requested by jane:
$INCHOME/etc/cli/ExportResourceRecordPendingApproval.sh u joe p joepwd
f exportpending.csv q jane
This produces the first two records of the file contents shown in the previous example.
File Format
The format for the export file is described in the table following.
Each line starts with the workflow information:
workflow id
action requested.
The next two columns contain the domain name and type.
The remaining columns provide a full description of the resource record. For update requests,
old and new values are shown as old value -> new value.
Col
Field
Accepted Values
Workflow id
Date/Time
Administrator
Action
Domain
Domain Type
Owner
The OWNER section of the resource record. Note that this section
is specific to the type of resource record. Refer to the appropriate
RFC for exact text format.
TTL
Class
ExportResourceRecordPendingApproval
Data
The text for the DATA area of the resource record. Note that this
section is specific to the type of resource record. Refer to the
appropriate RFC for exact text format.
Comment
ExportResourceRecordPendingApprovalStatus
ExportResourceRecordPendingApprovalStatus
Overview
Parameters
Param eter
Required
Description
-u <userId>
Yes
User Id
-p <pswd>
Yes
Password
-?
No
Print help
No
The name of the file to export the data to. If no file name is
specified, results are written to the screen.
No
No
No
No
-f <export filename>
-m <domain>
-a <domaintype>
-x <action>
-v
Usage Example
This example exports all resource records that administrator joe submitted for approval to a
file named exportstatus.csv in the current directory.
$INCHOME/etc/cli/ExportResourceRecordPendingApprovalStatus.sh u joe p joepwd
f exportstatus.csv
ExportResourceRecordPendingApprovalStatus
File Format
The format for the export file is described in the table following.
Each line starts with the workflow information:
workflow id
action requested.
The next two columns contain the domain name and type.
The remaining columns provide a full description of the resource record. For update requests,
old and new values are shown as old value -> new value.
Col
Field
Accepted Values
Workflow id
Date/Time
Administrator
Action
Domain
Domain Type
Owner
The OWNER section of the resource record. Note that this section
is specific to the type of resource record. Refer to the appropriate
RFC for exact text format.
TTL
Class
Data
The text for the DATA area of the resource record. Note that this
section is specific to the type of resource record. Refer to the
appropriate RFC for exact text format.
Comment
ExportRootBlock
ExportRootBlock
Overview
The ExportRootBlock CLI exports a list of all the Root Blocks into a specified file. This
file can be modified and then imported using the ImportRootBlock CLI.
Usage
Direct
$INCHOME/jre/bin/java cp $CLASSPATH
com.diamondip.ipcontrol.cli.ExportRootBlockCLI u <userId> -p <pswd>
[-f <export filename>] [-n <block name>] [b <block address/size>] [t <block type>]
[c <container name>] [i <IP address>] [r <IP address range>]
[d <user defined field name=value>] [-?]
Required Description
-u <userId>
Yes
User Id
-p <pswd>
Yes
Password
-?
No
Print help
-f <export filename>
No
The name of the file to export the data to. If no file name is
specified, results are outputted to the screen.
-n <block name>
No
-b <block address/size>
No
Filter. Specify the CIDR notation of a block. That is, specify the
starting IP address for the block, followed by the block size,
separated by a slash /. For example, 10.0.0.0/24. The wildcard
character * can be used in the start address only.
-t <block type>
No
Filter. Specify the name of a specific block type or use the wildcard
character * to perform a partial match on the block type name.
-c <container name>
No
-i <IP address>
No
Filter. Specify an IP address which falls within the start and end
address of a block.
No
ExportRootBlock
Param eter
Required
Description
No
Usage Example
This example exports all root blocks to a rbexport.csv file in the current directory.
$INCHOME/etc/cli/ExportRootBlock.sh u joe p joepwd f rbexport.csv
This example exports root blocks that begin with the name MyBlock and that are of block
type Private to the file rbexport.csv.
$INCHOME/etc/cli/ExportRootBlock.sh u joe p joepwd f rbexport.csv n MyBlock*
-t Private
File Format
Field
Accepted Values
Required
Container
Yes
IP space
Yes
Block size
Yes
Description
No
Block type
No
Block Name
No
No
Regional Internet
Registry
No
Organization Id
No
Allocation Reason
No
ExportRootBlock
Col
Field
Accepted Values
Required
Allocation Reason
Description
No
SWIP/Net Name
Yes, if
required
by
Container
rules
Create Reverse
Domains
No
Domain Type
No
Yes, for
UDFs
defined as
required
fields.
DeleteAddrPool
Deletes
DeleteAddrPool
Overview
The DeleteAddrPool CLI allows the user to delete Address Pools in the system. This CLI
enables you to specify a file containing a list of address pools to delete.
Usage
Direct
$INCHOME/jre/bin/java cp $CLASSPATH
com.diamondip.ipcontrol.cli.DeleteAddrPoolCLI u <userId> -p <pswd>
-f <delete filename> [-d] [-r <rejects file>] [-e <error messages>] [-?]
Parameters
Param eter
Required
Description
-u <userId>
Yes
User Id
-p <pswd>
Yes
Password
-?
No
Print help
-d
No
-f <delete filename>
Yes
The name of the CSV file listing address pools to be deleted. See below for
the required file format.
-r <rejects file>
No
The name of the file that rejected (non-deleted) records will be placed in.
-e <error messages>
No
The name of the file that error messages will be reported in.
Usage Example
This example deletes the address pools listed in the file addrpools.txt.
$INCHOME/etc/cli/DeleteAddrPool.sh u joe p joepwd f addrpools.txt
File Format
The input file format for DeleteAddrPool is the same as for ImportAddrPool. The
addr pool is identified by its Start Address or Name. Multiple addr pools to be deleted can be
specified.
Col
Field
Accepted Values
Required
Start Address
Yes
End Address
Ignored
No
DeleteAddrPool
Col
Field
Accepted Values
Required
Ignored
No
Name
Yes
Share Name
Ignored
No
Container
Ignored
No
Ignored
No
Ignored
No
Ignored
No
Ignored
No
Ignored
No
Ignored
No
PrefixLength
Ignored
No
DeleteAggregateBlock
DeleteAggregateBlock
Overview
The DeleteAggregateBlock CLI allows the user to delete an intermediate level Aggregate
block from the block hierarchy. By specifying the block to be deleted, IPControl validates and
deletes the block. It also adjusts the parent block assignments of any child blocks.
Usage
Direct
$INCHOME/jre/bin/java cp $CLASSPATH
com.diamondip.ipcontrol.cli.DeleteAggregateBlockCLI u <userId> -p <pswd>
-f <delete filename> [-r <rejects file>] [-e <error messages>] [-?]
Parameters
Param eter
Required
Description
-u <userId>
Yes
User Id
-p <pswd>
Yes
Password
-?
No
Print help
-f <delete filename>
Yes
The name of the CSV file listing blocks to be deleted. See below for
the required file format.
-r <rejects file>
No
-e <error messages>
No
The name of the file that error messages will be reported in.
Usage Example
This example deletes resource records described in the delaggblocks.csv file, place into the
delaggblocks.reject file any records that could not be deleted, and reports errors to the
importerrors.txt file.
$INCHOME/etc/cli/DeleteAggregateBlock.sh u joe p joepwd f delaggblocks.csv
r delaggblocks.reject e importerrors.txt
DeleteAggregateBlock
File Format
Col
Field
Accepted Values
Required
Container
Yes
Start Address
Block Size
Yes
Block Type
No
Block Name
No
Description
No
SWIP Name
No
Allocation Reason
No
Allocation Reason
Description
No
Interface Name
No
Interface Offset or
Address
No
Create Reverse
Domains
No
Domain Type
No
No
Parent Container
No
No
No
Yes
DeleteBlock
DeleteBlock
Overview
The DeleteBlock CLI allows the user to remove blocks from the system. This CLI allows
you to specify a single block to delete on the command line, or to read a file containing a list
of blocks to delete.
Usage
Direct
$INCHOME/jre/bin/java cp $CLASSPATH
com.diamondip.ipcontrol.cli.DeleteBlockCLI u <userId> -p <pswd>
[-f <delete filename>] [-r <rejects file>] [-e <error messages>] [-b <block Name>]
[-c <container name>] [-x] [-?]
Parameters
Param eter
Required
Description
-u <userId>
Yes
User Id
-p <pswd>
Yes
Password
-?
No
Print help
-x
No
When presents indicates the CSV file specified by the f flag is from
the export*Block cli, where the file format lists the container name as
the first column and the block name as the 4 th column. When the x
flag is not present, the file format is blockname, containername.
-f <delete filename>
Either f or
b must be
specified.
The name of the CSV file listing blocks to be deleted. See below for
the required file format.
-r <rejects file>
No
-e <error messages>
No
The name of the file that error messages will be reported in.
-b <block name>
Either f or
b must be
specified.
-c <container name>
Must be
specified if
the block
name is not
unique.
DeleteBlock
Usage Example
This example deletes the block 10.1.2.0/24 from the system. As mentioned above, this
example assumes that there is only one block with this name in the system.
$INCHOME/etc/cli/DeleteBlock.sh u joe p joepwd b 10.1.2.0/24
File Format
Col
Field
Accepted Values
Required
Block Name
Yes
Container Name
No
DeleteContainer
DeleteContainer
Overview
The DeleteContainer CLI allows the user to remove individual containers from the
system. This CLI allows you to specify a file containing a list of containers to delete. Only
containers that contain no blocks, services or child containers are available for deletion.
Usage
Direct
$INCHOME/jre/bin/java cp $CLASSPATH
com.diamondip.ipcontrol.cli.DeleteContainerCLI u <userId> -p <pswd>
-f <delete filename> [-r <rejects file>] [-e <error messages>] [-?]
Parameters
Param eter
Required
Description
-u <userId>
Yes
User Id
-p <pswd>
Yes
Password
-?
No
Print help
-f <delete filename>
Yes
The name of the CSV file listing containers to be deleted. See below
for the required file format.
-r <rejects file>
No
The name of the file that rejected (non-deleted) records will be placed
in.
-e <error messages>
No
The name of the file that error messages will be reported in.
Usage Example
DeleteContainer
File Format
By design, the input file format for DeleteContainer is the same as for
ImportContainer. This way, one can use the same file to delete a set of containers and
then re-add them without copying data. Only the container name is required.
Col
Field
Accepted Values
Required
Container Name
Yes
Container Description
Ignored
No
Parent Container
Ignored
No
Container Type
Ignored
No
Rule1
Ignored
No
Rule2
Ignored
No
Rule3
Ignored
No
Rule4
Ignored
No
Rule5
Ignored
No
Information Template
Ignored
No
Ignored
No
DeleteDevice
DeleteDevice
Overview
The DeleteDevice CLI allows the user to remove individual devices from the system. This
CLI allows you to specify a file containing a list of devices to delete.
Note that this is not used to delete devices of type Interface. Use the ImportChildBlock
CLI with the overwrite parameter to delete Interface-type devices.
Usage
Direct
$INCHOME/jre/bin/java cp $CLASSPATH
com.diamondip.ipcontrol.cli.DeleteDeviceCLI u <userId> -p <pswd>
-f <delete filename> [-r <rejects file>] [-e <error messages>] [-?]
Parameters
Param eter
Required
Description
-u <userId>
Yes
User Id
-p <pswd>
Yes
Password
-?
No
Print help
-f <delete filename>
Yes
The name of the CSV file listing devices to be deleted. See below
for the required file format.
-r <rejects file>
No
-e <error messages>
No
The name of the file that error messages will be reported in.
Usage Example
DeleteDevice
File Format
By design, the input file format for DeleteDevice is the same as for ImportDevice. This
way, one can use the same file to the delete a set of devices and then re-add them without
copying data. In the simplest case, only the IP Address is required. The container might also
be required if overlapping address space is in use and the device is in a block that is part of
that overlapping space. In this case, the Container is required to uniquely determine the
device.
Col
Field
Accepted Values
Required
IP Address
Yes
Address Type
Ignored
No
Host Name
Ignored
No
Device Type
Ignored
No
Hardware Type
Ignored
No
MAC Address
Ignored
No
Ignored
No
Domain Name
Ignored
No
Container
Yes, if overlapping
space is in use and
the block in which
the device resides is
ambiguous.
DeleteDomain
DeleteDomain
Overview
The DeleteDomain CLI allows the user to remove individual domains from the system.
This CLI allows you to specify a file containing a list of domains to delete.
Usage
Direct
$INCHOME/jre/bin/java cp $CLASSPATH
com.diamondip.ipcontrol.cli.DeleteDomainCLI u <userId> -p <pswd>
-f <delete filename> [-r <rejects file>] [-e <error messages>] [-?]
Parameters
Param eter
Required
Description
-u <userId>
Yes
User Id
-p <pswd>
Yes
Password
-?
No
Print help
-f <delete filename>
Yes
The name of the CSV file listing domains to be deleted. See below
for the required file format.
-r <rejects file>
No
-e <error messages>
No
The name of the file that error messages will be reported in.
-v <verbose>
No
Usage Example
DeleteDomain
File Format
By design, the input file format for DeleteDomain is the same as for ImportDomain. This
way, one can use the same file to delete a set of domains and then re-add them without
copying data. In the simplest case, only the Domain Name is required. The Domain Type
might also be required if it is not Default.
Col
Field
Accepted Values
Required
Domain Name
Yes
Domain Type
Managed
Ignored
No
Delegated
Ignored
No
Reverse
Ignored
No
Derivative
Ignored
No
Template Domain
Ignored
No
Serial Number
Ignored
No
Refresh
Ignored
No
Retry
Ignored
No
Expire
Ignored
No
Ignored
No
Default TTL
Ignored
No
Contact
Ignored
No
Information Template
Ignored
No
Ignored
No
DeleteDeviceInterface
DeleteDeviceInterface
Overview
The DeleteDeviceInterface CLI allows the user to remove device interfaces from
multi-homed devices in the system. This CLI enables you to specify a file containing a list of
device interfaces to delete.
Note that this is not used to delete devices of type Interface. Use the ImportChildBlock
CLI with the overwrite parameter to delete Interface-type devices.
Usage
Direct
$INCHOME/jre/bin/java cp $CLASSPATH
com.diamondip.ipcontrol.cli.DeleteDeviceInterfaceCLI u <userId> -p <pswd>
-f <delete filename> [-r <rejects file>] [-e <error messages>] [-?]
Parameters
Param eter
Required
Description
-u <userId>
Yes
User Id
-p <pswd>
Yes
Password
-?
No
Print help
-f <delete filename>
Yes
The name of the CSV file listing device interfaces to be deleted. See below
for the required file format.
-r <rejects file>
No
The name of the file that rejected (non-deleted) records will be placed in.
-e <error messages>
No
The name of the file that error messages will be reported in.
Usage Example
This example deletes the device interfaces listed in the file deviceInterfaces.txt.
$INCHOME/etc/cli/DeleteDeviceInterface.sh u joe p joepwd f deviceInterfaces.txt
DeleteDeviceInterface
File Format
The input file format for DeleteDeviceInterface is the same as for ExportDevice.
The device is identified by its IP Address. The container must also be specified if the de vices
IP Address is not unique due to overlapping address space. The interface is identified by its
name. Multiple interfaces to be deleted can be specified.
Col
Field
Accepted Values
Required
IP Address
Yes
Address Type
Ignored
No
Host Name
Ignored
No
Device Type
Ignored
No
Hardware Type
Ignored
No
MAC Address
Ignored
No
Ignored
No
Domain Name
Ignored
No
Container
Yes, if overlapping
space is in use and
the block in which
the device resides is
ambiguous.
Domain Type
Ignored
No
Description
Ignored
No
Ignored
No
Aliases
Ignored
No
Ignore Warning
Ignored
No
Interface Names
Yes
Ignored
No
DeleteDeviceResourceRecord
DeleteDeviceResourceRecord
Overview
The DeleteDeviceResourceRecord CLI allows the user to delete DNS resource records
for a device from IPControl.
Usage
Direct
$INCHOME/jre/bin/java cp $CLASSPATH
com.diamondip.ipcontrol.cli.DeleteDeviceResourceRecordCLI u <userId> -p <pswd>
-f <delete filename> [-r <rejects file>] [-e <error messages>] [-?]
Parameters
Param eter
Required
Description
-u <userId>
Yes
User Id
-p <pswd>
Yes
Password
-?
No
Print help
-f <delete filename>
Yes
The name of the CSV file describing records to be deleted. See below
for the required file format.
-r <rejects file>
No
The name of the file that rejected (non-deleted) records will be placed
in.
-e <error messages>
No
The name of the file that error messages will be reported in.
Usage Example
This example deletes resource records described in the delresourcerecs.csv file, places into the
delresourcerecs.reject file any records that could not be deleted, and reports errors to the
importerrors.txt file.
$INCHOME/etc/cli/DeleteDeviceResourceRecord.sh u joe p joepwd f delresourcerecs.csv
r delresroucerecs.reject e importerrors.txt
DeleteDeviceResourceRecord
File Format
Col
Field
Accepted Values
Required
Domain
Yes
DomainType
No
Owner
Yes
Host Name
Yes, unless
IP Address
is
specified.
IP Address
Yes, unless
Host
Name is
specified.
Container
Yes, if IP
Address in
overlapping space.
TTL
No
Class
No
Yes
Data
Yes
DeleteDomainResourceRecord
DeleteDomainResourceRecord
Overview
The DeleteDomainResourceRecord CLI allows the user to delete DNS resource records
for a DNS domain from IPControl.
Usage
Direct
$INCHOME/jre/bin/java cp $CLASSPATH
com.diamondip.ipcontrol.cli.DeleteDomainResourceRecordCLI u <userId> -p <pswd>
-f <delete filename> [-r <rejects file>] [-e <error messages>] [-?]
Parameters
Param eter
Required
Description
-u <userId>
Yes
User Id
-p <pswd>
Yes
Password
-?
No
Print help
-f <delete filename>
Yes
The name of the CSV file describing records to be deleted. See below
for the required file format.
-r <rejects file>
No
The name of the file that rejected (non-deleted) records will be placed
in.
-e <error messages>
No
The name of the file that error messages will be reported in.
Usage Example
This example deletes resource records described in the delresourcerecs.csv file, places into the
delresourcerecs.reject file any records that could not be deleted, and reports errors to the
deleteerrors.txt file.
$INCHOME/etc/cli/DeleteDomainResourceRecord.sh u joe p joepwd f delresourcerecs.csv
r delresroucerecs.reject e deleteerrors.txt
DeleteDomainResourceRecord
File Format
Col
Field
Accepted Values
Required
Domain
Yes
DomainType
No
Owner
Yes
TTL
No
Class
No
Yes
Data
Yes
DeleteNetElement
DeleteNetElement
Overview
The DeleteNetElement CLI enables the user to remove individual network elements from
the system. This CLI allows you to specify a file containing a list of network elements to
delete.
Usage
Direct
$INCHOME/jre/bin/java cp $CLASSPATH
com.diamondip.netcontrol.cli.DeleteNetElementCLI u <userId> -p <pswd>
-f <delete filename> [-r <rejects file>] [-e <error messages>] [-?]
Parameters
Param eter
Required
Description
-u <userId>
Yes
User Id
-p <pswd>
Yes
Password
-?
No
Print help
-f <delete filename>
Yes
-r <rejects file>
No
-e <error messages>
No
The name of the file that error messages will be reported in.
Usage Example
This example deletes network elements listed in the netelements.csv file, places into the
netelements.reject file any records that could not be deleted, and reports errors to the deleteerrors.txt
file.
$INCHOME/etc/cli/DeleteNetElement.sh u joe p joepwd f netelements.csv
r netelements.reject e deleteerrors.txt
DeleteNetElement
File Format
By design, the input file format for DeleteNetElement is the same as the format for
ImportNetElement and ExportNetElement. This way, one can use the same file to
delete a set of network elements and then re-add them without copying data. Specify the
name or the IP address of the network element. If the IP address is not unique, the name
must be specified.
Col
Field
Accepted Values
Required
Name
Yes, unless a
unique IP
address is
specified
IP Address/FQDN
Vendor
Ignored
No
Model
Ignored
No
Type
Ignored
No
Global Sync
Ignored
No
Agent Name
Ignored
No
Telnet user
Ignored
No
Telnet password
Ignored
No
Enable password
Ignored
No
Ignored
No
Interface List
Ignored
No
V3 Username
Ignored
No
V3 Authentication
Protocol
Ignored
No
V3 Authentication
Password
Ignored
No
V3 Privacy Protocol
Ignored
No
V3 Privacy Password
Ignored
No
V3 Context Name
Ignored
No
V3 Engine ID
Ignored
No
DeleteNetElementInterface
DeleteNetElementInterface
Overview
Parameters
Param eter
Required
Description
-u <userId>
Yes
User Id
-p <pswd>
Yes
Password
-?
No
Print help
-f <delete filename>
Yes
The name of the CSV file listing the interfaces to be deleted. See
below for the required file format.
-r <rejects file>
No
The name of the file that rejected (not deleted) records will be placed
in.
-e <error messages>
No
The name of the file that error messages will be reported in.
-v
No
Usage Example
This example deletes Network Elements interfaces listed in the netelementinterfaces.csv file, places
into the netelementinterfaces.reject file any records that could not be deleted, and reports errors to
the deleteerrors.txt file.
$INCHOME/etc/cli/DeleteNetElementInterface.sh u joe p joepwd
f netelementinterfaces.csv r netelementinterfaces.reject e deleteerrors.txt
DeleteNetElementInterface
File Format
By design, the input file format for DeleteNetElementInterface is the same as for
ImportNetElementInterface. This way, one can use the same file to the delete a set of
interfaces and then re-add them without copying data. Only the network element name and
interface name are required.
Col
Field
Accepted Values
Required
Name
Yes
Interface Name
Yes
Status
No
DeleteNetService
DeleteNetService
Overview
The DeleteNetService CLI enables the user to remove individual network services from
the system. This CLI allows you to specify a file containing a list of network services to delete.
Usage
Direct
$INCHOME/jre/bin/java cp $CLASSPATH
com.diamondip.netcontrol.cli.DeleteNetServiceCLI u <userId> -p <pswd>
-f <delete filename> [-r <rejects file>] [-e <error messages>] [-?]
Parameters
Param eter
Required
Description
-u <userId>
Yes
User Id
-p <pswd>
Yes
Password
-?
No
Print help
-f <delete filename>
Yes
-r <rejects file>
No
The name of the file that rejected (non-deleted) records will be placed
in.
-e <error messages>
No
The name of the file that error messages will be reported in.
Usage Example
This example deletes network services listed in the netservices.csv file, places into the
netservices.reject file any records that could not be deleted, and reports errors to the deleteerrors.txt
file.
$INCHOME/etc/cli/DeleteNetService.sh u joe p joepwd f netservices.csv
r netservices.reject e deleteerrors.txt
DeleteNetService
File Format
By design, the input file format for DeleteNetService is the same as the format for
ImportNetService and ExportNetService. This way, one can use the same file to
delete a set of network services and then re-add them without copying data. Specify the name
and the type of the network service. If the type is not specified, it defaults to DHCP.
Col
Field
Accepted Values
Required
Name
Yes
IP Address/FQDN
Ignored
No
Type
No
Product name
Ignored
No
Agent name
Ignored
No
Global Sync
Ignored
No
Collection Method
Ignored
No
Ignored
No
Ignored
No
Collection port
Ignored
No
Container(s)
Ignored
VendorInfo
Ignored
No
WarningThreshold
Ignored
No
DeletePrefixPool
DeletePrefixPool
Overview
The DeletePrefixPool CLI allows the user to delete Prefix Pools in the system. This CLI
enables you to specify a file containing a list of prefix pools to delete.
Usage
Direct
$INCHOME/jre/bin/java cp $CLASSPATH
com.diamondip.ipcontrol.cli.DeletePrefixPoolCLI u <userId> -p <pswd>
-f <delete filename> [-r <rejects file>] [-e <error messages>] [-?]
Parameters
Param eter
Required
Description
-u <userId>
Yes
User Id
-p <pswd>
Yes
Password
-?
No
Print help
-f <deletet filename>
Yes
The name of the CSV file listing prefix pools to be deleted. See below for
the required file format.
-r <rejects file>
No
The name of the file that rejected (non-deleted) records will be placed in.
-e <error messages>
No
The name of the file that error messages will be reported in.
Usage Example
This example deletes the prefix pools listed in the file prefixpools.txt.
$INCHOME/etc/cli/DeletePrefixPool.sh u joe p joepwd f prefixpools.txt
DeletePrefixPool
File Format
The input file format for DeletePrefixPool is the same as for ImportPrefixPool.
The prefix pool is identified by its Start Address or Name. Multiple prefix pools to be deleted
can be specified.
Col
Field
Accepted Values
Required
Start Addr
Yes
Length
Ignored
No
Ignored
No
Name
Yes
Container
Ignored
No
Ignored
No
Ignored
No
Ignored
No
Ignored
No
Ignored
No
Ignored
No
Ignored
No
Ignored
No
DeleteTask
DeleteTask
Overview
The DeleteTask CLI allows the user to delete tasks from the system.
Usage
Direct
$INCHOME/jre/bin/java cp $CLASSPATH
com.diamondip.ipcontrol.cli.DeleteTaskCLI u <userId> -p <pswd>
[-t <idlist> | r <retain> | -d <date>] [-v] [-?]
Parameters
Param eter
Required
Description
-u <userId>
Yes
User Id
-p <pswd>
Yes
Password
-?
No
Print help
-t <idlist>
One of t, -r, or
d must be
specified.
-r <retain>
One of t, -r, or
d must be
specified.
-d <date>
One of t, -r, or
d must be
specified.
Tasks older than this date will be deleted, in the format yyyy/mm/dd.
For example, for a date of 2005/12/31, all tasks prior to that date will
be deleted.
-v
No
Verbose option. The CLI will print out more information about the
request. In particular, it will print how many tasks were deleted.
Usage Example
File Format
DeleteZone
DeleteZone
Overview
The DeleteZone CLI enables the user to remove zones from the system. This CLI allows
you to specify a file containing a list of zones to delete.
Usage
Direct
$INCHOME/jre/bin/java cp $CLASSPATH
com.diamondip.netcontrol.cli.DeleteZoneCLI u <userId> -p <pswd>
-f <delete filename> [-r <rejects file>] [-e <error messages>] [-?]
Parameters
Param eter
Required
Description
-u <userId>
Yes
User Id
-p <pswd>
Yes
Password
-?
No
Print help
-f <delete filename>
Yes
The name of the CSV listing zones to be deleted See below for the
required file format.
-r <rejects file>
No
The name of the file that rejected (non-deleted) records will be placed
in.
-e <error messages>
No
The name of the file that error messages will be reported in.
-v <verbose>
No
Usage Example
This example deletes zones listed in the zones.csv file, places into the zones.reject file any records
that could not be deleted, and reports errors to the deleteerrors.txt file.
$INCHOME/etc/cli/DeleteZone.sh u joe p joepwd f zones.csv
r zones.reject e deleteerrors.txt
DeleteZone
File Format
By design, the input file format for DeleteZone is the same as the format for ImportZone.
This way, one can use the same file to delete a set of zones and then re-add them without
copying data.
Col
Field
Accepted Values
Required
Server
Yes
Zone type
Ignored
No
Domain Name
Yes
Domain Type
No
Update Zone
Ignored
No
View
No
Filename
Ignored
No
Automatic Generation
of NS/GLUE Records
Ignored
No
MNAME
Ignored
No
Ignored
No
Masters
Ignored
No
Ignored
No
Ignored
No
Template Zone
Ignored
No
Alias Zone
Ignored
No
Galaxy Name
Ignored
No
Ignored
No
Update Policy
Ignored
No
Dynamic Zone
Ignored
No
DeleteZoneResourceRecord
DeleteZoneResourceRecord
Overview
The DeleteZoneResourceRecord CLI allows the user to delete DNS resource records
for a zone from IPControl.
Usage
Direct
$INCHOME/jre/bin/java cp $CLASSPATH
com.diamondip.ipcontrol.cli.DeleteZoneResourceRecordCLI u <userId> -p <pswd>
-f <delete filename> [-r <rejects file>] [-e <error messages>] [-?]
Parameters
Param eter
Required
Description
-u <userId>
Yes
User Id
-p <pswd>
Yes
Password
-?
No
Print help
-f <import filename>
Yes
The name of the CSV file describing records to be deleted. See below
for the required file format.
-r <rejects file>
No
The name of the file that rejected (non-deleted) records will be placed
in.
-e <error messages>
No
The name of the file that error messages will be reported in.
Usage Example
This example deletes resource records described in the delresourcerecs.csv file, places into the
delresourcerecs.reject file any records that could not be deleted, and reports errors to the
importerrors.txt file.
$INCHOME/etc/cli/DeleteZoneResourceRecord.sh u joe p joepwd f delresourcerecs.csv
r delresroucerecs.reject e importerrors.txt
DeleteZoneResourceRecord
File Format
Col
Field
Accepted Values
Required
Server
Yes
View
Yes
Zone
Yes
Owner
Yes
TTL
No
Class
No
Yes
Data
Yes
ArpDiscoverNetElement Task
Tasks
ArpDiscoverNetElement Task
Overview
The ArpDiscoverNetElement CLI allows the user to create an ARP Discover task on a given
Net Element.
Usage
Direct
$INCHOME/jre/bin/java cp $CLASSPATH
com.diamondip.ipcontrol.cli.ArpDiscoverNetElementCLI u <userId> -p <pswd>
[-n <Net Element name> | -i <Net Element IP address>]
[--performnethostadds][--updatereclaim][--ignoredups] [-v] [-?]
Parameters
Param eter
Required
Description
-u <userId>
Yes
User Id
-p <pswd>
Yes
Password
-?
No
Print help
-i <IP Address>
Yes, unless n
specified
-n <Name>
Yes, unless i
specified
--performnethostadds
No
If set, the task will add new hosts found during discovery.
--updatereclaim
No
If set, the task will update the last discovered counters for
blocks and hosts defined within the network element.
--ignoredups
No
-v
No
Verbose
Usage Example
This creates a task to perform an ARP discover on a Net Element with IP Address 10.40.23.6,
and to perform net host adds as part of the processing.
Return codes
DhcpConfigurationTask
Overview
The DhcpConfigurationTask CLI allows the user to create a DHCP Configuration task.
DHCP Configuration tasks generate and deploy configuration files for DHCP servers.
Usage
Direct
$INCHOME/jre/bin/java cp $CLASSPATH
com.diamondip.ipcontrol.cli.DhcpConfigurationTaskCLI u <userId> -p <pswd>
[-n <DHCP server name> | -i <DHCP server IP address>] [-a] [-f] [-v] [-?]
Parameters
Param eter
Required
Description
-u <userId>
Yes
User Id
-p <pswd>
Yes
Password
-?
No
Print help
-i <IP Address>
-n <Name>
-a
No
If set, the task will stop if errors are detected during the
configuration generation.
-f
No
-v
No
Verbose
Usage Example
This creates a task to perform a DHCP configuration deployment for the dhcp5 DHCP
server. In addition, if there are any failover servers associated with dhcp5, their
configurations are also deployed. Lastly, if there are any errors, the task will abort.
$INCHOME/etc/cli/DhcpConfigurationTask.sh u joe p joepwd n dhcp5 a -f
DhcpConfigurationTask
Return codes
DHCPUtilization
DHCPUtilization
Overview
The DHCPUtilization CLI allows the user to issue an immediate DHCP Collection task to
collect statistics on the utilization of a DHCP server.
Usage
Direct
$INCHOME/jre/bin/java cp $CLASSPATH
com.diamondip.netcontrol.cli.DHCPUtilizationCLI u <userId> -p <pswd>
[-n <network service name> | -i <network service ip address>] [-?]
Parameters
Param eter
Required
Description
-u <userId>
Yes
User Id
-p <pswd>
Yes
Password
-?
No
Print help
Yes
-n <Name>
Yes
-v
No
Usage Example
This example creates a task on the queue to perform a DHCP utilization collection for the
dhcp5 DHCP server.
$INCHOME/etc/cli/DHCPUtilization.sh u joe p joepwd n dhcp5
Return codes
DiscoverNetElement
DiscoverNetElement
Overview
The DiscoverNetElement CLI allows the user to issue an immediate Discover task to
discover the interfaces bound to a network element already defined in IPControl.
Usage
Direct
$INCHOME/jre/bin/java cp $CLASSPATH
com.diamondip.netcontrol.cli.DiscoverNetElementCLI u <userId> -p <pswd>
[-n <network element name> | -i <netelement address>] [-?]
Parameters
Param eter
Required
Description
-u <userId>
Yes
User Id
-p <pswd>
Yes
Password
-?
No
Print help
Yes
-n <Name>
Yes
Usage Examples
This example creates a task on the queue to perform a Discover for the device found at the IP
address 10.10.23.4.
$INCHOME/etc/cli/DiscoverNetElement.sh u joe p joepwd i 10.10.23.4
This example creates a task to perform a Discover for the device with the DNS name
corerouter1.mycompany.com.
$INCHOME/etc/cli/DiscoverNetElement.sh u joe p joepwd i corerouter1.mycompany.com
This example creates a task to perform a Discover for the IPControl network element named
router3.
$INCHOME/etc/cli/DiscoverNetElement.sh u joe p joepwd n router3
DiscoverNetElement
Return codes
DnsConfigurationTask
DnsConfigurationTask
Overview
The DnsConfigurationTask CLI allows the user to create a DNS Configuration task.
DNS Configuration tasks generate and deploy configuration and zone files for DNS servers.
Usage
Direct
$INCHOME/jre/bin/java cp $CLASSPATH
com.diamondip.ipcontrol.cli.DnsConfigurationTaskCLI u <userId> -p <pswd>
[-n <Name> | -i <IP address>] [-a] [-c] [-d] [-g] [-k] [-s] [-w <View>] [-z <Zone>]
[-v] [-?]
Parameters
Param eter
Required
Description
-u <userId>
Yes
User Id
-p <pswd>
Yes
Password
-?
No
Print help
-i <IP Address>
Yes, unless n
specified
-n <Name>
Yes, unless i
specified
-a
No
By default, the task will abort if errors are detected during the
configuration generation. Set this option to continue with the
deployment in spite of errors.
-c
No
-d
No
-g
No
-k
No
By default, the generated zone files are checked for errors. Specify this
option to suppress that check.
-s
No
-v
No
Verbose
DnsConfigurationTask
Param eter
Required
Description
-w <View>
No
View name. This might be needed when multiple views are in use and
a single zone push is desired. If not specified, the value Default is
used.
-z <Zone>
No, unless w
specified
Usage Examples
This example creates a task to push any changed zone files to the server dns1. The
configuration file is pushed if needed. Also, by default, the configuration file and zone files
are checked for errors.
$INCHOME/etc/cli/DnsConfigurationTask.sh u joe p joepwd n dns1
This example creates a task to push any changed zone files to the server dns1. The
configuration file is pushed if needed.
$INCHOME/etc/cli/DnsConfigurationTask.sh u joe p joepwd c n dns1
This example creates a task to push the zone file for zone acme.com to the server dns1.
Also, by default, the zone file is checked for errors.
$INCHOME/etc/cli/DnsConfigurationTask.sh u joe p joepwd n dns1 z acme.com
This example creates a task to send all of resource records for the zone acme.com via
Dynamic DNS to the server dns1.
$INCHOME/etc/cli/DnsConfigurationTask.sh u joe p joepwd d n dns1 z acme.com
This example creates a task to send the changed resource records for the zone acme.com via
Dynamic DNS to the server dns1.
$INCHOME/etc/cli/DnsConfigurationTask.sh u joe p joepwd c d n dns1 z acme.com
Return codes
GlobalRollup
GlobalRollup
Overview
The GlobalRollup CLI allows the user to issue an immediate Global Rollup task to
summarize collected utilization statistics and perform regression analysis.
Usage
Direct
$INCHOME/jre/bin/java cp $CLASSPATH
com.diamondip.netcontrol.cli.GlobalRollupCLI u <userId> -p <pswd>
-t <#><period> [-?]
Parameters
Param eter
Required
Description
-u <userId>
Yes
User Id
-p <pswd>
Yes
Password
-?
No
Print help
-t <#><period>
Yes
Usage Examples
This example creates a task on the queue to perform a Global Rollup, and to use the last 90
days of data when forecasting future growth.
$INCHOME/etc/cli/GlobalRollup.sh u joe p joepwd t 90d
This example creates a task on the queue to perform a Global Rollup, and to use the last 6
months of data when forecasting future growth.
$INCHOME/etc/cli/GlobalRollup.sh u joe p joepwd t 6m
Return codes
GlobalSync
GlobalSync
Overview
The GlobalSync CLI allows the user to issue an immediate Global Synchronization task for
either network services or network elements.
Usage
Direct
$INCHOME/jre/bin/java cp $CLASSPATH
com.diamondip.netcontrol.cli.GlobalSyncCLI u <userId> -p <pswd>
-t <type> [-?]
Parameters
Param eter
Required
Description
-u <userId>
Yes
Username
-p <pswd>
Yes
Password
-?
No
Print help
-t <type>
Yes
Usage Example
This example creates a task on the queue to perform a Global Synchronization of all network
elements that are flagged in IPControl for inclusion in the Global Sync process.
$INCHOME/etc/cli/GlobalSync.sh u joe p joepwd t netelement
This example creates a task on the queue to perform a Global Synchronization of all network
services that are flagged in IPControl for inclusion in the Global Sync process.
$INCHOME/etc/cli/GlobalSync.sh u joe p joepwd t netservice
Return codes
TaskStatus
TaskStatus
Overview
The TaskStatus CLI allows the user to query the status of tasks.
Usage
Direct
$INCHOME/jre/bin/java cp $CLASSPATH
com.diamondip.netcontrol.cli.TaskStatusCLI u <userId> -p <pswd>
-t <task number> [-v] [-?]
Parameters
Param eter
Required
Description
-u <userId>
Yes
Username
-p <pswd>
Yes
Password
-?
No
Print help
-t <task number>
Yes
-v
No
Usage Example
This example queries task 37 and returns a one-word string indicating the status:
INPROGRESS
$INCHOME/etc/cli/TaskStatus.sh u joe p joepwd t 37
This example queries task 42 and returns detailed information about that task:
42/dhcp5/COMPLETE/2003-12-16 10:32:38.0/2003-12-16
10:35:38.0/00:03:00
$INCHOME/etc/cli/TaskStatus.sh u joe p joepwd t 42 -v
Output
NOTSTARTED
QUEUED
INPROGRESS
COMPLETE
TaskStatus
COMPLETEWITHERRORS
ERROR
Using the -v parameter on the command line outputs detailed information about the task in
the format:
<id> /<scope> /<status> /<starttime> /<completedtime> /<duration>
Return codes
TaskStatus also returns an errorlevel indicating the task status, corresponding to the
following table:
Status
Errorlevel
NOTSTARTED
QUEUED
INPROGRESS
COMPLETE
COMPLETEWITHERRORS
ERROR
DetachBlock
Updates
DetachBlock
Overview
The DetachBlock CLI enables the user to detach blocks from device containers. This CLI
allows you to specify a file containing a list of blocks to detach.
Usage
Direct
$INCHOME/jre/bin/java cp $CLASSPATH task number
com.diamondip.netcontrol.cli.DetachBlockCLI u <userId> -p <pswd>
-f <update filename> [-r <rejects file>] [-e <error messages>] [v] [-?]
Parameters
Param eter
Required
Description
-u <userId>
Yes
Username
-p <pswd>
Yes
Password
-?
No
Print help
-f <update filename>
Yes
The name of the CSV listing blocks to be detached. See below for the
required file format.
-r <rejects file>
No
The name of the file that rejected (non-deleted) records will be placed
in.
-e <error messages>
No
The name of the file that error messages will be reported in.
-v <verbose>
No
Usage Example
This example detaches blocks listed in the blocks.csv file, places into the blocks.reject file any
records that could not be deleted, and report errors to the detacherrors.txt file.
$INCHOME/etc/cli/DetachBlock.sh u joe p joepwd f blocks.csv r blocks.reject
e detacherrors.txt
DetachBlock
File Format
Specify the name of the block, or its address and size, and the container it is to be detached
from.
Col
Field
Accepted Values
Required
Block Name
Yes, unless
block address
and block size
are specified
Block Address
Yes, unless
block name is
specified
Block Size
Yes, unless
block name is
specified
Container
Yes
JoinBlock
JoinBlock
Overview
The JoinBlock CLI allows the user to join existing, adjacent blocks, forming a larger block.
The blocks must be in the same container, and of the same type. This CLI allows you to
specify a single block on the command line.
Usage
Direct
$INCHOME/jre/bin/java cp $CLASSPATH
com.diamondip.ipcontrol.cli.JoinBlockCLI u <userId> -p <pswd>
-b <block Name> [-c <container name>] [-r <rejects file>] [-e <error messages>] [-?]
Parameters
Param eter
Required
Description
-u <userId>
Yes
Username
-p <pswd>
Yes
Password
-?
No
Print help
-r <rejects file>
No
-e <error messages>
No
The name of the file that error messages will be reported in.
-b <block name>
Yes
-c <container name>
Must be specified
if the block name
is not unique.
Usage Example
This example joins the block 10.1.2.0/24 to the next adjacent block in the same container.
As mentioned above, this example assumes that there is only one block with this name in the
system.
$INCHOME/etc/cli/JoinBlock.sh u joe p joepwd b 10.1.2.0/24
ModifyAddrpool
ModifyAddrpool
Overview
Parameters
Param eter
Required
Description
-u <userId>
Yes
Username
-p <pswd>
Yes
Password
-?
No
Print help
-f <update filename>
Yes
The name of the CSV listing addrpools to be modified. See below for
the required file format.
-r <rejects file>
No
The name of the file that rejected records will be placed in.
-e <error messages>
No
The name of the file that error messages will be reported in.
Usage Example
$INCHOME/etc/cli/ModifyAddrpool.sh u joe p joepwd -f updateaddrpools.txt
-r updateaddrpools.reject e updateaddrpool.err
Output
If successful, the CLI updates the address pools per the input file and exits.
File Format
The ModifyAddrpool CLI uses attribute-value pairs to specify the records and fields to be
changed. Each line in the input file must have a set of attribute-value pairs to locate the
address pool to be changed and a second set specifies what fields to change and their new
values.
The following table lists the available attributes for address pools and also indicates which can
be used to locate a record.
ModifyAddrpool
Field
Attribute Nam e
Accepted Values
Locator
Field
Start Address
startAddr
Required
End Address
endAddr
No
type
No
Name
name
No
Share Name
sharename
No
Container
container
primaryNetService
No
failoverNetService
No
dhcpOptionSet
No
dhcpPolicySet
No
allowClientClasses
No
denyClientClasses
No
Deprecated
ModifyAddrpool
Each input line specifies the locator attribute-value pairs, followed by a colon, followed by the
modification attribute-value pairs. For example, to change the ending address for the pool
starting at address 10.1.2.3:
startAddr=10.1.2.3:endAddr=10.1.2.15
Separate multiple attribute-value pairs with commas. For example, to change both the end
address and the DHCP Server for the address pool starting at 10.1.2.3:
startAddr=10.1.2.3:endAddr=10.1.2.15,primaryNetService=newserver
This applies to the locator fields as well. For example, to change the end address for the pool
starting at 192.168.0.2 in Container Private:
startAddr=192.168.0.2,container=Private:endAddr=192.168.0.31
Some values are lists. Separate the list elements with a vertical bar. For example, to allow t wo
Client Classes for the pool starting at 10.1.2.3:
startAddr=10.1.2.3:allowClientClasses=allow1|allow2
For fields that are lists, existing values, if any, may be replaced or merged. For example, for
the pool starting at 10.1.2.3, to replace allow1 and allow2 with allow3 in the example
above write:
startAddr=10.1.2.3:allowClientClasses=allow3
To update only some of the values in a list use the notation += when specifying the attribute
and value. In the example above to allow a client class allow4 while keeping the allow3,
write:
startAddr=10.1.2.3: allowClientClasses+=allow4
To remove a value, specify the attribute but leave the value empty. For example, to remove
the allowClientClasses from the above pool:
startAddr=10.1.2.3:allowClientClasses=
V6 Addresses
To specify an IPV6 address, # must be used as the separator between the locator pairs and the
modification pairs, since : is part of the address:
startAddr=2001::1:0#primaryNetService=newserver
ModifyBlock
ModifyBlock
Overview
Parameters
Param eter
Required
Description
-u <userId>
Yes
Username
-p <pswd>
Yes
Password
-?
No
Print help
-f <update filename>
Yes
The name of the CSV file describing the updates. See below for the
required file format.
-r <rejects file>
No
The name of the file that rejected records will be placed in.
-e <error messages>
No
The name of the file that error messages will be reported in.
Usage Example
$INCHOME/etc/cli/ModifyBlock.sh u joe p joepwd -f updateblocks.txt
-r updateblocks.reject e updateblock.err
Output
If successful, the CLI updates the blocks per the input file and exits.
File Format
The ModifyBlock CLI uses attribute-value pairs to specify the records and fields to be
changed. Each line in the input file must have a set of attribute-value pairs to locate the block
to be changed, and a second set specifies what fields to change and their new values.
The following table lists the available attributes for blocks, and also indicates which can be
used to locate a record.
Field
Attribute Nam e
Accepted Values
Locator Field/
Modify?
Block Address
blockAddr
Yes / No
ModifyBlock
Field
Attribute Nam e
Accepted Values
Locator Field/
Modify?
Block Name
blockName
Yes / Yes
Block Size
blockSize
Yes / No
Block Status
blockStatus
Yes / Yes
Block Type
blocktype
No / Yes
Container
container
Yes/ Yes
ignoreErrors
ignoreErrors
No/No
Interface Name
interfaceName
Yes / Yes
Description
description
No/ Yes
No/ Yes
Exclude from
Discovery
excludeFromDiscovery
Organization Id
organizationId
RIR
rir
No/ Yes
rootBlocktype
No/ Yes
SWIP Name
swipname
No/ Yes
userDefinedFields
No /Yes
Subnet
subnet
No/Yes
Primary Subnet
Flag
primarySubnet
No/Yes
Allocation
Template Name
allocationTemplate
Name
No/Yes
No/ Yes
ModifyBlock
Field
Attribute Nam e
Accepted Values
Locator Field/
Modify?
Address Allocation
Details
addrDetails
No/Yes
Each input line specifies the locator attribute-value pairs, followed by a : or # , followed by
the modification attribute-value pairs. For example, to change the description for the block
starting at address 10.1.2.3:
blockAddr=10.1.2.3:description=updated description
Separate multiple attribute-value pairs with commas. For example, to change both the
description and the Organization Id for the block starting at 10.1.2.3:
blockAddr=10.1.2.3:description=updated description, rir=nationalISP
This applies to the locator fields as well. For example, to change the block status for a block:
blockAddr=10.1.2.3:blockStatus=Reserved
Some values are lists. Separate the list elements with a vertical bar. For example, to modify
two user defined fields for the block at 10.1.2.3:
blockAddr =10.1.2.3:userDefinedFields=state=PA|city=Exton
For values that are lists, existing values, if any, may be replaced or merged. For example, for
the block at 10.1.2.3 to replace theentire contents of the existing userDefinedFields write:
blockAddr =10.1.2.3:userDefinedFields=state=PA|city=Exton
To update only some of the values in a list use the notation += when specifying the attribute
and value. In the example above to update the city as Devon without changing or removing
the state value, write:
blockAddr =10.1.2.3:userDefinedFields+=city=Devon
To remove a value, specify the attribute but leave the value empty. For example, to remove
the description from the above block:
blockAddr =10.1.2.3: description =
V6 Addresses
To modify an IPV6 block, # must be used as the separator between the locator pairs and the
modification pairs, since : is part of the address:
blockAddr=3FFE:0000:0000:0010::#description="updated V6 description"
To modify a blocks interface address(es), use ImportChildBlock with the overwrite option.
Reparenting a Block via ModifyBlockCLI
The ModifyBlock CLI may also be used to reparent a block by specifying a target container
name different than the current parent container name. In the case of reparenting blocks
contained in device containers, a target interface name must also be provided.
ModifyBlock
For example, to reparent the block starting at 192.168.192.0 to the new container
MovedTo:
blockAddr=192.168.192.0:container=MovedTo
To reparent the block starting at 192.168.196.134 from a device container to the new
device container Router1 on interface routerInterface1:
blockAddr=192.168.196.134:container=Router1,interfaceName=routerInterface1
Note: The Modify Block will either reparent, when a new container name different than
current parent container has been specified, or modify the block without a reparent. Both
cannot be performed during the same modify block invocation.
Modifying Block Subnet Policies
Use the subnet field to specify changes to block subnet policies. Subnet uses a nested data
structure syntax. The attributes of subnet policies are surrounded by braces.
For example, to update the policies for a block starting at 192.168.196.134 (line wrapped
for readability):
blockAddr=192.168.192.0: description=modifying policies,subnet={DHCPOptionsSet=Global
Option Set,DHCPPolicySet=Standard ISC DHCP 3.0 Policy
Set,DNSServers=ServerABC,defaultGateway=192.80.0.1,failoverDHCPServer=DHCPFailoverServer,fo
rwardDomains=test.com|example.com,forwardDomainTypes=Default|Internal,primaryDHCPServer=DHC
PServer,false,primaryWINSServer=192.80.0.2,reverseDomains=10.in-addr.arpa.|10.inaddr.arpa.,reverseDomainTypes=Default|Internal}
Attribute Nam e
Accepted Values
Locator
Field
DHCPOptionsSet
No
DHCPPolicySet
No
DNS Servers
DNSServers
No
Default Gateway
defaultGateway
No
failoverDHCPServer
No
ModifyBlock
Field
Attribute Nam e
Accepted Values
Locator
Field
forwardDomainTypes
No
Forward Domain
Names
forwardDomains
No
primaryDHCPServer
No
cascadePrimaryDHCPS
erver
No
primaryWINSServer
No
reverseDomainTypes
No
reverseDomains
No
ModifyBlock
Use the addrDetails field to optionally specify attributes of any address allocations within
the allocation template specified by allocationTemplateName. You can apply a template
and specify address details when changing a blocks status to Deployed, or when modifying a
block that is already of status Deployed. The addrDetails uses a nested data structure
syntax, so its attributes are surrounded by braces.
For example (line wrapped for readability):
blockAddr=192.168.192.0: blockStatus=Deployed, description=applying allocation template,
allocationTemplateName=Standard DHCP,
addrDetails={startingOffset=3,offsetFromBeginningOfSubnet=true:netserviceName=DHCPServer}
Attribute Nam e
Accepted Values
Locator
Field
Starting Offset
startingOffset
Yes
offsetFromBeginningOf
Subnet
Yes
netserviceName
No
ModifyContainer
ModifyContainer
Overview
Parameters
Param eter
Required
Description
-u <userId>
Yes
Username
-p <pswd>
Yes
Password
-?
No
Print help
-f <update filename>
Yes
The name of the CSV file describing the modifications. See below
for the required file format.
-r <rejects file>
No
The name of the file that rejected records will be placed in.
-e <error messages>
No
The name of the file that error messages will be reported in.
-v
No
Usage Example
$INCHOME/etc/cli/ModifyContainer.sh u joe p joepwd -f updatecontainers.txt
-r updatecontainers.reject e updatecontainers.err
Output
If successful, the CLI updates the containers per the input file and exits.
File Format
The ModifyContainer CLI uses attribute-value pairs to specify the records and fields to be
changed. Each line in the input file uses an attribute-value pair to locate the container to be
changed and a set of attribute-value pairs that specifies which attributes to modify.
If an attribute is not included in the modifier set, then its value is not changed.
The following table lists the available attributes for containers and also indicates which can be
used to locate a record.
ModifyContainer
Field
Attribute Nam e
Accepted Values
Locator Field
Container Name
containerName
Yes
Container Description
description
No
Parent Container
parentName
No
Information Template
informationTemplate
No
allowedBlockTypes
No
Block Type
Information Templates
blockTypeInfo
Templates
No
allowedRootBlock
Types
No
allowedAllocFrom
ParentBlocktypes
No
ModifyContainer
Field
Attribute Nam e
Accepted Values
Locator Field
requireSWIPName
BlockTypes
No
allowedDeviceTypes
No
Device Information
Templates
deviceInfoTemplates
No
userDefinedFields
List of name=value
parameters, separated by |. If
the UDF type is Checkbox,
the valid values are on and off.
If the UDF type is Textarea,
use \n to separate lines.
No
Ignore disallowing a
block type in use
ignoreBlocktypeInUse
No
Maintain History
Records
maintainHistoryRecs
No
ModifyContainer
Field
Attribute Nam e
Accepted Values
Locator Field
replaceDhcpServer
No
replaceDhcpServerV6
No
applyDhcpToMultipar
entDevContainer
No
ModifyContainer
Each input line specifies the locator attribute-value pair, followed by a colon, followed by the
modification attribute-value pairs. For example, to change the description for the container
East:
containerName=East:description=new description
Separate multiple attribute-value pairs with commas. For example, to change both the
description and the information template for the container East:
containerName=East:description=new description,informationTemplate=templateName
For fields that are lists, separate the list elements with a vertical bar. For example, to set block
types for the container East:
containerName=East:allowedBlockTypes=Any|blocktyp1|blocktyp2
User Defined Fields use a nested attribute=value syntax. For example, to set user
defined fields for container East:
containerName=East:userDefinedFields=udf1=value1|udf2=value2
For fields that are lists, existing values, if any, may be replaced or merged. For example, for
container East, to replace the entire contents of the existing user defined fields, write:
containerName=East:userDefinedFields=state=PA|city=Exton
To update only some of the values in a list use the notation += when specifying the attribute
and value. In the example above, to update the city as Devon without changing or removing
the state value, write:
containerName=East:userDefinedFields+=city=Devon
To remove a value, specify the attribute but leave the value empty. For example, to remove
the description for container East:
containerName=East:description=
To modify information templates for block and device types, specify the list of templates in
the same order as the list of block or device types. For example:
containerName=East:allowedBlockTypes=Any|blocktype1|blocktype2, blockTypeInfoTemplates=|newT
emplate|newTemplate,allowedDeviceTypes=Printer|Router|Switch,deviceInfoTemplates=xTemplate|
xtemplate|newTemplate
In the above example, block type Any has no template, while blocktype1 and
blocktype2 use newTemplate. Device types Printer and Router use xTemplate,
and Switch uses newTemplate.
ModifyDevice
ModifyDevice
Overview
Parameters
Param eter
Required
Description
-u <userId>
Yes
Username
-p <pswd>
Yes
Password
-?
No
Print help
-f <update filename>
Yes
The name of the CSV file describing the modifications. See below
for the required file format.
-r <rejects file>
No
The name of the file that rejected records will be placed in.
-e <error messages>
No
The name of the file that error messages will be reported in.
Usage Example
$INCHOME/etc/cli/ModifyDevice.sh u joe p joepwd -f updatedevices.txt
-r updatedevices.reject e updatedevices.err
Output
If successful, the CLI updates the devices per the input file and exits.
File Format
The ModifyDevice CLI uses attribute-value pairs to specify the records and fields to be
changed. Each line in the input file must have a set of attribute-value pairs to locate the
device to be changed and a second set that specifies what attributes to modify.
If an attribute is not included in the modifier set, then its value is not changed.
The following table lists the available attributes for devices and also indicates which can be
used to locate a record.
ModifyDevice
Field
Attribute Nam e
Accepted Values
Locator
Field
IP Address
ipAddress
Yes
MAC Address
MACAddress
Yes
Address Type
addressType
No
Container
container
Yes, if IP
Address in
overlapping
space.
Description
description
No
Device Type
deviceType
No
Domain Name
domainName
No
Domain Type
domainType
No
Duplicate Warning
dupWarning
No
Host Name
hostname
Yes
Hardware Type
hwType
No
resourceRecordFlag
No
userDefinedFields
No
ModifyDevice
Field
Attribute Nam e
Accepted Values
Locator
Field
Aliases
aliases
No
Interfaces
interfaces
No
primaryDhcpServer
No
Each input line specifies the locator attribute-value pairs, followed by a colon, followed by the
modification attribute-value pairs. For example, to change the hostname for the device at
address 10.1.2.3:
ipAddress=10.1.2.3:hostname=newhostname
Separate multiple attribute-value pairs with commas. For example, to change both the
hostname and the description for the device at 10.1.2.3:
ipAddress=10.1.2.3:hostname=newhostname,description=New Host
This applies to the locator fields as well. For example, to change the hostname for the device
at 192.168.0.2 in Container Private:
ipAddress=192.168.0.2,container=Private:hostname=newhostname
Aliases, user defined fields, and interfaces values are lists. Separate the list elements with a
vertical bar. For example, to set two aliases for the device at 10.1.2.3:
ipAddress=10.1.2.3:aliases=alias1|alias2
User Defined Fields use a nested attribute=value syntax. For example, to set a user
defined field for IP Address 10.1.2.3:
ipAddress=10.1.2.3:userDefinedFields=udf1=value1|udf2=value2
For fields that are lists, existing values, if any, may be replaced or merged. For example, for IP
Address 10.1.2.3, to replace entire contents of the existing user defined fields, write:
ipAddress=10.1.2.3:userDefinedFields=state=PA|city=Exton
To update only some of the values in a list use the notation += when specifying the attribute
and value. Please note, the += notation does not apply to Interfaces when modifying multihome devices. In the example above, to update the city as Devon without changing or
removing the state value, write:
ipAddress=10.1.2.3:userDefinedFields+=city=Devon
ModifyDevice
To remove a value, specify the attribute but leave the value empty. For example, to remove
the description from the above device:
ipAddress=10.1.2.3:description=
Working with Multi-Home devices is more complex. To locate a multi-home device, specify
either the devices host name, or any of its IP Addresses or MAC addresses.
To update the IP Addresses or MAC Addresses, do NOT use the ipAddress or MACAddress
primary attributes. Instead, specify them as attributes of the interfaces.
Interfaces use a nested data structure syntax. For example:
To update the interfaces for the device with hostname newhostname and to modify their IP
Address, use colons between the interface attributes (line wrapped for readability):
hostname=newhostname:interfaces={name=Defau lt}|{name=eth0:ipAddress=10.1.2.3}|
{name=eth1:ipAddress=10.1.2.4}
To update the interfaces for the device with hostname newhostname and to add new
interfaces, use commas between the interface attributes (line wrapped for readability):
hostname=newhostname:interfaces={name=Default}{name=eth0,ipAddress=10.1.2.3}|
{name=eth1,ipAddress=10.1.2.4}
Attribute Nam e
Accepted Values
Locator
Field
Name
Name
Interface Name
Yes
IP Address
ipaddress
Yes
MAC Address
macAddress
Yes
Hardware Type
hwType
No
Sequence
Sequence
Reserved
No
Note: When adding or updating interfaces, all the existing interfaces need to be listed. Any
interfaces not specified will get deleted.
V6 Addresses
To specify an IPV6 address, # must be used as the separator between the locator pairs and the
modification pairs, since : is part of the address:
ipAddress= 2001::2#hostname=newhostname,description=New Host
ModifyDeviceResourceRecord
ModifyDeviceResourceRecord
Overview
Parameters
Param eter
Required
Description
-u <userId>
Yes
Username
-p <pswd>
Yes
Password
-?
No
Print help
-f <update filename>
Yes
The name of the CSV file describing the modifications. See below
for the required file format.
-r <rejects file>
No
The name of the file that rejected records will be placed in.
-e <error messages>
No
The name of the file that error messages will be reported in.
Usage Example
$INCHOME/etc/cli/ModifyDeviceResourceRecord.sh u joe p joepwd
-f updateeviceresourcerecs.txt -r updatedeviceresourcerecs.reject
e updatedeviceresourcerecs.err
Output
If successful, the CLI updates the device resource records per the input file and exits.
File Format
ModifyDeviceResourceRecord
Field
Attribute Nam e
Accepted Values
Locator
Field/
Required?
Domain Name
domain
Yes/Yes
Domain Type
domainType
Yes/No
Owner
owner
Yes/Yes
Host Name
hostname
Yes/Yes, unless
ipAddress is
specified
IP Address
ipAddress
Yes/Yes, unless
hostname is
specified
Container
container
Yes/No
TTL
TTL
No/No
Class
resourceRecClass
Yes/No
resourceRecType
Yes/Yes
Data
data
Yes/No, unless
required to
uniquely identify
the record.
Comment
comment
No/No
ModifyDeviceResourceRecord
Each input line specifies the locator attribute-value pairs, followed by a colon, followed by the
modification attribute-value pairs. For example, to change the data and TTL for a record:
domain=40.10.inaddr.arpa.,domainType=Default,owner=10.10,hostname=router00001,resourceRecClass=IN,resource
RecType=A:data="newDNS.ins.com",TTL=2400
This applies to the locator fields as well. For example, to change the owner for a record:
domain=40.10.inaddr.arpa.,domainType=Default,owner=10.10,hostname=router00001,resourceRecClass=IN,resource
RecType=A:owner=30.10
To remove a value, specify the attribute but leave the value empty. For example, to remove
the description from the above device:
domain=40.10.inaddr.arpa.,domainType=Default,owner=10.10,hostname=router00001,resourceRecClass=IN,resource
RecType=A:comment=
V6 Addresses
To specify an IPV6 address, # must be used as the separator between the locator pairs and the
modification pairs, since : is part of the address:
domain=example.com,domainType=Default,owner=router00015,ipAddress=3FFE:0000:0000:0015 ::,res
ourceRecClass=IN,resourceRecType=AAAA#TTL=2400
If the device is in overlapping space, and the device in both spaces have A records with
identical owners, if the administrators role does not indicate Ignore for "Allow Duplicate
A Record (Owner) Checking", this CLI will fail with Duplicate Resource Record.
ModifyDhcpServer
ModifyDhcpServer
Overview
Parameters
Param eter
Required
Description
-u <userId>
Yes
Username
-p <pswd>
Yes
Password
-?
No
Print help
-f <update filename>
Yes
The name of the CSV file describing the modifications. See below
for the required file format.
-r <rejects file>
No
The name of the file that rejected records will be placed in.
-e <error messages>
No
The name of the file that error messages will be reported in.
Usage Example
$INCHOME/etc/cli/ModifyDhcpServer.sh u joe p joepwd -f updatedhcp.txt
-r updatedhcp.reject e updatedhcp.err
Output
If successful, the CLI updates DHCP servers per the input file and exits.
File Format
The ModifyDhcpServer CLI uses attribute-value pairs to specify the records and fields to
be changed. Each line in the input file must have a set of attribute-value pairs to locate the
DHCP server to be changed and a second set specifies what attributes to change.
If an attribute is not included in the modifier set, then its value is not changed.
The following table lists the available attributes for DHCP servers and also indicates which
can be used to locate a record.
ModifyDhcpServer
Field
Attribute Nam e
Accepted Values
Locator
Field
Name
name
Yes
IP Address
ipAddress
Yes
Product
product
No
Agent
agent
No
Default Threshold
defaultThreshold
0-100
No
Global Sync
globalSync
True or False
No
Configuration Path
configPath
No
Lease Path
leasePath
No
Start Script
startScript
No
Stop Script
stopScript
No
Collection Type
collectionType
No
Collection Port
collectionPort
1-65535
No
Collection User
collectionUser
No
Collection Password
collectionPassword
CLI Command
cliCommand
No
cliUserName
No
CLI Password
cliPassword
No
CLI Arguments
cliArgs
No
Dynamic DNS
ddns
optionSet
No
policySet
No
clientClasses
No
DHCP Failover IP
Address
failoverIpAddress
Valid IP Address
No
failoverPort
1-65535
No
Configuration PreExtension
beginExtension
No
Configuration Postextension
endExtension
No
V4V6Both
v4v6both
v4, v6 or both
No
No
No
ModifyDhcpServer
Each input line specifies the locator attribute-value pairs, followed by a colon, followed by the
modification attribute-value pairs. To leave an attribute unchanged, simply omit it from the
modification attribute-value pairs. For example, to change the Client Classes for the server at
address 10.1.2.3:
ipAddress=10.1.2.3:clientClasses=allow1|allow2|deny3
For fields that are lists separated by vertical bars, existing values, if any, may be replace d or
merged. For example, for the server at address 10.1.2.3, to replace existing client classes
with allow3 in the example above, write:
startAddr=10.1.2.3:allowClientClasses=allow3
To update only some of the values in a list use the notation += when specifying the attribute
and value. In the example above, to allow a client class allow4 while keeping the allow3,
write:
containerName=East: allowClientClasses+=allow4
Separate multiple attribute-value pairs with commas. For example, to change both the option
set and the client classes for the server at 10.1.2.3:
ipAddress=10.1.2.3:optionSet=OptionSet1,clientClasses=allow1|allow2|deny3
The configuration extension fields can directly contain text or can specify a file name. For
example, to use the contents of the file beginext.txt as the extension at the beginning of
the configuration file:
name=dhcp123.com.com:beginExtension=file:beginext.txt
V6 Addresses
To specify an IPV6 address, # must be used as the separator between the locator pairs and the
modification pairs, since : is part of the address:
ipAddress=3FFE:0000:0000:0015::#clientClasses=allow1|allow2|deny3
ModifyDomainResourceRecord
ModifyDomainResourceRecord
Overview
Parameters
Param eter
Required
Description
-u <userId>
Yes
Username
-p <pswd>
Yes
Password
-?
No
Print help
-f <update filename>
Yes
The name of the CSV file describing the modifications. See below
for the required file format.
-r <rejects file>
No
The name of the file that rejected records will be placed in.
-e <error messages>
No
The name of the file that error messages will be reported in.
Usage Example
$INCHOME/etc/cli/ModifyDomainResourceRecord.sh u joe p joepwd
-f updatedomainresourcerecs.txt -r updatedomainresourcerecs.reject
e updatedomainresourcerecs.err
Output
If successful, the CLI updates the domain resource records per the input file and exits.
File Format
ModifyDomainResourceRecord
Field
Attribute Nam e
Accepted Values
Locator
Field/Required
Domain Name
domain
Yes/Yes
Domain Type
domainType
Yes/No
Owner
owner
Yes/Yes
TTL
TTL
No/No
Class
resourceRecClass
Yes/No
resourceRecType
Yes/Yes
Data
data
Yes/No
Comment
comment
No/No
Each input line specifies the locator attribute-value pairs, followed by a colon, followed by the
modification attribute-value pairs. For example, to change the data and TTL for a record:
domain=40.10.in-addr.arpa.,domainType=Default,owner=10.10,
resourceRecClass=IN,resourceRecType=A:data="newDNS.ins.com", TTL=2400
This applies to the locator fields as well. For example, to change the owner for a record:
domain=40.10.inaddr.arpa.,domainType=Default,owner=10.10,resourceRecClass=IN,resourceRecType=A:owner=30.10
To remove a value, specify the attribute but leave the value empty. For example, to remove
the description from the above device:
domain=40.10.inaddr.arpa.,domainType=Default,owner=10.10,resourceRecClass=IN,resourceRecType=A:comment=
ModifyDomainResourceRecord
If there are A records in overlapping space with identical owners, if the administrators role
does not indicate Ignore for "Allow Duplicate A Record (Owner) Checking", this CLI will
fail with Duplicate Resource Record.
V6 Addresses
To specify an IPV6 address, # must be used as the separator between the locator pairs and the
modification pairs, since : is part of the address:
domain=example.com,domainType=Default,owner=router00015,data=3FFE:0000:0000:0015 ::,resource
RecClass=IN,resourceRecType=AAAA#TTL=2400
ModifyNetElementInterface
ModifyNetElementInterface
Overview
Parameters
Param eter
Required
Description
-u <userId>
Yes
Username
-p <pswd>
Yes
Password
-?
No
Print help
-f <update filename>
Yes
The name of the CSV file describing the modifications. See below
for the required file format.
-r <rejects file>
No
The name of the file that rejected records will be placed in.
-e <error messages>
No
The name of the file that error messages will be reported in.
Usage Example
$INCHOME/etc/cli/ModifyNetElementInterfaceCLI.sh u joe p joepwd -f updatenei.txt
-r updatenei.reject e updatenei.err
Output
If successful, the CLI updates Network Element Interfaces per the input file and exits.
File Format
ModifyNetElementInterface
Field
Attribute Nam e
Accepted Values
Locator
Field/
Required
netElementName
Yes/Yes
Interface Name
interfaceName
Yes/Yes
Status
status
No/No
Each input line specifies the locator attribute-value pairs, followed by a colon, followed by the
modification attribute-value pairs. To leave an attribute unchanged, simply omit it from the
modification attribute-value pairs. Separate multiple attribute-value pairs with commas. For
example, to change a network elements interface name and status:
netElementName=RouterOne,interfaceName=Ethernet1:interfaceName=NewName,status =Enabled
ModifyPendingApproval
ModifyPendingApproval
Overview
Parameters
Param eter
Required
Description
-u <userId>
Yes
Username
-p <pswd>
Yes
Password
-?
No
Print help
-f <update filename>
Yes
-r <rejects file>
No
The name of the file that rejected records will be placed in.
-e <error messages>
No
The name of the file that error messages will be reported in.
Usage Example
$INCHOME/etc/cli/ModifyPendingApproval.sh u joe p joepwd -f pendingapprovals.csv
-r pendingapprovals.reject e pendingapprovals.err
Output
If successful, the CLI approves and rejects changes per the input file and exits.
File Format
The ModifyPendingApproval CLI uses attribute-value pairs to specify the records and
action to be taken. Each line in the input file must have an attribute-value pair to locate the
pending approval record to be resolved followed by a set that specifies the action to be taken.
The following table lists the available attributes for this CLI.
ModifyPendingApproval
Field
Attribute
Nam e
Accepted Values
Locator
Field
Workflow id
workflowId
Yes
Action
action
No
Reason
reason
No
Each input line specifies the locator attribute-value pair, followed by a colon, followed by the
optional modification attribute-value pairs.
For example, to reject a pending approval:
workflowId=1018:action="Reject",reason=change not appropriate at this time
ModifyPrefixPool
ModifyPrefixPool
Overview
Parameters
Param eter
Required
Description
-u <userId>
Yes
Username
-p <pswd>
Yes
Password
-?
No
Print help
-f <update filename>
Yes
The name of the CSV file containing modify instructions. See below
for the required file format.
-r <rejects file>
No
The name of the file that rejected records will be placed in.
-e <error messages>
No
The name of the file that error messages will be reported in.
Usage Example
$INCHOME/etc/cli/ModifyPrefixPool.sh u joe p joepwd -f updateprefixpools.txt
-r updateprefixpools.reject e updateprefixpool.err
Output
If successful, the CLI updates the prefix pools per the input file and exits.
File Format
The ModifyPrefixPool CLI uses attribute-value pairs to specify the records and fields to
be changed. Each line in the input file must have a set of attribute-value pairs to locate the
prefix pool to be changed and a second set specifies what fields to change and their new
values.
The following table lists the available attributes for prefix pools and also indicates which can
be used to locate a record.
ModifyPrefixPool
Field
Attribute Nam e
Accepted Values
Locator
Field
Start Address
startAddr
Required
Length
length
No
type
One of Dynamic PD
DHCPv6, Automatic PD
DHCPv6.
No
Name
name
No
Container
container
Delegated Prefix
Length
delegatedPrefixLen
gth
No
shortestPrefixLengt
h
No
longestPrefixLengt
h
No
primaryNetService
No
dhcpOptionSet
No
dhcpPolicySet
No
allowClientClasses
No
denyClientClasses
No
ModifyPrefixPool
Each input line specifies the locator attribute-value pairs, followed by a pound sign, followed
by the modification attribute-value pairs. For example, to change the length for the pool
starting at address 2001:db8:0:1::
startAddr=2001:db8:0:1::#length=66
Separate multiple attribute-value pairs with commas. For example, to change both the length
address and the DHCP Server for the address pool starting at 2001:db8:0:1::
startAddr=2001:db8:0:1::#length=66,primaryNetService=newserver
This applies to the locator fields as well. For example, to change the length for the pool
starting at 2001:db8:0:1:: in Container Private:
startAddr=2001:db8:0:1::,container=Private#length=66
Some values are lists. Separate the list elements with a vertical bar. For example, to allow two
Client Classes for the pool starting at 2001:db8:0:1::
startAddr=2001:db8:0:1::#allowClientClasses=allow1|allow2
For fields that are lists, existing values, if any, may be replaced or merged. For example, for
the pool starting at 2001:db8:0:1::, to replace allow1 and allow2 with allow3 in the
example above write:
startAddr=2001:db8:0:1::#allowClientClasses=allow3
To update only some of the values in a list use the notation += when specifying the attribute
and value. In the example above to allow a client class allow4 while keeping the allow3,
write:
startAddr=2001:db8:0:1::#allowClientClasses+=allow4
To remove a value, specify the attribute but leave the value empty. For example, to remove
the allowClientClasses from the above pool:
startAddr=2001:db8:0:1::#allowClientClasses=
SplitBlock
SplitBlock
Overview
The SplitBlock CLI allows the user to split an existing block into smaller blocks. This CLI
allows you to specify a single block on the command line. Note that splitting a block attached
to multiple containers is not supported via the CLI.
Usage
Direct
$INCHOME/jre/bin/java cp $CLASSPATH
com.diamondip.ipcontrol.cli.SplitBlockCLI u <userId> -p <pswd>
-b <block Name> [-c <container name>] [-t <target start address>] [-s <target size>]
[-q <equal sizes>] [-r <rejects file>] [-e <error messages>] [-?]
Parameters
Param eter
Required
Description
-u <userId>
Yes
Username
-p <pswd>
Yes
Password
-?
No
Print help
-r <rejects file>
No
-e <error messages>
No
The name of the file that error messages will be reported in.
-b <block name>
Yes
-c <container name>
Must be specified
if the block name
is not unique.
No
The start address of the target block. This is useful for creating
a block using the specified start address and target block size.
If no start address is specified, the start address of the block
being split will be used.
-s <target size>
Yes
The desired CIDR block size after the split. This parameter
works in conjunction with the equalSizes parameter.
-q <equal sizes>
No
Specify true or false. If true, the block is split such that all
resulting blocks have the target size CIDR size. If false, the
block is split such that the fewest number of new blocks is
created, along with two blocks of targetSize. The default is
false.
SplitBlock
Usage Example
This example splits the block 10.1.2.0/24 into 8 /27 blocks. If e were false, the result
would be one /25, one /26 and two /27 blocks.
$INCHOME/etc/cli/SplitBlock.sh u joe p joepwd b 10.1.2.0/24 s 27 q true
UseNextReservedIPAddress
UseNextReservedIPAddress
Overview
Parameters
Param eter
Required
Description
-u <Username>
Yes
Username
-p <pswd>
Yes
Password
-?
No
Print help
-b <block address>
Yes
-d <device type>
Yes
-h <host name>
No
-r <resource record
flag>
No.
Defaults to
false.
DhcpRelease
Utilities
DhcpRelease
Overview
Please note that the DhcpRelease CLI is applicable only for DHCPv4 environments.
The DhcpRelease CLI is used to force the release of a DHCP lease. A DHCP lease is a
contract for the use of an IP address between the DHCP server and client for a specific
amount of time. This CLI can be used in lieu of performing a release of the lease from the
client itself. Instead, this CLI will create a DHCP Release packet identifying the clients
hardware address and IP address, and send the request to the DHCP server. The DHCP
server will then free the lease as if the release was sent from the actual client. This then makes
the freed IP address available for lease assignment to another client on the subnet.
Usage
Direct
$INCHOME/jre/bin/java cp $CLASSPATH
com.diamondip.ipcontrol.cli.DhcpReleaseCLI [s <server>] -m <macaddr> -i <ipaddr>
[-f <filename>] [-?]
Parameters
Param eter
Required
Description
-s <server>
No
-m <macaddr>
Yes
-i <ipaddr>
Yes
-?
No
Print help
-f <filename>
No
The name of the CSV file which defines leases to be released. See
below for the required file format.
Usage Examples
This example releases the lease for IP address 10.10.10.101 for the client with MAC address
de:ad:be:ef:ca:fe on the DHCP server at IP address 10.10.10.1.
DhcpRelease
This example issues a release for each lease identified in the dhcprelease.csv file.
$INCHOME/etc/cli/DhcpRelease.sh f dhcprelease.csv
Output
The output from the CLI indicates the specific parameters used to issue the DHCP Release.
These log entries can be found in the CLI logfile ($INCHOME/etc/cli/log/ns_webservice.log)
when the appropriate logging level is configured:
16:10:02,506 ()[main] INFO DHCPRelease - Building DHCP Release packet
16:10:02,606 ()[main] INFO DHCPRelease - Sending DHCP Release to server=10.10.10.1 for
MAC=de:ad:be:ef:ca:fe and IP=10.10.10.101
If successful, a corresponding entry for the DHCP release appears in the appropriate syslog
output file (/var/log/daemon.log for Sapphire Appliances) on the DHCP server:
Jan 2 16:11:16 sapphire dhcpd: DHCPRELEASE of 10.10.10.101 from de:ad:be:ef:ca:fe (client hostname) via eth0 (found)
File Format
Col
Field
Accepted Values
Required
Server IP Address
Yes
Yes
Format: a1:b2:c3:d4:e5:f6
C
Client IP Address
Yes
Notes
This CLI should be used with extreme caution. Only authorized network administrators should
attempt to run this CLI. A lease is a contract between a DHCP server and a DHCP client.
Using this CLI to simulate client behavior is potentially dangerous. For example, releasing an
active lease for a client that is still on the network could lead to duplicate IP address situations.
Therefore, this CLI should only be used when it can be guaranteed by the network
administrator that the lease(s) are no longer in use by the client . Due to the different
DHCP client implementations, the results of releasing an active lease are unpredictable. If the
client is actively using the IP address when the lease is released, the client may immediately
loose network connectivity. If the client maintains the lease offline when the lease is released,
then the client may not be able to obtain network connectivity on the subnet for which the
lease was released.
Caveats
Reliability
It is important to note that there is no reply message from the DHCP server to the client in
response to the DHCP Release. Therefore, the CLI cannot verify that the release was
successful. In addition, the packet is sent via UDP, making it impossible to detect if the server
even received the release message.
DhcpRelease
Network Connectivity
This CLI must be run from a network host which allows DHCP traffic to the DHCP server.
Specifically, the CLI will open a high numbered (1025+), ephemeral, port on the local host
and direct UDP packets to port 67 on the specified DHCP server. Router and firewall rules
must allow such traffic.
Localhost Usage
In many cases, to avoid network connectivity issues noted above, it is convenient to run the
CLI from the same host as the DHCP server and specify a server IP address of 127.0.0.1.
Each IPControl platform has different behavior with respect to running the CLI locally.
Sapphire/Linux supported only with ISC DHCP v3.x. ISC DHCP v4.x does not
support listening on the loopback address.
Linux kernel versions 2.6.18-2.6.26, inclusive, contain a bug that creates a bad UDP checksum
for packets sent on the localhost. If you are running a Sapphire Appliance or a Linux
distribution with a kernel version in this range, the DhcpRelease CLI will not function from
the localhost. You can verify your kernel version by running uname a in a console window.
Additionally, the server must be configured with the loopback subnet in the dhcpd.conf file. By
default, the appropriate statement is automatically added to the dhcpd.conf file when a DHCP
Configuration task is performed.
subnet 127.0.0.1 netmask 255.255.255.255 {
}
If the servers configuration does not include this statement, modify the DHCP servers
configuration via Topology Network Services Edit DHCP Server. Select the
Extensions tab and insert the above loopback subnet declaration to be appended to the end of
the configuration file. After making these changes, push the new configuration to the DHCP
server via Management Configuration/Deployment DHCP Configuration All Files.
Once the server has been restarted using the modified dhcpd_start script and is configured
with the loopback subnet, then the DhcpRelease CLI can be run from the localhost of the
DHCP server itself.
Purge
Purge
Overview
The Purge utility will delete records from the set of IPControl tables listed below that are
older than the specified date constraint (-c or d) in batches of 1000 records.
To configure the date constraint from which all older records will be deleted, specify a date ( c) or number of days from today (-d). NOTE: a date constraint is required to operate the
utility.
To limit the tables to purge, use the t parameter which is constrained to the following tables:
ADDRPOOLHISTORY
ALERTLOG
AUDITLOG
BLOCKHISTORY
CONTAINERHISTORY
EVENTLOG
If the performance of the individual delete statements becomes an issue, the batch size can be
changed using the b parameter.
Database connection information is automatically derived from the IPControl jdbc.properties
found in the product CLASSPATH.
Usage
Direct
$INCHOME/jre/bin/java cp $CLASSPATH com.diamondip.ipcontrol.cli.purge
[-p] [-v] [-i] [-q] [-b size] [-t table,...] -c YYYY-MM-DD | -d days [-?]
Parameters
Param eter
Required
Description
-p
No
-v
No
-i
No
-q
No
Purge
-b <size>
No
-c <YYYY-MM-DD>
Yes, if d not
specified.
Purge date. All records older than this date will be deleted.
-d <days>
Yes, if c not
specified.
Number of days from the current date to keep. All older records will
be deleted.
-t <table,...>
No
-?
No
Print help
Usage Example
This example will delete all records older then 2013-05-01 in a batch size of 5 for the
addrpoolhistory table.
$INCHOME/etc/cli/purge.sh -b 5 -c 2013-05-01 -t addrpoolhistory
JDBC Properties ]
jdbc.driverClassName
jdbc.url
jdbc.username
jdbc.password
=
=
=
=
oracle.jdbc.driver.OracleDriver
jdbc:oracle:thin:@localhost:1521:ipam
incadmin4
********
[ Job Properties ]
+ Preview
= false
+ Verbose
= false
+ Interactive
= false
+ Quiet Mode
= false
-----------------------------------------------2013-05-15 15:54:56 2013-05-15 15:54:56 - #JOB# - Execute purge ADDRPOOLHISTORY by LOGDATE
2013-05-15 15:54:56 - + Purge recs older then: 2013-05-01
2013-05-15 15:54:56 - + Batch size: 5
2013-05-15 15:54:56 - + Recs found: 33
2013-05-15 15:54:56 - 33 ADDRPOOLHISTORY records will be deleted in 7 batches.
2013-05-15 15:54:56 - + DELETESQL = DELETE FROM ADDRPOOLHISTORY WHERE LOGDATE <
TO_DATE('2013-05-01', 'YYYY-MM-DD') AND ROWNUM <= 5
2013-05-15 15:54:56 - Batch 1 deleted 5 recs
2013-05-15 15:54:56 - Batch 2 deleted 5 recs
2013-05-15 15:54:56 - Batch 3 deleted 5 recs
2013-05-15 15:54:56 - Batch 4 deleted 5 recs
2013-05-15 15:54:56 - Batch 5 deleted 5 recs
2013-05-15 15:54:56 - Batch 6 deleted 5 recs
2013-05-15 15:54:56 - Batch 7 deleted 3 recs
2013-05-15 15:54:56 - #JOB# - Purge complete, deleted 33 recs, 16ms
2013-05-15 15:54:56
2013-05-15 15:54:56 - #DONE# - Processing completed, 17ms
Purge
Output
Unless quiet mode (-q ) in invoked the utility will write out its operating environment
parameters and a running summary of its execution results to stdout. A full execution report
will also be logged to the location specified in
$INCHOME/etc/support/purge_log4j.properties for every run. By default the log will be
found under ${INCX_HOME}/log/purge.log.
Notes
This utility should be used with caution as deleted records can not be restored without a
database backup. For this reason its recommended to first run the purge utility in preview
mode (e.g. $INCHOME/etc/cli/purge.sh -p) to get an idea of the scope of the work that will
be done, followed by interactive mode (e.g. $INCHOME/etc/cli/purge.sh -i) to force a user
to confirm each table aggregate delete operation.
181
// Axis-generated class
ImportsServiceLocator locator = new ImportsServiceLocator();
// Setup for authorization handlers
ImportsSoapBindingStub stub = (ImportsSoapBindingStub)locator.getImports(url);
stub.setUsername(incadmin);
stub.setPassword(incadmin);
// Set up input parameter structure
WSDevice wsdevice = new WSDevice();
wsdevice.setIpAddress(blockName);
wsdevice.setDeviceType(deviceType);
wsdevice.setHostname(hostName);
wsdevice.setResourceRecordFlag(resourceRecordFlag);
// Use Axis-generated class to call the web service
String address = stub.importDevice(wsdevice);
// Error handling shown in next section
return address;
Below is an example of a client using .NET to invoke the findNetService operation of the
Exports web service:
Public
Dim
Dim
Dim
Dim
myWS.Credentials = myCred
myWS.Url = "http://localhost:8081/inc-ws/services/Exports"
Try
myNS = myWS.findNetService("", "", "", "", "", "", "")
For i = 0 To myNS.Length - 1
Console.WriteLine("Name={0} IP={1} Type={2}",
myNS(i).name, myNS(i).ipAddress, myNS(i).type)
Next
Catch myErr As SoapException
dumpError(myErr)
Catch otherErr As Exception
Console.WriteLine(otherErr.ToString)
End Try
End Sub
Error Processing
Error Processing
When the web service finds an error during processing, it uses the fault codes defined in
SOAP 1.1, along with additional information in the detail element, to convey the nature of the
error. Below is a sample of the XML that will be sent to the client.
<soapenv:Envelope
xmlns:soapenv=http://schemas.xmlsoap.org/soap/envelope/
xmlns:xsd=http://www.w3.org/2001/XMLSchema
xmlns:xsi="http://www.w3.org/2001/XMLSchema -instance">
<soapenv:Body>
<soapenv:Fault>
<faultcode>soapenv:Server</faultcode>
<faultstring>Unknown root block type: 0</faultstring>
<faultactor>http://localhost:8080/nc/services/RootBlockImport</faultactor>
<faultDetail>
<returnCode>-14</returnCode>
</faultDetail>
</soapenv:Fault>
</soapenv:Body>
</soapenv:Envelope>
Java clients can catch the error as an Exception and access the message. Below is a sample
code fragment of a client using Java and Axis to retrieve the information in the detail element
of the XML:
try {
Invoke web service
}
catch (Exception ex) {
String errMsg = "Line " + inputLine + ": " +ex.getMessage();
System.err.println("Exception - " + errMsg);
if (ex instanceof AxisFault) {
// Retrieve Axis Fault detail
AxisFault fault = (AxisFault) ex;
Element[] elements =fault.getFaultDetails();
System.err.println("AxisFault returned:");
System.err.println(" faultcode: " + fault.getFaultCode());
System.err.println(" faultstring: "+fault.getFaultString());
System.err.println(" faultdetail tag: " + elements[0].getTagName());
System.err.println(" faultdetail node value: " +
elements[0].getFirstChild().getNodeValue());
} else {
ex.printStackTrace();
}
}
Other SOAP toolkits (e.g., .NET and Perl) can parse the XML for the details, or ignore those
tags if that level of detail about the exception is not required for the application.
Available Application Program Interface Matrix
Object
Address Pool
Import
X
Aggregate Block
Block
Modify
X
Delete
X
Export
X
X
Object
Container
Device
Import
X
Modify
X
Delete
X
Export
X
Device Interface
Device RR
DHCP Server
Domain
Domain RR
Galaxy Domain
NetElement
NetElementInterface
Netservice
PrefixPool
RootBlock
Zone
Zone RR
Next Available IP
JoinBlock
Site (multiple block allocation)
X
X
X
X
X
X
X
X
X
(see
ImportZone)
X
X
X
X
N/A
N/A
N/A
Delete
X
Export
X
GlobalRollup
DiscoverNetElement
DhcpUtilization
GetTask
Split Block
Detach Block
Task
GlobalNetElementSync
GlobalNetServiceSync
Import
X
Modify
ImportElementSnapshot
ImportServiceSnapshot
GetTask Status
AddSite
Imports
Overview
This section explains the web services available for importing information to IPControl. Each
of these services is available as an operation in the Imports web service. You can see t he
complete WSDL at: http://localhost:8080/inc-ws/services/Imports?wsdl
AddSite
Overview
The AddSite API enables the web service client to add a site to a container using an existing
Site Template.
Request and Response Messages
Below is the portion of Imports.wsdl that describes the addSite request and response
messages.
< wsdl:message name="addSiteResponse">
<wsdl:part name="addSiteReturn" type="soapenc:string"/>
</wsdl:message>
< wsdl:message name="addSiteRequest">
<wsdl:part name="site" type="tns2:WSSite"/>
</wsdl:message>
Response
The string returned in the response contains a comma-separated list of block names added,
for example, 10.0.0.0/24, 10.0.1.0/25.
Request
The complex type WSSite, which is passed as input from the client to the web service, is
described in the next section.
Parameters
WSSite
Below is the portion of Imports.wsdl that describes WSSite, the parameter structure passed
to addSite. The elements are described in the table that follows.
<complexType name="WSSite">
<sequence>
<element name="container" nillable="true" type="soapenc:string"/>
<element maxOccurs="unbounded" name="siteBlockDetails" nillable="true"
type="tns2:WSSiteBlockDetails"/>
<element name="siteTemplateName" nillable="true" type="soapenc:string"/>
</sequence>
</complexType>
Elem ent
Required
Return
Code
Faultstring
container
yes
-42
Container required
-5
A repeating structure of
parameters used in creating the
blocks from the template. See
below for details.
no
-214
yes
-211
-212
siteTemplateName
-213
-215
WSSiteBlockDetails
Elem ent
Description and
accepted values
Required
addrDetails
Define attributes of
any address
allocations of the
allocation template
specified by the site
allocation template
for this block. See
below for syntax.
no
no
allocationReasonDescription
A description of the
reason for the
allocation. Wrap the
statement in
"quotes" if it
contains any
commas.
no
interfaceName
SWIP name
allocationReason
swipName
Return
Code
Faultstring
-22
Invalid allocation
reason allocReason
-19
No interface found
-20
Interface name is
required for device
containers
-66
-70
userDefinedFields
Array of user
defined fields. Each
element in the array
has the format
"name=value"
where "name is the
UDF tag name.
yes, if required by
template
-63
-61
SWIPname is
required for this
container/blocktype
SWIPname is not
allowed for this
container/blocktype
Invalid UDF: udf
Missing required
UDF: udf
WSAllocationTemplateDetails
Description and
accepted values
Required
Return
Code
Faultstring
netserviceName
no
-185
Invalid network
service name:
name
yes
no
yes
-173
Block details do
not match site
template details
offsetFromBeginningOfSubnet
sharename
Deprecated
startingOffset
-174
Invalid starting
offset: offset for
allocation
template:
template name
DetachBlock
DetachBlock
Overview
The DetachBlock API enables the web service client detach blocks from device containers
in IPControl.
Request and Response Messages
Below is the portion of Imports.wsdl that describes the detachBlock request and response
messages.
<wsdl:message name="detachBlockResponse ">
<wsdl:part name="detachBlockReturn" type="soapenc:string" />
</wsdl:message>
<wsdl:message name="detachBlockRequest">
<wsdl:part name=" name="childBlock" type="tns1:WSChildBlock" />
</wsdl:message>
Response
The string returned in the response contains the name of the block detached, for example,
10.0.0.128/28.
Request
The complex type WSChildBlock, which is passed as input from the client to the web
service, is described in the next section.
Parameters
WSChildBlock
Below is the portion of Imports.wsdl that describes WSChildBlock, the parameter structure
passed to detachBlock. The elements are described in the table that follows.
<complexType name="WSChildBlock">
<sequence>
<element name="SWIPname" nillable="true" type="xsd:string" />
<element name="allocationReason" nillable="true" type="xsd:string" />
<element name="allocationReasonDescription" nillable="true" type="xsd:string" />
<element name="allocationTemplate" nillable="true" type="xsd:string" />
<element name="blockAddr" nillable="true" type="x sd:string" />
<element name="blockName" nillable="true" type="xsd:string" />
<element name="blockSize" nillable="true" type="xsd:string" />
<element name="blockStatus" nillable="true" type="xsd:string" />
<element name="blockType" nillable="true" type="xsd:string" />
<element name="container" nillable="true" type="xsd:string" />
<element name="createReverseDomains" nillable="true" type="xsd:string" />
<element name="description" nillable="true" type="xsd:string" />
<element name="domainType" nillable="true" type="xsd:string" />
<element name="interfaceAddress" nillable="true" type="impl:ArrayOf_soapenc_string"/>
<element name="interfaceName" nillable="true" type="xsd:string" />
<element name="ipv6" type="xsd:boolean"/>
<element name="primarySubnet" type="xsd:boolean"/>
<element name="userDefinedFields" nillable="true" type="impl:ArrayOf_xsd_string" />
<element name="excludeFromDiscovery" nillable="true" type="xsd:string" />
</sequence>
</complexType>
DetachBlock
Elem ent
Required
SWIPname
Ignored
no
allocationReason
Ignored
no
allocationReason
Description
Ignored
no
allocationTemplate
Ignored
no
blockAddr
yes, if
blockName
is not
specified
Return
Code
Faultstring
-183
Blockname or address
space/block size
required
-26
Invalid IpAddress:
blockAddr
-36
Block blockAddr
not found
blockName
yes, if
blockAddr is
not specified
-36
blockSize
yes, if
blockAddr is
used
-15
blockStatus
Ignored
no
blockType
Ignored
no
container
yes
-42
Container required
-5
-184
createReverseDomains
Ignored
no
Description
Ignored
no
domainType
Ignored
no
interfaceAddress
Ignored
no
interfaceName
Ignored
no
ipv6
Ignored
no
userDefinedFields
Ignored
no
excludeFromDiscovery
Ignored
no
primarySubnet
Ignored
no
Im portAddressPool
ImportAddressPool
Overview
The ImportAddressPool API enables the web service client to import or modify
containers in IPControl.
Request and Response Messages
Below is the portion of Imports.wsdl that describes the importAddressPool request and
response messages.
<wsdl:message name="importAddressPoolRequest">
<wsdl:part name="addrpool" type="tns2:WSAddrpool"/>
</wsdl:message>
<wsdl:message name="importAddressPoolResponse"/>
Response
The complex type WSAddrpool, which is passed as input from the client to the web service,
is described in the next section.
Parameters
WSAddrpool
Below is the portion of Imports.wsdl that describes WSAddrpool, the parameter structure
passed to importAddressPool. The elements are described in the table that follows.
<complexType name="WSAddrpool">
<sequence>
<element name="allowClientClasses" nillable="true" type="impl:ArrayOf_soapenc_string"/>
<element name="container" nillable="true" type="soapenc:string"/>
<element name="denyClientClasses" nillable="true" type="impl:ArrayOf_soapenc_string"/>
<element name="dhcpOptionSet" nillable="true" type="soapenc:string"/>
<element name="dhcpPolicySet" nillable="true" type="soapenc:string"/>
<element name="endAddr" nillable="true" type="soapenc:string"/>
<element name="failoverNetService" nillable="true" type="soapenc:string"/>
<element name="id" nillable="true" type="soa penc:string"/>
<element name="name" nillable="true" type="soapenc:string"/>
<element name="primaryNetService" nillable="true" type="soapenc:string"/>
<element name="sharename" nillable="true" type="soapenc:string"/>
<element name="startAddr" nillable="true" type="soapenc:string"/>
<element name="type" nillable="true" type="soapenc:string"/>
<element name="prefixLength" nillable="true" type="soapenc:string"/>
</sequence>
</complexType>
Im portAddressPool
Elem ent
Required
Return
Code
Faultstring
id
No for
creates,
Yes for
updates.
-117
Yes
-115
-36
-97
-115
-115
-26
-26
-115
-73
startAddr
endAddr
Yes for
IPv4
pools.
type
Yes
name
No
sharename
No
container
No, unless
startAddr
is not
unique.
-36
primaryNet
Service
Yes, when
a DHCP
server is
not
defined
for the
subnet.
-94
Deprecated
Im portAddressPool
Elem ent
Required
Return
Code
Faultstring
failoverNet
Service
No
-94
-96
No
-67
No
-68
No
-116
No
-116
Yes for
IPv6
pools.
-258
dhcpOptionSet
allowClient
Classes
denyClientClas
ses
prefixLength
Im portAggregateBlock
ImportAggregateBlock
Overview
The ImportAggregateBlock API enables the web service client to insert an intermediate
level aggregate block between existing blocks in the block hierarchy. By specifying a parent
block, target block, and a container, the service will handle validating and inserting the desired
aggregate block. The service will also adjust the parent block assignments of any would-be
child blocks.
Request and Response Messages
Below is the portion of Imports.wsdl that describes the importAggregateBlock request and
response messages.
<wsdl:message name="importAggregateBlockRequest">
<wsdl:part name="aggregateBlock" type="tns2:WSAggregateBlock"/>
</wsdl:message>
<wsdl:message name="importAggregateBlockResponse">
Response
The complex type WSAggregateBlock, which is passed as input from the client to the web
service, is described in the next section.
Parameters
WSAggregateBlock
name="WSAggregateBlock">
name="SWIPname" nillable="true" type="soapenc:string"/>
name="allocationReason" nillable="true" type="soapenc:string"/>
name="allocationReasonDescription" nillable="true" type="soapenc:string"/>
name="blockAddr" nillable="true" type ="soapenc:string"/>
name="blockName" nillable="true" type="soapenc:string"/>
name="blockSize" nillable="true" type="soapenc:int"/>
name="blockType" nillable="true" type="soapenc:string"/>
name="container" nillable="true" type="soapenc:string"/>
name="createReverseDomains" type="xsd:boolean"/>
name="description" nillable="true" type="soapenc:string"/>
name="domainType" nillable="true" type="soapenc:string"/>
name="interfaceAddress" nillable="true" type="soapenc:string"/>
name="interfaceName" nillable="true" type="soapenc:string"/>
name="parentBlockAddr" nillable="true" type="soapenc:string"/>
name="parentBlockContainer" nillable="true" type="soapenc:string"/>
name="parentBlockSize" nillable="true" type="soapenc:int"/>
name="userDefinedFields" nillable="true" type="impl:ArrayOf_soapenc_string"/>
Im portAggregateBlock
</sequence>
</complexType>
Elem ent
Required
Return
Code
Faultstring
container
Yes
-42
-5
-99
Yes
-127
-12
blockAddr
blockSize
Yes
-15
blockType
No
-13
blockName
No
description
No
SWIPname
Yes, if
required
by
container
rules
-66
-70
-22
-20
-19
No interface found
-5
Allocation
Reason
No
Allocation
Reason
Description
No
Interface
Name
Yes, if
block is
being
added to
device
container.
Otherwise
, no.
No
Interface
Address
Im portAggregateBlock
Elem ent
Required
Return
Code
Faultstring
Create
Reverse
Domains
Whether or not to
automatically create reverse
DNS domain(s) for this block.
Accepted values are true or
false. If not specified, defaults
to false.
No
-82
domainType
No
-2
-81
Yes, for
UDFs
defined as
required
fields.
-53
-63
-64
Yes
-42
-5
-99
-127
-12
-15
userDefined
Fields
parentBlock
Container
parentBlock
Addr
parentBlock
Size
Yes
Yes
Im portChildBlock
ImportChildBlock
Overview
The ImportChildBlock API enables the web service client to import child blocks into
IPControl. This API is used to define sub-allocations of address space, taken from parent
address space. This space is allocated from the parent, and then marked with the status that is
specified in the request. The name of the block allocated is returned to the client application
in the response.
This API can also be used to attach existing blocks to another container by specifying an
existing blockAddr.
Request and Response Messages
Below is the portion of Imports.wsdl that describes the importChildBlock request and
response messages.
<wsdl:message name="importChildBlockResponse">
<wsdl:part name="importChildBlockReturn" type="soapenc:string" />
</wsdl:message>
<wsdl:message name="importChildBlockRequest">
<wsdl:part name="inpChildBlock" type="tns1:WSChildBlock" />
<wsdl:part name="inpBlockPolicy" type="tns1:WSSubnetPolicy" />
</wsdl:message>
Response
The string returned in the response contains the name of the block allocated, for example,
10.0.0.128/28.
Request
The complex types WSChildBlock and WSSubnetPolicy, which are passed as input from
the client to the web service, are described in the next section.
Parameters
WSChildBlock
Below is the portion of Imports.wsdl that describes WSChildBlock, the first parameter
structure passed to importChildBlock. The elements are described in the table that
follows.
<complexType
<sequence>
<element
<element
<element
<element
<element
<element
<element
<element
<element
<element
name="WSChildBlock">
name="SWIPname" nillable="true" type="xsd:string" />
name="allocationReason" nillable="true" type="xsd:string" />
name="allocationReasonDescription" nillable="true" type="xsd:string" />
name="allocationTemplate" nillable="true" type="xsd:string" />
name="blockAddr" nillable="true" type="xsd:string" />
name="blockName" nillable="true" type="xsd:string" />
name="blockSize" nillable="true" type="xsd:string" />
name="blockStatus" nillable="true" type="xsd:string" />
name="blockType" nillable="true" type="xsd:string" />
name="container" nillable="true" type="xsd:string" />
Application Program Interfaces (API) 199
Im portChildBlock
Elem ent
Required
Return
Code
Faultstring
SWIPname
yes, for
containers
with rules
requiring
it
-66
-70
-22
allocationReason
no
allocationReason
Description
no
allocationTemplate
no
blockAddr
no
blockName
no
blockSize
blockStatus
blockType
No validation required
-65
Invalid allocation
template: template
-69
Allocation template
offsets invalid for this
block
-71
-12
yes
-15
yes
-17
no
-13
Im portChildBlock
Elem ent
Required
Return
Code
Faultstring
container
yes
-5
-6
-7
Container name
ambiguous:
containerName
-1
-8
Database error
-82
createReverseDomains
must be true or false:
value
createReverseDomains
no
Description
no
domainType
no
-81
interfaceAddress
no
-18
Invalid interface
address: interfaceAddress
-21
-20
-19
-24
No interface name
specified, could not
attach to device
container.
No validation required
yes, for
device
containers
only
Im portChildBlock
Elem ent
Required
Return
Code
Faultstring
ipv6
No
primarySubnet
No
-17
importBlock set
primary subnet failed:
flag supported only for
In-Use/Deployed
blocks
yes, for
UDFs
defined as
required
fields
-63
-64
no
-82
excludeFromDiscovery
must be true or false:
excludeFromDiscovery
value
-13
WSSubnetPolicy
Below is the portion of Imports.wsdl that describes WSSubnetPolicy, the second parameter
structure passed to importChildBlock. The elements are described in the table that
follows.
<complexType name="WSSubnetPolicy">
<sequence>
<element name="DHCPOptionsSet" nillable="true" type="soapenc:string"/>
<element name="DHCPPolicySet" nillable="true" type="soapenc:string"/>
<element name="DNSServers" nillable="true" type="impl:ArrayOf_soapenc_string"/>
<element name="defaultGateway" nillable="true" type="soapenc:string"/>
<element name="failoverDHCPServer" nillable="true" type="soapenc:string"/>
<element name="forwardDomainTypes" nillable="true" type="impl:ArrayOf_soapenc_string"/>
<element name="forwardDomains" nillable="true" type="impl:ArrayOf_soapenc_string"/>
<element name="networkLinks" nillable="true" type="soapenc:string"/>
<element name="primaryDHCPServer" nillable="true" type="soapenc:string"/>
<element name="primaryWINSServer" nillable="true" type="soapenc:string"/>
<element name="reverseDomainTypes" nillable="true" type="impl:ArrayOf_soapenc_string"/>
<element name="reverseDomains" nillable="true" type="impl:ArrayOf_soapenc_string"/>
</sequence>
</complexType>
Elem ent
Required
Return
Code
Faultstring
DHCPOptionsS
et
no
-67
Im portChildBlock
Elem ent
Required
Return
Code
Faultstring
DHCPPolicySet
no
-68
DNSServers
no
-93
defaultGateway
no
-26
Invalid IP Address:
ipaddress
failover
DHCPServer
no
-94
Forward
Domains
no
-95
forwardDomain
Types
no
-81
networkLinks
Reserved
no
primaryDHCP
Server
no
-94
primaryWINS
Server
no
-26
Invalid IP Address:
ipaddress
reverseDomains
no
-95
reverseDomain
Types
no
-81
Faultstring
-2
Allocation failed
-3
-8
-9
-23
-53
SQL Exception
-96
-96
-99
Access Denied. The administrator does not have rights to add any blocks OR the administrator
does not have rights to add blocks to the specified container.
Im portContainer
ImportContainer
Overview
The ImportContainer API enables the web service client to import containers into
IPControl. These can be logical containers or device containers. It can also be used to modify
existing containers
Request and Response Messages
Below is the portion of Imports.wsdl that describes the importContainer request and
response messages.
<wsdl:message name="importContainerResponse" />
<wsdl:message name="importContainerRequest">
<wsdl:part name="inpContainer" type="tns1:WSContainer" />
</wsdl:message>
Response
The complex type WSContainer, which is passed as input from the client to the web service,
is described in the next section.
Parameters
WSContainer
Below is the portion of Imports.wsdl that describes WSContainer, the parameter structure
passed to importContainer. The elements are described in the table that follows.
<complexType name="WSContainer">
<sequence>
<element name="allowedAllocFromParentBlocktypes" nillable="true"
type="impl:ArrayOf_soapenc_string"/>
<element name="allowedBlockTypes" nillable="true"
type="impl:ArrayOf_soapenc_string"/>
<element name="allowedDeviceTypes" nillable="true"
type="impl:ArrayOf_soapenc_string"/>
<element name="allowedRootBlockTypes" nillable="true"
type="impl:ArrayOf_soapenc_string"/>
<element name="blockTypeInfoTemplates" nillable="true"
type="impl:ArrayOf_soapenc_string"/>
<element name="containerName" nillable="true"
type="soapenc:string"/>
<element name="containerType" nillable="true"
type="soapenc:string"/>
<element name="description" nillable="true"
type="soapenc:string"/>
<element name="deviceInfoTemplates" nillable="true"
type="impl:ArrayOf_soapenc_string"/>
<element name="id" nillable="true"
type="soapenc:int"/>
<element name="ignoreBlocktypeInUse"
type="xsd:boolean"/>
<element name="informationTemplate" nillable="true"
type="soapenc:string"/>
204 IPControl CLI and API Guide
Im portContainer
<element name="maintainHistoryRecs"
type="xsd:boolean"/>
<element name="parentName" nillable="true"
type="soapenc:string"/>
<element name="replaceDHCPServer" nillable="true"
type="soapenc:string"/>
<element name="replaceDHCPServerV6" nillable="true"
type="soapenc:string"/>
<element name="requireSWIPNameBlockTypes" nillable="true"
type="impl:ArrayOf_soapenc_string"/>
<element name="userDefinedFields" nillable="true"
type="impl:ArrayOf_soapenc_string"/>
</sequence>
</complexType>
Elem ent
Required Return
Code
Faultstring
allowedAllocFrom
ParentBlocktypes
no
-13
allowedBlock
Types
no
-13
allowedDevice
Types
no
-58
allowedRootBlock
Types
no
-13
blockTypeInfo
Templates
no
-3
-78
Invalid Information
Template: templateName
Im portContainer
Elem ent
Required Return
Code
Faultstring
containerName
yes
-3
Invalid arguments:
container name, parent
container name, or
container type is null
-4
-9
-2
Exception finding
network element: exception
message
Invalid argument
-132
containerType
yes
description
no
deviceInfo
Templates
no
id
ignoreBlocktypeIn
Use
Information
Template
-143
-158
-3
Invalid arguments:
container name, parent
container name, or
container type is null
-8
-3
-78
Invalid Information
Template: templateName
Yes, for
modify
only
-5
no
-43
Blocktype in use by
container: container
no
-1
DB error retrieving
information template
-78
Invalid Information
Template: templateName
Im portContainer
Elem ent
Required Return
Code
maintainHistory
Recs
no
parentName
yes
replaceDHCPServ
er
no
Faultstring
-3
Invalid arguments:
container name, parent
container name, or
container type is null
-10
-11
-1
-132
Invalid argument
-143
-94
-13
-94
-13
-13
requireSWIPName
BlockTypes
no
no
Im portContainer
Elem ent
Required Return
Code
userDefinedFields
yes, for
UDFs
defined as
required
fields
Faultstring
-63
-64
Faultstring
-1
-2
Allocation failed
-3
-41
Container move failed. (Root container not moveable; the new parent is a descendant of the
container; Move failed. )
-99
access denied
Im portDevice
ImportDevice
Overview
The ImportDevice API enables the web service client to import devices into IPControl.
Request and Response Messages
Below is the portion of Imports.wsdl that describes the importDevice request and response
messages.
<wsdl:message name="importDeviceResponse" />
<wsdl:message name="importDeviceRequest">
<wsdl:part name="inpDevice" type="tns2:WSDevice" />
</wsdl:message>
Response
The complex type WSDevice, which is passed as input from the client to the web service, is
described in the next section.
Parameters
WSDevice
Below is the portion of Imports.wsdl that describes WSDevice, the parameter structure passed
to importDevice. The elements are described in the table that follows.
<complexType name="WSDevice">
<sequence>
<element name="MACAddress" nillable="true" type="soapenc:string"/>
<element name="addressType" nillable="true" type="soapenc:string"/>
<element name="aliases" nillable="true" type="impl:ArrayOf_soapenc_string"/>
<element name="container" nillable="true" type="soapenc:string"/>
<element name="description" nillable="true" type="soapenc:string"/>
<element name="deviceType" nillable="true" type="soapenc:string"/>
<element name="domainName" nillable="true" type="soapenc:string"/>
<element name="domainType" nillable="true" type="soapenc:string"/>
<element name="duid" nillable="true" type="soapenc:string"/>
<element name="dupWarning" nillable="true" type="soapenc:string"/>
<element name="hostname" nillable="true" type="soapenc:string"/>
<element name="hwType" nillable="true" type="soapenc:string"/>
<element name="ipAddress" nillable="true" type="soapenc:string"/>
<element name="resourceRecordFlag" nillable="true" type="soapenc:string"/>
<element name="userDefinedFields" nillable="true" type="impl:ArrayOf_soapenc_string"/>
<element maxOccurs="unbounded" name="interfaces" nillable="true" type="tns2:WSInterface"/>
<element name="id" nillable="true" type="soapenc:int"/>
<element name="excludeFromDiscovery" nillabl e="true" type="soapenc:string"/
</sequence>
</complexType>
<complexType
<sequence>
<element
<element
<element
name="WSInterface">
name="addressType" nillable="true" type="impl:ArrayOf_soapenc_string"/>
name="container" nillable="true" type="impl:ArrayOf_soapenc_string"/>
name="excludeFromDiscovery" nillable="true" type="soapenc:string"/>
Application Program Interfaces (API) 209
Im portDevice
Elem ent
Accepted Values
Required
Return
Code
Faultstring
MACAddress
Yes, if
hwtype is
specified
or if
address
type is
Manual
DHCP.
-77
MAC Address
must be specified
when using
Hardware Type or
Hardware address
must be specified
for address type
Manual DHCP
addressType
Yes
-73
Invalid address
type: type
Invalid Address
Type for IPv4|
IPv6: type
-260
-261
No
Cannot change
the ipaddress of
an interface
Cannot change the
address type
to/from 'Interface'
Im portDevice
Elem ent
Accepted Values
Required
Return
Code
Faultstring
container
Yes, if
overlappin
g space is
in use and
the block
name is
ambiguous
.
-2
-6
Invalid container
name
-7
Ambiguous
container name
-5
Container not
found
-1
Database error
description
No
deviceType
Yes, if
hostname
specifies
use of
naming
policy.
-47, -58
-75
Device type
required when
using naming
policy
Yes, if
resource
Record
Flag is
true and
the block
policy has
no forward
domains.
-60
Domain not
found: domain
-71
Domain required
when adding
resource records
No
-59
Yes, for
Address
Type
Manual
NA
DHCPV6
.
-259
DUID required
for Manual NA
DHCPV6
dupWarning
No
-80
Duplicate
hostname for
hostname
hostname
Yes
domainName
domainType
duid
Im portDevice
Elem ent
Accepted Values
Required
Return
Code
Faultstring
hwType
No
-72
Invalid Hardware
type: type
ipAddress
Yes
-26
-226
-227
-228
resourceRecordFlag
No
userDefinedFields
Yes, for
UDFs
defined as
required
fields.
Yes, for
mulithomed
devices
interfaces
- addressType
- container: reserved
- excludeFromDiscovery
- hwType
- id: The internal ID provided by a
GetDeviceBy call. Required for
modify requests.
- ipAddress
- macAddress
- name: Interface Name (Required)
- sequence: Provided by GetDeviceBy
call; not used
- virtual: reserved
Invalid IP
Address: address
Invalid direction
IPV6 not
supported
Block out of space
-53
store UDFs
failed: SQL
exception
message
-63
Invalid UDF
-64
Missing required
UDF: udf
-18
Interface required
when modifying a
device
-19
IP Address
missing or invalid
-20
Interface name
missing.
-260
Cannot change
the ipaddress of
an interface
-261
Cannot change
the address type
to/from
'Interface'
Im portDevice
Elem ent
Accepted Values
Required
id
Yes, for
modify
excludeFrom
Discovery
No
Return
Code
Faultstring
Faultstring
-2
-36
-62
-47
System error
-79
Im portDeviceResourceRecord
ImportDeviceResourceRecord
Overview
The ImportDeviceResourceRecord API enables the web service client to import DNS
resource records for a device into IPControl.
Request and Response Messages
Response
The complex type WSDeviceResourceRec, which is passed as input from the client to the
web service, is described in the next section.
Parameters
WSDeviceResourceRec
Im portDeviceResourceRecord
Elem ent
Accepted Values
Required
container
No
domainType
domain
hostname
ipAddress
owner
Return
Code
Faultstring
No
-108
Yes.
-108
-135
Domain required
N/A
Not authorized
Yes,
unless IP
Address is
specified.
-121
Hostname not
unique: hostname
-120
No device with
hostname:
Yes,
unless
Host
Name is
specified.
-28
IP Address not
unique: ipAddress
-120
No device with
ipAddress
Yes
-89
-106
Invalid character in
owner
-92
Invalid Type
-91
Data Required
resourceRecClass
No
resourceRecord
Type
Yes
TTL
No
data
Yes
comment
No
Im portDhcpServer
ImportDhcpServer
Overview
The ImportDhcpServer API enables the web service client to create or DHCP servers in
IPControl.
Request and Response Messages
Below is the portion of Imports.wsdl that describes the importNetService request and
response messages.
<wsdl:message name="importDhcpServerResponse" />
<wsdl:message name="importDhcpServerRequest">
<wsdl:part name="dhcpServer" type="tns2:WSDhcpServer" />
</wsdl:message>
Response
The complex type WSDhcpServer, which is passed as input from the client to the web
service, is described in the next section.
Parameters
WSDhcpServer
Below is the portion of Imports.wsdl that describes WSDhcpServer, the parameter structure
passed to importDhcpServer. The elements are described in the table that follows.
<complexType
<sequence>
<element
<element
<element
<element
<element
<element
<element
<element
<element
<element
<element
<element
<element
<element
<element
<element
<element
<element
<element
<element
<element
<element
<element
<element
name="WSDhcpServer">
name="agent" nillable="true" type="soapenc:string"/>
name="beginExtension" nillable="true" type="soapenc:string"/>
name="cliArgs" nillable="true" type="soapenc:string"/>
name="cliCommand" nillable="true" type="soapenc:string"/>
name="cliPassword" nillable="true" type="soapenc:string"/>
name="cliUserName" nillable="true" type="soapenc:string"/>
name="clientClasses" nillable="true" type="impl:ArrayOf_soapenc_string"/>
name="collectBackupSubnets" type="xsd:boolean"/>
name="collectionPassword" nillable="true" type="soapenc:string"/>
name="collectionPort" nillable="true" type="soapenc:int"/>
name="collectionType" nillable="true" type="soapenc:string"/>
name="collectionUser" nillable="true" type="soapenc:string"/>
name="configPath" nillable="true" type="soapenc:string"/>
name="ddns" type="xsd:boolean"/>
name="defaultThreshold" nillable="true" type="soapenc:int"/>
name="endExtension" nillable="true" type="soapenc:string"/>
name="failoverIpAddress" nillable="true" type="soapenc:string"/>
name="failoverPeers" nillable="true" type="impl:ArrayOf_soapenc_string"/>
name="failoverPort" nillable="true" type="soapenc:int"/>
name="globalSync" type="xsd:boolean"/>
name="id" nillable="true" type="soapenc:int"/>
name="ipAddress" nillable="true" type="soapenc:string"/>
name="leasePath" nillable="true" type="soapenc:string"/>
name="name" nillable="true" type="soapenc:string"/>
Im portDhcpServer
Elem ent
Accepted Values
Required
Return
Code
Faultstring
Agent
Yes
-29
Invalid agent:
agent
beginExtension
No
cliArgs
No
cliCommand
No
cliPassword
No
cliUserName
No
clientClasses
No
-116
Invalid Client
Class: class
collectBackup
Subnets
No
collectionPassword
Yes
collectionPort
No
-32
Invalid
collection port:
port
collectionType
Yes
-31
Invalid
collection type:
type
collectionUser
Yes
configPath
Yes
ddns
No
Im portDhcpServer
Elem ent
Accepted Values
Required
Return
Code
Faultstring
defaultThreshold
No
-57
Invalid alert
threshold: value
endExtension
failoverIpAddress
No
failoverPort
No
globalSync
No
id
No
ipAddress
Yes
-26
Invalid IP
address: address
-112
Duplicate IP
Address
name
Yes
-112
Duplicate
name
optionSet
No
-67
Option Set
name not found
policySet
No
-68
primaryPeers
product
Yes
-123
Unknown
DHCP
Product: name
startScript
No
stopScript
No
Im portDhcpServer
Elem ent
Accepted Values
Required
Return
Code
Faultstring
v4V6Both
v4, v6 or both
Yes
-191
Invalid value
v4V6Both
specified for
V4V6Both.Vali
d values are
'V4', 'V6' or
'Both'
Or
Product product
does not
support IP
version
v4V6Both
Faultstring
-1
Unable to obtain session or Rollback failed. Additional information will appear in the
web service log.
Im portDomain
ImportDomain
Overview
The ImportDomain API enables the web service client to import domains into IPControl.
Request and Response Messages
Below is the portion of Imports.wsdl that describes the importDomain request and response
messages.
<wsdl:message name="importDomainResponse" />
<wsdl:message name="importDomainRequest">
<wsdl:part name="inpDomain" type="tns1:WSDomain" />
</wsdl:message>
Response
The complex type WSDomain, which is passed as input from the client to the web service, is
described in the next section.
Parameters
WSDomain
Below is the portion of Imports.wsdl that describes WSDomain, the parameter structure passed
to importDomain. The elements are described in the table that follows.
<complexType name="WSDomain">
<sequence>
<element name="contact" nillable="true" type="soapenc:string"/>
<element name="defaultTTL" nillable="true" type="soapenc:string"/>
<element name="delegated" type="xsd:boolean"/>
<element name="derivative" nillable="true" type="soapenc:string"/>
<element name="domainName" nillable="true" type="soapenc:string"/>
<element name="domainType" nillable="true" type="soapenc:string"/>
<element name="expire" nillable="true" type="soapenc:string"/>
<element name="id" nillable="true" type="soapenc:int"/>
<element name="infoTemplate" nillable="true" type="soapenc:string"/>
<element name="managed" type="xsd:boolean"/>
<element name="negativeCacheTTL" nillable="true" type="soap enc:string"/>
<element name="refresh" nillable="true" type="soapenc:string"/>
<element name="retry" nillable="true" type="soapenc:string"/>
<element name="reverse" type="xsd:boolean"/>
<element name="serialNumber" nillable="true" type="soapenc:long"/>
<element name="templateDomain" nillable="true" type="soapenc:string"/>
<element name="userDefinedFields" nillable="true" type="impl:ArrayOf_soapenc_string"/>
</sequence>
</complexType>
Im portDomain
Elem ent
contact
defaultTTL
delegated
derivitive
domainName
domainType
expire
id
infoTemplate
managed
negativeCacheTTL
refresh
retry
reverse
Required Return
Code
Faultstring
no
no
no
no
-92
yes
-95
-135
-157
-81
-113
no
no
no
no
no
no
no
no
no
Im portDomain
Elem ent
serialNumber
templateDomain
userDefinedFields
Faultstring
-1
-2
Allocation failed
-3
-99
access denied
Required Return
Code
Faultstring
no
yes, if
-60
Derivative
is
ALIAS
-135
yes, for
UDFs
defined as
required
fields
-61
-63
-64
Im portDomainResourceRecord
ImportDomainResourceRecord
Overview
Response
The complex type WSDomainResourceRec, which is passed as input from the client to the
web service, is described in the next section.
Parameters
WSDomainResourceRec
Im portDomainResourceRecord
Elem ent
Accepted Values
Required
Return
Code
Faultstring
domainType
No
-108
domain
Yes.
-108
-107
N/A
Not authorized
-89
-106
Invalid character in
owner
-92
Invalid Type
-91
Data Required
owner
Yes
resourceRecClass
No
resourceRecord
Type
Yes
TTL
No
data
Yes
comment
No
Im portGalaxyDomain
ImportGalaxyDomain
Overview
The ImportGalaxyDomain API enables the web service client to assign domains to
galaxies in IPControl.
Request and Response Messages
Below is the portion of Imports.wsdl that describes the importGalaxyDomain request and
response messages.
<wsdl:message name=" importGalaxyDomainResponse" />
<wsdl:message name="importGalaxyDomaiRequest">
< <wsdl:part name="inpGalaxyDomain" type="tns2:WSGalaxyDomain"/>
</wsdl:message>
Response
The complex type WSGalaxyDomain, which is passed as input from the client to the web
service, is described in the next section.
Parameters
WSGalaxyDomain
Below is the portion of Imports.wsdl that describes WSGalaxyDomain, the parameter structure
passed to importGalaxyDomain. The elements are described in the table that follows.
<complexType name="WSGalaxyDomain">
<sequence>
<element name="domainName" nillable="true" type="soapenc:string" />
<element name="domainType" nillable="true" type="soapenc:string" />
<element name="galaxyName" nillable="true" type="soapenc:string" />
<element name="view" nillable="true" type="soapenc:string" />
</sequence>
</complexType>
Im portGalaxyDomain
Elem ent
Accepted Values
Required
Return
Code
Faultstring
domainName
Yes.
-60
-71
Domain Name is
required
-155
Exception saving
galaxy
domain galaxyName
-157
-157
Domain view
combination already
exists in this galaxy
domainType
No
-81
galaxyName
Yes
-153
-154
-156
-58
view
No
Im portNetElement
ImportNetElement
Overview
The ImportNetElement API enables the web service client to import network elements
into IPControl.
Request and Response Messages
Below is the portion of Imports.wsdl that describes the importNetElement request and
response messages.
<wsdl:message name="importNetElementRequest">
<wsdl:part name="elementArray" type="impl:ArrayOf_soapenc_string" />
</wsdl:message>
<wsdl:message name="importNetElementResponse">
<wsdl:part name="importNetElementReturn" type="soapenc:string" />
</wsdl:message>
Response
The string returned in the response contains the name of the network element allocated, for
example, Saved netelement: name.
Request
The string array that is passed as input from the client to the web service is described in the
next section.
Parameters
String Array
The elements of the string array are described below. Note that the returnCode tag is not
used for this call. When an error occurs, the faultcode will be Server.userException,
with the faultstrings shown below.
Elem ent
Description
Accepted Values
Required
Name
Yes
IP Address
Yes
Vendor
Yes when
Model is
specified.
Return
Code
Faultstring
Duplicate name
for Netelement:
name
no models found
for given
description:
description
deviceName: name,
vendorName:
Im portNetElement
Elem ent
Description
Accepted Values
Required
Return
Code
Faultstring
Model
Yes when
Vendor is
specified
same as above
Type
Yes
same as above
Global Sync
Yes
Agent Name
Yes
Telnet User
No
Telnet
password
No
Enable
password
No
10
Read
community
string
No
11
Interface List
No
12
V3 Username
No
SNMP V3
Username required
13
V3
Authentication
Protocol
No
Unknown
authentication
protocol: protocol
14
V3
Authentication
Password
No
Authentication
Password required
15
V3 Privacy
Protocol
No
Unknown privacy
protocol: protocol
vendor
Privacy not
allowed without
authentication
16
V3 Privacy
Password
No
17
V3 Context
Name
No
18
V3 Engine ID
No
Privacy Password
required
Im portNetElementInterface
ImportNetElementInterface
Overview
Response
The complex type WSNetElementInterface, which is passed as input from the client to
the web service, is described in the next section.
Parameters
WSNetElementInterface
Elem ent
Accepted Values
Required
id
No
Return
Code
Faultstring
Im portNetElementInterface
Elem ent
Accepted Values
Required
Return
Code
Faultstring
interfaceName
Yes
-37
Interface
already exists
with this name:
name for
netelement:
netelement
-20
Interface name
is required
-33
Network
element not
found:
netelement
-35
Element name
required
-34
Invalid
interface status:
status
netElementName
status
Yes
No
Faultstring
-2
Im portNetService
ImportNetService
Overview
The ImportNetService API enables the web service client to import DHCP network
services into IPControl.
Note: This API has been deprecated as of IPControl 6.0. Use the ImportDhcpServer API
instead. ImportNetService support will be removed in a future release.
Request and Response Messages
Below is the portion of Imports.wsdl that describes the importNetService request and
response messages.
<wsdl:message name="importNetServiceResponse" />
<wsdl:message name="importNetServiceRequest">
<wsdl:part name="inpNetService" type="tns1:WSNetService" />
</wsdl:message>
Response
The complex type WSNetService, which is passed as input from the client to the web
service, is described in the next section.
Parameters
WSNetService
Below is the portion of Imports.wsdl that describes WSNetService, the parameter structure
passed to importNetService. The elements are described in the table that follows.
<complexType name="WSNetService">
<sequence>
<element name="agentName" nillable="true" type="soapenc:string" />
<element name="collectionMethod" nillable="true" type="soapenc:string" />
<element name="collectionPort" nillable="true" type="soapenc:string" />
<element name="container" nillable="true" type="impl:ArrayOf_soapenc_string" />
<element name="globalSync" nillable="true" type="soapenc:string" />
<element name="ipAddress" nillable="true" type="soapenc:string" />
<element name="name" nillable="true" type="soapenc:string" />
<element name="threshold" nillable="true" type="soapenc:string" />
<element name="type" nillable="true" type="soapenc:string" />
<element name="userName" nillable="true" type="soapenc:string" />
<element name="userPassword" nillable="true" type="soapenc:string" />
<element name="vendor" nillable="true" type="soapenc:string" />
<element name="vendorInfo" nillable="true" type="impl:ArrayOf_soapenc_string"/>
</sequence>
</complexType>
Im portNetService
Elem ent
Accepted Values
Required
Return
Code
Faultstring
agentName
Yes
-29
Invalid
network service
agent: agent
collectionMethod
No
-31
Invalid
network service
collection
method: method
collectionPort
No
-32
Invalid
network service
collection port:
port
container
No longer used.
globalSync
No
-30
Invalid
network global
sync option:
option
ipAddress
Yes
-26
Invalid
network service
address: address
name
Yes
threshold
No
-57
Invalid alert
threshold: value
type
No
-27
Invalid
network service
type: type
userName
No
userPassword
No
vendor
Yes
-47
productAction
failed
-99
Product not
found
-28
Unrecognized
collection type:
type
Im portNetService
Elem ent
Accepted Values
Required
vendorInfo
No
Return
Code
Faultstring
/opt/qip/dhcp/dhcpd.conf
/opt/qip/dhcp/dhcp.db
or
c:\qip\dhcp\dhcpd.conf
c:\qip\dhcp\dhcp.db
For collection type cnr, the information
includes the Path/Executable of NRCD
command, the NRCMD user id, the
NRCMD password and the Cluster
Name. For example,
/opt/cnr/bin/nrcmd|myuserid|mypass
cluster1
Faultstring
-1
Unable to obtain session or Rollback failed. Additional information will appear in the
web service log.
Im portPrefixPool
ImportPrefixPool
Overview
The ImportPrefixPool API enables the web service client to import or modify prefix
pools in IPControl.
Request and Response Messages
Below is the portion of Imports.wsdl that describes the importPrefixPool request and
response messages.
<wsdl:message name="importPrefixPoolRequest">
<wsdl:part name="prefixPool" type="tns2:WSPrefixPool"/>
</wsdl:message>
<wsdl:message name="importPrefixPoolResponse"/>
Response
The complex type WSPrefixPool, which is passed as input from the client to the web
service, is described in the next section.
Parameters
WSPrefixPool
Below is the portion of Imports.wsdl that describes WSPrefixPool, the parameter structure
passed to importPrefixPool. The elements are described in the table that follows.
<complexType name="WSPrefixPool">
<sequence>
<element name="allowClientClasses" nillable="true" type="impl:ArrayOf_soapenc_string"/>
<element name="container" nillable="true" type="soapenc:string"/>
<element name="delegatedPrefixLength" nillable="true" type="soapenc:int"/>
<element name="denyClientClasses" nillable="true" type="impl:ArrayOf_soapenc_string"/>
<element name="dhcpOptionSet" nillable="true" type="soapenc:string"/>
<element name="dhcpPolicySet" nillable="true" type="soapenc:string"/>
<element name="id" nillable="true" type="soapenc:int"/>
<element name="length" nillable="true" type="soapenc:int"/>
<element name="longestPrefixLength" nillable="true" type="soapenc:int"/>
<element name="name" nillable="true" type="soapenc:string"/>
<element name="primaryNetService" nillable="true" type="soapenc:string"/>
<element name="shortestPrefixLength" nillable="true" type="soapenc:int"/>
<element name="startAddr" nillable="true" type="soapenc:string"/>
<element name="type" nillable="true" type="soapenc:string"/>
</sequence>
</complexType>
Im portPrefixPool
Elem ent
Required
Return
Code
Faultstring
id
No for
creates,
Yes for
updates.
-117
Yes
-115
-36
-97
-115
-258
-26
-73
startAddr
Length
Yes
Invalid ID <id> on
prefixPool object
type
One of Dynamic PD
DHCPv6, Automatic PD
DHCPv6
Yes
name
No
container
No, unless
startAddr
is not
unique.
-36
delegatedPrefi
xLength
Yes
-258
shortestPrefix
Length
No
longestPrefixL
ength
No
primaryNet
Service
No
-94
dhcpOptionSe
t
No
-67
dhcpPolicySet
No
-68
Im portPrefixPool
Elem ent
Required
Return
Code
Faultstring
allowClient
Classes
No
-116
denyClientClas
ses
No
-116
Im portRootBlock
ImportRootBlock
Overview
The ImportRootBlock API enables the web service client to import root blocks into
IPControl.
Request and Response Messages
Below is the portion of Imports.wsdl that describes the importRootBlock request and
response messages.
<wsdl:message name="importRootBlockResponse" />
<wsdl:message name="importRootBlockRequest">
<wsdl:part name="inpRootBlock" type="tns1:WSRootBlock" />
</wsdl:message>
Response
The complex type WSRootBlock, which is passed as input from the client to the web service,
is described in the next section.
Parameters
WSRootBlock
Below is the portion of Imports.wsdl that describes WSRootBlock, the parameter structure
passed to importRootBlock. The elements are described in the table that follows.
<complexType name="WSRootBlock">
<sequence>
<element name="RIR" nillable="true" type="soapenc:string" />
<element name="SWIPname" nillable="true" type="soapenc:string" />
<element name="allocationReason" nillable="true" type="soapenc:string" />
<element name="allocationReasonDescription" nillable="true" type="soapenc:string" />
<element name="allowOverlappingSpace" nillable="true" type="soapenc:string" />
<element name="blockAddr" nillable="true" type="soapenc:string" />
<element name="blockName" nillable="true" type="soapenc:string" />
<element name="blockSize" nillable="true" type="soapenc:string" />
<element name="blockType" nillable="true" type="soapenc:string" />
<element name="container" nillable="true" type="soapenc:string" />
<element name="createReverseDomains" nillable="true" type="soapenc:string" />
<element name="description" nillable="true" type="soapenc:string" />
<element name="domainType" nillable="true" type="soapenc:string" />
<element name="organizationId" nillable="true" type="soapenc:string" />
<element name="userDefinedFields" nillable="true" type="impl:ArrayOf_soapenc_string" />
</sequence>
</complexType>
Im portRootBlock
Elem ent
Accepted Values
Required
Return
Code
Faultstring
RIR
No
-14
SWIPname
Yes, if
required by
Container
rules
-66
SWIPname is required
for this container/
blocktype
-70
SWIPname is not
allowed for this
container/ blocktype
-22
Invalid allocation
reason: reason
allocationReason
No
allocationReason
Description
No
allowOverlapping
Space
No
-159
Overlapping Public
Address Space is not
allowed.
blockAddr
Yes
-12
blockName
No
blockSize
Yes
-16
-15
blockType
No
-13
container
Yes
-2
-6
-7
Ambiguous container
name
-5
-1
-5
Unable to lookup
container
-148
-277
Database error
Im portRootBlock
Elem ent
Accepted Values
Required
Return
Code
Faultstring
createReverse
Domains
No
-82
createReverseDomains
must be true or false:
value
description
No
domainType
No
-81
organizationId
No
-84
Invalid Organization
Id: id
userDefinedFields
Yes, for
UDFs
defined as
required
fields.
-53
Faultstring
-24
-25
-99
Access Denied. Either the administrator does not have rights to add blocks in general OR
the administrator does not have rights to add blocks to the specified container.
Im portZone
ImportZone
Overview
The ImportDnsZone API enables the web service client to import zones into IPControl.
Request and Response Messages
Below is the portion of Imports.wsdl that describes the importDnsZone request and response
messages.
<wsdl:message name="importDnsZoneResponse" />
<wsdl:message name="importDnsZoneRequest">
<wsdl:part name="inpZone" type="tns1: WSDnsZone" />
</wsdl:message>
Response
The complex type WSDnsZone, which is passed as input from the client to the web service, is
described in the next section.
Parameters
WSDnsZone
Below is the portion of Imports.wsdl that describes WSDnsZone, the parameter structure passed
to importDnsZone. The elements are described in the table that follows.
<complexType name="WSDnsZone">
<sequence>
<element name="MNAME" nillable="true" type="soapenc:string"/>
<element name="acceptZoneTransfers" nillable="true" type="soapenc:string"/>
<element name="aliasZone" type="xsd:boolean"/>
<element name="allowUpdateACL" nillable="true" type="soapenc :string"/>
<element name="autogenNSGlue" nillable="true" type="soapenc:string"/>
<element name="domainName" nillable="true" type="soapenc:string"/>
<element name="domainType" nillable="true" type="soapenc:string"/>
<element name="dynamicZone" type="xsd:boolean"/>
<element name="filename" nillable="true" type="soapenc:string"/>
<element name="galaxyName" nillable="true" type="soapenc:string"/>
<element name="masters" nillable="true" type="soapenc:string"/>
<element name="server" nillable="true" type="soapenc:string"/>
<element name="templateZone" type="xsd:boolean"/>
<element name="updatePolicy" nillable="true" type="soapenc:string"/>
<element name="updateZone" nillable="true" type="soapenc:string"/>
<element name="view" nillable="true" type="soapenc:string"/>
<element name="zoneExtensionsAfter" nillable="true" type="soapenc:string"/>
<element name="zoneExtensionsPrior" nillable="true" type="soapenc:string"/>
<element name="zoneType" nillable="true" type="soapenc:string"/>
</sequence>
</complexType>
Im portZone
Elem ent
MNAME
acceptZoneTransfers
aliasZone
allowUpdateACL
autogenNSGlue
domainName
domainType
Required Return
Code
Faultstring
No
-236
-238
No
No
No
-241
autogenNSGlue must be
true or false, specified:
value
Yes
-60
-71
-81
No
Im portZone
Elem ent
dynamicZone
Required Return
Code
Faultstring
No
-250
-251
-253
-255
filename
No
galaxyName
Future use.
No
masters
Yes for
zone
types
slave and
stub
-237
server
Yes, if
GalaxyNa
me is not
supplied.
-235
templateZone
No
-239
-240
updatePolicy
No
Im portZone
Elem ent
Required Return
Code
Faultstring
-58
-85
-86
view
No
zoneExtensionsAfter
No
zoneExtensionsPrior
zoneType
Faultstring
-2
-99
Access denied
-157
JoinBlock
JoinBlock
Overview
The JoinBlock API enables the web service client to join existing, adjacent blocks into a
larger block.
Request and Response Messages
Below is the portion of Imports.wsdl that describes the joinBlock request and response
messages.
<wsdl:message name="joinBlockRequest">
<wsdl:part name="blockName" type="soapenc:string"/>
<wsdl:part name="container" type="soapenc:string"/>
</wsdl:message>
<wsdl:message name="joinBlockResponse">
</wsdl:message>
Response
Specify the name of the block, for example, 10.0.0.0/24. The system searches for nonfree blocks by this name.
container
The container name must be specified if the block name is not unique, due to overlapping
space or naming conventions.
Return Codes and Fault Strings
Return Code
Fault String
-12
-17
-36
-97
-138
-139
-140
-141
-142
-199
-53
-99
Access Denied
ModifyBlock
ModifyBlock
Overview
The ModifyBlock API enables the web service client to update certain fields in an existing
Block. To modify a block, use this call in conjunction with the GetBlock API (Page 258)
calls. First, retrieve the block using a GetBlock call. Then, modify the returned structure
(see below). Lastly, pass that modified structure to the ModifyBlock API.
Request and Response Messages
Below is the portion of Imports.wsdl that describes the modifyBlock request and response
messages.
<wsdl:message name="modifyBlockRequest">
<wsdl:part name="block" type="tns2:WSGenericBlock"/>
<wsdl:part name="container" type="soapenc:string"/>
</wsdl:message>
<wsdl:message name="modifyBlockResponse">
</wsdl:message>
Response
The complex type WSGenericBlock, which is passed as input from the client to the web
service, is described in the next section.
Parameters
Container
The container name must be specified if the block is attached to multiple containers. This
enables the User Defined Field updates to be processed correctly.
WSGenericBlock
Below is the portion of Imports.wsdl that describes WSGenericBlock, the parameter structure
passed to modifyBlock. The elements are described in the table that follows.
ModifyBlock
<complexType name="WSGenericBlock">
<sequence>
<element maxOccurs="unbounded" name="addrDetails" nillable="t rue"
type="tns2:WSAllocationTemplateDetails"/>
<element name="allocationReason" nillable="true" type="soapenc:string"/>
<element name="allocationReasonDescription" nillable="true" type="soapenc:string"/>
<element name="allocationTemplateName" nillable="true" type="soapenc:string"/>
<element name="allowOverlappingSpace" type="xsd:boolean"/>
<element name="blockAddr" nillable="true" type="soapenc:string"/>
<element name="blockName" nillable="true" type="soapenc:string"/>
<element name="blockSize" type="xsd:int"/>
<element name="blockStatus" nillable="true" type="soapenc:string"/>
<element name="blockType" nillable="true" type="soapenc:string"/>
<element name="container" nillable="true" type="impl:ArrayOf_soapenc_st ring"/>
<element name="createadmin" nillable="true" type="soapenc:string"/>
<element name="createdate" nillable="true" type="xsd:dateTime"/>
<element name="description" nillable="true" type="soapenc:string"/>
<element name="excludeFromDiscovery" nillable="true" type="soapenc:string"/>
<element name="id" nillable="true" type="soapenc:int"/>
<element name="inheritDiscoveryAgent" nillable="true" type="soapenc:int"/>
<element name="interfaceAddress" nillable="true" type="impl:ArrayOf_soapenc_string"/>
<element name="interfaceName" nillable="true" type="impl:ArrayOf_soapenc_string"/>
<element name="ipv6" type="xsd:boolean"/>
<element name="lastadminid" type="xsd:int"/>
<element name="lastupdate" nillable="true" type="xs d:dateTime"/>
<element name="numaddressablehosts" type="xsd:long"/>
<element name="numallocatedhosts" type="xsd:long"/>
<element name="numassignedhosts" type="xsd:long"/>
<element name="numdynamichosts" type="xsd:long"/>
<element name="numleasablehosts" type="xsd:long"/>
<element name="numlockedhosts" type="xsd:long"/>
<element name="numreservedhosts" type="xsd:long"/>
<element name="numstatichosts" type="xsd:long"/>
<element name="numunallocatedhosts" type="xsd:long"/>
<element name="organizationId" nillable="true" type="soapenc:string"/>
<element name="primarySubnet" type="xsd:boolean"/>
<element name="rir" nillable="true" type="soapenc:string"/>
<element name="rootBlock" type="xsd:boolean"/>
<element name="rootBlocktype" nillable="true" type="soapenc:string"/>
<element name="subnet" nillable="true" type="tns1:WSSubnetPolicy"/>
<element name="subnetlosshosts" type="xsd:long"/>
<element name="swipname" nillable="true" type="soapenc:string"/>
<element name="userDefinedFields" nillable="true" type="impl:ArrayOf_soapenc_string"/>
<element name="ignoreErrors" type="xsd:boolean"/>
</sequence>
</complexType>
Elem ent
Description
Modify?
addrDetails
Yes
allocationReason
No
allocationReason
Description
No.
Return
Code
Fault String
ModifyBlock
Elem ent
Description
Modify?
Return
Code
Fault String
allocationTemplateName
Yes
-17
Allocation
Template
supported only for
In-Use/Deployed
blocks
-21
allowOverlappingSpace
No
blockAddr
No
blockName
Yes
blockSize
No
blockStatus
Yes
blockType
No
container
No
createadmin
No
createdate
No
description
Yes
Invalid offset
-65
Invalid allocation
template: name
-177
Address Pool
Template detail
overlaps interface
address.
-182
No domain set,
create resource
records failed.
-189
Default Gateway(s)
have been defined
in the Subnet
Policies. Address
pool templates
with default
gateway option are
not allowed.
-207
Range conflicts
with pool pool in
Block block name in
Container container
name
-17
Invalid Block
Status
ModifyBlock
Elem ent
Description
Modify?
Return
Code
Fault String
excludeFromDiscovery
Yes
-13
BlockModify set
exclude from
discovery failed:
flag supported only
for InUse/Deployed
blocks
id
No
inheritDiscoveryAgent
No
interfaceAddress
No
-36
-273
Error saving
interface address:
address
-275
No
lastadminid
No
lastupdate
No
numaddressablehosts
No
numallocatedhosts
No
numassignedhosts
No
numdynamichosts
No
numleasablehosts
No
numlockedhosts
No
numreservedhosts
No
numstatichosts
No
numunallocatedhosts
No
organizationId
Yes
ipv6
BlockModify set
exclude from
discovery must be
true or false
Modifying or
deleting a virtual
address interface is
not supported
No
-84
Unknown RIR
Organization
ModifyBlock
Elem ent
Description
Modify?
Return
Code
Fault String
primarySubnet
Yes
-17
modifyBlock set
primary subnet
failed: flag
supported only for
In-Use/Deployed
blocks
rir
Yes
-84
Unknown RIR
Organization
rootBlock
No
rootBlocktype
Yes
-14
subnet
Yes
-17
Subnet policies
supported only for
In-Use/Deployed
blocks
subnetlosshosts
No
swipname
Yes
-137
Duplicate SWIP
Name
-66
SWIP Name
Required
-70
-63
Invalid UDF
-64
Missing Required
UDF
userDefinedFields
ignoreErrors
Yes
No
A block may be reparented by specifying a target container name different than the current
parent container name. In the case of reparenting blocks contained in device containers, a
target interface name must also be provided. To reparent a block, use this call in conjunction
with the GetBlock API (page 258) calls. First, retrieve the block using a GetBlock call.
Then, modify the returned structure, setting the new container name and in the case of device
container, the new interface name. Lastly, pass that modified structure to the ModifyBlock
API.
Note: ModifyBlock either reparents, when a new container name different than the
current parent container has been specified, or modifies the block without a reparent. Both
cannot be performed during the same modify block invocation.
Application Program Interfaces (API) 249
ModifyBlock
Use the subnet field and WSSubnetPolicy structure to specify changes to block subnet
policies.
WSSubnetPolicy
Below is the portion of Imports.wsdl that describes WSSubnetPolicy, the structure passed in
WSGenericBlock as subnet. The elements are described in the table that follows.
<complexType name="WSSubnetPolicy">
<sequence>
<element name="DHCPOptionsSet" nillable="true" type="soapenc:string" />
<element name="DHCPPolicySet" nillable="true" type="soapenc:string" />
<element name="DNSServers" nillable="true" type="impl:ArrayOf_soapenc_string" />
<element name="cascadePrimaryDhcpServer" nillable="true" type="xsd:boolean" />
<element name="defaultGateway" nillable="true" type="soapenc:string" />
<element name="failoverDHCPServer" nillable="true" type="soapenc:string" />
<element name="forwardDomainTypes" nillable="true" type="impl:ArrayOf_soapenc_string"/>
<element name="forwardDomains" nillable="true" type="impl:ArrayOf_soapenc_string" />
<element name="networkLinks" nillable="true" type=" soapenc:string"/>
<element name="primaryDHCPServer" nillable="true" type=" soapenc:string" />
<element name="primaryWINSServer" nillable="true" type=" soapenc:string" />
<element name="reverseDomainTypes" nillable="true" type="impl:ArrayOf_soapenc_string"/>
<element name="reverseDomains" nillable="true" type="impl:ArrayOf_ soapenc_string" />
</sequence>
</complexType>
Elem ent
Description
Modify
?
Return
code
Fault String
DHCPOptionsS
et
yes
-67
DHCPPolicySet
yes
-68
DNSServers
yes
-93
-99
cascadePrimary
DhcpServer
yes
defaultGateway
yes
-26
Invalid IP Address
address
ModifyBlock
Elem ent
Description
Modify
?
Return
code
Fault String
failover
DHCPServer
yes
-94
-99
forwardDomains
yes
-95
forwardDomain
Types
yes
-95
networkLinks
Reserved
no
primaryDHCP
Server
yes
-94
-99
primaryWINS
Server
yes
-26
Invalid IP Address
address
reverseDomains
yes
-95
reverseDomain
Types
yes
-95
Use the addrDetails field to optionally specify attributes of any address allocations within
the allocation template specified by allocationTemplateName. You can apply a template
and specify address details when changing a blocks status to Deployed, or when modifying a
block that is already of status Deployed.
WSAllocationTemplateDetails
ModifyBlock
Elem ent
Description
Locator/
Modify?
Return
Code
Fault String
netserviceName
No/Yes
-185
offsetFrom
BeginningOf
Subnet
Yes/No
sharename
No
Yes/No
-174
Deprecated
startingOffset
ModifyPendingApproval
ModifyPendingApproval
Overview
The ModifyApproval API enables the web service client to approve or reject changes
submitted to the administrators pending approval queue.
Request and Response Messages
Response
The complex type WSPendingApproval, which is passed as input from the client to the
web service, is described in the next section.
Parameters
WSPendingApproval
Elem ent
action
Description
Modify?
Return
Code
Fault String
No
-99
Access denied
No
-276
Applicable only
when Resource
record workflow is
turned on
No
-161
ModifyPendingApproval
Elem ent
Description
Modify?
reason
No.
workflowId
No
Return
Code
Fault String
-162
Workflow id not
found: id
SplitBlock
SplitBlock
Overview
The SplitBlock API enables the web service client to split an existing block into smaller
blocks.
Request and Response Messages
Below is the portion of Imports.wsdl that describes the splitBlock request and response
messages.
<wsdl:message name="splitBlockRequest">
<wsdl:part name="blockName" type="soapenc:string"/>
<wsdl:part name="container" type="soapenc:string"/>
<wsdl:part name="targetStartAddress" type="soapenc:string"/>
<wsdl:part name="targetSize" type="xsd:int"/>
<wsdl:part name="equalSizes" type="xsd:boolean"/>
</wsdl:message>
<wsdl:message name="splitBlockResponse">
</wsdl:message>
Response
Specify the name of the block, for example, 10.0.0.0/24. The system searches for nonfree blocks by this name.
container
The container name must be specified if the block name is not unique, due to overlapping
space or naming conventions.
targetStartAddress
Specify the start address of the target block. This is useful for creating a block using the
specified start address and target block size. If no start address is specified, the start address of
the block being split will be used.
targetSize
Specify the desired CIDR block size after the split. This parameter works in conjunction with
the equalSizes parameter.
equalSizes
If true, the block is split such that all resulting blocks have the targetSize CIDR size. If
false, the block is split such that the fewest number of new blocks is created, along with two
blocks of targetSize.
SplitBlock
For example, if a /24 is split with a target size of /27 with equalSizes set to true, the result
will be eight /27 blocks. If a /24 is split with a target size of /27 with equalSizes set to
false, the result will be one /25, one /26 and two /27 blocks.
Return Codes and Fault Strings
Return Code
Fault String
-36
-97
-15
-17
-12
-9
-104
-99
Access Denied
getAddressPool
Gets
Overview
This section explains the web services available for retrieving individua l objects from
IPControl. These services can be used in conjunction with Imports to modify IPControl
objects. Each of these services is available as an operation in the Gets web service. You can
see the complete WSDL at: http://localhost:8080/inc-ws/services/Gets?wsdl
getAddressPool
This operation retrieves information about an address pool from IPControl.
This call can be used in conjunction with the ImportAddressPool call to modify an
existing address pool. Use this call to retrieve an address pool based on its starting address.
Modify the returned structure as needed and pass the modified structure to
ImportAddressPool. ImportAddressPool will perform an update instead of a create
due to the presence of an ID element in the address pool structure.
Request and Response Messages
Below is the portion of Gets.wsdl that describes the getAddressPool request and response
messages.
<wsdl:message name="getAddressPoolResponse">
<wsdl:part name="getAddressPoolReturn" type="tns2:WSAddrpool"/>
</wsdl:message>
<wsdl:message name="getAddressPoolRequest">
<wsdl:part name="startAddress" type="soapenc:string"/>
<wsdl:part name="container" type="soapenc:string"/>
</wsdl:message>
Response
If the address pool is found, a WSAddrpool structure is filled in with its information. This
structure is also used by the ImportAddressPool API call.
Request
Description
Required
startAddr
Yes
Container
Return Codes
If the address pool is not found, the call will fail with an error code of -117.
getBlock
getBlock
There are two calls to retrieve blocks:
getBlockByName
getBlockByIpAddress
Both calls return a WSGenericBlock data structure. (See the ModifyBlock call for a
description of WSGenericBlock.) As their names suggest, these calls differ in how the
block is located.
Use one of the above calls in conjunction with the ModifyBlock call to update an existing
block. Modify the returned structure as needed and pass the modified structure to
ModifyBlock. Note that the complete container path will be returned in the
WSGenericBlock.
Request and Response Messages
Response
If the block is found, a WSGenericBlock structure is filled in with its information. See the
ModifyBlock API call for more information.
getBlockByName Request
Description
Required
Name
Yes
Container
getBlock
getBlockByIpAddress Request
Description
Required
ipAddress
Yes
container
size
status
Return Codes
Condition
Return Code
-5
-97
Invalid IP Address
-26
-36
-17
getContainer
getContainer
There is one call to retrieve a container: getContainerByName.
This call returns a WSContainer data structure.
Use this call in conjunction with the ImportContainer call to modify an existing container.
Modify the returned structure as needed and pass the modified structure to
ImportContainer. ImportContainer will update the container based on the presence
of an ID element in the WSContainer structure.
Request and Response Messages
Below is the portion of Gets.wsdl that describes the getContainerBy request and response
messages.
<wsdl:message name="getContainerByNameRequest">
<wsdl:part name="containerName" type="soapenc:string"/>
</wsdl:message>
<wsdl:message name="getContainerByNameResponse">
<wsdl:part name="getContainerByNameReturn" type="tns1:WSContainer"/>
</wsdl:message>
Response
If the Container is found, a WSContainer structure is filled in with its information. This
structure is also used by the ImportContainer API call.
getContainerByName Request
Description
Required
containerName
Yes
Return Codes
Condition
Return Code
-5
getDevice
getDevice
There are three calls to retrieve a device:
getDeviceByIPAddr
getDeviceByMACAddress
getDeviceByHostname
All three calls return a WSDevice data structure. As their names suggest, they differ in how
the device is located.
Use any of the three calls in conjunction with the ImportDevice call to modify an existing
device. Modify the returned structure as needed and pass the modified structure to
ImportDevice. ImportDevice will update the device based on the presence of an ID
element in the WSDevice structure.
Request and Response Messages
Below is the portion of Gets.wsdl that describes the getDeviceBy request and response
messages.
<wsdl:message name="getDeviceByIPAddrRequest">
<wsdl:part name="ipAddress" type="soapenc:string"/>
<wsdl:part name="container" type="soapenc:string"/>
</wsdl:message>
<wsdl:message name="getDeviceByIPAddrResponse">
<wsdl:part name="getDeviceByIPAddrReturn" type="tns2:WSDevice"/>
</wsdl:message>
<wsdl:message name="getDeviceByHostnameRequest">
<wsdl:part name="hostname" type="soapenc:string"/>
</wsdl:message>
<wsdl:message name="getDeviceByHostnameResponse">
<wsdl:part name="getDeviceByHostnameReturn" type="tns2:WSDevice"/>
</wsdl:message>
<wsdl:message name="getDeviceByMACAddressRequest">
<wsdl:part name="macAddress" type="soapenc:string"/>
</wsdl:message>
<wsdl:message name="getDeviceByMACAddressResponse">
<wsdl:part name="getDeviceByMACAddressReturn" type="tns2:WSDevice"/>
</wsdl:message>
Response
If the Device is found, a WSDevice structure is filled in with its information. This structure
is also used by the ImportDevice API call.
getDeviceByIPAddr Request
Description
Required
ipAddress
Yes
container
getDevice
getDeviceByMACAddress Request
Description
Required
macAddress
Yes
getDeviceByHostname Request
Description
Required
hostname
Yes
Return Codes
Condition
Return Code
-120
-28
Invalid IP Address
-26
-122
-121
Missing Hostname
-80
getDeviceResourceRec
getDeviceResourceRec
This operation retrieves information about a DNS resource record from IPControl.
This call can be used in conjunction with the ImportDeviceResourceRecord call to
modify an existing DNS resource record. Use this call to retrieve a resource record based on
its device. Modify the returned structure as needed and pass the modified structure to
ImportDeviceResourceRecord. ImportDeviceResourceRecord will perform an
update instead of a create due to the presence of an ID element in the resource record
structure.
Request and Response Messages
Below is the portion of Gets.wsdl that describes the getDeviceResourceRec request and
response messages.
<wsdl:message name="getDeviceResourceRecResponse">
<wsdl:part name="getDeviceResourceRecReturn" type="tns2:WSDeviceResourceRec"/>
</wsdl:message>
<wsdl:message name=" getDeviceResourceRecRequest">
<wsdl:part name="domainName" type="soapenc:string"/>
<wsdl:part name="domainTypeName" type="soapenc:string"/>
<wsdl:part name="owner" type="soapenc:string"/>
<wsdl:part name="type" type="soapenc:string"/>
<wsdl:part name="classtype" type="soapenc:string"/>
<wsdl:part name="rdata" type="soapenc:string"/>
<wsdl:part name="hostname" type="soapenc:string"/>
<wsdl:part name="ipAddress" type="soapenc:string"/>
<wsdl:part name="container" type="soapenc:string"/>
</wsdl:message>
Response
Description
Required
domainName
Yes
domainNameType
No
owner
type
Yes
classtype
No
rdata
No
hostname
ipAddress
container
Yes, if ipAddress is in
overlapping space.
No
getDeviceResourceRec
Return Codes
Condition
Return Code
-2
Invalid IP Address
-26
-28
-60
-120
-121
-124
-125
getDhcpServer
getDhcpServer
There are two calls for retrieving information about a DHCP server:
getDhcpServerByName
getDhcpServerByIpAddress
Both return a WSDhcpServer structure. As their names suggest, they differ in how the
server is located.
Use either of the calls in conjunction with the ImportDhcpServer call to modify an
existing DHCP Server. Modify the returned structure as needed and pass the modified
structure to ImportDhcpServer. ImportDhcpServer will update the server based on
the presence of an ID element in the WSDhcpServer structure.
Request and Response Messages
Below is the portion of Gets.wsdl that describes the Dhcp Server request and response
messages.
<wsdl:message name="getDhcpServerByNameRequest">
<wsdl:part name="name" type="soapenc:string"/>
</wsdl:message>
<wsdl:message name="getDhcpServerByNameResponse">
<wsdl:part name="getDhcpServerByNameReturn" type="tns2:WSDhcpServer"/>
</wsdl:message>
<wsdl:message name="getDhcpServerByIpAddressRequest">
<wsdl:part name="ipAddress" type="soapenc:string"/>
</wsdl:message>
<wsdl:message name="getDhcpServerByIpAddressResponse">
<wsdl:part name="getDhcpServerByIpAddressReturn" type="tns2:WSDhcpServer"/>
</wsdl:message>
Response
If the DHCP server is found, a WSDhcpServer structure is filled in with its information.
This structure is also used by the ImportDhcpServer API call.
getDhcpServerByName Request
Description
Required
Name
Yes
getDhcpServerByIpAddress Request
Description
Required
ipAddress
Yes
Return Codes
Condition
Return Code
-94
Invalid IP Address
-26
getDom ainResourceRec
getDomainResourceRec
This operation retrieves information about a DNS resource record from IPControl.
This call can be used in conjunction with the ImportDomainResourceRecord call to
modify an existing DNS resource record. Use this call to retrieve a resource record that is not
bound to a particular device. Modify the returned structure as needed and pass the modified
structure to ImportDomainResourceRecord. ImportDomainResourceRecord will
perform an update instead of a create due to the presence of an ID element in the resource
record structure.
Request and Response Messages
Below is the portion of Gets.wsdl that describes the getDomainResourceRec request and
response messages.
<wsdl:message name="getDomainResourceRecResponse">
<wsdl:part name="getDomainResourceRecReturn" type="tns2:WSDomainResourceRec"/>
</wsdl:message>
<wsdl:message name=" getDomainResourceRecRequest">
<wsdl:part name="domainName" type="soapenc:string"/>
<wsdl:part name="domainTypeName" type="soapenc:string"/>
<wsdl:part name="owner" type="soapenc:string"/>
<wsdl:part name="type" type="soapenc:string"/>
<wsdl:part name="classtype" type="soapenc:string"/>
<wsdl:part name="rdata" type="soapenc:string"/>
</wsdl:message>
Response
Description
Required
domainName
Yes
domainNameType
No
owner
No
type
Yes
classtype
No
rdata
No
Return Codes
Condition
Return Code
-2
-60
-125
-136
getNetelementInterface
getNetelementInterface
There is one call to retrieve a network element interface: getNetElementInterface.
This call returns a WSNetElementInterface data structure.
Use this call in conjunction with the ImportNetElementInterface call to modify an
existing network element interface. Modify the returned structure as needed and pass the
modified structure to ImportNetElementInterface.
ImportNetElementInterface updates the network element interface based on the
presence of an ID element in the WSNetElementInterface structure.
Request and Response Messages
Below is the portion of Gets.wsdl that describes the getNetElementInterface request and
response messages.
<wsdl:message name="getNetelementInterfaceRequest">
<wsdl:part name="neName" type="soapenc:string"/>
<wsdl:part name="iName" type="soapenc:string"/>
</wsdl:message>
<wsdl:message name="getNetelementInterfaceResponse">
<wsdl:part name="getNetelementInterfaceReturn" type="tns2:WSNetElementInterface"/>
</wsdl:message>
Response
Description
Required
neName
Yes
iName
Yes
Return Codes
Condition
Return Code
-33
-19
getPrefixPool
getPrefixPool
There are two calls for retrieving information about a Prefix Pool:
getPrefixPoolByName
getPrefixPoolByStartAddr
Below is the portion of Gets.wsdl that describes the Prefix Pool request and response messages.
<wsdl:message name="getPrefixPoolByStartAddrResponse">
<wsdl:part name="getPrefixPoolByStartAddrReturn" type="tns2:WSPrefixPool"/>
</wsdl:message>
<wsdl:message name="getPrefixPoolByStartAddrRequest">
<wsdl:part name="addr" type="soapenc:string"/>
</wsdl:message>
<wsdl:message name="getPrefixPoolByNameResponse">
<wsdl:part name="getPrefixPoolByNameReturn" type="tns2:WSPrefixPool"/>
</wsdl:message>
<wsdl:message name="getPrefixPoolByNameRequest">
<wsdl:part name="name" type="soapenc:string"/>
</wsdl:message>
Response
If the prefix pool is found, a WSPrefixPool structure is filled in with its information. This
structure is also used by the ImportPrefixPool API call.
getPrefixPoolByName Request
Description
Required
Name
Yes
getPrefixPoolByStartAddr Request
Description
Required
Addr
Yes
Return Codes
If the prefix pool is not found, the call will fail with an error code of -262.
ArpDiscoverNetElement
Tasks
Overview
This section explains the web services available for issuing tasks to IPControl, and for
querying the status of IPControl tasks. Each of these services is available as an operation in
the TaskInvocation web service. You can see the complete WSDL at:
http://localhost:8080/inc-ws/services/TaskInvocation?wsdl
Return Codes
The following codes are returned as negative integers from those services returning type int.
For more information, look for error messages in the web services log.
Code
Description
-1
System Error: Serious error preventing the operation from continuing, such as failure
to connect to the database.
-2
-3
-4
Resource Not Found: Resource that service requires does not exist
ArpDiscoverNetElement
Overview
The arpDiscoverNetElement API enables the web service client to issue an immediate
Arp Discovery task to collect host information from a routers ARP cache.
Request and Response Messages
Response
If the task is scheduled successfully, the web service returns the task number. Pass this task
number to the taskStatus service to obtain the status of that task. If the task is not
scheduled successfully, the negative integer returned in the response contains a code as
described in the chapter introduction.
DHCPUtilization
Request
The parts passed as input from the client to the web service are described in the next section.
Parameters
Below is the portion of TaskInvocation.wsdl that describes the parameter structure passed to
arpDiscoverNetElement. The individual parameters are described in the table that
follows.
<wsdl:operation name="arpDiscoverNetElement"
parameterOrder="netelement performNetHostAdd updateReclaim ignoreDuplicates">
<wsdl:input message="impl:arpDiscoverNetElementRequest"
name="arpDiscoverNetElementRequest"/>
<wsdl:output message="impl:arpDiscoverNetElementResp onse"
name="arpDiscoverNetElementResponse"/>
</wsdl:operation>
Param eter name
netelement
performNetHostAdd
Set to true to automatically add new hosts that are found during
discovery.
updateReclaim
Set to true to update the last discovered counters for blocks and hosts
DHCPUtilization
Overview
The dhcpUtilization API enables the web service client to issue an immediate DHCP
Collection task to collect statistics on the utilization of a DHCP server.
Request and Response Messages
Below is the portion of TaskInvocation.wsdl that describes the dhcpUtilization request and
response messages.
<wsdl:message name="dhcpUtilizationResponse">
<wsdl:part name="dhcpUtilizationReturn" type="xsd:int" />
</wsdl:message>
</wsdl:message><wsdl:message name="dhcpUtilizationRequest">
<wsdl:part name="adminId" type="soapenc:string" />
<wsdl:part name="password" type="soapenc:string" />
<wsdl:part name="elementName" type="soapenc:string" />
<wsdl:part name="ipAddress" type="soapenc:string" />
</wsdl:message>
Response
If the task is scheduled successfully, the web service returns the task number. Pass this task
number to the taskStatus service to obtain the status of that task. If the task is not
scheduled successfully, the negative integer returned in the response contains a code as
described in the chapter introduction.
270 IPControl CLI and API Guide
DHCPUtilization
Request
The parts passed as input from the client to the web service are described in the next section.
Parameters
Below is the portion of TaskInvocation.wsdl that describes the parameter structure passed to
dhcpUtilization. The individual parameters are described in the table that follows.
<wsdl:operation name="dhcpUtilization"
parameterOrder="adminId password elementName ipAddress">
<wsdl:input message="impl:dhcpUtilizationRequest" name="dhcpUtilizationRequest" />
<wsdl:output message="impl:dhcpUtilizationResponse" name="dhcpUtilizationResponse" />
</wsdl:operation>
Part nam e
Required
adminId
Yes
password
Yes
elementName
ipAddress
DiscoverNetElement
DiscoverNetElement
Overview
The discoverNetElement API enables the web service client to issue an immediate
Discover task to discover the interfaces bound to a network element already defined in
IPControl.
Request and Response Messages
Response
If the task is scheduled successfully, the positive integer returned by the web service
corresponds to the task number. That task number can then be passed to the TaskStatus
service to obtain the status of that task. If the task is not scheduled successfully, the negative
integer returned in the response contains a code as described in the chapter introduction.
Request
The parts passed as input from the client to the web service are described in the next section.
Parameters
Below is the portion of TaskInvocation.wsdl that describes the parameter structure passed to
discoverNetElement. The individual parameters are described below.
<wsdl:operation name="discoverNetElement"
parameterOrder="adminId password elementName ipAddress">
<wsdl:input message="impl:discoverNetElementRequest" name="discoverNetElementRequest" />
<wsdl:output message="impl:discoverNetElementResponse" name="discoverNetElementResponse" />
</wsdl:operation>
Part nam e
Required
adminId
Yes
password
Yes
elementName
ipAddress
IP Address or fully-qualified
(FQDN) of the device to discover.
GetTask
GetTask
Overview
The getTask API enables the web service client to query the status of tasks and receive
detailed information about those tasks.
Request and Response Messages
Below is the portion of TaskInvocation.wsdl that describes the getTask request and response
messages.
<wsdl:message name="getTaskRequest">
<wsdl:part name="taskId" type="xsd:int" />
</wsdl:message>
<wsdl:message name="getTaskResponse">
<wsdl:part name="getTaskReturn" type="impl:ArrayOf_soapenc_string" />
</wsdl:message>
Response
GetTask will return the status of the queried task as a string array with the following
information:
Elem ent
Description
Task ID
Service
Scope
Status
Request
The input from the client to the web service is described in the next section.
Parameters
Below is the portion of TaskInvocation.wsdl that describes the parameter structure passed to
getTask . The parameter is described in the table that follows.
<wsdl:operation name="getTask" parameterOrder="taskId">
<wsdl:input message="impl:getTaskRequest" name="getTaskRequest" />
<wsdl:output message="impl:getTaskResponse" name="getTaskResponse"/>
</wsdl:operation>
Required
taskId
Yes
GetTaskStatus
GetTaskStatus
Overview
The getTaskStatus API enables the web service client to query the status of tasks.
Request and Response Messages
Below is the portion of TaskInvocation.wsdl that describes the getTaskStatus request and
response messages.
<wsdl:message name="getTaskStatusResponse">
<wsdl:part name="getTaskStatusReturn" type="soapenc:string" />
</wsdl:message>
<wsdl:message name="getTaskStatusRequest">
<wsdl:part name="taskId" type="xsd:int" />
</wsdl:message>
Response
GetTaskStatus returns the status of the queried task as one of the following strings:
NOTSTARTED
QUEUED
INPROGRESS
COMPLETE
COMPLETEWITHERRORS
ERROR
For more detailed information about the task, use the getTask service, described next in this
section.
Request
The input from the client to the web service is described in the next section.
Parameters
Below is the portion of TaskInvocation.wsdl that describes the parameter structure passed to
getTaskStatus. The parameter is described below.
<wsdl:operation name="getTaskStatus" parameterOrder="taskId">
<wsdl:input message="impl:getTaskStatusRequest" name="getTaskStatusRequest" />
<wsdl:output message="impl:getTaskStatusResponse" name="getTaskStatusResponse" />
</wsdl:operation>
Part nam e
Required
taskId
Yes
GlobalNetElem entSync
GlobalNetElementSync
Overview
The globalNetElementSync API enables the web service client to issue an immediate
Global Synchronization task for all network elements in IPControl that are flagged for
inclusion in the Global Sync process.
Request and Response Messages
Response
If the task is scheduled successfully, the positive integer returned by the web service will
correspond to the task number. That task number can then be passed to the taskStatus
service to obtain the status of that task. If the task is not scheduled successfully, the negative
integer returned in the response contains a code as described in the chapter introduction.
Request
The parts passed as input from the client to the web service are described in the next section.
Parameters
Below is the portion of TaskInvocation.wsdl that describes the parameter structure passed to
globalNetElementSync . The individual parameters are described below.
<wsdl:operation name="globalNetElementSync" parameterOrder="adminId password">
<wsdl:input message="impl:globalNetElementSyncRequest"
name="globalNetElementSyncRequest" />
<wsdl:output message="impl:globalNetElementSyncResponse"
name="globalNetElementSyncResponse" />
</wsdl:operation>
Part nam e
Required
adminId
Yes
password
Yes
GlobalNetServiceSync
GlobalNetServiceSync
Overview
The globalNetServiceSync API enables the web service client to issue an immediate
Global Synchronization task for all network services in IPControl that are flagged for
inclusion in the Global Sync process.
Request and Response Messages
Response
If the task is scheduled successfully, the positive integer returned by the web service will
correspond to the task number. That task number can then be passed to the taskStatus
service to obtain the status of that task. If the task is not scheduled successfully, the negative
integer returned in the response contains a code as described in the chapter introduction.
Request
The parts passed as input from the client to the web service are described in the next section.
Parameters
Below is the portion of TaskInvocation.wsdl that describes the parameter structure passed to
globalNetServiceSync . The individual parameters are described below.
<wsdl:operation name="globalNetServiceSync" parameterOrder="adminId password">
<wsdl:input message="impl:globalNetServiceSyncRequest"
name="globalNetServiceSyncRequest" />
<wsdl:output message="impl:globalNetServiceSyncResponse"
name="globalNetServiceSyncResponse" />
</wsdl:operation>
Part nam e
Required
adminId
Yes
password
Yes
GlobalRollup
GlobalRollup
Overview
The globalRollup API enables the web service client to issue an immediate Global Rollup
task to collect statistics and perform regression analysis.
Request and Response Messages
Below is the portion of TaskInvocation.wsdl that describes the globalRollup request and
response messages.
<wsdl:message name="globalRollupResponse">
<wsdl:part name="globalRollupReturn" type="xsd:int" />
</wsdl:message>
<wsdl:message name="globalRollupRequest">
<wsdl:part name="adminId" type="soapenc:string" />
<wsdl:part name="password" type="soapenc:string" />
<wsdl:part name="periodLength" type="xsd:int" />
<wsdl:part name="_periodType" type="soapenc:string" />
</wsdl:message>
Response
If the task is scheduled successfully, the positive integer returned by the web service will
correspond to the task number. That task number can then be passed to the taskStatus
service to obtain the status of that task. If the task is not scheduled successfully, the negative
integer returned in the response contains a code as described in the chapter introduction.
Request
The parts passed as input from the client to the web service are described in the next section.
Parameters
Below is the portion of TaskInvocation.wsdl that describes the parameter structure passed to
globalRollup . The individual parameters are described in the table that follows.
<wsdl:operation name="globalRollup"
parameterOrder="adminId password periodLength _periodType">
<wsdl:input message="impl:globalRollupRequest" name="globalRollupRequest" />
<wsdl:output message="impl:globalRollupResponse" name="globalRollupResponse" />
</wsdl:operation>
Part nam e
Required
adminId
Yes
password
Yes
periodLength
Yes
_periodType
Yes
Overview
Exports
Overview
This section explains the web services available for retrieving information from IPControl.
Each of these services is available as an operation in the Exports web service. You can see the
complete WSDL at:
http://localhost:8080/inc-ws/services/Exports?wsdl
Export Categories
There are two categories of Export web services. The first category consists of legacy APIs
that were available in the initial version of IPControl. The second category consists of a
newer set of APIs that provide a more flexible request and response format.
Legacy Web Services
The legacy web service APIs are designed to accept one or more request parameters which
define the filter used to export objects from the IPControl database. In addition, these legacy
APIs return a string response which contains a list of objects. Each objects fields a re commadelimited, and each object in the list is separated by a newline character. The legacy web
service APIs are the following:
ExportNetElementsAsCSV
ExportAllNetElementsAsCSV
ExportNetServicesAsCSV
ExportAllNetServicesAsCSV
ExportContainer
ExportRootBlock
ExportChildBlock
ExportDevice
ExportDeviceResourceRecord
ExportNetElementsAsCSV
The exportNetElementsAsCSV API enables the web service client to issue a request to
retrieve a list of Network Elements from IPControl. This service enables the client to filter the
list of Network Elements retrieved.
Request and Response Messages
Response
The string that is returned contains the list of Network Elements matching the selection
criteria specified in the request. Each Network Element description is separated by a new line
character. The values within each Network Element description are separated by commas, and
described in the table below. Fields that are not required may not always contain values. Fields
H, I, J and K will not be exported, since these could contain sensitive information. The
columns are preserved to maintain conformity with the ImportNetElement API.
Col
Field
Description
Required
Name
Yes
IP Address/FQDN
Yes
Vendor
Yes when
Model is
specified.
Model
Yes when
Vendor is
specified.
Type
Yes
Global Sync
Yes
ExportNetElementsAsCSV
Col
Field
Description
Required
Agent Name
Yes
Telnet user
No
Telnet password
No
Enable password
No
No
Interfaces
No
V3 Username
No
V3 Authentication
Protocol
No
V3 Authentication
Password
No
V3 Privacy Protocol
No
V3 Privacy Password
No
V3 Context Name
No
V3 Engine ID
No
Request
The parts passed as input from the client to the web service are described in the next section.
They are used to filter the information retrieved from IPControl. None are required. To
retrieve all Network Elements, use ExportAllNetElementsAsCSV.
Parameters
Below is the portion of Exports.wsdl that describes the parameter structure passed to
exportNetElementsAsCSV . The individual parameters are described in the table that
follows. Note that none of the parameters are required, since they are used as a filter for the
information retrieved.
<wsdl:operation name="exportNetElementsAsCSV"
parameterOrder="elementName vendorName modelDesc ipaddr globalsync agentName
elementType">
<wsdl:input message="impl:exportNetElementsAsCSVRequest"
name="exportNetElementsAsCSVRequest" />
<wsdl:output message="impl:exportNetElementsAsCSVResponse"
name="exportNetElementsAsCSVResponse" />
</wsdl:operation>
Part nam e
elementName
vendorName
modelDesc
ipAddress
ExportNetElementsAsCSV
Part nam e
globalsync
agentName
The exact name of the IPControl Agent that is responsible for contacting
this Network Element.
elementType
ExportAllNetElementsAsCSV
ExportAllNetElementsAsCSV
Overview
The exportAllNetElementsAsCSV API enables the web service client to issue a request
to retrieve a list of all of the Network Elements from IPControl. To filter the request, use the
exportNetElementsAsCSV service.
Request and Response Messages
Response
The string that is returned contains the list of all of the Network Elements. See the Response
section of ExportNetElementsAsCSV for format and details.
Request
Below is the portion of Exports.wsdl that describes the parameter structure passed to
exportAllNetElementsAsCSV .
<wsdl:operation name="exportAllNetElementsAsCSV">
<wsdl:input message="impl:exportAllNetElementsAsCSVRequest"
name="exportAllNetElementsAsCSVRequest" />
<wsdl:output message="impl:exportAllNetElementsAsCSVResponse"
name="exportAllNetElementsAsCSVResponse" />
</wsdl:operation >
ExportNetServicesAsCSV
ExportNetServicesAsCSV
Overview
The exportNetServicesAsCSV API enables the web service client to issue a request to
retrieve a list of DHCP Network Services from IPControl. This API enables the web service
client to filter the list of Network Services retrieved.
Request and Response Messages
Response
The string that is returned contains the list of Network Services matching the selection criteria
specified in the request. Each Network Service description is separated by a new line
character. The values within each Network Service description are separated by commas, and
described in the table below. Fields that are not required may not always contain values. Fields
H and I will not be exported, since these could contain sensitive information. The columns
are preserved to maintain conformity with the ImportNetService API.
Col
Field
Accepted Values
Required
Name
Yes
IP Address/FQDN
Yes
Type
No
Product name
Yes
Agent name
Yes
Global Sync
Yes
Collection Method
Yes
Yes
ExportNetServicesAsCSV
Col
Field
Accepted Values
collection
Required
Yes
Collection port
No
Container(s)
No longer used.
VendorInfo
No
Request
The parts passed as input from the client to the web service are described in the next section.
They are used to filter the information retrieved from IPControl. None are required. To
retrieve all Network Services, use ExportAllNetServicesAsCSV.
Parameters
Below is the portion of Exports.wsdl that describes the parameter structure passed to
exportNetServicesAsCSV . The individual parameters are described in the table that
follows. Note that none of the parameters are required, since they are used as a filter for the
information retrieved.
<wsdl:operation name="exportNetServicesAsCSV" parameterOrder="serviceName vendorName
containerName ipaddr globalsync agentName serviceType">
<wsdl:input message="impl:exportNetServicesAsCSVRequest"
name="exportNetServicesAsCSVRequest" />
<wsdl:output message="impl:exportNetServicesAsCSVResponse"
name="exportNetServicesAsCSVResponse" />
</wsdl:operation>
ExportNetServicesAsCSV
Part nam e
serviceName
vendorName
containerName
ipAddress
globalsync
agentName
The exact name of the IPControl Agent that is responsible for contacting
this Network Service.
serviceType
ExportAllNetServicesAsCSV
ExportAllNetServicesAsCSV
Overview
The exportAllNetServicesAsCSV API enables the web service client to issue a request
to retrieve a list of all of the DHCP Network Services from IPControl. To filter the request,
use the exportNetServicesAsCSV API.
Request and Response Messages
Response
The string that is returned contains the list of all of the Network Services. See the Response
section of ExportNetServicesAsCSV on page 283 for format and details.
Request
Below is the portion of Exports.wsdl that describes the parameter structure passed to
exportAllNetServicesAsCSV.
<wsdl:operation name="exportAllNetSevicesAsCSV">
<wsdl:input message="impl:exportAllNetSevicesAsCSVRequest"
name="exportAllNetSevicesAsCSVRequest" />
<wsdl:output message="impl:exportAllNetSevicesAsCSVResponse"
name="exportAllNetSevicesAsCSVResponse" />
</wsdl:operation>
Selectors
Selectors which are based on a text field can support the keywords begins, ends, or
contains to support wildcarding. For example, to export all Devices with a hostname
beginning with my, the request query string would be as follows:
name begins my
The export filter can be further refined by combining additional selectors using the Boolean
operators and and or. For example, to export all Devices with a hostname beginning
with my and with a device type of PC, the request query string would be as follows:
name begins my and devicetype=PC
Use parentheses to apply specific precedence in expressions that utilize multiple Boolean
operators.
Each new export web service supports a specific set of selectors. Please refer to each API
definition on the following pages for the supported selector syntax.
Options
Some of the new web services APIs also support a second parameter, which is used to pass
options to the service. Refer to the WSDL and the sections that follow for more information.
Paging
The new web services APIs also support the concept of paging through the export results.
Some queries may result in thousands of exported objects. Due to memory and network
constraints, it is not feasible to return all the results in a single response. Therefore, the web
services client should specify the starting point within the list of results, as well as the number
of results to return. This is accomplished using the WSContext object.
Each new web service must be initialized by the client by calling the initialization method
associated with the export web service. Therefore, the client will always perform at least two
web service requests to export objects from IPControl. For example, when exporting devices,
the client must call initExportDevice first, followed by a call to exportDevice. The
export service initialization APIs take the query string as the request, and return a
WSContext object in the response. The export services APIs themselves take the
WSContext object as the request, and return an array of exported objects in the response.
Sessions
Sessions
Initialization calls are linked to subsequent export calls by using sessions. The initialization call
creates a session and returns a session identifier as part of the SOAP envelope. This session
identifier must be provided on all subsequent export calls, or an error occurs.
If you are using the Java Axis package to generate your web services client, configure your
client to use the SimpleSessionHandler, as described in the documentation. If not, the
details of the session handling follow.
The session identifier is returned as part of the SOAP Header. The namespace is
http://xml.apache.org/axis/session. The element name is sessionID. An
example of the returned header follows, where the value of the sessionID is 12345678.
<soapenv:Header>
<ns1:sessionID soapenv:mustUnderstand="0" xmlns:ns1="http://xml.apache.org/axis/session">
12345678
</ns1:sessionID>
</soapenv:Header>
The response processing for the init* calls must capture this element and value. The
subsequent export* calls must include this element and value in the SOAP Header.
Without this, the export* calls cannot correlate with the init call, and return an error.
WSContext
Below is the portion of Exports.wsdl that describes WSContext, the parameter structure
returned by the initExport* APIs, and passed to the export* APIs. The elements are
described in the table that follows.
<complexType name="WSContext">
<sequence>
<element name="contextId" nillable="true" type="soapenc:string" />
<element name="contextType" nillable="true" type="soapenc:string" />
<element name="filter" nillable="true" type="soapenc:string" />
<element name="firstResultPos" type="xsd:int" />
<element name="maxResults" type="xsd:int" />
<element name="options" nillable="true" type="impl:ArrayOf_soapenc_string"/>
<element name="query" nillable="true" type="soapenc:string" />
<element name="resultCount" type="xsd:int" />
<element name="internalResultCount" type="xsd:int" />
</sequence>
</complexType>
Elem ent
Description
contextId
Reserved
contextType
Reserved
filter
Reserved
firstResultPos
Reserved
maxResults
options
Reserved
query
Reserved
resultCount
Reserved
internalResultCount
Reserved
ExportRootBlock
ExportRootBlock
Overview
The exportRootBlock API enables the web service client to issue a request to retrieve a
list of Root Blocks from IPControl. This service enables the client to filter the list of Root
Blocks retrieved.
Initialization
Before the exportRootBlock API is called, the web service client must call
initExportRootBlock to initialize the API. Below is the portion of Exports.wsdl that
describes the initExportRootBlock request and response messages.
<wsdl:message name="initExportRootBlockRequest">
<wsdl:part name="query" type="soapenc:string"/>
</wsdl:message>
<wsdl:message name="initExportRootBlockResponse">
<wsdl:part name="initExportRootBlockReturn" type="tns2:WSContext"/>
</wsdl:message>
Request
The query string is passed as input from the client to the initExportRootBlock web
service. The query string syntax is defined previously. Supported selectors for exporting root
blocks are defined in the following table.
Selector
Description
Exam ple
name
name=My Block
name begins My
name ends Block
name contains Bl
block
block=10.0.0.0/24
blocktype
blocktype=Private
container
container=Exton
block=10.0.*/24
container begins Ex
container ends ton
container contains xto
ipaddress
ipaddress=10.0.0.1
ipaddressrange
ipaddressrange=10.0.0.0-10.0.10.255
udf
UDF.myudf=myudf_value
ExportRootBlock
Response
The portion of Exports.wsdl that describes the exportRootBlock request and response
messages is shown below.
<wsdl:message name="exportRootBlockRequest">
<wsdl:part name="context" type="tns2:WSContext" />
</wsdl:message>
<wsdl:message name="exportRootBlockResponse">
<wsdl:part name="exportRootBlockReturn" type="impl:ArrayOf_tns1_WSRootBlock"/>
</wsdl:message>
Request
The WSContext passed as input by the client web service is the WSContext object returned
by the initExportRootBlock service defined above. This WSContext has the
maxResults field set to a default value of 100. When this context is provided to a
subsequent call to exportRootBlock, the number of exported blocks is limited to the first
100 that match the criteria in the given query filter. The web service client may change the
maxResults attribute of the WSContext before any call to the exportRootBlock service
to modify the size of the resultant WSRootBlock object array. However, the value specified
by the client cannot exceed 100.
Response
Below is the portion of Exports.wsdl that describes WSRootBlock, the array of structures
returned by exportRootBlock. The elements are described in the table that follows.
<complexType name="WSRootBlock">
<sequence>
<element name="RIR" nillable="true" type="soapenc:string" />
<element name="SWIPname" nillable="true" type="soapenc:string" />
<element name="allocationReason" nillable="true" type="soapenc:string" />
<element name="allocationReasonDescription" nillable="true" type="soapenc:string" />
<element name="allowOverlappingSpace" nillable="true" type="soapenc:string" />
<element name="blockAddr" nillable="true" type="soapenc:string" />
<element name="blockName" nillable="true" type="soapenc:string" />
<element name="blockSize" nillable="true" type="soapenc:strin g" />
<element name="blockType" nillable="true" type="soapenc:string" />
<element name="container" nillable="true" type="soapenc:string" />
<element name="createReverseDomains" nillable="true" type="soapenc:string" />
<element name="description" nillable="true" type="soapenc:string" />
<element name="domainType" nillable="true" type="soapenc:string" />
<element name="organizationId" nillable="true" type="soapenc:string" />
<element name="userDefinedFields" nillable="true" type="impl:ArrayOf_soapenc_string" />
</sequence>
290 IPControl CLI and API Guide
ExportRootBlock
</complexType>
Elem ent
Accepted Values
RIR
SWIPname
allocationReason
allocationReasonDescription
allowOverlappingSpace
blockAddr
blockName
blockSize
blockType
container
createReverseDomains
description
domainType
organizationId
userDefinedFields
ExportChildBlock
ExportChildBlock
Overview
The exportChildBlock API enables the web service client to issue a request to retrieve a
list of Child Blocks from IPControl. This service enables the client to filter the list of Child
Blocks retrieved.
Initialization
Before the exportChildBlock API is called, the web service client must call
initExportChildBlock to initialize the API. The portion of Exports.wsdl that describes
the initExportChildBlock request and response messages is shown below.
<wsdl:message name="initExportChildBlockRequest">
<wsdl:part name="query" type="soapenc:string"/>
<wsdl:part name="includeFreeBlocks" type="xsd:boolean"/>
</wsdl:message>
<wsdl:message name="initExportChildBlockResponse">
<wsdl:part name="initExportChildBlockReturn" type="tns2:WSContext"/>
</wsdl:message>
Request
The query string is passed as input from the client to the initExportChildBlock web
service. The query string syntax is defined previously. Supported selectors for exporting child
blocks are defined in the following table.
In addition, the initExportChildBlock service accepts a Boolean flag that specifies if the
free blocks maintained by IPControl should be included in the export.
Selector
Description
Exam ple
name
name=My Block
name begins My
name ends Block
name contains Bl
block
block=10.0.0.0/24
blocktype
blocktype=Private
container
container=Exton
block=10.0.*/24
container begins Ex
container ends ton
container contains xto
parentBlock
parentName=172.16.0.0/23
parentName=172.16.0.0/23^container=North
parentName=172.16.0.0/23^container=
/InControl/Canada/North
ExportChildBlock
Selector
Description
Exam ple
Parent
Container
parentContainer=North
recursive
recursive=true
status
status=aggregate
interface
interface=eth0
ipaddress
ipaddress=10.0.0.1
ipaddressrange
ipaddressrange=10.0.0.0-10.0.10.255
udf
UDF.myudf=myudf_value
parentContainer=/InControl/Canada/North
Response
Below is the portion of Exports.wsdl that describes the exportChildBlock request and
response messages.
<wsdl:message name="exportChildBlockRequest">
<wsdl:part name="context" type="tns2:WSContext" />
</wsdl:message>
<wsdl:message name="exportChildBlockResponse">
<wsdl:part name="exportChildBlockReturn" type="impl:ArrayOf_tns1_WSChildSubnetBlock"/>
</wsdl:message>
Request
The WSContext passed as input by the client web service is the WSContext object returned
by the initExportChildBlock service defined above, and has the maxResults field set
to a default value of 100. When this context is provided to a subsequent call to
exportChildBlock, the number of exported blocks is limited to the first 100 that match
the criteria in the given query filter. The web service client may change this maxResults
attribute of the WSContext before any call to the exportChildBlock service to modify
the size of the resultant WSChildBlock object array. However, the value specified by the
client cannot exceed 100.
ExportChildBlock
Response
childBlock
subnetPolicy
WSChildBlock
Below is the portion of Exports.wsdl that describes WSChildBlock, the first parameter
structure passed to importChildBlock. The elements are described in the table that
follows.
<complexType name="WSChildBlock">
<sequence>
<element name="SWIPname" nillable="true" type="soapenc:string" />
<element name="allocationReason" nillable="true" type="soapenc:string" />
<element name="allocationReasonDescription" nillable="true" type=" soapenc:string" />
<element name="allocationTemplate" nillable="true" type="soapenc:string" />
<element name="blockAddr" nillable="true" type="soapenc:string" />
<element name="blockName" nillable="true" type="soapenc:string" />
<element name="blockSize" nillable="true" type="soapenc:string" />
<element name="blockStatus" nillable="true" type="soapenc:string" />
<element name="blockType" nillable="true" type="soapenc:string" />
<element name="container" nillable="true" type="soapenc:string" />
<element name="createReverseDomains" nillable="true" type="soapenc:string" />
<element name="description" nillable="true" type="soapenc:string" />
<element name="domainType" nillable="true" type="soapenc:string" />
<element name="excludeFromDiscovery" nillable="true" type="soapenc:string"/>
<element name="interfaceAddress" nillable="true" type="impl:ArrayOf_soapenc_string"/>
<element name="interfaceName" nillable="true" type="soapenc:string" />
<element name="ipv6" type="xsd:boolean"/>
<element name="primarySubnet" type="xsd:boolean"/>
<element name="userDefinedFields" nillable="true" type="impl:ArrayOf_soapenc_string" />
</sequence>
</complexType>
Elem ent
SWIPname
allocationReason
allocationReasonDescription
ExportChildBlock
Elem ent
allocationTemplate
Reserved
blockAddr
blockName
blockSize
blockStatus
blockType
container
createReverseDomains
description
domainType
excludeFromDiscovery
interfaceAddress
interfaceName
ipv6
primarySubnet
userDefinedFields
WSSubnetPolicy
The portion of Exports.wsdl that describes WSSubnetPolicy, the second parameter structure
passed to ImportChildBlock is shown below. The elements are described in the table that
follows.
<complexType name="WSSubnetPolicy">
<sequence>
<element name="DHCPOptionsSet" nillable="true" type="soapenc:string" />
<element name="DHCPPolicySet" nillable="true" type="soapenc:string" />
<element name="DNSServers" nillable="true" type="impl:ArrayOf_soapenc_string" />
<element name="defaultGateway" nillable="true" type="soapenc:string" />
<element name="failoverDHCPServer" nillable="true" type="soapenc:string" />
<element name="forwardDomainTypes" nillable="true" type="impl:ArrayOf_soapenc_string"/>
<element name="forwardDomains" nillable="true" type="impl:ArrayOf_soapenc_string" />
<element name="networkLinks" nillable="true" type="soapenc:string"/>
<element name="primaryDHCPServer" nillable="true" type=" soapenc:string" />
<element name="primaryWINSServer" nillable="true" type=" soapenc:string" />
<element name="reverseDomainTypes" nillable="true" type="impl:ArrayOf_soapenc_string"/>
<element name="reverseDomains" nillable="true" type="impl:ArrayOf_ soapenc_string" />
</sequence>
</complexType>
Elem ent
DHCPOptionsSet
DHCPPolicySet
ExportChildBlock
Elem ent
DNSServers
defaultGateway
The default gateway that DHCP clients on this subnet will use.
Accepted value is an IP address.
failoverDHCPServer
The name of the DHCP server that will act as failover for this
subnet. This cannot be the same as the primary DHCP server.
forwardDomains
The forward domain names that will available to the user when
adding an IP address to the system. The first forward domain in the
list will be used when there is a domain name DHCP option.
forwardDomainTypes
networkLinks
Reserved
primaryDHCPServer
The name of the DHCP server that will act as primary for this
subnet.
primaryWINSServer
reverseDomains
The reverse domain names that will available to the user when
adding an IP address to the system.
reverseDomainTypes
Optional Service
After the initExportChildBlock API is called to initialize the API, the web service client
can, optionally, call the initExportChildBlockUDFTags API. This service is used by the
ExportChildBlock CLI to create the header line used when exporting with the expanded
format option. The portion of Exports.wsdl that describes the
initExportChildBlockUDFTags request and response messages is shown below.
<wsdl:message name="initExportChildBlockUDFTagsRequest">
<wsdl:part name="context" type="tns2:WSContext"/>
</wsdl:message>
<wsdl:message name="initExportChildBlockUDFTagsResponse">
<wsdl:part name="initExportChildBlockUDFTagsReturn" type="impl:ArrayOf_soapenc_string"/>
</wsdl:message>
Request
The WSContext passed as input by the client web service is the WSContext object returned
by the initExportChildBlock service defined above.
Response
ExportContainer
ExportContainer
Overview
The exportContainer API enables the web service client to issue a request to retrieve a
list of Containers from IPControl. This service enables the client to filter the list of Containers
retrieved.
Initialization
Before the exportContainer API is called, the web service client must call
initExportContainer to initialize the API. The portion of Exports.wsdl that describes the
initExportContainer request and response messages is shown below.
<wsdl:message name="initExportContainerRequest">
<wsdl:part name="query" type="soapenc:string"/>
<wsdl:part name="options" type="impl:ArrayOf_soapenc_string"/>
</wsdl:message>
<wsdl:message name="initExportContainerResponse">
<wsdl:part name="initExportContainerReturn" type="tns2:WSContext"/>
</wsdl:message>
Request
The query string is passed as input from the client to the initExportContainer web
service. The query string syntax is defined previously. Supported selectors for exporting
devices are defined in the following table.
Selector
Description
Exam ple
Name
Name=west;
Name ends est
Name begins wes
Name contains es
UDF.order=first
UDF.order begins fir
The options array is used to pass additional option information to the service. The valid
options for ExportContainer are described in the following table:
Option
ParentContainerFullPath
When this option is specified, the service populates the parent container field using
the long format, for example: IPControl/Texas/Dallas
Response
ExportContainer
Service Invocation
The portion of Exports.wsdl that describes the exportContainer request and response
messages is shown below.
<wsdl:message name="exportContainerRequest">
<wsdl:part name="context" type="tns1:WSContext"/>
</wsdl:message>
<wsdl:message name="exportContainerResponse">
<wsdl:part name="exportContainerReturn" type="impl:ArrayOf_tns2_WSContainer"/>
</wsdl:message>
Request
The WSContext passed as input by the client web service is the WSContext object returned
by the initExportContainer service defined above. This WSContext has the
maxResults field set to a default value of 100. When this context is provided to a
subsequent call to exportContainer, the number of exported containers is limited to the
first 100 that match the criteria in the given query filter. The web service client may change
this maxResults attribute of the WSContext before any call to the exportContainer
service to modify the size of the resultant WSContainer object array. However, the value
specified by the client cannot exceed 100.
Response
ExportDevice
ExportDevice
Overview
The exportDevice API enables the web service client to issue a request to retrieve a list of
Devices from IPControl. This service enables the client to filter the list of Devices retrieved.
Initialization
Before the exportDevice API is called, the web service client must call
initExportDevice to initialize the API. The portion of Exports.wsdl that describes the
initExportDevice request and response messages is shown following.
<wsdl:message name="initExportDeviceRequest">
<wsdl:part name="filter" type="soapenc:string"/>
<wsdl:part name="options" type="impl:ArrayOf_s oapenc_string"/>
</wsdl:message>
<wsdl:message name="initExportDeviceResponse">
<wsdl:part name="initExportDeviceReturn" type="tns2:WSContext"/>
</wsdl:message>
Request
The query string is passed as input from the client to the initExportDevice web service.
The query string syntax is defined previously. Supported selectors for exporting devices are
defined in the following table.
In addition, the initExportDevice service accepts the options array, described following
the selectors table.
Selector
Description
Exam ple
Name
Name=host;
Name ends ost
Name begins hos
Name contains os
Container
Container=Exton;
Container ends ton
Container begins Ext
Container contains xto
IP Address
IPAddress=10.0.0.1
IP Address Range
IPAddressRange=10.0.0.1-11.0.0.1
ExportDevice
Selector
Description
Exam ple
Device type
DeviceType=Router
DeviceType ends uter
DeviceType begins Rou
DeviceType contains out
Domain
Domain=ins.com.
Domain begins ins.c
Domain ends .com.
Domain contains s.com
Block
Block=10.0.0.0/24
Block begins 10.0.0
Block ends .0/24
Block contains .0.0.0
Block Type
BlockType=Any
BlockType begins An
BlockType ends ny
BlockType contains n
UDF.order=first
UDF.order begins fir
UDF.order ends rst
UDF.order contains irs
Address Type
addrType=4 (Static)
1 : Dynamic DHCP
2 : Automatic DHCP
3 : Manual DHCP
4 : Static
5 : Reserved
6 : Dynamic NA DHCPv6
7 : Automatic NA DHCPv6
8 : Manual NA DHCPv6
9 : Dynamic TA DHCPv6
10 : Automatic TA DHCPv6
11 : Manual TA DHCPv6
12 : Dyanmic PD DHCPv6
13 : Automatic PD DHCPv6
14 : Interface
Virtual
The options array is used to pass additional option information to the service. The valid
options for ExportDevice are described in the following table:
Option
recurseContainerHierarchy
When this option is specified, the service recursively exports all devices within all
child containers specified within the Container Selector filter. This flag is ignored if
a Container Selector is not included.
ExportDevice
Response
The response from the initExportDevice web service is a WSContext object defined
previously and must be included in each successive call to exportDevice, as described
below.
Service Invocation
The portion of Exports.wsdl that describes the exportDevice request and response messages
is shown following.
<wsdl:message name="exportDeviceRequest">
<wsdl:part name="context" type="tns2:WSContext" />
</wsdl:message>
<wsdl:message name="exportDeviceResponse">
<wsdl:part name="exportDeviceReturn" type="impl:ArrayOf_tns2_WSDevice"/>
</wsdl:message>
Request
The WSContext passed as input by the client web service is the WSContext object returned
by the initExportDevice service defined aboveand has the maxResults field set to a
default value of 100. When this context is provided to a subsequent call to exportDevice,
the number of exported blocks is limited to the first 100 or less (see Paging), that match the
criteria in the given query filter. The web service client may change this maxResults
attribute of the WSContext before any call to the exportDevice service to modify the size
of the resultant WSDevice object array. However, the value specified by the client cannot
exceed 100.
Paging
A device in IPControl is normalized within the database and thus may be represented by more
than a single row in multiple tables. Because of this and for performance, the
exportDevice cannot guarantee that the number of WSDevice objects returned in any
single execution of the service will be equal to the max results set on the WSContext object.
It will, however, always guarantee the number of results to be the max results value or less.
Response
The result returned from the exportDevice service is an array of WSDevice objects
matching the selection criteria specified in the query filter. The WSDevices can then be
modified and/or imported using the importDevice API. The format of the WSDevice
matches that defined by the importDevice.
WSDevice
Below is the portion of Exports.wsdl that describes WSDevice, the array of structures returned
by exportDevice. The elements are described in the table that follows.
<complexType
<sequence>
<element
<element
<element
<element
<element
<element
name="WSDevice">
name="MACAddress" nillable="true" type="soapenc:st ring"/>
name="addressType" nillable="true" type="soapenc:string"/>
name="aliases" nillable="true" type="impl:ArrayOf_soapenc_string"/>
name="container" nillable="true" type="soapenc:string"/>
name="description" nillable="true" type="soapenc:string"/>
name="deviceType" nillable="true" type="soapenc:string"/>
Application Program Interfaces (API) 301
ExportDevice
Elem ent
Accepted Values
MACAddress
addressType
The address type of this device. Accepted values are: Static, Dynamic
DHCP, Automatic DHCP, Manual DHCP, Reserved, Dynamic NA
DHCPv6, Automatic NA DHCPv6, Dynamic TA DHCPv6, and
Automatic TA DHCPv6
Aliases
A string array containing the alias or list of aliases for this hostname. When
you specify an alias, a CNAME record is created. The alias may be fully
qualified (contains a trailing dot), or not. When fully qualified, everything that
is after the first qualifier is interpreted as a domain name. When not fully
qualified, the CNAME record will be created in the same domain as the
device.
To use this element, you must also specify resourceRecordFlag as true.
container
description
deviceType
domainName
domainType
duid
dupWarning
If the administrator policy of the user indicates Warn for the Allow
Duplicate Hostnames Checking option, the warning will be ignored and the
device added with the duplicate hostname when this field is true. Accepted
values are true or false. If not specified, defaults to false.
ExportDevice
Elem ent
Accepted Values
hostname
hwtype
ipAddress
resourceRecordFlag
Whether or not to add resource records for this device. If not specified as
true, defaults to false.
userDefinedFields
A string array containing one or more name=value pairs, where the name is the
UDF name and the value is the desired value, for example, State=PA. If the
UDF type is Checkbox, the valid values are on and off.
Interfaces
id
excludeFromDiscovery
Optional Service
After the initExportDevice API is called to initialize the API, the web service client can,
optionally, call the initExportDeviceUDFTags API. This service is used by the
ExportDevice CLI to create the header line used when exporting with the expanded format
option. The portion of Exports.wsdl that describes the initExportDeviceUDFTags
request and response messages is shown below.
<wsdl:message name="initExportDeviceUDFTagsRequest">
<wsdl:part name="context" type="tns2:WSContext"/>
</wsdl:message>
<wsdl:message name="initExportDeviceUDFTagsResponse">
<wsdl:part name="initExportDeviceUDFTagsReturn" type="impl:ArrayOf_soapenc_string"/>
</wsdl:message>
Request
The WSContext passed as input by the client web service is the WSContext object returned
by the initExportDevice service defined above.
Application Program Interfaces (API) 303
ExportDevice
Response
ExportDeviceResourceRecord
ExportDeviceResourceRecord
Overview
The exportDeviceResourceRecord API enables the web service client to issue a request
to retrieve a list of resource records for a device or list of devices from IPControl. This service
enables the client to filter the list of resource records retrieved by device.
Initialization
Before the exportDeviceResourceRecord API is called, the web service client must call
initExportDeviceResourceRec to initialize the API. The portion of Exports.wsdl that
describes the initExportDeviceResourceRec request and response messages is shown
following.
<wsdl:message name="initExportDeviceResourceRecRequest">
<wsdl:part name="filter" type="soapenc:string"/>
<wsdl:part name="options" type="impl:ArrayOf_soapenc_string"/>
</wsdl:message>
<wsdl:message name="initExportDeviceResourceRecResponse">
<wsdl:part name="initExportDeviceResourceRecReturn" type="tns2:WSContext"/>
</wsdl:message>
Request
Description
Exam ple
Name
Name=host;
Name ends ost
Name begins hos
Name contains os
Container
Container=Exton;
Container ends ton
Container begins Ext
Container contains xto
IP Address
IPAddress=10.0.0.1
IPAddressRange=10.0.0.1-11.0.0.1
Application Program Interfaces (API) 305
ExportDeviceResourceRecord
Selector
Description
Exam ple
Device type
DeviceType=Router
DeviceType ends uter
DeviceType begins Rou
DeviceType contains out
Domain
Domain=ins.com.
Domain begins ins.c
Domain ends .com.
Domain contains s.com
Domain Type
DomainType=Internal
DomainType begins abc
DomainType ends xyz
Domain Type contains lmnop
Block
Block=10.0.0.0/24
Block begins 10.0.0
Block ends .0/24
Block contains .0.0.0
Block Type
BlockType=Any
BlockType begins An
BlockType ends ny
BlockType contains n
UDF.order=first
UDF.order begins fir
UDF.order ends rst
UDF.order contains irs
Response
ExportDeviceResourceRecord
Request
The WSContext passed as input by the client web service is the WSContext object returned
by the initExportDeviceRec service defined above and has the maxResults field set to
a default value of 5000. When this context is provided to a subsequent call to
exportDeviceResourceRec, the number of exported resource records is limited to the
first 5000 devices, or less (see Paging), that match the criteria in the given query filter. The web
service client may change this maxResults attribute of the WSContext before any call to
the exportDeviceResourceRec service to modify the size of the resultant
WSDeviceResourceRec object array. However, the value specified by the client cannot
exceed 5000.
Paging
A device in IPControl is normalized within the database and thus may be represented by more
than a single row in multiple tables. Because of this and for performance, the
exportDeviceResourceRec cannot guarantee that the number of
WSDeviceResourceRec objects returned in any single execution of the service will be equal
to the max results set on the WSContext object. It will, however, always guarantee the
number of results to be the max results value or less.
Response
ExportDeviceResourceRecord
Elem ent
Accepted Values
container
The name of the container that holds the device. This is required only if
there is overlapping address space in use and the ip address is in overlapping
space. The container is then used to uniquely determine the device.
domainType
domain
hostname
ipAddress
owner
resourceRecClass
resourceRecordType
TTL
data
The data portion of the resource record. The format is dependent on the
type specified above.
comment
ExportPrefixPool
ExportPrefixPool
Overview
The exportPrefixPool API enables the web service client to issue a request to retrieve a
list of Prefix Pools from IPControl. This service enables the client to filter the list of Prefix
Pools retrieved.
Initialization
Before the exportPrefixPool API is called, the web service client must call
initExportPrefixPool to initialize the API. The portion of Exports.wsdl that describes
the initExportPrefixPool request and response messages is shown following.
<wsdl:message name="initExportPrefixPoolRequest">
<wsdl:part name="filter" type="soapenc:string"/>
<wsdl:part name="options" type="impl:ArrayOf_soapenc_string"/>
</wsdl:message>
<wsdl:message name="initExportPrefixPoolResponse">
<wsdl:part name="initExportPrefixPoolReturn" type="tns2:WSContext"/>
</wsdl:message>
Request
The query string is passed as input from the client to the initExportPrefixPool web
service. The query string syntax is defined previously. Supported selectors for exporting
prefix pools are defined in the following table.
In addition, the initExportPrefixPool service accepts the options array, described
following the selectors table.
Selector
Description
Exam ple
Name
Name=pool1
Container
Container=Exton
Net Service
Netservice=DhcpServer1
.
IP Address
IPAddress=2001:db8::1
IP Address Range
Response
The portion of Exports.wsdl that describes the exportPrefixPool request and response
messages is shown following.
Application Program Interfaces (API) 309
ExportPrefixPool
<wsdl:message name="endExportPrefixPoolRequest">
<wsdl:part name="context" type="tns2:WSContext"/>
</wsdl:message>
<wsdl:message name="exportPrefixPoolResponse">
<wsdl:part name="exportPrefixPoolReturn" type="impl:ArrayOf_tns2_WSPrefixPool"/>
</wsdl:message>
Request
The WSContext passed as input by the client web service is the WSContext object returned
by the initExportPrefixPool service defined aboveand has the maxResults field set
to a default value of 100. When this context is provided to a subsequent call to
exportPrefixPool, the number of exported pools is limited to the first 100, that match
the criteria in the given query filter. The web service client may change this maxResults
attribute of the WSContext before any call to the exportPrefixPool service to modify
the size of the resultant WSPrefixPool object array. However, the value specified by the
client cannot exceed 100.
Response
Below is the portion of Exports.wsdl that describes WSPrefixPool, the array of structures
returned by exportPrefixPool. The elements are described in the table that follows.
<complexType name="WSPrefixPool">
<sequence>
<element name="allowClientClasses" nillable="true" type="impl:ArrayOf_soapenc_string"/>
<element name="container" nillable="true" type="soapenc:string"/>
<element name="delegatedPrefixLength" nillable="true" type="soapenc:int"/>
<element name="denyClientClasses" nillable="true" type="impl:ArrayOf_soapenc_string"/>
<element name="dhcpOptionSet" nillable="true" type="soapenc:string"/>
<element name="dhcpPolicySet" nillable="true" type="soapenc:string"/>
<element name="id" nillable="true" type="soapenc:int"/>
<element name="length" nillable="true" type="soapenc:int"/>
<element name="longestPrefixLength" nillable="true" type="soapenc:int"/>
<element name="name" nillable="true" type="soapenc:string"/>
<element name="primaryNetService" nillable="true" type="soapenc:string"/>
<element name="shortestPrefixLength" nillable="true" type="soapenc:int"/>
<element name="startAddr" nillable="true" type="soapenc:string"/>
<element name="type" nillable="true" type="soapenc:string"/>
</sequence>
</complexType>
ExportPrefixPool
Elem ent
Description
id
startAddr
Length
type
name
container
The name of the container that holds the block in which the pool is defined.
delegatedPrefixLength
shortestPrefixLength
longestPrefixLength
primaryNet
Service
The name of the DHCP server that will serve prefixes from this pool
dhcpOptionSet
dhcpPolicySet
allowClient
Classes
An array of Client Classes that are allowed in this address pools. Each element of
the array names a different Client Class.
denyClientClasses
An array of Client Classes that are NOT allowed in this address pools. Each array
element names a different Client Class.
ExportResourceRecordPendingApproval
ExportResourceRecordPendingApproval
Overview
Request
The query string syntax is defined previously. Supported selectors for exporting device
resource records by device are defined in the following table.
Currently, there are no options defined for this service.
Selector
Description
Exam ple
Domain
Domain Type
pendingAction
pendingAction='create'
adminLoginId='someuser'
adminLoginId
pendingAction='delete'
pendingAction=update
Response
ExportResourceRecordPendingApproval
Service Invocation
following.
<wsdl:message name="exportResourceRecordPendingApprovalRequest">
<wsdl:part name="context" type="tns2:WSContext" />
</wsdl:message>
<wsdl:message name="exportResourceRecordPendingApprovalResponse">
<wsdl:part name="exportResourceRecordPendingApprovalReturn"
type="impl:ArrayOf_tns2_WSResourceRecPendingApproval"/>
</wsdl:message>
Request
The WSContext passed as input by the client web service is the WSContext object returned
by the initExportResourceRecordPendingApproval service defined above and has
the maxResults field set to a default value of 5000. When this context is provided to a
subsequent call to exportResourceRecordPendingApproval, the number of exported
resource records is limited to the first 5000 resource record change requests, or less (see
Paging), that match the criteria in the given query filter. The web service client may change
this maxResults attribute of the WSContext before any call to the
exportResourceRecordPendingApproval service to modify the size of the resultant
WSResourceRecPendingApproval object array. However, the value specified by the
client cannot exceed 5000.
Paging
A resource record change request in IPControl is normalized within the database and thus
may be represented by more than a single row in multiple tables. Because of this and for
performance, the exportResourceRecordPendingApproval service cannot guarantee
that the number of WSResourceRecPendingApproval objects returned in any single
execution of the service will be equal to the max results set on the WSContext object. It will,
however, always guarantee the number of results to be the max results value or less.
Response
ExportResourceRecordPendingApproval
<complexType name="WSDeviceResourceRec">
<sequence>
<element name="TTL" nillable="true" type="soapenc:string"/>
<element name="action" nillable="true" type="soapenc:string"/>
<element name="admin" nillable="true" type="soapenc:st ring"/>
<element name="comment" nillable="true" type="soapenc:string"/>
<element name="container" nillable="true" type="soapenc:string"/>
<element name="data" nillable="true" type="soapenc:string"/>
<element name="dateTime" nillable="true" type="soapenc:string"/>
<element name="domain" nillable="true" type="soapenc:string"/>
<element name="domainType" nillable="true" type="soapenc:string"/>
<element name="hostname" nillable="true" type="soapenc:string"/>
<element name="ipAddress" nillable="true" type="soapenc:string"/>
<element name="owner" nillable="true" type="soapenc:string"/>
<element name="resourceRecClass" nillable="true" type="soapenc:string"/>
<element name="resourceRecType" nillable="true" type="soapenc:st ring"/>
<element name="server" nillable="true" type="soapenc:string"/>
<element name="view" nillable="true" type="soapenc:string"/>
<element name="workflowId" nillable="true" type="soapenc:int"/>
<element name="zone" nillable="true" type="s oapenc:string"/>
</sequence>
</complexType>
Elem ent
Accepted Values
TTL
action
admin
comment
container
The name of the container that holds the device for this resource record. This is
required only if there is overlapping address space in use and the ip address is in
overlapping space. The container is then used to uniquely determine the device.
data
The data portion of the resource record. The format is dependent on the type
specified above.
dateTime
domain
domainType
hostname
ipAddress
owner
resourceRecClass
resourceRecordType
server
view
The name of the view for the domains of this resource record
workflowid
zone
The name of the DNS network service as defined in IPControl to import the zone
data into.
ExportResourceRecordPendingApprovalStatus
ExportResourceRecordPendingApprovalStatus
Overview
Request
parameter. The query string syntax is defined previously. Supported selectors for exporting
device resource records by device are defined in the following table.
Currently, there are no options defined for this service.
Selector
Description
Exam ple
Domain
Domain Type
pendingAction
pendingAction='create'
pendingAction='delete'
pendingAction=update
Response
ExportResourceRecordPendingApprovalStatus
Service Invocation
shown below.
<wsdl:message name="exportResourceRecordPendingApprovalStatusRequest">
<wsdl:part name="context" type="tns2:WSContext" />
</wsdl:message>
<wsdl:message name="exportResourceRecordPendingApprovalStatusResponse">
<wsdl:part name="exportResourceRecordPendingApprovalStatusReturn"
type="impl:ArrayOf_tns2_WSResourceRecPendingApproval"/>
</wsdl:message>
Request
The WSContext passed as input by the client web service is the WSContext object returned
by the initExportResourceRecordPendingApprovalStatus service defined abov
and has the maxResults field set to a default value of 5000. When this context is provided
to a subsequent call to exportResourceRecordPendingApprovalStatus, the number
of exported resource records is limited to the first 5000 resource record change requests, or
less (see Paging), that match the criteria in the given query filter. The web service client may
change this maxResults attribute of the WSContext before any call to the
exportResourceRecordPendingApprovalStatus service to modify the size of the
resultant WSResourceRecPendingApproval object array. However, the value specified
by the client cannot exceed 5000.
Paging
A resource record change request in IPControl is normalized within the database and thus
may be represented by more than a single row in multiple tables. Because of this and for
performance, the exportResourceRecordPendingApprovalStatus service cannot
guarantee that the number of WSResourceRecPendingApproval objects returned in any
single execution of the service will be equal to the max results set on the WSContext object.
It will, however, always guarantee the number of results to be the max results value or less.
Response
ExportResourceRecordPendingApprovalStatus
<complexType name="WSDeviceResourceRec">
<sequence>
<element name="TTL" nillable="true" type="soapenc:string"/>
<element name="action" nillable="true" type="soapenc:string"/>
<element name="admin" nillable="true" type="soapenc:string"/>
<element name="comment" nillable="true" type="soapenc:string"/>
<element name="container" nillable="true" type="soapenc:string"/>
<element name="data" nillable="true" type="soapenc:string"/>
<element name="dateTime" nillable="true" type="soapenc:s tring"/>
<element name="domain" nillable="true" type="soapenc:string"/>
<element name="domainType" nillable="true" type="soapenc:string"/>
<element name="hostname" nillable="true" type="soapenc:string"/>
<element name="ipAddress" nillable="true" type="soapenc:string"/>
<element name="owner" nillable="true" type="soapenc:string"/>
<element name="resourceRecClass" nillable="true" type="soapenc:string"/>
<element name="resourceRecType" nillable="true" type="soapenc:string"/>
<element name="server" nillable="true" type="soapenc:string"/>
<element name="view" nillable="true" type="soapenc:string"/>
<element name="workflowId" nillable="true" type="soapenc:int"/>
<element name="zone" nillable="true" type="soapenc:string"/ >
</sequence>
</complexType>
Elem ent
Accepted Values
TTL
action
admin
comment
container
The name of the container that holds the device for this resource record.
This is required only if there is overlapping address space in use and the ip
address is in overlapping space. The container is then used to uniquely
determine the device.
data
The data portion of the resource record. The format is dependent on the
type specified above.
dateTime
domain
domainType
hostname
ipAddress
owner
resourceRecClass
resourceRecordType
server
view
The name of the view for the domains of this resource record
workflowid
zone
The name of the DNS network service as defined in IPControl to import the
zone data into.
UseNextReservedIPAddress
Updates
This section explains the web services available for updating information in IPControl.
UseNextReservedIPAddress
Overview
The UseNextReservedIPAddress API enables the web service client to mark the next
reserved IP Address in the specified block, for the specified device type, to in-use. The block
must have a status if In Use/Deployed. Within this block, there should be a range of
addresses with a type of Reserved and a status of reserved for the given device type. The
next lowest IP address within the range will be assigned a type of Static and a status of inuse. If a hostname is specified, it will be applied to the device associated with the IP Address.
In addition, there is an option to add resource records for the device.
This service is available as an operation in the IncUseNextReservedIPAddress web
service. You can see the complete WSDL at:
http://localhost:8080/inc-ws/services/IncUseNextReservedIPAddress?wsdl
Request and Response Messages
Response
The string that is returned contains the IP Address used to satisfy the request.
Request
The complex type WSDevice, which is passed as input from the client to the web service, is
described in the next section.
Parameters
WSDevice
name="WSDevice">
name="view" nillable="true" type="soapenc:string" />
name="hwType" nillable="true" type="soapenc:string" />
name="addressType" nillable="true" type="soapenc:string" />
name="ipAddress" nillable="true" type="soapenc:string" />
UseNextReservedIPAddress
Elem ent
Accepted Values
view
Not used
hwType
Not used
addressType
Not used
ipAddress
Required
Return
Code
Fault String
-26
-47
Yes
resourceRecordFlag
No
MACAddress
Not used
deviceType
domainName
Not used
container
Not used
description
Not used
hostname
aliases
Not used
userDefinedFields
Not used
Yes
Yes
Faultstring
-1
-5
-23
-36
-47
-61
-62
DeleteAddrPool
Deletes
The Delete APIs allow a client program to delete objects in the system. Each of these services
is available as an operation in the Deletes web service. You can see the complete WSDL at:
http://localhost:8080/inc-ws/services/Deletes?wsdl
DeleteAddrPool
Overview
The DeleteAddrPool API enables the web service client to delete an Address Pool from a
block . By specifying the address pool to be deleted, the web service will validate and delete
the address pool.
Request and Response Messages
The portion of Deletes.wsdl that describes the deleteAddrPool request and response
messages is shown following.
<wsdl:operation name="deleteAddrPool" parameterOrder="inpAddrPool deleteDevicesInAddrpool">
<wsdl:input message="impl:deleteAddrPoolRequest" name="deleteAddrPoolRequest"/>
<wsdl:output message="impl:deleteAddrPoolResponse" name="deleteAddrPoolResponse"/>
</wsdl:operation>
<wsdl:message name="deleteAddrPoolRequest ">
<wsdl:part name="inpAddrPool" type="tns2:WSAddrpool"/>
<wsdl:part name="deleteDevicesInAddrpool" type="xsd:boolean"/>
</wsdl:message>
<wsdl:message name="deleteAddrPoolResponse">
</wsdl:message>
Response
The complex type WSAddrpool, which is passed as input from the client to the web service,
is described in the next section.
Parameters
WSAddrpool
The portion of Deletes.wsdl that describes WSAddrpool, the parameter structure passed to
DeleteAddrPool, is shown following. The elements are described in the table that follows.
<complexType name="WSAddrpool">
<sequence>
<element name="allowClientClasses" nillable="true" type="impl:ArrayOf_soapenc_string"/>
<element name="container" nillable="true" type="soapenc:string"/>
<element name="denyClientClasses" nillable="true" type="impl:ArrayOf_soapenc_string"/>
<element name="dhcpOptionSet" nillable="true" type="s oapenc:string"/>
<element name="dhcpPolicySet" nillable="true" type="soapenc:string"/>
<element name="endAddr" nillable="true" type="soapenc:string"/>
<element name="failoverNetService" nillable="true" type="soapenc:string"/>
<element name="id" nillable="true" type="soapenc:string"/>
<element name="name" nillable="true" type="soapenc:string"/>
<element name="primaryNetService" nillable="true" type="soapenc:string"/>
<element name="sharename" nillable="true" type="soapenc:string"/>
<element name="startAddr" nillable="true" type="soapenc:string"/>
<element name="type" nillable="true" type="soapenc:string"/>
<element name="prefixLength" nillable="true" type="soapenc:string"/>
</sequence>
</complexType>
Elem ent
Accepted Values
Required
Return
Code
Faultstring
Name
Yes
-117
Startaddr
Yes
-117
Container
Yes
-117
DeleteAggregateBlock
DeleteAggregateBlock
Overview
The DeleteAggregateBlock API enables the web service client to delete an intermediate
level Aggregate block from the block hierarchy. By specifying the block to be deleted, the
web service will validate and delete the block. It will also adjust the parent block assignments
of any child blocks.
Request and Response Messages
The portion of Deletes.wsdl that describes the deleteAggregate request and response
messages is shown following.
<wsdl:operation name="deleteAggregateBlock" parameterOrder="inpBlock">
<wsdl:input message="impl:deleteAggregateBlockRequest"
name="deleteAggregateBlockRequest"/>
<wsdl:output message="impl:deleteAggregateBlockResponse"
name="deleteAggregateBlockResponse"/>
</wsdl:operation>
<wsdl:message name="deleteAggregateBlockRequest ">
<wsdl:part name="inpBlock" type="tns2:WSBlock4Delete"/>
</wsdl:message>
<wsdl:message name="deleteAggregateBlockResponse">
</wsdl:message>
Response
The complex type WSBlock4Delete, which is passed as input from the client to the web
service, is described in the next section.
Parameters
WSBlock4Delete
The portion of Deletes.wsdl that describes WSBlock4Delete, the parameter structure passed
to DeleteAggregateBlock, is shown following. The elements are described in the table that
follows.
<complexType name="WSBlock4Delete">
<sequence>
<element name="blockAddr" nillable="true" type="soapenc:string"/>
<element name="blockSize" nillable="true" type="soapenc:int"/>
<element name="container" nillable="true" type="soapenc:string"/>
</sequence>
</complexType>
Elem ent
Accepted Values
Required
Return
Code
Faultstring
blockAddr
Yes
-127
DeleteAggregateBlock
Elem ent
Accepted Values
Required
Return
Code
Faultstring
address both
required
-12
Could not
convert
<address> to
ipAddress
blockSize
Yes
-15
Block size
invalid: <size>
container
Yes
-42
Missing container
name
-5
-99
Admin is not
authorized to add
blocks to this
container
DeleteBlock
DeleteBlock
Overview
The DeleteBlock API enables the web service client to delete blocks from IPControl.
Request and Response Messages
The portion of Deletes.wsdl that describes the DeleteBlock request and response messages is
shown following.
<wsdl:operation name="deleteBlock" parameterOrder="container blockName">
<wsdl:input message="impl:deleteBlockRequest" name="deleteBlockRequest"/>
<wsdl:output message="impl:deleteBlockResponse" name="deleteBlockResponse"/>
</wsdl:operation>
<wsdl:message name="deleteBlockRequest">
<wsdl:part name="container" type="soapenc:string"/>
<wsdl:part name="blockName" type="soapenc:string"/>
</wsdl:message>
<wsdl:message name="deleteBlockResponse">
</wsdl:message>
Response
The request takes two parameters, block name and container name. Their use is described in
more detail in the next section.
Parameters
Elem ent
Accepted Values
Required
Return
Code
Faultstring
blockName
Yes
-36
-97
-98
-100
Cannot delete
free aggregate.
-101
Error deleting
block
-102
IP Address
Cleanup Error
-105
Error reclaiming
blocks
-99
Container not
found
Container
No, unless
block is
overlappe
d.
DeleteContainer
DeleteContainer
Overview
The DeleteContainer API enables the web service client to delete containers from
IPControl.
Request and Response Messages
The portion of Deletes.wsdl that describes the deleteContainer request and response
messages is shown following.
<wsdl:operation name="deleteContainer" parameterOrder="fullName">
<wsdl:input message="impl:deleteContainerRequest" name="deleteContainerRequest"/>
<wsdl:output message="impl:deleteContainerResponse" name="deleteContainerResponse"/>
</wsdl:operation>
<wsdl:message name="deleteContainerRequest
<wsdl:part name="fullName" type="soapenc:string"/>
</wsdl:message>
<wsdl:message name="deleteContainerResponse">
</wsdl:message>
Response
This is name of the container. The name can be either qualified or unqualified, but must be
unique. A qualified name must start with the root container and include the complete
container path to the desired container. The container names should be separated by slashes.
Other returnCodes and faultstrings
ReturnCode
Faultstring
-2
-5
-99
Access denied
-132
-143
-144
-145
-146
DeleteDevice
DeleteDevice
Overview
The DeleteDevice API enables the web service client to delete devices from IPControl.
Note that this is not used to delete devices of type Interface. Use the ModifyBlock API to
delete Interface-type devices.
Request and Response Messages
The portion of Deletes.wsdl that describes the deleteDevice request and response
messages is shown following.
<wsdl:operation name="deleteDevice" parameterOrder="inpDev">
<wsdl:input message="impl:deleteDeviceRequest" name="deleteDeviceRequest"/>
<wsdl:output message="impl:deleteDeviceResponse" name="deleteDeviceResponse"/>
</wsdl:operation>
<wsdl:message name="deleteDeviceRequest">
<wsdl:part name="inpDev" type="tns2:WSDevice"/>
</wsdl:message>
<wsdl:message name="deleteDeviceResponse">
</wsdl:message>
Response
The complex type WSDevice, which is passed as input from the client to the web service, is
described in the next section. For consistency, this is the same structure that is passed to
ImportDevice. However, only two of the fields are used.
Parameters
WSDevice
The portion of Deletes.wsdl that describes WSDevice, the parameter structure passed to
DeleteDevice, is shown following. The required elements are described in the table that
follows. The other elements are ignored.
<complexType
<sequence>
<element
<element
<element
<element
<element
<element
<element
<element
<element
<element
<element
<element
<element
<element
<element
<element
name="WSDevice">
name="MACAddress" nillable="true" type="soapenc:string"/>
name="addressType" nillable="true" type="soapenc:string"/>
name="aliases" nillable="true" type="impl:ArrayOf_soapenc_string"/>
name="container" nillable="true" type="soapenc:string"/>
name="description" nillable="true" type="soapenc:string"/>
name="deviceType" nillable="true" type="soapenc:string"/>
name="domainName" nillable="true" type="soapenc:string"/>
name="domainType" nillable="true" type="soapenc:string"/>
name="dupWarning" nillable="true" type="soapenc:string"/>
name="hostname" nillable="true" type="soapenc:string"/>
name="hwType" nillable="true" type="soapenc:string"/>
name="ipAddress" nillable="true" type="soapenc:string"/>
name="resourceRecordFlag" nillable="true" type="soapenc:string"/>
name="userDefinedFields" nillable="true" type="impl:ArrayOf_soapenc_string"/>
maxOccurs="unbounded" name="interfaces" nillable="true" type="tns2:WSInterface"/>
name="id" nillable="true" type="soapenc:int"/>
DeleteDevice
Elem ent
Accepted Values
Required
Return
Code
Faultstring
ipAddress
Yes
-26
Invalid IP
Address: address
-27
IP Address not
found
-28
IP Address
ambiguous
container
Yes, if
overlapping
space is in
use and the
device is in
an
overlapped
block.
-28
IP Address
ambiguous
DeleteDeviceInterface
DeleteDeviceInterface
Overview
The DeleteDeviceInterface API enables the web service client to delete device
interfaces from IPControl.
Note that this is not used to delete devices of type Interface. Use the ModifyBlock API to
delete Interface-type devices.
Request and Response Messages
Response
The complex types WSDevice and WSInterface, which are passed as input from the client
to the web service, are described in the next section. For consistency, these are the same
structures that are passed to ImportDevice. However, only three of the fields are used.
Parameters
WSDevice
The portion of Deletes.wsdl that describes WSDevice and WSInterface, the parameter
structures passed to DeleteDeviceInterface, are shown following. The elements are
described in the table that follows.
<complexType
<sequence>
<element
<element
<element
<element
<element
<element
<element
<element
<element
<element
<element
<element
<element
name="WSDevice">
name="MACAddress" nillable="true" type="soapenc:string"/>
name="addressType" nillable="true" type="soapenc:string"/>
name="aliases" nillable="true" type="impl:ArrayOf_soapenc_string"/>
name="container" nillable="true" type="soapenc:string"/>
name="description" nillable="true" type="soapenc:string"/>
name="deviceType" nillable="true" type="soapenc:string"/>
name="domainName" nillable="true" type="soapenc:string"/>
name="domainType" nillable="true" type="soapenc:string"/>
name="dupWarning" nillable="true" type="soapenc:string"/>
name="hostname" nillable="true" type="soapenc:string"/>
name="hwType" nillable="true" type="soapenc:string"/>
name="ipAddress" nillable="true" type="soapenc:string"/>
name="resourceRecordFlag" nillable="true" type="soapenc:string"/>
DeleteDeviceInterface
Elem ent
Accepted Values
Required
MACAddress
Ignored
No
addressType
Ignored
No
aliases
Ignored
No
container
Yes, if
overlapping
space is in use
and the device is
in an overlapped
block.
description
Ignored
No
deviceType
Ignored
No
domainName
Ignored
No
domainType
Ignored
No
dupWarning
Ignored
No
hostname
Ignored
No
hwType
Ignored
No
ipAddress
Yes
resourceRecord
Flag
Ignored
No
userDefined
Fields
Ignored
No
Return
Code
Faultstring
-28
IP Address ambiguous
-26
-27
-28
IP Address ambiguous
-127
IP Address is required
DeleteDeviceInterface
Elem ent
Accepted Values
Required
Return
Code
Faultstring
interfaces
An array of WSInterface
structures. Each element
in the array corresponds to
one interface to be deleted.
The fields in the
WSInterface structure are:
Yes
-20
-19
-38
id
Ignored
No
excludeFrom
Discovery
Ignored
No
DeleteDeviceResourceRecord
DeleteDeviceResourceRecord
Overview
Response
The complex type WSDeviceResourceRec, which is passed as input from the client to the
web service, is described in the next section.
Parameters
WSDeviceResourceRecord
DeleteDeviceResourceRecord
Elem ent
Accepted Values
Required
Return
Code
Faultstring
TTL
Time To Live
No
comment
Ignored
container
Only if
ipAddress
in
overlappin
g space
data
Yes
-91
Data field
required
domain
Yes
-60
Domain not
found: domain
-135
Domain required:
domain
domainType
No
-81
hostname
Yes, unless
ipAddress
is specified
-133
Hostname or ip
address required
-121
Hostname not
unique: hostname
-120
No device with
hostname:
hostname
-133
Hostname or ip
address required
-26
Invalid IP
Address: address
-28
Specify container.
IP Address not
unique: address
-120
No device with
ipaddress: address
-89
Owner field
required
-134
Invalid character
in Owner owner
-90
Type field
required
-92
Unknown type:
type
id
Ignored
ipAddress
Owner
Yes, unless
host name
is specified
Yes
resourceRecClass
No
resourceRecType
Yes
DeleteDeviceResourceRecord
Faultstring
-2
-124
-125
401
<401>Unauthorized
DeleteDomain
DeleteDomain
Overview
The DeleteDomain API enables the web service client to delete domains from IPControl.
Request and Response Messages
The portion of Deletes.wsdl that describes the deleteDomain request and response messages
is shown following.
<wsdl:message name="deleteDomainRequest">
<wsdl:part name="inpDomain" type="tns2:WSDomain"/>
</wsdl:message>
<wsdl:message name="deleteDomainResponse">
</wsdl:message>
Response
The complex type WSDomain, which is passed as input from the client to the web service, is
described in the next section.
Parameters
WSDomain
The portion of Deletes.wsdl that describes WSDomain, the parameter structure passed to
DeleteDomain, is shown following. The elements are described in the table that follows.
<complexType name="WSDomain">
<sequence>
<element name="contact" nillable="true" type="soapenc:string"/>
<element name="defaultTTL" nillable="true" typ e="soapenc:string"/>
<element name="delegated" type="xsd:boolean"/>
<element name="derivative" nillable="true" type="soapenc:string"/>
<element name="domainName" nillable="true" type="soapenc:string"/>
<element name="domainType" nillable="true" type="soapenc:string"/>
<element name="expire" nillable="true" type="soapenc:string"/>
<element name="id" nillable="true" type="soapenc:string"/>
<element name="infoTemplate" nillable="true" type="soapenc:string"/>
<element name="managed" type="xsd:boolean"/>
<element name="negativeCacheTTL" nillable="true" type="soapenc:string"/>
<element name="refresh" nillable="true" type="soapenc:string"/>
<element name="retry" nillable="true" type="soapenc:string"/>
<element name="reverse" type="xsd:boolean"/>
<element name="serialNumber" nillable="true" type="soapenc:long"/>
<element name="templateDomain" nillable="true" type="soapenc:string"/>
<element name="userDefinedFields" nillable="true" type="impl:ArrayOf_soapenc_string"/>
</sequence>
</complexType>
DeleteDomain
Elem ent
Required
contact
Ignored
No
defaultTTL
Ignored
No
delegated
Ignored
No
derivitive
Ignored
No
domainName
Yes
Return
Code
Faultstring
-60
-95
Cannot delete .
domain from Default
domain type.
-135
Domain required
-232
-233
domainType
expire
No
id
Ignored
No
infoTemplate
Ignored
No
managed
No
negativeCacheTTL
Ignored
Ignored
refresh
Ignored
No
retry
Ignored
No
reverse
Ignored
No
serialNumber
Ignored
No
templateDomain
Ignored
No
userDefinedFields
Ignored
No
-81
No
Faultstring
-2
-99
Access denied
DeleteDomainResourceRecord
DeleteDomainResourceRecord
Overview
Response
The complex type WSDomainResourceRec, which is passed as input from the client to the
web service, is described in the next section.
Parameters
WSDomainResourceRecord
DeleteDomainResourceRecord
Elem ent
Accepted Values
Required
TTL
Time To Live
No
comment
Ignored
data
domain
domainType
id
Owner
Return
Code
Faultstring
Yes
-91
Data field
required
Yes
-60
Domain not
found: domain
-135
Domain required:
domain
No
-81
Yes
-89
Owner field
required
-134
Invalid character
in Owner owner
-90
Type field
required
-92
Unknown type:
type
resourceRecClass
No
resourceRecType
Yes
Faultstring
-2
-124
-125
401
<401>Unauthorized
DeleteNetElement
DeleteNetElement
Overview
The DeleteNetElement API enables the web service client to delete network element from
IPControl.
Request and Response Messages
The portion of Deletes.wsdl that describes the deleteNetElement request and response
messages is shown following.
<wsdl:operation name="deleteNetElement" parameterOrder="inpNE">
<wsdl:input message="impl:deleteNetElementRequest" name="deleteNetElementRequest"/>
<wsdl:output message="impl:deleteNetElementResponse" name="deleteNetElementResponse"/>
</wsdl:operation>
<wsdl:message name="deleteNetElementRequest">
<wsdl:part name="inpNE" type="tns1:WSNetElement"/>
</wsdl:message>
</wsdl:message>
<wsdl:message name="deleteNetElementResponse">
</wsdl:message>
Response
The complex type WSNetElement , which is passed as input from the client to the web
service, is described in the next section. Only the first two elements are used for this API.
Parameters
WSetElement
The portion of Deletes.wsdl that describes WSNetElement, the parameter structure passed to
DeleteNetElement, is shown following. The elements are described in the table that
follows.
<complexType
<sequence>
<element
<element
<element
<element
<element
<element
<element
<element
<element
<element
<element
<element
<element
<element
<element
<element
<element
<element
<element
name="WSNetElement">
name="agentName" nillable="true" type="soapenc:string"/>
name="authPassword" nillable="true" type="soapenc:string"/>
name="globalSync" nillable="true" type="soapenc:string"/>
name="interfaceNameList" nillable="true" type="impl:ArrayOf_soapenc_string"/>
name="ipAddress" nillable="true" type="soapenc:string"/>
name="model" nillable="true" type="soapenc:string"/>
name="name" nillable="true" type="soapenc:string"/>
name="readCommunityString" nillable="true" type="soapenc:string"/>
name="telnetPassword" nillable="true" type="soapenc:string"/>
name="telnetUser" nillable="true" type="soapenc:string"/>
name="threshold" nillable="true" type="soapenc:string"/>
name="type" nillable="true" type="soapenc:string"/>
name="v3AuthPassword" nillable="true" type="soapenc:string"/>
name="v3AuthProtocol" nillable="true" type="soapenc:string"/>
name="v3ContextName" nillable="true" type="soapenc:string"/>
name="v3EngineId" nillable="true" type="soapenc:string"/>
name="v3PrivacyPassword" nillable="true" type="soapenc:string"/>
name="v3PrivacyProtocol" nillable="true" type="soapenc:string"/>
name="vendor" nillable="true" type="soapenc:string"/>
DeleteNetElement
</sequence>
</complexType
Elem ent
Accepted Values
Required
Return
Code
Faultstring
name
Yes,
unless a
unique IP
address is
specified
-33
Network element
not found by
name: name
-35
Network
Element Name is
required (indicates
null input)
Yes,
unless the
name is
specified
-33
Network element
not found by ip
address: addr
-28
Specify network
element name,
not unique by ip
address: addr
ipAddress
Faultstring
-2
401
<401>Unauthorized
DeleteNetElementInterface
DeleteNetElementInterface
Overview
The DeleteNetElementInterface API enables the web service client to delete network
element interfaces from IPControl.
Request and Response Messages
Response
The complex type WSNetElementInterface , which is passed as input from the client to
the web service, is described below. For consistency, this is the same structure that is passed
to ImportNetElementInterface. However, only two of the fields are used.
Parameters
WSNetElementInterface
DeleteNetElementInterface
Elem ent
Accepted Values
Required
id
No
interfaceName
Yes
netElementName
status
Yes
No
Return
Code
Faultstring
-39
Cannot delete
interface: interface
for network
element: name
because there are
blocks attached.
-20
Network
Element
Interface Name
is required
-33
Network element
not found:
netelement
-35
Network
Element name is
required
-34
Invalid interface
status: status
DeleteNetService
DeleteNetService
Overview
The DeleteNetService API enables the web service client to delete network service from
IPControl.
Request and Response Messages
The portion of Deletes.wsdl that describes the deleteNetService request and response
messages is shown following.
<wsdl:operation name="deleteNetService" parameterOrder="inpNS">
<wsdl:input message="impl:deleteNetServiceRequest"
name="deleteNetServiceRequest"/>
<wsdl:output message="impl:deleteNetServiceResponse"
name="deleteNetServiceResponse"/>
</wsdl:operation>
<wsdl:message name="deleteNetServiceRequest">
<wsdl:part name="inpNS" type="tns1:WSNetService"/>
</wsdl:message>
<wsdl:message name="deleteNetServiceResponse">
</wsdl:message>
Response
The complex type WSNetService, which is passed as input from the client to the web
service, is described below. Only the first two elements are used for this API.
Parameters
WSNetService
The portion of Deletes.wsdl that describes WSNetService, the parameter structure passed to
DeleteNetService, is shown following. The elements are described in the table that
follows.
<complexType name="WSNetService">
<sequence>
<element name="agentName" nillable="true" type="soapenc:string" />
<element name="collectionMethod" nillable="true" type="soapenc:string" />
<element name="collectionPort" nillable="true" type="soapenc:string" />
<element name="container" nillable="true" type="impl:ArrayOf_soapenc_string" />
<element name="globalSync" nillable="true" type="soapenc:string" />
<element name="ipAddress" nillable="true" type="soapenc:string" />
<element name="name" nillable="true" type="soapenc:string" />
<element name="threshold" nillable="true" type="s oapenc:string" />
<element name="type" nillable="true" type="soapenc:string" />
<element name="userName" nillable="true" type="soapenc:string" />
<element name="userPassword" nillable="true" type="soapenc:string" />
<element name="vendor" nillable="true" type="soapenc:string" />
<element name="vendorInfo" nillable="true" type="impl:ArrayOf_soapenc_string"/>
</sequence>
</complexType>
342 IPControl CLI and API Guide
DeleteNetService
Elem ent
Accepted Values
Required
Return
Code
Faultstring
name
Yes
-185
Network Service
not found for
name:name with
type: type
-186
Network Service
Name is required
(indicates null input)
-187
Invalid network
service type: type
type
No
Faultstring
-2
401
<401>Unauthorized
DeletePrefixPool
DeletePrefixPool
Overview
The DeletePrefixPool API enables the web service client to delete Prefix Pools from
IPControl. This will also delete the Delegated Prefixes inside the Prefix Pool.
Request and Response Messages
The portion of Deletes.wsdl that describes the DeletePrefixPool request and response
messages is shown following.
<wsdl:operation name="deletePrefixPool" parameterOrder="inpPrefixPool">
<wsdl:input message="impl:deletePrefixPoolRequest" name="deletePrefixPoolRequest"/>
<wsdl:output message="impl:deletePrefixPoolResponse" name="deletePrefixPoolResponse"/>
</wsdl:operation>
<wsdl:message name="deletePrefixPoolRequest">
<wsdl:part name="inpPrefixPool" type="tns2:WSPrefixPool"/>
</wsdl:message>
<wsdl:message name="deletePrefixPoolResponse">
</wsdl:message>
Response
The complex types WSPrefixPool, which are passed as input from the client to the web
service, are described in the next section. For consistency, these are the same structures that
are passed to ImportPrefixPool. However, only two of the fields are used.
Parameters
WSPrefixPool
The portion of Deletes.wsdl that describes WSPrefixPool, the parameter structure passed to
DeletePrefixPool, is shown following. The elements are described in the table that
follows.
<complexType name="WSPrefixPool">
<sequence>
<element name="allowClientClasses" nillable="true" type="impl:ArrayOf_soapenc_string"/>
<element name="container" nillable="true" type="soapenc:string"/>
<element name="delegatedPrefixLength" nillable="true" type="soapenc:int"/>
<element name="denyClientClasses" nillable="true" type="impl:ArrayOf_soapenc_string"/>
<element name="dhcpOptionSet" nillable="true" type="soapenc:string"/>
<element name="dhcpPolicySet" nillable="true" type="soapenc:string"/>
<element name="id" nillable="true" type="soapenc:int"/>
<element name="length" nillable="true" type="soapenc:int"/>
<element name="longestPrefixLength" nillable="true" type="soapenc:int"/>
<element name="name" nillable="true" type="soapenc:string"/>
<element name="primaryNetService" nillable="true" type="soapenc:string"/>
<element name="shortestPrefixLength" nillable="true" type="soapenc:int"/>
<element name="startAddr" nillable="true" type="soapenc:string"/>
<element name="type" nillable="true" type="soapenc:string"/>
</sequence>
</complexType>
344 IPControl CLI and API Guide
DeletePrefixPool
Elem ent
Accepted Values
Required
Return
Code
Faultstring
Name
String
Yes
-262
Start Address
String
Yes
-262
Faultstring
-2
-99
Access Denied
DeleteTaskByDate
DeleteTaskByDate
Overview
The DeleteTaskByDate API enables the web service client to delete tasks from IPControl
that are older than a given date.
Request and Response Messages
The portion of Deletes.wsdl that describes the DeleteTaskByDate request and response
messages is shown following.
<wsdl:operation name="deleteTaskByDays" parameterOrder="before">
<wsdl:input message="impl:deleteTaskByDateRequest" name="deleteTaskByDateRequest"/>
<wsdl:output message="impl:deleteTaskByDateResponse" name="deleteTaskByDateResponse"/>
</wsdl:operation>
<wsdl:message name="deleteTaskByDateRequest">
<wsdl:part name="before" type="xsd:dateTime"/>
</wsdl:message>
<wsdl:message name="deleteTaskByDateResponse">
<wsdl:part name="deleteTaskByDateReturn" type="xsd:int"/>
</wsdl:message>
Response
The request takes one parameter which is a date. Any tasks older than this date are deleted.
Parameters
Elem ent
Accepted Values
Required
Return
Code
Faultstring
Before
Date/Time
Yes
-107
Missing Date
-110
Invalid Date
DeleteTaskByDays
DeleteTaskByDays
Overview
The DeleteTaskByDays API enables the web service client to delete tasks from IPControl
that are older than a given number of days.
Request and Response Messages
The portion of Deletes.wsdl that describes the DeleteTaskByDays request and response
messages is shown following.
<wsdl:operation name="deleteTaskByDays" parameterOrder="days">
<wsdl:input message="impl:deleteTaskByDaysRequest" name="deleteTaskByDaysRequest"/>
<wsdl:output message="impl:deleteTaskByDaysResponse" name="deleteTaskByDaysResponse"/>
</wsdl:operation>
<wsdl:message name="deleteTaskByDaysRequest">
<wsdl:part name="days" type="xsd:int"/>
</wsdl:message>
<wsdl:message name="deleteTaskByDaysResponse">
<wsdl:part name="deleteTaskByDaysReturn" type="xsd:int"/>
</wsdl:message>
Response
The request takes one parameter which is the number of days of tasks to retain. Any task s
older than the current date minus this parameter are deleted.
Parameters
Elem ent
Accepted Values
Required
Return
Code
Faultstring
Days
A positive integer.
Yes
-109
Invalid Days
value
DeleteTaskById
DeleteTaskById
Overview
The DeleteTaskByID API enables the web service client to delete one or more tasks from
IPControl.
Request and Response Messages
The portion of Deletes.wsdl that describes the DeleteTaskById request and response
messages is shown following.
<wsdl:operation name="deleteTaskById" parameterOrder="ids">
<wsdl:input message="impl:deleteTaskByIdRequest" name="deleteTaskByIdRequest"/>
<wsdl:output message="impl:deleteTaskByIdResponse" name="deleteTaskByIdResponse"/>
</wsdl:operation>
<wsdl:message name="deleteTaskByIdRequest">
<wsdl:part name="ids" type="impl:ArrayOf_soapenc_int"/>
</wsdl:message>
<wsdl:message name="deleteTaskByIdResponse">
<wsdl:part name="deleteTaskByIdReturn" type="xsd:int"/>
</wsdl:message>
Response
The request takes one parameter, which is an array of integers. Each integer is a Task ID.
Parameters
Elem ent
Accepted Values
Required
Return
Code
Faultstring
ids
Yes
-106
-108
Missing IDs
DeleteZone
DeleteZone
Overview
The DeleteZone API enables the web service client to delete zones from IPControl.
Request and Response Messages
The portion of Deletes.wsdl that describes the deleteZone request and response messages is
shown following.
<wsdl:message name="deleteZoneRequest">
<wsdl:part name="inpZone" type="tns2:WSDnsZone"/>
</wsdl:message>
<wsdl:message name="deleteZoneResponse">
</wsdl:message>
Response
The complex type WSDnsZone, which is passed as input from the client to the web service, is
described in the next section.
Parameters
WSDnsZone
The portion of Deletes.wsdl that describes WSDnsZone, the parameter structure passed to
DeleteZone, is shown following. The elements are described in the table that follows.
<complexType name="WSDnsZone">
<sequence>
<element name="MNAME" nillable="true" type="soapenc:string"/>
<element name="acceptZoneTransfers" nillable="true" type="soapenc:string"/>
<element name="aliasZone" type="xsd:boolean"/>
<element name="allowUpdateACL" nillable="true" type="soapenc:string"/>
<element name="autogenNSGlue" nillable="true" type="soapenc:string"/>
<element name="domainName" nillable="true" type="soapenc:string"/>
<element name="domainType" nillable="true" type="soapenc:string"/>
<element name="dynamicZone" type="xsd:boolean"/>
<element name="filename" nillable="true" type="soapenc:string"/>
<element name="galaxyName" nillable="true" type="soapenc:string"/>
<element name="masters" nillable="true" type="soapenc:string"/>
<element name="server" nillable="true" type="soapenc:string"/>
<element name="templateZone" type="xsd:boolean"/>
<element name="updatePolicy" nillable="true" type="soapenc:string"/>
<element name="updateZone" nillable="true" typ e="soapenc:string"/>
<element name="view" nillable="true" type="soapenc:string"/>
<element name="zoneExtensionsAfter" nillable="true" type="soapenc:string"/>
<element name="zoneExtensionsPrior" nillable="true" type="soapenc:string"/>
<element name="zoneType" nillable="true" type="soapenc:string"/>
</sequence>
</complexType>
DeleteZone
Elem ent
Required
MNAME
Ignored
acceptZoneTransfers
Ignored
No
No
aliasZone
Ignored
No
allowUpdateACL
Ignored
No
autogenNSGlue
Ignored
No
domainName
Yes
domainType
dynamicZone
Ignored
Ignored
No
galaxyName
Ignored
No
masters
Ignored
No
server
Yes
templateZone
Ignored
No
updatePolicy
Ignored
No
updateZone
Ignored
No
zoneExtensionsAfter
Faultstring
-135
Domain required
-60
-81
No
filename
view
Return
Code
zoneExtensionsPrior
Ignored
Ignored
zoneType
Ignored
No
-235
-93
-58
No
Faultstring
-2
-88
-99
Access denied
DeleteZoneResourceRecord
DeleteZoneResourceRecord
Overview
The DeleteZoneResourceRecord API enables the web service client to delete resource
records from IPControl that are affiliated with a zone. These are specialized resource records,
known as glue records.
Request and Response Messages
Response
The complex type WSZoneResourceRec, which is passed as input from the client to the
web service, is described below.
Parameters
WSResourceRecord
DeleteZoneResourceRecord
Elem ent
Accepted Values
Required
Return
Code
Faultstring
TTL
Time To Live
No
Data
Yes
-91
Data field
required
Owner
Yes
-89
Owner field
required
resourceRecClass
No
resourceRecType
A or NS
Yes
-90
Type field
missing
-92
Type field
invalid
server
Yes
view
No
zone
Yes
-88
Other Interfaces
Callout Manager
The Callout Manager is a facility within IPControl that notifies other applications of alerts
and programmatic events. Examples of Callout Manager uses are:
Operation
The Callout Manager performs the following functions:
Takes the data supplied with the event and writes it to a temporary file. The file is
written as XML, or as name-value pairs, as dictated by the configuration (see
below).
Execute the script that is configured for this event, passing it the name of the
temporary file.
When the message queue is empty, the callout manager simply waits.
Note that the callout manager does not wait for the user script to complete. Hence, the
user script must delete the temporary file passed to it.
When building your scripts, if you do not specify fully qualify output paths, then your
defined output would be written to C:\Program Files\Diamond
IP\InControl\etc on Windows, or /opt/incontrol/etc on Solaris or Linux.
Assuming that path is where you installed InControl. For example, if your script had
[echo hello world > output.txt], rather than [echo hello world >
/opt/incontrol/tmp/out.txt], then the output.txt file would be found under
/opt/incontrol/etc.
Configuration
The Callout Manager is configured through a text file known as a properties file. The
Callout Managers properties file can be found in $INCHOME/callout_manager.properties.
The properties file contains directives that control the Callout Manager behavior. Any
Other Interfaces 353
Other Interfaces
changes made to this file require that the Callout Manager service be restarted for the
changes to take effect.
The following table lists those properties. Locate the property or properties within
callout_manager.properties that you want to use and uncomment it (remove the # in front of
the line), and specify a custom path and script name. For example:
block.add = /opt/scripts/blockadd_callout.sh
Property
Required
Description
log.config.filename
Yes
queue.connections.names
Yes
queue.connections.callout.factory.name
Yes
queue.connections.callout.thread.count
Yes
queue.connections.callout.reconnect.retry
Yes
queue.connections.callout.reconnect.delay
Yes
output.path
No
output.xml
No
alertcallout
No
Other Interfaces
Property
Required
Description
block.add
No
block.modify
No
block.delete
No
device.add
No
device.modify
No
Other Interfaces
Property
Required
Description
device.delete
No
task.complete
No
Appliance Events
The Sapphire Appliance logs several event messages to the IPControl database. The types
of events which are logged include starting and stopping of services and changes in state
of any monitored service. Specifically, the events included are those that are listed on the
Details screen from the Appliance Dashboard. As each event is logged to the database, a
message containing the details of the event is sent to the Callout Manager. This allows the
administrator to provide scripts which send a notification to the appropriate party when
certain appliance events warrant it. Scripts are configured in the Callout Managers
properties file, as indicated above. The property name that identifies the event is of the
form source.category.message. For example, if an administrator were to stop the
DNS server on a Sapphire Appliance through the Manage link of the Appliance
Dashboard, two events would be logged:
dnsserver.action.stopped
dnsserver.status.down
The first event identifies the action performed by the administrator, whereas the second
event identifies the state of the DNS server as determined by the IPControl monitoring
software. The administrator can choose to provide a script for one or both events, as
needed. Configuring the script is performed as indicated above, by providing the property
name and callout script name-value pair in the $INCHOME/callout_manager.properties file.
A script can be configured for each individual event message, or at the category or source
level, as desired. For example:
dnsserver.action.stopped = /opt/incontrol/bin/dnsstoppped_callout.sh
dnsserver.status.down = /opt/incontrol/bin/dnsdown_callout.sh
Other Interfaces
This configuration provides individual scripts for specific event messages. Alternatively,
the scripts could be configured at the category level of the event. For example:
dnsserver.action = /opt/incontrol/bin/dnsaction_callout.sh
dnsserver.status = /opt/incontrol/bin/dnsstatus_callout.sh
In this case, all action events (stopped, started) would be handled by the
dnsaction_callout.sh script, and all status events (down, running) would be
handled by the dnsstatus_callout.sh script.
Finally, the script mapping can be provided at the highest level of the event, the source.
For example:
dnsserver = /opt/incontrol/bin/dnsev ent_callout.sh
In this case, all DNS server events would be handled by the dnsevent_callout.sh
script. This includes all action (stopped, started) and status (down, running) events. The
contents of the XML or name-value pair file that is passed to the script contains the
details, which include the source, category, and message, to allow the script to provide its
own conditional processing based on the particular event.
Please refer to section 5.11.1 - Appliance Details in the IPControl User Guide for a
complete, detailed list of all appliance events.
Other Interfaces
IPControl provides a set of sample scripts that can be used, via the Callout Manager, to
generate the proper ARIN Reassign - Simple template, commonly referred to as a SWIP
(Shared WhoIs Project) template. The Callout Manager can be configured to call these
scripts on each Add, Delete, or Modify of a block within IPControl. To configure the
callout manager to call the SWIP scripts on these events, modify the following properties
in the $INCHOME/callout_manager.properties file. (The examples assume that $INCHOME
= /opt/nc.)
block.add = /opt/nc/etc/callout/addSwip.pl
block.modify = /opt/nc/etc/callout/modifySwip.pl
block.delete = /opt/nc/etc/callout/deleteSwip.pl
The scripts can be configured with default information to be used when generating the
data files. The default properties are stored in a properties file called
$INCHOME/etc/callout/swip.properties. The following table lists those properties.
Property
Required
Description
from_address
Yes
to_address
Yes
The email address of the recipient of the email address. Typically, this
should be [email protected].
subject
No
The subject of the email. For a Reassign Simple template, this should be
REASSIGN SIMPLE
customer_name
No
Specifies the default name of the customer to which the block has been
reassigned.
customer_address
No
Specifies the default street address for the customer being assigned this
block.
customer_city
No
Specifies the default city for the customer being assigned this block.
customer_state
No
Specifies the default state for the customer being assigned this block.
customer_postal_code
No
Specifies the default postal code for the customer being assigned this block.
customer_country_code
No
Specifies the default country code for the customer being assigned this
block.
Other Interfaces
IPControl provides a set of sample scripts that can be used, via the Callout Manager, to
generate the proper RIPE inetnum or inet6num templates. These templates are used to
update the RIPE database directly via email. The Callout Manager can be configured to
call these scripts on each Add, Delete, or Modify of a block within IPControl. To
configure the callout manager to call the RIPE scripts on these events, modify the
following properties in the $INCHOME/callout_manager.properties file. (The examples
assume that $INCHOME = /opt/nc.)
block.add = /opt/nc/etc/callout/addRipe.pl
block.modify = /opt/nc/etc/callout/modifyRipe.pl
block.delete = /opt/nc/etc/callout/deleteRipe.pl
The scripts can be configured with default information to be used when generating the
data files. The default properties are stored in a properties file called
$INCHOME/etc/callout/ripe.properties. The following table lists those properties.
Property
from_address
Required
Yes
Description
The email address of the sender of the template email.
to_address
Yes
The email address of the recipient of the email address. Typically, this should
be [email protected].
orgname
No
Specifies the text that will appear in the descr field of the in inetnum (or
inet6num) templates. Typically this is the name of the organization that will
use the address space.
adminc
No
Specifies the email address of the administrative contact for this address space.
This corresponds to the admin-c field in the inetnum (or inet6num)
template.
techc
No
Specifies the email address of the technical contact for this address space. This
corresponds to the tech-c field in the inetnum (or inet6num) template.
revsrv
No
Specifies the reverse server address for this address space. This corresponds to
the rev-srv field in the inetnum (or inet6num) template.
notify
No
Specifies the email address of the RIPE contact for this address space. This
corresponds to the notify field in the inetnum (or inet6num) template.
status
No
Specifies the default values of the status field in the inetnum or inet6num
templates.
All inetnum objects under APNIC Whois Database must have a status
attribute. The status attribute must be one of the following values:
UNSPECIFIED
ALLOCATED PORTABLE
ALLOCATED NON-PORTABLE
ASSIGNED PORTABLE
ASSIGNED NON-PORTABLE
All inet6num objects under APNIC Whois Database must have a status
attribute. The status attribute must be one of the following values:
ALLOCATED PORTABLE
ALLOCATED NON-PORTABLE
ASSIGNED PORTABLE
ASSIGNED NON-PORTABLE
Other Interfaces
Property
mntby
Required
Description
The default value to use as the identifier of a registered mntner object used for
authorization and authentication.
mntlower
mntroutes
mntirt
remarks
changed
The email address of who last updated the database object and the date it
occurred.
The changed attribute is not a network contact address, as it merely records
who made the most recent change to the registration information. All RIPE
addresses will initially record an RIPE address in this attribute, as RIPE creates
the first database object.
source
The name of the database from which the data was obtained. This is either
RIPE or a designation for the NIR, LIR or ISP that allocates/assigns the
address.
password
delete_reason
The default text to use when deleting an address space. This will be placed in
the Delete: field, if a delete has taken place.
Operation
ARIN File Generation Scripts
In order to support the automatic file generation of ARIN SWIP templates and emails,
there are three scripts that can get called by the Callout Manager when a block is added,
modified, or deleted and they are addSwip.pl, modifySwip.pl, and deleteSwip.pl. (For
information on configuring the Callout Manager to perform these tasks please see the
section above called Configuration ARIN File Generation.)
All of the scripts are written in PERL and require that PERL 5 be installed and configured
on the IPControl Executive system by the system administrator. PERL 5 is NOT
supplied with IPControl. Although fully functional, the scripts are provided as examples.
The ARIN scripts all operate in a similar fashion. They accept as their first argument a
filename. This filename should point to a file that contains block information formatted
as name-value pairs. The scripts parse this file to pull out any required data and decide
whether or not to proceed with the template processing. The key decision point is the
presence of a property called swipname in the data file. If the property is present and is
non-empty, then the scripts will proceed with creating a Reassign-Simple template for
adding, modifying, or deleting an address space. After creating the template, it will attempt
to send an email to the address specified in the to_address field, as defined in the
swip.properties file.
360 IPControl CLI and API Guide
Other Interfaces
The SWIP Perl scripts expect to make use of both standard and User Defined Fields. The
following table shows a mapping of the fields used by the scripts and their relation to the
standard and User Defined Fields.
NC Tags
SWIP Field
UDF
startaddrstring / blocksize
swipname
Network-Name
org_name
Customer Name
street_address
Customer Address
city
Customer City
state
Customer State
postal_code
country_code
public_comments
Public Comments
In order to support the automatic file generation of RIPE inetnum or inet6num templates
and emails, there are three scripts that can get called by the Callout Manager when a block
is added, modified, or deleted and they are addRipe.pl, modifyRipe.pl, and deleteRipe.pl.
(For information on configuring the Callout Manager to perform these tasks please see the
section above called Configuration RIPE File Generation.)
All of the scripts are written in PERL and require that PERL 5 be installed and configured
on the IPControl Executive system by the system administrator. PERL 5 is NOT
supplied with IPControl. Although fully functional, the scripts are provided as examples.
The RIPE scripts all operate in a similar fashion. They accept as their first argument a
filename. This filename should point to a file that contains block information formatted
as name-value pairs. The scripts parse this file to pull out any required data and decide
whether or not to proceed with the template processing. The key decision point is the
presence of a property called swipname in the data file. If the property is present and
is non-empty, then the scripts will proceed with creating an inetnum or inet6num template
for adding, modifying, or deleting an address space. After creating the template, it will
attempt to send an email to the address specified in the toaddress field, as defined in
the ripe.properties file.
Note: All scripts delete the data file before exiting.
Expected User Defined Field Mappings
The RIPE Perl scripts expect to make use of both standard and User Defined Fields. The
following table shows a mapping of the fields used by the scripts and their relation to the
standard and User Defined Fields.
Other Interfaces
NC Tags
RIPE Field
UDF
startaddrstring - endaddrstring
swipname
netname
orgname
descr
country_code
country
admin_contact
admin-c
tech_contact
tech-c
rev_srv
rev-srv
status
status
remarks
remarks
notify
notify
mntby
mnt-by
mntlower
mnt-lower
mntroutes
mnt-routes
changed
changed
source
source
Other Interfaces
DNS Listener
The DNS Listener process can dynamically collect information from DNS servers about
updates to zones and import this information into IPControl.
The DNS Listener process imports DNS resource records collected via an incremental
zone transfer (IXFR) from a DNS server into IPControl. It does this by sequentially
reading each resource record contained in an IXFR, processing each one according to a set
of rules described below, and then inserting some portion of the resulting data into
IPControl. Resource records are processed using rules specific to each resource records
Type field. The type-specific rules are listed in detail further down in this appendix.
Usage
Starting the DNSListener on Unix
$INCHOME/etc/dl_start [-c <listener.properties>]
Make sure the listener is not running by using the appropriate stop command (see
Usage above).
2. The Listener listens on port 5053 by default. If you require it to listen on another
port, edit the dns_listener.properties file.
1.
Note: For the Listener to listen on a port numbered from 1-1023 on UNIX, you must run
the Listener as root so that the process can access privileged ports.
3.
Start the DNS Listener by using the appropriate start command (see Usage
above).
Other Interfaces
Configure DNS
BIND 8.0 or newer
In the BIND configuration file, usually /etc/named.conf, add the also-notify option to
the zones that you want IPControl to stay synchronized with. For example, the alsonotify option in this file would cause bind to send notify messages to the address
192.168.0.1 on port 5053 when it updates zones example.com. and 0.168.192.inaddr.arpa.:
Options {
directory /var/lib/named;
notify no;
};
zone example.com. {
type master;
file db.example;
also-notify { 192.168.0.1 port 5053; };
};
zone 0.168.192.in-addr.arpa. {
type master;
file db.0.168.192;
also-notify { 192.168.0.1 port 5053; };
};
Other Interfaces
4. Click on the Zone Transfers tab and then click the Notify... button.
Other Interfaces
Description
SOA
Data from the SOA record is used to update a domain in IPControl. The domain name is taken from
the name field of the resource record. If the domain does not exist in IPControl processing for that
record stops. If the domain exists in IPControl, data from the imported record is used to update the
serial number of the domain.
Data from A records is used to create resource record entries attached to domains in IPControl and
additionally can create individual IP addresses and devices. Note that:
if a domain name that matches the zone name is not defined in IPControl then processing of the
resource record stops.
if the name field contains the zone name, with additional fields to the left of the domain name
then an IP address and device will be created.
if the name field matches exactly the zone name then no IP address and device will be created.
if an address and device is to be created the DNS Listener will use the left most label of the
name field as the host portion of the FQDN for the host.
if the address found in the rdata field of the resource record can be located within a block
defined in IPControl, an IP address will be created using the rdata field, and a device will be
created using the name field. The device and IP address will also be associated with the resource
record in addition to the domain.
if no block is defined that contains the address then the address device pair will not be created.
If the IP address already exists in a block defined in IPControl and there is no host name
associated with the linked device, the host name will be taken from the name field of the
resource record.
PTR
Data from PTR records is used in the same way as data from A records with the exception that the
name and rdata field are swapped when creating an IP address and device.
NS
MX
MX records are imported into IPControl and attached to the domain supplied in the name field.
SRV
The data from SRV records are processed in the same way as other resource records with the
exception of the name field. The name field of SRV records specifies a service available for the
domain for which it is a part of. The service type and protocol is encoded in the left portion of its
name field. To avoid collision with the rest of the domain name space, leading under-bars are
prepended to the labels that describe the service. This practice is not always followed in the field and
so the DNSImport CLI uses the following rule to determine where the domain name part of the
name field starts. It considers all the labels to the right of the right-most label that starts with an
underscore to be part of the domain name of the SRV record.
For example in the following SRV record:
_ldap._tcp.pdc._msdcs.sw.ins.com. 600 SRV 0 100 400 pdc.sw.ins.com.
The domain name that the resource record will be placed in is taken from the name field of the
resource record after the left label has been removed. If the domain can not be found in IPControl
processing of the resource record will stop. If the domain is found in IPControl, a resource record
object is created using the data supplied by the imported record, and it is linked to the domain.
Other Interfaces
Detailed Description
The DNS Listener is a small multi-threaded program that listens for messages from DNS
servers. When notified of a change to a zone that a server is responsible for the listener
can request detailed information about those changes and then use this information to
update IPControl. In this way IPControl is kept synchronized with the DNS as hosts join
and leave the network.
The listener is composed of three long lived threads, one queue, and a short lived thread.
See Figure 1. The notify thread is responsible for listening for notify messages from DNS
servers. When changes are made to the affected zones the DNS server will send a
NOTIFY message to the listener. Notify messages sent by DNS servers are sent to port
53 by default, which is a privileged port on most UNIX systems. For this reason the DNS
Listener defaults to port 5053. Both the port the server sends to and the port the listener
listens on can be changed as described below.
When the listener receives a NOTIFY message, the notify thread sends a message to the
transfer manager thread which increments its count of notify messages for the server.
When the number of notify messages exceeds the listener.notifythreshold property, and
the transfer manager is not in the paused state, the transfer manager thread will create and
start a transfer thread. The transfer thread will request an IXFR from the appropriate
DNS server, place the resulting resource records on the queue, and then exit.
The resource record input manager thread is notified when records are placed on the
queue. When this happens the input manager compares the number of records on the
queue with the listener.maxrecords property. If there are more records than the
listener.maxrecords specifies, the input manager thread will send a pause message to t he
transfer manager thread. When the transfer manager is in the pause state it will continue
to process notify messages from the notify thread, but will not start any new transfer
threads. The input thread will then sequentially remove the resource records from the
queue and process them as described above. When the number of records remaining on
the queue is less than the listener.maxrecords, a restart message will be sent to the transfer
manager.
Other Interfaces
The DNS Listener can use a properties file to set certain operational properties. The
properties are:
listener.port
The port on which the listener should listen for NOTIFY
messages from a DNS server. The default is 5053 if this
property is not supplied.
Note: For the listener to listen on port 53 on *NIX, you
must run dl_start as root.
listener.notifythreshold
Other Interfaces
listener.maxrecords
The script is called by the remote agent, that is, the one that resides on the actual
DNS server.
The script gets called just before we attempt to Restart the server (on a DNS
Config - All Files push) or call rndc (for Selected/Changed Zone Filebased pushes).
The script gets passed one parameter which is the full path name of the new
named.conf file.
The agent will wait for the completion of script before moving on, but only for at
most 60 seconds.
The agent will report the return code of the script in the task result messages,
however it does not interrogate this return value and thus will always continue
even if the script fails.
369
IPControl 6.0
WSAddrpool
Appendix A
WSChildBlock
Additional details are described in the ImportContainer API section. This will
affect the ModifyContainer CLI as well as the ImportContainer and
ExportContainer APIs.
WSDevice
Appendix A
Other Interfaces
WSDhcpServer
Appendix A
WSSubnetPolicy
ImportNetService
This ImportNetService API and CLI have been deprecated as of IPControl 6.0. Use the
ImportDhcpServer API and CLI instead. ImportNetService support will be removed in a
future release.
Appendix A