Merge "pep8: Enable E125, E126, E128"

This commit is contained in:
Jenkins 2017-07-10 12:02:00 +00:00 committed by Gerrit Code Review
commit e49c5e5790
39 changed files with 472 additions and 395 deletions

View File

@ -155,10 +155,10 @@ class MidonetApiClient(base.MidonetClientBase):
def create_ipsec_site_conn(self, context, ipsec_site_conn):
self.api_cli.create_ipsec_site_conn(ipsec_site_conn)
def update_ipsec_site_conn(self, context, ipsec_site_conn_id,
ipsec_site_conn):
self.api_cli.update_ipsec_site_conn(ipsec_site_conn_id,
ipsec_site_conn)
def update_ipsec_site_conn(
self, context, ipsec_site_conn_id, ipsec_site_conn):
self.api_cli.update_ipsec_site_conn(
ipsec_site_conn_id, ipsec_site_conn)
def delete_ipsec_site_conn(self, context, ipsec_site_conn_id):
self.api_cli.delete_ipsec_site_conn(ipsec_site_conn_id)
@ -197,9 +197,9 @@ class MidonetApiClient(base.MidonetClientBase):
self.api_cli.delete_bgp_peer(bgp_peer_id)
def update_logging_resource_postcommit(
self, logging_resource_id, logging_resource):
self, logging_resource_id, logging_resource):
self.api_cli.update_logging_resource(
logging_resource_id, logging_resource)
logging_resource_id, logging_resource)
def delete_logging_resource_postcommit(self, logging_resource_id):
self.api_cli.delete_logging_resource(logging_resource_id)

View File

@ -273,8 +273,8 @@ class MidonetClientBase(object):
def create_ipsec_site_conn(self, context, ipsec_site_conn):
pass
def update_ipsec_site_conn(self, context, ipsec_site_conn_id,
ipsec_site_conn):
def update_ipsec_site_conn(
self, context, ipsec_site_conn_id, ipsec_site_conn):
pass
def delete_ipsec_site_conn(self, context, ipsec_site_conn_id):

View File

@ -49,7 +49,7 @@ class MidonetBgpDbMixin(bgp_db.BgpDbMixin):
for port in ports:
subnet_id = port['fixed_ips'][0]['subnet_id']
cidr = core_plugin.get_subnet(
context, subnet_id, fields=['cidr'])
context, subnet_id, fields=['cidr'])
if self._extract_valid_peer_ips(cidr['cidr'], peer_ips):
nexthops.append(port['fixed_ips'][0]['ip_address'])
dest_networks.append(cidr['cidr'])

View File

@ -43,13 +43,13 @@ class BgpSpeakerRouterInsertionDbMixin(object):
try:
with db_api.context_manager.writer.using(context):
bgp_router_db = model.BgpSpeakerRouterAssociation(
bgp_speaker_id=bgp_sp_id,
router_id=r_id)
bgp_speaker_id=bgp_sp_id,
router_id=r_id)
context.session.add(bgp_router_db)
except db_exc.DBDuplicateEntry:
raise l3.RouterInUse(
router_id=r_id,
reason='is already associated with bgp speaker')
router_id=r_id,
reason='is already associated with bgp speaker')
except db_exc.DBReferenceError:
raise l3.RouterNotFound(router_id=r_id)
@ -110,8 +110,7 @@ class BgpSpeakerRouterInsertionDbMixin(object):
router_id = ports[0]['device_id']
# If the router is already associated with bgp-speaker,
# RouterInUse will be raised.
self.set_router_for_bgp_speaker(
context, bgp_sp_id, router_id)
self.set_router_for_bgp_speaker(context, bgp_sp_id, router_id)
def _get_bgp_speakers_by_bgp_peer_binding(self, context, bgp_peer_id):
with db_api.context_manager.reader.using(context):
@ -124,7 +123,7 @@ class BgpSpeakerRouterInsertionDbMixin(object):
def delete_bgp_speaker_router_insertion(self, context, bsp_id):
with db_api.context_manager.writer.using(context):
query = self._model_query(
context, model.BgpSpeakerRouterAssociation)
context, model.BgpSpeakerRouterAssociation)
query.filter(
model.BgpSpeakerRouterAssociation.bgp_speaker_id ==
bsp_id).delete()
@ -134,5 +133,5 @@ class BgpSpeakerRouterInsertionDbMixin(object):
router_id = kwargs['router_id']
context = kwargs.get('context')
if self.get_bgp_speaker_associated_with_router(context, router_id):
raise l3.RouterInUse(router_id=router_id,
reason='is associated with bgp speaker')
raise l3.RouterInUse(
router_id=router_id, reason='is associated with bgp speaker')

View File

@ -24,9 +24,11 @@ class BgpSpeakerRouterAssociation(model_base.BASEV2):
__tablename__ = 'bgp_speaker_router_associations'
bgp_speaker_id = sa.Column(sa.String(36),
bgp_speaker_id = sa.Column(
sa.String(36),
sa.ForeignKey('bgp_speakers.id', ondelete="CASCADE"),
nullable=False, primary_key=True)
router_id = sa.Column(sa.String(36),
router_id = sa.Column(
sa.String(36),
sa.ForeignKey('routers.id', ondelete="CASCADE"),
nullable=False, unique=True)

View File

@ -97,9 +97,9 @@ def _resource_id_column(foreign_key):
def _gateway_device_relation(class_name, ref_key):
relation = "GatewayDevice.id==" + class_name + ".device_id"
return orm.relationship(
GatewayDevice,
backref=orm.backref(ref_key, cascade='delete', lazy='joined'),
primaryjoin=relation)
GatewayDevice,
backref=orm.backref(ref_key, cascade='delete', lazy='joined'),
primaryjoin=relation)
class GatewayOverlayRouterDevice(GatewayVirtualDevice, model_base.BASEV2):
@ -261,8 +261,8 @@ class GwDeviceDbMixin(gw_device_ext.GwDevicePluginBase,
res['management_port'] = None
res['management_protocol'] = None
res['resource_id'] = gw_dev_db.overlay_router[0]['resource_id']
res['tunnel_ips'] = list(map(lambda n: n['tunnel_ip'],
gw_dev_db.tunnel_ip_list))
res['tunnel_ips'] = list(map(
lambda n: n['tunnel_ip'], gw_dev_db.tunnel_ip_list))
for item in gw_dev_db.mac_table_list:
entry = {'id': item['id'],
'mac_address': item['mac_address'],
@ -302,8 +302,8 @@ class GwDeviceDbMixin(gw_device_ext.GwDevicePluginBase,
with context.session.begin(subtransactions=True):
gw_dev_db = self._get_gateway_device(context, gw_dev_id)
if data.get('tunnel_ips'):
exist_ips = list(map(lambda n: n['tunnel_ip'],
gw_dev_db.tunnel_ip_list))
exist_ips = list(map(
lambda n: n['tunnel_ip'], gw_dev_db.tunnel_ip_list))
add_ips = set(data['tunnel_ips']) - set(exist_ips)
delete_ips = set(exist_ips) - set(data['tunnel_ips'])
if delete_ips:
@ -328,7 +328,7 @@ class GwDeviceDbMixin(gw_device_ext.GwDevicePluginBase,
if not gw_dev['management_ip'] or not gw_dev['management_port']:
raise gw_device_ext.HwVtepTypeInvalid(type=gw_dev['type'])
if self._get_hw_vtep_from_management_ip(
context, gw_dev['management_ip']):
context, gw_dev['management_ip']):
raise gw_device_ext.GatewayDeviceParamDuplicate(
param_name='management_ip',
param_value=gw_dev['management_ip'])
@ -343,7 +343,7 @@ class GwDeviceDbMixin(gw_device_ext.GwDevicePluginBase,
raise gw_device_ext.ResourceNotFound(resource_id=router_id)
if self._get_gateway_device_from_resource(
context, gw_device_ext.ROUTER_DEVICE_TYPE, router_id):
context, gw_device_ext.ROUTER_DEVICE_TYPE, router_id):
raise gw_device_ext.DeviceInUseByGatewayDevice(
resource_id=router_id, resource_type='router')
@ -363,7 +363,7 @@ class GwDeviceDbMixin(gw_device_ext.GwDevicePluginBase,
raise gw_device_ext.ResourceNotFound(resource_id=network_id)
if self._get_gateway_device_from_resource(
context, gw_device_ext.NETWORK_VLAN_TYPE, network_id):
context, gw_device_ext.NETWORK_VLAN_TYPE, network_id):
raise gw_device_ext.DeviceInUseByGatewayDevice(
resource_id=network_id, resource_type='network')
@ -389,7 +389,8 @@ class GwDeviceDbMixin(gw_device_ext.GwDevicePluginBase,
gw_dev['type'])
with context.session.begin(subtransactions=True):
gw_dev_db = GatewayDevice(id=uuidutils.generate_uuid(),
gw_dev_db = GatewayDevice(
id=uuidutils.generate_uuid(),
name=gw_dev['name'],
type=(gw_dev['type'] or gw_device_ext.HW_VTEP_TYPE),
tenant_id=tenant_id)

View File

@ -46,7 +46,7 @@ class MidonetL2GatewayMixin(l2gateway_db.L2GatewayMixin):
# validate it in this method.
super(MidonetL2GatewayMixin,
self).validate_l2_gateway_connection_for_create(
context, l2_gateway_connection)
context, l2_gateway_connection)
# Validate l2 gateway existence before getting gateway device type
gw_connection = l2_gateway_connection[self.connection_resource]
@ -57,11 +57,11 @@ class MidonetL2GatewayMixin(l2gateway_db.L2GatewayMixin):
if self._get_l2_gateway_connection_by_l2gw_id(
context, gw_connection['l2_gateway_id']):
raise exceptions.MidonetL2GatewayConnectionExists(
l2_gateway_id=gw_connection['l2_gateway_id'])
l2_gateway_id=gw_connection['l2_gateway_id'])
# Validate segmentation id range according to gateway device type
gw_connection = l2_gateway_connection[
constants.CONNECTION_RESOURCE_NAME]
constants.CONNECTION_RESOURCE_NAME]
seg_id = gw_connection.get(constants.SEG_ID)
if seg_id:
gw_type = self.get_gateway_device_type_from_l2gw(context, l2gw)
@ -70,9 +70,9 @@ class MidonetL2GatewayMixin(l2gateway_db.L2GatewayMixin):
def _get_l2_gateway_seg_id(self, context, l2_gw_id):
seg_id = None
l2_gw_dev = self.get_l2gateway_devices_by_gateway_id(
context, l2_gw_id)
context, l2_gw_id)
interfaces = self.get_l2gateway_interfaces_by_device_id(
context, l2_gw_dev[0]['id'])
context, l2_gw_dev[0]['id'])
if interfaces:
seg_id = interfaces[0][constants.SEG_ID]
return seg_id
@ -83,7 +83,7 @@ class MidonetL2GatewayMixin(l2gateway_db.L2GatewayMixin):
def get_gateway_device_type_from_l2gw(self, context, l2gw):
gw_id = (l2gw['devices'][0].get('device_id')) or (
l2gw['devices'][0].get('device_name'))
l2gw['devices'][0].get('device_name'))
gw_db = (directory.get_plugin(midonet_const.GATEWAY_DEVICE).
get_gateway_device(context, gw_id))
return gw_db['type']
@ -99,7 +99,7 @@ class MidonetL2GatewayMixin(l2gateway_db.L2GatewayMixin):
device['device_name'] = device['device_id']
if device.get(constants.SEG_ID):
l2gw_midonet_validators.is_valid_segmentaion_id(
gw['type'], device[constants.SEG_ID])
gw['type'], device[constants.SEG_ID])
device['interfaces'].append(
{constants.SEG_ID: [str(device[constants.SEG_ID])]})
return super(MidonetL2GatewayMixin, self).create_l2_gateway(
@ -127,8 +127,8 @@ class MidonetL2GatewayMixin(l2gateway_db.L2GatewayMixin):
# Validate only network existence since l2_gateway existence is
# validated in validate_l2_gateway_connection_for_create method.
if not self._core_plugin.get_network(context,
gw_connection['network_id']):
if not self._core_plugin.get_network(
context, gw_connection['network_id']):
raise neutron_extensions.NetworkNotFound(
net_id=gw_connection['network_id'])
return super(MidonetL2GatewayMixin, self).create_l2_gateway_connection(

View File

@ -51,8 +51,9 @@ class MidonetL3DBMixin(l3_gwmode_db.L3_NAT_db_mixin):
raise e.errors[0].error
raise l3.RouterInUse(router_id=router_id, reason=e)
def get_router_for_floatingip(self, context, internal_port,
internal_subnet, external_network_id):
def get_router_for_floatingip(
self, context, internal_port, internal_subnet,
external_network_id):
# REVISIT(yamamoto): These direct manipulation of core-plugin db
# resources is not ideal.
gw_port = orm.aliased(models_v2.Port, name="gw_port")
@ -100,8 +101,10 @@ class MidonetL3DBMixin(l3_gwmode_db.L3_NAT_db_mixin):
def router_gw_port_has_floating_ips(self, context, router_id):
router = self._get_router(context, router_id)
return any([self._subnet_has_fip(context, router_id, ip['subnet_id'])
for ip in router.gw_port['fixed_ips']])
return any([
self._subnet_has_fip(context, router_id, ip['subnet_id'])
for ip in router.gw_port['fixed_ips']
])
def find_next_hop_for_fip(self, context, floatingip_db):
# Find a next-hop address for a route from the floating_network_id

View File

@ -36,7 +36,8 @@ class LoggingResourceDbMixin(log_res_ext.LoggingResourcePluginBase,
"""Create a logging_resource"""
log_res = logging_resource['logging_resource']
with context.session.begin(subtransactions=True):
log_res_db = model.LoggingResource(id=uuidutils.generate_uuid(),
log_res_db = model.LoggingResource(
id=uuidutils.generate_uuid(),
name=log_res['name'],
description=log_res['description'],
tenant_id=log_res['tenant_id'],
@ -57,13 +58,14 @@ class LoggingResourceDbMixin(log_res_ext.LoggingResourcePluginBase,
marker_obj = self._get_marker_obj(context, 'logging_resource',
limit, marker)
return self._get_collection(context,
model.LoggingResource,
self._make_logging_resource_dict,
filters=filters, fields=fields,
sorts=sorts,
limit=limit, marker_obj=marker_obj,
page_reverse=page_reverse)
return self._get_collection(
context,
model.LoggingResource,
self._make_logging_resource_dict,
filters=filters, fields=fields,
sorts=sorts,
limit=limit, marker_obj=marker_obj,
page_reverse=page_reverse)
@log_helpers.log_method_call
def update_logging_resource(self, context, id, logging_resource):
@ -161,7 +163,7 @@ class LoggingResourceDbMixin(log_res_ext.LoggingResourcePluginBase,
def _logging_resource_has_logs(self, context, log_res_id):
query = self._model_query(context, model.FirewallLog)
return bool(query.filter(
model.FirewallLog.logging_resource_id == log_res_id).all())
model.FirewallLog.logging_resource_id == log_res_id).all())
def _get_firewall_log(self, context, id):
try:
@ -187,9 +189,13 @@ class LoggingResourceDbMixin(log_res_ext.LoggingResourcePluginBase,
def _extend_resource_specific_loggings(self, log_res_db, fields=None):
# Currently, only firewall log is returned.
return {'firewall_logs': [self._make_firewall_log_dict(
f_log, fields) for f_log in log_res_db.firewall_logs
if log_res_db.firewall_logs]}
return {
'firewall_logs': [
self._make_firewall_log_dict(f_log, fields)
for f_log in log_res_db.firewall_logs
if log_res_db.firewall_logs
]
}
def _make_firewall_log_dict(self, f_log_db, fields=None):
res = {'id': f_log_db['id'],

View File

@ -38,16 +38,16 @@ class FirewallLog(model_base.BASEV2, model_base.HasProjectNoIndex):
__tablename__ = FIREWALL_LOGS
id = sa.Column(sa.String(36), primary_key=True)
logging_resource_id = sa.Column(sa.String(36),
sa.ForeignKey('midonet_logging_resources.id',
ondelete="CASCADE"),
nullable=False)
logging_resource_id = sa.Column(
sa.String(36),
sa.ForeignKey('midonet_logging_resources.id', ondelete="CASCADE"),
nullable=False)
description = sa.Column(sa.String(1024))
fw_event = sa.Column(sa.String(length=255), nullable=False)
firewall_id = sa.Column(sa.String(36),
sa.ForeignKey('firewalls.id',
ondelete="CASCADE"),
nullable=False)
firewall_id = sa.Column(
sa.String(36),
sa.ForeignKey('firewalls.id', ondelete="CASCADE"),
nullable=False)
logging_resource = orm.relationship(
LoggingResource,
backref=orm.backref('firewall_logs', cascade='delete', lazy='joined'),

View File

@ -36,8 +36,8 @@ neutron_milestone = [migration.MITAKA]
def upgrade():
op.create_foreign_key(
constraint_name=None,
source_table='midonet_gateway_overlay_router_devices',
referent_table='routers',
local_cols=['resource_id'],
remote_cols=['id'])
constraint_name=None,
source_table='midonet_gateway_overlay_router_devices',
referent_table='routers',
local_cols=['resource_id'],
remote_cols=['id'])

View File

@ -29,12 +29,13 @@ import sqlalchemy as sa
def upgrade():
op.create_table('bgp_speaker_router_associations',
op.create_table(
'bgp_speaker_router_associations',
sa.Column('bgp_speaker_id', sa.String(length=36), nullable=False),
sa.Column('router_id', sa.String(length=36), nullable=False,
unique=True),
sa.ForeignKeyConstraint(['bgp_speaker_id'], ['bgp_speakers.id'],
ondelete='CASCADE'),
sa.ForeignKeyConstraint(['router_id'], ['routers.id'],
ondelete='CASCADE'),
sa.ForeignKeyConstraint(
['bgp_speaker_id'], ['bgp_speakers.id'], ondelete='CASCADE'),
sa.ForeignKeyConstraint(
['router_id'], ['routers.id'], ondelete='CASCADE'),
sa.PrimaryKeyConstraint('bgp_speaker_id'))

View File

@ -77,7 +77,8 @@ def log_calls(func):
def check_alembic_versions(context):
LOG.info('Checking Neutron alembic versions are in %s',
LOG.info(
'Checking Neutron alembic versions are in %s',
_KNOWN_NEUTRON_ALEMBIC_VERSIONS)
stmt = sql.select(
[sql.column('version_num')]).select_from(sql.table('alembic_version'))
@ -183,13 +184,13 @@ def migrate():
segments = {}
uplink_network_ids = [seg.network_id for seg in old_segments]
for network_id in uplink_network_ids:
segments[network_id] = add_segment(context,
network_id=network_id, network_type="uplink")
segments[network_id] = add_segment(
context, network_id=network_id, network_type="uplink")
networks = context.session.query(models_v2.Network).all()
for net in networks:
if net.id not in uplink_network_ids:
segments[net.id] = add_segment(context,
network_id=net.id, network_type="midonet")
segments[net.id] = add_segment(
context, network_id=net.id, network_type="midonet")
# Migrate port bindings
# NOTE(yamamoto): Unlike midonet v2, ML2 has PortBinding rows
@ -203,7 +204,8 @@ def migrate():
for port in context.session.query(models_v2.Port).all():
port_id = port.id
if port_id in port_host:
add_binding_bound(context, port_id, segments[port.network_id],
add_binding_bound(
context, port_id, segments[port.network_id],
port_host[port_id], port_interface.get(port_id))
else:
add_binding_unbound(context, port_id)

View File

@ -152,8 +152,9 @@ RESOURCE_ATTRIBUTE_MAP = {
'is_visible': True},
'tenant_id': {'allow_post': True, 'allow_put': False,
'required_by_policy': True,
'validate': {'type:string':
db_const.PROJECT_ID_FIELD_SIZE},
'validate': {
'type:string': db_const.PROJECT_ID_FIELD_SIZE
},
'is_visible': True},
'management_ip': {'allow_post': True, 'allow_put': False,
'default': None,
@ -165,8 +166,8 @@ RESOURCE_ATTRIBUTE_MAP = {
'management_protocol': {'allow_post': True, 'allow_put': False,
'is_visible': True, 'default': None},
'resource_id': {'allow_post': True, 'allow_put': False,
'validate': {'type:string':
db_const.DEVICE_ID_FIELD_SIZE},
'validate': {
'type:string': db_const.DEVICE_ID_FIELD_SIZE},
'is_visible': True, 'required_by_policy': True,
'default': ""},
'tunnel_ips': {'allow_post': True, 'allow_put': True,
@ -205,11 +206,13 @@ SUB_RESOURCE_ATTRIBUTE_MAP = {
# 1. delete this definition if neutron core is modified.
# 2. add DB column and remain this definition
# if neutron core is not modified.
'tenant_id': {'allow_post': True, 'allow_put': False,
'required_by_policy': True,
'validate': {'type:string':
db_const.PROJECT_ID_FIELD_SIZE},
'is_visible': False}}
'tenant_id': {
'allow_post': True,
'allow_put': False,
'required_by_policy': True,
'validate': {'type:string': db_const.PROJECT_ID_FIELD_SIZE},
'is_visible': False}
}
}
}
@ -297,8 +300,8 @@ class GwDevicePluginBase(object):
@abc.abstractmethod
def get_gateway_devices(self, context, filters=None, fields=None,
sorts=None, limit=None, marker=None,
page_reverse=False):
sorts=None, limit=None, marker=None,
page_reverse=False):
pass
@abc.abstractmethod

View File

@ -240,7 +240,7 @@ class MidonetPluginV2(plugin.MidonetMixinBase,
s, net_db, ipam_sub = self._create_subnet_precommit(
context, subnet)
self.extension_manager.process_create_subnet(context,
subnet['subnet'], s)
subnet['subnet'], s)
self.client.create_subnet_precommit(context, s)
# db base plugin post commit ops
@ -278,7 +278,7 @@ class MidonetPluginV2(plugin.MidonetMixinBase,
with db_api.context_manager.writer.using(context):
s = super(MidonetPluginV2, self).update_subnet(context, id, subnet)
self.extension_manager.process_update_subnet(context,
subnet['subnet'], s)
subnet['subnet'], s)
# NOTE(yamamoto): Retrieve the db object to get the correct
# revision
context.session.flush()
@ -483,7 +483,7 @@ class MidonetPluginV2(plugin.MidonetMixinBase,
def create_security_group_rule_bulk(self, context, security_group_rules):
return super(MidonetPluginV2,
self).create_security_group_rule_bulk_native(
context, security_group_rules)
context, security_group_rules)
@staticmethod
@resource_extend.extends([net_def.COLLECTION_NAME])

View File

@ -78,7 +78,7 @@ class MidonetBgpPlugin(bgp_db_midonet.MidonetBgpDbMixin,
# If the router is already associated with bgp-speaker,
# RouterInUse will be raised.
self.set_router_for_bgp_speaker(
context, bgp_sp['id'], router_id)
context, bgp_sp['id'], router_id)
bgp_sp[m_const.LOGICAL_ROUTER] = router_id
return bgp_sp
@ -87,35 +87,35 @@ class MidonetBgpPlugin(bgp_db_midonet.MidonetBgpDbMixin,
def delete_bgp_speaker(self, context, bgp_speaker_id):
with db_api.context_manager.writer.using(context):
bgp_sp = super(MidonetBgpPlugin, self).get_bgp_speaker(
context, bgp_speaker_id)
context, bgp_speaker_id)
super(MidonetBgpPlugin, self).delete_bgp_speaker(
context, bgp_speaker_id)
context, bgp_speaker_id)
# Plugin should call 'UPDATE' to clean up bgp-peers because
# backend cannot handle excepting ID when 'DELETE' is called.
self.client.update_bgp_speaker_precommit(
context, bgp_speaker_id, bgp_sp)
self.client.update_bgp_speaker_postcommit(
bgp_speaker_id, bgp_sp)
bgp_speaker_id, bgp_sp)
@log_helpers.log_method_call
def get_bgp_speakers(self, context, filters=None, fields=None,
sorts=None, limit=None, marker=None,
page_reverse=False):
bgp_sp_list = super(MidonetBgpPlugin, self).get_bgp_speakers(
context, filters, fields)
context, filters, fields)
for bgp_sp in bgp_sp_list:
rt_id = self.get_router_associated_with_bgp_speaker(
context, bgp_sp['id'])
context, bgp_sp['id'])
bgp_sp[m_const.LOGICAL_ROUTER] = rt_id
return bgp_sp_list
@log_helpers.log_method_call
def get_bgp_speaker(self, context, bgp_speaker_id, fields=None):
bgp_sp = super(MidonetBgpPlugin, self).get_bgp_speaker(
context, bgp_speaker_id, fields)
context, bgp_speaker_id, fields)
rt_id = self.get_router_associated_with_bgp_speaker(
context, bgp_speaker_id)
context, bgp_speaker_id)
bgp_sp[m_const.LOGICAL_ROUTER] = rt_id
return bgp_sp
@ -125,14 +125,14 @@ class MidonetBgpPlugin(bgp_db_midonet.MidonetBgpDbMixin,
# an error when dictionary without 'bgp_peer_id' key is specified.
if not self._get_id_for(bgp_peer_info, 'bgp_peer_id'):
raise nexception.BadRequest(
resource=bgp.BGP_SPEAKER_RESOURCE_NAME,
msg="bgp_peer_id must be specified")
resource=bgp.BGP_SPEAKER_RESOURCE_NAME,
msg="bgp_peer_id must be specified")
with db_api.context_manager.writer.using(context):
# In MidoNet, bgp-peer can be related to only one bgp-speaker.
if self._get_bgp_speakers_by_bgp_peer_binding(
context, bgp_peer_info['bgp_peer_id']):
raise bsri.MidonetBgpPeerInUse(
id=bgp_peer_info['bgp_peer_id'])
id=bgp_peer_info['bgp_peer_id'])
if not self.get_router_associated_with_bgp_speaker(
context, bgp_speaker_id):
# External network must be associated with the bgp speaker.
@ -141,10 +141,10 @@ class MidonetBgpPlugin(bgp_db_midonet.MidonetBgpDbMixin,
context, bgp_speaker_id, bgp_peer_info)
# get peer info for MidoNet
bgp_peer = super(MidonetBgpPlugin, self).get_bgp_peer(
context, info['bgp_peer_id'])
context, info['bgp_peer_id'])
# merge bgp_speaker information for MidoNet
bgp_peer['bgp_speaker'] = self.get_bgp_speaker(
context, bgp_speaker_id)
context, bgp_speaker_id)
self.client.create_bgp_peer_precommit(context, bgp_peer)
try:
@ -157,7 +157,7 @@ class MidonetBgpPlugin(bgp_db_midonet.MidonetBgpDbMixin,
"err": ex})
with excutils.save_and_reraise_exception():
super(MidonetBgpPlugin, self).remove_bgp_peer(
context, bgp_speaker_id, bgp_peer_info)
context, bgp_speaker_id, bgp_peer_info)
return info
@ -188,7 +188,7 @@ class MidonetBgpPlugin(bgp_db_midonet.MidonetBgpDbMixin,
context, bgp_peer_id, bgp_peer)
updated_bgp_peer = {'bgp_peer': bgp_peer}
self.client.update_bgp_peer_precommit(
context, bgp_peer_id, updated_bgp_peer)
context, bgp_peer_id, updated_bgp_peer)
self.client.update_bgp_peer_postcommit(bgp_peer_id,
updated_bgp_peer)
@ -197,11 +197,11 @@ class MidonetBgpPlugin(bgp_db_midonet.MidonetBgpDbMixin,
@log_helpers.log_method_call
def get_advertised_routes(self, context, bgp_speaker_id):
rt_id = self.get_router_associated_with_bgp_speaker(
context, bgp_speaker_id)
context, bgp_speaker_id)
# figure out advertised routes from attached networks
attached_routes = self.get_routes_from_attached_networks(
context, bgp_speaker_id, rt_id)
context, bgp_speaker_id, rt_id)
# prepare nexthops to change nexthop of extra
# route to IP address of router port
@ -209,7 +209,7 @@ class MidonetBgpPlugin(bgp_db_midonet.MidonetBgpDbMixin,
# figure out advertised routes from extra routes
extra_routes = self.get_routes_from_extra_routes(
context, rt_id, nexthops)
context, rt_id, nexthops)
routes = attached_routes + extra_routes
info = ({'destination': x, 'next_hop': y} for x, y in routes)
@ -231,9 +231,9 @@ class MidonetBgpPlugin(bgp_db_midonet.MidonetBgpDbMixin,
context, network_info['network_id']):
raise bsri.NetworkTypeInvalid()
info = super(MidonetBgpPlugin, self).add_gateway_network(
context, bgp_speaker_id, network_info)
context, bgp_speaker_id, network_info)
self.set_router_for_bgp_speaker_by_network(
context, bgp_speaker_id, network_info['network_id'])
context, bgp_speaker_id, network_info['network_id'])
return info
@ -243,8 +243,8 @@ class MidonetBgpPlugin(bgp_db_midonet.MidonetBgpDbMixin,
if self.get_bgp_peers_by_bgp_speaker(context, bgp_speaker_id):
raise bsri.BgpSpeakerInUse(id=bgp_speaker_id)
info = super(MidonetBgpPlugin, self).remove_gateway_network(
context, bgp_speaker_id, network_info)
context, bgp_speaker_id, network_info)
self.delete_bgp_speaker_router_insertion(
context, bgp_speaker_id)
context, bgp_speaker_id)
return info

View File

@ -95,7 +95,8 @@ class MidonetGwDeviceServicePlugin(gateway_device_db.GwDeviceDbMixin):
"device %(gw_id)s in Midonet:"
"%(err)s"), {"gw_id": gw["id"], "err": ex})
try:
super(MidonetGwDeviceServicePlugin,
super(
MidonetGwDeviceServicePlugin,
self).update_gateway_device(
context, gw['id'], backup_body)
except Exception:
@ -120,7 +121,7 @@ class MidonetGwDeviceServicePlugin(gateway_device_db.GwDeviceDbMixin):
if gw_device.type == gateway_device.NETWORK_VLAN_TYPE:
raise gateway_device.OperationRemoteMacEntryNotSupported(
type=gateway_device.NETWORK_VLAN_TYPE)
type=gateway_device.NETWORK_VLAN_TYPE)
with context.session.begin(subtransactions=True):
rme = super(MidonetGwDeviceServicePlugin,

View File

@ -53,11 +53,12 @@ class MidonetL2GatewayPlugin(l2gw_plugin.L2GatewayPlugin,
validate_gwdevice_list)
val_type = validators._to_validation_type('l2gwdevice_list')
validators.validators.pop(val_type, None)
validators.add_validator(val_type,
validators.add_validator(
val_type,
l2gw_midonet_validators.validate_gwdevice_list)
l2gw_validators.validate_network_mapping_list = (
l2gw_midonet_validators.
validate_network_mapping_list_without_seg_id_validation)
l2gw_midonet_validators.
validate_network_mapping_list_without_seg_id_validation)
neutron_extensions.append_api_extensions_path(l2gateway_ext.__path__)
super(MidonetL2GatewayPlugin, self).__init__()
@ -90,7 +91,8 @@ class MidonetL2GatewayPlugin(l2gw_plugin.L2GatewayPlugin,
self.validate_l2_gateway_connection_for_create(
context, l2_gateway_connection)
l2_gw_conn = (l2gw_db.MidonetL2GatewayMixin.
create_l2_gateway_connection(self, context, l2_gateway_connection))
create_l2_gateway_connection(
self, context, l2_gateway_connection))
# Copy over the ID so that the MidoNet driver knows about it. ID is
# necessary for MidoNet to process its translation.
@ -104,8 +106,8 @@ class MidonetL2GatewayPlugin(l2gw_plugin.L2GatewayPlugin,
except Exception as ex:
with excutils.save_and_reraise_exception():
LOG.error(_LE("Failed to create a l2 gateway connection "
"%(gw_conn_id)s in Midonet:%(err)s"),
{"gw_conn_id": l2_gw_conn["id"], "err": ex})
"%(gw_conn_id)s in Midonet:%(err)s"),
{"gw_conn_id": l2_gw_conn["id"], "err": ex})
try:
l2gw_db.MidonetL2GatewayMixin.delete_l2_gateway_connection(
self, context, l2_gw_conn["id"])

View File

@ -77,7 +77,7 @@ class MidonetL2gwDriver(service_drivers.L2gwDriver):
self._validate_gw_connection(context, gw_conn_dict)
if not gw_conn_dict[constants.SEG_ID]:
seg_id = self.service_plugin._get_l2_gateway_seg_id(
context, gw_conn_dict['l2_gateway_id'])
context, gw_conn_dict['l2_gateway_id'])
gw_conn_dict[constants.SEG_ID] = seg_id
try:
self.client.create_l2_gateway_connection(context,

View File

@ -144,16 +144,16 @@ class MidonetL3ServicePlugin(common_db_mixin.CommonDbMixin,
self.client.update_router_postcommit(id, r)
if r['status'] != m_const.ROUTER_STATUS_ACTIVE:
data = {'router': {'status': m_const.ROUTER_STATUS_ACTIVE}}
r = super(MidonetL3ServicePlugin,
self).update_router(context, id, data)
r = super(MidonetL3ServicePlugin, self).update_router(
context, id, data)
except Exception as ex:
with excutils.save_and_reraise_exception():
LOG.error(_LE("Failed to update a router %(r_id)s in MidoNet: "
"%(err)s"), {"r_id": id, "err": ex})
try:
data = {'router': {'status': m_const.ROUTER_STATUS_ERROR}}
super(MidonetL3ServicePlugin,
self).update_router(context, id, data)
super(MidonetL3ServicePlugin, self).update_router(
context, id, data)
except Exception:
LOG.exception(_LE("Failed to update a router "
"status %s"), id)
@ -275,7 +275,7 @@ class MidonetL3ServicePlugin(common_db_mixin.CommonDbMixin,
"%(err)s"), {"fip_id": id, "err": ex})
try:
self.update_floatingip_status(
context, id, n_const.FLOATINGIP_STATUS_ERROR)
context, id, n_const.FLOATINGIP_STATUS_ERROR)
except Exception:
LOG.exception(_LE("Failed to update floating ip "
"status %s"), id)

View File

@ -53,7 +53,7 @@ class MidonetLoggingResourcePlugin(log_res_db.LoggingResourceDbMixin):
@log_helpers.log_method_call
def update_logging_resource(self, context, id, logging_resource):
backup = self.get_logging_resource(
context, id, fields=['name', 'description', 'enabled'])
context, id, fields=['name', 'description', 'enabled'])
backup_body = {'logging_resource': backup}
with context.session.begin(subtransactions=True):
has_logs = self._logging_resource_has_logs(context, id)
@ -62,7 +62,7 @@ class MidonetLoggingResourcePlugin(log_res_db.LoggingResourceDbMixin):
self).update_logging_resource(context, id, logging_resource)
if has_logs:
self.client.update_logging_resource_precommit(
context, id, log_res)
context, id, log_res)
if not has_logs:
return log_res
@ -74,7 +74,8 @@ class MidonetLoggingResourcePlugin(log_res_db.LoggingResourceDbMixin):
"resource %(log_res_id)s in MidoNet: %(err)s"),
{"log_res_id": log_res["id"], "err": ex})
try:
super(MidonetLoggingResourcePlugin,
super(
MidonetLoggingResourcePlugin,
self).update_logging_resource(
context, log_res['id'], backup_body)
except Exception:
@ -96,11 +97,12 @@ class MidonetLoggingResourcePlugin(log_res_db.LoggingResourceDbMixin):
firewall_log,
logging_resource_id):
with context.session.begin(subtransactions=True):
f_log = super(MidonetLoggingResourcePlugin,
self).create_logging_resource_firewall_log(
context, firewall_log, logging_resource_id)
f_log = super(
MidonetLoggingResourcePlugin,
self).create_logging_resource_firewall_log(
context, firewall_log, logging_resource_id)
f_log_info = self._make_info_for_midonet(
context, f_log, logging_resource_id)
context, f_log, logging_resource_id)
self.client.create_firewall_log_precommit(context, f_log_info)
try:
@ -112,9 +114,10 @@ class MidonetLoggingResourcePlugin(log_res_db.LoggingResourceDbMixin):
{"f_log_id": f_log["id"],
"log_res_id": logging_resource_id, "err": ex})
try:
super(MidonetLoggingResourcePlugin,
super(
MidonetLoggingResourcePlugin,
self).delete_logging_resource_firewall_log(
context, f_log["id"], logging_resource_id)
context, f_log["id"], logging_resource_id)
except Exception:
LOG.exception(_LE("Failed to delete a "
"firewall_log %s"), f_log["id"])
@ -125,18 +128,17 @@ class MidonetLoggingResourcePlugin(log_res_db.LoggingResourceDbMixin):
def update_logging_resource_firewall_log(
self, context, id, logging_resource_id, firewall_log):
backup = self.get_logging_resource_firewall_log(
context, id, logging_resource_id,
fields=['fw_event', 'description'])
context, id, logging_resource_id,
fields=['fw_event', 'description'])
backup_body = {'firewall_log': backup}
with context.session.begin(subtransactions=True):
f_log = super(
MidonetLoggingResourcePlugin,
self).update_logging_resource_firewall_log(
context, id, logging_resource_id, firewall_log)
context, id, logging_resource_id, firewall_log)
f_log_info = self._make_info_for_midonet(
context, f_log, logging_resource_id)
self.client.update_firewall_log_precommit(
context, id, f_log_info)
context, f_log, logging_resource_id)
self.client.update_firewall_log_precommit(context, id, f_log_info)
try:
self.client.update_firewall_log_postcommit(id, f_log_info)
@ -146,7 +148,8 @@ class MidonetLoggingResourcePlugin(log_res_db.LoggingResourceDbMixin):
"%(f_log_id)s in Midonet:"
"%(err)s"), {"f_log_id": f_log["id"], "err": ex})
try:
super(MidonetLoggingResourcePlugin,
super(
MidonetLoggingResourcePlugin,
self).update_logging_resource_firewall_log(
context, f_log['id'],
logging_resource_id, backup_body)

View File

@ -33,8 +33,8 @@ LOG = logging.getLogger(__name__)
# subscribe them for task-based api.
class MidonetIPsecVPNDriver(base_ipsec.BaseIPsecVPNDriver):
def __init__(self, service_plugin):
super(MidonetIPsecVPNDriver, self).__init__(service_plugin,
ipsec_validator.IpsecVpnValidator(service_plugin))
super(MidonetIPsecVPNDriver, self).__init__(
service_plugin, ipsec_validator.IpsecVpnValidator(service_plugin))
self.plugin = plugin.VPNPlugin()
self.client = c_base.load_client(cfg.CONF.MIDONET)
@ -43,7 +43,7 @@ class MidonetIPsecVPNDriver(base_ipsec.BaseIPsecVPNDriver):
def create_vpnservice(self, context, vpnservice_dict):
super(MidonetIPsecVPNDriver, self).create_vpnservice(
context, vpnservice_dict)
context, vpnservice_dict)
try:
self.client.create_vpn_service(context, vpnservice_dict)
except Exception as ex:
@ -53,7 +53,7 @@ class MidonetIPsecVPNDriver(base_ipsec.BaseIPsecVPNDriver):
{"service_id": vpnservice_dict["id"], "err": ex})
try:
self.plugin.delete_vpnservice(
context, vpnservice_dict['id'])
context, vpnservice_dict['id'])
except Exception:
LOG.exception(_LE("Failed to delete vpn_service %s"),
vpnservice_dict['id'])
@ -63,8 +63,8 @@ class MidonetIPsecVPNDriver(base_ipsec.BaseIPsecVPNDriver):
def update_vpnservice(self, context, old_vpnservice, vpnservice):
try:
self.client.update_vpn_service(context, vpnservice['id'],
vpnservice)
self.client.update_vpn_service(
context, vpnservice['id'], vpnservice)
except Exception as ex:
with excutils.save_and_reraise_exception():
LOG.error(_LE("Failed to update a vpn_service %(service_id)s "
@ -72,7 +72,7 @@ class MidonetIPsecVPNDriver(base_ipsec.BaseIPsecVPNDriver):
{"service_id": vpnservice["id"], "err": ex})
try:
self.update_vpn_service_status(
context, vpnservice['id'], const.ERROR)
context, vpnservice['id'], const.ERROR)
except Exception:
LOG.exception(_LE("Failed to update vpn_service status "
"%s"),
@ -87,7 +87,7 @@ class MidonetIPsecVPNDriver(base_ipsec.BaseIPsecVPNDriver):
def create_ipsec_site_connection(self, context, ipsec_site_connection):
ipsec_site_conn_info = self.make_ipsec_site_connection_dict(
context, ipsec_site_connection['id'])
context, ipsec_site_connection['id'])
try:
self.client.create_ipsec_site_conn(context, ipsec_site_conn_info)
except Exception as ex:
@ -96,23 +96,23 @@ class MidonetIPsecVPNDriver(base_ipsec.BaseIPsecVPNDriver):
"%(conn_id)s in MidoNet: %(err)s"),
{"conn_id": ipsec_site_connection['id'], "err": ex})
try:
self.plugin.delete_ipsec_site_connection(context,
ipsec_site_connection['id'])
self.plugin.delete_ipsec_site_connection(
context, ipsec_site_connection['id'])
except Exception:
LOG.exception(_LE("Failed to delete ipsec_site_connection "
"%s"),
ipsec_site_connection['id'])
self.service_plugin.update_ipsec_site_conn_status(context,
ipsec_site_connection['id'], const.ACTIVE)
self.service_plugin.update_ipsec_site_conn_status(
context, ipsec_site_connection['id'], const.ACTIVE)
def update_ipsec_site_connection(self, context, old_ipsec_site_connection,
ipsec_site_connection):
ipsec_site_conn_info = self.make_ipsec_site_connection_dict(
context, ipsec_site_connection['id'])
context, ipsec_site_connection['id'])
try:
self.client.update_ipsec_site_conn(context,
ipsec_site_connection['id'], ipsec_site_conn_info)
self.client.update_ipsec_site_conn(
context, ipsec_site_connection['id'], ipsec_site_conn_info)
except Exception as ex:
with excutils.save_and_reraise_exception():
LOG.error(_LE("Failed to update a ipsec_site_connection "
@ -120,8 +120,8 @@ class MidonetIPsecVPNDriver(base_ipsec.BaseIPsecVPNDriver):
{"service_id": ipsec_site_connection['id'],
"err": ex})
try:
self.service_plugin.update_ipsec_site_conn_status(context,
ipsec_site_connection['id'], const.ERROR)
self.service_plugin.update_ipsec_site_conn_status(
context, ipsec_site_connection['id'], const.ERROR)
except Exception:
LOG.exception(_LE("Failed to update ipsec_site_connection "
"status %s"),
@ -130,22 +130,22 @@ class MidonetIPsecVPNDriver(base_ipsec.BaseIPsecVPNDriver):
def delete_ipsec_site_connection(self, context, ipsec_site_connection):
try:
self.client.delete_ipsec_site_conn(
context, ipsec_site_connection['id'])
context, ipsec_site_connection['id'])
except Exception:
LOG.error(_LE("Failed to delete ipsec_site_connection %s"),
ipsec_site_connection['id'])
def make_ipsec_site_connection_dict(self, context, ipsec_site_conn_id):
ipsec_site_conn = self.service_plugin._get_ipsec_site_connection(
context, ipsec_site_conn_id)
context, ipsec_site_conn_id)
vpnservice = ipsec_site_conn.vpnservice
local_cidr_map = self.service_plugin._build_local_subnet_cidr_map(
context)
context)
vpnservice_dict = self.make_vpnservice_dict(vpnservice, local_cidr_map)
ipsec_site_conn_dict = list(filter(
lambda conn: conn['id'] == ipsec_site_conn_id,
vpnservice_dict['ipsec_site_connections']))[0]
lambda conn: conn['id'] == ipsec_site_conn_id,
vpnservice_dict['ipsec_site_connections']))[0]
del ipsec_site_conn_dict['vpnservice']
return ipsec_site_conn_dict
@ -153,9 +153,9 @@ class MidonetIPsecVPNDriver(base_ipsec.BaseIPsecVPNDriver):
def update_vpn_service_status(self, context, vpnservice_id, status):
# this method is used only for updating a vpn_service status
self.service_plugin.update_status_by_agent(
context,
[{'id': vpnservice_id,
'status': status,
'updated_pending_status': True,
'ipsec_site_connections': {}
}])
context,
[{'id': vpnservice_id,
'status': status,
'updated_pending_status': True,
'ipsec_site_connections': {}
}])

View File

@ -134,7 +134,8 @@ class Bgp(BgpClientMixin, base.BaseTempestTestCase):
enable_snat=False,
project_id=cls.os_primary.network_client.tenant_id)
network = cls.create_network(network_name='right-network')
subnet = cls.create_subnet(network,
subnet = cls.create_subnet(
network,
cidr=netaddr.IPNetwork('10.10.0.0/24'),
name='right-subnet')
cls.create_router_interface(router['id'], subnet['id'])
@ -209,7 +210,8 @@ class Bgp(BgpClientMixin, base.BaseTempestTestCase):
@decorators.idempotent_id('c1208ce2-c55f-4424-9035-25de83161d6f')
def test_bgp(self):
# RIGHT
right_server = self._create_server(network=self._right_network,
right_server = self._create_server(
network=self._right_network,
create_floating_ip=False)
# LEFT
@ -219,9 +221,11 @@ class Bgp(BgpClientMixin, base.BaseTempestTestCase):
pkey=self.keypair['private_key'])
# check LEFT -> RIGHT connectivity via BGP advertised routes
self.check_remote_connectivity(ssh_client,
self.check_remote_connectivity(
ssh_client,
right_server['port']['fixed_ips'][0]['ip_address'],
should_succeed=False)
self._setup_bgp()
self.check_remote_connectivity(ssh_client,
self.check_remote_connectivity(
ssh_client,
right_server['port']['fixed_ips'][0]['ip_address'])

View File

@ -66,7 +66,8 @@ class Fip64(base.BaseTempestTestCase):
subnet_id=subnet_id,
port_id=port_id)['floatingip']
self.floating_ips.append(fip)
self.assertEqual(self._fip_ip_version,
self.assertEqual(
self._fip_ip_version,
netaddr.IPAddress(fip['floating_ip_address']).version)
return fip

View File

@ -54,14 +54,14 @@ class CLITestV20FirewallLogJSON(test_cli20.CLIExtTestV20Base):
def _create_firewall_log(self, args, position_names,
position_values, parent_id=None):
cmd = _firewall_log.FirewallLogCreate(
test_cli20.MyApp(sys.stdout), None)
test_cli20.MyApp(sys.stdout), None)
self._test_create_resource(RESOURCE, cmd, None, FAKE_FIREWALL_LOG_ID,
args, position_names, position_values,
parent_id=parent_id)
def _update_firewall_log(self, args, values, parent_id=None):
cmd = _firewall_log.FirewallLogUpdate(
test_cli20.MyApp(sys.stdout), None)
test_cli20.MyApp(sys.stdout), None)
self._test_update_ext_resource(RESOURCE, cmd, FAKE_FIREWALL_LOG_ID,
args, values, parent_id=parent_id)
@ -112,7 +112,7 @@ class CLITestV20FirewallLogJSON(test_cli20.CLIExtTestV20Base):
def test_delete_firewall_log(self):
cmd = _firewall_log.FirewallLogDelete(
test_cli20.MyApp(sys.stdout), None)
test_cli20.MyApp(sys.stdout), None)
args = [FAKE_FIREWALL_LOG_ID, FAKE_LOGGING_RESOURCE_ID]
self._test_delete_ext_resource(RESOURCE, cmd,
FAKE_FIREWALL_LOG_ID, args,
@ -120,14 +120,14 @@ class CLITestV20FirewallLogJSON(test_cli20.CLIExtTestV20Base):
def test_list_firewall_logs(self):
cmd = _firewall_log.FirewallLogList(
test_cli20.MyApp(sys.stdout), None)
test_cli20.MyApp(sys.stdout), None)
args = [FAKE_LOGGING_RESOURCE_ID]
self._test_list_resources(RESOURCES, cmd, base_args=args,
parent_id=FAKE_LOGGING_RESOURCE_ID)
def test_show_firewall_log(self):
cmd = _firewall_log.FirewallLogShow(
test_cli20.MyApp(sys.stdout), None)
test_cli20.MyApp(sys.stdout), None)
args = [FAKE_FIREWALL_LOG_ID, FAKE_LOGGING_RESOURCE_ID]
self._test_show_ext_resource(RESOURCE, cmd,
FAKE_FIREWALL_LOG_ID, args,

View File

@ -47,16 +47,15 @@ class CLITestV20GatewayDeviceJSON(test_cli20.CLIExtTestV20Base):
position_names, position_values):
resource = 'gateway_device'
cmd = _gateway_device.GatewayDeviceCreate(
test_cli20.MyApp(sys.stdout), None)
test_cli20.MyApp(sys.stdout), None)
self._test_create_resource(resource, cmd, name, 'myid',
args, position_names, position_values)
def _update_gateway_device(self, args, values):
resource = 'gateway_device'
cmd = _gateway_device.GatewayDeviceUpdate(
test_cli20.MyApp(sys.stdout), None)
self._test_update_resource(resource, cmd, 'myid',
args, values)
test_cli20.MyApp(sys.stdout), None)
self._test_update_resource(resource, cmd, 'myid', args, values)
def test_create_gateway_device_for_hw_vtep_mandatory_params(self):
name = 'hw-vtep-mandatory'
@ -126,7 +125,7 @@ class CLITestV20GatewayDeviceJSON(test_cli20.CLIExtTestV20Base):
position_names, position_values)
def test_create_gateway_device_for_network_vlan_with_mandatory_params(
self):
self):
name = 'network_vlan-mandatory'
gw_type = 'network_vlan'
resource_id = 'my_network_id'
@ -172,7 +171,7 @@ class CLITestV20GatewayDeviceJSON(test_cli20.CLIExtTestV20Base):
def test_delete_gateway_device(self):
resource = 'gateway_device'
cmd = _gateway_device.GatewayDeviceDelete(
test_cli20.MyApp(sys.stdout), None)
test_cli20.MyApp(sys.stdout), None)
my_id = 'my-id'
args = [my_id]
self._test_delete_resource(resource, cmd, my_id, args)
@ -180,28 +179,29 @@ class CLITestV20GatewayDeviceJSON(test_cli20.CLIExtTestV20Base):
def test_list_gateway_devices(self):
resources = 'gateway_devices'
cmd = _gateway_device.GatewayDeviceList(
test_cli20.MyApp(sys.stdout), None)
test_cli20.MyApp(sys.stdout), None)
self._test_list_resources(resources, cmd)
def test_list_gateway_devices_with_pagination(self):
resources = 'gateway_devices'
cmd = _gateway_device.GatewayDeviceList(
test_cli20.MyApp(sys.stdout), None)
test_cli20.MyApp(sys.stdout), None)
self._test_list_resources_with_pagination(resources, cmd)
def test_list_gateway_device_with_remote_mac_entries(self):
resources = 'gateway_devices'
cmd = _gateway_device.GatewayDeviceList(
test_cli20.MyApp(sys.stdout), None)
rme = [{"segmentation_id": 100,
"vtep_address": "192.168.100.1",
"id": "remote_mac_entry_id1",
"mac_address": "fa:16:3e:db:79:80"},
{"segmentation_id": 100,
"vtep_address": "192.168.100.50",
"id": "remote_mac_entry_id1",
"mac_address": "fa:16:3e:df:79:80"},
]
test_cli20.MyApp(sys.stdout), None)
rme = [
{"segmentation_id": 100,
"vtep_address": "192.168.100.1",
"id": "remote_mac_entry_id1",
"mac_address": "fa:16:3e:db:79:80"},
{"segmentation_id": 100,
"vtep_address": "192.168.100.50",
"id": "remote_mac_entry_id1",
"mac_address": "fa:16:3e:df:79:80"},
]
response = {'gateway_devices': [{"id": 'myid',
"name": 'gw_device',
"type": "router_vtep",
@ -214,7 +214,7 @@ class CLITestV20GatewayDeviceJSON(test_cli20.CLIExtTestV20Base):
def test_show_gateway_device(self):
resource = 'gateway_device'
cmd = _gateway_device.GatewayDeviceShow(
test_cli20.MyApp(sys.stdout), None)
test_cli20.MyApp(sys.stdout), None)
args = ['--fields', 'id', '--fields', 'name', self.test_id]
self._test_show_resource(resource, cmd, self.test_id, args,
['id', 'name'])

View File

@ -38,8 +38,7 @@ class CLITestV20L2gatewayJSON(test_cli20.CLIExtTestV20Base):
def _create_l2gateway(self, name, args,
position_names, position_values):
resource = 'l2_gateway'
cmd = _l2_gateway.L2GatewayCreate(
test_cli20.MyApp(sys.stdout), None)
cmd = _l2_gateway.L2GatewayCreate(test_cli20.MyApp(sys.stdout), None)
self._test_create_resource(resource, cmd, name, 'myid',
args, position_names, position_values)

View File

@ -55,16 +55,16 @@ class CLITestV20LoggingResourceJSON(test_cli20.CLIExtTestV20Base):
self.assertDictContainsSubset(log_res_cmd, shell.COMMANDS['2.0'])
def _create_logging_resource(self, name, args,
position_names, position_values):
position_names, position_values):
cmd = _logging_resource.LoggingResourceCreate(
test_cli20.MyApp(sys.stdout), None)
test_cli20.MyApp(sys.stdout), None)
self._test_create_resource(RESOURCE, cmd, name,
FAKE_LOGGING_RESOURCE_ID,
args, position_names, position_values)
def _update_logging_resource(self, args, values):
cmd = _logging_resource.LoggingResourceUpdate(
test_cli20.MyApp(sys.stdout), None)
test_cli20.MyApp(sys.stdout), None)
self._test_update_resource(RESOURCE, cmd, FAKE_LOGGING_RESOURCE_ID,
args, values)
@ -91,14 +91,14 @@ class CLITestV20LoggingResourceJSON(test_cli20.CLIExtTestV20Base):
def test_delete_logging_resource(self):
cmd = _logging_resource.LoggingResourceDelete(
test_cli20.MyApp(sys.stdout), None)
test_cli20.MyApp(sys.stdout), None)
args = [FAKE_LOGGING_RESOURCE_ID]
self._test_delete_resource(RESOURCE, cmd,
FAKE_LOGGING_RESOURCE_ID, args)
def test_list_logging_resources(self):
cmd = _logging_resource.LoggingResourceList(
test_cli20.MyApp(sys.stdout), None)
test_cli20.MyApp(sys.stdout), None)
self._test_list_resources(RESOURCES, cmd)
def test_list_logging_resources_with_pagination(self):
@ -108,7 +108,7 @@ class CLITestV20LoggingResourceJSON(test_cli20.CLIExtTestV20Base):
def test_list_logging_resource_with_firewall_logs(self):
cmd = _logging_resource.LoggingResourceList(
test_cli20.MyApp(sys.stdout), None)
test_cli20.MyApp(sys.stdout), None)
fw_log = [{"firewall_id": FAKE_FIREWALL_ID1,
"description": telr.FAKE_FW_LOG_DESC,
"id": FAKE_FIREWALL_LOG_ID1,
@ -118,17 +118,17 @@ class CLITestV20LoggingResourceJSON(test_cli20.CLIExtTestV20Base):
"id": FAKE_FIREWALL_LOG_ID2,
"fw_event": log_res_ext.FW_EVENT_DROP}]
response = {'logging_resources': [
{"id": FAKE_LOGGING_RESOURCE_ID,
"name": telr.FAKE_LOG_RES_NAME,
"enabled": str(telr.ENABLED_TRUE),
"description": telr.FAKE_LOG_RES_DESC,
"firewall_logs": fw_log}]}
{"id": FAKE_LOGGING_RESOURCE_ID,
"name": telr.FAKE_LOG_RES_NAME,
"enabled": str(telr.ENABLED_TRUE),
"description": telr.FAKE_LOG_RES_DESC,
"firewall_logs": fw_log}]}
args = ['-c', 'id', '-c', 'firewall_logs']
self._test_list_columns(cmd, RESOURCES, response, args)
def test_show_logging_resource(self):
cmd = _logging_resource.LoggingResourceShow(
test_cli20.MyApp(sys.stdout), None)
test_cli20.MyApp(sys.stdout), None)
args = ['--fields', 'id', '--fields', 'name', self.test_id]
self._test_show_resource(RESOURCE, cmd, self.test_id, args,
['id', 'name'])

View File

@ -45,7 +45,7 @@ class CLITestV20RemoteMacEntryJSON(test_cli20.CLIExtTestV20Base):
position_values, parent_id=None):
resource = 'remote_mac_entry'
cmd = _remote_mac_entry.RemoteMacEntryCreate(
test_cli20.MyApp(sys.stdout), None)
test_cli20.MyApp(sys.stdout), None)
self._test_create_resource(resource, cmd, None, 'myid',
args, position_names, position_values,
parent_id=parent_id)
@ -88,7 +88,7 @@ class CLITestV20RemoteMacEntryJSON(test_cli20.CLIExtTestV20Base):
def test_delete_remote_mac_entry(self):
resource = 'remote_mac_entry'
cmd = _remote_mac_entry.RemoteMacEntryDelete(
test_cli20.MyApp(sys.stdout), None)
test_cli20.MyApp(sys.stdout), None)
gw_device_id = 'my_gw_device'
my_id = 'myid'
args = [my_id, gw_device_id]
@ -98,7 +98,7 @@ class CLITestV20RemoteMacEntryJSON(test_cli20.CLIExtTestV20Base):
def test_list_remote_mac_entries(self):
resources = 'remote_mac_entries'
cmd = _remote_mac_entry.RemoteMacEntryList(
test_cli20.MyApp(sys.stdout), None)
test_cli20.MyApp(sys.stdout), None)
gw_device_id = 'my_gw_device'
args = [gw_device_id]
self._test_list_resources(resources, cmd, base_args=args,
@ -107,7 +107,7 @@ class CLITestV20RemoteMacEntryJSON(test_cli20.CLIExtTestV20Base):
def test_show_remote_mac_entry(self):
resource = 'remote_mac_entry'
cmd = _remote_mac_entry.RemoteMacEntryShow(
test_cli20.MyApp(sys.stdout), None)
test_cli20.MyApp(sys.stdout), None)
gw_device_id = 'my_gw_device'
my_id = 'myid'
args = [my_id, gw_device_id]

View File

@ -77,7 +77,7 @@ class BgpTestCase(test_l3.L3NatTestCaseMixin,
service_plugins = {'bgp_plugin_name': BGP_PLUGIN_KLASS}
bgp_mgr = BgpTestExtensionManager()
super(BgpTestCase, self).setUp(
service_plugins=service_plugins, ext_mgr=bgp_mgr)
service_plugins=service_plugins, ext_mgr=bgp_mgr)
self.ext_api = test_ex.setup_extensions_middleware(bgp_mgr)
self.bgp_plugin = bgp_plugin.MidonetBgpPlugin()
@ -116,7 +116,7 @@ class BgpTestCase(test_l3.L3NatTestCaseMixin,
self._set_net_external(ext_net['network']['id'])
self._ext_net_id = ext_net['network']['id']
self._ext_subnet = self._make_subnet(self.fmt, ext_net, "100.65.0.1",
'100.65.0.0/24')
'100.65.0.0/24')
self._ext_subnet_id = self._ext_subnet['subnet']['id']
edge_router = self._make_router(self.fmt, uuidutils.generate_uuid(),
'edge_router', True)

View File

@ -173,9 +173,8 @@ class GatewayDeviceTestCase(test_l3.L3NatTestCaseMixin,
'gateway_device_plugin_name': DB_GATEWAY_DEVICE_PLUGIN_KLASS}
gw_dev_mgr = GatewayDeviceTestExtensionManager()
super(GatewayDeviceTestCase,
self).setUp(service_plugins=service_plugins,
ext_mgr=gw_dev_mgr)
super(GatewayDeviceTestCase, self).setUp(
service_plugins=service_plugins, ext_mgr=gw_dev_mgr)
self.ext_api = test_ex.setup_extensions_middleware(gw_dev_mgr)
network = self._make_network(self.fmt, 'net1', True)
@ -218,26 +217,27 @@ class GatewayDeviceTestCase(test_l3.L3NatTestCaseMixin,
'vtep_address': FAKE_VTEP_ADDRESS,
'segmentation_id': FAKE_SEG_ID}
with self.gateway_device_type_router_vtep(
resource_id=self._router_id) as gw_dev:
resource_id=self._router_id) as gw_dev:
with self.remote_mac_entry(gw_dev['gateway_device']['id']) as rme:
self.assertDictSupersetOf(expected, rme['remote_mac_entry'])
def test_create_remote_mac_on_network_vlan(self):
with self.gateway_device_type_network_vlan(
resource_id=self._network_id) as gw_dev:
resource_id=self._network_id) as gw_dev:
res = self._create_remote_mac_entry(gw_dev['gateway_device']['id'])
self.deserialize(self.fmt, res)
self.assertEqual(webob.exc.HTTPConflict.code, res.status_int)
def test_create_remote_mac_with_same_vtep_address(self):
with self.gateway_device_type_router_vtep(
resource_id=self._router_id) as gw_dev:
resource_id=self._router_id) as gw_dev:
with self.remote_mac_entry(gw_dev['gateway_device']['id']):
with self.remote_mac_entry(gw_dev['gateway_device']['id'],
mac_address=FAKE_MAC_ADDRESS2):
req = self.new_list_request('gw/gateway_devices/'
+ gw_dev['gateway_device']['id']
+ '/remote_mac_entries')
req = self.new_list_request(
'gw/gateway_devices/'
+ gw_dev['gateway_device']['id']
+ '/remote_mac_entries')
res = self.deserialize(
self.fmt, req.get_response(self.ext_api))
self.assertEqual(len(res['remote_mac_entries']), 2)
@ -280,10 +280,10 @@ class GatewayDeviceTestCase(test_l3.L3NatTestCaseMixin,
def test_list_remote_mac_with_two_gateways(self):
with self.gateway_device_type_router_vtep(
resource_id=self._router_id) as gw_dev, \
self.gateway_device_type_router_vtep(
resource_id=self._router_id_in_use,
tunnel_ips=[FAKE_TUNNEL_IP2]) as gw_dev2:
resource_id=self._router_id) as gw_dev, \
self.gateway_device_type_router_vtep(
resource_id=self._router_id_in_use,
tunnel_ips=[FAKE_TUNNEL_IP2]) as gw_dev2:
with self.remote_mac_entry(gw_dev['gateway_device']['id']) as rme:
req = self.new_list_request('gw/gateway_devices/'
+ gw_dev['gateway_device']['id']
@ -314,9 +314,9 @@ class GatewayDeviceTestCase(test_l3.L3NatTestCaseMixin,
def test_delete_remote_mac_with_wrong_gateway(self):
with self.gateway_device_type_router_vtep(
resource_id=self._router_id) as gw_dev, \
self.gateway_device_type_router_vtep(
resource_id=self._router_id_in_use,
tunnel_ips=[FAKE_TUNNEL_IP2]) as gw_dev2:
self.gateway_device_type_router_vtep(
resource_id=self._router_id_in_use,
tunnel_ips=[FAKE_TUNNEL_IP2]) as gw_dev2:
with self.remote_mac_entry(gw_dev['gateway_device']['id']) as rme:
req = self.new_delete_request('gw/gateway_devices/'
+ gw_dev2['gateway_device']['id']
@ -430,7 +430,8 @@ class GatewayDeviceTestCase(test_l3.L3NatTestCaseMixin,
req = self.new_list_request('gw/gateway_devices')
res = self.deserialize(self.fmt,
req.get_response(self.ext_api))
self.assertEqual([],
self.assertEqual(
[],
res['gateway_devices'][0]['remote_mac_entries'])
def _make_remote_mac_entry(self, gw_dev_id, mac_address=FAKE_MAC_ADDRESS,
@ -506,8 +507,14 @@ class GatewayDeviceTestCase(test_l3.L3NatTestCaseMixin,
def test_update_gateway_device_with_multiple_tunnel_ips(self):
with self.gateway_device_type_router_vtep(
resource_id=self._router_id) as gw_dev:
data = {'gateway_device':
{'tunnel_ips': [FAKE_TUNNEL_IP, FAKE_TUNNEL_IP2]}}
data = {
'gateway_device': {
'tunnel_ips': [
FAKE_TUNNEL_IP,
FAKE_TUNNEL_IP2
]
}
}
gw_dev_req = self.new_update_request(
'gw/gateway_devices',
data,

View File

@ -43,12 +43,13 @@ MN_DRIVER_KLASS = ('midonet.neutron.services.l2gateway.service_drivers.'
class MidonetL2GatewayTestExtensionManager(
test_gw.GatewayDeviceTestExtensionManager, test_l3.L3TestExtensionManager):
test_gw.GatewayDeviceTestExtensionManager,
test_l3.L3TestExtensionManager):
def get_resources(self):
res = super(MidonetL2GatewayTestExtensionManager, self).get_resources()
return (res + l2gateway.L2gateway.get_resources() +
l2gatewayconnection.L2gatewayconnection.get_resources())
l2gatewayconnection.L2gatewayconnection.get_resources())
def get_actions(self):
return []
@ -83,12 +84,12 @@ class MidonetL2GatewayTestCase(test_gw.GatewayDeviceTestCaseMixin,
network = self._make_network(self.fmt, 'net1', True)
self._network_id = network['network']['id']
self._subnet = self._make_subnet(self.fmt, network, "10.0.0.1",
'10.0.0.0/24')
'10.0.0.0/24')
self._subnet_id = self._subnet['subnet']['id']
network2 = self._make_network(self.fmt, 'net2', True)
self._network_id2 = network2['network']['id']
self._subnet2 = self._make_subnet(self.fmt, network2, "20.0.0.1",
'20.0.0.0/24')
'20.0.0.0/24')
self._subnet_id2 = self._subnet2['subnet']['id']
router1 = self._make_router('json', uuidutils.generate_uuid(),
'router1', True)
@ -99,8 +100,8 @@ class MidonetL2GatewayTestCase(test_gw.GatewayDeviceTestCaseMixin,
# for network_vlan gateway device setting
res = self._create_network(self.fmt, 'gateway_network_vlan', True)
self._vlan_network_id = self.deserialize(self.fmt, res)['network'][
'id']
self._vlan_network_id = self.deserialize(
self.fmt, res)['network']['id']
def _create_l2_gateway(self, name=L2_GW_NAME, device_id="", device_id2="",
seg_id=None):
@ -123,7 +124,7 @@ class MidonetL2GatewayTestCase(test_gw.GatewayDeviceTestCaseMixin,
'tenant_id': uuidutils.generate_uuid(),
'segmentation_id': segmentation_id}}
l2_gw_conn_req = self.new_create_request('l2-gateway-connections',
data, self.fmt)
data, self.fmt)
return l2_gw_conn_req.get_response(self.ext_api)
@contextlib.contextmanager
@ -158,10 +159,12 @@ class MidonetL2GatewayTestCase(test_gw.GatewayDeviceTestCaseMixin,
resource_id=self._router_id) as gw_dev:
name = L2_GW_NAME
device_id = gw_dev['gateway_device']['id']
with self.l2_gateway(name=L2_GW_NAME,
with self.l2_gateway(
name=L2_GW_NAME,
device_id=gw_dev['gateway_device']['id']) as l2_gw:
self.assertEqual(name, l2_gw['l2_gateway']['name'])
self.assertEqual(device_id,
self.assertEqual(
device_id,
l2_gw['l2_gateway']['devices'][0]['device_id'])
def test_create_midonet_l2gateway_vlan(self):
@ -169,18 +172,20 @@ class MidonetL2GatewayTestCase(test_gw.GatewayDeviceTestCaseMixin,
resource_id=self._vlan_network_id) as gw_dev:
name = L2_GW_NAME
device_id = gw_dev['gateway_device']['id']
with self.l2_gateway(name=L2_GW_NAME,
with self.l2_gateway(
name=L2_GW_NAME,
device_id=gw_dev['gateway_device']['id']) as l2_gw:
self.assertEqual(name, l2_gw['l2_gateway']['name'])
self.assertEqual(device_id,
self.assertEqual(
device_id,
l2_gw['l2_gateway']['devices'][0]['device_id'])
def test_create_midonet_l2gateway_with_invalid_seg_id(self):
with self.gateway_device_type_router_vtep(
resource_id=self._router_id) as gw_dev:
res = self._create_l2_gateway(
device_id=gw_dev['gateway_device']['id'],
seg_id=INVALID_VXLAN_ID)
device_id=gw_dev['gateway_device']['id'],
seg_id=INVALID_VXLAN_ID)
self.deserialize(self.fmt, res)
self.assertEqual(webob.exc.HTTPBadRequest.code, res.status_int)
@ -188,8 +193,8 @@ class MidonetL2GatewayTestCase(test_gw.GatewayDeviceTestCaseMixin,
with self.gateway_device_type_network_vlan(
resource_id=self._vlan_network_id) as gw_dev:
res = self._create_l2_gateway(
device_id=gw_dev['gateway_device']['id'],
seg_id=INVALID_VLAN_ID)
device_id=gw_dev['gateway_device']['id'],
seg_id=INVALID_VLAN_ID)
self.deserialize(self.fmt, res)
self.assertEqual(webob.exc.HTTPBadRequest.code, res.status_int)
@ -208,13 +213,16 @@ class MidonetL2GatewayTestCase(test_gw.GatewayDeviceTestCaseMixin,
resource_id=self._router_id) as gw_dev:
name = L2_GW_NAME
device_id = gw_dev['gateway_device']['id']
with self.l2_gateway(name=L2_GW_NAME,
with self.l2_gateway(
name=L2_GW_NAME,
device_id=gw_dev['gateway_device']['id'],
segmentation_id=FAKE_SEG_ID_VXLAN) as l2_gw:
self.assertEqual(name, l2_gw['l2_gateway']['name'])
self.assertEqual(device_id,
self.assertEqual(
device_id,
l2_gw['l2_gateway']['devices'][0]['device_id'])
self.assertEqual(FAKE_SEG_ID_VXLAN,
self.assertEqual(
FAKE_SEG_ID_VXLAN,
l2_gw['l2_gateway']['devices'][0]['segmentation_id'])
def test_create_midonet_l2gateway_vlan_with_segmentation_id(self):
@ -222,13 +230,16 @@ class MidonetL2GatewayTestCase(test_gw.GatewayDeviceTestCaseMixin,
resource_id=self._vlan_network_id) as gw_dev:
name = L2_GW_NAME
device_id = gw_dev['gateway_device']['id']
with self.l2_gateway(name=L2_GW_NAME,
with self.l2_gateway(
name=L2_GW_NAME,
device_id=gw_dev['gateway_device']['id'],
segmentation_id=FAKE_SEG_ID) as l2_gw:
self.assertEqual(name, l2_gw['l2_gateway']['name'])
self.assertEqual(device_id,
self.assertEqual(
device_id,
l2_gw['l2_gateway']['devices'][0]['device_id'])
self.assertEqual(FAKE_SEG_ID,
self.assertEqual(
FAKE_SEG_ID,
l2_gw['l2_gateway']['devices'][0]['segmentation_id'])
def test_delete_midonet_l2gateway(self):
@ -291,11 +302,14 @@ class MidonetL2GatewayTestCase(test_gw.GatewayDeviceTestCaseMixin,
l2_gateway_id=l2_gw['l2_gateway']['id'],
network_id=self._network_id,
segmentation_id=str(FAKE_SEG_ID_VXLAN)) as l2_gw_con:
self.assertEqual(self._network_id,
self.assertEqual(
self._network_id,
l2_gw_con['l2_gateway_connection']['network_id'])
self.assertEqual(l2_gw['l2_gateway']['id'],
self.assertEqual(
l2_gw['l2_gateway']['id'],
l2_gw_con['l2_gateway_connection']['l2_gateway_id'])
self.assertEqual(FAKE_SEG_ID_VXLAN,
self.assertEqual(
FAKE_SEG_ID_VXLAN,
l2_gw_con['l2_gateway_connection']['segmentation_id'])
def test_create_midonet_l2gateway_vlan_connection(self):
@ -307,11 +321,14 @@ class MidonetL2GatewayTestCase(test_gw.GatewayDeviceTestCaseMixin,
with self.l2_gateway_connection(
l2_gateway_id=l2_gw['l2_gateway']['id'],
network_id=self._network_id) as l2_gw_con:
self.assertEqual(self._network_id,
self.assertEqual(
self._network_id,
l2_gw_con['l2_gateway_connection']['network_id'])
self.assertEqual(l2_gw['l2_gateway']['id'],
self.assertEqual(
l2_gw['l2_gateway']['id'],
l2_gw_con['l2_gateway_connection']['l2_gateway_id'])
self.assertEqual(FAKE_SEG_ID,
self.assertEqual(
FAKE_SEG_ID,
l2_gw_con['l2_gateway_connection']['segmentation_id'])
def test_create_midonet_l2gateway_and_l2gateway_con_without_seg_id(self):
@ -330,7 +347,7 @@ class MidonetL2GatewayTestCase(test_gw.GatewayDeviceTestCaseMixin,
def test_create_midonet_l2gateway_connection_with_not_found_network(self):
with self.gateway_device_type_router_vtep(
resource_id=self._router_id) as gw_dev:
resource_id=self._router_id) as gw_dev:
with self.l2_gateway(
name=L2_GW_NAME,
device_id=gw_dev['gateway_device']['id']) as l2_gw:
@ -401,11 +418,14 @@ class MidonetL2GatewayTestCase(test_gw.GatewayDeviceTestCaseMixin,
l2_gateway_id=l2_gw['l2_gateway']['id'],
network_id=self._network_id,
segmentation_id='') as l2_gw_con:
self.assertEqual(self._network_id,
self.assertEqual(
self._network_id,
l2_gw_con['l2_gateway_connection']['network_id'])
self.assertEqual(l2_gw['l2_gateway']['id'],
self.assertEqual(
l2_gw['l2_gateway']['id'],
l2_gw_con['l2_gateway_connection']['l2_gateway_id'])
self.assertEqual('',
self.assertEqual(
'',
l2_gw_con['l2_gateway_connection']['segmentation_id'])
def test_create_midonet_l2gateway_vlan_connection_with_l2gw_seg_id(self):
@ -419,11 +439,14 @@ class MidonetL2GatewayTestCase(test_gw.GatewayDeviceTestCaseMixin,
l2_gateway_id=l2_gw['l2_gateway']['id'],
network_id=self._network_id,
segmentation_id='') as l2_gw_con:
self.assertEqual(self._network_id,
self.assertEqual(
self._network_id,
l2_gw_con['l2_gateway_connection']['network_id'])
self.assertEqual(l2_gw['l2_gateway']['id'],
self.assertEqual(
l2_gw['l2_gateway']['id'],
l2_gw_con['l2_gateway_connection']['l2_gateway_id'])
self.assertEqual('',
self.assertEqual(
'',
l2_gw_con['l2_gateway_connection']['segmentation_id'])
def test_create_midonet_l2gateway_conn_error_delete_neutron_resouce(self):

View File

@ -67,9 +67,8 @@ class LoggingResourceTestCase(test_l3.L3NatTestCaseMixin,
'fwaas_plugin_name': 'midonet_firewall'}
log_res_mgr = LoggingResourceTestExtensionManager()
super(LoggingResourceTestCase,
self).setUp(service_plugins=service_plugins,
ext_mgr=log_res_mgr)
super(LoggingResourceTestCase, self).setUp(
service_plugins=service_plugins, ext_mgr=log_res_mgr)
self.ext_api = test_ex.setup_extensions_middleware(log_res_mgr)
router1 = self._make_router(self.fmt, uuidutils.generate_uuid(),
@ -125,7 +124,7 @@ class LoggingResourceTestCase(test_l3.L3NatTestCaseMixin,
'description': desc,
'enabled': enabled}}
log_res_req = self.new_create_request('logging/logging_resources',
data, self.fmt)
data, self.fmt)
return log_res_req.get_response(self.ext_api)
@contextlib.contextmanager
@ -287,20 +286,20 @@ class LoggingResourceTestCase(test_l3.L3NatTestCaseMixin,
def test_create_firewall_log_diff_log_res_diff_tenant_same_firewall(self):
with self.logging_resource() as log_res, \
self.logging_resource(
tenant_id=self._tenant_id2) as log_res2, \
tenant_id=self._tenant_id2) as log_res2, \
self.firewall_log(log_res['logging_resource']['id'],
firewall_id=self._fw_id1):
res = self._create_firewall_log(
log_res2['logging_resource']['id'],
firewall_id=self._fw_id1,
tenant_id=self._tenant_id2)
log_res2['logging_resource']['id'],
firewall_id=self._fw_id1,
tenant_id=self._tenant_id2)
self.assertEqual(webob.exc.HTTPCreated.code, res.status_int)
def test_create_firewall_log_with_not_found_firewall(self):
with self.logging_resource() as log_res:
res = self._create_firewall_log(
log_res['logging_resource']['id'],
firewall_id=NOT_FOUND_FW_UUID)
log_res['logging_resource']['id'],
firewall_id=NOT_FOUND_FW_UUID)
self.assertEqual(webob.exc.HTTPNotFound.code, res.status_int)
def test_create_firewall_log_in_same_log_res_with_same_firewall(self):
@ -308,8 +307,8 @@ class LoggingResourceTestCase(test_l3.L3NatTestCaseMixin,
self.firewall_log(log_res['logging_resource']['id'],
firewall_id=self._fw_id1):
res = self._create_firewall_log(
log_res['logging_resource']['id'],
firewall_id=self._fw_id1)
log_res['logging_resource']['id'],
firewall_id=self._fw_id1)
self.assertEqual(webob.exc.HTTPCreated.code, res.status_int)
def test_create_firewall_log_in_diff_log_res_with_same_firewall(self):
@ -318,8 +317,8 @@ class LoggingResourceTestCase(test_l3.L3NatTestCaseMixin,
self.firewall_log(log_res['logging_resource']['id'],
firewall_id=self._fw_id1):
res = self._create_firewall_log(
log_res2['logging_resource']['id'],
firewall_id=self._fw_id1)
log_res2['logging_resource']['id'],
firewall_id=self._fw_id1)
self.assertEqual(webob.exc.HTTPCreated.code, res.status_int)
def test_create_firewall_log_error_delete_neutron_resource(self):
@ -411,7 +410,7 @@ class LoggingResourceTestCase(test_l3.L3NatTestCaseMixin,
+ log_res['logging_resource']['id']
+ '/firewall_logs')
res = self.deserialize(
self.fmt, req.get_response(self.ext_api))
self.fmt, req.get_response(self.ext_api))
self.assertEqual(2, len(res['firewall_logs']))
def test_delete_firewall_log(self):
@ -442,7 +441,8 @@ class LoggingResourceTestCase(test_l3.L3NatTestCaseMixin,
req = self.new_list_request('logging/logging_resources')
res = self.deserialize(self.fmt,
req.get_response(self.ext_api))
self.assertEqual([],
self.assertEqual(
[],
res['logging_resources'][0]['firewall_logs'])
def test_delete_firewall_with_firewall_log(self):
@ -464,9 +464,10 @@ class LoggingResourceTestCase(test_l3.L3NatTestCaseMixin,
def test_delete_firewall_with_multiple_firewall_logs(self):
with self.logging_resource() as log_res1, \
self.logging_resource(
tenant_id=self._tenant_id2) as log_res2, \
tenant_id=self._tenant_id2) as log_res2, \
self.firewall(self._tenant_id) as fw, \
self.firewall_log(log_res1['logging_resource']['id'],
self.firewall_log(
log_res1['logging_resource']['id'],
firewall_id=fw['firewall']['id']) as f_log1, \
self.firewall_log(log_res2['logging_resource']['id'],
firewall_id=fw['firewall']['id'],

View File

@ -86,9 +86,13 @@ class TestMidonetTaasCase(test_mn.MidonetPluginV2TestCase):
def _create_tap_flow(self, tap_service_id, source_port, direction,
name=None, tenant_id=None):
t_f = {'tap_flow': {'tap_service_id': tap_service_id,
'source_port': source_port,
'direction': direction}}
t_f = {
'tap_flow': {
'tap_service_id': tap_service_id,
'source_port': source_port,
'direction': direction
}
}
if name:
t_f['tap_flow']['name'] = name
if tenant_id:
@ -135,7 +139,7 @@ class TestMidonetTaasCase(test_mn.MidonetPluginV2TestCase):
def test_create_tap_service_error_delete_neutron_resource(self):
self.client_mock.create_tap_service.side_effect = (
Exception("Fake Error"))
Exception("Fake Error"))
with self.port(tenant_id=TENANT1) as port:
dist_port = port['port']
res = self._create_tap_service(port_id=dist_port['id'],
@ -160,7 +164,7 @@ class TestMidonetTaasCase(test_mn.MidonetPluginV2TestCase):
def test_delete_tap_service_error_delete_neutron_resource(self):
self.client_mock.delete_tap_service.side_effect = (
Exception("Fake Error"))
Exception("Fake Error"))
with self.port(tenant_id=TENANT1) as port:
dist_port = port['port']
with self.tap_service(port_id=dist_port['id']) as t_s:
@ -177,7 +181,7 @@ class TestMidonetTaasCase(test_mn.MidonetPluginV2TestCase):
@contextlib.contextmanager
def create_tap_service_and_tap_flow(self):
with self.port(tenant_id=TENANT1) as port1, \
self.port(tenant_id=TENANT1) as port2:
self.port(tenant_id=TENANT1) as port2:
dist_port = port1['port']
source_port = port2['port']
with self.tap_service(port_id=dist_port['id']) as t_s:
@ -195,7 +199,7 @@ class TestMidonetTaasCase(test_mn.MidonetPluginV2TestCase):
def test_create_tap_flow_error_delete_neutron_resource(self):
self.client_mock.create_tap_flow.side_effect = (
Exception("Fake Error"))
Exception("Fake Error"))
with self.port(tenant_id=TENANT1) as port1, \
self.port(tenant_id=TENANT1) as port2:
dist_port = port1['port']
@ -219,7 +223,7 @@ class TestMidonetTaasCase(test_mn.MidonetPluginV2TestCase):
def test_delete_tap_flow_error_delete_neutron_resource(self):
self.client_mock.delete_tap_flow.side_effect = (
Exception("Fake Error"))
Exception("Fake Error"))
with self.create_tap_service_and_tap_flow() as tf:
req = self.new_delete_request('tap_flows', tf['id'])
res = req.get_response(self.ext_api)

View File

@ -67,14 +67,14 @@ class VPNTestCase(test_vpn_db.VPNTestMixin,
def test_create_vpn_service(self):
with self.vpnservice() as vpnservice:
req = self.new_show_request('vpnservices',
vpnservice['vpnservice']['id'])
req = self.new_show_request(
'vpnservices', vpnservice['vpnservice']['id'])
res = self.deserialize(self.fmt, req.get_response(self.ext_api))
self.assertEqual(constants.ACTIVE, res['vpnservice']['status'])
def test_create_vpn_service_error_delete_neutron_resource(self):
self.client_mock.create_vpn_service.side_effect = Exception(
"Fake Error")
"Fake Error")
with self.subnet(cidr='10.2.0.0/24') as subnet, \
self.router() as router:
try:
@ -101,7 +101,7 @@ class VPNTestCase(test_vpn_db.VPNTestMixin,
def test_update_vpn_service_error_change_neutron_resource_status(self):
self.client_mock.update_vpn_service.side_effect = Exception(
"Fake Error")
"Fake Error")
with self.vpnservice() as vpnservice:
data = {'vpnservice': {'name': 'vpnservice2'}}
vpnservice_id = vpnservice['vpnservice']['id']
@ -124,7 +124,7 @@ class VPNTestCase(test_vpn_db.VPNTestMixin,
def test_delete_vpn_service_error_delete_neutron_resouce(self):
self.client_mock.delete_vpn_service_side_effect = Exception(
"Fake Error")
"Fake Error")
self.test_delete_vpnservice()
# check the resouce deleted in Neutron DB
req = self.new_list_request('vpnservices')
@ -133,10 +133,12 @@ class VPNTestCase(test_vpn_db.VPNTestMixin,
def test_create_ipsec_site_connection(self):
with self.ipsec_site_connection() as ipsec_site_connection:
req = self.new_show_request('ipsec-site-connections',
req = self.new_show_request(
'ipsec-site-connections',
ipsec_site_connection['ipsec_site_connection']['id'])
res = self.deserialize(self.fmt, req.get_response(self.ext_api))
self.assertEqual(constants.ACTIVE,
self.assertEqual(
constants.ACTIVE,
res['ipsec_site_connection']['status'])
def test_create_two_ipsec_site_connections_one_vpnservice(self):
@ -156,7 +158,7 @@ class VPNTestCase(test_vpn_db.VPNTestMixin,
for ipsec_site_connection in res['ipsec_site_connections']:
# Check that the associated vpnservice is the correct one
req = self.new_show_request(
'vpnservices', ipsec_site_connection['vpnservice_id'])
'vpnservices', ipsec_site_connection['vpnservice_id'])
res = self.deserialize(self.fmt,
req.get_response(self.ext_api))
self.assertEqual(vpnservice['vpnservice']['id'],
@ -167,16 +169,17 @@ class VPNTestCase(test_vpn_db.VPNTestMixin,
def test_create_ipsec_site_connection_error_delete_neutron_resouce(self):
self.client_mock.create_ipsec_site_conn.side_effect = Exception(
"Fake Error")
"Fake Error")
with self.vpnservice() as vpnservice, \
self.ikepolicy() as ikepolicy, \
self.ipsecpolicy() as ipsecpolicy:
self._create_ipsec_site_connection(self.fmt, 'site_conn2',
peer_cidrs='192.168.101.0/24',
vpnservice_id=vpnservice['vpnservice']['id'],
ikepolicy_id=ikepolicy['ikepolicy']['id'],
ipsecpolicy_id=ipsecpolicy['ipsecpolicy']['id'],
expected_res_status=500)
self._create_ipsec_site_connection(
self.fmt, 'site_conn2',
peer_cidrs='192.168.101.0/24',
vpnservice_id=vpnservice['vpnservice']['id'],
ikepolicy_id=ikepolicy['ikepolicy']['id'],
ipsecpolicy_id=ipsecpolicy['ipsecpolicy']['id'],
expected_res_status=500)
req = self.new_list_request('ipsec-site-connections')
res = self.deserialize(self.fmt, req.get_response(self.ext_api))
self.assertFalse(res['ipsec_site_connections'])
@ -185,9 +188,9 @@ class VPNTestCase(test_vpn_db.VPNTestMixin,
with self.ipsec_site_connection() as ipsec_site_connection:
data = {'ipsec_site_connection': {'mtu': '1300'}}
ipsec_site_conn_id = (
ipsec_site_connection['ipsec_site_connection']['id'])
req = self.new_update_request('ipsec-site-connections', data,
ipsec_site_conn_id)
ipsec_site_connection['ipsec_site_connection']['id'])
req = self.new_update_request(
'ipsec-site-connections', data, ipsec_site_conn_id)
res = self.deserialize(self.fmt, req.get_response(self.ext_api))
self.assertEqual(1300, res['ipsec_site_connection']['mtu'])
self.assertEqual(
@ -196,35 +199,37 @@ class VPNTestCase(test_vpn_db.VPNTestMixin,
def test_update_ipsec_site_connection_error(self):
self.client_mock.update_ipsec_site_conn.side_effect = Exception(
"Fake Error")
"Fake Error")
with self.ipsec_site_connection() as ipsec_site_connection:
data = {'ipsec_site_connection': {'mtu': '1300'}}
ipsec_site_conn_id = (
ipsec_site_connection['ipsec_site_connection']['id'])
ipsec_site_connection['ipsec_site_connection']['id'])
req = self.new_update_request('ipsec-site-connections', data,
ipsec_site_conn_id)
res = req.get_response(self.ext_api)
self.assertEqual(500, res.status_int)
req = self.new_show_request('ipsec-site-connections',
ipsec_site_conn_id)
req = self.new_show_request(
'ipsec-site-connections',
ipsec_site_conn_id)
res = self.deserialize(self.fmt, req.get_response(self.ext_api))
self.assertEqual(constants.ERROR,
res['ipsec_site_connection']['status'])
self.assertEqual(
constants.ERROR,
res['ipsec_site_connection']['status'])
def test_delete_ipsec_site_connection(self):
with self.ipsec_site_connection(name="site_conn2",
do_delete=False) as ipsec_site_connection:
with self.ipsec_site_connection(
name="site_conn2", do_delete=False) as ipsec_site_connection:
ipsec_site_conn_id = \
ipsec_site_connection['ipsec_site_connection']['id']
req = self.new_delete_request('ipsec-site-connections',
ipsec_site_conn_id)
ipsec_site_connection['ipsec_site_connection']['id']
req = self.new_delete_request(
'ipsec-site-connections', ipsec_site_conn_id)
res = req.get_response(self.ext_api)
self.assertEqual(204, res.status_int)
def test_delete_ipsec_site_connection_error(self):
self.client_mock.delete_ipsec_site_conn.side_effect = Exception(
"Fake Error")
"Fake Error")
self.test_delete_ipsec_site_connection()
req = self.new_list_request('ipsec-site-connections')
res = self.deserialize(self.fmt, req.get_response(self.ext_api))

View File

@ -292,7 +292,7 @@ class TestMidonetL3NatExtraRoute(test_ext_route.ExtraRouteDBIntTestCase,
'add_router_interface_postcommit',
auto_spec=True,
side_effect=_MyException), \
testtools.ExpectedException(_MyException):
testtools.ExpectedException(_MyException):
l3_plugin.add_router_interface(ctx, router_id, interface_info)
port2 = plugin.get_port(ctx, port_id)
self.assertEqual(port_id, port2['id'])
@ -301,8 +301,11 @@ class TestMidonetL3NatExtraRoute(test_ext_route.ExtraRouteDBIntTestCase,
self.client_mock.update_floatingip_postcommit.side_effect = (
Exception("Fake Error"))
with self.port() as p:
private_sub = {'subnet': {'id':
p['port']['fixed_ips'][0]['subnet_id']}}
private_sub = {
'subnet': {
'id': p['port']['fixed_ips'][0]['subnet_id']
}
}
with self.floatingip_no_assoc(private_sub) as fip:
data = {'floatingip': {'port_id': p['port']['id']}}
req = self.new_update_request('floatingips',
@ -312,11 +315,12 @@ class TestMidonetL3NatExtraRoute(test_ext_route.ExtraRouteDBIntTestCase,
self.assertEqual(exc.HTTPInternalServerError.code,
res.status_int)
req = self.new_show_request(
'floatingips', fip['floatingip']['id'])
'floatingips', fip['floatingip']['id'])
res = self.deserialize(self.fmt,
req.get_response(self.ext_api))
self.assertEqual(n_const.FLOATINGIP_STATUS_ERROR,
res['floatingip']['status'])
self.assertEqual(
n_const.FLOATINGIP_STATUS_ERROR,
res['floatingip']['status'])
def test_update_router_error_change_resource_status_to_error(self):
self.client_mock.update_router_postcommit.side_effect = (
@ -334,7 +338,7 @@ class TestMidonetL3NatExtraRoute(test_ext_route.ExtraRouteDBIntTestCase,
self.assertEqual(exc.HTTPInternalServerError.code,
res.status_int)
req = self.new_show_request(
'routers', r['router']['id'])
'routers', r['router']['id'])
res = self.deserialize(self.fmt,
req.get_response(self.ext_api))
self.assertEqual('ERROR', res['router']['status'])
@ -371,7 +375,7 @@ class TestMidonetProviderNet(MidonetPluginML2TestCase):
def test_create_provider_net_with_bogus_type(self):
# Create with a bogus network type
with testtools.ExpectedException(exc.HTTPClientError), \
self.provider_net(net_type="random"):
self.provider_net(net_type="random"):
pass
def test_create_provider_net_with_local(self):
@ -381,27 +385,27 @@ class TestMidonetProviderNet(MidonetPluginML2TestCase):
def test_create_provider_net_with_flat(self):
with testtools.ExpectedException(exc.HTTPClientError), \
self.provider_net(net_type=n_const.TYPE_FLAT):
self.provider_net(net_type=n_const.TYPE_FLAT):
pass
def test_create_provider_net_with_gre(self):
with testtools.ExpectedException(exc.HTTPClientError), \
self.provider_net(net_type=n_const.TYPE_GRE):
self.provider_net(net_type=n_const.TYPE_GRE):
pass
def test_create_provider_net_with_vlan(self):
with testtools.ExpectedException(exc.HTTPClientError), \
self.provider_net(net_type=n_const.TYPE_VLAN):
self.provider_net(net_type=n_const.TYPE_VLAN):
pass
def test_create_provider_net_with_vxlan(self):
with testtools.ExpectedException(exc.HTTPClientError), \
self.provider_net(net_type=n_const.TYPE_VXLAN):
self.provider_net(net_type=n_const.TYPE_VXLAN):
pass
def test_create_provider_net_with_geneve(self):
with testtools.ExpectedException(exc.HTTPClientError), \
self.provider_net(net_type=n_const.TYPE_GENEVE):
self.provider_net(net_type=n_const.TYPE_GENEVE):
pass
def test_create_provider_net_with_midonet(self):

View File

@ -136,43 +136,39 @@ class TestMidonetPortsV2(MidonetPluginV2TestCase,
[{'ip_address': FAKE_IP,
'subnet_id': sub['subnet']['id']}]}}
req = self.new_update_request(
'ports', data, port['port']['id'])
'ports', data, port['port']['id'])
res = req.get_response(self.api)
self.assertEqual(exc.HTTPInternalServerError.code,
res.status_int)
self.assertEqual(
exc.HTTPInternalServerError.code, res.status_int)
req = self.new_show_request('ports', port['port']['id'])
res = self.deserialize(self.fmt,
req.get_response(self.api))
self.assertEqual(n_const.PORT_STATUS_ERROR,
res['port']['status'])
res = self.deserialize(self.fmt, req.get_response(self.api))
self.assertEqual(
n_const.PORT_STATUS_ERROR,
res['port']['status'])
def test_create_port_with_admin_state_up_false(self):
with self.subnet(cidr=FAKE_CIDR) as sub:
with self.port(subnet=sub,
admin_state_up=False) as port:
with self.port(subnet=sub, admin_state_up=False) as port:
req = self.new_show_request('ports', port['port']['id'])
res = self.deserialize(self.fmt,
req.get_response(self.api))
self.assertEqual(n_const.PORT_STATUS_DOWN,
res['port']['status'])
res = self.deserialize(self.fmt, req.get_response(self.api))
self.assertEqual(
n_const.PORT_STATUS_DOWN, res['port']['status'])
def test_update_port_admin_state_up_to_false_and_true(self):
with self.subnet(cidr=FAKE_CIDR) as sub:
with self.port(subnet=sub) as port:
data = {'port': {'admin_state_up': False}}
req = self.new_update_request(
'ports', data, port['port']['id'])
'ports', data, port['port']['id'])
res = req.get_response(self.api)
res = self.deserialize(self.fmt,
req.get_response(self.api))
res = self.deserialize(self.fmt, req.get_response(self.api))
self.assertEqual(n_const.PORT_STATUS_DOWN,
res['port']['status'])
data = {'port': {'admin_state_up': True}}
req = self.new_update_request(
'ports', data, port['port']['id'])
'ports', data, port['port']['id'])
res = req.get_response(self.api)
res = self.deserialize(self.fmt,
req.get_response(self.api))
res = self.deserialize(self.fmt, req.get_response(self.api))
self.assertEqual(n_const.PORT_STATUS_ACTIVE,
res['port']['status'])
@ -183,20 +179,27 @@ class TestMidonetPortsV2(MidonetPluginV2TestCase,
subnet=sub,
device_owner=n_const.DEVICE_OWNER_ROUTER_INTF
) as port:
data = {'port': {'fixed_ips': [
{'subnet_id': sub['subnet']['id'],
'ip_address': updated_ip_address}
]}}
data = {
'port': {
'fixed_ips': [
{
'subnet_id': sub['subnet']['id'],
'ip_address': updated_ip_address
}
]
}
}
req = self.new_update_request(
'ports', data, port['port']['id'])
'ports', data, port['port']['id'])
res = req.get_response(self.api)
self.assertEqual(200, res.status_int)
req = self.new_show_request('ports', port['port']['id'])
res = self.deserialize(self.fmt,
req.get_response(self.api))
self.assertEqual(updated_ip_address,
res['port']['fixed_ips'][0]['ip_address'])
res = self.deserialize(
self.fmt, req.get_response(self.api))
self.assertEqual(
updated_ip_address,
res['port']['fixed_ips'][0]['ip_address'])
class TestMidonetPortBinding(MidonetPluginV2TestCase,
@ -437,7 +440,7 @@ class TestMidonetL3NatExtraRoute(test_ext_route.ExtraRouteDBIntTestCase,
'add_router_interface_postcommit',
auto_spec=True,
side_effect=_MyException), \
testtools.ExpectedException(_MyException):
testtools.ExpectedException(_MyException):
l3_plugin.add_router_interface(ctx, router_id, interface_info)
port2 = plugin.get_port(ctx, port_id)
self.assertEqual(port_id, port2['id'])
@ -446,8 +449,11 @@ class TestMidonetL3NatExtraRoute(test_ext_route.ExtraRouteDBIntTestCase,
self.client_mock.update_floatingip_postcommit.side_effect = (
Exception("Fake Error"))
with self.port() as p:
private_sub = {'subnet': {'id':
p['port']['fixed_ips'][0]['subnet_id']}}
private_sub = {
'subnet': {
'id': p['port']['fixed_ips'][0]['subnet_id']
}
}
with self.floatingip_no_assoc(private_sub) as fip:
data = {'floatingip': {'port_id': p['port']['id']}}
req = self.new_update_request('floatingips',
@ -457,11 +463,12 @@ class TestMidonetL3NatExtraRoute(test_ext_route.ExtraRouteDBIntTestCase,
self.assertEqual(exc.HTTPInternalServerError.code,
res.status_int)
req = self.new_show_request(
'floatingips', fip['floatingip']['id'])
'floatingips', fip['floatingip']['id'])
res = self.deserialize(self.fmt,
req.get_response(self.ext_api))
self.assertEqual(n_const.FLOATINGIP_STATUS_ERROR,
res['floatingip']['status'])
self.assertEqual(
n_const.FLOATINGIP_STATUS_ERROR,
res['floatingip']['status'])
def test_update_router_error_change_resource_status_to_error(self):
self.client_mock.update_router_postcommit.side_effect = (
@ -479,7 +486,7 @@ class TestMidonetL3NatExtraRoute(test_ext_route.ExtraRouteDBIntTestCase,
self.assertEqual(exc.HTTPInternalServerError.code,
res.status_int)
req = self.new_show_request(
'routers', r['router']['id'])
'routers', r['router']['id'])
res = self.deserialize(self.fmt,
req.get_response(self.ext_api))
self.assertEqual('ERROR', res['router']['status'])
@ -515,37 +522,37 @@ class TestMidonetProviderNet(MidonetPluginV2TestCase):
def test_create_provider_net_with_bogus_type(self):
# Create with a bogus network type
with testtools.ExpectedException(exc.HTTPClientError), \
self.provider_net(net_type="random"):
self.provider_net(net_type="random"):
pass
def test_create_provider_net_with_local(self):
with testtools.ExpectedException(exc.HTTPClientError), \
self.provider_net(net_type=n_const.TYPE_LOCAL):
self.provider_net(net_type=n_const.TYPE_LOCAL):
pass
def test_create_provider_net_with_flat(self):
with testtools.ExpectedException(exc.HTTPClientError), \
self.provider_net(net_type=n_const.TYPE_FLAT):
self.provider_net(net_type=n_const.TYPE_FLAT):
pass
def test_create_provider_net_with_gre(self):
with testtools.ExpectedException(exc.HTTPClientError), \
self.provider_net(net_type=n_const.TYPE_GRE):
self.provider_net(net_type=n_const.TYPE_GRE):
pass
def test_create_provider_net_with_vlan(self):
with testtools.ExpectedException(exc.HTTPClientError), \
self.provider_net(net_type=n_const.TYPE_VLAN):
self.provider_net(net_type=n_const.TYPE_VLAN):
pass
def test_create_provider_net_with_vxlan(self):
with testtools.ExpectedException(exc.HTTPClientError), \
self.provider_net(net_type=n_const.TYPE_VXLAN):
self.provider_net(net_type=n_const.TYPE_VXLAN):
pass
def test_create_provider_net_with_geneve(self):
with testtools.ExpectedException(exc.HTTPClientError), \
self.provider_net(net_type=n_const.TYPE_GENEVE):
self.provider_net(net_type=n_const.TYPE_GENEVE):
pass
def test_create_provider_net_with_midonet(self):
@ -639,11 +646,13 @@ class TestMidonetPortSecurityKludge(MidonetPluginV2TestCase):
@contextlib.contextmanager
def _do_mock(self, plugin):
port_mock = mock.patch.object(plugin,
port_mock = mock.patch.object(
plugin,
'_process_port_port_security_create',
auto_spec=True,
return_value={})
network_mock = mock.patch.object(plugin,
network_mock = mock.patch.object(
plugin,
'_process_network_port_security_create',
auto_spec=True,
return_value={})

View File

@ -32,8 +32,8 @@ def add_common_paramaters_to_arguments(parser):
def _get_logging_resource_id(client, logging_resource_id_or_name):
return loggingV20.find_resourceid_by_name_or_id(
client, 'logging_resource',
logging_resource_id_or_name)
client, 'logging_resource',
logging_resource_id_or_name)
class FirewallLog(extension.NeutronClientExtension):

View File

@ -70,9 +70,6 @@ whitelist_externals = mkdir
commands = sphinx-build -a -E -W -d releasenotes/build/doctrees -b html releasenotes/source releasenotes/build/html
[flake8]
# E125 continuation line does not distinguish itself from next logical line
# E126 continuation line over-indented for hanging indent
# E128 continuation line under-indented for visual indent
# H404 multi line docstring should start with a summary
# H405 multi line docstring summary not separated with an empty line
# N341 _ from python builtins module is used. Use _ from midonet._i18n instead.
@ -80,7 +77,7 @@ commands = sphinx-build -a -E -W -d releasenotes/build/doctrees -b html releasen
# N530 direct neutron imports not allowed
# TODO(ihrachys) -- reenable N537 when new neutron-lib release is available
# N537 Log messages should not be translated
ignore = E125,E126,E128,H404,H405,N530,N537
ignore = H404,H405,N530,N537
show-source = true
exclude = ./.*,build,dist,rally-jobs/plugins
import-order-style = pep8