Remove instances of the "diaper pattern"
Anywhere "except:" occurs, I tried to replace it with an explicit except on known error types. If none were known, Except was used. In the process I've been able to unearth a few evasive bugs and clean up some adjacent code.
This commit is contained in:
		@@ -48,7 +48,6 @@ import nova.api.openstack.wsgi
 | 
				
			|||||||
# Global storage for registering modules.
 | 
					# Global storage for registering modules.
 | 
				
			||||||
ROUTES = {}
 | 
					ROUTES = {}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
def register_service(path, handle):
 | 
					def register_service(path, handle):
 | 
				
			||||||
    """Register a service handle at a given path.
 | 
					    """Register a service handle at a given path.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -296,8 +295,8 @@ class ServiceWrapper(object):
 | 
				
			|||||||
              'application/json': nova.api.openstack.wsgi.JSONDictSerializer(),
 | 
					              'application/json': nova.api.openstack.wsgi.JSONDictSerializer(),
 | 
				
			||||||
            }[content_type]
 | 
					            }[content_type]
 | 
				
			||||||
            return serializer.serialize(result)
 | 
					            return serializer.serialize(result)
 | 
				
			||||||
        except:
 | 
					        except Exception, e:
 | 
				
			||||||
            raise exception.Error("returned non-serializable type: %s"
 | 
					            raise exception.Error(_("Returned non-serializable type: %s")
 | 
				
			||||||
                                  % result)
 | 
					                                  % result)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -147,7 +147,7 @@ class Authenticate(wsgi.Middleware):
 | 
				
			|||||||
        try:
 | 
					        try:
 | 
				
			||||||
            signature = req.params['Signature']
 | 
					            signature = req.params['Signature']
 | 
				
			||||||
            access = req.params['AWSAccessKeyId']
 | 
					            access = req.params['AWSAccessKeyId']
 | 
				
			||||||
        except:
 | 
					        except KeyError, e:
 | 
				
			||||||
            raise webob.exc.HTTPBadRequest()
 | 
					            raise webob.exc.HTTPBadRequest()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        # Make a copy of args for authentication and signature verification.
 | 
					        # Make a copy of args for authentication and signature verification.
 | 
				
			||||||
@@ -211,7 +211,7 @@ class Requestify(wsgi.Middleware):
 | 
				
			|||||||
            for non_arg in non_args:
 | 
					            for non_arg in non_args:
 | 
				
			||||||
                # Remove, but raise KeyError if omitted
 | 
					                # Remove, but raise KeyError if omitted
 | 
				
			||||||
                args.pop(non_arg)
 | 
					                args.pop(non_arg)
 | 
				
			||||||
        except:
 | 
					        except KeyError, e:
 | 
				
			||||||
            raise webob.exc.HTTPBadRequest()
 | 
					            raise webob.exc.HTTPBadRequest()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        LOG.debug(_('action: %s'), action)
 | 
					        LOG.debug(_('action: %s'), action)
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -104,7 +104,7 @@ class APIRequest(object):
 | 
				
			|||||||
            for key in data.keys():
 | 
					            for key in data.keys():
 | 
				
			||||||
                val = data[key]
 | 
					                val = data[key]
 | 
				
			||||||
                el.appendChild(self._render_data(xml, key, val))
 | 
					                el.appendChild(self._render_data(xml, key, val))
 | 
				
			||||||
        except:
 | 
					        except Exception:
 | 
				
			||||||
            LOG.debug(data)
 | 
					            LOG.debug(data)
 | 
				
			||||||
            raise
 | 
					            raise
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -16,7 +16,7 @@
 | 
				
			|||||||
#    under the License.
 | 
					#    under the License.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import re
 | 
					import re
 | 
				
			||||||
from urlparse import urlparse
 | 
					import urlparse
 | 
				
			||||||
from xml.dom import minidom
 | 
					from xml.dom import minidom
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import webob
 | 
					import webob
 | 
				
			||||||
@@ -137,8 +137,8 @@ def get_id_from_href(href):
 | 
				
			|||||||
    if re.match(r'\d+$', str(href)):
 | 
					    if re.match(r'\d+$', str(href)):
 | 
				
			||||||
        return int(href)
 | 
					        return int(href)
 | 
				
			||||||
    try:
 | 
					    try:
 | 
				
			||||||
        return int(urlparse(href).path.split('/')[-1])
 | 
					        return int(urlparse.urlsplit(href).path.split('/')[-1])
 | 
				
			||||||
    except:
 | 
					    except ValueError, e:
 | 
				
			||||||
        LOG.debug(_("Error extracting id from href: %s") % href)
 | 
					        LOG.debug(_("Error extracting id from href: %s") % href)
 | 
				
			||||||
        raise ValueError(_('could not parse id from href'))
 | 
					        raise ValueError(_('could not parse id from href'))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -153,22 +153,17 @@ def remove_version_from_href(href):
 | 
				
			|||||||
    Returns: 'http://www.nova.com'
 | 
					    Returns: 'http://www.nova.com'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    """
 | 
					    """
 | 
				
			||||||
    try:
 | 
					    parsed_url = urlparse.urlsplit(href)
 | 
				
			||||||
        #removes the first instance that matches /v#.#/
 | 
					    new_path = re.sub(r'^/v[0-9]+\.[0-9]+(/|$)', r'\1', parsed_url.path, count=1)
 | 
				
			||||||
        new_href = re.sub(r'[/][v][0-9]+\.[0-9]+[/]', '/', href, count=1)
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
        #if no version was found, try finding /v#.# at the end of the string
 | 
					    if new_path == parsed_url.path:
 | 
				
			||||||
        if new_href == href:
 | 
					        msg = _('href %s does not contain version') % href
 | 
				
			||||||
            new_href = re.sub(r'[/][v][0-9]+\.[0-9]+$', '', href, count=1)
 | 
					        LOG.debug(msg)
 | 
				
			||||||
    except:
 | 
					 | 
				
			||||||
        LOG.debug(_("Error removing version from href: %s") % href)
 | 
					 | 
				
			||||||
        msg = _('could not parse version from href')
 | 
					 | 
				
			||||||
        raise ValueError(msg)
 | 
					        raise ValueError(msg)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if new_href == href:
 | 
					    parsed_url = list(parsed_url)
 | 
				
			||||||
        msg = _('href does not contain version')
 | 
					    parsed_url[2] = new_path
 | 
				
			||||||
        raise ValueError(msg)
 | 
					    return urlparse.urlunsplit(parsed_url)
 | 
				
			||||||
    return new_href
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
def get_version_from_href(href):
 | 
					def get_version_from_href(href):
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -290,7 +290,7 @@ class Controller(object):
 | 
				
			|||||||
        context = req.environ['nova.context']
 | 
					        context = req.environ['nova.context']
 | 
				
			||||||
        try:
 | 
					        try:
 | 
				
			||||||
            self.compute_api.lock(context, id)
 | 
					            self.compute_api.lock(context, id)
 | 
				
			||||||
        except:
 | 
					        except Exception:
 | 
				
			||||||
            readable = traceback.format_exc()
 | 
					            readable = traceback.format_exc()
 | 
				
			||||||
            LOG.exception(_("Compute.api::lock %s"), readable)
 | 
					            LOG.exception(_("Compute.api::lock %s"), readable)
 | 
				
			||||||
            raise exc.HTTPUnprocessableEntity()
 | 
					            raise exc.HTTPUnprocessableEntity()
 | 
				
			||||||
@@ -306,7 +306,7 @@ class Controller(object):
 | 
				
			|||||||
        context = req.environ['nova.context']
 | 
					        context = req.environ['nova.context']
 | 
				
			||||||
        try:
 | 
					        try:
 | 
				
			||||||
            self.compute_api.unlock(context, id)
 | 
					            self.compute_api.unlock(context, id)
 | 
				
			||||||
        except:
 | 
					        except Exception:
 | 
				
			||||||
            readable = traceback.format_exc()
 | 
					            readable = traceback.format_exc()
 | 
				
			||||||
            LOG.exception(_("Compute.api::unlock %s"), readable)
 | 
					            LOG.exception(_("Compute.api::unlock %s"), readable)
 | 
				
			||||||
            raise exc.HTTPUnprocessableEntity()
 | 
					            raise exc.HTTPUnprocessableEntity()
 | 
				
			||||||
@@ -321,7 +321,7 @@ class Controller(object):
 | 
				
			|||||||
        context = req.environ['nova.context']
 | 
					        context = req.environ['nova.context']
 | 
				
			||||||
        try:
 | 
					        try:
 | 
				
			||||||
            self.compute_api.get_lock(context, id)
 | 
					            self.compute_api.get_lock(context, id)
 | 
				
			||||||
        except:
 | 
					        except Exception:
 | 
				
			||||||
            readable = traceback.format_exc()
 | 
					            readable = traceback.format_exc()
 | 
				
			||||||
            LOG.exception(_("Compute.api::get_lock %s"), readable)
 | 
					            LOG.exception(_("Compute.api::get_lock %s"), readable)
 | 
				
			||||||
            raise exc.HTTPUnprocessableEntity()
 | 
					            raise exc.HTTPUnprocessableEntity()
 | 
				
			||||||
@@ -336,7 +336,7 @@ class Controller(object):
 | 
				
			|||||||
        context = req.environ['nova.context']
 | 
					        context = req.environ['nova.context']
 | 
				
			||||||
        try:
 | 
					        try:
 | 
				
			||||||
            self.compute_api.reset_network(context, id)
 | 
					            self.compute_api.reset_network(context, id)
 | 
				
			||||||
        except:
 | 
					        except Exception:
 | 
				
			||||||
            readable = traceback.format_exc()
 | 
					            readable = traceback.format_exc()
 | 
				
			||||||
            LOG.exception(_("Compute.api::reset_network %s"), readable)
 | 
					            LOG.exception(_("Compute.api::reset_network %s"), readable)
 | 
				
			||||||
            raise exc.HTTPUnprocessableEntity()
 | 
					            raise exc.HTTPUnprocessableEntity()
 | 
				
			||||||
@@ -351,7 +351,7 @@ class Controller(object):
 | 
				
			|||||||
        context = req.environ['nova.context']
 | 
					        context = req.environ['nova.context']
 | 
				
			||||||
        try:
 | 
					        try:
 | 
				
			||||||
            self.compute_api.inject_network_info(context, id)
 | 
					            self.compute_api.inject_network_info(context, id)
 | 
				
			||||||
        except:
 | 
					        except Exception:
 | 
				
			||||||
            readable = traceback.format_exc()
 | 
					            readable = traceback.format_exc()
 | 
				
			||||||
            LOG.exception(_("Compute.api::inject_network_info %s"), readable)
 | 
					            LOG.exception(_("Compute.api::inject_network_info %s"), readable)
 | 
				
			||||||
            raise exc.HTTPUnprocessableEntity()
 | 
					            raise exc.HTTPUnprocessableEntity()
 | 
				
			||||||
@@ -363,7 +363,7 @@ class Controller(object):
 | 
				
			|||||||
        ctxt = req.environ['nova.context']
 | 
					        ctxt = req.environ['nova.context']
 | 
				
			||||||
        try:
 | 
					        try:
 | 
				
			||||||
            self.compute_api.pause(ctxt, id)
 | 
					            self.compute_api.pause(ctxt, id)
 | 
				
			||||||
        except:
 | 
					        except Exception:
 | 
				
			||||||
            readable = traceback.format_exc()
 | 
					            readable = traceback.format_exc()
 | 
				
			||||||
            LOG.exception(_("Compute.api::pause %s"), readable)
 | 
					            LOG.exception(_("Compute.api::pause %s"), readable)
 | 
				
			||||||
            raise exc.HTTPUnprocessableEntity()
 | 
					            raise exc.HTTPUnprocessableEntity()
 | 
				
			||||||
@@ -375,7 +375,7 @@ class Controller(object):
 | 
				
			|||||||
        ctxt = req.environ['nova.context']
 | 
					        ctxt = req.environ['nova.context']
 | 
				
			||||||
        try:
 | 
					        try:
 | 
				
			||||||
            self.compute_api.unpause(ctxt, id)
 | 
					            self.compute_api.unpause(ctxt, id)
 | 
				
			||||||
        except:
 | 
					        except Exception:
 | 
				
			||||||
            readable = traceback.format_exc()
 | 
					            readable = traceback.format_exc()
 | 
				
			||||||
            LOG.exception(_("Compute.api::unpause %s"), readable)
 | 
					            LOG.exception(_("Compute.api::unpause %s"), readable)
 | 
				
			||||||
            raise exc.HTTPUnprocessableEntity()
 | 
					            raise exc.HTTPUnprocessableEntity()
 | 
				
			||||||
@@ -387,7 +387,7 @@ class Controller(object):
 | 
				
			|||||||
        context = req.environ['nova.context']
 | 
					        context = req.environ['nova.context']
 | 
				
			||||||
        try:
 | 
					        try:
 | 
				
			||||||
            self.compute_api.suspend(context, id)
 | 
					            self.compute_api.suspend(context, id)
 | 
				
			||||||
        except:
 | 
					        except Exception:
 | 
				
			||||||
            readable = traceback.format_exc()
 | 
					            readable = traceback.format_exc()
 | 
				
			||||||
            LOG.exception(_("compute.api::suspend %s"), readable)
 | 
					            LOG.exception(_("compute.api::suspend %s"), readable)
 | 
				
			||||||
            raise exc.HTTPUnprocessableEntity()
 | 
					            raise exc.HTTPUnprocessableEntity()
 | 
				
			||||||
@@ -399,7 +399,7 @@ class Controller(object):
 | 
				
			|||||||
        context = req.environ['nova.context']
 | 
					        context = req.environ['nova.context']
 | 
				
			||||||
        try:
 | 
					        try:
 | 
				
			||||||
            self.compute_api.resume(context, id)
 | 
					            self.compute_api.resume(context, id)
 | 
				
			||||||
        except:
 | 
					        except Exception:
 | 
				
			||||||
            readable = traceback.format_exc()
 | 
					            readable = traceback.format_exc()
 | 
				
			||||||
            LOG.exception(_("compute.api::resume %s"), readable)
 | 
					            LOG.exception(_("compute.api::resume %s"), readable)
 | 
				
			||||||
            raise exc.HTTPUnprocessableEntity()
 | 
					            raise exc.HTTPUnprocessableEntity()
 | 
				
			||||||
@@ -420,7 +420,7 @@ class Controller(object):
 | 
				
			|||||||
        context = req.environ["nova.context"]
 | 
					        context = req.environ["nova.context"]
 | 
				
			||||||
        try:
 | 
					        try:
 | 
				
			||||||
            self.compute_api.rescue(context, id)
 | 
					            self.compute_api.rescue(context, id)
 | 
				
			||||||
        except:
 | 
					        except Exception:
 | 
				
			||||||
            readable = traceback.format_exc()
 | 
					            readable = traceback.format_exc()
 | 
				
			||||||
            LOG.exception(_("compute.api::rescue %s"), readable)
 | 
					            LOG.exception(_("compute.api::rescue %s"), readable)
 | 
				
			||||||
            raise exc.HTTPUnprocessableEntity()
 | 
					            raise exc.HTTPUnprocessableEntity()
 | 
				
			||||||
@@ -432,7 +432,7 @@ class Controller(object):
 | 
				
			|||||||
        context = req.environ["nova.context"]
 | 
					        context = req.environ["nova.context"]
 | 
				
			||||||
        try:
 | 
					        try:
 | 
				
			||||||
            self.compute_api.unrescue(context, id)
 | 
					            self.compute_api.unrescue(context, id)
 | 
				
			||||||
        except:
 | 
					        except Exception:
 | 
				
			||||||
            readable = traceback.format_exc()
 | 
					            readable = traceback.format_exc()
 | 
				
			||||||
            LOG.exception(_("compute.api::unrescue %s"), readable)
 | 
					            LOG.exception(_("compute.api::unrescue %s"), readable)
 | 
				
			||||||
            raise exc.HTTPUnprocessableEntity()
 | 
					            raise exc.HTTPUnprocessableEntity()
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -141,15 +141,12 @@ class CloudPipe(object):
 | 
				
			|||||||
        try:
 | 
					        try:
 | 
				
			||||||
            result = cloud._gen_key(context, context.user_id, key_name)
 | 
					            result = cloud._gen_key(context, context.user_id, key_name)
 | 
				
			||||||
            private_key = result['private_key']
 | 
					            private_key = result['private_key']
 | 
				
			||||||
            try:
 | 
					 | 
				
			||||||
            key_dir = os.path.join(FLAGS.keys_path, context.user_id)
 | 
					            key_dir = os.path.join(FLAGS.keys_path, context.user_id)
 | 
				
			||||||
            if not os.path.exists(key_dir):
 | 
					            if not os.path.exists(key_dir):
 | 
				
			||||||
                os.makedirs(key_dir)
 | 
					                os.makedirs(key_dir)
 | 
				
			||||||
            key_path = os.path.join(key_dir, '%s.pem' % key_name)
 | 
					            key_path = os.path.join(key_dir, '%s.pem' % key_name)
 | 
				
			||||||
            with open(key_path, 'w') as f:
 | 
					            with open(key_path, 'w') as f:
 | 
				
			||||||
                f.write(private_key)
 | 
					                f.write(private_key)
 | 
				
			||||||
            except:
 | 
					        except exception.Duplicate, os.error, IOError:
 | 
				
			||||||
                pass
 | 
					 | 
				
			||||||
        except exception.Duplicate:
 | 
					 | 
				
			||||||
            pass
 | 
					            pass
 | 
				
			||||||
        return key_name
 | 
					        return key_name
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -3178,7 +3178,8 @@ def instance_metadata_delete_all(context, instance_id):
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
@require_context
 | 
					@require_context
 | 
				
			||||||
@require_instance_exists
 | 
					@require_instance_exists
 | 
				
			||||||
def instance_metadata_get_item(context, instance_id, key):
 | 
					def instance_metadata_get_item(context, instance_id, key, session=None):
 | 
				
			||||||
 | 
					    if not session:
 | 
				
			||||||
        session = get_session()
 | 
					        session = get_session()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    meta_result = session.query(models.InstanceMetadata).\
 | 
					    meta_result = session.query(models.InstanceMetadata).\
 | 
				
			||||||
@@ -3205,7 +3206,7 @@ def instance_metadata_update_or_create(context, instance_id, metadata):
 | 
				
			|||||||
        try:
 | 
					        try:
 | 
				
			||||||
            meta_ref = instance_metadata_get_item(context, instance_id, key,
 | 
					            meta_ref = instance_metadata_get_item(context, instance_id, key,
 | 
				
			||||||
                                                        session)
 | 
					                                                        session)
 | 
				
			||||||
        except:
 | 
					        except exception.InstanceMetadataNotFound, e:
 | 
				
			||||||
            meta_ref = models.InstanceMetadata()
 | 
					            meta_ref = models.InstanceMetadata()
 | 
				
			||||||
        meta_ref.update({"key": key, "value": value,
 | 
					        meta_ref.update({"key": key, "value": value,
 | 
				
			||||||
                            "instance_id": instance_id,
 | 
					                            "instance_id": instance_id,
 | 
				
			||||||
@@ -3300,7 +3301,8 @@ def instance_type_extra_specs_delete(context, instance_type_id, key):
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@require_context
 | 
					@require_context
 | 
				
			||||||
def instance_type_extra_specs_get_item(context, instance_type_id, key):
 | 
					def instance_type_extra_specs_get_item(context, instance_type_id, key, session=None):
 | 
				
			||||||
 | 
					    if not session:
 | 
				
			||||||
        session = get_session()
 | 
					        session = get_session()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    spec_result = session.query(models.InstanceTypeExtraSpecs).\
 | 
					    spec_result = session.query(models.InstanceTypeExtraSpecs).\
 | 
				
			||||||
@@ -3327,7 +3329,7 @@ def instance_type_extra_specs_update_or_create(context, instance_type_id,
 | 
				
			|||||||
                                                          instance_type_id,
 | 
					                                                          instance_type_id,
 | 
				
			||||||
                                                          key,
 | 
					                                                          key,
 | 
				
			||||||
                                                          session)
 | 
					                                                          session)
 | 
				
			||||||
        except:
 | 
					        except exception.InstanceTypeExtraSpecsNotFound, e:
 | 
				
			||||||
            spec_ref = models.InstanceTypeExtraSpecs()
 | 
					            spec_ref = models.InstanceTypeExtraSpecs()
 | 
				
			||||||
        spec_ref.update({"key": key, "value": value,
 | 
					        spec_ref.update({"key": key, "value": value,
 | 
				
			||||||
                         "instance_type_id": instance_type_id,
 | 
					                         "instance_type_id": instance_type_id,
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -35,6 +35,7 @@ def _parse_image_ref(image_href):
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    :param image_href: href of an image
 | 
					    :param image_href: href of an image
 | 
				
			||||||
    :returns: a tuple of the form (image_id, host, port)
 | 
					    :returns: a tuple of the form (image_id, host, port)
 | 
				
			||||||
 | 
					    :raises ValueError
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    """
 | 
					    """
 | 
				
			||||||
    o = urlparse(image_href)
 | 
					    o = urlparse(image_href)
 | 
				
			||||||
@@ -72,7 +73,7 @@ def get_glance_client(image_href):
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    try:
 | 
					    try:
 | 
				
			||||||
        (image_id, host, port) = _parse_image_ref(image_href)
 | 
					        (image_id, host, port) = _parse_image_ref(image_href)
 | 
				
			||||||
    except:
 | 
					    except ValueError:
 | 
				
			||||||
        raise exception.InvalidImageRef(image_href=image_href)
 | 
					        raise exception.InvalidImageRef(image_href=image_href)
 | 
				
			||||||
    glance_client = GlanceClient(host, port)
 | 
					    glance_client = GlanceClient(host, port)
 | 
				
			||||||
    return (glance_client, image_id)
 | 
					    return (glance_client, image_id)
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -126,6 +126,22 @@ def fetchfile(url, target):
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
def execute(*cmd, **kwargs):
 | 
					def execute(*cmd, **kwargs):
 | 
				
			||||||
 | 
					    """
 | 
				
			||||||
 | 
					    Helper method to execute command with optional retry.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    :cmd                Passed to subprocess.Popen.
 | 
				
			||||||
 | 
					    :process_input      Send to opened process.
 | 
				
			||||||
 | 
					    :addl_env           Added to the processes env.
 | 
				
			||||||
 | 
					    :check_exit_code    Defaults to 0. Raise exception.ProcessExecutionError
 | 
				
			||||||
 | 
					                        unless program exits with this code.
 | 
				
			||||||
 | 
					    :delay_on_retry     True | False. Defaults to True. If set to True, wait a
 | 
				
			||||||
 | 
					                        short amount of time before retrying.
 | 
				
			||||||
 | 
					    :attempts           How many times to retry cmd.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    :raises exception.Error on receiving unknown arguments
 | 
				
			||||||
 | 
					    :raises exception.ProcessExecutionError
 | 
				
			||||||
 | 
					    """
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    process_input = kwargs.pop('process_input', None)
 | 
					    process_input = kwargs.pop('process_input', None)
 | 
				
			||||||
    addl_env = kwargs.pop('addl_env', None)
 | 
					    addl_env = kwargs.pop('addl_env', None)
 | 
				
			||||||
    check_exit_code = kwargs.pop('check_exit_code', 0)
 | 
					    check_exit_code = kwargs.pop('check_exit_code', 0)
 | 
				
			||||||
@@ -790,7 +806,7 @@ def parse_server_string(server_str):
 | 
				
			|||||||
        (address, port) = server_str.split(':')
 | 
					        (address, port) = server_str.split(':')
 | 
				
			||||||
        return (address, port)
 | 
					        return (address, port)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    except:
 | 
					    except Exception:
 | 
				
			||||||
        LOG.debug(_('Invalid server_string: %s' % server_str))
 | 
					        LOG.debug(_('Invalid server_string: %s' % server_str))
 | 
				
			||||||
        return ('', '')
 | 
					        return ('', '')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -370,7 +370,7 @@ class LibvirtConnection(driver.ComputeDriver):
 | 
				
			|||||||
        """Returns the xml for the disk mounted at device"""
 | 
					        """Returns the xml for the disk mounted at device"""
 | 
				
			||||||
        try:
 | 
					        try:
 | 
				
			||||||
            doc = libxml2.parseDoc(xml)
 | 
					            doc = libxml2.parseDoc(xml)
 | 
				
			||||||
        except:
 | 
					        except Exception:
 | 
				
			||||||
            return None
 | 
					            return None
 | 
				
			||||||
        ctx = doc.xpathNewContext()
 | 
					        ctx = doc.xpathNewContext()
 | 
				
			||||||
        try:
 | 
					        try:
 | 
				
			||||||
@@ -1103,7 +1103,7 @@ class LibvirtConnection(driver.ComputeDriver):
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        try:
 | 
					        try:
 | 
				
			||||||
            doc = libxml2.parseDoc(xml)
 | 
					            doc = libxml2.parseDoc(xml)
 | 
				
			||||||
        except:
 | 
					        except Exception:
 | 
				
			||||||
            return []
 | 
					            return []
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        ctx = doc.xpathNewContext()
 | 
					        ctx = doc.xpathNewContext()
 | 
				
			||||||
@@ -1144,7 +1144,7 @@ class LibvirtConnection(driver.ComputeDriver):
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        try:
 | 
					        try:
 | 
				
			||||||
            doc = libxml2.parseDoc(xml)
 | 
					            doc = libxml2.parseDoc(xml)
 | 
				
			||||||
        except:
 | 
					        except Exception:
 | 
				
			||||||
            return []
 | 
					            return []
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        ctx = doc.xpathNewContext()
 | 
					        ctx = doc.xpathNewContext()
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -25,6 +25,7 @@ from nova.network import linux_net
 | 
				
			|||||||
from nova.virt.libvirt import netutils
 | 
					from nova.virt.libvirt import netutils
 | 
				
			||||||
from nova import utils
 | 
					from nova import utils
 | 
				
			||||||
from nova.virt.vif import VIFDriver
 | 
					from nova.virt.vif import VIFDriver
 | 
				
			||||||
 | 
					from nova import exception
 | 
				
			||||||
 | 
					
 | 
				
			||||||
LOG = logging.getLogger('nova.virt.libvirt.vif')
 | 
					LOG = logging.getLogger('nova.virt.libvirt.vif')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -128,7 +129,7 @@ class LibvirtOpenVswitchDriver(VIFDriver):
 | 
				
			|||||||
            utils.execute('sudo', 'ovs-vsctl', 'del-port',
 | 
					            utils.execute('sudo', 'ovs-vsctl', 'del-port',
 | 
				
			||||||
                          network['bridge'], dev)
 | 
					                          network['bridge'], dev)
 | 
				
			||||||
            utils.execute('sudo', 'ip', 'link', 'delete', dev)
 | 
					            utils.execute('sudo', 'ip', 'link', 'delete', dev)
 | 
				
			||||||
        except:
 | 
					        except exception.ProcessExecutionError, e:
 | 
				
			||||||
            LOG.warning(_("Failed while unplugging vif of instance '%s'"),
 | 
					            LOG.warning(_("Failed while unplugging vif of instance '%s'"),
 | 
				
			||||||
                        instance['name'])
 | 
					                        instance['name'])
 | 
				
			||||||
            raise
 | 
					            raise e
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -441,7 +441,7 @@ class XenAPISession(object):
 | 
				
			|||||||
                params = None
 | 
					                params = None
 | 
				
			||||||
                try:
 | 
					                try:
 | 
				
			||||||
                    params = eval(exc.details[3])
 | 
					                    params = eval(exc.details[3])
 | 
				
			||||||
                except:
 | 
					                except Exception:
 | 
				
			||||||
                    raise exc
 | 
					                    raise exc
 | 
				
			||||||
                raise self.XenAPI.Failure(params)
 | 
					                raise self.XenAPI.Failure(params)
 | 
				
			||||||
            else:
 | 
					            else:
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -60,7 +60,7 @@ class WebsocketVNCProxy(object):
 | 
				
			|||||||
                    break
 | 
					                    break
 | 
				
			||||||
                d = base64.b64encode(d)
 | 
					                d = base64.b64encode(d)
 | 
				
			||||||
                dest.send(d)
 | 
					                dest.send(d)
 | 
				
			||||||
        except:
 | 
					        except Exception:
 | 
				
			||||||
            source.close()
 | 
					            source.close()
 | 
				
			||||||
            dest.close()
 | 
					            dest.close()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -72,7 +72,7 @@ class WebsocketVNCProxy(object):
 | 
				
			|||||||
                    break
 | 
					                    break
 | 
				
			||||||
                d = base64.b64decode(d)
 | 
					                d = base64.b64decode(d)
 | 
				
			||||||
                dest.sendall(d)
 | 
					                dest.sendall(d)
 | 
				
			||||||
        except:
 | 
					        except Exception:
 | 
				
			||||||
            source.close()
 | 
					            source.close()
 | 
				
			||||||
            dest.close()
 | 
					            dest.close()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user