Class: Etcdist::Writer
- Inherits:
-
Object
- Object
- Etcdist::Writer
- Defined in:
- lib/etcdist/writer.rb
Overview
Writes data into etcd.
Instance Method Summary collapse
-
#delete_absent_directories(all_dirs) ⇒ Object
Deletes any directories that are present in etcd but not on the file system.
-
#initialize(etcd, opts = {}) ⇒ Writer
constructor
A new instance of Writer.
-
#write(data) ⇒ Object
Writes data into etcd and optionally removes extra data from etcd.
Constructor Details
#initialize(etcd, opts = {}) ⇒ Writer
Returns a new instance of Writer.
9 10 11 12 13 |
# File 'lib/etcdist/writer.rb', line 9 def initialize(etcd, opts = {}) @etcd = etcd @dangerous = opts[:dangerous] || false @dry_run = opts[:dry_run] || false end |
Instance Method Details
#delete_absent_directories(all_dirs) ⇒ Object
Deletes any directories that are present in etcd but not on the file system
28 29 30 31 32 33 34 35 36 |
# File 'lib/etcdist/writer.rb', line 28 def delete_absent_directories(all_dirs) dirs_to_delete = all_etcd_dirs('/').sort.reverse - all_dirs dirs_to_delete.each do |dir| Log.debug("deleting directory #{dir}") if @dangerous @etcd.delete(dir, recursive: true) if @dangerous && !@dry_run end Log.info("#{dirs_to_delete.length} directories deleted.") if @dangerous end |
#write(data) ⇒ Object
Writes data into etcd and optionally removes extra data from etcd
17 18 19 20 21 22 23 24 25 |
# File 'lib/etcdist/writer.rb', line 17 def write(data) count = { put: 0, del: 0 } data.each do |dir, entries| count[:put] += put(dir, entries) count[:del] += delete(dir, entries) if @dangerous end Log.info("#{count[:put]} entries added/modified. #{count[:del]} entries deleted.") end |