def search(args):
    """Retrieves experiment record by experiment ID
    required parameters: 
    
    experimentID
                
    :rtype: response json
    :return: Returns a response object from the webservice in the json format if success raises exception otherwise
    
    """
    # get search service url
    svc_url = svc.get_search_base_url()

    try:
        # execute request
        response = es.get_experiment_by_id(svc_url, args)
        print json.dumps(json.loads(response))
        print "---"
    except ValueError as e:
        error_msg = "ValueError Exception:" + e.message
        log.error(error_msg, exc_info=True)
        raise Exception(error_msg)
    except requests.exceptions.HTTPError as e:
        error_msg = "HTTPError Exception:" + e.message
        log.error(error_msg, exc_info=True)
        raise Exception(error_msg)
    except ConnectionError as e:
        error_msg = "ConnectionError Exception:" + e.message
        log.error(error_msg, exc_info=True)
        raise Exception(error_msg)
    except Exception as e:
        error_msg = "GenericError Exception:" + e.message
        log.error(error_msg, exc_info=True)
        raise Exception(error_msg)
def search(args):
    """Retrieves metabolite record by experiment ID, platform ID, and metabolite ID
    required parameters: 
    
    experimentID
    platformID
    metaboliteID
    
                
    :rtype: response json
    :return: Returns a response object from the webservice in the json format if success raises exception otherwise
    
    """
    # get search service url
    svc_url = svc.get_search_base_url()

    try:
        # execute request
        response = ms.get_metabolite_by_id(svc_url, args)
        print json.dumps(json.loads(response))
        print '---'
    except ValueError as e:
        error_msg = "ValueError Exception:" + e.message
        log.error(error_msg, exc_info=True)
        raise Exception(error_msg)
    except requests.exceptions.HTTPError as e:
        error_msg = "HTTPError Exception:" + e.message
        log.error(error_msg, exc_info=True)
        raise Exception(error_msg)
    except ConnectionError as e:
        error_msg = "ConnectionError Exception:" + e.message
        log.error(error_msg, exc_info=True)
        raise Exception(error_msg)
    except exception.NotFound as e:
        error_msg = e.message
        log.error(error_msg, exc_info=True)
        raise exception.NotFound(error_msg)
    except exception.InvalidParameter as e:
        error_msg = e.message
        log.error(error_msg, exc_info=True)
        raise exception.InvalidParameter(error_msg)
    except exception.EmptyResponse as e:
        error_msg = e.message
        log.error(error_msg, exc_info=True)
        raise exception.EmptyResponse(error_msg)
    except Exception as e:
        error_msg = e.message
        log.error(error_msg, exc_info=True)
        raise Exception(error_msg)