@@ -35,17 +35,14 @@ exit_if_no_token(){
35
35
}
36
36
37
37
get_proxy_fname () {
38
- local cert_fname=" $1 "
39
- if [ -z " $cert_fname " ]; then
40
- if [ -n " $X509_USER_PROXY " ]; then
41
- cert_fname=" $X509_USER_PROXY "
42
- # Ignoring the file in /tmp, it may be confusing
43
- # else
44
- # cert_fname="/tmp/x509up_u`id -u`"
45
- fi
46
- fi
38
+ # 1 - optional certificate file
39
+ local cert_fname=" ${1:- $X509_USER_PROXY } "
40
+ # Ignoring the file in /tmp, it may be confusing
41
+ # if [ -z "$cert_fname" ]; then
42
+ # cert_fname="/tmp/x509up_u`id -u`"
43
+ # fi
47
44
# should it control if the file exists?
48
- echo " Using proxy file $cert_fname ( ` [ -e " $cert_fname " ] && echo " OK" || echo " No file" ` )" 1>&2
45
+ echo " Using proxy file ' $cert_fname ' ( $( [ -e " $cert_fname " ] && echo " OK" || echo " No file" ) )" 1>&2
49
46
echo " $cert_fname "
50
47
}
51
48
@@ -60,7 +57,7 @@ create_gridmapfile() {
60
57
if ! id=$( voms-proxy-info -identity 2> /dev/null) ; then
61
58
# "openssl x509 -noout -issuer .." works for proxies but may be a CA for certificates
62
59
# did not find something to extract the identity, filtering manually
63
- cert_fname=$( get_proxy_fname)
60
+ cert_fname=$( get_proxy_fname " " )
64
61
if [[ -z " $cert_fname " ]]; then
65
62
ERROR=" Cannot find the x509 proxy."
66
63
return 1
@@ -88,35 +85,36 @@ create_gridmapfile() {
88
85
89
86
touch " $X509_GRIDMAP "
90
87
if [ -e " $GLIDEIN_WORK_DIR /$EXPECTED_GRIDMAP_FNAME " ]; then
91
- lines=$( wc -l " $GLIDEIN_WORK_DIR /$EXPECTED_GRIDMAP_FNAME " | awk ' {print $1} ' )
88
+ lines=$( wc -l < " $GLIDEIN_WORK_DIR /$EXPECTED_GRIDMAP_FNAME " )
92
89
cat " $GLIDEIN_WORK_DIR /$EXPECTED_GRIDMAP_FNAME " >> " $X509_GRIDMAP "
93
90
echo " Using factory main grid-mapfile ($lines )" 1>&2
94
91
fi
95
92
if [ -e " $GLIDEIN_ENTRY_WORK_DIR /$EXPECTED_GRIDMAP_FNAME " ]; then
96
- lines=$( wc -l " $GLIDEIN_ENTRY_WORK_DIR /$EXPECTED_GRIDMAP_FNAME " | awk ' {print $1} ' )
93
+ lines=$( wc -l < " $GLIDEIN_ENTRY_WORK_DIR /$EXPECTED_GRIDMAP_FNAME " )
97
94
cat " $GLIDEIN_ENTRY_WORK_DIR /$EXPECTED_GRIDMAP_FNAME " >> " $X509_GRIDMAP "
98
95
echo " Using factory entry grid-mapfile ($lines )" 1>&2
99
96
fi
100
97
if [ -e " $GLIDECLIENT_WORK_DIR /$EXPECTED_GRIDMAP_FNAME " ]; then
101
- lines=$( wc -l " $GLIDECLIENT_WORK_DIR /$EXPECTED_GRIDMAP_FNAME " | awk ' {print $1} ' )
98
+ lines=$( wc -l < " $GLIDECLIENT_WORK_DIR /$EXPECTED_GRIDMAP_FNAME " )
102
99
cat " $GLIDECLIENT_WORK_DIR /$EXPECTED_GRIDMAP_FNAME " >> " $X509_GRIDMAP "
103
100
echo " Using client main grid-mapfile ($lines )" 1>&2
104
101
fi
105
102
if [ -e " $GLIDECLIENT_GROUP_WORK_DIR /$EXPECTED_GRIDMAP_FNAME " ]; then
106
- lines=$( wc -l " $GLIDECLIENT_GROUP_WORK_DIR /$EXPECTED_GRIDMAP_FNAME " | awk ' {print $1} ' )
103
+ lines=$( wc -l < " $GLIDECLIENT_GROUP_WORK_DIR /$EXPECTED_GRIDMAP_FNAME " )
107
104
cat " $GLIDECLIENT_GROUP_WORK_DIR /$EXPECTED_GRIDMAP_FNAME " >> " $X509_GRIDMAP "
108
105
echo " Using client group grid-mapfile ($lines )" 1>&2
109
106
fi
110
- echo " \" $idp \" " condor >> " $X509_GRIDMAP "
111
- if [ $? -ne 0 ]; then
107
+ if ! echo " \" $idp \" " condor >> " $X509_GRIDMAP " ; then
112
108
ERROR=" Cannot add user identity to $X509_GRIDMAP !"
113
109
return 1
114
110
fi
115
111
return 0
116
112
}
117
113
118
114
extract_gridmap_DNs () {
119
- awk -F ' "' ' /CN/{dn=$2;if (dns=="") {dns=dn;} else {dns=dns "," dn}}END{print dns}' " $X509_GRIDMAP "
115
+ if [[ -r " $X509_GRIDMAP " ]]; then
116
+ awk -F ' "' ' /CN/{dn=$2;if (dns=="") {dns=dn;} else {dns=dns "," dn}}END{print dns}' " $X509_GRIDMAP "
117
+ fi
120
118
}
121
119
122
120
# create a condor_mapfile starting from a grid-mapfile
@@ -127,32 +125,33 @@ create_condormapfile() {
127
125
# make sure there is nothing in place already
128
126
rm -f " $X509_CONDORMAP "
129
127
touch " $X509_CONDORMAP " && chmod go-wx " $X509_CONDORMAP " || { ERROR=" Cannot create HTCSS map file '$X509_CONDORMAP '" ; return 1; }
130
- # copy with formatting the glide -mapfile into condor_mapfile
128
+ # copy with formatting the grid -mapfile into condor_mapfile
131
129
# filter out lines starting with the comment (#)
132
130
# grep -v "^[ ]*#" "$X509_GRIDMAP" | while read file
133
- while read line
134
- do
135
- if [[ -n " $line " ]]; then # ignore empty lines
136
- # split between DN and UID
137
- # keep the quotes in DN to not loose trailing spaces
138
- udn=$( echo " $line " | awk ' {print substr($0,1,length($0)-length($NF)-1)}' )
139
- uid=$( echo " $line " | awk ' {print $NF}' )
140
-
141
- # encode for regexp
142
- edn_wq=$( echo " $udn " | sed ' s/[^[:alnum:]]/\\\&/g' )
143
- # remove backslashes from the first and last quote
144
- # and add begin and end matching chars
145
- e_dn=$( echo " $edn_wq " | awk ' {print "\"^" substr(substr($0,3,length($0)-2),1,length($0)-4) "$\"" }' )
146
-
147
- echo " GSI $e_dn $uid " >> " $X509_CONDORMAP "
148
- if [ " $X509_SKIP_HOST_CHECK_DNS_REGEX " = " " ]; then
149
- X509_SKIP_HOST_CHECK_DNS_REGEX=" $edn_wq "
150
- else
151
- X509_SKIP_HOST_CHECK_DNS_REGEX=$X509_SKIP_HOST_CHECK_DNS_REGEX \| $edn_wq
131
+ if [[ -r " $X509_GRIDMAP " ]]; then
132
+ while read line
133
+ do
134
+ if [[ -n " $line " ]]; then # ignore empty lines
135
+ # split between DN and UID
136
+ # keep the quotes in DN to not loose trailing spaces
137
+ udn=$( echo " $line " | awk ' {print substr($0,1,length($0)-length($NF)-1)}' )
138
+ uid=$( echo " $line " | awk ' {print $NF}' )
139
+
140
+ # encode for regexp
141
+ edn_wq=$( echo " $udn " | sed ' s/[^[:alnum:]]/\\\&/g' )
142
+ # remove backslashes from the first and last quote
143
+ # and add begin and end matching chars
144
+ e_dn=$( echo " $edn_wq " | awk ' {print "\"^" substr(substr($0,3,length($0)-2),1,length($0)-4) "$\"" }' )
145
+
146
+ echo " GSI $e_dn $uid " >> " $X509_CONDORMAP "
147
+ if [ " $X509_SKIP_HOST_CHECK_DNS_REGEX " = " " ]; then
148
+ X509_SKIP_HOST_CHECK_DNS_REGEX=" $edn_wq "
149
+ else
150
+ X509_SKIP_HOST_CHECK_DNS_REGEX=$X509_SKIP_HOST_CHECK_DNS_REGEX \| $edn_wq
151
+ fi
152
152
fi
153
- fi
154
- done < <( grep -v " ^[ ]*#" " $X509_GRIDMAP " )
155
-
153
+ done < <( grep -v " ^[ ]*#" " $X509_GRIDMAP " )
154
+ fi
156
155
# add local user
157
156
# and deny any other type of traffic
158
157
cat << EOF >> "$X509_CONDORMAP "
@@ -199,8 +198,7 @@ if ! create_gridmapfile; then
199
198
# TODO: check if it makes sense to continue w/ the rest, including defining X509... variables in glidein_config
200
199
else
201
200
# 1. "$error_gen" -error "create_mapfile.sh" "WN_Resource" "$ERROR" "command" "$proxy_cmd"
202
- # 2. "$error_gen" -error "create_mapfile.sh" "WN_Resource" "$ERROR" "command" "$proxy_cmd"
203
- # 3. "$error_gen" -error "create_mapfile.sh" "WN_Resource" "$ERROR" "file" "$X509_GRIDMAP"
201
+ # 2. "$error_gen" -error "create_mapfile.sh" "WN_Resource" "$ERROR" "file" "$X509_GRIDMAP"
204
202
" $error_gen " -error " create_mapfile.sh" " WN_Resource" " $ERROR " " command" " $proxy_cmd " " file" " $X509_GRIDMAP "
205
203
exit 1
206
204
fi
0 commit comments