dnsmadeeasy 0.3.5 → 1.0.1
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 +4 -4
- data/.github/workflows/ruby.yml +31 -0
- data/.gitignore +2 -0
- data/.rubocop.yml +6 -0
- data/.rubocop_todo.yml +272 -107
- data/.travis.yml +2 -1
- data/CLAUDE.md +67 -0
- data/Gemfile +9 -1
- data/README.md +506 -310
- data/Rakefile +4 -4
- data/dnsmadeeasy.gemspec +44 -27
- data/docs/badges/coverage_badge.svg +21 -0
- data/docs/dry-cli-based-tools.webloc +8 -0
- data/docs/plan-zone-management.md +756 -0
- data/docs/plans/01-plan-ruby4-baseline.md +38 -0
- data/docs/plans/02-plan-dry-cli-launcher.md +44 -0
- data/docs/plans/03-plan-account-command.md +43 -0
- data/docs/plans/04-plan-zone-record-model.md +48 -0
- data/docs/plans/05-plan-zone-parser.md +41 -0
- data/docs/plans/06-plan-zone-formatter.md +43 -0
- data/docs/plans/07-plan-zone-export.md +58 -0
- data/docs/plans/08-plan-zone-diff.md +42 -0
- data/docs/plans/09-plan-zone-apply.md +69 -0
- data/docs/plans/10-plan-docs-cleanup.md +55 -0
- data/docs/spec-zone-management.md +242 -0
- data/exe/dme +13 -2
- data/exe/dmez +6 -0
- data/lib/dme.rb +6 -6
- data/lib/dnsmadeeasy/api/client.rb +31 -32
- data/lib/dnsmadeeasy/cli/box_output.rb +9 -0
- data/lib/dnsmadeeasy/cli/commands/account.rb +222 -0
- data/lib/dnsmadeeasy/cli/commands/base.rb +119 -0
- data/lib/dnsmadeeasy/cli/commands/legacy_operation.rb +30 -0
- data/lib/dnsmadeeasy/cli/commands/version.rb +22 -0
- data/lib/dnsmadeeasy/cli/commands/zone.rb +326 -0
- data/lib/dnsmadeeasy/cli/commands.rb +19 -0
- data/lib/dnsmadeeasy/cli/input.rb +14 -0
- data/lib/dnsmadeeasy/cli/launcher.rb +53 -0
- data/lib/dnsmadeeasy/cli/message_helpers.rb +81 -0
- data/lib/dnsmadeeasy/cli/reported_error.rb +10 -0
- data/lib/dnsmadeeasy/credentials/api_keys.rb +11 -9
- data/lib/dnsmadeeasy/credentials/yaml_file.rb +28 -27
- data/lib/dnsmadeeasy/credentials.rb +3 -4
- data/lib/dnsmadeeasy/runner.rb +102 -98
- data/lib/dnsmadeeasy/types.rb +19 -0
- data/lib/dnsmadeeasy/version.rb +2 -1
- data/lib/dnsmadeeasy/zone/aname_flattener.rb +63 -0
- data/lib/dnsmadeeasy/zone/apply_executor.rb +189 -0
- data/lib/dnsmadeeasy/zone/apply_result.rb +22 -0
- data/lib/dnsmadeeasy/zone/diff.rb +152 -0
- data/lib/dnsmadeeasy/zone/file.rb +26 -0
- data/lib/dnsmadeeasy/zone/parser.rb +172 -0
- data/lib/dnsmadeeasy/zone/plan.rb +28 -0
- data/lib/dnsmadeeasy/zone/plan_action.rb +29 -0
- data/lib/dnsmadeeasy/zone/plan_renderer.rb +91 -0
- data/lib/dnsmadeeasy/zone/provider_record.rb +18 -0
- data/lib/dnsmadeeasy/zone/record.rb +44 -0
- data/lib/dnsmadeeasy/zone/record_set.rb +23 -0
- data/lib/dnsmadeeasy/zone/remote_adapter.rb +94 -0
- data/lib/dnsmadeeasy/zone/remote_records.rb +26 -0
- data/lib/dnsmadeeasy/zone/serializer.rb +115 -0
- data/lib/dnsmadeeasy.rb +61 -31
- metadata +184 -23
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: dnsmadeeasy
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 1.0.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Konstantin Gredeskoul
|
|
@@ -10,10 +10,9 @@ authors:
|
|
|
10
10
|
- James Hart
|
|
11
11
|
- Phil Cohen
|
|
12
12
|
- Praneeth Are
|
|
13
|
-
autorequire:
|
|
14
13
|
bindir: exe
|
|
15
14
|
cert_chain: []
|
|
16
|
-
date:
|
|
15
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
|
17
16
|
dependencies:
|
|
18
17
|
- !ruby/object:Gem::Dependency
|
|
19
18
|
name: awesome_print
|
|
@@ -43,6 +42,76 @@ dependencies:
|
|
|
43
42
|
- - ">="
|
|
44
43
|
- !ruby/object:Gem::Version
|
|
45
44
|
version: '0'
|
|
45
|
+
- !ruby/object:Gem::Dependency
|
|
46
|
+
name: dns-zonefile
|
|
47
|
+
requirement: !ruby/object:Gem::Requirement
|
|
48
|
+
requirements:
|
|
49
|
+
- - ">="
|
|
50
|
+
- !ruby/object:Gem::Version
|
|
51
|
+
version: '0'
|
|
52
|
+
type: :runtime
|
|
53
|
+
prerelease: false
|
|
54
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
55
|
+
requirements:
|
|
56
|
+
- - ">="
|
|
57
|
+
- !ruby/object:Gem::Version
|
|
58
|
+
version: '0'
|
|
59
|
+
- !ruby/object:Gem::Dependency
|
|
60
|
+
name: dry-cli
|
|
61
|
+
requirement: !ruby/object:Gem::Requirement
|
|
62
|
+
requirements:
|
|
63
|
+
- - ">="
|
|
64
|
+
- !ruby/object:Gem::Version
|
|
65
|
+
version: '0'
|
|
66
|
+
type: :runtime
|
|
67
|
+
prerelease: false
|
|
68
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
69
|
+
requirements:
|
|
70
|
+
- - ">="
|
|
71
|
+
- !ruby/object:Gem::Version
|
|
72
|
+
version: '0'
|
|
73
|
+
- !ruby/object:Gem::Dependency
|
|
74
|
+
name: dry-monads
|
|
75
|
+
requirement: !ruby/object:Gem::Requirement
|
|
76
|
+
requirements:
|
|
77
|
+
- - ">="
|
|
78
|
+
- !ruby/object:Gem::Version
|
|
79
|
+
version: '0'
|
|
80
|
+
type: :runtime
|
|
81
|
+
prerelease: false
|
|
82
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
83
|
+
requirements:
|
|
84
|
+
- - ">="
|
|
85
|
+
- !ruby/object:Gem::Version
|
|
86
|
+
version: '0'
|
|
87
|
+
- !ruby/object:Gem::Dependency
|
|
88
|
+
name: dry-struct
|
|
89
|
+
requirement: !ruby/object:Gem::Requirement
|
|
90
|
+
requirements:
|
|
91
|
+
- - ">="
|
|
92
|
+
- !ruby/object:Gem::Version
|
|
93
|
+
version: '0'
|
|
94
|
+
type: :runtime
|
|
95
|
+
prerelease: false
|
|
96
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
97
|
+
requirements:
|
|
98
|
+
- - ">="
|
|
99
|
+
- !ruby/object:Gem::Version
|
|
100
|
+
version: '0'
|
|
101
|
+
- !ruby/object:Gem::Dependency
|
|
102
|
+
name: dry-types
|
|
103
|
+
requirement: !ruby/object:Gem::Requirement
|
|
104
|
+
requirements:
|
|
105
|
+
- - ">="
|
|
106
|
+
- !ruby/object:Gem::Version
|
|
107
|
+
version: '0'
|
|
108
|
+
type: :runtime
|
|
109
|
+
prerelease: false
|
|
110
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
111
|
+
requirements:
|
|
112
|
+
- - ">="
|
|
113
|
+
- !ruby/object:Gem::Version
|
|
114
|
+
version: '0'
|
|
46
115
|
- !ruby/object:Gem::Dependency
|
|
47
116
|
name: hashie
|
|
48
117
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -72,13 +141,41 @@ dependencies:
|
|
|
72
141
|
- !ruby/object:Gem::Version
|
|
73
142
|
version: '0'
|
|
74
143
|
- !ruby/object:Gem::Dependency
|
|
75
|
-
name:
|
|
144
|
+
name: tsort
|
|
76
145
|
requirement: !ruby/object:Gem::Requirement
|
|
77
146
|
requirements:
|
|
78
147
|
- - ">="
|
|
79
148
|
- !ruby/object:Gem::Version
|
|
80
149
|
version: '0'
|
|
81
|
-
type: :
|
|
150
|
+
type: :runtime
|
|
151
|
+
prerelease: false
|
|
152
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
153
|
+
requirements:
|
|
154
|
+
- - ">="
|
|
155
|
+
- !ruby/object:Gem::Version
|
|
156
|
+
version: '0'
|
|
157
|
+
- !ruby/object:Gem::Dependency
|
|
158
|
+
name: tty-box
|
|
159
|
+
requirement: !ruby/object:Gem::Requirement
|
|
160
|
+
requirements:
|
|
161
|
+
- - ">="
|
|
162
|
+
- !ruby/object:Gem::Version
|
|
163
|
+
version: '0'
|
|
164
|
+
type: :runtime
|
|
165
|
+
prerelease: false
|
|
166
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
167
|
+
requirements:
|
|
168
|
+
- - ">="
|
|
169
|
+
- !ruby/object:Gem::Version
|
|
170
|
+
version: '0'
|
|
171
|
+
- !ruby/object:Gem::Dependency
|
|
172
|
+
name: tty-spinner
|
|
173
|
+
requirement: !ruby/object:Gem::Requirement
|
|
174
|
+
requirements:
|
|
175
|
+
- - ">="
|
|
176
|
+
- !ruby/object:Gem::Version
|
|
177
|
+
version: '0'
|
|
178
|
+
type: :runtime
|
|
82
179
|
prerelease: false
|
|
83
180
|
version_requirements: !ruby/object:Gem::Requirement
|
|
84
181
|
requirements:
|
|
@@ -197,16 +294,35 @@ dependencies:
|
|
|
197
294
|
- - ">="
|
|
198
295
|
- !ruby/object:Gem::Version
|
|
199
296
|
version: '0'
|
|
297
|
+
- !ruby/object:Gem::Dependency
|
|
298
|
+
name: aruba
|
|
299
|
+
requirement: !ruby/object:Gem::Requirement
|
|
300
|
+
requirements:
|
|
301
|
+
- - ">="
|
|
302
|
+
- !ruby/object:Gem::Version
|
|
303
|
+
version: '0'
|
|
304
|
+
type: :development
|
|
305
|
+
prerelease: false
|
|
306
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
307
|
+
requirements:
|
|
308
|
+
- - ">="
|
|
309
|
+
- !ruby/object:Gem::Version
|
|
310
|
+
version: '0'
|
|
200
311
|
description: |
|
|
201
|
-
This is an authoratative and fully-featured API client for the
|
|
312
|
+
This is an authoratative and fully-featured API client for the
|
|
313
|
+
DNS Provider "DnsMadeEasy.com".
|
|
202
314
|
|
|
203
|
-
This library offers both a rich Ruby API that you can use to
|
|
204
|
-
|
|
205
|
-
|
|
315
|
+
This library offers both a rich Ruby API that you can use to
|
|
316
|
+
automate DNS record management, as well
|
|
317
|
+
as a rich CLI interface with the command line executable "dme"
|
|
318
|
+
installed when you install the gem.
|
|
319
|
+
The gem additionally supports storing credentials in
|
|
320
|
+
the ~/.dnsmadeeasy/credentials.yml
|
|
206
321
|
file, supports multiple accounts, encryption, and more.
|
|
207
322
|
|
|
208
|
-
If you are using Chef consider using the "dnsmadeeasy"
|
|
209
|
-
|
|
323
|
+
If you are using Chef consider using the "dnsmadeeasy"
|
|
324
|
+
Chef Cookbook, while uses this gem behind
|
|
325
|
+
the scenes: https://supermarket.chef.io/cookbooks/dnsmadeeasy
|
|
210
326
|
|
|
211
327
|
ACKNOWLEDGEMENTS:
|
|
212
328
|
|
|
@@ -216,22 +332,26 @@ description: |
|
|
|
216
332
|
2. We also wish to thank the gem author Phil Cohen who
|
|
217
333
|
kindly yielded the "dnsmadeeasy" RubyGems namespace to this gem.
|
|
218
334
|
|
|
219
|
-
3. We also thank Praneeth Are for contributing the support for
|
|
335
|
+
3. We also thank Praneeth Are for contributing the support for
|
|
336
|
+
secondary domains in 0.3.5.
|
|
220
337
|
email:
|
|
221
338
|
- kigster@gmail.com
|
|
222
339
|
- letuboy@gmail.com
|
|
223
340
|
- hjhart@gmail.com
|
|
224
341
|
executables:
|
|
225
342
|
- dme
|
|
343
|
+
- dmez
|
|
226
344
|
extensions: []
|
|
227
345
|
extra_rdoc_files: []
|
|
228
346
|
files:
|
|
229
347
|
- ".codeclimate.yml"
|
|
348
|
+
- ".github/workflows/ruby.yml"
|
|
230
349
|
- ".gitignore"
|
|
231
350
|
- ".rspec"
|
|
232
351
|
- ".rubocop.yml"
|
|
233
352
|
- ".rubocop_todo.yml"
|
|
234
353
|
- ".travis.yml"
|
|
354
|
+
- CLAUDE.md
|
|
235
355
|
- Gemfile
|
|
236
356
|
- LICENSE.txt
|
|
237
357
|
- README.md
|
|
@@ -239,20 +359,63 @@ files:
|
|
|
239
359
|
- bin/console
|
|
240
360
|
- bin/setup
|
|
241
361
|
- dnsmadeeasy.gemspec
|
|
362
|
+
- docs/badges/coverage_badge.svg
|
|
363
|
+
- docs/dry-cli-based-tools.webloc
|
|
364
|
+
- docs/plan-zone-management.md
|
|
365
|
+
- docs/plans/01-plan-ruby4-baseline.md
|
|
366
|
+
- docs/plans/02-plan-dry-cli-launcher.md
|
|
367
|
+
- docs/plans/03-plan-account-command.md
|
|
368
|
+
- docs/plans/04-plan-zone-record-model.md
|
|
369
|
+
- docs/plans/05-plan-zone-parser.md
|
|
370
|
+
- docs/plans/06-plan-zone-formatter.md
|
|
371
|
+
- docs/plans/07-plan-zone-export.md
|
|
372
|
+
- docs/plans/08-plan-zone-diff.md
|
|
373
|
+
- docs/plans/09-plan-zone-apply.md
|
|
374
|
+
- docs/plans/10-plan-docs-cleanup.md
|
|
375
|
+
- docs/spec-zone-management.md
|
|
242
376
|
- exe/dme
|
|
377
|
+
- exe/dmez
|
|
243
378
|
- lib/dme.rb
|
|
244
379
|
- lib/dnsmadeeasy.rb
|
|
245
380
|
- lib/dnsmadeeasy/api/client.rb
|
|
381
|
+
- lib/dnsmadeeasy/cli/box_output.rb
|
|
382
|
+
- lib/dnsmadeeasy/cli/commands.rb
|
|
383
|
+
- lib/dnsmadeeasy/cli/commands/account.rb
|
|
384
|
+
- lib/dnsmadeeasy/cli/commands/base.rb
|
|
385
|
+
- lib/dnsmadeeasy/cli/commands/legacy_operation.rb
|
|
386
|
+
- lib/dnsmadeeasy/cli/commands/version.rb
|
|
387
|
+
- lib/dnsmadeeasy/cli/commands/zone.rb
|
|
388
|
+
- lib/dnsmadeeasy/cli/input.rb
|
|
389
|
+
- lib/dnsmadeeasy/cli/launcher.rb
|
|
390
|
+
- lib/dnsmadeeasy/cli/message_helpers.rb
|
|
391
|
+
- lib/dnsmadeeasy/cli/reported_error.rb
|
|
246
392
|
- lib/dnsmadeeasy/credentials.rb
|
|
247
393
|
- lib/dnsmadeeasy/credentials/api_keys.rb
|
|
248
394
|
- lib/dnsmadeeasy/credentials/yaml_file.rb
|
|
249
395
|
- lib/dnsmadeeasy/dme.rb
|
|
250
396
|
- lib/dnsmadeeasy/runner.rb
|
|
397
|
+
- lib/dnsmadeeasy/types.rb
|
|
251
398
|
- lib/dnsmadeeasy/version.rb
|
|
399
|
+
- lib/dnsmadeeasy/zone/aname_flattener.rb
|
|
400
|
+
- lib/dnsmadeeasy/zone/apply_executor.rb
|
|
401
|
+
- lib/dnsmadeeasy/zone/apply_result.rb
|
|
402
|
+
- lib/dnsmadeeasy/zone/diff.rb
|
|
403
|
+
- lib/dnsmadeeasy/zone/file.rb
|
|
404
|
+
- lib/dnsmadeeasy/zone/parser.rb
|
|
405
|
+
- lib/dnsmadeeasy/zone/plan.rb
|
|
406
|
+
- lib/dnsmadeeasy/zone/plan_action.rb
|
|
407
|
+
- lib/dnsmadeeasy/zone/plan_renderer.rb
|
|
408
|
+
- lib/dnsmadeeasy/zone/provider_record.rb
|
|
409
|
+
- lib/dnsmadeeasy/zone/record.rb
|
|
410
|
+
- lib/dnsmadeeasy/zone/record_set.rb
|
|
411
|
+
- lib/dnsmadeeasy/zone/remote_adapter.rb
|
|
412
|
+
- lib/dnsmadeeasy/zone/remote_records.rb
|
|
413
|
+
- lib/dnsmadeeasy/zone/serializer.rb
|
|
252
414
|
homepage: https://github.com/kigster/dnsmadeeasy
|
|
253
415
|
licenses:
|
|
254
416
|
- MIT
|
|
255
|
-
metadata:
|
|
417
|
+
metadata:
|
|
418
|
+
rubygems_mfa_required: 'true'
|
|
256
419
|
post_install_message: |
|
|
257
420
|
Thank you for using the DnsMadeEasy ruby gem, the Ruby client
|
|
258
421
|
API for DnsMadeEasy.com's SDK v2. Please note that this gem
|
|
@@ -268,17 +431,16 @@ require_paths:
|
|
|
268
431
|
- lib
|
|
269
432
|
required_ruby_version: !ruby/object:Gem::Requirement
|
|
270
433
|
requirements:
|
|
271
|
-
- - "
|
|
434
|
+
- - "~>"
|
|
272
435
|
- !ruby/object:Gem::Version
|
|
273
|
-
version: '0'
|
|
436
|
+
version: '4.0'
|
|
274
437
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
275
438
|
requirements:
|
|
276
439
|
- - ">="
|
|
277
440
|
- !ruby/object:Gem::Version
|
|
278
441
|
version: '0'
|
|
279
442
|
requirements: []
|
|
280
|
-
rubygems_version:
|
|
281
|
-
signing_key:
|
|
443
|
+
rubygems_version: 4.0.16
|
|
282
444
|
specification_version: 4
|
|
283
445
|
summary: 'This is an authoratative and fully-featured API client for the DNS Provider
|
|
284
446
|
"DnsMadeEasy.com". This library offers both a rich Ruby API that you can use to
|
|
@@ -286,10 +448,9 @@ summary: 'This is an authoratative and fully-featured API client for the DNS Pro
|
|
|
286
448
|
line executable "dme" installed when you install the gem. The gem additionally supports
|
|
287
449
|
storing credentials in the ~/.dnsmadeeasy/credentials.yml file, supports multiple
|
|
288
450
|
accounts, encryption, and more. If you are using Chef consider using the "dnsmadeeasy"
|
|
289
|
-
Chef Cookbook, while uses this gem behind the scenes: https://supermarket.chef.io/cookbooks/dnsmadeeasy
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
for secondary domains in 0.3.5.'
|
|
451
|
+
Chef Cookbook, while uses this gem behind the scenes: https://supermarket.chef.io/cookbooks/dnsmadeeasy ACKNOWLEDGEMENTS: 1.
|
|
452
|
+
This gem is based on the original work contributed by Wanelo.com to the now abandonded
|
|
453
|
+
"dnsmadeeasy-rest-api" client. 2. We also wish to thank the gem author Phil Cohen
|
|
454
|
+
who kindly yielded the "dnsmadeeasy" RubyGems namespace to this gem. 3. We also
|
|
455
|
+
thank Praneeth Are for contributing the support for secondary domains in 0.3.5.'
|
|
295
456
|
test_files: []
|