aptible-cli 0.19.8 → 0.19.9
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/Dockerfile +10 -0
- data/README.md +3 -0
- data/docker-compose.yml +10 -0
- data/lib/aptible/cli/agent.rb +2 -0
- data/lib/aptible/cli/resource_formatter.rb +14 -3
- data/lib/aptible/cli/subcommands/backup_retention_policy.rb +80 -0
- data/lib/aptible/cli/subcommands/config.rb +17 -0
- data/lib/aptible/cli/version.rb +1 -1
- data/spec/aptible/cli/subcommands/config_spec.rb +22 -0
- metadata +5 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 32982651526f1859445bcdfa762881e25f68b72dbce3ecca1a0169a900f4cca5
|
4
|
+
data.tar.gz: 21a14594b144844b6e833ba2f5811736d0c642839375aadbbea356853478c8ec
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 50a22a2a0c8eee1b4c65912a0e986cb723250b7541a6ded2e31112ae11d06cca48ae05329395d1d8f44704e917818d037f3b5d47eac74f3f320ab39ed1496527
|
7
|
+
data.tar.gz: 398cc5e09a3c0b1458a633ad4e5b0bcdb09040160207052face94142dee4b171ecfbe9c68af51007cb8e16cff03249e7821cd041834c4a161e66a10e770d0ea5
|
data/Dockerfile
ADDED
data/README.md
CHANGED
@@ -35,8 +35,11 @@ Commands:
|
|
35
35
|
aptible backup:orphaned # List backups associated with deprovisioned databases
|
36
36
|
aptible backup:purge BACKUP_ID # Permanently delete a backup and any copies of it
|
37
37
|
aptible backup:restore BACKUP_ID [--environment ENVIRONMENT_HANDLE] [--handle HANDLE] [--container-size SIZE_MB] [--disk-size SIZE_GB] [--key-arn KEY_ARN] # Restore a backup
|
38
|
+
aptible backup_retention_policy [ENVIRONMENT_HANDLE] # Show the current backup retention policy for the environment
|
39
|
+
aptible backup_retention_policy:set [ENVIRONMENT_HANDLE] [--daily DAILY_BACKUPS] [--monthly MONTHLY_BACKUPS] [--yearly YEARLY_BACKUPS] [--make-copy|--no-make-copy] [--keep-final|--no-keep-final] # Set the environemnt's backup retention policy
|
38
40
|
aptible config # Print an app's current configuration
|
39
41
|
aptible config:add [VAR1=VAL1] [VAR2=VAL2] [...] # Add an ENV variable to an app
|
42
|
+
aptible config:get [VAR1] # Print a specific key within an app's current configuration
|
40
43
|
aptible config:rm [VAR1] [VAR2] [...] # Remove an ENV variable from an app
|
41
44
|
aptible config:set [VAR1=VAL1] [VAR2=VAL2] [...] # Add an ENV variable to an app
|
42
45
|
aptible config:unset [VAR1] [VAR2] [...] # Remove an ENV variable from an app
|
data/docker-compose.yml
ADDED
data/lib/aptible/cli/agent.rb
CHANGED
@@ -42,6 +42,7 @@ require_relative 'subcommands/endpoints'
|
|
42
42
|
require_relative 'subcommands/log_drain'
|
43
43
|
require_relative 'subcommands/metric_drain'
|
44
44
|
require_relative 'subcommands/maintenance'
|
45
|
+
require_relative 'subcommands/backup_retention_policy'
|
45
46
|
|
46
47
|
module Aptible
|
47
48
|
module CLI
|
@@ -70,6 +71,7 @@ module Aptible
|
|
70
71
|
include Subcommands::LogDrain
|
71
72
|
include Subcommands::MetricDrain
|
72
73
|
include Subcommands::Maintenance
|
74
|
+
include Subcommands::BackupRetentionPolicy
|
73
75
|
|
74
76
|
# Forward return codes on failures.
|
75
77
|
def self.exit_on_failure?
|
@@ -247,10 +247,10 @@ module Aptible
|
|
247
247
|
raw_start, raw_end = maintenance_resource.maintenance_deadline
|
248
248
|
window_start = utc_string(raw_start)
|
249
249
|
window_end = utc_string(raw_end)
|
250
|
-
label = "#{maintenance_resource.handle} between #{window_start} "\
|
250
|
+
label = "#{maintenance_resource.handle} between #{window_start} " \
|
251
251
|
"and #{window_end}"
|
252
|
-
restart_command = "#{command_prefix}"\
|
253
|
-
" #{maintenance_resource.handle}"\
|
252
|
+
restart_command = "#{command_prefix}" \
|
253
|
+
" #{maintenance_resource.handle}" \
|
254
254
|
" --environment #{account.handle}"
|
255
255
|
node.value('label', label)
|
256
256
|
node.value('handle', maintenance_resource.handle)
|
@@ -259,6 +259,17 @@ module Aptible
|
|
259
259
|
attach_account(node, account)
|
260
260
|
end
|
261
261
|
|
262
|
+
def inject_backup_retention_policy(node, policy, account)
|
263
|
+
node.value('id', policy.id)
|
264
|
+
node.value('daily', policy.daily)
|
265
|
+
node.value('monthly', policy.monthly)
|
266
|
+
node.value('yearly', policy.yearly)
|
267
|
+
node.value('make_copy', policy.make_copy)
|
268
|
+
node.value('keep_final', policy.keep_final)
|
269
|
+
|
270
|
+
attach_account(node, account)
|
271
|
+
end
|
272
|
+
|
262
273
|
private
|
263
274
|
|
264
275
|
def attach_account(node, account)
|
@@ -0,0 +1,80 @@
|
|
1
|
+
require 'term/ansicolor'
|
2
|
+
require 'uri'
|
3
|
+
require 'English'
|
4
|
+
|
5
|
+
module Aptible
|
6
|
+
module CLI
|
7
|
+
module Subcommands
|
8
|
+
module BackupRetentionPolicy
|
9
|
+
def self.included(thor)
|
10
|
+
thor.class_eval do
|
11
|
+
include Helpers::Environment
|
12
|
+
include Term::ANSIColor
|
13
|
+
|
14
|
+
desc 'backup_retention_policy [ENVIRONMENT_HANDLE]',
|
15
|
+
'Show the current backup retention policy for the environment'
|
16
|
+
define_method 'backup_retention_policy' do |env|
|
17
|
+
account = ensure_environment(environment: env)
|
18
|
+
policy = account.backup_retention_policies.first
|
19
|
+
unless policy
|
20
|
+
# Show the default policy
|
21
|
+
policy = Aptible::Api::BackupRetentionPolicy.new
|
22
|
+
policy.attributes[:id] = 'default'
|
23
|
+
policy.attributes[:daily] = 90
|
24
|
+
policy.attributes[:monthly] = 72
|
25
|
+
policy.attributes[:yearly] = 0
|
26
|
+
policy.attributes[:make_copy] = true
|
27
|
+
policy.attributes[:keep_final] = true
|
28
|
+
end
|
29
|
+
|
30
|
+
Formatter.render(Renderer.current) do |root|
|
31
|
+
root.object do |node|
|
32
|
+
ResourceFormatter.inject_backup_retention_policy(
|
33
|
+
node, policy, account
|
34
|
+
)
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
desc 'backup_retention_policy:set [ENVIRONMENT_HANDLE] ' \
|
40
|
+
'[--daily DAILY_BACKUPS] [--monthly MONTHLY_BACKUPS] ' \
|
41
|
+
'[--yearly YEARLY_BACKUPS] [--make-copy|--no-make-copy] ' \
|
42
|
+
'[--keep-final|--no-keep-final]',
|
43
|
+
"Set the environemnt's backup retention policy"
|
44
|
+
option :daily, type: :numeric,
|
45
|
+
desc: 'Number of daily backups to retain',
|
46
|
+
default: 90
|
47
|
+
option :monthly, type: :numeric,
|
48
|
+
desc: 'Number of monthly backups to retain',
|
49
|
+
default: 72
|
50
|
+
option :yearly, type: :numeric,
|
51
|
+
desc: 'Number of yarly backups to retain',
|
52
|
+
default: 0
|
53
|
+
option :make_copy, type: :boolean,
|
54
|
+
desc: 'If backup copies should be created',
|
55
|
+
default: true
|
56
|
+
option(
|
57
|
+
:keep_final,
|
58
|
+
type: :boolean,
|
59
|
+
desc: 'If final backups should be kept when databases are '\
|
60
|
+
'deprovisioned',
|
61
|
+
default: true
|
62
|
+
)
|
63
|
+
define_method 'backup_retention_policy:set' do |env|
|
64
|
+
account = ensure_environment(environment: env)
|
65
|
+
policy = account.create_backup_retention_policy!(**options)
|
66
|
+
|
67
|
+
Formatter.render(Renderer.current) do |root|
|
68
|
+
root.object do |node|
|
69
|
+
ResourceFormatter.inject_backup_retention_policy(
|
70
|
+
node, policy.reload, account
|
71
|
+
)
|
72
|
+
end
|
73
|
+
end
|
74
|
+
end
|
75
|
+
end
|
76
|
+
end
|
77
|
+
end
|
78
|
+
end
|
79
|
+
end
|
80
|
+
end
|
@@ -29,6 +29,23 @@ module Aptible
|
|
29
29
|
end
|
30
30
|
end
|
31
31
|
|
32
|
+
desc 'config:get [VAR1]',
|
33
|
+
"Print a specific key within an app's current configuration"
|
34
|
+
app_options
|
35
|
+
define_method 'config:get' do |*args|
|
36
|
+
app = ensure_app(options)
|
37
|
+
config = app.current_configuration
|
38
|
+
env = config ? config.env : {}
|
39
|
+
|
40
|
+
Formatter.render(Renderer.current) do |root|
|
41
|
+
key = args[0]
|
42
|
+
value = env
|
43
|
+
.select { |k| k == key }
|
44
|
+
.map { |_, v| v }
|
45
|
+
root.value(value)
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
32
49
|
desc 'config:add [VAR1=VAL1] [VAR2=VAL2] [...]',
|
33
50
|
'Add an ENV variable to an app'
|
34
51
|
app_options
|
data/lib/aptible/cli/version.rb
CHANGED
@@ -57,6 +57,28 @@ describe Aptible::CLI::Agent do
|
|
57
57
|
end
|
58
58
|
end
|
59
59
|
|
60
|
+
describe '#config:get' do
|
61
|
+
it 'should show single environment variable specified' do
|
62
|
+
app.current_configuration = Fabricate(
|
63
|
+
:configuration, app: app, env: { 'FOO' => 'BAR', 'QUX' => 'two words' }
|
64
|
+
)
|
65
|
+
subject.send('config:get', 'FOO')
|
66
|
+
|
67
|
+
expect(captured_output_text).to match(/BAR/)
|
68
|
+
expect(captured_output_text).not_to match(/two\\ words/)
|
69
|
+
expect(captured_output_json).to match_array(['BAR'])
|
70
|
+
end
|
71
|
+
|
72
|
+
it 'should show empty line when env var not found' do
|
73
|
+
app.current_configuration = Fabricate(
|
74
|
+
:configuration, app: app, env: { 'FOO' => 'BAR', 'QUX' => 'two words' }
|
75
|
+
)
|
76
|
+
subject.send('config:get', 'MIZ')
|
77
|
+
|
78
|
+
expect(captured_output_text).to eq('')
|
79
|
+
end
|
80
|
+
end
|
81
|
+
|
60
82
|
describe '#config:set' do
|
61
83
|
it 'sets environment variables' do
|
62
84
|
expect(app).to receive(:create_operation!)
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: aptible-cli
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.19.
|
4
|
+
version: 0.19.9
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Frank Macreery
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-05-
|
11
|
+
date: 2024-05-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: aptible-resource
|
@@ -294,6 +294,7 @@ files:
|
|
294
294
|
- ".gitignore"
|
295
295
|
- ".rspec"
|
296
296
|
- ".travis.yml"
|
297
|
+
- Dockerfile
|
297
298
|
- Gemfile
|
298
299
|
- LICENSE.md
|
299
300
|
- README.md
|
@@ -304,6 +305,7 @@ files:
|
|
304
305
|
- bin/aptible
|
305
306
|
- cleanup_bundler
|
306
307
|
- codecov.yml
|
308
|
+
- docker-compose.yml
|
307
309
|
- lib/aptible/cli.rb
|
308
310
|
- lib/aptible/cli/agent.rb
|
309
311
|
- lib/aptible/cli/error.rb
|
@@ -341,6 +343,7 @@ files:
|
|
341
343
|
- lib/aptible/cli/resource_formatter.rb
|
342
344
|
- lib/aptible/cli/subcommands/apps.rb
|
343
345
|
- lib/aptible/cli/subcommands/backup.rb
|
346
|
+
- lib/aptible/cli/subcommands/backup_retention_policy.rb
|
344
347
|
- lib/aptible/cli/subcommands/config.rb
|
345
348
|
- lib/aptible/cli/subcommands/db.rb
|
346
349
|
- lib/aptible/cli/subcommands/deploy.rb
|