While talking with Leah and Darryl it was becoming apparent that the current swiftclient had some limitations impossible to fix/workaround and a complete new approach to swiftclient to cleanup the old interfaces was needed.
A lot of the spaghetti code we have right now is historical due of how swiftclient born out from a single file in swift/client.py and copy pasted in bin/swift with CLI logic.
We agreed that having two different namespace in the same repository would be something we want. The new name has not been decided yet.
Splitting the client.py to different files folder is something we are considering.
TODO: darryl to provide his view of the code reorg.
A lot of the features we are implementing can be done as plugin using entry points which could provide the CLI implementation and the calls to the API needed as well as the test.
Something that could be modular enough for added as extra packages (i.e: to add CDN features).
We don’t want to have plugins done as an afterthought.
TODO: chmouel to provide his view of the code plugins.
Something that we really want to do is not having any logic inside the CLI and basically having just an argparse parser.
If help is too long (i.e: –os-*) those will be concatenated
Testing CLI positional arguments would be a nice thing to have.