LCM Import
Initiates import of a Migration snapshot so that the contents of the application snapshot are imported into the application.
The presence of status -1 in the response indicates that the import is in progress. You should use the job status URI to determine whether the import is complete.
If the Job completes with status 1, the task details will be mentioned in the items from which the source, destination, and URL to fetch the first set of errors is available. All issues for a particular task can be fetched in the manner of pagination. Acceptable values for msgtype are: error/warn/info
; limit
represents the number of issues requested per request, and offset
marks the beginning number to fetch the issues.
This API is version 11.1.2.3.600.
Before using the REST resources, you must understand how to access the REST resources and other important concepts. See About the REST APIs. Using these REST APIs requires prerequisites. See Prerequisites.
Table 6-37 LCM Import
Task | Request | REST Resource |
---|---|---|
LCM Import | POST |
|
Import Status | GET | /interop/rest/{api_version}/applicationsnapshots/{applicationSnapshotName}/migration/9 |
Details | GET | /interop/rest/{api_version}/applicationsnapshots/{applicationSnapshotName}/migration/9/0/details?limit=25&msgtype=error&offset=0 |
REST Resource
POST /interop/rest/{api_version}/applicationsnapshots/{applicationSnapshotName}/migrationq={type:"import}
Parameters:
The following table summarizes the request parameters.
Table 6-38 Parameters
Name | Description | Type | Required | Default |
---|---|---|---|---|
api_version |
Specific API version | Path | Yes | None |
applicationSnapshotName |
Application snapshot that is to be imported | Path | Yes | None |
type |
Type of migration being performed, export or import |
Query | Yes | None |
Response
Supported Media Types: application/json
Table 6-39 Parameters
Parameters | Description |
---|---|
details |
In case of errors, details are published with the error string |
status |
See Migration Status Codes |
links |
Detailed information about the link |
href |
Links to API call |
action |
The HTTP call type |
rel |
Can be self and/or Job Status . If set to Job Status , you can use the href to get the status of the import operation
|
data |
Parameters as key value pairs passed in the request |
items |
Details about the resource |
source |
From where the navigation is being performed |
destination |
To where the navigation is being performed |
name |
Name of the task, usually "Task Information" |
links |
Details of the first URL to be requested to get the job details; rel is "Job Details" |
Example of Response Body
The following shows an example of the response body in JSON format.
Response 1 example when job is in progress:
{
"details":null,
"status":-1,
"links":[{
"data":null,
"action":"POST",
"rel":"self",
"href":"https://<SERVICE_NAME>-<TENANT_NAME>.<SERVICE_TYPE>.<dcX>.oraclecloud.com/interop/rest/11.1.2.3.600/applicationsnapshots/ss2/migrationq={type:"import"}"
},{
"data":null,
"action":"POST",
"rel":"Job Status",
"href":"https://<SERVICE_NAME>-<TENANT_NAME>.<SERVICE_TYPE>.<dcX>.oraclecloud.com/interop/rest/11.1.2.3.600/applicationsnapshots/ss2/migration/2"
}]
}
Response 2 example when export completes with errors:
{"status":1,
"items":[{
"source":"/Nasdaq/HSS-Shared Services",
"name":"Task Information",
"destination":"Shared Services",
"links":[{
"data":null,
"action":"GET",
"rel":"Job Details",
"href":"https://<SERVICE_NAME>-<TENANT_NAME>.<SERVICE_TYPE>.<dcX>.oraclecloud.com/interop/rest/11.1.2.3.600/applicationsnapshots/ss2/migration/1/0/details?limit=25&offset=0&msgtype=error"}]
},
{"source":"/Artifact Snapshot/HP-SS2",
"name":"Task Information",
"destination":"",
"links":[{
"data":null,
"action":"GET",
"rel":"Job Details",
"href":"https://<SERVICE_NAME>-<TENANT_NAME>.<SERVICE_TYPE>.<dcX>.oraclecloud.com/interop/rest/11.1.2.3.600/applicationsnapshots/ss2/migration/1/1/details?limit=25&offset=0&msgtype=error"}]
}],
"details":null,
"links":[{
"data":null,
"action":"POST",
"rel":"self",
"href":"https://<SERVICE_NAME>-<TENANT_NAME>.<SERVICE_TYPE>.<dcX>.oraclecloud.com/interop/rest/11.1.2.3.600/applicationsnapshots/ss2/migration/1"}
]}
}
Response 3 example when each type of task information is requested:
{"status":0,
"items":[{
"msgType":"error",
"artifact":"/Native Directory/Groups",
"msgText":"EPMIE-00069: Failed to find user during group children import. User user0026 not found. Please ensure that a user exists in the system.",
"msgCategory":"14000: Error reported.",
"msgCategory":"14000: Error reported."
},{
"msgType":"error",
"artifact":"/Native Directory/Groups",
"msgText":"EPMIE-00069: Failed to find user during group children import. User user0025 not found. Please ensure that a user exists in the system.",
"msgCategory":"14000: Error reported." }
],
"details":null,
"links":[{
"data":null,
"action":"GET",
"rel":"self",
"href":"https://<SERVICE_NAME>-<TENANT_NAME>.<SERVICE_TYPE>.<dcX>.oraclecloud.com/interop/rest/11.1.2.3.600/applicationsnapshots/ss2/migration/1/0/details?limit=2&msgtype=error&offset=25"},
{"data":null,
"action":"GET",
"rel":"next",
"href":"https://<SERVICE_NAME>-<TENANT_NAME>.<SERVICE_TYPE>.<dcX>.oraclecloud.com/interop/rest/11.1.2.3.600/applicationsnapshots/ss2/migration/1/0/details?limit=2&offset=27&msgType=error"},
{"data":null,
"action":"GET",
"rel":"prev",
"href":https://<SERVICE_NAME>-<TENANT_NAME>.<SERVICE_TYPE>.<dcX>.oraclecloud.com/rest/11.1.2.3.600/applicationsnapshots/ss2/migration/1/0/details?limit=2&offset=23&msgType=error
}]
}
LCM Import Sample Code
Example 6-32 Java Sample – lcmImport.java
Prerequisites: json.jar
Common Functions: See Common Helper Functions for Java
//
// BEGIN - Import an application snapshot
//
public void importSnapshot(String applicationSnapshotName) throws Exception {
JSONObject params = new JSONObject();
params.put("type","import");
String urlString = String.format("%s/interop/rest/%s/applicationsnapshots/%s/migration?q=%s", serverUrl, apiVersion, URLEncoder.encode(applicationSnapshotName, "UTF-8"), params.toString());
String response = executeRequest(urlString, "POST", null);
System.out.println("Import started successfully");
getMigrationJobStatus(fetchPingUrlFromResponse(response, "Job Status"), "POST");
}
//
// END - Import an application snapshot
//
Example 6-33 cURL Sample – LcmImport.sh
Prerequisites: jq (http://stedolan.github.io/jq/download/linux64/jq)
Common Functions: See Common Helper Functions for cURL
funcImportSnapshot() {
param=$(echo "{type:import}" | sed -f urlencode.sed)
url=$SERVER_URL/interop/rest/$API_VERSION/applicationsnapshots/$1/migration?q=$param
funcExecuteRequest "POST" $url
output=`cat response.txt`
status=`echo $output | jq '.status'`
if [ $status == -1 ]; then
echo "Started importing successfully"
funcGetMigrationStatus "POST"
else
error=`echo $output | jq '.details'`
echo "Error occurred. " $error
fi
funcRemoveTempFiles "respHeader.txt" "response.txt"
}
Example 6-34 Groovy Sample – LcmImport.groovy
Prerequisites: json.jar
Common Functions: See CSS Common Helper Functions for Groovy
def importSnapshot(applicationSnapshotName) {
def url;
try {
String snapshotName = URLEncoder.encode(applicationSnapshotName, "UTF-8");
JSONObject params = new JSONObject();
params.put("type","import");
url = new URL(serverUrl + "/interop/rest/" + apiVersion + "/applicationsnapshots/" + snapshotName + "/migration?q=" + params.toString());
} catch (MalformedURLException e) {
println "Malformed URL. Please pass valid URL"
System.exit(0);
}
response = executeRequest(url, "POST", null);
if (response != null) {
getMigrationJobStatus(fetchPingUrlFromResponse(response, "Job Status"), "POST");
}
}