3.19.1.1 State Machine

The following figure shows the state machine of the IIpamOperationWithProgress server port type.

IIpamOperationWithProgress - server state machine

Figure 13: IIpamOperationWithProgress - server state machine

The IIpamOperationWithProgress server is session-based and stateful in nature. The session state variable keeps track of the current state for each session, and can have the following states as possible values. At any point of the session, if the session is known to be faulted or closed by the lower layer, the state machine ends.

State

Description

Session Initialized

This is the initial state of the session, indicated from the lower layer of the protocol. In this state, when the InitializeOperationParameters operation is invoked (by the client), the data received as a part of the InitializeOperationParameters is validated.

If the data validation succeeds, the state is changed to OperationWithProgressInitialized

If the data validation fails, the server returns an appropriate SOAP fault and closes the session.

OperationWithProgress Initialized

This is the state when the IpamOperationWithProgress is initialized and ready to start the specified operation. In this state, the StartOperationWithCallback operation is invoked (by the client), and the server invokes the StartProgressCallback and triggers the operation. The state is changed to OperationWithProgress Started.

OperationWithProgress Started

Denotes that the operation has been initialized successfully and is currently in progress.

An operation can be divided into subtasks that can be added to the overall operation at any time and be tracked separately. If the operation requires a new subtask, the AddSubTask callback operation is invoked. The state remains OperationWithProgress Started.

As the subtasks progress, the percentage progress will change, and the subtask is completed with success, with error, or with warning. In each of these cases, the SetSubTaskStatus operation is invoked. The state remains OperationWithProgress Started.

If the server operation is tracking the overall operation percentage completion and if the percentage completion of the operation changes, the SetCompletionPercentage operation is invoked. The state remains OperationWithProgress Started.

If all the subtasks and the operation as a whole is completed with success, with error, or with warnings, the SetOverallStatus callback operation is invoked. The state is changed to OperationWithProgress Completed.

OperationWithProgress Completed

Indicates that there is no further processing required in the session and proceeds to close the session.