Package org.apache.oozie.util

Examples of org.apache.oozie.util.ELEvaluator


        LOG.debug("ENDED SignalCommand for jobid=" + jobId + ", actionId=" + actionId);
        return null;
    }

    public static ELEvaluator createELEvaluatorForGroup(Configuration conf, String group) {
        ELEvaluator eval = Services.get().get(ELService.class).createEvaluator(group);
        for (Map.Entry<String, String> entry : conf) {
            eval.setVariable(entry.getKey(), entry.getValue());
        }
        return eval;
    }
View Full Code Here


    }

    private String resolveSla(Element eSla, Configuration conf) throws CommandException {
        String slaXml = null;
        try {
            ELEvaluator evalSla = SubmitXCommand.createELEvaluatorForGroup(conf, "wf-sla-submit");
            slaXml = SubmitXCommand.resolveSla(eSla, evalSla);
        }
        catch (Exception e) {
            throw new CommandException(ErrorCode.E1004, e.getMessage(), e);
        }
View Full Code Here

        action.setData("b=B");
        action.setExternalId("ext");
        action.setTrackerUri("tracker");
        action.setExternalStatus("externalStatus");

        ELEvaluator eval = Services.get().get(ELService.class).createEvaluator("workflow");
        DagELFunctions.configureEvaluator(eval, wf, action);

        assertEquals("wfId", eval.evaluate("${wf:id()}", String.class));
        assertEquals("name", eval.evaluate("${wf:name()}", String.class));
        assertEquals("appPath", eval.evaluate("${wf:appPath()}", String.class));
        assertEquals("A", eval.evaluate("${wf:conf('a')}", String.class));
        assertEquals("A", eval.evaluate("${a}", String.class));
        assertEquals("user", eval.evaluate("${wf:user()}", String.class));
        assertEquals("group", eval.evaluate("${wf:group()}", String.class));
        assertTrue(eval.evaluate("${wf:callback('XX')}", String.class).contains("id=actionId"));
        assertTrue(eval.evaluate("${wf:callback('XX')}", String.class).contains("status=XX"));
        assertTrue(eval.evaluate("${wf:callback('XX')}", String.class).contains("status=XX"));
        assertEquals(2, (int) eval.evaluate("${wf:run()}", Integer.class));

        action.setStatus(WorkflowAction.Status.ERROR);
        System.out.println("WorkflowInstance " + wf.getWorkflowInstance().getStatus().toString());
        WorkflowInstance wfInstance = wf.getWorkflowInstance();
        DagELFunctions.setActionInfo(wfInstance, action);
        wf.setWorkflowInstance(wfInstance);

        assertEquals("actionName", eval.evaluate("${wf:lastErrorNode()}", String.class));
        assertEquals("ec", eval.evaluate("${wf:errorCode('actionName')}", String.class));
        assertEquals("em", eval.evaluate("${wf:errorMessage('actionName')}", String.class));

        assertEquals("B", eval.evaluate("${wf:actionData('actionName')['b']}", String.class));

        String expected = XmlUtils.escapeCharsForXML("{\"b\":\"B\"}");
        assertEquals(expected, eval.evaluate("${toJsonStr(wf:actionData('actionName'))}", String.class));
        expected = XmlUtils.escapeCharsForXML("b=B");
        assertTrue(eval.evaluate("${toPropertiesStr(wf:actionData('actionName'))}", String.class).contains(expected));
        conf = new XConfiguration();
        conf.set("b", "B");
        expected = XmlUtils.escapeCharsForXML(XmlUtils.prettyPrint(conf).toString());
        assertTrue(eval.evaluate("${toConfigurationStr(wf:actionData('actionName'))}", String.class).contains(expected));

        assertEquals("ext", eval.evaluate("${wf:actionExternalId('actionName')}", String.class));
        assertEquals("tracker", eval.evaluate("${wf:actionTrackerUri('actionName')}", String.class));
        assertEquals("externalStatus", eval.evaluate("${wf:actionExternalStatus('actionName')}", String.class));
    }
View Full Code Here

        // Configuration conf = new
        // XConfiguration(IOUtils.getResourceAsReader("org/apache/oozie/coord/conf.xml",
        // -1));
        Configuration conf = new XConfiguration(new StringReader(
                getConfString()));
        ELEvaluator eval = CoordELEvaluator.createELEvaluatorForGroup(conf,
                                                                      "coord-job-submit-freq");
        String expr = "<coordinator-app name=\"mycoordinator-app\" start=\"${start}\" end=\"${end}\""
                + " frequency=\"${coord:hours(12)}\"><data-in name=\"A\" dataset=\"a\"></data-in>";
        String reply = expr.replace("${start}", conf.get("start")).replace(
                "${end}", conf.get("end")).replace("${coord:hours(12)}", "720");
View Full Code Here

        expr = "<frequency=120";
        assertEquals(expr, CoordELFunctions.evalAndWrap(eval, expr));
    }

    public void testCreateURIELEvaluator() throws Exception {
        ELEvaluator eval = CoordELEvaluator
                .createURIELEvaluator("2009-08-09T23:59Z");
        String expr = "hdfs://p1/p2/${YEAR}/${MONTH}/${DAY}/${HOUR}/${MINUTE}/";
        // System.out.println("OUTPUT "+ eval.evaluate(expr, String.class));
        assertEquals("hdfs://p1/p2/2009/08/09/23/59/", CoordELFunctions
                .evalAndWrap(eval, expr));
View Full Code Here

        reply += "<property><name>NOMINALTIME</name><value>2009-09-01T00:00Z</value></property>";
        reply += "<property><name>ACTUALTIME</name><value>2010-10-01T00:00Z</value></property>";
        reply += "</configuration></workflow></action>";
        Element eJob = XmlUtils.parseXml(jobXml);
        Configuration conf = new XConfiguration(new StringReader(getConfString()));
        ELEvaluator eval = CoordELEvaluator.createDataEvaluator(eJob, conf, "00000-oozie-C@1");
        Element action = eJob.getChild("action", eJob.getNamespace());
        String str = XmlUtils.prettyPrint(action).toString();
        assertEquals(XmlUtils.prettyPrint(XmlUtils.parseXml(reply)).toString(), CoordELFunctions.evalAndWrap(eval, str));
    }
View Full Code Here

        // Configuration conf = new
        // XConfiguration(IOUtils.getResourceAsReader("org/apache/oozie/coord/conf.xml",
        // -1));
        Configuration conf = new XConfiguration(new StringReader(
                getConfString()));
        ELEvaluator eval = CoordELEvaluator.createInstancesELEvaluator(event,
                                                                       appInst, conf);
        String expr = "${coord:current(0)}";
        // System.out.println("OUTPUT :" + eval.evaluate(expr, String.class));
        assertEquals("2009-09-08T00:00Z", eval.evaluate(expr, String.class));
    }
View Full Code Here

        Date nominalTime = DateUtils.parseDateUTC("2009-09-01T00:00Z");
        String dataEvntXML = "<data-in name=\"A\" dataset=\"a\"><uris>file:///"+testCaseDir+"/US/2009/1/30|file:///tmp/coord/US/2009/1/31</uris>";
        dataEvntXML += "<dataset name=\"a\" frequency=\"1440\" initial-instance=\"2009-01-01T00:00Z\"  freq_timeunit=\"MINUTE\" timezone=\"UTC\" end_of_duration=\"NONE\">";
        dataEvntXML += "<uri-template>file:///"+testCaseDir+"/${YEAR}/${MONTH}/${DAY}</uri-template></dataset></data-in>";
        Element dEvent = XmlUtils.parseXml(dataEvntXML);
        ELEvaluator eval = CoordELEvaluator.createLazyEvaluator(actualTime, nominalTime, dEvent, conf);
        createDir(testCaseDir+"/2009/01/02");
        String expr = "${coord:latest(0)} ${coord:latest(-1)}";
        // Dependent on the directory structure
        // TODO: Create the directory
        assertEquals("2009-01-02T00:00Z ${coord:latest(-1)}", eval.evaluate(expr, String.class));

        // future
        createDir(testCaseDir+"/2009/09/04");
        createDir(testCaseDir+"/2009/09/05");
        expr = "${coord:future(1, 30)}";
        assertEquals("2009-09-05T00:00Z", eval.evaluate(expr, String.class));

        // System.out.println("OUTPUT :" + eval.evaluate(expr, String.class));
    }
View Full Code Here

        action.setName("H");

        ActionXCommand.ActionExecutorContext context = new ActionXCommand.ActionExecutorContext(workflow, action, false, false);
        context.setVar(MapReduceActionExecutor.HADOOP_COUNTERS, counters);

        ELEvaluator eval = Services.get().get(ELService.class).createEvaluator("workflow");
        DagELFunctions.configureEvaluator(eval, workflow, action);

        String group = "g";
        String name = "c";
        assertEquals(new Long(10),
                eval.evaluate("${hadoop:counters('H')['" + group + "']['" + name + "']}", Long.class));

        assertEquals(new Long(2), eval.evaluate("${hadoop:counters('H')[RECORDS][GROUPS]}", Long.class));
        assertEquals(new Long(2), eval.evaluate("${hadoop:counters('H')[RECORDS][REDUCE_IN]}", Long.class));
        assertEquals(new Long(2), eval.evaluate("${hadoop:counters('H')[RECORDS][REDUCE_OUT]}", Long.class));
        assertEquals(new Long(2), eval.evaluate("${hadoop:counters('H')[RECORDS][MAP_IN]}", Long.class));
        assertEquals(new Long(2), eval.evaluate("${hadoop:counters('H')[RECORDS][MAP_OUT]}", Long.class));
        assertEquals(ActionType.MAP_REDUCE.toString(),
                eval.evaluate("${hadoop:counters('H')['ACTION_TYPE']}", String.class));
    }
View Full Code Here

        action.setName("H");

        ActionXCommand.ActionExecutorContext context = new ActionXCommand.ActionExecutorContext(workflow, action, false, false);
        context.setVar(MapReduceActionExecutor.HADOOP_COUNTERS, pigStats);

        ELEvaluator eval = Services.get().get(ELService.class).createEvaluator("workflow");
        DagELFunctions.configureEvaluator(eval, workflow, action);

        String version = "0.9.0";
        String jobGraph = "job_201111300933_0004,job_201111300933_0005";
        String job1Stats = "{\"MAP_INPUT_RECORDS\":\"33\",\"MIN_REDUCE_TIME\":\"0\",\"MULTI_STORE_COUNTERS\":{},\"ERROR_MESSAGE\":null,\"JOB_ID\":\"job_201111300933_0004\"}";
        String job2Stats = "{\"MAP_INPUT_RECORDS\":\"37\",\"MIN_REDUCE_TIME\":\"0\",\"MULTI_STORE_COUNTERS\":{},\"ERROR_MESSAGE\":null,\"JOB_ID\":\"job_201111300933_0005\"}";

        assertEquals(ActionType.PIG.toString(), eval.evaluate("${hadoop:counters('H')['ACTION_TYPE']}", String.class));
        assertEquals(version, eval.evaluate("${hadoop:counters('H')['PIG_VERSION']}", String.class));
        assertEquals(jobGraph, eval.evaluate("${hadoop:counters('H')['JOB_GRAPH']}", String.class));
        assertEquals(job1Stats, eval.evaluate("${hadoop:counters('H')['job_201111300933_0004']}", String.class));
        assertEquals(job2Stats, eval.evaluate("${hadoop:counters('H')['job_201111300933_0005']}", String.class));
        assertEquals(new Long(33),
                eval.evaluate("${hadoop:counters('H')['job_201111300933_0004']['MAP_INPUT_RECORDS']}", Long.class));
    }
View Full Code Here

TOP

Related Classes of org.apache.oozie.util.ELEvaluator

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.