#######################################################################################
#######################################################################################
#NIDD_VER: EQM17_1610_003_00
#EQM: EQM_EQM17_1610_003
#Migration from SBTS16.10 to SBTS17
#04.11.2016/ v0.1 /draft for new CUTool /L.Preuss
#09.11.2016/ v0.1 /EQM continue /L.Preuss
#14.11.2016/ v0.1 /EQM continue /L.Preuss
#15.11.2016/ v0.1 /EQM continue /L.Preuss
#16.11.2016/ v0.1 /EQM done /L.Preuss
#######################################################################################

#######################################################################################
#######################################################################################
#If SCF version == 16.10 proceed with migration, else abort this ruleset

for_objects "SBTS"
	define "sbtsRoot" $current_dist_name

if ( objects_count "SBTS" ) == 0 abort_file
	
if not ( get_version sbtsRoot ) == "SBTS16.10" 
	begin
		abort_file
	end
#######################################################################################

#######################################################################################
#######################################################################################
#create mrbtsRoot and apeqmPath for later usage

for_objects "MRBTS"
	begin
		define "mrbtsRoot" $current_dist_name
	end
	
define "apeqmPath" mrbtsRoot JOIN "/EQM-1/APEQM-1/"
#######################################################################################

#######################################################################################
#######################################################################################
#add EQM, APEQM, CABINET, HWTOP MOs

add_object mrbtsRoot JOIN "/EQM-1"
set_operation mrbtsRoot JOIN "/EQM-1" "create"
add_object mrbtsRoot JOIN "/EQM-1/APEQM-1"
set_operation mrbtsRoot JOIN "/EQM-1/APEQM-1" "create"
add_object mrbtsRoot JOIN "/EQM-1/APEQM-1/CABINET-1"
set_operation mrbtsRoot JOIN "/EQM-1/APEQM-1/CABINET-1" "create"
if param_exist "CABINET-2/SMOD-1" "prodCodePlanned" 
begin
	add_object mrbtsRoot JOIN "/EQM-1/APEQM-1/CABINET-2"
	set_operation mrbtsRoot JOIN "/EQM-1/APEQM-1/CABINET-2" "create"
end
add_object mrbtsRoot JOIN "/EQM-1/HWTOP-1"
set_operation mrbtsRoot JOIN "/EQM-1/HWTOP-1" "create"
#TODO: set proper versions
#######################################################################################

#######################################################################################
#######################################################################################
#fix SMODs distName

for_objects "CABINET/SMOD"
	begin
		copy_object $current_dist_name apeqmPath JOIN $current_dist_name
		del_object $current_dist_name
	end
#######################################################################################

#######################################################################################
#######################################################################################
#fix BBMODs distName

for_objects "CABINET/BBMOD"
	begin
		copy_object $current_dist_name apeqmPath JOIN $current_dist_name
		del_object $current_dist_name
	end
#######################################################################################

#######################################################################################
#######################################################################################
#fix BBMODs parameters

for_objects "MRBTS/EQM/APEQM/CABINET/BBMOD"
	begin
		add_param $current_dist_name "eutraSupport" "false"
		add_param $current_dist_name "geranSupport" "false"
		add_param $current_dist_name "utranSupport" "false"
	end

#######################################################################################

#######################################################################################
#######################################################################################
#fix RMODs distName

for_objects "RMOD"
	begin
		copy_object $current_dist_name apeqmPath JOIN $current_dist_name
		del_object $current_dist_name
	end
#######################################################################################

#######################################################################################
#######################################################################################
#add RSL MO under each RMOD / optional parameters ommited 

for_objects "MRBTS/EQM/APEQM/RMOD"
	begin
		add_object $current_dist_name JOIN "/RSL-1"
		add_param $current_dist_name JOIN "/RSL-1" "dcVoltageEnabled" "true"
		add_param $current_dist_name JOIN "/RSL-1" "hdlcCommunicationAllowed" "true"
	end
#######################################################################################


#######################################################################################
#######################################################################################
#fix CABLINKs distName

for_objects "EQM/HWTOP/CABLINK"
	begin
		copy_object $current_dist_name mrbtsRoot JOIN "/" JOIN $current_dist_name
		del_object $current_dist_name
	end
#######################################################################################

#######################################################################################
#######################################################################################
#fix CABLINKs endPoints and linkSpeed

for_objects "MRBTS/EQM/HWTOP/CABLINK"
	begin
		if ( get_param $current_dist_name "firstEndpointDN" ) == "SMOD-1" add_param $current_dist_name "firstEndpointDN" mrbtsRoot JOIN "/" JOIN "EQM-1/APEQM-1/CABINET-1/SMOD-1"
		if ( get_param $current_dist_name "firstEndpointDN" ) == "SMOD-2" add_param $current_dist_name "firstEndpointDN" mrbtsRoot JOIN "/" JOIN "EQM-1/APEQM-1/CABINET-2/SMOD-1"
		if ( get_param $current_dist_name "secondEndpointDN" ) == "SMOD-1" add_param $current_dist_name "secondEndpointDN" mrbtsRoot JOIN "/" JOIN "EQM-1/APEQM-1/CABINET-1/SMOD-1"
		if ( get_param $current_dist_name "secondEndpointDN" ) == "SMOD-2" add_param $current_dist_name "secondEndpointDN" mrbtsRoot JOIN "/" JOIN "EQM-1/APEQM-1/CABINET-2/SMOD-1"
		if ( get_param $current_dist_name "firstEndpointDN" ) == "BBMOD-1" add_param $current_dist_name "firstEndpointDN" mrbtsRoot JOIN "/" JOIN "EQM-1/APEQM-1/CABINET-1/BBMOD-1"
		if ( get_param $current_dist_name "firstEndpointDN" ) == "BBMOD-2" add_param $current_dist_name "firstEndpointDN" mrbtsRoot JOIN "/" JOIN "EQM-1/APEQM-1/CABINET-1/BBMOD-2"
		if ( get_param $current_dist_name "firstEndpointDN" ) == "BBMOD-3" add_param $current_dist_name "firstEndpointDN" mrbtsRoot JOIN "/" JOIN "EQM-1/APEQM-1/CABINET-2/BBMOD-1"
		if ( get_param $current_dist_name "firstEndpointDN" ) == "BBMOD-4" add_param $current_dist_name "firstEndpointDN" mrbtsRoot JOIN "/" JOIN "EQM-1/APEQM-1/CABINET-2/BBMOD-2"
		if  ( get_param $current_dist_name "secondEndpointDN" ) >= "RMOD-1"
		begin
			if ( get_param $current_dist_name "secondEndpointDN" ) <= "RMOD-999"
			begin
				add_param $current_dist_name "secondEndpointDN" mrbtsRoot JOIN "/" JOIN "EQM-1/APEQM-1/" JOIN get_param $current_dist_name "secondEndpointDN"
			end
		end
		if ( get_param $current_dist_name "linkSpeed" ) == "4" add_param $current_dist_name "linkSpeed" "Obsai3Gbps"
		if ( get_param $current_dist_name "linkSpeed" ) == "8" add_param $current_dist_name "linkSpeed" "Obsai6Gbps"
		add_param $current_dist_name "firstEndpointLabel" "OPT"
		add_param $current_dist_name "secondEndpointLabel" "OPT"
	end
#######################################################################################

#######################################################################################
#######################################################################################
#create CABLINK for SMODs SRIO connection

# if ( objects_count "MRBTS/EQM/APEQM/CABINET/SMOD" ) == 2
#	begin
#		define "cablinkId" objects_count "MRBTS/EQM/HWTOP/CABLINK"
#		define "cablinkId" cablinkId + 1
#		define "cablinkDn" mrbtsRoot JOIN "/EQM-1/HWTOP-1/CABLINK-" JOIN cablinkId
#		add_object cablinkDn
#		set_operation cablinkDn "create"
#		add_param cablinkDn "firstEndpointDN" mrbtsRoot JOIN "/EQM-1/APEQM-1/CABINET-1/SMOD-1"
#		add_param cablinkDn "firstEndpointLabel" "SRIO"
#		add_param cablinkDn "secondEndpointDN" mrbtsRoot JOIN "/EQM-1/APEQM-1/CABINET-2/SMOD-1"
#		add_param cablinkDn "secondEndpointLabel" "SRIO"
#	end
#######################################################################################

#######################################################################################
#######################################################################################
#move ANTL MOs under proepr RMOD MOs

for_objects "SBTS/ANTL"
    begin
        define "rmodId" replace get_param $current_dist_name "frRef" "FR-" ""
        define "antlDN" mrbtsRoot JOIN "/EQM-1/APEQM-1/RMOD-" JOIN rmodId JOIN "/ANTL-" JOIN $current_ANTL

        copy_object $current_dist_name antlDN
        del_param antlDN "frRef"
    end
#######################################################################################

#######################################################################################
#######################################################################################
#Fix ANTL parameters

for_objects "MRBTS/EQM/APEQM/RMOD/ANTL"
	begin
		if ( param_exist $current_dist_name "antennaConnector" )
			begin
				add_param $current_dist_name "antPortId" get_param $current_dist_name "antennaConnector"
				del_param $current_dist_name "antennaConnector"
			end
		if not ( param_exist $current_dist_name "cwaThreshold" ) add_param $current_dist_name "cwaThreshold" "215"
		if not ( param_exist $current_dist_name "dcVoltage" ) add_param $current_dist_name "dcVoltage" "AUTO"
		if ( param_exist $current_dist_name "feederLoss" )
			begin
				add_param $current_dist_name "totalLoss" get_param $current_dist_name "feederLoss"
				del_param $current_dist_name "feederLoss"
			end
		else
			begin
				add_param $current_dist_name "totalLoss" "3" * 10
			end
		if ( param_exist $current_dist_name "additionalRxGain" ) del_param $current_dist_name "additionalRxGain"
		
		define "atlDcVoltage" get_param $current_dist_name "dcVoltage"
		if ( atlDcVoltage == "LOW" )
			begin
				define "altDN" $current_dist_name
				define "altRmodID" $current_RMOD
				define "altLastID" replace $current_ANTL ".*(\d{1}$)" "$1" flags "g"
				define "bpfParamName" "antLineVoltageMainLow"
				if ( altLastID == "0" || altLastID == "2" || altLastID == "4" || altLastID == "6" || altLastID == "8" )
					define "bpfParamName" "antLineVoltageDivLow"
				for_objects "MRBTS/EQM/APEQM/RMOD"
				begin
					if ( altRmodID == $current_RMOD ) && ( param_exist $current_dist_name bpfParamName )
						begin							
							define "lowSupported" get_param $current_dist_name bpfParamName
							if not ( lowSupported == "true" )
								add_param altDN "dcVoltage" "AUTO"
						end
				end
			end	
	end
	
for_objects "MRBTS/EQM/APEQM/RMOD"
	begin
		del_param $current_dist_name "antLineVoltageMainOff"
		del_param $current_dist_name "antLineVoltageMainLow"
		del_param $current_dist_name "antLineVoltageMainHigh"
		del_param $current_dist_name "antLineVoltageDivOff"
		del_param $current_dist_name "antLineVoltageDivLow"
		del_param $current_dist_name "antLineVoltageDivHigh"
	end

#TODO: check rest of params
######################################################################################

#######################################################################################
#######################################################################################
#create PHYANT corresponding to each ANTL

for_objects "MRBTS/EQM/APEQM/RMOD/ANTL"
	begin
		add_object mrbtsRoot JOIN "/EQM-1/APEQM-1/PHYANT-" JOIN $current_ANTL
	end
#######################################################################################

#######################################################################################
#######################################################################################
#create PHYANTU for each PHYANT

for_objects "MRBTS/EQM/APEQM/PHYANT"
	begin
		add_object $current_dist_name JOIN "/PHYANTU-1"
	end
#######################################################################################

#######################################################################################
#######################################################################################
#Set EAC_OUT under proper SMOD

for_objects "SBTS/MGMNT/EACC"
begin
	if ( get_param $current_dist_name "hwModuleRef" ) == "FSM-1"
	begin
		if param_exist mrbtsRoot JOIN "/EQM-1/APEQM-1/CABINET-1/SMOD-1/EAC_OUT-1" "inUse"
			begin
				define "eaccCount" objects_count mrbtsRoot JOIN "/EQM-1/APEQM-1/CABINET-1/SMOD-1/EAC_OUT"
				define "eaccCount" eaccCount + 1
				define "eacOutDn" mrbtsRoot JOIN "/EQM-1/APEQM-1/CABINET-1/SMOD-1/EAC_OUT-" JOIN eaccCount
			end
		else define "eacOutDn" mrbtsRoot JOIN "/EQM-1/APEQM-1/CABINET-1/SMOD-1/EAC_OUT-1"
		copy_object $current_dist_name eacOutDn
	end
	
	if ( get_param $current_dist_name "hwModuleRef" ) == "FSM-2"
	begin
		if param_exist mrbtsRoot JOIN "/EQM-1/APEQM-1/CABINET-2/SMOD-1/EAC_OUT-1" "inUse"
			begin
				define "eaccCount" objects_count mrbtsRoot JOIN "/EQM-1/APEQM-1/CABINET-2/SMOD-1/EAC_OUT"
				define "eaccCount" eaccCount + 1
				define "eacOutDn" mrbtsRoot JOIN "/EQM-1/APEQM-1/CABINET-2/SMOD-1/EAC_OUT-" JOIN eaccCount
			end
		else define "eacOutDn" mrbtsRoot JOIN "/EQM-1/APEQM-1/CABINET-2/SMOD-1/EAC_OUT-1"
		copy_object $current_dist_name eacOutDn
	end
end
#######################################################################################

#######################################################################################
#######################################################################################
#Set EAC_OUT under proper RMOD

for_objects "SBTS/MGMNT/EACC"	
begin
	if ( get_param $current_dist_name "hwModuleRef" ) >= "FR-1"
		begin
			if ( get_param $current_dist_name "hwModuleRef" ) <= "FR-999"
				begin
					define "srcEacc" $current_dist_name
					define "frRef" get_param $current_dist_name "hwModuleRef"
					define "rmodId" replace frRef "FR-" ""
					define "rmodDn" mrbtsRoot JOIN "/EQM-1/APEQM-1/RMOD-" JOIN rmodId
					define "eacINId" objects_count rmodDn JOIN "/EAC_OUT"
					define "eacINId" eacINId + 1
					define "eacINDn" rmodDn JOIN "/EAC_OUT-" JOIN eacINId
					copy_object srcEacc eacINDn
				end
		end
end
#######################################################################################

#######################################################################################
#######################################################################################
#Set EAC_IN under proper SMOD

for_objects "SBTS/MGMNT/EACA"
begin
	if ( get_param $current_dist_name "hwModuleRef" ) == "FSM-1"
	begin
		if param_exist mrbtsRoot JOIN "/EQM-1/APEQM-1/CABINET-1/SMOD-1/EAC_IN-1" "inUse"
			begin
				define "eaccCount" objects_count mrbtsRoot JOIN "/EQM-1/APEQM-1/CABINET-1/SMOD-1/EAC_IN"
				define "eaccCount" eaccCount + 1
				define "eacOutDn" mrbtsRoot JOIN "/EQM-1/APEQM-1/CABINET-1/SMOD-1/EAC_IN-" JOIN eaccCount
			end
		else define "eacOutDn" mrbtsRoot JOIN "/EQM-1/APEQM-1/CABINET-1/SMOD-1/EAC_IN-1"
		copy_object $current_dist_name eacOutDn
	end
	
	if ( get_param $current_dist_name "hwModuleRef" ) == "FSM-2"
	begin
		if param_exist mrbtsRoot JOIN "/EQM-1/APEQM-1/CABINET-2/SMOD-1/EAC_IN-1" "inUse"
			begin
				define "eaccCount" objects_count mrbtsRoot JOIN "/EQM-1/APEQM-1/CABINET-2/SMOD-1/EAC_IN"
				define "eaccCount" eaccCount + 1
				define "eacOutDn" mrbtsRoot JOIN "/EQM-1/APEQM-1/CABINET-2/SMOD-1/EAC_IN-" JOIN eaccCount
			end
		else define "eacOutDn" mrbtsRoot JOIN "/EQM-1/APEQM-1/CABINET-2/SMOD-1/EAC_IN-1"
		copy_object $current_dist_name eacOutDn
	end
end
#######################################################################################

#######################################################################################
#######################################################################################
#Set EAC_IN under proper RMOD

for_objects "SBTS/MGMNT/EACA"	
begin
	if ( get_param $current_dist_name "hwModuleRef" ) >= "FR-1"
		begin
			if ( get_param $current_dist_name "hwModuleRef" ) <= "FR-999"
				begin
					define "srcEacc" $current_dist_name
					define "frRef" get_param $current_dist_name "hwModuleRef"
					define "rmodId" replace frRef "FR-" ""
					define "rmodDn" mrbtsRoot JOIN "/EQM-1/APEQM-1/RMOD-" JOIN rmodId
					define "eacINId" objects_count rmodDn JOIN "/EAC_IN"
					define "eacINId" eacINId + 1
					define "eacINDn" rmodDn JOIN "/EAC_IN-" JOIN eacINId
					copy_object srcEacc eacINDn
				end
		end
end
#######################################################################################

#######################################################################################
#######################################################################################
#Create PASSDEV basing on PSSUNT

for_objects "SBTS/PSSUNT"
	begin
		define "passDevDN" mrbtsRoot JOIN "/EQM-1/APEQM-1/PASSDEV-" JOIN $current_PSSUNT
		copy_object $current_dist_name passDevDN
		add_param passDevDN "additionalTxAttenuation" 0
		add_param passDevDN "additionalTxGain" 0
	end

# Create PASSDEV based on SBTS/ANTL
define "apeqmDN" mrbtsRoot JOIN "/EQM-1/APEQM-1"

for_objects "SBTS/ANTL"
    begin
        define "antlDn" $current_dist_name

        if ( param_exist antlDn "additionalRxGain" )
            begin
                define "additionalRxGain" get_param antlDn "additionalRxGain"

                if ( additionalRxGain ) != 0
                    begin
                        define "passdevID" objects_count "MRBTS/EQM/APEQM/PASSDEV"
                        define "passdevID" passdevID + 1
                        define "passdevDN" apeqmDN JOIN "/PASSDEV-" JOIN passdevID
                        
                        add_object passdevDN
                        set_operation passdevDN "create"

                        add_param passdevDN "additionalRxGain" additionalRxGain
                        add_param passdevDN "additionalTxAttenuation" "0"
                        add_param passdevDN "additionalTxGain" "0"
                        add_param passdevDN "inventoryUnitType" "Not Available"
                        add_param passdevDN "vendorName" "Not Available"

                        if ( param_exist antlDn "frRef" )
                            begin
                                define "frRef" get_param antlDn "frRef"
                                define "rmodId" replace frRef "FR-" ""
                                define "antennaLineDn" mrbtsRoot JOIN "/EQM-1/APEQM-1/RMOD-" JOIN rmodId JOIN "/ANTL-" JOIN $current_ANTL

                                add_param passdevDN "tempLoglinkANTL" antennaLineDn
                            end
                    end
            end
    end

define "hwtopDN" mrbtsRoot JOIN "/EQM-1/HWTOP-1"
for_objects "MRBTS/EQM/APEQM/PASSDEV"
    begin
        define "passdevDN" $current_dist_name

        if ( param_exist passdevDN "tempLoglinkANTL" )
            begin
                define "loglinkCount" objects_count "MRBTS/EQM/HWTOP/LOGLINK"
                define "loglinkCount" loglinkCount + 1
                define "loglinkDN" hwtopDN JOIN "/LOGLINK-" JOIN loglinkCount

                add_object loglinkDN 
                set_operation loglinkDN "create"

                add_param loglinkDN "firstEndpointDN" get_param passdevDN "tempLoglinkANTL"
                add_param loglinkDN "secondEndpointDN" $current_dist_name
                add_param loglinkDN "linkModeConfiguration" "false"
                add_param loglinkDN "linkModeData" "true"
                add_param loglinkDN "linkModeDC" "false"
                add_param loglinkDN "linkModeSynchronization" "false"

                del_param passdevDN "tempLoglinkANTL"
            end
    end

#######################################################################################

#######################################################################################
#######################################################################################
#Create MRBTS/ALDs basing on SBTS/ALDs

for_objects "SBTS/ALD"
	begin
		define "aldDn" mrbtsRoot JOIN "/EQM-1/APEQM-1/ALD-" JOIN $current_ALD
		copy_object $current_dist_name aldDn
	end
#######################################################################################

#######################################################################################
#######################################################################################
#Fix ALDs parameters

for_objects "MRBTS/EQM/APEQM/ALD"
	begin
		add_param $current_dist_name "controlProtocol" "AISG 2.0"
		if ( param_exist $current_dist_name "cwaEnabled" )
			begin
				if ( get_param $current_dist_name "cwaEnabled" ) == "true" add_param $current_dist_name "controlProtocol" "CWA"
				del_param $current_dist_name "cwaEnabled"
			end
		
		if ( param_exist $current_dist_name "prodCode" )
			begin
				add_param $current_dist_name "productCode" get_param $current_dist_name "prodCode"
				del_param $current_dist_name "prodCode"
			end
			
		if ( param_exist $current_dist_name "serNum" )
			begin
				add_param $current_dist_name "serialNumber" get_param $current_dist_name "serNum"
				del_param $current_dist_name "serNum"
			end
	end
#######################################################################################

#######################################################################################
#######################################################################################
#Create LOGLINKs for ALD -> ANTL 

for_objects "MRBTS/EQM/APEQM/ALD"
    begin
        define "aldDn" $current_dist_name

        define "loglinkCount" objects_count "MRBTS/EQM/HWTOP/LOGLINK"
        define "loglinkId" loglinkCount + 1

        # create LOGLINK representing configuration only for active MHAs

        if ( param_exist aldDn "controlProtocol" )
            begin
                define "controlProtocol" get_param aldDn "controlProtocol"

                if not ( controlProtocol ) == "CWA"
                    begin
                        if ( param_exist aldDn "controlledViaRef" )
                            begin
                                define "controlledViaRef" get_param aldDn "controlledViaRef"

                                define "checkerForAntl" replace controlledViaRef "(.*(ANTL).*)" "$2" flags "g"
                                if ( checkerForAntl ) == "ANTL"
                                    begin
                                        if ( controlledViaRef ) >= "ANTL-1" && ( controlledViaRef ) <= "ANTL-999"
                                            begin
                                                define "antlId" controlledViaRef
                                                define "antlId" replace antlId "ANTL-" ""

                                                for_objects "MRBTS/EQM/APEQM/RMOD/ANTL"
                                                    begin
                                                        if antlId == $current_ANTL
                                                            begin
                                                                define "loglinkDn" mrbtsRoot JOIN "/EQM-1/HWTOP-1/LOGLINK-" JOIN loglinkId

                                                                add_object loglinkDn
                                                                set_operation loglinkDn "create"

                                                                add_param loglinkDn "firstEndpointDN" $current_dist_name
                                                                add_param loglinkDn "secondEndpointDN" aldDn
                                                                add_param loglinkDn "linkModeConfiguration" "true"
                                                                add_param loglinkDn "linkModeData" "false"
                                                                add_param loglinkDn "linkModeDC" "true"		
                                                                add_param loglinkDn "linkModeSynchronization" "false"
                                                            end
                                                    end
                                            end
                                    end
                                else
                                    begin
                                        if ( controlledViaRef ) >= "FR-1" && ( controlledViaRef ) <= "FR-999"
                                            begin
                                                define "frId" controlledViaRef
                                                define "frId" replace frId "FR-" ""

                                                for_objects "MRBTS/EQM/APEQM/RMOD"
                                                    begin
                                                        if frId == $current_RMOD
                                                            begin
                                                                define "loglinkDn" mrbtsRoot JOIN "/EQM-1/HWTOP-1/LOGLINK-" JOIN loglinkId

                                                                add_object loglinkDn
                                                                set_operation loglinkDn "create"

                                                                add_param loglinkDn "firstEndpointDN" $current_dist_name JOIN "/RSL-1"
                                                                add_param loglinkDn "secondEndpointDN" aldDn
                                                                add_param loglinkDn "linkModeConfiguration" "true"
                                                                add_param loglinkDn "linkModeData" "false"
                                                                add_param loglinkDn "linkModeDC" "true"	
                                                                add_param loglinkDn "linkModeSynchronization" "false"
                                                            end
                                                    end
                                            end
                                    end
                            end
                    end
            end
    end

#######################################################################################
#######################################################################################
#Create LNAs basing on SBTS/MHAs

for_objects "SBTS/MHA"
	begin
		define "aldRootRef" get_param $current_dist_name "aldRef"
		define "srcMha" $current_dist_name
		define "aldDn" mrbtsRoot JOIN "/EQM-1/APEQM-1/" JOIN aldRootRef
		define "lnaId" objects_count aldDn JOIN "/LNA"
		define "lnaId" lnaId + 1
		define "lnaDn" aldDn JOIN "/LNA-" JOIN lnaId
		copy_object srcMha lnaDn
	end

#######################################################################################

#######################################################################################
#######################################################################################
#Create LOGLINKS for LNA -> ANTL
define "counter" 1
for_objects "MRBTS/EQM/APEQM/ALD/LNA"
	begin
        define "aldParentAntlRefId" ""
        define "aldDn" "MRBTS-" JOIN $current_MRBTS JOIN "/EQM-" JOIN $current_EQM JOIN "/APEQM-" JOIN $current_APEQM JOIN "/ALD-" JOIN $current_ALD

		if ( param_exist $current_dist_name "antlRef" )
		begin
			define "lnaAntlLoglinkRefDN" "temp"
			define "aldParentAntlLoglinkRefDN" "temp"
			define "lnaAntlRefId" replace ( get_param $current_dist_name "antlRef" ) "ANTL-" ""

            if ( param_exist aldDn "controlledViaRef" )
                begin
                    define "aldParentAntlRefId" replace ( get_param aldDn "controlledViaRef" ) "ANTL-" ""
                end

			define "thisLnaDN" $current_dist_name
			define "thisAldDN" mrbtsRoot JOIN "/EQM-1/APEQM-1/ALD-" JOIN $current_ALD
			define "loglinkCount" objects_count "MRBTS/EQM/HWTOP/LOGLINK"

			for_objects "MRBTS/EQM/APEQM/RMOD/ANTL"
				begin
					if $current_ANTL == lnaAntlRefId
                        define "lnaAntlLoglinkRefDN" $current_dist_name

					if $current_ANTL == aldParentAntlRefId
                        define "aldParentAntlLoglinkRefDN" $current_dist_name 
				end

				if lnaAntlRefId == aldParentAntlRefId
					begin
						define "id" loglinkCount
						define "id" id + 1
						define "loglinkDN" mrbtsRoot JOIN "/EQM-1/HWTOP-1/LOGLINK-" JOIN id

						add_object loglinkDN
						set_operation loglinkDN "create"
						add_param loglinkDN "firstEndpointDN" lnaAntlLoglinkRefDN
						add_param loglinkDN "secondEndpointDN" thisLnaDN
						add_param loglinkDN "linkModeConfiguration" "false"
						add_param loglinkDN "linkModeData" "true"
						add_param loglinkDN "linkModeDC" "true"
						add_param loglinkDN "linkModeSynchronization" "false"
					end

                if  not lnaAntlRefId == aldParentAntlRefId 
                    begin
                        define "id1" loglinkCount
                        define "id1" id1 + 1

                        define "id2" loglinkCount
                        define "id2" id2 + 2

                        define "loglinkDN" mrbtsRoot JOIN "/EQM-1/HWTOP-1/LOGLINK-" JOIN id1

                        if ( param_exist aldDn "controlProtocol" )
                            begin
                                define "controlProtocol" get_param aldDn "controlProtocol"

                                if not ( controlProtocol ) == "CWA"
                                    begin
                                        if ( aldParentAntlLoglinkRefDN != "temp" )
                                            begin
                                                add_object loglinkDN
                                                set_operation loglinkDN "create"
                                                add_param loglinkDN "firstEndpointDN" aldParentAntlLoglinkRefDN				
                                                add_param loglinkDN "secondEndpointDN" thisLnaDN
                                                add_param loglinkDN "linkModeConfiguration" "false"
                                                add_param loglinkDN "linkModeData" "false"
                                                add_param loglinkDN "linkModeDC" "true"
                                                add_param loglinkDN "linkModeSynchronization" "false"

                                                define "loglinkDN" mrbtsRoot JOIN "/EQM-1/HWTOP-1/LOGLINK-" JOIN id2
                                            end
                                        else
                                            define "loglinkDN" mrbtsRoot JOIN "/EQM-1/HWTOP-1/LOGLINK-" JOIN id1

                                            add_object loglinkDN
                                            set_operation loglinkDN "create"

                                            add_param loglinkDN "firstEndpointDN" lnaAntlLoglinkRefDN				
                                            add_param loglinkDN "secondEndpointDN" thisLnaDN
                                            add_param loglinkDN "linkModeConfiguration" "false"
                                            add_param loglinkDN "linkModeData" "true"
                                            add_param loglinkDN "linkModeDC" "false"
                                            add_param loglinkDN "linkModeSynchronization" "false"
                                    end
                                else
                                    begin
                                        define "loglinkDN" mrbtsRoot JOIN "/EQM-1/HWTOP-1/LOGLINK-" JOIN id1

                                        add_object loglinkDN
                                        set_operation loglinkDN "create"

                                        add_param loglinkDN "firstEndpointDN" lnaAntlLoglinkRefDN				
                                        add_param loglinkDN "secondEndpointDN" thisLnaDN
                                        add_param loglinkDN "linkModeConfiguration" "false"
                                        add_param loglinkDN "linkModeData" "true"
                                        add_param loglinkDN "linkModeDC" "true"
                                        add_param loglinkDN "linkModeSynchronization" "false"
                                    end
                            end
                    end

                for_objects "MRBTS/EQM/HWTOP/LOGLINK"
                    begin
                        if ( get_param $current_dist_name "secondEndpointDN" ) == thisAldDN
                            begin
                                add_param $current_dist_name "linkModeDC" "false"
                            end
                    end
            end
	end

#######################################################################################	
#######################################################################################
#Create LOGLINKS for LNA -> RMOD/RSL

for_objects "MRBTS/EQM/APEQM/ALD/LNA"
    begin
        define "lnaDN" $current_dist_name
        define "aldDn" "MRBTS-" JOIN $current_MRBTS JOIN "/EQM-" JOIN $current_EQM JOIN "/APEQM-" JOIN $current_APEQM JOIN "/ALD-" JOIN $current_ALD

        define "loglinkCount" objects_count "MRBTS/EQM/HWTOP/LOGLINK"
        define "loglinkId" loglinkCount + 1

        if ( param_exist aldDn "controlProtocol" )
            begin
                define "controlProtocol" get_param aldDn "controlProtocol"

                if not ( controlProtocol ) == "CWA"
                    begin
                        if ( param_exist aldDn "controlledViaRef" )
                            begin
                                define "controlledViaRef" get_param aldDn "controlledViaRef""

                                if ( controlledViaRef ) >= "FR-1" && ( controlledViaRef ) <= "FR-999"
                                    begin
                                        define "frId" controlledViaRef
                                        define "frId" replace frId "FR-" ""

                                        for_objects "MRBTS/EQM/APEQM/RMOD"
                                            begin
                                                if frId == $current_RMOD
                                                    begin
                                                        define "loglinkDn" mrbtsRoot JOIN "/EQM-1/HWTOP-1/LOGLINK-" JOIN loglinkId

                                                        add_object loglinkDn
                                                        set_operation loglinkDn "create"

                                                        add_param loglinkDn "firstEndpointDN" $current_dist_name JOIN "/RSL-1"
                                                        add_param loglinkDn "secondEndpointDN" lnaDN
                                                        add_param loglinkDn "linkModeConfiguration" "true"
                                                        add_param loglinkDn "linkModeData" "false"
                                                        add_param loglinkDn "linkModeDC" "true"	
                                                        add_param loglinkDn "linkModeSynchronization" "false"
                                                    end
                                            end
                                    end
                            end
                    end
            end
    end

#######################################################################################
#######################################################################################
#Fix LNAs parameters

for_objects "MRBTS/EQM/APEQM/ALD/LNA"
	begin
		
		if ( param_exist $current_dist_name "aldRef" ) del_param $current_dist_name "aldRef"
		if ( param_exist $current_dist_name "antlRef" ) del_param $current_dist_name "antlRef"
		if ( param_exist $current_dist_name "minGain" ) del_param $current_dist_name "minGain"
		if ( param_exist $current_dist_name "maxGain" ) del_param $current_dist_name "maxGain"
		if ( param_exist $current_dist_name "gainResolution" ) del_param $current_dist_name "gainResolution"
		if ( param_exist $current_dist_name "nonLinearGain" ) del_param $current_dist_name "nonLinearGain"
		if ( param_exist $current_dist_name "tmaSubunitType" ) del_param $current_dist_name "tmaSubunitType"
		if ( param_exist $current_dist_name "tmaSubunitTxFreqBandMin" ) del_param $current_dist_name "tmaSubunitTxFreqBandMin"
		if ( param_exist $current_dist_name "tmaSubunitTxFreqBandMax" ) del_param $current_dist_name "tmaSubunitTxFreqBandMax"
		if ( param_exist $current_dist_name "tmaSubunitRxFreqBandMin" ) del_param $current_dist_name "tmaSubunitRxFreqBandMin"
		if ( param_exist $current_dist_name "tmaSubunitRxFreqBandMax" ) del_param $current_dist_name "tmaSubunitRxFreqBandMax"
		if ( param_exist $current_dist_name "antBandList" )
			begin
				for_list $current_dist_name "antBandList"
					begin
						add_param $current_dist_name "antBandList." JOIN $current_index JOIN ".antFreqBand" get_param $current_dist_name "antBandList." JOIN $current_index JOIN ".antOperFreqBand"
						add_param $current_dist_name "antBandList." JOIN $current_index JOIN ".antFreqBand" replace get_param $current_dist_name "antBandList." JOIN $current_index JOIN ".antFreqBand" "Band " ""
						del_param $current_dist_name "antBandList." JOIN $current_index JOIN ".antOperFreqBand"
					end
			end
	end

#######################################################################################

#######################################################################################
#######################################################################################
#Create RETUs basing on SBTS/RET
	
for_objects "SBTS/RET"
	begin
		define "aldRootRef" get_param $current_dist_name "aldRef"
		define "srcRet" $current_dist_name
		define "aldDn" mrbtsRoot JOIN "/EQM-1/APEQM-1/" JOIN aldRootRef
		define "retId" objects_count aldDn JOIN "/RETU"
		define "retId" retId + 1
		define "retDn" aldDn JOIN "/RETU-" JOIN retId
		copy_object srcRet retDn
		
		add_param srcRet "tempNewRetDN" retDn
	end
#######################################################################################

#######################################################################################
#######################################################################################
#Fix RETUs parameters

for_objects "MRBTS/EQM/APEQM/ALD/RETU"
	begin
		if ( param_exist $current_dist_name "configFileDlNeeded" ) del_param $current_dist_name "configFileDlNeeded"
		if ( param_exist $current_dist_name "configFile" ) del_param $current_dist_name "configFile"
		if ( param_exist $current_dist_name "calibrate" ) del_param $current_dist_name "calibrate"
		if ( param_exist $current_dist_name "aldRef" ) del_param $current_dist_name "aldRef"
		if ( param_exist $current_dist_name "antBandList" )
			begin
				for_list $current_dist_name "antBandList"
					begin
						add_param $current_dist_name "antBandList." JOIN $current_index JOIN ".antFreqBand" get_param $current_dist_name "antBandList." JOIN $current_index JOIN ".antOperFreqBand"
						add_param $current_dist_name "antBandList." JOIN $current_index JOIN ".antFreqBand" replace get_param $current_dist_name "antBandList." JOIN $current_index JOIN ".antFreqBand" "Band " ""
						del_param $current_dist_name "antBandList." JOIN $current_index JOIN ".antOperFreqBand"
					end
			end
		if ( param_exist $current_dist_name "antlRefList" )
			begin
				add_list $current_dist_name "phyAntUDNList"
				for_list $current_dist_name "antlRefList"
					begin
						define "phyantuDN" "external"
						if not ( $current_value == "external" ) 
							begin
								define "phyantId" replace $current_value "ANTL-" ""
								define "phyantuDN" mrbtsRoot JOIN "/EQM-1/APEQM-1/PHYANT-" JOIN phyantId JOIN "/PHYANTU-1"
							end
						add_param $current_dist_name "phyAntUDNList." JOIN $current_index phyantuDN
					end
				del_param $current_dist_name "antlRefList"
			end
	end

#######################################################################################

#######################################################################################
#######################################################################################
#Fix BBMOD parameters

for_objects "MRBTS/EQM/APEQM/CABINET/BBMOD"
	begin
		add_param $current_dist_name "useFullCapacity" "true"
		add_param $current_dist_name "radioProtSearchOrder" "OBSAI"
		add_param $current_dist_name "bbCardUsage" "2"
		if ( get_param $current_dist_name "prodCodePlanned" ) == "FBBC"
			begin
				add_list $current_dist_name "srioConnectionList"
				add_complex_param $current_dist_name "srioConnectionList.0" 
				add_param $current_dist_name "srioConnectionList.0.linkId" "4"
				add_param $current_dist_name "srioConnectionList.0.mode" "RF"
			end
	end

#######################################################################################

#######################################################################################
#######################################################################################
#Fix SMOD parameters

for_objects "MRBTS/EQM/APEQM/CABINET/SMOD"
	begin
		add_param $current_dist_name "radioProtSearchOrder" "OBSAI"
		
		define "thisSmodDn" $current_dist_name
		define "thisCabinetId" $current_CABINET
		if ( objects_count "SBTS/MGMNT/CLIC" ) == 1
			begin
				for_objects "SBTS/MGMNT/CLIC" 
					begin
						if ( param_exist $current_dist_name "climateControlOcxoTemperatureLearning" ) add_param thisSmodDn "climateControlOcxoTemperatureLearning" get_param $current_dist_name "climateControlOcxoTemperatureLearning"
						if ( param_exist $current_dist_name "climateControlProfiling" ) add_param thisSmodDn "climateControlProfiling" get_param $current_dist_name "climateControlProfiling"
					end
			end 
		for_objects "SBTS/MGMNT/CLIC"
			begin
				for_objects "SBTS/MGMNT/CLIC"
					begin
						if ( param_exist $current_dist_name "hwModuleRef" )
							begin
								define "hwRef" get_param $current_dist_name "hwModuleRef"
								define "temphwRef" replace hwRef "\d+" "" flags "g"
								if temphwRef == "FSM-"
									begin
										define "hwRefId" replace hwRef "FSM-" ""
										if hwRefId == thisCabinetId
											begin
												if ( param_exist $current_dist_name "climateControlOcxoTemperatureLearning" ) add_param thisSmodDn "climateControlOcxoTemperatureLearning" get_param $current_dist_name "climateControlOcxoTemperatureLearning" 
												if ( param_exist $current_dist_name "climateControlProfiling" ) add_param thisSmodDn "climateControlProfiling" get_param $current_dist_name "climateControlProfiling"
											end
										
									end
							end
					end
			end
	end

for_objects "MRBTS/EQM/HWTOP/CABLINK"
	begin
        define "firstEndpointPortId" "undefined"
        define "firstEndpointDN" "undefined"
        define "firstEndpointRefersToSmod" "false"
        define "firstEndpointRefersToRmod" "false"

        define "secondEndpointPortId" "undefined"
        define "secondEndpointDN" "undefined"
        define "secondEndpointRefersToRmod" "false"
        define "secondEndpointRefersToSmod" "false"

        if ( param_exist $current_dist_name "firstEndpointPortId" )
            define "firstEndpointPortId" get_param $current_dist_name "firstEndpointPortId"

        if ( param_exist $current_dist_name "firstEndpointDN" )
            begin
                define "firstEndpointDN" get_param $current_dist_name "firstEndpointDN"
                define "firstEndpointDNTemp" firstEndpointDN

                if ( replace firstEndpointDNTemp "(.*(SMOD).*)" "$2" flags "g" ) == "SMOD"
                    begin
                        define "firstEndpointRefersToSmod" "true"
                    end

                define "firstEndpointDNTemp" firstEndpointDN
                if ( replace firstEndpointDNTemp "(.*(RMOD).*)" "$2" flags "g" ) == "RMOD"
                    begin
                        define "firstEndpointRefersToRmod" "true"
                    end
            end

        if ( param_exist $current_dist_name "secondEndpointPortId" )
            define "secondEndpointPortId" get_param $current_dist_name "secondEndpointPortId"

        if ( param_exist $current_dist_name "secondEndpointDN" )
            begin
                define "secondEndpointDN" get_param $current_dist_name "secondEndpointDN"
                define "secondEndpointDNTemp" secondEndpointDN

                if ( replace secondEndpointDNTemp "(.*(RMOD).*)" "$2" flags "g" ) == "RMOD"
                    begin
                        define "secondEndpointRefersToRmod" "true"
                    end

                define "secondEndpointDNTemp" secondEndpointDN
                if ( replace secondEndpointDNTemp "(.*(SMOD).*)" "$2" flags "g" ) == "SMOD"
                    begin
                        define "secondEndpointRefersToSmod" "true"
                    end
            end

        if ( firstEndpointPortId ) == "6" || ( secondEndpointPortId ) == "6"
            begin
                if ( firstEndpointRefersToSmod ) == "true" && ( secondEndpointRefersToRmod ) == "true"
                    begin
                        if not ( param_exist firstEndpointDN "portMode" )
                            add_param firstEndpointDN "portMode" "RF"
                    end
                else if ( firstEndpointRefersToRmod ) == "true" && ( secondEndpointRefersToSmod ) == "true"
                    begin
                        if not ( param_exist secondEndpointDN "portMode" )
                            add_param secondEndpointDN "portMode" "RF"
                    end
            end
    end

#if not resolved from SBTS - add defaults
for_objects "MRBTS/EQM/APEQM/CABINET/SMOD"
	begin
		define "smodDn" $current_dist_name
		if not ( param_exist $current_dist_name "climateControlOcxoTemperatureLearning" ) add_param $current_dist_name "climateControlOcxoTemperatureLearning" "true"
		if not ( param_exist $current_dist_name "climateControlProfiling" ) add_param $current_dist_name "climateControlProfiling" "Optimized Cooling"
		if not ( param_exist $current_dist_name "portMode" )
			begin
				for_objects "MRBTS/TNLSVC/TNL/ETHSVC/ETHLK"
					begin
						if ( param_exist $current_dist_name "connectorLabel" )
							if ( get_param $current_dist_name "connectorLabel" ) == "EIF2"
								if ( param_exist $current_dist_name "modDN" )
									begin
										define "value" get_param $current_dist_name "modDN"
										if value == ( "MRBTS-" JOIN $current_MRBTS JOIN "/EQM-1/APEQM-1/CABINET-1/SMOD-1" ) add_param smodDn "portMode" "Ethernet"
									end
					end
			end
	end
#######################################################################################

#######################################################################################
#######################################################################################
#Fix SMOD/EAC_IN parameters

for_objects "MRBTS/EQM/APEQM/CABINET/SMOD/EAC_IN"
	begin
		if ( param_exist $current_dist_name "hwModuleRef" ) del_param $current_dist_name "hwModuleRef"
		if ( param_exist $current_dist_name "eacConnector" )
			begin
				add_param $current_dist_name "portId" get_param $current_dist_name "eacConnector"
				del_param $current_dist_name "eacConnector"
			end
	end
#######################################################################################

#######################################################################################
#######################################################################################
#Fix SMOD/EAC_OUT parameters

for_objects "MRBTS/EQM/APEQM/CABINET/SMOD/EAC_OUT"
	begin
		if ( param_exist $current_dist_name "hwModuleRef" ) del_param $current_dist_name "hwModuleRef"
		if ( param_exist $current_dist_name "eacConnector" )
			begin
				add_param $current_dist_name "portId" get_param $current_dist_name "eacConnector"
				del_param $current_dist_name "eacConnector"
			end
		if ( param_exist $current_dist_name "initState" )
			begin
				add_param $current_dist_name "state" get_param $current_dist_name "initState"
				del_param $current_dist_name "initState"
			end
	end
#######################################################################################

#######################################################################################
#######################################################################################
#Fix RMOD parameters

for_objects "MRBTS/EQM/APEQM/RMOD"
	begin
		define "thisRModDN" $current_dist_name
		for_objects "MRBTS/EQM/HWTOP/CABLINK"
			begin
				if ( get_param $current_dist_name "secondEndpointDN" ) == thisRModDN
					begin
						if ( get_param $current_dist_name "linkSpeed" ) == "Auto" add_param thisRModDN "linkSpeed" "Auto"
						if ( get_param $current_dist_name "linkSpeed" ) == "Obsai3Gbps" add_param thisRModDN "linkSpeed" "3Gbps"
						if ( get_param $current_dist_name "linkSpeed" ) == "Obsai6Gbps" add_param thisRModDN "linkSpeed" "6Gbps"
					end	
			end
	end
	
for_objects "MRBTS/EQM/APEQM/RMOD"
	begin
		define "thisRmodDn" $current_dist_name
		define "thisRmodId" $current_RMOD
		if ( objects_count "SBTS/MGMNT/CLIC" ) == 1
			begin
				for_objects "SBTS/MGMNT/CLIC" 
					begin
						if ( param_exist $current_dist_name "climateControlProfiling" ) add_param thisRmodDn "climateControlProfiling" get_param $current_dist_name "climateControlProfiling"
					end
			end 
		for_objects "SBTS/MGMNT/CLIC"
			begin
				for_objects "SBTS/MGMNT/CLIC"
					begin
						if ( param_exist $current_dist_name "hwModuleRef" )
							begin
								define "hwRef" get_param $current_dist_name "hwModuleRef"
								define "temphwRef" replace hwRef "\d+" "" flags "g"
								if temphwRef == "FR-"
									begin
										define "hwRefId" replace hwRef "FR-" ""
										if hwRefId == thisRmodId
											begin
												if ( param_exist $current_dist_name "climateControlProfiling" ) add_param thisRmodDn "climateControlProfiling" get_param $current_dist_name "climateControlProfiling"
											end
										
									end
							end
					end
			end
	end

#if not resolved from SBTS - add defaults
for_objects "MRBTS/EQM/APEQM/RMOD"
	begin
		if not ( param_exist $current_dist_name "climateControlProfiling" ) add_param $current_dist_name "climateControlProfiling" "Optimized Cooling"
	end
#######################################################################################

#######################################################################################
#######################################################################################
#Fix RMOD/EAC_IN parameters

for_objects "MRBTS/EQM/APEQM/RMOD/EAC_IN"
	begin
		if ( param_exist $current_dist_name "hwModuleRef" ) del_param $current_dist_name "hwModuleRef"
		if ( param_exist $current_dist_name "eacConnector" )
			begin
				add_param $current_dist_name "portId" get_param $current_dist_name "eacConnector"
				del_param $current_dist_name "eacConnector"
			end
	end
#######################################################################################

#######################################################################################
#######################################################################################
#Fix RMOD/EAC_OUT parameters

for_objects "MRBTS/EQM/APEQM/RMOD/EAC_OUT"
	begin
		if ( param_exist $current_dist_name "hwModuleRef" ) del_param $current_dist_name "hwModuleRef"
		if ( param_exist $current_dist_name "eacConnector" )
			begin
				add_param $current_dist_name "portId" get_param $current_dist_name "eacConnector"
				del_param $current_dist_name "eacConnector"
			end
		if ( param_exist $current_dist_name "initState" )
			begin
				add_param $current_dist_name "state" get_param $current_dist_name "initState"
				del_param $current_dist_name "initState"
			end
	end
#######################################################################################
#CABLINK CONNECTORS
for_objects "MRBTS/EQM/APEQM/CABINET-1/BBMOD"
begin
	define "countCablinks" objects_count "MRBTS/EQM/HWTOP/CABLINK"
	define "cablinkPath" mrbtsRoot JOIN "/EQM-1/HWTOP-1/CABLINK-" JOIN ( countCablinks + 1 )
	add_object cablinkPath
	set_operation cablinkPath "create"
	add_param cablinkPath "firstEndpointDN" mrbtsRoot JOIN "/EQM-1/APEQM-1/CABINET-1/SMOD-1"
	add_param cablinkPath "firstEndpointLabel" "QSFP"
	add_param cablinkPath "firstEndpointPortId" $current_BBMOD
	add_param cablinkPath "secondEndpointDN" $current_dist_name
	add_param cablinkPath "secondEndpointLabel" "QSFP"
	add_param cablinkPath "secondEndpointPortId" 1
end

#CABLINK CONNECTORS
for_objects "MRBTS/EQM/APEQM/CABINET-2/BBMOD"
begin
	define "countCablinks" objects_count "MRBTS/EQM/HWTOP/CABLINK"
	define "cablinkPath" mrbtsRoot JOIN "/EQM-1/HWTOP-1/CABLINK-" JOIN ( countCablinks + 1 )
	add_object cablinkPath
	set_operation cablinkPath "create"
	add_param cablinkPath "firstEndpointDN" mrbtsRoot JOIN "/EQM-1/APEQM-1/CABINET-2/SMOD-1"
	add_param cablinkPath "firstEndpointLabel" "QSFP"
	add_param cablinkPath "firstEndpointPortId" $current_BBMOD
	add_param cablinkPath "secondEndpointDN" $current_dist_name
	add_param cablinkPath "secondEndpointLabel" "QSFP"
	add_param cablinkPath "secondEndpointPortId" 1
end
#######################################################################################
#######################################################################################
#Add TRMOD MO
for_objects "CABINET/TRMOD"
	begin
		define "TrmodDn" mrbtsRoot JOIN "/EQM-1/APEQM-1/CABINET-1/SMOD-1/TRMOD-1"
		add_object TrmodDn
		set_operation TrmodDn "create"
		add_param TrmodDn "prodCodePlanned" "undefined"
		if ( param_exist $current_dist_name "prodCodePlanned" ) add_param TrmodDn "prodCodePlanned" get_param $current_dist_name "prodCodePlanned"
		del_object $current_dist_name
	end

define "TRMOD_should_exist" "false"
for_objects "MRBTS/TNLSVC/TNL/ETHSVC/ETHLK"
	begin
		if ( param_exist $current_dist_name "modDN" )
			begin
				define "value" get_param $current_dist_name "modDN"
				define "compare" replace value "TRMOD" ""
				if not ( value == compare ) define "TRMOD_should_exist" "true"
			end
	end

if ( ( objects_count "TRMOD" ) == 0 ) && ( TRMOD_should_exist == "true" )
	begin
		define "TrmodDn" mrbtsRoot JOIN "/EQM-1/APEQM-1/CABINET-1/SMOD-1/TRMOD-1"
		add_object TrmodDn
		set_operation TrmodDn "create"
		add_param TrmodDn "prodCodePlanned" "undefined"
	end
#######################################################################################
#######################################################################################
#Final CLEANUP

for_objects "MRBTS/EQM/APEQM/ALD"
    begin
        if ( param_exist $current_dist_name "controlledViaRef" )
            begin
                del_param $current_dist_name "controlledViaRef"
            end

        if ( ( objects_count $current_dist_name JOIN "/LNA" ) > 0 )
            add_param $current_dist_name "mhaType" "Other"
    end

#######################################################################################
for_objects "SBTS/ANTL"
    begin
        del_param $current_dist_name "frRef"
    end

# Whenever there is a PPTT in the scf, create a TRMOD with prodCodePlanned = 472311A, TRMOD should be located on primary SMOD - ETHLK points to it
if not ( objects_count "MRBTS/TNLSVC/TNL/PPTT" ) == 0
    begin
        define "trmodDn" ""

        for_objects "MRBTS/TNLSVC/TNL/ETHSVC/ETHLK"
            begin
                define "ethlkDn" $current_dist_name

                if ( param_exist ethlkDn "modDN" )
                    begin
                        define "modDN" get_param ethlkDn "modDN"
                        define "matchForSmod" replace modDN  "(.*(SMOD).*)" "$2" flags "g"

                        if ( matchForSmod ) == "SMOD"
                            begin
                                if ( objects_count modDN ) == 1
                                    begin
                                        define "trmodDn" modDN JOIN "/TRMOD-1"
                                    end
                            end
                    end
            end

        if not ( trmodDn ) == ""
            begin
                add_object trmodDn
                set_operation trmodDn "create"
                add_param trmodDn "prodCodePlanned" "472311A"
            end
    end

for_objects "SBTS"
    begin
        define "sbtsDn" $current_dist_name

        for_list sbtsDn "sbtsLocation"
            begin
                define "locationPrefix" "sbtsLocation." JOIN $current_index JOIN ".location"
                define "modulePrefix" "sbtsLocation." JOIN $current_index JOIN ".module"

                if ( param_exist sbtsDn locationPrefix ) && ( param_exist sbtsDn modulePrefix )
                    begin
                        define "location" get_param sbtsDn locationPrefix
                        define "module" get_param sbtsDn modulePrefix

                        define "checkerForSBTS" replace module "(.*(SBTS).*)" "$2" flags "g"
                        define "checkerForFSM" replace module "(.*(FSM).*)" "$2" flags "g"
                        define "checkerForSMOD" replace module "(.*(SMOD).*)" "$2" flags "g"

                        if ( checkerForSBTS ) == "SBTS" || ( checkerForFSM ) == "FSM" || ( checkerForSMOD ) == "SMOD"
                            begin
                                for_objects "MRBTS/EQM/APEQM/CABINET/SMOD"
                                    begin
                                        define "smodDn" $current_dist_name

                                        add_param smodDn "moduleLocation" location
                                    end

                                for_objects "MRBTS/EQM/SMOD_EXT"
                                    begin
                                        define "smodExtDn" $current_dist_name

                                        add_param smodExtDn "moduleLocation" location
                                    end
                            end
                    end
                else
                    begin
                        if not ( param_exist sbtsDn modulePrefix )
                            begin
                                if ( param_exist sbtsDn locationPrefix )
                                    begin
                                        define "location" get_param sbtsDn locationPrefix

                                        for_objects "MRBTS/EQM/APEQM/CABINET/SMOD"
                                            begin
                                                define "smodDn" $current_dist_name

                                                add_param smodDn "moduleLocation" location
                                            end

                                        for_objects "MRBTS/EQM/SMOD_EXT"
                                            begin
                                                define "smodExtDn" $current_dist_name

                                                add_param smodExtDn "moduleLocation" location
                                            end
                                    end
                            end
                    end
            end
    end

#######################################################################################
#######################################################################################
#Set proper versions and adaptations to EQM subtree

for_objects "MRBTS/EQM"
	begin
		set_version $current_dist_name "EQM17_1610_003"
		set_adaptation $current_dist_name "com.nokia.srbts.eqm"
	end
	
for_objects "MRBTS/EQM/APEQM"
	begin
		set_version $current_dist_name "EQM17_1610_003"
		set_adaptation $current_dist_name "com.nokia.srbts.eqm"
	end
	
for_objects "MRBTS/EQM/APEQM/ALD"
	begin
		set_version $current_dist_name "EQM17_1610_003"
		set_adaptation $current_dist_name "com.nokia.srbts.eqm"
	end
	
for_objects "MRBTS/EQM/APEQM/ALD/LNA"
	begin
		set_version $current_dist_name "EQM17_1610_003"
		set_adaptation $current_dist_name "com.nokia.srbts.eqm"
	end
	
for_objects "MRBTS/EQM/APEQM/ALD/RETU"
	begin
		set_version $current_dist_name "EQM17_1610_003"
		set_adaptation $current_dist_name "com.nokia.srbts.eqm"
	end
	
for_objects "MRBTS/EQM/APEQM/CABINET"
	begin
		set_version $current_dist_name "EQM17_1610_003"
		set_adaptation $current_dist_name "com.nokia.srbts.eqm"
	end
	
for_objects "MRBTS/EQM/APEQM/CABINET/BBMOD"
	begin
		set_version $current_dist_name "EQM17_1610_003"
		set_adaptation $current_dist_name "com.nokia.srbts.eqm"
	end
	
for_objects "MRBTS/EQM/APEQM/CABINET/SMOD"
	begin
		set_version $current_dist_name "EQM17_1610_003"
		set_adaptation $current_dist_name "com.nokia.srbts.eqm"
	end
	
for_objects "MRBTS/EQM/APEQM/CABINET/SMOD/EAC_IN"
	begin
		set_version $current_dist_name "EQM17_1610_003"
		set_adaptation $current_dist_name "com.nokia.srbts.eqm"
	end
	
for_objects "MRBTS/EQM/APEQM/CABINET/SMOD/EAC_OUT"
	begin
		set_version $current_dist_name "EQM17_1610_003"
		set_adaptation $current_dist_name "com.nokia.srbts.eqm"
	end
	
for_objects "MRBTS/EQM/APEQM/PASSDEV"
	begin
		set_version $current_dist_name "EQM17_1610_003"
		set_adaptation $current_dist_name "com.nokia.srbts.eqm"
	end
	
for_objects "MRBTS/EQM/APEQM/PHYANT"
	begin
		set_version $current_dist_name "EQM17_1610_003"
		set_adaptation $current_dist_name "com.nokia.srbts.eqm"
	end
	
for_objects "MRBTS/EQM/APEQM/PHYANT/PHYANTU"
	begin
		set_version $current_dist_name "EQM17_1610_003"
		set_adaptation $current_dist_name "com.nokia.srbts.eqm"
	end
	
for_objects "MRBTS/EQM/APEQM/RMOD"
	begin
		set_version $current_dist_name "EQM17_1610_003"
		set_adaptation $current_dist_name "com.nokia.srbts.eqm"
	end
	
for_objects "MRBTS/EQM/APEQM/RMOD/ANTL"
	begin
		set_version $current_dist_name "EQM17_1610_003"
		set_adaptation $current_dist_name "com.nokia.srbts.eqm"
	end

for_objects "MRBTS/EQM/APEQM/RMOD/EAC_IN"
	begin
		set_version $current_dist_name "EQM17_1610_003"
		set_adaptation $current_dist_name "com.nokia.srbts.eqm"
	end

for_objects "MRBTS/EQM/APEQM/RMOD/EAC_OUT"
	begin
		set_version $current_dist_name "EQM17_1610_003"
		set_adaptation $current_dist_name "com.nokia.srbts.eqm"
	end
	
for_objects "MRBTS/EQM/APEQM/RMOD/RSL"
	begin
		set_version $current_dist_name "EQM17_1610_003"
		set_adaptation $current_dist_name "com.nokia.srbts.eqm"
	end

for_objects "MRBTS/EQM/HWTOP"
	begin
		set_version $current_dist_name "EQM17_1610_003"
		set_adaptation $current_dist_name "com.nokia.srbts.eqm"
	end

for_objects "MRBTS/EQM/HWTOP/CABLINK"
	begin
		set_version $current_dist_name "EQM17_1610_003"
		set_adaptation $current_dist_name "com.nokia.srbts.eqm"
	end

for_objects "MRBTS/EQM/HWTOP/LOGLINK"
	begin
		set_version $current_dist_name "EQM17_1610_003"
		set_adaptation $current_dist_name "com.nokia.srbts.eqm"
	end

for_objects "MRBTS/EQM/APEQM/CABINET/SMOD/TRMOD"
	begin
		set_version $current_dist_name "EQM17_1610_003"
		set_adaptation $current_dist_name "com.nokia.srbts.eqm"
	end
#######################################################################################
