Revision 41a7fae7 snf-cyclades-app/synnefo/logic/utils.py
b/snf-cyclades-app/synnefo/logic/utils.py | ||
---|---|---|
102 | 102 |
if vm.deleted: |
103 | 103 |
return "DELETED" |
104 | 104 |
# A machine is in REBOOT if an OP_INSTANCE_REBOOT request is in progress |
105 |
in_reboot = (r == 'ACTIVE') and\
|
|
105 |
in_reboot = (r == "ACTIVE") and\
|
|
106 | 106 |
(vm.backendopcode == "OP_INSTANCE_REBOOT") and\ |
107 |
(vm.backendjobstatus in ('queued', 'waiting', 'running'))
|
|
107 |
(vm.backendjobstatus in ("queued", "waiting", "running"))
|
|
108 | 108 |
if in_reboot: |
109 | 109 |
return "REBOOT" |
110 |
in_resize = (r == "STOPPED") and\ |
|
111 |
(vm.backendopcode == "OP_INSTANCE_MODIFY") and\ |
|
112 |
(vm.task == "RESIZE") and \ |
|
113 |
(vm.backendjobstatus in ("queued", "waiting", "running")) |
|
114 |
if in_resize: |
|
115 |
return "RESIZE" |
|
110 | 116 |
return r |
111 | 117 |
|
112 | 118 |
|
119 |
TASK_STATE_FROM_ACTION = { |
|
120 |
"BUILD": "BULDING", |
|
121 |
"START": "STARTING", |
|
122 |
"STOP": "STOPPING", |
|
123 |
"REBOOT": "REBOOTING", |
|
124 |
"DESTROY": "DESTROYING", |
|
125 |
"RESIZE": "RESIZING", |
|
126 |
"CONNECT": "CONNECTING", |
|
127 |
"DISCONNECT": "DISCONNECTING"} |
|
128 |
|
|
129 |
|
|
130 |
def get_task_state(vm): |
|
131 |
if vm.task is None: |
|
132 |
return "" |
|
133 |
try: |
|
134 |
return TASK_STATE_FROM_ACTION[vm.task] |
|
135 |
except KeyError: |
|
136 |
return "UNKNOWN" |
|
137 |
|
|
138 |
|
|
139 |
OPCODE_TO_ACTION = { |
|
140 |
"OP_INSTANCE_CREATE": "BUILD", |
|
141 |
"OP_INSTANCE_START": "START", |
|
142 |
"OP_INSTANCE_STOP": "STOP", |
|
143 |
"OP_INSTANCE_REBOOT": "REBOOT", |
|
144 |
"OP_INSTANCE_REMOVE": "DESTROY"} |
|
145 |
|
|
146 |
|
|
147 |
def get_action_from_opcode(opcode, job_fields): |
|
148 |
if opcode == "OP_INSTANCE_SET_PARAMS": |
|
149 |
nics = job_fields.get("nics") |
|
150 |
beparams = job_fields.get("beparams") |
|
151 |
if nics: |
|
152 |
#TODO: check the nic format |
|
153 |
return "CONNECT" or "DISCONNECT" |
|
154 |
elif beparams: |
|
155 |
return "RESIZE" |
|
156 |
else: |
|
157 |
return None |
|
158 |
else: |
|
159 |
return OPCODE_TO_ACTION.get(opcode, None) |
|
160 |
|
|
161 |
|
|
113 | 162 |
def hide_pass(kw): |
114 | 163 |
if 'osparams' in kw and 'img_passwd' in kw['osparams']: |
115 | 164 |
kw1 = deepcopy(kw) |
Also available in: Unified diff