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
66b0952f
authored
Jul 08, 2014
by
Guba Sándor
Committed by
Bach Dániel
Jul 08, 2014
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
storage: make save_as abortable task
parent
0bb9d185
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
15 additions
and
6 deletions
+15
-6
circle/storage/models.py
+15
-6
No files found.
circle/storage/models.py
View file @
66b0952f
...
@@ -134,6 +134,7 @@ class Disk(AclBase, TimeStampedModel):
...
@@ -134,6 +134,7 @@ class Disk(AclBase, TimeStampedModel):
self
.
disk
=
disk
self
.
disk
=
disk
class
DiskIsNotReady
(
Exception
):
class
DiskIsNotReady
(
Exception
):
""" Exception for operations that need a deployed disk.
""" Exception for operations that need a deployed disk.
"""
"""
...
@@ -394,7 +395,7 @@ class Disk(AclBase, TimeStampedModel):
...
@@ -394,7 +395,7 @@ class Disk(AclBase, TimeStampedModel):
args
=
[
self
.
datastore
.
path
,
self
.
filename
],
args
=
[
self
.
datastore
.
path
,
self
.
filename
],
queue
=
queue_name
)
.
get
(
timeout
=
timeout
)
queue
=
queue_name
)
.
get
(
timeout
=
timeout
)
def
save_as
(
self
,
user
=
None
,
task_uuid
=
None
,
timeout
=
300
):
def
save_as
(
self
,
task
,
user
=
None
,
task_uuid
=
None
,
timeout
=
300
):
"""Save VM as template.
"""Save VM as template.
Based on disk type:
Based on disk type:
...
@@ -429,10 +430,18 @@ class Disk(AclBase, TimeStampedModel):
...
@@ -429,10 +430,18 @@ class Disk(AclBase, TimeStampedModel):
type
=
new_type
)
type
=
new_type
)
queue_name
=
self
.
get_remote_queue_name
(
"storage"
,
priority
=
"slow"
)
queue_name
=
self
.
get_remote_queue_name
(
"storage"
,
priority
=
"slow"
)
storage_tasks
.
merge
.
apply_async
(
args
=
[
self
.
get_disk_desc
(),
remote
=
storage_tasks
.
merge
.
apply_async
(
kwargs
=
{
disk
.
get_disk_desc
()],
"old_json"
:
self
.
get_disk_desc
(),
"new_json"
:
disk
.
get_disk_desc
()},
queue
=
queue_name
queue
=
queue_name
)
.
get
()
# Timeout
)
# Timeout
disk
.
is_ready
=
True
while
True
:
disk
.
save
()
try
:
remote
.
get
(
timeout
=
5
)
break
except
TimeoutError
:
if
task
is
not
None
and
task
.
is_aborted
():
AbortableAsyncResult
(
remote
.
id
)
.
abort
()
disk
.
destroy
()
raise
Exception
(
"Save as aborted by use."
)
return
disk
return
disk
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