Very simple solar example two nodes + hosts file mapping Run: `python examples/hosts_file/hosts.py` Then you can continue with standard solar things: ``` solar changes stage -d solar changes process solar or run-once last watch -n 1 solar or report last ``` Wait until all actions have state `SUCCESS`, after that check `/etc/hosts` files on both nodes, it will contain entries like: ``` 10.0.0.3 first1441705177.99 10.0.0.4 second1441705178.0 ``` If you want to try out revert functionality - you can do it in a next way: After you created all the stuff, print history like this: `solar ch history` Output: ``` log task=hosts_file1.run uid=282fe919-6059-4100-affc-56a2b3992d9d log task=hosts_file2.run uid=774f5a49-00f1-4bae-8a77-90d1b2d54164 log task=node1.run uid=2559f22c-5aa9-4c05-91c6-b70884190a56 log task=node2.run uid=18f06abe-3e8d-4356-b172-128e1dded0e6 ``` Now you can try to revert creation of hosts_file1 ``` solar ch revert 282fe919-6059-4100-affc-56a2b3992d9d solar ch stage log task=hosts_file1.remove uid=1fe456c1-a847-4902-88bf-b7f2c5687d40 solar ch process solar or run-once last watch -n 1 solar or report last ``` For now this file will be simply cleaned (more cophisticated task can be added later). And you can create revert of your revert, which will lead to created hosts_file1 resource and /etc/hosts with appropriate content ``` solar ch revert 282fe919-6059-4100-affc-56a2b3992d9d solar ch stage log task=hosts_file1.remove uid=1fe456c1-a847-4902-88bf-b7f2c5687d40 solar ch process solar changes run-once last watch -n 1 solar changes report last ``` After this you can revert your result of your previous revert, which will create this file with relevant content. ``` solar ch history -n 1 log task=hosts_file1.remove uid=1fe456c1-a847-4902-88bf-b7f2c5687d40 solar ch revert 1fe456c1-a847-4902-88bf-b7f2c5687d40 solar ch stage log task=hosts_file1.run uid=493326b2-989f-4b94-a22c-0bbd0fc5e755 solar ch process solar changes run-once last watch -n 1 solar changes report last ``` How to discard pending changes ? After database was populated by some example, lets say ``` python examples/hosts_file/hosts.py deploy ``` User is able to discard all changes with ``` solar ch discard ``` Or any particular change with ``` solar ch stage log task=hosts_file1.run uid=a5990538-c9c6-49e4-8d58-29fae9c7aaed solar ch discard a5990538-c9c6-49e4-8d58-29fae9c7aaed ```