Uploaded image for project: 'Blesta Core'
  1. Blesta Core
  2. CORE-4375

Domain Manager: Update importer to allow creating packages for each tld/module

    Details

    • Type: Improvement
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 5.1.0
    • Fix Version/s: 5.1.2, 5.2.0-b1
    • Component/s: None
    • Labels:
      None

      Description

      We support having multiple packages per TLD, but the package import tool only allows one per TLD. Instead we should allow one per TLD per module.

      The import will look like this:

      • Search for packages with registrar modules
      • Start a database transaction
      • Loop over the packages
      • Check if the package is valid for import
        • The package must have at least 1 yearly pricing term
      • Loop over each TLD assign to the package
      • Check if the TLD is valid for import
        • The TLD must not already exist with a package assigned that is for the same module as the package being checked
        • OR The setting to override existing packages must be enabled
          • In this case the current package should be deleted (This may result in the TLD being deleted)
          • If deletion fails, the whole import should fail with an error
      • Create a package with similar details assigned to the Domain Manager package group
        • The TLD/module_id must not have been imported from a different package already (keep a running list of tld => module_id => package_id)
      • If the setting to migrate services is enabled, move all services that match the TLD from the old package to the new one
        • If there are no more services assigned to the old package, mark it as inactive
      • End both loops
      • Loop over each imported tld
      • Loop over each imported module/package for the tld
      • If the TLD does not exist, create it using the first module/package in the list
        • This may result in an inactive package being set as the primary for the TLD which is fine
      • If the TLD already exists, add this package to the domains_packages table for the TLD
        • Mark this package as inactive

      We should update the import text to explain the new process, that not all packages will be refelcted on the tld list page, that you can switch between modules, and how to view hidden packages to confirm the import

        Activity

        jonathan Jonathan Reissmueller created issue -
        jonathan Jonathan Reissmueller made changes -
        Field Original Value New Value
        Rank Ranked higher
        jonathan Jonathan Reissmueller made changes -
        Sprint 5.2.0 Sprint 2 [ 135 ]
        jonathan Jonathan Reissmueller made changes -
        Rank Ranked lower
        jonathan Jonathan Reissmueller made changes -
        Sprint 5.2.0 Sprint 2 [ 135 ] 5.3.0 Sprint 1 [ 138 ]
        jonathan Jonathan Reissmueller made changes -
        Rank Ranked higher
        jonathan Jonathan Reissmueller made changes -
        Story Points 5
        jonathan Jonathan Reissmueller made changes -
        Sprint 5.3.0 Sprint 1 [ 138 ] 5.2.0 Sprint 2 [ 135 ]
        jonathan Jonathan Reissmueller made changes -
        Rank Ranked lower
        jonathan Jonathan Reissmueller made changes -
        Epic Link CORE-4304 [ 15830 ]
        jonathan Jonathan Reissmueller made changes -
        Description **This task needs more detail**

        We support having multiple packages per TLD, but the package import tool only allows one per TLD. Instead we should allow one per TLD per module.
        We support having multiple packages per TLD, but the package import tool only allows one per TLD. Instead we should allow one per TLD per module.

        The import will look like this:
        * Search for packages with registrar modules
        * Start a database transaction
        * Loop over the packages
        * Check if the package is valid for import
        ** The package must have at least 1 yearly pricing term
        * Loop over each TLD assign to the package
        * Check if the TLD is valid for import
        ** The TLD must not already exist with a package assigned that is for the same module as the package being checked
        ** OR The setting to override existing packages must be enabled
        *** In this case the current package should be deleted (This may result in the TLD being deleted)
        *** If deletion fails, the whole import should fail with an error
        * Create a package with similar details assigned to the Domain Manager package group
        ** The TLD/module_id must not have been imported from a different package already (keep a running list of tld => module_id => package_id)
        * If the setting to migrate services is enabled, move all services that match the TLD from the old package to the new one
        ** If there are no more services assigned to the old package, mark it as inactive
        * End both loops
        * Loop over each imported tld
        * Loop over each imported module/package for the tld
        * If the TLD does not exist, create it using the first module/package in the list
        ** This may result in an inactive package being set as the primary for the TLD which is fine
        * If the TLD already exists, add this package to the domains_packages table for the TLD
        ** Mark this package as inactive

        We should update the import text to explain the new process, that not all packages will be refelcted on the tld list page, that you can switch between modules, and how to view hidden packages to confirm the import
        jonathan Jonathan Reissmueller made changes -
        Assignee Jonathan Reissmueller [ jonathan ]
        jonathan Jonathan Reissmueller made changes -
        Status Open [ 1 ] In Progress [ 3 ]
        jonathan Jonathan Reissmueller made changes -
        Remaining Estimate 0 minutes [ 0 ]
        Time Spent 3 hours, 18 minutes [ 11880 ]
        Worklog Id 15126 [ 15126 ]
        jonathan Jonathan Reissmueller made changes -
        Status In Progress [ 3 ] In Review [ 5 ]
        Resolution Fixed [ 1 ]
        jonathan Jonathan Reissmueller made changes -
        Fix Version/s 5.1.2 [ 11715 ]
        Original Estimate 0 minutes [ 0 ]
        jonathan Jonathan Reissmueller made changes -
        Rank Ranked higher
        jonathan Jonathan Reissmueller made changes -
        Rank Ranked higher
        jonathan Jonathan Reissmueller made changes -
        Status In Review [ 5 ] Closed [ 6 ]

          People

          • Assignee:
            jonathan Jonathan Reissmueller
            Reporter:
            jonathan Jonathan Reissmueller
          • Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:
              Fix Release Date:
              20/Jul/21

              Time Tracking

              Estimated:
              Original Estimate - 0 minutes
              0m
              Remaining:
              Remaining Estimate - 0 minutes
              0m
              Logged:
              Time Spent - 3 hours, 18 minutes
              3h 18m

                Agile