* Updating thrift definitions to add autopause for batch based update strategies.
* Adding batch calculator utility and test cases for it.
* Adding PauseUpdateMonitor which allows users to poll Aurora for information on an active Update being carried out until it enters the ROLL_FORWARD_PAUSED state.
* Tests for PauseUpdateMonitor and VariableBatchStep added to the end to end tests.
* Adding TerminalUpdateStates function which returns a slice containing all terminal states for an update. Changed signature of JobUpdateStatus from using a map for desired states to a slice. A map is no longer necessary with the new version of thrift and only adds complexity.
* Bumped up version to 1.21.1
* Moving admin functions to a new file. They are still part of the same pointer receiver type.
* Removing dead code and fixing some comments to add space between backslash and comment.
* Adding set up and tear down to run tests script. It sets up a pod, runs all tests, and then tears down the pod.
* Added `--rm` to run tests Mac script.
* Removing cookie jar from transport layer as it's not needed.
* Changing all error messages to start with a lower case letter. Changing some messages around to be more descriptive.
* Adding an argument to allow the retry mechanism to stop if a timeout has been encountered. This is useful for mutating API calls. Only StartUpdate and CreateService have enabled by default stop at timeout.
* Added 2 tests for when a call goes through despite the client timing out. One is with a good payload, one is with a bad payload.
* Updating changelog with information about the error type returned.
* Adding test for duplicate metadata.
* Refactored JobUpdateStatus monitor to use a new monitor called JobUpdateQuery. Update monitor will now still continue if it does not find an update to monitor. Furthermore, it has been optimized to reduce returning payloads from the scheduler as much as possible. This is through using the GetJobUpdateSummaries API instead of JobUpdateDetails and by including a the statuses we're searching for as part of the query.
* Added documentation as to how to handle a timeout on an API request.
* Optimized GetInstancesIds to create a copy of the JobKey being passed down in order to avoid unexpected behavior. Instead of setting every variable name separately, now a JobKey array is being created.
* Ported all code from Thrift 0.9.3 to Thrift 0.12.0 while backporting some fixes from gorealis v2
* Removing git.apache.org dependency from Vendor folder as this dependency has migrated to github.
* Adding github.com thrift dependency back but now it points to github.com
* Removing unnecessary files from Thrift Vendor folder and adding them to .gitignore.
* Updating dep dependencies to include Thrift 0.12.0 from github.com
* Adding changelog.
* End to end tests: Adding coverage for killinstances.
* End to end tests: Deleting instances after partition policy recovers them.
* End to end tests: Adding more coverage to the realis API.
* End to end tests: Allowing arguments to be passed to runTestMac so that '-run <test name>' can be passed in.
* End to end tests: Reducing the resources used by CreateJob test.
* End to end tests: Adding coverage for Pause and Resume update.
* End to end tests: Removed checks for Aurora_OK response as that should always be handled by the error returned by the API. Changed names to be less verbose and repetitive.
* End to end tests: Reducing watch time for instance running when creating service for reducing time it takes to run end to end test.
* 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.
* Moving from govendor to dep.
* Making the pull request template more friendly.
* Fixing akward space in PR template.
* goimports run on whole project using ` goimports -w $(find . -type f -name '*.go' -not -path "./vendor/*" -not -path "./gen-go/*")`
source of command: https://gist.github.com/bgentry/fd1ffef7dbde01857f66
* fixed semantics. Earlier mentioned that 'Pystachio does yet support...'. Changed now to mention 'Pystachio does not yet support...'
* fixed grammatical mistake.
* Ran gofmt on project.
* Code cleanup: Deleted multiple functions which have become stale. Removed cluster example as we replaced the need to create the Cluster object.
* Cleaned up ZK connection code by using the backoff function. Added a test to the end to end to test that we're getting the host correctly from ZK. Changed clusters test to be an outside package.
* Added LeaderFromZKURL test to end to end tests.
* Added logger to realisConfig so that users can attach their own Loggers to the client. Logger is an interface that shadows most popular logging libraries. Only Print, Println, and Printf are needed to be a realis.Logger type. Example in the client uses the std library log.
* Moved most fmt.Print* calls to be redirected to user provided logger. Logger by default is a no-op logger.
* Adding CreateService to realis interface. Uses the StartJobUpdate API to create services instead of the createJobs API.
* Bumping up version number inside client in anticipation of new release.