Merge "Enable automatic validation of many HACKING rules."

This commit is contained in:
Jenkins 2013-04-12 15:10:32 +00:00 committed by Gerrit Code Review
commit 2aeac19abd
150 changed files with 733 additions and 687 deletions

View File

@ -36,8 +36,8 @@ from quantum import context
from quantum import manager
from quantum.openstack.common import importutils
from quantum.openstack.common import jsonutils
from quantum.openstack.common import log as logging
from quantum.openstack.common import lockutils
from quantum.openstack.common import log as logging
from quantum.openstack.common import loopingcall
from quantum.openstack.common.rpc import proxy
from quantum.openstack.common import service
@ -83,7 +83,7 @@ class DhcpAgent(manager.Manager):
self._populate_networks_cache()
def _populate_networks_cache(self):
"""Populate the networks cache when the DHCP-agent starts"""
"""Populate the networks cache when the DHCP-agent starts."""
try:
existing_networks = self.dhcp_driver_cls.existing_dhcp_networks(
@ -137,7 +137,7 @@ class DhcpAgent(manager.Manager):
try:
self.plugin_rpc.update_lease_expiration(network_id, ip_address,
time_remaining)
except:
except Exception:
self.needs_resync = True
LOG.exception(_('Unable to update lease'))
@ -153,7 +153,7 @@ class DhcpAgent(manager.Manager):
for network_id in active_networks:
self.refresh_dhcp_helper(network_id)
except:
except Exception:
self.needs_resync = True
LOG.exception(_('Unable to sync network state.'))
@ -173,7 +173,7 @@ class DhcpAgent(manager.Manager):
"""Enable DHCP for a network that meets enabling criteria."""
try:
network = self.plugin_rpc.get_network_info(network_id)
except:
except Exception:
self.needs_resync = True
LOG.exception(_('Network %s RPC info call failed.'), network_id)
return
@ -210,7 +210,7 @@ class DhcpAgent(manager.Manager):
try:
network = self.plugin_rpc.get_network_info(network_id)
except:
except Exception:
self.needs_resync = True
LOG.exception(_('Network %s RPC info call failed.'), network_id)
return
@ -502,7 +502,7 @@ class DeviceManager(object):
try:
self.driver = importutils.import_object(conf.interface_driver,
conf)
except:
except Exception:
msg = _("Error importing interface driver "
"'%s'") % conf.interface_driver
raise SystemExit(msg)

View File

@ -20,7 +20,7 @@ import contextlib
class FirewallDriver(object):
""" Firewall Driver base class.
"""Firewall Driver base class.
Defines methods that any driver providing security groups
and provider firewall functionality should implement.
@ -81,25 +81,25 @@ class FirewallDriver(object):
raise NotImplementedError()
def remove_port_filter(self, port):
"""Stop filtering port"""
"""Stop filtering port."""
raise NotImplementedError()
def filter_defer_apply_on(self):
"""Defer application of filtering rule"""
"""Defer application of filtering rule."""
pass
def filter_defer_apply_off(self):
"""Turn off deferral of rules and apply the rules now"""
"""Turn off deferral of rules and apply the rules now."""
pass
@property
def ports(self):
""" returns filterd ports"""
"""Returns filtered ports."""
pass
@contextlib.contextmanager
def defer_apply(self):
"""defer apply context"""
"""Defer apply context."""
self.filter_defer_apply_on()
try:
yield
@ -108,7 +108,7 @@ class FirewallDriver(object):
class NoopFirewallDriver(FirewallDriver):
""" Noop Firewall Driver.
"""Noop Firewall Driver.
Firewall driver which does nothing.
This driver is for disabling the firewall functionality.

View File

@ -156,7 +156,7 @@ class L3NATAgent(manager.Manager):
try:
self.driver = importutils.import_object(self.conf.interface_driver,
self.conf)
except:
except Exception:
msg = _("Error importing interface driver "
"'%s'") % self.conf.interface_driver
raise SystemExit(msg)
@ -185,7 +185,7 @@ class L3NATAgent(manager.Manager):
try:
self._destroy_router_namespace(ns)
except:
except Exception:
LOG.exception(_("Failed deleting namespace '%s'"), ns)
def _destroy_router_namespace(self, namespace):
@ -200,7 +200,7 @@ class L3NATAgent(manager.Manager):
bridge=self.conf.external_network_bridge,
namespace=namespace,
prefix=EXTERNAL_DEV_PREFIX)
#(TODO) Address the failure for the deletion of the namespace
#TODO(garyk) Address the failure for the deletion of the namespace
def _create_router_namespace(self, ri):
ip_wrapper_root = ip_lib.IPWrapper(self.root_helper)
@ -208,7 +208,7 @@ class L3NATAgent(manager.Manager):
ip_wrapper.netns.execute(['sysctl', '-w', 'net.ipv4.ip_forward=1'])
def _fetch_external_net_id(self):
"""Find UUID of single external network for this agent"""
"""Find UUID of single external network for this agent."""
if self.conf.gateway_external_network_id:
return self.conf.gateway_external_network_id
try:

View File

@ -126,7 +126,7 @@ class Daemon(object):
os.remove(str(self.pidfile))
def start(self):
""" Start the daemon """
"""Start the daemon."""
if self.pidfile.is_running():
self.pidfile.unlock()

View File

@ -96,7 +96,7 @@ class DhcpBase(object):
@classmethod
def existing_dhcp_networks(cls, conf, root_helper):
"""Return a list of existing networks ids (ones we have configs for)"""
"""Return a list of existing networks ids that we have configs for."""
raise NotImplementedError
@ -218,7 +218,7 @@ class Dnsmasq(DhcpLocalProcess):
@classmethod
def existing_dhcp_networks(cls, conf, root_helper):
"""Return a list of existing networks ids (ones we have configs for)"""
"""Return a list of existing networks ids that we have configs for."""
confs_dir = os.path.abspath(os.path.normpath(conf.dhcp_confs))
@ -265,7 +265,7 @@ class Dnsmasq(DhcpLocalProcess):
if subnet.ip_version == 4:
mode = 'static'
else:
# TODO (mark): how do we indicate other options
# TODO(mark): how do we indicate other options
# ra-only, slaac, ra-nameservers, and ra-stateless.
mode = 'static'
cmd.append('--dhcp-range=set:%s,%s,%s,%ss' %

View File

@ -354,7 +354,7 @@ class IpRouteCommand(IpDeviceCommandBase):
for device_route_line in device_route_list_lines:
try:
subnet = device_route_line.split()[0]
except:
except Exception:
continue
subnet_route_list_lines = self._run('list', 'proto', 'kernel',
'match', subnet).split('\n')
@ -367,7 +367,7 @@ class IpRouteCommand(IpDeviceCommandBase):
while(i.next() != 'src'):
pass
src = i.next()
except:
except Exception:
src = ''
if device != interface_name:
device_list.append((device, src))

View File

@ -81,7 +81,7 @@ class IptablesFirewallDriver(firewall.FirewallDriver):
self.iptables.apply()
def _setup_chains(self):
"""Setup ingress and egress chain for a port. """
"""Setup ingress and egress chain for a port."""
self._add_chain_by_name_v4v6(SG_CHAIN)
for port in self.filtered_ports.values():
self._setup_chain(port, INGRESS_DIRECTION)
@ -90,7 +90,7 @@ class IptablesFirewallDriver(firewall.FirewallDriver):
self.iptables.ipv6['filter'].add_rule(SG_CHAIN, '-j ACCEPT')
def _remove_chains(self):
"""Remove ingress and egress chain for a port"""
"""Remove ingress and egress chain for a port."""
for port in self.filtered_ports.values():
self._remove_chain(port, INGRESS_DIRECTION)
self._remove_chain(port, EGRESS_DIRECTION)

View File

@ -53,7 +53,7 @@ def setup_conf():
def collect_quantum_ports(bridges, root_helper):
"""Collect ports created by Quantum from OVS"""
"""Collect ports created by Quantum from OVS."""
ports = []
for bridge in bridges:
ovs = ovs_lib.OVSBridge(bridge, root_helper)

View File

@ -66,7 +66,7 @@ class SecurityGroupAgentRpcCallbackMixin(object):
sg_agent = None
def security_groups_rule_updated(self, context, **kwargs):
""" callback for security group rule update
"""Callback for security group rule update.
:param security_groups: list of updated security_groups
"""
@ -76,7 +76,7 @@ class SecurityGroupAgentRpcCallbackMixin(object):
self.sg_agent.security_groups_rule_updated(security_groups)
def security_groups_member_updated(self, context, **kwargs):
""" callback for security group member update
"""Callback for security group member update.
:param security_groups: list of updated security_groups
"""
@ -86,9 +86,7 @@ class SecurityGroupAgentRpcCallbackMixin(object):
self.sg_agent.security_groups_member_updated(security_groups)
def security_groups_provider_updated(self, context, **kwargs):
""" callback for security group provider update
"""
"""Callback for security group provider update."""
LOG.debug(_("Provider rule updated"))
self.sg_agent.security_groups_provider_updated()
@ -172,7 +170,7 @@ class SecurityGroupAgentRpcApiMixin(object):
topics.UPDATE)
def security_groups_rule_updated(self, context, security_groups):
""" notify rule updated security groups """
"""Notify rule updated security groups."""
if not security_groups:
return
self.fanout_cast(context,
@ -182,7 +180,7 @@ class SecurityGroupAgentRpcApiMixin(object):
topic=self._get_security_group_topic())
def security_groups_member_updated(self, context, security_groups):
""" notify member updated security groups """
"""Notify member updated security groups."""
if not security_groups:
return
self.fanout_cast(context,
@ -192,7 +190,7 @@ class SecurityGroupAgentRpcApiMixin(object):
topic=self._get_security_group_topic())
def security_groups_provider_updated(self, context):
""" notify provider updated security groups """
"""Notify provider updated security groups."""
self.fanout_cast(context,
self.make_msg('security_groups_provider_updated'),
version=SG_RPC_VERSION,

View File

@ -119,7 +119,7 @@ def _get_limit_param(request, max_limit):
def list_args(request, arg):
"""Extracts the list of arg from request"""
"""Extracts the list of arg from request."""
return [v for v in request.GET.getall(arg) if v]
@ -292,7 +292,7 @@ class NoSortingHelper(SortingHelper):
class QuantumController(object):
""" Base controller class for Quantum API """
"""Base controller class for Quantum API."""
# _resource_name will be redefined in sub concrete controller
_resource_name = None
@ -301,7 +301,7 @@ class QuantumController(object):
super(QuantumController, self).__init__()
def _prepare_request_body(self, body, params):
""" verifies required parameters are in request body.
"""Verifies required parameters are in request body.
sets default value for missing optional parameters.
body argument must be the deserialized body

View File

@ -552,7 +552,8 @@ class PluginAwareExtensionManager(ExtensionManager):
def _check_extension(self, extension):
"""Checks if any of plugins supports extension and implements the
extension contract."""
extension contract.
"""
extension_is_valid = super(PluginAwareExtensionManager,
self)._check_extension(extension)
return (extension_is_valid and

View File

@ -51,14 +51,14 @@ class DhcpAgentNotifyAPI(proxy.RpcProxy):
dhcp_agent in dhcp_agents]
def _notification_host(self, context, method, payload, host):
"""Notify the agent on host"""
"""Notify the agent on host."""
self.cast(
context, self.make_msg(method,
payload=payload),
topic='%s.%s' % (topics.DHCP_AGENT, host))
def _notification(self, context, method, payload, network_id):
"""Notify all the agents that are hosting the network"""
"""Notify all the agents that are hosting the network."""
plugin = manager.QuantumManager.get_plugin()
if (method != 'network_delete_end' and utils.is_extension_supported(
plugin, constants.AGENT_SCHEDULER_EXT_ALIAS)):
@ -87,7 +87,7 @@ class DhcpAgentNotifyAPI(proxy.RpcProxy):
self._notification_fanout(context, method, payload)
def _notification_fanout(self, context, method, payload):
"""Fanout the payload to all dhcp agents"""
"""Fanout the payload to all dhcp agents."""
self.fanout_cast(
context, self.make_msg(method,
payload=payload),

View File

@ -33,7 +33,7 @@ class L3AgentNotifyAPI(proxy.RpcProxy):
topic=topic, default_version=self.BASE_RPC_API_VERSION)
def _notification_host(self, context, method, payload, host):
"""Notify the agent that is hosting the router"""
"""Notify the agent that is hosting the router."""
LOG.debug(_('Nofity agent at %(host)s the message '
'%(method)s'), {'host': host,
'method': method})
@ -69,7 +69,7 @@ class L3AgentNotifyAPI(proxy.RpcProxy):
topic='%s.%s' % (l3_agent.topic, l3_agent.host))
def _notification(self, context, method, routers, operation, data):
"""Notify all the agents that are hosting the routers"""
"""Notify all the agents that are hosting the routers."""
plugin = manager.QuantumManager.get_plugin()
if utils.is_extension_supported(
plugin, constants.AGENT_SCHEDULER_EXT_ALIAS):
@ -85,7 +85,7 @@ class L3AgentNotifyAPI(proxy.RpcProxy):
topic=topics.L3_AGENT)
def _notification_fanout(self, context, method, router_id):
"""Fanout the deleted router to all L3 agents"""
"""Fanout the deleted router to all L3 agents."""
LOG.debug(_('Fanout notify agent at %(topic)s the message '
'%(method)s on router %(router_id)s'),
{'topic': topics.DHCP_AGENT,

View File

@ -32,7 +32,7 @@ SHARED = 'shared'
def _verify_dict_keys(expected_keys, target_dict, strict=True):
""" Allows to verify keys in a dictionary.
"""Allows to verify keys in a dictionary.
:param expected_keys: A list of keys expected to be present.
:param target_dict: The dictionary which should be verified.
:param strict: Specifies whether additional keys are allowed to be present.

View File

@ -181,7 +181,7 @@ class Controller(object):
return api_common.NoSortingHelper(request, self._attr_info)
def _items(self, request, do_authz=False, parent_id=None):
"""Retrieves and formats a list of elements of the requested entity"""
"""Retrieves and formats a list of elements of the requested entity."""
# NOTE(salvatore-orlando): The following ensures that fields which
# are needed for authZ policy validation are not stripped away by the
# plugin before returning.
@ -227,7 +227,7 @@ class Controller(object):
def _item(self, request, id, do_authz=False, field_list=None,
parent_id=None):
"""Retrieves and formats a single element of the requested entity"""
"""Retrieves and formats a single element of the requested entity."""
kwargs = {'fields': field_list}
action = self._plugin_handlers[self.SHOW]
if parent_id:
@ -246,12 +246,12 @@ class Controller(object):
self._dhcp_agent_notifier.notify(context, data, methodname)
def index(self, request, **kwargs):
"""Returns a list of the requested entity"""
"""Returns a list of the requested entity."""
parent_id = kwargs.get(self._parent_id_name)
return self._items(request, True, parent_id)
def show(self, request, id, **kwargs):
"""Returns detailed information about the requested entity"""
"""Returns detailed information about the requested entity."""
try:
# NOTE(salvatore-orlando): The following ensures that fields
# which are needed for authZ policy validation are not stripped
@ -304,7 +304,7 @@ class Controller(object):
raise ex
def create(self, request, body=None, **kwargs):
"""Creates a new instance of the requested entity"""
"""Creates a new instance of the requested entity."""
parent_id = kwargs.get(self._parent_id_name)
notifier_api.notify(request.context,
self._publisher_id,
@ -382,7 +382,7 @@ class Controller(object):
return notify({self._resource: self._view(obj)})
def delete(self, request, id, **kwargs):
"""Deletes the specified entity"""
"""Deletes the specified entity."""
notifier_api.notify(request.context,
self._publisher_id,
self._resource + '.delete.start',
@ -417,7 +417,7 @@ class Controller(object):
notifier_method)
def update(self, request, id, body=None, **kwargs):
"""Updates the specified entity's attributes"""
"""Updates the specified entity's attributes."""
parent_id = kwargs.get(self._parent_id_name)
try:
payload = body.copy()
@ -492,7 +492,7 @@ class Controller(object):
@staticmethod
def prepare_request_body(context, body, is_create, resource, attr_info,
allow_bulk=False):
""" verifies required attributes are in request body, and that
"""Verifies required attributes are in request body, and that
an attribute is only specified if it is allowed for the given
operation (create/update).
Attribute with default values are considered to be

View File

@ -25,7 +25,8 @@ LOG = logging.getLogger(__name__)
class PluginRpcDispatcher(dispatcher.RpcDispatcher):
"""This class is used to convert RPC common context into
Quantum Context."""
Quantum Context.
"""
def __init__(self, callbacks):
super(PluginRpcDispatcher, self).__init__(callbacks)

View File

@ -77,7 +77,7 @@ class _AnsiColorizer(object):
except curses.error:
curses.setupterm()
return curses.tigetnum("colors") > 2
except:
except Exception:
raise
# guess false in case of error
return False

View File

@ -154,7 +154,7 @@ def get_hostname():
def compare_elements(a, b):
""" compare elements if a and b have same elements
"""Compare elements if a and b have same elements.
This method doesn't consider ordering
"""

View File

@ -34,7 +34,7 @@ cfg.CONF.register_opt(
class Agent(model_base.BASEV2, models_v2.HasId):
"""Represents agents running in quantum deployments"""
"""Represents agents running in quantum deployments."""
# L3 agent, DHCP agent, OVS agent, LinuxBridge
agent_type = sa.Column(sa.String(255), nullable=False)
@ -162,7 +162,7 @@ class AgentExtRpcCallback(object):
START_TIME = timeutils.utcnow()
def report_state(self, context, **kwargs):
"""Report state from agent to server. """
"""Report state from agent to server."""
time = kwargs['time']
time = timeutils.parse_strtime(time)
if self.START_TIME > time:

View File

@ -32,7 +32,7 @@ LOG = logging.getLogger(__name__)
class NetworkDhcpAgentBinding(model_base.BASEV2):
"""Represents binding between quantum networks and DHCP agents"""
"""Represents binding between quantum networks and DHCP agents."""
network_id = sa.Column(sa.String(36),
sa.ForeignKey("networks.id", ondelete='CASCADE'),
primary_key=True)
@ -44,7 +44,7 @@ class NetworkDhcpAgentBinding(model_base.BASEV2):
class RouterL3AgentBinding(model_base.BASEV2, models_v2.HasId):
"""Represents binding between quantum routers and L3 agents"""
"""Represents binding between quantum routers and L3 agents."""
router_id = sa.Column(sa.String(36),
sa.ForeignKey("routers.id", ondelete='CASCADE'))
l3_agent = orm.relation(agents_db.Agent)
@ -194,7 +194,8 @@ class AgentSchedulerDbMixin(agentscheduler.AgentSchedulerPluginBase,
def remove_router_from_l3_agent(self, context, id, router_id):
"""Remove the router from l3 agent. After it, the router
will be non-hosted until there is update which
lead to re schedule or be added to another agent manually."""
lead to re schedule or be added to another agent manually.
"""
agent = self._get_agent(context, id)
with context.session.begin(subtransactions=True):
query = context.session.query(RouterL3AgentBinding)
@ -321,7 +322,7 @@ class AgentSchedulerDbMixin(agentscheduler.AgentSchedulerPluginBase,
return l3_agents
def get_l3_agent_candidates(self, sync_router, l3_agents):
"""Get the valid l3 agents for the router from a list of l3_agents"""
"""Get the valid l3 agents for the router from a list of l3_agents."""
candidates = []
for l3_agent in l3_agents:
if not l3_agent.admin_state_up:

View File

@ -120,7 +120,7 @@ def configure_db():
if not sql_connection:
LOG.warn(_("Option 'sql_connection' not specified "
"in any config file - using default "
"value '%s'" % SQL_CONNECTION_DEFAULT))
"value '%s'") % SQL_CONNECTION_DEFAULT)
sql_connection = SQL_CONNECTION_DEFAULT
connection_dict = sql.engine.url.make_url(sql_connection)
engine_args = {
@ -185,7 +185,7 @@ def clear_db(base=BASE):
def get_session(autocommit=True, expire_on_commit=False):
"""Helper method to grab session"""
"""Helper method to grab session."""
global _MAKER, _ENGINE
if not _MAKER:
assert _ENGINE
@ -213,7 +213,7 @@ def retry_registration(remaining, reconnect_interval, base=BASE):
def register_models(base=BASE):
"""Register Models and create properties"""
"""Register Models and create properties."""
global _ENGINE
assert _ENGINE
try:
@ -225,7 +225,7 @@ def register_models(base=BASE):
def unregister_models(base=BASE):
"""Unregister Models, useful clearing out data before testing"""
"""Unregister Models, useful clearing out data before testing."""
global _ENGINE
assert _ENGINE
base.metadata.drop_all(_ENGINE)

View File

@ -50,7 +50,7 @@ AUTO_DELETE_PORT_OWNERS = ['network:dhcp']
class QuantumDbPluginV2(quantum_plugin_base_v2.QuantumPluginBaseV2):
""" A class that implements the v2 Quantum plugin interface
"""A class that implements the v2 Quantum plugin interface
using SQLAlchemy models. Whenever a non-read call happens
the plugin will call an event handler class method (e.g.,
network_created()). The result is that this class can be
@ -120,7 +120,7 @@ class QuantumDbPluginV2(quantum_plugin_base_v2.QuantumPluginBaseV2):
@classmethod
def register_model_query_hook(cls, model, name, query_hook, filter_hook,
result_filters=None):
""" register an hook to be invoked when a query is executed.
"""Register a hook to be invoked when a query is executed.
Add the hooks to the _model_query_hooks dict. Models are the keys
of this dict, whereas the value is another dict mapping hook names to
@ -948,7 +948,7 @@ class QuantumDbPluginV2(quantum_plugin_base_v2.QuantumPluginBaseV2):
return self._create_bulk('network', context, networks)
def create_network(self, context, network):
""" handle creation of a single network """
"""Handle creation of a single network."""
# single request processing
n = network['network']
# NOTE(jkoelker) Get the tenant_id outside of the session to avoid
@ -1026,7 +1026,7 @@ class QuantumDbPluginV2(quantum_plugin_base_v2.QuantumPluginBaseV2):
return self._create_bulk('subnet', context, subnets)
def _validate_ip_version(self, ip_version, addr, name):
"""Check IP field of a subnet match specified ip version"""
"""Check IP field of a subnet match specified ip version."""
ip = netaddr.IPNetwork(addr)
if ip.version != ip_version:
msg = _("%(name)s '%(addr)s' does not match "
@ -1034,7 +1034,7 @@ class QuantumDbPluginV2(quantum_plugin_base_v2.QuantumPluginBaseV2):
raise q_exc.InvalidInput(error_message=msg)
def _validate_subnet(self, s):
"""Validate a subnet spec"""
"""Validate a subnet spec."""
# This method will validate attributes which may change during
# create_subnet() and update_subnet().
@ -1155,7 +1155,8 @@ class QuantumDbPluginV2(quantum_plugin_base_v2.QuantumPluginBaseV2):
def update_subnet(self, context, id, subnet):
"""Update the subnet with new info. The change however will not be
realized until the client renew the dns lease or we support
gratuitous DHCP offers"""
gratuitous DHCP offers
"""
s = subnet['subnet']
db_subnet = self._get_subnet(context, id)

View File

@ -46,7 +46,7 @@ class RouterRoute(model_base.BASEV2, models_v2.Route):
class ExtraRoute_db_mixin(l3_db.L3_NAT_db_mixin):
""" Mixin class to support extra route configuration on router"""
"""Mixin class to support extra route configuration on router."""
def update_router(self, context, id, router):
r = router['router']
with context.session.begin(subtransactions=True):

View File

@ -75,7 +75,7 @@ class FloatingIP(model_base.BASEV2, models_v2.HasId, models_v2.HasTenant):
class L3_NAT_db_mixin(l3.RouterPluginBase):
"""Mixin class to add L3/NAT router methods to db_plugin_base_v2"""
"""Mixin class to add L3/NAT router methods to db_plugin_base_v2."""
def _network_model_hook(self, context, original_model, query):
query = query.outerjoin(ExternalNetwork,
@ -717,7 +717,7 @@ class L3_NAT_db_mixin(l3.RouterPluginBase):
filters=filters)
def prevent_l3_port_deletion(self, context, port_id):
""" Checks to make sure a port is allowed to be deleted, raising
"""Checks to make sure a port is allowed to be deleted, raising
an exception if this is not the case. This should be called by
any plugin when the API requests the deletion of a port, since
some ports for L3 are not intended to be deleted directly via a

View File

@ -48,7 +48,7 @@ class SessionPersistence(model_base.BASEV2):
class PoolStatistics(model_base.BASEV2):
"""Represents pool statistics """
"""Represents pool statistics."""
pool_id = sa.Column(sa.String(36), sa.ForeignKey("pools.id"),
primary_key=True)
bytes_in = sa.Column(sa.Integer, nullable=False)
@ -274,7 +274,7 @@ class LoadBalancerPluginDb(LoadBalancerPluginBase):
return self._fields(res, fields)
def _check_session_persistence_info(self, info):
""" Performs sanity check on session persistence info.
"""Performs sanity check on session persistence info.
:param info: Session persistence info
"""
if info['type'] == 'APP_COOKIE':

View File

@ -39,13 +39,14 @@ class QuantumBase(object):
return n, getattr(self, n)
def update(self, values):
"""Make the model object behave like a dict"""
"""Make the model object behave like a dict."""
for k, v in values.iteritems():
setattr(self, k, v)
def iteritems(self):
"""Make the model object behave like a dict.
Includes attributes from joins."""
Includes attributes from joins.
"""
local = dict(self)
joined = dict([(k, v) for k, v in self.__dict__.iteritems()
if not k[0] == '_'])
@ -53,7 +54,7 @@ class QuantumBase(object):
return local.iteritems()
def __repr__(self):
"""sqlalchemy based automatic __repr__ method"""
"""sqlalchemy based automatic __repr__ method."""
items = ['%s=%r' % (col.name, getattr(self, col.name))
for col in self.__table__.columns]
return "<%s.%s[object at %x] {%s}>" % (self.__class__.__module__,

View File

@ -35,7 +35,7 @@ class SecurityGroup(model_base.BASEV2, models_v2.HasId, models_v2.HasTenant):
class SecurityGroupPortBinding(model_base.BASEV2):
"""Represents binding between quantum ports and security profiles"""
"""Represents binding between quantum ports and security profiles."""
port_id = sa.Column(sa.String(36),
sa.ForeignKey("ports.id",
ondelete='CASCADE'),
@ -450,7 +450,8 @@ class SecurityGroupDbMixin(ext_sg.SecurityGroupPluginBase):
def _check_update_deletes_security_groups(self, port):
"""Return True if port has as a security group and it's value
is either [] or not is_attr_set, otherwise return False"""
is either [] or not is_attr_set, otherwise return False
"""
if (ext_sg.SECURITYGROUPS in port['port'] and
not (attr.is_attr_set(port['port'][ext_sg.SECURITYGROUPS])
and port['port'][ext_sg.SECURITYGROUPS] != [])):
@ -459,7 +460,8 @@ class SecurityGroupDbMixin(ext_sg.SecurityGroupPluginBase):
def _check_update_has_security_groups(self, port):
"""Return True if port has as a security group and False if the
security_group field is is_attr_set or []."""
security_group field is is_attr_set or [].
"""
if (ext_sg.SECURITYGROUPS in port['port'] and
(attr.is_attr_set(port['port'][ext_sg.SECURITYGROUPS]) and
port['port'][ext_sg.SECURITYGROUPS] != [])):

View File

@ -63,7 +63,7 @@ class SecurityGroupServerRpcMixin(sg_db.SecurityGroupDbMixin):
def update_security_group_on_port(self, context, id, port,
original_port, updated_port):
""" update security groups on port
"""Update security groups on port.
This method returns a flag which indicates request notification
is required and does not perform notification itself.
@ -85,7 +85,7 @@ class SecurityGroupServerRpcMixin(sg_db.SecurityGroupDbMixin):
def is_security_group_member_updated(self, context,
original_port, updated_port):
""" check security group member updated or not
"""Check security group member updated or not.
This method returns a flag which indicates request notification
is required and does not perform notification itself.
@ -102,7 +102,7 @@ class SecurityGroupServerRpcMixin(sg_db.SecurityGroupDbMixin):
return need_notify
def notify_security_groups_member_updated(self, context, port):
""" notify update event of security group members
"""Notify update event of security group members.
The agent setups the iptables rule to allow
ingress packet from the dhcp server (as a part of provider rules),
@ -126,7 +126,7 @@ class SecurityGroupServerRpcCallbackMixin(object):
"""
def security_group_rules_for_devices(self, context, **kwargs):
""" return security group rules for each port
"""Return security group rules for each port.
also convert remote_group_id rule
to source_ip_prefix and dest_ip_prefix rule

View File

@ -48,7 +48,7 @@ cfg.CONF.register_opts(default_servicetype_opts, 'DEFAULT_SERVICETYPE')
def parse_service_definition_opt():
""" parse service definition opts and returns result """
"""Parse service definition opts and returns result."""
results = []
svc_def_opt = cfg.CONF.DEFAULT_SERVICETYPE.service_definition
try:
@ -96,7 +96,7 @@ class ServiceDefinition(model_base.BASEV2, models_v2.HasId):
class ServiceType(model_base.BASEV2, models_v2.HasId, models_v2.HasTenant):
""" Service Type Object Model """
"""Service Type Object Model."""
name = sa.Column(sa.String(255))
description = sa.Column(sa.String(255))
default = sa.Column(sa.Boolean(), nullable=False, default=False)
@ -108,7 +108,7 @@ class ServiceType(model_base.BASEV2, models_v2.HasId, models_v2.HasTenant):
num_instances = sa.Column(sa.Integer(), default=0)
def as_dict(self):
""" Convert a row into a dict """
"""Convert a row into a dict."""
ret_dict = {}
for c in self.__table__.columns:
ret_dict[c.name] = getattr(self, c.name)
@ -116,7 +116,7 @@ class ServiceType(model_base.BASEV2, models_v2.HasId, models_v2.HasTenant):
class ServiceTypeManager(object):
""" Manage service type objects in Quantum database """
"""Manage service type objects in Quantum database."""
_instance = None
@ -254,13 +254,13 @@ class ServiceTypeManager(object):
return res
def get_service_type(self, context, id, fields=None):
""" Retrieve a service type record """
"""Retrieve a service type record."""
return self._make_svc_type_dict(context,
self._get_service_type(context, id),
fields)
def get_service_types(self, context, fields=None, filters=None):
""" Retrieve a possibly filtered list of service types """
"""Retrieve a possibly filtered list of service types."""
query = context.session.query(ServiceType)
if filters:
for key, value in filters.iteritems():
@ -271,21 +271,21 @@ class ServiceTypeManager(object):
for svc_type in query.all()]
def create_service_type(self, context, service_type):
""" Create a new service type """
"""Create a new service type."""
svc_type_data = service_type['service_type']
svc_type_db = self._create_service_type(context, svc_type_data)
LOG.debug(_("Created service type object:%s"), svc_type_db['id'])
return self._make_svc_type_dict(context, svc_type_db)
def update_service_type(self, context, id, service_type):
""" Update a service type """
"""Update a service type."""
svc_type_data = service_type['service_type']
svc_type_db = self._update_service_type(context, id,
svc_type_data)
return self._make_svc_type_dict(context, svc_type_db)
def delete_service_type(self, context, id):
""" Delete a service type """
"""Delete a service type."""
# Verify that the service type is not in use.
svc_type_db = self._get_service_type(context, id)
if svc_type_db['num_instances'] > 0:
@ -294,7 +294,7 @@ class ServiceTypeManager(object):
context.session.delete(svc_type_db)
def increase_service_type_refcount(self, context, id):
""" Increase references count for a service type object
"""Increase references count for a service type object
This method should be invoked by plugins using the service
type concept everytime an instance of an object associated
@ -309,7 +309,7 @@ class ServiceTypeManager(object):
return svc_type_db['num_instances']
def decrease_service_type_refcount(self, context, id):
""" Decrease references count for a service type object
"""Decrease references count for a service type object
This method should be invoked by plugins using the service
type concept everytime an instance of an object associated

View File

@ -59,7 +59,7 @@ class CreateProbe(ProbeCommand):
class DeleteProbe(ProbeCommand):
"""Delete probe - delete port then uplug """
"""Delete probe - delete port then uplug."""
log = logging.getLogger(__name__ + '.DeleteProbe')
@ -78,7 +78,7 @@ class DeleteProbe(ProbeCommand):
class ListProbe(QuantumCommand, lister.Lister):
""" List probes """
"""List probes."""
log = logging.getLogger(__name__ + '.ListProbe')
_formatters = {'fixed_ips': _format_fixed_ips, }
@ -97,7 +97,7 @@ class ListProbe(QuantumCommand, lister.Lister):
class ClearProbe(ProbeCommand):
"""Clear All probes """
"""Clear All probes."""
log = logging.getLogger(__name__ + '.ClearProbe')

View File

@ -124,7 +124,7 @@ class QuantumDebugAgent():
namespace=namespace)
try:
ip.netns.delete(namespace)
except:
except Exception:
LOG.warn(_('Failed to delete namespace %s'), namespace)
else:
self.driver.unplug(self.driver.get_device_name(port),

View File

@ -72,7 +72,7 @@ class MultipleAgentFoundByTypeHost(exceptions.Conflict):
class Agent(object):
"""Agent management extension"""
"""Agent management extension."""
@classmethod
def get_name(cls):
@ -96,7 +96,7 @@ class Agent(object):
@classmethod
def get_resources(cls):
""" Returns Ext Resources """
"""Returns Ext Resources."""
my_plurals = [(key, key[:-1]) for key in RESOURCE_ATTRIBUTE_MAP.keys()]
attr.PLURALS.update(dict(my_plurals))
plugin = manager.QuantumManager.get_plugin()
@ -116,13 +116,13 @@ class Agent(object):
class AgentPluginBase(object):
""" REST API to operate the Agent.
"""REST API to operate the Agent.
All of method must be in an admin context.
"""
def create_agent(self, context, agent):
""" Create agent.
"""Create agent.
This operation is not allow in REST API.
@raise exceptions.BadRequest:

View File

@ -145,7 +145,7 @@ class Agentscheduler(extensions.ExtensionDescriptor):
@classmethod
def get_resources(cls):
"""Returns Ext Resources """
"""Returns Ext Resources."""
exts = []
parent = dict(member_name="agent",
collection_name="agents")
@ -214,7 +214,7 @@ class RouterNotHostedByL3Agent(exceptions.Conflict):
class AgentSchedulerPluginBase(object):
""" REST API to operate the agent scheduler.
"""REST API to operate the agent scheduler.
All of method must be in an admin context.
"""

View File

@ -187,7 +187,7 @@ class L3(extensions.ExtensionDescriptor):
@classmethod
def get_resources(cls):
""" Returns Ext Resources """
"""Returns Ext Resources."""
my_plurals = [(key, key[:-1]) for key in RESOURCE_ATTRIBUTE_MAP.keys()]
attr.PLURALS.update(dict(my_plurals))
exts = []

View File

@ -104,7 +104,7 @@ class QuotaSetsController(wsgi.Controller):
class Quotasv2(extensions.ExtensionDescriptor):
"""Quotas management support"""
"""Quotas management support."""
@classmethod
def get_name(cls):
@ -131,7 +131,7 @@ class Quotasv2(extensions.ExtensionDescriptor):
@classmethod
def get_resources(cls):
""" Returns Ext Resources """
"""Returns Ext Resources."""
controller = resource.Resource(
QuotaSetsController(QuantumManager.get_plugin()),
faults=base.FAULT_MAP)

View File

@ -216,7 +216,7 @@ cfg.CONF.register_opts(security_group_quota_opts, 'QUOTAS')
class Securitygroup(extensions.ExtensionDescriptor):
""" Security group extension"""
"""Security group extension."""
@classmethod
def get_name(cls):
@ -241,7 +241,7 @@ class Securitygroup(extensions.ExtensionDescriptor):
@classmethod
def get_resources(cls):
""" Returns Ext Resources """
"""Returns Ext Resources."""
my_plurals = [(key, key[:-1]) for key in RESOURCE_ATTRIBUTE_MAP.keys()]
attr.PLURALS.update(dict(my_plurals))
exts = []

View File

@ -72,7 +72,7 @@ def set_default_svctype_id(original_id):
def _validate_servicetype_ref(data, valid_values=None):
""" Verify the service type id exists """
"""Verify the service type id exists."""
svc_type_id = data
svctype_mgr = servicetype_db.ServiceTypeManager.get_instance()
try:
@ -83,7 +83,7 @@ def _validate_servicetype_ref(data, valid_values=None):
def _validate_service_defs(data, valid_values=None):
""" Validate the list of service definitions. """
"""Validate the list of service definitions."""
try:
if not data:
return _("No service type definition was provided. At least a "
@ -182,7 +182,7 @@ class Servicetype(extensions.ExtensionDescriptor):
@classmethod
def get_resources(cls):
""" Returns Extended Resource for service type management """
"""Returns Extended Resource for service type management."""
my_plurals = [(key.replace('-', '_'),
key[:-1].replace('-', '_')) for
key in RESOURCE_ATTRIBUTE_MAP.keys()]

View File

@ -97,7 +97,7 @@ class QuantumManager(object):
# core plugin as a part of plugin collection simplifies
# checking extensions
# TODO (enikanorov): make core plugin the same as
# TODO(enikanorov): make core plugin the same as
# the rest of service plugins
self.service_plugins = {constants.CORE: self.plugin}
self._load_service_plugins()

View File

@ -789,7 +789,7 @@ class QuantumRestProxyV2(db_base_plugin_v2.QuantumDbPluginV2,
try:
self._send_update_network(orig_net)
except RemoteRestError:
# TODO (Sumit): rollback deletion of subnet
# TODO(Sumit): rollback deletion of subnet
raise
def create_router(self, context, router):

View File

@ -120,7 +120,7 @@ class TestNetworkCtrl(object):
if request_data:
try:
request_data = json.loads(request_data)
except:
except Exception:
# OK for it not to be json! Ignore it
pass
@ -141,7 +141,7 @@ class TestNetworkCtrl(object):
if body:
try:
body_data = json.loads(body)
except:
except Exception:
# OK for it not to be json! Ignore it
pass

View File

@ -20,7 +20,7 @@
# Varma Bhupatiraju (vbhupati@#brocade.com)
#
# (Some parts adapted from LinuxBridge Plugin)
# TODO (shiv) need support for security groups
# TODO(shiv) need support for security groups
"""

View File

@ -66,7 +66,8 @@ class NOSdriver():
LOG.debug(_("Connect failed to switch: %s"), e)
raise
LOG.debug(_("Connect success to host %s:%d"), host, SSH_PORT)
LOG.debug(_("Connect success to host %(host)s:%(ssh_port)d"),
dict(host=host, ssh_port=SSH_PORT))
return mgr
def create_network(self, host, username, password, net_id):

View File

@ -18,9 +18,9 @@
import logging as LOG
from quantum.plugins.cisco.common import config
from quantum.plugins.cisco.common import cisco_constants as const
from quantum.plugins.cisco.common import cisco_exceptions as cexc
from quantum.plugins.cisco.common import config
from quantum.plugins.cisco.db import network_db_v2 as cdb
@ -33,7 +33,7 @@ _nexus_dict = config.get_nexus_dictionary()
class Store(object):
"""Credential Store"""
"""Credential Store."""
@staticmethod
def initialize():
@ -51,29 +51,29 @@ class Store(object):
@staticmethod
def put_credential(cred_name, username, password):
"""Set the username and password"""
"""Set the username and password."""
cdb.add_credential(TENANT, cred_name, username, password)
@staticmethod
def get_username(cred_name):
"""Get the username"""
"""Get the username."""
credential = cdb.get_credential_name(TENANT, cred_name)
return credential[const.CREDENTIAL_USERNAME]
@staticmethod
def get_password(cred_name):
"""Get the password"""
"""Get the password."""
credential = cdb.get_credential_name(TENANT, cred_name)
return credential[const.CREDENTIAL_PASSWORD]
@staticmethod
def get_credential(cred_name):
"""Get the username and password"""
"""Get the username and password."""
cdb.get_credential_name(TENANT, cred_name)
return {const.USERNAME: const.CREDENTIAL_USERNAME,
const.PASSWORD: const.CREDENTIAL_PASSWORD}
@staticmethod
def delete_credential(cred_name):
"""Delete a credential"""
"""Delete a credential."""
cdb.remove_credential(TENANT, cred_name)

View File

@ -25,116 +25,116 @@ from quantum.common import exceptions
class NoMoreNics(exceptions.QuantumException):
"""No more dynamic nics are available in the system"""
"""No more dynamic nics are available in the system."""
message = _("Unable to complete operation. No more dynamic nics are "
"available in the system.")
class NetworksLimit(exceptions.QuantumException):
"""Total number of network objects limit has been hit"""
"""Total number of network objects limit has been hit."""
message = _("Unable to create new network. Number of networks"
"for the system has exceeded the limit")
class NetworkVlanBindingAlreadyExists(exceptions.QuantumException):
"""Binding cannot be created, since it already exists"""
"""Binding cannot be created, since it already exists."""
message = _("NetworkVlanBinding for %(vlan_id)s and network "
"%(network_id)s already exists")
class VlanIDNotFound(exceptions.QuantumException):
"""VLAN ID cannot be found"""
"""VLAN ID cannot be found."""
message = _("Vlan ID %(vlan_id)s not found")
class VlanIDNotAvailable(exceptions.QuantumException):
"""No VLAN ID available"""
"""No VLAN ID available."""
message = _("No Vlan ID available")
class QosNotFound(exceptions.QuantumException):
"""QoS level with this ID cannot be found"""
"""QoS level with this ID cannot be found."""
message = _("QoS level %(qos_id)s could not be found "
"for tenant %(tenant_id)s")
class QoSLevelInvalidDelete(exceptions.QuantumException):
"""QoS is associated with a port profile, hence cannot be deleted"""
"""QoS is associated with a port profile, hence cannot be deleted."""
message = _("QoS level %(qos_id)s could not be deleted "
"for tenant %(tenant_id)s since association exists")
class QosNameAlreadyExists(exceptions.QuantumException):
"""QoS Name already exists"""
"""QoS Name already exists."""
message = _("QoS level with name %(qos_name)s already exists "
"for tenant %(tenant_id)s")
class CredentialNotFound(exceptions.QuantumException):
"""Credential with this ID cannot be found"""
"""Credential with this ID cannot be found."""
message = _("Credential %(credential_id)s could not be found "
"for tenant %(tenant_id)s")
class CredentialNameNotFound(exceptions.QuantumException):
"""Credential Name could not be found"""
"""Credential Name could not be found."""
message = _("Credential %(credential_name)s could not be found "
"for tenant %(tenant_id)s")
class CredentialAlreadyExists(exceptions.QuantumException):
"""Credential ID already exists"""
"""Credential ID already exists."""
message = _("Credential %(credential_id)s already exists "
"for tenant %(tenant_id)s")
class NexusPortBindingNotFound(exceptions.QuantumException):
"""NexusPort Binding is not present"""
"""NexusPort Binding is not present."""
message = _("Nexus Port Binding %(port_id)s is not present")
class NexusPortBindingAlreadyExists(exceptions.QuantumException):
"""NexusPort Binding alredy exists"""
"""NexusPort Binding alredy exists."""
message = _("Nexus Port Binding %(port_id)s already exists")
class UcsmBindingNotFound(exceptions.QuantumException):
"""Ucsm Binding is not present"""
"""Ucsm Binding is not present."""
message = _("Ucsm Binding with ip %(ucsm_ip)s is not present")
class UcsmBindingAlreadyExists(exceptions.QuantumException):
"""Ucsm Binding already exists"""
"""Ucsm Binding already exists."""
message = _("Ucsm Binding with ip %(ucsm_ip)s already exists")
class DynamicVnicNotFound(exceptions.QuantumException):
"""Ucsm Binding is not present"""
"""Ucsm Binding is not present."""
message = _("Dyanmic Vnic %(vnic_id)s is not present")
class DynamicVnicAlreadyExists(exceptions.QuantumException):
"""Ucsm Binding already exists"""
"""Ucsm Binding already exists."""
message = _("Dynamic Vnic with name %(device_name)s already exists")
class BladeNotFound(exceptions.QuantumException):
"""Blade is not present"""
"""Blade is not present."""
message = _("Blade %(blade_id)s is not present")
class BladeAlreadyExists(exceptions.QuantumException):
"""Blade already exists"""
"""Blade already exists."""
message = _("Blade with mgmt_ip %(mgmt_ip)s already exists")
class PortVnicBindingAlreadyExists(exceptions.QuantumException):
"""PortVnic Binding already exists"""
"""PortVnic Binding already exists."""
message = _("PortVnic Binding %(port_id)s already exists")
class PortVnicNotFound(exceptions.QuantumException):
"""PortVnic Binding is not present"""
"""PortVnic Binding is not present."""
message = _("PortVnic Binding %(port_id)s is not present")

View File

@ -22,7 +22,7 @@ from quantum import wsgi
class Fault(webob.exc.HTTPException):
"""Error codes for API faults"""
"""Error codes for API faults."""
_fault_names = {
400: "malformedRequest",
@ -42,7 +42,8 @@ class Fault(webob.exc.HTTPException):
@webob.dec.wsgify(RequestClass=wsgi.Request)
def __call__(self, req):
"""Generate a WSGI response based on the
exception passed to constructor."""
exception passed to constructor.
"""
# Replace the body with fault details.
code = self.wrapped_exc.status_int
fault_name = self._fault_names.get(code, "quantumServiceFault")

View File

@ -34,14 +34,14 @@ def get16ByteUUID(uuid):
def make_net_dict(net_id, net_name, ports):
"""Helper funciton"""
"""Helper funciton."""
res = {const.NET_ID: net_id, const.NET_NAME: net_name}
res[const.NET_PORTS] = ports
return res
def make_port_dict(port_id, port_state, net_id, attachment):
"""Helper funciton"""
"""Helper funciton."""
res = {const.PORT_ID: port_id, const.PORT_STATE: port_state}
res[const.NET_ID] = net_id
res[const.ATTACHMENT] = attachment

View File

@ -87,7 +87,7 @@ nexus_dictionary = {}
class CiscoConfigOptions():
""" Cisco Configuration Options Class """
"""Cisco Configuration Options Class."""
def __init__(self):
self._create_nexus_dictionary()

View File

@ -53,7 +53,7 @@ def clear_db():
def get_session(autocommit=True, expire_on_commit=False):
"""Helper method to grab session"""
"""Helper method to grab session."""
global _MAKER, _ENGINE
if not _MAKER:
assert _ENGINE
@ -64,14 +64,14 @@ def get_session(autocommit=True, expire_on_commit=False):
def register_models():
"""Register Models and create properties"""
"""Register Models and create properties."""
global _ENGINE
assert _ENGINE
BASE.metadata.create_all(_ENGINE)
def unregister_models():
"""Unregister Models, useful clearing out data before testing"""
"""Unregister Models, useful clearing out data before testing."""
global _ENGINE
assert _ENGINE
BASE.metadata.drop_all(_ENGINE)

View File

@ -30,12 +30,12 @@ LOG = logging.getLogger(__name__)
def initialize():
"""Establish database connection and load models"""
"""Establish database connection and load models."""
db.configure_db()
def create_vlanids():
"""Prepopulates the vlan_bindings table"""
"""Prepopulates the vlan_bindings table."""
LOG.debug(_("create_vlanids() called"))
session = db.get_session()
try:
@ -54,7 +54,7 @@ def create_vlanids():
def get_all_vlanids():
"""Gets all the vlanids"""
"""Gets all the vlanids."""
LOG.debug(_("get_all_vlanids() called"))
session = db.get_session()
try:
@ -65,7 +65,7 @@ def get_all_vlanids():
def is_vlanid_used(vlan_id):
"""Checks if a vlanid is in use"""
"""Checks if a vlanid is in use."""
LOG.debug(_("is_vlanid_used() called"))
session = db.get_session()
try:
@ -77,7 +77,7 @@ def is_vlanid_used(vlan_id):
def release_vlanid(vlan_id):
"""Sets the vlanid state to be unused"""
"""Sets the vlanid state to be unused."""
LOG.debug(_("release_vlanid() called"))
session = db.get_session()
try:
@ -93,7 +93,7 @@ def release_vlanid(vlan_id):
def delete_vlanid(vlan_id):
"""Deletes a vlanid entry from db"""
"""Deletes a vlanid entry from db."""
LOG.debug(_("delete_vlanid() called"))
session = db.get_session()
try:
@ -107,7 +107,7 @@ def delete_vlanid(vlan_id):
def reserve_vlanid():
"""Reserves the first unused vlanid"""
"""Reserves the first unused vlanid."""
LOG.debug(_("reserve_vlanid() called"))
session = db.get_session()
try:
@ -126,7 +126,7 @@ def reserve_vlanid():
def get_all_vlanids_used():
"""Gets all the vlanids used"""
"""Gets all the vlanids used."""
LOG.debug(_("get_all_vlanids() called"))
session = db.get_session()
try:
@ -138,7 +138,7 @@ def get_all_vlanids_used():
def get_all_vlan_bindings():
"""Lists all the vlan to network associations"""
"""Lists all the vlan to network associations."""
LOG.debug(_("get_all_vlan_bindings() called"))
session = db.get_session()
try:
@ -149,7 +149,7 @@ def get_all_vlan_bindings():
def get_vlan_binding(netid):
"""Lists the vlan given a network_id"""
"""Lists the vlan given a network_id."""
LOG.debug(_("get_vlan_binding() called"))
session = db.get_session()
try:
@ -161,7 +161,7 @@ def get_vlan_binding(netid):
def add_vlan_binding(vlanid, vlanname, netid):
"""Adds a vlan to network association"""
"""Adds a vlan to network association."""
LOG.debug(_("add_vlan_binding() called"))
session = db.get_session()
try:
@ -177,7 +177,7 @@ def add_vlan_binding(vlanid, vlanname, netid):
def remove_vlan_binding(netid):
"""Removes a vlan to network association"""
"""Removes a vlan to network association."""
LOG.debug(_("remove_vlan_binding() called"))
session = db.get_session()
try:
@ -191,7 +191,7 @@ def remove_vlan_binding(netid):
def update_vlan_binding(netid, newvlanid=None, newvlanname=None):
"""Updates a vlan to network association"""
"""Updates a vlan to network association."""
LOG.debug(_("update_vlan_binding() called"))
session = db.get_session()
try:
@ -209,7 +209,7 @@ def update_vlan_binding(netid, newvlanid=None, newvlanname=None):
def get_all_qoss(tenant_id):
"""Lists all the qos to tenant associations"""
"""Lists all the qos to tenant associations."""
LOG.debug(_("get_all_qoss() called"))
session = db.get_session()
try:
@ -221,7 +221,7 @@ def get_all_qoss(tenant_id):
def get_qos(tenant_id, qos_id):
"""Lists the qos given a tenant_id and qos_id"""
"""Lists the qos given a tenant_id and qos_id."""
LOG.debug(_("get_qos() called"))
session = db.get_session()
try:
@ -235,7 +235,7 @@ def get_qos(tenant_id, qos_id):
def add_qos(tenant_id, qos_name, qos_desc):
"""Adds a qos to tenant association"""
"""Adds a qos to tenant association."""
LOG.debug(_("add_qos() called"))
session = db.get_session()
try:
@ -252,7 +252,7 @@ def add_qos(tenant_id, qos_name, qos_desc):
def remove_qos(tenant_id, qos_id):
"""Removes a qos to tenant association"""
"""Removes a qos to tenant association."""
session = db.get_session()
try:
qos = (session.query(l2network_models.QoS).
@ -266,7 +266,7 @@ def remove_qos(tenant_id, qos_id):
def update_qos(tenant_id, qos_id, new_qos_name=None):
"""Updates a qos to tenant association"""
"""Updates a qos to tenant association."""
session = db.get_session()
try:
qos = (session.query(l2network_models.QoS).
@ -283,7 +283,7 @@ def update_qos(tenant_id, qos_id, new_qos_name=None):
def get_all_credentials(tenant_id):
"""Lists all the creds for a tenant"""
"""Lists all the creds for a tenant."""
session = db.get_session()
try:
creds = (session.query(l2network_models.Credential).
@ -294,7 +294,7 @@ def get_all_credentials(tenant_id):
def get_credential(tenant_id, credential_id):
"""Lists the creds for given a cred_id and tenant_id"""
"""Lists the creds for given a cred_id and tenant_id."""
session = db.get_session()
try:
cred = (session.query(l2network_models.Credential).
@ -307,7 +307,7 @@ def get_credential(tenant_id, credential_id):
def get_credential_name(tenant_id, credential_name):
"""Lists the creds for given a cred_name and tenant_id"""
"""Lists the creds for given a cred_name and tenant_id."""
session = db.get_session()
try:
cred = (session.query(l2network_models.Credential).
@ -320,7 +320,7 @@ def get_credential_name(tenant_id, credential_name):
def add_credential(tenant_id, credential_name, user_name, password):
"""Adds a qos to tenant association"""
"""Adds a qos to tenant association."""
session = db.get_session()
try:
cred = (session.query(l2network_models.Credential).
@ -337,7 +337,7 @@ def add_credential(tenant_id, credential_name, user_name, password):
def remove_credential(tenant_id, credential_id):
"""Removes a credential from a tenant"""
"""Removes a credential from a tenant."""
session = db.get_session()
try:
cred = (session.query(l2network_models.Credential).
@ -352,7 +352,7 @@ def remove_credential(tenant_id, credential_id):
def update_credential(tenant_id, credential_id,
new_user_name=None, new_password=None):
"""Updates a credential for a tenant"""
"""Updates a credential for a tenant."""
session = db.get_session()
try:
cred = (session.query(l2network_models.Credential).

View File

@ -27,35 +27,36 @@ class L2NetworkBase(object):
__table_args__ = {'mysql_engine': 'InnoDB'}
def __setitem__(self, key, value):
"""Internal Dict set method"""
"""Internal Dict set method."""
setattr(self, key, value)
def __getitem__(self, key):
"""Internal Dict get method"""
"""Internal Dict get method."""
return getattr(self, key)
def get(self, key, default=None):
"""Dict get method"""
"""Dict get method."""
return getattr(self, key, default)
def __iter__(self):
"""Iterate over table columns"""
"""Iterate over table columns."""
self._i = iter(object_mapper(self).columns)
return self
def next(self):
"""Next method for the iterator"""
"""Next method for the iterator."""
n = self._i.next().name
return n, getattr(self, n)
def update(self, values):
"""Make the model object behave like a dict"""
"""Make the model object behave like a dict."""
for k, v in values.iteritems():
setattr(self, k, v)
def iteritems(self):
"""Make the model object behave like a dict"
Includes attributes from joins."""
Includes attributes from joins.
"""
local = dict(self)
joined = dict([(k, v) for k, v in self.__dict__.iteritems()
if not k[0] == '_'])
@ -64,7 +65,7 @@ class L2NetworkBase(object):
class VlanID(BASE, L2NetworkBase):
"""Represents a vlan_id usage"""
"""Represents a vlan_id usage."""
__tablename__ = 'vlan_ids'
vlan_id = Column(Integer, primary_key=True)
@ -79,7 +80,7 @@ class VlanID(BASE, L2NetworkBase):
class VlanBinding(BASE, L2NetworkBase):
"""Represents a binding of vlan_id to network_id"""
"""Represents a binding of vlan_id to network_id."""
__tablename__ = 'vlan_bindings'
vlan_id = Column(Integer, primary_key=True)
@ -99,7 +100,7 @@ class VlanBinding(BASE, L2NetworkBase):
class QoS(BASE, L2NetworkBase):
"""Represents QoS for a tenant"""
"""Represents QoS for a tenant."""
__tablename__ = 'qoss'
qos_id = Column(String(255))
@ -119,7 +120,7 @@ class QoS(BASE, L2NetworkBase):
class Credential(BASE, L2NetworkBase):
"""Represents credentials for a tenant"""
"""Represents credentials for a tenant."""
__tablename__ = 'credentials'
credential_id = Column(String(255))

View File

@ -50,13 +50,14 @@ class QuantumBase(object):
return n, getattr(self, n)
def update(self, values):
"""Make the model object behave like a dict"""
"""Make the model object behave like a dict."""
for k, v in values.iteritems():
setattr(self, k, v)
def iteritems(self):
"""Make the model object behave like a dict.
Includes attributes from joins."""
Includes attributes from joins.
"""
local = dict(self)
joined = dict([(k, v) for k, v in self.__dict__.iteritems()
if not k[0] == '_'])
@ -65,7 +66,7 @@ class QuantumBase(object):
class Port(BASE, QuantumBase):
"""Represents a port on a quantum network"""
"""Represents a port on a quantum network."""
__tablename__ = 'ports'
uuid = Column(String(255), primary_key=True)
@ -86,7 +87,7 @@ class Port(BASE, QuantumBase):
class Network(BASE, QuantumBase):
"""Represents a quantum network"""
"""Represents a quantum network."""
__tablename__ = 'networks'
uuid = Column(String(255), primary_key=True)

View File

@ -32,7 +32,7 @@ LOG = logging.getLogger(__name__)
def create_vlanids():
"""Prepopulates the vlan_bindings table"""
"""Prepopulates the vlan_bindings table."""
LOG.debug(_("create_vlanids() called"))
session = db.get_session()
try:
@ -51,7 +51,7 @@ def create_vlanids():
def get_all_vlanids():
"""Gets all the vlanids"""
"""Gets all the vlanids."""
LOG.debug(_("get_all_vlanids() called"))
session = db.get_session()
try:
@ -62,7 +62,7 @@ def get_all_vlanids():
def is_vlanid_used(vlan_id):
"""Checks if a vlanid is in use"""
"""Checks if a vlanid is in use."""
LOG.debug(_("is_vlanid_used() called"))
session = db.get_session()
try:
@ -74,7 +74,7 @@ def is_vlanid_used(vlan_id):
def release_vlanid(vlan_id):
"""Sets the vlanid state to be unused"""
"""Sets the vlanid state to be unused."""
LOG.debug(_("release_vlanid() called"))
session = db.get_session()
try:
@ -90,7 +90,7 @@ def release_vlanid(vlan_id):
def delete_vlanid(vlan_id):
"""Deletes a vlanid entry from db"""
"""Deletes a vlanid entry from db."""
LOG.debug(_("delete_vlanid() called"))
session = db.get_session()
try:
@ -104,7 +104,7 @@ def delete_vlanid(vlan_id):
def reserve_vlanid():
"""Reserves the first unused vlanid"""
"""Reserves the first unused vlanid."""
LOG.debug(_("reserve_vlanid() called"))
session = db.get_session()
try:
@ -123,7 +123,7 @@ def reserve_vlanid():
def get_all_vlanids_used():
"""Gets all the vlanids used"""
"""Gets all the vlanids used."""
LOG.debug(_("get_all_vlanids() called"))
session = db.get_session()
try:
@ -135,7 +135,7 @@ def get_all_vlanids_used():
def get_all_vlan_bindings():
"""Lists all the vlan to network associations"""
"""Lists all the vlan to network associations."""
LOG.debug(_("get_all_vlan_bindings() called"))
session = db.get_session()
try:
@ -146,7 +146,7 @@ def get_all_vlan_bindings():
def get_vlan_binding(netid):
"""Lists the vlan given a network_id"""
"""Lists the vlan given a network_id."""
LOG.debug(_("get_vlan_binding() called"))
session = db.get_session()
try:
@ -158,7 +158,7 @@ def get_vlan_binding(netid):
def add_vlan_binding(vlanid, vlanname, netid):
"""Adds a vlan to network association"""
"""Adds a vlan to network association."""
LOG.debug(_("add_vlan_binding() called"))
session = db.get_session()
try:
@ -174,7 +174,7 @@ def add_vlan_binding(vlanid, vlanname, netid):
def remove_vlan_binding(netid):
"""Removes a vlan to network association"""
"""Removes a vlan to network association."""
LOG.debug(_("remove_vlan_binding() called"))
session = db.get_session()
try:
@ -188,7 +188,7 @@ def remove_vlan_binding(netid):
def update_vlan_binding(netid, newvlanid=None, newvlanname=None):
"""Updates a vlan to network association"""
"""Updates a vlan to network association."""
LOG.debug(_("update_vlan_binding() called"))
session = db.get_session()
try:
@ -206,7 +206,7 @@ def update_vlan_binding(netid, newvlanid=None, newvlanname=None):
def get_all_qoss(tenant_id):
"""Lists all the qos to tenant associations"""
"""Lists all the qos to tenant associations."""
LOG.debug(_("get_all_qoss() called"))
session = db.get_session()
try:
@ -218,7 +218,7 @@ def get_all_qoss(tenant_id):
def get_qos(tenant_id, qos_id):
"""Lists the qos given a tenant_id and qos_id"""
"""Lists the qos given a tenant_id and qos_id."""
LOG.debug(_("get_qos() called"))
session = db.get_session()
try:
@ -232,7 +232,7 @@ def get_qos(tenant_id, qos_id):
def add_qos(tenant_id, qos_name, qos_desc):
"""Adds a qos to tenant association"""
"""Adds a qos to tenant association."""
LOG.debug(_("add_qos() called"))
session = db.get_session()
try:
@ -249,7 +249,7 @@ def add_qos(tenant_id, qos_name, qos_desc):
def remove_qos(tenant_id, qos_id):
"""Removes a qos to tenant association"""
"""Removes a qos to tenant association."""
session = db.get_session()
try:
qos = (session.query(network_models_v2.QoS).
@ -263,7 +263,7 @@ def remove_qos(tenant_id, qos_id):
def update_qos(tenant_id, qos_id, new_qos_name=None):
"""Updates a qos to tenant association"""
"""Updates a qos to tenant association."""
session = db.get_session()
try:
qos = (session.query(network_models_v2.QoS).
@ -280,7 +280,7 @@ def update_qos(tenant_id, qos_id, new_qos_name=None):
def get_all_credentials(tenant_id):
"""Lists all the creds for a tenant"""
"""Lists all the creds for a tenant."""
session = db.get_session()
try:
creds = (session.query(network_models_v2.Credential).
@ -291,7 +291,7 @@ def get_all_credentials(tenant_id):
def get_credential(tenant_id, credential_id):
"""Lists the creds for given a cred_id and tenant_id"""
"""Lists the creds for given a cred_id and tenant_id."""
session = db.get_session()
try:
cred = (session.query(network_models_v2.Credential).
@ -304,7 +304,7 @@ def get_credential(tenant_id, credential_id):
def get_credential_name(tenant_id, credential_name):
"""Lists the creds for given a cred_name and tenant_id"""
"""Lists the creds for given a cred_name and tenant_id."""
session = db.get_session()
try:
cred = (session.query(network_models_v2.Credential).
@ -317,7 +317,7 @@ def get_credential_name(tenant_id, credential_name):
def add_credential(tenant_id, credential_name, user_name, password):
"""Adds a qos to tenant association"""
"""Adds a qos to tenant association."""
session = db.get_session()
try:
cred = (session.query(network_models_v2.Credential).
@ -334,7 +334,7 @@ def add_credential(tenant_id, credential_name, user_name, password):
def remove_credential(tenant_id, credential_id):
"""Removes a credential from a tenant"""
"""Removes a credential from a tenant."""
session = db.get_session()
try:
cred = (session.query(network_models_v2.Credential).
@ -349,7 +349,7 @@ def remove_credential(tenant_id, credential_id):
def update_credential(tenant_id, credential_id,
new_user_name=None, new_password=None):
"""Updates a credential for a tenant"""
"""Updates a credential for a tenant."""
session = db.get_session()
try:
cred = (session.query(network_models_v2.Credential).

View File

@ -29,35 +29,36 @@ class L2NetworkBase(object):
#__table_args__ = {'mysql_engine': 'InnoDB'}
def __setitem__(self, key, value):
"""Internal Dict set method"""
"""Internal Dict set method."""
setattr(self, key, value)
def __getitem__(self, key):
"""Internal Dict get method"""
"""Internal Dict get method."""
return getattr(self, key)
def get(self, key, default=None):
"""Dict get method"""
"""Dict get method."""
return getattr(self, key, default)
def __iter__(self):
"""Iterate over table columns"""
"""Iterate over table columns."""
self._i = iter(object_mapper(self).columns)
return self
def next(self):
"""Next method for the iterator"""
"""Next method for the iterator."""
n = self._i.next().name
return n, getattr(self, n)
def update(self, values):
"""Make the model object behave like a dict"""
"""Make the model object behave like a dict."""
for k, v in values.iteritems():
setattr(self, k, v)
def iteritems(self):
"""Make the model object behave like a dict"
Includes attributes from joins."""
Includes attributes from joins.
"""
local = dict(self)
joined = dict([(k, v) for k, v in self.__dict__.iteritems()
if not k[0] == '_'])
@ -66,7 +67,7 @@ class L2NetworkBase(object):
class VlanID(model_base.BASEV2, L2NetworkBase):
"""Represents a vlan_id usage"""
"""Represents a vlan_id usage."""
__tablename__ = 'cisco_vlan_ids'
vlan_id = Column(Integer, primary_key=True)
@ -81,7 +82,7 @@ class VlanID(model_base.BASEV2, L2NetworkBase):
class Vlan_Binding(model_base.BASEV2, L2NetworkBase):
"""Represents a binding of vlan_id to network_id"""
"""Represents a binding of vlan_id to network_id."""
__tablename__ = 'cisco_vlan_bindings'
vlan_id = Column(Integer, primary_key=True)
@ -101,7 +102,7 @@ class Vlan_Binding(model_base.BASEV2, L2NetworkBase):
class QoS(model_base.BASEV2, L2NetworkBase):
"""Represents QoS for a tenant"""
"""Represents QoS for a tenant."""
__tablename__ = 'qoss'
qos_id = Column(String(255))
@ -121,7 +122,7 @@ class QoS(model_base.BASEV2, L2NetworkBase):
class Credential(model_base.BASEV2, L2NetworkBase):
"""Represents credentials for a tenant"""
"""Represents credentials for a tenant."""
__tablename__ = 'credentials'
credential_id = Column(String(255))

View File

@ -30,7 +30,7 @@ LOG = logging.getLogger(__name__)
def get_all_nexusport_bindings():
"""Lists all the nexusport bindings"""
"""Lists all the nexusport bindings."""
LOG.debug(_("get_all_nexusport_bindings() called"))
session = db.get_session()
try:
@ -41,7 +41,7 @@ def get_all_nexusport_bindings():
def get_nexusport_binding(port_id, vlan_id, switch_ip, instance_id):
"""Lists a nexusport binding"""
"""Lists a nexusport binding."""
LOG.debug(_("get_nexusport_binding() called"))
session = db.get_session()
try:
@ -55,7 +55,7 @@ def get_nexusport_binding(port_id, vlan_id, switch_ip, instance_id):
def get_nexusvlan_binding(vlan_id, switch_ip):
"""Lists a vlan and switch binding"""
"""Lists a vlan and switch binding."""
LOG.debug(_("get_nexusvlan_binding() called"))
session = db.get_session()
try:
@ -68,7 +68,7 @@ def get_nexusvlan_binding(vlan_id, switch_ip):
def add_nexusport_binding(port_id, vlan_id, switch_ip, instance_id):
"""Adds a nexusport binding"""
"""Adds a nexusport binding."""
LOG.debug(_("add_nexusport_binding() called"))
session = db.get_session()
binding = nexus_models_v2.NexusPortBinding(
@ -79,7 +79,7 @@ def add_nexusport_binding(port_id, vlan_id, switch_ip, instance_id):
def remove_nexusport_binding(port_id, vlan_id, switch_ip, instance_id):
"""Removes a nexusport binding"""
"""Removes a nexusport binding."""
LOG.debug(_("remove_nexusport_binding() called"))
session = db.get_session()
try:
@ -97,7 +97,7 @@ def remove_nexusport_binding(port_id, vlan_id, switch_ip, instance_id):
def update_nexusport_binding(port_id, new_vlan_id):
"""Updates nexusport binding"""
"""Updates nexusport binding."""
LOG.debug(_("update_nexusport_binding called"))
session = db.get_session()
try:
@ -113,7 +113,7 @@ def update_nexusport_binding(port_id, new_vlan_id):
def get_nexusvm_binding(vlan_id, instance_id):
"""Lists nexusvm bindings"""
"""Lists nexusvm bindings."""
LOG.debug(_("get_nexusvm_binding() called"))
session = db.get_session()
try:
@ -126,7 +126,7 @@ def get_nexusvm_binding(vlan_id, instance_id):
def get_port_vlan_switch_binding(port_id, vlan_id, switch_ip):
"""Lists nexusvm bindings"""
"""Lists nexusvm bindings."""
LOG.debug(_("get_port_vlan_switch_binding() called"))
session = db.get_session()
try:

View File

@ -22,7 +22,7 @@ from quantum.plugins.cisco.db.l2network_models import L2NetworkBase
class NexusPortBinding(model_base.BASEV2, L2NetworkBase):
"""Represents a binding of VM's to nexus ports"""
"""Represents a binding of VM's to nexus ports."""
__tablename__ = "nexusport_bindings"
id = Column(Integer, primary_key=True, autoincrement=True)

View File

@ -19,7 +19,7 @@
def get_view_builder(req):
"""get view builder """
"""get view builder."""
base_url = req.application_url
return ViewBuilder(base_url)

View File

@ -19,7 +19,7 @@
def get_view_builder(req):
"""get view builder"""
"""get view builder."""
base_url = req.application_url
return ViewBuilder(base_url)

View File

@ -31,36 +31,36 @@ from quantum import wsgi
class Credential(extensions.ExtensionDescriptor):
"""extension class Credential"""
"""extension class Credential."""
@classmethod
def get_name(cls):
""" Returns Ext Resource Name """
"""Returns Ext Resource Name."""
return "Cisco Credential"
@classmethod
def get_alias(cls):
""" Returns Ext Resource Alias """
"""Returns Ext Resource Alias."""
return "Cisco Credential"
@classmethod
def get_description(cls):
""" Returns Ext Resource Description """
"""Returns Ext Resource Description."""
return "Credential include username and password"
@classmethod
def get_namespace(cls):
""" Returns Ext Resource Namespace """
"""Returns Ext Resource Namespace."""
return "http://docs.ciscocloud.com/api/ext/credential/v1.0"
@classmethod
def get_updated(cls):
""" Returns Ext Resource Update Time """
"""Returns Ext Resource Update Time."""
return "2011-07-25T13:25:27-06:00"
@classmethod
def get_resources(cls):
""" Returns Ext Resources """
"""Returns Ext Resources."""
parent_resource = dict(member_name="tenant",
collection_name="extensions/csco/tenants")
controller = CredentialController(QuantumManager.get_plugin())
@ -69,8 +69,7 @@ class Credential(extensions.ExtensionDescriptor):
class CredentialController(common.QuantumController, wsgi.Controller):
""" credential API controller
based on QuantumController """
"""Credential API controller based on QuantumController."""
_credential_ops_param_list = [
{'param-name': 'credential_name', 'required': True},
@ -91,11 +90,11 @@ class CredentialController(common.QuantumController, wsgi.Controller):
self._plugin = plugin
def index(self, request, tenant_id):
""" Returns a list of credential ids """
"""Returns a list of credential ids."""
return self._items(request, tenant_id, is_detail=False)
def _items(self, request, tenant_id, is_detail):
""" Returns a list of credentials. """
"""Returns a list of credentials."""
credentials = self._plugin.get_all_credentials(tenant_id)
builder = credential_view.get_view_builder(request)
result = [builder.build(credential, is_detail)['credential']
@ -104,7 +103,7 @@ class CredentialController(common.QuantumController, wsgi.Controller):
# pylint: disable-msg=E1101,W0613
def show(self, request, tenant_id, id):
""" Returns credential details for the given credential id """
"""Returns credential details for the given credential id."""
try:
credential = self._plugin.get_credential_details(tenant_id, id)
builder = credential_view.get_view_builder(request)
@ -115,7 +114,7 @@ class CredentialController(common.QuantumController, wsgi.Controller):
return faults.Fault(faults.CredentialNotFound(exp))
def create(self, request, tenant_id):
""" Creates a new credential for a given tenant """
"""Creates a new credential for a given tenant."""
try:
body = self._deserialize(request.body, request.get_content_type())
req_body = self._prepare_request_body(
@ -134,7 +133,7 @@ class CredentialController(common.QuantumController, wsgi.Controller):
return dict(credentials=result)
def update(self, request, tenant_id, id):
""" Updates the name for the credential with the given id """
"""Updates the name for the credential with the given id."""
try:
body = self._deserialize(request.body, request.get_content_type())
req_body = self._prepare_request_body(
@ -153,7 +152,7 @@ class CredentialController(common.QuantumController, wsgi.Controller):
return faults.Fault(faults.CredentialNotFound(exp))
def delete(self, request, tenant_id, id):
""" Destroys the credential with the given id """
"""Destroys the credential with the given id."""
try:
self._plugin.delete_credential(tenant_id, id)
return exc.HTTPOk()

View File

@ -30,36 +30,36 @@ from quantum import wsgi
class Qos(extensions.ExtensionDescriptor):
"""Qos extension file"""
"""Qos extension file."""
@classmethod
def get_name(cls):
""" Returns Ext Resource Name """
"""Returns Ext Resource Name."""
return "Cisco qos"
@classmethod
def get_alias(cls):
""" Returns Ext Resource Alias """
"""Returns Ext Resource Alias."""
return "Cisco qos"
@classmethod
def get_description(cls):
""" Returns Ext Resource Description """
"""Returns Ext Resource Description."""
return "qos includes qos_name and qos_desc"
@classmethod
def get_namespace(cls):
""" Returns Ext Resource Namespace """
"""Returns Ext Resource Namespace."""
return "http://docs.ciscocloud.com/api/ext/qos/v1.0"
@classmethod
def get_updated(cls):
""" Returns Ext Resource update """
"""Returns Ext Resource update."""
return "2011-07-25T13:25:27-06:00"
@classmethod
def get_resources(cls):
""" Returns Ext Resources """
"""Returns Ext Resources."""
parent_resource = dict(member_name="tenant",
collection_name="extensions/csco/tenants")
@ -69,8 +69,7 @@ class Qos(extensions.ExtensionDescriptor):
class QosController(common.QuantumController, wsgi.Controller):
""" qos API controller
based on QuantumController """
"""qos API controller based on QuantumController."""
_qos_ops_param_list = [
{'param-name': 'qos_name', 'required': True},
@ -90,11 +89,11 @@ class QosController(common.QuantumController, wsgi.Controller):
self._plugin = plugin
def index(self, request, tenant_id):
""" Returns a list of qos ids """
"""Returns a list of qos ids."""
return self._items(request, tenant_id, is_detail=False)
def _items(self, request, tenant_id, is_detail):
""" Returns a list of qoss. """
"""Returns a list of qoss."""
qoss = self._plugin.get_all_qoss(tenant_id)
builder = qos_view.get_view_builder(request)
result = [builder.build(qos, is_detail)['qos'] for qos in qoss]
@ -102,7 +101,7 @@ class QosController(common.QuantumController, wsgi.Controller):
# pylint: disable-msg=E1101
def show(self, request, tenant_id, id):
""" Returns qos details for the given qos id """
"""Returns qos details for the given qos id."""
try:
qos = self._plugin.get_qos_details(tenant_id, id)
builder = qos_view.get_view_builder(request)
@ -113,7 +112,7 @@ class QosController(common.QuantumController, wsgi.Controller):
return faults.Fault(faults.QosNotFound(exp))
def create(self, request, tenant_id):
""" Creates a new qos for a given tenant """
"""Creates a new qos for a given tenant."""
#look for qos name in request
try:
body = self._deserialize(request.body, request.get_content_type())
@ -130,7 +129,7 @@ class QosController(common.QuantumController, wsgi.Controller):
return dict(qoss=result)
def update(self, request, tenant_id, id):
""" Updates the name for the qos with the given id """
"""Updates the name for the qos with the given id."""
try:
body = self._deserialize(request.body, request.get_content_type())
req_body = self._prepare_request_body(body,
@ -149,7 +148,7 @@ class QosController(common.QuantumController, wsgi.Controller):
return faults.Fault(faults.QosNotFound(exp))
def delete(self, request, tenant_id, id):
""" Destroys the qos with the given id """
"""Destroys the qos with the given id."""
try:
self._plugin.delete_qos(tenant_id, id)
return exc.HTTPOk()

View File

@ -25,15 +25,15 @@ import logging
from novaclient.v1_1 import client as nova_client
from oslo.config import cfg
from quantum.db import api as db_api
from quantum.manager import QuantumManager
from quantum.openstack.common import importutils
from quantum.plugins.cisco.common import cisco_constants as const
from quantum.plugins.cisco.common import cisco_credentials_v2 as cred
from quantum.plugins.cisco.db import network_db_v2 as cdb
from quantum.plugins.cisco.common import config as conf
from quantum.plugins.cisco.db import network_db_v2 as cdb
from quantum.plugins.openvswitch import ovs_db_v2 as odb
from quantum import quantum_plugin_base_v2
from quantum.db import api as db_api
LOG = logging.getLogger(__name__)
@ -112,7 +112,7 @@ class VirtualPhysicalSwitchModelV2(quantum_plugin_base_v2.QuantumPluginBaseV2):
return getattr(plugin, name)
def _func_name(self, offset=0):
"""Get the name of the calling function"""
"""Get the name of the calling function."""
frame_record = inspect.stack()[1 + offset]
func_name = frame_record[3]
return func_name
@ -206,8 +206,8 @@ class VirtualPhysicalSwitchModelV2(quantum_plugin_base_v2.QuantumPluginBaseV2):
ovs_output[0]['id'], vlan_name, vlan_id,
{'vlan_ids': vlanids}]
return ovs_output[0]
except:
# TODO (Sumit): Check if we need to perform any rollback here
except Exception:
# TODO(Sumit): Check if we need to perform any rollback here
raise
def update_network(self, context, id, network):
@ -253,15 +253,15 @@ class VirtualPhysicalSwitchModelV2(quantum_plugin_base_v2.QuantumPluginBaseV2):
self._invoke_plugin_per_device(const.NEXUS_PLUGIN,
self._func_name(), args)
return ovs_output[0]
except:
except Exception:
raise
def get_network(self, context, id, fields=None):
"""For this model this method will be delegated to vswitch plugin"""
"""For this model this method will be delegated to vswitch plugin."""
pass
def get_networks(self, context, filters=None, fields=None):
"""For this model this method will be delegated to vswitch plugin"""
"""For this model this method will be delegated to vswitch plugin."""
pass
def _invoke_nexus_for_net_create(self, context, tenant_id, net_id,
@ -308,16 +308,16 @@ class VirtualPhysicalSwitchModelV2(quantum_plugin_base_v2.QuantumPluginBaseV2):
context, tenant_id, net_id, instance_id)
return ovs_output[0]
except:
# TODO (asomya): Check if we need to perform any rollback here
except Exception:
# TODO(asomya): Check if we need to perform any rollback here
raise
def get_port(self, context, id, fields=None):
"""For this model this method will be delegated to vswitch plugin"""
"""For this model this method will be delegated to vswitch plugin."""
pass
def get_ports(self, context, filters=None, fields=None):
"""For this model this method will be delegated to vswitch plugin"""
"""For this model this method will be delegated to vswitch plugin."""
pass
def update_port(self, context, id, port):
@ -348,7 +348,7 @@ class VirtualPhysicalSwitchModelV2(quantum_plugin_base_v2.QuantumPluginBaseV2):
context, tenant_id, net_id, instance_id)
return ovs_output[0]
except:
except Exception:
raise
def delete_port(self, context, id):
@ -369,26 +369,26 @@ class VirtualPhysicalSwitchModelV2(quantum_plugin_base_v2.QuantumPluginBaseV2):
self._func_name(),
n_args)
return ovs_output[0]
except:
# TODO (asomya): Check if we need to perform any rollback here
except Exception:
# TODO(asomya): Check if we need to perform any rollback here
raise
def create_subnet(self, context, subnet):
"""For this model this method will be delegated to vswitch plugin"""
"""For this model this method will be delegated to vswitch plugin."""
pass
def update_subnet(self, context, id, subnet):
"""For this model this method will be delegated to vswitch plugin"""
"""For this model this method will be delegated to vswitch plugin."""
pass
def get_subnet(self, context, id, fields=None):
"""For this model this method will be delegated to vswitch plugin"""
"""For this model this method will be delegated to vswitch plugin."""
pass
def delete_subnet(self, context, id, kwargs):
"""For this model this method will be delegated to vswitch plugin"""
"""For this model this method will be delegated to vswitch plugin."""
pass
def get_subnets(self, context, filters=None, fields=None):
"""For this model this method will be delegated to vswitch plugin"""
"""For this model this method will be delegated to vswitch plugin."""
pass

View File

@ -110,7 +110,7 @@ class PluginV2(db_base_plugin_v2.QuantumDbPluginV2):
self._invoke_device_plugins(self._func_name(), [context,
new_network])
return new_network
except:
except Exception:
super(PluginV2, self).delete_network(context,
new_network['id'])
raise
@ -153,7 +153,7 @@ class PluginV2(db_base_plugin_v2.QuantumDbPluginV2):
self._invoke_device_plugins(self._func_name(), [context, id,
kwargs])
return super(PluginV2, self).delete_network(context, id)
except:
except Exception:
raise
def get_network(self, context, id, fields=None):
@ -179,7 +179,7 @@ class PluginV2(db_base_plugin_v2.QuantumDbPluginV2):
try:
self._invoke_device_plugins(self._func_name(), [context, new_port])
return new_port
except:
except Exception:
super(PluginV2, self).delete_port(context, new_port['id'])
raise
@ -199,11 +199,11 @@ class PluginV2(db_base_plugin_v2.QuantumDbPluginV2):
"""
try:
kwargs = {const.PORT: port}
# TODO (Sumit): Might first need to check here if port is active
# TODO(Sumit): Might first need to check here if port is active
self._invoke_device_plugins(self._func_name(), [context, id,
kwargs])
return super(PluginV2, self).delete_port(context, id)
except:
except Exception:
raise
def update_port(self, context, id, port):
@ -215,7 +215,7 @@ class PluginV2(db_base_plugin_v2.QuantumDbPluginV2):
self._invoke_device_plugins(self._func_name(), [context, id,
port])
return super(PluginV2, self).update_port(context, id, port)
except:
except Exception:
raise
def create_subnet(self, context, subnet):
@ -229,7 +229,7 @@ class PluginV2(db_base_plugin_v2.QuantumDbPluginV2):
self._invoke_device_plugins(self._func_name(), [context,
new_subnet])
return new_subnet
except:
except Exception:
super(PluginV2, self).delete_subnet(context, new_subnet['id'])
raise
@ -242,7 +242,7 @@ class PluginV2(db_base_plugin_v2.QuantumDbPluginV2):
self._invoke_device_plugins(self._func_name(), [context, id,
subnet])
return super(PluginV2, self).update_subnet(context, id, subnet)
except:
except Exception:
raise
def delete_subnet(self, context, id):
@ -267,20 +267,20 @@ class PluginV2(db_base_plugin_v2.QuantumDbPluginV2):
self._invoke_device_plugins(self._func_name(), [context, id,
kwargs])
return super(PluginV2, self).delete_subnet(context, id)
except:
except Exception:
raise
"""
Extension API implementation
"""
def get_all_qoss(self, tenant_id):
"""Get all QoS levels"""
"""Get all QoS levels."""
LOG.debug(_("get_all_qoss() called"))
qoslist = cdb.get_all_qoss(tenant_id)
return qoslist
def get_qos_details(self, tenant_id, qos_id):
"""Get QoS Details"""
"""Get QoS Details."""
LOG.debug(_("get_qos_details() called"))
try:
qos_level = cdb.get_qos(tenant_id, qos_id)
@ -290,13 +290,13 @@ class PluginV2(db_base_plugin_v2.QuantumDbPluginV2):
return qos_level
def create_qos(self, tenant_id, qos_name, qos_desc):
"""Create a QoS level"""
"""Create a QoS level."""
LOG.debug(_("create_qos() called"))
qos = cdb.add_qos(tenant_id, qos_name, str(qos_desc))
return qos
def delete_qos(self, tenant_id, qos_id):
"""Delete a QoS level"""
"""Delete a QoS level."""
LOG.debug(_("delete_qos() called"))
try:
cdb.get_qos(tenant_id, qos_id)
@ -306,7 +306,7 @@ class PluginV2(db_base_plugin_v2.QuantumDbPluginV2):
return cdb.remove_qos(tenant_id, qos_id)
def rename_qos(self, tenant_id, qos_id, new_name):
"""Rename QoS level"""
"""Rename QoS level."""
LOG.debug(_("rename_qos() called"))
try:
cdb.get_qos(tenant_id, qos_id)
@ -317,13 +317,13 @@ class PluginV2(db_base_plugin_v2.QuantumDbPluginV2):
return qos
def get_all_credentials(self, tenant_id):
"""Get all credentials"""
"""Get all credentials."""
LOG.debug(_("get_all_credentials() called"))
credential_list = cdb.get_all_credentials(tenant_id)
return credential_list
def get_credential_details(self, tenant_id, credential_id):
"""Get a particular credential"""
"""Get a particular credential."""
LOG.debug(_("get_credential_details() called"))
try:
credential = cdb.get_credential(tenant_id, credential_id)
@ -334,14 +334,14 @@ class PluginV2(db_base_plugin_v2.QuantumDbPluginV2):
def create_credential(self, tenant_id, credential_name, user_name,
password):
"""Create a new credential"""
"""Create a new credential."""
LOG.debug(_("create_credential() called"))
credential = cdb.add_credential(tenant_id, credential_name,
user_name, password)
return credential
def delete_credential(self, tenant_id, credential_id):
"""Delete a credential"""
"""Delete a credential."""
LOG.debug(_("delete_credential() called"))
try:
credential = cdb.get_credential(tenant_id, credential_id)
@ -352,7 +352,7 @@ class PluginV2(db_base_plugin_v2.QuantumDbPluginV2):
return credential
def rename_credential(self, tenant_id, credential_id, new_name):
"""Rename the particular credential resource"""
"""Rename the particular credential resource."""
LOG.debug(_("rename_credential() called"))
try:
credential = cdb.get_credential(tenant_id, credential_id)
@ -363,7 +363,7 @@ class PluginV2(db_base_plugin_v2.QuantumDbPluginV2):
return credential
def schedule_host(self, tenant_id, instance_id, instance_desc):
"""Provides the hostname on which a dynamic vnic is reserved"""
"""Provides the hostname on which a dynamic vnic is reserved."""
LOG.debug(_("schedule_host() called"))
host_list = self._invoke_device_plugins(self._func_name(),
[tenant_id,
@ -401,5 +401,5 @@ class PluginV2(db_base_plugin_v2.QuantumDbPluginV2):
return getattr(self._model, function_name)(*args)
def _func_name(self, offset=0):
"""Getting the name of the calling funciton"""
"""Getting the name of the calling funciton."""
return inspect.stack()[1 + offset][3]

View File

@ -75,7 +75,7 @@ class ExtensionsTestApp(wsgi.Router):
def create_request(self, path, body, content_type, method='GET'):
""" Test create request"""
"""Test create request."""
LOG.debug("test_create_request - START")
req = webob.Request.blank(path)
@ -88,7 +88,7 @@ class ExtensionsTestApp(wsgi.Router):
def _create_network(self, name=None):
""" Test create network"""
"""Test create network."""
LOG.debug("Creating network - START")
if name:
@ -108,7 +108,7 @@ class ExtensionsTestApp(wsgi.Router):
def _create_port(self, network_id, port_state):
""" Test create port"""
"""Test create port."""
LOG.debug("Creating port for network %s - START", network_id)
port_path = "/tenants/tt/networks/%s/ports" % network_id
@ -124,7 +124,7 @@ class ExtensionsTestApp(wsgi.Router):
return port_data['port']['id']
def _delete_port(self, network_id, port_id):
""" Delete port """
"""Delete port."""
LOG.debug("Deleting port for network %s - START", network_id)
port_path = ("/tenants/tt/networks/%(network_id)s/ports/%(port_id)s" %
locals())
@ -134,7 +134,7 @@ class ExtensionsTestApp(wsgi.Router):
LOG.debug("Deleting port for network - END")
def _delete_network(self, network_id):
""" Delete network """
"""Delete network."""
LOG.debug("Deleting network %s - START", network_id)
network_path = "/tenants/tt/networks/%s" % network_id
network_req = self.create_request(network_path, None,
@ -143,7 +143,7 @@ class ExtensionsTestApp(wsgi.Router):
LOG.debug("Deleting network - END")
def tear_down_port_network(self, net_id, port_id):
""" Tear down port and network """
"""Tear down port and network."""
self._delete_port(net_id, port_id)
self._delete_network(net_id)
@ -153,7 +153,7 @@ class QosExtensionTest(base.BaseTestCase):
def setUp(self):
""" Set up function """
"""Set up function."""
super(QosExtensionTest, self).setUp()
parent_resource = dict(member_name="tenant",
@ -180,7 +180,7 @@ class QosExtensionTest(base.BaseTestCase):
def test_create_qos(self):
""" Test create qos """
"""Test create qos."""
LOG.debug("test_create_qos - START")
req_body = jsonutils.dumps(self.test_qos_data)
@ -199,7 +199,7 @@ class QosExtensionTest(base.BaseTestCase):
def test_create_qosBADRequest(self):
""" Test create qos bad request """
"""Test create qos bad request."""
LOG.debug("test_create_qosBADRequest - START")
index_response = self.test_app.post(self.qos_path,
@ -211,7 +211,7 @@ class QosExtensionTest(base.BaseTestCase):
def test_list_qoss(self):
""" Test list qoss """
"""Test list qoss."""
LOG.debug("test_list_qoss - START")
req_body1 = jsonutils.dumps(self.test_qos_data)
@ -251,7 +251,7 @@ class QosExtensionTest(base.BaseTestCase):
def test_show_qos(self):
""" Test show qos """
"""Test show qos."""
LOG.debug("test_show_qos - START")
req_body = jsonutils.dumps(self.test_qos_data)
@ -275,7 +275,7 @@ class QosExtensionTest(base.BaseTestCase):
def test_show_qosDNE(self, qos_id='100'):
""" Test show qos does not exist"""
"""Test show qos does not exist."""
LOG.debug("test_show_qosDNE - START")
show_path_temp = self.qos_second_path + qos_id
@ -286,7 +286,7 @@ class QosExtensionTest(base.BaseTestCase):
def test_update_qos(self):
""" Test update qos """
"""Test update qos."""
LOG.debug("test_update_qos - START")
req_body = jsonutils.dumps(self.test_qos_data)
@ -318,7 +318,7 @@ class QosExtensionTest(base.BaseTestCase):
def test_update_qosDNE(self, qos_id='100'):
""" Test update qos does not exist """
"""Test update qos does not exist."""
LOG.debug("test_update_qosDNE - START")
rename_req_body = jsonutils.dumps({
@ -340,7 +340,7 @@ class QosExtensionTest(base.BaseTestCase):
def test_update_qosBADRequest(self):
""" Test update qos bad request """
"""Test update qos bad request."""
LOG.debug("test_update_qosBADRequest - START")
req_body = jsonutils.dumps(self.test_qos_data)
@ -361,7 +361,7 @@ class QosExtensionTest(base.BaseTestCase):
def test_delete_qos(self):
""" Test delte qos """
"""Test delte qos."""
LOG.debug("test_delete_qos - START")
req_body = jsonutils.dumps({
@ -386,7 +386,7 @@ class QosExtensionTest(base.BaseTestCase):
def test_delete_qosDNE(self, qos_id='100'):
""" Test delte qos does not exist"""
"""Test delte qos does not exist."""
LOG.debug("test_delete_qosDNE - START")
delete_path_temp = self.qos_second_path + qos_id
@ -397,7 +397,7 @@ class QosExtensionTest(base.BaseTestCase):
def tearDownQos(self, delete_profile_path):
""" Tear Down Qos """
"""Tear Down Qos."""
self.test_app.delete(delete_profile_path)
@ -409,7 +409,7 @@ class CredentialExtensionTest(base.BaseTestCase):
def setUp(self):
""" Set up function """
"""Set up function."""
super(CredentialExtensionTest, self).setUp()
parent_resource = dict(member_name="tenant",
@ -434,7 +434,7 @@ class CredentialExtensionTest(base.BaseTestCase):
def test_list_credentials(self):
""" Test list credentials """
"""Test list credentials."""
#Create Credential before listing
LOG.debug("test_list_credentials - START")
@ -479,7 +479,7 @@ class CredentialExtensionTest(base.BaseTestCase):
def test_create_credential(self):
""" Test create credential """
"""Test create credential."""
LOG.debug("test_create_credential - START")
req_body = jsonutils.dumps(self.test_credential_data)
@ -498,7 +498,7 @@ class CredentialExtensionTest(base.BaseTestCase):
def test_create_credentialBADRequest(self):
""" Test create credential bad request """
"""Test create credential bad request."""
LOG.debug("test_create_credentialBADRequest - START")
index_response = self.test_app.post(
@ -509,7 +509,7 @@ class CredentialExtensionTest(base.BaseTestCase):
def test_show_credential(self):
""" Test show credential """
"""Test show credential."""
LOG.debug("test_show_credential - START")
req_body = jsonutils.dumps(self.test_credential_data)
@ -534,7 +534,7 @@ class CredentialExtensionTest(base.BaseTestCase):
def test_show_credentialDNE(self, credential_id='100'):
""" Test show credential does not exist """
"""Test show credential does not exist."""
LOG.debug("test_show_credentialDNE - START")
show_path_temp = self.cred_second_path + credential_id
@ -545,7 +545,7 @@ class CredentialExtensionTest(base.BaseTestCase):
def test_update_credential(self):
""" Test update credential """
"""Test update credential."""
LOG.debug("test_update_credential - START")
req_body = jsonutils.dumps(self.test_credential_data)
@ -581,7 +581,7 @@ class CredentialExtensionTest(base.BaseTestCase):
def test_update_credBADReq(self):
""" Test update credential bad request """
"""Test update credential bad request."""
LOG.debug("test_update_credBADReq - START")
req_body = jsonutils.dumps(self.test_credential_data)
@ -600,7 +600,7 @@ class CredentialExtensionTest(base.BaseTestCase):
def test_update_credentialDNE(self, credential_id='100'):
""" Test update credential does not exist"""
"""Test update credential does not exist."""
LOG.debug("test_update_credentialDNE - START")
rename_req_body = jsonutils.dumps({
@ -620,7 +620,7 @@ class CredentialExtensionTest(base.BaseTestCase):
def test_delete_credential(self):
""" Test delete credential """
"""Test delete credential."""
LOG.debug("test_delete_credential - START")
req_body = jsonutils.dumps(self.test_credential_data)
@ -638,7 +638,7 @@ class CredentialExtensionTest(base.BaseTestCase):
def test_delete_credentialDNE(self, credential_id='100'):
""" Test delete credential does not exist """
"""Test delete credential does not exist."""
LOG.debug("test_delete_credentialDNE - START")
delete_path_temp = self.cred_second_path + credential_id

View File

@ -31,9 +31,9 @@ LOG = logging.getLogger(__name__)
class NexusDB(object):
"""Class consisting of methods to call nexus db methods"""
"""Class consisting of methods to call nexus db methods."""
def get_all_nexusportbindings(self):
"""get all nexus port bindings"""
"""get all nexus port bindings."""
bindings = []
try:
for bind in nexus_db.get_all_nexusport_bindings():
@ -47,7 +47,7 @@ class NexusDB(object):
return bindings
def get_nexusportbinding(self, vlan_id):
"""get nexus port binding"""
"""get nexus port binding."""
binding = []
try:
for bind in nexus_db.get_nexusport_binding(vlan_id):
@ -61,7 +61,7 @@ class NexusDB(object):
return binding
def create_nexusportbinding(self, port_id, vlan_id):
"""create nexus port binding"""
"""create nexus port binding."""
bind_dict = {}
try:
res = nexus_db.add_nexusport_binding(port_id, vlan_id)
@ -73,7 +73,7 @@ class NexusDB(object):
LOG.error("Failed to create nexus binding: %s" % str(exc))
def delete_nexusportbinding(self, vlan_id):
"""delete nexus port binding"""
"""delete nexus port binding."""
bindings = []
try:
bind = nexus_db.remove_nexusport_binding(vlan_id)
@ -88,7 +88,7 @@ class NexusDB(object):
% str(exc))
def update_nexusport_binding(self, port_id, new_vlan_id):
"""update nexus port binding"""
"""update nexus port binding."""
try:
res = nexus_db.update_nexusport_binding(port_id, new_vlan_id)
LOG.debug("Updating nexus port binding : %s" % res.port_id)
@ -102,9 +102,9 @@ class NexusDB(object):
class L2networkDB(object):
"""Class conisting of methods to call L2network db methods"""
"""Class conisting of methods to call L2network db methods."""
def get_all_vlan_bindings(self):
"""Get all vlan binding into a list of dict"""
"""Get all vlan binding into a list of dict."""
vlans = []
try:
for vlan_bind in l2network_db.get_all_vlan_bindings():
@ -120,7 +120,7 @@ class L2networkDB(object):
return vlans
def get_vlan_binding(self, network_id):
"""Get a vlan binding"""
"""Get a vlan binding."""
vlan = []
try:
for vlan_bind in l2network_db.get_vlan_binding(network_id):
@ -136,7 +136,7 @@ class L2networkDB(object):
return vlan
def create_vlan_binding(self, vlan_id, vlan_name, network_id):
"""Create a vlan binding"""
"""Create a vlan binding."""
vlan_dict = {}
try:
res = l2network_db.add_vlan_binding(vlan_id, vlan_name, network_id)
@ -149,7 +149,7 @@ class L2networkDB(object):
LOG.error("Failed to create vlan binding: %s" % str(exc))
def delete_vlan_binding(self, network_id):
"""Delete a vlan binding"""
"""Delete a vlan binding."""
try:
res = l2network_db.remove_vlan_binding(network_id)
LOG.debug("Deleted vlan binding for vlan: %s" % res.vlan_id)
@ -160,7 +160,7 @@ class L2networkDB(object):
raise Exception("Failed to delete vlan binding: %s" % str(exc))
def update_vlan_binding(self, network_id, vlan_id, vlan_name):
"""Update a vlan binding"""
"""Update a vlan binding."""
try:
res = l2network_db.update_vlan_binding(network_id, vlan_id,
vlan_name)
@ -175,9 +175,9 @@ class L2networkDB(object):
class QuantumDB(object):
"""Class conisting of methods to call Quantum db methods"""
"""Class conisting of methods to call Quantum db methods."""
def get_all_networks(self, tenant_id):
"""Get all networks"""
"""Get all networks."""
nets = []
try:
for net in db.network_list(tenant_id):
@ -192,7 +192,7 @@ class QuantumDB(object):
return nets
def get_network(self, network_id):
"""Get a network"""
"""Get a network."""
net = []
try:
for net in db.network_get(network_id):
@ -207,7 +207,7 @@ class QuantumDB(object):
return net
def create_network(self, tenant_id, net_name):
"""Create a network"""
"""Create a network."""
net_dict = {}
try:
res = db.network_create(tenant_id, net_name)
@ -220,7 +220,7 @@ class QuantumDB(object):
LOG.error("Failed to create network: %s" % str(exc))
def delete_network(self, net_id):
"""Delete a network"""
"""Delete a network."""
try:
net = db.network_destroy(net_id)
LOG.debug("Deleted network: %s" % net.uuid)
@ -231,7 +231,7 @@ class QuantumDB(object):
raise Exception("Failed to delete port: %s" % str(exc))
def update_network(self, tenant_id, net_id, **kwargs):
"""Update a network"""
"""Update a network."""
try:
net = db.network_update(net_id, tenant_id, **kwargs)
LOG.debug("Updated network: %s" % net.uuid)
@ -243,7 +243,7 @@ class QuantumDB(object):
raise Exception("Failed to update network: %s" % str(exc))
def get_all_ports(self, net_id):
"""Get all ports"""
"""Get all ports."""
ports = []
try:
for port in db.port_list(net_id):
@ -260,7 +260,7 @@ class QuantumDB(object):
LOG.error("Failed to get all ports: %s" % str(exc))
def get_port(self, net_id, port_id):
"""Get a port"""
"""Get a port."""
port_list = []
port = db.port_get(net_id, port_id)
try:
@ -276,7 +276,7 @@ class QuantumDB(object):
LOG.error("Failed to get port: %s" % str(exc))
def create_port(self, net_id):
"""Add a port"""
"""Add a port."""
port_dict = {}
try:
port = db.port_create(net_id)
@ -290,7 +290,7 @@ class QuantumDB(object):
LOG.error("Failed to create port: %s" % str(exc))
def delete_port(self, net_id, port_id):
"""Delete a port"""
"""Delete a port."""
try:
port = db.port_destroy(net_id, port_id)
LOG.debug("Deleted port %s" % port.uuid)
@ -301,7 +301,7 @@ class QuantumDB(object):
raise Exception("Failed to delete port: %s" % str(exc))
def update_port(self, net_id, port_id, port_state):
"""Update a port"""
"""Update a port."""
try:
port = db.port_set_state(net_id, port_id, port_state)
LOG.debug("Updated port %s" % port.uuid)
@ -315,7 +315,7 @@ class QuantumDB(object):
raise Exception("Failed to update port state: %s" % str(exc))
def plug_interface(self, net_id, port_id, int_id):
"""Plug interface to a port"""
"""Plug interface to a port."""
try:
port = db.port_set_attachment(net_id, port_id, int_id)
LOG.debug("Attached interface to port %s" % port.uuid)
@ -329,7 +329,7 @@ class QuantumDB(object):
raise Exception("Failed to plug interface: %s" % str(exc))
def unplug_interface(self, net_id, port_id):
"""Unplug interface to a port"""
"""Unplug interface to a port."""
try:
port = db.port_unset_attachment(net_id, port_id)
LOG.debug("Detached interface from port %s" % port.uuid)
@ -344,23 +344,23 @@ class QuantumDB(object):
class NexusDBTest(base.BaseTestCase):
"""Class conisting of nexus DB unit tests"""
"""Class conisting of nexus DB unit tests."""
def setUp(self):
super(NexusDBTest, self).setUp()
"""Setup for nexus db tests"""
"""Setup for nexus db tests."""
l2network_db.initialize()
self.addCleanup(db.clear_db)
self.dbtest = NexusDB()
LOG.debug("Setup")
def testa_create_nexusportbinding(self):
"""create nexus port binding"""
"""create nexus port binding."""
binding1 = self.dbtest.create_nexusportbinding("port1", 10)
self.assertTrue(binding1["port-id"] == "port1")
self.tearDown_nexusportbinding()
def testb_getall_nexusportbindings(self):
"""get all nexus port binding"""
"""get all nexus port binding."""
self.dbtest.create_nexusportbinding("port1", 10)
self.dbtest.create_nexusportbinding("port2", 10)
bindings = self.dbtest.get_all_nexusportbindings()
@ -372,7 +372,7 @@ class NexusDBTest(base.BaseTestCase):
self.tearDown_nexusportbinding()
def testc_delete_nexusportbinding(self):
"""delete nexus port binding"""
"""delete nexus port binding."""
self.dbtest.create_nexusportbinding("port1", 10)
self.dbtest.delete_nexusportbinding(10)
bindings = self.dbtest.get_all_nexusportbindings()
@ -384,7 +384,7 @@ class NexusDBTest(base.BaseTestCase):
self.tearDown_nexusportbinding()
def testd_update_nexusportbinding(self):
"""update nexus port binding"""
"""update nexus port binding."""
binding1 = self.dbtest.create_nexusportbinding("port1", 10)
binding1 = self.dbtest.update_nexusport_binding(binding1["port-id"],
20)
@ -397,7 +397,7 @@ class NexusDBTest(base.BaseTestCase):
self.tearDown_nexusportbinding()
def tearDown_nexusportbinding(self):
"""tear down nexusport binding table"""
"""tear down nexusport binding table."""
LOG.debug("Tearing Down Nexus port Bindings")
binds = self.dbtest.get_all_nexusportbindings()
for bind in binds:
@ -406,9 +406,9 @@ class NexusDBTest(base.BaseTestCase):
class L2networkDBTest(base.BaseTestCase):
"""Class conisting of L2network DB unit tests"""
"""Class conisting of L2network DB unit tests."""
def setUp(self):
"""Setup for tests"""
"""Setup for tests."""
super(L2networkDBTest, self).setUp()
l2network_db.initialize()
self.dbtest = L2networkDB()
@ -417,7 +417,7 @@ class L2networkDBTest(base.BaseTestCase):
LOG.debug("Setup")
def testa_create_vlanbinding(self):
"""test add vlan binding"""
"""test add vlan binding."""
net1 = self.quantum.create_network("t1", "netid1")
vlan1 = self.dbtest.create_vlan_binding(10, "vlan1", net1["net-id"])
self.assertTrue(vlan1["vlan-id"] == "10")
@ -425,7 +425,7 @@ class L2networkDBTest(base.BaseTestCase):
self.teardown_network()
def testb_getall_vlanbindings(self):
"""test get all vlan binding"""
"""test get all vlan binding."""
net1 = self.quantum.create_network("t1", "netid1")
net2 = self.quantum.create_network("t1", "netid2")
vlan1 = self.dbtest.create_vlan_binding(10, "vlan1", net1["net-id"])
@ -442,7 +442,7 @@ class L2networkDBTest(base.BaseTestCase):
self.teardown_network()
def testc_delete_vlanbinding(self):
"""test delete vlan binding"""
"""test delete vlan binding."""
net1 = self.quantum.create_network("t1", "netid1")
vlan1 = self.dbtest.create_vlan_binding(10, "vlan1", net1["net-id"])
self.assertTrue(vlan1["vlan-id"] == "10")
@ -457,7 +457,7 @@ class L2networkDBTest(base.BaseTestCase):
self.teardown_network()
def testd_update_vlanbinding(self):
"""test update vlan binding"""
"""test update vlan binding."""
net1 = self.quantum.create_network("t1", "netid1")
vlan1 = self.dbtest.create_vlan_binding(10, "vlan1", net1["net-id"])
self.assertTrue(vlan1["vlan-id"] == "10")
@ -472,7 +472,7 @@ class L2networkDBTest(base.BaseTestCase):
self.teardown_network()
def testm_test_vlanids(self):
"""test vlanid methods"""
"""test vlanid methods."""
l2network_db.create_vlanids()
vlanids = l2network_db.get_all_vlanids()
self.assertTrue(len(vlanids) > 0)
@ -484,7 +484,7 @@ class L2networkDBTest(base.BaseTestCase):
#counting on default teardown here to clear db
def teardown_network(self):
"""tearDown Network table"""
"""tearDown Network table."""
LOG.debug("Tearing Down Network")
nets = self.quantum.get_all_networks("t1")
for net in nets:
@ -492,7 +492,7 @@ class L2networkDBTest(base.BaseTestCase):
self.quantum.delete_network(netid)
def teardown_port(self):
"""tearDown Port table"""
"""tearDown Port table."""
LOG.debug("Tearing Down Port")
nets = self.quantum.get_all_networks("t1")
for net in nets:
@ -503,7 +503,7 @@ class L2networkDBTest(base.BaseTestCase):
self.quantum.delete_port(netid, portid)
def teardown_vlanbinding(self):
"""tearDown VlanBinding table"""
"""tearDown VlanBinding table."""
LOG.debug("Tearing Down Vlan Binding")
vlans = self.dbtest.get_all_vlan_bindings()
for vlan in vlans:
@ -512,9 +512,9 @@ class L2networkDBTest(base.BaseTestCase):
class QuantumDBTest(base.BaseTestCase):
"""Class conisting of Quantum DB unit tests"""
"""Class conisting of Quantum DB unit tests."""
def setUp(self):
"""Setup for tests"""
"""Setup for tests."""
super(QuantumDBTest, self).setUp()
l2network_db.initialize()
self.addCleanup(db.clear_db)
@ -523,13 +523,13 @@ class QuantumDBTest(base.BaseTestCase):
LOG.debug("Setup")
def testa_create_network(self):
"""test to create network"""
"""test to create network."""
net1 = self.dbtest.create_network(self.tenant_id, "plugin_test1")
self.assertTrue(net1["net-name"] == "plugin_test1")
self.teardown_network_port()
def testb_get_networks(self):
"""test to get all networks"""
"""test to get all networks."""
net1 = self.dbtest.create_network(self.tenant_id, "plugin_test1")
self.assertTrue(net1["net-name"] == "plugin_test1")
net2 = self.dbtest.create_network(self.tenant_id, "plugin_test2")
@ -543,7 +543,7 @@ class QuantumDBTest(base.BaseTestCase):
self.teardown_network_port()
def testc_delete_network(self):
"""test to delete network"""
"""test to delete network."""
net1 = self.dbtest.create_network(self.tenant_id, "plugin_test1")
self.assertTrue(net1["net-name"] == "plugin_test1")
self.dbtest.delete_network(net1["net-id"])
@ -556,7 +556,7 @@ class QuantumDBTest(base.BaseTestCase):
self.teardown_network_port()
def testd_update_network(self):
"""test to update (rename) network"""
"""test to update (rename) network."""
net1 = self.dbtest.create_network(self.tenant_id, "plugin_test1")
self.assertTrue(net1["net-name"] == "plugin_test1")
net = self.dbtest.update_network(self.tenant_id, net1["net-id"],
@ -565,7 +565,7 @@ class QuantumDBTest(base.BaseTestCase):
self.teardown_network_port()
def teste_create_port(self):
"""test to create port"""
"""test to create port."""
net1 = self.dbtest.create_network(self.tenant_id, "plugin_test1")
port = self.dbtest.create_port(net1["net-id"])
self.assertTrue(port["net-id"] == net1["net-id"])
@ -577,7 +577,7 @@ class QuantumDBTest(base.BaseTestCase):
self.teardown_network_port()
def testf_delete_port(self):
"""test to delete port"""
"""test to delete port."""
net1 = self.dbtest.create_network(self.tenant_id, "plugin_test1")
port = self.dbtest.create_port(net1["net-id"])
self.assertTrue(port["net-id"] == net1["net-id"])
@ -596,7 +596,7 @@ class QuantumDBTest(base.BaseTestCase):
self.teardown_network_port()
def testg_plug_unplug_interface(self):
"""test to plug/unplug interface"""
"""test to plug/unplug interface."""
net1 = self.dbtest.create_network(self.tenant_id, "plugin_test1")
port1 = self.dbtest.create_port(net1["net-id"])
self.dbtest.plug_interface(net1["net-id"], port1["port-id"], "vif1.1")
@ -608,7 +608,7 @@ class QuantumDBTest(base.BaseTestCase):
self.teardown_network_port()
def testh_joined_test(self):
"""test to get network and port"""
"""test to get network and port."""
net1 = self.dbtest.create_network("t1", "net1")
port1 = self.dbtest.create_port(net1["net-id"])
self.assertTrue(port1["net-id"] == net1["net-id"])
@ -621,7 +621,7 @@ class QuantumDBTest(base.BaseTestCase):
self.teardown_joined_test()
def teardown_network_port(self):
"""tearDown for Network and Port table"""
"""tearDown for Network and Port table."""
networks = self.dbtest.get_all_networks(self.tenant_id)
for net in networks:
netid = net["net-id"]
@ -633,7 +633,7 @@ class QuantumDBTest(base.BaseTestCase):
self.dbtest.delete_network(netid)
def teardown_joined_test(self):
"""tearDown for joined Network and Port test"""
"""tearDown for joined Network and Port test."""
LOG.debug("Tearing Down Network and Ports")
nets = self.dbtest.get_all_networks("t1")
for net in nets:

View File

@ -156,13 +156,14 @@ class HyperVQuantumAgent(object):
#Nothing to do
pass
elif network_type == constants.TYPE_LOCAL:
#TODO (alexpilotti): Check that the switch type is private
#TODO(alexpilotti): Check that the switch type is private
#or create it if not existing
pass
else:
raise utils.HyperVException(_("Cannot provision unknown network "
"type %s for network %s"),
network_type, net_uuid)
raise utils.HyperVException(
_("Cannot provision unknown network type %(network_type)s "
"for network %(net_uuid)s"),
dict(network_type=network_type, net_uuid=net_uuid))
map = {
'network_type': network_type,
@ -193,8 +194,9 @@ class HyperVQuantumAgent(object):
self._utils.connect_vnic_to_vswitch(map['vswitch_name'], port_id)
if network_type == constants.TYPE_VLAN:
LOG.info(_('Binding VLAN ID %s to switch port %s'),
segmentation_id, port_id)
LOG.info(_('Binding VLAN ID %(segmentation_id)s '
'to switch port %(port_id)s'),
dict(segmentation_id=segmentation_id, port_id=port_id))
self._utils.set_vswitch_port_vlan_id(
segmentation_id,
port_id)
@ -253,14 +255,14 @@ class HyperVQuantumAgent(object):
self.agent_id)
except Exception as e:
LOG.debug(_(
"Unable to get port details for device %s: %s"),
device, e)
"Unable to get port details for device %(device)s: %(e)s"),
dict(device=device, e=e))
resync = True
continue
if 'port_id' in device_details:
LOG.info(_(
"Port %(device)s updated. Details: %(device_details)s") %
locals())
dict(device=device, device_details=device_details))
self._treat_vif_port(
device_details['port_id'],
device_details['network_id'],
@ -279,8 +281,9 @@ class HyperVQuantumAgent(object):
device,
self.agent_id)
except Exception as e:
LOG.debug(_("Removing port failed for device %s: %s"),
device, e)
LOG.debug(
_("Removing port failed for device %(device)s: %(e)s"),
dict(device=device, e=e))
resync = True
continue
self._port_unbound(device)

View File

@ -105,11 +105,11 @@ class HyperVUtils(object):
self._check_job_status(ret_val, job_path)
def _check_job_status(self, ret_val, jobpath):
"""Poll WMI job state for completion"""
"""Poll WMI job state for completion."""
if not ret_val:
return
elif ret_val != WMI_JOB_STATE_RUNNING:
raise HyperVException(msg=_('Job failed with error %d' % ret_val))
raise HyperVException(msg=_('Job failed with error %d') % ret_val)
job_wmi_path = jobpath.replace('\\', '/')
job = wmi.WMI(moniker=job_wmi_path)
@ -144,7 +144,7 @@ class HyperVUtils(object):
locals())
def _create_switch_port(self, vswitch_name, switch_port_name):
""" Creates a switch port """
"""Creates a switch port."""
switch_svc = self._conn.Msvm_VirtualSwitchManagementService()[0]
vswitch_path = self._get_vswitch(vswitch_name).path_()
(new_port, ret_val) = switch_svc.CreateSwitchPort(
@ -159,7 +159,7 @@ class HyperVUtils(object):
def disconnect_switch_port(
self, vswitch_name, switch_port_name, delete_port):
""" Disconnects the switch port """
"""Disconnects the switch port."""
switch_svc = self._conn.Msvm_VirtualSwitchManagementService()[0]
switch_port_path = self._get_switch_port_path_by_name(
switch_port_name)

View File

@ -180,7 +180,7 @@ class HyperVPluginDB(object):
session.delete(alloc)
def sync_vlan_allocations(self, network_vlan_ranges):
"""Synchronize vlan_allocations table with configured VLAN ranges"""
"""Synchronize vlan_allocations table with configured VLAN ranges."""
session = db_api.get_session()
with session.begin():

View File

@ -22,7 +22,7 @@ from quantum.db.models_v2 import model_base
class VlanAllocation(model_base.BASEV2):
"""Represents allocation state of vlan_id on physical network"""
"""Represents allocation state of vlan_id on physical network."""
__tablename__ = 'hyperv_vlan_allocations'
physical_network = Column(String(64), nullable=False, primary_key=True)
@ -37,7 +37,7 @@ class VlanAllocation(model_base.BASEV2):
class NetworkBinding(model_base.BASEV2):
"""Represents binding of virtual network to physical realization"""
"""Represents binding of virtual network to physical realization."""
__tablename__ = 'hyperv_network_bindings'
network_id = Column(String(36),

View File

@ -47,7 +47,7 @@ class HyperVRpcCallbacks(
return q_rpc.PluginRpcDispatcher([self])
def get_device_details(self, rpc_context, **kwargs):
"""Agent requests device details"""
"""Agent requests device details."""
agent_id = kwargs.get('agent_id')
device = kwargs.get('device')
LOG.debug(_("Device %(device)s details requested from %(agent_id)s"),
@ -70,8 +70,8 @@ class HyperVRpcCallbacks(
return entry
def update_device_down(self, rpc_context, **kwargs):
"""Device no longer exists on agent"""
# (TODO) garyk - live migration and port status
"""Device no longer exists on agent."""
# TODO(garyk) - live migration and port status
agent_id = kwargs.get('agent_id')
device = kwargs.get('device')
LOG.debug(_("Device %(device)s no longer exists on %(agent_id)s"),
@ -90,7 +90,8 @@ class HyperVRpcCallbacks(
def tunnel_sync(self, rpc_context, **kwargs):
"""Dummy function for ovs agent running on Linux to
work with Hyper-V plugin and agent."""
work with Hyper-V plugin and agent.
"""
entry = dict()
entry['tunnels'] = {}
# Return the list of tunnels IP's to the agent

View File

@ -93,7 +93,7 @@ def sync_network_states(network_vlan_ranges):
def get_network_state(physical_network, vlan_id):
"""Get state of specified network"""
"""Get state of specified network."""
session = db.get_session()
try:
@ -193,7 +193,7 @@ def get_network_binding(session, network_id):
def get_port_from_device(device):
"""Get port from database"""
"""Get port from database."""
LOG.debug(_("get_port_from_device() called"))
session = db.get_session()
sg_binding_port = sg_db.SecurityGroupPortBinding.port_id
@ -221,7 +221,7 @@ def get_port_from_device(device):
def set_port_status(port_id, status):
"""Set the port status"""
"""Set the port status."""
LOG.debug(_("set_port_status as %s called"), status)
session = db.get_session()
try:

View File

@ -19,7 +19,7 @@ from quantum.db import model_base
class NetworkState(model_base.BASEV2):
"""Represents state of vlan_id on physical network"""
"""Represents state of vlan_id on physical network."""
__tablename__ = 'network_states'
physical_network = sa.Column(sa.String(64), nullable=False,
@ -39,7 +39,7 @@ class NetworkState(model_base.BASEV2):
class NetworkBinding(model_base.BASEV2):
"""Represents binding of virtual network to physical_network and vlan_id"""
"""Represents binding of virtual network to physical network and vlan."""
__tablename__ = 'network_bindings'
network_id = sa.Column(sa.String(36),

View File

@ -76,7 +76,7 @@ class LinuxBridgeRpcCallbacks(dhcp_rpc_base.DhcpRpcCallbackMixin,
return port
def get_device_details(self, rpc_context, **kwargs):
"""Agent requests device details"""
"""Agent requests device details."""
agent_id = kwargs.get('agent_id')
device = kwargs.get('device')
LOG.debug(_("Device %(device)s details requested from %(agent_id)s"),
@ -101,8 +101,8 @@ class LinuxBridgeRpcCallbacks(dhcp_rpc_base.DhcpRpcCallbackMixin,
return entry
def update_device_down(self, rpc_context, **kwargs):
"""Device no longer exists on agent"""
# (TODO) garyk - live migration and port status
"""Device no longer exists on agent."""
# TODO(garyk) - live migration and port status
agent_id = kwargs.get('agent_id')
device = kwargs.get('device')
LOG.debug(_("Device %(device)s no longer exists on %(agent_id)s"),
@ -121,7 +121,7 @@ class LinuxBridgeRpcCallbacks(dhcp_rpc_base.DhcpRpcCallbackMixin,
return entry
def update_device_up(self, rpc_context, **kwargs):
"""Device is up on agent"""
"""Device is up on agent."""
agent_id = kwargs.get('agent_id')
device = kwargs.get('device')
LOG.debug(_("Device %(device)s up %(agent_id)s"),

View File

@ -166,7 +166,7 @@ class MetaPluginV2(db_base_plugin_v2.QuantumDbPluginV2,
try:
meta_db_v2.add_network_flavor_binding(context.session,
flavor, str(net['id']))
except:
except Exception:
LOG.exception(_('Failed to add flavor bindings'))
plugin.delete_network(context, net['id'])
raise FaildToAddFlavorBinding()

View File

@ -54,7 +54,7 @@ class ProxyPluginV2(db_base_plugin_v2.QuantumDbPluginV2,
try:
subnet_in_db = super(ProxyPluginV2, self).create_subnet(
context, subnet)
except:
except Exception:
self._get_client().delete_subnet(subnet_remote['id'])
return subnet_in_db
@ -82,7 +82,7 @@ class ProxyPluginV2(db_base_plugin_v2.QuantumDbPluginV2,
try:
network_in_db = super(ProxyPluginV2, self).create_network(
context, network)
except:
except Exception:
self._get_client().delete_network(network_remote['id'])
return network_in_db
@ -110,7 +110,7 @@ class ProxyPluginV2(db_base_plugin_v2.QuantumDbPluginV2,
try:
port_in_db = super(ProxyPluginV2, self).create_port(
context, port)
except:
except Exception:
self._get_client().delete_port(port_remote['id'])
return port_in_db

View File

@ -522,7 +522,7 @@ class MidonetPluginV2(db_base_plugin_v2.QuantumDbPluginV2,
LOG.debug(_("MidonetPluginV2.create_router called: router=%r"), router)
if router['router']['admin_state_up'] is False:
LOG.warning(_('Ignoreing admin_state_up=False for router=%r',
LOG.warning(_('Ignoring admin_state_up=False for router=%r. '
'Overriding with True'), router)
router['router']['admin_state_up'] = True

View File

@ -51,7 +51,7 @@ class NECPluginApi(agent_rpc.PluginApi):
def update_ports(self, context, agent_id, datapath_id,
port_added, port_removed):
"""RPC to update information of ports on Quantum Server"""
"""RPC to update information of ports on Quantum Server."""
LOG.info(_("Update ports: added=%(added)s, "
"removed=%(removed)s"),
{'added': port_added, 'removed': port_removed})

View File

@ -27,7 +27,7 @@ LOG = logging.getLogger(__name__)
class OFCClient(object):
"""A HTTP/HTTPS client for OFC Drivers"""
"""A HTTP/HTTPS client for OFC Drivers."""
def __init__(self, host="127.0.0.1", port=8888, use_ssl=False,
key_file=None, cert_file=None):
@ -47,7 +47,7 @@ class OFCClient(object):
self.connection = None
def get_connection_type(self):
"""Returns the proper connection type"""
"""Returns the proper connection type."""
if self.use_ssl:
return httplib.HTTPSConnection
else:

View File

@ -203,7 +203,7 @@ def del_portinfo(session, id):
def get_port_from_device(port_id):
"""Get port from database"""
"""Get port from database."""
LOG.debug(_("get_port_with_securitygroups() called:port_id=%s"), port_id)
session = db.get_session()
sg_binding_port = sg_db.SecurityGroupPortBinding.port_id

View File

@ -21,16 +21,16 @@ from quantum.db import model_base
from quantum.db import models_v2
"""New mapping tables"""
"""New mapping tables."""
class OFCId(object):
"""Resource ID on OpenFlow Controller"""
"""Resource ID on OpenFlow Controller."""
ofc_id = sa.Column(sa.String(255), unique=True, nullable=False)
class QuantumId(object):
"""Logical ID on Quantum"""
"""Logical ID on Quantum."""
quantum_id = sa.Column(sa.String(36), primary_key=True)
@ -50,11 +50,11 @@ class OFCFilterMapping(model_base.BASEV2, QuantumId, OFCId):
"""Represents a Filter on OpenFlow Network/Controller."""
"""Old mapping tables"""
"""Old mapping tables."""
class HasQuantumId(object):
"""Logical ID on Quantum"""
"""Logical ID on Quantum."""
quantum_id = sa.Column(sa.String(36), nullable=False)
@ -83,7 +83,7 @@ class PortInfo(model_base.BASEV2, models_v2.HasId):
class PacketFilter(model_base.BASEV2, models_v2.HasId, models_v2.HasTenant):
"""Represents a packet filter"""
"""Represents a packet filter."""
network_id = sa.Column(sa.String(36),
sa.ForeignKey('networks.id', ondelete="CASCADE"),
nullable=False)

View File

@ -30,7 +30,7 @@ LOG = logging.getLogger(__name__)
class NECPluginV2Base(db_base_plugin_v2.QuantumDbPluginV2):
""" Base class of plugins that handle packet filters. """
"""Base class of plugins that handle packet filters."""
def _make_packet_filter_dict(self, packet_filter, fields=None):
res = {'id': packet_filter['id'],

View File

@ -45,7 +45,7 @@ class PFCDriverBase(ofc_driver_base.OFCDriverBase):
return False
def _generate_pfc_str(self, raw_str):
"""Generate PFC acceptable String"""
"""Generate PFC acceptable String."""
return re.sub(r'[^0-9a-zA-Z]', '_', raw_str)
def _generate_pfc_id(self, id_str):
@ -63,7 +63,7 @@ class PFCDriverBase(ofc_driver_base.OFCDriverBase):
uuid_str = str(uuid.UUID(id_str)).replace('-', '')
uuid_no_version = uuid_str[:12] + uuid_str[13:]
return uuid_no_version[:31]
except:
except Exception:
return self._generate_pfc_str(id_str)[:31]
def _generate_pfc_description(self, desc):

View File

@ -23,7 +23,7 @@ from quantum.plugins.nec import ofc_driver_base
class TremaDriverBase(ofc_driver_base.OFCDriverBase):
"""Common class for Trema (Sliceable Switch) Drivers"""
"""Common class for Trema (Sliceable Switch) Drivers."""
networks_path = "/networks"
network_path = "/networks/%s"
@ -75,7 +75,7 @@ class TremaDriverBase(ofc_driver_base.OFCDriverBase):
class TremaFilterDriver(object):
"""Trema (Sliceable Switch) PacketFilter Driver Mixin"""
"""Trema (Sliceable Switch) PacketFilter Driver Mixin."""
filters_path = "/filters"
filter_path = "/filters/%s"

View File

@ -595,7 +595,7 @@ class NECPluginV2(nec_plugin_base.NECPluginV2Base,
class NECPluginV2AgentNotifierApi(proxy.RpcProxy,
sg_rpc.SecurityGroupAgentRpcApiMixin):
'''RPC API for NEC plugin agent'''
'''RPC API for NEC plugin agent.'''
BASE_RPC_API_VERSION = '1.0'

View File

@ -31,10 +31,10 @@ from quantum.api.rpc.agentnotifiers import dhcp_rpc_agent_api
from quantum.api.v2 import attributes as attr
from quantum.api.v2 import base
from quantum.common import constants
from quantum import context as q_context
from quantum.common import exceptions as q_exc
from quantum.common import rpc as q_rpc
from quantum.common import topics
from quantum import context as q_context
from quantum.db import agents_db
from quantum.db import agentschedulers_db
from quantum.db import api as db
@ -51,11 +51,10 @@ from quantum.extensions import providernet as pnet
from quantum.extensions import securitygroup as ext_sg
from quantum.openstack.common import importutils
from quantum.openstack.common import rpc
from quantum.plugins.nicira.common import metadata_access as nvp_meta
from quantum.plugins.nicira.common import securitygroups as nvp_sec
from quantum import policy
from quantum.plugins.nicira.common import config
from quantum.plugins.nicira.common import exceptions as nvp_exc
from quantum.plugins.nicira.common import metadata_access as nvp_meta
from quantum.plugins.nicira.common import securitygroups as nvp_sec
from quantum.plugins.nicira.extensions import nvp_networkgw as networkgw
from quantum.plugins.nicira.extensions import nvp_qos as ext_qos
from quantum.plugins.nicira import nicira_db
@ -65,6 +64,7 @@ from quantum.plugins.nicira import nvp_cluster
from quantum.plugins.nicira.nvp_plugin_version import PLUGIN_VERSION
from quantum.plugins.nicira import NvpApiClient
from quantum.plugins.nicira import nvplib
from quantum import policy
LOG = logging.getLogger("QuantumPlugin")
NVP_NOSNAT_RULES_ORDER = 10
@ -74,7 +74,7 @@ NVP_EXTGW_NAT_RULES_ORDER = 255
# Provider network extension - allowed network types for the NVP Plugin
class NetworkTypes:
""" Allowed provider network types for the NVP Plugin """
"""Allowed provider network types for the NVP Plugin."""
L3_EXT = 'l3_ext'
STT = 'stt'
GRE = 'gre'
@ -315,7 +315,7 @@ class NvpPluginV2(db_base_plugin_v2.QuantumDbPluginV2,
raise
def _build_ip_address_list(self, context, fixed_ips, subnet_ids=None):
""" Build ip_addresses data structure for logical router port
"""Build ip_addresses data structure for logical router port
No need to perform validation on IPs - this has already been
done in the l3_db mixin class
@ -392,7 +392,7 @@ class NvpPluginV2(db_base_plugin_v2.QuantumDbPluginV2,
'router_id': router_id}))
def _get_port_by_device_id(self, context, device_id, device_owner):
""" Retrieve ports associated with a specific device id.
"""Retrieve ports associated with a specific device id.
Used for retrieving all quantum ports attached to a given router.
"""
@ -402,7 +402,7 @@ class NvpPluginV2(db_base_plugin_v2.QuantumDbPluginV2,
device_owner=device_owner,).all()
def _find_router_subnets_cidrs(self, context, router_id):
""" Retrieve subnets attached to the specified router """
"""Retrieve subnets attached to the specified router."""
ports = self._get_port_by_device_id(context, router_id,
l3_db.DEVICE_OWNER_ROUTER_INTF)
# No need to check for overlapping CIDRs
@ -430,8 +430,8 @@ class NvpPluginV2(db_base_plugin_v2.QuantumDbPluginV2,
cluster, network, network_binding, max_ports,
allow_extra_lswitches)
except NvpApiClient.NvpApiException:
err_desc = _(("An exception occured while selecting logical "
"switch for the port"))
err_desc = _("An exception occured while selecting logical "
"switch for the port")
LOG.exception(err_desc)
raise nvp_exc.NvpPluginException(err_msg=err_desc)
@ -448,7 +448,7 @@ class NvpPluginV2(db_base_plugin_v2.QuantumDbPluginV2,
port_data[ext_qos.QUEUE])
def _nvp_create_port(self, context, port_data):
""" Driver for creating a logical switch port on NVP platform """
"""Driver for creating a logical switch port on NVP platform."""
# FIXME(salvatore-orlando): On the NVP platform we do not really have
# external networks. So if as user tries and create a "regular" VIF
# port on an external network we are unable to actually create.
@ -540,7 +540,7 @@ class NvpPluginV2(db_base_plugin_v2.QuantumDbPluginV2,
self._nvp_delete_port(context, port_data)
def _nvp_create_router_port(self, context, port_data):
""" Driver for creating a switch port to be connected to a router """
"""Driver for creating a switch port to be connected to a router."""
# No router ports on external networks!
if self._network_is_external(context, port_data['network_id']):
raise nvp_exc.NvpPluginException(
@ -586,7 +586,7 @@ class NvpPluginV2(db_base_plugin_v2.QuantumDbPluginV2,
return lr_port
def _nvp_create_ext_gw_port(self, context, port_data):
""" Driver for creating an external gateway port on NVP platform """
"""Driver for creating an external gateway port on NVP platform."""
# TODO(salvatore-orlando): Handle NVP resource
# rollback when something goes not quite as expected
lr_port = self._find_router_gw_port(context, port_data)
@ -677,7 +677,7 @@ class NvpPluginV2(db_base_plugin_v2.QuantumDbPluginV2,
'router_id': router_id})
def _nvp_create_l2_gw_port(self, context, port_data):
""" Create a switch port, and attach it to a L2 gateway attachment """
"""Create a switch port, and attach it to a L2 gateway attachment."""
# FIXME(salvatore-orlando): On the NVP platform we do not really have
# external networks. So if as user tries and create a "regular" VIF
# port on an external network we are unable to actually create.
@ -727,10 +727,11 @@ class NvpPluginV2(db_base_plugin_v2.QuantumDbPluginV2,
pass
def _nvp_get_port_id(self, context, cluster, quantum_port):
""" Return the NVP port uuid for a given quantum port.
"""Return the NVP port uuid for a given quantum port.
First, look up the Quantum database. If not found, execute
a query on NVP platform as the mapping might be missing because
the port was created before upgrading to grizzly. """
the port was created before upgrading to grizzly.
"""
nvp_port_id = nicira_db.get_nvp_port_id(context.session,
quantum_port['id'])
if nvp_port_id:
@ -747,12 +748,12 @@ class NvpPluginV2(db_base_plugin_v2.QuantumDbPluginV2,
quantum_port['id'],
nvp_port['uuid'])
return nvp_port['uuid']
except:
except Exception:
LOG.exception(_("Unable to find NVP uuid for Quantum port %s"),
quantum_port['id'])
def _extend_fault_map(self):
""" Extends the Quantum Fault Map
"""Extends the Quantum Fault Map
Exceptions specific to the NVP Plugin are mapped to standard
HTTP Exceptions
@ -777,7 +778,7 @@ class NvpPluginV2(db_base_plugin_v2.QuantumDbPluginV2,
raise nvp_exc.NvpInvalidNovaZone(nova_zone=novazone_id)
def _find_target_cluster(self, resource):
""" Return cluster where configuration should be applied
"""Return cluster where configuration should be applied
If the resource being configured has a paremeter expressing
the zone id (nova_id), then select corresponding cluster,
@ -863,7 +864,7 @@ class NvpPluginV2(db_base_plugin_v2.QuantumDbPluginV2,
allow_extra_lswitches):
lswitches = nvplib.get_lswitches(cluster, network.id)
try:
# TODO find main_ls too!
# TODO(savatore-orlando) Find main_ls too!
return [ls for ls in lswitches
if (ls['_relations']['LogicalSwitchStatus']
['lport_count'] < max_ports)].pop(0)
@ -1025,7 +1026,8 @@ class NvpPluginV2(db_base_plugin_v2.QuantumDbPluginV2,
def _get_lswitch_cluster_pairs(self, netw_id, tenant_id):
"""Figure out the set of lswitches on each cluster that maps to this
network id"""
network id
"""
pairs = []
for c in self.clusters.itervalues():
lswitches = []
@ -1454,7 +1456,7 @@ class NvpPluginV2(db_base_plugin_v2.QuantumDbPluginV2,
try:
ret_port['status'] = nvplib.get_port_status(
self.default_cluster, ret_port['network_id'], nvp_port_id)
except:
except Exception:
LOG.warn(_("Unable to retrieve port status for:%s."), nvp_port_id)
return ret_port
@ -1520,7 +1522,7 @@ class NvpPluginV2(db_base_plugin_v2.QuantumDbPluginV2,
# If there's no nvp IP do not bother going to NVP and put
# the port in error state
if nvp_id:
#TODO: pass the appropriate cluster here
#TODO(salvatore-orlando): pass the appropriate cluster here
try:
port = nvplib.get_logical_port_status(
self.default_cluster, quantum_db_port['network_id'],
@ -1930,7 +1932,7 @@ class NvpPluginV2(db_base_plugin_v2.QuantumDbPluginV2,
ips_to_remove=nvp_floating_ips)
def _update_fip_assoc(self, context, fip, floatingip_db, external_port):
""" Update floating IP association data.
"""Update floating IP association data.
Overrides method from base class.
The method is augmented for creating NAT rules in the process.
@ -2048,7 +2050,7 @@ class NvpPluginV2(db_base_plugin_v2.QuantumDbPluginV2,
super(NvpPluginV2, self).disassociate_floatingips(context, port_id)
def create_network_gateway(self, context, network_gateway):
""" Create a layer-2 network gateway
"""Create a layer-2 network gateway
Create the gateway service on NVP platform and corresponding data
structures in Quantum datase
@ -2077,7 +2079,7 @@ class NvpPluginV2(db_base_plugin_v2.QuantumDbPluginV2,
network_gateway)
def delete_network_gateway(self, context, id):
""" Remove a layer-2 network gateway
"""Remove a layer-2 network gateway
Remove the gateway service from NVP platform and corresponding data
structures in Quantum datase
@ -2156,12 +2158,12 @@ class NvpPluginV2(db_base_plugin_v2.QuantumDbPluginV2,
context, security_group_id)
def create_security_group_rule(self, context, security_group_rule):
"""create a single security group rule"""
"""create a single security group rule."""
bulk_rule = {'security_group_rules': [security_group_rule]}
return self.create_security_group_rule_bulk(context, bulk_rule)[0]
def create_security_group_rule_bulk(self, context, security_group_rule):
""" create security group rules
"""create security group rules
:param security_group_rule: list of rules to create
"""
s = security_group_rule.get('security_group_rules')
@ -2194,7 +2196,7 @@ class NvpPluginV2(db_base_plugin_v2.QuantumDbPluginV2,
context, security_group_rule)
def delete_security_group_rule(self, context, sgrid):
""" Delete a security group rule
"""Delete a security group rule
:param sgrid: security group id to remove.
"""
with context.session.begin(subtransactions=True):

View File

@ -21,8 +21,8 @@
from abc import ABCMeta
import httplib
import time
import logging
import time
from quantum.plugins.nicira.api_client.common import (

View File

@ -23,8 +23,7 @@ import logging
import time
from quantum.plugins.nicira.api_client import client
from quantum.plugins.nicira.api_client import (
request_eventlet)
from quantum.plugins.nicira.api_client import request_eventlet
eventlet.monkey_patch()

View File

@ -15,7 +15,7 @@
# License for the specific language governing permissions and limitations
# under the License.
""" NVP Plugin exceptions """
"""NVP Plugin exceptions"""
from quantum.common import exceptions as q_exc

View File

@ -81,7 +81,7 @@ class NVPSecurityGroups(object):
return self._convert_to_nvp_rules(rules, with_id)
def _get_profile_uuid(self, context, remote_group_id):
"""Return profile id from novas group id. """
"""Return profile id from novas group id."""
security_group = self.get_security_group(context, remote_group_id)
if not security_group:
raise ext_sg.SecurityGroupNotFound(id=remote_group_id)

View File

@ -55,7 +55,7 @@ RESOURCE_ATTRIBUTE_MAP = {
def _validate_device_list(data, valid_values=None):
""" Validate the list of service definitions. """
"""Validate the list of service definitions."""
if not data:
# Devices must be provided
msg = _("Cannot create a gateway with an empty device list")
@ -89,7 +89,7 @@ attributes.validators['type:device_list'] = _validate_device_list
class Nvp_networkgw(object):
""" API extension for Layer-2 Gateway support.
"""API extension for Layer-2 Gateway support.
The Layer-2 gateway feature allows for connecting quantum networks
with external networks at the layer-2 level. No assumption is made on
@ -122,7 +122,7 @@ class Nvp_networkgw(object):
@classmethod
def get_resources(cls):
""" Returns Ext Resources """
"""Returns Ext Resources."""
plugin = manager.QuantumManager.get_plugin()
params = RESOURCE_ATTRIBUTE_MAP.get(COLLECTION_NAME, dict())

View File

@ -20,9 +20,9 @@
from abc import abstractmethod
from quantum.api import extensions
from quantum.api.v2 import attributes as attr
from quantum.api.v2 import base
from quantum.api import extensions
from quantum.common import exceptions as qexception
from quantum import manager
@ -137,7 +137,7 @@ EXTENDED_ATTRIBUTES_2_0 = {
class Nvp_qos(object):
"""Port Queue extension"""
"""Port Queue extension."""
@classmethod
def get_name(cls):
@ -161,7 +161,7 @@ class Nvp_qos(object):
@classmethod
def get_resources(cls):
""" Returns Ext Resources """
"""Returns Ext Resources."""
exts = []
plugin = manager.QuantumManager.get_plugin()
resource_name = 'qos_queue'

View File

@ -82,7 +82,7 @@ base.FAULT_MAP.update({GatewayInUse: web_exc.HTTPConflict,
class NetworkConnection(model_base.BASEV2, models_v2.HasTenant):
""" Defines a connection between a network gateway and a network """
"""Defines a connection between a network gateway and a network."""
# We use port_id as the primary key as one can connect a gateway
# to a network in multiple ways (and we cannot use the same port form
# more than a single gateway)
@ -115,7 +115,7 @@ class NetworkGatewayDevice(model_base.BASEV2):
class NetworkGateway(model_base.BASEV2, models_v2.HasId,
models_v2.HasTenant):
""" Defines the data model for a network gateway """
"""Defines the data model for a network gateway."""
name = sa.Column(sa.String(255))
# Tenant id is nullable for this resource
tenant_id = sa.Column(sa.String(36))
@ -194,7 +194,7 @@ class NetworkGatewayMixin(nvp_networkgw.NetworkGatewayPluginBase):
gw['default'] = True
def prevent_network_gateway_port_deletion(self, context, port):
""" Pre-deletion check.
"""Pre-deletion check.
Ensures a port will not be deleted if is being used by a network
gateway. In that case an exception will be raised.

View File

@ -153,7 +153,7 @@ def _check_and_truncate_name(display_name):
def get_cluster_version(cluster):
"""Return major/minor version #"""
"""Return major/minor version #."""
# Get control-cluster nodes
uri = "/ws.v1/control-cluster/node?_page_length=1&fields=uuid"
try:
@ -199,7 +199,8 @@ def get_all_query_pages(path, c):
def do_single_request(*args, **kwargs):
"""Issue a request to a specified cluster if specified via kwargs
(cluster=<cluster>)."""
(cluster=<cluster>).
"""
cluster = kwargs["cluster"]
try:
req = cluster.api_client.request(*args)
@ -209,7 +210,7 @@ def do_single_request(*args, **kwargs):
def do_multi_request(*args, **kwargs):
"""Issue a request to all clusters"""
"""Issue a request to all clusters."""
results = []
clusters = kwargs["clusters"]
for x in clusters:
@ -343,7 +344,7 @@ def update_lswitch(cluster, lswitch_id, display_name,
def create_l2_gw_service(cluster, tenant_id, display_name, devices):
""" Create a NVP Layer-2 Network Gateway Service.
"""Create a NVP Layer-2 Network Gateway Service.
:param cluster: The target NVP cluster
:param tenant_id: Identifier of the Openstack tenant for which
@ -379,7 +380,7 @@ def create_l2_gw_service(cluster, tenant_id, display_name, devices):
def create_lrouter(cluster, tenant_id, display_name, nexthop):
""" Create a NVP logical router on the specified cluster.
"""Create a NVP logical router on the specified cluster.
:param cluster: The target NVP cluster
:param tenant_id: Identifier of the Openstack tenant for which
@ -776,7 +777,7 @@ def create_lport(cluster, lswitch_uuid, tenant_id, quantum_port_id,
display_name, device_id, admin_status_enabled,
mac_address=None, fixed_ips=None, port_security_enabled=None,
security_profiles=None, queue_id=None):
""" Creates a logical port on the assigned logical switch """
"""Creates a logical port on the assigned logical switch."""
# device_id can be longer than 40 so we rehash it
hashed_device_id = hashlib.sha1(device_id).hexdigest()
display_name = _check_and_truncate_name(display_name)
@ -810,7 +811,7 @@ def create_lport(cluster, lswitch_uuid, tenant_id, quantum_port_id,
def create_router_lport(cluster, lrouter_uuid, tenant_id, quantum_port_id,
display_name, admin_status_enabled, ip_addresses):
""" Creates a logical port on the assigned logical router """
"""Creates a logical port on the assigned logical router."""
tags = [dict(scope='os_tid', tag=tenant_id),
dict(scope='q_port_id', tag=quantum_port_id)]
lport_obj = dict(
@ -841,7 +842,7 @@ def create_router_lport(cluster, lrouter_uuid, tenant_id, quantum_port_id,
def update_router_lport(cluster, lrouter_uuid, lrouter_port_uuid,
tenant_id, quantum_port_id, display_name,
admin_status_enabled, ip_addresses):
""" Updates a logical port on the assigned logical router """
"""Updates a logical port on the assigned logical router."""
lport_obj = dict(
admin_status_enabled=admin_status_enabled,
display_name=display_name,
@ -874,7 +875,7 @@ def update_router_lport(cluster, lrouter_uuid, lrouter_port_uuid,
def delete_router_lport(cluster, lrouter_uuid, lport_uuid):
""" Creates a logical port on the assigned logical router """
"""Creates a logical port on the assigned logical router."""
path = _build_uri_path(LROUTERPORT_RESOURCE, lport_uuid, lrouter_uuid)
try:
do_single_request(HTTP_DELETE, path, cluster=cluster)
@ -906,7 +907,7 @@ def delete_peer_router_lport(cluster, lr_uuid, ls_uuid, lp_uuid):
def find_router_gw_port(context, cluster, router_id):
""" Retrieves the external gateway port for a NVP logical router """
"""Retrieves the external gateway port for a NVP logical router."""
# Find the uuid of nvp ext gw logical router port
# TODO(salvatore-orlando): Consider storing it in Quantum DB
@ -959,7 +960,7 @@ def plug_router_port_attachment(cluster, router_id, port_id,
def get_port_status(cluster, lswitch_id, port_id):
"""Retrieve the operational status of the port"""
"""Retrieve the operational status of the port."""
try:
r = do_single_request(HTTP_GET,
"/ws.v1/lswitch/%s/lport/%s/status" %
@ -996,7 +997,7 @@ def _plug_interface(cluster, lswitch_id, lport_id, att_obj):
def plug_l2_gw_service(cluster, lswitch_id, lport_id,
gateway_id, vlan_id=None):
""" Plug a Layer-2 Gateway Attachment object in a logical port """
"""Plug a Layer-2 Gateway Attachment object in a logical port."""
att_obj = {'type': 'L2GatewayAttachment',
'l2_gateway_service_uuid': gateway_id}
if vlan_id:
@ -1005,7 +1006,7 @@ def plug_l2_gw_service(cluster, lswitch_id, lport_id,
def plug_interface(cluster, lswitch_id, port, type, attachment=None):
""" Plug a VIF Attachment object in a logical port """
"""Plug a VIF Attachment object in a logical port."""
lport_obj = {}
if attachment:
lport_obj["vif_uuid"] = attachment
@ -1044,7 +1045,8 @@ def do_request(*args, **kwargs):
:param args: a list of positional arguments.
:param kwargs: a list of keyworkds arguments.
:returns: the result of do_single_request loaded into a python object
or None."""
or None.
"""
res = do_single_request(*args, **kwargs)
if res:
return json.loads(res)
@ -1055,7 +1057,8 @@ def mk_body(**kwargs):
"""Convenience function creates and dumps dictionary to string.
:param kwargs: the key/value pirs to be dumped into a json string.
:returns: a json string."""
:returns: a json string.
"""
return json.dumps(kwargs, ensure_ascii=False)
@ -1065,7 +1068,8 @@ def set_tenant_id_tag(tenant_id, taglist=None):
:param tenant_id: the tenant_id to set.
:param taglist: the taglist to append to (or None).
:returns: a new taglist that includes the old taglist with the new
tenant_id tag set."""
tenant_id tag set.
"""
new_taglist = []
if taglist:
new_taglist = [x for x in taglist if x['scope'] != TENANT_ID_SCOPE]
@ -1402,7 +1406,7 @@ def delete_lqueue(cluster, id):
# NVP API Calls for check_nvp_config utility
# -----------------------------------------------------------------------------
def check_cluster_connectivity(cluster):
"""Make sure that we can issue a request to each of the cluster nodes"""
"""Make sure that we can issue a request to each of the cluster nodes."""
try:
resp = do_single_request(HTTP_GET, "/ws.v1/control-cluster",
cluster=cluster)

View File

@ -89,7 +89,7 @@ class Port(object):
return (self and other
and self.id == other.id
and self.admin_state_up == other.admin_state_up)
except:
except Exception:
return False
def __ne__(self, other):
@ -378,7 +378,8 @@ class OVSQuantumAgent(sg_rpc.SecurityGroupAgentRpcCallbackMixin):
:param net_uuid: the network uuid associated with this vlan.
:param lvm: a LocalVLANMapping object that tracks (vlan, lsw_id,
vif_ids) mapping.'''
vif_ids) mapping.
'''
LOG.info(_("Reclaiming vlan = %(vlan_id)s from net-id = %(net_uuid)s"),
{'vlan_id': lvm.vlan,
'net_uuid': net_uuid})
@ -458,7 +459,8 @@ class OVSQuantumAgent(sg_rpc.SecurityGroupAgentRpcCallbackMixin):
VIF.
:param vif_id: the id of the vif
:param net_uuid: the net_uuid this port is associated with.'''
:param net_uuid: the net_uuid this port is associated with.
'''
if net_uuid is None:
net_uuid = self.get_net_uuid(vif_id)
@ -485,7 +487,8 @@ class OVSQuantumAgent(sg_rpc.SecurityGroupAgentRpcCallbackMixin):
def port_dead(self, port):
'''Once a port has no binding, put it on the "dead vlan".
:param port: a ovs_lib.VifPort object.'''
:param port: a ovs_lib.VifPort object.
'''
self.int_br.set_db_attribute("Port", port.port_name, "tag",
DEAD_VLAN_TAG)
self.int_br.add_flow(priority=2, in_port=port.ofport, actions="drop")
@ -511,7 +514,8 @@ class OVSQuantumAgent(sg_rpc.SecurityGroupAgentRpcCallbackMixin):
Creates tunnel bridge, and links it to the integration bridge
using a patch port.
:param tun_br: the name of the tunnel bridge.'''
:param tun_br: the name of the tunnel bridge.
'''
self.tun_br = ovs_lib.OVSBridge(tun_br, self.root_helper)
self.tun_br.reset_bridge()
self.patch_tun_ofport = self.int_br.add_patch_port(
@ -533,7 +537,8 @@ class OVSQuantumAgent(sg_rpc.SecurityGroupAgentRpcCallbackMixin):
Creates physical network bridges and links them to the
integration bridge using veths.
:param bridge_mappings: map physical network names to bridge names.'''
:param bridge_mappings: map physical network names to bridge names.
'''
self.phys_brs = {}
self.int_ofports = {}
self.phys_ofports = {}
@ -703,7 +708,7 @@ class OVSQuantumAgent(sg_rpc.SecurityGroupAgentRpcCallbackMixin):
sync = self.process_network_ports(port_info)
ports = port_info['current']
except:
except Exception:
LOG.exception(_("Error in agent event loop"))
sync = True
tunnel_sync = True

View File

@ -56,7 +56,7 @@ def add_network_binding(session, network_id, network_type,
def sync_vlan_allocations(network_vlan_ranges):
"""Synchronize vlan_allocations table with configured VLAN ranges"""
"""Synchronize vlan_allocations table with configured VLAN ranges."""
session = db.get_session()
with session.begin():
@ -197,7 +197,7 @@ def release_vlan(session, physical_network, vlan_id, network_vlan_ranges):
def sync_tunnel_allocations(tunnel_id_ranges):
"""Synchronize tunnel_allocations table with configured tunnel ranges"""
"""Synchronize tunnel_allocations table with configured tunnel ranges."""
# determine current configured allocatable tunnels
tunnel_ids = set()
@ -310,7 +310,7 @@ def get_port(port_id):
def get_port_from_device(port_id):
"""Get port from database"""
"""Get port from database."""
LOG.debug(_("get_port_with_securitygroups() called:port_id=%s"), port_id)
session = db.get_session()
sg_binding_port = sg_db.SecurityGroupPortBinding.port_id

View File

@ -23,7 +23,7 @@ from quantum.db.models_v2 import model_base
class VlanAllocation(model_base.BASEV2):
"""Represents allocation state of vlan_id on physical network"""
"""Represents allocation state of vlan_id on physical network."""
__tablename__ = 'ovs_vlan_allocations'
physical_network = Column(String(64), nullable=False, primary_key=True)
@ -42,7 +42,7 @@ class VlanAllocation(model_base.BASEV2):
class TunnelAllocation(model_base.BASEV2):
"""Represents allocation state of tunnel_id"""
"""Represents allocation state of tunnel_id."""
__tablename__ = 'ovs_tunnel_allocations'
tunnel_id = Column(Integer, nullable=False, primary_key=True,
@ -58,7 +58,7 @@ class TunnelAllocation(model_base.BASEV2):
class NetworkBinding(model_base.BASEV2):
"""Represents binding of virtual network to physical realization"""
"""Represents binding of virtual network to physical realization."""
__tablename__ = 'ovs_network_bindings'
network_id = Column(String(36),
@ -84,7 +84,7 @@ class NetworkBinding(model_base.BASEV2):
class TunnelIP(model_base.BASEV2):
"""Represents tunnel endpoint in DB mode"""
"""Represents tunnel endpoint in DB mode."""
__tablename__ = 'ovs_tunnel_ips'
ip_address = Column(String(255), primary_key=True)
@ -97,7 +97,7 @@ class TunnelIP(model_base.BASEV2):
class TunnelEndpoint(model_base.BASEV2):
"""Represents tunnel endpoint in RPC mode"""
"""Represents tunnel endpoint in RPC mode."""
__tablename__ = 'ovs_tunnel_endpoints'
ip_address = Column(String(64), primary_key=True)

View File

@ -85,7 +85,7 @@ class OVSRpcCallbacks(dhcp_rpc_base.DhcpRpcCallbackMixin,
return port
def get_device_details(self, rpc_context, **kwargs):
"""Agent requests device details"""
"""Agent requests device details."""
agent_id = kwargs.get('agent_id')
device = kwargs.get('device')
LOG.debug(_("Device %(device)s details requested from %(agent_id)s"),
@ -110,8 +110,8 @@ class OVSRpcCallbacks(dhcp_rpc_base.DhcpRpcCallbackMixin,
return entry
def update_device_down(self, rpc_context, **kwargs):
"""Device no longer exists on agent"""
# (TODO) garyk - live migration and port status
"""Device no longer exists on agent."""
# TODO(garyk) - live migration and port status
agent_id = kwargs.get('agent_id')
device = kwargs.get('device')
LOG.debug(_("Device %(device)s no longer exists on %(agent_id)s"),
@ -130,7 +130,7 @@ class OVSRpcCallbacks(dhcp_rpc_base.DhcpRpcCallbackMixin,
return entry
def update_device_up(self, rpc_context, **kwargs):
"""Device is up on agent"""
"""Device is up on agent."""
agent_id = kwargs.get('agent_id')
device = kwargs.get('device')
LOG.debug(_("Device %(device)s up on %(agent_id)s"),

View File

@ -17,7 +17,7 @@
# @author: Edgar Magana, emagana@plumgrid.com, PLUMgrid, Inc.
""" Quantum PLUMgrid Plugin exceptions """
"""Quantum PLUMgrid Plugin exceptions"""
from quantum.common import exceptions as base_exec

View File

@ -65,7 +65,7 @@ class QuantumPluginPLUMgridV2(db_base_plugin_v2.QuantumDbPluginV2):
self.topology_name = cfg.CONF.PLUMgridNOS.topologyname
self.snippets = plumgrid_nos_snippets.DataNOSPLUMgrid()
# TODO: (Edgar) These are placeholders for next PLUMgrid release
# TODO(Edgar) These are placeholders for next PLUMgrid release
cfg.CONF.PLUMgridNOS.username
cfg.CONF.PLUMgridNOS.password
self.rest_conn = rest_connection.RestConnection(nos_plumgrid,
@ -104,15 +104,20 @@ class QuantumPluginPLUMgridV2(db_base_plugin_v2.QuantumDbPluginV2):
network)
try:
LOG.debug(_('QuantumPluginPLUMgrid Status: %s, %s, %s'),
tenant_id, network["network"], net["id"])
LOG.debug(_('QuantumPluginPLUMgrid Status: %(tenant_id)s, '
'%(network)s, %(network_id)s'),
dict(
tenant_id=tenant_id,
network=network["network"],
network_id=net["id"],
))
nos_url = self.snippets.BASE_NOS_URL + net["id"]
headers = {}
body_data = self.snippets.create_domain_body_data(tenant_id)
self.rest_conn.nos_rest_conn(nos_url,
'PUT', body_data, headers)
except:
except Exception:
err_message = _("PLUMgrid NOS communication failed")
LOG.Exception(err_message)
raise plum_excep.PLUMgridException(err_message)
@ -146,7 +151,7 @@ class QuantumPluginPLUMgridV2(db_base_plugin_v2.QuantumDbPluginV2):
body_data = self.snippets.create_domain_body_data(tenant_id)
self.rest_conn.nos_rest_conn(nos_url,
'PUT', body_data, headers)
except:
except Exception:
err_message = _("PLUMgrid NOS communication failed")
LOG.Exception(err_message)
raise plum_excep.PLUMgridException(err_message)
@ -172,7 +177,7 @@ class QuantumPluginPLUMgridV2(db_base_plugin_v2.QuantumDbPluginV2):
body_data = {}
self.rest_conn.nos_rest_conn(nos_url,
'DELETE', body_data, headers)
except:
except Exception:
err_message = _("PLUMgrid NOS communication failed")
LOG.Exception(err_message)
raise plum_excep.PLUMgridException(err_message)
@ -240,7 +245,7 @@ class QuantumPluginPLUMgridV2(db_base_plugin_v2.QuantumDbPluginV2):
tenant_id, self.topology_name)
self.rest_conn.nos_rest_conn(nos_url,
'PUT', body_data, headers)
except:
except Exception:
err_message = _("PLUMgrid NOS communication failed: ")
LOG.Exception(err_message)
raise plum_excep.PLUMgridException(err_message)
@ -265,7 +270,7 @@ class QuantumPluginPLUMgridV2(db_base_plugin_v2.QuantumDbPluginV2):
body_data = {}
net_id = subnet_details["network_id"]
self._cleaning_nos_subnet_structure(body_data, headers, net_id)
except:
except Exception:
err_message = _("PLUMgrid NOS communication failed: ")
LOG.Exception(err_message)
raise plum_excep.PLUMgridException(err_message)
@ -299,7 +304,7 @@ class QuantumPluginPLUMgridV2(db_base_plugin_v2.QuantumDbPluginV2):
self.rest_conn.nos_rest_conn(nos_url,
'PUT', body_data, headers)
except:
except Exception:
err_message = _("PLUMgrid NOS communication failed: ")
LOG.Exception(err_message)
raise plum_excep.PLUMgridException(err_message)
@ -309,7 +314,7 @@ class QuantumPluginPLUMgridV2(db_base_plugin_v2.QuantumDbPluginV2):
"""
Extension API implementation
"""
# TODO: (Edgar) Complete extensions for PLUMgrid
# TODO(Edgar) Complete extensions for PLUMgrid
"""
Internal PLUMgrid fuctions
@ -332,7 +337,7 @@ class QuantumPluginPLUMgridV2(db_base_plugin_v2.QuantumDbPluginV2):
LOG.warning(_("Network with admin_state_up=False are not "
"supported yet by this plugin. Ignoring "
"setting for network %s"), network_name)
except:
except Exception:
err_message = _("Network Admin State Validation Falied: ")
LOG.Exception(err_message)
raise plum_excep.PLUMgridException(err_message)

View File

@ -50,8 +50,8 @@ class RestConnection(object):
headers['Content-type'] = 'application/json'
headers['Accept'] = 'application/json'
LOG.debug(_("PLUMgrid_NOS_Server: %s %s %s"), self.server, self.port,
action)
LOG.debug(_("PLUMgrid_NOS_Server: %(server)s %(port)s %(action)s"),
dict(server=self.server, port=self.port, action=action))
conn = httplib.HTTPConnection(self.server, self.port,
timeout=self.timeout)
@ -61,14 +61,19 @@ class RestConnection(object):
return
try:
LOG.debug(_("PLUMgrid_NOS_Server Sending Data: %s %s %s"),
nos_url, body_data, headers)
LOG.debug(_("PLUMgrid_NOS_Server Sending Data: %(nos_url)s "
"%(body_data)s %(headers)s"),
dict(
nos_url=nos_url,
body_data=body_data,
headers=headers,
))
conn.request(action, nos_url, body_data, headers)
resp = conn.getresponse()
resp_str = resp.read()
LOG.debug(_("PLUMgrid_NOS_Server Connection Data: %s, %s"),
resp, resp_str)
LOG.debug(_("PLUMgrid_NOS_Server Connection Data: %(resp)s, "
"%(resp_str)s"), dict(resp=resp, resp_str=resp_str))
if resp.status is httplib.OK:
try:

View File

@ -260,7 +260,7 @@ class OVSQuantumOFPRyuAgent(sg_rpc.SecurityGroupAgentRpcCallbackMixin):
LOG.debug(_("Agent loop has new device"))
self._process_devices_filter(port_info)
ports = port_info['current']
except:
except Exception:
LOG.exception(_("Error in agent event loop"))
elapsed = max(time.time() - start, 0)

View File

@ -161,7 +161,7 @@ class RyuQuantumPluginV2(db_base_plugin_v2.QuantumDbPluginV2,
tunnel_key = self.tunnel_key.allocate(session, net['id'])
try:
self._client_create_network(net['id'], tunnel_key)
except:
except Exception:
self._client_delete_network(net['id'])
raise

Some files were not shown because too many files have changed in this diff Show More