END_TEST START_TEST(test_setReplication) { bool s; struct hdfs_object *e = NULL; const char *tf = "/HADOOFUS_TEST_SETREPLICATION", *client = "HADOOFUS_CLIENT"; // Create the file first hdfs_create(h, tf, 0644, client, true/*overwrite*/, false/*createparent*/, 1/*replication*/, 64*1024*1024, &e); if (e) ck_abort_msg("exception: %s", hdfs_exception_get_message(e)); s = hdfs_setReplication(h, tf, 2, &e); if (e) ck_abort_msg("exception: %s", hdfs_exception_get_message(e)); ck_assert_msg(s, "setReplication returned false"); // Cleanup s = hdfs_delete(h, tf, false/*recurse*/, &e); if (e) ck_abort_msg("exception: %s", hdfs_exception_get_message(e)); ck_assert_msg(s, "delete returned false"); }
/** * hdfsSetReplication - Set the replication of the specified * file to the supplied value * * @param fs The configured filesystem handle. * @param path The path of the file. * @return Returns 0 on success, -1 on error. */ int hdfsSetReplication(hdfsFS fs, const char* path, int16_t replication) { int res = 0; struct hdfsFS_internal *client = fs; struct hdfs_object *ex = NULL; char *path_abs = _makeabs(fs, path); bool b; b = hdfs_setReplication(client->fs_namenode, path_abs, replication, &ex); if (ex) { ERR(EIO, "setReplication(): %s", hdfs_exception_get_message(ex)); hdfs_object_free(ex); res = -1; goto out; } if (!b) { ERR(ENOENT, "setReplication(): No such file, or %s is a directory", path_abs); res = -1; goto out; } out: if (path_abs != path) free(path_abs); return res; }