Atomia Cloud Hosting Platform

14.9 Stable Release (September 2014)

2 views 0


The 14.9 release was released 2014-09-15. The largest changes and focus areas were:

  • Performance The main focus on the 14.9 release was performance. The release contains performance improvements across the board. More specifically we invested a large amount of time in improving the performance of the customer visible control panels, the Admin Panel and the scheduled tasks of Atomia Billing.
  • New OpenStack module We added a new module for integrating with Openstack through their native API. The old EC2-compatible module is still supported, but for Openstack users the new module will give a much improved experience and additional functionality. The new module is also verified working with the latest stable Openstack release Icehouse.

Software versions

The 14.9 release consists of the software versions listed below. Please note that you should always use the latest version available at the stable package repository, to make sure you get the latest security and stability updates.

  • Action Trail: 14.9.5367.14052
  • Admin Panel: 14.9.5371.11514
  • Automation Server: 14.9.5368.11164
  • Automation Server Client: 14.9.5367.13935
  • Customer Panel: 14.9.5367.12750
  • Atomia Billing: 14.9.5368.21324
  • Hosting Control Panel: 14.9.5371.11314
  • Atomia Identity: 14.9.5367.13820
  • Public Order Page: 14.9.5367.13745
  • Cloud Hosting Pack: 14.9.5371.11165
  • Atomia Domain Registration: 1.1.149
  • Atomia DNS: 1.1.29
  • Filesystem Agent: 14.9.1
  • Apache Agent: 14.9.1
  • DynDNS Agent: 14.9.1
  • Awstats Agent: 1.1.30

Upgrade instructions

Like in the previous versions the VPS manager is enabled by default. For these customers that is not using the VPS functionality the way to make sure it stays disabled has changed. In 14.9 you do this by making sure that the package can’t add a CsVPSInstance service. An example transformation for achieving this for the packages in our default provisioning description is:

<?xml version="1.0" encoding="utf-8"?>
<provisioningDescription xmlns:xdt="">
	<group maxCount="0" xdt:Transform="Insert"  xdt:Locator="XPath(//*/package[@name='PremiumPackage']/serviceLimitationList/globalLimitation)">
	  <service name="CsVPSInstance" />
	<group maxCount="0" xdt:Transform="Insert"   xdt:Locator="XPath(//*/package[@name='BasePackage']/serviceLimitationList/globalLimitation)">
	  <service name="CsVPSInstance" />
	<group maxCount="0" xdt:Transform="Insert"   xdt:Locator="XPath(//*/package[@name='DnsPackage']/serviceLimitationList/globalLimitation)">
	  <service name="CsVPSInstance" />


The list of changes since the last stable release (14.6, released at 2014-06-16) include:

New features

  • Atomia Billing: Added new method that fetches account details for multiple accounts.
  • Atomia Billing: Added API method GetPackageSubscriptions for getting package subscriptions for given customer.
  • Atomia Billing: Added IsUpgradableOrDowngradable API method for batch checking if subscriptions are upgradeable or downgradeable.
  • Atomia Billing: Added remaining renewal period calculator to common library.
  • Cloud Hosting Pack: Add new Openstack specific module.


  • Admin Panel: Fixed edit subscription action to use selected reseller when fetching subscription price not it’s parent.
  • Admin Panel: Fixed customer card with empty notes throwing exceptions to ActionTrail.
  • Admin Panel: List products for the selected reseller in the campaign editor.
  • Admin Panel: Updated validation plugin for product category based validation performance changes.
  • Admin Panel: Only validate reseller settings when CanCreateSubaccounts is checked.
  • Admin Panel: Fixed broken sorting in the scheduled task settings page.
  • Atomia Billing: Improved logic for adding setup fee order line for upgrade orders.
  • Atomia Billing: Improved logic for adding included package id on subscriptions.
  • Atomia Billing: Use recurring option from old subscription when creating new.
  • Atomia Billing: Fixed InvoiceReminderScheduledEventHandler configuration format to be compatible with admin panel GUI.
  • Atomia Billing: Fixed PayEx to not try to Complete transaction if AutoPay has been used.
  • Atomia Billing: Improved code that resolves reseller dispatcher email addresses.
  • Atomia Billing: Safely remove SERVICEID attribute in HandleCustomProductProvisioningInitiated.
  • Atomia Billing: Update to Atomia.Common.dll with HTML to PDF link fix.
  • Atomia Billing: Use account id instead of recipient address when fetching dispatcher mail.
  • Atomia Billing: Don’t generate invoices if invoice is null in subscription renewals.
  • Atomia Billing: Make sure plugin is enabled when fetching plugin configuration data.
  • Automation Server: Improved ListPhysicalServicesWithExpiredProperties query.
  • Cloud Hosting Pack: Serialize JSON in the Dashboard property in Installatron.
  • Customer Panel: Updated validation plugin for product category based validation performance changes.
  • Customer Panel: Calculate remaining renewal period locally to avoid unnecessary Billing API calls from subscriptions renewal tab.
  • Customer Panel: Fixed payment page checking order status too many times.
  • Customer Panel: Removed unnecessary check for upgrade/downgrade options for TLD and TransferTLD category subscriptions.
  • Customer Panel: Reduced the number of calls to Billing API when checking subscription Renewal tab.
  • Customer Panel: Fixed loading reseller theme customization CSS.
  • Customer Panel: Added jquery.blockUI.js and added init AtomiaShoppingCart() in MySubsciprions.
  • Hosting Control Panel: Fixed calling AutomationServer with invalid arguments after user session is reset.
  • Hosting Control Panel: Stop trying to cache selected hosting package on every request if no packages are found.
  • Public Order Page: Updated validation plugin for product category based validation performance changes.
  • Public Order Page: Updated Atomia.Common.dll with fixed FormatPhoneNumber code.


  • Admin Panel: Added PendingTermination and InProgress statuses to subscriptions page.
  • Admin Panel: Fetch all needed account details in one call in customer search.
  • Admin Panel: Updated AtomiaCommon for improved zip code validation.
  • Admin Panel: Replaced calls to GetPossibleStates with GetPossibleStateRules.
  • Admin Panel: Switched to use Rolling Flat File Trace Listener as default for logging to file.
  • Admin Panel: Don’t load data until needed on the customer card.
  • Atomia Billing: Introduced PackageGroupId order/subscription custom attribute which is used for bounding services to specific package in multi package setup.
  • Atomia Billing: Make invoice updating faster for situations where same customer have items for renewal
  • Atomia Billing: Add caches for items, currencies and holidays
  • Atomia Billing: Add context-lifetime cache for accounts and account details
  • Atomia Billing: Make account, account_details and subscription fetching eager
  • Atomia Billing: Added new scheduled event handler to handle subscription terminations.
  • Atomia Billing: Improved the speed of provisioning.
  • Atomia Billing: Modified GetDomainNameTransferStatus to use logical service properties for getting transfer status details.
  • Atomia Billing: Modified TransferInNotificationScheduledEventHandler to set task to run status back to approved if subscription is not updated (i.e. transfer is still pending).
  • Atomia Billing: Removed need for refresh to access Subscription.FriendlyId in new objects.
  • Atomia Billing: Connect directly to AtomiaAccount database instead of going through Account API.
  • Atomia Billing: New method GetPossibleStateRules, lists all possible state rules.
  • Atomia Billing: Made AccountTerminationScheduledEventHandler thread safe.
  • Atomia Billing: List all unique packages available in the GetPackages() method.
  • Atomia Billing: Provision renewal subscriptions without invoice one day before expiration date.
  • Atomia Billing: Added Account and AccountDetails caching for GetThemeCustomization.
  • Atomia Billing: Set next run time after the cron task is finished.
  • Atomia Billing: Improve update-handling of large number of tasks.
  • Atomia Billing: Added WcfChannelCache support for UserAPI calls.
  • Atomia Billing: Refactored GetMainSubscription in order to improve performance.
  • Atomia Billing: Improved performance of RuleBasedTaxPlugin by adding caching of Items and Accounts.
  • Atomia Billing: Removed AllowedSubscriptionStatesForRenewal configuration and replaced with AllowedSubscriptionsStatesForProvisioning which allows defining old subscription states for specific current subscription state. This should split old subscription states between renewals, upgrades and downgrades.
  • Cloud Hosting Pack: Test module now returns random VM statuses. First VM always is running.
  • Customer Panel: Add support for multiple hosting packages per account.
  • Customer Panel: Updated AtomiaCommon for improved zip code validation.
  • Customer Panel: Re-use HostingProducts cached products instead of creating local cache of products for subscription renewals.
  • Customer Panel: Use new Billing API method IsUpgradeableDowngradeable to check subscriptions in bulk instead of one by one.
  • Customer Panel: Extra services: fetch only extra service subscription
  • Customer Panel: Added some more caching for various account properties.
  • Customer Panel: Added ShowReceipInfoOnInvoicesList config option which reduces number of GetReceiptInfo Billing API calls when this data is not needed.
  • Customer Panel: Modified RefreshPrepaidCreditData method to refresh data only if prepaid credits are used.
  • Customer Panel: Modified ExtraDomains controller to reload only account details for Index.
  • Customer Panel: Added some conservative caching of main subscription.
  • Customer Panel: Added caching of user culture.
  • Customer Panel: Avoid some Billing API calls to refresh prepaid credits.
  • Customer Panel: Added caching of price list owner.
  • Customer Panel: Disabled refreshing prepaid credits if that payment method is not available.
  • Customer Panel: Switched to use Rolling Flat File Trace Listener as default for logging to file.
  • Hosting Control Panel: Modified PackageSelectHelper to load package data based on package subscriptions from Billing.
  • Hosting Control Panel: Made email account password requirements configurable.
  • Hosting Control Panel: Made FTP account password requirements configurable.
  • Hosting Control Panel: Made SSH account password requirements configurable.
  • Hosting Control Panel: Made MySQL and MSSQL user password requirements configurable.
  • Hosting Control Panel: Made website password protection password requirements configurable.
  • Hosting Control Panel: Made Exchange mailbox password requirements configurable.
  • Hosting Control Panel: Load web installer applications available for installation asynchronously to speed up initial page load.
  • Hosting Control Panel: VPS manager: VPS instances now have State: Suspended or OK.
  • Hosting Control Panel: Domain manager: Listing of domains is improved both in speed and reliability.
  • Hosting Control Panel: Switched to use Rolling Flat File Trace Listener as default for logging to file.
  • Hosting Control Panel: Replaced most calls to AccountAPI with BillingAPI calls.
  • Public Order Page: Updated AtomiaCommon for improved zip code validation.

API Changes

The full list of changes to the APIs since the last release is:

Keep in mind

No changes have been made to APIs not listed below.

Billing API

  • New methods
    • GetAccountForUserWithDetails
    • GetAccountDetailsForAccounts
    • GetAccountByName
    • GetLanguageByCode
    • SearchSubAccounts
    • GetPackageSubscriptions
    • GetPossibleStateRules
    • IsUpgradeableOrDowngradeable

Was this helpful?