In order to activate the Reverse lookup zone package in HCP, we need to take the following steps:


1. Add the ServiceDescription for CsDnsZoneReverse and CsDomainReverseZone in the provisioningdescription.xml (..\Atomia\AutomationServer\Common\ProvisioningDescriptions)


<complexService name="CsDnsZoneReverse" description="Wrapper for standard DNS zone">
        <complexServicePropertyList>
          <complexServiceProperty name="Zonename" description="DNS zone name" />
        </complexServicePropertyList>
        <partList>
          <partService name="DnsZone" min="1" max="1">
            <propertyTransformation>
              <simpleTransformer>
                <serviceProperty name="Zonename">
                  <expression>$CsDnsZoneReverse::Zonename</expression>
                </serviceProperty>
                <serviceProperty name="IsReverse">
                  <expression>true</expression>
                </serviceProperty>
              </simpleTransformer>
            </propertyTransformation>
          </partService>
        </partList>
        <init>
          <add partName="DnsZone">
          </add>
        </init>
      </complexService>


<complexService name="CsDomainReverseZone" description="Complex service no website and reverse DNS zone">
        <complexServicePropertyList>
          <complexServiceProperty name="Domain" description="Domain to enable parking for" key="true" />
          <complexServiceProperty name="DnsZone" description="Hostname DNS Zone" />
          <complexServiceProperty name="DnsZoneIsSlave" description="Is the DNS zone a slave zone" /><span class="fr-marker" data-id="0" data-type="false" style="display: none; line-height: 0;"></span><span class="fr-marker" data-id="0" data-type="true" style="display: none; line-height: 0;"></span>
          <complexServiceProperty name="DnsSlaveZoneMasterIP" description="Master IP for slave zones, otherwise ignored." defaultValue="" />
          <complexServiceProperty name="DomainPrefix" description="Hostname domain prefix" />
        </complexServicePropertyList>
        <partList>
          <partService name="CsDnsZoneReverse" max="1">
            <propertyTransformation>
              <simpleTransformer>
                <serviceProperty name="Zonename">
                  <expression>$CsDomainReverseZone::DnsZone</expression>
                </serviceProperty>
              </simpleTransformer>
            </propertyTransformation>
            <partList>
              <partService name="DnsZone">
                <partList>
                  <partService name="DnsZoneRecord">
                  </partService>
                </partList>
              </partService>
            </partList>
          </partService>
          <partService name="DnsSlaveZone" max="1">
          </partService>
        </partList>
        <init>
          <add partName="CsDnsZoneReverse" condition="$CsDomainReverseZone::DnsZoneIsSlave eq null">
          </add>
          <add partName="DnsSlaveZone" condition="$CsDomainReverseZone::DnsZoneIsSlave neq null">
            <initPropertyList>
              <propertyTransformation>
                <simpleTransformer>
                  <serviceProperty name="Zonename">
                    <expression>$CsDomainReverseZone::DnsZone</expression>
                  </serviceProperty>
                  <serviceProperty name="MasterIP">
                    <expression>$CsDomainReverseZone::DnsSlaveZoneMasterIP</expression>
                  </serviceProperty>
                </simpleTransformer>
              </propertyTransformation>
            </initPropertyList>
          </add>
        </init>
        <actionHooks>
          <onBeforeAddService type="Atomia.Provisioning.ActionHooks.BeforeAddService.UniquenessCheck, Atomia.Provisioning.ActionHooks.BeforeAddService"
                              argument="" />
          <onSwitchService type="Atomia.Provisioning.ActionHooks.SwitchService.DomainWebsiteSwitch, Atomia.Provisioning.ActionHooks.SwitchService"
                           argument="CsDnsZoneStandard" />
        </actionHooks>
      </complexService>


2. Change the CsDomainReverseZone's  partService DnsSlaveZone  to be greater than 0, or delete it completely.


<partService name="DnsSlaveZone" max="1">
          </partService>


  

3. Add the CsDomainReverseZone service to the ServiceList of the packages you want it included in.




4. Deploy the following transformation in HCP (the transformation file can be found in: ..\Atomia\HostingControlPanel\App_Data\Transformation Files)


<?xml version="1.0" encoding="UTF-8"?>
<appConfig xmlns="Atomia.Web.Base.Configs" xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform" xmlns:is="http://schemas.atomia.com/2009/06/configuration/identity" xmlns:hy="urn:nhibernate-configuration-2.2">
    <menusList>
        <menuItem id="menu007_7" name="ReverseZone" resourceKey="ReverseDns" action="Index" controller="ReverseDns" controllerAssembly="Atomia.Web.Plugin.Domains" controllerNamespace="Atomia.Web.Plugin.Domains.Controllers" xdt:Transform="InsertAfter(//*[local-name()='menuItem'][@id='menu007_1'])">
          <additionalRouteValuesList>
            <additionalRouteValues id="arv025" name="accountID" value="{accountID}" />
          </additionalRouteValuesList>
          <additionalItemPropertiesList>
            <additionalItemProperties id="aip039" name="packageLimitationSubItemService" value="ReverseZone" />
          </additionalItemPropertiesList>
        </menuItem>
    </menusList>
    <globalSettingsList>
        <globalSetting name="DnsReverseZonesEnabled" value="true" xdt:Locator="Match(name)" xdt:Transform="SetAttributes(value)"/>
    </globalSettingsList>
</appConfig>



Make sure to follow the guidelines for creating transformation files found in Atomia configuration files and transformations