* Add trace level to print out response thrift objects. Allows user to control whether these are printed or not to avoid pollution.
* Using named parameters to be more explicit about what is being set for LevelLogger.
* Adding TracePrint and TracePrintln. Inlined library level prefixes.
* Detecting if the transport error was not temporary in which case we stop retrying. Changed bug where get results was being called before we checked for an error.
* Adding exception for EOF error. All EOF errors will be retried.
* Addressing race conditions that may happen when client is closed or connection is re-established.
* Adding documentation about how this particular implemantion of the realis client uses retries in scenarios where a temporary error is found.
* Bugfix: switch statements were missing fallthrough statement thus making them retry non-retriable errors. Using a list to catch cases now.
* Adding tests for CreateService, createService when the executor doesn't exist, and createJob when the executor doesn't exist. Renamed Pulse test to reflect that it's using CreateService instead of CreateJob.
* Repsonse propagate back up to caller for context for CreateJob, CreateService, and StartJobUpdate.
* Deleting PR template as Travis CI takes care of running tests and formatting tests now.
* Adding Travis CI badge
* Modifying end to end tests to reflect testing against docker-compose setup in Travis CI.
* Adding bash script to run simple container with tests within bridge network for Mac.
* Adding documentation for setting up a developer environment.
* Decreasing amount of CPU needed for CreateJobWithPulse because a higher value causes Travis CI to hang.
* Updated the JSON client to be consistent with the library.
The JSON client requires two JSONs,
1. JOB json -- contains job description.
2. Config json -- contains configuration information such as username,
password, schedulerUrl, zookeeper cluster configuration etc.
* Job json using docker-compose executor.
Used https://github.com/paypal/dce-go/blob/develop/examples/client.go#L50
to create a json file for a job that uses the docker-compose executor.
The current job json file (examples/job.json) uses an outdated version
of docker-compose executor. Once examples/client.go has been modified
to use examples/job_dce.json, it should be okay to get rid of
examples/job.json.
* Run thermos jobs using json client.
Added an extra field to JobJson, ExecutorDataFile, that holds
the path to the json file representing the executor configuration
data.
Added a new example job json file (examples/job_thermos.json) that
is to be passed to the json client along with the config file to
run a thermos job.
* Using scheduler URL instead of leader from zk.
The endpoints returned by ZKEndpoints(...) is not reachable
from outside the vagrant box. Hence, using the scheduler URL
directly.
* Added docs for using dce-go and json client.
* Place json client docs in separate subsection.
* Config now embeds realis.Cluster to be backwards compatible with
the python client cluster.json file.
Changed the type of Transport to string to stay flexible if new
transport types come up. JSON is used as the default transport option
is not transport is provided with the config.
* Change TaskQuery struct parameters to optional
* Thrift API is modified to make all the parameters in the
TaskQuery struct optional
* Autogenerated code is regenerated
* Changes in TaskQuery structs used in the project
* Now that TaskQuery receive optional values, pointers
instead of values must be passed to the struct
* Fixing possible race condition when passing backoff around as a pointer.
* Adding a debug logger that is turned off by default.
Info logger is enabled by default but prints out less information.
* Removing OK Aurora acknowledgment.
* Making Mutex a pointer so that there's no chance it can accidentally be copied.
* Changing %v to %+v for composite structs. Removing a repetitive statement for the Aurora return code.
* Removing another superflous debug statement.
* Removing a leftover helper function from before we changed how we configured the client.
* Changing the logging paradigm to only require a single logger. All logging will be disabled by default. If debug is enabled, and a logger has not been set, the library will default to printing all logging (INFO and DEBUG) to the stdout.
* Minor changes to demonstrate how a logger can be used in conjunction to debug mode.
* Removing port override as it is not needed
* Changing code comments to reflect getting rid of port override.
* Adding port override back in.
* Bug fix: Logger was being set to NOOP despite no logger being provided when debug mode is turned on.
* Turn on logging by default.
* Removing option to override schema and ports for information found on Zookeeper.
* Turning off debug mode for tests because it's too verbose. Making sure LevelLogger is initialized correctly under all scenarios.
* Removing override fields for zk config.
* Remove space.
* Removing info that is now incorrect about zk options.
* Fixing possible race condition when passing backoff around as a pointer.
* Adding a debug logger that is turned off by default. If debug is turned on, but a logger has not been assigned, a default logger that will print to STDOUT will be created.
* Making Mutex a pointer so that there's no chance it can accidentally be copied.
* Removing a leftover helper function from before we changed how we configured the client.
* Minor changes to demonstrate how a logger can be used in conjunction to debug mode in the sample client.
* ZK retries have been cleaned up. We will now retry after every error
EXCEPT when we have a badly formed path.
* ZK library has been reworked with optional arguments pattern to not be
so intertwined with the cluster.json file.
* Timeout error has been re-implemented as RetryError. RetryError
behaves like a Timeout error but is used exclusively to add more context
privately. This allows us to have unit tests that check our retry
mechanism is actually retrying.
* Additional logging has been added to retry mechanisms as well as to
the Zookeeper library we use.
* Deleting permament error as it doesn't make sense. Just return a plain old error and that will be considered permanent.
* Removing double closure at as it's unmaintainable and can be error prone. Separated back offs into a generic one and a thrift call specific one.
* ZK leader finder now returns a temporary error instead of constantly no leader found and quitting. It could be that the leader info is being propagated so it's worth trying another time.
* Adding more logging to the retry.
* Wrapping lock and unlock in an anonymous function so that we can use defer on unlock such that it is called in the case of a panic.
* Fixing logic that can lead to nil error being returned and retry stopping early.
* Fixing possible code path that may lead to an incorrect nil error.