function checkTask(taskPath, taskIdToCheck, options) {
    const func = function () {
        const deferred = q.defer();
        this.list(`${taskPath}/${taskIdToCheck}`, undefined, util.NO_RETRY)
            .then((response) => {
                const statusAttribute = (options && options.statusAttribute)
                    ? options.statusAttribute
                    : '_taskState';
                const taskState = response[statusAttribute];
                if (taskState === 'VALIDATING' || taskState === 'STARTED') {
                    // this is a normal state, just not done yet - keep waiting
                    deferred.reject();
                } else if (taskState === 'COMPLETED' || taskState === 'FINISHED') {
                    deferred.resolve({ success: true, response });
                } else if (taskState === 'FAILED') {
                    deferred.resolve({ success: false, response });
                } else {
                    deferred.reject(new Error(`checkTask: unexpected command status: ${taskState}`));
                }
            })
            .catch(() => {
                // if this throws, assume it is because restjavad has been restarted
                // and we are done for now
                deferred.resolve({ success: true });
            });

        return deferred.promise;
    };

    return util.tryUntil(this, util.DEFAULT_RETRY, func);
}
function checkTask(taskPath, taskIdToCheck, options) {
    const func = function () {
        const deferred = q.defer();
        this.list(`${taskPath}/${taskIdToCheck}`, undefined, util.NO_RETRY)
            .then((response) => {
                const statusAttribute = (options && options.statusAttribute)
                    ? options.statusAttribute
                    : '_taskState';
                const taskState = response[statusAttribute];
                if (taskState === 'VALIDATING' || taskState === 'STARTED') {
                    
                    deferred.reject();
                } else if (taskState === 'COMPLETED' || taskState === 'FINISHED') {
                    deferred.resolve({ success: true, response });
                } else if (taskState === 'FAILED') {
                    deferred.resolve({ success: false, response });
                } else {
                    deferred.reject(new Error(`checkTask: unexpected command status: ${taskState}`));
                }
            })
            .catch(() => {
                
                
                deferred.resolve({ success: true });
            });

        return deferred.promise;
    };

    return util.tryUntil(this, util.DEFAULT_RETRY, func);
}
function checkTask ( taskPath , taskIdToCheck , options ) { const func = function ( ) { const deferred = q . defer ( ) ; this . list ( ` ${ taskPath } ${ taskIdToCheck } ` , undefined , util . NO_RETRY ) . then ( ( response ) => { const statusAttribute = ( options && options . statusAttribute ) ? options . statusAttribute : '_taskState' ; const taskState = response [ statusAttribute ] ; if ( taskState === 'VALIDATING' || taskState === 'STARTED' ) { // this is a normal state, just not done yet - keep waiting deferred . reject ( ) ; } else if ( taskState === 'COMPLETED' || taskState === 'FINISHED' ) { deferred . resolve ( { success : true , response } ) ; } else if ( taskState === 'FAILED' ) { deferred . resolve ( { success : false , response } ) ; } else { deferred . reject ( new Error ( ` ${ taskState } ` ) ) ; } } ) . catch ( ( ) => { // if this throws, assume it is because restjavad has been restarted // and we are done for now deferred . resolve ( { success : true } ) ; } ) ; return deferred . promise ; } ; return util . tryUntil ( this , util . DEFAULT_RETRY , func ) ; }
Checks status of iControl REST task

@param {String} taskPath                     - URL that created the task
@param {String} taskIdToCheck                - ID of task as returned by create
@param {Object} [options]                    - Options for parsing task response
@param {String} [options.statusAttribute]    - Name of the Task Status attribute in the result response.
Default: '_taskState'

@returns {Promise} A promise which is resolved with true if the task completes
successfully, resolved with false if task goes to error state
or rejected if some other error occurs.
Checks status of iControl REST task