When I did some operations, such as reloading a new system, to the virtual server, the server would enter into a pending status, from the portal, it showed "pending transaction". In this status, the server is forbidden to receive any other operation, otherwise it will throw out an exception. So I needed to check the status of the transaction, and what I used is "wait_for_transaction" which belongs to SoftLayer.managers.vs.VSManager(softlayer python package). Unfortunately, I met something strange.
For example, I called "upgrade"(SoftLayer.managers.vs.VSManager) to upgrade a server's nic_speed, and called "wait_for_transaction" instantly. The "wait_for_transaction" returned "True". Actually it should return "False" rather than “True” as the server should begin "upgrading". And after a few seconds later, I called "wait_for_transaction" again, this time it returned "False".
It looks like softlayer system has a delay to execute "upgrade" transaction after I called the API "upgrade". So how to check this transaction's status. If the apis which will trigger "pending transaction" indeed have a delay, what is the time gap between I call them and the transaction are "really" executed.