jbasdf-muck-solr 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (156) hide show
  1. data/CHANGE_LOG +239 -0
  2. data/LICENSE +19 -0
  3. data/README.markdown +118 -0
  4. data/README.rdoc +107 -0
  5. data/Rakefile +99 -0
  6. data/TESTING_THE_PLUGIN +25 -0
  7. data/VERSION.yml +4 -0
  8. data/config/solr.yml +15 -0
  9. data/config/solr_environment.rb +32 -0
  10. data/lib/acts_as_solr/acts_methods.rb +352 -0
  11. data/lib/acts_as_solr/class_methods.rb +236 -0
  12. data/lib/acts_as_solr/common_methods.rb +89 -0
  13. data/lib/acts_as_solr/deprecation.rb +61 -0
  14. data/lib/acts_as_solr/instance_methods.rb +165 -0
  15. data/lib/acts_as_solr/lazy_document.rb +18 -0
  16. data/lib/acts_as_solr/parser_methods.rb +203 -0
  17. data/lib/acts_as_solr/search_results.rb +68 -0
  18. data/lib/acts_as_solr/solr_fixtures.rb +13 -0
  19. data/lib/acts_as_solr/tasks/database.rake +16 -0
  20. data/lib/acts_as_solr/tasks/solr.rake +135 -0
  21. data/lib/acts_as_solr/tasks/test.rake +5 -0
  22. data/lib/acts_as_solr/tasks.rb +10 -0
  23. data/lib/acts_as_solr.rb +65 -0
  24. data/lib/solr/connection.rb +177 -0
  25. data/lib/solr/document.rb +75 -0
  26. data/lib/solr/exception.rb +13 -0
  27. data/lib/solr/field.rb +36 -0
  28. data/lib/solr/importer/array_mapper.rb +26 -0
  29. data/lib/solr/importer/delimited_file_source.rb +38 -0
  30. data/lib/solr/importer/hpricot_mapper.rb +27 -0
  31. data/lib/solr/importer/mapper.rb +51 -0
  32. data/lib/solr/importer/solr_source.rb +41 -0
  33. data/lib/solr/importer/xpath_mapper.rb +35 -0
  34. data/lib/solr/importer.rb +19 -0
  35. data/lib/solr/indexer.rb +52 -0
  36. data/lib/solr/request/add_document.rb +58 -0
  37. data/lib/solr/request/base.rb +36 -0
  38. data/lib/solr/request/commit.rb +29 -0
  39. data/lib/solr/request/delete.rb +48 -0
  40. data/lib/solr/request/dismax.rb +46 -0
  41. data/lib/solr/request/index_info.rb +22 -0
  42. data/lib/solr/request/modify_document.rb +46 -0
  43. data/lib/solr/request/optimize.rb +19 -0
  44. data/lib/solr/request/ping.rb +36 -0
  45. data/lib/solr/request/select.rb +54 -0
  46. data/lib/solr/request/spellcheck.rb +30 -0
  47. data/lib/solr/request/standard.rb +402 -0
  48. data/lib/solr/request/update.rb +23 -0
  49. data/lib/solr/request.rb +26 -0
  50. data/lib/solr/response/add_document.rb +17 -0
  51. data/lib/solr/response/base.rb +42 -0
  52. data/lib/solr/response/commit.rb +15 -0
  53. data/lib/solr/response/delete.rb +13 -0
  54. data/lib/solr/response/dismax.rb +8 -0
  55. data/lib/solr/response/index_info.rb +26 -0
  56. data/lib/solr/response/modify_document.rb +17 -0
  57. data/lib/solr/response/optimize.rb +14 -0
  58. data/lib/solr/response/ping.rb +26 -0
  59. data/lib/solr/response/ruby.rb +42 -0
  60. data/lib/solr/response/select.rb +17 -0
  61. data/lib/solr/response/spellcheck.rb +20 -0
  62. data/lib/solr/response/standard.rb +60 -0
  63. data/lib/solr/response/xml.rb +39 -0
  64. data/lib/solr/response.rb +27 -0
  65. data/lib/solr/solrtasks.rb +27 -0
  66. data/lib/solr/util.rb +32 -0
  67. data/lib/solr/xml.rb +44 -0
  68. data/lib/solr.rb +26 -0
  69. data/solr/CHANGES.txt +1207 -0
  70. data/solr/LICENSE.txt +712 -0
  71. data/solr/NOTICE.txt +90 -0
  72. data/solr/etc/jetty.xml +205 -0
  73. data/solr/etc/webdefault.xml +379 -0
  74. data/solr/lib/easymock.jar +0 -0
  75. data/solr/lib/jetty-6.1.3.jar +0 -0
  76. data/solr/lib/jetty-util-6.1.3.jar +0 -0
  77. data/solr/lib/jsp-2.1/ant-1.6.5.jar +0 -0
  78. data/solr/lib/jsp-2.1/core-3.1.1.jar +0 -0
  79. data/solr/lib/jsp-2.1/jsp-2.1.jar +0 -0
  80. data/solr/lib/jsp-2.1/jsp-api-2.1.jar +0 -0
  81. data/solr/lib/servlet-api-2.4.jar +0 -0
  82. data/solr/lib/servlet-api-2.5-6.1.3.jar +0 -0
  83. data/solr/lib/xpp3-1.1.3.4.O.jar +0 -0
  84. data/solr/solr/README.txt +52 -0
  85. data/solr/solr/bin/abc +176 -0
  86. data/solr/solr/bin/abo +176 -0
  87. data/solr/solr/bin/backup +108 -0
  88. data/solr/solr/bin/backupcleaner +142 -0
  89. data/solr/solr/bin/commit +128 -0
  90. data/solr/solr/bin/optimize +129 -0
  91. data/solr/solr/bin/readercycle +129 -0
  92. data/solr/solr/bin/rsyncd-disable +77 -0
  93. data/solr/solr/bin/rsyncd-enable +76 -0
  94. data/solr/solr/bin/rsyncd-start +145 -0
  95. data/solr/solr/bin/rsyncd-stop +105 -0
  96. data/solr/solr/bin/scripts-util +83 -0
  97. data/solr/solr/bin/snapcleaner +148 -0
  98. data/solr/solr/bin/snapinstaller +168 -0
  99. data/solr/solr/bin/snappuller +248 -0
  100. data/solr/solr/bin/snappuller-disable +77 -0
  101. data/solr/solr/bin/snappuller-enable +77 -0
  102. data/solr/solr/bin/snapshooter +109 -0
  103. data/solr/solr/conf/admin-extra.html +31 -0
  104. data/solr/solr/conf/protwords.txt +21 -0
  105. data/solr/solr/conf/schema.xml +126 -0
  106. data/solr/solr/conf/scripts.conf +24 -0
  107. data/solr/solr/conf/solrconfig.xml +458 -0
  108. data/solr/solr/conf/stopwords.txt +57 -0
  109. data/solr/solr/conf/synonyms.txt +31 -0
  110. data/solr/solr/conf/xslt/example.xsl +132 -0
  111. data/solr/solr/conf/xslt/example_atom.xsl +63 -0
  112. data/solr/solr/conf/xslt/example_rss.xsl +62 -0
  113. data/solr/start.jar +0 -0
  114. data/solr/webapps/solr.war +0 -0
  115. data/test/config/solr.yml +2 -0
  116. data/test/db/connections/mysql/connection.rb +10 -0
  117. data/test/db/connections/sqlite/connection.rb +8 -0
  118. data/test/db/migrate/001_create_books.rb +15 -0
  119. data/test/db/migrate/002_create_movies.rb +12 -0
  120. data/test/db/migrate/003_create_categories.rb +11 -0
  121. data/test/db/migrate/004_create_electronics.rb +16 -0
  122. data/test/db/migrate/005_create_authors.rb +12 -0
  123. data/test/db/migrate/006_create_postings.rb +9 -0
  124. data/test/db/migrate/007_create_posts.rb +13 -0
  125. data/test/db/migrate/008_create_gadgets.rb +11 -0
  126. data/test/fixtures/authors.yml +9 -0
  127. data/test/fixtures/books.yml +13 -0
  128. data/test/fixtures/categories.yml +7 -0
  129. data/test/fixtures/db_definitions/mysql.sql +41 -0
  130. data/test/fixtures/electronics.yml +49 -0
  131. data/test/fixtures/movies.yml +9 -0
  132. data/test/fixtures/postings.yml +10 -0
  133. data/test/functional/acts_as_solr_test.rb +413 -0
  134. data/test/functional/association_indexing_test.rb +37 -0
  135. data/test/functional/faceted_search_test.rb +163 -0
  136. data/test/functional/multi_solr_search_test.rb +57 -0
  137. data/test/models/author.rb +10 -0
  138. data/test/models/book.rb +10 -0
  139. data/test/models/category.rb +8 -0
  140. data/test/models/electronic.rb +25 -0
  141. data/test/models/gadget.rb +9 -0
  142. data/test/models/movie.rb +17 -0
  143. data/test/models/novel.rb +2 -0
  144. data/test/models/post.rb +3 -0
  145. data/test/models/posting.rb +11 -0
  146. data/test/test_helper.rb +54 -0
  147. data/test/unit/acts_methods_shoulda.rb +68 -0
  148. data/test/unit/class_methods_shoulda.rb +85 -0
  149. data/test/unit/common_methods_shoulda.rb +111 -0
  150. data/test/unit/instance_methods_shoulda.rb +318 -0
  151. data/test/unit/lazy_document_shoulda.rb +34 -0
  152. data/test/unit/parser_instance.rb +19 -0
  153. data/test/unit/parser_methods_shoulda.rb +268 -0
  154. data/test/unit/solr_instance.rb +49 -0
  155. data/test/unit/test_helper.rb +24 -0
  156. metadata +241 -0
@@ -0,0 +1,129 @@
1
+ #!/bin/bash
2
+ #
3
+ # Licensed to the Apache Software Foundation (ASF) under one or more
4
+ # contributor license agreements. See the NOTICE file distributed with
5
+ # this work for additional information regarding copyright ownership.
6
+ # The ASF licenses this file to You under the Apache License, Version 2.0
7
+ # (the "License"); you may not use this file except in compliance with
8
+ # the License. You may obtain a copy of the License at
9
+ #
10
+ # http://www.apache.org/licenses/LICENSE-2.0
11
+ #
12
+ # Unless required by applicable law or agreed to in writing, software
13
+ # distributed under the License is distributed on an "AS IS" BASIS,
14
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ # See the License for the specific language governing permissions and
16
+ # limitations under the License.
17
+ #
18
+ # Shell script to force all old readers closed and a new reader to be opened
19
+ # for a Solr server
20
+
21
+ orig_dir=$(pwd)
22
+ cd ${0%/*}/..
23
+ solr_root=$(pwd)
24
+ cd ${orig_dir}
25
+ curl_url=""
26
+
27
+ unset solr_hostname solr_port webapp_name user verbose debug solr_url
28
+ . ${solr_root}/bin/scripts-util
29
+
30
+ # set up variables
31
+ prog=${0##*/}
32
+ log=${solr_root}/logs/${prog}.log
33
+
34
+ # define usage string
35
+ USAGE="\
36
+ usage: $prog [-p hostname] [-p port] [-w webapp_name] [-u username] [-U url] [-v] [-V]
37
+ -h specify Solr hostname (defaults to localhost)
38
+ -p specify Solr port number
39
+ -w specify name of Solr webapp (defaults to solr)
40
+ -u specify user to sudo to before running script
41
+ -U specify full update url (overrides -h,-p,-w parameters)
42
+ -v increase verbosity
43
+ -V output debugging info
44
+ "
45
+
46
+ # parse args
47
+ originalargs="$@"
48
+ while getopts h:p:w:u:U:vV OPTION
49
+ do
50
+ case $OPTION in
51
+ h)
52
+ solr_hostname="$OPTARG"
53
+ ;;
54
+ p)
55
+ solr_port="$OPTARG"
56
+ ;;
57
+ w)
58
+ webapp_name="$OPTARG"
59
+ ;;
60
+ u)
61
+ user="$OPTARG"
62
+ ;;
63
+ U)
64
+ solr_url="$OPTARG"
65
+ ;;
66
+ v)
67
+ verbose="v"
68
+ ;;
69
+ V)
70
+ debug="V"
71
+ ;;
72
+ *)
73
+ echo "$USAGE"
74
+ exit 1
75
+ esac
76
+ done
77
+
78
+ [[ -n $debug ]] && set -x
79
+
80
+ if [[ -n ${solr_url} ]]
81
+ then
82
+ curl_url=${solr_url}
83
+ else
84
+ if [[ -z ${solr_port} ]]
85
+ then
86
+ echo "Solr port number missing in $confFile or command line."
87
+ echo "$USAGE"
88
+ exit 1
89
+ fi
90
+
91
+ # use default hostname if not specified
92
+ if [[ -z ${solr_hostname} ]]
93
+ then
94
+ solr_hostname=localhost
95
+ fi
96
+
97
+ # use default webapp name if not specified
98
+ if [[ -z ${webapp_name} ]]
99
+ then
100
+ webapp_name=solr
101
+ fi
102
+ curl_url=http://${solr_hostname}:${solr_port}/${webapp_name}/update
103
+ fi
104
+
105
+ fixUser "$@"
106
+
107
+ start=`date +"%s"`
108
+
109
+ logMessage started by $oldwhoami
110
+ logMessage command: $0 $@
111
+
112
+ rs=`curl ${curl_url} -s -H 'Content-type:text/xml; charset=utf-8' -d "<commit/>"`
113
+ if [[ $? != 0 ]]
114
+ then
115
+ logMessage failed to connect to Solr server at ${curl_url}
116
+ logMessage reader cycle failed
117
+ logExit failed 1
118
+ fi
119
+
120
+ # check status of commit request
121
+ echo $rs | grep '<response.*status="0"' > /dev/null 2>&1
122
+ if [[ $? != 0 ]]
123
+ then
124
+ logMessage reader cycle request to Solr at ${curl_url} failed:
125
+ logMessage $rs
126
+ logExit failed 2
127
+ fi
128
+
129
+ logExit ended 0
@@ -0,0 +1,77 @@
1
+ #!/bin/bash
2
+ #
3
+ # Licensed to the Apache Software Foundation (ASF) under one or more
4
+ # contributor license agreements. See the NOTICE file distributed with
5
+ # this work for additional information regarding copyright ownership.
6
+ # The ASF licenses this file to You under the Apache License, Version 2.0
7
+ # (the "License"); you may not use this file except in compliance with
8
+ # the License. You may obtain a copy of the License at
9
+ #
10
+ # http://www.apache.org/licenses/LICENSE-2.0
11
+ #
12
+ # Unless required by applicable law or agreed to in writing, software
13
+ # distributed under the License is distributed on an "AS IS" BASIS,
14
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ # See the License for the specific language governing permissions and
16
+ # limitations under the License.
17
+ #
18
+ # Shell script to disable rsyncd
19
+
20
+ orig_dir=$(pwd)
21
+ cd ${0%/*}/..
22
+ solr_root=$(pwd)
23
+ cd ${orig_dir}
24
+
25
+ unset user verbose debug
26
+ . ${solr_root}/bin/scripts-util
27
+
28
+ # set up variables
29
+ prog=${0##*/}
30
+ log=${solr_root}/logs/rsyncd.log
31
+
32
+ # define usage string
33
+ USAGE="\
34
+ usage: $prog [-u username] [-v]
35
+ -u specify user to sudo to before running script
36
+ -v increase verbosity
37
+ -V output debugging info
38
+ "
39
+
40
+ # parse args
41
+ while getopts u:vV OPTION
42
+ do
43
+ case $OPTION in
44
+ u)
45
+ user="$OPTARG"
46
+ ;;
47
+ v)
48
+ verbose="v"
49
+ ;;
50
+ V)
51
+ debug="V"
52
+ ;;
53
+ *)
54
+ echo "$USAGE"
55
+ exit 1
56
+ esac
57
+ done
58
+
59
+ [[ -n $debug ]] && set -x
60
+
61
+ fixUser "$@"
62
+
63
+ start=`date +"%s"`
64
+
65
+ logMessage disabled by $oldwhoami
66
+ logMessage command: $0 $@
67
+ name=${solr_root}/logs/rsyncd-enabled
68
+
69
+ if [[ -f ${name} ]]
70
+ then
71
+ rm -f ${name}
72
+ else
73
+ logMessage rsyncd not currently enabled
74
+ logExit exited 1
75
+ fi
76
+
77
+ logExit ended 0
@@ -0,0 +1,76 @@
1
+ #!/bin/bash
2
+ #
3
+ # Licensed to the Apache Software Foundation (ASF) under one or more
4
+ # contributor license agreements. See the NOTICE file distributed with
5
+ # this work for additional information regarding copyright ownership.
6
+ # The ASF licenses this file to You under the Apache License, Version 2.0
7
+ # (the "License"); you may not use this file except in compliance with
8
+ # the License. You may obtain a copy of the License at
9
+ #
10
+ # http://www.apache.org/licenses/LICENSE-2.0
11
+ #
12
+ # Unless required by applicable law or agreed to in writing, software
13
+ # distributed under the License is distributed on an "AS IS" BASIS,
14
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ # See the License for the specific language governing permissions and
16
+ # limitations under the License.
17
+ #
18
+ # Shell script to enable rsyncd
19
+
20
+ orig_dir=$(pwd)
21
+ cd ${0%/*}/..
22
+ solr_root=$(pwd)
23
+ cd ${orig_dir}
24
+
25
+ unset user verbose debug
26
+ . ${solr_root}/bin/scripts-util
27
+
28
+ # set up variables
29
+ log=${solr_root}/logs/rsyncd.log
30
+
31
+ # define usage string
32
+ USAGE="\
33
+ usage: $prog [-u username] [-v]
34
+ -u specify user to sudo to before running script
35
+ -v increase verbosity
36
+ -V output debugging info
37
+ "
38
+
39
+ # parse args
40
+ while getopts u:vV OPTION
41
+ do
42
+ case $OPTION in
43
+ u)
44
+ user="$OPTARG"
45
+ ;;
46
+ v)
47
+ verbose="v"
48
+ ;;
49
+ V)
50
+ debug="V"
51
+ ;;
52
+ *)
53
+ echo "$USAGE"
54
+ exit 1
55
+ esac
56
+ done
57
+
58
+ [[ -n $debug ]] && set -x
59
+
60
+ fixUser "$@"
61
+
62
+ start=`date +"%s"`
63
+
64
+ logMessage enabled by $oldwhoami
65
+ logMessage command: $0 $@
66
+ name=${solr_root}/logs/rsyncd-enabled
67
+
68
+ if [[ -f ${name} ]]
69
+ then
70
+ logMessage rsyncd already currently enabled
71
+ logExit exited 1
72
+ else
73
+ touch ${name}
74
+ fi
75
+
76
+ logExit ended 0
@@ -0,0 +1,145 @@
1
+ #!/bin/bash
2
+ #
3
+ # Licensed to the Apache Software Foundation (ASF) under one or more
4
+ # contributor license agreements. See the NOTICE file distributed with
5
+ # this work for additional information regarding copyright ownership.
6
+ # The ASF licenses this file to You under the Apache License, Version 2.0
7
+ # (the "License"); you may not use this file except in compliance with
8
+ # the License. You may obtain a copy of the License at
9
+ #
10
+ # http://www.apache.org/licenses/LICENSE-2.0
11
+ #
12
+ # Unless required by applicable law or agreed to in writing, software
13
+ # distributed under the License is distributed on an "AS IS" BASIS,
14
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ # See the License for the specific language governing permissions and
16
+ # limitations under the License.
17
+ #
18
+ # Shell script to start rsyncd on master Solr server
19
+
20
+ orig_dir=$(pwd)
21
+ cd ${0%/*}/..
22
+ solr_root=$(pwd)
23
+ cd ${orig_dir}
24
+
25
+ unset data_dir solr_port rsyncd_port user verbose debug
26
+ . ${solr_root}/bin/scripts-util
27
+
28
+ # set up variables
29
+ prog=${0##*/}
30
+ log=${solr_root}/logs/rsyncd.log
31
+
32
+ # define usage string
33
+ USAGE="\
34
+ usage: $prog [-d dir] [-p portnum] [-u username] [-v]
35
+ -d specify directory holding index data
36
+ -p specify rsyncd port number
37
+ -u specify user to sudo to before running script
38
+ -v increase verbosity
39
+ -V output debugging info
40
+ "
41
+
42
+ # parse args
43
+ while getopts d:p:u:vV OPTION
44
+ do
45
+ case $OPTION in
46
+ d)
47
+ data_dir="$OPTARG"
48
+ ;;
49
+ p)
50
+ rsyncd_port="$OPTARG"
51
+ ;;
52
+ u)
53
+ user="$OPTARG"
54
+ ;;
55
+ v)
56
+ verbose="v"
57
+ ;;
58
+ V)
59
+ debug="V"
60
+ ;;
61
+ *)
62
+ echo "$USAGE"
63
+ exit 1
64
+ esac
65
+ done
66
+
67
+ [[ -n $debug ]] && set -x
68
+
69
+ fixUser "$@"
70
+
71
+ # try to determine rsyncd port number from $confFile if not specified on
72
+ # command line, default to solr_port+10000
73
+ if [[ -z ${rsyncd_port} ]]
74
+ then
75
+ if [[ "${solr_port}" ]]
76
+ then
77
+ rsyncd_port=`expr 10000 + ${solr_port}`
78
+ else
79
+ echo "rsyncd port number missing in $confFile or command line."
80
+ echo "$USAGE"
81
+ exit 1
82
+ fi
83
+ fi
84
+
85
+ # use default value for data_dir if not specified
86
+ # relative path starts at ${solr_root}
87
+ if [[ -z ${data_dir} ]]
88
+ then
89
+ data_dir=${solr_root}/data
90
+ elif [[ "`echo ${data_dir}|cut -c1`" != "/" ]]
91
+ then
92
+ data_dir=${solr_root}/${data_dir}
93
+ fi
94
+
95
+ logMessage started by $oldwhoami
96
+ logMessage command: $0 $@
97
+
98
+ if [[ ! -f ${solr_root}/logs/rsyncd-enabled ]]
99
+ then
100
+ logMessage rsyncd disabled
101
+ exit 1
102
+ fi
103
+
104
+ if \
105
+ rsync rsync://localhost:${rsyncd_port} >/dev/null 2>&1
106
+ then
107
+ logMessage "rsyncd already running at port ${rsyncd_port}"
108
+ exit 1
109
+ fi
110
+
111
+ # create conf/rsyncd.conf on the fly, creating solrlogs directory if needed
112
+ if [[ ! -d ${solr_root}/conf ]]
113
+ then
114
+ mkdir ${solr_root}/conf
115
+ fi
116
+ cat <<EOF > ${solr_root}/conf/rsyncd.conf
117
+ #### rsyncd.conf file ####
118
+
119
+ uid = $(whoami)
120
+ gid = $(whoami)
121
+ use chroot = no
122
+ list = no
123
+ pid file = ${solr_root}/logs/rsyncd.pid
124
+ log file = ${solr_root}/logs/rsyncd.log
125
+ [solr]
126
+ path = ${data_dir}
127
+ comment = Solr
128
+ EOF
129
+
130
+ rsync --daemon --port=${rsyncd_port} --config=${solr_root}/conf/rsyncd.conf
131
+
132
+ # first make sure rsyncd is accepting connections
133
+ i=1
134
+ while \
135
+ ! rsync rsync://localhost:${rsyncd_port} >/dev/null 2>&1
136
+ do
137
+ if (( i++ > 15 ))
138
+ then
139
+ logMessage "rsyncd not accepting connections, exiting" >&2
140
+ exit 2
141
+ fi
142
+ sleep 1
143
+ done
144
+
145
+ logMessage rsyncd started with data_dir=${data_dir} and accepting requests
@@ -0,0 +1,105 @@
1
+ #!/bin/bash
2
+ #
3
+ # Licensed to the Apache Software Foundation (ASF) under one or more
4
+ # contributor license agreements. See the NOTICE file distributed with
5
+ # this work for additional information regarding copyright ownership.
6
+ # The ASF licenses this file to You under the Apache License, Version 2.0
7
+ # (the "License"); you may not use this file except in compliance with
8
+ # the License. You may obtain a copy of the License at
9
+ #
10
+ # http://www.apache.org/licenses/LICENSE-2.0
11
+ #
12
+ # Unless required by applicable law or agreed to in writing, software
13
+ # distributed under the License is distributed on an "AS IS" BASIS,
14
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ # See the License for the specific language governing permissions and
16
+ # limitations under the License.
17
+ #
18
+ # Shell script to stop rsyncd on master Solr server
19
+
20
+ orig_dir=$(pwd)
21
+ cd ${0%/*}/..
22
+ solr_root=$(pwd)
23
+ cd ${orig_dir}
24
+
25
+ unset user verbose debug
26
+ . ${solr_root}/bin/scripts-util
27
+
28
+ # set up variables
29
+ prog=${0##*/}
30
+ log=${solr_root}/logs/rsyncd.log
31
+
32
+ # define usage string
33
+ USAGE="\
34
+ usage: $prog [-u username] [-v]
35
+ -u specify user to sudo to before running script
36
+ -v increase verbosity
37
+ -V output debugging info
38
+ "
39
+
40
+ # parse args
41
+ while getopts u:vV OPTION
42
+ do
43
+ case $OPTION in
44
+ u)
45
+ user="$OPTARG"
46
+ ;;
47
+ v)
48
+ verbose="v"
49
+ ;;
50
+ V)
51
+ debug="V"
52
+ ;;
53
+ *)
54
+ echo "$USAGE"
55
+ exit 1
56
+ esac
57
+ done
58
+
59
+ [[ -n $debug ]] && set -x
60
+
61
+ fixUser "$@"
62
+
63
+ logMessage stopped by $oldwhoami
64
+ logMessage command: $0 $@
65
+
66
+ # look for pid file
67
+ if [[ ! -f ${solr_root}/logs/rsyncd.pid ]]
68
+ then
69
+ logMessage "missing rsyncd pid file ${solr_root}/logs/rsyncd.pid"
70
+ exit 2
71
+ fi
72
+
73
+ # get PID from file
74
+ pid=$(<${solr_root}/logs/rsyncd.pid)
75
+ if [[ -z $pid ]]
76
+ then
77
+ logMessage "unable to get rsyncd's PID"
78
+ exit 2
79
+ fi
80
+
81
+ kill $pid
82
+
83
+ # wait until rsyncd dies or we time out
84
+ dead=0
85
+ timer=0
86
+ timeout=300
87
+ while (( ! dead && timer < timeout ))
88
+ do
89
+ if ps -eo pid | grep -qw $pid
90
+ then
91
+ kill $pid
92
+ (( timer++ ))
93
+ sleep 1
94
+ else
95
+ dead=1
96
+ fi
97
+ done
98
+ if ps -eo pid | grep -qw $pid
99
+ then
100
+ logMessage rsyncd failed to stop after $timeout seconds
101
+ exit 3
102
+ fi
103
+
104
+ # remove rsyncd.conf
105
+ /bin/rm -f ${solr_root}/conf/rsyncd.conf
@@ -0,0 +1,83 @@
1
+ #!/bin/bash
2
+ #
3
+ # Licensed to the Apache Software Foundation (ASF) under one or more
4
+ # contributor license agreements. See the NOTICE file distributed with
5
+ # this work for additional information regarding copyright ownership.
6
+ # The ASF licenses this file to You under the Apache License, Version 2.0
7
+ # (the "License"); you may not use this file except in compliance with
8
+ # the License. You may obtain a copy of the License at
9
+ #
10
+ # http://www.apache.org/licenses/LICENSE-2.0
11
+ #
12
+ # Unless required by applicable law or agreed to in writing, software
13
+ # distributed under the License is distributed on an "AS IS" BASIS,
14
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ # See the License for the specific language governing permissions and
16
+ # limitations under the License.
17
+ #
18
+ # util functions used by scripts
19
+
20
+ export PATH=/sbin:/usr/sbin:/bin:/usr/bin:$PATH
21
+
22
+ # set up variables
23
+ prog=${0##*/}
24
+
25
+ # source the config file if present
26
+ confFile=${solr_root}/conf/scripts.conf
27
+ if [[ -f $confFile ]]
28
+ then
29
+ . $confFile
30
+ fi
31
+
32
+ function fixUser
33
+ {
34
+ # set user to $(whoami) if not specified
35
+ if [[ -z ${user} ]]
36
+ then
37
+ user=$(whoami)
38
+ fi
39
+
40
+ # sudo
41
+ if [[ $(whoami) != ${user} ]]
42
+ then
43
+ sudo -u ${user} $0 "$@"
44
+ exit $?
45
+ fi
46
+
47
+ oldwhoami=$(who -m | cut -d' ' -f1 | sed -e's/^.*!//')
48
+
49
+ if [[ "${oldwhoami}" == "" ]]
50
+ then
51
+ oldwhoami=`ps h -Hfp $(pgrep -g0 ${0##*/}) | tail -1|cut -f1 -d" "`
52
+ fi
53
+ }
54
+
55
+ function timeStamp
56
+ {
57
+ date +'%Y/%m/%d %H:%M:%S'
58
+ }
59
+
60
+ function logMessage
61
+ {
62
+ echo $(timeStamp) $@>>$log
63
+ if [[ -n ${verbose} ]]
64
+ then
65
+ echo $@
66
+ fi
67
+ }
68
+
69
+ function logExit
70
+ {
71
+ end=`date +"%s"`
72
+ diff=`expr $end - $start`
73
+ echo "$(timeStamp) $1 (elapsed time: $diff sec)">>$log
74
+ exit $2
75
+ }
76
+
77
+ # create logs directory if not there
78
+ if [[ ! -d ${solr_root}/logs ]]
79
+ then
80
+ mkdir ${solr_root}/logs
81
+ fi
82
+
83
+ umask 002