ey-core 3.4.0 → 3.6.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 +5 -5
- data/.ruby-version +1 -1
- data/.travis.yml +1 -0
- data/CHANGELOG.md +27 -5
- data/Gemfile +0 -1
- data/README.md +65 -8
- data/Rakefile +4 -1
- data/ey-core.gemspec +9 -5
- data/features/accounts.feature +13 -0
- data/features/applications.feature +29 -0
- data/features/current_user.feature +14 -0
- data/features/docker_registry_credentials.feature +21 -0
- data/features/environment_variables.feature +54 -0
- data/features/environments.feature +30 -0
- data/features/init.feature +6 -0
- data/features/login.feature +6 -0
- data/features/scp.feature +6 -0
- data/features/step_definitions/accounts_steps.rb +37 -0
- data/features/step_definitions/applications_steps.rb +39 -0
- data/features/step_definitions/current_user_steps.rb +11 -0
- data/features/step_definitions/deprecated_command_steps.rb +3 -0
- data/features/step_definitions/docker_registry_credentials_steps.rb +3 -0
- data/features/step_definitions/environment_variables_steps.rb +51 -0
- data/features/step_definitions/environments_steps.rb +52 -0
- data/features/step_definitions/version_steps.rb +3 -0
- data/features/support/account_helpers.rb +89 -0
- data/features/support/app_helpers.rb +19 -0
- data/features/support/aruba.rb +1 -0
- data/features/support/boilerplate.rb +1 -0
- data/features/support/client_helpers.rb +36 -0
- data/features/support/config_file_helpers.rb +42 -0
- data/features/support/core.rb +19 -0
- data/features/support/deployment_helpers.rb +19 -0
- data/features/support/env.rb +40 -0
- data/features/support/environment_helpers.rb +23 -0
- data/features/support/environment_variable_helpers.rb +20 -0
- data/features/support/fake_kernel.rb +23 -0
- data/features/support/io.rb +5 -0
- data/features/support/mock_api.rb +20 -0
- data/features/support/output_helpers.rb +7 -0
- data/features/support/resource_helpers.rb +201 -0
- data/features/support/server_helpers.rb +27 -0
- data/features/version.feature +8 -0
- data/features/whoami.feature +14 -0
- data/lib/ey-core/cli/deploy.rb +4 -4
- data/lib/ey-core/cli/docker_registry_login.rb +29 -0
- data/lib/ey-core/cli/environment_variables.rb +71 -0
- data/lib/ey-core/cli/helpers/core.rb +29 -0
- data/lib/ey-core/cli/main.rb +5 -4
- data/lib/ey-core/cli/servers.rb +35 -17
- data/lib/ey-core/cli/ssh.rb +1 -1
- data/lib/ey-core/client.rb +35 -0
- data/lib/ey-core/client/mock.rb +5 -0
- data/lib/ey-core/collections/auto_scaling_alarms.rb +8 -0
- data/lib/ey-core/collections/auto_scaling_groups.rb +8 -0
- data/lib/ey-core/collections/auto_scaling_policies.rb +33 -0
- data/lib/ey-core/collections/container_clusters.rb +9 -0
- data/lib/ey-core/collections/container_service_deployments.rb +17 -0
- data/lib/ey-core/collections/environment_variables.rb +8 -0
- data/lib/ey-core/collections/servers.rb +4 -0
- data/lib/ey-core/models/account.rb +10 -0
- data/lib/ey-core/models/address.rb +2 -0
- data/lib/ey-core/models/application.rb +1 -0
- data/lib/ey-core/models/auto_scaling_alarm.rb +54 -0
- data/lib/ey-core/models/auto_scaling_group.rb +75 -0
- data/lib/ey-core/models/base_auto_scaling_policy.rb +61 -0
- data/lib/ey-core/models/container_service_deployment.rb +17 -0
- data/lib/ey-core/models/environment.rb +60 -47
- data/lib/ey-core/models/environment_variable.rb +29 -0
- data/lib/ey-core/models/request.rb +6 -0
- data/lib/ey-core/models/server.rb +2 -0
- data/lib/ey-core/models/simple_auto_scaling_policy.rb +24 -0
- data/lib/ey-core/models/step_auto_scaling_policy.rb +24 -0
- data/lib/ey-core/models/target_auto_scaling_policy.rb +24 -0
- data/lib/ey-core/requests/boot_environment.rb +1 -1
- data/lib/ey-core/requests/create_account.rb +5 -0
- data/lib/ey-core/requests/create_address.rb +1 -0
- data/lib/ey-core/requests/create_application.rb +8 -7
- data/lib/ey-core/requests/create_auto_scaling_alarm.rb +69 -0
- data/lib/ey-core/requests/create_auto_scaling_group.rb +62 -0
- data/lib/ey-core/requests/create_auto_scaling_policy.rb +68 -0
- data/lib/ey-core/requests/create_environment.rb +2 -0
- data/lib/ey-core/requests/create_environment_variable.rb +39 -0
- data/lib/ey-core/requests/create_user.rb +8 -6
- data/lib/ey-core/requests/destroy_auto_scaling_alarm.rb +49 -0
- data/lib/ey-core/requests/destroy_auto_scaling_group.rb +44 -0
- data/lib/ey-core/requests/destroy_auto_scaling_policy.rb +49 -0
- data/lib/ey-core/requests/discover_container_service_deployments.rb +71 -0
- data/lib/ey-core/requests/discover_server.rb +60 -0
- data/lib/ey-core/requests/get_applications.rb +1 -1
- data/lib/ey-core/requests/get_auto_scaling_alarm.rb +27 -0
- data/lib/ey-core/requests/get_auto_scaling_alarms.rb +34 -0
- data/lib/ey-core/requests/get_auto_scaling_group.rb +21 -0
- data/lib/ey-core/requests/get_auto_scaling_groups.rb +29 -0
- data/lib/ey-core/requests/get_auto_scaling_policies.rb +46 -0
- data/lib/ey-core/requests/get_auto_scaling_policy.rb +27 -0
- data/lib/ey-core/requests/get_deployments.rb +1 -1
- data/lib/ey-core/requests/get_environment_variable.rb +19 -0
- data/lib/ey-core/requests/get_environment_variables.rb +29 -0
- data/lib/ey-core/requests/get_environments.rb +1 -1
- data/lib/ey-core/requests/get_ssl_certificate.rb +1 -1
- data/lib/ey-core/requests/retrieve_docker_registry_credentials.rb +24 -0
- data/lib/ey-core/requests/update_auto_scaling_alarm.rb +45 -0
- data/lib/ey-core/requests/update_auto_scaling_group.rb +45 -0
- data/lib/ey-core/requests/update_auto_scaling_policy.rb +46 -0
- data/lib/ey-core/requests/update_environment_variable.rb +25 -0
- data/lib/ey-core/test_helpers.rb +2 -0
- data/lib/ey-core/test_helpers/auto_scaling_helpers.rb +35 -0
- data/lib/ey-core/version.rb +1 -1
- data/spec/addresses_spec.rb +2 -1
- data/spec/auto_scaling_alarms_spec.rb +40 -0
- data/spec/auto_scaling_groups_spec.rb +28 -0
- data/spec/auto_scaling_policies_spec.rb +94 -0
- data/spec/docker_registry_credentials_spec.rb +16 -0
- data/spec/environments_spec.rb +18 -0
- data/spec/servers_spec.rb +8 -0
- data/spec/spec_helper.rb +7 -0
- data/spec/support/core.rb +0 -2
- metadata +192 -18
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
Given %(each of my accounts has several applications) do
|
|
2
|
+
known_accounts.each do |account|
|
|
3
|
+
known_apps.push(
|
|
4
|
+
create_application(account: account, name: "#{account.name}_1")
|
|
5
|
+
)
|
|
6
|
+
|
|
7
|
+
known_apps.push(
|
|
8
|
+
create_application(account: account, name: "#{account.name}_2")
|
|
9
|
+
)
|
|
10
|
+
end
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
Given(/^I have the following applications:$/) do |applications|
|
|
14
|
+
applications.hashes.each do |application_hash|
|
|
15
|
+
account = known_accounts.find { |acc| acc.name == application_hash['Account Name'] }
|
|
16
|
+
known_apps.push(create_application(account: account, name: application_hash['Application Name']))
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
Then %(I see the name and ID for all of my applications) do
|
|
21
|
+
known_apps.each do |app|
|
|
22
|
+
expect(output_text).to match(/#{Regexp.escape(app.id.to_s)}\s+\|\s+#{Regexp.escape(app.name)}/)
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
Then %(I see the applications in the one account) do
|
|
27
|
+
account_named('one').applications.all.each do |app|
|
|
28
|
+
expect(output_text).to match(/#{Regexp.escape(app.id.to_s)}\s+\|\s+#{Regexp.escape(app.name)}/)
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
Then %(I do not see applications from other accounts) do
|
|
33
|
+
two = account_named('two').applications.all.to_a
|
|
34
|
+
three = account_named('three').applications.all.to_a
|
|
35
|
+
|
|
36
|
+
(two + three).each do |app|
|
|
37
|
+
expect(output_text).not_to match(/#{Regexp.escape(app.id.to_s)}\s+\|\s+#{Regexp.escape(app.name)}/)
|
|
38
|
+
end
|
|
39
|
+
end
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
Then %(I should see my user ID) do
|
|
2
|
+
expect(output_text).to match(/#{Regexp.escape(current_user.id)}/)
|
|
3
|
+
end
|
|
4
|
+
|
|
5
|
+
Then %(I should see my email address) do
|
|
6
|
+
expect(output_text).to match(/#{Regexp.escape(current_user.email)}/)
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
Then %(I should see my name) do
|
|
10
|
+
expect(output_text).to match(/#{Regexp.escape(current_user.name)}/)
|
|
11
|
+
end
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
Given(/^I have the following environment variables:$/) do |variables|
|
|
2
|
+
variables.hashes.each do |variable_hash|
|
|
3
|
+
application = known_apps.find { |app| app.name == variable_hash['Application Name'] }
|
|
4
|
+
environment = known_environments.find { |env| env.name == variable_hash['Environment Name'] }
|
|
5
|
+
known_environment_variables.push(
|
|
6
|
+
create_environment_variable(
|
|
7
|
+
application: application,
|
|
8
|
+
environment: environment,
|
|
9
|
+
environment_variable: {
|
|
10
|
+
name: variable_hash['Name'],
|
|
11
|
+
value: variable_hash['Value'],
|
|
12
|
+
sensitive: variable_hash['Sensitive']
|
|
13
|
+
}
|
|
14
|
+
)
|
|
15
|
+
)
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
Then(/^I see the name and value for all of my environments as well as name of associated environment and application$/) do
|
|
20
|
+
known_environment_variables.each do |environment_variable|
|
|
21
|
+
expect(output_text).to match(match_environment_variable_regexp(environment_variable))
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
Then(/^I see the environment variables associated with `(\w+)` environment$/) do |environment_name|
|
|
26
|
+
known_environment_variables.each do |environment_variable|
|
|
27
|
+
next unless environment_variable.environment_name == environment_name
|
|
28
|
+
expect(output_text).to match(match_environment_variable_regexp(environment_variable))
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
Then(/^I do not see environment variables associated with any other environments different from `(\w+)`$/) do |environment_name|
|
|
33
|
+
known_environment_variables.each do |environment_variable|
|
|
34
|
+
next if environment_variable.environment_name == environment_name
|
|
35
|
+
expect(output_text).not_to match(match_environment_variable_regexp(environment_variable))
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
Then(/^I see the environment variables associated with `(\w+)` application$/) do |application_name|
|
|
40
|
+
known_environment_variables.each do |environment_variable|
|
|
41
|
+
next unless environment_variable.application_name == application_name
|
|
42
|
+
expect(output_text).to match(match_environment_variable_regexp(environment_variable))
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
Then(/^I do not see environment variables associated with any other applications different from `(\w+)`$/) do |application_name|
|
|
47
|
+
known_environment_variables.each do |environment_variable|
|
|
48
|
+
next if environment_variable.application_name == application_name
|
|
49
|
+
expect(output_text).not_to match(match_environment_variable_regexp(environment_variable))
|
|
50
|
+
end
|
|
51
|
+
end
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
Given %(each of my applications has an environment) do
|
|
2
|
+
known_accounts.each do |account|
|
|
3
|
+
account.applications.each do |app|
|
|
4
|
+
known_environments.push(
|
|
5
|
+
create_environment(
|
|
6
|
+
account: account,
|
|
7
|
+
application: app,
|
|
8
|
+
environment: {
|
|
9
|
+
name: "#{app.name}_env"
|
|
10
|
+
}
|
|
11
|
+
)
|
|
12
|
+
)
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
Given(/^I have the following environments:$/) do |environments|
|
|
18
|
+
environments.hashes.each do |environment_hash|
|
|
19
|
+
application = known_apps.find { |app| app.name == environment_hash['Application Name'] }
|
|
20
|
+
known_environments.push(
|
|
21
|
+
create_environment(
|
|
22
|
+
account: application.account,
|
|
23
|
+
application: application,
|
|
24
|
+
environment: {
|
|
25
|
+
name: environment_hash['Environment Name']
|
|
26
|
+
}
|
|
27
|
+
)
|
|
28
|
+
)
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
Then %(I see the name and ID for all of my environments) do
|
|
33
|
+
known_environments.each do |environment|
|
|
34
|
+
expect(output_text).to match(/#{Regexp.escape(environment.id.to_s)}\s+\|\s+#{Regexp.escape(environment.name)}/)
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
Then %(I see the environments in the one account) do
|
|
39
|
+
account_named('one').environments.all.each do |environment|
|
|
40
|
+
expect(output_text).to match(/#{Regexp.escape(environment.id.to_s)}\s+\|\s+#{Regexp.escape(environment.name)}/)
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
Then %(I do not see environments from other accounts) do
|
|
45
|
+
two = account_named('two').environments.all.to_a
|
|
46
|
+
three = account_named('three').environments.all.to_a
|
|
47
|
+
|
|
48
|
+
(two + three).each do |environment|
|
|
49
|
+
expect(output_text).not_to match(/#{Regexp.escape(environment.id.to_s)}\s+\|\s+#{Regexp.escape(environment.name)}/)
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
end
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
module AccountHelpers
|
|
2
|
+
def account_named(name)
|
|
3
|
+
client.accounts.first(name: name)
|
|
4
|
+
end
|
|
5
|
+
|
|
6
|
+
def known_accounts
|
|
7
|
+
begin
|
|
8
|
+
recall_fact(:known_accounts)
|
|
9
|
+
rescue
|
|
10
|
+
memorize_fact(:known_accounts, [])
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def first_account
|
|
15
|
+
known_accounts.first.reload
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def last_account
|
|
19
|
+
known_accounts.last.reload
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
def create_account(options={})
|
|
23
|
+
creator = options[:creator] || create_client
|
|
24
|
+
client = options[:client]
|
|
25
|
+
|
|
26
|
+
attributes = options[:account] || {}
|
|
27
|
+
attributes[:type] ||= "beta" # get around awsm billing requirements for tests
|
|
28
|
+
attributes[:name] ||= SecureRandom.hex(6)
|
|
29
|
+
|
|
30
|
+
if client
|
|
31
|
+
attributes[:owner] ||= begin
|
|
32
|
+
client.users.current
|
|
33
|
+
rescue Ey::Core::Response::NotFound
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
attributes[:owner] ||= create_user(client: client)
|
|
37
|
+
|
|
38
|
+
created_account = (client || creator).accounts.create!(attributes)
|
|
39
|
+
|
|
40
|
+
if client
|
|
41
|
+
client.accounts.get!(created_account.identity)
|
|
42
|
+
else
|
|
43
|
+
created_account
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
def create_user(options={})
|
|
48
|
+
creator = options[:creator] || create_client
|
|
49
|
+
client = options[:client]
|
|
50
|
+
|
|
51
|
+
attributes = options[:user] || {}
|
|
52
|
+
attributes[:name] ||= Faker::Name.name
|
|
53
|
+
attributes[:email] ||= Faker::Internet.email
|
|
54
|
+
|
|
55
|
+
created_user = creator.users.create!(attributes)
|
|
56
|
+
|
|
57
|
+
if client
|
|
58
|
+
client.users.get!(created_user.identity)
|
|
59
|
+
else
|
|
60
|
+
created_user
|
|
61
|
+
end
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
def create_provider(options={})
|
|
65
|
+
account = options[:account] || create_account(options)
|
|
66
|
+
|
|
67
|
+
attributes = options[:provider] || {}
|
|
68
|
+
attributes[:type] ||= :aws
|
|
69
|
+
attributes[:provisioned_id] ||= SecureRandom.hex(8)
|
|
70
|
+
attributes[:credentials] ||= case attributes[:type]
|
|
71
|
+
when :aws then
|
|
72
|
+
{
|
|
73
|
+
:instance_aws_secret_id => SecureRandom.hex(6),
|
|
74
|
+
:instance_aws_secret_key => SecureRandom.hex(6),
|
|
75
|
+
:aws_secret_id => SecureRandom.hex(6),
|
|
76
|
+
:aws_secret_key => SecureRandom.hex(6),
|
|
77
|
+
:aws_login => Faker::Internet.email,
|
|
78
|
+
:aws_pass => SecureRandom.hex(6),
|
|
79
|
+
}
|
|
80
|
+
when :azure then
|
|
81
|
+
{
|
|
82
|
+
}
|
|
83
|
+
end
|
|
84
|
+
|
|
85
|
+
account.providers.create!(attributes).resource!
|
|
86
|
+
end
|
|
87
|
+
end
|
|
88
|
+
|
|
89
|
+
World(AccountHelpers)
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
module AppHelpers
|
|
2
|
+
def known_apps
|
|
3
|
+
begin
|
|
4
|
+
recall_fact(:known_apps)
|
|
5
|
+
rescue
|
|
6
|
+
memorize_fact(:known_apps, [])
|
|
7
|
+
end
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def first_app
|
|
11
|
+
known_apps.first.reload
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def last_app
|
|
15
|
+
known_apps.last.reload
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
World(AppHelpers)
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
require 'aruba/cucumber'
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
require 'faker'
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
module ClientHelpers
|
|
2
|
+
def create_client(attributes={})
|
|
3
|
+
token = if (user = attributes.delete(:user)) && Ey::Core::Client.mocking?
|
|
4
|
+
core = Ey::Core::Client::Mock.data.values.find { |c| c[:users][user.identity] }
|
|
5
|
+
core[:users][user.identity]["token"]
|
|
6
|
+
end
|
|
7
|
+
token ||= begin
|
|
8
|
+
token_dotfile = YAML.load_file(File.expand_path("/../../../.token"), __FILE__) rescue {}
|
|
9
|
+
ENV["CORE_TOKEN"] || token_dotfile[ENV["CORE_URL"]] || "a4bf6558da8c1051536d1596b8931ebd346aff0b"
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
merged_attributes = attributes.merge(token: token, cache: true)
|
|
13
|
+
merged_attributes.merge!(logger: Logger.new(STDOUT)) if ENV['VERBOSE']
|
|
14
|
+
|
|
15
|
+
Ey::Core::Client.new(merged_attributes)
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def create_server_client(server, attributes={})
|
|
19
|
+
unless core = Ey::Core::Client::Mock.data.values.find { |data| data[:servers][server.identity] }
|
|
20
|
+
raise "Failed to find server in mock data: #{server}"
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
token = core[:servers][server.identity]["token"]
|
|
24
|
+
|
|
25
|
+
merged_attributes = attributes.merge(token: token, cache: true)
|
|
26
|
+
merged_attributes.merge!(logger: Logger.new(STDOUT)) if ENV['VERBOSE']
|
|
27
|
+
|
|
28
|
+
Ey::Core::Client.new(merged_attributes)
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
def create_unauthenticated_client
|
|
32
|
+
Ey::Core::Client.new(token: nil)
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
World(ClientHelpers)
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
require 'yaml'
|
|
2
|
+
|
|
3
|
+
module ConfigFileHelpers
|
|
4
|
+
def config_file_location
|
|
5
|
+
File.expand_path(File.join(aruba.current_directory, '.ey-core'))
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
def write_config_file(hash = {})
|
|
9
|
+
c = File.open(config_file_location, 'w')
|
|
10
|
+
c.write(hash.to_yaml)
|
|
11
|
+
c.close
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def read_config_file
|
|
15
|
+
begin
|
|
16
|
+
YAML.load_file(File.read(config_file_location))
|
|
17
|
+
rescue
|
|
18
|
+
{}
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
def nuke_config_file
|
|
23
|
+
FileUtils.rm_f(config_file_location) if File.exist?(config_file_location)
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
def add_config_option(hash = {})
|
|
27
|
+
current = read_config_file
|
|
28
|
+
write_config_file(current.merge(hash))
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
def remove_config_option(key)
|
|
32
|
+
current = read_config_file
|
|
33
|
+
current.delete(key)
|
|
34
|
+
write_config_file(current)
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
World(ConfigFileHelpers)
|
|
39
|
+
|
|
40
|
+
After do
|
|
41
|
+
nuke_config_file
|
|
42
|
+
end
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
module CoreHelpers
|
|
2
|
+
def client
|
|
3
|
+
begin
|
|
4
|
+
recall_fact(:client)
|
|
5
|
+
rescue
|
|
6
|
+
memorize_fact(:client, create_client)
|
|
7
|
+
end
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def current_user
|
|
11
|
+
client.users.current
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def current_user_hash
|
|
15
|
+
client.current_user
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
World(CoreHelpers)
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
module DeploymentHelpers
|
|
2
|
+
def known_deployments
|
|
3
|
+
begin
|
|
4
|
+
recall_fact(:known_deployments)
|
|
5
|
+
rescue
|
|
6
|
+
memorize_fact(:known_deployments, [])
|
|
7
|
+
end
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def first_deployment
|
|
11
|
+
known_deployments.first.reload
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def last_deployment
|
|
15
|
+
known_deployments.last.reload
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
World(DeploymentHelpers)
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
#require 'simplecov'
|
|
2
|
+
#SimpleCov.coverage_dir 'coverage/features'
|
|
3
|
+
#SimpleCov.minimum_coverage 95
|
|
4
|
+
#SimpleCov.start do
|
|
5
|
+
#add_filter '/spec/'
|
|
6
|
+
#add_filter '/features/'
|
|
7
|
+
#add_filter '/mock/'
|
|
8
|
+
#add_group 'Libraries', 'lib'
|
|
9
|
+
#add_group 'CLI', 'lib/ey-core/cli/'
|
|
10
|
+
#add_group 'CLI Helpers', 'lib/ey-core/cli/helpers'
|
|
11
|
+
#end
|
|
12
|
+
|
|
13
|
+
require 'aruba/cucumber'
|
|
14
|
+
require 'factis/cucumber'
|
|
15
|
+
require 'ey-core'
|
|
16
|
+
require 'ey-core/version'
|
|
17
|
+
require 'ey-core/cli/main'
|
|
18
|
+
|
|
19
|
+
EXE_DIR = File.expand_path(File.join(File.dirname(__FILE__), '/../../exe'))
|
|
20
|
+
LIB_DIR = File.join(File.expand_path(File.dirname(__FILE__)),'..','..','lib')
|
|
21
|
+
|
|
22
|
+
Aruba.configure do |config|
|
|
23
|
+
config.command_search_paths = config.command_search_paths << EXE_DIR
|
|
24
|
+
config.home_directory = File.join(config.root_directory, config.working_directory)
|
|
25
|
+
config.command_launcher = :in_process
|
|
26
|
+
config.main_class = Ey::Core::Cli::Main
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
Before do
|
|
30
|
+
# Using "announce" causes massive warnings on 1.9.2
|
|
31
|
+
@puts = true
|
|
32
|
+
@original_rubylib = ENV['RUBYLIB']
|
|
33
|
+
ENV['RUBYLIB'] = LIB_DIR + File::PATH_SEPARATOR + ENV['RUBYLIB'].to_s
|
|
34
|
+
#ENV['CORE_URL'] ||= "http://api-development.localdev.engineyard.com:9292"
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
After do
|
|
38
|
+
ENV['RUBYLIB'] = @original_rubylib
|
|
39
|
+
#ENV.delete('CORE_URL')
|
|
40
|
+
end
|