<div dir="ltr"><div class="gmail_default" style="font-size:small"><p class="gmail-md-end-block gmail-md-p" style="box-sizing:border-box;line-height:inherit;margin:0.8em 0px;white-space:pre-wrap"><span class="gmail-md-plain" style="box-sizing:border-box">Hello everyone,</span></p><p class="gmail-md-end-block gmail-md-p" style="box-sizing:border-box;line-height:inherit;margin:0.8em 0px;white-space:pre-wrap"><span class="gmail-md-plain" style="box-sizing:border-box">To help users interact with openstack, we’re currently developing a client-side web tool which enables administrators to manage their openstack cluster in a more efficient and convenient way. (Since we have not named it officially yet, I’m going to call it openstack-admin)</span></p><p class="gmail-md-end-block gmail-md-p" style="box-sizing:border-box;line-height:inherit;margin:0.8em 0px;white-space:pre-wrap"><b><span style="box-sizing:border-box">#</span><span class="gmail-md-plain" style="box-sizing:border-box"> Introduction</span></b></p><p class="gmail-md-end-block gmail-md-p" style="box-sizing:border-box;line-height:inherit;margin:0.8em 0px;white-space:pre-wrap"><span class="gmail-md-plain" style="box-sizing:border-box">Some may ask, “Why do we need an extra web-based user interface since we have horizon?” Well, although horizon is a mature and powerful dashboard, it is far not efficient enough on big clusters (a simple </span><span style="box-sizing:border-box"><code style="box-sizing:border-box;border:1px solid rgb(231,234,237);background-color:rgb(243,244,244);border-radius:3px;padding:0px 2px;font-size:0.9em">list</code><span class="gmail-md-plain" style="box-sizing:border-box"> operation could take seconds to complete). What’s more, its flexibility of searching could not match our requirements. To overcome obstacles above, a more efficient tool is urgently required, that’s why we started to develop openstack-admin.</span></span></p><p class="gmail-md-end-block gmail-md-p" style="box-sizing:border-box;line-height:inherit;margin:0.8em 0px;white-space:pre-wrap"><b><span style="box-sizing:border-box">#</span><span class="gmail-md-plain" style="box-sizing:border-box"> Highlights</span></b></p><p class="gmail-md-end-block gmail-md-p" style="box-sizing:border-box;line-height:inherit;margin:0.8em 0px;white-space:pre-wrap"><span class="gmail-md-plain" style="box-sizing:border-box">Comparing with the current user interface, openstack-admin has following advantages:</span></p><ul class="gmail-ul-list" style="box-sizing:border-box;margin:0.8em 0px;padding-left:30px"><li class="gmail-md-list-item" style="box-sizing:border-box;margin:0px"><p class="gmail-md-end-block gmail-md-p" style="box-sizing:border-box;line-height:inherit;margin:0px 0px 0.5rem;white-space:pre-wrap"><span class="gmail-" style="box-sizing:border-box"><strong style="box-sizing:border-box"><span class="gmail-md-plain" style="box-sizing:border-box">Fast</span></strong><span class="gmail-md-plain" style="box-sizing:border-box">: openstack-admin gets data straightly from SQL databases instead of calling standard openstack API, which accelerates the querying period to a large extent (especially when we’re dealing with a large amount of data).</span></span></p></li><li class="gmail-md-list-item" style="box-sizing:border-box;margin:0px"><p class="gmail-md-end-block gmail-md-p" style="box-sizing:border-box;line-height:inherit;margin:0px 0px 0.5rem;white-space:pre-wrap"><span class="gmail-" style="box-sizing:border-box"><strong style="box-sizing:border-box"><span class="gmail-md-plain" style="box-sizing:border-box">Flexible</span></strong><span class="gmail-md-plain" style="box-sizing:border-box">: openstack-admin supports the fuzzy search for any important field(e.g. display_name/uuid/ip_address/project_name of an instance), which enables users to locate a particular object in no time.</span></span></p></li><li class="gmail-md-list-item" style="box-sizing:border-box;margin:0px"><p class="gmail-md-end-block gmail-md-p" style="box-sizing:border-box;line-height:inherit;margin:0px 0px 0.5rem;white-space:pre-wrap"><span class="gmail-" style="box-sizing:border-box"><strong style="box-sizing:border-box"><span class="gmail-md-plain" style="box-sizing:border-box">User-friendly</span></strong><span class="gmail-md-plain" style="box-sizing:border-box">: the backend of openstack-admin gets necessary messages from the message queue used by nova, and send them to the frontend using websocket. This way, not only more realistic progress bars could be implemented, but more detailed information could be provided to users as well.</span></span></p></li></ul><p class="gmail-md-end-block gmail-md-p" style="box-sizing:border-box;line-height:inherit;margin:0.8em 0px;white-space:pre-wrap"><b><span style="box-sizing:border-box">#</span><span class="gmail-md-plain" style="box-sizing:border-box"> Issues</span></b></p><p class="gmail-md-end-block gmail-md-p gmail-md-focus" style="box-sizing:border-box;line-height:inherit;margin:0.8em 0px;white-space:pre-wrap"><span class="gmail-md-plain gmail-md-expand" style="box-sizing:border-box">To make this tool more efficient and provide better support for concurrency, we chose Golang to implement openstack-admin. As I’ve asked before (truly appreciate advises from Jeremy and Ghanshyam), a project written by an unofficial language may be accepted only if existing languages have been proven to not meet the technical requirements, so we’re considering re-implementing openstack-admin using python if we can’t come to an agreement on the language issue.</span></p><p class="gmail-md-end-block gmail-md-p" style="box-sizing:border-box;line-height:inherit;margin:0.8em 0px;white-space:pre-wrap"><span class="gmail-md-plain" style="box-sizing:border-box">So that’s all. How do you guys think of this project?</span></p><p class="gmail-md-end-block gmail-md-p" style="box-sizing:border-box;line-height:inherit;margin:0.8em 0px;white-space:pre-wrap"><span class="gmail-md-plain" style="box-sizing:border-box">Thanks,</span></p><p class="gmail-md-end-block gmail-md-p" style="box-sizing:border-box;line-height:inherit;margin:0.8em 0px;white-space:pre-wrap"><span class="gmail-md-plain" style="box-sizing:border-box">Douglas Zhang</span></p></div></div>