|
@@ -1,7 +1,7 @@
|
|
|
|
|
|
|
|
describe("WorkflowModel", function(){
|
|
describe("WorkflowModel", function(){
|
|
|
|
|
|
|
|
- function create_three_step_workflow() {
|
|
|
|
|
|
|
+ function create_three_step_workflow(workflow_id) {
|
|
|
var workflow_model = new WorkflowModel({
|
|
var workflow_model = new WorkflowModel({
|
|
|
id: 1,
|
|
id: 1,
|
|
|
name: "Test-Three-Step-Workflow",
|
|
name: "Test-Three-Step-Workflow",
|
|
@@ -14,7 +14,7 @@ describe("WorkflowModel", function(){
|
|
|
data: {
|
|
data: {
|
|
|
"nodes":[{
|
|
"nodes":[{
|
|
|
"description":"",
|
|
"description":"",
|
|
|
- "workflow":1,
|
|
|
|
|
|
|
+ "workflow":workflow_id,
|
|
|
"child_links":[{
|
|
"child_links":[{
|
|
|
"comment":"",
|
|
"comment":"",
|
|
|
"name":"to",
|
|
"name":"to",
|
|
@@ -32,7 +32,7 @@ describe("WorkflowModel", function(){
|
|
|
},{
|
|
},{
|
|
|
"id":2,
|
|
"id":2,
|
|
|
"name":"Sleep-1",
|
|
"name":"Sleep-1",
|
|
|
- "workflow":1,
|
|
|
|
|
|
|
+ "workflow":workflow_id,
|
|
|
"node_type":"mapreduce",
|
|
"node_type":"mapreduce",
|
|
|
"jar_path":"/user/hue/oozie/workspaces/lib/hadoop-examples.jar",
|
|
"jar_path":"/user/hue/oozie/workspaces/lib/hadoop-examples.jar",
|
|
|
"child_links":[{
|
|
"child_links":[{
|
|
@@ -49,7 +49,7 @@ describe("WorkflowModel", function(){
|
|
|
},{
|
|
},{
|
|
|
"id":3,
|
|
"id":3,
|
|
|
"name":"Sleep-2",
|
|
"name":"Sleep-2",
|
|
|
- "workflow":1,
|
|
|
|
|
|
|
+ "workflow":workflow_id,
|
|
|
"node_type":"mapreduce",
|
|
"node_type":"mapreduce",
|
|
|
"jar_path":"/user/hue/oozie/workspaces/lib/hadoop-examples.jar",
|
|
"jar_path":"/user/hue/oozie/workspaces/lib/hadoop-examples.jar",
|
|
|
"child_links":[{
|
|
"child_links":[{
|
|
@@ -66,7 +66,7 @@ describe("WorkflowModel", function(){
|
|
|
},{
|
|
},{
|
|
|
"id":4,
|
|
"id":4,
|
|
|
"name":"Sleep-3",
|
|
"name":"Sleep-3",
|
|
|
- "workflow":1,
|
|
|
|
|
|
|
+ "workflow":workflow_id,
|
|
|
"node_type":"mapreduce",
|
|
"node_type":"mapreduce",
|
|
|
"jar_path":"/user/hue/oozie/workspaces/lib/hadoop-examples.jar",
|
|
"jar_path":"/user/hue/oozie/workspaces/lib/hadoop-examples.jar",
|
|
|
"child_links":[{
|
|
"child_links":[{
|
|
@@ -83,14 +83,14 @@ describe("WorkflowModel", function(){
|
|
|
},{
|
|
},{
|
|
|
"id":6,
|
|
"id":6,
|
|
|
"name":"kill",
|
|
"name":"kill",
|
|
|
- "workflow":1,
|
|
|
|
|
|
|
+ "workflow":workflow_id,
|
|
|
"node_type":"kill",
|
|
"node_type":"kill",
|
|
|
"child_links":[],
|
|
"child_links":[],
|
|
|
"message":"Action failed, error message[${wf:errorMessage(wf:lastErrorNode())}]",
|
|
"message":"Action failed, error message[${wf:errorMessage(wf:lastErrorNode())}]",
|
|
|
},{
|
|
},{
|
|
|
"id":5,
|
|
"id":5,
|
|
|
"name":"end",
|
|
"name":"end",
|
|
|
- "workflow":1,
|
|
|
|
|
|
|
+ "workflow":workflow_id,
|
|
|
"node_type":"end",
|
|
"node_type":"end",
|
|
|
"child_links":[],
|
|
"child_links":[],
|
|
|
}],
|
|
}],
|
|
@@ -100,9 +100,100 @@ describe("WorkflowModel", function(){
|
|
|
return workflow;
|
|
return workflow;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ function create_pig_workflow(workflow_id) {
|
|
|
|
|
+ var workflow_model = new WorkflowModel({
|
|
|
|
|
+ id: 1,
|
|
|
|
|
+ name: "Test-pig-Workflow",
|
|
|
|
|
+ start: 1,
|
|
|
|
|
+ end: 5
|
|
|
|
|
+ });
|
|
|
|
|
+ var registry = new Registry();
|
|
|
|
|
+ var workflow = new Workflow({
|
|
|
|
|
+ model: workflow_model,
|
|
|
|
|
+ data: {
|
|
|
|
|
+ "nodes":[{
|
|
|
|
|
+ "description":"",
|
|
|
|
|
+ "workflow":workflow_id,
|
|
|
|
|
+ "child_links":[{
|
|
|
|
|
+ "comment":"",
|
|
|
|
|
+ "name":"to",
|
|
|
|
|
+ "parent":1,
|
|
|
|
|
+ "child":2
|
|
|
|
|
+ },{
|
|
|
|
|
+ "comment":"",
|
|
|
|
|
+ "name":"related",
|
|
|
|
|
+ "parent":1,
|
|
|
|
|
+ "child":5
|
|
|
|
|
+ }],
|
|
|
|
|
+ "node_type":"start",
|
|
|
|
|
+ "id":1,
|
|
|
|
|
+ "name":"start"
|
|
|
|
|
+ },{
|
|
|
|
|
+ "id":2,
|
|
|
|
|
+ "name":"Pig-1",
|
|
|
|
|
+ "workflow":workflow_id,
|
|
|
|
|
+ "node_type":"pig",
|
|
|
|
|
+ "script_path":"test.pig",
|
|
|
|
|
+ "child_links":[{
|
|
|
|
|
+ "comment":"",
|
|
|
|
|
+ "name":"ok",
|
|
|
|
|
+ "parent":2,
|
|
|
|
|
+ "child":3
|
|
|
|
|
+ },{
|
|
|
|
|
+ "comment":"",
|
|
|
|
|
+ "name":"error",
|
|
|
|
|
+ "parent":2,
|
|
|
|
|
+ "child":4
|
|
|
|
|
+ }],
|
|
|
|
|
+ },{
|
|
|
|
|
+ "id":4,
|
|
|
|
|
+ "name":"kill",
|
|
|
|
|
+ "workflow":workflow_id,
|
|
|
|
|
+ "node_type":"kill",
|
|
|
|
|
+ "child_links":[],
|
|
|
|
|
+ "message":"Action failed, error message[${wf:errorMessage(wf:lastErrorNode())}]",
|
|
|
|
|
+ },{
|
|
|
|
|
+ "id":3,
|
|
|
|
|
+ "name":"end",
|
|
|
|
|
+ "workflow":workflow_id,
|
|
|
|
|
+ "node_type":"end",
|
|
|
|
|
+ "child_links":[],
|
|
|
|
|
+ }],
|
|
|
|
|
+ },
|
|
|
|
|
+ registry: registry
|
|
|
|
|
+ });
|
|
|
|
|
+ return workflow;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ describe("Workflow operations", function(){
|
|
|
|
|
+ var json = '{"id":1,"name":"Test-pig-Workflow","start":1,"end":5,"description":"","schema_version":0.4,"deployment_dir":"","is_shared":true,"parameters":"[]","job_xml":"","nodes":[{"description":"","workflow":1,"child_links":[{"comment":"","name":"to","parent":1,"child":2},{"comment":"","name":"related","parent":1,"child":5}],"node_type":"start","id":1,"name":"start"},{"id":2,"name":"Pig-1","workflow":1,"node_type":"pig","script_path":"test.pig","child_links":[{"comment":"","name":"ok","parent":2,"child":3},{"comment":"","name":"error","parent":2,"child":4}],"description":"","files":"[]","archives":"[]","job_properties":"[]","prepares":"[]","job_xml":"","params":"[]"},{"id":4,"name":"kill","workflow":1,"node_type":"kill","child_links":[],"message":"Action failed, error message[${wf:errorMessage(wf:lastErrorNode())}]","description":""},{"id":3,"name":"end","workflow":1,"node_type":"end","child_links":[],"description":""}]}';
|
|
|
|
|
+ var node = null;
|
|
|
|
|
+ var viewModel = create_pig_workflow(1);
|
|
|
|
|
+ viewModel.rebuild();
|
|
|
|
|
+
|
|
|
|
|
+ it("Ensure serialized data sent to server is proper", function() {
|
|
|
|
|
+ expect(viewModel.toJSON()).toEqual(json);
|
|
|
|
|
+ });
|
|
|
|
|
+
|
|
|
|
|
+ it("Ensure data received from server can be loaded", function() {
|
|
|
|
|
+ viewModel.reload($.parseJSON(json.replace('test.pig','test1.pig')));
|
|
|
|
|
+ expect(viewModel.id()).toEqual(1);
|
|
|
|
|
+ expect(viewModel.name()).toEqual('Test-pig-Workflow');
|
|
|
|
|
+ expect(viewModel.start()).toEqual(1);
|
|
|
|
|
+ expect(viewModel.description()).toEqual("");
|
|
|
|
|
+ expect(viewModel.schema_version()).toEqual(0.4);
|
|
|
|
|
+ expect(viewModel.deployment_dir()).toEqual("");
|
|
|
|
|
+ expect(viewModel.is_shared()).toEqual(true);
|
|
|
|
|
+ expect(viewModel.parameters().length).toEqual(0);
|
|
|
|
|
+ expect(viewModel.job_xml()).toEqual("");
|
|
|
|
|
+ expect(viewModel.nodes().length).toEqual(3);
|
|
|
|
|
+ expect(viewModel.nodes()[1].script_path()).toEqual('test1.pig');
|
|
|
|
|
+ });
|
|
|
|
|
+ });
|
|
|
|
|
+
|
|
|
describe("Node APIs", function(){
|
|
describe("Node APIs", function(){
|
|
|
var node = null;
|
|
var node = null;
|
|
|
- var viewModel = create_three_step_workflow();
|
|
|
|
|
|
|
+ var viewModel = create_three_step_workflow(2);
|
|
|
viewModel.rebuild();
|
|
viewModel.rebuild();
|
|
|
|
|
|
|
|
it("Should be able to detach a node", function() {
|
|
it("Should be able to detach a node", function() {
|