Migration Center lets you upload tables of data that you fill in manually using the templates provided. This is useful if your infrastructure has a limited number of assets and you want to manually create the data.
To import the tables that you manually filled in, perform the following steps:
- Download the templates from the list of available templates.
- Manually fill in the tables with the data from your infrastructure.
- Upload the tables to Migration Center.
Limitations
- The maximum size for a file upload is 100 Mb.
Available data templates
The following table provides you with the file templates that you can use to upload your infrastructure data to Migration Center. The templates contain sample data as a suggestion on how to fill in the table. For a detailed description of the required data format, see Import files specifications.
File name | Data type | Description |
---|---|---|
vmInfo.csv | Machine information | Use this template to provide information about individual assets, including CPU, memory, and other configuration parameters. This table is required every time you create a new import. |
perfInfo.csv | Performance data | Optional: Use this template to provide performance data for your assets in a time-series format. |
diskInfo.csv | Disk data | Optional: Use this template to provide information about disks and their utilization. |
tagInfo.csv | System tags | Optional: Use this template to assign labels to the assets. Labels must follow the requirements for labels in Google Cloud. |
For more information about the specifications for each file, see Import files specifications.
Upload the tables
To upload the files, follow these steps:
Console
Go to the Data import page.
Click Add data > Upload files.
In the Set up file upload section, enter the name of the file upload.
From the File format list, select Manually populated CSV templates.
Click Select files to upload, then select all the files that you want to upload.
To confirm and start uploading the files, click Upload files.
If the files are validated correctly, to create the assets from the files, click Import data, then click Confirm.
API
Create an import job.
POST https://migrationcenter.googleapis.com/v1alpha1/projects/PROJECT_ID/locations/REGION/importJobs?importJobId=IMPORT_JOB_ID { "asset_source": "projects/PROJECT_ID/locations/REGION/sources/SOURCE_ID" }
Replace the following:
PROJECT_ID
: ID of the project to create the import job.REGION
: Region to create the import job.IMPORT_JOB_ID
: ID of the new import job.SOURCE_ID
: ID of an existing source to be associated with the import job.
Optional: To confirm that the import job was correctly created, get the import job.
GET https://migrationcenter.googleapis.com/v1alpha1/projects/PROJECT_ID/locations/REGION/importJobs/IMPORT_JOB_ID
Create a import data file attached to the import job.
POST https://migrationcenter.googleapis.com/v1alpha1/projects/PROJECT_ID/locations/REGION/importJobs/IMPORT_JOB_ID/importDataFiles?import_data_file_id=DATA_FILE_ID { "format": "IMPORT_JOB_FORMAT" }
Replace the following:
DATA_FILE_ID
: ID of the new data fileIMPORT_JOB_FORMAT
:IMPORT_JOB_FORMAT_MANUAL_CSV
Get the data file.
GET https://migrationcenter.googleapis.com/v1alpha1/projects/PROJECT_ID/locations/REGION/importJobs/IMPORT_JOB_ID/importDataFiles/DATA_FILE_ID
Copy the URL from the
signedUrl
field from the response.Upload a file to the copied URL.
PUT -H 'Content-Type: application/octet-stream' --upload-file UPLOAD_FILE_PATH 'COPIED_URL'
Replace the following:
UPLOAD_FILE_PATH
: The local path of the file that is uploaded.COPIED_URL
: The copied signed URL from the previews steps.
Optional: Repeat steps 3-6 to create more data files under the same import job.
Optional: Get all data files of an import job.
GET https://migrationcenter.googleapis.com/v1alpha1/projects/PROJECT_ID/locations/REGION/importJobs/IMPORT_JOB_ID/importDataFiles
Validate the import job.
POST https://migrationcenter.googleapis.com/v1alpha1/projects/PROJECT_ID/locations/REGION/importJobs/IMPORT_JOB_ID:validate
Get the import job and view the validation report. If the state is
READY
, it is possible to continue to the next steps. Otherwise, you need to fix the job or specific files, this might require deleting files or uploading new ones.GET https://migrationcenter.googleapis.com/v1alpha1/projects/PROJECT_ID/locations/REGION/importJobs/IMPORT_JOB_ID
Run the import job.
POST https://migrationcenter.googleapis.com/v1alpha1/projects/PROJECT_ID/locations/REGION/importJobs/IMPORT_JOB_ID:run
Get the import job and view the execution report. If the state is
COMPLETED
, the job was executed successfully. Otherwise, if the job failed and in a terminal state, the execution report includes the errors. Create a new import job and apply the required changes.GET https://migrationcenter.googleapis.com/v1alpha1/projects/PROJECT_ID/locations/REGION/importJobs/IMPORT_JOB_ID
If you experience problems with your file upload, see how to troubleshoot common error messages.
Review the upload
After you upload your files, Migration Center validates them to check if they are formally correct. If the validation is successful, Migration Center then processes the data to create new assets, or update existing ones. You can check the status of your upload jobs from the Google Cloud console.
To review the status of your upload job, follow these steps:
- Go to the Data import page, then click File uploads.
- From the list of file imports, select the upload you want to review.
- On the file upload page, under Data import progress, review the Status for your uploaded files.
You can see your files in one of the following statuses.
List of statuses
- Completed. The import of your file was successful.
- Ready. Your file passed validation, and is ready to be imported.
- Pending. Your file is waiting for another file to finish processing.
- Running. Your file is processing.
- Validating. Your file is in the validation stage.
- Failed validation. Your file contains some errors. Fix the errors then try to upload your file again.
- Failed. Your file couldn't be imported.
Review error details
If you encounter errors after importing your files, you can review the error message directly in the Google Cloud console.
To review the errors of your upload job, follow these steps:
- Go to the Data import page, then click File uploads.
- Click the import file that shows a warning or error. The import file details page shows the complete list of errors.
On the import file details page, you can review the assets and data fields that cause the errors, and view a description of the error. Errors in the file import job might prevent Migration Center from creating new assets or update existing ones with the new changes. To fix the error, edit your files and create a new file import job to upload them again.
For more information about the possible error messages, see Troubleshoot file import errors.
Import files specifications
The following tables show the technical specifications for the template files used for manual import.
vmInfo
file
Column | Expected type | Description |
---|---|---|
MachineId | string | The virtual machine unique identifier. |
MachineName | string | The virtual machine display name. |
PrimaryIPAddress | string | The IP address of the machine. |
PrimaryMACAddress | string | The MAC address of the machine. This is used only to identify the machine. |
PublicIPAddress | string | The public IP address of the machine. |
IpAddressListSemiColonDelimited | List of messages | The list of allocated or assigned network addresses. |
TotalDiskAllocatedGiB | int64 | The total capacity of the disk. |
TotalDiskUsedGiB | int64 | The total amount of used space in the disk. |
MachineTypeLabel | string | The AWS or Azure machine type label. |
AllocatedProcessorCoreCount | int64 | Number of CPU cores in the virtual machine. |
MemoryGiB | int32 | The amount of memory of the virtual machine. |
HostingLocation | string | The location of the machine in AWS or Azure format. |
OsType | string | The OS of the machine. |
OsName | string | The OS of the machine. |
OsVersion | string | The version of the OS of the machine. |
MachineStatus | string | The power state of the machine. |
ProvisioningState | string | The provisioning state, for Azure VMs only. |
CreateDate | Timestamp | The creation timestamp of the machine. |
IsPhysical | string | If the machine is a physical or virtual machine. |
Source | message | The details of the source for AWS or Azure machines. |
diskInfo
file
Column | Expected type | Description |
---|---|---|
MachineId | string | The virtual machine unique identifier. |
DiskLabel | string | The disk label. |
SizeInGib | int64 | The total capacity of the disk. |
UsedInGib | int64 | The total amount of used space in the disk. |
StorageTypeLabel | string | The disk label type (for example BIOS or GPT). |
perfInfo file
Column | Expected type | Description |
---|---|---|
MachineId | string | The virtual machine unique identifier. |
TimeStamp | The timestamp when the sample was collected. | |
CpuUtilizationPercentage | float | The percentage of total CPU capacity used. It must be in the interval 0-100. |
MemoryUtilizationPercentage | float | The percentage of system memory used. It must be in the interval 0-100. |
UtilizedMemoryBytes | float | The total memory used in bytes. |
DiskReadOperationsPerSec | float | The average IOPS sampled over a short window. |
DiskWriteOperationsPerSec | float | The average IOPS sampled over a short window. |
NetworkBytesPerSecSent | float | The average network egress in B/s, sampled over a short window. |
NetworkBytesPerSecReceived | float | The average network ingress in B/s, sampled over a short window. |
tagInfo file
Column | Expected type | Description |
---|---|---|
MachineId | string | The virtual machine unique identifier. |
Key | string | The label key. |
Value | string | The label value. |
Parsing algorithm for labels
The labels you upload with the tagInfo file must follow the requirements for labels in Google Cloud. If the label doesn't conform to the requirements, Migration Center uses the following strategy to convert the label:
- For keys only, it removes all leading characters that are not letters of the English alphabet.
- It replaces all uppercase letters with lowercase letters.
- It replaces all invalid chars with underscores (
_
). - It truncates the label to a maximum of 62 characters.
- It adds the
_<CRC32>
suffix, calculated based on the original string.
A warning message appears every time a label is converted.
If the validation fails or if the key already exists, the import skips the row, and a warning message appears.
What's next
- Learn more about Migration Center collection methods.
- Learn how to manage your file uploads.