Browse Source

[oozie] Load datasets in the examples

Offer select all and delete in the editor
Stop workflow object leak when seing external workflows
Romain Rigaux 12 years ago
parent
commit
b616733

+ 0 - 3443
apps/oozie/src/oozie/fixtures/initial_oozie_examples.json

@@ -1,3443 +0,0 @@
-[
-  {
-    "pk": 5,
-    "model": "oozie.job",
-    "fields": {
-      "is_shared": true,
-      "name": "MapReduce",
-      "parameters": "[]",
-      "deployment_dir": "/user/hue/oozie/workspaces/managed/sleep",
-      "schema_version": "uri:oozie:workflow:0.4",
-      "last_modified": "2013-06-01 00:00:00",
-      "owner": 1100713,
-      "is_trashed": false,
-      "description": "Example of MapReduce action that sleeps"
-    }
-  },
-  {
-    "pk": 6,
-    "model": "oozie.job",
-    "fields": {
-      "is_shared": true,
-      "name": "DailySleep",
-      "parameters": "[]",
-      "deployment_dir": "/user/hue/oozie/workspaces/managed/sleep",
-      "schema_version": "uri:oozie:coordinator:0.2",
-      "last_modified": "2013-06-01 00:00:00",
-      "owner": 1100713,
-      "is_trashed": false,
-      "description": "Run a daily sleep job"
-    }
-  },
-  {
-    "pk": 7,
-    "model": "oozie.job",
-    "fields": {
-      "is_shared": true,
-      "name": "Sequential Java",
-      "parameters": "[]",
-      "deployment_dir": "/user/hue/oozie/workspaces/managed/terasort",
-      "schema_version": "uri:oozie:workflow:0.4",
-      "last_modified": "2013-06-01 00:00:00",
-      "owner": 1100713,
-      "is_trashed": false,
-      "description": "Example of sequential Java actions"
-    }
-  },
-  {
-    "pk": 8,
-    "model": "oozie.job",
-    "fields": {
-      "is_shared": true,
-      "name": "Forks",
-      "parameters": "[]",
-      "deployment_dir": "/user/hue/oozie/workspaces/managed/sleepfork",
-      "schema_version": "uri:oozie:workflow:0.4",
-      "last_modified": "2013-06-01 00:00:00",
-      "owner": 1100713,
-      "is_trashed": false,
-      "description": "Example of multiple forks"
-    }
-  },
-  {
-    "pk": 10,
-    "model": "oozie.job",
-    "fields": {
-      "is_shared": true,
-      "name": "Hive",
-      "parameters": "[{\"name\":\"oozie.use.system.libpath\",\"value\":\"true\"}]",
-      "deployment_dir": "/user/hue/oozie/workspaces/managed/hive",
-      "schema_version": "uri:oozie:workflow:0.4",
-      "last_modified": "2013-06-01 00:00:00",
-      "owner": 1100713,
-      "is_trashed": false,
-      "description": "Example of Hive action"
-    }
-  },
-  {
-    "pk": 11,
-    "model": "oozie.job",
-    "fields": {
-      "is_shared": true,
-      "name": "Pig",
-      "parameters": "[{\"name\":\"oozie.use.system.libpath\",\"value\":\"true\"}]",
-      "deployment_dir": "/user/hue/oozie/workspaces/managed/pig",
-      "schema_version": "uri:oozie:workflow:0.4",
-      "last_modified": "2013-06-01 00:00:00",
-      "owner": 1100713,
-      "is_trashed": false,
-      "description": "Example of Pig action"
-    }
-  },
-  {
-    "pk": 12,
-    "model": "oozie.job",
-    "fields": {
-      "is_shared": true,
-      "name": "Sqoop",
-      "parameters": "[{\"name\":\"oozie.use.system.libpath\",\"value\":\"true\"}]",
-      "deployment_dir": "/user/hue/oozie/workspaces/managed/sqoop",
-      "schema_version": "uri:oozie:workflow:0.4",
-      "last_modified": "2013-06-01 00:00:00",
-      "owner": 1100713,
-      "is_trashed": false,
-      "description": "Example of Sqoop action"
-    }
-  },
-  {
-    "pk": 14,
-    "model": "oozie.job",
-    "fields": {
-      "is_shared": true,
-      "name": "Ssh",
-      "parameters": "[]",
-      "deployment_dir": "/user/hue/oozie/workspaces/managed/ssh",
-      "schema_version": "uri:oozie:workflow:0.4",
-      "last_modified": "2013-06-01 00:00:00",
-      "owner": 1100713,
-      "is_trashed": false,
-      "description": "Example of Ssh action"
-    }
-  },
-  {
-    "pk": 15,
-    "model": "oozie.job",
-    "fields": {
-      "is_shared": true,
-      "name": "Shell",
-      "parameters": "[]",
-      "deployment_dir": "/user/hue/oozie/workspaces/managed/shell",
-      "schema_version": "uri:oozie:workflow:0.4",
-      "last_modified": "2013-06-01 00:00:00",
-      "owner": 1100713,
-      "is_trashed": false,
-      "description": "Example of Shell action"
-    }
-  },
-  {
-    "pk": 16,
-    "model": "oozie.job",
-    "fields": {
-      "is_shared": true,
-      "name": "DistCp",
-      "parameters": "[{\"name\":\"oozie.use.system.libpath\",\"value\":\"true\"}]",
-      "deployment_dir": "/user/hue/oozie/workspaces/managed/distcp",
-      "schema_version": "uri:oozie:workflow:0.4",
-      "last_modified": "2013-06-01 00:00:00",
-      "owner": 1100713,
-      "is_trashed": false,
-      "description": "Example of DistCp action"
-    }
-  },
-  {
-    "pk": 18,
-    "model": "oozie.job",
-    "fields": {
-      "is_shared": true,
-      "name": "Email",
-      "parameters": "[{\"name\": \"oozie.use.system.libpath\", \"value\": \"true\"}]",
-      "deployment_dir": "/user/hue/oozie/workspaces/managed/email",
-      "schema_version": "uri:oozie:workflow:0.4",
-      "last_modified": "2013-06-01 00:00:00",
-      "owner": 1100713,
-      "is_trashed": false,
-      "description": "Example of Email action"
-    }
-  },
-  {
-    "pk": 19,
-    "model": "oozie.job",
-    "fields": {
-      "is_shared": true,
-      "name": "Fs",
-      "parameters": "[{\"name\": \"oozie.use.system.libpath\", \"value\": \"true\"}]",
-      "deployment_dir": "/user/hue/oozie/workspaces/managed/fs",
-      "schema_version": "uri:oozie:workflow:0.4",
-      "last_modified": "2013-06-01 00:00:00",
-      "owner": 1100713,
-      "is_trashed": false,
-      "description": "Example of sequential Fs actions"
-    }
-  },
-  {
-    "pk": 20,
-    "model": "oozie.job",
-    "fields": {
-      "is_shared": true,
-      "name": "Generic",
-      "parameters": "[{\"name\": \"oozie.use.system.libpath\", \"value\": \"true\"}]",
-      "deployment_dir": "/user/hue/oozie/workspaces/managed/generic",
-      "schema_version": "uri:oozie:workflow:0.4",
-      "last_modified": "2013-06-01 00:00:00",
-      "owner": 1100713,
-      "is_trashed": false,
-      "description": "Execute a generic action with a custom extension"
-    }
-  },
-  {
-    "pk": 21,
-    "model": "oozie.job",
-    "fields": {
-      "is_shared": true,
-      "name": "DailyAnalytics",
-      "parameters": "[]",
-      "deployment_dir": "/user/hue/oozie/workspaces/coordinators/range",
-      "schema_version": "uri:oozie:coordinator:0.2",
-      "last_modified": "2013-06-01 00:00:00",
-      "owner": 1100713,
-      "is_trashed": false,
-      "description": "Run daily a workflow with a date range of input data"
-    }
-  },
-  {
-    "pk": 22,
-    "model": "oozie.job",
-    "fields": {
-      "is_shared": true,
-      "name": "DistCp",
-      "parameters": "[{\"name\": \"oozie.use.system.libpath\", \"value\": \"true\"}]",
-      "deployment_dir": "/user/hue/oozie/workspaces/unmanaged/distcp",
-      "schema_version": "uri:oozie:workflow:0.4",
-      "last_modified": "2013-03-11 15:12:02",
-      "owner": 1100713,
-      "is_trashed": false,
-      "description": "Example of DistCp action"
-    }
-  },
-  {
-    "pk": 23,
-    "model": "oozie.job",
-    "fields": {
-      "is_shared": true,
-      "name": "Email",
-      "parameters": "[{\"name\": \"oozie.use.system.libpath\", \"value\": \"true\"}]",
-      "deployment_dir": "/user/hue/oozie/workspaces/unmanaged/email",
-      "schema_version": "uri:oozie:workflow:0.4",
-      "last_modified": "2013-03-11 15:12:11",
-      "owner": 1100713,
-      "is_trashed": false,
-      "description": "Example of Email action"
-    }
-  },
-  {
-    "pk": 24,
-    "model": "oozie.job",
-    "fields": {
-      "is_shared": true,
-      "name": "Fs",
-      "parameters": "[{\"name\": \"oozie.use.system.libpath\", \"value\": \"true\"}]",
-      "deployment_dir": "/user/hue/oozie/workspaces/unmanaged/fs",
-      "schema_version": "uri:oozie:workflow:0.4",
-      "last_modified": "2013-03-11 15:12:21",
-      "owner": 1100713,
-      "is_trashed": false,
-      "description": "Example of sequential Fs actions"
-    }
-  },
-  {
-    "pk": 25,
-    "model": "oozie.job",
-    "fields": {
-      "is_shared": true,
-      "name": "Hive",
-      "parameters": "[{\"name\":\"oozie.use.system.libpath\",\"value\":\"true\"}]",
-      "deployment_dir": "/user/hue/oozie/workspaces/unmanaged/hive",
-      "schema_version": "uri:oozie:workflow:0.4",
-      "last_modified": "2013-03-11 15:12:31",
-      "owner": 1100713,
-      "is_trashed": false,
-      "description": "Example of Hive action"
-    }
-  },
-  {
-    "pk": 26,
-    "model": "oozie.job",
-    "fields": {
-      "is_shared": true,
-      "name": "MapReduce",
-      "parameters": "[]",
-      "deployment_dir": "/user/hue/oozie/workspaces/unmanaged/sleep",
-      "schema_version": "uri:oozie:workflow:0.4",
-      "last_modified": "2013-03-11 15:12:43",
-      "owner": 1100713,
-      "is_trashed": false,
-      "description": "Example of MapReduce action that sleeps"
-    }
-  },
-  {
-    "pk": 27,
-    "model": "oozie.job",
-    "fields": {
-      "is_shared": true,
-      "name": "Pig",
-      "parameters": "[{\"name\":\"oozie.use.system.libpath\",\"value\":\"true\"}]",
-      "deployment_dir": "/user/hue/oozie/workspaces/unmanaged/pig",
-      "schema_version": "uri:oozie:workflow:0.4",
-      "last_modified": "2013-03-11 15:12:52",
-      "owner": 1100713,
-      "is_trashed": false,
-      "description": "Example of Pig action"
-    }
-  },
-  {
-    "pk": 28,
-    "model": "oozie.job",
-    "fields": {
-      "is_shared": true,
-      "name": "Shell",
-      "parameters": "[]",
-      "deployment_dir": "/user/hue/oozie/workspaces/unmanaged/shell",
-      "schema_version": "uri:oozie:workflow:0.4",
-      "last_modified": "2013-03-11 15:13:00",
-      "owner": 1100713,
-      "is_trashed": false,
-      "description": "Example of Shell action"
-    }
-  },
-  {
-    "pk": 29,
-    "model": "oozie.job",
-    "fields": {
-      "is_shared": true,
-      "name": "Sqoop",
-      "parameters": "[{\"name\":\"oozie.use.system.libpath\",\"value\":\"true\"}]",
-      "deployment_dir": "/user/hue/oozie/workspaces/unmanaged/sqoop",
-      "schema_version": "uri:oozie:workflow:0.4",
-      "last_modified": "2013-03-11 15:13:08",
-      "owner": 1100713,
-      "is_trashed": false,
-      "description": "Example of Sqoop action"
-    }
-  },
-  {
-    "pk": 30,
-    "model": "oozie.job",
-    "fields": {
-      "is_shared": true,
-      "name": "Ssh",
-      "parameters": "[]",
-      "deployment_dir": "/user/hue/oozie/workspaces/unmanaged/ssh",
-      "schema_version": "uri:oozie:workflow:0.4",
-      "last_modified": "2013-03-11 15:13:18",
-      "owner": 1100713,
-      "is_trashed": false,
-      "description": "Example of Ssh action"
-    }
-  },
-  {
-    "pk": 31,
-    "model": "oozie.job",
-    "fields": {
-      "is_shared": true,
-      "name": "Aggregate",
-      "parameters": "[{\"name\":\"oozie.use.system.libpath\",\"value\":\"true\"}]",
-      "deployment_dir": "/user/hue/oozie/workspaces/bundles/aggregate",
-      "schema_version": "uri:oozie:bundle:0.2",
-      "last_modified": "2013-06-06 18:15:37",
-      "owner": 1100713,
-      "is_trashed": false,
-      "description": "Aggregate together and batch 2 coordinators"
-    }
-  },
-  {
-    "pk": 5,
-    "model": "oozie.workflow",
-    "fields": {
-      "job_xml": "",
-      "end": 17,
-      "is_single": false,
-      "job_properties": "[]",
-      "start": 18,
-      "managed": true
-    }
-  },
-  {
-    "pk": 7,
-    "model": "oozie.workflow",
-    "fields": {
-      "job_xml": "",
-      "end": 21,
-      "is_single": false,
-      "job_properties": "[]",
-      "start": 22,
-      "managed": true
-    }
-  },
-  {
-    "pk": 8,
-    "model": "oozie.workflow",
-    "fields": {
-      "job_xml": "",
-      "end": 26,
-      "is_single": false,
-      "job_properties": "[]",
-      "start": 27,
-      "managed": true
-    }
-  },
-  {
-    "pk": 10,
-    "model": "oozie.workflow",
-    "fields": {
-      "job_xml": "",
-      "end": 46,
-      "is_single": false,
-      "job_properties": "[]",
-      "start": 47,
-      "managed": true
-    }
-  },
-  {
-    "pk": 11,
-    "model": "oozie.workflow",
-    "fields": {
-      "job_xml": "",
-      "end": 50,
-      "is_single": false,
-      "job_properties": "[]",
-      "start": 51,
-      "managed": true
-    }
-  },
-  {
-    "pk": 12,
-    "model": "oozie.workflow",
-    "fields": {
-      "job_xml": "",
-      "end": 54,
-      "is_single": false,
-      "job_properties": "[]",
-      "start": 55,
-      "managed": true
-    }
-  },
-  {
-    "pk": 14,
-    "model": "oozie.workflow",
-    "fields": {
-      "job_xml": "",
-      "end": 62,
-      "is_single": false,
-      "job_properties": "[]",
-      "start": 63,
-      "managed": true
-    }
-  },
-  {
-    "pk": 15,
-    "model": "oozie.workflow",
-    "fields": {
-      "job_xml": "",
-      "end": 66,
-      "is_single": false,
-      "job_properties": "[]",
-      "start": 67,
-      "managed": true
-    }
-  },
-  {
-    "pk": 16,
-    "model": "oozie.workflow",
-    "fields": {
-      "job_xml": "",
-      "end": 70,
-      "is_single": false,
-      "job_properties": "[]",
-      "start": 71,
-      "managed": true
-    }
-  },
-  {
-    "pk": 18,
-    "model": "oozie.workflow",
-    "fields": {
-      "job_xml": "",
-      "end": 78,
-      "is_single": false,
-      "job_properties": "[]",
-      "start": 79,
-      "managed": true
-    }
-  },
-  {
-    "pk": 19,
-    "model": "oozie.workflow",
-    "fields": {
-      "job_xml": "",
-      "end": 82,
-      "is_single": false,
-      "job_properties": "[]",
-      "start": 83,
-      "managed": true
-    }
-  },
-  {
-    "pk": 20,
-    "model": "oozie.workflow",
-    "fields": {
-      "job_xml": "",
-      "end": 86,
-      "is_single": false,
-      "job_properties": "[]",
-      "start": 87,
-      "managed": true
-    }
-  },
-  {
-    "pk": 22,
-    "model": "oozie.workflow",
-    "fields": {
-      "job_xml": "",
-      "end": 90,
-      "is_single": false,
-      "job_properties": "[]",
-      "start": 91,
-      "managed": false
-    }
-  },
-  {
-    "pk": 23,
-    "model": "oozie.workflow",
-    "fields": {
-      "job_xml": "",
-      "end": 94,
-      "is_single": false,
-      "job_properties": "[]",
-      "start": 95,
-      "managed": false
-    }
-  },
-  {
-    "pk": 24,
-    "model": "oozie.workflow",
-    "fields": {
-      "job_xml": "",
-      "end": 98,
-      "is_single": false,
-      "job_properties": "[]",
-      "start": 99,
-      "managed": false
-    }
-  },
-  {
-    "pk": 25,
-    "model": "oozie.workflow",
-    "fields": {
-      "job_xml": "",
-      "end": 102,
-      "is_single": false,
-      "job_properties": "[]",
-      "start": 103,
-      "managed": false
-    }
-  },
-  {
-    "pk": 26,
-    "model": "oozie.workflow",
-    "fields": {
-      "job_xml": "",
-      "end": 106,
-      "is_single": false,
-      "job_properties": "[]",
-      "start": 107,
-      "managed": false
-    }
-  },
-  {
-    "pk": 27,
-    "model": "oozie.workflow",
-    "fields": {
-      "job_xml": "",
-      "end": 110,
-      "is_single": false,
-      "job_properties": "[]",
-      "start": 111,
-      "managed": false
-    }
-  },
-  {
-    "pk": 28,
-    "model": "oozie.workflow",
-    "fields": {
-      "job_xml": "",
-      "end": 114,
-      "is_single": false,
-      "job_properties": "[]",
-      "start": 115,
-      "managed": false
-    }
-  },
-  {
-    "pk": 29,
-    "model": "oozie.workflow",
-    "fields": {
-      "job_xml": "",
-      "end": 118,
-      "is_single": false,
-      "job_properties": "[]",
-      "start": 119,
-      "managed": false
-    }
-  },
-  {
-    "pk": 30,
-    "model": "oozie.workflow",
-    "fields": {
-      "job_xml": "",
-      "end": 122,
-      "is_single": false,
-      "job_properties": "[]",
-      "start": 123,
-      "managed": false
-    }
-  },
-  {
-    "pk": 23,
-    "model": "oozie.link",
-    "fields": {
-      "comment": "",
-      "name": "to",
-      "parent": 18,
-      "child": 19
-    }
-  },
-  {
-    "pk": 24,
-    "model": "oozie.link",
-    "fields": {
-      "comment": "",
-      "name": "related",
-      "parent": 18,
-      "child": 17
-    }
-  },
-  {
-    "pk": 25,
-    "model": "oozie.link",
-    "fields": {
-      "comment": "",
-      "name": "ok",
-      "parent": 19,
-      "child": 17
-    }
-  },
-  {
-    "pk": 26,
-    "model": "oozie.link",
-    "fields": {
-      "comment": "",
-      "name": "error",
-      "parent": 19,
-      "child": 16
-    }
-  },
-  {
-    "pk": 27,
-    "model": "oozie.link",
-    "fields": {
-      "comment": "",
-      "name": "to",
-      "parent": 22,
-      "child": 23
-    }
-  },
-  {
-    "pk": 28,
-    "model": "oozie.link",
-    "fields": {
-      "comment": "",
-      "name": "related",
-      "parent": 22,
-      "child": 21
-    }
-  },
-  {
-    "pk": 29,
-    "model": "oozie.link",
-    "fields": {
-      "comment": "",
-      "name": "ok",
-      "parent": 23,
-      "child": 24
-    }
-  },
-  {
-    "pk": 30,
-    "model": "oozie.link",
-    "fields": {
-      "comment": "",
-      "name": "error",
-      "parent": 23,
-      "child": 20
-    }
-  },
-  {
-    "pk": 31,
-    "model": "oozie.link",
-    "fields": {
-      "comment": "",
-      "name": "ok",
-      "parent": 24,
-      "child": 21
-    }
-  },
-  {
-    "pk": 32,
-    "model": "oozie.link",
-    "fields": {
-      "comment": "",
-      "name": "error",
-      "parent": 24,
-      "child": 20
-    }
-  },
-  {
-    "pk": 33,
-    "model": "oozie.link",
-    "fields": {
-      "comment": "",
-      "name": "to",
-      "parent": 27,
-      "child": 34
-    }
-  },
-  {
-    "pk": 34,
-    "model": "oozie.link",
-    "fields": {
-      "comment": "",
-      "name": "related",
-      "parent": 27,
-      "child": 26
-    }
-  },
-  {
-    "pk": 35,
-    "model": "oozie.link",
-    "fields": {
-      "comment": "",
-      "name": "ok",
-      "parent": 28,
-      "child": 40
-    }
-  },
-  {
-    "pk": 36,
-    "model": "oozie.link",
-    "fields": {
-      "comment": "",
-      "name": "error",
-      "parent": 28,
-      "child": 25
-    }
-  },
-  {
-    "pk": 37,
-    "model": "oozie.link",
-    "fields": {
-      "comment": "",
-      "name": "ok",
-      "parent": 29,
-      "child": 38
-    }
-  },
-  {
-    "pk": 38,
-    "model": "oozie.link",
-    "fields": {
-      "comment": "",
-      "name": "error",
-      "parent": 29,
-      "child": 25
-    }
-  },
-  {
-    "pk": 50,
-    "model": "oozie.link",
-    "fields": {
-      "comment": "",
-      "name": "start",
-      "parent": 34,
-      "child": 28
-    }
-  },
-  {
-    "pk": 51,
-    "model": "oozie.link",
-    "fields": {
-      "comment": "",
-      "name": "start",
-      "parent": 34,
-      "child": 29
-    }
-  },
-  {
-    "pk": 52,
-    "model": "oozie.link",
-    "fields": {
-      "comment": "",
-      "name": "to",
-      "parent": 35,
-      "child": 26
-    }
-  },
-  {
-    "pk": 53,
-    "model": "oozie.link",
-    "fields": {
-      "comment": "",
-      "name": "related",
-      "parent": 34,
-      "child": 35
-    }
-  },
-  {
-    "pk": 54,
-    "model": "oozie.link",
-    "fields": {
-      "comment": "",
-      "name": "ok",
-      "parent": 36,
-      "child": 39
-    }
-  },
-  {
-    "pk": 55,
-    "model": "oozie.link",
-    "fields": {
-      "comment": "",
-      "name": "error",
-      "parent": 36,
-      "child": 25
-    }
-  },
-  {
-    "pk": 56,
-    "model": "oozie.link",
-    "fields": {
-      "comment": "",
-      "name": "ok",
-      "parent": 37,
-      "child": 39
-    }
-  },
-  {
-    "pk": 57,
-    "model": "oozie.link",
-    "fields": {
-      "comment": "",
-      "name": "error",
-      "parent": 37,
-      "child": 25
-    }
-  },
-  {
-    "pk": 58,
-    "model": "oozie.link",
-    "fields": {
-      "comment": "",
-      "name": "start",
-      "parent": 38,
-      "child": 37
-    }
-  },
-  {
-    "pk": 59,
-    "model": "oozie.link",
-    "fields": {
-      "comment": "",
-      "name": "start",
-      "parent": 38,
-      "child": 36
-    }
-  },
-  {
-    "pk": 60,
-    "model": "oozie.link",
-    "fields": {
-      "comment": "",
-      "name": "to",
-      "parent": 39,
-      "child": 35
-    }
-  },
-  {
-    "pk": 61,
-    "model": "oozie.link",
-    "fields": {
-      "comment": "",
-      "name": "related",
-      "parent": 38,
-      "child": 39
-    }
-  },
-  {
-    "pk": 62,
-    "model": "oozie.link",
-    "fields": {
-      "comment": "",
-      "name": "ok",
-      "parent": 40,
-      "child": 35
-    }
-  },
-  {
-    "pk": 63,
-    "model": "oozie.link",
-    "fields": {
-      "comment": "",
-      "name": "error",
-      "parent": 40,
-      "child": 25
-    }
-  },
-  {
-    "pk": 68,
-    "model": "oozie.link",
-    "fields": {
-      "comment": "",
-      "name": "to",
-      "parent": 47,
-      "child": 48
-    }
-  },
-  {
-    "pk": 69,
-    "model": "oozie.link",
-    "fields": {
-      "comment": "",
-      "name": "related",
-      "parent": 47,
-      "child": 46
-    }
-  },
-  {
-    "pk": 70,
-    "model": "oozie.link",
-    "fields": {
-      "comment": "",
-      "name": "ok",
-      "parent": 48,
-      "child": 46
-    }
-  },
-  {
-    "pk": 71,
-    "model": "oozie.link",
-    "fields": {
-      "comment": "",
-      "name": "error",
-      "parent": 48,
-      "child": 45
-    }
-  },
-  {
-    "pk": 72,
-    "model": "oozie.link",
-    "fields": {
-      "comment": "",
-      "name": "to",
-      "parent": 51,
-      "child": 52
-    }
-  },
-  {
-    "pk": 73,
-    "model": "oozie.link",
-    "fields": {
-      "comment": "",
-      "name": "related",
-      "parent": 51,
-      "child": 50
-    }
-  },
-  {
-    "pk": 74,
-    "model": "oozie.link",
-    "fields": {
-      "comment": "",
-      "name": "ok",
-      "parent": 52,
-      "child": 50
-    }
-  },
-  {
-    "pk": 75,
-    "model": "oozie.link",
-    "fields": {
-      "comment": "",
-      "name": "error",
-      "parent": 52,
-      "child": 49
-    }
-  },
-  {
-    "pk": 76,
-    "model": "oozie.link",
-    "fields": {
-      "comment": "",
-      "name": "to",
-      "parent": 55,
-      "child": 56
-    }
-  },
-  {
-    "pk": 77,
-    "model": "oozie.link",
-    "fields": {
-      "comment": "",
-      "name": "related",
-      "parent": 55,
-      "child": 54
-    }
-  },
-  {
-    "pk": 78,
-    "model": "oozie.link",
-    "fields": {
-      "comment": "",
-      "name": "ok",
-      "parent": 56,
-      "child": 54
-    }
-  },
-  {
-    "pk": 79,
-    "model": "oozie.link",
-    "fields": {
-      "comment": "",
-      "name": "error",
-      "parent": 56,
-      "child": 53
-    }
-  },
-  {
-    "pk": 84,
-    "model": "oozie.link",
-    "fields": {
-      "comment": "",
-      "name": "to",
-      "parent": 63,
-      "child": 64
-    }
-  },
-  {
-    "pk": 85,
-    "model": "oozie.link",
-    "fields": {
-      "comment": "",
-      "name": "related",
-      "parent": 63,
-      "child": 62
-    }
-  },
-  {
-    "pk": 86,
-    "model": "oozie.link",
-    "fields": {
-      "comment": "",
-      "name": "ok",
-      "parent": 64,
-      "child": 62
-    }
-  },
-  {
-    "pk": 87,
-    "model": "oozie.link",
-    "fields": {
-      "comment": "",
-      "name": "error",
-      "parent": 64,
-      "child": 61
-    }
-  },
-  {
-    "pk": 88,
-    "model": "oozie.link",
-    "fields": {
-      "comment": "",
-      "name": "to",
-      "parent": 67,
-      "child": 68
-    }
-  },
-  {
-    "pk": 89,
-    "model": "oozie.link",
-    "fields": {
-      "comment": "",
-      "name": "related",
-      "parent": 67,
-      "child": 66
-    }
-  },
-  {
-    "pk": 90,
-    "model": "oozie.link",
-    "fields": {
-      "comment": "",
-      "name": "ok",
-      "parent": 68,
-      "child": 66
-    }
-  },
-  {
-    "pk": 91,
-    "model": "oozie.link",
-    "fields": {
-      "comment": "",
-      "name": "error",
-      "parent": 68,
-      "child": 65
-    }
-  },
-  {
-    "pk": 92,
-    "model": "oozie.link",
-    "fields": {
-      "comment": "",
-      "name": "to",
-      "parent": 71,
-      "child": 72
-    }
-  },
-  {
-    "pk": 93,
-    "model": "oozie.link",
-    "fields": {
-      "comment": "",
-      "name": "related",
-      "parent": 71,
-      "child": 70
-    }
-  },
-  {
-    "pk": 94,
-    "model": "oozie.link",
-    "fields": {
-      "comment": "",
-      "name": "ok",
-      "parent": 72,
-      "child": 70
-    }
-  },
-  {
-    "pk": 95,
-    "model": "oozie.link",
-    "fields": {
-      "comment": "",
-      "name": "error",
-      "parent": 72,
-      "child": 69
-    }
-  },
-  {
-    "pk": 99,
-    "model": "oozie.link",
-    "fields": {
-      "comment": "",
-      "name": "to",
-      "parent": 79,
-      "child": 80
-    }
-  },
-  {
-    "pk": 100,
-    "model": "oozie.link",
-    "fields": {
-      "comment": "",
-      "name": "related",
-      "parent": 79,
-      "child": 78
-    }
-  },
-  {
-    "pk": 101,
-    "model": "oozie.link",
-    "fields": {
-      "comment": "",
-      "name": "ok",
-      "parent": 80,
-      "child": 78
-    }
-  },
-  {
-    "pk": 102,
-    "model": "oozie.link",
-    "fields": {
-      "comment": "",
-      "name": "error",
-      "parent": 80,
-      "child": 77
-    }
-  },
-  {
-    "pk": 103,
-    "model": "oozie.link",
-    "fields": {
-      "comment": "",
-      "name": "to",
-      "parent": 83,
-      "child": 84
-    }
-  },
-  {
-    "pk": 104,
-    "model": "oozie.link",
-    "fields": {
-      "comment": "",
-      "name": "related",
-      "parent": 83,
-      "child": 82
-    }
-  },
-  {
-    "pk": 105,
-    "model": "oozie.link",
-    "fields": {
-      "comment": "",
-      "name": "ok",
-      "parent": 84,
-      "child": 82
-    }
-  },
-  {
-    "pk": 106,
-    "model": "oozie.link",
-    "fields": {
-      "comment": "",
-      "name": "error",
-      "parent": 84,
-      "child": 81
-    }
-  },
-  {
-    "pk": 107,
-    "model": "oozie.link",
-    "fields": {
-      "comment": "",
-      "name": "to",
-      "parent": 87,
-      "child": 88
-    }
-  },
-  {
-    "pk": 108,
-    "model": "oozie.link",
-    "fields": {
-      "comment": "",
-      "name": "related",
-      "parent": 87,
-      "child": 86
-    }
-  },
-  {
-    "pk": 109,
-    "model": "oozie.link",
-    "fields": {
-      "comment": "",
-      "name": "ok",
-      "parent": 88,
-      "child": 86
-    }
-  },
-  {
-    "pk": 110,
-    "model": "oozie.link",
-    "fields": {
-      "comment": "",
-      "name": "error",
-      "parent": 88,
-      "child": 85
-    }
-  },
-  {
-    "pk": 115,
-    "model": "oozie.link",
-    "fields": {
-      "comment": "",
-      "name": "to",
-      "parent": 91,
-      "child": 92
-    }
-  },
-  {
-    "pk": 116,
-    "model": "oozie.link",
-    "fields": {
-      "comment": "",
-      "name": "related",
-      "parent": 91,
-      "child": 90
-    }
-  },
-  {
-    "pk": 117,
-    "model": "oozie.link",
-    "fields": {
-      "comment": "",
-      "name": "ok",
-      "parent": 92,
-      "child": 90
-    }
-  },
-  {
-    "pk": 118,
-    "model": "oozie.link",
-    "fields": {
-      "comment": "",
-      "name": "error",
-      "parent": 92,
-      "child": 89
-    }
-  },
-  {
-    "pk": 119,
-    "model": "oozie.link",
-    "fields": {
-      "comment": "",
-      "name": "to",
-      "parent": 95,
-      "child": 96
-    }
-  },
-  {
-    "pk": 120,
-    "model": "oozie.link",
-    "fields": {
-      "comment": "",
-      "name": "related",
-      "parent": 95,
-      "child": 94
-    }
-  },
-  {
-    "pk": 121,
-    "model": "oozie.link",
-    "fields": {
-      "comment": "",
-      "name": "ok",
-      "parent": 96,
-      "child": 94
-    }
-  },
-  {
-    "pk": 122,
-    "model": "oozie.link",
-    "fields": {
-      "comment": "",
-      "name": "error",
-      "parent": 96,
-      "child": 93
-    }
-  },
-  {
-    "pk": 123,
-    "model": "oozie.link",
-    "fields": {
-      "comment": "",
-      "name": "to",
-      "parent": 99,
-      "child": 100
-    }
-  },
-  {
-    "pk": 124,
-    "model": "oozie.link",
-    "fields": {
-      "comment": "",
-      "name": "related",
-      "parent": 99,
-      "child": 98
-    }
-  },
-  {
-    "pk": 125,
-    "model": "oozie.link",
-    "fields": {
-      "comment": "",
-      "name": "ok",
-      "parent": 100,
-      "child": 98
-    }
-  },
-  {
-    "pk": 126,
-    "model": "oozie.link",
-    "fields": {
-      "comment": "",
-      "name": "error",
-      "parent": 100,
-      "child": 97
-    }
-  },
-  {
-    "pk": 127,
-    "model": "oozie.link",
-    "fields": {
-      "comment": "",
-      "name": "to",
-      "parent": 103,
-      "child": 104
-    }
-  },
-  {
-    "pk": 128,
-    "model": "oozie.link",
-    "fields": {
-      "comment": "",
-      "name": "related",
-      "parent": 103,
-      "child": 102
-    }
-  },
-  {
-    "pk": 129,
-    "model": "oozie.link",
-    "fields": {
-      "comment": "",
-      "name": "ok",
-      "parent": 104,
-      "child": 102
-    }
-  },
-  {
-    "pk": 130,
-    "model": "oozie.link",
-    "fields": {
-      "comment": "",
-      "name": "error",
-      "parent": 104,
-      "child": 101
-    }
-  },
-  {
-    "pk": 131,
-    "model": "oozie.link",
-    "fields": {
-      "comment": "",
-      "name": "to",
-      "parent": 107,
-      "child": 108
-    }
-  },
-  {
-    "pk": 132,
-    "model": "oozie.link",
-    "fields": {
-      "comment": "",
-      "name": "related",
-      "parent": 107,
-      "child": 106
-    }
-  },
-  {
-    "pk": 133,
-    "model": "oozie.link",
-    "fields": {
-      "comment": "",
-      "name": "ok",
-      "parent": 108,
-      "child": 106
-    }
-  },
-  {
-    "pk": 134,
-    "model": "oozie.link",
-    "fields": {
-      "comment": "",
-      "name": "error",
-      "parent": 108,
-      "child": 105
-    }
-  },
-  {
-    "pk": 135,
-    "model": "oozie.link",
-    "fields": {
-      "comment": "",
-      "name": "to",
-      "parent": 111,
-      "child": 112
-    }
-  },
-  {
-    "pk": 136,
-    "model": "oozie.link",
-    "fields": {
-      "comment": "",
-      "name": "related",
-      "parent": 111,
-      "child": 110
-    }
-  },
-  {
-    "pk": 137,
-    "model": "oozie.link",
-    "fields": {
-      "comment": "",
-      "name": "ok",
-      "parent": 112,
-      "child": 110
-    }
-  },
-  {
-    "pk": 138,
-    "model": "oozie.link",
-    "fields": {
-      "comment": "",
-      "name": "error",
-      "parent": 112,
-      "child": 109
-    }
-  },
-  {
-    "pk": 139,
-    "model": "oozie.link",
-    "fields": {
-      "comment": "",
-      "name": "to",
-      "parent": 115,
-      "child": 116
-    }
-  },
-  {
-    "pk": 140,
-    "model": "oozie.link",
-    "fields": {
-      "comment": "",
-      "name": "related",
-      "parent": 115,
-      "child": 114
-    }
-  },
-  {
-    "pk": 141,
-    "model": "oozie.link",
-    "fields": {
-      "comment": "",
-      "name": "ok",
-      "parent": 116,
-      "child": 114
-    }
-  },
-  {
-    "pk": 142,
-    "model": "oozie.link",
-    "fields": {
-      "comment": "",
-      "name": "error",
-      "parent": 116,
-      "child": 113
-    }
-  },
-  {
-    "pk": 143,
-    "model": "oozie.link",
-    "fields": {
-      "comment": "",
-      "name": "to",
-      "parent": 119,
-      "child": 120
-    }
-  },
-  {
-    "pk": 144,
-    "model": "oozie.link",
-    "fields": {
-      "comment": "",
-      "name": "related",
-      "parent": 119,
-      "child": 118
-    }
-  },
-  {
-    "pk": 145,
-    "model": "oozie.link",
-    "fields": {
-      "comment": "",
-      "name": "ok",
-      "parent": 120,
-      "child": 118
-    }
-  },
-  {
-    "pk": 146,
-    "model": "oozie.link",
-    "fields": {
-      "comment": "",
-      "name": "error",
-      "parent": 120,
-      "child": 117
-    }
-  },
-  {
-    "pk": 147,
-    "model": "oozie.link",
-    "fields": {
-      "comment": "",
-      "name": "to",
-      "parent": 123,
-      "child": 124
-    }
-  },
-  {
-    "pk": 148,
-    "model": "oozie.link",
-    "fields": {
-      "comment": "",
-      "name": "related",
-      "parent": 123,
-      "child": 122
-    }
-  },
-  {
-    "pk": 149,
-    "model": "oozie.link",
-    "fields": {
-      "comment": "",
-      "name": "ok",
-      "parent": 124,
-      "child": 122
-    }
-  },
-  {
-    "pk": 150,
-    "model": "oozie.link",
-    "fields": {
-      "comment": "",
-      "name": "error",
-      "parent": 124,
-      "child": 121
-    }
-  },
-  {
-    "pk": 16,
-    "model": "oozie.node",
-    "fields": {
-      "node_type": "kill",
-      "workflow": 5,
-      "name": "kill",
-      "description": ""
-    }
-  },
-  {
-    "pk": 17,
-    "model": "oozie.node",
-    "fields": {
-      "node_type": "end",
-      "workflow": 5,
-      "name": "end",
-      "description": ""
-    }
-  },
-  {
-    "pk": 18,
-    "model": "oozie.node",
-    "fields": {
-      "node_type": "start",
-      "workflow": 5,
-      "name": "start",
-      "description": ""
-    }
-  },
-  {
-    "pk": 19,
-    "model": "oozie.node",
-    "fields": {
-      "node_type": "mapreduce",
-      "workflow": 5,
-      "name": "Sleep",
-      "description": "Sleep for some time"
-    }
-  },
-  {
-    "pk": 20,
-    "model": "oozie.node",
-    "fields": {
-      "node_type": "kill",
-      "workflow": 7,
-      "name": "kill",
-      "description": ""
-    }
-  },
-  {
-    "pk": 21,
-    "model": "oozie.node",
-    "fields": {
-      "node_type": "end",
-      "workflow": 7,
-      "name": "end",
-      "description": ""
-    }
-  },
-  {
-    "pk": 22,
-    "model": "oozie.node",
-    "fields": {
-      "node_type": "start",
-      "workflow": 7,
-      "name": "start",
-      "description": ""
-    }
-  },
-  {
-    "pk": 23,
-    "model": "oozie.node",
-    "fields": {
-      "node_type": "java",
-      "workflow": 7,
-      "name": "TeraGenWorkflow",
-      "description": "Generate N number of records"
-    }
-  },
-  {
-    "pk": 24,
-    "model": "oozie.node",
-    "fields": {
-      "node_type": "java",
-      "workflow": 7,
-      "name": "TeraSort",
-      "description": "Sort the records"
-    }
-  },
-  {
-    "pk": 25,
-    "model": "oozie.node",
-    "fields": {
-      "node_type": "kill",
-      "workflow": 8,
-      "name": "kill",
-      "description": ""
-    }
-  },
-  {
-    "pk": 26,
-    "model": "oozie.node",
-    "fields": {
-      "node_type": "end",
-      "workflow": 8,
-      "name": "end",
-      "description": ""
-    }
-  },
-  {
-    "pk": 27,
-    "model": "oozie.node",
-    "fields": {
-      "node_type": "start",
-      "workflow": 8,
-      "name": "start",
-      "description": ""
-    }
-  },
-  {
-    "pk": 28,
-    "model": "oozie.node",
-    "fields": {
-      "node_type": "mapreduce",
-      "workflow": 8,
-      "name": "Sleep-1",
-      "description": "Sleep for 1 second"
-    }
-  },
-  {
-    "pk": 29,
-    "model": "oozie.node",
-    "fields": {
-      "node_type": "mapreduce",
-      "workflow": 8,
-      "name": "Sleep-5",
-      "description": "Sleep for 5 seconds"
-    }
-  },
-  {
-    "pk": 34,
-    "model": "oozie.node",
-    "fields": {
-      "node_type": "fork",
-      "workflow": 8,
-      "name": "",
-      "description": ""
-    }
-  },
-  {
-    "pk": 35,
-    "model": "oozie.node",
-    "fields": {
-      "node_type": "join",
-      "workflow": 8,
-      "name": "",
-      "description": ""
-    }
-  },
-  {
-    "pk": 36,
-    "model": "oozie.node",
-    "fields": {
-      "node_type": "mapreduce",
-      "workflow": 8,
-      "name": "Sleep-4",
-      "description": "Sleep for 4 seconds"
-    }
-  },
-  {
-    "pk": 37,
-    "model": "oozie.node",
-    "fields": {
-      "node_type": "mapreduce",
-      "workflow": 8,
-      "name": "Sleep-3",
-      "description": "Sleep for 3 seconds"
-    }
-  },
-  {
-    "pk": 38,
-    "model": "oozie.node",
-    "fields": {
-      "node_type": "fork",
-      "workflow": 8,
-      "name": "",
-      "description": ""
-    }
-  },
-  {
-    "pk": 39,
-    "model": "oozie.node",
-    "fields": {
-      "node_type": "join",
-      "workflow": 8,
-      "name": "",
-      "description": ""
-    }
-  },
-  {
-    "pk": 40,
-    "model": "oozie.node",
-    "fields": {
-      "node_type": "mapreduce",
-      "workflow": 8,
-      "name": "Sleep-10",
-      "description": "Sleep for 10 seconds"
-    }
-  },
-  {
-    "pk": 45,
-    "model": "oozie.node",
-    "fields": {
-      "node_type": "kill",
-      "workflow": 10,
-      "name": "kill",
-      "description": ""
-    }
-  },
-  {
-    "pk": 46,
-    "model": "oozie.node",
-    "fields": {
-      "node_type": "end",
-      "workflow": 10,
-      "name": "end",
-      "description": ""
-    }
-  },
-  {
-    "pk": 47,
-    "model": "oozie.node",
-    "fields": {
-      "node_type": "start",
-      "workflow": 10,
-      "name": "start",
-      "description": ""
-    }
-  },
-  {
-    "pk": 48,
-    "model": "oozie.node",
-    "fields": {
-      "node_type": "hive",
-      "workflow": 10,
-      "name": "Hive",
-      "description": "Show tables"
-    }
-  },
-  {
-    "pk": 49,
-    "model": "oozie.node",
-    "fields": {
-      "node_type": "kill",
-      "workflow": 11,
-      "name": "kill",
-      "description": ""
-    }
-  },
-  {
-    "pk": 50,
-    "model": "oozie.node",
-    "fields": {
-      "node_type": "end",
-      "workflow": 11,
-      "name": "end",
-      "description": ""
-    }
-  },
-  {
-    "pk": 51,
-    "model": "oozie.node",
-    "fields": {
-      "node_type": "start",
-      "workflow": 11,
-      "name": "start",
-      "description": ""
-    }
-  },
-  {
-    "pk": 52,
-    "model": "oozie.node",
-    "fields": {
-      "node_type": "pig",
-      "workflow": 11,
-      "name": "Pig",
-      "description": "Aggregate some input data"
-    }
-  },
-  {
-    "pk": 53,
-    "model": "oozie.node",
-    "fields": {
-      "node_type": "kill",
-      "workflow": 12,
-      "name": "kill",
-      "description": ""
-    }
-  },
-  {
-    "pk": 54,
-    "model": "oozie.node",
-    "fields": {
-      "node_type": "end",
-      "workflow": 12,
-      "name": "end",
-      "description": ""
-    }
-  },
-  {
-    "pk": 55,
-    "model": "oozie.node",
-    "fields": {
-      "node_type": "start",
-      "workflow": 12,
-      "name": "start",
-      "description": ""
-    }
-  },
-  {
-    "pk": 56,
-    "model": "oozie.node",
-    "fields": {
-      "node_type": "sqoop",
-      "workflow": 12,
-      "name": "Sqoop",
-      "description": "Export data from the table TT"
-    }
-  },
-  {
-    "pk": 61,
-    "model": "oozie.node",
-    "fields": {
-      "node_type": "kill",
-      "workflow": 14,
-      "name": "kill",
-      "description": ""
-    }
-  },
-  {
-    "pk": 62,
-    "model": "oozie.node",
-    "fields": {
-      "node_type": "end",
-      "workflow": 14,
-      "name": "end",
-      "description": ""
-    }
-  },
-  {
-    "pk": 63,
-    "model": "oozie.node",
-    "fields": {
-      "node_type": "start",
-      "workflow": 14,
-      "name": "start",
-      "description": ""
-    }
-  },
-  {
-    "pk": 64,
-    "model": "oozie.node",
-    "fields": {
-      "node_type": "ssh",
-      "workflow": 14,
-      "name": "Ssh",
-      "description": "Execute the ls command on a certain host"
-    }
-  },
-  {
-    "pk": 65,
-    "model": "oozie.node",
-    "fields": {
-      "node_type": "kill",
-      "workflow": 15,
-      "name": "kill",
-      "description": ""
-    }
-  },
-  {
-    "pk": 66,
-    "model": "oozie.node",
-    "fields": {
-      "node_type": "end",
-      "workflow": 15,
-      "name": "end",
-      "description": ""
-    }
-  },
-  {
-    "pk": 67,
-    "model": "oozie.node",
-    "fields": {
-      "node_type": "start",
-      "workflow": 15,
-      "name": "start",
-      "description": ""
-    }
-  },
-  {
-    "pk": 68,
-    "model": "oozie.node",
-    "fields": {
-      "node_type": "shell",
-      "workflow": 15,
-      "name": "Shell",
-      "description": "Execute a Python script printing its arguments"
-    }
-  },
-  {
-    "pk": 69,
-    "model": "oozie.node",
-    "fields": {
-      "node_type": "kill",
-      "workflow": 16,
-      "name": "kill",
-      "description": ""
-    }
-  },
-  {
-    "pk": 70,
-    "model": "oozie.node",
-    "fields": {
-      "node_type": "end",
-      "workflow": 16,
-      "name": "end",
-      "description": ""
-    }
-  },
-  {
-    "pk": 71,
-    "model": "oozie.node",
-    "fields": {
-      "node_type": "start",
-      "workflow": 16,
-      "name": "start",
-      "description": ""
-    }
-  },
-  {
-    "pk": 72,
-    "model": "oozie.node",
-    "fields": {
-      "node_type": "distcp",
-      "workflow": 16,
-      "name": "DistCp",
-      "description": "Copy some data and overwrite it if needed"
-    }
-  },
-  {
-    "pk": 77,
-    "model": "oozie.node",
-    "fields": {
-      "node_type": "kill",
-      "workflow": 18,
-      "name": "kill",
-      "description": ""
-    }
-  },
-  {
-    "pk": 78,
-    "model": "oozie.node",
-    "fields": {
-      "node_type": "end",
-      "workflow": 18,
-      "name": "end",
-      "description": ""
-    }
-  },
-  {
-    "pk": 79,
-    "model": "oozie.node",
-    "fields": {
-      "node_type": "start",
-      "workflow": 18,
-      "name": "start",
-      "description": ""
-    }
-  },
-  {
-    "pk": 80,
-    "model": "oozie.node",
-    "fields": {
-      "node_type": "email",
-      "workflow": 18,
-      "name": "Email",
-      "description": "Send an email"
-    }
-  },
-  {
-    "pk": 81,
-    "model": "oozie.node",
-    "fields": {
-      "node_type": "kill",
-      "workflow": 19,
-      "name": "kill",
-      "description": ""
-    }
-  },
-  {
-    "pk": 82,
-    "model": "oozie.node",
-    "fields": {
-      "node_type": "end",
-      "workflow": 19,
-      "name": "end",
-      "description": ""
-    }
-  },
-  {
-    "pk": 83,
-    "model": "oozie.node",
-    "fields": {
-      "node_type": "start",
-      "workflow": 19,
-      "name": "start",
-      "description": ""
-    }
-  },
-  {
-    "pk": 84,
-    "model": "oozie.node",
-    "fields": {
-      "node_type": "fs",
-      "workflow": 19,
-      "name": "Fs",
-      "description": ""
-    }
-  },
-  {
-    "pk": 85,
-    "model": "oozie.node",
-    "fields": {
-      "node_type": "kill",
-      "workflow": 20,
-      "name": "kill",
-      "description": ""
-    }
-  },
-  {
-    "pk": 86,
-    "model": "oozie.node",
-    "fields": {
-      "node_type": "end",
-      "workflow": 20,
-      "name": "end",
-      "description": ""
-    }
-  },
-  {
-    "pk": 87,
-    "model": "oozie.node",
-    "fields": {
-      "node_type": "start",
-      "workflow": 20,
-      "name": "start",
-      "description": ""
-    }
-  },
-  {
-    "pk": 88,
-    "model": "oozie.node",
-    "fields": {
-      "node_type": "generic",
-      "workflow": 20,
-      "name": "GenericFs",
-      "description": ""
-    }
-  },
-  {
-    "pk": 89,
-    "model": "oozie.node",
-    "fields": {
-      "node_type": "kill",
-      "workflow": 22,
-      "name": "kill",
-      "description": ""
-    }
-  },
-  {
-    "pk": 90,
-    "model": "oozie.node",
-    "fields": {
-      "node_type": "end",
-      "workflow": 22,
-      "name": "end",
-      "description": ""
-    }
-  },
-  {
-    "pk": 91,
-    "model": "oozie.node",
-    "fields": {
-      "node_type": "start",
-      "workflow": 22,
-      "name": "start",
-      "description": ""
-    }
-  },
-  {
-    "pk": 92,
-    "model": "oozie.node",
-    "fields": {
-      "node_type": "distcp",
-      "workflow": 22,
-      "name": "DistCp",
-      "description": "Copy some data and overwrite it if needed"
-    }
-  },
-  {
-    "pk": 93,
-    "model": "oozie.node",
-    "fields": {
-      "node_type": "kill",
-      "workflow": 23,
-      "name": "kill",
-      "description": ""
-    }
-  },
-  {
-    "pk": 94,
-    "model": "oozie.node",
-    "fields": {
-      "node_type": "end",
-      "workflow": 23,
-      "name": "end",
-      "description": ""
-    }
-  },
-  {
-    "pk": 95,
-    "model": "oozie.node",
-    "fields": {
-      "node_type": "start",
-      "workflow": 23,
-      "name": "start",
-      "description": ""
-    }
-  },
-  {
-    "pk": 96,
-    "model": "oozie.node",
-    "fields": {
-      "node_type": "email",
-      "workflow": 23,
-      "name": "Email",
-      "description": "Send an email"
-    }
-  },
-  {
-    "pk": 97,
-    "model": "oozie.node",
-    "fields": {
-      "node_type": "kill",
-      "workflow": 24,
-      "name": "kill",
-      "description": ""
-    }
-  },
-  {
-    "pk": 98,
-    "model": "oozie.node",
-    "fields": {
-      "node_type": "end",
-      "workflow": 24,
-      "name": "end",
-      "description": ""
-    }
-  },
-  {
-    "pk": 99,
-    "model": "oozie.node",
-    "fields": {
-      "node_type": "start",
-      "workflow": 24,
-      "name": "start",
-      "description": ""
-    }
-  },
-  {
-    "pk": 100,
-    "model": "oozie.node",
-    "fields": {
-      "node_type": "fs",
-      "workflow": 24,
-      "name": "Fs",
-      "description": ""
-    }
-  },
-  {
-    "pk": 101,
-    "model": "oozie.node",
-    "fields": {
-      "node_type": "kill",
-      "workflow": 25,
-      "name": "kill",
-      "description": ""
-    }
-  },
-  {
-    "pk": 102,
-    "model": "oozie.node",
-    "fields": {
-      "node_type": "end",
-      "workflow": 25,
-      "name": "end",
-      "description": ""
-    }
-  },
-  {
-    "pk": 103,
-    "model": "oozie.node",
-    "fields": {
-      "node_type": "start",
-      "workflow": 25,
-      "name": "start",
-      "description": ""
-    }
-  },
-  {
-    "pk": 104,
-    "model": "oozie.node",
-    "fields": {
-      "node_type": "hive",
-      "workflow": 25,
-      "name": "Hive",
-      "description": "Show tables"
-    }
-  },
-  {
-    "pk": 105,
-    "model": "oozie.node",
-    "fields": {
-      "node_type": "kill",
-      "workflow": 26,
-      "name": "kill",
-      "description": ""
-    }
-  },
-  {
-    "pk": 106,
-    "model": "oozie.node",
-    "fields": {
-      "node_type": "end",
-      "workflow": 26,
-      "name": "end",
-      "description": ""
-    }
-  },
-  {
-    "pk": 107,
-    "model": "oozie.node",
-    "fields": {
-      "node_type": "start",
-      "workflow": 26,
-      "name": "start",
-      "description": ""
-    }
-  },
-  {
-    "pk": 108,
-    "model": "oozie.node",
-    "fields": {
-      "node_type": "mapreduce",
-      "workflow": 26,
-      "name": "Sleep",
-      "description": "Sleep for some time"
-    }
-  },
-  {
-    "pk": 109,
-    "model": "oozie.node",
-    "fields": {
-      "node_type": "kill",
-      "workflow": 27,
-      "name": "kill",
-      "description": ""
-    }
-  },
-  {
-    "pk": 110,
-    "model": "oozie.node",
-    "fields": {
-      "node_type": "end",
-      "workflow": 27,
-      "name": "end",
-      "description": ""
-    }
-  },
-  {
-    "pk": 111,
-    "model": "oozie.node",
-    "fields": {
-      "node_type": "start",
-      "workflow": 27,
-      "name": "start",
-      "description": ""
-    }
-  },
-  {
-    "pk": 112,
-    "model": "oozie.node",
-    "fields": {
-      "node_type": "pig",
-      "workflow": 27,
-      "name": "Pig",
-      "description": "Aggregate some input data"
-    }
-  },
-  {
-    "pk": 113,
-    "model": "oozie.node",
-    "fields": {
-      "node_type": "kill",
-      "workflow": 28,
-      "name": "kill",
-      "description": ""
-    }
-  },
-  {
-    "pk": 114,
-    "model": "oozie.node",
-    "fields": {
-      "node_type": "end",
-      "workflow": 28,
-      "name": "end",
-      "description": ""
-    }
-  },
-  {
-    "pk": 115,
-    "model": "oozie.node",
-    "fields": {
-      "node_type": "start",
-      "workflow": 28,
-      "name": "start",
-      "description": ""
-    }
-  },
-  {
-    "pk": 116,
-    "model": "oozie.node",
-    "fields": {
-      "node_type": "shell",
-      "workflow": 28,
-      "name": "Shell",
-      "description": "Execute a Python script printing its arguments"
-    }
-  },
-  {
-    "pk": 117,
-    "model": "oozie.node",
-    "fields": {
-      "node_type": "kill",
-      "workflow": 29,
-      "name": "kill",
-      "description": ""
-    }
-  },
-  {
-    "pk": 118,
-    "model": "oozie.node",
-    "fields": {
-      "node_type": "end",
-      "workflow": 29,
-      "name": "end",
-      "description": ""
-    }
-  },
-  {
-    "pk": 119,
-    "model": "oozie.node",
-    "fields": {
-      "node_type": "start",
-      "workflow": 29,
-      "name": "start",
-      "description": ""
-    }
-  },
-  {
-    "pk": 120,
-    "model": "oozie.node",
-    "fields": {
-      "node_type": "sqoop",
-      "workflow": 29,
-      "name": "Sqoop",
-      "description": "Export data from the table TT"
-    }
-  },
-  {
-    "pk": 121,
-    "model": "oozie.node",
-    "fields": {
-      "node_type": "kill",
-      "workflow": 30,
-      "name": "kill",
-      "description": ""
-    }
-  },
-  {
-    "pk": 122,
-    "model": "oozie.node",
-    "fields": {
-      "node_type": "end",
-      "workflow": 30,
-      "name": "end",
-      "description": ""
-    }
-  },
-  {
-    "pk": 123,
-    "model": "oozie.node",
-    "fields": {
-      "node_type": "start",
-      "workflow": 30,
-      "name": "start",
-      "description": ""
-    }
-  },
-  {
-    "pk": 124,
-    "model": "oozie.node",
-    "fields": {
-      "node_type": "ssh",
-      "workflow": 30,
-      "name": "Ssh",
-      "description": "Execute the ls command on a certain host"
-    }
-  },
-  {
-    "pk": 19,
-    "model": "oozie.mapreduce",
-    "fields": {
-      "files": "[]",
-      "job_xml": "",
-      "jar_path": "/user/hue/oozie/workspaces/lib/hadoop-examples.jar",
-      "job_properties": "[{\"name\":\"mapred.reduce.tasks\",\"value\":\"1\"},{\"name\":\"mapred.mapper.class\",\"value\":\"org.apache.hadoop.examples.SleepJob\"},{\"name\":\"mapred.reducer.class\",\"value\":\"org.apache.hadoop.examples.SleepJob\"},{\"name\":\"mapred.mapoutput.key.class\",\"value\":\"org.apache.hadoop.io.IntWritable\"},{\"name\":\"mapred.mapoutput.value.class\",\"value\":\"org.apache.hadoop.io.NullWritable\"},{\"name\":\"mapred.output.format.class\",\"value\":\"org.apache.hadoop.mapred.lib.NullOutputFormat\"},{\"name\":\"mapred.input.format.class\",\"value\":\"org.apache.hadoop.examples.SleepJob$SleepInputFormat\"},{\"name\":\"mapred.partitioner.class\",\"value\":\"org.apache.hadoop.examples.SleepJob\"},{\"name\":\"mapred.speculative.execution\",\"value\":\"false\"},{\"name\":\"sleep.job.map.sleep.time\",\"value\":\"0\"},{\"name\":\"sleep.job.reduce.sleep.time\",\"value\":\"${REDUCER_SLEEP_TIME}\"}]",
-      "archives": "[]",
-      "node_ptr": 19,
-      "prepares": "[]"
-    }
-  },
-  {
-    "pk": 28,
-    "model": "oozie.mapreduce",
-    "fields": {
-      "files": "[]",
-      "job_xml": "",
-      "jar_path": "/user/hue/oozie/workspaces/lib/hadoop-examples.jar",
-      "job_properties": "[{\"name\":\"mapred.reduce.tasks\",\"value\":\"1\"},{\"name\":\"mapred.mapper.class\",\"value\":\"org.apache.hadoop.examples.SleepJob\"},{\"name\":\"mapred.reducer.class\",\"value\":\"org.apache.hadoop.examples.SleepJob\"},{\"name\":\"mapred.mapoutput.key.class\",\"value\":\"org.apache.hadoop.io.IntWritable\"},{\"name\":\"mapred.mapoutput.value.class\",\"value\":\"org.apache.hadoop.io.NullWritable\"},{\"name\":\"mapred.output.format.class\",\"value\":\"org.apache.hadoop.mapred.lib.NullOutputFormat\"},{\"name\":\"mapred.input.format.class\",\"value\":\"org.apache.hadoop.examples.SleepJob$SleepInputFormat\"},{\"name\":\"mapred.partitioner.class\",\"value\":\"org.apache.hadoop.examples.SleepJob\"},{\"name\":\"mapred.speculative.execution\",\"value\":\"false\"},{\"name\":\"sleep.job.map.sleep.time\",\"value\":\"0\"},{\"name\":\"sleep.job.reduce.sleep.time\",\"value\":\"1\"}]",
-      "archives": "[]",
-      "node_ptr": 28,
-      "prepares": "[]"
-    }
-  },
-  {
-    "pk": 29,
-    "model": "oozie.mapreduce",
-    "fields": {
-      "files": "[]",
-      "job_xml": "",
-      "jar_path": "/user/hue/oozie/workspaces/lib/hadoop-examples.jar",
-      "job_properties": "[{\"name\":\"mapred.reduce.tasks\",\"value\":\"1\"},{\"name\":\"mapred.mapper.class\",\"value\":\"org.apache.hadoop.examples.SleepJob\"},{\"name\":\"mapred.reducer.class\",\"value\":\"org.apache.hadoop.examples.SleepJob\"},{\"name\":\"mapred.mapoutput.key.class\",\"value\":\"org.apache.hadoop.io.IntWritable\"},{\"name\":\"mapred.mapoutput.value.class\",\"value\":\"org.apache.hadoop.io.NullWritable\"},{\"name\":\"mapred.output.format.class\",\"value\":\"org.apache.hadoop.mapred.lib.NullOutputFormat\"},{\"name\":\"mapred.input.format.class\",\"value\":\"org.apache.hadoop.examples.SleepJob$SleepInputFormat\"},{\"name\":\"mapred.partitioner.class\",\"value\":\"org.apache.hadoop.examples.SleepJob\"},{\"name\":\"mapred.speculative.execution\",\"value\":\"false\"},{\"name\":\"sleep.job.map.sleep.time\",\"value\":\"0\"},{\"name\":\"sleep.job.reduce.sleep.time\",\"value\":\"5\"}]",
-      "archives": "[]",
-      "node_ptr": 29,
-      "prepares": "[]"
-    }
-  },
-  {
-    "pk": 36,
-    "model": "oozie.mapreduce",
-    "fields": {
-      "files": "[]",
-      "job_xml": "",
-      "jar_path": "/user/hue/oozie/workspaces/lib/hadoop-examples.jar",
-      "job_properties": "[{\"name\":\"mapred.reduce.tasks\",\"value\":\"1\"},{\"name\":\"mapred.mapper.class\",\"value\":\"org.apache.hadoop.examples.SleepJob\"},{\"name\":\"mapred.reducer.class\",\"value\":\"org.apache.hadoop.examples.SleepJob\"},{\"name\":\"mapred.mapoutput.key.class\",\"value\":\"org.apache.hadoop.io.IntWritable\"},{\"name\":\"mapred.mapoutput.value.class\",\"value\":\"org.apache.hadoop.io.NullWritable\"},{\"name\":\"mapred.output.format.class\",\"value\":\"org.apache.hadoop.mapred.lib.NullOutputFormat\"},{\"name\":\"mapred.input.format.class\",\"value\":\"org.apache.hadoop.examples.SleepJob$SleepInputFormat\"},{\"name\":\"mapred.partitioner.class\",\"value\":\"org.apache.hadoop.examples.SleepJob\"},{\"name\":\"mapred.speculative.execution\",\"value\":\"false\"},{\"name\":\"sleep.job.map.sleep.time\",\"value\":\"0\"},{\"name\":\"sleep.job.reduce.sleep.time\",\"value\":\"4\"}]",
-      "archives": "[]",
-      "node_ptr": 36,
-      "prepares": "[]"
-    }
-  },
-  {
-    "pk": 37,
-    "model": "oozie.mapreduce",
-    "fields": {
-      "files": "[]",
-      "job_xml": "",
-      "jar_path": "/user/hue/oozie/workspaces/lib/hadoop-examples.jar",
-      "job_properties": "[{\"name\":\"mapred.reduce.tasks\",\"value\":\"1\"},{\"name\":\"mapred.mapper.class\",\"value\":\"org.apache.hadoop.examples.SleepJob\"},{\"name\":\"mapred.reducer.class\",\"value\":\"org.apache.hadoop.examples.SleepJob\"},{\"name\":\"mapred.mapoutput.key.class\",\"value\":\"org.apache.hadoop.io.IntWritable\"},{\"name\":\"mapred.mapoutput.value.class\",\"value\":\"org.apache.hadoop.io.NullWritable\"},{\"name\":\"mapred.output.format.class\",\"value\":\"org.apache.hadoop.mapred.lib.NullOutputFormat\"},{\"name\":\"mapred.input.format.class\",\"value\":\"org.apache.hadoop.examples.SleepJob$SleepInputFormat\"},{\"name\":\"mapred.partitioner.class\",\"value\":\"org.apache.hadoop.examples.SleepJob\"},{\"name\":\"mapred.speculative.execution\",\"value\":\"false\"},{\"name\":\"sleep.job.map.sleep.time\",\"value\":\"0\"},{\"name\":\"sleep.job.reduce.sleep.time\",\"value\":\"3\"}]",
-      "archives": "[]",
-      "node_ptr": 37,
-      "prepares": "[]"
-    }
-  },
-  {
-    "pk": 40,
-    "model": "oozie.mapreduce",
-    "fields": {
-      "files": "[]",
-      "job_xml": "",
-      "jar_path": "/user/hue/oozie/workspaces/lib/hadoop-examples.jar",
-      "job_properties": "[{\"name\":\"mapred.reduce.tasks\",\"value\":\"1\"},{\"name\":\"mapred.mapper.class\",\"value\":\"org.apache.hadoop.examples.SleepJob\"},{\"name\":\"mapred.reducer.class\",\"value\":\"org.apache.hadoop.examples.SleepJob\"},{\"name\":\"mapred.mapoutput.key.class\",\"value\":\"org.apache.hadoop.io.IntWritable\"},{\"name\":\"mapred.mapoutput.value.class\",\"value\":\"org.apache.hadoop.io.NullWritable\"},{\"name\":\"mapred.output.format.class\",\"value\":\"org.apache.hadoop.mapred.lib.NullOutputFormat\"},{\"name\":\"mapred.input.format.class\",\"value\":\"org.apache.hadoop.examples.SleepJob$SleepInputFormat\"},{\"name\":\"mapred.partitioner.class\",\"value\":\"org.apache.hadoop.examples.SleepJob\"},{\"name\":\"mapred.speculative.execution\",\"value\":\"false\"},{\"name\":\"sleep.job.map.sleep.time\",\"value\":\"0\"},{\"name\":\"sleep.job.reduce.sleep.time\",\"value\":\"10\"}]",
-      "archives": "[]",
-      "node_ptr": 40,
-      "prepares": "[]"
-    }
-  },
-  {
-    "pk": 108,
-    "model": "oozie.mapreduce",
-    "fields": {
-      "files": "[]",
-      "job_xml": "",
-      "jar_path": "/user/hue/oozie/workspaces/lib/hadoop-examples.jar",
-      "job_properties": "[{\"name\":\"mapred.reduce.tasks\",\"value\":\"1\"},{\"name\":\"mapred.mapper.class\",\"value\":\"org.apache.hadoop.examples.SleepJob\"},{\"name\":\"mapred.reducer.class\",\"value\":\"org.apache.hadoop.examples.SleepJob\"},{\"name\":\"mapred.mapoutput.key.class\",\"value\":\"org.apache.hadoop.io.IntWritable\"},{\"name\":\"mapred.mapoutput.value.class\",\"value\":\"org.apache.hadoop.io.NullWritable\"},{\"name\":\"mapred.output.format.class\",\"value\":\"org.apache.hadoop.mapred.lib.NullOutputFormat\"},{\"name\":\"mapred.input.format.class\",\"value\":\"org.apache.hadoop.examples.SleepJob$SleepInputFormat\"},{\"name\":\"mapred.partitioner.class\",\"value\":\"org.apache.hadoop.examples.SleepJob\"},{\"name\":\"mapred.speculative.execution\",\"value\":\"false\"},{\"name\":\"sleep.job.map.sleep.time\",\"value\":\"0\"},{\"name\":\"sleep.job.reduce.sleep.time\",\"value\":\"${REDUCER_SLEEP_TIME}\"}]",
-      "archives": "[]",
-      "node_ptr": 108,
-      "prepares": "[]"
-    }
-  },
-  {
-    "pk": 23,
-    "model": "oozie.java",
-    "fields": {
-      "files": "[]",
-      "job_xml": "",
-      "jar_path": "/user/hue/oozie/workspaces/lib/hadoop-examples.jar",
-      "java_opts": "",
-      "args": "${records} ${output_dir}/teragen",
-      "job_properties": "[]",
-      "capture_output": false,
-      "prepares": "[]",
-      "archives": "[]",
-      "main_class": "org.apache.hadoop.examples.terasort.TeraGen"
-    }
-  },
-  {
-    "pk": 24,
-    "model": "oozie.java",
-    "fields": {
-      "files": "[]",
-      "job_xml": "",
-      "jar_path": "/user/hue/oozie/workspaces/lib/hadoop-examples.jar",
-      "java_opts": "",
-      "args": "${output_dir}/teragen ${output_dir}/terasort",
-      "job_properties": "[]",
-      "capture_output": false,
-      "prepares": "[]",
-      "archives": "[]",
-      "main_class": "org.apache.hadoop.examples.terasort.TeraSort"
-    }
-  },
-  {
-    "pk": 52,
-    "model": "oozie.pig",
-    "fields": {
-      "files": "[]",
-      "job_xml": "",
-      "job_properties": "[]",
-      "params": "[{\"value\":\"-param\",\"type\":\"argument\"},{\"value\":\"INPUT=${input}\",\"type\":\"argument\"},{\"value\":\"-param\",\"type\":\"argument\"},{\"value\":\"OUTPUT=${output}\",\"type\":\"argument\"}]",
-      "archives": "[]",
-      "prepares": "[{\"value\":\"${output}\",\"type\":\"delete\"}]",
-      "script_path": "aggregate.pig"
-    }
-  },
-  {
-    "pk": 112,
-    "model": "oozie.pig",
-    "fields": {
-      "files": "[]",
-      "job_xml": "",
-      "job_properties": "[]",
-      "params": "[{\"value\":\"-param\",\"type\":\"argument\"},{\"value\":\"INPUT=${input}\",\"type\":\"argument\"},{\"value\":\"-param\",\"type\":\"argument\"},{\"value\":\"OUTPUT=${output}\",\"type\":\"argument\"}]",
-      "archives": "[]",
-      "prepares": "[{\"value\":\"${output}\",\"type\":\"delete\"}]",
-      "script_path": "aggregate.pig"
-    }
-  },
-  {
-    "pk": 48,
-    "model": "oozie.hive",
-    "fields": {
-      "files": "[\"hive-site.xml\"]",
-      "job_xml": "hive-site.xml",
-      "job_properties": "[]",
-      "params": "[]",
-      "archives": "[]",
-      "prepares": "[]",
-      "script_path": "hive.sql"
-    }
-  },
-  {
-    "pk": 104,
-    "model": "oozie.hive",
-    "fields": {
-      "files": "[\"hive-site.xml\"]",
-      "job_xml": "hive-site.xml",
-      "job_properties": "[]",
-      "params": "[]",
-      "archives": "[]",
-      "prepares": "[]",
-      "script_path": "hive.sql"
-    }
-  },
-  {
-    "pk": 56,
-    "model": "oozie.sqoop",
-    "fields": {
-      "files": "[\"db.hsqldb.properties\",\"db.hsqldb.script\"]",
-      "job_xml": "",
-      "job_properties": "[]",
-      "params": "[]",
-      "archives": "[]",
-      "prepares": "[{\"value\":\"${output}\",\"type\":\"delete\"}]",
-      "script_path": "import --connect jdbc:hsqldb:file:db.hsqldb --table TT --target-dir ${output} -m 1"
-    }
-  },
-  {
-    "pk": 120,
-    "model": "oozie.sqoop",
-    "fields": {
-      "files": "[\"db.hsqldb.properties\",\"db.hsqldb.script\"]",
-      "job_xml": "",
-      "job_properties": "[]",
-      "params": "[]",
-      "archives": "[]",
-      "prepares": "[{\"value\":\"${output}\",\"type\":\"delete\"}]",
-      "script_path": "import --connect jdbc:hsqldb:file:db.hsqldb --table TT --target-dir ${output} -m 1"
-    }
-  },
-  {
-    "pk": 64,
-    "model": "oozie.ssh",
-    "fields": {
-      "capture_output": true,
-      "params": "[{\"value\":\"-l\",\"type\":\"arg\"}]",
-      "host": "${host}",
-      "command": "ls",
-      "user": "${user}"
-    }
-  },
-  {
-    "pk": 124,
-    "model": "oozie.ssh",
-    "fields": {
-      "capture_output": true,
-      "params": "[{\"value\":\"-l\",\"type\":\"arg\"}]",
-      "host": "${host}",
-      "command": "ls",
-      "user": "${user}"
-    }
-  },
-  {
-    "pk": 68,
-    "model": "oozie.shell",
-    "fields": {
-      "files": "[\"hello.py\"]",
-      "job_xml": "",
-      "job_properties": "[]",
-      "capture_output": true,
-      "params": "[{\"value\":\"World!\",\"type\":\"argument\"}]",
-      "archives": "[]",
-      "prepares": "[]",
-      "command": "hello.py"
-    }
-  },
-  {
-    "pk": 116,
-    "model": "oozie.shell",
-    "fields": {
-      "files": "[\"hello.py\"]",
-      "job_xml": "",
-      "job_properties": "[]",
-      "capture_output": true,
-      "params": "[{\"value\":\"World!\",\"type\":\"argument\"}]",
-      "archives": "[]",
-      "prepares": "[]",
-      "command": "hello.py"
-    }
-  },
-  {
-    "pk": 72,
-    "model": "oozie.distcp",
-    "fields": {
-      "prepares": "[]",
-      "job_xml": "",
-      "params": "[{\"value\":\"-overwrite\",\"type\":\"argument\"},{\"value\":\"-m\",\"type\":\"argument\"},{\"value\":\"${MAP_NUMBER}\",\"type\":\"argument\"},{\"value\":\"/user/hue/oozie/workspaces/data\",\"type\":\"argument\"},{\"value\":\"${OUTPUT}\",\"type\":\"argument\"}]",
-      "job_properties": "[]"
-    }
-  },
-  {
-    "pk": 92,
-    "model": "oozie.distcp",
-    "fields": {
-      "prepares": "[]",
-      "job_xml": "",
-      "params": "[{\"value\":\"-overwrite\",\"type\":\"argument\"},{\"value\":\"-m\",\"type\":\"argument\"},{\"value\":\"${MAP_NUMBER}\",\"type\":\"argument\"},{\"value\":\"/user/hue/oozie/workspaces/data\",\"type\":\"argument\"},{\"value\":\"${OUTPUT}\",\"type\":\"argument\"}]",
-      "job_properties": "[]"
-    }
-  },
-  {
-    "pk": 84,
-    "model": "oozie.fs",
-    "fields": {
-      "touchzs": "[{\"name\": \"${output}/testfs/new_file\"}]",
-      "moves": "[{\"source\": \"${output}/testfs/source\", \"destination\": \"${output}/testfs/renamed\"}]",
-      "chmods": "[{\"path\": \"${output}/testfs/renamed\", \"recursive\": \"\", \"permissions\": \"700\"}]",
-      "mkdirs": "[{\"name\": \"${output}/testfs\"}, {\"name\": \"${output}/testfs/source\"}]",
-      "deletes": "[{\"name\": \"${output}/testfs\"}]"
-    }
-  },
-  {
-    "pk": 100,
-    "model": "oozie.fs",
-    "fields": {
-      "touchzs": "[{\"name\": \"${output}/testfs/new_file\"}]",
-      "moves": "[{\"source\": \"${output}/testfs/source\", \"destination\": \"${output}/testfs/renamed\"}]",
-      "chmods": "[{\"path\": \"${output}/testfs/renamed\", \"recursive\": \"\", \"permissions\": \"700\"}]",
-      "mkdirs": "[{\"name\": \"${output}/testfs\"}, {\"name\": \"${output}/testfs/source\"}]",
-      "deletes": "[{\"name\": \"${output}/testfs\"}]"
-    }
-  },
-  {
-    "pk": 80,
-    "model": "oozie.email",
-    "fields": {
-      "cc": "",
-      "to": "example@example.org",
-      "body": "Hue",
-      "subject": "I love"
-    }
-  },
-  {
-    "pk": 96,
-    "model": "oozie.email",
-    "fields": {
-      "cc": "",
-      "to": "example@example.org",
-      "body": "Hue",
-      "subject": "I love"
-    }
-  },
-  {
-    "pk": 88,
-    "model": "oozie.generic",
-    "fields": {
-      "xml": "<fs>\n    <mkdir path='${nameNode}${full_path}'/>\n</fs> "
-    }
-  },
-  {
-    "pk": 18,
-    "model": "oozie.start",
-    "fields": {
-      "node_ptr": 18
-    }
-  },
-  {
-    "pk": 22,
-    "model": "oozie.start",
-    "fields": {
-      "node_ptr": 22
-    }
-  },
-  {
-    "pk": 27,
-    "model": "oozie.start",
-    "fields": {
-      "node_ptr": 27
-    }
-  },
-  {
-    "pk": 47,
-    "model": "oozie.start",
-    "fields": {
-      "node_ptr": 47
-    }
-  },
-  {
-    "pk": 51,
-    "model": "oozie.start",
-    "fields": {
-      "node_ptr": 51
-    }
-  },
-  {
-    "pk": 55,
-    "model": "oozie.start",
-    "fields": {
-      "node_ptr": 55
-    }
-  },
-  {
-    "pk": 63,
-    "model": "oozie.start",
-    "fields": {
-      "node_ptr": 63
-    }
-  },
-  {
-    "pk": 67,
-    "model": "oozie.start",
-    "fields": {
-      "node_ptr": 67
-    }
-  },
-  {
-    "pk": 71,
-    "model": "oozie.start",
-    "fields": {
-      "node_ptr": 71
-    }
-  },
-  {
-    "pk": 79,
-    "model": "oozie.start",
-    "fields": {
-      "node_ptr": 79
-    }
-  },
-  {
-    "pk": 83,
-    "model": "oozie.start",
-    "fields": {
-      "node_ptr": 83
-    }
-  },
-  {
-    "pk": 87,
-    "model": "oozie.start",
-    "fields": {
-      "node_ptr": 87
-    }
-  },
-  {
-    "pk": 91,
-    "model": "oozie.start",
-    "fields": {
-      "node_ptr": 91
-    }
-  },
-  {
-    "pk": 95,
-    "model": "oozie.start",
-    "fields": {
-      "node_ptr": 95
-    }
-  },
-  {
-    "pk": 99,
-    "model": "oozie.start",
-    "fields": {
-      "node_ptr": 99
-    }
-  },
-  {
-    "pk": 103,
-    "model": "oozie.start",
-    "fields": {
-      "node_ptr": 103
-    }
-  },
-  {
-    "pk": 107,
-    "model": "oozie.start",
-    "fields": {
-      "node_ptr": 107
-    }
-  },
-  {
-    "pk": 111,
-    "model": "oozie.start",
-    "fields": {
-      "node_ptr": 111
-    }
-  },
-  {
-    "pk": 115,
-    "model": "oozie.start",
-    "fields": {
-      "node_ptr": 115
-    }
-  },
-  {
-    "pk": 119,
-    "model": "oozie.start",
-    "fields": {
-      "node_ptr": 119
-    }
-  },
-  {
-    "pk": 123,
-    "model": "oozie.start",
-    "fields": {
-      "node_ptr": 123
-    }
-  },
-  {
-    "pk": 17,
-    "model": "oozie.end",
-    "fields": {}
-  },
-  {
-    "pk": 21,
-    "model": "oozie.end",
-    "fields": {}
-  },
-  {
-    "pk": 26,
-    "model": "oozie.end",
-    "fields": {}
-  },
-  {
-    "pk": 46,
-    "model": "oozie.end",
-    "fields": {}
-  },
-  {
-    "pk": 50,
-    "model": "oozie.end",
-    "fields": {}
-  },
-  {
-    "pk": 54,
-    "model": "oozie.end",
-    "fields": {}
-  },
-  {
-    "pk": 62,
-    "model": "oozie.end",
-    "fields": {}
-  },
-  {
-    "pk": 66,
-    "model": "oozie.end",
-    "fields": {}
-  },
-  {
-    "pk": 70,
-    "model": "oozie.end",
-    "fields": {}
-  },
-  {
-    "pk": 78,
-    "model": "oozie.end",
-    "fields": {}
-  },
-  {
-    "pk": 82,
-    "model": "oozie.end",
-    "fields": {}
-  },
-  {
-    "pk": 86,
-    "model": "oozie.end",
-    "fields": {}
-  },
-  {
-    "pk": 90,
-    "model": "oozie.end",
-    "fields": {}
-  },
-  {
-    "pk": 94,
-    "model": "oozie.end",
-    "fields": {}
-  },
-  {
-    "pk": 98,
-    "model": "oozie.end",
-    "fields": {}
-  },
-  {
-    "pk": 102,
-    "model": "oozie.end",
-    "fields": {}
-  },
-  {
-    "pk": 106,
-    "model": "oozie.end",
-    "fields": {}
-  },
-  {
-    "pk": 110,
-    "model": "oozie.end",
-    "fields": {}
-  },
-  {
-    "pk": 114,
-    "model": "oozie.end",
-    "fields": {}
-  },
-  {
-    "pk": 118,
-    "model": "oozie.end",
-    "fields": {}
-  },
-  {
-    "pk": 122,
-    "model": "oozie.end",
-    "fields": {}
-  },
-  {
-    "pk": 16,
-    "model": "oozie.kill",
-    "fields": {
-      "message": "Action failed, error message[${wf:errorMessage(wf:lastErrorNode())}]"
-    }
-  },
-  {
-    "pk": 20,
-    "model": "oozie.kill",
-    "fields": {
-      "message": "Action failed, error message[${wf:errorMessage(wf:lastErrorNode())}]"
-    }
-  },
-  {
-    "pk": 25,
-    "model": "oozie.kill",
-    "fields": {
-      "message": "Action failed, error message[${wf:errorMessage(wf:lastErrorNode())}]"
-    }
-  },
-  {
-    "pk": 45,
-    "model": "oozie.kill",
-    "fields": {
-      "message": "Action failed, error message[${wf:errorMessage(wf:lastErrorNode())}]"
-    }
-  },
-  {
-    "pk": 49,
-    "model": "oozie.kill",
-    "fields": {
-      "message": "Action failed, error message[${wf:errorMessage(wf:lastErrorNode())}]"
-    }
-  },
-  {
-    "pk": 53,
-    "model": "oozie.kill",
-    "fields": {
-      "message": "Action failed, error message[${wf:errorMessage(wf:lastErrorNode())}]"
-    }
-  },
-  {
-    "pk": 61,
-    "model": "oozie.kill",
-    "fields": {
-      "message": "Action failed, error message[${wf:errorMessage(wf:lastErrorNode())}]"
-    }
-  },
-  {
-    "pk": 65,
-    "model": "oozie.kill",
-    "fields": {
-      "message": "Action failed, error message[${wf:errorMessage(wf:lastErrorNode())}]"
-    }
-  },
-  {
-    "pk": 69,
-    "model": "oozie.kill",
-    "fields": {
-      "message": "Action failed, error message[${wf:errorMessage(wf:lastErrorNode())}]"
-    }
-  },
-  {
-    "pk": 77,
-    "model": "oozie.kill",
-    "fields": {
-      "message": "Action failed, error message[${wf:errorMessage(wf:lastErrorNode())}]"
-    }
-  },
-  {
-    "pk": 81,
-    "model": "oozie.kill",
-    "fields": {
-      "message": "Action failed, error message[${wf:errorMessage(wf:lastErrorNode())}]"
-    }
-  },
-  {
-    "pk": 85,
-    "model": "oozie.kill",
-    "fields": {
-      "message": "Action failed, error message[${wf:errorMessage(wf:lastErrorNode())}]"
-    }
-  },
-  {
-    "pk": 89,
-    "model": "oozie.kill",
-    "fields": {
-      "message": "Action failed, error message[${wf:errorMessage(wf:lastErrorNode())}]"
-    }
-  },
-  {
-    "pk": 93,
-    "model": "oozie.kill",
-    "fields": {
-      "message": "Action failed, error message[${wf:errorMessage(wf:lastErrorNode())}]"
-    }
-  },
-  {
-    "pk": 97,
-    "model": "oozie.kill",
-    "fields": {
-      "message": "Action failed, error message[${wf:errorMessage(wf:lastErrorNode())}]"
-    }
-  },
-  {
-    "pk": 101,
-    "model": "oozie.kill",
-    "fields": {
-      "message": "Action failed, error message[${wf:errorMessage(wf:lastErrorNode())}]"
-    }
-  },
-  {
-    "pk": 105,
-    "model": "oozie.kill",
-    "fields": {
-      "message": "Action failed, error message[${wf:errorMessage(wf:lastErrorNode())}]"
-    }
-  },
-  {
-    "pk": 109,
-    "model": "oozie.kill",
-    "fields": {
-      "message": "Action failed, error message[${wf:errorMessage(wf:lastErrorNode())}]"
-    }
-  },
-  {
-    "pk": 113,
-    "model": "oozie.kill",
-    "fields": {
-      "message": "Action failed, error message[${wf:errorMessage(wf:lastErrorNode())}]"
-    }
-  },
-  {
-    "pk": 117,
-    "model": "oozie.kill",
-    "fields": {
-      "message": "Action failed, error message[${wf:errorMessage(wf:lastErrorNode())}]"
-    }
-  },
-  {
-    "pk": 121,
-    "model": "oozie.kill",
-    "fields": {
-      "message": "Action failed, error message[${wf:errorMessage(wf:lastErrorNode())}]"
-    }
-  },
-  {
-    "pk": 34,
-    "model": "oozie.fork",
-    "fields": {}
-  },
-  {
-    "pk": 38,
-    "model": "oozie.fork",
-    "fields": {}
-  },
-  {
-    "pk": 35,
-    "model": "oozie.join",
-    "fields": {}
-  },
-  {
-    "pk": 39,
-    "model": "oozie.join",
-    "fields": {}
-  },
-  {
-    "pk": 6,
-    "model": "oozie.coordinator",
-    "fields": {
-      "end": "2013-06-05 00:00:00",
-      "concurrency": null,
-      "frequency_number": 1,
-      "workflow": 5,
-      "frequency_unit": "days",
-      "job_properties": "[]",
-      "start": "2013-06-01 00:00:00",
-      "timeout": null,
-      "timezone": "America/Los_Angeles",
-      "throttle": null,
-      "execution": null
-    }
-  },
-  {
-    "pk": 21,
-    "model": "oozie.coordinator",
-    "fields": {
-      "end": "2013-06-05 00:00:00",
-      "concurrency": null,
-      "frequency_number": 1,
-      "workflow": 11,
-      "frequency_unit": "days",
-      "job_properties": "[]",
-      "start": "2013-06-03 00:00:00",
-      "timeout": null,
-      "timezone": "America/Los_Angeles",
-      "throttle": null,
-      "execution": null
-    }
-  },
-  {
-    "pk": 3,
-    "model": "oozie.dataset",
-    "fields": {
-      "name": "sleep_time",
-      "frequency_number": 1,
-      "coordinator": 6,
-      "advanced_start_instance": "0",
-      "frequency_unit": "days",
-      "uri": "${DAY}",
-      "start": "2012-05-31 00:00:00",
-      "instance_choice": "default",
-      "timezone": "America/Los_Angeles",
-      "advanced_end_instance": "0",
-      "done_flag": "",
-      "description": ""
-    }
-  },
-  {
-    "pk": 4,
-    "model": "oozie.dataset",
-    "fields": {
-      "name": "daily_shakespeare",
-      "frequency_number": 1,
-      "coordinator": 21,
-      "advanced_start_instance": "-1",
-      "frequency_unit": "days",
-      "uri": "/user/hue/oozie/workspaces/data/${YEAR}${MONTH}${DAY}",
-      "start": "2012-05-31 00:00:00",
-      "instance_choice": "range",
-      "timezone": "America/Los_Angeles",
-      "advanced_end_instance": "${coord:current(0)}",
-      "done_flag": "",
-      "description": "Contain two rolling days of data"
-    }
-  },
-  {
-    "pk": 5,
-    "model": "oozie.dataset",
-    "fields": {
-      "name": "daily_aggregated_shakespeare",
-      "frequency_number": 1,
-      "coordinator": 21,
-      "advanced_start_instance": "0",
-      "frequency_unit": "days",
-      "uri": "/tmp/test-coord-${coord:user()}/${YEAR}${MONTH}${DAY}",
-      "start": "2012-05-31 00:00:00",
-      "instance_choice": "default",
-      "timezone": "America/Los_Angeles",
-      "advanced_end_instance": "0",
-      "done_flag": "",
-      "description": "Daily aggregated output"
-    }
-  },
-  {
-    "pk": 1,
-    "model": "oozie.datainput",
-    "fields": {
-      "coordinator": 21,
-      "name": "input",
-      "dataset": 4
-    }
-  },
-  {
-    "pk": 1,
-    "model": "oozie.dataoutput",
-    "fields": {
-      "coordinator": 6,
-      "name": "REDUCER_SLEEP_TIME",
-      "dataset": 3
-    }
-  },
-  {
-    "pk": 2,
-    "model": "oozie.dataoutput",
-    "fields": {
-      "coordinator": 21,
-      "name": "output",
-      "dataset": 5
-    }
-  },
-  {
-    "pk": 1,
-    "model": "oozie.bundledcoordinator",
-    "fields": {
-      "coordinator": 6,
-      "parameters": "[]",
-      "bundle": 31
-    }
-  },
-  {
-    "pk": 2,
-    "model": "oozie.bundledcoordinator",
-    "fields": {
-      "coordinator": 21,
-      "parameters": "[]",
-      "bundle": 31
-    }
-  },
-  {
-    "pk": 31,
-    "model": "oozie.bundle",
-    "fields": {
-      "kick_off_time": "2013-06-01 00:00:00"
-    }
-  }
-]

+ 9 - 2
apps/oozie/src/oozie/importlib/coordinators.py

@@ -56,6 +56,7 @@ def _set_controls(coordinator, root, namespace):
     'n': namespace
   }
   controls_list = root.xpath('n:controls', namespaces=namespaces)
+
   if controls_list:
     controls = controls_list[0]
     concurrency = controls.xpath('n:concurrency', namespaces=namespaces)
@@ -90,27 +91,34 @@ def _reconcile_datasets(coordinator, objects, root, namespace):
   datainputs = []
   dataoutputs = []
   coordinator.save()
+
   for obj in objects:
     obj.object.coordinator = coordinator
     if isinstance(obj.object, Dataset):
+      obj.object.pk = None
+      obj.object.save()
       dataset_elements = root.xpath('//n:dataset[@name="%s"]' % obj.object.name, namespaces=namespaces)
       for dataset_element in dataset_elements:
         obj.object.start = oozie_to_django_datetime(dataset_element.get('initial-instance'))
-      obj.object.save()
       datasets[obj.object.name] = obj.object
+      obj.object.save()
     elif isinstance(obj.object, DataInput):
       datainputs.append(obj.object)
     elif isinstance(obj.object, DataOutput):
       dataoutputs.append(obj.object)
+
   for datainput in datainputs:
     datainput_elements = root.xpath('//n:data-in[@name="%s"]' % datainput.name, namespaces=namespaces)
     for datainput_element in datainput_elements:
       datainput.dataset = datasets[datainput_element.get('dataset')]
+    datainput.pk = None
     datainput.save()
+
   for dataoutput in dataoutputs:
     dataoutput_elements = root.xpath('//n:data-out[@name="%s"]' % dataoutput.name, namespaces=namespaces)
     for dataoutput_element in dataoutput_elements:
       dataoutput.dataset = datasets[dataoutput_element.get('dataset')]
+    dataoutput.pk = None
     dataoutput.save()
   # @TODO(abe): reconcile instance times
 
@@ -167,7 +175,6 @@ def import_coordinator_root(coordinator, coordinator_definition_root, metadata=N
 
     # Deserialize XML
     objects = serializers.deserialize('xml', etree.tostring(transformed_root))
-
     # Resolve coordinator dependencies and node types and link dependencies
     _set_coordinator_properties(coordinator, coordinator_definition_root, schema_version)
     _set_controls(coordinator, coordinator_definition_root, schema_version)

+ 1 - 1
apps/oozie/src/oozie/models.py

@@ -487,7 +487,7 @@ class Workflow(Job):
       except Exception, e:
         LOG.warn('Workflow %s could not be converted to a graph: %s' % (oozie_workflow.id, e))
     finally:
-      workflow.delete()
+      workflow.delete(skip_trash=True)
     return None, []
 
   def to_xml(self, mapping=None):

+ 2 - 2
apps/oozie/src/oozie/templates/editor/list_bundles.mako

@@ -216,9 +216,9 @@ ${ layout.menubar(section='bundles') }
         });
       }
       var can_delete = $(".hueCheckbox[checked='checked'][data-delete-id]");
-      if (can_delete.length >= 1 && can_delete.length == selector.length) {
+      var can_delete_box_count = $(".hueCheckbox[data-delete-id]").length;
+      if (can_delete.length >= 1 && can_delete.length == can_delete_box_count) {
         $("#trash-btn").removeAttr("disabled");
-        $("#trash-btn-caret").removeAttr("disabled");
       }
     }
 

+ 2 - 1
apps/oozie/src/oozie/templates/editor/list_coordinators.mako

@@ -213,7 +213,8 @@ ${ layout.menubar(section='coordinators') }
         });
       }
       var can_delete = $(".hueCheckbox[checked='checked'][data-delete-id]");
-      if (can_delete.length >= 1 && can_delete.length == selector.length) {
+      var can_delete_box_count = $(".hueCheckbox[data-delete-id]").length;
+      if (can_delete.length >= 1 && can_delete.length == can_delete_box_count) {
         $("#trash-btn").removeAttr("disabled");
         $("#trash-btn-caret").removeAttr("disabled");
       }

+ 2 - 1
apps/oozie/src/oozie/templates/editor/list_workflows.mako

@@ -217,7 +217,8 @@ ${ layout.menubar(section='workflows') }
         });
       }
       var can_delete = $(".hueCheckbox[checked='checked'][data-delete-id]");
-      if (can_delete.length >= 1 && can_delete.length == selector.length) {
+      var can_delete_box_count = $(".hueCheckbox[data-delete-id]").length;
+      if (can_delete.length >= 1 && can_delete.length == can_delete_box_count) {
         $("#trash-btn").removeAttr("disabled");
         $("#trash-btn-caret").removeAttr("disabled");
       }