aptible-cli 0.19.0 → 0.19.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/README.md +3 -2
- data/lib/aptible/cli/helpers/vhost/option_set_builder.rb +17 -6
- data/lib/aptible/cli/subcommands/endpoints.rb +16 -0
- data/lib/aptible/cli/subcommands/metric_drain.rb +6 -2
- data/lib/aptible/cli/version.rb +1 -1
- data/spec/aptible/cli/subcommands/endpoints_spec.rb +39 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8984c4633a4c6cfa79a8cba5fa5856079e4388677a4a6726f55eab3506ba82b5
|
4
|
+
data.tar.gz: d593ebd83e743458ea09ea1ffea94bf76679d6a10d12091d0f044701f85e4f5b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cc247fe45bb6ec934de142e4ca51e19c369a792ac92defc717b91436b293bb80c3fbbedeebc03efe4dd3cda4e3e983f8c53e95d8da5b30de53dc684bdd2d1a5e
|
7
|
+
data.tar.gz: ac409bc0d1e171f48f1a72035f31e8a69edc9b69e8aa586f6fcc70d52628ff698bc499f21e7b90fd38749b9779473ad6a9701606a843848217b1b3b732551f2c
|
data/README.md
CHANGED
@@ -57,6 +57,7 @@ Commands:
|
|
57
57
|
aptible db:versions # List available database versions
|
58
58
|
aptible deploy [OPTIONS] [VAR1=VAL1] [VAR2=VAL2] [...] # Deploy an app
|
59
59
|
aptible endpoints:database:create DATABASE # Create a Database Endpoint
|
60
|
+
aptible endpoints:database:modify --database DATABASE ENDPOINT_HOSTNAME # Modify a Database Endpoint
|
60
61
|
aptible endpoints:deprovision [--app APP | --database DATABASE] ENDPOINT_HOSTNAME # Deprovision an App or Database Endpoint
|
61
62
|
aptible endpoints:https:create [--app APP] SERVICE # Create an App HTTPS Endpoint
|
62
63
|
aptible endpoints:https:modify [--app APP] ENDPOINT_HOSTNAME # Modify an App HTTPS Endpoint
|
@@ -80,9 +81,9 @@ Commands:
|
|
80
81
|
aptible log_drain:list # List all Log Drains
|
81
82
|
aptible login # Log in to Aptible
|
82
83
|
aptible logs [--app APP | --database DATABASE] # Follows logs from a running app or database
|
83
|
-
aptible metric_drain:create:datadog HANDLE --api_key DATADOG_API_KEY --environment ENVIRONMENT
|
84
|
+
aptible metric_drain:create:datadog HANDLE --api_key DATADOG_API_KEY --site DATADOG_SITE --environment ENVIRONMENT # Create a Datadog Metric Drain
|
84
85
|
aptible metric_drain:create:influxdb HANDLE --db DATABASE_HANDLE --environment ENVIRONMENT # Create an InfluxDB Metric Drain
|
85
|
-
aptible metric_drain:create:influxdb:custom HANDLE --username USERNAME --password PASSWORD --url URL_INCLUDING_PORT
|
86
|
+
aptible metric_drain:create:influxdb:custom HANDLE --username USERNAME --password PASSWORD --url URL_INCLUDING_PORT --db INFLUX_DATABASE_NAME --environment ENVIRONMENT # Create an InfluxDB Metric Drain
|
86
87
|
aptible metric_drain:deprovision HANDLE --environment ENVIRONMENT # Deprovisions a Metric Drain
|
87
88
|
aptible metric_drain:list # List all Metric Drains
|
88
89
|
aptible operation:cancel OPERATION_ID # Cancel a running operation
|
@@ -22,7 +22,9 @@ module Aptible
|
|
22
22
|
thor.instance_exec(self) do |builder|
|
23
23
|
option :environment
|
24
24
|
|
25
|
-
if builder.
|
25
|
+
if builder.database?
|
26
|
+
option :database
|
27
|
+
elsif builder.app?
|
26
28
|
app_options
|
27
29
|
|
28
30
|
if builder.create?
|
@@ -32,11 +34,6 @@ module Aptible
|
|
32
34
|
desc: 'Enable Default Domain on this Endpoint'
|
33
35
|
)
|
34
36
|
|
35
|
-
option(
|
36
|
-
:internal,
|
37
|
-
type: :boolean,
|
38
|
-
desc: 'Restrict this Endpoint to internal traffic'
|
39
|
-
)
|
40
37
|
end
|
41
38
|
|
42
39
|
if builder.ports?
|
@@ -56,6 +53,14 @@ module Aptible
|
|
56
53
|
end
|
57
54
|
end
|
58
55
|
|
56
|
+
if builder.create?
|
57
|
+
option(
|
58
|
+
:internal,
|
59
|
+
type: :boolean,
|
60
|
+
desc: 'Restrict this Endpoint to internal traffic'
|
61
|
+
)
|
62
|
+
end
|
63
|
+
|
59
64
|
option(
|
60
65
|
:ip_whitelist,
|
61
66
|
type: :array,
|
@@ -151,6 +156,12 @@ module Aptible
|
|
151
156
|
end
|
152
157
|
|
153
158
|
options.delete(:app)
|
159
|
+
elsif database?
|
160
|
+
params[:internal] = options.delete(:internal) do
|
161
|
+
create? ? false : nil
|
162
|
+
end
|
163
|
+
|
164
|
+
options.delete(:database)
|
154
165
|
else
|
155
166
|
params[:internal] = false
|
156
167
|
end
|
@@ -33,6 +33,22 @@ module Aptible
|
|
33
33
|
provision_vhost_and_explain(service, vhost)
|
34
34
|
end
|
35
35
|
|
36
|
+
database_modify_flags = Helpers::Vhost::OptionSetBuilder.new do
|
37
|
+
database!
|
38
|
+
end
|
39
|
+
|
40
|
+
desc 'endpoints:database:modify --database DATABASE ' \
|
41
|
+
'ENDPOINT_HOSTNAME',
|
42
|
+
'Modify a Database Endpoint'
|
43
|
+
database_modify_flags.declare_options(self)
|
44
|
+
define_method 'endpoints:database:modify' do |hostname|
|
45
|
+
database = ensure_database(options.merge(db: options[:database]))
|
46
|
+
vhost = find_vhost(each_service(database), hostname)
|
47
|
+
vhost.update!(**database_modify_flags.prepare(database.account,
|
48
|
+
options))
|
49
|
+
provision_vhost_and_explain(vhost.service, vhost)
|
50
|
+
end
|
51
|
+
|
36
52
|
tcp_create_flags = Helpers::Vhost::OptionSetBuilder.new do
|
37
53
|
app!
|
38
54
|
create!
|
@@ -55,7 +55,9 @@ module Aptible
|
|
55
55
|
|
56
56
|
desc 'metric_drain:create:influxdb:custom HANDLE '\
|
57
57
|
'--username USERNAME --password PASSWORD ' \
|
58
|
-
'--url URL_INCLUDING_PORT'
|
58
|
+
'--url URL_INCLUDING_PORT ' \
|
59
|
+
'--db INFLUX_DATABASE_NAME ' \
|
60
|
+
'--environment ENVIRONMENT',
|
59
61
|
'Create an InfluxDB Metric Drain'
|
60
62
|
option :db, type: :string
|
61
63
|
option :username, type: :string
|
@@ -82,7 +84,9 @@ module Aptible
|
|
82
84
|
end
|
83
85
|
|
84
86
|
desc 'metric_drain:create:datadog HANDLE '\
|
85
|
-
'--api_key DATADOG_API_KEY
|
87
|
+
'--api_key DATADOG_API_KEY '\
|
88
|
+
'--site DATADOG_SITE ' \
|
89
|
+
'--environment ENVIRONMENT',
|
86
90
|
'Create a Datadog Metric Drain'
|
87
91
|
option :api_key, type: :string
|
88
92
|
option :site, type: :string
|
data/lib/aptible/cli/version.rb
CHANGED
@@ -94,6 +94,45 @@ describe Aptible::CLI::Agent do
|
|
94
94
|
stub_options(ip_whitelist: %w(1.1.1.1))
|
95
95
|
subject.send('endpoints:database:create', 'mydb')
|
96
96
|
end
|
97
|
+
|
98
|
+
it 'creates an internal Database Endpoint' do
|
99
|
+
expect_create_vhost(db.service, internal: true)
|
100
|
+
stub_options(internal: true)
|
101
|
+
subject.send('endpoints:database:create', 'mydb')
|
102
|
+
end
|
103
|
+
end
|
104
|
+
|
105
|
+
describe 'endpoints:database:modify' do
|
106
|
+
it 'does not change anything if no options are passed' do
|
107
|
+
v = Fabricate(:vhost, service: db.service)
|
108
|
+
expect_modify_vhost(v, {})
|
109
|
+
stub_options(database: 'mydb')
|
110
|
+
subject.send('endpoints:database:modify', v.external_host)
|
111
|
+
end
|
112
|
+
|
113
|
+
it 'adds an IP whitelist' do
|
114
|
+
v = Fabricate(:vhost, service: db.service)
|
115
|
+
expect_modify_vhost(v, ip_whitelist: %w(1.1.1.1))
|
116
|
+
|
117
|
+
stub_options(database: 'mydb', ip_whitelist: %w(1.1.1.1))
|
118
|
+
subject.send('endpoints:database:modify', v.external_host)
|
119
|
+
end
|
120
|
+
|
121
|
+
it 'removes an IP whitelist' do
|
122
|
+
v = Fabricate(:vhost, service: db.service)
|
123
|
+
expect_modify_vhost(v, ip_whitelist: [])
|
124
|
+
|
125
|
+
stub_options(database: 'mydb', :'no-ip_whitelist' => true)
|
126
|
+
subject.send('endpoints:database:modify', v.external_host)
|
127
|
+
end
|
128
|
+
|
129
|
+
it 'does not allow disabling and adding an IP whitelist' do
|
130
|
+
v = Fabricate(:vhost, service: db.service)
|
131
|
+
stub_options(database: 'mydb', ip_whitelist: %w(1.1.1.1),
|
132
|
+
:'no-ip_whitelist' => true)
|
133
|
+
expect { subject.send('endpoints:database:modify', v.external_host) }
|
134
|
+
.to raise_error(/conflicting.*no-ip-whitelist.*ip-whitelist/im)
|
135
|
+
end
|
97
136
|
end
|
98
137
|
|
99
138
|
describe 'endpoints:list' do
|
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.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Frank Macreery
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-08-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: aptible-resource
|