Class: OozieClient::JobCollection

Inherits:
Object
  • Object
show all
Includes:
Enumerable, Base
Defined in:
lib/oozie-client/job_collection.rb

Instance Method Summary collapse

Methods included from Base

included

Constructor Details

#initialize(options) ⇒ JobCollection

Returns a new instance of JobCollection.



7
8
9
10
# File 'lib/oozie-client/job_collection.rb', line 7

def initialize options
  @filters = options[:filters] || {}
  super
end

Instance Method Details

#[](oozie_id) ⇒ Object



12
13
14
# File 'lib/oozie-client/job_collection.rb', line 12

def [] oozie_id
  OozieJob.new(oozie_id, :config => config)
end

#create(properties, params = {}) ⇒ Object Also known as: submit



16
17
18
19
# File 'lib/oozie-client/job_collection.rb', line 16

def create(properties, params={})
  job = JSON.parse jobs_url.post(properties_to_conf_xml(properties), {params: params, content_type: :xml})
  self[job['id']]
end

#eachObject



45
46
47
48
# File 'lib/oozie-client/job_collection.rb', line 45

def each
  result = JSON.parse jobs_url.get
  result['workflows'].each { |wf| yield self[wf['id']] }
end

#filter(name, value) ⇒ Object



38
39
40
41
42
43
# File 'lib/oozie-client/job_collection.rb', line 38

def filter name, value
  options = {}
  options[:filters] = @filters.merge(name.to_s.to_sym => value)
  options[:config] = config
  JobCollection.new(options)
end

#with_group(*groups) ⇒ Object



30
31
32
# File 'lib/oozie-client/job_collection.rb', line 30

def with_group *groups
  filter(:group, groups.flatten)
end

#with_name(*names) ⇒ Object



26
27
28
# File 'lib/oozie-client/job_collection.rb', line 26

def with_name *names
  filter(:name, names.flatten)
end

#with_status(*statuses) ⇒ Object



34
35
36
# File 'lib/oozie-client/job_collection.rb', line 34

def with_status *statuses
  filter(:status, statuses.flatten)
end

#with_user(*users) ⇒ Object



22
23
24
# File 'lib/oozie-client/job_collection.rb', line 22

def with_user *users
  filter(:user, users.flatten)
end