aptible-cli 0.16.7 → 0.16.8
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/.travis.yml +1 -0
- data/Gemfile +0 -1
- data/README.md +48 -49
- data/appveyor.yml +1 -7
- data/aptible-cli.gemspec +1 -1
- data/lib/aptible/cli/agent.rb +17 -0
- data/lib/aptible/cli/helpers/database.rb +5 -3
- data/lib/aptible/cli/subcommands/backup.rb +5 -2
- data/lib/aptible/cli/subcommands/db.rb +9 -4
- data/lib/aptible/cli/version.rb +1 -1
- data/spec/aptible/cli/subcommands/db_spec.rb +3 -1
- data/spec/spec_helper.rb +0 -8
- metadata +7 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7f9abbc0bef99a8ca0f69c0b3d9751e529d9b37b5528315b03481acc84b68868
|
4
|
+
data.tar.gz: 916d97a558b654865ae9cbcf4532058a9070d19dbe6d984be7a5f233eb2884e6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6ef0c0c9dc25afdf19b680fcabcfd589cd74f246d7442361e79ef5f01d73382bd10ee21c9ca63a31a3f6a003ef0405c651b03e251c6e36525ddfebc86df7aeee
|
7
|
+
data.tar.gz: 3457904ef7ab8e5ff0a5a63fd856633fea48460e8dd88b0ae5ba8181494d893bfe45027927e57c7b217cc89fb39f09eb3fe27abdcb929d1b6fd8d6ca7a6a5b18
|
data/.travis.yml
CHANGED
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -3,7 +3,6 @@
|
|
3
3
|
[](https://rubygems.org/gems/aptible-cli)
|
4
4
|
[](https://travis-ci.org/aptible/aptible-cli)
|
5
5
|
[](https://gemnasium.com/aptible/aptible-cli)
|
6
|
-
[](https://codecov.io/gh/aptible/aptible-cli)
|
7
6
|
[](http://waffle.io/aptible/aptible-cli)
|
8
7
|
|
9
8
|
Command-line interface for Aptible services.
|
@@ -29,54 +28,54 @@ From `aptible help`:
|
|
29
28
|
<!-- BEGIN USAGE -->
|
30
29
|
```
|
31
30
|
Commands:
|
32
|
-
aptible apps
|
33
|
-
aptible apps:create HANDLE
|
34
|
-
aptible apps:deprovision
|
35
|
-
aptible apps:scale SERVICE [--container-count COUNT] [--container-size SIZE_MB]
|
36
|
-
aptible backup:list DB_HANDLE
|
37
|
-
aptible backup:orphaned
|
38
|
-
aptible backup:purge BACKUP_ID
|
39
|
-
aptible backup:restore BACKUP_ID [--environment ENVIRONMENT_HANDLE] [--handle HANDLE] [--container-size SIZE_MB] [--disk-size SIZE_GB] # Restore a backup
|
40
|
-
aptible config
|
41
|
-
aptible config:add [VAR1=VAL1] [VAR2=VAL2] [...]
|
42
|
-
aptible config:rm [VAR1] [VAR2] [...]
|
43
|
-
aptible config:set [VAR1=VAL1] [VAR2=VAL2] [...]
|
44
|
-
aptible config:unset [VAR1] [VAR2] [...]
|
45
|
-
aptible db:backup HANDLE
|
46
|
-
aptible db:clone SOURCE DEST
|
47
|
-
aptible db:create HANDLE [--type TYPE] [--version VERSION] [--container-size SIZE_MB] [--disk-size SIZE_GB] # Create a new database
|
48
|
-
aptible db:deprovision HANDLE
|
49
|
-
aptible db:dump HANDLE [pg_dump options]
|
50
|
-
aptible db:execute HANDLE SQL_FILE [--on-error-stop]
|
51
|
-
aptible db:list
|
52
|
-
aptible db:reload HANDLE
|
53
|
-
aptible db:replicate HANDLE REPLICA_HANDLE [--container-size SIZE_MB] [--disk-size SIZE_GB] [--logical --version VERSION] # Create a replica/follower of a database
|
54
|
-
aptible db:restart HANDLE [--container-size SIZE_MB] [--disk-size SIZE_GB]
|
55
|
-
aptible db:tunnel HANDLE
|
56
|
-
aptible db:url HANDLE
|
57
|
-
aptible db:versions
|
58
|
-
aptible deploy [OPTIONS] [VAR1=VAL1] [VAR2=VAL2] [...]
|
59
|
-
aptible domains
|
60
|
-
aptible endpoints:database:create DATABASE
|
61
|
-
aptible endpoints:deprovision [--app APP | --database DATABASE] ENDPOINT_HOSTNAME
|
62
|
-
aptible endpoints:https:create [--app APP] SERVICE
|
63
|
-
aptible endpoints:https:modify [--app APP] ENDPOINT_HOSTNAME
|
64
|
-
aptible endpoints:list [--app APP | --database DATABASE]
|
65
|
-
aptible endpoints:renew [--app APP] ENDPOINT_HOSTNAME
|
66
|
-
aptible endpoints:tcp:create [--app APP] SERVICE
|
67
|
-
aptible endpoints:tcp:modify [--app APP] ENDPOINT_HOSTNAME
|
68
|
-
aptible endpoints:tls:create [--app APP] SERVICE
|
69
|
-
aptible endpoints:tls:modify [--app APP] ENDPOINT_HOSTNAME
|
70
|
-
aptible help [COMMAND]
|
71
|
-
aptible login
|
72
|
-
aptible logs [--app APP | --database DATABASE]
|
73
|
-
aptible operation:cancel OPERATION_ID
|
74
|
-
aptible ps
|
75
|
-
aptible rebuild
|
76
|
-
aptible restart
|
77
|
-
aptible services
|
78
|
-
aptible ssh [COMMAND]
|
79
|
-
aptible version
|
31
|
+
aptible apps # List all applications
|
32
|
+
aptible apps:create HANDLE # Create a new application
|
33
|
+
aptible apps:deprovision # Deprovision an app
|
34
|
+
aptible apps:scale SERVICE [--container-count COUNT] [--container-size SIZE_MB] # Scale a service
|
35
|
+
aptible backup:list DB_HANDLE # List backups for a database
|
36
|
+
aptible backup:orphaned # List backups associated with deprovisioned databases
|
37
|
+
aptible backup:purge BACKUP_ID # Permanently delete a backup and any copies of it
|
38
|
+
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
|
39
|
+
aptible config # Print an app's current configuration
|
40
|
+
aptible config:add [VAR1=VAL1] [VAR2=VAL2] [...] # Add an ENV variable to an app
|
41
|
+
aptible config:rm [VAR1] [VAR2] [...] # Remove an ENV variable from an app
|
42
|
+
aptible config:set [VAR1=VAL1] [VAR2=VAL2] [...] # Add an ENV variable to an app
|
43
|
+
aptible config:unset [VAR1] [VAR2] [...] # Remove an ENV variable from an app
|
44
|
+
aptible db:backup HANDLE # Backup a database
|
45
|
+
aptible db:clone SOURCE DEST # Clone a database to create a new one
|
46
|
+
aptible db:create HANDLE [--type TYPE] [--version VERSION] [--container-size SIZE_MB] [--disk-size SIZE_GB] [--key-arn KEY_ARN] # Create a new database
|
47
|
+
aptible db:deprovision HANDLE # Deprovision a database
|
48
|
+
aptible db:dump HANDLE [pg_dump options] # Dump a remote database to file
|
49
|
+
aptible db:execute HANDLE SQL_FILE [--on-error-stop] # Executes sql against a database
|
50
|
+
aptible db:list # List all databases
|
51
|
+
aptible db:reload HANDLE # Reload a database
|
52
|
+
aptible db:replicate HANDLE REPLICA_HANDLE [--container-size SIZE_MB] [--disk-size SIZE_GB] [--logical --version VERSION] [--key-arn KEY_ARN] # Create a replica/follower of a database
|
53
|
+
aptible db:restart HANDLE [--container-size SIZE_MB] [--disk-size SIZE_GB] # Restart a database
|
54
|
+
aptible db:tunnel HANDLE # Create a local tunnel to a database
|
55
|
+
aptible db:url HANDLE # Display a database URL
|
56
|
+
aptible db:versions # List available database versions
|
57
|
+
aptible deploy [OPTIONS] [VAR1=VAL1] [VAR2=VAL2] [...] # Deploy an app
|
58
|
+
aptible domains # Print an app's current virtual domains - DEPRECATED
|
59
|
+
aptible endpoints:database:create DATABASE # Create a Database Endpoint
|
60
|
+
aptible endpoints:deprovision [--app APP | --database DATABASE] ENDPOINT_HOSTNAME # Deprovision an App or Database Endpoint
|
61
|
+
aptible endpoints:https:create [--app APP] SERVICE # Create an App HTTPS Endpoint
|
62
|
+
aptible endpoints:https:modify [--app APP] ENDPOINT_HOSTNAME # Modify an App HTTPS Endpoint
|
63
|
+
aptible endpoints:list [--app APP | --database DATABASE] # List Endpoints for an App or Database
|
64
|
+
aptible endpoints:renew [--app APP] ENDPOINT_HOSTNAME # Renew an App Managed TLS Endpoint
|
65
|
+
aptible endpoints:tcp:create [--app APP] SERVICE # Create an App TCP Endpoint
|
66
|
+
aptible endpoints:tcp:modify [--app APP] ENDPOINT_HOSTNAME # Modify an App TCP Endpoint
|
67
|
+
aptible endpoints:tls:create [--app APP] SERVICE # Create an App TLS Endpoint
|
68
|
+
aptible endpoints:tls:modify [--app APP] ENDPOINT_HOSTNAME # Modify an App TLS Endpoint
|
69
|
+
aptible help [COMMAND] # Describe available commands or one specific command
|
70
|
+
aptible login # Log in to Aptible
|
71
|
+
aptible logs [--app APP | --database DATABASE] # Follows logs from a running app or database
|
72
|
+
aptible operation:cancel OPERATION_ID # Cancel a running operation
|
73
|
+
aptible ps # Display running processes for an app - DEPRECATED
|
74
|
+
aptible rebuild # Rebuild an app, and restart its services
|
75
|
+
aptible restart # Restart all services associated with an app
|
76
|
+
aptible services # List Services for an App
|
77
|
+
aptible ssh [COMMAND] # Run a command against an app
|
78
|
+
aptible version # Print Aptible CLI version
|
80
79
|
```
|
81
80
|
<!-- END USAGE -->
|
82
81
|
|
data/appveyor.yml
CHANGED
@@ -8,12 +8,6 @@ environment:
|
|
8
8
|
- RUBY_VERSION: 23
|
9
9
|
|
10
10
|
install:
|
11
|
-
# The SSL_CERT_* environment variables are here since otherwise calls to
|
12
|
-
# codecov.io wtill not work. These variables do have to be set in order for
|
13
|
-
# the gem to make calls to the Aptible API, since otherwise Ruby will fail
|
14
|
-
# with a certificate verification error.
|
15
|
-
- set SSL_CERT_DIR=%PROGRAMFILES%\Git\mingw64\ssl\certs
|
16
|
-
- set SSL_CERT_FILE=%PROGRAMFILES%\Git\mingw64\ssl\cert.pem
|
17
11
|
# Override PATHEXT so our ssh bat file has a higher precedence.
|
18
12
|
- set PATHEXT=.BAT;.COM;.EXE;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC
|
19
13
|
- set PATH=C:\Ruby%RUBY_VERSION%-x64\bin;%PATH%
|
@@ -28,4 +22,4 @@ before_test:
|
|
28
22
|
- bundle -v
|
29
23
|
|
30
24
|
test_script:
|
31
|
-
- bundle exec rake ci
|
25
|
+
- bundle exec rake ci
|
data/aptible-cli.gemspec
CHANGED
@@ -22,7 +22,7 @@ Gem::Specification.new do |spec|
|
|
22
22
|
|
23
23
|
spec.add_dependency 'aptible-resource', '~> 1.1'
|
24
24
|
spec.add_dependency 'aptible-api', '~> 1.2'
|
25
|
-
spec.add_dependency 'aptible-auth', '~> 1.
|
25
|
+
spec.add_dependency 'aptible-auth', '~> 1.2.3'
|
26
26
|
spec.add_dependency 'aptible-billing', '~> 1.0'
|
27
27
|
spec.add_dependency 'thor', '~> 0.20.0'
|
28
28
|
spec.add_dependency 'git'
|
data/lib/aptible/cli/agent.rb
CHANGED
@@ -67,6 +67,7 @@ module Aptible
|
|
67
67
|
def initialize(*)
|
68
68
|
nag_toolbelt unless toolbelt?
|
69
69
|
Aptible::Resource.configure { |conf| conf.user_agent = version_string }
|
70
|
+
warn_sso_enforcement
|
70
71
|
super
|
71
72
|
end
|
72
73
|
|
@@ -232,6 +233,22 @@ module Aptible
|
|
232
233
|
end
|
233
234
|
end
|
234
235
|
|
236
|
+
def warn_sso_enforcement
|
237
|
+
# If the user is also a member of
|
238
|
+
begin
|
239
|
+
token = fetch_token
|
240
|
+
rescue StandardError
|
241
|
+
return
|
242
|
+
end
|
243
|
+
reauth = Aptible::Auth::ReauthenticateOrganization.all(token: token)
|
244
|
+
return if reauth.empty?
|
245
|
+
|
246
|
+
CLI.logger.warn(['WARNING: You will need to use the appropriate',
|
247
|
+
'login method (SSO or Aptible credentials) to access',
|
248
|
+
'these organizations:',
|
249
|
+
reauth.map(&:name)].join(' '))
|
250
|
+
end
|
251
|
+
|
235
252
|
def version_string
|
236
253
|
bits = [
|
237
254
|
'aptible-cli',
|
@@ -51,7 +51,8 @@ module Aptible
|
|
51
51
|
replication_params = {
|
52
52
|
handle: dest_handle,
|
53
53
|
container_size: options[:container_size],
|
54
|
-
disk_size: options[:size]
|
54
|
+
disk_size: options[:size],
|
55
|
+
key_arn: options[:key_arn]
|
55
56
|
}.reject { |_, v| v.nil? }
|
56
57
|
|
57
58
|
if options[:logical]
|
@@ -104,10 +105,11 @@ module Aptible
|
|
104
105
|
|
105
106
|
def local_url(credential, local_port)
|
106
107
|
remote_url = credential.connection_url
|
107
|
-
uri = URI.parse(remote_url)
|
108
108
|
|
109
|
+
uri = URI.parse(remote_url)
|
110
|
+
domain = credential.database.account.stack.internal_domain
|
109
111
|
"#{uri.scheme}://#{uri.user}:#{uri.password}@" \
|
110
|
-
"localhost
|
112
|
+
"localhost.#{domain}:#{local_port}#{uri.path}"
|
111
113
|
end
|
112
114
|
|
113
115
|
def find_credential(database, type = nil)
|
@@ -9,13 +9,15 @@ module Aptible
|
|
9
9
|
|
10
10
|
desc 'backup:restore BACKUP_ID ' \
|
11
11
|
'[--environment ENVIRONMENT_HANDLE] [--handle HANDLE] ' \
|
12
|
-
'[--container-size SIZE_MB] [--disk-size SIZE_GB]'
|
12
|
+
'[--container-size SIZE_MB] [--disk-size SIZE_GB] ' \
|
13
|
+
'[--key-arn KEY_ARN]',
|
13
14
|
'Restore a backup'
|
14
15
|
option :handle, desc: 'a name to use for the new database'
|
15
16
|
option :environment, desc: 'a different environment to restore to'
|
16
17
|
option :container_size, type: :numeric
|
17
18
|
option :size, type: :numeric
|
18
19
|
option :disk_size, type: :numeric
|
20
|
+
option :key_arn, type: :string
|
19
21
|
define_method 'backup:restore' do |backup_id|
|
20
22
|
backup = Aptible::Api::Backup.find(backup_id, token: fetch_token)
|
21
23
|
raise Thor::Error, "Backup ##{backup_id} not found" if backup.nil?
|
@@ -38,7 +40,8 @@ module Aptible
|
|
38
40
|
handle: handle,
|
39
41
|
container_size: options[:container_size],
|
40
42
|
disk_size: options[:disk_size] || options[:size],
|
41
|
-
destination_account: destination_account
|
43
|
+
destination_account: destination_account,
|
44
|
+
key_arn: options[:key_arn]
|
42
45
|
}.delete_if { |_, v| v.nil? }
|
43
46
|
|
44
47
|
CLI.logger.warn([
|
@@ -53,13 +53,15 @@ module Aptible
|
|
53
53
|
|
54
54
|
desc 'db:create HANDLE ' \
|
55
55
|
'[--type TYPE] [--version VERSION] ' \
|
56
|
-
'[--container-size SIZE_MB] [--disk-size SIZE_GB]'
|
56
|
+
'[--container-size SIZE_MB] [--disk-size SIZE_GB] ' \
|
57
|
+
'[--key-arn KEY_ARN]',
|
57
58
|
'Create a new database'
|
58
59
|
option :type, type: :string
|
59
60
|
option :version, type: :string
|
60
61
|
option :container_size, type: :numeric
|
61
62
|
option :size, type: :numeric
|
62
63
|
option :disk_size, default: 10, type: :numeric
|
64
|
+
option :key_arn, type: :string
|
63
65
|
option :environment
|
64
66
|
define_method 'db:create' do |handle|
|
65
67
|
account = ensure_environment(options)
|
@@ -67,7 +69,8 @@ module Aptible
|
|
67
69
|
db_opts = {
|
68
70
|
handle: handle,
|
69
71
|
initial_container_size: options[:container_size],
|
70
|
-
initial_disk_size: options[:disk_size] || options[:size]
|
72
|
+
initial_disk_size: options[:disk_size] || options[:size],
|
73
|
+
current_kms_arn: options[:key_arn]
|
71
74
|
}.delete_if { |_, v| v.nil? }
|
72
75
|
|
73
76
|
CLI.logger.warn([
|
@@ -123,7 +126,7 @@ module Aptible
|
|
123
126
|
|
124
127
|
desc 'db:replicate HANDLE REPLICA_HANDLE ' \
|
125
128
|
'[--container-size SIZE_MB] [--disk-size SIZE_GB] ' \
|
126
|
-
'[--logical --version VERSION]',
|
129
|
+
'[--logical --version VERSION] [--key-arn KEY_ARN]',
|
127
130
|
'Create a replica/follower of a database'
|
128
131
|
option :environment
|
129
132
|
option :container_size, type: :numeric
|
@@ -131,6 +134,7 @@ module Aptible
|
|
131
134
|
option :disk_size, type: :numeric
|
132
135
|
option :logical, type: :boolean
|
133
136
|
option :version, type: :string
|
137
|
+
option :key_arn, type: :string
|
134
138
|
define_method 'db:replicate' do |source_handle, dest_handle|
|
135
139
|
source = ensure_database(options.merge(db: source_handle))
|
136
140
|
|
@@ -154,7 +158,8 @@ module Aptible
|
|
154
158
|
container_size: options[:container_size],
|
155
159
|
size: options[:disk_size] || options[:size],
|
156
160
|
logical: options[:logical],
|
157
|
-
database_image: image || nil
|
161
|
+
database_image: image || nil,
|
162
|
+
key_arn: options[:key_arn]
|
158
163
|
}.delete_if { |_, v| v.nil? }
|
159
164
|
|
160
165
|
CLI.logger.warn([
|
data/lib/aptible/cli/version.rb
CHANGED
@@ -13,7 +13,9 @@ describe Aptible::CLI::Agent do
|
|
13
13
|
end
|
14
14
|
|
15
15
|
let(:handle) { 'foobar' }
|
16
|
-
let(:
|
16
|
+
let(:stack) { Fabricate(:stack, internal_domain: 'aptible.in') }
|
17
|
+
let(:account) { Fabricate(:account, stack: stack) }
|
18
|
+
let(:database) { Fabricate(:database, handle: handle, account: account) }
|
17
19
|
let(:socat_helper) { SocatHelperMock.new(port: 4242) }
|
18
20
|
|
19
21
|
describe '#db:create' do
|
data/spec/spec_helper.rb
CHANGED
@@ -3,14 +3,6 @@ $LOAD_PATH.unshift(File.dirname(__FILE__))
|
|
3
3
|
|
4
4
|
Bundler.require :development
|
5
5
|
|
6
|
-
require 'simplecov'
|
7
|
-
SimpleCov.start
|
8
|
-
|
9
|
-
if ENV['CI']
|
10
|
-
require 'codecov'
|
11
|
-
SimpleCov.formatter = SimpleCov::Formatter::Codecov
|
12
|
-
end
|
13
|
-
|
14
6
|
# Load shared spec files
|
15
7
|
Dir["#{File.dirname(__FILE__)}/shared/**/*.rb"].each do |file|
|
16
8
|
require file
|
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.16.
|
4
|
+
version: 0.16.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Frank Macreery
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-10-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: aptible-resource
|
@@ -44,14 +44,14 @@ dependencies:
|
|
44
44
|
requirements:
|
45
45
|
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: 1.
|
47
|
+
version: 1.2.3
|
48
48
|
type: :runtime
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
52
|
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: 1.
|
54
|
+
version: 1.2.3
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: aptible-billing
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -359,7 +359,7 @@ homepage: https://github.com/aptible/aptible-cli
|
|
359
359
|
licenses:
|
360
360
|
- MIT
|
361
361
|
metadata: {}
|
362
|
-
post_install_message:
|
362
|
+
post_install_message:
|
363
363
|
rdoc_options: []
|
364
364
|
require_paths:
|
365
365
|
- lib
|
@@ -375,7 +375,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
375
375
|
version: '0'
|
376
376
|
requirements: []
|
377
377
|
rubygems_version: 3.0.3
|
378
|
-
signing_key:
|
378
|
+
signing_key:
|
379
379
|
specification_version: 4
|
380
380
|
summary: Command-line interface for Aptible services
|
381
381
|
test_files:
|