Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
CIRCLE
/
vmdriver
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
2
Merge Requests
0
Wiki
Members
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
86c27c67
authored
Dec 11, 2017
by
Fukász Rómeó Ervin
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' into ceph
parents
8036e1cf
bf0de0cc
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
31 additions
and
0 deletions
+31
-0
netcelery.py
+1
-0
netdriver.py
+26
-0
vmcelery.py
+1
-0
vmdriver.py
+3
-0
No files found.
netcelery.py
View file @
86c27c67
...
@@ -22,6 +22,7 @@ AMQP_URI = getenv('AMQP_URI')
...
@@ -22,6 +22,7 @@ AMQP_URI = getenv('AMQP_URI')
def
to_bool
(
value
):
def
to_bool
(
value
):
return
value
.
lower
()
in
(
"true"
,
"yes"
,
"y"
,
"t"
)
return
value
.
lower
()
in
(
"true"
,
"yes"
,
"y"
,
"t"
)
lib_connection
=
None
lib_connection
=
None
native_ovs
=
False
native_ovs
=
False
...
...
netdriver.py
View file @
86c27c67
...
@@ -63,6 +63,8 @@ def build_flow_rule(
...
@@ -63,6 +63,8 @@ def build_flow_rule(
protocol
=
None
,
protocol
=
None
,
nw_src
=
None
,
nw_src
=
None
,
ipv6_src
=
None
,
ipv6_src
=
None
,
icmp_type
=
None
,
nd_target
=
None
,
tp_dst
=
None
,
tp_dst
=
None
,
priority
=
None
,
priority
=
None
,
actions
=
None
):
actions
=
None
):
...
@@ -74,6 +76,8 @@ def build_flow_rule(
...
@@ -74,6 +76,8 @@ def build_flow_rule(
protocol - Protocol for the rule like ip,ipv6,arp,udp,tcp
protocol - Protocol for the rule like ip,ipv6,arp,udp,tcp
nw_src - Source network IP(v4)
nw_src - Source network IP(v4)
ipv6_src - Source network IP(v6)
ipv6_src - Source network IP(v6)
icmp_type - ICMP/ICMPv6 type
nd_target - IPv6 Neighbor Discovery target IP(v6)
tp_dst - Destination port
tp_dst - Destination port
priority - Rule priority
priority - Rule priority
actions - Action for the matching rule
actions - Action for the matching rule
...
@@ -89,6 +93,8 @@ def build_flow_rule(
...
@@ -89,6 +93,8 @@ def build_flow_rule(
(
'
%
s'
,
protocol
),
(
'
%
s'
,
protocol
),
(
'nw_src=
%
s'
,
nw_src
),
(
'nw_src=
%
s'
,
nw_src
),
(
'ipv6_src=
%
s'
,
ipv6_src
),
(
'ipv6_src=
%
s'
,
ipv6_src
),
(
'icmp_type=
%
s'
,
icmp_type
),
(
'nd_target=
%
s'
,
nd_target
),
(
'tp_dst=
%
s'
,
tp_dst
),
(
'tp_dst=
%
s'
,
tp_dst
),
(
'priority=
%
s'
,
priority
),
(
'priority=
%
s'
,
priority
),
(
'actions=
%
s'
,
actions
)]
(
'actions=
%
s'
,
actions
)]
...
@@ -158,13 +164,33 @@ def ipv4_filter(network, port_number, remove=False):
...
@@ -158,13 +164,33 @@ def ipv4_filter(network, port_number, remove=False):
def
ipv6_filter
(
network
,
port_number
,
remove
=
False
):
def
ipv6_filter
(
network
,
port_number
,
remove
=
False
):
""" Apply/Remove ipv6 filter rule to network. """
""" Apply/Remove ipv6 filter rule to network. """
LINKLOCAL_SUBNET
=
"FE80::/64"
ICMPv6_NA
=
"136"
# The type of IPv6 Neighbor Advertisement
if
not
remove
:
if
not
remove
:
# Enable Neighbor Advertisement from linklocal address
# if target ip same as network.ipv6
flow_cmd
=
build_flow_rule
(
in_port
=
port_number
,
dl_src
=
network
.
mac
,
protocol
=
"icmp6"
,
ipv6_src
=
LINKLOCAL_SUBNET
,
icmp_type
=
ICMPv6_NA
,
nd_target
=
network
.
ipv6
,
priority
=
42001
,
actions
=
"normal"
)
ofctl_command_execute
([
"add-flow"
,
network
.
bridge
,
flow_cmd
])
# Enable traffic from valid source
flow_cmd
=
build_flow_rule
(
in_port
=
port_number
,
dl_src
=
network
.
mac
,
flow_cmd
=
build_flow_rule
(
in_port
=
port_number
,
dl_src
=
network
.
mac
,
protocol
=
"ipv6"
,
ipv6_src
=
network
.
ipv6
,
protocol
=
"ipv6"
,
ipv6_src
=
network
.
ipv6
,
priority
=
42000
,
actions
=
"normal"
)
priority
=
42000
,
actions
=
"normal"
)
ofctl_command_execute
([
"add-flow"
,
network
.
bridge
,
flow_cmd
])
ofctl_command_execute
([
"add-flow"
,
network
.
bridge
,
flow_cmd
])
else
:
else
:
flow_cmd
=
build_flow_rule
(
in_port
=
port_number
,
dl_src
=
network
.
mac
,
flow_cmd
=
build_flow_rule
(
in_port
=
port_number
,
dl_src
=
network
.
mac
,
protocol
=
"icmp6"
,
ipv6_src
=
LINKLOCAL_SUBNET
,
icmp_type
=
ICMPv6_NA
,
nd_target
=
network
.
ipv6
)
ofctl_command_execute
([
"del-flows"
,
network
.
bridge
,
flow_cmd
])
flow_cmd
=
build_flow_rule
(
in_port
=
port_number
,
dl_src
=
network
.
mac
,
protocol
=
"ipv6"
,
ipv6_src
=
network
.
ipv6
)
protocol
=
"ipv6"
,
ipv6_src
=
network
.
ipv6
)
ofctl_command_execute
([
"del-flows"
,
network
.
bridge
,
flow_cmd
])
ofctl_command_execute
([
"del-flows"
,
network
.
bridge
,
flow_cmd
])
...
...
vmcelery.py
View file @
86c27c67
...
@@ -9,6 +9,7 @@ from argparse import ArgumentParser
...
@@ -9,6 +9,7 @@ from argparse import ArgumentParser
def
to_bool
(
value
):
def
to_bool
(
value
):
return
value
.
lower
()
in
(
"true"
,
"yes"
,
"y"
,
"t"
)
return
value
.
lower
()
in
(
"true"
,
"yes"
,
"y"
,
"t"
)
if
to_bool
(
getenv
(
"LIBVIRT_TEST"
,
"False"
)):
if
to_bool
(
getenv
(
"LIBVIRT_TEST"
,
"False"
)):
HOSTNAME
=
"vmdriver.test"
HOSTNAME
=
"vmdriver.test"
else
:
else
:
...
...
vmdriver.py
View file @
86c27c67
...
@@ -114,9 +114,12 @@ class shutdown(AbortableTask):
...
@@ -114,9 +114,12 @@ class shutdown(AbortableTask):
def
run
(
self
,
args
):
def
run
(
self
,
args
):
from
time
import
sleep
from
time
import
sleep
name
,
=
args
name
,
=
args
logging
.
info
(
"Shutdown started for vm:
%
s"
,
name
)
try
:
try
:
domain
=
lookupByName
(
name
)
domain
=
lookupByName
(
name
)
logging
.
info
(
"
%
s domain found in shutdown"
,
name
)
domain
.
shutdown
()
domain
.
shutdown
()
logging
.
info
(
"Domain shutdown called for vm:
%
s"
,
name
)
while
True
:
while
True
:
try
:
try
:
Connection
.
get
()
.
lookupByName
(
name
)
Connection
.
get
()
.
lookupByName
(
name
)
...
...
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