Migrating Dummy Gate Subscriptions
Modified on: Fri, 21 Mar 2025 9:08 AMOriginal Publishing Date:
2023-08-29
Starting with version 21.0, CloudBlue no longer supports Dummy Gate. This means, that subscriptions that were provisioned using this gate must be either canceled or migrated. This article explains how to migrate such subscriptions.
Migration procedure consists of four main steps:
- Obtaining the migration script
- Exporting subscription information
- Preparing a mapping file for old and new resources
- Migrating subscriptions
Limitations
- Information about only the subscriptions meeting these criteria will be exported:
- The subscription is not terminated.
- One of the following is true about the subscription:
- It is based on the service template that uses Dummy Gate for provisioning.
- At least one of the resources in subscription is provisioned through Dummy Gate. In case of a composite resource, one of the included resources is provisioned through Dummy Gate.
- The following subscriptions will not be migrated despite they will appear in the exported file:
- The subscription is not active and running.
- The subscription does not have an active subscription period.
- There is a not completed order for the subscription.
- The subscription includes composite resources.
- The subscription includes resources with consumption type “Usage”.
- The subscription is based on a non-dummy-gate service template, but it includes resources provisioned through Dummy Gate.
- The subscription is based on a Dummy Gate service template, but it includes resources provisioned through another, non-dummy gate.
- The following limitations apply to all migrated subscriptions:
- The information about parent subscription will be lost for the migrated subscription.
- If the migrated subscription does not have a resource, resource rates will be added for that subscription during the migration.
Prerequisites
- CloudBlue Commerce version is 20.5.
- For each service template of the migrated subscriptions, a corresponding product line must be created using PLM.
- For each service plan of the migrated subscriptions, a corresponding plan must be created using PLM.
Notes on Creating Product Lines and Plans in PLM
General procedure on how to create product lines and plans can be found in the documentation: https://docs.cloudblue.com/cbc/20.5/premium/content/Product-Lifecycle-Management/introduction.htm.
Below are notes and recommendations that should be considered when creating product lines and plans in PLM as a replacement for Dummy Gate service templates and plans respectively.
- Configuration of the new plans created in PLM must be identical to the plans they are replacing. The following settings must not have any differences:
BillingPeriodType
BillingPeriodDuration
RecurringType
PricePeriod
SetupFeePerUnit
RecurringFeePerUnit
- Depending on the partner and the level at which the prices are defined, plans created at provider or operational unit level can be delegated either through importing the PPR file or through adding them as delegated to the reseller service template.
When the prices are set, the plans should be delegated down to the distribution chain.
Note: If there are resellers that could redefine plan prices at their level, it has to be decided if the prices can be synchronized throughout the distribution chain. - To ensure smooth migration, the prices in the new plans must be the same as in the original plans.
- If the original plans were promoted by parent plan, the respective new plans should be added to the existing promotions.
- If the original plans or resources in those plans were discounted, the respective new plans and resources should be linked to the same discounts.
- To avoid creation of multiple fulfilment requests that will require manual actions, fulfillment type of the original plans must be set to Automatic, while for product lines created in PLM it must be Instant. Once the migration is finished, the fulfillment type can be changed back to the original value.
Step 1. Obtain the Migration Script
The script is launched from the CloudBlue Commerce management node. To obtain the script, complete these steps:
- Log in to the management node.
- Download this script package.
- After you downloaded the script package, use this command:
# rpm -Uvh <path_to_script>
The script will be placed to /usr/local/pem/migrate_dummy_gate_subscriptions.py.
Step 2: Export Subscription Information
For the export purpose the downloaded script can be used with the following parameters:
# python /usr/local/pem/migrate_dummy_gate_subscriptions/migrate_dummy_gate_subscriptions.py [--csv-out FILE] [--type {s,p,t}] [ID [ID ...]]
- --csv-out. It is used to specify the file to which the information will be exported.
- --type. It indicates the export migration type. Possible values are: s – subscription, p – plan, t – service template.
- ID. It is required to pass the identifier of the subscription, service template or plan.
It can be used as follows:
- To export information on all subscriptions that are associated with a Dummy Gate. Below is the usage example for such a case:
# python /usr/local/pem/migrate_dummy_gate_subscriptions/migrate_dummy_gate_subscriptions.py --csv-out /tmp/dg_subs.csv
- To export information on all subscriptions on the specified templates.
# python /usr/local/pem/migrate_dummy_gate_subscriptions/migrate_dummy_gate_subscriptions.py --csv-out /tmp/dg_subs.csv --type t 1000071 1000469
- To export information on all subscriptions to the specified plans.
# python /usr/local/pem/migrate_dummy_gate_subscriptions/migrate_dummy_gate_subscriptions.py --csv-out /tmp/dg_subs.csv --type p 31
- To export information on specific subscriptions.
# python /usr/local/pem/migrate_dummy_gate_subscriptions/migrate_dummy_gate_subscriptions.py --csv-out /tmp/dg_subs.csv --type s 1000001 1000079 1000911
As a result, a file with the specified name will be created with the information about the subscriptions that use a Dummy Gate. You can explore the file to learn if there are issues with some of the subscriptions. The Comment column includes the necessary information.
Step 3: Preparing resource mapping file
Based on the information obtained in the previous step, prepare the mapping.csv file with the information to which new resources the old resources must be migrated.
Use the mapping_sample.csv file as an example.
The exported file from step 2 contains information about Dummy Gate subscriptions that should be used for preparation of new product lines and service plans. It can also be used as a base for mapping which is required to complete the migration.
Please note that the first column is SubscriptionID that indicates to which subscription the source and target plan information is related.
To create a mapping file, you need to specify target plan details for each existing Dummy Gate subscription. In the mapping file, for the columns:
- SourcePlanID
- SourcePlanName
- SourceSubscriptionPeriodID
- SourceTemplateID
- SourceResourceID_1
- SourceResourceID_2
you need to specify information about new, target service plans in these columns:
- TargetPlanID
- TargetPlanName
- TargetSubscriptionPeriodID
- TargetTemplateID
- TargetResourceID_1
- TargetResourceID_2
Note: The number of resource ID columns must be the same as the number of resource in the service template.
In the next steps, this mapping will be used during the migration process and any unnecessary information from the file will be ignored by the script.
The mapping file must contain information only about those subscriptions that you need to migrate. Subscriptions that should not be migrated or do not have a target plan configured must not be mentioned in this file.
Plans and plan periods mentioned in the mapping file must exist on the same distribution chain level as the corresponding target plans and plan periods.
Step 4: Migrate Subscriptions
During migration, for each migrated subscription, the script will do the following:
- Create a subscription in OSS.
- Configure upgrade path from the source to the target plan.
- Map Dummy Gate resource onto PLM in-house resource for correct resource limit migration.
- Place a change order to switch the subscription to the target plan.
Before you start the migration, make sure the FEA_NoRefundDuringPlanSwitch BSS feature is turned off.
You can use the following parameters when running the migration:
- --type. Use this parameter to narrow the migration scope. Even if the exported file lists more subscriptions for migration, only those you specify in this parameter will be migrated. Possible values are: s – subscription, p – plan, t – service template. If omitted, all eligible subscriptions from the input file will be migrated.
The script can be run in several ways:
- To migrate all eligible subscriptions listed in the CSV file, run this command:
# python /usr/local/pem/migrate_dummy_gate_subscriptions/migrate_dummy_gate_subscriptions.py --csv-in <path_to_mapping_csv_file>
-
To migrate a single subscription from the ones listed in the CSV file, run this command:
# python /usr/local/pem/migrate_dummy_gate_subscriptions/migrate_dummy_gate_subscriptions.py --csv-in <path_to_mapping_csv_file> --type s <subscription_id>
- To split subscription migration by the service template they are based on and run the migration for each subscription group separately, follow this example:
# python /usr/local/pem/migrate_dummy_gate_subscriptions/migrate_dummy_gate_subscriptions.py --csv-in mapping.csv --log 1000073.log --type t 1000073
# python /usr/local/pem/migrate_dummy_gate_subscriptions/migrate_dummy_gate_subscriptions.py --csv-in mapping.csv --log 1000074.log --type t 1000074
Note: You must wait for the previous migration script execution for one group before running it for another group.
- To group subscription migration by their service plan, and run the migration for each subscription group separately, follow this example:
# python /usr/local/pem/migrate_dummy_gate_subscriptions/migrate_dummy_gate_subscriptions.py --csv-in mapping.csv --log 101.log --type p 101
# python /usr/local/pem/migrate_dummy_gate_subscriptions/migrate_dummy_gate_subscriptions.py --csv-in mapping.csv --log 102.log --type p 102
# python /usr/local/pem/migrate_dummy_gate_subscriptions/migrate_dummy_gate_subscriptions.py --csv-in mapping.csv --log 103.log --type p 103
Note: You must wait for the previous migration script execution for one group before running it for another group.
If an order cannot be completed right away, the script will ask you to choose one of the options:
- Abort script execution.
- Skip the order and proceed to the next subscription.
- Wait 3 minutes for order completion. You can use this time to take manual steps if required, or to verify the order status.
Known issues and limitations
- In some cases, change orders can be generated within the migration and, as a result, the customers will be charged for the period from the migration date to the subscription period end. As a result, such change orders will not have a zero total, while the total of a correct change order created during migration must be zero.
- Change orders placed during migration can only be canceled before provisioning starts.