(Switch Plan Mode) Configuring Upgrade Paths

Important:

- Use the instructions in this section only for Switch Plan Mode.

- Switch Plan Mode is not supported for CSP Connect Extension.

After delegating service plans but before migrating subscriptions, you must ensure that the necessary Microsoft 365 NCE service plans are specified in the upgrade paths of Microsoft 365 CSP services plans under each vendor account participating in the migration.

With the connect_migration.py script, you can automatically configure the upgrade paths of Microsoft 365 CSP service plans, provided that the required vendor accounts have the necessary Microsoft 365 NCE service plans.

Note: If the script finds several suitable Microsoft 365 NCE service plans for the base Microsoft 365 CSP license of a source Microsoft 365 CSP subscription, it uses the Microsoft 365 NCE service plan whose service plan identifier is largest.

We recommend that you configure upgrade paths by following these steps:

  1. Run the script in dry-run execution mode. (No upgrade path configuration is actually performed in this execution mode.)

  2. Check the report and log files produced by the script. If there are any issues, analyze and fix them before running the script in production execution mode.

  3. Run the script in production execution mode.

  4. Check the report and log files produced by the script. If there are any issues, analyze and fix them.

  5. In BSS, check that the upgrade paths of the necessary Microsoft 365 CSP service plans are configured as expected. If there are any issues, analyze and fix them.

Parameters

The parameters of the script that you can use when configuring upgrade paths are in the table.

Parameter name Mandatory Description
--source-data Yes
  • The path to a CSV file that contains the identifiers of the subscriptions that you need to migrate. That file must have a column named OaSubscriptionId. In that column, you must specify the identifiers of those subscriptions. For example:

    subscription_ids.csv

    OaSubscriptionId
    1000098
    1000099
  • The path to a CSV file that contains the identifiers of the customer accounts whose subscriptions you need to migrate. That file must have a column named OaCustomerId. In that column, you must specify the identifiers of those customer accounts. For example:

    customer_account_ids.csv

    OaCustomerId
    1000098
    1000099

If you want the script to migrate only those CloudBlue Commerce subscriptions whose Microsoft subscriptions have a specific expiration date, you must:

  1. Use a CSV file where expiration dates are specified in the MsCommitmentEndDate column for the Microsoft subscriptions of the source CloudBlue Commerce subscriptions. To prepare that CSV file, follow the instructions in Getting Microsoft 365 Subscription Expiration Dates.

  2. Specify the expiration date you need in the for-expiration-date parameter when migrating subscriptions with the script, as described in Performing the Migration.

Note: The source-data, accounts, resellers, and subscriptions parameters are mutually exclusive. You must use only one of them when running the script.

--accounts Yes

The identifiers of the customer accounts whose subscriptions you need to migrate. These identifiers must be separated with commas and enclosed in single quotes. For example: '1000098,1000099'

Note: The source-data, accounts, resellers, and subscriptions parameters are mutually exclusive. You must use only one of them when running the script.

--resellers Yes

The identifiers of the reseller accounts whose direct customers have subscriptions intended for the migration. These identifiers must be separated with commas and enclosed in single quotes. For example: '1000098,1000099'

Note: The source-data, accounts, resellers, and subscriptions parameters are mutually exclusive. You must use only one of them when running the script.

--subscriptions Yes

The identifiers of the subscriptions you need to migrate. These identifiers must be separated with commas and enclosed in single quotes. For example: '1000098,1000099'

Note: The source-data, accounts, resellers, and subscriptions parameters are mutually exclusive. You must use only one of them when running the script.

--sourcemodel Yes

The type of the application or extension whose subscriptions you need to migrate. You must specify one of these values, depending on which application or extension is installed:

  • odin (for the Microsoft 365 application)

  • softcom (for the O365_APS2 application)

  • csp-extension (for CSP Connect Extension)

--connect-products Yes The path to a JSON configuration file that contains CloudBlue Connect product descriptions. You must specify the path to the file that you prepared in Preparing a JSON Configuration File with Target Product Descriptions. For example: connect_product_descriptions.json
--csp-nce-mapping Yes The path to a CSV configuration file that contains the mappings between Microsoft 365 CSP licenses and Microsoft 365 NCE licenses. You must specify the path to the file that you prepared in Preparing a CSV Configuration File with CSP to NCE License Mappings. For example: csp_to_nce_license_mappings.csv
--dry-run No

When specified, the script is run in dry-run execution mode. In this mode, the script performs checks and stores the results in report and log files. No actual actions are performed.

Important: We recommend that you first run the script in dry-run execution mode and check the report and log files produced by the script.

--verbose No When specified, the script writes more details to its log files.
--out-root-path No

The root directory for log and report files produced by the script.

By default, the script uses the directory where it is placed as the root directory.

Note: If the root directory that you specified does not exist, the script will create it.

--om-workload No Defines the maximum number of requests to the Order Management component's API that the migration script can perform simultaneously (from 1 to 16). By default, this parameter is set to 4.
--oa-api-user No The username of a user for connecting to the OSS and BSS XML-RPC APIs. You must specify it if HTTP authentication is turned on for the APIs.
--oa-api-user-password No The password of a user for connecting to the OSS and BSS XML-RPC APIs. You must specify it if HTTP authentication is turned on for the APIs.
--allow-fake-annual No

When specified, the script allows you to migrate Microsoft 365 CSP subscriptions that have one-year billing and subscription periods on the CloudBlue Commerce side and include Microsoft 365 CSP licenses that have one-month billing periods on the Microsoft side.

After the migration, new Microsoft 365 NCE subscriptions will have one-year billing and subscription periods on the CloudBlue Commerce side and include Microsoft 365 NCE licenses that have one-year billing periods on the Microsoft side.

Important: This ability is supported only for the migration of subscriptions of the O365_APS2 application in New Subscription migration mode.

Notes:

- The --allow-fake-annual and --monthly-term parameters are mutually exclusive. You must use only one of them when running the script.

- Do not specify this parameter when configuring upgrade paths or transferring DNS hosting services.

--monthly-term No

When specified, the script performs the migration so that the migrated subscriptions will have one-month billing and subscription periods regardless of their initial billing and subscription periods.

Important: This ability is supported only for New Subscription migration mode.

Notes:

- The --allow-fake-annual and --monthly-term parameters are mutually exclusive. You must use only one of them when running the script.

- Before using this parameter, make sure that you have the appropriate Microsoft 365 NCE service plans with one-month billing and subscription periods.

- Do not specify this parameter when configuring upgrade paths or transferring DNS hosting services.

-h No When specified, the script prints its parameters and their short description.

How To Run the Script

To run the script, go to the respective directory on your server and execute this command:

python connect_migration.py configure-upgrade [OTHER PARAMETERS]

Here are some examples of various scenarios:

  • Run the script in dry-run execution mode for the Microsoft 365 application:

    python connect_migration.py configure-upgrade --dry-run --source-data subscription_ids.csv --sourcemodel odin --connect-products connect_product_descriptions.json --csp-nce-mapping csp_to_nce_license_mappings.csv
  • Run the script in production execution mode for the Microsoft 365 application:

    python connect_migration.py configure-upgrade --source-data subscription_ids.csv --sourcemodel odin --connect-products connect_product_descriptions.json --csp-nce-mapping csp_to_nce_license_mappings.csv
  • Run the script in dry-run execution mode for the O365_APS2 application:

    python connect_migration.py configure-upgrade --dry-run --source-data subscription_ids.csv --sourcemodel softcom --connect-products connect_product_descriptions.json --csp-nce-mapping csp_to_nce_license_mappings.csv
  • Run the script in production execution mode for the O365_APS2 application:

    python connect_migration.py configure-upgrade --source-data subscription_ids.csv --sourcemodel softcom --connect-products connect_product_descriptions.json --csp-nce-mapping csp_to_nce_license_mappings.csv

Script Output

After each run, the script outputs upgrade path configuration statistics and the location of its log and report files to your console. For example:

...
All configure plans : ............................... outresult/cfgupg_20220415T093909/configure_upgrade_plans_results.csv
Success configure plans : ............................... outresult/cfgupg_20220415T093909/configure_upgrade_plans_success.csv
Errors configure plans : ................................ outresult/cfgupg_20220415T093909/configure_upgrade_plans_errors.csv
Errors data to file : ........................................................ outresult/cfgupg_20220415T093909/errors.csv
Warnings data to file : ...................................................... outresult/cfgupg_20220415T093909/warnings.csv
Log file name : ........................................................................... migration_2022-04-15.log

##############################################################
### dry-run mode ###
##############################################################

Statistics:
---------------------------------------------------------------
configure plans
---------------------------------------------------------------
total plans for configure .................................. 47
all configured plans ....................................... dry-run mode
fail configuring plans ..................................... dry-run mode

Done.
...

Log and Report Files

  • The script writes log records to files named migration_<YYYY-MM-DD>.log. Log records are appended to the same log file for each day.

  • After each run, the script generates these reports:

    • outresult/cfgupg_<TIMESTAMP>/load_input_data_warning.csv contains warnings that appear when input data is loaded.

      Note: This report is not created if input data is loaded without warnings.

    • outresult/cfgupg_<TIMESTAMP>/configure_upgrade_plans_results.csv contains detailed information about all processed service plans.

    • outresult/cfgupg_<TIMESTAMP>/configure_upgrade_plans_success.csv contains information about service plans that successfully completed processing.

    • outresult/cfgupg_<TIMESTAMP>/configure_upgrade_plans_errors.csv contains information about service plans that failed processing.

    • outresult/cfgupg_<TIMESTAMP>/errors.csv contains information about subscriptions that completed processing with errors.

    • outresult/cfgupg_<TIMESTAMP>/warnings.csv contains information about subscriptions that completed processing with warnings.