HI Milindu, Few suggestions....
Isn't it better to take out REST client from Stratos.py. Rest client seems a common module which other components may need. May be Cartridge agent and CLI uses the same module. Handle responses in a generic way at one place(This is what we learn from existing CLI). From version to version return codes, response format may change in Stratos REST API. In that case you only need to change at one place if you have handled in a generic manner. On Mon, May 4, 2015 at 2:16 PM, Milindu Sanoj Kumarage < agentmili...@gmail.com> wrote: > > Hi, > > I thought of separating the Python CLI into 3 main parts, those are, > > 1. Main.py - that contains the entry point, it does the initializing > parts, creates a CLI instance and runs the loop, > 2. CLI.py - this is the actual CLI that extends Cmd2. This contains the > command to def mappings, argument and flag handling, printing outputs, etc. > 3. Stratos.py - this contains the actual business logic, that is, which > REST end point to call, and do what with the response, what to show, what > not, etc. At the end, this would be like a Python API for Stratos. > > This way, in the future, we can even replace Cmd2 CLI framework without > any issue, if we have to. > > Your ideas? :) > -- Udara Liyanage Software Engineer WSO2, Inc.: http://wso2.com lean. enterprise. middleware web: http://udaraliyanage.wordpress.com phone: +94 71 443 6897