mirror of
https://github.com/HDFGroup/hdf5.git
synced 2025-03-01 16:28:09 +08:00
Merge pull request #1884 in HDFFV/hdf5 from ~DEROBINS/hdf5_der:new_vfd_build_cleanup to develop
* commit '3ee329cb463538cceffef722101fb28e37fbddcb': Untangle #ifdef mess in ROS3 code.
This commit is contained in:
commit
c5ba214097
@ -2877,6 +2877,11 @@ else
|
||||
ROS3_VFD=no
|
||||
|
||||
fi
|
||||
|
||||
## Read-only S3 files are not built if not required.
|
||||
AM_CONDITIONAL([ROS3_VFD_CONDITIONAL], [test "X$ROS3_VFD" = "Xyes"])
|
||||
|
||||
|
||||
## ----------------------------------------------------------------------
|
||||
## Is libhdfs (Hadoop Distributed File System) present?
|
||||
## It might be specified with the `--with-libhdfs' command-line switch.
|
||||
|
@ -71,7 +71,7 @@ public class H5FD_ros3_fapl_t implements Serializable {
|
||||
* @param key "secret key" or "access key" for authenticating request
|
||||
*/
|
||||
public H5FD_ros3_fapl_t (String region, String id, String key) {
|
||||
this.version = 1; /* must equal H5FD__CURR_ROS3_FAPL_T_VERSION */
|
||||
this.version = 1; /* must equal H5FD_CURR_ROS3_FAPL_T_VERSION */
|
||||
/* as found in H5FDros3.h */
|
||||
this.aws_region = region;
|
||||
this.secret_id = id;
|
||||
|
111
src/H5FDros3.c
111
src/H5FDros3.c
@ -34,6 +34,8 @@
|
||||
#include "H5MMprivate.h" /* Memory management */
|
||||
#include "H5FDs3comms.h" /* S3 Communications */
|
||||
|
||||
#ifdef H5_HAVE_ROS3_VFD
|
||||
|
||||
/* toggle function call prints: 1 turns on
|
||||
*/
|
||||
#define ROS3_DEBUG 0
|
||||
@ -119,8 +121,6 @@ static unsigned long long ros3_stats_boundaries[ROS3_STATS_BIN_COUNT];
|
||||
*
|
||||
* Programmer: Jacob Smith
|
||||
*
|
||||
* Changes: None
|
||||
*
|
||||
***************************************************************************/
|
||||
typedef struct {
|
||||
unsigned long long count;
|
||||
@ -190,8 +190,6 @@ typedef struct {
|
||||
*
|
||||
* Programmer: Jacob Smith
|
||||
*
|
||||
* Changes: None.
|
||||
*
|
||||
***************************************************************************/
|
||||
typedef struct H5FD_ros3_t {
|
||||
H5FD_t pub;
|
||||
@ -215,9 +213,7 @@ typedef struct H5FD_ros3_t {
|
||||
*
|
||||
*/
|
||||
#define MAXADDR (((haddr_t)1<<(8*sizeof(HDoff_t)-1))-1)
|
||||
#ifdef H5_HAVE_ROS3_VFD
|
||||
#define ADDR_OVERFLOW(A) (HADDR_UNDEF==(A) || ((A) & ~(haddr_t)MAXADDR))
|
||||
#endif /* H5_HAVE_ROS3_VFD */
|
||||
|
||||
/* Prototypes */
|
||||
static herr_t H5FD_ros3_term(void);
|
||||
@ -279,10 +275,8 @@ static const H5FD_class_t H5FD_ros3_g = {
|
||||
H5FD_FLMAP_DICHOTOMY /* fl_map */
|
||||
};
|
||||
|
||||
#ifdef H5_HAVE_ROS3_VFD
|
||||
/* Declare a free list to manage the H5FD_ros3_t struct */
|
||||
H5FL_DEFINE_STATIC(H5FD_ros3_t);
|
||||
#endif /* H5_HAVE_ROS3_VFD */
|
||||
|
||||
|
||||
/*-------------------------------------------------------------------------
|
||||
@ -292,8 +286,7 @@ H5FL_DEFINE_STATIC(H5FD_ros3_t);
|
||||
*
|
||||
* Return: Non-negative on success/Negative on failure
|
||||
*
|
||||
* Changes: Rename as appropriate for ros3 vfd.
|
||||
* Jacob Smith 2017
|
||||
* Programmer: Jacob Smith 2017
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@ -324,11 +317,7 @@ done:
|
||||
* Return: Success: The driver ID for the ros3 driver.
|
||||
* Failure: Negative
|
||||
*
|
||||
* Programmer: Robb Matzke
|
||||
* Thursday, July 29, 1999
|
||||
*
|
||||
* Changes: Rename as appropriate for ros3 vfd.
|
||||
* Jacob Smith 2017
|
||||
* Programmer: Jacob Smith 2017
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@ -372,11 +361,7 @@ done:
|
||||
*
|
||||
* Returns: SUCCEED (Can't fail)
|
||||
*
|
||||
* Programmer: Quincey Koziol
|
||||
* Friday, Jan 30, 2004
|
||||
*
|
||||
* Changes: Rename as appropriate for ros3 vfd.
|
||||
* Jacob Smith 2017
|
||||
* Programmer: Jacob Smith 2017
|
||||
*
|
||||
*---------------------------------------------------------------------------
|
||||
*/
|
||||
@ -464,10 +449,6 @@ done:
|
||||
* Programmer: Jacob Smith
|
||||
* 9/10/17
|
||||
*
|
||||
* Changes: Add checks for authenticate flag requring populated
|
||||
* `aws_region` and `secret_id` strings.
|
||||
* -- Jacob Smith 2017-11-01
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
static herr_t
|
||||
@ -479,7 +460,7 @@ H5FD_ros3_validate_config(const H5FD_ros3_fapl_t * fa)
|
||||
|
||||
HDassert(fa != NULL);
|
||||
|
||||
if ( fa->version != H5FD__CURR_ROS3_FAPL_T_VERSION ) {
|
||||
if ( fa->version != H5FD_CURR_ROS3_FAPL_T_VERSION ) {
|
||||
HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL,
|
||||
"Unknown H5FD_ros3_fapl_t version");
|
||||
}
|
||||
@ -704,8 +685,6 @@ H5FD_ros3_fapl_free(void *_fa)
|
||||
* Programmer: Jacob Smith
|
||||
* 2017-12-08
|
||||
*
|
||||
* Changes: None.
|
||||
*
|
||||
*----------------------------------------------------------------------------
|
||||
*/
|
||||
static herr_t
|
||||
@ -774,12 +753,8 @@ done:
|
||||
* Programmer: Jacob Smith
|
||||
* 2017-11-02
|
||||
*
|
||||
* Changes: None.
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
#ifdef H5_HAVE_ROS3_VFD
|
||||
|
||||
static H5FD_t *
|
||||
H5FD_ros3_open(
|
||||
const char *url,
|
||||
@ -904,22 +879,6 @@ done:
|
||||
|
||||
} /* end H5FD_ros3_open() */
|
||||
|
||||
#else /* H5_HAVE_ROS3_VFD not defined */
|
||||
|
||||
static H5FD_t *
|
||||
H5FD_ros3_open(
|
||||
const char H5_ATTR_UNUSED *url,
|
||||
unsigned H5_ATTR_UNUSED flags,
|
||||
hid_t H5_ATTR_UNUSED fapl_id,
|
||||
haddr_t H5_ATTR_UNUSED maxaddr)
|
||||
{
|
||||
H5FD_t *ret_value = NULL;
|
||||
FUNC_ENTER_NOAPI_NOINIT_NOERR
|
||||
FUNC_LEAVE_NOAPI(ret_value)
|
||||
} /* H5FD_ros3_open() */
|
||||
|
||||
#endif /* H5_HAVE_ROS3_VFD */
|
||||
|
||||
#if ROS3_STATS
|
||||
|
||||
/*----------------------------------------------------------------------------
|
||||
@ -974,8 +933,6 @@ H5FD_ros3_open(
|
||||
*
|
||||
* Programmer: Jacob Smith
|
||||
*
|
||||
* Changes: None.
|
||||
*
|
||||
*----------------------------------------------------------------------------
|
||||
*/
|
||||
static herr_t
|
||||
@ -1228,12 +1185,8 @@ done:
|
||||
* Programmer: Jacob Smith
|
||||
* 2017-11-02
|
||||
*
|
||||
* Changes: None.
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
#ifdef H5_HAVE_ROS3_VFD
|
||||
|
||||
static herr_t
|
||||
H5FD_ros3_close(H5FD_t H5_ATTR_UNUSED *_file)
|
||||
{
|
||||
@ -1277,18 +1230,6 @@ done:
|
||||
|
||||
} /* end H5FD_ros3_close() */
|
||||
|
||||
#else /* H5_HAVE_ROS3_VFD not defined */
|
||||
|
||||
static herr_t
|
||||
H5FD_ros3_close(H5FD_t H5_ATTR_UNUSED *_file)
|
||||
{
|
||||
herr_t ret_value = FAIL;
|
||||
FUNC_ENTER_NOAPI_NOINIT_NOERR
|
||||
FUNC_LEAVE_NOAPI(ret_value)
|
||||
} /* end H5FD_ros3_close() */
|
||||
|
||||
#endif /* H5_HAVE_ROS3_VFD */
|
||||
|
||||
|
||||
/*-------------------------------------------------------------------------
|
||||
*
|
||||
@ -1318,17 +1259,8 @@ H5FD_ros3_close(H5FD_t H5_ATTR_UNUSED *_file)
|
||||
* Programmer: Jacob Smith
|
||||
* 2017-11-06
|
||||
*
|
||||
* Changes:
|
||||
*
|
||||
* + Change from strcmp-like return values (-1, 0, 1) to instead return
|
||||
* binary equivalence (0) or inequality (-1).
|
||||
* + Replace "if still equal then check this" waterfall with GOTO jumps.
|
||||
* Jacob Smith 2018-05-17
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
#ifdef H5_HAVE_ROS3_VFD
|
||||
|
||||
static int
|
||||
H5FD_ros3_cmp(
|
||||
const H5FD_t *_f1,
|
||||
@ -1463,20 +1395,6 @@ done:
|
||||
|
||||
} /* H5FD_ros3_cmp() */
|
||||
|
||||
#else /* H5_HAVE_ROS3_VFD not defined */
|
||||
|
||||
static int
|
||||
H5FD_ros3_cmp(
|
||||
const H5FD_t H5_ATTR_UNUSED *_f1,
|
||||
const H5FD_t H5_ATTR_UNUSED *_f2)
|
||||
{
|
||||
int ret_value = 0;
|
||||
FUNC_ENTER_NOAPI_NOINIT_NOERR
|
||||
FUNC_LEAVE_NOAPI(ret_value)
|
||||
} /* H5FD_ros3_cmp() */
|
||||
|
||||
#endif /* H5_HAVE_ROS3_VFD */
|
||||
|
||||
|
||||
/*-------------------------------------------------------------------------
|
||||
* Function: H5FD_ros3_query
|
||||
@ -1536,8 +1454,6 @@ H5FD_ros3_query(const H5FD_t H5_ATTR_UNUSED *_file,
|
||||
* Programmer: Jacob Smith
|
||||
* 2017-11-02
|
||||
*
|
||||
* Changes: None.
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
static haddr_t
|
||||
@ -1572,8 +1488,6 @@ H5FD_ros3_get_eoa(const H5FD_t *_file,
|
||||
* Programmer: Jacob Smith
|
||||
* 2017-11-03
|
||||
*
|
||||
* Changes: None.
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
static herr_t
|
||||
@ -1646,8 +1560,6 @@ H5FD_ros3_get_eof(const H5FD_t *_file,
|
||||
* Programmer: Jacob Smith
|
||||
* 2017-11-02
|
||||
*
|
||||
* Changes: None.
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
static herr_t
|
||||
@ -1696,8 +1608,6 @@ done:
|
||||
* Programmer: Jacob Smith
|
||||
* 2017-11-??
|
||||
*
|
||||
* Changes: None.
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
static herr_t
|
||||
@ -1792,8 +1702,6 @@ done:
|
||||
* Programmer: Jacob Smith
|
||||
* 2017-10-23
|
||||
*
|
||||
* Changes: None.
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
static herr_t
|
||||
@ -1839,8 +1747,6 @@ done:
|
||||
* Programmer: Jacob Smith
|
||||
* 2017-10-23
|
||||
*
|
||||
* Changes: None.
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
static herr_t
|
||||
@ -1884,8 +1790,6 @@ done:
|
||||
* Programmer: Jacob Smith
|
||||
* 2017-11-03
|
||||
*
|
||||
* Changes: None.
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
static herr_t
|
||||
@ -1914,8 +1818,6 @@ H5FD_ros3_lock(H5FD_t H5_ATTR_UNUSED *_file,
|
||||
* Programmer: Jacob Smith
|
||||
* 2017-11-03
|
||||
*
|
||||
* Changes: None.
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
static herr_t
|
||||
@ -1926,4 +1828,5 @@ H5FD_ros3_unlock(H5FD_t H5_ATTR_UNUSED *_file)
|
||||
|
||||
} /* end H5FD_ros3_unlock() */
|
||||
|
||||
#endif /* H5_HAVE_ROS3_VFD */
|
||||
|
||||
|
@ -21,11 +21,13 @@
|
||||
#ifndef H5FDros3_H
|
||||
#define H5FDros3_H
|
||||
|
||||
#define H5FD_ROS3 (H5FD_ros3_init())
|
||||
#ifdef H5_HAVE_ROS3_VFD
|
||||
#define H5FD_ROS3 (H5FD_ros3_init())
|
||||
#else
|
||||
#define H5FD_ROS3 (H5I_INVALID_HID)
|
||||
#endif /* H5_HAVE_ROS3_VFD */
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
#ifdef H5_HAVE_ROS3_VFD
|
||||
|
||||
/****************************************************************************
|
||||
*
|
||||
@ -46,7 +48,7 @@ extern "C" {
|
||||
* to the above calls must have a recognized version number, or an error
|
||||
* will be flagged.
|
||||
*
|
||||
* This field should be set to H5FD__CURR_ROS3_FAPL_T_VERSION.
|
||||
* This field should be set to H5FD_CURR_ROS3_FAPL_T_VERSION.
|
||||
*
|
||||
* `authenticate` (hbool_t)
|
||||
*
|
||||
@ -67,31 +69,27 @@ extern "C" {
|
||||
*
|
||||
* String: "Secret Access Key" associated with the ID and resource.
|
||||
*
|
||||
*
|
||||
*
|
||||
* Programmer: John Mainzer
|
||||
*
|
||||
* Changes:
|
||||
*
|
||||
* - Add documentation of fields (except `version`)
|
||||
* --- Jacob Smith 2017-12-04
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
#define H5FD__CURR_ROS3_FAPL_T_VERSION 1
|
||||
#define H5FD_CURR_ROS3_FAPL_T_VERSION 1
|
||||
|
||||
#define H5FD__ROS3_MAX_REGION_LEN 32
|
||||
#define H5FD__ROS3_MAX_SECRET_ID_LEN 128
|
||||
#define H5FD__ROS3_MAX_SECRET_KEY_LEN 128
|
||||
#define H5FD_ROS3_MAX_REGION_LEN 32
|
||||
#define H5FD_ROS3_MAX_SECRET_ID_LEN 128
|
||||
#define H5FD_ROS3_MAX_SECRET_KEY_LEN 128
|
||||
|
||||
typedef struct H5FD_ros3_fapl_t {
|
||||
int32_t version;
|
||||
hbool_t authenticate;
|
||||
char aws_region[H5FD__ROS3_MAX_REGION_LEN + 1];
|
||||
char secret_id[H5FD__ROS3_MAX_SECRET_ID_LEN + 1];
|
||||
char secret_key[H5FD__ROS3_MAX_SECRET_KEY_LEN + 1];
|
||||
char aws_region[H5FD_ROS3_MAX_REGION_LEN + 1];
|
||||
char secret_id[H5FD_ROS3_MAX_SECRET_ID_LEN + 1];
|
||||
char secret_key[H5FD_ROS3_MAX_SECRET_KEY_LEN + 1];
|
||||
} H5FD_ros3_fapl_t;
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
H5_DLL hid_t H5FD_ros3_init(void);
|
||||
H5_DLL herr_t H5Pget_fapl_ros3(hid_t fapl_id, H5FD_ros3_fapl_t * fa_out);
|
||||
H5_DLL herr_t H5Pset_fapl_ros3(hid_t fapl_id, H5FD_ros3_fapl_t * fa);
|
||||
@ -100,6 +98,8 @@ H5_DLL herr_t H5Pset_fapl_ros3(hid_t fapl_id, H5FD_ros3_fapl_t * fa);
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* H5_HAVE_ROS3_VFD */
|
||||
|
||||
#endif /* ifndef H5FDros3_H */
|
||||
|
||||
|
||||
|
@ -47,12 +47,12 @@
|
||||
/* Local Macros */
|
||||
/****************/
|
||||
|
||||
#ifdef H5_HAVE_ROS3_VFD
|
||||
|
||||
/* toggle debugging (enable with 1)
|
||||
*/
|
||||
#define S3COMMS_DEBUG 0
|
||||
|
||||
#ifdef H5_HAVE_ROS3_VFD
|
||||
|
||||
/* manipulate verbosity of CURL output
|
||||
* operates separately from S3COMMS_DEBUG
|
||||
*
|
||||
@ -67,7 +67,6 @@
|
||||
*/
|
||||
#define S3COMMS_MAX_RANGE_STRING_SIZE 128
|
||||
|
||||
#endif /* H5_HAVE_ROS3_VFD */
|
||||
|
||||
/******************/
|
||||
/* Local Typedefs */
|
||||
@ -137,8 +136,6 @@ herr_t H5FD_s3comms_s3r_getsize(s3r_t *handle);
|
||||
* Programmer: Jacob Smith
|
||||
* 2017-08-17
|
||||
*
|
||||
* Changes: None.
|
||||
*
|
||||
*----------------------------------------------------------------------------
|
||||
*/
|
||||
size_t
|
||||
@ -217,14 +214,6 @@ curlwritecallback(char *ptr,
|
||||
* Programmer: Jacob Smith
|
||||
* 2017-09-22
|
||||
*
|
||||
* Changes:
|
||||
*
|
||||
* - Change return value to herr_t
|
||||
* - Change list pointer to pointer-to-pointer-to-node
|
||||
* - Change to use singly-linked list (from twin doubly-linked lists)
|
||||
* with modification to hrb_node_t
|
||||
* --- Jake Smith 2017-01-17
|
||||
*
|
||||
*----------------------------------------------------------------------------
|
||||
*/
|
||||
herr_t
|
||||
@ -635,19 +624,6 @@ done:
|
||||
* Programmer: Jacob Smith
|
||||
* 2017-07-21
|
||||
*
|
||||
* Changes:
|
||||
*
|
||||
* - Conditional free() of `hrb_node_t` pointer properties based on
|
||||
* `which_free` property.
|
||||
* --- Jacob Smith 2017-08-08
|
||||
*
|
||||
* - Integrate with HDF5.
|
||||
* - Returns herr_t instead of nothing.
|
||||
* --- Jacob Smith 2017-09-21
|
||||
*
|
||||
* - Change argument to from *buf to **buf, to null pointer within call
|
||||
* --- Jacob Smith 2017-20-05
|
||||
*
|
||||
*----------------------------------------------------------------------------
|
||||
*/
|
||||
herr_t
|
||||
@ -709,25 +685,6 @@ done:
|
||||
* Programmer: Jacob Smith
|
||||
* 2017-07-21
|
||||
*
|
||||
* Changes:
|
||||
*
|
||||
* - Update struct membership for newer 'generic' `hrb_t` format.
|
||||
* --- Jacob Smith, 2017-07-24
|
||||
*
|
||||
* - Rename from `hrb_new()` to `hrb_request()`
|
||||
* --- Jacob Smith, 2017-07-25
|
||||
*
|
||||
* - Integrate with HDF5.
|
||||
* - Rename from 'hrb_request()` to `H5FD_s3comms_hrb_init_request()`.
|
||||
* - Remove `host` from input parameters.
|
||||
* - Host, as with all other fields, must now be added through the
|
||||
* add-field functions.
|
||||
* - Add `version` (HTTP version string, e.g. "HTTP/1.1") to parameters.
|
||||
* --- Jacob Smith 2017-09-20
|
||||
*
|
||||
* - Update to use linked-list `hrb_node_t` headers in structure.
|
||||
* --- Jacob Smith 2017-10-05
|
||||
*
|
||||
*----------------------------------------------------------------------------
|
||||
*/
|
||||
hrb_t *
|
||||
@ -842,64 +799,10 @@ done:
|
||||
} /* end H5FD_s3comms_hrb_init_request() */
|
||||
|
||||
|
||||
|
||||
/****************************************************************************
|
||||
* S3R FUNCTIONS
|
||||
****************************************************************************/
|
||||
|
||||
#ifndef H5_HAVE_ROS3_VFD
|
||||
/* No-op, auto-fail, unused-variable implementations if ROS3 is not enabled */
|
||||
|
||||
herr_t
|
||||
H5FD_s3comms_s3r_close(s3r_t H5_ATTR_UNUSED *handle)
|
||||
{
|
||||
herr_t ret_value = SUCCEED;
|
||||
FUNC_ENTER_NOAPI_NOINIT_NOERR
|
||||
FUNC_LEAVE_NOAPI(ret_value)
|
||||
} /* end H5FD_s3comms_s3r_close() */
|
||||
|
||||
size_t
|
||||
H5FD_s3comms_s3r_get_filesize(s3r_t H5_ATTR_UNUSED *handle)
|
||||
{
|
||||
size_t ret_value = 0;
|
||||
FUNC_ENTER_NOAPI_NOINIT_NOERR
|
||||
FUNC_LEAVE_NOAPI(ret_value)
|
||||
} /* end H5FD_s3comms_s3r_get_filesize() */
|
||||
|
||||
herr_t
|
||||
H5FD_s3comms_s3r_getsize(s3r_t H5_ATTR_UNUSED *handle)
|
||||
{
|
||||
herr_t ret_value = FAIL;
|
||||
FUNC_ENTER_NOAPI_NOINIT_NOERR
|
||||
FUNC_LEAVE_NOAPI(ret_value);
|
||||
} /* end H5FD_s3comms_s3r_getsize() */
|
||||
|
||||
s3r_t *
|
||||
H5FD_s3comms_s3r_open(
|
||||
const char H5_ATTR_UNUSED *url,
|
||||
const char H5_ATTR_UNUSED *region,
|
||||
const char H5_ATTR_UNUSED *id,
|
||||
const unsigned char H5_ATTR_UNUSED *signing_key)
|
||||
{
|
||||
s3r_t *ret_value = NULL;
|
||||
FUNC_ENTER_NOAPI_NOINIT_NOERR
|
||||
FUNC_LEAVE_NOAPI(ret_value)
|
||||
} /* end H5FD_s3comms_s3r_open() */
|
||||
|
||||
herr_t
|
||||
H5FD_s3comms_s3r_read(
|
||||
s3r_t H5_ATTR_UNUSED *handle,
|
||||
haddr_t H5_ATTR_UNUSED offset,
|
||||
size_t H5_ATTR_UNUSED len,
|
||||
void H5_ATTR_UNUSED *dest)
|
||||
{
|
||||
herr_t ret_value = FAIL;
|
||||
FUNC_ENTER_NOAPI_NOINIT_NOERR
|
||||
FUNC_LEAVE_NOAPI(ret_value);
|
||||
} /* end H5FD_s3comms_s3r_read() */
|
||||
|
||||
#else
|
||||
|
||||
|
||||
/*----------------------------------------------------------------------------
|
||||
*
|
||||
@ -920,20 +823,6 @@ H5FD_s3comms_s3r_read(
|
||||
* Programmer: Jacob Smith
|
||||
* 2017-08-31
|
||||
*
|
||||
* Changes:
|
||||
*
|
||||
* - Remove all messiness related to the now-gone "setopt" utility
|
||||
* as it no longer exists in the handle.
|
||||
* - Return type to `void`.
|
||||
* --- Jacob Smith 2017-09-01
|
||||
*
|
||||
* - Incorporate into HDF environment.
|
||||
* - Rename from `s3r_close()` to `H5FD_s3comms_s3r_close()`.
|
||||
* --- Jacob Smith 2017-10-06
|
||||
*
|
||||
* - Change separate host, resource, port info to `parsed_url_t` struct ptr.
|
||||
* --- Jacob Smith 2017-11-01
|
||||
*
|
||||
*----------------------------------------------------------------------------
|
||||
*/
|
||||
herr_t
|
||||
@ -995,8 +884,6 @@ done:
|
||||
*
|
||||
* Programmer: Jacob Smith 2017-01-14
|
||||
*
|
||||
* Changes: None
|
||||
*
|
||||
*----------------------------------------------------------------------------
|
||||
*/
|
||||
size_t
|
||||
@ -1044,44 +931,24 @@ H5FD_s3comms_s3r_get_filesize(s3r_t *handle)
|
||||
* Programmer: Jacob Smith
|
||||
* 2017-08-23
|
||||
*
|
||||
* Changes:
|
||||
*
|
||||
* - Update to revised `s3r_t` format and life cycle.
|
||||
* --- Jacob Smith 2017-09-01
|
||||
*
|
||||
* - Conditional change to static header buffer and structure.
|
||||
* --- Jacob Smith 2017-09-05
|
||||
*
|
||||
* - Incorporate into HDF environment.
|
||||
* - Rename from `s3r_getsize()` to `H5FD_s3comms_s3r_getsize()`.
|
||||
* --- Jacob Smith 2017-10-06
|
||||
*
|
||||
*----------------------------------------------------------------------------
|
||||
*/
|
||||
herr_t
|
||||
H5FD_s3comms_s3r_getsize(s3r_t *handle)
|
||||
{
|
||||
#ifdef H5_HAVE_ROS3_VFD
|
||||
uintmax_t content_length = 0;
|
||||
CURL *curlh = NULL;
|
||||
char *end = NULL;
|
||||
char *headerresponse = NULL;
|
||||
herr_t ret_value = SUCCEED;
|
||||
struct s3r_datastruct sds = {
|
||||
S3COMMS_CALLBACK_DATASTRUCT_MAGIC,
|
||||
NULL,
|
||||
0 };
|
||||
char *start = NULL;
|
||||
#else
|
||||
herr_t ret_value = FAIL;
|
||||
#endif /* H5_HAVE_ROS3_VFD */
|
||||
|
||||
|
||||
herr_t ret_value = SUCCEED;
|
||||
|
||||
FUNC_ENTER_NOAPI_NOINIT
|
||||
|
||||
#ifdef H5_HAVE_ROS3_VFD
|
||||
|
||||
#if S3COMMS_DEBUG
|
||||
HDfprintf(stdout, "called H5FD_s3comms_s3r_getsize.\n");
|
||||
#endif
|
||||
@ -1238,8 +1105,6 @@ done:
|
||||
H5MM_xfree(headerresponse);
|
||||
sds.magic += 1; /* set to bad magic */
|
||||
|
||||
#endif /* H5_HAVE_ROS3_VFD */
|
||||
|
||||
FUNC_LEAVE_NOAPI(ret_value);
|
||||
|
||||
} /* H5FD_s3comms_s3r_getsize */
|
||||
@ -1282,20 +1147,6 @@ done:
|
||||
* Programmer: Jacob Smith
|
||||
* 2017-09-01
|
||||
*
|
||||
* Changes:
|
||||
*
|
||||
* - Incorporate into HDF environment.
|
||||
* - Rename from `s3r_open()` to `H5FD_s3comms_s3r_open()`.
|
||||
* --- Jacob Smith 2017-10-06
|
||||
*
|
||||
* - Remove port number from signature.
|
||||
* - Name (`url`) must be complete url with http scheme and optional port
|
||||
* number in string.
|
||||
* - e.g., "http://bucket.aws.com:9000/myfile.dat?query=param"
|
||||
* - Internal storage of host, resource, and port information moved into
|
||||
* `parsed_url_t` struct pointer.
|
||||
* --- Jacob Smith 2017-11-01
|
||||
*
|
||||
*----------------------------------------------------------------------------
|
||||
*/
|
||||
s3r_t *
|
||||
@ -1304,20 +1155,14 @@ H5FD_s3comms_s3r_open(const char *url,
|
||||
const char *id,
|
||||
const unsigned char *signing_key)
|
||||
{
|
||||
#ifdef H5_HAVE_ROS3_VFD
|
||||
size_t tmplen = 0;
|
||||
CURL *curlh = NULL;
|
||||
s3r_t *handle = NULL;
|
||||
parsed_url_t *purl = NULL;
|
||||
#endif
|
||||
s3r_t *ret_value = NULL;
|
||||
|
||||
|
||||
|
||||
FUNC_ENTER_NOAPI_NOINIT
|
||||
|
||||
#ifdef H5_HAVE_ROS3_VFD
|
||||
|
||||
#if S3COMMS_DEBUG
|
||||
HDfprintf(stdout, "called H5FD_s3comms_s3r_open.\n");
|
||||
#endif
|
||||
@ -1492,11 +1337,9 @@ H5FD_s3comms_s3r_open(const char *url,
|
||||
HDmemcpy(handle->httpverb, "GET", 4);
|
||||
|
||||
ret_value = handle;
|
||||
#endif /* H5_HAVE_ROS3_VFD */
|
||||
|
||||
done:
|
||||
if (ret_value == NULL) {
|
||||
#ifdef H5_HAVE_ROS3_VFD
|
||||
if (curlh != NULL) {
|
||||
curl_easy_cleanup(curlh);
|
||||
}
|
||||
@ -1513,7 +1356,6 @@ done:
|
||||
}
|
||||
H5MM_xfree(handle);
|
||||
}
|
||||
#endif /* H5_HAVE_ROS3_VFD */
|
||||
}
|
||||
|
||||
FUNC_LEAVE_NOAPI(ret_value)
|
||||
@ -1560,29 +1402,6 @@ done:
|
||||
* Programmer: Jacob Smith
|
||||
* 2017-08-22
|
||||
*
|
||||
* Changes:
|
||||
*
|
||||
* - Revise structure to prevent unnecessary hrb_t element creation.
|
||||
* - Rename tmprstr -> rangebytesstr to reflect purpose.
|
||||
* - Insert needed `free()`s, particularly for `sds`.
|
||||
* --- Jacob Smith 2017-08-23
|
||||
*
|
||||
* - Revise heavily to accept buffer, range as parameters.
|
||||
* - Utilize modified s3r_t format.
|
||||
* --- Jacob Smith 2017-08-31
|
||||
*
|
||||
* - Incorporate into HDF library.
|
||||
* - Rename from `s3r_read()` to `H5FD_s3comms_s3r_read()`.
|
||||
* - Return `herr_t` succeed/fail instead of S3code.
|
||||
* - Update to use revised `hrb_t` and `hrb_node_t` structures.
|
||||
* --- Jacob Smith 2017-10-06
|
||||
*
|
||||
* - Update to use `parsed_url_t *purl` in handle.
|
||||
* --- Jacob Smith 2017-11-01
|
||||
*
|
||||
* - Better define behavior upon read past EOF
|
||||
* --- Jacob Smith 2017-01-19
|
||||
*
|
||||
*----------------------------------------------------------------------------
|
||||
*/
|
||||
herr_t
|
||||
@ -1591,7 +1410,6 @@ H5FD_s3comms_s3r_read(s3r_t *handle,
|
||||
size_t len,
|
||||
void *dest)
|
||||
{
|
||||
#ifdef H5_HAVE_ROS3_VFD
|
||||
CURL *curlh = NULL;
|
||||
CURLcode p_status = CURLE_OK;
|
||||
struct curl_slist *curlheaders = NULL;
|
||||
@ -1604,16 +1422,9 @@ H5FD_s3comms_s3r_read(s3r_t *handle,
|
||||
/* return value of HDsnprintf */
|
||||
struct s3r_datastruct *sds = NULL;
|
||||
herr_t ret_value = SUCCEED;
|
||||
#else
|
||||
herr_t ret_value = FAIL;
|
||||
#endif /* H5_HAVE_ROS3_VFD */
|
||||
|
||||
|
||||
|
||||
FUNC_ENTER_NOAPI_NOINIT
|
||||
|
||||
#ifdef H5_HAVE_ROS3_VFD
|
||||
|
||||
#if S3COMMS_DEBUG
|
||||
HDfprintf(stdout, "called H5FD_s3comms_s3r_read.\n");
|
||||
#endif
|
||||
@ -2105,12 +1916,9 @@ done:
|
||||
}
|
||||
}
|
||||
|
||||
#endif /* H5_HAVE_ROS3_VFD */
|
||||
|
||||
FUNC_LEAVE_NOAPI(ret_value);
|
||||
} /* H5FD_s3comms_s3r_read */
|
||||
|
||||
#endif /* H5_HAVE_ROS3_VFD */
|
||||
|
||||
/****************************************************************************
|
||||
* MISCELLANEOUS FUNCTIONS
|
||||
@ -2133,8 +1941,6 @@ done:
|
||||
* Programmer: Jacob Smith
|
||||
* 2017-07-12
|
||||
*
|
||||
* Changes: None.
|
||||
*
|
||||
*----------------------------------------------------------------------------
|
||||
*/
|
||||
struct tm *
|
||||
@ -2192,8 +1998,6 @@ gmnow(void)
|
||||
* Programmer: Jacob Smith
|
||||
* 2017-10-04
|
||||
*
|
||||
* Changes: None.
|
||||
*
|
||||
*----------------------------------------------------------------------------
|
||||
*/
|
||||
herr_t
|
||||
@ -2362,20 +2166,6 @@ done:
|
||||
* Programmer: Jacob Smith
|
||||
* 2017-07-12
|
||||
*
|
||||
* Changes:
|
||||
*
|
||||
* - Integrate into HDF.
|
||||
* - Rename from hex() to H5FD_s3comms_bytes_to_hex.
|
||||
* - Change return type from `void` to `herr_t`.
|
||||
* --- Jacob Smtih 2017-09-14
|
||||
*
|
||||
* - Add bool parameter `lowercase` to configure upper/lowercase output
|
||||
* of a-f hex characters.
|
||||
* --- Jacob Smith 2017-09-19
|
||||
*
|
||||
* - Change bool type to `hbool_t`
|
||||
* --- Jacob Smtih 2017-10-11
|
||||
*
|
||||
*----------------------------------------------------------------------------
|
||||
*/
|
||||
herr_t
|
||||
@ -2438,8 +2228,6 @@ done:
|
||||
* Programmer: Jacob Smith
|
||||
* 2017-11-01
|
||||
*
|
||||
* Changes: None.
|
||||
*
|
||||
*----------------------------------------------------------------------------
|
||||
*/
|
||||
herr_t
|
||||
@ -2494,22 +2282,8 @@ H5FD_s3comms_free_purl(parsed_url_t *purl)
|
||||
* Programmer: Jacob Smith
|
||||
* 2017-07-??
|
||||
*
|
||||
* Changes:
|
||||
*
|
||||
* - Integrate with HDF5.
|
||||
* - Rename from `HMAC_SHA256` to `H5FD_s3comms_HMAC_SHA256`.
|
||||
* - Rename output parameter from `md` to `dest`.
|
||||
* - Return `herr_t` type instead of `void`.
|
||||
* - Call `H5FD_s3comms_bytes_to_hex` to generate hex cleartext for output.
|
||||
* --- Jacob Smith 2017-09-19
|
||||
*
|
||||
* - Use static char array instead of malloc'ing `md`
|
||||
* --- Jacob Smith 2017-10-10
|
||||
*
|
||||
*----------------------------------------------------------------------------
|
||||
*/
|
||||
#ifdef H5_HAVE_ROS3_VFD
|
||||
|
||||
herr_t
|
||||
H5FD_s3comms_HMAC_SHA256(
|
||||
const unsigned char *key,
|
||||
@ -2556,23 +2330,6 @@ done:
|
||||
FUNC_LEAVE_NOAPI(ret_value);
|
||||
} /* H5FD_s3comms_HMAC_SHA256 */
|
||||
|
||||
#else /* H5_HAVE_ROS3_VFD not defined */
|
||||
|
||||
herr_t
|
||||
H5FD_s3comms_HMAC_SHA256(
|
||||
const unsigned char H5_ATTR_UNUSED *key,
|
||||
size_t H5_ATTR_UNUSED key_len,
|
||||
const char H5_ATTR_UNUSED *msg,
|
||||
size_t H5_ATTR_UNUSED msg_len,
|
||||
char H5_ATTR_UNUSED *dest)
|
||||
{
|
||||
herr_t ret_value = FAIL;
|
||||
FUNC_ENTER_NOAPI_NOINIT_NOERR
|
||||
FUNC_LEAVE_NOAPI(ret_value);
|
||||
} /* end H5FD_s3comms_HMAC_SHA256() */
|
||||
|
||||
#endif /* H5_HAVE_ROS3_VFD */
|
||||
|
||||
|
||||
/*-----------------------------------------------------------------------------
|
||||
*
|
||||
@ -2621,8 +2378,6 @@ H5FD_s3comms_HMAC_SHA256(
|
||||
* Programmer: Jacob Smith
|
||||
* 2018-02-27
|
||||
*
|
||||
* Changes: None
|
||||
*
|
||||
*-----------------------------------------------------------------------------
|
||||
*/
|
||||
static herr_t
|
||||
@ -2781,8 +2536,6 @@ done:
|
||||
* Programmer: Jacob Smith
|
||||
* 2018-02-27
|
||||
*
|
||||
* Changes: None
|
||||
*
|
||||
*----------------------------------------------------------------------------
|
||||
*/
|
||||
herr_t
|
||||
@ -2903,8 +2656,6 @@ done:
|
||||
* Programmer: Jacob Smith
|
||||
* 2017-09-18
|
||||
*
|
||||
* Changes: None.
|
||||
*
|
||||
*----------------------------------------------------------------------------
|
||||
*/
|
||||
herr_t
|
||||
@ -2968,8 +2719,6 @@ done:
|
||||
* Programmer: Jacob Smith
|
||||
* 2017-10-30
|
||||
*
|
||||
* Changes: None.
|
||||
*
|
||||
*----------------------------------------------------------------------------
|
||||
*/
|
||||
herr_t
|
||||
@ -3242,12 +2991,6 @@ done:
|
||||
*
|
||||
* Programmer: Jacob Smith
|
||||
*
|
||||
* Changes:
|
||||
*
|
||||
* - Integrate into HDF.
|
||||
* - Rename from `hexutf8` to `H5FD_s3comms_percent_encode_char`.
|
||||
* --- Jacob Smith 2017-09-15
|
||||
*
|
||||
*----------------------------------------------------------------------------
|
||||
*/
|
||||
herr_t
|
||||
@ -3421,19 +3164,8 @@ done:
|
||||
* Programmer: Jacob Smith
|
||||
* 2017-07-13
|
||||
*
|
||||
* Changes:
|
||||
*
|
||||
* - Integrate into HDF5.
|
||||
* - Return herr_t type.
|
||||
* --- Jacob Smith 2017-09-18
|
||||
*
|
||||
* - NULL check and fail of input parameters.
|
||||
* --- Jacob Smith 2017-10-10
|
||||
*
|
||||
*----------------------------------------------------------------------------
|
||||
*/
|
||||
#ifdef H5_HAVE_ROS3_VFD
|
||||
|
||||
herr_t
|
||||
H5FD_s3comms_signing_key(
|
||||
unsigned char *md,
|
||||
@ -3526,22 +3258,6 @@ done:
|
||||
FUNC_LEAVE_NOAPI(ret_value);
|
||||
} /* end H5FD_s3comms_signing_key() */
|
||||
|
||||
#else /* H5_HAVE_ROS3_VFD not defined */
|
||||
|
||||
herr_t
|
||||
H5FD_s3comms_signing_key(
|
||||
unsigned char H5_ATTR_UNUSED *md,
|
||||
const char H5_ATTR_UNUSED *secret,
|
||||
const char H5_ATTR_UNUSED *region,
|
||||
const char H5_ATTR_UNUSED *iso8601now)
|
||||
{
|
||||
herr_t ret_value = SUCCEED;
|
||||
FUNC_ENTER_NOAPI_NOINIT_NOERR;
|
||||
FUNC_LEAVE_NOAPI(ret_value);
|
||||
} /* end H5FD_s3comms_signing_key() */
|
||||
|
||||
#endif /* H5_HAVE_ROS3_VFD */
|
||||
|
||||
|
||||
/*----------------------------------------------------------------------------
|
||||
*
|
||||
@ -3577,20 +3293,8 @@ H5FD_s3comms_signing_key(
|
||||
* Programmer: Jacob Smith
|
||||
* 2017-07-??
|
||||
*
|
||||
* Changes:
|
||||
*
|
||||
* - Integrate with HDF5.
|
||||
* - Rename from `tostringtosign` to `H5FD_s3comms_tostringtosign`.
|
||||
* - Return `herr_t` instead of characters written.
|
||||
* - Use HDF-friendly bytes-to-hex function (`H5FD_s3comms_bytes_to_hex`)
|
||||
* instead of general-purpose, deprecated `hex()`.
|
||||
* - Adjust casts to openssl's `SHA256`.
|
||||
* - Input strings are now `const`.
|
||||
* --- Jacob Smith 2017-09-19
|
||||
*
|
||||
*----------------------------------------------------------------------------
|
||||
*/
|
||||
#ifdef H5_HAVE_ROS3_VFD
|
||||
herr_t
|
||||
H5FD_s3comms_tostringtosign(
|
||||
char *dest,
|
||||
@ -3681,22 +3385,6 @@ done:
|
||||
FUNC_LEAVE_NOAPI(ret_value)
|
||||
} /* end H5ros3_tostringtosign() */
|
||||
|
||||
#else /* H5_HAVE_ROS3_VFD not defined */
|
||||
|
||||
herr_t
|
||||
H5FD_s3comms_tostringtosign(
|
||||
char H5_ATTR_UNUSED *dest,
|
||||
const char H5_ATTR_UNUSED *req,
|
||||
const char H5_ATTR_UNUSED *now,
|
||||
const char H5_ATTR_UNUSED *region)
|
||||
{
|
||||
herr_t ret_value = FAIL;
|
||||
FUNC_ENTER_NOAPI_NOINIT_NOERR
|
||||
FUNC_LEAVE_NOAPI(ret_value)
|
||||
} /* end H5ros3_tostringtosign() */
|
||||
|
||||
#endif /* H5_HAVE_ROS3_VFD */
|
||||
|
||||
|
||||
/*----------------------------------------------------------------------------
|
||||
*
|
||||
@ -3725,13 +3413,6 @@ H5FD_s3comms_tostringtosign(
|
||||
* Programmer: Jacob Smith
|
||||
* 2017-09-18
|
||||
*
|
||||
* Changes:
|
||||
*
|
||||
* - Rename from `trim()` to `H5FD_s3comms_trim()`.
|
||||
* - Incorporate into HDF5.
|
||||
* - Returns `herr_t` type.
|
||||
* --- Jacob Smith 2017-??-??
|
||||
*
|
||||
*----------------------------------------------------------------------------
|
||||
*/
|
||||
herr_t
|
||||
@ -3826,16 +3507,6 @@ done:
|
||||
* Programmer: Jacob Smith
|
||||
* 2017-07-??
|
||||
*
|
||||
* Changes:
|
||||
*
|
||||
* - Integrate to HDF environment.
|
||||
* - Rename from `uriencode` to `H5FD_s3comms_uriencode`.
|
||||
* - Change return from characters written to herr_t;
|
||||
* move to i/o parameter `n_written`.
|
||||
* - No longer append null-terminator to string;
|
||||
* programmer may append or not as appropriate upon return.
|
||||
* --- Jacob Smith 2017-09-15
|
||||
*
|
||||
*----------------------------------------------------------------------------
|
||||
*/
|
||||
herr_t
|
||||
@ -3915,4 +3586,5 @@ done:
|
||||
FUNC_LEAVE_NOAPI(ret_value)
|
||||
} /* H5FD_s3comms_uriencode */
|
||||
|
||||
#endif /* H5_HAVE_ROS3_VFD */
|
||||
|
||||
|
@ -52,18 +52,15 @@
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
#include <ctype.h>
|
||||
#include <stddef.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <time.h>
|
||||
#include "H5private.h" /* Generic Functions */
|
||||
|
||||
#ifdef H5_HAVE_ROS3_VFD
|
||||
|
||||
/* Necessary S3 headers */
|
||||
#include <curl/curl.h>
|
||||
#include <openssl/evp.h>
|
||||
#include <openssl/hmac.h>
|
||||
#include <openssl/sha.h>
|
||||
#endif /* ifdef H5_HAVE_ROS3_VFD */
|
||||
|
||||
/*****************
|
||||
* PUBLIC MACROS *
|
||||
@ -99,9 +96,6 @@
|
||||
* It is left to the programmer to check return value of
|
||||
* ISO8601NOW (should equal ISO8601_SIZE - 1).
|
||||
*
|
||||
* Programmer: Jacob Smith
|
||||
* 2017-07-??
|
||||
*
|
||||
*---------------------------------------------------------------------------
|
||||
*/
|
||||
#define ISO8601NOW(dest, now_gm) \
|
||||
@ -121,9 +115,6 @@ strftime((dest), ISO8601_SIZE, "%Y%m%dT%H%M%SZ", (now_gm))
|
||||
* It is left to the programmer to check return value of
|
||||
* RFC7231NOW (should equal RFC7231_SIZE - 1).
|
||||
*
|
||||
* Programmer: Jacob Smith
|
||||
* 2017-07-??
|
||||
*
|
||||
*---------------------------------------------------------------------------
|
||||
*/
|
||||
#define RFC7231NOW(dest, now_gm) \
|
||||
@ -169,11 +160,6 @@ strftime((dest), RFC7231_SIZE, "%a, %d %b %Y %H:%M:%S GMT", (now_gm))
|
||||
* `region` should be relevant AWS region, i.e. "us-east-1".
|
||||
* `service` should be "s3".
|
||||
*
|
||||
* Programmer: Jacob Smith
|
||||
* 2017-09-19
|
||||
*
|
||||
* Changes: None.
|
||||
*
|
||||
*---------------------------------------------------------------------------
|
||||
*/
|
||||
#define S3COMMS_FORMAT_CREDENTIAL(dest, access, iso8601_date, region, service) \
|
||||
@ -266,16 +252,6 @@ HDsnprintf((dest), S3COMMS_MAX_CREDENTIAL_SIZE,
|
||||
* Pointers to next node in the list, or NULL sentinel as end of list.
|
||||
* Next node must have a greater `lowername` as determined by strcmp().
|
||||
*
|
||||
*
|
||||
*
|
||||
* Programmer: Jacob Smith
|
||||
* 2017-09-22
|
||||
*
|
||||
* Changes:
|
||||
*
|
||||
* - Change from twin doubly-linked lists to singly-linked list.
|
||||
* --- Jake Smith 2017-01-17
|
||||
*
|
||||
*----------------------------------------------------------------------------
|
||||
*/
|
||||
typedef struct hrb_node_t {
|
||||
@ -353,10 +329,6 @@ typedef struct hrb_node_t {
|
||||
*
|
||||
* Pointer to HTTP version string, e.g., "HTTP/1.1".
|
||||
*
|
||||
*
|
||||
*
|
||||
* Programmer: Jacob Smith
|
||||
*
|
||||
*----------------------------------------------------------------------------
|
||||
*/
|
||||
typedef struct {
|
||||
@ -421,10 +393,6 @@ typedef struct {
|
||||
* Single string of all query parameters in url (if any).
|
||||
* "arg1=value1&arg2=value2"
|
||||
*
|
||||
*
|
||||
*
|
||||
* Programmer: Jacob Smith
|
||||
*
|
||||
*----------------------------------------------------------------------------
|
||||
*/
|
||||
typedef struct {
|
||||
@ -514,15 +482,10 @@ typedef struct {
|
||||
*
|
||||
* Requred to authenticate.
|
||||
*
|
||||
*
|
||||
*
|
||||
* Programmer: Jacob Smith
|
||||
*
|
||||
*----------------------------------------------------------------------------
|
||||
*/
|
||||
typedef struct {
|
||||
unsigned long magic;
|
||||
#ifdef H5_HAVE_ROS3_VFD
|
||||
CURL *curlhandle;
|
||||
size_t filesize;
|
||||
char *httpverb;
|
||||
@ -530,17 +493,21 @@ typedef struct {
|
||||
char *region;
|
||||
char *secret_id;
|
||||
unsigned char *signing_key;
|
||||
#endif /* ifdef H5_HAVE_ROS3_VFD */
|
||||
} s3r_t;
|
||||
|
||||
#define S3COMMS_S3R_MAGIC 0x44d8d79
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*******************************************
|
||||
* DECLARATION OF HTTP FIELD LIST ROUTINES *
|
||||
*******************************************/
|
||||
|
||||
H5_DLL herr_t H5FD_s3comms_hrb_node_set(hrb_node_t **L,
|
||||
const char *name,
|
||||
const char *value);
|
||||
const char *name,
|
||||
const char *value);
|
||||
|
||||
/***********************************************
|
||||
* DECLARATION OF HTTP REQUEST BUFFER ROUTINES *
|
||||
@ -549,8 +516,8 @@ H5_DLL herr_t H5FD_s3comms_hrb_node_set(hrb_node_t **L,
|
||||
H5_DLL herr_t H5FD_s3comms_hrb_destroy(hrb_t **buf);
|
||||
|
||||
H5_DLL hrb_t * H5FD_s3comms_hrb_init_request(const char *verb,
|
||||
const char *resource,
|
||||
const char *host);
|
||||
const char *resource,
|
||||
const char *host);
|
||||
|
||||
/*************************************
|
||||
* DECLARATION OF S3REQUEST ROUTINES *
|
||||
@ -577,39 +544,39 @@ H5_DLL herr_t H5FD_s3comms_s3r_read(s3r_t *handle,
|
||||
H5_DLL struct tm * gmnow(void);
|
||||
|
||||
H5_DLL herr_t H5FD_s3comms_aws_canonical_request(char *canonical_request_dest,
|
||||
int cr_size,
|
||||
char *signed_headers_dest,
|
||||
int sh_size,
|
||||
hrb_t *http_request);
|
||||
int cr_size,
|
||||
char *signed_headers_dest,
|
||||
int sh_size,
|
||||
hrb_t *http_request);
|
||||
|
||||
H5_DLL herr_t H5FD_s3comms_bytes_to_hex(char *dest,
|
||||
const unsigned char *msg,
|
||||
size_t msg_len,
|
||||
hbool_t lowercase);
|
||||
const unsigned char *msg,
|
||||
size_t msg_len,
|
||||
hbool_t lowercase);
|
||||
|
||||
H5_DLL herr_t H5FD_s3comms_free_purl(parsed_url_t *purl);
|
||||
|
||||
H5_DLL herr_t H5FD_s3comms_HMAC_SHA256(const unsigned char *key,
|
||||
size_t key_len,
|
||||
const char *msg,
|
||||
size_t msg_len,
|
||||
char *dest);
|
||||
size_t key_len,
|
||||
const char *msg,
|
||||
size_t msg_len,
|
||||
char *dest);
|
||||
|
||||
H5_DLL herr_t H5FD_s3comms_load_aws_profile(const char *name,
|
||||
char *key_id_out,
|
||||
char *secret_access_key_out,
|
||||
char *aws_region_out);
|
||||
char *key_id_out,
|
||||
char *secret_access_key_out,
|
||||
char *aws_region_out);
|
||||
|
||||
H5_DLL herr_t H5FD_s3comms_nlowercase(char *dest,
|
||||
const char *s,
|
||||
size_t len);
|
||||
const char *s,
|
||||
size_t len);
|
||||
|
||||
H5_DLL herr_t H5FD_s3comms_parse_url(const char *str,
|
||||
parsed_url_t **purl);
|
||||
parsed_url_t **purl);
|
||||
|
||||
H5_DLL herr_t H5FD_s3comms_percent_encode_char(char *repr,
|
||||
const unsigned char c,
|
||||
size_t *repr_len);
|
||||
const unsigned char c,
|
||||
size_t *repr_len);
|
||||
|
||||
H5_DLL herr_t H5FD_s3comms_signing_key(unsigned char *md,
|
||||
const char *secret,
|
||||
@ -617,19 +584,21 @@ H5_DLL herr_t H5FD_s3comms_signing_key(unsigned char *md,
|
||||
const char *iso8601now);
|
||||
|
||||
H5_DLL herr_t H5FD_s3comms_tostringtosign(char *dest,
|
||||
const char *req_str,
|
||||
const char *now,
|
||||
const char *region);
|
||||
const char *req_str,
|
||||
const char *now,
|
||||
const char *region);
|
||||
|
||||
H5_DLL herr_t H5FD_s3comms_trim(char *dest,
|
||||
char *s,
|
||||
size_t s_len,
|
||||
size_t *n_written);
|
||||
char *s,
|
||||
size_t s_len,
|
||||
size_t *n_written);
|
||||
|
||||
H5_DLL herr_t H5FD_s3comms_uriencode(char *dest,
|
||||
const char *s,
|
||||
size_t s_len,
|
||||
hbool_t encode_slash,
|
||||
size_t *n_written);
|
||||
H5_DLL herr_t H5FD_s3comms_uriencode(char *dest, const char *s, size_t s_len,
|
||||
hbool_t encode_slash, size_t *n_written);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* H5_HAVE_ROS3_VFD */
|
||||
|
||||
|
@ -62,9 +62,8 @@ libhdf5_la_SOURCES= H5.c H5checksum.c H5dbg.c H5system.c H5timer.c H5trace.c \
|
||||
H5Fsfile.c H5Fspace.c H5Fsuper.c H5Fsuper_cache.c H5Ftest.c \
|
||||
H5FA.c H5FAcache.c H5FAdbg.c H5FAdblock.c H5FAdblkpage.c H5FAhdr.c \
|
||||
H5FAint.c H5FAstat.c H5FAtest.c \
|
||||
H5FD.c H5FDcore.c \
|
||||
H5FDfamily.c H5FDhdfs.c H5FDint.c H5FDlog.c H5FDs3comms.c \
|
||||
H5FDmulti.c H5FDros3.c H5FDsec2.c H5FDspace.c H5FDstdio.c H5FDtest.c \
|
||||
H5FD.c H5FDcore.c H5FDfamily.c H5FDhdfs.c H5FDint.c H5FDlog.c \
|
||||
H5FDmulti.c H5FDsec2.c H5FDspace.c H5FDstdio.c H5FDtest.c \
|
||||
H5FL.c H5FO.c H5FS.c H5FScache.c H5FSdbg.c H5FSint.c H5FSsection.c \
|
||||
H5FSstat.c H5FStest.c \
|
||||
H5G.c H5Gbtree2.c H5Gcache.c \
|
||||
@ -134,6 +133,11 @@ if DIRECT_VFD_CONDITIONAL
|
||||
libhdf5_la_SOURCES += H5FDdirect.c
|
||||
endif
|
||||
|
||||
# Only compile the read-only S3 VFD if necessary
|
||||
if ROS3_VFD_CONDITIONAL
|
||||
libhdf5_la_SOURCES += H5FDros3.c H5FDs3comms.c
|
||||
endif
|
||||
|
||||
# Public headers
|
||||
include_HEADERS = hdf5.h H5api_adpt.h H5overflow.h H5pubconf.h H5public.h H5version.h \
|
||||
H5Apublic.h H5ACpublic.h \
|
||||
|
151
test/ros3.c
151
test/ros3.c
@ -30,10 +30,9 @@
|
||||
#include "H5FDros3.h" /* this file driver's utilities */
|
||||
#include "H5FDs3comms.h" /* for loading of credentials */
|
||||
|
||||
|
||||
#ifdef H5_HAVE_ROS3_VFD
|
||||
|
||||
/* only include the testing macros if needed */
|
||||
#ifdef H5_HAVE_ROS3_VFD
|
||||
|
||||
/*****************************************************************************
|
||||
*
|
||||
@ -371,14 +370,10 @@ if (strcmp((actual), (expected)) != 0) { \
|
||||
|
||||
#endif /* ifdef/else JSVERIFY_EXP_ACT */
|
||||
|
||||
#endif /* H5_HAVE_ROS3_VFD */
|
||||
|
||||
/********************************
|
||||
* OTHER MACROS AND DEFINITIONS *
|
||||
********************************/
|
||||
|
||||
#ifdef H5_HAVE_ROS3_VFD
|
||||
|
||||
#define MAXADDR (((haddr_t)1<<(8*sizeof(HDoff_t)-1))-1)
|
||||
|
||||
#define S3_TEST_PROFILE_NAME "ros3_vfd_test"
|
||||
@ -408,16 +403,15 @@ static char s3_test_aws_access_key_id[64];
|
||||
static char s3_test_aws_secret_access_key[128];
|
||||
|
||||
H5FD_ros3_fapl_t restricted_access_fa = {
|
||||
H5FD__CURR_ROS3_FAPL_T_VERSION, /* fapl version */
|
||||
H5FD_CURR_ROS3_FAPL_T_VERSION, /* fapl version */
|
||||
TRUE, /* authenticate */
|
||||
"", /* aws region */
|
||||
"", /* access key id */
|
||||
""}; /* secret access key */
|
||||
|
||||
H5FD_ros3_fapl_t anonymous_fa = {
|
||||
H5FD__CURR_ROS3_FAPL_T_VERSION,
|
||||
H5FD_CURR_ROS3_FAPL_T_VERSION,
|
||||
FALSE, "", "", "" };
|
||||
#endif /* H5_HAVE_ROS3_VFD */
|
||||
|
||||
|
||||
/*---------------------------------------------------------------------------
|
||||
@ -437,21 +431,11 @@ H5FD_ros3_fapl_t anonymous_fa = {
|
||||
* Programmer: Jacob Smith
|
||||
* 2017-10-23
|
||||
*
|
||||
* Changes: None.
|
||||
*
|
||||
*---------------------------------------------------------------------------
|
||||
*/
|
||||
static int
|
||||
test_fapl_config_validation(void)
|
||||
{
|
||||
#ifndef H5_HAVE_ROS3_VFD
|
||||
TESTING("ROS3 fapl configuration validation");
|
||||
SKIPPED();
|
||||
puts(" ROS3 VFD not enabled");
|
||||
fflush(stdout);
|
||||
return 0;
|
||||
|
||||
#else /* H5_HAVE_ROS3_VFD defined */
|
||||
|
||||
/*********************
|
||||
* test-local macros *
|
||||
@ -483,7 +467,7 @@ test_fapl_config_validation(void)
|
||||
struct testcase cases_arr[] = {
|
||||
{ "non-authenticating config allows empties.\n",
|
||||
SUCCEED,
|
||||
{ H5FD__CURR_ROS3_FAPL_T_VERSION, /* version */
|
||||
{ H5FD_CURR_ROS3_FAPL_T_VERSION, /* version */
|
||||
FALSE, /* authenticate */
|
||||
"", /* aws_region */
|
||||
"", /* secret_id */
|
||||
@ -492,7 +476,7 @@ test_fapl_config_validation(void)
|
||||
},
|
||||
{ "authenticating config asks for populated strings.\n",
|
||||
FAIL,
|
||||
{ H5FD__CURR_ROS3_FAPL_T_VERSION,
|
||||
{ H5FD_CURR_ROS3_FAPL_T_VERSION,
|
||||
TRUE,
|
||||
"",
|
||||
"",
|
||||
@ -501,7 +485,7 @@ test_fapl_config_validation(void)
|
||||
},
|
||||
{ "populated strings; key is the empty string?\n",
|
||||
SUCCEED,
|
||||
{ H5FD__CURR_ROS3_FAPL_T_VERSION,
|
||||
{ H5FD_CURR_ROS3_FAPL_T_VERSION,
|
||||
TRUE,
|
||||
"region",
|
||||
"me",
|
||||
@ -510,7 +494,7 @@ test_fapl_config_validation(void)
|
||||
},
|
||||
{ "id cannot be empty.\n",
|
||||
FAIL,
|
||||
{ H5FD__CURR_ROS3_FAPL_T_VERSION,
|
||||
{ H5FD_CURR_ROS3_FAPL_T_VERSION,
|
||||
TRUE,
|
||||
"",
|
||||
"me",
|
||||
@ -519,7 +503,7 @@ test_fapl_config_validation(void)
|
||||
},
|
||||
{ "region cannot be empty.\n",
|
||||
FAIL,
|
||||
{ H5FD__CURR_ROS3_FAPL_T_VERSION,
|
||||
{ H5FD_CURR_ROS3_FAPL_T_VERSION,
|
||||
TRUE,
|
||||
"where",
|
||||
"",
|
||||
@ -528,7 +512,7 @@ test_fapl_config_validation(void)
|
||||
},
|
||||
{ "all strings populated.\n",
|
||||
SUCCEED,
|
||||
{ H5FD__CURR_ROS3_FAPL_T_VERSION,
|
||||
{ H5FD_CURR_ROS3_FAPL_T_VERSION,
|
||||
TRUE,
|
||||
"where",
|
||||
"who",
|
||||
@ -547,7 +531,7 @@ test_fapl_config_validation(void)
|
||||
{ "non-authenticating config cares not for (de)population"
|
||||
"of strings.\n",
|
||||
SUCCEED,
|
||||
{ H5FD__CURR_ROS3_FAPL_T_VERSION,
|
||||
{ H5FD_CURR_ROS3_FAPL_T_VERSION,
|
||||
FALSE,
|
||||
"someregion",
|
||||
"someid",
|
||||
@ -603,7 +587,7 @@ test_fapl_config_validation(void)
|
||||
H5Pget_fapl_ros3(fapl_id, &fa_fetch),
|
||||
"unable to get fapl" )
|
||||
|
||||
JSVERIFY( H5FD__CURR_ROS3_FAPL_T_VERSION,
|
||||
JSVERIFY( H5FD_CURR_ROS3_FAPL_T_VERSION,
|
||||
fa_fetch.version,
|
||||
"invalid version number" )
|
||||
JSVERIFY( config.version,
|
||||
@ -646,8 +630,6 @@ error:
|
||||
} H5E_END_TRY;
|
||||
}
|
||||
return 1;
|
||||
#endif /* H5_HAVE_ROS3_VFD */
|
||||
|
||||
} /* test_fapl_config_validation */
|
||||
|
||||
|
||||
@ -670,23 +652,11 @@ error:
|
||||
* Programmer: John Mainzer
|
||||
* 7/12/17
|
||||
*
|
||||
* Changes: Test only fapl and flags.
|
||||
* Jacob Smith 2017
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
static int
|
||||
test_ros3_fapl(void)
|
||||
{
|
||||
#ifndef H5_HAVE_ROS3_VFD
|
||||
TESTING("ROS3 fapl ");
|
||||
SKIPPED();
|
||||
puts(" ROS3 VFD not enabled");
|
||||
fflush(stdout);
|
||||
return 0;
|
||||
|
||||
#else /* H5_HAVE_ROS3 defined */
|
||||
|
||||
/************************
|
||||
* test-local variables *
|
||||
************************/
|
||||
@ -695,7 +665,7 @@ test_ros3_fapl(void)
|
||||
hid_t driver_id = -1; /* ID for this VFD */
|
||||
unsigned long driver_flags = 0; /* VFD feature flags */
|
||||
H5FD_ros3_fapl_t ros3_fa_0 = {
|
||||
H5FD__CURR_ROS3_FAPL_T_VERSION, /* version */
|
||||
H5FD_CURR_ROS3_FAPL_T_VERSION, /* version */
|
||||
FALSE, /* authenticate */
|
||||
"", /* aws_region */
|
||||
"", /* secret_id */
|
||||
@ -737,7 +707,6 @@ error:
|
||||
} H5E_END_TRY;
|
||||
|
||||
return 1;
|
||||
#endif /* H5_HAVE_ROS3_VFD */
|
||||
|
||||
} /* test_ros3_fapl() */
|
||||
|
||||
@ -763,14 +732,6 @@ error:
|
||||
static int
|
||||
test_vfd_open(void)
|
||||
{
|
||||
#ifndef H5_HAVE_ROS3_VFD
|
||||
TESTING("ROS3 VFD-level open");
|
||||
SKIPPED();
|
||||
puts(" ROS3 VFD not enabled");
|
||||
fflush(stdout);
|
||||
return 0;
|
||||
|
||||
#else /* H5_HAVE_ROS3_VFD defined */
|
||||
|
||||
/*********************
|
||||
* test-local macros *
|
||||
@ -967,8 +928,6 @@ error:
|
||||
#undef FAPL_H5P_DEFAULT
|
||||
#undef FAPL_ROS3_ANON
|
||||
|
||||
#endif /* H5_HAVE_ROS3_VFD */
|
||||
|
||||
} /* test_vfd_open */
|
||||
|
||||
|
||||
@ -993,14 +952,6 @@ error:
|
||||
static int
|
||||
test_eof_eoa(void)
|
||||
{
|
||||
#ifndef H5_HAVE_ROS3_VFD
|
||||
TESTING("ROS3 eof/eoa gets and sets");
|
||||
SKIPPED();
|
||||
puts(" ROS3 VFD not enabled");
|
||||
fflush(stdout);
|
||||
return 0;
|
||||
|
||||
#else /* H5_HAVE_ROS3_VFD defined */
|
||||
|
||||
/*********************
|
||||
* test-local macros *
|
||||
@ -1119,7 +1070,6 @@ error:
|
||||
}
|
||||
|
||||
return 1;
|
||||
#endif /* H5_HAVE_ROS3_VFD */
|
||||
|
||||
} /* test_eof_eoa */
|
||||
|
||||
@ -1141,15 +1091,6 @@ error:
|
||||
static int
|
||||
test_H5FDread_without_eoa_set_fails(void)
|
||||
{
|
||||
#ifndef H5_HAVE_ROS3_VFD
|
||||
TESTING("ROS3 VFD read-eoa temporal coupling library limitation ");
|
||||
SKIPPED();
|
||||
puts(" ROS3 VFD not enabled");
|
||||
fflush(stdout);
|
||||
return 0;
|
||||
|
||||
#else /* H5_HAVE_ROS3_VFD defined */
|
||||
|
||||
char buffer[256];
|
||||
unsigned int i = 0;
|
||||
H5FD_t *file_shakespeare = NULL;
|
||||
@ -1237,8 +1178,6 @@ error:
|
||||
|
||||
return 1;
|
||||
|
||||
#endif /* H5_HAVE_ROS3_VFD */
|
||||
|
||||
} /* test_H5FDread_without_eoa_set_fails */
|
||||
|
||||
|
||||
@ -1262,14 +1201,6 @@ error:
|
||||
static int
|
||||
test_read(void)
|
||||
{
|
||||
#ifndef H5_HAVE_ROS3_VFD
|
||||
TESTING("ROS3 VFD read/range-gets");
|
||||
SKIPPED();
|
||||
puts(" ROS3 VFD not enabled");
|
||||
fflush(stdout);
|
||||
return 0;
|
||||
|
||||
#else /* H5_HAVE_ROS3_VFD defined */
|
||||
|
||||
/*********************
|
||||
* test-local macros *
|
||||
@ -1451,8 +1382,6 @@ error:
|
||||
|
||||
return 1;
|
||||
|
||||
#endif /* H5_HAVE_ROS3_VFD */
|
||||
|
||||
} /* test_read */
|
||||
|
||||
|
||||
@ -1478,15 +1407,6 @@ error:
|
||||
static int
|
||||
test_noops_and_autofails(void)
|
||||
{
|
||||
#ifndef H5_HAVE_ROS3_VFD
|
||||
TESTING("ROS3 VFD always-fail and no-op routines");
|
||||
SKIPPED();
|
||||
puts(" ROS3 VFD not enabled");
|
||||
fflush(stdout);
|
||||
return 0;
|
||||
|
||||
#else
|
||||
|
||||
/*********************
|
||||
* test-local macros *
|
||||
*********************/
|
||||
@ -1606,8 +1526,6 @@ error:
|
||||
|
||||
return 1;
|
||||
|
||||
#endif /* H5_HAVE_ROS3_VFD */
|
||||
|
||||
} /* test_noops_and_autofails*/
|
||||
|
||||
|
||||
@ -1632,14 +1550,6 @@ error:
|
||||
static int
|
||||
test_cmp(void)
|
||||
{
|
||||
#ifndef H5_HAVE_ROS3_VFD
|
||||
TESTING("ROS3 cmp (comparison)");
|
||||
SKIPPED();
|
||||
puts(" ROS3 VFD not enabled");
|
||||
fflush(stdout);
|
||||
return 0;
|
||||
|
||||
#else
|
||||
|
||||
/*********************
|
||||
* test-local macros *
|
||||
@ -1750,7 +1660,6 @@ error:
|
||||
}
|
||||
|
||||
return 1;
|
||||
#endif /* H5_HAVE_ROS3_VFD */
|
||||
|
||||
} /* test_cmp */
|
||||
|
||||
@ -1776,15 +1685,6 @@ error:
|
||||
static int
|
||||
test_H5F_integration(void)
|
||||
{
|
||||
#ifndef H5_HAVE_ROS3_VFD
|
||||
TESTING("S3 file access through HD5F library (H5F API)");
|
||||
SKIPPED();
|
||||
puts(" ROS3 VFD not enabled");
|
||||
fflush(stdout);
|
||||
return 0;
|
||||
|
||||
#else
|
||||
|
||||
/*********************
|
||||
* test-local macros *
|
||||
*********************/
|
||||
@ -1883,11 +1783,10 @@ HDprintf("\nerror!"); fflush(stdout);
|
||||
(void)H5Fclose(file);
|
||||
|
||||
return 1;
|
||||
#endif /* H5_HAVE_ROS3_VFD */
|
||||
|
||||
} /* test_H5F_integration */
|
||||
|
||||
|
||||
#endif /* H5_HAVE_ROS3_VFD */
|
||||
|
||||
|
||||
/*-------------------------------------------------------------------------
|
||||
@ -1907,10 +1806,15 @@ HDprintf("\nerror!"); fflush(stdout);
|
||||
int
|
||||
main(void)
|
||||
{
|
||||
#ifdef H5_HAVE_ROS3_VFD
|
||||
int nerrors = 0;
|
||||
const char *bucket_url_env = NULL;
|
||||
|
||||
#endif /* H5_HAVE_ROS3_VFD */
|
||||
|
||||
HDprintf("Testing ros3 VFD functionality.\n");
|
||||
|
||||
#ifdef H5_HAVE_ROS3_VFD
|
||||
const char *bucket_url_env = NULL;
|
||||
|
||||
/************************
|
||||
* initialize test urls *
|
||||
@ -1987,15 +1891,14 @@ main(void)
|
||||
s3_test_credentials_loaded = 1;
|
||||
HDstrncpy(restricted_access_fa.aws_region,
|
||||
(const char *)s3_test_aws_region,
|
||||
H5FD__ROS3_MAX_REGION_LEN);
|
||||
H5FD_ROS3_MAX_REGION_LEN);
|
||||
HDstrncpy(restricted_access_fa.secret_id,
|
||||
(const char *)s3_test_aws_access_key_id,
|
||||
H5FD__ROS3_MAX_SECRET_ID_LEN);
|
||||
H5FD_ROS3_MAX_SECRET_ID_LEN);
|
||||
HDstrncpy(restricted_access_fa.secret_key,
|
||||
(const char *)s3_test_aws_secret_access_key,
|
||||
H5FD__ROS3_MAX_SECRET_KEY_LEN);
|
||||
H5FD_ROS3_MAX_SECRET_KEY_LEN);
|
||||
}
|
||||
#endif /* H5_HAVE_ROS3_VFD */
|
||||
|
||||
/******************
|
||||
* commence tests *
|
||||
@ -2003,8 +1906,6 @@ main(void)
|
||||
|
||||
h5_reset();
|
||||
|
||||
HDprintf("Testing ros3 VFD functionality.\n");
|
||||
|
||||
nerrors += test_fapl_config_validation();
|
||||
nerrors += test_ros3_fapl();
|
||||
nerrors += test_vfd_open();
|
||||
@ -2025,6 +1926,12 @@ main(void)
|
||||
}
|
||||
return nerrors; /* 0 if no errors, 1 if any errors */
|
||||
|
||||
#else
|
||||
|
||||
HDprintf("SKIPPED - read-only S3 VFD not built\n");
|
||||
return EXIT_SUCCESS;
|
||||
|
||||
#endif /* H5_HAVE_ROS3_VFD */
|
||||
|
||||
} /* main() */
|
||||
|
||||
|
||||
|
@ -23,6 +23,8 @@
|
||||
#include "H5FDs3comms.h"
|
||||
#include "H5MMprivate.h" /* memory management */
|
||||
|
||||
#ifdef H5_HAVE_ROS3_VFD
|
||||
|
||||
/*****************************************************************************
|
||||
*
|
||||
* FILE-LOCAL TESTING MACROS
|
||||
@ -361,8 +363,6 @@ if (strcmp((actual), (expected)) != 0) { \
|
||||
#endif /* ifdef/else JSVERIFY_EXP_ACT */
|
||||
|
||||
|
||||
#ifdef H5_HAVE_ROS3_VFD
|
||||
|
||||
#define S3_TEST_PROFILE_NAME "ros3_vfd_test"
|
||||
|
||||
#define S3_TEST_RESOURCE_TEXT_RESTRICTED "t8.shakespeare.txt"
|
||||
@ -384,8 +384,6 @@ static char s3_test_aws_secret_access_key[128] = "";
|
||||
static char s3_test_bucket_url[S3_TEST_MAX_URL_SIZE] = "";
|
||||
static hbool_t s3_test_bucket_defined = FALSE;
|
||||
|
||||
#endif /* H5_HAVE_ROS3_VFD */
|
||||
|
||||
|
||||
/*---------------------------------------------------------------------------
|
||||
*
|
||||
@ -1163,7 +1161,6 @@ test_HMAC_SHA256(void)
|
||||
* test-local structures *
|
||||
*************************/
|
||||
|
||||
#ifdef H5_HAVE_ROS3_VFD
|
||||
struct testcase {
|
||||
herr_t ret; /* SUCCEED/FAIL expected from call */
|
||||
const unsigned char key[SHA256_DIGEST_LENGTH];
|
||||
@ -1211,16 +1208,9 @@ test_HMAC_SHA256(void)
|
||||
char *dest = NULL;
|
||||
int i = 0;
|
||||
int n_cases = 3;
|
||||
#endif /* H5_HAVE_ROS3_VFD */
|
||||
|
||||
TESTING("HMAC_SHA256");
|
||||
|
||||
#ifndef H5_HAVE_ROS3_VFD
|
||||
SKIPPED();
|
||||
puts(" ROS3 VFD is not enabled");
|
||||
fflush(stdout);
|
||||
return 0;
|
||||
#else
|
||||
for (i = 0; i < n_cases; i++) {
|
||||
if (cases[i].dest_size == 0) {
|
||||
dest = NULL;
|
||||
@ -1272,7 +1262,6 @@ test_HMAC_SHA256(void)
|
||||
error:
|
||||
free(dest);
|
||||
return -1;
|
||||
#endif /* H5_HAVE_ROS3_VFD */
|
||||
|
||||
} /* end test_HMAC_SHA256() */
|
||||
|
||||
@ -1706,7 +1695,6 @@ error:
|
||||
static herr_t
|
||||
test_s3r_get_filesize(void)
|
||||
{
|
||||
#ifdef H5_HAVE_ROS3_VFD
|
||||
|
||||
/************************
|
||||
* test-local variables *
|
||||
@ -1714,16 +1702,9 @@ test_s3r_get_filesize(void)
|
||||
|
||||
char url_raven[S3_TEST_MAX_URL_SIZE];
|
||||
s3r_t *handle = NULL;
|
||||
#endif /* H5_HAVE_ROS3_VFD */
|
||||
|
||||
TESTING("s3r_get_filesize");
|
||||
|
||||
#ifndef H5_HAVE_ROS3_VFD
|
||||
SKIPPED();
|
||||
puts(" ROS3 VFD is not enabled");
|
||||
fflush(stdout);
|
||||
return 0;
|
||||
#else
|
||||
/* setup -- compose url to target resource
|
||||
*/
|
||||
if (FALSE == s3_test_bucket_defined) {
|
||||
@ -1759,7 +1740,6 @@ error:
|
||||
(void)H5FD_s3comms_s3r_close(handle);
|
||||
|
||||
return -1;
|
||||
#endif /* H5_HAVE_ROS3_VFD */
|
||||
|
||||
} /* end test_s3r_get_filesize() */
|
||||
|
||||
@ -1776,7 +1756,6 @@ error:
|
||||
static herr_t
|
||||
test_s3r_open(void)
|
||||
{
|
||||
#ifdef H5_HAVE_ROS3_VFD
|
||||
|
||||
/************************
|
||||
* test-local variables *
|
||||
@ -1792,16 +1771,9 @@ test_s3r_open(void)
|
||||
s3r_t *handle = NULL;
|
||||
hbool_t curl_ready = FALSE;
|
||||
parsed_url_t *purl = NULL;
|
||||
#endif /* H5_HAVE_ROS3_VFD */
|
||||
|
||||
TESTING("s3r_open");
|
||||
|
||||
#ifndef H5_HAVE_ROS3_VFD
|
||||
SKIPPED();
|
||||
puts(" ROS3 VFD is not enabled");
|
||||
fflush(stdout);
|
||||
return 0;
|
||||
#else
|
||||
if (s3_test_credentials_loaded == 0) {
|
||||
SKIPPED();
|
||||
puts(" s3 credentials are not loaded");
|
||||
@ -2000,7 +1972,6 @@ error:
|
||||
curl_global_cleanup();
|
||||
|
||||
return -1;
|
||||
#endif /* H5_HAVE_ROS3_VFD */
|
||||
|
||||
} /* end test_s3r_open() */
|
||||
|
||||
@ -2029,7 +2000,6 @@ error:
|
||||
static herr_t
|
||||
test_s3r_read(void)
|
||||
{
|
||||
#ifdef H5_HAVE_ROS3_VFD
|
||||
|
||||
#define S3COMMS_TEST_BUFFER_SIZE 256
|
||||
|
||||
@ -2042,16 +2012,9 @@ test_s3r_read(void)
|
||||
s3r_t *handle = NULL;
|
||||
hbool_t curl_ready = FALSE;
|
||||
unsigned int i = 0;
|
||||
#endif /* H5_HAVE_ROS3_VFD */
|
||||
|
||||
TESTING("test_s3r_read");
|
||||
|
||||
#ifndef H5_HAVE_ROS3_VFD
|
||||
SKIPPED();
|
||||
puts(" ROS3 VFD is not enabled");
|
||||
fflush(stdout);
|
||||
return 0;
|
||||
#else
|
||||
/*
|
||||
* initial setup
|
||||
*/
|
||||
@ -2226,7 +2189,6 @@ error:
|
||||
return -1;
|
||||
|
||||
#undef S3COMMS_TEST_BUFFER_SIZE
|
||||
#endif /* H5_HAVE_ROS3_VFD */
|
||||
|
||||
} /* end test_s3r_read() */
|
||||
|
||||
@ -2249,7 +2211,6 @@ error:
|
||||
static herr_t
|
||||
test_signing_key(void)
|
||||
{
|
||||
#ifdef H5_HAVE_ROS3_VFD
|
||||
/*************************
|
||||
* test-local structures *
|
||||
*************************/
|
||||
@ -2279,16 +2240,9 @@ test_signing_key(void)
|
||||
int i = 0;
|
||||
unsigned char *key = NULL;
|
||||
int ncases = 1;
|
||||
#endif /* H5_HAVE_ROS3_VFD */
|
||||
|
||||
TESTING("signing_key");
|
||||
|
||||
#ifndef H5_HAVE_ROS3_VFD
|
||||
SKIPPED();
|
||||
puts(" ROS3 VFD is not enabled");
|
||||
fflush(stdout);
|
||||
return 0;
|
||||
#else
|
||||
for (i = 0; i < ncases; i++) {
|
||||
key = (unsigned char *)HDmalloc(sizeof(unsigned char) * \
|
||||
SHA256_DIGEST_LENGTH);
|
||||
@ -2365,7 +2319,6 @@ error:
|
||||
}
|
||||
|
||||
return -1;
|
||||
#endif /* H5_HAVE_ROS3_VFD */
|
||||
|
||||
} /* end test_signing_key() */
|
||||
|
||||
@ -2394,7 +2347,6 @@ error:
|
||||
static herr_t
|
||||
test_tostringtosign(void)
|
||||
{
|
||||
#ifdef H5_HAVE_ROS3_VFD
|
||||
/************************
|
||||
* test-local variables *
|
||||
************************/
|
||||
@ -2403,16 +2355,9 @@ test_tostringtosign(void)
|
||||
const char iso8601now[] = "20130524T000000Z";
|
||||
const char region[] = "us-east-1";
|
||||
char s2s[512];
|
||||
#endif /* H5_HAVE_ROS3_VFD */
|
||||
|
||||
TESTING("s3comms tostringtosign");
|
||||
|
||||
#ifndef H5_HAVE_ROS3_VFD
|
||||
SKIPPED();
|
||||
puts(" ROS3 VFD is not enabled");
|
||||
fflush(stdout);
|
||||
return 0;
|
||||
#else
|
||||
JSVERIFY( SUCCEED,
|
||||
H5FD_s3comms_tostringtosign(s2s, canonreq, iso8601now, region),
|
||||
"unable to create string to sign" )
|
||||
@ -2437,7 +2382,6 @@ test_tostringtosign(void)
|
||||
|
||||
error :
|
||||
return -1;
|
||||
#endif /* H5_HAVE_ROS3_VFD */
|
||||
|
||||
} /* end test_tostringtosign() */
|
||||
|
||||
@ -2679,6 +2623,7 @@ error:
|
||||
|
||||
} /* end test_uriencode() */
|
||||
|
||||
#endif /* H5_HAVE_ROS3_VFD */
|
||||
|
||||
|
||||
|
||||
@ -2702,13 +2647,14 @@ error:
|
||||
int
|
||||
main(void)
|
||||
{
|
||||
int nerrors = 0;
|
||||
#ifdef H5_HAVE_ROS3_VFD
|
||||
int nerrors = 0;
|
||||
const char *bucket_url_env = NULL;
|
||||
#endif /* H5_HAVE_ROS3_VFD */
|
||||
|
||||
h5_reset();
|
||||
|
||||
#endif /* H5_HAVE_ROS3_VFD */
|
||||
|
||||
HDprintf("Testing S3Communications functionality.\n");
|
||||
|
||||
#ifdef H5_HAVE_ROS3_VFD
|
||||
@ -2744,8 +2690,6 @@ main(void)
|
||||
s3_test_bucket_defined = TRUE;
|
||||
}
|
||||
|
||||
#endif /* H5_HAVE_ROS3_VFD */
|
||||
|
||||
/* tests ordered rougly by dependence */
|
||||
nerrors += test_macro_format_credential() < 0 ? 1 : 0;
|
||||
nerrors += test_trim() < 0 ? 1 : 0;
|
||||
@ -2774,5 +2718,13 @@ main(void)
|
||||
HDprintf("All S3comms tests passed.\n");
|
||||
|
||||
return 0;
|
||||
|
||||
#else
|
||||
|
||||
HDprintf("SKIPPED - read-only S3 VFD not built\n");
|
||||
return EXIT_SUCCESS;
|
||||
|
||||
#endif /* H5_HAVE_ROS3_VFD */
|
||||
|
||||
} /* end main() */
|
||||
|
||||
|
68
test/vfd.c
68
test/vfd.c
@ -58,7 +58,7 @@ const char *FILENAME[] = {
|
||||
"stdio_file", /*7*/
|
||||
"windows_file", /*8*/
|
||||
"new_multi_file_v16",/*9*/
|
||||
"ro_s3_file6", /*10*/
|
||||
"ro_s3_file", /*10*/
|
||||
NULL
|
||||
};
|
||||
|
||||
@ -1940,6 +1940,7 @@ error:
|
||||
static herr_t
|
||||
test_ros3(void)
|
||||
{
|
||||
#ifdef H5_HAVE_ROS3_VFD
|
||||
hid_t fid = -1; /* file ID */
|
||||
hid_t fapl_id = -1; /* file access property list ID */
|
||||
hid_t fapl_id_out = -1; /* from H5Fget_access_plist */
|
||||
@ -1951,14 +1952,20 @@ test_ros3(void)
|
||||
H5FD_ros3_fapl_t test_ros3_fa;
|
||||
H5FD_ros3_fapl_t ros3_fa_0 =
|
||||
{
|
||||
/* version = */ H5FD__CURR_ROS3_FAPL_T_VERSION,
|
||||
/* version = */ H5FD_CURR_ROS3_FAPL_T_VERSION,
|
||||
/* authenticate = */ FALSE,
|
||||
/* aws_region = */ "",
|
||||
/* secret_id = */ "",
|
||||
/* secret_key = */ "plugh",
|
||||
};
|
||||
#endif /*H5_HAVE_ROS3_VFD */
|
||||
|
||||
TESTING("ROS3 file driver");
|
||||
TESTING("Read-only S3 file driver");
|
||||
|
||||
#ifndef H5_HAVE_ROS3_VFD
|
||||
SKIPPED();
|
||||
return 0;
|
||||
#else /* H5_HAVE_ROS3_VFD */
|
||||
|
||||
/* Set property list and file name for ROS3 driver. */
|
||||
if((fapl_id = H5Pcreate(H5P_FILE_ACCESS)) < 0)
|
||||
@ -1988,61 +1995,13 @@ test_ros3(void)
|
||||
if (H5FDdriver_query(driver_id, &driver_flags) < 0)
|
||||
TEST_ERROR;
|
||||
|
||||
if(!(driver_flags & H5FD_FEAT_DATA_SIEVE)) TEST_ERROR
|
||||
if(!(driver_flags & H5FD_FEAT_DATA_SIEVE))
|
||||
TEST_ERROR
|
||||
|
||||
/* Check for extra flags not accounted for above */
|
||||
if(driver_flags != (H5FD_FEAT_DATA_SIEVE))
|
||||
TEST_ERROR
|
||||
|
||||
/* can't create analogs of the following tests until the
|
||||
* ROS3 driver is up and running in a minimal fashion.
|
||||
* Comment them out until we get to them.
|
||||
*/
|
||||
#if 0
|
||||
if((fid = H5Fcreate(filename, H5F_ACC_TRUNC, H5P_DEFAULT, fapl_id)) < 0)
|
||||
TEST_ERROR;
|
||||
|
||||
/* Retrieve the access property list... */
|
||||
if((fapl_id_out = H5Fget_access_plist(fid)) < 0)
|
||||
TEST_ERROR;
|
||||
|
||||
/* Check that the driver is correct */
|
||||
if(H5FD_ROS3 != H5Pget_driver(fapl_id_out))
|
||||
TEST_ERROR;
|
||||
|
||||
/* ...and close the property list */
|
||||
if(H5Pclose(fapl_id_out) < 0)
|
||||
TEST_ERROR;
|
||||
|
||||
/* Check that we can get an operating-system-specific handle from
|
||||
* the library.
|
||||
*/
|
||||
if(H5Fget_vfd_handle(fid, H5P_DEFAULT, &os_file_handle) < 0)
|
||||
TEST_ERROR;
|
||||
if(os_file_handle == NULL)
|
||||
FAIL_PUTS_ERROR("NULL os-specific vfd/file handle was returned from H5Fget_vfd_handle");
|
||||
|
||||
|
||||
/* There is no garantee the size of metadata in file is constant.
|
||||
* Just try to check if it's reasonable.
|
||||
*
|
||||
* Currently it should be around 2 KB.
|
||||
*/
|
||||
if(H5Fget_filesize(fid, &file_size) < 0)
|
||||
TEST_ERROR;
|
||||
if(file_size < 1 * KB || file_size > 4 * KB)
|
||||
FAIL_PUTS_ERROR("suspicious file size obtained from H5Fget_filesize");
|
||||
|
||||
/* Close and delete the file */
|
||||
if(H5Fclose(fid) < 0)
|
||||
TEST_ERROR;
|
||||
h5_delete_test_file(FILENAME[0], fapl_id);
|
||||
|
||||
/* Close the fapl */
|
||||
if(H5Pclose(fapl_id) < 0)
|
||||
TEST_ERROR;
|
||||
#endif
|
||||
|
||||
PASSED();
|
||||
return 0;
|
||||
|
||||
@ -2053,10 +2012,9 @@ error:
|
||||
H5Fclose(fid);
|
||||
} H5E_END_TRY;
|
||||
return -1;
|
||||
#endif /* H5_HAVE_ROS3_VFD */
|
||||
} /* end test_ros3() */
|
||||
|
||||
|
||||
|
||||
/*-------------------------------------------------------------------------
|
||||
* Function: main
|
||||
*
|
||||
|
@ -1129,17 +1129,13 @@ done:
|
||||
* Programmer: Jacob Smith
|
||||
* 2017-11-13
|
||||
*
|
||||
* Changes: None.
|
||||
*
|
||||
*----------------------------------------------------------------------------
|
||||
*/
|
||||
#ifdef H5_HAVE_ROS3_VFD
|
||||
int
|
||||
h5tools_populate_ros3_fapl(H5FD_ros3_fapl_t *fa,
|
||||
const char **values)
|
||||
{
|
||||
#ifndef H5_HAVE_ROS3_VFD
|
||||
return 0;
|
||||
#else
|
||||
int show_progress = 0; /* set to 1 for debugging */
|
||||
int ret_value = 1; /* 1 for success, 0 for failure */
|
||||
/* e.g.? if (!populate()) { then failed } */
|
||||
@ -1159,7 +1155,7 @@ h5tools_populate_ros3_fapl(H5FD_ros3_fapl_t *fa,
|
||||
if (show_progress) {
|
||||
HDprintf(" preset fapl with default values\n");
|
||||
}
|
||||
fa->version = H5FD__CURR_ROS3_FAPL_T_VERSION;
|
||||
fa->version = H5FD_CURR_ROS3_FAPL_T_VERSION;
|
||||
fa->authenticate = FALSE;
|
||||
*(fa->aws_region) = '\0';
|
||||
*(fa->secret_id) = '\0';
|
||||
@ -1196,7 +1192,7 @@ h5tools_populate_ros3_fapl(H5FD_ros3_fapl_t *fa,
|
||||
if (*values[0] != '\0' &&
|
||||
*values[1] != '\0')
|
||||
{
|
||||
if (HDstrlen(values[0]) > H5FD__ROS3_MAX_REGION_LEN) {
|
||||
if (HDstrlen(values[0]) > H5FD_ROS3_MAX_REGION_LEN) {
|
||||
if (show_progress) {
|
||||
HDprintf(" ERROR: aws_region value too long\n");
|
||||
}
|
||||
@ -1210,7 +1206,7 @@ h5tools_populate_ros3_fapl(H5FD_ros3_fapl_t *fa,
|
||||
}
|
||||
|
||||
|
||||
if (HDstrlen(values[1]) > H5FD__ROS3_MAX_SECRET_ID_LEN) {
|
||||
if (HDstrlen(values[1]) > H5FD_ROS3_MAX_SECRET_ID_LEN) {
|
||||
if (show_progress) {
|
||||
HDprintf(" ERROR: secret_id value too long\n");
|
||||
}
|
||||
@ -1224,7 +1220,7 @@ h5tools_populate_ros3_fapl(H5FD_ros3_fapl_t *fa,
|
||||
HDprintf(" secret_id set\n");
|
||||
}
|
||||
|
||||
if (HDstrlen(values[2]) > H5FD__ROS3_MAX_SECRET_KEY_LEN) {
|
||||
if (HDstrlen(values[2]) > H5FD_ROS3_MAX_SECRET_KEY_LEN) {
|
||||
if (show_progress) {
|
||||
HDprintf(" ERROR: secret_key value too long\n");
|
||||
}
|
||||
@ -1259,9 +1255,9 @@ h5tools_populate_ros3_fapl(H5FD_ros3_fapl_t *fa,
|
||||
|
||||
done:
|
||||
return ret_value;
|
||||
#endif /* H5_HAVE_ROS3_VFD */
|
||||
|
||||
} /* h5tools_populate_ros3_fapl */
|
||||
#endif /* H5_HAVE_ROS3_VFD */
|
||||
|
||||
|
||||
/*-----------------------------------------------------------------------------
|
||||
@ -1329,5 +1325,3 @@ done:
|
||||
|
||||
} /* h5tools_set_configured_fapl() */
|
||||
|
||||
|
||||
|
||||
|
@ -182,8 +182,11 @@ H5TOOLS_DLL int h5tools_getenv_update_hyperslab_bufsize(void);
|
||||
H5TOOLS_DLL int h5tools_set_configured_fapl(hid_t fapl_id,
|
||||
const char vfd_name[],
|
||||
void *fapl_t_ptr);
|
||||
#ifdef H5_HAVE_ROS3_VFD
|
||||
H5TOOLS_DLL int h5tools_populate_ros3_fapl(H5FD_ros3_fapl_t *fa,
|
||||
const char **values);
|
||||
#endif /* H5_HAVE_ROS3_VFD */
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
@ -653,7 +653,7 @@ test_populate_ros3_fa(void)
|
||||
show_progress = TRUE;
|
||||
#endif /* H5TOOLS_UTILS_TEST_DEBUG */
|
||||
|
||||
HDassert(bad_version != H5FD__CURR_ROS3_FAPL_T_VERSION);
|
||||
HDassert(bad_version != H5FD_CURR_ROS3_FAPL_T_VERSION);
|
||||
|
||||
/*********
|
||||
* TESTS *
|
||||
@ -679,7 +679,7 @@ test_populate_ros3_fa(void)
|
||||
|
||||
JSVERIFY( 1, h5tools_populate_ros3_fapl(&fa, NULL),
|
||||
"NULL values pointer yields \"default\" fapl" )
|
||||
JSVERIFY( H5FD__CURR_ROS3_FAPL_T_VERSION, fa.version, NULL )
|
||||
JSVERIFY( H5FD_CURR_ROS3_FAPL_T_VERSION, fa.version, NULL )
|
||||
JSVERIFY( FALSE, fa.authenticate, NULL )
|
||||
JSVERIFY_STR( "", fa.aws_region, NULL )
|
||||
JSVERIFY_STR( "", fa.secret_id, NULL )
|
||||
@ -697,7 +697,7 @@ test_populate_ros3_fa(void)
|
||||
|
||||
JSVERIFY( 1, h5tools_populate_ros3_fapl(&fa, values),
|
||||
"empty values yields \"default\" fapl" )
|
||||
JSVERIFY( H5FD__CURR_ROS3_FAPL_T_VERSION, fa.version, NULL )
|
||||
JSVERIFY( H5FD_CURR_ROS3_FAPL_T_VERSION, fa.version, NULL )
|
||||
JSVERIFY( FALSE, fa.authenticate, NULL )
|
||||
JSVERIFY_STR( "", fa.aws_region, NULL )
|
||||
JSVERIFY_STR( "", fa.secret_id, NULL )
|
||||
@ -715,7 +715,7 @@ test_populate_ros3_fa(void)
|
||||
|
||||
JSVERIFY( 1, h5tools_populate_ros3_fapl(&fa, values),
|
||||
"four values" )
|
||||
JSVERIFY( H5FD__CURR_ROS3_FAPL_T_VERSION, fa.version, NULL )
|
||||
JSVERIFY( H5FD_CURR_ROS3_FAPL_T_VERSION, fa.version, NULL )
|
||||
JSVERIFY( TRUE, fa.authenticate, NULL )
|
||||
JSVERIFY_STR( "x", fa.aws_region, NULL )
|
||||
JSVERIFY_STR( "y", fa.secret_id, NULL )
|
||||
@ -733,7 +733,7 @@ test_populate_ros3_fa(void)
|
||||
|
||||
JSVERIFY( 0, h5tools_populate_ros3_fapl(&fa, values),
|
||||
"could not fill fapl" )
|
||||
JSVERIFY( H5FD__CURR_ROS3_FAPL_T_VERSION, fa.version, NULL )
|
||||
JSVERIFY( H5FD_CURR_ROS3_FAPL_T_VERSION, fa.version, NULL )
|
||||
JSVERIFY( FALSE, fa.authenticate, NULL )
|
||||
JSVERIFY_STR( "", fa.aws_region, NULL )
|
||||
JSVERIFY_STR( "", fa.secret_id, NULL )
|
||||
@ -751,7 +751,7 @@ test_populate_ros3_fa(void)
|
||||
|
||||
JSVERIFY( 0, h5tools_populate_ros3_fapl(&fa, values),
|
||||
"could not fill fapl" )
|
||||
JSVERIFY( H5FD__CURR_ROS3_FAPL_T_VERSION, fa.version, NULL )
|
||||
JSVERIFY( H5FD_CURR_ROS3_FAPL_T_VERSION, fa.version, NULL )
|
||||
JSVERIFY( FALSE, fa.authenticate, NULL )
|
||||
JSVERIFY_STR( "", fa.aws_region, NULL )
|
||||
JSVERIFY_STR( "", fa.secret_id, NULL )
|
||||
@ -771,11 +771,11 @@ test_populate_ros3_fa(void)
|
||||
|
||||
if (show_progress) { HDprintf("region overflow\n"); }
|
||||
|
||||
HDassert(HDstrlen(values[0]) > H5FD__ROS3_MAX_REGION_LEN);
|
||||
HDassert(HDstrlen(values[0]) > H5FD_ROS3_MAX_REGION_LEN);
|
||||
|
||||
JSVERIFY( 0, h5tools_populate_ros3_fapl(&fa, values),
|
||||
"could not fill fapl" )
|
||||
JSVERIFY( H5FD__CURR_ROS3_FAPL_T_VERSION, fa.version, NULL )
|
||||
JSVERIFY( H5FD_CURR_ROS3_FAPL_T_VERSION, fa.version, NULL )
|
||||
JSVERIFY( FALSE, fa.authenticate, NULL )
|
||||
JSVERIFY_STR( "", fa.aws_region, NULL )
|
||||
JSVERIFY_STR( "", fa.secret_id, NULL )
|
||||
@ -793,7 +793,7 @@ test_populate_ros3_fa(void)
|
||||
|
||||
JSVERIFY( 0, h5tools_populate_ros3_fapl(&fa, values),
|
||||
"could not fill fapl" )
|
||||
JSVERIFY( H5FD__CURR_ROS3_FAPL_T_VERSION, fa.version, NULL )
|
||||
JSVERIFY( H5FD_CURR_ROS3_FAPL_T_VERSION, fa.version, NULL )
|
||||
JSVERIFY( FALSE, fa.authenticate, NULL )
|
||||
JSVERIFY_STR( "", fa.aws_region, NULL )
|
||||
JSVERIFY_STR( "", fa.secret_id, NULL )
|
||||
@ -811,7 +811,7 @@ test_populate_ros3_fa(void)
|
||||
|
||||
JSVERIFY( 0, h5tools_populate_ros3_fapl(&fa, values),
|
||||
"could not fill fapl" )
|
||||
JSVERIFY( H5FD__CURR_ROS3_FAPL_T_VERSION, fa.version, NULL )
|
||||
JSVERIFY( H5FD_CURR_ROS3_FAPL_T_VERSION, fa.version, NULL )
|
||||
JSVERIFY( FALSE, fa.authenticate, NULL )
|
||||
JSVERIFY_STR( "", fa.aws_region, NULL )
|
||||
JSVERIFY_STR( "", fa.secret_id, NULL )
|
||||
@ -839,11 +839,11 @@ test_populate_ros3_fa(void)
|
||||
|
||||
if (show_progress) { HDprintf("id overflow\n"); }
|
||||
|
||||
HDassert(HDstrlen(values[1]) > H5FD__ROS3_MAX_SECRET_ID_LEN);
|
||||
HDassert(HDstrlen(values[1]) > H5FD_ROS3_MAX_SECRET_ID_LEN);
|
||||
|
||||
JSVERIFY( 0, h5tools_populate_ros3_fapl(&fa, values),
|
||||
"could not fill fapl" )
|
||||
JSVERIFY( H5FD__CURR_ROS3_FAPL_T_VERSION, fa.version, NULL )
|
||||
JSVERIFY( H5FD_CURR_ROS3_FAPL_T_VERSION, fa.version, NULL )
|
||||
JSVERIFY( FALSE, fa.authenticate, NULL )
|
||||
JSVERIFY_STR( "x", fa.aws_region, NULL )
|
||||
JSVERIFY_STR( "", fa.secret_id, NULL )
|
||||
@ -861,7 +861,7 @@ test_populate_ros3_fa(void)
|
||||
|
||||
JSVERIFY( 0, h5tools_populate_ros3_fapl(&fa, values),
|
||||
"could not fill fapl" )
|
||||
JSVERIFY( H5FD__CURR_ROS3_FAPL_T_VERSION, fa.version, NULL )
|
||||
JSVERIFY( H5FD_CURR_ROS3_FAPL_T_VERSION, fa.version, NULL )
|
||||
JSVERIFY( FALSE, fa.authenticate, NULL )
|
||||
JSVERIFY_STR( "", fa.aws_region, NULL )
|
||||
JSVERIFY_STR( "", fa.secret_id, NULL )
|
||||
@ -879,7 +879,7 @@ test_populate_ros3_fa(void)
|
||||
|
||||
JSVERIFY( 1, h5tools_populate_ros3_fapl(&fa, values),
|
||||
"could not fill fapl" )
|
||||
JSVERIFY( H5FD__CURR_ROS3_FAPL_T_VERSION, fa.version, NULL )
|
||||
JSVERIFY( H5FD_CURR_ROS3_FAPL_T_VERSION, fa.version, NULL )
|
||||
JSVERIFY( TRUE, fa.authenticate, NULL )
|
||||
JSVERIFY_STR( "x", fa.aws_region, NULL )
|
||||
JSVERIFY_STR( "y", fa.secret_id, NULL )
|
||||
@ -897,7 +897,7 @@ test_populate_ros3_fa(void)
|
||||
|
||||
JSVERIFY( 0, h5tools_populate_ros3_fapl(&fa, values),
|
||||
"could not fill fapl" )
|
||||
JSVERIFY( H5FD__CURR_ROS3_FAPL_T_VERSION, fa.version, NULL )
|
||||
JSVERIFY( H5FD_CURR_ROS3_FAPL_T_VERSION, fa.version, NULL )
|
||||
JSVERIFY( FALSE, fa.authenticate, NULL )
|
||||
JSVERIFY_STR( "", fa.aws_region, NULL )
|
||||
JSVERIFY_STR( "", fa.secret_id, NULL )
|
||||
@ -915,7 +915,7 @@ test_populate_ros3_fa(void)
|
||||
|
||||
JSVERIFY( 0, h5tools_populate_ros3_fapl(&fa, values),
|
||||
"could not fill fapl" )
|
||||
JSVERIFY( H5FD__CURR_ROS3_FAPL_T_VERSION, fa.version, NULL )
|
||||
JSVERIFY( H5FD_CURR_ROS3_FAPL_T_VERSION, fa.version, NULL )
|
||||
JSVERIFY( FALSE, fa.authenticate, NULL )
|
||||
JSVERIFY_STR( "", fa.aws_region, NULL )
|
||||
JSVERIFY_STR( "", fa.secret_id, NULL )
|
||||
@ -943,11 +943,11 @@ test_populate_ros3_fa(void)
|
||||
|
||||
if (show_progress) { HDprintf("key overflow\n"); }
|
||||
|
||||
HDassert(HDstrlen(values[2]) > H5FD__ROS3_MAX_SECRET_KEY_LEN);
|
||||
HDassert(HDstrlen(values[2]) > H5FD_ROS3_MAX_SECRET_KEY_LEN);
|
||||
|
||||
JSVERIFY( 0, h5tools_populate_ros3_fapl(&fa, values),
|
||||
"could not fill fapl" )
|
||||
JSVERIFY( H5FD__CURR_ROS3_FAPL_T_VERSION, fa.version, NULL )
|
||||
JSVERIFY( H5FD_CURR_ROS3_FAPL_T_VERSION, fa.version, NULL )
|
||||
JSVERIFY( FALSE, fa.authenticate, NULL )
|
||||
JSVERIFY_STR( "x", fa.aws_region, NULL )
|
||||
JSVERIFY_STR( "y", fa.secret_id, NULL )
|
||||
|
Loading…
Reference in New Issue
Block a user