3.3.4.84 UpdateRange
This operation is used to modify an existing IP address range in the IPAM data store.
-
<wsdl:operation name="UpdateRange"> <wsdl:input wsaw:Action="http://Microsoft.Windows.Ipam/IIpamServer/UpdateRange" message="ipam:IIpamServer_UpdateRange_InputMessage" /> <wsdl:output wsaw:Action="http://Microsoft.Windows.Ipam/IIpamServer/UpdateRangeResponse" message="ipam:IIpamServer_UpdateRange_OutputMessage" /> </wsdl:operation>
Upon receiving the IIpamServer_UpdateRange_InputMessage request message, the server performs the following processing steps. Upon successful completion of the steps specified below, the server MUST respond with the IIpamServer_UpdateRange_OutputMessage message. In the event of a failure, an appropriate SOAP fault MUST be sent to the client as specified in section 2.2.2.1.
Set the updatedRange to UpdateRange.range.
Identify the list of modified properties in the updatedRange by seeing the number of properties modified in updatedRange.ModifiedProperties. If there are no property modification, no further processing is required and return successfully.
Validate the updatedRange by performing the processing rules listed under the section ValidateIPRange.
Fetch the existing range data by invoking GetIPRangeFromTable procedure of ADM_IPRangeTable by passing the updatedRange.RecordId as the Param_id field. The Param_addressfamily is set to the Internet if the updatedRange is IPv4Range and InternetV6 if the updatedRange is IPv6Range.
Store the result in currentRange which is a temporary store.
Compare the values of the properties listed in updatedRange.ModifiedProperties to their corresponding values in currentRange. Only those values which have changed will be used to update the values in the data store.
Identify if any of the following properties are modified.
SubnetId
PrefixLength
StartIPAddress
EndIPAddress
ManagedByValue – This is a computed field of the updatedRange. This is the value of the custom field whose record identifier is ADM_ManagedByCustomFieldId retrieved from updatedRange.CustomFieldValues.
ManagedByEntityValue – This is a computed field of the updatedRange. This is the value of the custom field whose record identifier is ADM_ManagedByEntityCustomFieldId retrieved from updatedRange.CustomFieldValues.
If any of the above fields have changed and are different from the values in currentRange, the following additional processing has to be done.
The IsOverlapping field and the IP address mapping to the range will need to be reset. This is done by invoking the ResetCurrentIPRangeMapping procedure of the ADM_IPRangeTable with the Param_range parameter set to currentRange.
The IsOverlapping field has to be recalculated for the address ranges based on the new address range. Also the addresses in ADM_IPAddressTable have to be recalculated based on the new range. This is done by performing the steps listed under SetIPRangeMapping by passing the updatedRange as the currentRange parameter.
If the address range is not getting modified from what is there in currentRange, update the modified fields of the address range to the ADM_IPRangeTable by looking up the row with the record identifier being updatedRange.RecordId.
Validate the updatedRange.CustomFieldValues as specified in the section ValidateCustomFieldValues. If the custom field values are valid, call the SetCustomFieldValues procedure of ADM_CustomFieldValuesAssociationTable with the following parameters:
Param_ObjectRecordId is assigned the value of updatedRange.RecordId.
Param_CustomFieldValuesCollection is assigned the updatedRange.CustomFieldValues.
Param_ObjectType is assigned the value of EnumeratedObjectType.IPRange.
Param_addressFamily is assigned Internet if UpdateRange.range is IPv4Range. Otherwise it is assigned the value of InternetV6.