These are chat archives for atomix/atomix

21st
Feb 2018
Johno Crawford
@johnou
Feb 21 2018 17:42
@kuujo could shade it with minimise jar..?
Jordan Halterman
@kuujo
Feb 21 2018 17:42
good idea
Johno Crawford
@johnou
Feb 21 2018 17:43
I was recently working on improving our functional testing framework and there was a nasty conflict between two different guava versions
I could take a stab at that this weekend
I've had enough of opencv for a while :smile:
Johno Crawford
@johnou
Feb 21 2018 17:50
Was there something that you need me to address with atomix/atomix#415 btw?
Jordan Halterman
@kuujo
Feb 21 2018 18:27
I know Guava dependency conflicts can be a massive nightmare. We had major issues with Guava dependencies when I worked on a query optimizer for Apache Spark. Spark depends on Hadoop which is a monstrosity with a million dependencies. That experience made me hate that everything uses Guava :-P
Jordan Halterman
@kuujo
Feb 21 2018 20:47
Don’t remember...
I will look
Jordan Halterman
@kuujo
Feb 21 2018 23:05

One of the things I’m working on to finish Atomix 2.1 is a better test framework. We have a couple of these frameworks we use in ONOS. Basically, we need a way to more easily write reproducers, do fault injection testing, etc. So the framework I’m developing uses Docker containers/networks to set up local clusters and uses Python APIs to kill/partition/etc nodes and interact with the cluster using the REST API.

atomix test setup my-cluster
atomix test run my-test -c my-cluster

The Python API can then be used to test different scenarios:

@test(‘my-test’)
def my_test(cluster, log):
    node(1).client.map(‘foo’).put(‘bar’, ‘baz’)
node(1).isolate()
assert node(1).client.map(‘foo’).get(‘foo’).value == ‘bar’
node(1).unisolate()

The test clusters can also be used to play with the CLI, and I imagine the Python client being used in tests could turn into a useful client as well, which can be used in the Python Shell.

The part I don’t have a lot of time for is documenting all this crap. Ironically, that seemed a lot easier when this project wasn’t my full time job.
Jordan Halterman
@kuujo
Feb 21 2018 23:49
If anyone would like to contribute to the teats we can try to get it merged this week and start using it