? 2014?11?04? 15:19, Chen CH Ji ??:
+1,
a good idea, it will make it more clear.
from implementation perspective we need to pay attention that some
status will pass through and some will just return
Best Regards!
hi Kevin
thanks for supporting.
yeah, I am considering vm_state first, it is much easier to start up,
all of them will return.
I need to heard more from others to see if we need a spec to do it.
Kevin (Chen) Ji ? ?
Engineer, zVM Development, CSTL
Notes: Chen CH Ji/China/IBM@IBMCN Internet: [email protected]
Phone: +86-10-82454158
Address: 3/F Ring Building, ZhongGuanCun Software Park, Haidian
District, Beijing 100193, PRC
Inactive hide details for Eli Qiao ---11/04/2014 03:13:26 PM---hello
all: in current _init_instance function in compute managerEli Qiao
---11/04/2014 03:13:26 PM---hello all: in current _init_instance
function in compute manager,
From: Eli Qiao <[email protected]>
To: "OpenStack Development Mailing List (not for usage questions)"
<[email protected]>
Date: 11/04/2014 03:13 PM
Subject: [openstack-dev] [nova][compute] propose to use a table to
deal with the vm_state when _init_instance in compute
------------------------------------------------------------------------
hello all:
in current _init_instance function in compute manager,
there's flood 'and' 'or' logic, to check the vm_state and task_state
when initialize a instance during service list,
this lead hard to read and hard to maintain, so I propose a new way to
handle this.
we can create a vm_state_table, by look up the table we can find the
action we need to do for the instance,
from this table , you can clearly see what vm_state and task_state
should take the action.
for example:
{vm_states list :{task_states list: action}},
each entry stands for an action,
and we walk though the tuple
so the table should be like this:
vm_state_table = (
{vm_states.SOFT_DELETE :{'ALL': ACTION_NONE}},
{vm_states.ERROR: {('NOT_IN',[task_states.RESIZE_MIGRATING,
task_states.DELETING]): ACTION_NONE}},
{vm_states.DELETED: {'ALL': _complete_partial_deletion}},
{vm_states.BUILDING: {'ALL': ACTION_ERROR}},
{'ALL': {('IN',[task_states.SCHEDULING,
task_states.BLOCK_DEVICE_MAPPING,
task_states.NETWORKING,
task_states.SPAWNING)]: ACTION_ERROR}},
{('IN',[vm_states.ACTIVE, vm_states.STOPPED]: {('IN',
[task_states.REBUILDING,
task_states.REBUILD_BLOCK_DEVICE_MAPPING,
task_states.REBUILD_SPAWNING]): ACTION_ERROR}},
{('NOT_IN',[vm_states.ERROR]): {('IN',
[task_states.IMAGE_SNAPSHOT_PENDING,
task_states.IMAGE_PENDING_UPLOAD,
task_states.IMAGE_UPLOADING,
task_states.IMAGE_SNAPSHOT]): _post_interrupted_snapshot_cleanup}}
)
what do you think, do we need a bp for this?
--
Thanks,
Eli (Li Yong) Qiao_______________________________________________
OpenStack-dev mailing list
[email protected]
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
_______________________________________________
OpenStack-dev mailing list
[email protected]
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
--
Thanks,
Eli (Li Yong) Qiao
_______________________________________________
OpenStack-dev mailing list
[email protected]
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev