q.validation <- function(type='fail')
{
# find out test failed for validation
fail.test <- q.ls(type, detail = TRUE)
if(is.null(fail.test)) return(NULL)
fail.test <- fail.test %>% filter(auto.recovery == TRUE)
N.FAIL <- nrow(fail.test)
if( N.FAIL > 0 )
{
message(sprintf('Validating %s issues', N.FAIL) )
Validate.JID <- basename(fail.test$jid)
do.validation <-function(i)
{
# jid <- q.run(fail.test$jid[i])
jid <- q.move(fail.test$jid[i], to='inbox')
return(jid)
}
# re-validate test
VALIDATION.ITEM <- unlist( lapply(1:N.FAIL, do.validation))
q.wait(Validate.JID, timer=10)
if(is.null(fail.test))
{
message('Validation completed\t [Pass]')
return(NULL)
} else
{
fail.test.after <- q.ls('fail', detail = TRUE)
if(is.null(fail.test.after))
return(NULL)
fail.test.after <- fail.test.after %>% filter(auto.recovery == TRUE) %>%
filter(jid %in% Validate.JID)
N.FAIL.AFTER <- nrow(fail.test.after)
message(sprintf("%s remaining for validation", N.FAIL.AFTER))
if(N.FAIL.AFTER == N.FAIL)
{
message("** Identified issues **")
for (item in fail.test.after$jid)
{
load(item)
ticket$auto.recovery = FALSE # Terminal condition
save(ticket, file=item)
}
}
}
} else
message('No validation required for now!')
return(NULL)
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.