Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
Fukász Rómeó Ervin
/
cloud
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
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
a264fdc7
authored
Apr 18, 2014
by
Dudás Ádám
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
common, vm: register operations based on their 'host_cls' attribute by default
parent
50fb8a87
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
25 additions
and
20 deletions
+25
-20
circle/common/operations.py
+12
-1
circle/vm/operations.py
+13
-19
No files found.
circle/common/operations.py
View file @
a264fdc7
...
...
@@ -128,7 +128,7 @@ class OperatedMixin(object):
(
self
.
__class__
.
__name__
,
name
))
def
register_operation
(
target_cls
,
op_cls
,
op_id
=
None
):
def
register_operation
(
op_cls
,
op_id
=
None
,
target_cls
=
None
):
"""Register the specified operation with the target class.
You can optionally specify an ID to be used for the registration;
...
...
@@ -144,6 +144,17 @@ def register_operation(target_cls, op_cls, op_id=None):
"host. Alternatively, provide the name "
"in the 'op_id' parameter to this call."
)
if
target_cls
is
None
:
try
:
target_cls
=
op_cls
.
host_cls
except
AttributeError
:
raise
NotImplementedError
(
"Operations should specify a 'host_cls' "
"attribute designating the host class "
"the operation should be registered to. "
"Alternatively, provide the host class "
"in the 'target_cls' parameter to this "
"call."
)
if
not
issubclass
(
target_cls
,
OperatedMixin
):
raise
TypeError
(
"
%
r is not a subclass of
%
r"
%
(
target_cls
.
__name__
,
OperatedMixin
.
__name__
))
...
...
circle/vm/operations.py
View file @
a264fdc7
...
...
@@ -20,6 +20,7 @@ logger = getLogger(__name__)
class
InstanceOperation
(
Operation
):
acl_level
=
'owner'
async_operation
=
async_instance_operation
host_cls
=
Instance
def
__init__
(
self
,
instance
):
super
(
InstanceOperation
,
self
)
.
__init__
(
subject
=
instance
)
...
...
@@ -54,10 +55,6 @@ class InstanceOperation(Operation):
user
=
user
)
def
register_instance_operation
(
op_cls
,
op_id
=
None
):
return
register_operation
(
Instance
,
op_cls
,
op_id
)
class
DeployOperation
(
InstanceOperation
):
activity_code_suffix
=
'deploy'
id
=
'deploy'
...
...
@@ -91,7 +88,7 @@ class DeployOperation(InstanceOperation):
self
.
instance
.
renew
(
which
=
'both'
,
base_activity
=
activity
)
register_
instance_
operation
(
DeployOperation
)
register_operation
(
DeployOperation
)
class
DestroyOperation
(
InstanceOperation
):
...
...
@@ -131,7 +128,7 @@ class DestroyOperation(InstanceOperation):
self
.
instance
.
save
()
register_
instance_
operation
(
DestroyOperation
)
register_operation
(
DestroyOperation
)
class
MigrateOperation
(
InstanceOperation
):
...
...
@@ -161,7 +158,7 @@ class MigrateOperation(InstanceOperation):
self
.
instance
.
deploy_net
()
register_
instance_
operation
(
MigrateOperation
)
register_operation
(
MigrateOperation
)
class
RebootOperation
(
InstanceOperation
):
...
...
@@ -174,7 +171,7 @@ class RebootOperation(InstanceOperation):
self
.
instance
.
reboot_vm
(
timeout
=
timeout
)
register_
instance_
operation
(
RebootOperation
)
register_operation
(
RebootOperation
)
class
ResetOperation
(
InstanceOperation
):
...
...
@@ -186,7 +183,7 @@ class ResetOperation(InstanceOperation):
def
_operation
(
self
,
activity
,
user
,
system
,
timeout
=
5
):
self
.
instance
.
reset_vm
(
timeout
=
timeout
)
register_
instance_
operation
(
ResetOperation
)
register_operation
(
ResetOperation
)
class
SaveAsTemplateOperation
(
InstanceOperation
):
...
...
@@ -255,7 +252,7 @@ class SaveAsTemplateOperation(InstanceOperation):
return
tmpl
register_
instance_
operation
(
SaveAsTemplateOperation
)
register_operation
(
SaveAsTemplateOperation
)
class
ShutdownOperation
(
InstanceOperation
):
...
...
@@ -284,7 +281,7 @@ class ShutdownOperation(InstanceOperation):
self
.
instance
.
yield_vnc_port
()
register_
instance_
operation
(
ShutdownOperation
)
register_operation
(
ShutdownOperation
)
class
ShutOffOperation
(
InstanceOperation
):
...
...
@@ -310,7 +307,7 @@ class ShutOffOperation(InstanceOperation):
self
.
instance
.
yield_vnc_port
()
register_
instance_
operation
(
ShutOffOperation
)
register_operation
(
ShutOffOperation
)
class
SleepOperation
(
InstanceOperation
):
...
...
@@ -346,7 +343,7 @@ class SleepOperation(InstanceOperation):
# VNC port needs to be kept
register_
instance_
operation
(
SleepOperation
)
register_operation
(
SleepOperation
)
class
WakeUpOperation
(
InstanceOperation
):
...
...
@@ -386,11 +383,12 @@ class WakeUpOperation(InstanceOperation):
self
.
instance
.
renew
(
which
=
'both'
,
base_activity
=
activity
)
register_
instance_
operation
(
WakeUpOperation
)
register_operation
(
WakeUpOperation
)
class
NodeOperation
(
Operation
):
async_operation
=
async_node_operation
host_cls
=
Node
def
__init__
(
self
,
node
):
super
(
NodeOperation
,
self
)
.
__init__
(
subject
=
node
)
...
...
@@ -413,10 +411,6 @@ class NodeOperation(Operation):
node
=
self
.
node
,
user
=
user
)
def
register_node_operation
(
op_cls
,
op_id
=
None
):
return
register_operation
(
Node
,
op_cls
,
op_id
)
class
FlushOperation
(
NodeOperation
):
activity_code_suffix
=
'flush'
id
=
'flush'
...
...
@@ -430,4 +424,4 @@ class FlushOperation(NodeOperation):
i
.
migrate
()
register_
node_
operation
(
FlushOperation
)
register_operation
(
FlushOperation
)
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