sigram opened a new pull request #60:
URL: https://github.com/apache/solr/pull/60
The solution implemented in this PR is a loose port of the `SimScenario`
package from Solr 8.x, which was designed for running reproducible scenarios
for the autoscaling framework.
I re-worked the DSL and removed commands that are not applicable in the
current context. The functionality is as follows:
* two scripts can be supplied using system properties: `-DinitScript=...`
and `-DshutdownScript=...`, which specify a text file resource (either absolute
or relative to Solr home).
* each script consists of series of operations that perform collection
commands (plus some rudimentary conditionals, wait for state, asserts, etc)
* operation parameters may use variable substitution, using either system
properties or references to results of the previous operations. A shared
context is provided where scripts may keep additional state between operations.
* several context variables are filled in based on the current node
environment.
Example of an init script that uses a context variable `_node_name_` and a
set of system properties defined by user: `collection`, `shard` to add a
replica after startup and make sure it's operational - and if not the script
will shut down the `CoreContainer`:
```
# any errors will result in CC shutdown
set key=_error_handling_&value=FATAL
# request ADDREPLICA using sysprop values for collection and shard, and a
context var for this node name
request
/admin/collections?action=ADDREPLICA&collection=${collection}&shard=${shard}&type=NRT&node=${_node_name_}
# put the resulting core name in a context var 'newReplica'
set key=newReplica&value=${_last_result_/result/success[0]/value/core}
# wait for the new replica to become active
wait_replica collection=${collection}&core=${newReplica}&state=ACTIVE
# log replica name
log
key=_last_result_/result[0]/key&format=******%20Replica%20name:%20{}%20******
# end of script
```
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]