Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
CIRCLE
/
cloud
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
94
Merge Requests
10
Pipelines
Wiki
Snippets
Members
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
A prog2-höz tartozó friss repo anyagok itt elérhetőek:
https://git.iit.bme.hu/
Commit
5c42499f
authored
Sep 18, 2014
by
Őry Máté
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
vm: discover machines on wrong nodes
parent
64e19ee1
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
14 additions
and
6 deletions
+14
-6
circle/vm/models/instance.py
+8
-3
circle/vm/models/node.py
+6
-3
No files found.
circle/vm/models/instance.py
View file @
5c42499f
...
@@ -447,18 +447,23 @@ class Instance(AclBase, VirtualMachineDescModel, StatusModel, OperatedMixin,
...
@@ -447,18 +447,23 @@ class Instance(AclBase, VirtualMachineDescModel, StatusModel, OperatedMixin,
self
.
time_of_suspend
,
self
.
time_of_delete
=
self
.
get_renew_times
()
self
.
time_of_suspend
,
self
.
time_of_delete
=
self
.
get_renew_times
()
super
(
Instance
,
self
)
.
clean
(
*
args
,
**
kwargs
)
super
(
Instance
,
self
)
.
clean
(
*
args
,
**
kwargs
)
def
vm_state_changed
(
self
,
new_state
):
def
vm_state_changed
(
self
,
new_state
,
new_node
=
False
):
if
new_node
is
False
:
# None would be a valid value
new_node
=
self
.
node
# log state change
# log state change
try
:
try
:
act
=
InstanceActivity
.
create
(
act
=
InstanceActivity
.
create
(
code_suffix
=
'vm_state_changed'
,
code_suffix
=
'vm_state_changed'
,
readable_name
=
create_readable
(
readable_name
=
create_readable
(
ugettext_noop
(
"vm state changed to
%(state)
s"
),
ugettext_noop
(
"vm state changed to
%(state)
s
on
%(node)
s
"
),
state
=
new_state
),
state
=
new_state
,
node
=
new_node
),
instance
=
self
)
instance
=
self
)
except
ActivityInProgressError
:
except
ActivityInProgressError
:
pass
# discard state change if another activity is in progress.
pass
# discard state change if another activity is in progress.
else
:
else
:
if
self
.
node
!=
new_node
:
self
.
node
=
new_node
self
.
save
()
act
.
finished
=
act
.
started
act
.
finished
=
act
.
started
act
.
resultant_state
=
new_state
act
.
resultant_state
=
new_state
act
.
succeeded
=
True
act
.
succeeded
=
True
...
...
circle/vm/models/node.py
View file @
5c42499f
...
@@ -354,7 +354,8 @@ class Node(OperatedMixin, TimeStampedModel):
...
@@ -354,7 +354,8 @@ class Node(OperatedMixin, TimeStampedModel):
logger
.
info
(
'Node
%
s update: instance
%
s missing from '
logger
.
info
(
'Node
%
s update: instance
%
s missing from '
'libvirt'
,
self
,
i
[
'id'
])
'libvirt'
,
self
,
i
[
'id'
])
# Set state to STOPPED when instance is missing
# Set state to STOPPED when instance is missing
self
.
instance_set
.
get
(
id
=
i
[
'id'
])
.
vm_state_changed
(
'STOPPED'
)
self
.
instance_set
.
get
(
id
=
i
[
'id'
])
.
vm_state_changed
(
'STOPPED'
,
None
)
else
:
else
:
if
d
!=
i
[
'state'
]:
if
d
!=
i
[
'state'
]:
logger
.
info
(
'Node
%
s update: instance
%
s state changed '
logger
.
info
(
'Node
%
s update: instance
%
s state changed '
...
@@ -363,9 +364,11 @@ class Node(OperatedMixin, TimeStampedModel):
...
@@ -363,9 +364,11 @@ class Node(OperatedMixin, TimeStampedModel):
self
.
instance_set
.
get
(
id
=
i
[
'id'
])
.
vm_state_changed
(
d
)
self
.
instance_set
.
get
(
id
=
i
[
'id'
])
.
vm_state_changed
(
d
)
del
domains
[
i
[
'id'
]]
del
domains
[
i
[
'id'
]]
for
i
in
domains
.
keys
():
for
i
in
domains
.
values
():
from
.instance
import
Instance
logger
.
info
(
'Node
%
s update: domain
%
s in libvirt but not in db.'
,
logger
.
info
(
'Node
%
s update: domain
%
s in libvirt but not in db.'
,
self
,
i
)
self
,
i
[
'id'
])
Instance
.
objects
.
get
(
id
=
i
[
'id'
])
.
vm_state_changed
(
i
[
'state'
],
self
)
@classmethod
@classmethod
def
get_state_count
(
cls
,
online
,
enabled
):
def
get_state_count
(
cls
,
online
,
enabled
):
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment