Migration-scripts/cdk/lambda/quicksight_migration/quicksight_migration/batch_migration_lambda.py [288:343]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
            'SourceTemplate': {
                'DataSetReferences': dsref,
                'Arn': template['Arn']
            }
        }

        analysis = qs_utils.describe_analysis(targetsession, source_analysis_id)
        if 'Faild to describe analysis:' in analysis or analysis['Analysis']['Status'] == 'DELETED':
            if 'analysis/'+source_analysis_id+' is not found' in analysis or analysis['Analysis']['Status'] == 'DELETED':
                logger.info("Create new analysis: %s", source_analysis_name)
                try:
                    newanalysis = qs_utils.create_analysis(
                        targetsession, source_analysis_id, source_analysis_name,
                        targetadmin, source_entity, target_theme_arn
                    )
                except Exception as ex:
                    qs_utils.delete_template(sourcesession, source_analysis_id)
                    analysis_failed.append({"Error Type": "Create New Analysis Error",
                                    "AnalysisID": source_analysis_id,
                                    "Name": source_analysis_name,
                                    "Error": str(ex)})
                    continue
            else:
                analysis_failed.append({"Error Type": "Describe Target Analysis Error",
                                    "AnalysisID": source_analysis_id,
                                    "Name": source_analysis_name,
                                    "Error": str(analysis)})
                continue
        elif analysis['Analysis']['Status'] == "CREATION_FAILED":
            res = qs_utils.delete_analysis(sourcesession, source_analysis_id)
            try:
                newanalysis = qs_utils.create_analysis(
                    targetsession, source_analysis_id, source_analysis_name,
                    targetadmin, source_entity, target_theme_arn
                )
            except Exception as ex:
                qs_utils.delete_template(sourcesession, source_analysis_id)
                analysis_failed.append({"Error Type": "Create Analysis Error",
                                    "AnalysisID": source_analysis_id,
                                    "Name": source_analysis_name,
                                    "Error": str(ex)})
                continue
        else:
            logger.info("Analysis already exists, updating instead: %s", source_analysis_name)
            try:
                newanalysis = qs_utils.update_analysis(
                    targetsession, source_analysis_id, source_analysis_name, source_entity, target_theme_arn)
            except Exception as ex:
                qs_utils.delete_template(sourcesession, source_analysis_id)
                analysis_failed.append({"Error Type": "Update Analysis Error",
                                    "AnalysisID": source_analysis_id,
                                    "Name": source_analysis_name,
                                    "Error": str(ex)})
                continue
        time.sleep(20)
        res = qs_utils.describe_analysis(targetsession, newanalysis['AnalysisId'])
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



Migration-scripts/cdk/lambda/quicksight_migration/quicksight_migration/incremental_migration_lambda.py [394:450]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
            'SourceTemplate': {
                'DataSetReferences': dsref,
                'Arn': template['Arn']
            }
        }

        analysis = qs_utils.describe_analysis(targetsession, source_analysis_id)
        if 'Faild to describe analysis:' in analysis or analysis['Analysis']['Status'] == 'DELETED':
            if 'analysis/'+source_analysis_id+' is not found' in analysis or analysis['Analysis']['Status'] == 'DELETED':
                logger.info("Create new analysis: %s", source_analysis_name)
                try:
                    newanalysis = qs_utils.create_analysis(
                        targetsession, source_analysis_id, source_analysis_name,
                        targetadmin, source_entity, target_theme_arn
                    )
                except Exception as ex:
                    qs_utils.delete_template(sourcesession, source_analysis_id)
                    analysis_failed.append({"Error Type": "Create New Analysis Error",
                                    "AnalysisID": source_analysis_id,
                                    "Name": source_analysis_name,
                                    "Error": str(ex)})
                    continue
            else:
                analysis_failed.append({"Error Type": "Describe Target Analysis Error",
                                    "AnalysisID": source_analysis_id,
                                    "Name": source_analysis_name,
                                    "Error": str(analysis)})
                continue
        elif analysis['Analysis']['Status'] == "CREATION_FAILED":
            res = qs_utils.delete_analysis(sourcesession, source_analysis_id)
            try:
                newanalysis = qs_utils.create_analysis(
                    targetsession, source_analysis_id, source_analysis_name,
                    targetadmin, source_entity, target_theme_arn
                )
            except Exception as ex:
                qs_utils.delete_template(sourcesession, source_analysis_id)
                analysis_failed.append({"Error Type": "Create Analysis Error",
                                    "AnalysisID": source_analysis_id,
                                    "Name": source_analysis_name,
                                    "Error": str(ex)})
                continue

        else:
            logger.info("Analysis already exists, updating instead: %s", source_analysis_name)
            try:
                newanalysis = qs_utils.update_analysis(
                    targetsession, source_analysis_id, source_analysis_name, source_entity, target_theme_arn)
            except Exception as ex:
                qs_utils.delete_template(sourcesession, source_analysis_id)
                analysis_failed.append({"Error Type": "Update Analysis Error",
                                    "AnalysisID": source_analysis_id,
                                    "Name": source_analysis_name,
                                    "Error": str(ex)})
                continue
        time.sleep(20)
        res = qs_utils.describe_analysis(targetsession, newanalysis['AnalysisId'])
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



