func (b *RDSBroker) LastOperation(instanceID string) (brokerapi.LastOperationResponse, error) { b.logger.Debug("last-operation", lager.Data{ instanceIDLogKey: instanceID, }) lastOperationResponse := brokerapi.LastOperationResponse{State: brokerapi.LastOperationFailed} dbInstanceDetails, err := b.dbInstance.Describe(b.dbInstanceIdentifier(instanceID)) if err != nil { if err == awsrds.ErrDBInstanceDoesNotExist { return lastOperationResponse, brokerapi.ErrInstanceDoesNotExist } return lastOperationResponse, err } lastOperationResponse.Description = fmt.Sprintf("DB Instance '%s' status is '%s'", b.dbInstanceIdentifier(instanceID), dbInstanceDetails.Status) if state, ok := rdsStatus2State[dbInstanceDetails.Status]; ok { lastOperationResponse.State = state } if lastOperationResponse.State == brokerapi.LastOperationSucceeded && dbInstanceDetails.PendingModifications { lastOperationResponse.State = brokerapi.LastOperationInProgress lastOperationResponse.Description = fmt.Sprintf("DB Instance '%s' has pending modifications", b.dbInstanceIdentifier(instanceID)) } return lastOperationResponse, nil }
func (b *CloudFormationBroker) LastOperation(instanceID string) (brokerapi.LastOperationResponse, error) { b.logger.Debug("last-operation", lager.Data{ instanceIDLogKey: instanceID, }) lastOperationResponse := brokerapi.LastOperationResponse{State: brokerapi.LastOperationFailed} stackDetails, err := b.stack.Describe(b.stackName(instanceID)) if err != nil { if err == awscf.ErrStackDoesNotExist { return lastOperationResponse, brokerapi.ErrInstanceDoesNotExist } return lastOperationResponse, err } lastOperationResponse.Description = fmt.Sprintf("Stack '%s' status is '%s'", b.stackName(instanceID), stackDetails.StackStatus) switch stackDetails.StackStatus { case awscf.StatusSucceeded: lastOperationResponse.State = brokerapi.LastOperationSucceeded case awscf.StatusInProgress: lastOperationResponse.State = brokerapi.LastOperationInProgress default: lastOperationResponse.State = brokerapi.LastOperationFailed } return lastOperationResponse, nil }