#######################################################################################
#######################################################################################
#NIDD_VER: SBTS17_1610_003_00
#MRBTS: MRBTS_SBTS17_1610_003
#Migration from SBTS16.10 to SBTS17
#14.11.2016/ v0.1 /draft for new CUTool /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
#######################################################################################

#######################################################################################
#WA to remove extended ASCII characters from EACC and EACA "descr"
#whole section needs to be removed when NIDD regexes on 17A are extedned to allow
#extended ASCII chars
#C9 - CAS-95264-N3N6 - PR314711

for_objects "SBTS/MGMNT/EACC"
	begin
		if ( param_exist $current_dist_name "descr" ) add_param $current_dist_name "descr" replace get_param $current_dist_name "descr" "á" "a" flags "g"
		if ( param_exist $current_dist_name "descr" ) add_param $current_dist_name "descr" replace get_param $current_dist_name "descr" "Á" "A" flags "g"
		if ( param_exist $current_dist_name "descr" ) add_param $current_dist_name "descr" replace get_param $current_dist_name "descr" "é" "e" flags "g"
		if ( param_exist $current_dist_name "descr" ) add_param $current_dist_name "descr" replace get_param $current_dist_name "descr" "É" "E" flags "g"
		if ( param_exist $current_dist_name "descr" ) add_param $current_dist_name "descr" replace get_param $current_dist_name "descr" "í" "i" flags "g"
		if ( param_exist $current_dist_name "descr" ) add_param $current_dist_name "descr" replace get_param $current_dist_name "descr" "Í" "I" flags "g"
		if ( param_exist $current_dist_name "descr" ) add_param $current_dist_name "descr" replace get_param $current_dist_name "descr" "ó" "o" flags "g"
		if ( param_exist $current_dist_name "descr" ) add_param $current_dist_name "descr" replace get_param $current_dist_name "descr" "Ó" "O" flags "g"
		if ( param_exist $current_dist_name "descr" ) add_param $current_dist_name "descr" replace get_param $current_dist_name "descr" "ú" "u" flags "g"
		if ( param_exist $current_dist_name "descr" ) add_param $current_dist_name "descr" replace get_param $current_dist_name "descr" "Ú" "U" flags "g"
		if ( param_exist $current_dist_name "descr" ) add_param $current_dist_name "descr" replace get_param $current_dist_name "descr" "ä" "a" flags "g"
		if ( param_exist $current_dist_name "descr" ) add_param $current_dist_name "descr" replace get_param $current_dist_name "descr" "Ä" "A" flags "g"
		if ( param_exist $current_dist_name "descr" ) add_param $current_dist_name "descr" replace get_param $current_dist_name "descr" "ë" "e" flags "g"
		if ( param_exist $current_dist_name "descr" ) add_param $current_dist_name "descr" replace get_param $current_dist_name "descr" "Ë" "E" flags "g"
		if ( param_exist $current_dist_name "descr" ) add_param $current_dist_name "descr" replace get_param $current_dist_name "descr" "ï" "i" flags "g"
		if ( param_exist $current_dist_name "descr" ) add_param $current_dist_name "descr" replace get_param $current_dist_name "descr" "Ï" "I" flags "g"
		if ( param_exist $current_dist_name "descr" ) add_param $current_dist_name "descr" replace get_param $current_dist_name "descr" "ö" "o" flags "g"
		if ( param_exist $current_dist_name "descr" ) add_param $current_dist_name "descr" replace get_param $current_dist_name "descr" "Ö" "O" flags "g"
		if ( param_exist $current_dist_name "descr" ) add_param $current_dist_name "descr" replace get_param $current_dist_name "descr" "ü" "u" flags "g"
		if ( param_exist $current_dist_name "descr" ) add_param $current_dist_name "descr" replace get_param $current_dist_name "descr" "Ü" "U" flags "g"
		if ( param_exist $current_dist_name "descr" ) add_param $current_dist_name "descr" replace get_param $current_dist_name "descr" "ñ" "n" flags "g"
		if ( param_exist $current_dist_name "descr" ) add_param $current_dist_name "descr" replace get_param $current_dist_name "descr" "Ñ" "N" flags "g"
		if ( param_exist $current_dist_name "descr" ) add_param $current_dist_name "descr" replace get_param $current_dist_name "descr" "ç" "c" flags "g"
		if ( param_exist $current_dist_name "descr" ) add_param $current_dist_name "descr" replace get_param $current_dist_name "descr" "Ç" "C" flags "g"
		if ( param_exist $current_dist_name "descr" ) add_param $current_dist_name "descr" replace get_param $current_dist_name "descr" "à" "a" flags "g"
		if ( param_exist $current_dist_name "descr" ) add_param $current_dist_name "descr" replace get_param $current_dist_name "descr" "À" "A" flags "g"
		if ( param_exist $current_dist_name "descr" ) add_param $current_dist_name "descr" replace get_param $current_dist_name "descr" "â" "a" flags "g"
		if ( param_exist $current_dist_name "descr" ) add_param $current_dist_name "descr" replace get_param $current_dist_name "descr" "Â" "A" flags "g"
		if ( param_exist $current_dist_name "descr" ) add_param $current_dist_name "descr" replace get_param $current_dist_name "descr" "è" "e" flags "g"
		if ( param_exist $current_dist_name "descr" ) add_param $current_dist_name "descr" replace get_param $current_dist_name "descr" "È" "E" flags "g"
		if ( param_exist $current_dist_name "descr" ) add_param $current_dist_name "descr" replace get_param $current_dist_name "descr" "ê" "e" flags "g"
		if ( param_exist $current_dist_name "descr" ) add_param $current_dist_name "descr" replace get_param $current_dist_name "descr" "Ê" "E" flags "g"
		if ( param_exist $current_dist_name "descr" ) add_param $current_dist_name "descr" replace get_param $current_dist_name "descr" "î" "i" flags "g"
		if ( param_exist $current_dist_name "descr" ) add_param $current_dist_name "descr" replace get_param $current_dist_name "descr" "Î" "I" flags "g"
		if ( param_exist $current_dist_name "descr" ) add_param $current_dist_name "descr" replace get_param $current_dist_name "descr" "ô" "o" flags "g"
		if ( param_exist $current_dist_name "descr" ) add_param $current_dist_name "descr" replace get_param $current_dist_name "descr" "Ô" "O" flags "g"
		if ( param_exist $current_dist_name "descr" ) add_param $current_dist_name "descr" replace get_param $current_dist_name "descr" "û" "u" flags "g"
		if ( param_exist $current_dist_name "descr" ) add_param $current_dist_name "descr" replace get_param $current_dist_name "descr" "Û" "U" flags "g"
		if ( param_exist $current_dist_name "descr" ) add_param $current_dist_name "descr" replace get_param $current_dist_name "descr" "ą" "a" flags "g"
		if ( param_exist $current_dist_name "descr" ) add_param $current_dist_name "descr" replace get_param $current_dist_name "descr" "Ą" "A" flags "g"
		if ( param_exist $current_dist_name "descr" ) add_param $current_dist_name "descr" replace get_param $current_dist_name "descr" "ę" "e" flags "g"
		if ( param_exist $current_dist_name "descr" ) add_param $current_dist_name "descr" replace get_param $current_dist_name "descr" "Ę" "E" flags "g"
		if ( param_exist $current_dist_name "descr" ) add_param $current_dist_name "descr" replace get_param $current_dist_name "descr" "ć" "c" flags "g"
		if ( param_exist $current_dist_name "descr" ) add_param $current_dist_name "descr" replace get_param $current_dist_name "descr" "Ć" "C" flags "g"
		if ( param_exist $current_dist_name "descr" ) add_param $current_dist_name "descr" replace get_param $current_dist_name "descr" "ń" "n" flags "g"
		if ( param_exist $current_dist_name "descr" ) add_param $current_dist_name "descr" replace get_param $current_dist_name "descr" "Ń" "N" flags "g"
		if ( param_exist $current_dist_name "descr" ) add_param $current_dist_name "descr" replace get_param $current_dist_name "descr" "ś" "s" flags "g"
		if ( param_exist $current_dist_name "descr" ) add_param $current_dist_name "descr" replace get_param $current_dist_name "descr" "Ś" "S" flags "g"
		if ( param_exist $current_dist_name "descr" ) add_param $current_dist_name "descr" replace get_param $current_dist_name "descr" "ź" "z" flags "g"
		if ( param_exist $current_dist_name "descr" ) add_param $current_dist_name "descr" replace get_param $current_dist_name "descr" "Ź" "Z" flags "g"
		if ( param_exist $current_dist_name "descr" ) add_param $current_dist_name "descr" replace get_param $current_dist_name "descr" "ż" "z" flags "g"
		if ( param_exist $current_dist_name "descr" ) add_param $current_dist_name "descr" replace get_param $current_dist_name "descr" "Ż" "Z" flags "g"
		if ( param_exist $current_dist_name "descr" ) add_param $current_dist_name "descr" replace get_param $current_dist_name "descr" "æ" "ae" flags "g"
		if ( param_exist $current_dist_name "descr" ) add_param $current_dist_name "descr" replace get_param $current_dist_name "descr" "Æ" "AE" flags "g"
	end
	
for_objects "SBTS/MGMNT/EACA"
	begin
		if ( param_exist $current_dist_name "descr" ) add_param $current_dist_name "descr" replace get_param $current_dist_name "descr" "á" "a" flags "g"
		if ( param_exist $current_dist_name "descr" ) add_param $current_dist_name "descr" replace get_param $current_dist_name "descr" "Á" "A" flags "g"
		if ( param_exist $current_dist_name "descr" ) add_param $current_dist_name "descr" replace get_param $current_dist_name "descr" "é" "e" flags "g"
		if ( param_exist $current_dist_name "descr" ) add_param $current_dist_name "descr" replace get_param $current_dist_name "descr" "É" "E" flags "g"
		if ( param_exist $current_dist_name "descr" ) add_param $current_dist_name "descr" replace get_param $current_dist_name "descr" "í" "i" flags "g"
		if ( param_exist $current_dist_name "descr" ) add_param $current_dist_name "descr" replace get_param $current_dist_name "descr" "Í" "I" flags "g"
		if ( param_exist $current_dist_name "descr" ) add_param $current_dist_name "descr" replace get_param $current_dist_name "descr" "ó" "o" flags "g"
		if ( param_exist $current_dist_name "descr" ) add_param $current_dist_name "descr" replace get_param $current_dist_name "descr" "Ó" "O" flags "g"
		if ( param_exist $current_dist_name "descr" ) add_param $current_dist_name "descr" replace get_param $current_dist_name "descr" "ú" "u" flags "g"
		if ( param_exist $current_dist_name "descr" ) add_param $current_dist_name "descr" replace get_param $current_dist_name "descr" "Ú" "U" flags "g"
		if ( param_exist $current_dist_name "descr" ) add_param $current_dist_name "descr" replace get_param $current_dist_name "descr" "ä" "a" flags "g"
		if ( param_exist $current_dist_name "descr" ) add_param $current_dist_name "descr" replace get_param $current_dist_name "descr" "Ä" "A" flags "g"
		if ( param_exist $current_dist_name "descr" ) add_param $current_dist_name "descr" replace get_param $current_dist_name "descr" "ë" "e" flags "g"
		if ( param_exist $current_dist_name "descr" ) add_param $current_dist_name "descr" replace get_param $current_dist_name "descr" "Ë" "E" flags "g"
		if ( param_exist $current_dist_name "descr" ) add_param $current_dist_name "descr" replace get_param $current_dist_name "descr" "ï" "i" flags "g"
		if ( param_exist $current_dist_name "descr" ) add_param $current_dist_name "descr" replace get_param $current_dist_name "descr" "Ï" "I" flags "g"
		if ( param_exist $current_dist_name "descr" ) add_param $current_dist_name "descr" replace get_param $current_dist_name "descr" "ö" "o" flags "g"
		if ( param_exist $current_dist_name "descr" ) add_param $current_dist_name "descr" replace get_param $current_dist_name "descr" "Ö" "O" flags "g"
		if ( param_exist $current_dist_name "descr" ) add_param $current_dist_name "descr" replace get_param $current_dist_name "descr" "ü" "u" flags "g"
		if ( param_exist $current_dist_name "descr" ) add_param $current_dist_name "descr" replace get_param $current_dist_name "descr" "Ü" "U" flags "g"
		if ( param_exist $current_dist_name "descr" ) add_param $current_dist_name "descr" replace get_param $current_dist_name "descr" "ñ" "n" flags "g"
		if ( param_exist $current_dist_name "descr" ) add_param $current_dist_name "descr" replace get_param $current_dist_name "descr" "Ñ" "N" flags "g"
		if ( param_exist $current_dist_name "descr" ) add_param $current_dist_name "descr" replace get_param $current_dist_name "descr" "ç" "c" flags "g"
		if ( param_exist $current_dist_name "descr" ) add_param $current_dist_name "descr" replace get_param $current_dist_name "descr" "Ç" "C" flags "g"
		if ( param_exist $current_dist_name "descr" ) add_param $current_dist_name "descr" replace get_param $current_dist_name "descr" "à" "a" flags "g"
		if ( param_exist $current_dist_name "descr" ) add_param $current_dist_name "descr" replace get_param $current_dist_name "descr" "À" "A" flags "g"
		if ( param_exist $current_dist_name "descr" ) add_param $current_dist_name "descr" replace get_param $current_dist_name "descr" "â" "a" flags "g"
		if ( param_exist $current_dist_name "descr" ) add_param $current_dist_name "descr" replace get_param $current_dist_name "descr" "Â" "A" flags "g"
		if ( param_exist $current_dist_name "descr" ) add_param $current_dist_name "descr" replace get_param $current_dist_name "descr" "è" "e" flags "g"
		if ( param_exist $current_dist_name "descr" ) add_param $current_dist_name "descr" replace get_param $current_dist_name "descr" "È" "E" flags "g"
		if ( param_exist $current_dist_name "descr" ) add_param $current_dist_name "descr" replace get_param $current_dist_name "descr" "ê" "e" flags "g"
		if ( param_exist $current_dist_name "descr" ) add_param $current_dist_name "descr" replace get_param $current_dist_name "descr" "Ê" "E" flags "g"
		if ( param_exist $current_dist_name "descr" ) add_param $current_dist_name "descr" replace get_param $current_dist_name "descr" "î" "i" flags "g"
		if ( param_exist $current_dist_name "descr" ) add_param $current_dist_name "descr" replace get_param $current_dist_name "descr" "Î" "I" flags "g"
		if ( param_exist $current_dist_name "descr" ) add_param $current_dist_name "descr" replace get_param $current_dist_name "descr" "ô" "o" flags "g"
		if ( param_exist $current_dist_name "descr" ) add_param $current_dist_name "descr" replace get_param $current_dist_name "descr" "Ô" "O" flags "g"
		if ( param_exist $current_dist_name "descr" ) add_param $current_dist_name "descr" replace get_param $current_dist_name "descr" "û" "u" flags "g"
		if ( param_exist $current_dist_name "descr" ) add_param $current_dist_name "descr" replace get_param $current_dist_name "descr" "Û" "U" flags "g"
		if ( param_exist $current_dist_name "descr" ) add_param $current_dist_name "descr" replace get_param $current_dist_name "descr" "ą" "a" flags "g"
		if ( param_exist $current_dist_name "descr" ) add_param $current_dist_name "descr" replace get_param $current_dist_name "descr" "Ą" "A" flags "g"
		if ( param_exist $current_dist_name "descr" ) add_param $current_dist_name "descr" replace get_param $current_dist_name "descr" "ę" "e" flags "g"
		if ( param_exist $current_dist_name "descr" ) add_param $current_dist_name "descr" replace get_param $current_dist_name "descr" "Ę" "E" flags "g"
		if ( param_exist $current_dist_name "descr" ) add_param $current_dist_name "descr" replace get_param $current_dist_name "descr" "ć" "c" flags "g"
		if ( param_exist $current_dist_name "descr" ) add_param $current_dist_name "descr" replace get_param $current_dist_name "descr" "Ć" "C" flags "g"
		if ( param_exist $current_dist_name "descr" ) add_param $current_dist_name "descr" replace get_param $current_dist_name "descr" "ń" "n" flags "g"
		if ( param_exist $current_dist_name "descr" ) add_param $current_dist_name "descr" replace get_param $current_dist_name "descr" "Ń" "N" flags "g"
		if ( param_exist $current_dist_name "descr" ) add_param $current_dist_name "descr" replace get_param $current_dist_name "descr" "ś" "s" flags "g"
		if ( param_exist $current_dist_name "descr" ) add_param $current_dist_name "descr" replace get_param $current_dist_name "descr" "Ś" "S" flags "g"
		if ( param_exist $current_dist_name "descr" ) add_param $current_dist_name "descr" replace get_param $current_dist_name "descr" "ź" "z" flags "g"
		if ( param_exist $current_dist_name "descr" ) add_param $current_dist_name "descr" replace get_param $current_dist_name "descr" "Ź" "Z" flags "g"
		if ( param_exist $current_dist_name "descr" ) add_param $current_dist_name "descr" replace get_param $current_dist_name "descr" "ż" "z" flags "g"
		if ( param_exist $current_dist_name "descr" ) add_param $current_dist_name "descr" replace get_param $current_dist_name "descr" "Ż" "Z" flags "g"
		if ( param_exist $current_dist_name "descr" ) add_param $current_dist_name "descr" replace get_param $current_dist_name "descr" "æ" "ae" flags "g"
		if ( param_exist $current_dist_name "descr" ) add_param $current_dist_name "descr" replace get_param $current_dist_name "descr" "Æ" "AE" flags "g"
	end


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

#######################################################################################
#######################################################################################
#CHECK if SBTS/sbtsDescription and SBTS/MGMNT/DNS/serverIpAddressSecondary exist 
define "standaloneMode" "false"
define "abortFlag" "false"

for_objects "SBTS"
	begin
		define "sbtsId" $current_SBTS
		if not ( param_exist $current_dist_name "sbtsDescription" )
			abort		 
		define "mrbtsID" get_param $current_dist_name "sbtsDescription"
		if ( mrbtsID == "standalone" ) define "standaloneMode" "true"
		
		if ( standaloneMode == "false" )
		begin
			define "mrbtsID" mrbtsID JOIN "A"
			define "mrbtsID" replace mrbtsID "\D+" "" flags "g"
			define "abortFlag" "true"
		
			if   ( convert_to_int mrbtsID 10 )   >= 0
				begin
					if   ( convert_to_int mrbtsID 10 )   <= 1048575
						define "abortFlag" "false"
				end
		end
	end

 if ( ( objects_count "SBTS/MGMNT/DNS" ) == 0 )	&& ( standaloneMode == "false" ) abort
	
for_objects "SBTS/MGMNT/DNS"
	begin
	
		if  ( not param_exist $current_dist_name "serverIpAddressSecondary" ) && ( standaloneMode == "false" )
			abort
	end



if abortFlag == "true"
		abort
	
#######################################################################################

#######################################################################################
#######################################################################################
#create mrbtsRoot
if ( mrbtsID == "standalone" ) define "mrbtsID" sbtsId
define "mrbtsRoot" "MRBTS-" JOIN mrbtsID

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

#######################################################################################
#######################################################################################
#create proper MRBTS-x root MO based on SBTS-x/sbtsDescription	

add_object mrbtsRoot
set_operation mrbtsRoot "create"
#######################################################################################

#######################################################################################
#######################################################################################
#copy sbtsName to btsName

for_objects "SBTS"
	begin
		if ( param_exist $current_dist_name "sbtsName" )
			begin
				add_param mrbtsRoot "btsName" get_param $current_dist_name "sbtsName"
			end
		else
			begin
				add_param mrbtsRoot "btsName" mrbtsRoot
			end
	end
#######################################################################################

#######################################################################################
#######################################################################################
#Set proper version and adaptations for MRBTS MO

for_objects "MRBTS"
	begin
		set_version $current_dist_name "SBTS17_1610_003"
		set_adaptation $current_dist_name "com.nokia.srbts"
	end


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