Module: Zonesync

Defined in:
lib/zonesync.rb,
lib/zonesync/cli.rb,
lib/zonesync/diff.rb,
lib/zonesync/http.rb,
lib/zonesync/sync.rb,
lib/zonesync/errors.rb,
lib/zonesync/logger.rb,
lib/zonesync/parser.rb,
lib/zonesync/record.rb,
lib/zonesync/repair.rb,
lib/zonesync/route53.rb,
lib/zonesync/version.rb,
lib/zonesync/generate.rb,
lib/zonesync/manifest.rb,
lib/zonesync/provider.rb,
lib/zonesync/zonefile.rb,
lib/zonesync/validator.rb,
lib/zonesync/cloudflare.rb,
lib/zonesync/record_hash.rb,
lib/zonesync/cloudflare/proxied_support.rb

Defined Under Namespace

Modules: RecordHash Classes: CLI, ChecksumMismatchError, Cloudflare, ConflictError, Diff, DuplicateRecordError, Filesystem, Generate, HTTP, Logger, Manifest, Memory, MissingManifestError, Parser, Provider, Record, Repair, Route53, Sync, ValidationError, Validator, Zonefile

Constant Summary collapse

VERSION =
"0.14.3"
DIFFABLE_RECORD_TYPES =
%w[A AAAA CNAME MX TXT SPF NAPTR PTR].sort.freeze

Class Method Summary collapse

Class Method Details

.call(source: "Zonefile", destination: "zonesync", dry_run: false, force: false) ⇒ Object



19
20
21
22
23
24
# File 'lib/zonesync.rb', line 19

def self.call(source: "Zonefile", destination: "zonesync", dry_run: false, force: false)
  Sync.new(
    Provider.from({ provider: "Filesystem", path: source }),
    Provider.from(credentials(destination.to_sym)),
  ).call(dry_run: dry_run, force: force)
end

.credentials(key) ⇒ Object



40
41
42
43
44
45
46
47
# File 'lib/zonesync.rb', line 40

def self.credentials(key)
  ActiveSupport::EncryptedConfiguration.new(
    config_path: "config/credentials.yml.enc",
    key_path: "config/master.key",
    env_key: "RAILS_MASTER_KEY",
    raise_if_missing_key: true,
  ).config[key]
end

.generate(source: "zonesync", destination: "Zonefile") ⇒ Object



26
27
28
29
30
31
# File 'lib/zonesync.rb', line 26

def self.generate(source: "zonesync", destination: "Zonefile")
  Generate.new(
    Provider.from(credentials(source.to_sym)),
    Provider.from({ provider: "Filesystem", path: destination }),
  ).call
end

.repair(source: "Zonefile", destination: "zonesync") ⇒ Object



33
34
35
36
37
38
# File 'lib/zonesync.rb', line 33

def self.repair(source: "Zonefile", destination: "zonesync")
  Repair.new(
    Provider.from({ provider: "Filesystem", path: source }),
    Provider.from(credentials(destination.to_sym)),
  ).call
end