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.rb +65 -0
  11. data/lib/acts_as_solr/acts_methods.rb +352 -0
  12. data/lib/acts_as_solr/class_methods.rb +236 -0
  13. data/lib/acts_as_solr/common_methods.rb +89 -0
  14. data/lib/acts_as_solr/deprecation.rb +61 -0
  15. data/lib/acts_as_solr/instance_methods.rb +165 -0
  16. data/lib/acts_as_solr/lazy_document.rb +18 -0
  17. data/lib/acts_as_solr/parser_methods.rb +203 -0
  18. data/lib/acts_as_solr/search_results.rb +68 -0
  19. data/lib/acts_as_solr/solr_fixtures.rb +13 -0
  20. data/lib/acts_as_solr/tasks.rb +10 -0
  21. data/lib/acts_as_solr/tasks/database.rake +16 -0
  22. data/lib/acts_as_solr/tasks/solr.rake +135 -0
  23. data/lib/acts_as_solr/tasks/test.rake +5 -0
  24. data/lib/solr.rb +26 -0
  25. data/lib/solr/connection.rb +177 -0
  26. data/lib/solr/document.rb +75 -0
  27. data/lib/solr/exception.rb +13 -0
  28. data/lib/solr/field.rb +36 -0
  29. data/lib/solr/importer.rb +19 -0
  30. data/lib/solr/importer/array_mapper.rb +26 -0
  31. data/lib/solr/importer/delimited_file_source.rb +38 -0
  32. data/lib/solr/importer/hpricot_mapper.rb +27 -0
  33. data/lib/solr/importer/mapper.rb +51 -0
  34. data/lib/solr/importer/solr_source.rb +41 -0
  35. data/lib/solr/importer/xpath_mapper.rb +35 -0
  36. data/lib/solr/indexer.rb +52 -0
  37. data/lib/solr/request.rb +26 -0
  38. data/lib/solr/request/add_document.rb +58 -0
  39. data/lib/solr/request/base.rb +36 -0
  40. data/lib/solr/request/commit.rb +29 -0
  41. data/lib/solr/request/delete.rb +48 -0
  42. data/lib/solr/request/dismax.rb +46 -0
  43. data/lib/solr/request/index_info.rb +22 -0
  44. data/lib/solr/request/modify_document.rb +46 -0
  45. data/lib/solr/request/optimize.rb +19 -0
  46. data/lib/solr/request/ping.rb +36 -0
  47. data/lib/solr/request/select.rb +54 -0
  48. data/lib/solr/request/spellcheck.rb +30 -0
  49. data/lib/solr/request/standard.rb +402 -0
  50. data/lib/solr/request/update.rb +23 -0
  51. data/lib/solr/response.rb +27 -0
  52. data/lib/solr/response/add_document.rb +17 -0
  53. data/lib/solr/response/base.rb +42 -0
  54. data/lib/solr/response/commit.rb +15 -0
  55. data/lib/solr/response/delete.rb +13 -0
  56. data/lib/solr/response/dismax.rb +8 -0
  57. data/lib/solr/response/index_info.rb +26 -0
  58. data/lib/solr/response/modify_document.rb +17 -0
  59. data/lib/solr/response/optimize.rb +14 -0
  60. data/lib/solr/response/ping.rb +26 -0
  61. data/lib/solr/response/ruby.rb +42 -0
  62. data/lib/solr/response/select.rb +17 -0
  63. data/lib/solr/response/spellcheck.rb +20 -0
  64. data/lib/solr/response/standard.rb +60 -0
  65. data/lib/solr/response/xml.rb +39 -0
  66. data/lib/solr/solrtasks.rb +27 -0
  67. data/lib/solr/util.rb +32 -0
  68. data/lib/solr/xml.rb +44 -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,142 @@
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 clean up backups of a Solr Lucene collection.
19
+
20
+ orig_dir=$(pwd)
21
+ cd ${0%/*}/..
22
+ solr_root=$(pwd)
23
+ cd ${orig_dir}
24
+
25
+ unset days num data_dir user verbose debug
26
+ . ${solr_root}/bin/scripts-util
27
+
28
+ # set up variables
29
+ prog=${0##*/}
30
+ log=${solr_root}/logs/${prog}.log
31
+
32
+ # define usage string
33
+ USAGE="\
34
+ usage: $prog -D <days> | -N <num> [-d dir] [-u username] [-v]
35
+ -D <days> cleanup backups more than <days> days old
36
+ -N <num> keep the most recent <num> number of backups and
37
+ cleanup up the remaining ones that are not being pulled
38
+ -d specify directory holding index data
39
+ -u specify user to sudo to before running script
40
+ -v increase verbosity
41
+ -V output debugging info
42
+ "
43
+
44
+ # parse args
45
+ while getopts D:N:d:u:vV OPTION
46
+ do
47
+ case $OPTION in
48
+ D)
49
+ days="$OPTARG"
50
+ ;;
51
+ N)
52
+ num="$OPTARG"
53
+ ;;
54
+ d)
55
+ data_dir="$OPTARG"
56
+ ;;
57
+ u)
58
+ user="$OPTARG"
59
+ ;;
60
+ v)
61
+ verbose="v"
62
+ ;;
63
+ V)
64
+ debug="V"
65
+ ;;
66
+ *)
67
+ echo "$USAGE"
68
+ exit 1
69
+ esac
70
+ done
71
+
72
+ [[ -n $debug ]] && set -x
73
+
74
+ if [[ -z ${days} && -z ${num} ]]
75
+ then
76
+ echo "$USAGE"
77
+ exit 1
78
+ fi
79
+
80
+ fixUser "$@"
81
+
82
+ # use default value for data_dir if not specified
83
+ # relative path starts at ${solr_root}
84
+ if [[ -z ${data_dir} ]]
85
+ then
86
+ data_dir=${solr_root}/data
87
+ elif [[ "`echo ${data_dir}|cut -c1`" != "/" ]]
88
+ then
89
+ data_dir=${solr_root}/${data_dir}
90
+ fi
91
+
92
+ function remove
93
+ {
94
+ logMessage removing backup $1
95
+ /bin/rm -rf $1
96
+ }
97
+
98
+ start=`date +"%s"`
99
+
100
+ logMessage started by $oldwhoami
101
+ logMessage command: $0 $@
102
+
103
+ # trap control-c
104
+ trap 'echo "caught INT/TERM, exiting now but partial cleanup may have already occured";logExit aborted 13' INT TERM
105
+
106
+ if [[ -n ${days} ]]
107
+ then
108
+ #is maxdepth supported?
109
+ find ${data_dir} -maxdepth 0 -name foobar >/dev/null 2>&1
110
+ if [ $? = 0 ]; then
111
+ maxdepth="-maxdepth 1"
112
+ else
113
+ unset maxdepth
114
+ fi
115
+
116
+ logMessage cleaning up backups more than ${days} days old
117
+ for i in `find ${data_dir} ${maxdepth} -name 'backup.*' -mtime +${days} -print`
118
+ do
119
+ remove $i
120
+ done
121
+ elif [[ -n ${num} ]]
122
+ then
123
+ logMessage cleaning up all backups except for the most recent ${num} ones
124
+ unset backups count
125
+ backups=`ls -cd ${data_dir}/backup.* 2>/dev/null`
126
+ if [[ $? == 0 ]]
127
+ then
128
+ count=`echo $backups|wc -w`
129
+ startpos=`expr $num + 1`
130
+ if [[ $count -gt $num ]]
131
+ then
132
+ for i in `echo $backups|cut -f${startpos}- -d" "`
133
+ do
134
+ remove $i
135
+ done
136
+ fi
137
+ fi
138
+ fi
139
+
140
+ logExit ended 0
141
+
142
+
@@ -0,0 +1,128 @@
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 a commit of all changes since last commit
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 [-h 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
+ while getopts h:p:w:u:U:vV OPTION
48
+ do
49
+ case $OPTION in
50
+ h)
51
+ solr_hostname="$OPTARG"
52
+ ;;
53
+ p)
54
+ solr_port="$OPTARG"
55
+ ;;
56
+ w)
57
+ webapp_name="$OPTARG"
58
+ ;;
59
+ u)
60
+ user="$OPTARG"
61
+ ;;
62
+ U)
63
+ solr_url="$OPTARG"
64
+ ;;
65
+ v)
66
+ verbose="v"
67
+ ;;
68
+ V)
69
+ debug="V"
70
+ ;;
71
+ *)
72
+ echo "$USAGE"
73
+ exit 1
74
+ esac
75
+ done
76
+
77
+ [[ -n $debug ]] && set -x
78
+
79
+ if [[ -n ${solr_url} ]]
80
+ then
81
+ curl_url=${solr_url}
82
+ else
83
+ if [[ -z ${solr_port} ]]
84
+ then
85
+ echo "Solr port number missing in $confFile or command line."
86
+ echo "$USAGE"
87
+ exit 1
88
+ fi
89
+
90
+ # use default hostname if not specified
91
+ if [[ -z ${solr_hostname} ]]
92
+ then
93
+ solr_hostname=localhost
94
+ fi
95
+
96
+ # use default webapp name if not specified
97
+ if [[ -z ${webapp_name} ]]
98
+ then
99
+ webapp_name=solr
100
+ fi
101
+ curl_url=http://${solr_hostname}:${solr_port}/${webapp_name}/update
102
+ fi
103
+
104
+ fixUser "$@"
105
+
106
+ start=`date +"%s"`
107
+
108
+ logMessage started by $oldwhoami
109
+ logMessage command: $0 $@
110
+
111
+ rs=`curl ${curl_url} -s -H 'Content-type:text/xml; charset=utf-8' -d "<commit/>"`
112
+ if [[ $? != 0 ]]
113
+ then
114
+ logMessage failed to connect to Solr server at ${curl_url}
115
+ logMessage commit failed
116
+ logExit failed 1
117
+ fi
118
+
119
+ # check status of commit request
120
+ echo $rs | grep '<result.*status="0"' > /dev/null 2>&1
121
+ if [[ $? != 0 ]]
122
+ then
123
+ logMessage commit request to Solr at ${curl_url} failed:
124
+ logMessage $rs
125
+ logExit failed 2
126
+ fi
127
+
128
+ logExit ended 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 a optimized commit of all changes since last commit
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 [-h hostname] [-p port] [-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 "<optimize/>"`
113
+ if [[ $? != 0 ]]
114
+ then
115
+ logMessage failed to connect to Solr server at ${curl_url}
116
+ logMessage optimize failed
117
+ logExit failed 1
118
+ fi
119
+
120
+ # check status of optimize request
121
+ rc=`echo $rs|cut -f2 -d'"'`
122
+ if [[ $? != 0 ]]
123
+ then
124
+ logMessage optimize request to Solr at ${curl_url} failed:
125
+ logMessage $rs
126
+ logExit failed 2
127
+ fi
128
+
129
+ logExit ended 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