Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
Gutyán Gábor
/
circlestack
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
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
b7f7ac68
authored
Mar 14, 2014
by
Guba Sándor
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
storage: refactored create and save_as method to use activites
parent
f931d0f6
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
24 additions
and
12 deletions
+24
-12
circle/storage/models.py
+24
-12
No files found.
circle/storage/models.py
View file @
b7f7ac68
...
@@ -300,10 +300,17 @@ class Disk(AclBase, TimeStampedModel):
...
@@ -300,10 +300,17 @@ class Disk(AclBase, TimeStampedModel):
queue
=
"localhost.man"
)
queue
=
"localhost.man"
)
@classmethod
@classmethod
def
create
(
cls
,
**
params
):
def
create
(
cls
,
instance
=
None
,
user
=
None
,
**
params
):
"""Create disk with activity.
"""
datastore
=
params
.
pop
(
'datastore'
,
DataStore
.
objects
.
get
())
datastore
=
params
.
pop
(
'datastore'
,
DataStore
.
objects
.
get
())
disk
=
cls
(
filename
=
str
(
uuid
.
uuid4
()),
datastore
=
datastore
,
**
params
)
disk
=
cls
(
filename
=
str
(
uuid
.
uuid4
()),
datastore
=
datastore
,
**
params
)
disk
.
save
()
disk
.
save
()
with
disk_activity
(
code_suffix
=
"create"
,
user
=
user
,
disk
=
disk
):
if
instance
:
instance
.
disks
.
add
(
disk
)
return
disk
return
disk
@classmethod
@classmethod
...
@@ -317,10 +324,7 @@ class Disk(AclBase, TimeStampedModel):
...
@@ -317,10 +324,7 @@ class Disk(AclBase, TimeStampedModel):
:return: Disk object without a real image, to be .deploy()ed later.
:return: Disk object without a real image, to be .deploy()ed later.
"""
"""
disk
=
cls
.
create
(
**
kwargs
)
disk
=
Disk
.
create
(
instance
=
None
,
user
=
None
,
**
kwargs
)
with
disk_activity
(
code_suffix
=
"create"
,
user
=
user
,
disk
=
disk
):
if
instance
:
instance
.
disks
.
add
(
disk
)
return
disk
return
disk
@classmethod
@classmethod
...
@@ -377,9 +381,10 @@ class Disk(AclBase, TimeStampedModel):
...
@@ -377,9 +381,10 @@ class Disk(AclBase, TimeStampedModel):
class
AbortException
(
Exception
):
class
AbortException
(
Exception
):
pass
pass
with
disk_activity
(
code_suffix
=
'd
ownload
'
,
disk
=
disk
,
with
disk_activity
(
code_suffix
=
'd
eploy
'
,
disk
=
disk
,
task_uuid
=
task_uuid
,
user
=
user
,
task_uuid
=
task_uuid
,
user
=
user
,
on_abort
=
__on_abort
):
on_abort
=
__on_abort
)
as
act
:
with
act
.
sub_activity
(
'downloading_disk'
):
result
=
remote_tasks
.
download
.
apply_async
(
result
=
remote_tasks
.
download
.
apply_async
(
kwargs
=
{
'url'
:
url
,
'parent_id'
:
task_uuid
,
kwargs
=
{
'url'
:
url
,
'parent_id'
:
task_uuid
,
'disk'
:
disk
.
get_disk_desc
()},
'disk'
:
disk
.
get_disk_desc
()},
...
@@ -393,7 +398,6 @@ class Disk(AclBase, TimeStampedModel):
...
@@ -393,7 +398,6 @@ class Disk(AclBase, TimeStampedModel):
AbortableAsyncResult
(
result
.
id
)
.
abort
()
AbortableAsyncResult
(
result
.
id
)
.
abort
()
raise
AbortException
(
"Download aborted by user."
)
raise
AbortException
(
"Download aborted by user."
)
disk
.
size
=
size
disk
.
size
=
size
disk
.
ready
=
True
disk
.
save
()
disk
.
save
()
return
disk
return
disk
...
@@ -454,15 +458,14 @@ class Disk(AclBase, TimeStampedModel):
...
@@ -454,15 +458,14 @@ class Disk(AclBase, TimeStampedModel):
disk
.
save
()
disk
.
save
()
with
disk_activity
(
code_suffix
=
"save_as"
,
disk
=
self
,
with
disk_activity
(
code_suffix
=
"save_as"
,
disk
=
self
,
user
=
user
,
task_uuid
=
None
):
user
=
user
,
task_uuid
=
task_uuid
):
with
disk_activity
(
code_suffix
=
"deploy"
,
disk
=
disk
,
user
=
user
,
task_uuid
=
task_uuid
):
queue_name
=
self
.
get_remote_queue_name
(
'storage'
)
queue_name
=
self
.
get_remote_queue_name
(
'storage'
)
remote_tasks
.
merge
.
apply_async
(
args
=
[
self
.
get_disk_desc
(),
remote_tasks
.
merge
.
apply_async
(
args
=
[
self
.
get_disk_desc
(),
disk
.
get_disk_desc
()],
disk
.
get_disk_desc
()],
queue
=
queue_name
queue
=
queue_name
)
.
get
()
# Timeout
)
.
get
()
# Timeout
disk
.
ready
=
True
disk
.
save
()
return
disk
return
disk
...
@@ -479,6 +482,15 @@ class DiskActivity(ActivityModel):
...
@@ -479,6 +482,15 @@ class DiskActivity(ActivityModel):
act
.
save
()
act
.
save
()
return
act
return
act
def
__unicode__
(
self
):
if
self
.
parent
:
return
'{}({})->{}'
.
format
(
self
.
parent
.
activity_code
,
self
.
disk
,
self
.
activity_code
)
else
:
return
'{}({})'
.
format
(
self
.
activity_code
,
self
.
disk
)
def
create_sub
(
self
,
code_suffix
,
task_uuid
=
None
):
def
create_sub
(
self
,
code_suffix
,
task_uuid
=
None
):
act
=
DiskActivity
(
act
=
DiskActivity
(
activity_code
=
self
.
activity_code
+
'.'
+
code_suffix
,
activity_code
=
self
.
activity_code
+
'.'
+
code_suffix
,
...
...
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