Index by: file name | procedure name | procedure call | annotation
installSSLConfig_proc.tcl (annotations | original source)

# 
# Install a new SSLConfig. 
####################################################################
# Patrick Finnegan 31/01/2007.  V1. 
####################################################################
proc installSSLConfig { propertiesFile } {

   global AdminConfig 
   global AdminTask 

   # display procedure arguments.

   putsLog "proc - [info level 0 ]"

   foreach i [ info args installLdap ]  {

      upvar 0 $i ilocal

      set propertiesArray($i) $ilocal 

   }

   putsLog "procedure arguments are.................."

   foreach { a b } [ array get propertiesArray ] {

       putsLog [ format "%-35s %s" "$a" "$b" ]

   }

   # get and display the existing SSLConfigs. 

   putsLog "existing SSLConfigs are:............" 

   if { [ catch { $AdminConfig list SSLConfig } r ] == 0 } {

         set SSLConfigList $r

         foreach i $SSLConfigList { 
	     
	     set SSLConfigName [ $AdminConfig showAttribute $i alias ]


	     putsLog [ format "%-5s %s" " " $SSLConfigName ]

	 }

   } else {

       return -code error $r

   }

   # call the hashMapList proc which returns a sorted list from the Property object loaded from the properties file.

   putsLog "new SSLConfig properties are:............" 

   if { [ catch { hashMapList $propertiesFile } r ] == 0 } {
     
       set propertiesList $r 

       foreach a $propertiesList {

           putsLog [ format "%-5s %-40s %-s" " " [ lindex $a 0 ] [ lindex $a 1 ] ] 

       }

   } else {

       return -code error $r 

   }

   # call the hashMap proc which returns a Property object populated with property file values.  

   if { [ catch { hashMap $propertiesFile } r ] == 0 } {
     
       set PropertyI $r 

   } else {

       return -code error $r 

   }

   #drill down from the Security object and get repertoire(type SSLConfig)
   # check if the target SSLConfig already exists.  If so delete.

   set securityId     [ $AdminConfig list Security ]     

   set repertoireList [ lindex [ $AdminConfig showAttribute $securityId repertoire ] 0 ]

   set SSLConfigName [ $PropertyI getProperty SSLConfig.alias ]

   foreach i $repertoireList {

       set alias [ $AdminConfig showAttribute $i alias ]

       if { $alias == $SSLConfigName } { 
           
            if { [ catch { $AdminConfig remove $i } r ] == 0 } {

        	putsLog "SSLConfig removed successfully: $SSLConfigName"
        	
            } else {

        	putsLog "ERROR: error removing SSLConfig: $SSLConfigName"
        	return -code error $r 

            }

       }

   }

   # set the SSLConfig properties.

   set attrList [ setProperties $PropertyI ] 

   #puts $attrList 

   if { [ catch { $AdminConfig create SSLConfig $securityId $attrList repertoire } r ] == 0 } {

       putsLog "************************************"
       putsLog "SSLConfig created successfully:"
       putsLog $r 
       putsLog "************************************"

       } else {

       putsLog "************************************"
       putsLog "ERROR: problem creating SSLConfig"
       putsLog $r 
       putsLog "************************************"
       return -code error $r

   }
}
######################################
# set SSLConfig attributes. 
######################################
proc setProperties { PropertyI } {

   global AdminConfig 

   putsLog "proc - [info level 0 ]"

   foreach i [ info args setProperties ]  {

      upvar 0 $i ilocal

      set propertiesArray($i) $ilocal 

   }

   putsLog "procedure arguments are: .................."

   foreach { a b } [ array get propertiesArray ] {

       putsLog [ format "%-35s %s" "$a" "$b" ]

   }
    
   set aliasList    [ list alias [ $PropertyI getProperty  SSLConfig.alias ] ]

   # get the keystore id. 

   set keyStoreName [ $PropertyI getProperty  SSLConfig.setting.keyStore ]  

   if { [ catch { $AdminConfig getid /KeyStore:$keyStoreName/ } r ] == 0 } {
	   
        if { $r != {} } {

	    set keyStoreId $r  

	} else {

            putsLog "ERROR: $keyStoreName does not exist."
            return -code error $r

	}

   } else {

       return -code error $r

   }

   set keyStore    [ list keyStore   $keyStoreId ]
   set trustStore  [ list trustStore $keyStoreId ]

   set settingList  [ list setting [ list $keyStore $trustStore     ] ] 

   set attrList [ list $aliasList $settingList ]
 
   return $attrList 

}

Index by: file name | procedure name | procedure call | annotation
File generated 2007-08-07 at 13:42.