Type: New Feature
Affects Version/s: 0.4.0
Fix Version/s: None
We've come to a point where our tests need to have a uniform way of interfacing with the cluster under test. It is no longer ok to assume that the test can be executed on a particular node (and thus have access to services running on it). It is also less than ideal for tests to assume a particular type of interaction with the services since it tends to break in different deployment scenarios.
A framework that needs to be put in place has to be capable of (regardless of where a test using it is executed on):
- representing the abstract configuration of the cluster
- representing the abstract topology of the entire cluster (services running on a cluster, nodes hosting the daemons, racks, etc).
- giving tests an ability to query this topology
- giving tests an ability to affect the nodes in that topology in a particular way (refreshing configuration, restarting services, etc.)
Of course, the ideal solution here would be to give Bigtop tests a programmatic access to a Hadoop cluster management framework such as Cloudera's CM or Apache Ambari.
As with any ideal solutions I don't think it is realistic though. Hence we have to cook something up. At this point I'm really focused on getting the API right and I'm totally fine with an implementation of that API to be something as silly as a bunch of ssh-based scripts or something.
This JIRA is primarily focused on coming up with such an API. Anybody who's willing to help is welcome to.