Search in sources :

Example 21 with ErrorCode

use of org.olat.modules.vitero.model.ErrorCode in project OpenOLAT by OpenOLAT.

the class ViteroManager method getLicenceForAvailableRooms.

public List<Integer> getLicenceForAvailableRooms(Date begin, Date end) throws VmsNotAvailableException {
    List<Integer> roomSizes = new ArrayList<Integer>();
    try {
        Grouprequesttype groupRequest = new Grouprequesttype();
        groupRequest.setStart(format(begin));
        groupRequest.setEnd(format(end));
        GetBookableRoomsForGroupResponse response = getLicenceWebService().getBookableRoomsForGroup(groupRequest);
        Rooms rooms = response.getRooms();
        for (Integer roomSize : rooms.getRoomsize()) {
            if (!roomSizes.contains(roomSize)) {
                roomSizes.add(roomSize);
            }
        }
    } catch (SOAPFaultException f) {
        ErrorCode code = handleAxisFault(f);
        switch(code) {
            default:
                logAxisError("Cannot get licence for available room by dates.", f);
        }
    } catch (WebServiceException e) {
        if (e.getCause() instanceof ConnectException) {
            throw new VmsNotAvailableException();
        }
        log.error("Cannot get licence for available room by dates.", e);
    }
    return roomSizes;
}
Also used : BigInteger(java.math.BigInteger) Grouprequesttype(de.vitero.schema.licence.Grouprequesttype) WebServiceException(javax.xml.ws.WebServiceException) GetBookableRoomsForGroupResponse(de.vitero.schema.licence.GetBookableRoomsForGroupResponse) ArrayList(java.util.ArrayList) SOAPFaultException(javax.xml.ws.soap.SOAPFaultException) ErrorCode(org.olat.modules.vitero.model.ErrorCode) Rooms(de.vitero.schema.licence.GetBookableRoomsForGroupResponse.Rooms) ConnectException(java.net.ConnectException)

Example 22 with ErrorCode

use of org.olat.modules.vitero.model.ErrorCode in project OpenOLAT by OpenOLAT.

the class ViteroManager method deleteBooking.

public boolean deleteBooking(ViteroBooking vBooking) throws VmsNotAvailableException {
    try {
        DeleteBookingRequest deleteRequest = new DeleteBookingRequest();
        deleteRequest.setBookingid(vBooking.getBookingId());
        DeleteBookingResponse response = getBookingWebService().deleteBooking(deleteRequest);
        BigInteger state = response.getDeletestate();
        deleteGroup(vBooking);
        deleteProperty(vBooking);
        return state != null;
    } catch (SOAPFaultException f) {
        ErrorCode code = handleAxisFault(f);
        switch(code) {
            case bookingDoesntExist:
            case bookingDoesntExistPrime:
                {
                    deleteGroup(vBooking);
                    deleteProperty(vBooking);
                    // ok, vms deleted, group deleted...
                    return true;
                }
            default:
                {
                    logAxisError("Cannot delete a booking.", f);
                }
        }
        return false;
    } catch (WebServiceException e) {
        if (e.getCause() instanceof ConnectException) {
            throw new VmsNotAvailableException();
        }
        log.error("Cannot delete a booking.", e);
        return false;
    }
}
Also used : DeleteBookingRequest(de.vitero.schema.booking.DeleteBookingRequest) WebServiceException(javax.xml.ws.WebServiceException) BigInteger(java.math.BigInteger) SOAPFaultException(javax.xml.ws.soap.SOAPFaultException) ErrorCode(org.olat.modules.vitero.model.ErrorCode) DeleteBookingResponse(de.vitero.schema.booking.DeleteBookingResponse) ConnectException(java.net.ConnectException)

Example 23 with ErrorCode

use of org.olat.modules.vitero.model.ErrorCode in project OpenOLAT by OpenOLAT.

the class ViteroManager method checkConnection.

public boolean checkConnection(final String url, final String login, final String password, final int customerId) throws VmsNotAvailableException {
    try {
        LicenceService ss = new LicenceService();
        ss.setHandlerResolver(new HandlerResolver() {

            @SuppressWarnings("rawtypes")
            @Override
            public List<Handler> getHandlerChain(PortInfo portInfo) {
                List<Handler> handlerList = new ArrayList<Handler>();
                handlerList.add(new ViteroSecurityHandler(login, password));
                return handlerList;
            }
        });
        Licence port = ss.getLicenceSoap11();
        String endPoint = UriBuilder.fromUri(url).path("services").path("LicenseService").build().toString();
        ((BindingProvider) port).getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, endPoint);
        GetModulesForCustomerRequest request = new GetModulesForCustomerRequest();
        request.setCustomerid(customerId);
        Modulestype modulesType = port.getModulesForCustomer(request);
        return modulesType != null;
    } catch (SOAPFaultException f) {
        ErrorCode code = handleAxisFault(f);
        switch(code) {
            case unsufficientRights:
                log.error("Unsufficient rights", f);
                break;
            default:
                logAxisError("Cannot check connection", f);
        }
        return false;
    } catch (WebServiceException e) {
        if (e.getCause() instanceof ConnectException) {
            throw new VmsNotAvailableException();
        }
        log.warn("Error checking connection", e);
        return false;
    }
}
Also used : WebServiceException(javax.xml.ws.WebServiceException) Handler(javax.xml.ws.handler.Handler) ViteroSecurityHandler(de.vitero.ViteroSecurityHandler) DataHandler(javax.activation.DataHandler) SOAPFaultException(javax.xml.ws.soap.SOAPFaultException) Modulestype(de.vitero.schema.licence.Modulestype) PortInfo(javax.xml.ws.handler.PortInfo) HandlerResolver(javax.xml.ws.handler.HandlerResolver) GetModulesForCustomerRequest(de.vitero.schema.licence.GetModulesForCustomerRequest) Licence(de.vitero.schema.licence.Licence) ArrayList(java.util.ArrayList) List(java.util.List) ErrorCode(org.olat.modules.vitero.model.ErrorCode) ViteroSecurityHandler(de.vitero.ViteroSecurityHandler) LicenceService(de.vitero.schema.licence.LicenceService) ConnectException(java.net.ConnectException)

Example 24 with ErrorCode

use of org.olat.modules.vitero.model.ErrorCode in project OpenOLAT by OpenOLAT.

the class ViteroManager method deleteVmsUser.

protected void deleteVmsUser(int userId) throws VmsNotAvailableException {
    try {
        Userid userIdType = new Userid();
        userIdType.setUserid(userId);
        getUserWebService().deleteUser(userIdType);
    } catch (SOAPFaultException f) {
        ErrorCode code = handleAxisFault(f);
        switch(code) {
            default:
                logAxisError("Cannot delete vms user: " + userId, f);
        }
    } catch (WebServiceException e) {
        if (e.getCause() instanceof ConnectException) {
            throw new VmsNotAvailableException();
        }
        log.error("Cannot delete vms user: " + userId, e);
    }
}
Also used : WebServiceException(javax.xml.ws.WebServiceException) Userid(de.vitero.schema.user.Userid) SOAPFaultException(javax.xml.ws.soap.SOAPFaultException) ErrorCode(org.olat.modules.vitero.model.ErrorCode) ConnectException(java.net.ConnectException)

Example 25 with ErrorCode

use of org.olat.modules.vitero.model.ErrorCode in project OpenOLAT by OpenOLAT.

the class ViteroManager method createGroup.

public int createGroup(String groupName) throws VmsNotAvailableException {
    try {
        CreateGroupRequest createRequest = new CreateGroupRequest();
        Groupnamecustomerid groupInfos = new Groupnamecustomerid();
        groupInfos.setGroupname(groupName + "_OLAT_" + UUID.randomUUID().toString().replace("-", ""));
        groupInfos.setCustomerid(viteroModule.getCustomerId());
        createRequest.setGroup(groupInfos);
        Groupid groupId = getGroupWebService().createGroup(createRequest);
        return groupId.getGroupid();
    } catch (SOAPFaultException f) {
        ErrorCode code = handleAxisFault(f);
        switch(code) {
            default:
                logAxisError("Cannot create a group", f);
        }
        return -1;
    } catch (WebServiceException e) {
        if (e.getCause() instanceof ConnectException) {
            throw new VmsNotAvailableException();
        }
        log.error("Cannot create a group.", e);
        return -1;
    }
}
Also used : WebServiceException(javax.xml.ws.WebServiceException) CreateGroupRequest(de.vitero.schema.group.CreateGroupRequest) Groupnamecustomerid(de.vitero.schema.group.Groupnamecustomerid) SOAPFaultException(javax.xml.ws.soap.SOAPFaultException) ErrorCode(org.olat.modules.vitero.model.ErrorCode) Groupid(de.vitero.schema.group.Groupid) ConnectException(java.net.ConnectException)

Aggregations

ConnectException (java.net.ConnectException)48 WebServiceException (javax.xml.ws.WebServiceException)48 SOAPFaultException (javax.xml.ws.soap.SOAPFaultException)48 ErrorCode (org.olat.modules.vitero.model.ErrorCode)48 BigInteger (java.math.BigInteger)10 ViteroStatus (org.olat.modules.vitero.model.ViteroStatus)10 Groupid (de.vitero.schema.group.Groupid)8 Group (de.vitero.schema.group.Group)6 Usertype (de.vitero.schema.user.Usertype)6 ParseException (java.text.ParseException)6 ArrayList (java.util.ArrayList)6 ConnectTimeoutException (org.apache.commons.httpclient.ConnectTimeoutException)6 BusinessGroup (org.olat.group.BusinessGroup)6 GetUserInfo (org.olat.modules.vitero.model.GetUserInfo)6 ViteroGroup (org.olat.modules.vitero.model.ViteroGroup)6 Booking (de.vitero.schema.booking.Booking)4 Bookinglist (de.vitero.schema.booking.Bookinglist)4 Bookingtype (de.vitero.schema.booking.Bookingtype)4 ChangeGroupRoleRequest (de.vitero.schema.group.ChangeGroupRoleRequest)4 Completegrouptype (de.vitero.schema.group.Completegrouptype)4