##############################################################################
# Copyright (c) Members of the EGEE Collaboration. 2004. 
# See http://www.eu-egee.org/partners/ for details on the copyright 
# holders.  
#
# Licensed under the Apache License, Version 2.0 (the "License"); 
# you may not use this file except in compliance with the License. 
# You may obtain a copy of the License at 
#
#    http://www.apache.org/licenses/LICENSE-2.0 
#
# Unless required by applicable law or agreed to in writing, software 
# distributed under the License is distributed on an "AS IS" BASIS, 
# WITHOUT WARRANTIES OR CONDITIONS 
# OF ANY KIND, either express or implied. 
# See the License for the specific language governing permissions and 
# limitations under the License.
##############################################################################
#
# NAME :        config_info_service_rtepublish
#
# DESCRIPTION : This function configures the service provider for the GlueCluster
#               and GlueSubCluster.
#
# MAINTAINER :     Steve.Traylen@cern.ch massimo.sgaravatto@pd.infn.it
#
# NOTES : 
#
# YAIM MODULE:  glite-yaim-cluster
#                 
##############################################################################

config_cluster_info_service_rtepublish_check () {
  requires $1 SITE_NAME CLUSTER_HOST COMPUTING_SERVICE_ID
}

config_cluster_info_service_rtepublish_setenv () {
  yaimlog DEBUG "This function currently doesn't set any environment variables."
}

config_cluster_info_service_rtepublish () {

GLITE_CLUSTER_LOCATION_BIN=/usr/bin
GLITE_CLUSTER_LOCATION_ETC=/etc
GLITE_CLUSTER_LOCATION_GIP=/var/lib/bdii/gip


INFO_SERVICE_CONFIG=${INFO_SERVICE_CONFIG:-${GLITE_CLUSTER_LOCATION_ETC}/glite/info/service}
INFO_SERVICE_SCRIPT=${INFO_SERVICE_SCRIPT:-${GLITE_CLUSTER_LOCATION_BIN}}
INFO_PROVIDER_PATH=${INFO_PROVIDER_PATH:-${GLITE_CLUSTER_LOCATION_GIP}/provider}

# ServiceId is yaim variable COMPUTING_SERVICE_ID 
 ServiceId=${COMPUTING_SERVICE_ID}



SERVICE=RTEPublisher
SERVICE_HOST=${CLUSTER_HOST}

SERVICE_LC=`echo ${SERVICE} | tr '[:upper:]' '[:lower:]'`

if [ ! -f ${INFO_SERVICE_CONFIG}/glite-info-service-${SERVICE_LC}.conf.template ]; then
  yaimlog ERROR "The template file for glite-info-service-${SERVICE_LC}.conf.template was not found in ${INFO_SERVICE_CONFIG}."
  exit 1
fi

if [ ! -f ${INFO_SERVICE_SCRIPT}/glite-info-service ]; then
  yaimlog ERROR "The script file for glite-info-service was not found in ${INFO_SERVICE_SCRIPT}."
  exit 1
fi

yaimlog DEBUG "Delete a previous version of the glite-info-service-${SERVICE_LC}.conf if it exists"
rm -rf ${INFO_SERVICE_CONFIG}/glite-info-service-${SERVICE_LC}.conf

yaimlog DEBUG "Create the glite-info-service-${SERVICE_LC}.conf file out of the template file"
cp ${INFO_SERVICE_CONFIG}/glite-info-service-${SERVICE_LC}.conf.template ${INFO_SERVICE_CONFIG}/glite-info-service-${SERVICE_LC}.conf

yaimlog DEBUG "Create the glite-info-glue2-${SERVICE_LC}.conf file out of the template file"
cp ${INFO_SERVICE_CONFIG}/glite-info-glue2-${SERVICE_LC}.conf.template ${INFO_SERVICE_CONFIG}/glite-info-glue2-${SERVICE_LC}.conf


# Note: the configuration file may need to be altered if non standard values have been used. 

yaimlog DEBUG "Delete a previous version of the glite-info-provider-service-${SERVICE_LC}-wrapper if it exists"
rm -rf ${INFO_PROVIDER_PATH}/glite-info-provider-service-${SERVICE_LC}-wrapper

yaimlog DEBUG "Create the ${INFO_PROVIDER_PATH} in case it doesn't exist"
mkdir -p ${INFO_PROVIDER_PATH} 

yaimlog DEBUG "Create the glite-info-provider-service-${SERVICE_LC}-wrapper file"
cat << EOF > ${INFO_PROVIDER_PATH}/glite-info-provider-service-${SERVICE_LC}-wrapper
#!/bin/sh
export PATH=$PATH:${INFO_SERVICE_SCRIPT}
export ${SERVICE}_HOST=${SERVICE_HOST}
export GRIDFTP_PATH=/opt/glite/var/info
${INFO_SERVICE_SCRIPT}/glite-info-service ${INFO_SERVICE_CONFIG}/glite-info-service-${SERVICE_LC}.conf $SITE_NAME
${INFO_SERVICE_SCRIPT}/glite-info-glue2-endpoint ${INFO_SERVICE_CONFIG}/glite-info-glue2-${SERVICE_LC}.conf ${ServiceId}
EOF

chmod +x ${INFO_PROVIDER_PATH}/glite-info-provider-service-${SERVICE_LC}-wrapper 
 
  
return 0

}

