class HMSLocalServerRestService {

    @RequestMapping( value = "/{host_id}/storagecontrollerinfo", method = RequestMethod.GET )
    public @ResponseBody List<StorageController> getStorageControllerInfo( @PathVariable String host_id )
        throws HMSRestException
    {

        List<StorageController> listStorageController = new ArrayList<StorageController>();
        try
        {
            if ( !InventoryLoader.getInstance().getNodeMap().containsKey( host_id ) )
                throw new HMSRestException( Status.NOT_FOUND.getStatusCode(), "Invalid Request",
                                            "Can't find host with id " + host_id );
            else
            {
                ServerNode node = InventoryLoader.getInstance().getNodeMap().get( host_id );
                ServerComponentAggregator aggregator = new ServerComponentAggregator();
                aggregator.setServerComponentInfo( node, ServerComponent.STORAGE_CONTROLLER );
                listStorageController = ServerInfoHelperUtil.convertToFruStorageControllerInfo( node );
                context.publishEvent( new FruDataChangeMessage( (List<FruComponent>) (List<?>) listStorageController,
                                                                host_id, ServerComponent.STORAGE_CONTROLLER ) );
                return listStorageController;
            }
        }
        catch ( HmsException e )
        {
            if ( e instanceof HMSRestException )
            {
                logger.error( "Error while getting Storage Controller Info for Node: {}.", host_id, e );
                throw (HMSRestException) e;
            }
            else
            {
                logger.error( "Error while getting Storage Controller Info for Node: {}.", host_id, e );
                throw new HMSRestException( Status.INTERNAL_SERVER_ERROR.getStatusCode(), "Server Error",
                                            e.getMessage() );
            }
        }
        catch ( Exception e )
        {
            logger.error( "Error while getting Storage Controller Info for Node: {}.", host_id, e );
            throw new HMSRestException( Status.INTERNAL_SERVER_ERROR.getStatusCode(), "Server Error", e.getMessage() );
        }
    }

}