infopark_reactor 1.25.2 → 1.26.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: f5fe22d047c28119b038630ede2cab3db454b1aa
4
- data.tar.gz: 2b2d152d58786ab1086c78962979152791f5eab0
3
+ metadata.gz: 0e8434b8daf081b380a95c8e1dc9cd4862c7e735
4
+ data.tar.gz: a24b736884d52b6b011a7bfbc1169dc6c04a28cf
5
5
  SHA512:
6
- metadata.gz: a7c4efb8d818031e76806fe8c33ee5d878e44d47e16e702bdacf059928874f1c70f0fe68e4f3d671fcdbbd5b2f88daa9b074bd2105c409beb9c11bffc3602912
7
- data.tar.gz: bfbf1acc50a644209b00ae2dcffce61ac6c14d5920f65a7b99c3dae63957355b653d2afd262a62b82addab181e1fd0d4ff004d71508f05c7ded963eadea49e3e
6
+ metadata.gz: 7869cd7e683b8a1adb5e446a9400a654759949defe5d709db195d0f50bbae186ca1b4b628ed16b3a30a7341d9b037d8910ff0667f6e8cd750dd5019689433a22
7
+ data.tar.gz: e4c5fb4d5f3be48c69c913615ef159266c39cad7d348b0322d45109fb4670358efba11ddb8e6a319a64d995a7634aa3447f8f02f0ad624d2e8c6ce59bf74e20e
@@ -0,0 +1,14 @@
1
+ # -*- encoding : utf-8 -*-
2
+ module RailsConnector
3
+
4
+ # This class allows us to read out basic information about jobs
5
+ class Job < RailsConnector::AbstractModel
6
+
7
+ self.primary_key = "job_id"
8
+
9
+ def self.table_name
10
+ "#{table_name_prefix}" "jobs"
11
+ end
12
+ end
13
+
14
+ end
@@ -0,0 +1,79 @@
1
+ # -*- encoding : utf-8 -*-
2
+
3
+ require 'reactor/cm/object_base'
4
+
5
+ module Reactor
6
+ module Cm
7
+ class Job < ObjectBase
8
+ attribute :name, :except => [:set]
9
+ attribute :title
10
+ attribute :is_active, :name => :isActive
11
+ attribute :comment
12
+ attribute :exec_login, :name => :execLogin
13
+ attribute :exec_perm, :name => :execPerm
14
+ # This attribute has the following format:
15
+ # [{:years => ['2001', '2002']}, {:years => ['2002', '2003'], :minutes => ['11', '12']}]
16
+ attribute :schedule, :type => :schedule
17
+ attribute :script
18
+
19
+ primary_key :name
20
+
21
+ def self.serialize_attribute_to_xml(xml, xml_attribute, value)
22
+ if xml_attribute.type.to_sym == :schedule
23
+ xml.tag!('schedule') do
24
+ (value || []).each do |schedule_entry|
25
+ xml.tag!('listitem') do
26
+ schedule_entry.each do |dim, values|
27
+ xml.tag!('dictitem') do
28
+ xml.tag!('key') do
29
+ xml.text!(dim.to_s)
30
+ end
31
+ xml.tag!('value') do
32
+ values.each do |val|
33
+ xml.tag!('listitem', val)
34
+ end
35
+ end
36
+ end
37
+ end
38
+ end
39
+ end
40
+ end
41
+ else
42
+ super(xml, xml_attribute, value)
43
+ end
44
+ end
45
+
46
+ def self.create(pk_value, attributes={})
47
+ request = XmlRequest.prepare do |xml|
48
+ xml.create_tag!(base_name) do
49
+ attributes.merge(:name => pk_value).each do |attr_name, attr_value|
50
+ self.serialize_attribute_to_xml(xml, self.xml_attribute(attr_name), attr_value)
51
+ end
52
+ end
53
+ end
54
+
55
+ response = request.execute!
56
+
57
+ return get(pk_value)
58
+ end
59
+
60
+ def exec
61
+ simple_commnad('exec')
62
+ end
63
+
64
+ def cancel
65
+ simple_command('cancel')
66
+ end
67
+
68
+ protected
69
+ def simple_command(cmd_name)
70
+ request = XmlRequest.prepare do |xml|
71
+ xml.where_key_tag!(self.base_name, 'name', self.name)
72
+ xml.tag!("#{self.base_name}-#{cmd_name}")
73
+ end
74
+ response = request.execute!
75
+ end
76
+ end
77
+ end
78
+ end
79
+
@@ -18,6 +18,9 @@ require 'reactor/plans/delete_group'
18
18
  require 'reactor/plans/rename_group'
19
19
  require 'reactor/plans/create_channel'
20
20
  require 'reactor/plans/delete_channel'
21
+ require 'reactor/plans/create_job'
22
+ require 'reactor/plans/update_job'
23
+ require 'reactor/plans/delete_job'
21
24
 
22
25
  module Reactor
23
26
  class Migration
@@ -40,7 +43,10 @@ module Reactor
40
43
  :update_group => Plans::UpdateGroup,
41
44
  :rename_group => Plans::RenameGroup,
42
45
  :create_channel => Plans::CreateChannel,
43
- :delete_channel => Plans::DeleteChannel
46
+ :delete_channel => Plans::DeleteChannel,
47
+ :create_job => Plans::CreateJob,
48
+ :delete_job => Plans::DeleteJob,
49
+ :update_job => Plans::UpdateJob
44
50
  }
45
51
 
46
52
  def self.method_missing(name, *args, &block)
@@ -0,0 +1,32 @@
1
+ # -*- encoding : utf-8 -*-
2
+ module Reactor
3
+ module Plans
4
+ class CommonJob
5
+ include Prepared
6
+
7
+ ALLOWED_PARAMS = [:title, :is_active, :comment, :exec_login, :exec_perm, :schedule, :script]
8
+
9
+ def initialize
10
+ @params = {}
11
+ end
12
+
13
+ def set(key,value)
14
+ @params[key.to_sym] = value
15
+ end
16
+
17
+ def migrate!
18
+ raise "#{self.class.name} did not implement migrate!"
19
+ end
20
+
21
+ protected
22
+ def prepare_params!(job=nil)
23
+ @params.keys.each{|k| error("unknown parameter: #{k}") unless ALLOWED_PARAMS.include? k}
24
+ end
25
+
26
+ def migrate_params!(job)
27
+ @params.each{|k,v|job.send(:"#{k}=",v)}
28
+ job.save!
29
+ end
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,23 @@
1
+ # -*- encoding : utf-8 -*-
2
+ require 'reactor/cm/job'
3
+ require 'reactor/plans/common_job'
4
+
5
+ module Reactor
6
+ module Plans
7
+ class CreateJob < CommonJob
8
+ def initialize(*args)
9
+ super()
10
+ (name, x), options = separate_arguments(*args)
11
+ @name = name || options[:name]
12
+ end
13
+
14
+ def prepare!
15
+ error("name is nil") if @name.nil?
16
+ end
17
+
18
+ def migrate!
19
+ job = Reactor::Cm::Job.create(@name, @params)
20
+ end
21
+ end
22
+ end
23
+ end
@@ -1,7 +1,10 @@
1
1
  # -*- encoding : utf-8 -*-
2
+ require 'reactor/cm/channel'
3
+ require 'reactor/plans/common_channel'
2
4
  module Reactor
5
+
3
6
  module Plans
4
- class DeleteChannel < CommonAttribute
7
+ class DeleteChannel < CommonChannel
5
8
  def initialize(*args)
6
9
  super()
7
10
  (name, x), options = separate_arguments(*args)
@@ -0,0 +1,25 @@
1
+ # -*- encoding : utf-8 -*-
2
+ require 'reactor/cm/job'
3
+ require 'reactor/plans/common_job'
4
+
5
+ module Reactor
6
+ module Plans
7
+ class DeleteJob < CommonJob
8
+ def initialize(*args)
9
+ super()
10
+ (name, x), options = separate_arguments(*args)
11
+ @name = name || options[:name]
12
+ end
13
+
14
+ def prepare!
15
+ error("name is nil") if @name.nil?
16
+ error("job #{@name} does not exist") if not Reactor::Cm::Job.exists?(@name)
17
+ end
18
+
19
+ def migrate!
20
+ Reactor::Cm::Job.delete!(@name)
21
+ end
22
+
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,31 @@
1
+ # -*- encoding : utf-8 -*-
2
+ require 'reactor/cm/job'
3
+ require 'reactor/plans/common_job'
4
+
5
+ module Reactor
6
+ module Plans
7
+ class UpdateJob < CommonJob
8
+ def initialize(*args)
9
+ super()
10
+
11
+ (name, _), options = separate_arguments(*args)
12
+ @name = name || options[:name]
13
+ end
14
+
15
+ def prepapre!
16
+ error('name is nil') if @name.nil?
17
+ error("job #{@name} not found") unless Reactor::Cm::Job.exists?(@name)
18
+
19
+ prepare_params!(nil)
20
+ end
21
+
22
+ def migrate!
23
+ job = Reactor::Cm::Job.get(@name)
24
+ migrate_params!(job)
25
+ end
26
+
27
+ end
28
+
29
+ end
30
+
31
+ end
@@ -75,6 +75,22 @@ module Reactor
75
75
  Reactor::XPathExtractor.new(self.node).match(expr)
76
76
  end
77
77
 
78
+ def extract_schedule(name)
79
+ schedule_entries = []
80
+ self.response.xpath("//#{name}/listitem").each do |potential_schedule|
81
+ entry = {}
82
+ potential_schedule.children.find_all {|c| c.name == "dictitem" }.each do |item|
83
+ key = item.children.find {|c| c.name == "key" }.text
84
+ values_item = item.children.find {|c| c.name == "value" }
85
+ values = values_item.children.find_all { |c| c.name == "listitem" }.map {|i| i.text.to_s }
86
+ entry[key.to_sym] = values
87
+ end
88
+ schedule_entries << entry
89
+ end
90
+
91
+ schedule_entries
92
+ end
93
+
78
94
  end
79
95
 
80
96
  end
@@ -1,4 +1,4 @@
1
1
  # -*- encoding : utf-8 -*-
2
2
  module Reactor
3
- VERSION = "1.25.2"
3
+ VERSION = "1.26.0"
4
4
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: infopark_reactor
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.25.2
4
+ version: 1.26.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tomasz Przedmojski
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-04-13 00:00:00.000000000 Z
11
+ date: 2017-09-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -90,6 +90,7 @@ files:
90
90
  - app/models/rails_connector/blob_mapping.rb
91
91
  - app/models/rails_connector/channel.rb
92
92
  - app/models/rails_connector/content.rb
93
+ - app/models/rails_connector/job.rb
93
94
  - app/models/rails_connector/obj_class.rb
94
95
  - app/models/rails_connector/obj_class_attr.rb
95
96
  - app/models/rails_connector/object_with_meta_data.rb
@@ -117,6 +118,7 @@ files:
117
118
  - lib/reactor/cm/channel.rb
118
119
  - lib/reactor/cm/editorial_group.rb
119
120
  - lib/reactor/cm/group.rb
121
+ - lib/reactor/cm/job.rb
120
122
  - lib/reactor/cm/language.rb
121
123
  - lib/reactor/cm/link.rb
122
124
  - lib/reactor/cm/live_group.rb
@@ -152,17 +154,20 @@ files:
152
154
  - lib/reactor/plans/common_attribute_group.rb
153
155
  - lib/reactor/plans/common_channel.rb
154
156
  - lib/reactor/plans/common_group.rb
157
+ - lib/reactor/plans/common_job.rb
155
158
  - lib/reactor/plans/common_obj_class.rb
156
159
  - lib/reactor/plans/create_attribute.rb
157
160
  - lib/reactor/plans/create_attribute_group.rb
158
161
  - lib/reactor/plans/create_channel.rb
159
162
  - lib/reactor/plans/create_group.rb
163
+ - lib/reactor/plans/create_job.rb
160
164
  - lib/reactor/plans/create_obj.rb
161
165
  - lib/reactor/plans/create_obj_class.rb
162
166
  - lib/reactor/plans/delete_attribute.rb
163
167
  - lib/reactor/plans/delete_attribute_group.rb
164
168
  - lib/reactor/plans/delete_channel.rb
165
169
  - lib/reactor/plans/delete_group.rb
170
+ - lib/reactor/plans/delete_job.rb
166
171
  - lib/reactor/plans/delete_obj.rb
167
172
  - lib/reactor/plans/delete_obj_class.rb
168
173
  - lib/reactor/plans/prepared.rb
@@ -171,6 +176,7 @@ files:
171
176
  - lib/reactor/plans/update_attribute.rb
172
177
  - lib/reactor/plans/update_attribute_group.rb
173
178
  - lib/reactor/plans/update_group.rb
179
+ - lib/reactor/plans/update_job.rb
174
180
  - lib/reactor/plans/update_obj.rb
175
181
  - lib/reactor/plans/update_obj_class.rb
176
182
  - lib/reactor/rails_connector_meta.rb