curl --request GET \
--url https://api.example.com/api/migration/infrastructure-config \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.example.com/api/migration/infrastructure-config"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.example.com/api/migration/infrastructure-config', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.example.com/api/migration/infrastructure-config",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/api/migration/infrastructure-config"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.example.com/api/migration/infrastructure-config")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/api/migration/infrastructure-config")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"cluster_ssh_conn_id": "<string>",
"cluster_edge_temp_path": "<string>",
"cluster_edge_discovery_temp_path": "<string>",
"cluster_hive_scratch_dir": "<string>",
"cluster_distcp_log_root": "<string>",
"migration_spark_conn_id": "<string>",
"migration_smtp_conn_id": "<string>",
"s3_endpoint": "<string>",
"s3_access_key_set": false,
"s3_secret_key_set": false,
"default_s3_bucket": "<string>",
"tracking_database": "<string>",
"tracking_location": "<string>",
"report_output_location": "<string>",
"email_recipients": "<string>",
"distcp_mappers": 123,
"distcp_bandwidth": 123,
"service_account_user_id": "<string>",
"mapr_ticketfile_location": "<string>",
"tenant_profiles": [
{
"tenant": "<string>",
"ssh_conn_id": "<string>",
"mapr_ticketfile_location": "<string>",
"auth_method": "<string>",
"edge_temp_path": "<string>",
"hive_scratch_dir": "<string>",
"service_account_user_id": "<string>",
"hdfs_nameservice": "<string>"
}
]
}{
"error": "<string>",
"code": 500
}Get current infrastructure configuration
curl --request GET \
--url https://api.example.com/api/migration/infrastructure-config \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.example.com/api/migration/infrastructure-config"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.example.com/api/migration/infrastructure-config', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.example.com/api/migration/infrastructure-config",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/api/migration/infrastructure-config"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.example.com/api/migration/infrastructure-config")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/api/migration/infrastructure-config")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"cluster_ssh_conn_id": "<string>",
"cluster_edge_temp_path": "<string>",
"cluster_edge_discovery_temp_path": "<string>",
"cluster_hive_scratch_dir": "<string>",
"cluster_distcp_log_root": "<string>",
"migration_spark_conn_id": "<string>",
"migration_smtp_conn_id": "<string>",
"s3_endpoint": "<string>",
"s3_access_key_set": false,
"s3_secret_key_set": false,
"default_s3_bucket": "<string>",
"tracking_database": "<string>",
"tracking_location": "<string>",
"report_output_location": "<string>",
"email_recipients": "<string>",
"distcp_mappers": 123,
"distcp_bandwidth": 123,
"service_account_user_id": "<string>",
"mapr_ticketfile_location": "<string>",
"tenant_profiles": [
{
"tenant": "<string>",
"ssh_conn_id": "<string>",
"mapr_ticketfile_location": "<string>",
"auth_method": "<string>",
"edge_temp_path": "<string>",
"hive_scratch_dir": "<string>",
"service_account_user_id": "<string>",
"hdfs_nameservice": "<string>"
}
]
}{
"error": "<string>",
"code": 500
}Authorizations
The access token received from the authorization server in the OAuth 2.0 flow.
Response
Successful Response
Infrastructure configuration response. Write-only fields are always None.
Edge node scratch directory for the table discovery step. DAG 1 creates {path}/discovery_{run_id}_{src_db}_{dest_db}_{bucket_slug} under it. Give a literal path: the value is written into a Python script over SFTP, which expands neither shell variables nor a leading ~. Airflow variable cluster_edge_discovery_temp_path, environment fallback CLUSTER_EDGE_DISCOVERY_TEMP_PATH, default /tmp.
Hive scratch directory for edge node PySpark sessions. DAG 1 injects it as spark.hadoop.hive.exec.scratchdir and spark.hadoop.hive.exec.local.scratchdir into every session it starts, including the generated discover_tables.py. Give each tenant its own path: a shared /tmp/hive causes permission collisions between tenants on the same edge node. Give a literal path, with no $, no {, and no leading ~. Airflow variable cluster_hive_scratch_dir, environment fallback CLUSTER_HIVE_SCRATCH_DIR, default /tmp/hive.
Root directory for DistCp -log output. This is a root, not a full path: DAG 1 appends the migration user and run, giving {root}/{migration_user}/distcp_logs/{run_id}, and creates that directory on the cluster filesystem with hadoop fs -mkdir -p and chmod 700, not on the edge node. The {migration_user} segment comes from whatever service_account_user_id resolves to. Give a literal path. Airflow variable cluster_distcp_log_root, environment fallback CLUSTER_DISTCP_LOG_ROOT, default /tmp.
Show child attributes
Show child attributes
Was this page helpful?

