3.1.4.10 GetDeployments

A DSS calls the GetDeployments method to get the list of deployments that are new or changed since the last successful GetDeployments call made by this DSS. This call MUST NOT be invoked unless the DSS is configured to be a "Replica Server", as specified in section 3.1.1.

 <wsdl:operation name="GetDeployments">
   <wsdl:input message="tns:GetDeploymentsSoapIn" />
   <wsdl:output message="tns:GetDeploymentsSoapOut" />
 </wsdl:operation>

The SOAP operation is defined as follows.

 <soap:operation soapAction="http://www.microsoft.com/SoftwareDistribut
 ion/GetDeployments" style="document" />

Request validation:

The USS validates inputs as given in the following table. If any of the inputs are not valid, the USS MUST return a SOAP fault message to the DSS with the <ErrorCode> set, as shown in the table.

Input

Validation conditions

ErrorCode

cookie

MUST be present and not empty.

InvalidCookie

cookie

The EncryptedData MUST be the correct format such that the USS can read values out of it, as specified in section 2.2.4.8.

InvalidCookie

protocolVersion in the cookie EncryptedData

MUST be of the format x.y where x is the Major Version and y is the Minor Version number.

InvalidParameters

protocolVersion in the cookie EncryptedData

Major Version MUST be 1.

IncompatibleProtocolVersion

deploymentAnchor

MUST be a string with the correct format, an empty string, or not present. The format of the anchor is implementation-specific and not defined by the protocol.<44>

InvalidParameters

syncAnchor

MUST be a valid format and not NULL and not an empty string. The format of the anchor is implementation-specific and not defined by the protocol.<45>

InvalidParameters

Data processing:

The USS MUST compose a GetDeploymentsResponse message in response, as follows:

  1. Search the TargetGroup Table for all target groups defined on the USS. For each entry found in the table, create a ServerSyncTargetGroup entry in the Groups field of the response. Initialize the ServerSyncTargetGroup entry from the entry in the Targets Group Table.

  2. Search the Deployment Table for all deployments that have been added between the time identified by the deploymentAnchor and the time identified by the sync anchor. For each entry found in the Deployment Table, create a ServerSyncDeployment entry in the Deployments field of the response. Initialize the ServerSyncDeployment entry from the entry in the Deployment Table.

  3. Search the Deployment Table for all deployments that have been deleted between the time identified by the deploymentAnchor and the time identified by the syncAnchor and add their GUIDs to the DeadDeployments array in the response.

  4. Search the Revision Table for all entries whose Hidden field is set to TRUE and add their GUIDs to the HiddenUpdates array in the response.

  5. Search the EULAs Table for all entries whose Accepted field is set to TRUE and add their GUIDs to the AcceptedEulas array in the response.

Response:

If no errors occur during processing, the USS MUST return the success response to the DSS.

If an error occurs during processing, the USS MUST return a SOAP fault. The SOAP fault SHOULD contain an <ErrorCode> element, as described in section 2.2.9. If the SOAP fault contains an <ErrorCode> element, its value MUST be one of the following.

If the DSS receives a SOAP fault containing an <ErrorCode> element, it MUST react to the fault with one of the following error codes, which are defined in section 2.2.9.3.

  • InvalidParameters

  • InternalServerError

  • InvalidCookie

  • IncompatibleProtocolVersion

If the DSS receives a fault that does not contain an <ErrorCode> element, it MUST stop the protocol.