Exemplo n.º 1
0
 def wrapper(*args, **kwagrs):
     try:
         return func(*args, **kwagrs)
     except SkipTest:
         raise SkipTest()
     except Exception as test_exception:
         exc_trace = sys.exc_traceback
         if args and 'snapshot' in args[0].__dict__:
             name = 'error_%s' % args[0].snapshot
             description = "Failed in method '%s'." % args[0].snapshot
         else:
             name = 'error_%s' % func.__name__
             description = "Failed in method '%s'." % func.__name__
         if args[0].env is not None:
             try:
                 create_diagnostic_snapshot(args[0].env,
                                            "fail", name)
             except:
                 logger.error("Fetching of diagnostic snapshot failed: {0}".
                              format(traceback.format_exc()))
                 try:
                     admin_remote = args[0].env.get_admin_remote()
                     pull_out_logs_via_ssh(admin_remote, name)
                 except:
                     logger.error("Fetching of raw logs failed: {0}".
                                  format(traceback.format_exc()))
             finally:
                 logger.debug(args)
                 args[0].env.make_snapshot(snapshot_name=name[-50:],
                                           description=description,
                                           is_make=True)
         raise test_exception, None, exc_trace
Exemplo n.º 2
0
def store_error_details(name, env):
    description = "Failed in method {:s}.".format(name)
    if env is not None:
        try:
            create_diagnostic_snapshot(env, "fail", name)
        except:
            logger.error("Fetching of diagnostic snapshot failed: {0}".format(
                traceback.format_exception_only(sys.exc_info()[0],
                                                sys.exc_info()[1])))
            logger.debug("Fetching of diagnostic snapshot failed: {0}".
                         format(traceback.format_exc()))
            try:
                with env.d_env.get_admin_remote()\
                        as admin_remote:
                    pull_out_logs_via_ssh(admin_remote, name)
            except:
                logger.error("Fetching of raw logs failed: {0}".format(
                    traceback.format_exception_only(sys.exc_info()[0],
                                                    sys.exc_info()[1])))
                logger.debug("Fetching of raw logs failed: {0}".
                             format(traceback.format_exc()))
        finally:
            try:
                env.make_snapshot(snapshot_name=name[-50:],
                                  description=description,
                                  is_make=True)
            except:
                logger.error(
                    "Error making the environment snapshot: {0}".format(
                        traceback.format_exception_only(sys.exc_info()[0],
                                                        sys.exc_info()[1])))
                logger.debug("Error making the environment snapshot:"
                             " {0}".format(traceback.format_exc()))
Exemplo n.º 3
0
def store_error_details(name, env):
    description = "Failed in method {:s}.".format(name)
    if env is not None:
        try:
            create_diagnostic_snapshot(env, "fail", name)
        except:
            logger.error("Fetching of diagnostic snapshot failed: {0}".format(
                traceback.format_exception_only(sys.exc_info()[0],
                                                sys.exc_info()[1])))
            logger.debug("Fetching of diagnostic snapshot failed: {0}".
                         format(traceback.format_exc()))
            try:
                with env.d_env.get_admin_remote()\
                        as admin_remote:
                    pull_out_logs_via_ssh(admin_remote, name)
            except:
                logger.error("Fetching of raw logs failed: {0}".format(
                    traceback.format_exception_only(sys.exc_info()[0],
                                                    sys.exc_info()[1])))
                logger.debug("Fetching of raw logs failed: {0}".
                             format(traceback.format_exc()))
        finally:
            try:
                env.make_snapshot(snapshot_name=name[-50:],
                                  description=description,
                                  is_make=True)
            except:
                logger.error(
                    "Error making the environment snapshot: {0}".format(
                        traceback.format_exception_only(sys.exc_info()[0],
                                                        sys.exc_info()[1])))
                logger.debug("Error making the environment snapshot:"
                             " {0}".format(traceback.format_exc()))
Exemplo n.º 4
0
 def wrapper(*args, **kwagrs):
     try:
         return func(*args, **kwagrs)
     except SkipTest:
         raise SkipTest()
     except Exception as test_exception:
         exc_trace = sys.exc_traceback
         name = 'error_%s' % func.__name__
         description = "Failed in method '%s'." % func.__name__
         if args[0].env is not None:
             try:
                 create_diagnostic_snapshot(args[0].env, "fail", name)
             except:
                 logger.error(
                     "Fetching of diagnostic snapshot failed: {0}".format(
                         traceback.format_exc()))
                 try:
                     admin_remote = args[0].env.get_admin_remote()
                     pull_out_logs_via_ssh(admin_remote, name)
                 except:
                     logger.error("Fetching of raw logs failed: {0}".format(
                         traceback.format_exc()))
             finally:
                 logger.debug(args)
                 args[0].env.make_snapshot(snapshot_name=name[-50:],
                                           description=description,
                                           is_make=True)
         raise test_exception, None, exc_trace
Exemplo n.º 5
0
 def wrapper(*args, **kwargs):
     try:
         result = func(*args, **kwargs)
     except SkipTest:
         raise SkipTest()
     except Exception as test_exception:
         exc_trace = sys.exc_traceback
         name = 'error_%s' % func.__name__
         description = "Failed in method '%s'." % func.__name__
         if args[0].env is not None:
             try:
                 create_diagnostic_snapshot(args[0].env,
                                            "fail", name)
             except:
                 logger.error("Fetching of diagnostic snapshot failed: {0}".
                              format(traceback.format_exc()))
                 try:
                     with args[0].env.d_env.get_admin_remote()\
                             as admin_remote:
                         pull_out_logs_via_ssh(admin_remote, name)
                 except:
                     logger.error("Fetching of raw logs failed: {0}".
                                  format(traceback.format_exc()))
             finally:
                 logger.debug(args)
                 try:
                     args[0].env.make_snapshot(snapshot_name=name[-50:],
                                               description=description,
                                               is_make=True)
                 except:
                     logger.error("Error making the environment snapshot:"
                                  " {0}".format(traceback.format_exc()))
         raise test_exception, None, exc_trace
     return result
Exemplo n.º 6
0
 def wrapper(*args, **kwargs):
     logger.info("\n" + "<" * 5 + "#" * 30 +
                 "[ {} ]".format(func.__name__) + "#" * 30 + ">" * 5 +
                 "\n{}".format(''.join(func.__doc__)))
     try:
         result = func(*args, **kwargs)
     except SkipTest:
         raise SkipTest()
     except Exception as test_exception:
         exc_trace = sys.exc_traceback
         name = 'error_%s' % func.__name__
         description = "Failed in method '%s'." % func.__name__
         if args[0].env is not None:
             try:
                 create_diagnostic_snapshot(args[0].env, "fail", name)
             except:
                 logger.error(
                     "Fetching of diagnostic snapshot failed: {0}".format(
                         traceback.format_exc()))
                 try:
                     with args[0].env.d_env.get_admin_remote()\
                             as admin_remote:
                         pull_out_logs_via_ssh(admin_remote, name)
                 except:
                     logger.error("Fetching of raw logs failed: {0}".format(
                         traceback.format_exc()))
             finally:
                 logger.debug(args)
                 try:
                     args[0].env.make_snapshot(snapshot_name=name[-50:],
                                               description=description,
                                               is_make=True)
                 except:
                     logger.error("Error making the environment snapshot:"
                                  " {0}".format(traceback.format_exc()))
         logger.error(traceback.format_exc())
         logger.info("<" * 5 + "*" * 100 + ">" * 5)
         raise test_exception, None, exc_trace
     else:
         if settings.ALWAYS_CREATE_DIAGNOSTIC_SNAPSHOT:
             if args[0].env is None:
                 logger.warning("Can't get diagnostic snapshot: "
                                "unexpected class is decorated.")
                 return result
             try:
                 args[0].env.resume_environment()
                 create_diagnostic_snapshot(args[0].env, "pass",
                                            func.__name__)
             except:
                 logger.error(
                     "Fetching of diagnostic snapshot failed: {0}".format(
                         traceback.format_exc()))
         return result
Exemplo n.º 7
0
 def wrapper(*args, **kwargs):
     logger.info("\n" + "<" * 5 + "#" * 30 + "[ {} ]"
                 .format(func.__name__) + "#" * 30 + ">" * 5 + "\n{}"
                 .format(''.join(func.__doc__)))
     try:
         result = func(*args, **kwargs)
     except SkipTest:
         raise SkipTest()
     except Exception as test_exception:
         exc_trace = sys.exc_traceback
         name = 'error_%s' % func.__name__
         description = "Failed in method '%s'." % func.__name__
         if args[0].env is not None:
             try:
                 create_diagnostic_snapshot(args[0].env, "fail", name)
             except:
                 logger.error("Fetching of diagnostic snapshot failed: {0}".
                              format(traceback.format_exc()))
                 try:
                     with args[0].env.d_env.get_admin_remote()\
                             as admin_remote:
                         pull_out_logs_via_ssh(admin_remote, name)
                 except:
                     logger.error("Fetching of raw logs failed: {0}".
                                  format(traceback.format_exc()))
             finally:
                 logger.debug(args)
                 try:
                     args[0].env.make_snapshot(snapshot_name=name[-50:],
                                               description=description,
                                               is_make=True)
                 except:
                     logger.error("Error making the environment snapshot:"
                                  " {0}".format(traceback.format_exc()))
         logger.error(traceback.format_exc())
         logger.info("<" * 5 + "*" * 100 + ">" * 5)
         raise test_exception, None, exc_trace
     else:
         if settings.ALWAYS_CREATE_DIAGNOSTIC_SNAPSHOT:
             if args[0].env is None:
                 logger.warning("Can't get diagnostic snapshot: "
                                "unexpected class is decorated.")
                 return result
             try:
                 args[0].env.resume_environment()
                 create_diagnostic_snapshot(args[0].env, "pass",
                                            func.__name__)
             except:
                 logger.error("Fetching of diagnostic snapshot failed: {0}".
                              format(traceback.format_exc()))
         return result
Exemplo n.º 8
0
 def wrapper(*args, **kwargs):
     try:
         result = func(*args, **kwargs)
     except SkipTest:
         raise SkipTest()
     except Exception as test_exception:
         exc_trace = sys.exc_traceback
         name = 'error_%s' % func.__name__
         case_name = getattr(func, '_base_class', None)
         step_num = getattr(func, '_step_num', None)
         config_name = getattr(func, '_config_case_group', None)
         description = "Failed in method '%s'." % func.__name__
         if args[0].env is not None:
             try:
                 create_diagnostic_snapshot(args[0].env,
                                            "fail", name)
             except:
                 logger.error("Fetching of diagnostic snapshot failed: {0}".
                              format(traceback.format_exc()))
                 try:
                     with args[0].env.d_env.get_admin_remote()\
                             as admin_remote:
                         pull_out_logs_via_ssh(admin_remote, name)
                 except:
                     logger.error("Fetching of raw logs failed: {0}".
                                  format(traceback.format_exc()))
             finally:
                 logger.debug(args)
                 try:
                     if all([case_name, step_num, config_name]):
                         _hash = hashlib.sha256(config_name)
                         _hash = _hash.hexdigest()[:8]
                         snapshot_name = "{case}_{config}_{step}".format(
                             case=case_name,
                             config=_hash,
                             step="Step{:03d}".format(step_num)
                         )
                     else:
                         snapshot_name = name[-50:]
                     args[0].env.make_snapshot(snapshot_name=snapshot_name,
                                               description=description,
                                               is_make=True)
                 except:
                     logger.error("Error making the environment snapshot:"
                                  " {0}".format(traceback.format_exc()))
         raise test_exception, None, exc_trace
     return result
Exemplo n.º 9
0
 def wrapper(*args, **kwargs):
     try:
         result = func(*args, **kwargs)
     except SkipTest:
         raise SkipTest()
     except Exception as test_exception:
         exc_trace = sys.exc_traceback
         name = 'error_%s' % func.__name__
         case_name = getattr(func, '_base_class', None)
         step_num = getattr(func, '_step_num', None)
         config_name = getattr(func, '_config_case_group', None)
         description = "Failed in method '%s'." % func.__name__
         if args[0].env is not None:
             try:
                 create_diagnostic_snapshot(args[0].env, "fail", name)
             except:
                 logger.error(
                     "Fetching of diagnostic snapshot failed: {0}".format(
                         traceback.format_exc()))
                 try:
                     with args[0].env.d_env.get_admin_remote()\
                             as admin_remote:
                         pull_out_logs_via_ssh(admin_remote, name)
                 except:
                     logger.error("Fetching of raw logs failed: {0}".format(
                         traceback.format_exc()))
             finally:
                 logger.debug(args)
                 try:
                     if all([case_name, step_num, config_name]):
                         _hash = hashlib.sha256(config_name)
                         _hash = _hash.hexdigest()[:8]
                         snapshot_name = "{case}_{config}_{step}".format(
                             case=case_name,
                             config=_hash,
                             step="Step{:03d}".format(step_num))
                     else:
                         snapshot_name = name[-50:]
                     args[0].env.make_snapshot(snapshot_name=snapshot_name,
                                               description=description,
                                               is_make=True)
                 except:
                     logger.error("Error making the environment snapshot:"
                                  " {0}".format(traceback.format_exc()))
         raise test_exception, None, exc_trace
     return result
Exemplo n.º 10
0
 def wrapper(*args, **kwagrs):
     logger.info("\n" + "<" * 5 + "#" * 30 + "[ {} ]"
                 .format(func.__name__) + "#" * 30 + ">" * 5 + "\n{}"
                 .format(func.__doc__))
     try:
         result = func(*args, **kwagrs)
         if settings.STORE_ASTUTE_YAML:
             store_astute_yaml(args[0].env, func.__name__)
         return result
     except SkipTest:
         raise SkipTest()
     except Exception as test_exception:
         exc_trace = sys.exc_traceback
         name = 'error_%s' % func.__name__
         description = "Failed in method '%s'." % func.__name__
         if args[0].env is not None:
             try:
                 create_diagnostic_snapshot(args[0].env,
                                            "fail", name)
             except:
                 logger.error("Fetching of diagnostic snapshot failed: {0}".
                              format(traceback.format_exc()))
                 try:
                     admin_remote = args[0].env.get_admin_remote()
                     pull_out_logs_via_ssh(admin_remote, name)
                 except:
                     logger.error("Fetching of raw logs failed: {0}".
                                  format(traceback.format_exc()))
             finally:
                 logger.debug(args)
                 try:
                     args[0].env.make_snapshot(snapshot_name=name[-50:],
                                               description=description,
                                               is_make=True)
                 except:
                     logger.error("Error making the environment snapshot:"
                                  " {0}".format(traceback.format_exc()))
         raise test_exception, None, exc_trace