private void diagnoseTajoWorker() throws EvaluationFailedException { SelfDiagnosisRuleEngine ruleEngine = SelfDiagnosisRuleEngine.getInstance(); SelfDiagnosisRuleSession ruleSession = ruleEngine.newRuleSession(); EvaluationContext context = new EvaluationContext(); context.addParameter(TajoConf.class.getName(), systemConf); ruleSession.withCategoryNames("base", "worker").fireRules(context); }
public Object getParameter(String name) { return getParameter(name, null); }
private void diagnoseTajoMaster() throws EvaluationFailedException { SelfDiagnosisRuleEngine ruleEngine = SelfDiagnosisRuleEngine.getInstance(); SelfDiagnosisRuleSession ruleSession = ruleEngine.newRuleSession(); EvaluationContext context = new EvaluationContext(); context.addParameter(TajoConf.class.getName(), systemConf); ruleSession.withCategoryNames("base", "master").fireRules(context); }
public Object getParameter(String name) { return getParameter(name, null); }
private void diagnoseTajoMaster() throws EvaluationFailedException { SelfDiagnosisRuleEngine ruleEngine = SelfDiagnosisRuleEngine.getInstance(); SelfDiagnosisRuleSession ruleSession = ruleEngine.newRuleSession(); EvaluationContext context = new EvaluationContext(); context.addParameter(TajoConf.class.getName(), systemConf); ruleSession.withCategoryNames("base", "master").fireRules(context); }
@Override public EvaluationResult evaluate(EvaluationContext context) { Object tajoConfObj = context.getParameter(TajoConf.class.getName()); EvaluationResult result = new EvaluationResult(); if (tajoConfObj != null && tajoConfObj instanceof TajoConf) { TajoConf tajoConf = (TajoConf) tajoConfObj; try { checkTajoMasterConnectivity(tajoConf); result.setReturnCode(EvaluationResultCode.OK); } catch (Exception e) { result.setReturnCode(EvaluationResultCode.ERROR); result.setMessage(e.getMessage()); result.setThrowable(e); } } else { result.setReturnCode(EvaluationResultCode.ERROR); result.setMessage("WorkerContext is null or not a WorkerContext type."); } return result; }
private void diagnoseTajoWorker() throws EvaluationFailedException { SelfDiagnosisRuleEngine ruleEngine = SelfDiagnosisRuleEngine.getInstance(); SelfDiagnosisRuleSession ruleSession = ruleEngine.newRuleSession(); EvaluationContext context = new EvaluationContext(); context.addParameter(TajoConf.class.getName(), systemConf); ruleSession.withCategoryNames("base", "worker").fireRules(context); }
@Override public EvaluationResult evaluate(EvaluationContext context) { Object tajoConfObj = context.getParameter(TajoConf.class.getName()); EvaluationResult result = new EvaluationResult(); if (tajoConfObj != null && tajoConfObj instanceof TajoConf) { TajoConf tajoConf = (TajoConf) tajoConfObj; try { checkTajoMasterConnectivity(tajoConf); result.setReturnCode(EvaluationResultCode.OK); } catch (Exception e) { result.setReturnCode(EvaluationResultCode.ERROR); result.setMessage(e.getMessage()); result.setThrowable(e); } } else { result.setReturnCode(EvaluationResultCode.ERROR); result.setMessage("WorkerContext is null or not a WorkerContext type."); } return result; }
@Test public void testFileSystemRule() throws Exception { TajoConf tajoConf = new TajoConf(new YarnConfiguration()); createTajoDirectories(tajoConf); EvaluationContext context = new EvaluationContext(); context.addParameter(TajoConf.class.getName(), tajoConf); FileSystemRule fsRule = new FileSystemRule(); EvaluationResult result = fsRule.evaluate(context); assertThat(result, is(notNullValue())); assertThat(result.getReturnCode(), is(EvaluationResultCode.OK)); }
@Override public EvaluationResult evaluate(EvaluationContext context) { EvaluationResult result = new EvaluationResult(); Object tajoConfObj = context.getParameter(TajoConf.class.getName()); result.setReturnCode(EvaluationResultCode.OK); if (tajoConfObj != null && tajoConfObj instanceof TajoConf) { TajoConf tajoConf = (TajoConf) tajoConfObj; for (TajoConf.ConfVars confVar: TajoConf.ConfVars.values()) { String varValue = tajoConf.get(confVar.keyname()); Collection<ConstraintViolation> violationSet = isValidationTestPassed(confVar, varValue); if (violationSet.size() > 0) { result.setReturnCode(EvaluationResultCode.ERROR); result.setMessage("Validation Test has been failed on " + confVar.keyname() + ". Actual value is " + varValue); result.setThrowable(new ConstraintViolationException(violationSet)); break; } } } return result; }
@Test public void testTajoConfValidationRule() throws Exception { TajoConf tajoConf = new TajoConf(new YarnConfiguration()); EvaluationContext context = new EvaluationContext(); context.addParameter(TajoConf.class.getName(), tajoConf); TajoConfValidationRule validationRule = new TajoConfValidationRule(); EvaluationResult result = validationRule.evaluate(context); assertThat(result, is(notNullValue())); assertThat(result.getReturnCode(), is(EvaluationResultCode.OK)); }
@Override public EvaluationResult evaluate(EvaluationContext context) { EvaluationResult result = new EvaluationResult(); Object tajoConfObj = context.getParameter(TajoConf.class.getName()); if (tajoConfObj != null && tajoConfObj instanceof TajoConf) { TajoConf tajoConf = (TajoConf) tajoConfObj; try { checkAccessControlOnTajoPaths(tajoConf); result.setReturnCode(EvaluationResultCode.OK); } catch (Exception e) { result.setReturnCode(EvaluationResultCode.ERROR); result.setMessage("Current User cannot access to this filesystem."); result.setThrowable(e); } } else { result.setReturnCode(EvaluationResultCode.ERROR); result.setMessage("Tajo Configuration is null or not a Configuration Type."); } return result; }
@Test public void testFileSystemRuleWithError() throws Exception { TajoConf tajoConf = new TajoConf(new YarnConfiguration()); createTajoDirectories(tajoConf); Path systemResourceDir = TajoConf.getSystemResourceDir(tajoConf); FileSystem defaultFs = systemResourceDir.getFileSystem(tajoConf); if (defaultFs.exists(systemResourceDir)) { defaultFs.delete(systemResourceDir, true); } EvaluationContext context = new EvaluationContext(); context.addParameter(TajoConf.class.getName(), tajoConf); FileSystemRule fsRule = new FileSystemRule(); EvaluationResult result = fsRule.evaluate(context); assertThat(result, is(notNullValue())); assertThat(result.getReturnCode(), is(EvaluationResultCode.ERROR)); } }
@Override public EvaluationResult evaluate(EvaluationContext context) { EvaluationResult result = new EvaluationResult(); Object tajoConfObj = context.getParameter(TajoConf.class.getName()); if (tajoConfObj != null && tajoConfObj instanceof TajoConf) { TajoConf tajoConf = (TajoConf) tajoConfObj; try { checkAccessControlOnTajoPaths(tajoConf); result.setReturnCode(EvaluationResultCode.OK); } catch (Exception e) { result.setReturnCode(EvaluationResultCode.ERROR); result.setMessage("Current User cannot access to this filesystem."); result.setThrowable(e); } } else { result.setReturnCode(EvaluationResultCode.ERROR); result.setMessage("Tajo Configuration is null or not a Configuration Type."); } return result; }
@Test(expected=EvaluationFailedException.class) public void testTajoConfValidationRuleWithException() throws Exception { TajoConf tajoConf = new TajoConf(new YarnConfiguration()); SelfDiagnosisRuleEngine ruleEngine = SelfDiagnosisRuleEngine.getInstance(); SelfDiagnosisRuleSession ruleSession = ruleEngine.newRuleSession(); tajoConf.setVar(TajoConf.ConfVars.ROOT_DIR, "invalid path."); EvaluationContext context = new EvaluationContext(); context.addParameter(TajoConf.class.getName(), tajoConf); ruleSession.withRuleNames("TajoConfValidationRule").fireRules(context); fail("EvaluationFailedException exception is expected, but it does not happen."); }
@Override public EvaluationResult evaluate(EvaluationContext context) { EvaluationResult result = new EvaluationResult(); Object tajoConfObj = context.getParameter(TajoConf.class.getName()); result.setReturnCode(EvaluationResultCode.OK); if (tajoConfObj != null && tajoConfObj instanceof TajoConf) { TajoConf tajoConf = (TajoConf) tajoConfObj; for (TajoConf.ConfVars confVar: TajoConf.ConfVars.values()) { String varValue = tajoConf.get(confVar.keyname()); Collection<ConstraintViolation> violationSet = isValidationTestPassed(confVar, varValue); if (violationSet.size() > 0) { result.setReturnCode(EvaluationResultCode.ERROR); result.setMessage("Validation Test has been failed on " + confVar.keyname() + ". Actual value is " + varValue); result.setThrowable(new ConstraintViolationException(violationSet)); break; } } } return result; }