class Operation
Attributes
update[RW]
log[R]
Public Class Methods
new(log)
click to toggle source
# File lib/satops/operator.rb, line 10 def initialize(log) # Family is associated operation's group class: i.e 'UsersSet' for 'Users' @family=Kernel.const_get(self.class.to_s+'Set') @log=log @log.info "Init #{self.class.to_s}" end
Public Instance Methods
clone(sat, src_name, dst_name)
click to toggle source
# File lib/satops/operator.rb, line 21 def clone(sat, src_name, dst_name) @log.info "Cloning #{self.class}" end
create(sat)
click to toggle source
# File lib/satops/operator.rb, line 17 def create(sat) @family.class_eval { return self.new(sat) } end
destroy(sat)
click to toggle source
# File lib/satops/operator.rb, line 25 def destroy(sat) @log.info "Deleting #{self.class}" satobjects=create(sat) satobjects.delete_all end
export(type, sat, path)
click to toggle source
# File lib/satops/operator.rb, line 31 def export(type, sat, path) @log.info "Exporting #{self.class}" satobjects=create(sat) satobjects.fetch case type when :mrb File.open("#{path}/#{self.class}.mrb", "w+") do |f| Marshal.dump(satobjects.list, f) end when :yaml File.open("#{path}/#{self.class}.yaml", "w+") do |f| YAML.dump(satobjects.list, f) end end end
extra(src_sat, dst_sat)
click to toggle source
# File lib/satops/operator.rb, line 81 def extra(src_sat, dst_sat) @log.info "Applying extra #{self.class}" src_satobjects=create(src_sat) src_satobjects.fetch dst_satobjects=create(dst_sat) dst_satobjects.fetch satobjects_extras=[] satobjects_extras=dst_satobjects-src_satobjects dst_satobjects.extra(satobjects_extras) unless satobjects_extras.empty? end
import(type, sat, path)
click to toggle source
# File lib/satops/operator.rb, line 48 def import(type, sat, path) @log.info "Importing #{self.class}" satobjects=[] case type when :mrb File.open("#{path}/#{self.class}.mrb") do |f| satobjects = Marshal.load(f) end when :yaml File.open("#{path}/#{self.class}.yaml") do |f| satobjects = YAML.load(f) end end dst_satobjects=create(sat) dst_satobjects.fetch unless satobjects.nil? satobjects.each do |satobject| if self.class.update && dst_satobjects.include?(satobject) satobject.update(sat) else satobject.create(sat) end end end end
postsync(src_sat, dst_sat)
click to toggle source
# File lib/satops/operator.rb, line 78 def postsync(src_sat, dst_sat) end
presync(src_sat, dst_sat)
click to toggle source
# File lib/satops/operator.rb, line 75 def presync(src_sat, dst_sat) end
sync(src_sat, dst_sat)
click to toggle source
# File lib/satops/operator.rb, line 93 def sync(src_sat, dst_sat) @log.info "Synchronizing #{self.class}" src_satobjects=create(src_sat) src_satobjects.fetch dst_satobjects=create(dst_sat) dst_satobjects.fetch presync(src_sat, dst_sat) unless src_satobjects.nil? src_satobjects.list.each do |src_satobject| if self.class.update && dst_satobjects.include?(src_satobject) src_satobject.update(dst_sat) else src_satobject.create(dst_sat) end end end postsync(src_sat, dst_sat) end