Skip to content
Snippets Groups Projects
Commit 38522f8f authored by Sergey Yakubov's avatar Sergey Yakubov
Browse files

fix curl client

parent 3c6aeeeb
No related branches found
No related tags found
No related merge requests found
...@@ -33,7 +33,7 @@ size_t curl_write( void* ptr, size_t size, size_t nmemb, void* data_container) { ...@@ -33,7 +33,7 @@ size_t curl_write( void* ptr, size_t size, size_t nmemb, void* data_container) {
if (container->bytes_received + nbytes > container->array_size) { if (container->bytes_received + nbytes > container->array_size) {
return -1; return -1;
} }
memcpy(container->p_array->get(), ptr, nbytes); memcpy(container->p_array->get()+container->bytes_received, ptr, nbytes);
container->bytes_received += nbytes; container->bytes_received += nbytes;
break; break;
case CurlDataMode::file: case CurlDataMode::file:
......
...@@ -11,7 +11,7 @@ Cleanup() { ...@@ -11,7 +11,7 @@ Cleanup() {
echo cleanup echo cleanup
nomad stop authorizer nomad stop authorizer
nomad stop file_transfer nomad stop file_transfer
rm -rf $file_transfer_folder bbb rm -rf $file_transfer_folder bbb random
} }
nomad run authorizer.nmd nomad run authorizer.nmd
...@@ -21,7 +21,10 @@ sleep 1 ...@@ -21,7 +21,10 @@ sleep 1
mkdir -p $file_transfer_folder mkdir -p $file_transfer_folder
echo -n hello > $file_transfer_folder/aaa echo -n hello > $file_transfer_folder/aaa
$1 127.0.0.1:5007 127.0.0.1:5008 $file_transfer_folder aaa dd if=/dev/urandom of=$file_transfer_folder/random bs=1 count=100000
$1 127.0.0.1:5007 127.0.0.1:5008 $file_transfer_folder
cat bbb | tee /dev/stderr | grep hello cat bbb | tee /dev/stderr | grep hello
diff -q random $file_transfer_folder/random
...@@ -13,7 +13,7 @@ ping 1.0.0.0 -n 1 -w 100 > nul ...@@ -13,7 +13,7 @@ ping 1.0.0.0 -n 1 -w 100 > nul
mkdir %file_transfer_folder% mkdir %file_transfer_folder%
echo | set /p dummyName="hello" > %file_transfer_folder%\aaa echo | set /p dummyName="hello" > %file_transfer_folder%\aaa
"%1" 127.0.0.1:5007 127.0.0.1:5008 %file_transfer_folder% aaa || goto :error "%1" 127.0.0.1:5007 127.0.0.1:5008 %file_transfer_folder% || goto :error
type bbb | findstr /c:"hello" || goto :error type bbb | findstr /c:"hello" || goto :error
......
...@@ -4,24 +4,24 @@ ...@@ -4,24 +4,24 @@
#include "testing.h" #include "testing.h"
#include "../../../consumer/api/cpp/src/server_data_broker.h" #include "../../../consumer/api/cpp/src/server_data_broker.h"
#include "preprocessor/definitions.h" #include "preprocessor/definitions.h"
#include "io/io_factory.h"
#include "io/io.h"
struct Args { struct Args {
std::string uri_authorizer; std::string uri_authorizer;
std::string uri_fts; std::string uri_fts;
std::string folder; std::string folder;
std::string fname;
}; };
Args GetArgs(int argc, char* argv[]) { Args GetArgs(int argc, char* argv[]) {
if (argc != 5) { if (argc != 4) {
std::cout << "Wrong number of arguments" << std::endl; std::cout << "Wrong number of arguments" << std::endl;
exit(EXIT_FAILURE); exit(EXIT_FAILURE);
} }
std::string uri_authorizer{argv[1]}; std::string uri_authorizer{argv[1]};
std::string uri_fts{argv[2]}; std::string uri_fts{argv[2]};
std::string folder{argv[3]}; std::string folder{argv[3]};
std::string fname{argv[4]}; return Args{uri_authorizer, uri_fts, folder};
return Args{uri_authorizer, uri_fts, folder, fname};
} }
...@@ -58,14 +58,34 @@ int main(int argc, char* argv[]) { ...@@ -58,14 +58,34 @@ int main(int argc, char* argv[]) {
auto content = server_broker->httpclient__->Post(args.uri_fts + "/transfer", cookie, transfer, &code, &err); auto content = server_broker->httpclient__->Post(args.uri_fts + "/transfer", cookie, transfer, &code, &err);
M_AssertEq("hello", content); M_AssertEq("hello", content);
M_AssertTrue(code == asapo::HttpCode::OK); M_AssertTrue(code == asapo::HttpCode::OK);
// with array
asapo::FileData data; asapo::FileData data;
err = server_broker->httpclient__->Post(args.uri_fts + "/transfer", cookie, transfer, &data, 5, &code); err = server_broker->httpclient__->Post(args.uri_fts + "/transfer", cookie, transfer, &data, 5, &code);
M_AssertEq( "hello", reinterpret_cast<char const*>(data.get())); M_AssertEq( "hello", reinterpret_cast<char const*>(data.get()));
M_AssertTrue(code == asapo::HttpCode::OK); M_AssertTrue(code == asapo::HttpCode::OK);
transfer = "{\"Folder\":\"" + args.folder + "\",\"FileName\":\"random\"}";
auto io = asapo::GenerateDefaultIO();
auto fname = args.folder+asapo::kPathSeparator+"random";
uint64_t size=0;
auto expected_data = io->GetDataFromFile(fname,&size,&err);
M_AssertEq(nullptr, err);
err = server_broker->httpclient__->Post(args.uri_fts + "/transfer", cookie, transfer, &data, size, &code);
M_AssertTrue(code == asapo::HttpCode::OK);
for (uint64_t i=0;i<size;i++) {
if (expected_data[i] != data[i]) {
M_AssertTrue(false,"recieve array equal to sent array");
}
}
// with file
transfer = "{\"Folder\":\"" + args.folder + "\",\"FileName\":\"aaa\"}";
err = server_broker->httpclient__->Post(args.uri_fts + "/transfer", cookie, transfer, "bbb", &code); err = server_broker->httpclient__->Post(args.uri_fts + "/transfer", cookie, transfer, "bbb", &code);
M_AssertTrue(code == asapo::HttpCode::OK); M_AssertTrue(code == asapo::HttpCode::OK);
transfer = "{\"Folder\":\"" + args.folder + "\",\"FileName\":\"random\"}";
err = server_broker->httpclient__->Post(args.uri_fts + "/transfer", cookie, transfer, "random", &code);
M_AssertTrue(code == asapo::HttpCode::OK);
return 0; return 0;
} }
...@@ -25,11 +25,12 @@ token=bnCXpOdBV90wU1zybEw1duQNSORuwaKz6oDHqmL35p0= #token for aaa ...@@ -25,11 +25,12 @@ token=bnCXpOdBV90wU1zybEw1duQNSORuwaKz6oDHqmL35p0= #token for aaa
folder_token=`curl --silent --data "{\"Folder\":\"$file_transfer_folder\",\"BeamtimeId\":\"aaa\",\"Token\":\"$token\"}" 127.0.0.1:5007/folder` folder_token=`curl --silent --data "{\"Folder\":\"$file_transfer_folder\",\"BeamtimeId\":\"aaa\",\"Token\":\"$token\"}" 127.0.0.1:5007/folder`
echo $folder_token echo $folder_token
echo hello > $file_transfer_folder/aaa
dd if=/dev/urandom of=$file_transfer_folder/aaa bs=1 count=100000
curl -o aaa --silent -H "Authorization: Bearer ${folder_token}" --data "{\"Folder\":\"$file_transfer_folder\",\"FileName\":\"aaa\",\"Token\":\"$folder_token\"}" 127.0.0.1:5008/transfer --stderr - | tee /dev/stderr curl -o aaa --silent -H "Authorization: Bearer ${folder_token}" --data "{\"Folder\":\"$file_transfer_folder\",\"FileName\":\"aaa\",\"Token\":\"$folder_token\"}" 127.0.0.1:5008/transfer --stderr - | tee /dev/stderr
cat aaa | grep hello diff -q aaa $file_transfer_folder/aaa
dd if=/dev/zero of=$file_transfer_folder/big_file bs=1 count=0 seek=5368709120 dd if=/dev/zero of=$file_transfer_folder/big_file bs=1 count=0 seek=5368709120
......
...@@ -3,15 +3,18 @@ from __future__ import print_function ...@@ -3,15 +3,18 @@ from __future__ import print_function
import asapo_consumer import asapo_consumer
import sys import sys
source, beamtime,path, token = sys.argv[1:] source, path,beamtime, token = sys.argv[1:]
broker = asapo_consumer.create_server_broker(source,path,False, beamtime,"",token,1000) broker = asapo_consumer.create_server_broker(source,path,False, beamtime,"",token,1000)
group_id = broker.generate_group_id() group_id = broker.generate_group_id()
data, meta = broker.get_by_id(1, group_id, meta_only=False) _, meta = broker.get_by_id(1,group_id, meta_only=True)
print (meta) meta["buf_id"]=0
print (len(data)) data = broker.retrieve_data(meta)
print (meta)
print (len(data),data[0:100])
data.tofile("out")
sys.exit(0) sys.exit(0)
\ No newline at end of file
export PYTHONPATH=/Users/yakubov/projects/asapo/cmake-build-debug/consumer/api/python
export token=IEfwsWa0GXky2S3MkxJSUHJT1sI8DD5teRdjBUXVRxk=
python3 consumer_api.py gest-k8s-test2.desy.de/yakser /test_offline/test_facility/gpfs/test/2019/data/asapo_test asapo_test $token
#python3 getnext.py gest-k8s-test2.desy.de/yakser /test_offline/test_facility/gpfs/test/2019/data/asapo_test asapo_test $token new
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment