@@ -1005,78 +1005,6 @@ bool RadosStore::is_meta_master()
10051005 return svc ()->zone ->is_meta_master ();
10061006}
10071007
1008- int RadosStore::forward_request_to_master (const DoutPrefixProvider *dpp, User* user, obj_version* objv,
1009- bufferlist& in_data,
1010- JSONParser* jp, req_info& info,
1011- optional_yield y)
1012- {
1013- if (is_meta_master ()) {
1014- /* We're master, don't forward */
1015- return 0 ;
1016- }
1017-
1018- if (!svc ()->zone ->get_master_conn ()) {
1019- ldpp_dout (dpp, 0 ) << " rest connection is invalid" << dendl;
1020- return -EINVAL;
1021- }
1022- ldpp_dout (dpp, 0 ) << " sending request to master zonegroup" << dendl;
1023- bufferlist response;
1024- std::string uid_str = user->get_id ().to_str ();
1025- #define MAX_REST_RESPONSE (128 * 1024 ) // we expect a very small response
1026- int ret = svc ()->zone ->get_master_conn ()->forward (dpp, rgw_user (uid_str), info,
1027- objv, MAX_REST_RESPONSE,
1028- &in_data, &response, y);
1029- if (ret < 0 )
1030- return ret;
1031-
1032- ldpp_dout (dpp, 20 ) << " response: " << response.c_str () << dendl;
1033- if (jp && !jp->parse (response.c_str (), response.length ())) {
1034- ldpp_dout (dpp, 0 ) << " failed parsing response from master zonegroup" << dendl;
1035- return -EINVAL;
1036- }
1037-
1038- return 0 ;
1039- }
1040-
1041- int RadosStore::forward_iam_request_to_master (const DoutPrefixProvider *dpp, const RGWAccessKey& key, obj_version* objv,
1042- bufferlist& in_data,
1043- RGWXMLDecoder::XMLParser* parser, req_info& info,
1044- optional_yield y)
1045- {
1046- if (is_meta_master ()) {
1047- /* We're master, don't forward */
1048- return 0 ;
1049- }
1050-
1051- if (!svc ()->zone ->get_master_conn ()) {
1052- ldpp_dout (dpp, 0 ) << " rest connection is invalid" << dendl;
1053- return -EINVAL;
1054- }
1055- ldpp_dout (dpp, 0 ) << " sending request to master zonegroup" << dendl;
1056- bufferlist response;
1057- #define MAX_REST_RESPONSE (128 * 1024 ) // we expect a very small response
1058- int ret = svc ()->zone ->get_master_conn ()->forward_iam_request (dpp, key, info,
1059- objv, MAX_REST_RESPONSE,
1060- &in_data, &response, y);
1061- if (ret < 0 )
1062- return ret;
1063-
1064- ldpp_dout (dpp, 20 ) << " response: " << response.c_str () << dendl;
1065-
1066- std::string r = response.c_str ();
1067- std::string str_to_search = " "" ;
1068- std::string str_to_replace = " \" " ;
1069- boost::replace_all (r, str_to_search, str_to_replace);
1070- ldpp_dout (dpp, 20 ) << " r: " << r.c_str () << dendl;
1071-
1072- if (parser && !parser->parse (r.c_str (), r.length (), 1 )) {
1073- ldpp_dout (dpp, 0 ) << " ERROR: failed to parse response from master zonegroup" << dendl;
1074- return -EIO;
1075- }
1076-
1077- return 0 ;
1078- }
1079-
10801008std::string RadosStore::zone_unique_id (uint64_t unique_num)
10811009{
10821010 return svc ()->zone_utils ->unique_id (unique_num);
0 commit comments