Sha256: 3178ecd6cd0c6eacdcd1f72f2e8f5c57df0735133ab5f6338621d142f1cc82e8
Contents?: true
Size: 1.74 KB
Versions: 1
Compression:
Stored size: 1.74 KB
Contents
module Caco::Postgres class ConfSet < Trailblazer::Operation ProcessSingleValue = Class.new(Trailblazer::Activity::Signal) ProcessMultipleValue = Class.new(Trailblazer::Activity::Signal) step Caco::Postgres::BuildAugeas() step :define_what_process, Output(ProcessSingleValue, :single_value) => Id(:process_single_value), Output(ProcessMultipleValue, :multiple_values) => Id(:process_multiple_values), Output(Trailblazer::Activity::Left, :failure) => End(:failure) step :process_single_value, magnetic_to: nil step :process_multiple_values, magnetic_to: nil def define_what_process(ctx, name: nil, names: nil, value: nil, values: nil, **) if name && value return ProcessSingleValue elsif values and values.is_a?(Hash) return ProcessMultipleValue else return false end end def process_single_value(ctx, name:, value:, aug:, **) ctx[:existing_value] = aug.get("/files/postgresql.conf/#{name}") ctx[:created] = !ctx[:existing_value] if ctx[:existing_value] == value return true else ctx[:changed] = true ctx[:value] = aug.set("/files/postgresql.conf/#{name}", value) aug.save! end true end def process_multiple_values(ctx, values:, aug:, **) ctx[:values] = {} values.each_pair do |name, value| ctx[:existing_value] = aug.get("/files/postgresql.conf/#{name}") ctx[:created] = true unless ctx[:existing_value] if ctx[:existing_value] == value next else ctx[:changed] = true ctx[:values][name.to_s] = aug.set("/files/postgresql.conf/#{name}", value) end end aug.save! if ctx[:changed] true end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
caco-0.1.0 | lib/caco/postgres/conf_set.rb |