Hi folks, Just following up on what we were talking about in IRC. The BP: https://blueprints.launchpad.net/nova/+spec/vmware-soap-session-management Is supposed to capture some of this work/discussion. Earlier in Icehouse we had thought that having some kind of pseudo transaction that could encompass a set of calls would be a nice way to allow a method to "roll back" to some point and re-try a set of API calls as a unit. This proved to be messy so I've abandoned that line of work. Instead, (as pointed out by Matthew) the session details should not be exposed at all above the Vim object. I think this is generally a good direction the only problems would be timing of releases and refactors. The core change I would like to propose to fit well with this idea of restructuring around the Vim object revolves around how to verify and terminate a session. In particular, vim.SessionIsActive and vim.TerminateSession ... these are intended as a system administrator's control API so a root user could evict other users. Think of administrating a session through these API as using 'kill -KILL <pid>' where this might be appropriate if you were a root or super user cleaning out a session list. If you were to log out of SSH using 'kill -KILL -1' it would work but it would also be a little silly and would by pass logout scripts. Individual users have the ability to check if their session is logged in by using vim.CurrentTime or ServiceContent.sessionManager.currentSession (you should see that sessionManager and currentSession are not None). To log out your own session there's a method you can used called vim.Logout which will only affect the current session. The vim.TerminateSession can force *any* open session off line so if there was a session ID bug in your code you could randomly knock other driver instances off line which could cause interesting unreproducible bugs for other users of the system. References (reading very carefully): * http://pubs.vmware.com/vsphere-55/index.jsp#com.vmware.wssdk.apiref.doc/vim.SessionManager.html * http://pubs.vmware.com/vsphere-55/index.jsp#com.vmware.wssdk.apiref.doc/vim.SessionManager.html#logout * http://pubs.vmware.com/vsphere-55/index.jsp#com.vmware.wssdk.apiref.doc/vim.SessionManager.html#sessionIsActive ... IN PROGRESS ... https://review.openstack.org/#/q/status:open+project:openstack/nova+branch:master+topic:session-management-refactor,n,z I will be shuffling this patch set around to reflect these changes. I've tried to communicate the real purpose of this refactor, not to introduce new API but to change how sessions are logged out and/or validated. As for https://blueprints.launchpad.net/oslo/+spec/vmware-api I know we're trying to keep this a light weight fork-lift but as we address other problems it's becoming clear to me we need to incorporate certain key fixes. I emailed with Vipin about https://review.openstack.org/#/c/65075/ he is currently waiting for someone to direct him toward the correct place to start committing this code. I'll have to refactor https://review.openstack.org/#/c/63229/ so it can be used along side that library. I do have a question: * if Vipin manages to ship an Oslo lib in icehouse is it too late for us to change Nova over to that lib in Nova since the BP proposal deadlines are past? -- # Shawn.Hartsock