Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
C
cc-node
Manage
Activity
Members
Code
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Deploy
Releases
Model registry
Analyze
Contributor analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Mirror
cc-node
Commits
ea45151e
Commit
ea45151e
authored
12 years ago
by
Anael Beutot
Browse files
Options
Downloads
Patches
Plain Diff
New sjRPC API.
parent
c4f3a9b0
No related branches found
Branches containing commit
No related tags found
Tags containing commit
No related merge requests found
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
ccnode/host/__init__.py
+0
-4
0 additions, 4 deletions
ccnode/host/__init__.py
ccnode/hypervisor/__init__.py
+0
-9
0 additions, 9 deletions
ccnode/hypervisor/__init__.py
ccnode/node.py
+18
-24
18 additions, 24 deletions
ccnode/node.py
with
18 additions
and
37 deletions
ccnode/host/__init__.py
+
0
−
4
View file @
ea45151e
import
logging
from
subprocess
import
Popen
,
PIPE
,
STDOUT
from
sjrpc.utils
import
pure
from
ccnode.node
import
DefaultHandler
from
ccnode.tags
import
tag_inspector
from
ccnode.host
import
tags
...
...
@@ -19,7 +17,6 @@ class Handler(DefaultHandler):
for
t
in
tag_inspector
(
tags
):
self
.
tags
[
t
.
name
]
=
t
@pure
def
execute_command
(
self
,
command
):
"""
Execute an arbitrary shell command on the host.
...
...
@@ -29,7 +26,6 @@ class Handler(DefaultHandler):
return
Popen
(
command
,
shell
=
True
,
bufsize
=-
1
,
stdin
=
PIPE
,
stdout
=
PIPE
,
stderr
=
STDOUT
).
communicate
()[
0
]
or
None
@pure
def
node_shutdown
(
self
,
reboot
=
True
,
gracefull
=
True
):
"""
Halt/Reboot the node.
...
...
This diff is collapsed.
Click to expand it.
ccnode/hypervisor/__init__.py
+
0
−
9
View file @
ea45151e
import
logging
import
libvirt
from
sjrpc.utils
import
pure
from
ccnode.host
import
Handler
as
HostHandler
from
ccnode.tags
import
tag_inspector
,
get_tags
...
...
@@ -39,7 +38,6 @@ class Handler(HostHandler):
logger
.
debug
(
u
'
Registered domain %s
'
%
name
)
proxy
.
register
(
name
,
'
vm
'
)
@pure
def
sub_tags
(
self
,
sub_id
,
tags
=
None
,
noresolve_tags
=
None
):
"""
Get subtags.
"""
global
hypervisor
...
...
@@ -52,31 +50,24 @@ class Handler(HostHandler):
return
get_tags
(
domain
,
tags
,
noresolve_tags
)
@pure
def
vm_define
(
self
,
name
):
pass
@pure
def
vm_undefine
(
self
,
name
):
pass
@pure
def
vm_export
(
self
,
name
,
format
=
'
xml
'
):
pass
@pure
def
vm_stop
(
self
,
vm_names
=
None
,
force
=
False
):
pass
@pure
def
vm_start
(
self
,
vm_names
=
None
):
pass
@pure
def
vm_suspend
(
self
,
vm_names
=
None
):
pass
@pure
def
vm_resume
(
self
,
vm_names
=
None
):
pass
...
...
This diff is collapsed.
Click to expand it.
ccnode/node.py
+
18
−
24
View file @
ea45151e
...
...
@@ -2,8 +2,8 @@ import time
import
logging
from
threading
import
Thread
,
Lock
from
sjrpc.c
lient
import
SimpleRpcClient
from
sjrpc.utils
import
ConnectionProxy
,
RpcHandler
,
pure
from
sjrpc.c
ore
import
RpcConnection
from
sjrpc.utils
import
ConnectionProxy
,
RpcHandler
from
ccnode
import
__version__
from
ccnode.tags
import
Tag
,
get_tags
...
...
@@ -27,7 +27,6 @@ class DefaultHandler(RpcHandler):
self
.
tags
=
dict
((
t
.
name
,
t
)
for
t
in
DEFAULT_TAGS
)
@pure
def
get_tags
(
self
,
tags
=
None
,
noresolve_tags
=
None
):
"""
Method used from the ``cc-server`` to get tags.
...
...
@@ -59,26 +58,24 @@ class Node(Thread):
#: ``sjRpc`` proxy
self
.
proxy
=
None
#: ``sjRpc`` connection
manager
self
.
manager
=
None
#: ``sjRpc`` connection
self
.
connection
=
None
#: role returned by cc-server (set to None unless the authentication
#: has succeed)
self
.
role
=
None
self
.
_
manager
_lock
=
Lock
()
self
.
_
connection
_lock
=
Lock
()
def
init_rpc
(
self
):
"""
Init a new connection to ``cc-server``, create a ``sjRpc`` manager
and proxy.
"""
Init a new connection to ``cc-server``, create a ``sjRpc`` proxy.
"""
self
.
manager
=
SimpleRpcClient
.
from_addr
(
self
.
connection
=
RpcConnection
.
from_addr
_ssl
(
addr
=
self
.
server_host
,
port
=
self
.
server_port
,
enable_ssl
=
True
,
default_handler
=
DefaultHandler
(),
handler
=
DefaultHandler
(),
)
self
.
proxy
=
ConnectionProxy
(
self
.
manager
)
self
.
proxy
=
ConnectionProxy
(
self
.
connection
)
def
authentify
(
self
):
"""
Try to authenticate to the server. If successfull, import and then
...
...
@@ -97,15 +94,12 @@ class Node(Thread):
if
role
==
u
'
host
'
:
logger
.
debug
(
u
'
Role host affected.
'
)
from
ccnode.host
import
Handler
as
HostHandler
# FIXME bad API
self
.
manager
.
_connection
.
set_handler
(
HostHandler
())
self
.
connection
.
rpc
.
set_handler
(
HostHandler
())
self
.
role
=
u
'
host
'
elif
role
==
u
'
hv
'
:
logger
.
debug
(
u
'
Role hypervisor affected.
'
)
from
ccnode.hypervisor
import
Handler
as
HypervisorHandler
# FIXME bad API
self
.
manager
.
_connection
.
set_handler
(
HypervisorHandler
(
proxy
=
self
.
proxy
))
self
.
connection
.
rpc
.
set_handler
(
HypervisorHandler
(
proxy
=
self
.
proxy
))
self
.
role
=
u
'
hv
'
else
:
logger
.
debug
(
u
'
Wrong role returned: %s
'
,
role
)
...
...
@@ -116,9 +110,9 @@ class Node(Thread):
def
rpc
(
self
):
"""
Runs ``sjRpc`` main loop. Catches exceptions. :func:`shutdown` the
manager
before returning.
"""
connection
before returning.
"""
try
:
self
.
manager
.
run
()
self
.
connection
.
run
()
except
Exception
:
logger
.
exception
(
u
'
Unknown exception:
'
)
finally
:
...
...
@@ -156,9 +150,9 @@ class Node(Thread):
self
.
role
=
None
def
shutdown
(
self
):
"""
Shutdown the ``sjRpc``
manager
and reset object state.
"""
with
self
.
_
manager
_lock
:
if
self
.
manager
is
not
None
:
self
.
manager
.
shutdown
()
self
.
manager
=
None
"""
Shutdown the ``sjRpc``
connection
and reset object state.
"""
with
self
.
_
connection
_lock
:
if
self
.
connection
is
not
None
:
self
.
connection
.
shutdown
()
self
.
connection
=
None
self
.
role
=
None
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment