ECS - ECS PS Procedures-Centera To ECS Migration Via Data Transformation - 3.1.0.3 and Above
ECS - ECS PS Procedures-Centera To ECS Migration Via Data Transformation - 3.1.0.3 and Above
Topic
ECS PS Procedures
Selections
ECS Professional Services Procedures: Centera to ECS Migration via Data Transformation
REPORT PROBLEMS
If you find any errors in this procedure or have comments regarding this application, send email to
[email protected]
Copyright © 2022 Dell Inc. or its subsidiaries. All Rights Reserved. Dell Technologies, Dell, EMC, Dell
EMC and other trademarks are trademarks of Dell Inc. or its subsidiaries. Other trademarks may be
trademarks of their respective owners.
The information in this publication is provided “as is.” Dell Inc. makes no representations or warranties of
any kind with respect to the information in this publication, and specifically disclaims implied warranties of
merchantability or fitness for a particular purpose.
Use, copying, and distribution of any software described in this publication requires an applicable
software license.
This document may contain certain words that are not consistent with Dell's current language guidelines.
Dell plans to update the document over subsequent future releases to revise these words accordingly.
This document may contain language from third party content that is not under Dell's control and is not
consistent with Dell's current guidelines for Dell's own content. When such third party content is updated
by the relevant third parties, this document will be revised accordingly.
Page 1 of 78
Contents
Preliminary Activity Tasks .......................................................................................................3
Read, understand, and perform these tasks.................................................................................................3
Page 2 of 78
Preliminary Activity Tasks
This section may contain tasks that you must complete before performing this procedure.
Table 1 List of cautions, warnings, notes, and/or KB solutions related to this activity
519265: Review minimum ECS software version requirements for Transformation / Native migration.
534603: Review DTA 534603 - Potential data unavailability post migration of Centera data to ECS 3.3
and performing a cutover to ECS.
2. This is a link to the top trending service topics. These topics may or not be related to this activity.
This is merely a proactive attempt to make you aware of any KB articles that may be associated with
this product.
Note: There may not be any top trending service topics for this product at any given time.
Page 3 of 78
ECS Data Migration Pre-Implementation Process
WARNING: Object Data Migrations can be complex and without proper skills and experience,
there is a significant risk of Data Unavailability, Data Loss, Errors and Poor Performance. Any
of these can negatively impact CSAT.
There are many factors to consider before starting an object data migration including having
requisite knowledge and understanding of:
• Data Source Migration for legacy systems such as Centera/Atmos/Other
• ECS-Sync Configuration & Setup
• Third Party Application Attributes & Impacts
If you do not have experience with previous object migrations, it is strongly advised to contact
the Cloud Object Migration Specialists in Specialty Deploy before you start. This team has many
years of experience working with large and complex object migrations.
In order to qualify that you are ready to begin, copy the form below into an email, fill out the
details and email to [email protected]
They will review the scope and advise if your project requires additional expertise from the
Cloud Migration Specialist Team to safely complete.
No Item Response
1 Customer Name
2 Region/Theatre/Location
3 Source Storage Type
4 Source Storage Serial Numbers
(If Centera/Atmos)
5 Target Storage Type
6 List of Applications
7 Number of Sites
8 Protocol (CAS/HTTP/S3/File
9 Project Details
10 (ID, Propel Code, Start Date etc)
11 Project Manager
12 Technical Contacts
13 Level of Experience with Source
Storage (High/Medium/Low)
14 Level of Experience with ECS
Sync (High/Medium/Low)
15 Any Other Relevant Details
Page 4 of 78
Centera to ECS Migration via Data Transformation
Note: The next section is an existing PDF document that is inserted into this procedure. You may see
two sets of page numbers because the existing PDF has its own page numbering. Page x of y on the
bottom will be the page number of the entire procedure.
Page 5 of 78
MIGRATING CENTERA STORAGE DATA TO
ECS
Using the ECS Portal, REST APIs and the ECS
Command Line Interface
ABSTRACT
This document provides a description of the process for migrating data from Centera
storage systems into ECS systems, a description of the ECS Portal Migration menu, a
list of the REST APIs required and a discussion of the ECS CLI commands to use to for
accomplishing that migration.
June, 2018
Page 6 of 78
To learn more about how EMC products, services, and solutions can help solve your business and IT challenges, contact your local
representative or authorized reseller, visit www.emc.com, or explore and compare products in the EMC Store
EMC believes the information in this publication is accurate as of its publication date. The information is subject to change without
notice.
The information in this publication is provided “as is.” EMC Corporation makes no representations or warranties of any kind with
respect to the information in this publication, and specifically disclaims implied warranties of merchantability or fitness for a
particular purpose.
Use, copying, and distribution of any EMC software described in this publication requires an applicable software license.
For the most up-to-date listing of EMC product names, see EMC Corporation Trademarks on EMC.com.
VMware is a registered trademark or trademarks of VMware, Inc. in the United States and/or other jurisdictions. All other trademarks
used herein are the property of their respective owners.
Page 7 of 78
TABLE OF CONTENTS
INTRODUCTION ........................................................................................ 7
Audience ........................................................................................................... 7
Page 8 of 78
ECS CLI Command: Getting Profile Mappings for a Transformation ID ............................. 30
Set Profile Mappings for a Transformation ID ....................................................... 31
Curl Example: Setting Profile Mappings ....................................................................... 32
ECS CLI Command: Setting Profile Mappings ............................................................... 32
Set Transformation Sources .............................................................................. 33
Curl Example: Setting Transformation Sources ............................................................ 33
ECS CLI Command: Setting Transformation Sources .................................................... 34
Run a Transformation Pre-check Job ................................................................... 34
Curl Command: Running Transformation Pre-checks..................................................... 35
ECS CLI Command: Running Transformation Pre-checks ............................................... 35
Get Transformation Pre-check Results ................................................................ 35
Curl Example: Getting Transformation Pre-check Results .............................................. 37
ECS CLI Command: Getting Transformation Pre-check Results ...................................... 37
Run a Transformation Data Enumeration Job ....................................................... 37
Curl Example: Running Transformation Data Enumeration ............................................. 38
ECS CLI Command: Running Transformation Data Enumeration ..................................... 38
Get Transformation Data Enumeration Job Results ............................................... 38
Curl Command: Getting Transformation Data Enumeration Results ................................ 39
ECS CLI Command: Getting Transformation Data Enumeration Results ........................... 39
Run a Transformation Data Indexing Job ............................................................. 39
Curl Command: Running Transformation Data Indexing ................................................ 40
ECS CLI Command: Running Transformation Data Indexing .......................................... 40
Get Transformation Data Indexing Job Results ..................................................... 40
Curl Example: Getting Transformation Data Indexing Results ........................................ 41
ECS CLI Command: Getting Transformation Data Indexing Results ................................ 41
Run a Transformation Data Migration Job ............................................................ 42
Curl Command: Running Transformation Data Migration ............................................... 42
ECS CLI Command: Running Transformation Data Migration .......................................... 42
Get Transformation Data Migration Job Results .................................................... 43
Curl Command: Getting Transformation Data Migration Status ...................................... 43
ECS CLI Command: Getting Transformation Data Migration Status ................................. 44
Run a Transformation Data Reconciliation Job ...................................................... 44
Curl Command: Running Transformation Data Reconciliation ......................................... 44
Page 9 of 78
ECS CLI Command: Running Transformation Data Reconciliation ................................... 45
Get Transformation Data Reconciliation Status ..................................................... 45
Curl Command: Getting Transformation Data Reconciliation Status ................................ 46
ECS CLI Command: Getting Transformation Data Reconciliation Status ........................... 46
Get Transformation Data Reconciliation Mismatches ............................................. 46
Curl Command: Getting Transformation Data Reconciliation Mis-matches........................ 47
ECS CLI Command: Getting Transformation Data Reconciliation Mis-matches .................. 47
Page 10 of 78
Cancel a Transformation Data Migration Job ........................................................ 60
ECS CLI Command: Cancelling Transformation Data Migration ....................................... 60
Retry a Transformation Data Reconciliation Job .................................................... 61
ECS CLI Command: Retrying Transformation Data Reconciliation ................................... 61
Cancel a Transformation Data Reconciliation Job .................................................. 61
ECS CLI Command: Cancelling Transformation Data Reconciliation................................. 62
Run a Transformation Recovery Migration Job ...................................................... 62
Get a Transformation Recovery Migration Job Report ............................................ 63
Retry a Recovery Migration Job .......................................................................... 64
Cancel a Transformation Recovery Migration Job .................................................. 65
Page 11 of 78
INTRODUCTION
ECS 3.1.0.3 and later provides a data transformation engine which manages all Data Transformation activities. To perform a
transformation, ECS works in parallel with a legacy data storage solution to migrate data to ECS without interrupting access to ECS
services. All data traffic is directed to ECS and legacy storage is accessed only by ECS. The transformation engine currently supports
the migration of Centera data to ECS. When migrating Centera data, the legacy storage system is accessed only by ECS and all data
traffic is directed to ECS.
In order to switch the Customer Application to point to ECS rather than to Centera, do the following:
Register the Centera legacy storage in ECS as a part of Transformation session creation.
Modify the Application connection parameters to point to ECS instead of the Centera legacy storage.
NOTE: ECS supports a feature called VLAN separation, which allows customers to separate traffic on separate VLANs, by default
using these traffic types: Data, Replication and Management.
AUDIENCE
This document is intended for use by internal EMC personnel who have an in-depth understanding of Centera and ECS systems.
The process of Transforming data from a legacy storage system into ECS has the following phases:
NOTE: As per KB article 519265, use of ECS 3.1.0.3 or later is mandatory for data migration to ECS using this process.
1. Source Selection – Provision a legacy storage system into ECS as a System under Transformation, setting up pools/buckets and
users mapping.
2. Precheck – Determine that the System under Transformation is healthy and all configuration parameters are defined correctly.
Page 12 of 78
3. Enumeration - ECS creates a snapshot of data content in the legacy storage system.
4. Indexing - ECS processes the previously created snapshot and builds indexes of the legacy storage content.
6. Reconciliation– ECS verifies that all objects are migrated properly and can be read through ECS Object Services.
NOTE:
It is a service interruption. You still have to restart the application to call into ECS. However, you can use ECS instantly for
writes.
A CAS query will not list the data under Transformation after the Precheck and Enumeration phases of a Transformation.
After the Indexing is completed, you can perform a CAS query on the Transformation data in the Centera storage system.
Rollback implements by having the application recall the data or it will require engineering intervention to migrate the newly
written data back to Centera.
Transformation now supports D@RE and it also supports renaming the namespace. There is no need to use a third-party
tool like Datadobi.
ECS does not support bucket mapping, which means if a profile is linked to two different pools on Centera, the application
will only see the data in one of the buckets.
Multiple pools can be migrated in parallel. But only a single migration job is supported from a single cluster.
When migrating to a stand-alone ECS, the data can be reached after the Precheck phase. However, if migrating to an ECS
geo-federated environment, assuming migration was initiated on VDC1, you will not be able to reach the data on VDC2 until
the indexing phase has been completed on VDC1.
Emphasis transformation does not support Atmos CAS. You cannot change the compliance. If you ce+ on Centera, the
namespace will have compliance enabled which means privilege delete will continue to be disabled.
The essential step of every transformation configuration is the mapping of legacy storage source pools/buckets to ECS pools and
buckets. Proceed with bucket and user mapping once initial transformation parameters are submitted. For the matter of simplicity,
this document refers to legacy storage source pools/buckets as source buckets.
To map ECS peer buckets to the Centera source pools and buckets, ECS assigns a unique source identifier (or sourceId) to each
legacy storage bucket/user pair. Once ECS has assigned all sourceIds, ECS attempts to auto-create a series of ProfileMapping
instances that defines which ECS pair of bucket/user corresponds to particular source bucket/user. ECS marks each single
ProfileMapping per each source bucket as the one to enumerate objects from the corresponding source bucket. ECS uses the source
user/bucket part of the selected ProfileMapping in the background ECS task, to list source bucket content, read objects meta-data
and identify source user which owns the object. The ECS user part of the selected ProfileMapping becomes the ECS bucket owner,
which is an ECS user profile that owns the bucket and has privileged access rights to it.
To create and configure a Centera legacy storage data transformation, perform these essential activities:
Submit initial Centera Transformation properties including MAPI admin credentials, management and access node addresses.
See CREATE A TRANSFORMATION INSTANCE on Page 26.
Fetch a list of auto-calculated ProfileMappings by the ECS. See GET PROFILE MAPPINGS FOR A TRANSFORMATION ID on Page
29.
Page 13 of 78
Resolve user/bucket name conflicts in auto-calculated ProfileMappings if any. See SET PROFILE MAPPINGS FOR A
TRANSFORMATION ID on Page 29.
Mark any ProfileMappings which will be used for enumeration and become ECS bucket owners. See SET TRANSFORMATION
SOURCES on Page 33.
Once you have configured the ProfileMappings and marked the source mappings, proceed with the Pre-check phase.
PRE-CHECK PHASE
The Pre-check phase is a kick-off phase for the Transformation process. ECS validates all of the configuration information (mappings
and user access), checks that Legacy Storage matches all the requirements and finishes creation of ECS name-spaces, buckets, and
users.
Veto - some critical issue is found and the transformation session cannot be started until the issue is resolved.
Error - some issue exists which could compromise the transformation session if we start it; it is up to the ECS customer support
representative to decide whether or not is it safe to proceed further.
Success - everything is good and the data transformation session is officially started.
NOTE: In addition to the Pre-check results of Veto, Error, and Success, the Pre-Check phase may also result in a Warning which has
less of a severity than an Error. Such a Warning Pre-check result appears when a data transformation session is officially started but
there is a minor misalignment in ECS configuration which you must manually fix. For example, the transformation logic creates
several miscellaneous data and management ECS users in order to help with data verification in the Reconciliation phase. The Pre-
check phase generates a Warning if such users already exist but if those users' access rights are not high enough to successfully
access resources.
If the Pre-check result is not Success, use the Get Pre-checks Result REST API call to get information about the root cause. See GET
TRANSFORMATION PRE-CHECK RESULTS on Page 29.
NOTE: After you resolve any issues, use the Retry Pre-checks REST API call to trigger the Pre-Check phase again See RETRY
PRECHECKS on Page 52.
ENUMERATION PHASE
During the Enumeration phase, ECS builds a snapshot of the legacy storage content, including listing objects (and their meta-data)
and listing user access privileges. Every ECS node in the cluster performs this process simultaneously. Several source buckets could
be enumerated at the same time.
NOTE: The snapshot data that ECS builds is internal and cannot be accessed using the ECS REST API. Use the Get Enumeration
Result REST API call to monitor Enumeration process status and progress. The Data Enumeration process cannot finish on its own,
since the ECS system must constantly update the snapshot with newly ingested data which is propagated back to the Centera legacy
storage system.
The Enumeration process is automated and does not require ECS customer support representative attention while it is ongoing. If a
legacy storage content access issue appears during data enumeration, ECS records details, and presents them in the Enumeration
report. See GET FAILED ENUMERATION SOURCES on Page 55. See LIST INCOMPLETE CENTERA ENUMERATION RANGES on Page 56.
INDEX PHASE
The Indexing phase concludes the Transformation process. ECS uses the Data Indexing phase to learn about existing legacy storage
data.
ECS constructs various internal meta-data indexes. Beside indexes, no other information is created in ECS, which means that
referenced objects still remain in the legacy storage system. The ECS indexes are essential for the Migration phase and also makes
the Virtual Data Center (VDC) that hosts the Transformation process an owner of the indexed objects. ECS Indexed objects become
available across all VDCs in a replication group.
Page 14 of 78
NOTE: Once Indexing is complete, you can migrate the data from the Centera legacy storage into ECS.
MIGRATION PHASE
During the Migration phase, ECS copies data from the legacy storage system into ECS. The prerequisite for Migration is a successfully
completed Indexing phase.
NOTE: No space is reserved in ECS for objects migrating during the Data Indexing phase, thus any new data ingested into ECS
during the Migration phase, and thus coming to ECS in parallel with Migration can consume space needed for migrated objects
placement, which could cause Data Migration to fail.
RECONCILIATION PHASE
The Reconciliation phase verifies that all objects are migrated properly and can be read through ECS Object Services. ECS uses the
legacy storage enumeration snapshot when possible to read each migrated object through one of ECS Object Services, and employs
the legacy storage object hash code (CRC) to verify migrated object consistency. If no hash code is provided by the Centera legacy
storage API, ECS issues additional object read requests into the legacy storage system during the Data Reconciliation Phase.
ECS builds a list of any incorrectly migrated objects as the result of Reconciliation Phase. ECS does not automatically trigger an re-
migration attempts for incorrectly migrated objects. Re-migration is performed automatically for all failed objects.
NOTE: The Migration menu does not appear by default, as it is intended only for use by EMC Professional Services personnel.
NOTE: If you use this command sequence to turn on the Migration menu while the Manage menu is open, you may have to close
and re-open the Manage menu to see the Migration option.
10
Page 15 of 78
1. At the ECS Portal, select Manage > Migration. The Migration page appears.
11
Page 16 of 78
3. Assign a unique Name to this Transformation instance, along with a Description if needed.
4. In the IP field, enter the management IP address of the Centera legacy storage system from which you want to migrate data.
5. In the Admin Name field, enter the name of the Administrator account on the source Centera legacy storage system.
6. In the Password field, enter the password for the Administrator account on the source Centera legacy storage system.
NOTE: The Namespace field is optional. Enter a pre-defined namespace that adheres to your company’s naming convention
policy.
7. Select a Replication Group from among those available in the ECS configuration.
8. Select Save, and then Next. The Source Selection page appears.
12
Page 17 of 78
9. The transformation engine queries the source Centera legacy storage system for a list of pools and presents them in Pools.
Select a pool from that list.
NOTE: If the application reads from one pool and simultaneously writes to another pool, both pools cannot consolidate into a
single bucket.
13
Page 18 of 78
10. The transformation engine presents a list of possible profiles for that pool in Profiles. Select a profile from that list by clicking
the + sign next to that Profile name. The Source Pool and Target Bucket appear in the Pool Mapping table.
To change the name of the Target Bucket to which the Centera Source Pool is mapped, select the Target Bucket and chose Edit.
The Edit Pool Mapping dialog appears. Change the name and click Ok.
11. Select the Pool Mapping that you want to use. The Portal presents the related Source Profile and Target User pairing in the
Profile Mapping table.
To change the name of the Target User to which the Centera Source Profile is mapped, select the Target User and chose Edit.
12. The transformation engine displays the resultant mapping in the Sources table.
13. Select Save and then Next. The Migration Precheck page appears.
14
Page 19 of 78
COMMON FEATURES FOR ALL MIGRATION SESSION PAGES
The Migration pages for each of the data transformation phases (Precheck, Enumeration, Indexing, Migration, Reconciliation) all
present a Play button to begin the operations, a rolling percentage of progress, tables of appropriate object processing outcomes and
any related errors or messages.
NOTE: During the processing of a particular Transformation phase, the Migration UI queries the storage systems for progress every
60 seconds.
1. On the Migration: Precheck page, the status appears as Not Started if you have not attempted to Precheck the session.
If your Transformation session is not showing, select it from the Migration table, and choose the Edit action.
On the Migration: Precheck page, the UI displays the percentage completed for the operation.
15
Page 20 of 78
When it is finished, the UI displays the results as “Succeeded” or “Failed”, and show the number of items which Passed the Precheck,
caused Warnings, Errors or Vetoes.
If you have Warnings, Errors or Vetoes, you must resolve those issues in either the Centera or ECS systems. If you received the
result “Succeeded”, select to Next to move on to the next phase.
Use this PEA file for ECS application switchover. The application switchover is the point at which you change your application from
pointing to CAS storage to access ECS instead. For the CAS pool that you are migrating from Centera to ECS, you update the CAS
ConnectionString to point to the ECS IP address. After you update the CAS ConnectionString, your application can continue with the
normal I/O operations, but all new ingested data goes directly into to ECS and for any objects that have not been migrated yet from
Centera storage, ECS fetches directly from Centera.
16
Page 21 of 78
Choose the Centera Pool that you are using as the Source Pool for this Migration. The PEA file appears.
For more information about the CAS ConnectionString, see the Centera 4.3 online help.
17
Page 22 of 78
ENUMERATING DATA FOR A MIGRATION SESSION
To build a snapshot of the legacy storage content, including listing objects (and their meta-data) and user access privileges:
1. On the Migration: Enumeration page, the status appears as Not Started if you have not attempted to start the Enumeration
session.
If your Transformation session is not showing, select it from the Migration table, and choose the Edit action.
On the Migration: Enumeration page, the UI displays the percentage completed for the operation. When it is finished, the UI
displays the results as “Succeeded” or “Failed”, and shows the number of objects that it processed, the number of objects that were
unread and the number of objects which had Execution Errors. If you have unread objects or execution errors, resolve those issues
in either the Centera or ECS systems. If you received the result “Succeeded”, select to Next to move on to the next phase.
18
Page 23 of 78
INDEXING DATA FOR A MIGRATION SESSION
To construct the required internal meta-data indexes to the location of existing legacy storage data, begin an Indexing session by
doing the following:
1. On the Migration: Indexing page, the status appears as Not Started if you have not attempted to start the Enumeration
session.
If your Transformation session is not showing, select it from the Migration table, and choose the Edit action.
19
Page 24 of 78
2. Click the Play Button to begin the data Indexing operation.
On the Migration: Indexing page, the UI displays the percentage completed for the operation. When it is finished, the UI displays
the results as “Succeeded” or “Failed”, and show the number of objects that it processed, amount of data processed and a count of
any Execution Errors.
If you have execution errors, resolve those issues in either the Centera or ECS systems. If you received the result “Succeeded”,
select to Next to move on to the next phase.
20
Page 25 of 78
MIGRATING DATA FROM CENTERA INTO ECS
Perform the actual migration of data objects from the existing Centera legacy storage system into ECS:
NOTE: This phase takes the longest and may take a significant amount of time.
1. On the Migration page, the status appears as Not Started if you have not attempted to start the Migration session.
If your Transformation session is not showing, select it from the Migration table, and choose the Edit action.
On the Migration page, the UI displays the percentage completed for the operation. When it is finished, the UI displays the results
as “Succeeded” or “Failed”, and shows the amount of data processed and a count of any Execution Errors.
If you have execution errors, resolve those issues in either the Centera or ECS systems. If you succeeded, select Next.
21
Page 26 of 78
RECONCILING DATA MIGRATED FROM CENTERA INTO ECS
Validate that the data from the Centera legacy storage system now also exists in ECS:
3. On the Migration: Reconciliation page, the status appears as Not Started if you have not attempted to start the Migration
session.
If your Transformation session is not showing, select it from the Migration table, and choose the Edit action.
On the Migration: Reconciliation page, the UI displays the percentage completed for the operation. When it is finished, the UI
displays the results as “Succeeded” or “Failed”, and shows the number of objects that were unread and the number of objects which
had Execution Errors. If you have unread objects or execution errors, resolve those issues in either the Centera or ECS systems.
22
Page 27 of 78
VIEWING THE CENTERA TO ECS TRANSFORMATION REPORT
View the summary of the data transformation effort:
1. On the Migration: Report page, the transformation session summary report appears. The report includes source and migration
details. Reconciliation mismatches can also be downloaded from the report. Use the Export Report button to download the
report.
2. To download the list of Enumeration Objects, select the number of the total objects found for migration. The Download
Enumeration Object List dialog appears.
3. In the Select Resources list, choose your Centera Pool and click the “+” sign next to it. The pool appears in the Selected
Resources list.
23
Page 28 of 78
APPENDIX A: PRIMARY REST API SEQUENCE FOR MIGRATION
The following table contains an ordered list of the REST APIs to use in migrating data from Centera legacy storage into ECS.
STEP DESCRIPTION
24
Page 29 of 78
COMMON HEADERS FOR TRANSFORMATION OPERATIONS
The transformation APIs share these common header types:
25
Page 30 of 78
CREATE A TRANSFORMATION INSTANCE
Create Transformation with the specified properties.
Call:
POST /object/transformation
Principal Role:
SYSTEM_ADMIN
Request Body:
An object with following properties:
Response Code:
200 OK
Response Body:
An object with following properties:
{
"type": "centera",
"name": "Centera Transformation",
"description": "Centera transformation",
"replication_group": "urn:storageos:ReplicationGroupInfo:b3bf2d47-d732-457c-bb9b-d260eb53a76a:global",
"admin": "admin",
"password": "centera",
"management_ip": "10.247.195.19",
"port": 3682,
"access_ip": "10.247.195.19",
"datagram_port": 3218
}
The curl command to accomplish this is:
26
Page 31 of 78
Output:
{"transformation_id":"urn:Transformation:Centera:7b4985d2-1dd2-11b2-9ac4-9b1603e01545"}
Required Arguments:
[-hostname <HOSTIP>]
[-cookiefile <COOKIE_file>]
[-type centera]
[-admin <Centera_Admin_UserName>]
[-pw <Centera_Admin_Password>]
[-mgmt_ip <Centera_Management_Node_IP_addr>]
[-name <transformation_name>]
[-d <transformation_name>]
[-rg <replication_group_current>]
Optional Arguments
[-access_ip <Centera_Access_Node_IP_addr>] Default
[-mgmt_port 3682] Default
[-datagram_port 3218] Default
Call:
GET /object/transformation/<transformation_id>
Principal Role:
SYSTEM_ADMIN, SYSTEM_MONITOR
Prerequisites:
The following conditions must be met in order to call this operation.
Request Body:
None
Path Parameters:
NAME TYPE DESCRIPTION
transformation_id String Transformation identifier
Response Code:
200 OK
Response Body:
A TransformationInfo object
Response Example:
{
"phases": [
{
"phase_id": "Enumeration",
27
Page 32 of 78
"status": "Succeeded"
},
{
"phase_id": "Indexing",
"status": "Succeeded"
},
{
"phase_id": "PreCheck",
"status": "Succeeded"
}
],
"source_ids": [
"default/profile",
"pool1/transform_profile1"
],
"transformation_id": "urn:Transformation:Centera:a000s000-0aa0-00a0-0aa0-a0a00a000000"
}
Required Arguments:
[-hostname <HOSTIP>]
[-cookiefile <COOKIE_FILE>]
[-transId <TRANSID_CURRENT>]
A ProfileMapping defines a mapping between a pair of data instances defined as a Legacy Storage bucket and Legacy Storage user
and a pair of data instances defined as an ECS bucket and an ECS user. ECS needs this mapping to redirect requests to a Legacy
Storage bucket using correct Legacy Storage user credentials when some ECS bucket is accessed by an ECS user.
ECS logic, depending on a Legacy Storage type, may offer a set of auto-calculated Profile Mappings. ECS calculates the Profile
Mappings based on information about Legacy Storage buckets and users. This simplifies the transformation provision procedure in
cases where there are many Legacy Storage buckets and users to be transformed.
Auto-calculated Profile Mappings are less authoritative than manually created ones. If a target_user or target_bucket of an auto-
calculated Profile Mapping matches an already existing ECS user or ECS bucket, ECS marks that auto-calculated Profile Mapping as a
28
Page 33 of 78
conflicting one. You cannot start a transformation if conflicting Profile Mappings exist. You can over-ride a conflicting auto-calculated
Profile Mapping by setting a manual Profile Mapping entry for a Legacy Storage source profile.
Call:
GET /object/transformation/<transformation_id>/profile/mapping
Principal Role:
SYSTEM_ADMIN, SYSTEM_MONITOR
Prerequisites:
The following conditions must be met in order to call this operation.
Request Body:
None
Path Parameters:
NAME TYPE DESCRIPTION
transformation_id String Transformation identifier
Response Code:
200 OK
Response Body:
A ProfileMappingsRestRep object
Response Example:
{
"mappings" : [{
"profile_mapping": {
"source_id": "centeraProfile1",
"target_user": "profile",
"target_bucket": "default",
"target_namespace": "ecs_namespace"
},
"centera_profile": {
"source_id": "centeraProfile1",
"pool": "default",
"profile": "profile",
"mask": "rdqeDcwh"
}
}, {
"profile_mapping": {
"source_id": "centeraProfile3",
"target_user": "profile",
"target_bucket": "pool2",
"target_namespace": "ecs_namespace"
},
"centera_profile": {
"source_id": "centeraProfile3",
"pool": "pool2",
"profile": "profile",
"mask": "rdqeDcwh"
}
29
Page 34 of 78
}, {
"profile_mapping": {
"source_id": "centeraProfile3",
"target_user": "existingProfile",
"target_bucket": "existingBucket",
"target_namespace": "ecs_namespace"
},
"centera_profile": {
"source_id": "centeraProfile3",
"pool": "existingBucket",
"profile": "existingProfile",
"mask": "rdqeDcwh"
},
"conflicts": [ "userExists", "bucketExists" ]
},
]
}
Required Arguments:
[-hostname <HOSTIP>]
[-cookiefile <COOKIE_FILE>]
[-transId <TRANSID_CURRENT>]
30
Page 35 of 78
SET PROFILE MAPPINGS FOR A TRANSFORMATION ID
Use this API to set a ProfileMapping for one or several ECS user profiles to corresponding profiles from a Centera legacy storage
system.
A ProfileMapping defines a mapping between a pair of data instances defined as a legacy storage bucket and legacy storage user
mapped to a pair of data instances defined as an ECS bucket and an ECS user. ECS needs this mapping to redirect requests to a
legacy storage bucket using correct legacy storage user credentials when some ECS bucket is accessed by an ECS user.
Both pairs are correlated using the source_id identifier. For instance, if user A has access to two buckets B and C in the Legacy
Storage, then ECS should assign two source_id identifiers: sourceProfile1 and sourceProfile2, one for each legacy storage
bucket. Set two ECS Profile Mapping entries, one for each legacy storage bucket, as in this example:
{
"source_id": "centeraPool1/centeraProfile1",
"target_user": "ecs_user_a",
"target_bucket": "ecs_bucket_b",
"target_namespace": "ecs_namespace"
},
{
"source_id": "centeraPool2/centeraProfile2",
"target_user": "ecs_user_a",
"target_bucket": "ecs_bucket_c",
"target_namespace": "ecs_namespace"
}
NOTE: The Target namespace ("target_namespace": "ecs_namespace") should be the namespace created by this transformation.
If you specify some other existing namespace irrespective of the target namespace provided in your request body, ECS creates the
pool/profile in the namespace created by this transformation.
Passed ProfileMapping entries override any previously set or auto-calculated ones for the same source_id identifier. Overriding an
auto-calculated Profile Mapping with the same one effectively clears any existing conflicts. Use this call to resolve conflicting Profile
Mappings by setting them manually.
Call:
POST /object/transformation/<transformation_id>/profile/mapping
Principal Role:
SYSTEM_ADMIN
Prerequisites:
The following conditions must be met in order to call this operation.
Request Body:
A ProfileMappingsObjParam object with one of several ProfileMappingParam objects
31
Page 36 of 78
"target_bucket": "ecs_bucket_2",
"target_namespace": "ecs_namespace"
}, {
"source_id": "centeraPool3/centeraProfile3",
"target_user": "ecs_user_3",
"target_bucket": "ecs_bucket_3",
"target_namespace": "ecs_namespace"
}
]
}
Path Parameters:
NAME TYPE DESCRIPTION
transformation_id String Transformation identifier
Response Code:
200 OK
Response Body:
None
{
"mappings": [
{
"source_id": "buck_1/user_n1",
"target_user": "ecs_user_n1",
"target_bucket": "ecs_buck_1",
"target_namespace": "centera_7b4985d2-1dd2-11b2-9ac4-9b1603e01545"
}
]
}
The curl command to accomplish this is:
After you set the mapping, use the GET /object/transformation/<transformation_id>/profile/mapping API again to view the
revised state of the profile mapping information.
Required Arguments:
[-hostname <HOSTIP>]
[-cookiefile <COOKIE_FILE>]
[-transId <TRANSID_CURRENT>]
[-mp <TARGET_NAMESPACE>]
32
Page 37 of 78
SET TRANSFORMATION SOURCES
You must inform the ECS system as to which bucket you are transforming from the Centera legacy storage. Use this API to inform
ECS of the user profile to use for accessing the legacy bucket during the process of building an enumeration snapshot.
Call:
POST /object/transformation/<transformation_id>/transformationSources
Principal Role:
SYSTEM_ADMIN
Prerequisites:
The following conditions must be met in order to call this operation.
Request Body:
An object with source_ids property containing a list of source identifiers. See Get Profile Mappings for an example how to get
available source identifiers.
Path Parameters:
NAME TYPE DESCRIPTION
transformation_id String Transformation identifier
Response Code:
200 OK
Response Body:
A TransformationInfo object
Response Example:
{
"transformation_id": "urn:Transformation:Centera:a000s000-0aa0-00a0-0aa0-a0a00a000000"
}
Response Parameters:
NAME TYPE DESCRIPTION
transformation_id String Transformation identifier
{
"source_ids":
[
"buck_1/user_n1"
]
}
33
Page 38 of 78
The curl command to accomplish this is:
Output:
{"transformation_id":"urn:Transformation:Centera:7b4985d2-1dd2-11b2-9ac4-9b1603e01545"}
When you have set the values, use a similar call to get the transformation sources and check whether the transformation sources are
set correctly:
Required Arguments:
[-hostname <HOSTIP>]
[-cookiefile <COOKIE_FILE>]
[-transId <TRANSID_CURRENT>]
[-si <source_id_bucket>/<source_id_user>]
Call:
POST /object/transformation/<transformation_id>/precheck
Principal Role:
SYSTEM_ADMIN
Prerequisites:
The following conditions must be met in order to call this operation.
Request Body:
None
Path Parameters:
NAME TYPE DESCRIPTION
transformation_id String Transformation identifier
Response Code:
202 Accepted
Response Body:
A TransformationInfo object
34
Page 39 of 78
Response Example:
{
"transformation_id": "urn:Transformation:Centera:a000s000-0aa0-00a0-0aa0-a0a00a000000"
}
Output:
{"transformation_id":"urn:Transformation:Centera:7b4985d2-1dd2-11b2-9ac4-9b1603e01545"}
Required Arguments:
[-hostname <HOSTIP>]
[-cookiefile <COOKIE_FILE>]
[-transId <TRANSID_CURRENT>]
Veto - some critical issue is found and transformation cannot be started until the issue is resolved.
Error - some issue is found which could compromise transformation if started and it is up to the ECS customer support
representative to decide whether or not is it safe to proceed further.
If the Pre-check outcome is not success, get the root cause for the issue using the Get Pre-checks Result REST API call.
Call this API, ideally in a timed loop, until the API returns both "status": "Succeeded" and "progress": 100.0.
NOTE: If you have a pre-check error, and after you resolve whatever errors exists, you must re-try the Pre-Checks using the Retry
Pre-checks API call. See RETRY A TRANSFORMATION DATA PRE-CHECKS JOB on Page 52.
NOTE: After the pre-check succeeds, the mapped pools, profiles and namespace are visible in the ECS Portal.
Call:
GET /object/transformation/<transformation_id>/precheck
Principal Role:
SYSTEM_ADMIN, SYSTEM_MONITOR
35
Page 40 of 78
Prerequisites:
The following conditions must be met in order to call this operation.
Request Body:
None
Path Parameters:
NAME TYPE DESCRIPTION
transformation_id String Transformation identifier
Response Code:
200 OK
Response Body:
A PrecheckReport object
Response Example
{
"errors": [],
"status": "Succeeded",
"prechecks": [
{
"message": "",
"name": "DATA_INTEGRITY_CHECK",
"status": "OK"
},
{
"message": "",
"name": "HW_VERSION_CHECK",
"status": "OK"
},
{
"message": "",
"name": "SW_VERSION_CHECK",
"status": "OK"
},
{
"message": "",
"name": "COMPLIANCE_MODE_CHECK",
"status": "OK"
},
{
"message": "",
"name": "ADVANCED_RETENTION_CHECK",
"status": "OK"
},
{
"message": "",
"name": "UPGRADE_STATUS_CHECK",
"status": "OK"
}
36
Page 41 of 78
],
"progress": 100.0
}
Required Arguments:
[-hostname <HOSTIP>]
[-cookiefile <COOKIE_FILE>]
[-transId <TRANSID_CURRENT>]
Call:
POST /object/transformation/<transformation_id>/enumeration
Principal Role:
SYSTEM_ADMIN
Prerequisites:
The following conditions must be met in order to call this operation.
Request Body:
None
37
Page 42 of 78
Path Parameters:
NAME TYPE DESCRIPTION
transformation_id String Transformation identifier
Response Code:
202 Accepted
Response Body:
A TransformationInfo object
Response Example
{
"transformation_id": "urn:Transformation:Centera:a000s000-0aa0-00a0-0aa0-a0a00a000000"
}
Output:
{"transformation_id":"urn:Transformation:Centera:7b4985d2-1dd2-11b2-9ac4-9b1603e01545"}
Required Arguments:
[-hostname <HOSTIP>]
[-cookiefile <COOKIE_FILE>]
[-transId <TRANSID_CURRENT>]
Call this API, ideally in a timed loop, until the API returns both "status": "Succeeded" and "progress": 100.0.
Call:
GET /object/transformation/<transformation_id>/enumeration
Principal Role:
SYSTEM_ADMIN, SYSTEM_MONITOR
Prerequisites:
The following conditions must be met in order to call this operation.
Page 43 of 78
Request Body:
None
Path Parameters:
NAME TYPE DESCRIPTION
transformation_id String Transformation identifier
Response Code:
200 OK
Response Body:
Report object
Response Example:
{
"errors": [],
"status": "Succeeded",
"progress": 100.0
}
Output:
{"status":"Succeeded","errors":[],"progress":100.0,"start_time":"2015-10-07T08:41:16.398"}
Required Arguments:
[-hostname <HOSTIP>]
[-cookiefile <COOKIE_FILE>]
[-transId <TRANSID_CURRENT>]
Call:
POST /object/transformation/<transformation_id>/indexing
Principal Role:
SYSTEM_ADMIN
39
Page 44 of 78
Prerequisites:
The following conditions must be met in order to call this operation.
Request Body:
None
Path Parameters:
NAME TYPE DESCRIPTION
transformation_id String Transformation identifier
Response Code:
202 Accepted
Response Body:
A TransformationInfo object
Response Example
{
"transformation_id": "urn:Transformation:Centera:a000s000-0aa0-00a0-0aa0-a0a00a000000"
}
Output:
{"transformation_id":"urn:Transformation:Centera:7b4985d2-1dd2-11b2-9ac4-9b1603e01545"}
Required Arguments:
[-hostname <HOSTIP>]
[-cookiefile <COOKIE_FILE>]
[-transId <TRANSID_CURRENT>]
Call this API, ideally in a timed loop, until the API returns both "status": "Succeeded" and "progress": 100.0.
Call:
GET /object/transformation/<transformation_id>/indexing
40
Page 45 of 78
Principal Role:
SYSTEM_ADMIN, SYSTEM_MONITOR
Prerequisites:
The following conditions must be met in order to call this operation.
Request Body:
None
Path Parameters:
NAME TYPE DESCRIPTION
transformation_id String Transformation identifier
Response Code:
200 OK
Response Body:
A Report object
Response Example:
{
"errors": [],
"status": "Succeeded",
"progress": 100.0
}
Output:
{"status":"Succeeded","errors":[],"progress":100.0,"start_time":"2015-10-07T08:45:48.102"}curl
Required Arguments:
[-hostname <HOSTIP>]
[-cookiefile <COOKIE_FILE>]
[-transId <TRANSID_CURRENT>]
41
Page 46 of 78
RUN A TRANSFORMATION DATA MIGRATION JOB
Use this API to perform the Data Migration phase, which actually copies data from the Centera legacy storage into ECS.
NOTE: You must already have succeeded at the Data Indexing phase to begin the Data Migration phase.
Call:
POST /object/transformation/<transformation_id>/migration
Principal Role:
SYSTEM_ADMIN
Prerequisites:
The following conditions must be met in order to call this operation.
Request Body:
None
Path Parameters:
NAME TYPE DESCRIPTION
transformation_id String Transformation identifier
Response Code:
202 Accepted
Response Body:
A TransformationInfo object
Response Example:
{
"transformation_id": "urn:Transformation:Centera:a000s000-0aa0-00a0-0aa0-a0a00a000000"
}
Output:
{"transformation_id":"urn:Transformation:Centera:7b4985d2-1dd2-11b2-9ac4-9b1603e01545"}
Required Arguments:
[-hostname <HOSTIP>]
42
Page 47 of 78
[-cookiefile <COOKIE_FILE>]
[-transId <TRANSID_CURRENT>]
Call this API, ideally in a timed loop, until the API returns both "status": "Succeeded" and "progress": 100.0.
Call:
GET /object/transformation/<transformation_id>/migration
Principal Role:
SYSTEM_ADMIN, SYSTEM_MONITOR
Prerequisites:
The following conditions must be met in order to call this operation.
Request Body:
None
Path Parameters:
NAME TYPE DESCRIPTION
transformation_id String Transformation identifier
Response Code:
200 OK
Response Body:
A Report object
Response Example
{
"errors": [],
"status": "Succeeded",
"progress": 100.0
}
Output:
{"status":"Succeeded","errors":[],"progress":100.0,"start_time":"2015-10-07T08:51:05.573"}
43
Page 48 of 78
ECS CLI Command: Getting Transformation Data Migration Status
ecscli.py transformation get-migration
Required Arguments:
[-hostname <HOSTIP>]
[-cookiefile <COOKIE_FILE>]
[-transId <TRANSID_CURRENT>]
Call:
POST /object/transformation/<transformation_id>/reconciliation
Principal Role:
SYSTEM_ADMIN
Prerequisites:
The following conditions must be met in order to call this operation.
Request Body:
None
Path Parameters:
NAME TYPE DESCRIPTION
transformation_id String Transformation identifier
Response Code:
202 Accepted
Response Body:
A TransformationInfo object
Response Example:
{
"transformation_id": "urn:Transformation:Centera:a000s000-0aa0-00a0-0aa0-a0a00a000000"
}
Output:
{"transformation_id":"urn:Transformation:Centera:7b4985d2-1dd2-11b2-9ac4-9b1603e01545"}
44
Page 49 of 78
ECS CLI Command: Running Transformation Data Reconciliation
ecscli.py transformation do-reconcile
Required Arguments:
[-hostname <HOSTIP>]
[-cookiefile <COOKIE_FILE>]
[-transId <TRANSID_CURRENT>]
Call this API, ideally in a timed loop, until the API returns both "status": "Succeeded" and "progress": 100.0.
Call:
GET /object/transformation/<transformation_id>/reconciliation
Principal Role:
SYSTEM_ADMIN, SYSTEM_MONITOR
Prerequisites:
The following conditions must be met in order to call this operation.
Request Body:
None
Path Parameters:
NAME TYPE DESCRIPTION
transformation_id String Transformation identifier
Response Code:
200 OK
Response Body:
A Report object
Response Example:
{
"errors": [],
"status": "Succeeded",
"progress": 100.0
}
45
Page 50 of 78
Curl Command: Getting Transformation Data Reconciliation Status
curl -s -k -X GET -H Content-Type:application/json -H X-SDS-AUTH-TOKEN:$TOKEN -H ACCEPT:application/json
https://10.247.200.192:4443/object/transformation/urn:Transformation:Centera:7b4985d2-1dd2-11b2-9ac4-
9b1603e01545/reconciliation
Output:
{"status":"Succeeded","errors":[],"progress":100.0,"start_time":"2015-10-07T10:21:31.721"}
Required Arguments:
[-hostname <HOSTIP>]
[-cookiefile <COOKIE_FILE>]
[-transId <TRANSID_CURRENT>]
Call:
GET /object/transformation/<transformation_id>/reconciliation/mismatches
Principal Role:
SYSTEM_ADMIN, SYSTEM_MONITOR
Prerequisites:
The following conditions must be met in order to call this operation.
Request Body:
None
Path Parameters:
NAME TYPE DESCRIPTION
transformation_id String Transformation identifier
Query Parameters:
NAME TYPE REQUIRED DESCRIPTION
sourceId String yes source id
token String no Optional base64 encoded token string for pagination
Response Code:
200 OK
Response Body:
A ReconciliationMismatchesRestRep object
Response Example:
{
"mismatches": [],
"token": 100.0
}
46
Page 51 of 78
Response Body Parameters:
PATH TYPE MANDATORY DESCRIPTION
mismatches Array yes List of mismatch objects
mismatches[*] Object no Mismatch object
mismatches[*].namespace String yes Namespace of an object
mismatches[*].bucket_name String yes Bucket name of an object
mismatches[*].object_name String yes An object name
mismatches[*].object_version String yes An object version id
token String yes A token to fetch next portion of incomplete ranges
Output:
{"mismatches":[]}
Required Arguments:
[-hostname <HOSTIP>]
[-cookiefile <COOKIE_FILE>]
[-transId <TRANSID_CURRENT>]
Call:
GET /object/transformation
Principal Role:
SYSTEM_ADMIN, SYSTEM_MONITOR
Request Body:
None
Response Code:
200 OK
Response Body:
An object with following properties
47
Page 52 of 78
Response Example:
{
"transformations": [
{
"id": "urn:Transformation:Centera:a000s000-0aa0-00a0-0aa0-a0a00a000000",
"namespace": "centera_a000s000-0aa0-00a0-0aa0-a0a00a000000",
"replication_group": "urn:storageos:ReplicationGroupInfo:b3bf2d47-d732-457c-bb9b-
d260eb53a76b:global"
}
]
}
Required Arguments:
[-hostname <HOSTIP>]
[-cookiefile <COOKIE_FILE>]
NOTE: If you send a transformation get command without a -transId argument, ECS returns the current list of Transformations
that have been registed.
NOTE: You cannot change the Type of the transformation. You cannot modify properties once the Pre-Check phase passes.
Call:
PUT /object/transformation/<transformation_id>
Path Parameters:
NAME TYPE DESCRIPTION
transformation_id String Transformation identifier
Principal Role:
SYSTEM_ADMIN
Prerequisites:
The following conditions must be met in order to call this operation.
Request Body:
An object with following properties
48
Page 53 of 78
NAME TYPE REQUIRED DESCRIPTION
type String yes Type of the transformation, for instance - "centera", "s3", etc.
name String no Human friendly Transformation name
description String no Human friendly Transformation description
replication_group String no Id of existing replication group where Transformation will create
namespace and will put written/migrated objects
admin String no Centera MAPI Administrator login
password String no Centera MAPI Administrator password
management_ip String no Centera MAPI interface host IP address
port Integer no Centera MAPI interface port, default 3682
access_ip String no Centera Access Node IP address, default managment_ip
datagram_port Integer no Centera Access Node datagram port, default 3218
namespace String no Namespace for Transformation to use
Request Example:
{
"type": "centera",
"name": "Centera Transformation",
"description": "Centera transformation",
"replication_group": "urn:storageos:ReplicationGroupInfo:b3bf2d47-d732-457c-bb9b-d260eb53a76b:global",
"admin": "admin",
"password": "adminPassword",
"management_ip": "127.0.0.1",
"port": 3682,
"access_ip": "127.0.0.1",
"datagram_port": 3218,
"namespace": "transformation_namespace"
}
Response Code:
200 OK
Response Body:
An object with following properties:
Response Example:
{
"transformation_id": "urn:Transformation:Centera:a000s000-0aa0-00a0-0aa0-a0a00a000000"
}
Required Arguments:
[-transId <TRANSID_CURRENT>]
[-hostname <HOSTIP>]
[-cookiefile <COOKIE_file>]
[-type centera]
49
Page 54 of 78
[-admin <Centera_Admin_UserName>]
[-pw <Centera_Admin_Password>]
[-mgmt_ip <Centera_Management_Node_IP_addr>]
[-name <transformation_name>]
[-d <transformation_name>]
[-rg <replication_group_current>]
Optional Arguments
[-access_ip <Centera_Access_Node_IP_addr>] Default
[-mgmt_port 3682] Default
[-datagram_port 3218] Default
NOTE: This API does not delete ECS buckets and users if they contain migrated or written data.
Call:
DELETE /object/transformation/<transformation_id>
Principal Role:
SYSTEM_ADMIN
Prerequisites:
The following conditions must be met in order to call this operation.
Request Body:
None
Path Parameters:
PATH TYPE DESCRIPTION
transformation_id String Transformation identifier
Response Code:
202 Accepted
Response Body:
A TransformationInfo object
Response Example:
{
"phase_id": "Deletion",
"status": "InProgress"
}
50
Page 55 of 78
ECS CLI Command: Deleting a Transformation Session
ecscli.py transformation delete-transformation
Required Arguments:
[-hostname <HOSTIP>]
[-cookiefile <COOKIE_FILE>]
[-transId <TRANSID_CURRENT>]
Call:
DELETE /object/transformation/<transformation_id>/transformationSourcesId={sourceId}
Path Parameters:
PATH TYPE DESCRIPTION
transformation_id String Transformation identifier
Principal Role:
SYSTEM_ADMIN
Prerequisites:
The following conditions must be met in order to call this operation.
Query Parameters:
NAME TYPE DESCRIPTION
id String Source identifier
Request Example:
DELETE /object/transformation/urn:Transformation:Centera:a000s000-0aa0-00a0-0aa0-
a0a00a000000/transformationSources?id=default/profile&id=pool1/transform_profile1
Response Code:
200 OK
Response Body:
A TransformationInfo object
Response Example
{
"transformation_id": "urn:Transformation:Centera:a000s000-0aa0-00a0-0aa0-a0a00a000000"
}
51
Page 56 of 78
Call:
POST /object/transformation/<transformation_id>/precheck/retry
Principal Role:
SYSTEM_ADMIN
Prerequisites:
The following conditions must be met in order to call this operation.
Request Body:
None
Path Parameters:
PATH TYPE DESCRIPTION
transformation_id String Transformation identifier
Response Code:
202 Accepted
Response Body:
A TransformationInfo object
Response Example:
{
"transformation_id": "urn:Transformation:Centera:a000s000-0aa0-00a0-0aa0-a0a00a000000"
}
Required Arguments:
[-hostname <HOSTIP>]
[-cookiefile <COOKIE_FILE>]
[-transId <TRANSID_CURRENT>]
Call:
POST /object/transformation/<transformation_id>/precheck/cancel
Principal Role:
SYSTEM_ADMIN
Prerequisites:
The following conditions must be met in order to call this operation.
52
Page 57 of 78
The Transformation must exist.
Request Body:
None
Path Parameters:
PATH TYPE DESCRIPTION
transformation_id String Transformation identifier
Response Code:
200 OK
Response Body:
A TransformationInfo object
Response Example:
{
"transformation_id": "urn:Transformation:Centera:a000s000-0aa0-00a0-0aa0-a0a00a000000"
}
Required Arguments:
[-hostname <HOSTIP>]
[-cookiefile <COOKIE_FILE>]
[-transId <TRANSID_CURRENT>]
Call:
POST /object/transformation/<transformation_id>/enumeration/retry
Principal Role:
SYSTEM_ADMIN
Prerequisites:
The following conditions must be met in order to call this operation.
Request Body:
None
53
Page 58 of 78
Path Parameters:
PATH TYPE DESCRIPTION
transformation_id String Transformation identifier
Response Code:
202 Accepted
Response Body:
A TransformationInfo object
Response Example:
{
"transformation_id": "urn:Transformation:Centera:a000s000-0aa0-00a0-0aa0-a0a00a000000"
}
Required Arguments:
[-hostname <HOSTIP>]
[-cookiefile <COOKIE_FILE>]
[-transId <TRANSID_CURRENT>]
Call:
POST /object/transformation/<transformation_id>/enumeration/cancel
Principal Role:
SYSTEM_ADMIN
Prerequisites:
The following conditions must be met in order to call this operation.
Request Body:
None
Path Parameters:
PATH TYPE DESCRIPTION
transformation_id String Transformation identifier
Response Code:
200 OK
Response Body:
A TransformationInfo object
54
Page 59 of 78
Response Example:
{
"transformation_id": "urn:Transformation:Centera:a000s000-0aa0-00a0-0aa0-a0a00a000000"
}
Required Arguments:
[-hostname <HOSTIP>]
[-cookiefile <COOKIE_FILE>]
[-transId <TRANSID_CURRENT>]
Call:
GET /object/transformation/<transformation_id>/enumeration/failedSources
Principal Role:
SYSTEM_ADMIN, SYSTEM_MONITOR
Prerequisites:
The following conditions must be met in order to call this operation.
Request Body:
None
Path Parameters:
PATH TYPE DESCRIPTION
transformation_id String Transformation identifier
Response Code:
200 OK
Response Body:
A List of Sources
Response Example:
{
"transformation_id": "urn:Transformation:Centera:a000s000-0aa0-00a0-0aa0-a0a00a000000",
"source_ids": [
"default/profile"
]
}
55
Page 60 of 78
Response Body Parameters:
PATH TYPE DESCRIPTION
transformation_id String Transformation identifier
source_ids Array List of Legacy Storage source identifiers used for enumeration which has incomplete
enumeration results
source_ids[*] String Legacy Storage source identifier for which enumeration encountered incomplete results
Required Arguments:
[-hostname <HOSTIP>]
[-cookiefile <COOKIE_FILE>]
[-transId <TRANSID_CURRENT>]
Call:
GET /object/transformation/<transformation_id>/centera/incompleteEnumerationResults?sourceId={sourceId}
&token={token : (\\w+)?}
Principal Role:
SYSTEM_ADMIN, SYSTEM_MONITOR
Prerequisites:
The following conditions must be met in order to call this operation.
Request Body:
None
Path Parameters:
PATH TYPE DESCRIPTION
transformation_id String Transformation identifier
Query Parameters:
NAME TYPE REQUIRED DESCRIPTION
sourceId String yes source id, returned by 1.19 Get Failed Enumeration Sources
token String no Optional base64 encoded token string for pagination
Response Code:
200 OK
Response Body:
An IncompleteEnumerationResult object
56
Page 61 of 78
Response Example:
{
"transformation_id": "urn:Transformation:Centera:a000s000-0aa0-00a0-0aa0-a0a00a000000",
"source_id": "default/profile",
"incomplete_ranges": [
{
"from": 1435795200000
"to": 1436400000000
}
],
"token" : "Y29tcGxldGVseSBvcGFxdWUgdG9rZW4gc3RyaW5nCg=="
}
Required Arguments:
[-hostname <HOSTIP>]
[-cookiefile <COOKIE_FILE>]
[-transId <TRANSID_CURRENT>]
Call:
POST /object/transformation/<transformation_id>/indexing/retry
Principal Role:
SYSTEM_ADMIN
Prerequisites:
The following conditions must be met in order to call this operation.
Request Body:
None
57
Page 62 of 78
Path Parameters:
PATH TYPE DESCRIPTION
transformation_id String Transformation identifier
Response Code:
202 Accepted
Response Body:
A TransformationInfo object
Response Example:
{
"transformation_id": "urn:Transformation:Centera:a000s000-0aa0-00a0-0aa0-a0a00a000000"
}
Required Arguments:
[-hostname <HOSTIP>]
[-cookiefile <COOKIE_FILE>]
[-transId <TRANSID_CURRENT>]
Call:
POST /object/transformation/<transformation_id>/indexing/cancel
Principal Role:
SYSTEM_ADMIN
Prerequisites:
The following conditions must be met in order to call this operation.
Request Body:
None
Path Parameters:
PATH TYPE DESCRIPTION
transformation_id String Transformation identifier
Response Code:
200 OK
Response Body:
A TransformationInfo object
58
Page 63 of 78
Response Example:
{
"transformation_id": "urn:Transformation:Centera:a000s000-0aa0-00a0-0aa0-a0a00a000000"
}
Required Arguments:
[-hostname <HOSTIP>]
[-cookiefile <COOKIE_FILE>]
[-transId <TRANSID_CURRENT>]
Call:
POST /object/transformation/<transformation_id>/migration/retry
Principal Role:
SYSTEM_ADMIN
Prerequisites:
The following conditions must be met in order to call this operation.
Request Body:
None
Path Parameters:
PATH TYPE DESCRIPTION
transformation_id String Transformation identifier
Response Code:
202 Accepted
Response Body:
A TransformationInfo object
Response Example:
{
"transformation_id": "urn:Transformation:Centera:a000s000-0aa0-00a0-0aa0-a0a00a000000"
}
59
Page 64 of 78
Response Body Parameters:
PATH TYPE DESCRIPTION
transformation_id String Transformation identifier
Required Arguments:
[-hostname <HOSTIP>]
[-cookiefile <COOKIE_FILE>]
[-transId <TRANSID_CURRENT>]
Call:
POST /object/transformation/<transformation_id>/migration/cancel
Principal Role:
SYSTEM_ADMIN
Prerequisites:
The following conditions must be met in order to call this operation.
Request Body:
None
Path Parameters:
PATH TYPE DESCRIPTION
transformation_id String Transformation identifier
Response Code:
200 OK
Response Body:
A TransformationInfo object
Response Example:
{
"transformation_id": "urn:Transformation:Centera:a000s000-0aa0-00a0-0aa0-a0a00a000000"
}
60
Page 65 of 78
Required Arguments:
[-hostname <HOSTIP>]
[-cookiefile <COOKIE_FILE>]
[-transId <TRANSID_CURRENT>]
Call:
POST /object/transformation/<transformation_id>/reconciliation/retry
Principal Role:
SYSTEM_ADMIN
Prerequisites:
The following conditions must be met in order to call this operation.
Request Body:
None
Path Parameters:
PATH TYPE DESCRIPTION
transformation_id String Transformation identifier
Response Code:
202 Accepted
Response Body:
A TransformationInfo object
Response Example:
{
"transformation_id": "urn:Transformation:Centera:a000s000-0aa0-00a0-0aa0-a0a00a000000"
}
Required Arguments:
[-hostname <HOSTIP>]
[-cookiefile <COOKIE_FILE>]
[-transId <TRANSID_CURRENT>]
61
Page 66 of 78
Call:
POST /object/transformation/<transformation_id>/reconciliation/cancel
Principal Role:
SYSTEM_ADMIN
Prerequisites:
The following conditions must be met in order to call this operation.
Request Body:
None
Path Parameters:
PATH TYPE DESCRIPTION
transformation_id String Transformation identifier
Response Code:
200 OK
Response Body:
A TransformationInfo object
Response Example:
{
"transformation_id": "urn:Transformation:Centera:a000s000-0aa0-00a0-0aa0-a0a00a000000"
}
Required Arguments:
[-hostname <HOSTIP>]
[-cookiefile <COOKIE_FILE>]
[-transId <TRANSID_CURRENT>]
Call:
POST /object/transformation/<transformation_id>/recoveryMigration
Path Parameters:
PATH TYPE DESCRIPTION
transformation_id String Transformation identifier
Principal Roles:
This call has no restrictions.
62
Page 67 of 78
Prerequisites:
The following conditions must be met in order to call this operation.
The Transformation Data Reconciliation process must have already ended with failures.
Request Example:
{
HttpServletResponse
}
Response Code:
202 Accepted
Response Body:
A TransformationInfo object.
Call:
GET /object/transformation/<transformation_id>/recoveryMigration
Path Parameters:
PATH TYPE DESCRIPTION
transformation_id String Transformation identifier
Principal Role:
This call has no restrictions.
Prerequisites:
The following conditions must be met in order to call this operation.
Response Code:
202 Accepted
63
Page 68 of 78
Response Body:
Reply contains a summary of migration process.
Call:
POST /object/transformation/<transformation_id>/recoveryMigration/retry
Path Parameters:
transformation_idTransformation ID for the recovery migration that will be re-tried.
Principal Role:
This call has no restrictions.
Prerequisites:
The following conditions must be met in order to call this operation.
Request Body:
All parameters are required unless otherwise stated.
Response Code:
202 Accepted
Response Body:
A TransformationInfo object.
64
Page 69 of 78
Response Body Parameters:
FIELD TYPE REQUIRED DESCRIPTION
transformation_id URI yes ID of this transformation.
phase_id string optional Phase id of transformation. Possible values: PreCheck, Enumeration,
Indexing, Migration, Reconciliation, Deletion
Status string optional Phase status. Possible values: Pending, InProgress, Succeeded, Failed,
Canceled.
source_ids string optional List of sources (profile and bucket mappings) for the transformation.
Range=0-* Elements.
Namespace string optional Namespace for transformation. If namespace not provided by user, this
namespace will be used by transformation during bucket creation.
replication_group string optional Replication group for transformation. If bucket not provided by user, this
replication group will be used by transformation during bucket creation.
Call:
POST /object/transformation/<transformation_id>/recoveryMigration/cancel
Path Parameters:
PATH TYPE DESCRIPTION
transformation_id String Transformation identifier
Principal Roles:
This call has no restrictions.
Prerequisites:
The following conditions must be met in order to call this operation.
Request Body:
None.
Response Code:
202 Accepted
Response Body:
A TransformationInfo object.
65
Page 70 of 78
Response Body Parameters:
FIELD TYPE REQUIRED DESCRIPTION
transformation_id URI yes ID of this transformation
phase_id string Optional Phase id of transformation. Possible values: PreCheck, Enumeration,
Indexing, Migration, Reconciliation, Deletion.
Status string optional Phase status. Possible values: Pending, InProgress, Succeeded, Failed,
Canceled.
source_ids string optional List of sources (profile and bucket mappings) for transformation.
Range=0-* Elements.
namespace string optional Namespace for transformation. If namespace is not provided by the user,
this namespace will be used by transformation during bucket creation.
replication_group string optional Replication group for the transformation. If bucket is not provided by the
user, this replication group will be used by transformation during bucket
creation.
/var/log/transformsvc.log
Similarly, the Transformation Engine stores error messages about operations in a log file located at:
/var/log/transformsvc-error.log
The Transformation Engine creates and stores messages about performance and statistics in these locations:
/var/log/transformsvc-perf-counter.log
/var/log/transformsvc-stats.log
Page 71 of 78
ERROR PHASE SOLUTION
Version 4.1.0-3343-0-0 is not Precheck Migration is only support from the Centera side, when
supported the Centera version is 4.1.1 or later.
INTERNAL_ERROR and Migration Retry the migration once the ECS node is up.
PERSISTING_TASK_ENTRY_FAILED
Reconciliation failed and Read Reconciliation If there are clips that have been deleted in Centera after
Object failed you ran the Indexing phase, the Transformation engine
cannot reconcile the deleted clips. No remedies when
reconciliation fails for the deleted clips.
Reconciliation failed and Read Reconciliation Correct the corrupted clips and retry migration and
Object failed reconciliation, when reconciliation failed for corrupted
clips.
2016-08-24T07:04:09,329 [TaskScheduler-transform-TRANSFORMATION_TASK_RUNNER-ParallelExecutor-073]
ERROR IndexingTaskExecutor [ urn:Transformation:Centera:2c2ff11e-1dd2-11b2-bb89-9b7c56760934
Indexing index-demo/demo-0x09-0x0000000000000000 ] Indexi
ng task failed due to exception:
com.emc.storageos.data.transformation.TransformationInternalException: Failed to ingest key
at
com.emc.storageos.data.transformation.centera.CenteraEnumerationEntryHandler.apply(CenteraEnumerati
onEntryHandler.java:105)
at
com.emc.storageos.data.transformation.centera.CenteraEnumerationEntryHandler.apply(CenteraEnumerati
onEntryHandler.java:45)
at
com.emc.storageos.data.transformation.common.EnumerationEntryHandlerStatsDecorator.accept(Enumerati
onEntryHandlerStatsDecorator.java:36)
at
com.emc.storageos.data.transformation.common.EnumerationEntryHandlerStatsDecorator.accept(Enumerati
onEntryHandlerStatsDecorator.java:17)
at
com.emc.storageos.data.transformation.common.AbstractIndexingTaskExecutor.lambda$null$0(AbstractInd
exingTaskExecutor.java:70)
at
com.emc.storageos.data.transformation.statistic.FunctionWithTelemetry.apply(FunctionWithTelemetry.j
ava:57)
at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
at java.util.Iterator.forEachRemaining(Iterator.java:116)
at java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1801)
at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481)
at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)
at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)
at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.util.stream.LongPipeline.reduce(LongPipeline.java:438)
at java.util.stream.LongPipeline.sum(LongPipeline.java:396)
at java.util.stream.ReferencePipeline.count(ReferencePipeline.java:526)
67
Page 72 of 78
at
com.emc.storageos.data.transformation.common.AbstractIndexingTaskExecutor.lambda$processEntries$1(A
bstractIndexingTaskExecutor.java:72)
at
com.emc.storageos.data.transformation.statistic.ProcessingSpeedCollector.lambda$withSpeedometerFact
oryAndCollector$6(ProcessingSpeedCollector.java:115)
at
com.emc.storageos.data.transformation.statistic.ProcessingSpeedCollector$SpeedCollector.withSpeedCo
nsumer(ProcessingSpeedCollector.java:187)
at
com.emc.storageos.data.transformation.statistic.ProcessingSpeedCollector$SpeedPublisher.withSpeedCo
nsumer(ProcessingSpeedCollector.java:162)
at
com.emc.storageos.data.transformation.statistic.ProcessingSpeedCollector.withSpeedConsumer(Processi
ngSpeedCollector.java:141)
at
com.emc.storageos.data.transformation.statistic.ProcessingSpeedCollector.withSpeedometerFactoryAndC
ollector(ProcessingSpeedCollector.java:111)
at
com.emc.storageos.data.transformation.statistic.ProcessingSpeedCollector.withSpeedometerFactory(Pro
cessingSpeedCollector.java:88)
at
com.emc.storageos.data.transformation.common.AbstractIndexingTaskExecutor.processEntries(AbstractIn
dexingTaskExecutor.java:64)
at
com.emc.storageos.data.transformation.common.IndexingTaskExecutor.doExecute(IndexingTaskExecutor.ja
va:112)
at
com.emc.storageos.data.transformation.common.IndexingTaskExecutor.execute(IndexingTaskExecutor.java
:76)
at
com.emc.storageos.data.transformation.common.IndexingTaskExecutor.execute(IndexingTaskExecutor.java
:48)
at
com.emc.storageos.data.transformation.processing.Executors$SampledExecutableEntryValueExecutor.exec
ute(Executors.java:176)
at
com.emc.storageos.data.transformation.processing.Executors$SampledExecutableEntryValueExecutor.exec
ute(Executors.java:144)
at
com.emc.storageos.data.transformation.processing.ExecutableEntryExecutor.execute(ExecutableEntryExe
cutor.java:87)
at
com.emc.storageos.data.transformation.processing.ExecutableEntryExecutor.execute(ExecutableEntryExe
cutor.java:51)
at
com.emc.storageos.data.transformation.processing.ExecutableEntryExecutor.execute(ExecutableEntryExe
cutor.java:113)
at
com.emc.storageos.data.transformation.processing.parallel.ParallelExecutor$1.call(ParallelExecutor.
java:70)
at
com.emc.storageos.data.transformation.processing.parallel.ParallelExecutor$1.call(ParallelExecutor.
java:67)
at
com.emc.storageos.data.transformation.processing.parallel.ExecutableEntryTask.call(ExecutableEntryT
ask.java:39)
at
com.emc.storageos.data.transformation.processing.parallel.ExecutableEntryTask.call(ExecutableEntryT
ask.java:24)
at
com.emc.storageos.data.transformation.processing.TaskSchedulerAdapter$SampledSubmitter$1.call(TaskS
chedulerAdapter.java:217)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
68
Page 73 of 78
Caused by: java.lang.RuntimeException: java.lang.RuntimeException:
com.emc.storageos.data.object.exception.ObjectControllerException: Can not find queried in source
system object.
at com.emc.storageos.data.object.utils.ThrowingFunction.apply(ThrowingFunction.java:19)
at
com.emc.storageos.data.object.utils.PartialFunctions.composeAndApply(PartialFunctions.java:24)
at
com.emc.storageos.data.transformation.centera.CenteraUnderTransformationAdapter.lambda$queryObjectM
etadata$1(CenteraUnderTransformationAdapter.java:133)
at com.emc.storageos.data.object.utils.Throwings.processThrower(Throwings.java:25)
at
com.emc.storageos.data.transformation.centera.CenteraUnderTransformationAdapter.queryObjectMetadata
(CenteraUnderTransformationAdapter.java:133)
at
com.emc.storageos.data.transformation.SystemUnderTransformationAdapterFactory$SampledTransformation
Adapter.queryObjectMetadata(SystemUnderTransformationAdapterFactory.java:236)
at
com.emc.storageos.data.transformation.common.EnumerationEntryHandler.fetchMetadata(EnumerationEntry
Handler.java:165)
at
com.emc.storageos.data.transformation.centera.CenteraEnumerationEntryHandler.lambda$apply$0(Centera
EnumerationEntryHandler.java:74)
at
com.emc.storageos.data.transformation.processing.parallel.UnInterruptibleThread.invokeUnInterruptib
le(UnInterruptibleThread.java:142)
at
com.emc.storageos.data.transformation.processing.parallel.UnInterruptibleThread.tryInvokeUnInterrup
tible(UnInterruptibleThread.java:55)
at
com.emc.storageos.data.transformation.centera.CenteraEnumerationEntryHandler.apply(CenteraEnumerati
onEntryHandler.java:73)
... 40 more
Page 74 of 78
at com.emc.storageos.data.object.utils.ThrowingFunction.apply(ThrowingFunction.java:17)
at
com.emc.storageos.data.transformation.centera.CenteraUnderTransformationAdapter$IfExistsInSourceSys
tem.lambda$applyThrows$0(CenteraUnderTransformationAdapter.java:189)
at
com.emc.storageos.data.transformation.centera.CenteraConnectionPool.withConnection(CenteraConnectio
nPool.java:85)
at
com.emc.storageos.data.transformation.centera.CenteraUnderTransformationAdapter$IfExistsInSourceSys
tem.applyThrows(CenteraUnderTransformationAdapter.java:185)
at
com.emc.storageos.data.transformation.centera.CenteraUnderTransformationAdapter$IfExistsInSourceSys
tem.applyThrows(CenteraUnderTransformationAdapter.java:173)
at com.emc.storageos.data.object.utils.ThrowingFunction.apply(ThrowingFunction.java:17)
at
com.emc.storageos.data.object.utils.PartialFunctions.composeAndApply(PartialFunctions.java:24)
at
com.emc.storageos.data.transformation.centera.CenteraUnderTransformationAdapter.lambda$queryObjectM
etadata$1(CenteraUnderTransformationAdapter.java:133)
at com.emc.storageos.data.object.utils.Throwings.processThrower(Throwings.java:25)
at
com.emc.storageos.data.transformation.centera.CenteraUnderTransformationAdapter.queryObjectMetadata
(CenteraUnderTransformationAdapter.java:133)
at
com.emc.storageos.data.transformation.SystemUnderTransformationAdapterFactory$SampledTransformation
Adapter.queryObjectMetadata(SystemUnderTransformationAdapterFactory.java:236)
at
com.emc.storageos.data.transformation.common.EnumerationEntryHandler.fetchMetadata(EnumerationEntry
Handler.java:165)
at
com.emc.storageos.data.transformation.centera.CenteraEnumerationEntryHandler.lambda$apply$0(Centera
EnumerationEntryHandler.java:74)
at
com.emc.storageos.data.transformation.processing.parallel.UnInterruptibleThread.invokeUnInterruptib
le(UnInterruptibleThread.java:142)
at
com.emc.storageos.data.transformation.processing.parallel.UnInterruptibleThread.tryInvokeUnInterrup
tible(UnInterruptibleThread.java:55)
at
com.emc.storageos.data.transformation.centera.CenteraEnumerationEntryHandler.apply(CenteraEnumerati
onEntryHandler.java:73)
at
com.emc.storageos.data.transformation.centera.CenteraEnumerationEntryHandler.apply(CenteraEnumerati
onEntryHandler.java:45)
at
com.emc.storageos.data.transformation.common.EnumerationEntryHandlerStatsDecorator.accept(Enumerati
onEntryHandlerStatsDecorator.java:36)
at
com.emc.storageos.data.transformation.common.EnumerationEntryHandlerStatsDecorator.accept(Enumerati
onEntryHandlerStatsDecorator.java:17)
at
com.emc.storageos.data.transformation.common.AbstractIndexingTaskExecutor.lambda$null$0(AbstractInd
exingTaskExecutor.java:70)
at
com.emc.storageos.data.transformation.statistic.FunctionWithTelemetry.apply(FunctionWithTelemetry.j
ava:57)
at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
at java.util.Iterator.forEachRemaining(Iterator.java:116)
at java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1801)
at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481)
at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)
at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)
at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.util.stream.LongPipeline.reduce(LongPipeline.java:438)
at java.util.stream.LongPipeline.sum(LongPipeline.java:396)
at java.util.stream.ReferencePipeline.count(ReferencePipeline.java:526)
70
Page 75 of 78
at
com.emc.storageos.data.transformation.common.AbstractIndexingTaskExecutor.lambda$processEntries$1(A
bstractIndexingTaskExecutor.java:72)
at
com.emc.storageos.data.transformation.statistic.ProcessingSpeedCollector.lambda$withSpeedometerFact
oryAndCollector$6(ProcessingSpeedCollector.java:115)
at
com.emc.storageos.data.transformation.statistic.ProcessingSpeedCollector$SpeedCollector.withSpeedCo
nsumer(ProcessingSpeedCollector.java:187)
at
com.emc.storageos.data.transformation.statistic.ProcessingSpeedCollector$SpeedPublisher.withSpeedCo
nsumer(ProcessingSpeedCollector.java:162)
at
com.emc.storageos.data.transformation.statistic.ProcessingSpeedCollector.withSpeedConsumer(Processi
ngSpeedCollector.java:141)
at
com.emc.storageos.data.transformation.statistic.ProcessingSpeedCollector.withSpeedometerFactoryAndC
ollector(ProcessingSpeedCollector.java:111)
at
com.emc.storageos.data.transformation.statistic.ProcessingSpeedCollector.withSpeedometerFactory(Pro
cessingSpeedCollector.java:88)
at
com.emc.storageos.data.transformation.common.AbstractIndexingTaskExecutor.processEntries(AbstractIn
dexingTaskExecutor.java:64)
at
com.emc.storageos.data.transformation.common.IndexingTaskExecutor.doExecute(IndexingTaskExecutor.ja
va:112)
at
com.emc.storageos.data.transformation.common.IndexingTaskExecutor.execute(IndexingTaskExecutor.java
:76)
at
com.emc.storageos.data.transformation.common.IndexingTaskExecutor.execute(IndexingTaskExecutor.java
:48)
at
com.emc.storageos.data.transformation.processing.Executors$SampledExecutableEntryValueExecutor.exec
ute(Executors.java:176)
at
com.emc.storageos.data.transformation.processing.Executors$SampledExecutableEntryValueExecutor.exec
ute(Executors.java:144)
at
com.emc.storageos.data.transformation.processing.ExecutableEntryExecutor.execute(ExecutableEntryExe
cutor.java:87)
at
com.emc.storageos.data.transformation.processing.ExecutableEntryExecutor.execute(ExecutableEntryExe
cutor.java:51)
at
com.emc.storageos.data.transformation.processing.ExecutableEntryExecutor.execute(ExecutableEntryExe
cutor.java:113)
at
com.emc.storageos.data.transformation.processing.parallel.ParallelExecutor$1.call(ParallelExecutor.
java:70)
at
com.emc.storageos.data.transformation.processing.parallel.ParallelExecutor$1.call(ParallelExecutor.
java:67)
at
com.emc.storageos.data.transformation.processing.parallel.ExecutableEntryTask.call(ExecutableEntryT
ask.java:39)
at
com.emc.storageos.data.transformation.processing.parallel.ExecutableEntryTask.call(ExecutableEntryT
ask.java:24)
at
com.emc.storageos.data.transformation.processing.TaskSchedulerAdapter$SampledSubmitter$1.call(TaskS
chedulerAdapter.java:217)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
71
Page 76 of 78
Caused by: com.filepool.fplibrary.FPLibraryException: BlobID mismatch between client & server, blob
corrupt? (transid='vipr-host-10_77_33_80/468/READ_CLIP')
at com.filepool.fplibrary.FPClip.<init>(Unknown Source)
at
com.emc.storageos.data.transformation.centera.natives.FPClipExt.<init>(FPClipExt.java:20)
at
com.emc.storageos.data.transformation.centera.FpLibraryObjectsFactory.openFPClip(FpLibraryObjectsFa
ctory.java:80)
at
com.emc.storageos.data.transformation.centera.CenteraRemoteClipParser.doParseClip(CenteraRemoteClip
Parser.java:134)
... 59 more
72
Page 77 of 78
Dell Technologies Confidential Information version: 2.3.6.91
Page 78 of 78