ey-core 3.1.11 → 3.2.0
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 +7 -0
- data/examples/console/README.md +14 -0
- data/examples/console/address.md +51 -0
- data/lib/ey-core/client.rb +4 -0
- data/lib/ey-core/models/account.rb +6 -3
- data/lib/ey-core/models/alert.rb +5 -0
- data/lib/ey-core/models/environment.rb +6 -0
- data/lib/ey-core/models/provider_location.rb +13 -0
- data/lib/ey-core/models/server.rb +14 -0
- data/lib/ey-core/models/user.rb +1 -0
- data/lib/ey-core/requests/acknowledge_alert.rb +29 -0
- data/lib/ey-core/requests/create_user.rb +1 -0
- data/lib/ey-core/requests/get_alerting_environments.rb +5 -1
- data/lib/ey-core/requests/reset_server_state.rb +32 -0
- data/lib/ey-core/requests/unassign_environment.rb +31 -0
- data/lib/ey-core/requests/update_provider_location.rb +29 -0
- data/lib/ey-core/test_helpers/account_helpers.rb +4 -4
- data/lib/ey-core/test_helpers/resource_helpers.rb +8 -5
- data/lib/ey-core/version.rb +1 -1
- data/spec/account_spec.rb +65 -0
- data/spec/alerts_spec.rb +7 -0
- data/spec/environments_spec.rb +56 -1
- data/spec/legacy_alerts_spec.rb +2 -2
- data/spec/provider_locations_spec.rb +23 -2
- data/spec/providers_spec.rb +9 -9
- data/spec/servers_spec.rb +6 -0
- data/spec/users_spec.rb +26 -0
- metadata +63 -104
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: bd619c98f8df6a367b18e450e20b2f0ef7ab8be7
|
4
|
+
data.tar.gz: d8ad89c80c163b0a55da4fe1e2506c2f74edaa78
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: e710b35f185c9cae9d0f61f5f94b795110922fd7aa392e75092082b4b9c36f6a74ab63f29675b52eaed1e771d65af245adda73954033eeeafe23ce4de913a682
|
7
|
+
data.tar.gz: 5a879258d9d1699153927b1d7f029003df6c652fc8de3cae2eb9aa1256af5eaee8748a8c2ec5025d8aeed9a48e22290e0adad774ba0ca37caa353b1d40871024
|
@@ -0,0 +1,14 @@
|
|
1
|
+
## Examples and snippets to use with the `ey-core console`
|
2
|
+
|
3
|
+
### Getting started
|
4
|
+
|
5
|
+
With the _ey-core_ gem comes the `ey-core console` utility which allows to query the CoreAPI interactively. Below are a series of snippets with commands that will allow actions that normally are done through the EY dashboard, and others which aren't implemented yet but the CoreAPI already supports.
|
6
|
+
|
7
|
+
The backend will automatically allow/reject actions based on the api token the console is using. Upon a successful `ey-core login` said token is written on `$HOME/.ey-core` and picked up from there by the console. It's a good practice to issue `ey-core whoami` before opening the console to double check that the desired user is logged in.
|
8
|
+
|
9
|
+
- Addresses
|
10
|
+
- [List addresses allocated to the account](address.md#list-addresses-on-an-account)
|
11
|
+
- [Provision a new address](address.md#provision-new-address)
|
12
|
+
- [Attach an address to an instance/server](address.md#attach-address-to-instance)
|
13
|
+
- [Detach an address from an instance/server](address.md#detach-address-from-instance)
|
14
|
+
|
@@ -0,0 +1,51 @@
|
|
1
|
+
# IP Addresses
|
2
|
+
|
3
|
+
It's advised for each operation to capture the request via an *<operation>_prov_req* variable, which will hold the operation's status. The snippets below just wait for the request to finish (or timeout in 300sec), but the progress can be tracked issuing `<operation>_prov_req.reload` regularly.
|
4
|
+
|
5
|
+
-
|
6
|
+
|
7
|
+
<a name="list-addresses-on-an-account"></a>
|
8
|
+
### List IPs addresses allocated to an account
|
9
|
+
|
10
|
+
```
|
11
|
+
addresses
|
12
|
+
```
|
13
|
+
|
14
|
+
-
|
15
|
+
|
16
|
+
<a name="provision-new-address"></a>
|
17
|
+
### Provision a new IP address on the account
|
18
|
+
|
19
|
+
```
|
20
|
+
new_address_specs = {:provider_id => "23952", :location => "us-east-1"}
|
21
|
+
address_prov_req = addresses.create(new_eip_specs)
|
22
|
+
address_prov_req.ready!(300)
|
23
|
+
```
|
24
|
+
|
25
|
+
-
|
26
|
+
|
27
|
+
<a name="attach-address-to-instance"></a>
|
28
|
+
### Attach an address to an instance
|
29
|
+
|
30
|
+
```
|
31
|
+
addresses
|
32
|
+
address = addresses.first(ip_address: "111.222.333.444")
|
33
|
+
attach_prov_req = address.attach(servers.first(provisioned_id: "i-aabbccdd"))
|
34
|
+
attach_prov_req.ready!(300)
|
35
|
+
```
|
36
|
+
|
37
|
+
-
|
38
|
+
|
39
|
+
<a name="detach-address-from-instance"></a>
|
40
|
+
### Detach an address from an instance
|
41
|
+
|
42
|
+
```
|
43
|
+
addresses
|
44
|
+
eip = addresses.first(ip_address: "111.222.333.444")
|
45
|
+
detach_prov_req = eip.detach
|
46
|
+
detach_prov_req.ready!(300)
|
47
|
+
```
|
48
|
+
|
49
|
+
-
|
50
|
+
|
51
|
+
|
data/lib/ey-core/client.rb
CHANGED
@@ -118,6 +118,7 @@ class Ey::Core::Client < Cistern::Service
|
|
118
118
|
model :user
|
119
119
|
model :volume
|
120
120
|
|
121
|
+
request :acknowledge_alert
|
121
122
|
request :apply_environment_updates
|
122
123
|
request :apply_server_updates
|
123
124
|
request :attach_address
|
@@ -289,11 +290,13 @@ class Ey::Core::Client < Cistern::Service
|
|
289
290
|
request :reboot_server
|
290
291
|
request :request_callback
|
291
292
|
request :reset_password
|
293
|
+
request :reset_server_state
|
292
294
|
request :restart_environment_app_servers
|
293
295
|
request :run_cluster_application_action
|
294
296
|
request :run_environment_application_action
|
295
297
|
request :signup
|
296
298
|
request :timeout_deployment
|
299
|
+
request :unassign_environment
|
297
300
|
request :update_addon
|
298
301
|
request :update_address
|
299
302
|
request :update_alert
|
@@ -302,6 +305,7 @@ class Ey::Core::Client < Cistern::Service
|
|
302
305
|
request :update_blueprint
|
303
306
|
request :update_environment
|
304
307
|
request :update_membership
|
308
|
+
request :update_provider_location
|
305
309
|
request :update_server
|
306
310
|
request :update_ssl_certificate
|
307
311
|
request :update_untracked_server
|
@@ -5,12 +5,15 @@ class Ey::Core::Client::Account < Ey::Core::Model
|
|
5
5
|
|
6
6
|
attribute :cancelled_at, type: :time
|
7
7
|
attribute :created_at, type: :time
|
8
|
-
attribute :
|
8
|
+
attribute :emergency_contact
|
9
|
+
attribute :fraudulent
|
10
|
+
attribute :legacy_id
|
9
11
|
attribute :name
|
10
|
-
attribute :support_plan
|
11
|
-
attribute :signup_via
|
12
12
|
attribute :plan_type
|
13
|
+
attribute :signup_via
|
14
|
+
attribute :support_plan
|
13
15
|
attribute :type
|
16
|
+
attribute :updated_at, type: :time
|
14
17
|
|
15
18
|
has_many :addresses
|
16
19
|
has_many :applications
|
data/lib/ey-core/models/alert.rb
CHANGED
@@ -48,6 +48,11 @@ class Ey::Core::Client::Alert < Ey::Core::Model
|
|
48
48
|
(type == "database-servers" || nil) && self.connection.database_servers.get!(identity)
|
49
49
|
end
|
50
50
|
|
51
|
+
def acknowledge!
|
52
|
+
requires :id
|
53
|
+
merge_attributes(self.connection.acknowledge_alert("id" => self.id).body["legacy_alert"])
|
54
|
+
end
|
55
|
+
|
51
56
|
def save!
|
52
57
|
response = if new_record?
|
53
58
|
params = {
|
@@ -21,6 +21,7 @@ class Ey::Core::Client::Environment < Ey::Core::Model
|
|
21
21
|
has_one :account
|
22
22
|
has_one :database_service
|
23
23
|
has_one :firewall
|
24
|
+
has_one :assignee, assoc_name: :user, resource: :user
|
24
25
|
|
25
26
|
has_many :costs
|
26
27
|
has_many :keypairs
|
@@ -196,6 +197,11 @@ class Ey::Core::Client::Environment < Ey::Core::Model
|
|
196
197
|
end
|
197
198
|
end
|
198
199
|
|
200
|
+
def unassign!
|
201
|
+
requires :id
|
202
|
+
merge_attributes(self.connection.unassign_environment("id" => self.id).body["environment"])
|
203
|
+
end
|
204
|
+
|
199
205
|
def save!
|
200
206
|
if new_record?
|
201
207
|
requires :application_id, :account_id, :region
|
@@ -8,4 +8,17 @@ class Ey::Core::Client::ProviderLocation < Ey::Core::Model
|
|
8
8
|
attribute :limits, type: :hash
|
9
9
|
|
10
10
|
has_one :provider
|
11
|
+
|
12
|
+
def save!
|
13
|
+
params = {
|
14
|
+
"id" => self.id,
|
15
|
+
"provider_location" => {
|
16
|
+
"limits" => self.limits,
|
17
|
+
},
|
18
|
+
}
|
19
|
+
|
20
|
+
unless new_record?
|
21
|
+
merge_attributes(self.connection.update_provider_location(params).body["provider_location"])
|
22
|
+
end
|
23
|
+
end
|
11
24
|
end
|
@@ -17,9 +17,11 @@ class Ey::Core::Client::Server < Ey::Core::Model
|
|
17
17
|
attribute :provisioned_at, type: :time
|
18
18
|
attribute :provisioned_id
|
19
19
|
attribute :public_hostname
|
20
|
+
attribute :public_key
|
20
21
|
attribute :role
|
21
22
|
attribute :ssh_port, type: :integer
|
22
23
|
attribute :state
|
24
|
+
attribute :token
|
23
25
|
attribute :updated_at, type: :time
|
24
26
|
attribute :wait_for_chef, type: :boolean
|
25
27
|
attribute :release_label
|
@@ -59,6 +61,18 @@ class Ey::Core::Client::Server < Ey::Core::Model
|
|
59
61
|
)
|
60
62
|
end
|
61
63
|
|
64
|
+
def reset_state(state)
|
65
|
+
params = {
|
66
|
+
"url" => self.collection.url,
|
67
|
+
"id" => self.id,
|
68
|
+
"state" => state
|
69
|
+
}
|
70
|
+
|
71
|
+
unless new_record?
|
72
|
+
merge_attributes(self.connection.reset_server_state(params).body["server"])
|
73
|
+
end
|
74
|
+
end
|
75
|
+
|
62
76
|
def save!
|
63
77
|
if new_record?
|
64
78
|
requires :flavor_id, :role, :environment
|
data/lib/ey-core/models/user.rb
CHANGED
@@ -0,0 +1,29 @@
|
|
1
|
+
class Ey::Core::Client
|
2
|
+
class Real
|
3
|
+
def acknowledge_alert(params={})
|
4
|
+
id = params.delete("id")
|
5
|
+
|
6
|
+
request(
|
7
|
+
method: :put,
|
8
|
+
path: "legacy-alerts/#{id}/acknowledge"
|
9
|
+
)
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
class Mock
|
14
|
+
def acknowledge_alert(params={})
|
15
|
+
id = params.delete("id")
|
16
|
+
|
17
|
+
if alert = self.data[:alerts][id]
|
18
|
+
alert["acknowledged"] = true
|
19
|
+
|
20
|
+
response(
|
21
|
+
:body => {"legacy_alert" => alert},
|
22
|
+
:status => 200
|
23
|
+
)
|
24
|
+
else
|
25
|
+
response(status: 404)
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -32,6 +32,7 @@ class Ey::Core::Client
|
|
32
32
|
"memberships" => url_for("/users/#{resource_id}/memberships"),
|
33
33
|
"keypairs" => url_for("/users/#{resource_id}/keypairs"),
|
34
34
|
"tokens" => url_for("/users/#{resource_id}/tokens"),
|
35
|
+
"api_token" => SecureRandom.hex(16),
|
35
36
|
})
|
36
37
|
|
37
38
|
self.data[:tokens][token_id] = {
|
@@ -25,7 +25,11 @@ class Ey::Core::Client
|
|
25
25
|
self.data[:environments][environment_id]
|
26
26
|
end.compact.uniq.inject({}) {|hash, env| hash[env["id"]] = env; hash}
|
27
27
|
|
28
|
-
|
28
|
+
if params.delete("exclude_ignored")
|
29
|
+
resources.reject! { |id,hash| hash["permanently_ignored"] }
|
30
|
+
end
|
31
|
+
|
32
|
+
headers, environments_page = search_and_page(params, :environments, search_keys: %w[account project name assignee_id], resources: resources)
|
29
33
|
|
30
34
|
response(
|
31
35
|
:body => {"environments" => environments_page},
|
@@ -0,0 +1,32 @@
|
|
1
|
+
class Ey::Core::Client
|
2
|
+
class Real
|
3
|
+
def reset_server_state(params={})
|
4
|
+
id = params.delete("id")
|
5
|
+
url = params.delete("url")
|
6
|
+
|
7
|
+
request(
|
8
|
+
:method => :put,
|
9
|
+
:path => "servers/#{id}/reset_state",
|
10
|
+
:body => params,
|
11
|
+
:url => url,
|
12
|
+
)
|
13
|
+
end
|
14
|
+
end # Real
|
15
|
+
|
16
|
+
class Mock
|
17
|
+
def reset_server_state(params={})
|
18
|
+
id = params["id"]
|
19
|
+
state = params["state"]
|
20
|
+
|
21
|
+
if server = self.data[:servers][id]
|
22
|
+
server[:state] = state
|
23
|
+
response(
|
24
|
+
:body => {"server" => server},
|
25
|
+
:status => 200,
|
26
|
+
)
|
27
|
+
else
|
28
|
+
response(status: 404)
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end # Mock
|
32
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
class Ey::Core::Client
|
2
|
+
class Real
|
3
|
+
def unassign_environment(params={})
|
4
|
+
id = params["id"]
|
5
|
+
url = params["url"]
|
6
|
+
|
7
|
+
request(
|
8
|
+
:method => :put,
|
9
|
+
:url => url,
|
10
|
+
:path => "/environments/#{id}/unassign",
|
11
|
+
)
|
12
|
+
end
|
13
|
+
end # Real
|
14
|
+
|
15
|
+
class Mock
|
16
|
+
def unassign_environment(params={})
|
17
|
+
request_id = self.uuid
|
18
|
+
url = params.delete("url")
|
19
|
+
|
20
|
+
environment_id = params["id"] || url && url.split('/').last
|
21
|
+
|
22
|
+
environment = self.data[:environments][environment_id]
|
23
|
+
environment[:assignee] = nil
|
24
|
+
|
25
|
+
response(
|
26
|
+
:body => {"environment" => environment},
|
27
|
+
:status => 200,
|
28
|
+
)
|
29
|
+
end
|
30
|
+
end # Mock
|
31
|
+
end # Ey::Core::Client
|
@@ -0,0 +1,29 @@
|
|
1
|
+
class Ey::Core::Client
|
2
|
+
class Real
|
3
|
+
def update_provider_location(params={})
|
4
|
+
id = params.delete("id")
|
5
|
+
request(
|
6
|
+
:method => :put,
|
7
|
+
:path => "/provider-locations/#{id}",
|
8
|
+
:body => params,
|
9
|
+
)
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
class Mock
|
14
|
+
def update_provider_location(params={})
|
15
|
+
resource_id = params.delete("id")
|
16
|
+
|
17
|
+
if provider_location = self.data[:provider_locations][resource_id]
|
18
|
+
provider_location[:limits] = params["provider_location"]["limits"]
|
19
|
+
|
20
|
+
response(
|
21
|
+
:body => {"provider_location" => provider_location},
|
22
|
+
:status => 200,
|
23
|
+
)
|
24
|
+
else
|
25
|
+
response(status:404)
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -3,8 +3,8 @@ module Ey
|
|
3
3
|
module TestHelpers
|
4
4
|
module AccountHelpers
|
5
5
|
def create_account(options={})
|
6
|
-
|
7
|
-
|
6
|
+
client = options[:client]
|
7
|
+
creator = options[:creator] || client || create_client
|
8
8
|
|
9
9
|
attributes = options[:account] || {}
|
10
10
|
attributes[:type] ||= "beta" # get around awsm billing requirements for tests
|
@@ -28,8 +28,8 @@ module Ey
|
|
28
28
|
end
|
29
29
|
|
30
30
|
def create_user(options={})
|
31
|
-
|
32
|
-
|
31
|
+
client = options[:client]
|
32
|
+
creator = options[:creator] || client || create_client
|
33
33
|
|
34
34
|
attributes = options[:user] || {}
|
35
35
|
attributes[:name] ||= Faker::Name.name
|
@@ -23,11 +23,14 @@ module Ey
|
|
23
23
|
|
24
24
|
def create_server(client, options={})
|
25
25
|
options = Cistern::Hash.stringify_keys(options)
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
26
|
+
environment = options["environment"]
|
27
|
+
|
28
|
+
request = client.servers.create!({
|
29
|
+
:environment => environment,
|
30
|
+
:flavor_id => 'm3.medium',
|
31
|
+
:role => 'util',
|
32
|
+
:name => 'resque',
|
33
|
+
}.merge(options["server"] || {}))
|
31
34
|
|
32
35
|
request.resource!
|
33
36
|
end
|
data/lib/ey-core/version.rb
CHANGED
@@ -0,0 +1,65 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe 'accounts' do
|
4
|
+
let(:client) {create_client}
|
5
|
+
|
6
|
+
let(:account) {
|
7
|
+
create_account(
|
8
|
+
client: client, creator: client,
|
9
|
+
account: {
|
10
|
+
owner: create_user(client: client, creator: client)
|
11
|
+
}.merge(details)
|
12
|
+
)
|
13
|
+
}
|
14
|
+
|
15
|
+
describe '#type' do
|
16
|
+
let(:details) {{type: 'oracle'}}
|
17
|
+
|
18
|
+
it 'is the account type for the account' do
|
19
|
+
expect(account.type).to eql('oracle')
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
describe '#signup_via' do
|
24
|
+
let(:details) {{signup_via: 'deis'}}
|
25
|
+
|
26
|
+
it 'is the service through which the owner signed up' do
|
27
|
+
expect(account.signup_via).to eql('deis')
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
describe '#legacy_id' do
|
32
|
+
let(:details) {{}}
|
33
|
+
|
34
|
+
# Fun fact: we're not allowed to set legacy_id in create_account
|
35
|
+
before(:each) do
|
36
|
+
client.data[:accounts][account.id].merge!(
|
37
|
+
{'legacy_id' => '19283'}
|
38
|
+
)
|
39
|
+
|
40
|
+
account.reload
|
41
|
+
end
|
42
|
+
|
43
|
+
it 'is the legacy_id for the account' do
|
44
|
+
expect(account.legacy_id).to eql('19283')
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
context 'when searched by legacy_id' do
|
49
|
+
let(:details) {{}}
|
50
|
+
let(:legacy_id) {Cistern::Mock.random_numbers(6)}
|
51
|
+
let(:searched) {client.accounts.all(legacy_id: legacy_id)}
|
52
|
+
|
53
|
+
before(:each) do
|
54
|
+
client.data[:accounts][account.id].merge!(
|
55
|
+
{'legacy_id' => legacy_id}
|
56
|
+
)
|
57
|
+
|
58
|
+
account.reload
|
59
|
+
end
|
60
|
+
|
61
|
+
it 'is a resounding success', mock_only: true do
|
62
|
+
expect(searched).to include(account)
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
data/spec/alerts_spec.rb
CHANGED
@@ -144,5 +144,12 @@ describe 'alerts' do
|
|
144
144
|
}.to change { alert.reload.finished_at }.from(nil).
|
145
145
|
and change { database_server.alerts.all.size }.by(-1)
|
146
146
|
end
|
147
|
+
|
148
|
+
it 'acknowledges the alert' do
|
149
|
+
alert = alerts.first
|
150
|
+
expect {
|
151
|
+
alert.acknowledge!
|
152
|
+
}.to change { alert.acknowledged }.from(false).to(true)
|
153
|
+
end
|
147
154
|
end
|
148
155
|
end
|
data/spec/environments_spec.rb
CHANGED
@@ -45,7 +45,6 @@ describe 'as a user' do
|
|
45
45
|
let(:other_environment) { create_environment(enviroment: { name: Faker::Name.first_name}, application: app, account: account) }
|
46
46
|
|
47
47
|
before do
|
48
|
-
pending "adding servers to environments not yet implemented"
|
49
48
|
create_server(client,
|
50
49
|
provisioned_id: "i-a1000fce",
|
51
50
|
provider: provider,
|
@@ -64,12 +63,68 @@ describe 'as a user' do
|
|
64
63
|
expect(environments).to include(alerting_environment)
|
65
64
|
expect(environments).not_to include(other_environment)
|
66
65
|
end
|
66
|
+
|
67
|
+
context "and the environment is permanently ignored", mock_only: true do
|
68
|
+
before(:each) do
|
69
|
+
client.data[:environments][alerting_environment.id]["permanently_ignored"] = true
|
70
|
+
end
|
71
|
+
|
72
|
+
it "returns the ignored environment by default" do
|
73
|
+
expect(client.environments.alerting).to contain_exactly(alerting_environment)
|
74
|
+
end
|
75
|
+
|
76
|
+
it "filters it if you tell it to" do
|
77
|
+
expect(client.environments.alerting("exclude_ignored" => true)).to be_empty
|
78
|
+
end
|
79
|
+
end
|
67
80
|
end
|
68
81
|
|
69
82
|
context "with an environment" do
|
70
83
|
let!(:name) { Faker::Name.first_name }
|
71
84
|
let!(:environment) { create_environment(account: account, application: app, environment: {name: name}, configuration: {type: "production"}) }
|
72
85
|
|
86
|
+
describe '#assignee' do
|
87
|
+
let(:assignee) {client.environments.get(environment.id).assignee}
|
88
|
+
|
89
|
+
context 'for an environment with an assignee' do
|
90
|
+
let(:user) {create_user(client: client, creator: client)}
|
91
|
+
|
92
|
+
before(:each) do
|
93
|
+
# Since we can't set an assignee directly ...
|
94
|
+
client.data[:environments][environment.id]['assignee_id'] = user.id
|
95
|
+
end
|
96
|
+
|
97
|
+
it 'is the user assigned to the environment' do
|
98
|
+
expect(assignee).to eql(user)
|
99
|
+
end
|
100
|
+
end
|
101
|
+
|
102
|
+
context 'for an environment without an assignee' do
|
103
|
+
it 'is nil' do
|
104
|
+
expect(assignee).to be_nil
|
105
|
+
end
|
106
|
+
end
|
107
|
+
end
|
108
|
+
|
109
|
+
describe '#unassign!' do
|
110
|
+
let(:user) {create_user(client: client, creator: client)}
|
111
|
+
|
112
|
+
let(:test_env) {account.environments.get(environment.id)}
|
113
|
+
|
114
|
+
before(:each) do
|
115
|
+
# Since we can't set an assignee directly ...
|
116
|
+
client.data[:environments][environment.id]['assignee_id'] = user.id
|
117
|
+
end
|
118
|
+
|
119
|
+
it 'removes the assignment from the environment' do
|
120
|
+
expect(test_env.assignee).not_to be_nil
|
121
|
+
|
122
|
+
test_env.unassign!
|
123
|
+
|
124
|
+
expect(test_env.assignee).to be_nil
|
125
|
+
end
|
126
|
+
end
|
127
|
+
|
73
128
|
it "has the right number of servers" do
|
74
129
|
expect(environment.servers.count).to eq(5)
|
75
130
|
end
|
data/spec/legacy_alerts_spec.rb
CHANGED
@@ -18,7 +18,7 @@ describe 'as a user' do
|
|
18
18
|
acknowledged: false)
|
19
19
|
end
|
20
20
|
|
21
|
-
it "
|
21
|
+
it "fetches a legacy alert" do
|
22
22
|
a = client.legacy_alerts.get(1001)
|
23
23
|
|
24
24
|
expect(a).not_to be_nil
|
@@ -29,7 +29,7 @@ describe 'as a user' do
|
|
29
29
|
expect(a.server).to eq(server)
|
30
30
|
end
|
31
31
|
|
32
|
-
it "
|
32
|
+
it "lists legacy alerts" do
|
33
33
|
legacy_alerts = client.legacy_alerts.all
|
34
34
|
expect(legacy_alerts.size).to be(1)
|
35
35
|
|
@@ -22,7 +22,7 @@ describe 'provider locations' do
|
|
22
22
|
before do
|
23
23
|
end
|
24
24
|
|
25
|
-
it "
|
25
|
+
it "finds the provider location" do
|
26
26
|
location = client.provider_locations.get(provider_location.id)
|
27
27
|
|
28
28
|
expect(location.id).to eq(provider_location.id)
|
@@ -46,7 +46,7 @@ describe 'provider locations' do
|
|
46
46
|
end
|
47
47
|
end
|
48
48
|
|
49
|
-
it "
|
49
|
+
it "lists provider locations" do
|
50
50
|
locations = provider.provider_locations.all
|
51
51
|
|
52
52
|
expect(locations.size).to be > 0
|
@@ -60,5 +60,26 @@ describe 'provider locations' do
|
|
60
60
|
expect(location.limits["addresses"]).to eq(provider_location.limits["addresses"])
|
61
61
|
end
|
62
62
|
end
|
63
|
+
|
64
|
+
describe '#limits=' do
|
65
|
+
let(:new_limits) {{servers: 25, addresses: 10}}
|
66
|
+
|
67
|
+
it 'sets new limits for the provider location' do
|
68
|
+
provider_location.limits = new_limits
|
69
|
+
|
70
|
+
expect(provider_location.limits).to eql(new_limits)
|
71
|
+
end
|
72
|
+
|
73
|
+
it 'is persisted when saved' do
|
74
|
+
limits = {"servers" => 20, "addresses" => 5}
|
75
|
+
provider_location.limits = new_limits
|
76
|
+
|
77
|
+
expect(provider.provider_locations.get(provider_location.id).limits).to eql(limits)
|
78
|
+
|
79
|
+
provider_location.save!
|
80
|
+
|
81
|
+
expect(provider.provider_locations.get(provider_location.id).limits).to eql(new_limits)
|
82
|
+
end
|
83
|
+
end
|
63
84
|
end
|
64
85
|
end
|
data/spec/providers_spec.rb
CHANGED
@@ -6,7 +6,7 @@ describe 'providers' do
|
|
6
6
|
let!(:account) { create_account(client: client) }
|
7
7
|
|
8
8
|
["azure", "aws"].each do |provider|
|
9
|
-
it "
|
9
|
+
it "has possible #{provider} locations without a provider type" do
|
10
10
|
locations = client.provider.possible_locations(provider)
|
11
11
|
expect(locations).to be_a(Array)
|
12
12
|
expect(locations).not_to be_empty
|
@@ -14,8 +14,8 @@ describe 'providers' do
|
|
14
14
|
end
|
15
15
|
|
16
16
|
context "with an account" do
|
17
|
-
["aws"
|
18
|
-
it "
|
17
|
+
["aws"].each do |type|
|
18
|
+
it "creates a #{type} provider" do
|
19
19
|
provisioned_id = SecureRandom.hex(8)
|
20
20
|
provider = account.providers.create!(type: type, provisioned_id: provisioned_id, credentials: {}).resource!
|
21
21
|
|
@@ -27,16 +27,16 @@ describe 'providers' do
|
|
27
27
|
context "with a #{type} provider" do
|
28
28
|
let!(:provider) { account.providers.create!(type: type, provisioned_id: SecureRandom.hex(8), credentials: {}).resource! }
|
29
29
|
|
30
|
-
it "
|
30
|
+
it "gets an provider" do
|
31
31
|
expect(account.providers.get(provider.id)).to eq(provider)
|
32
32
|
end
|
33
33
|
|
34
|
-
it "
|
34
|
+
it "has possible provider locations" do
|
35
35
|
expect(provider.possible_locations).to be_a(Array)
|
36
36
|
expect(provider.possible_locations).not_to be_empty
|
37
37
|
end
|
38
38
|
|
39
|
-
it "
|
39
|
+
it "gets providers" do
|
40
40
|
another_account = create_account(client: client)
|
41
41
|
create_provider(account: another_account)
|
42
42
|
|
@@ -46,12 +46,12 @@ describe 'providers' do
|
|
46
46
|
expect(account_providers.first).to eq(provider)
|
47
47
|
end
|
48
48
|
|
49
|
-
it "
|
49
|
+
it "destroys the provider" do
|
50
50
|
expect(provider.destroy.ready!).to be_successful
|
51
51
|
expect(provider.reload.cancelled_at).not_to be_nil
|
52
52
|
end
|
53
53
|
|
54
|
-
it "
|
54
|
+
it "discovers locations for the #{type} provider", :mock_only do
|
55
55
|
provider.possible_locations.each do |location_id|
|
56
56
|
provider_location = nil
|
57
57
|
expect {
|
@@ -71,7 +71,7 @@ describe 'providers' do
|
|
71
71
|
let!(:client_1_account_1) { client_1.accounts.create!(owner: owner, name: Faker::Name.first_name)}
|
72
72
|
let!(:client_1_account_2) { client_1.accounts.create!(owner: owner, name: Faker::Name.first_name)}
|
73
73
|
|
74
|
-
it "
|
74
|
+
it "does not clobber other accounts' providers" do
|
75
75
|
# this just tests that the mock behaves reasonably
|
76
76
|
client_1_account_1.providers.create!(type: "aws").ready!
|
77
77
|
|
data/spec/servers_spec.rb
CHANGED
@@ -42,6 +42,12 @@ describe 'servers' do
|
|
42
42
|
end
|
43
43
|
end
|
44
44
|
|
45
|
+
it "should reset the server state" do
|
46
|
+
expect {
|
47
|
+
server.reset_state('error')
|
48
|
+
}.to change { server.reload.state }.from('running').to('error')
|
49
|
+
end
|
50
|
+
|
45
51
|
it "does not destroy" do
|
46
52
|
expect {
|
47
53
|
server.destroy
|
data/spec/users_spec.rb
CHANGED
@@ -78,5 +78,31 @@ describe 'users' do
|
|
78
78
|
expect(client.users.all(deleted: true)).to include(user)
|
79
79
|
expect(client.users.all(with_deleted: true)).to include(user)
|
80
80
|
end
|
81
|
+
|
82
|
+
context "for the current user" do
|
83
|
+
let!(:user) { client.users.current }
|
84
|
+
|
85
|
+
describe '#token' do
|
86
|
+
subject { user.token }
|
87
|
+
|
88
|
+
context 'for my own user' do
|
89
|
+
it { is_expected.not_to be_nil }
|
90
|
+
end
|
91
|
+
|
92
|
+
context 'for another user' do
|
93
|
+
context 'as a staff user' do
|
94
|
+
before(:each) do
|
95
|
+
client.data[:users][user.id][:staff] = true
|
96
|
+
end
|
97
|
+
|
98
|
+
it { is_expected.not_to be_nil }
|
99
|
+
end
|
100
|
+
|
101
|
+
context 'as a non-staff user' do
|
102
|
+
it { is_expected.not_to be_nil }
|
103
|
+
end
|
104
|
+
end
|
105
|
+
end
|
106
|
+
end
|
81
107
|
end
|
82
108
|
end
|
metadata
CHANGED
@@ -1,164 +1,144 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ey-core
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.
|
5
|
-
prerelease:
|
4
|
+
version: 3.2.0
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Josh Lane
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date: 2016-
|
11
|
+
date: 2016-10-06 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: addressable
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
|
-
- - ~>
|
17
|
+
- - "~>"
|
20
18
|
- !ruby/object:Gem::Version
|
21
19
|
version: '2.2'
|
22
20
|
type: :runtime
|
23
21
|
prerelease: false
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
23
|
requirements:
|
27
|
-
- - ~>
|
24
|
+
- - "~>"
|
28
25
|
- !ruby/object:Gem::Version
|
29
26
|
version: '2.2'
|
30
27
|
- !ruby/object:Gem::Dependency
|
31
28
|
name: awesome_print
|
32
29
|
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
30
|
requirements:
|
35
|
-
- -
|
31
|
+
- - ">="
|
36
32
|
- !ruby/object:Gem::Version
|
37
33
|
version: '0'
|
38
34
|
type: :runtime
|
39
35
|
prerelease: false
|
40
36
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
37
|
requirements:
|
43
|
-
- -
|
38
|
+
- - ">="
|
44
39
|
- !ruby/object:Gem::Version
|
45
40
|
version: '0'
|
46
41
|
- !ruby/object:Gem::Dependency
|
47
42
|
name: belafonte
|
48
43
|
requirement: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
44
|
requirements:
|
51
|
-
- -
|
45
|
+
- - ">="
|
52
46
|
- !ruby/object:Gem::Version
|
53
47
|
version: '0'
|
54
48
|
type: :runtime
|
55
49
|
prerelease: false
|
56
50
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
none: false
|
58
51
|
requirements:
|
59
|
-
- -
|
52
|
+
- - ">="
|
60
53
|
- !ruby/object:Gem::Version
|
61
54
|
version: '0'
|
62
55
|
- !ruby/object:Gem::Dependency
|
63
56
|
name: cistern
|
64
57
|
requirement: !ruby/object:Gem::Requirement
|
65
|
-
none: false
|
66
58
|
requirements:
|
67
|
-
- - ~>
|
59
|
+
- - "~>"
|
68
60
|
- !ruby/object:Gem::Version
|
69
61
|
version: '0.12'
|
70
62
|
type: :runtime
|
71
63
|
prerelease: false
|
72
64
|
version_requirements: !ruby/object:Gem::Requirement
|
73
|
-
none: false
|
74
65
|
requirements:
|
75
|
-
- - ~>
|
66
|
+
- - "~>"
|
76
67
|
- !ruby/object:Gem::Version
|
77
68
|
version: '0.12'
|
78
69
|
- !ruby/object:Gem::Dependency
|
79
70
|
name: colorize
|
80
71
|
requirement: !ruby/object:Gem::Requirement
|
81
|
-
none: false
|
82
72
|
requirements:
|
83
|
-
- -
|
73
|
+
- - ">="
|
84
74
|
- !ruby/object:Gem::Version
|
85
75
|
version: '0'
|
86
76
|
type: :runtime
|
87
77
|
prerelease: false
|
88
78
|
version_requirements: !ruby/object:Gem::Requirement
|
89
|
-
none: false
|
90
79
|
requirements:
|
91
|
-
- -
|
80
|
+
- - ">="
|
92
81
|
- !ruby/object:Gem::Version
|
93
82
|
version: '0'
|
94
83
|
- !ruby/object:Gem::Dependency
|
95
84
|
name: ey-hmac
|
96
85
|
requirement: !ruby/object:Gem::Requirement
|
97
|
-
none: false
|
98
86
|
requirements:
|
99
|
-
- - ~>
|
87
|
+
- - "~>"
|
100
88
|
- !ruby/object:Gem::Version
|
101
89
|
version: '2.0'
|
102
90
|
type: :runtime
|
103
91
|
prerelease: false
|
104
92
|
version_requirements: !ruby/object:Gem::Requirement
|
105
|
-
none: false
|
106
93
|
requirements:
|
107
|
-
- - ~>
|
94
|
+
- - "~>"
|
108
95
|
- !ruby/object:Gem::Version
|
109
96
|
version: '2.0'
|
110
97
|
- !ruby/object:Gem::Dependency
|
111
98
|
name: escape
|
112
99
|
requirement: !ruby/object:Gem::Requirement
|
113
|
-
none: false
|
114
100
|
requirements:
|
115
|
-
- -
|
101
|
+
- - ">="
|
116
102
|
- !ruby/object:Gem::Version
|
117
103
|
version: '0'
|
118
104
|
type: :runtime
|
119
105
|
prerelease: false
|
120
106
|
version_requirements: !ruby/object:Gem::Requirement
|
121
|
-
none: false
|
122
107
|
requirements:
|
123
|
-
- -
|
108
|
+
- - ">="
|
124
109
|
- !ruby/object:Gem::Version
|
125
110
|
version: '0'
|
126
111
|
- !ruby/object:Gem::Dependency
|
127
112
|
name: faraday
|
128
113
|
requirement: !ruby/object:Gem::Requirement
|
129
|
-
none: false
|
130
114
|
requirements:
|
131
|
-
- - ~>
|
115
|
+
- - "~>"
|
132
116
|
- !ruby/object:Gem::Version
|
133
117
|
version: '0.9'
|
134
118
|
type: :runtime
|
135
119
|
prerelease: false
|
136
120
|
version_requirements: !ruby/object:Gem::Requirement
|
137
|
-
none: false
|
138
121
|
requirements:
|
139
|
-
- - ~>
|
122
|
+
- - "~>"
|
140
123
|
- !ruby/object:Gem::Version
|
141
124
|
version: '0.9'
|
142
125
|
- !ruby/object:Gem::Dependency
|
143
126
|
name: faraday_middleware
|
144
127
|
requirement: !ruby/object:Gem::Requirement
|
145
|
-
none: false
|
146
128
|
requirements:
|
147
|
-
- - ~>
|
129
|
+
- - "~>"
|
148
130
|
- !ruby/object:Gem::Version
|
149
131
|
version: '0.9'
|
150
132
|
type: :runtime
|
151
133
|
prerelease: false
|
152
134
|
version_requirements: !ruby/object:Gem::Requirement
|
153
|
-
none: false
|
154
135
|
requirements:
|
155
|
-
- - ~>
|
136
|
+
- - "~>"
|
156
137
|
- !ruby/object:Gem::Version
|
157
138
|
version: '0.9'
|
158
139
|
- !ruby/object:Gem::Dependency
|
159
140
|
name: rack
|
160
141
|
requirement: !ruby/object:Gem::Requirement
|
161
|
-
none: false
|
162
142
|
requirements:
|
163
143
|
- - '='
|
164
144
|
- !ruby/object:Gem::Version
|
@@ -166,7 +146,6 @@ dependencies:
|
|
166
146
|
type: :runtime
|
167
147
|
prerelease: false
|
168
148
|
version_requirements: !ruby/object:Gem::Requirement
|
169
|
-
none: false
|
170
149
|
requirements:
|
171
150
|
- - '='
|
172
151
|
- !ruby/object:Gem::Version
|
@@ -174,209 +153,183 @@ dependencies:
|
|
174
153
|
- !ruby/object:Gem::Dependency
|
175
154
|
name: faye
|
176
155
|
requirement: !ruby/object:Gem::Requirement
|
177
|
-
none: false
|
178
156
|
requirements:
|
179
|
-
- -
|
157
|
+
- - ">="
|
180
158
|
- !ruby/object:Gem::Version
|
181
159
|
version: '0'
|
182
160
|
type: :runtime
|
183
161
|
prerelease: false
|
184
162
|
version_requirements: !ruby/object:Gem::Requirement
|
185
|
-
none: false
|
186
163
|
requirements:
|
187
|
-
- -
|
164
|
+
- - ">="
|
188
165
|
- !ruby/object:Gem::Version
|
189
166
|
version: '0'
|
190
167
|
- !ruby/object:Gem::Dependency
|
191
168
|
name: highline
|
192
169
|
requirement: !ruby/object:Gem::Requirement
|
193
|
-
none: false
|
194
170
|
requirements:
|
195
|
-
- -
|
171
|
+
- - ">="
|
196
172
|
- !ruby/object:Gem::Version
|
197
173
|
version: '0'
|
198
174
|
type: :runtime
|
199
175
|
prerelease: false
|
200
176
|
version_requirements: !ruby/object:Gem::Requirement
|
201
|
-
none: false
|
202
177
|
requirements:
|
203
|
-
- -
|
178
|
+
- - ">="
|
204
179
|
- !ruby/object:Gem::Version
|
205
180
|
version: '0'
|
206
181
|
- !ruby/object:Gem::Dependency
|
207
182
|
name: json
|
208
183
|
requirement: !ruby/object:Gem::Requirement
|
209
|
-
none: false
|
210
184
|
requirements:
|
211
|
-
- - <
|
185
|
+
- - "<"
|
212
186
|
- !ruby/object:Gem::Version
|
213
187
|
version: '2.0'
|
214
188
|
type: :runtime
|
215
189
|
prerelease: false
|
216
190
|
version_requirements: !ruby/object:Gem::Requirement
|
217
|
-
none: false
|
218
191
|
requirements:
|
219
|
-
- - <
|
192
|
+
- - "<"
|
220
193
|
- !ruby/object:Gem::Version
|
221
194
|
version: '2.0'
|
222
195
|
- !ruby/object:Gem::Dependency
|
223
196
|
name: mime-types
|
224
197
|
requirement: !ruby/object:Gem::Requirement
|
225
|
-
none: false
|
226
198
|
requirements:
|
227
|
-
- - ~>
|
199
|
+
- - "~>"
|
228
200
|
- !ruby/object:Gem::Version
|
229
201
|
version: '2.99'
|
230
202
|
type: :runtime
|
231
203
|
prerelease: false
|
232
204
|
version_requirements: !ruby/object:Gem::Requirement
|
233
|
-
none: false
|
234
205
|
requirements:
|
235
|
-
- - ~>
|
206
|
+
- - "~>"
|
236
207
|
- !ruby/object:Gem::Version
|
237
208
|
version: '2.99'
|
238
209
|
- !ruby/object:Gem::Dependency
|
239
210
|
name: oj
|
240
211
|
requirement: !ruby/object:Gem::Requirement
|
241
|
-
none: false
|
242
212
|
requirements:
|
243
|
-
- -
|
213
|
+
- - ">="
|
244
214
|
- !ruby/object:Gem::Version
|
245
215
|
version: '0'
|
246
216
|
type: :runtime
|
247
217
|
prerelease: false
|
248
218
|
version_requirements: !ruby/object:Gem::Requirement
|
249
|
-
none: false
|
250
219
|
requirements:
|
251
|
-
- -
|
220
|
+
- - ">="
|
252
221
|
- !ruby/object:Gem::Version
|
253
222
|
version: '0'
|
254
223
|
- !ruby/object:Gem::Dependency
|
255
224
|
name: oj_mimic_json
|
256
225
|
requirement: !ruby/object:Gem::Requirement
|
257
|
-
none: false
|
258
226
|
requirements:
|
259
|
-
- -
|
227
|
+
- - ">="
|
260
228
|
- !ruby/object:Gem::Version
|
261
229
|
version: '0'
|
262
230
|
type: :runtime
|
263
231
|
prerelease: false
|
264
232
|
version_requirements: !ruby/object:Gem::Requirement
|
265
|
-
none: false
|
266
233
|
requirements:
|
267
|
-
- -
|
234
|
+
- - ">="
|
268
235
|
- !ruby/object:Gem::Version
|
269
236
|
version: '0'
|
270
237
|
- !ruby/object:Gem::Dependency
|
271
238
|
name: pry
|
272
239
|
requirement: !ruby/object:Gem::Requirement
|
273
|
-
none: false
|
274
240
|
requirements:
|
275
|
-
- -
|
241
|
+
- - ">="
|
276
242
|
- !ruby/object:Gem::Version
|
277
243
|
version: '0'
|
278
244
|
type: :runtime
|
279
245
|
prerelease: false
|
280
246
|
version_requirements: !ruby/object:Gem::Requirement
|
281
|
-
none: false
|
282
247
|
requirements:
|
283
|
-
- -
|
248
|
+
- - ">="
|
284
249
|
- !ruby/object:Gem::Version
|
285
250
|
version: '0'
|
286
251
|
- !ruby/object:Gem::Dependency
|
287
252
|
name: sshkey
|
288
253
|
requirement: !ruby/object:Gem::Requirement
|
289
|
-
none: false
|
290
254
|
requirements:
|
291
|
-
- - ~>
|
255
|
+
- - "~>"
|
292
256
|
- !ruby/object:Gem::Version
|
293
257
|
version: '1.6'
|
294
258
|
type: :runtime
|
295
259
|
prerelease: false
|
296
260
|
version_requirements: !ruby/object:Gem::Requirement
|
297
|
-
none: false
|
298
261
|
requirements:
|
299
|
-
- - ~>
|
262
|
+
- - "~>"
|
300
263
|
- !ruby/object:Gem::Version
|
301
264
|
version: '1.6'
|
302
265
|
- !ruby/object:Gem::Dependency
|
303
266
|
name: table_print
|
304
267
|
requirement: !ruby/object:Gem::Requirement
|
305
|
-
none: false
|
306
268
|
requirements:
|
307
|
-
- -
|
269
|
+
- - ">="
|
308
270
|
- !ruby/object:Gem::Version
|
309
271
|
version: '0'
|
310
272
|
type: :runtime
|
311
273
|
prerelease: false
|
312
274
|
version_requirements: !ruby/object:Gem::Requirement
|
313
|
-
none: false
|
314
275
|
requirements:
|
315
|
-
- -
|
276
|
+
- - ">="
|
316
277
|
- !ruby/object:Gem::Version
|
317
278
|
version: '0'
|
318
279
|
- !ruby/object:Gem::Dependency
|
319
280
|
name: pry-nav
|
320
281
|
requirement: !ruby/object:Gem::Requirement
|
321
|
-
none: false
|
322
282
|
requirements:
|
323
|
-
- -
|
283
|
+
- - ">="
|
324
284
|
- !ruby/object:Gem::Version
|
325
285
|
version: '0'
|
326
286
|
type: :development
|
327
287
|
prerelease: false
|
328
288
|
version_requirements: !ruby/object:Gem::Requirement
|
329
|
-
none: false
|
330
289
|
requirements:
|
331
|
-
- -
|
290
|
+
- - ">="
|
332
291
|
- !ruby/object:Gem::Version
|
333
292
|
version: '0'
|
334
293
|
- !ruby/object:Gem::Dependency
|
335
294
|
name: rspec
|
336
295
|
requirement: !ruby/object:Gem::Requirement
|
337
|
-
none: false
|
338
296
|
requirements:
|
339
|
-
- - ~>
|
297
|
+
- - "~>"
|
340
298
|
- !ruby/object:Gem::Version
|
341
299
|
version: '3.0'
|
342
300
|
type: :development
|
343
301
|
prerelease: false
|
344
302
|
version_requirements: !ruby/object:Gem::Requirement
|
345
|
-
none: false
|
346
303
|
requirements:
|
347
|
-
- - ~>
|
304
|
+
- - "~>"
|
348
305
|
- !ruby/object:Gem::Version
|
349
306
|
version: '3.0'
|
350
307
|
- !ruby/object:Gem::Dependency
|
351
308
|
name: ffaker
|
352
309
|
requirement: !ruby/object:Gem::Requirement
|
353
|
-
none: false
|
354
310
|
requirements:
|
355
|
-
- -
|
311
|
+
- - ">="
|
356
312
|
- !ruby/object:Gem::Version
|
357
313
|
version: '0'
|
358
314
|
type: :development
|
359
315
|
prerelease: false
|
360
316
|
version_requirements: !ruby/object:Gem::Requirement
|
361
|
-
none: false
|
362
317
|
requirements:
|
363
|
-
- -
|
318
|
+
- - ">="
|
364
319
|
- !ruby/object:Gem::Version
|
365
320
|
version: '0'
|
366
321
|
- !ruby/object:Gem::Dependency
|
367
322
|
name: rake
|
368
323
|
requirement: !ruby/object:Gem::Requirement
|
369
|
-
none: false
|
370
324
|
requirements:
|
371
|
-
- -
|
325
|
+
- - ">="
|
372
326
|
- !ruby/object:Gem::Version
|
373
327
|
version: '0'
|
374
328
|
type: :development
|
375
329
|
prerelease: false
|
376
330
|
version_requirements: !ruby/object:Gem::Requirement
|
377
|
-
none: false
|
378
331
|
requirements:
|
379
|
-
- -
|
332
|
+
- - ">="
|
380
333
|
- !ruby/object:Gem::Version
|
381
334
|
version: '0'
|
382
335
|
description: Engine Yard Core API Ruby Client
|
@@ -388,10 +341,10 @@ executables:
|
|
388
341
|
extensions: []
|
389
342
|
extra_rdoc_files: []
|
390
343
|
files:
|
391
|
-
- .gitignore
|
392
|
-
- .ruby-gemset
|
393
|
-
- .ruby-version
|
394
|
-
- .travis.yml
|
344
|
+
- ".gitignore"
|
345
|
+
- ".ruby-gemset"
|
346
|
+
- ".ruby-version"
|
347
|
+
- ".travis.yml"
|
395
348
|
- CHANGELOG.md
|
396
349
|
- Gemfile
|
397
350
|
- Guardfile
|
@@ -401,6 +354,8 @@ files:
|
|
401
354
|
- bin/ey-core
|
402
355
|
- examples/add_instance.rb
|
403
356
|
- examples/boot_env.rb
|
357
|
+
- examples/console/README.md
|
358
|
+
- examples/console/address.md
|
404
359
|
- examples/stop_env.rb
|
405
360
|
- examples/terminate_instance.rb
|
406
361
|
- ey-core.gemspec
|
@@ -570,6 +525,7 @@ files:
|
|
570
525
|
- lib/ey-core/models/volume.rb
|
571
526
|
- lib/ey-core/request.rb
|
572
527
|
- lib/ey-core/request_failure.rb
|
528
|
+
- lib/ey-core/requests/acknowledge_alert.rb
|
573
529
|
- lib/ey-core/requests/apply_environment_updates.rb
|
574
530
|
- lib/ey-core/requests/apply_server_updates.rb
|
575
531
|
- lib/ey-core/requests/attach_address.rb
|
@@ -745,11 +701,13 @@ files:
|
|
745
701
|
- lib/ey-core/requests/reboot_server.rb
|
746
702
|
- lib/ey-core/requests/request_callback.rb
|
747
703
|
- lib/ey-core/requests/reset_password.rb
|
704
|
+
- lib/ey-core/requests/reset_server_state.rb
|
748
705
|
- lib/ey-core/requests/restart_environment_app_servers.rb
|
749
706
|
- lib/ey-core/requests/run_cluster_application_action.rb
|
750
707
|
- lib/ey-core/requests/run_environment_application_action.rb
|
751
708
|
- lib/ey-core/requests/signup.rb
|
752
709
|
- lib/ey-core/requests/timeout_deployment.rb
|
710
|
+
- lib/ey-core/requests/unassign_environment.rb
|
753
711
|
- lib/ey-core/requests/update_addon.rb
|
754
712
|
- lib/ey-core/requests/update_address.rb
|
755
713
|
- lib/ey-core/requests/update_alert.rb
|
@@ -759,6 +717,7 @@ files:
|
|
759
717
|
- lib/ey-core/requests/update_connector.rb
|
760
718
|
- lib/ey-core/requests/update_environment.rb
|
761
719
|
- lib/ey-core/requests/update_membership.rb
|
720
|
+
- lib/ey-core/requests/update_provider_location.rb
|
762
721
|
- lib/ey-core/requests/update_server.rb
|
763
722
|
- lib/ey-core/requests/update_ssl_certificate.rb
|
764
723
|
- lib/ey-core/requests/update_untracked_server.rb
|
@@ -776,6 +735,7 @@ files:
|
|
776
735
|
- lib/ey-core/test_helpers/rspec.rb
|
777
736
|
- lib/ey-core/token_authentication.rb
|
778
737
|
- lib/ey-core/version.rb
|
738
|
+
- spec/account_spec.rb
|
779
739
|
- spec/account_trial_spec.rb
|
780
740
|
- spec/accounts_referrals_spec.rb
|
781
741
|
- spec/accounts_spec.rb
|
@@ -841,30 +801,30 @@ files:
|
|
841
801
|
homepage: ''
|
842
802
|
licenses:
|
843
803
|
- MIT
|
804
|
+
metadata: {}
|
844
805
|
post_install_message:
|
845
806
|
rdoc_options: []
|
846
807
|
require_paths:
|
847
808
|
- lib
|
848
809
|
required_ruby_version: !ruby/object:Gem::Requirement
|
849
|
-
none: false
|
850
810
|
requirements:
|
851
|
-
- -
|
811
|
+
- - ">="
|
852
812
|
- !ruby/object:Gem::Version
|
853
813
|
version: '0'
|
854
814
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
855
|
-
none: false
|
856
815
|
requirements:
|
857
|
-
- -
|
816
|
+
- - ">="
|
858
817
|
- !ruby/object:Gem::Version
|
859
818
|
version: '0'
|
860
819
|
requirements: []
|
861
820
|
rubyforge_project:
|
862
|
-
rubygems_version:
|
821
|
+
rubygems_version: 2.5.1
|
863
822
|
signing_key:
|
864
|
-
specification_version:
|
823
|
+
specification_version: 4
|
865
824
|
summary: Client library providing real and mock functionality for accessing Engine
|
866
825
|
Yard's Core API
|
867
826
|
test_files:
|
827
|
+
- spec/account_spec.rb
|
868
828
|
- spec/account_trial_spec.rb
|
869
829
|
- spec/accounts_referrals_spec.rb
|
870
830
|
- spec/accounts_spec.rb
|
@@ -927,4 +887,3 @@ test_files:
|
|
927
887
|
- spec/tokens_spec.rb
|
928
888
|
- spec/untracked_servers_spec.rb
|
929
889
|
- spec/users_spec.rb
|
930
|
-
has_rdoc:
|