Search in sources :

Example 1 with Error

use of com.woorea.openstack.keystone.model.Error in project so by onap.

the class MsoCommonUtils method keystoneErrorToMsoException.

/*
     * Convert an Openstack Exception on a Keystone call to an MsoException. This method supports both
     * OpenstackResponseException and OpenStackConnectException.
     */
public MsoException keystoneErrorToMsoException(OpenStackBaseException e, String context) {
    MsoException me = null;
    if (e instanceof OpenStackResponseException) {
        OpenStackResponseException re = (OpenStackResponseException) e;
        try {
            // Failed Keystone calls return an Error entity body.
            Error error = re.getResponse().getErrorEntity(Error.class);
            logger.error("{} {} Openstack Keystone Error on {}: {}", MessageEnum.RA_CONNECTION_EXCEPTION, ErrorCode.DataError.getValue(), context, error);
            me = new MsoOpenstackException(error.getCode(), error.getTitle(), error.getMessage());
        } catch (Exception e2) {
            // Can't parse the body as an "Error". Report the HTTP error
            logger.error("{} {} HTTP Error on {}: {}, {}", MessageEnum.RA_CONNECTION_EXCEPTION, ErrorCode.DataError.getValue(), context, re.getStatus(), re.getMessage(), e2);
            me = new MsoOpenstackException(re.getStatus(), re.getMessage(), "");
        }
        // Add the context of the error
        me.addContext(context);
        // Generate an alarm for 5XX and higher errors.
        if (re.getStatus() >= 500) {
            logger.error("{} {} OpenStackResponseException with response code {} on {}: ", MessageEnum.RA_CONNECTION_EXCEPTION, ErrorCode.DataError.getValue(), re.getStatus(), context, e);
        }
    } else if (e instanceof OpenStackConnectException) {
        OpenStackConnectException ce = (OpenStackConnectException) e;
        me = new MsoIOException(ce.getMessage());
        me.addContext(context);
        // Generate an alarm for all connection errors.
        logger.error("{} {} Openstack Keystone connection error on {}: ", MessageEnum.RA_GENERAL_EXCEPTION_ARG, ErrorCode.DataError.getValue(), context, e);
    }
    return me;
}
Also used : MsoException(org.onap.so.openstack.exceptions.MsoException) OpenStackResponseException(com.woorea.openstack.base.client.OpenStackResponseException) NeutronError(com.woorea.openstack.quantum.model.NeutronError) Error(com.woorea.openstack.keystone.model.Error) MsoIOException(org.onap.so.openstack.exceptions.MsoIOException) OpenStackConnectException(com.woorea.openstack.base.client.OpenStackConnectException) MsoAdapterException(org.onap.so.openstack.exceptions.MsoAdapterException) ServiceEndpointNotFoundException(org.onap.so.cloud.authentication.ServiceEndpointNotFoundException) OpenStackBaseException(com.woorea.openstack.base.client.OpenStackBaseException) MsoOpenstackException(org.onap.so.openstack.exceptions.MsoOpenstackException) IOException(java.io.IOException) OpenStackConnectException(com.woorea.openstack.base.client.OpenStackConnectException) MsoIOException(org.onap.so.openstack.exceptions.MsoIOException) OpenStackResponseException(com.woorea.openstack.base.client.OpenStackResponseException) MsoException(org.onap.so.openstack.exceptions.MsoException) MsoOpenstackException(org.onap.so.openstack.exceptions.MsoOpenstackException)

Example 2 with Error

use of com.woorea.openstack.keystone.model.Error in project so by onap.

the class MsoCommonUtilsTest method testKeystoneErrorToMsoException.

@Test
public final void testKeystoneErrorToMsoException() throws JsonParseException, JsonMappingException, IOException {
    OpenStackBaseException openStackConnectException = new OpenStackConnectException("connect");
    OpenStackBaseException openStackResponseException = new OpenStackResponseException("response", 1);
    MsoException me = commonUtils.keystoneErrorToMsoException(openStackConnectException, "ContextError");
    assertTrue(me instanceof MsoIOException);
    assertTrue("connect".equals(me.getMessage()));
    MsoException me2 = commonUtils.keystoneErrorToMsoException(openStackResponseException, "ContextError");
    assertTrue(me2 instanceof MsoOpenstackException);
    assertTrue("ContextError".equals(me2.getContext()));
    assertTrue(MsoExceptionCategory.OPENSTACK.equals(me2.getCategory()));
    OpenStackResponse openStackResponse = Mockito.mock(OpenStackResponse.class);
    Error error = mapper.readValue(new File(RESOURCE_PATH + "Error.json"), Error.class);
    doReturn(error).when(openStackResponse).getErrorEntity(eq(Error.class));
    openStackResponseException = new OpenStackResponseException("response", 501, openStackResponse);
    MsoException me3 = commonUtils.keystoneErrorToMsoException(openStackResponseException, "ContextError");
    assertTrue(me3 instanceof MsoOpenstackException);
    assertEquals("1 title: message", me3.toString());
}
Also used : OpenStackResponse(com.woorea.openstack.base.client.OpenStackResponse) MsoException(org.onap.so.openstack.exceptions.MsoException) OpenStackResponseException(com.woorea.openstack.base.client.OpenStackResponseException) OpenStackBaseException(com.woorea.openstack.base.client.OpenStackBaseException) NeutronError(com.woorea.openstack.quantum.model.NeutronError) Error(com.woorea.openstack.keystone.model.Error) MsoIOException(org.onap.so.openstack.exceptions.MsoIOException) OpenStackConnectException(com.woorea.openstack.base.client.OpenStackConnectException) File(java.io.File) MsoOpenstackException(org.onap.so.openstack.exceptions.MsoOpenstackException) Test(org.junit.Test) BaseTest(org.onap.so.BaseTest)

Aggregations

OpenStackBaseException (com.woorea.openstack.base.client.OpenStackBaseException)2 OpenStackConnectException (com.woorea.openstack.base.client.OpenStackConnectException)2 OpenStackResponseException (com.woorea.openstack.base.client.OpenStackResponseException)2 Error (com.woorea.openstack.keystone.model.Error)2 NeutronError (com.woorea.openstack.quantum.model.NeutronError)2 MsoException (org.onap.so.openstack.exceptions.MsoException)2 MsoIOException (org.onap.so.openstack.exceptions.MsoIOException)2 MsoOpenstackException (org.onap.so.openstack.exceptions.MsoOpenstackException)2 OpenStackResponse (com.woorea.openstack.base.client.OpenStackResponse)1 File (java.io.File)1 IOException (java.io.IOException)1 Test (org.junit.Test)1 BaseTest (org.onap.so.BaseTest)1 ServiceEndpointNotFoundException (org.onap.so.cloud.authentication.ServiceEndpointNotFoundException)1 MsoAdapterException (org.onap.so.openstack.exceptions.MsoAdapterException)1