engineyard-metadata 0.1.2 → 0.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.
@@ -1,5 +1,5 @@
1
1
  module EY
2
- module Metadata
2
+ class Metadata
3
3
  # This gets pulled in when you're running directly on a cloud instance.
4
4
  module Insider
5
5
  DELEGATED_TO_AMAZON_EC2_API = %w{
@@ -7,7 +7,7 @@ module EY
7
7
  present_security_group
8
8
  }
9
9
 
10
- DELEGATED_TO_CHEF_DNA = KEYS - DELEGATED_TO_AMAZON_EC2_API
10
+ DELEGATED_TO_CHEF_DNA = METHODS - DELEGATED_TO_AMAZON_EC2_API
11
11
 
12
12
  DELEGATED_TO_AMAZON_EC2_API.each do |name|
13
13
  define_method name do
@@ -20,12 +20,7 @@ module EY
20
20
  chef_dna.send name
21
21
  end
22
22
  end
23
-
24
- def clear
25
- @chef_dna = nil
26
- @amazon_ec2_api = nil
27
- end
28
-
23
+
29
24
  # You can't get the list of environment names while you're on the instances themselves.
30
25
  def environment_names
31
26
  raise CannotGetFromHere
@@ -40,6 +35,17 @@ module EY
40
35
  def amazon_ec2_api
41
36
  @amazon_ec2_api ||= AmazonEc2Api.new
42
37
  end
38
+
39
+ def app_name
40
+ return @app_name if @app_name.is_a? String
41
+ if ENV['EY_APP_NAME']
42
+ @app_name = ENV['EY_APP_NAME']
43
+ elsif Dir.pwd =~ %r{/data/([^/]+)/current} or Dir.pwd =~ %r{/data/([^/]+)/releases}
44
+ @app_name = $1
45
+ end
46
+ raise RuntimeError, "[engineyard-metadata gem] Please set EY.metadata.app_name= or set ENV['EY_APP_NAME']" unless @app_name.to_s.strip.length > 0
47
+ @app_name
48
+ end
43
49
  end
44
50
  end
45
51
  end
@@ -1,11 +1,17 @@
1
+ require 'singleton'
2
+
1
3
  module EY
2
4
  # All methods are defined on this module. For example, you're supposed to say
3
5
  #
4
6
  # EY::Metadata.database_username
5
7
  #
6
8
  # instead of trying to call it from a particular adapter.
7
- module Metadata
8
- KEYS = %w{
9
+ class Metadata
10
+ include Singleton
11
+
12
+ attr_writer :app_name
13
+
14
+ METHODS = %w{
9
15
  app_master
10
16
  app_name
11
17
  app_servers
@@ -34,7 +40,17 @@ module EY
34
40
  ssh_username
35
41
  stack_name
36
42
  utilities
37
- } unless defined?(KEYS)
43
+ } unless defined?(METHODS)
44
+
45
+ # The path to the current deploy on app servers.
46
+ def current_path
47
+ "/data/#{app_name}/current"
48
+ end
49
+
50
+ # The path to the shared directory on app servers.
51
+ def shared_path
52
+ "/data/#{app_name}/shared"
53
+ end
38
54
 
39
55
  # This gets raised when you can't get a particular piece of metadata from the execution environment you're in.
40
56
  class CannotGetFromHere < RuntimeError
@@ -48,13 +64,14 @@ module EY
48
64
  autoload :AmazonEc2Api, 'engineyard-metadata/amazon_ec2_api'
49
65
  autoload :EngineYardCloudApi, 'engineyard-metadata/engine_yard_cloud_api'
50
66
 
51
- def self.reload
67
+ def reload
52
68
  if File.directory? '/var/log/engineyard'
53
- extend Insider
69
+ Metadata.send :include, Insider
54
70
  else
55
- extend Outsider
71
+ Metadata.send :include, Outsider
56
72
  end
57
73
  end
58
- reload
59
74
  end
60
75
  end
76
+
77
+ EY.metadata.reload
@@ -2,13 +2,12 @@ require 'etc'
2
2
  require 'yaml'
3
3
 
4
4
  module EY
5
- module Metadata
5
+ class Metadata
6
6
  # This gets pulled in when you're running from your developer machine (i.e., not on a cloud instance).
7
7
  module Outsider
8
- LOCALLY_DETERMINED = %w{ environment_name repository_uri }
9
- UNGETTABLE = KEYS.grep(/present/) + KEYS.grep(/password/) + KEYS.grep(/mysql/)
8
+ UNGETTABLE = METHODS.grep(/present/) + METHODS.grep(/password/) + METHODS.grep(/mysql/)
10
9
 
11
- GETTABLE = KEYS - LOCALLY_DETERMINED - UNGETTABLE
10
+ GETTABLE = METHODS - UNGETTABLE - %w{ environment_name }
12
11
 
13
12
  UNGETTABLE.each do |name|
14
13
  define_method name do
@@ -26,79 +25,64 @@ module EY
26
25
  File.join File.expand_path("~#{Etc.getpwuid.name}"), '.eyrc'
27
26
  end
28
27
 
29
- def git_config_path
30
- File.join Dir.pwd, '.git', 'config'
28
+ def preset_app_name?
29
+ @app_name.is_a?(String) or ENV['EY_APP_NAME']
31
30
  end
32
31
 
33
- def clear
34
- @repository_uri = nil
35
- @environment_name = nil
36
- @ey_cloud_token = nil
37
- @engine_yard_cloud_api = nil
32
+ def app_name
33
+ return @app_name if @app_name.is_a?(String)
34
+ if ENV['EY_APP_NAME']
35
+ @app_name = ENV['EY_APP_NAME']
36
+ elsif engine_yard_cloud_api.possible_to_detect_app_from_environment_name?
37
+ @app_name = engine_yard_cloud_api.app_name
38
+ elsif engine_yard_cloud_api.possible_to_detect_app_from_git_config?
39
+ @app_name = engine_yard_cloud_api.app_name
40
+ end
41
+ @app_name
38
42
  end
39
43
 
44
+ def preset_environment_name?
45
+ @environment_name.is_a?(String) or ENV['EY_ENVIRONMENT_NAME']
46
+ end
47
+
48
+ # Sets the environment you want, in case it can't be detected from ENV['EY_ENVIRONMENT_NAME'] or .git/config
40
49
  def environment_name=(str)
41
- # clear this out in case it was inferred
42
- @repository_uri = nil
43
- # clear this out in case we're looking up a new environment
44
- @engine_yard_cloud_api = nil
45
50
  @environment_name = str
46
51
  end
47
52
 
48
53
  # The name of the EngineYard AppCloud environment.
49
54
  def environment_name
50
55
  return @environment_name if @environment_name.is_a? String
51
- @environment_name = if engine_yard_cloud_api.data_loaded?
52
- # this happens when we don't get any help from the user and the environment has been found based on the repository uri
53
- engine_yard_cloud_api.environment_name
54
- elsif ENV['EY_ENVIRONMENT_NAME']
55
- ENV['EY_ENVIRONMENT_NAME']
56
+ if ENV['EY_ENVIRONMENT_NAME']
57
+ @environment_name = ENV['EY_ENVIRONMENT_NAME']
58
+ elsif engine_yard_cloud_api.possible_to_detect_environment_from_git_config?
59
+ @environment_name = engine_yard_cloud_api.environment_name
56
60
  end
57
- raise RuntimeError, "[engineyard-metadata gem] You need to run this from the application repo, set EY::Metadata.environment_name= or set ENV['EY_ENVIRONMENT_NAME']" unless @environment_name.to_s.strip.length > 0
61
+ raise RuntimeError, "[engineyard-metadata gem] You need to run this from the application repo, set EY.metadata.environment_name= or set ENV['EY_ENVIRONMENT_NAME']" unless @environment_name.to_s.strip.length > 0
58
62
  @environment_name
59
63
  end
60
64
 
65
+ # Sets the (secret) cloud token, in case it's not in ENV['EY_CLOUD_TOKEN'] or ~/.eyrc
61
66
  def ey_cloud_token=(str)
62
- # clear this out in case it was inferred
63
- @repository_uri = nil
64
- # clear this out in case we're looking up a new environment
65
- @engine_yard_cloud_api = nil
67
+ @engine_yard_cloud_api = nil # because it depends on cloud token
66
68
  @ey_cloud_token = str
67
69
  end
68
-
70
+
69
71
  # The secret API token to access https://cloud.engineyard.com
70
72
  def ey_cloud_token
71
73
  return @ey_cloud_token if @ey_cloud_token.is_a? String
72
- @ey_cloud_token = if ENV['EY_CLOUD_TOKEN']
73
- ENV['EY_CLOUD_TOKEN']
74
+ if ENV['EY_CLOUD_TOKEN']
75
+ @ey_cloud_token = ENV['EY_CLOUD_TOKEN']
74
76
  elsif File.exist? eyrc_path
75
- YAML.load(File.read(eyrc_path))['api_token']
77
+ @ey_cloud_token = YAML.load(File.read(eyrc_path))['api_token']
76
78
  end
77
- raise RuntimeError, "[engineyard-metadata gem] You need to have #{eyrc_path}, set EY::Metadata.ey_cloud_token= or set ENV['EY_CLOUD_TOKEN']" unless @ey_cloud_token.to_s.strip.length > 0
79
+ raise RuntimeError, "[engineyard-metadata gem] You need to have #{eyrc_path}, set EY.metadata.ey_cloud_token= or set ENV['EY_CLOUD_TOKEN']" unless @ey_cloud_token.to_s.strip.length > 0
78
80
  @ey_cloud_token
79
81
  end
80
-
81
- # The URL that EngineYard has on file for your application.
82
- #
83
- # There's no setter for this because you should really use EY::Metadata.environment_name= or ENV['EY_ENVIRONMENT_NAME']
84
- def repository_uri
85
- return @repository_uri if @repository_uri.is_a? String
86
- @repository_uri = if engine_yard_cloud_api.data_loaded?
87
- engine_yard_cloud_api.repository_uri
88
- elsif ENV['EY_REPOSITORY_URI']
89
- ENV['EY_REPOSITORY_URI']
90
- elsif File.exist? git_config_path
91
- git_config = File.read git_config_path
92
- git_config =~ /^\[remote.*?\burl = (.*?)\n/m
93
- $1
94
- end
95
- raise RuntimeError, "[engineyard-metadata gem] Please set EY::Metadata.environment_name= or set ENV['EY_ENVIRONMENT_NAME']" unless @repository_uri.to_s.strip.length > 0
96
- @repository_uri
97
- end
98
82
 
99
83
  # An adapter that reads from the public EngineYard Cloud API (https://cloud.engineyard.com)
100
84
  def engine_yard_cloud_api
101
- @engine_yard_cloud_api ||= EngineYardCloudApi.new
85
+ @engine_yard_cloud_api ||= EngineYardCloudApi.new ey_cloud_token
102
86
  end
103
87
  end
104
88
  end
@@ -1,5 +1,5 @@
1
1
  module EY
2
- module Metadata
2
+ class Metadata
3
3
  module SshAliasHelper
4
4
  # Aliases like 'my_env-app_master' or 'my_env-utilities-5' that go in .ssh/config
5
5
  #
@@ -2,181 +2,177 @@ require 'spec_helper'
2
2
 
3
3
  shared_examples_for "it does in all execution environments" do
4
4
  it 'get the database username' do
5
- EY::Metadata.database_username.should == 'FAKE_SSH_USERNAME'
5
+ EY.metadata.database_username.should == 'deploy'
6
6
  end
7
7
 
8
8
  it 'get the database name' do
9
- EY::Metadata.database_name.should == 'FAKE_APP_NAME'
9
+ EY.metadata.database_name.should == 'cm1_certified_blue'
10
10
  end
11
11
 
12
12
  it 'get the database host' do
13
- EY::Metadata.database_host.should == 'FAKE_DB_MASTER_PUBLIC_HOSTNAME'
13
+ EY.metadata.database_host.should == 'ec2-67-202-19-255.compute-1.amazonaws.com'
14
14
  end
15
15
 
16
16
  it 'get the ssh username' do
17
- EY::Metadata.ssh_username.should == 'FAKE_SSH_USERNAME'
17
+ EY.metadata.ssh_username.should == 'deploy'
18
18
  end
19
19
 
20
20
  it 'get the app server hostnames' do
21
- EY::Metadata.app_servers.should == [ 'app_1.compute-1.amazonaws.com' , 'app_master.compute-1.amazonaws.com' ]
21
+ EY.metadata.app_servers.should == ["ec2-174-129-212-130.compute-1.amazonaws.com"]
22
22
  end
23
23
 
24
24
  it 'get the db server hostnames' do
25
- EY::Metadata.db_servers.should == [ 'FAKE_DB_MASTER_PUBLIC_HOSTNAME', 'db_slave_1.compute-1.amazonaws.com' ]
25
+ EY.metadata.db_servers.should == ["ec2-67-202-19-255.compute-1.amazonaws.com"]
26
26
  end
27
27
 
28
28
  it 'get the utilities hostnames' do
29
- EY::Metadata.utilities.should == [ 'FAKE_UTIL_1_PUBLIC_HOSTNAME' ]
29
+ EY.metadata.utilities.should == []
30
30
  end
31
31
 
32
32
  it 'get the app master hostname' do
33
- EY::Metadata.app_master.should == 'app_master.compute-1.amazonaws.com'
33
+ EY.metadata.app_master.should == 'ec2-174-129-212-130.compute-1.amazonaws.com'
34
34
  end
35
35
 
36
36
  it 'get the db master hostname' do
37
- EY::Metadata.db_master.should == 'FAKE_DB_MASTER_PUBLIC_HOSTNAME'
37
+ EY.metadata.db_master.should == 'ec2-67-202-19-255.compute-1.amazonaws.com'
38
38
  end
39
39
 
40
40
  it 'get the db slave hostnames' do
41
- EY::Metadata.db_slaves.should == [ 'db_slave_1.compute-1.amazonaws.com' ]
41
+ EY.metadata.db_slaves.should == []
42
42
  end
43
43
 
44
44
  it 'get the app slave hostnames' do
45
- EY::Metadata.app_slaves.should == [ 'app_1.compute-1.amazonaws.com' ]
45
+ EY.metadata.app_slaves.should == []
46
46
  end
47
47
 
48
48
  it 'get the solo hostname' do
49
- EY::Metadata.solo.should == nil
49
+ EY.metadata.solo.should == nil
50
50
  end
51
51
 
52
52
  it 'get the environment name' do
53
- EY::Metadata.environment_name.should == 'FAKE_ENVIRONMENT_NAME'
53
+ EY.metadata.environment_name.should == 'cm1_production_blue'
54
54
  end
55
55
 
56
56
  it 'get the stack name' do
57
- EY::Metadata.stack_name.should == 'FAKE_STACK_NAME'
57
+ EY.metadata.stack_name.should == 'nginx_unicorn'
58
58
  end
59
59
 
60
60
  it 'get the repository URI' do
61
- EY::Metadata.repository_uri.should == 'FAKE_REPOSITORY_URI'
61
+ EY.metadata.repository_uri.should == 'git@github.com:brighterplanet/cm1.git'
62
62
  end
63
63
 
64
64
  it 'gets the app name' do
65
- EY::Metadata.app_name.should == 'FAKE_APP_NAME'
65
+ EY.metadata.app_name.should == 'cm1_certified_blue'
66
66
  end
67
67
 
68
68
  it 'gets the current path' do
69
- EY::Metadata.current_path.should == '/data/FAKE_APP_NAME/current'
69
+ EY.metadata.current_path.should == '/data/cm1_certified_blue/current'
70
70
  end
71
71
 
72
72
  it 'gets the shared path' do
73
- EY::Metadata.shared_path.should == '/data/FAKE_APP_NAME/shared'
73
+ EY.metadata.shared_path.should == '/data/cm1_certified_blue/shared'
74
74
  end
75
75
 
76
76
  it 'gets helpful ssh aliases' do
77
- EY::Metadata.ssh_aliases.should =~ /Host FAKE_ENVIRONMENT_NAME-app_master\n Hostname app_master.compute-1.amazonaws.com/
77
+ EY.metadata.ssh_aliases.should =~ /Host cm1_production_blue-app_master\n Hostname ec2-174-129-212-130.compute-1.amazonaws.com/
78
78
  end
79
79
  end
80
80
 
81
81
  shared_examples_for "it's executing outside the cloud" do
82
82
  it 'gets the list of all environment names' do
83
- EY::Metadata.environment_names.should == [ 'WRONG_ENVIRONMENT_NAME', 'FAKE_ENVIRONMENT_NAME' ]
83
+ EY.metadata.environment_names.should == ["app1_production", "wlpf1_production", "data1_production", "cm1_production_red", "cm1_production_blue"]
84
84
  end
85
85
 
86
86
  it 'not get the present instance ID' do
87
87
  lambda {
88
- EY::Metadata.present_instance_id
88
+ EY.metadata.present_instance_id
89
89
  }.should raise_error(EY::Metadata::CannotGetFromHere)
90
90
  end
91
91
 
92
92
  it 'not get the present instance role (as a string)' do
93
93
  lambda {
94
- EY::Metadata.present_instance_role
94
+ EY.metadata.present_instance_role
95
95
  }.should raise_error(EY::Metadata::CannotGetFromHere)
96
96
  end
97
97
 
98
98
  it 'not get the present public hostname' do
99
99
  lambda {
100
- EY::Metadata.present_public_hostname
100
+ EY.metadata.present_public_hostname
101
101
  }.should raise_error(EY::Metadata::CannotGetFromHere)
102
102
  end
103
103
 
104
104
  it 'not get the present security group' do
105
105
  lambda {
106
- EY::Metadata.present_security_group
106
+ EY.metadata.present_security_group
107
107
  }.should raise_error(EY::Metadata::CannotGetFromHere)
108
108
  end
109
109
 
110
110
  it 'not get the database password' do
111
111
  lambda {
112
- EY::Metadata.database_password
112
+ EY.metadata.database_password
113
113
  }.should raise_error(EY::Metadata::CannotGetFromHere)
114
114
  end
115
115
 
116
116
  it 'not get the ssh password' do
117
117
  lambda {
118
- EY::Metadata.ssh_password
118
+ EY.metadata.ssh_password
119
119
  }.should raise_error(EY::Metadata::CannotGetFromHere)
120
120
  end
121
121
 
122
122
  it 'not get the mysql command' do
123
123
  lambda {
124
- EY::Metadata.mysql_command
124
+ EY.metadata.mysql_command
125
125
  }.should raise_error(EY::Metadata::CannotGetFromHere)
126
126
  end
127
127
 
128
128
  it 'not get the mysqldump command' do
129
129
  lambda {
130
- EY::Metadata.mysqldump_command
130
+ EY.metadata.mysqldump_command
131
131
  }.should raise_error(EY::Metadata::CannotGetFromHere)
132
132
  end
133
-
134
- it 'get the raw EngineYard Cloud API data' do
135
- EY::Metadata.engine_yard_cloud_api.data.should be_a(Hash)
136
- end
137
133
  end
138
134
 
139
135
  shared_examples_for "it's executing inside the cloud" do
140
136
  it 'not get the list of all environment names' do
141
137
  lambda {
142
- EY::Metadata.environment_names
138
+ EY.metadata.environment_names
143
139
  }.should raise_error(EY::Metadata::CannotGetFromHere)
144
140
  end
145
141
 
146
142
  it 'get the present instance ID' do
147
- EY::Metadata.present_instance_id.should == PRESENT_INSTANCE_ID
143
+ EY.metadata.present_instance_id.should == FAKE_INSTANCE_ID
148
144
  end
149
145
 
150
146
  it 'get the present instance role (as a string)' do
151
- EY::Metadata.present_instance_role.should == 'app_master'
147
+ EY.metadata.present_instance_role.should == 'app_master'
152
148
  end
153
149
 
154
150
  it 'get the present public hostname' do
155
- EY::Metadata.present_public_hostname.should == PRESENT_PUBLIC_HOSTNAME
151
+ EY.metadata.present_public_hostname.should == 'ec2-174-129-212-130.compute-1.amazonaws.com'
156
152
  end
157
153
 
158
154
  it 'get the present security group' do
159
- EY::Metadata.present_security_group.should == PRESENT_SECURITY_GROUP
155
+ EY.metadata.present_security_group.should == FAKE_SECURITY_GROUP
160
156
  end
161
157
 
162
158
  it 'get the database password' do
163
- EY::Metadata.database_password.should == 'USERS-0-PASSWORD'
159
+ EY.metadata.database_password.should == 'USERS-0-PASSWORD'
164
160
  end
165
161
 
166
162
  it 'get the ssh password' do
167
- EY::Metadata.ssh_password.should == 'SSH-PASSWORD'
163
+ EY.metadata.ssh_password.should == 'USERS-0-PASSWORD'
168
164
  end
169
165
 
170
166
  it 'get the mysql command' do
171
- EY::Metadata.mysql_command.should =~ %r{mysql -h FAKE_DB_MASTER_PUBLIC_HOSTNAME -u FAKE_SSH_USERNAME -pUSERS-0-PASSWORD FAKE_APP_NAME}
167
+ EY.metadata.mysql_command.should =~ %r{mysql -h ec2-67-202-19-255.compute-1.amazonaws.com -u deploy -pUSERS-0-PASSWORD cm1_certified_blue}
172
168
  end
173
169
 
174
170
  it 'get the mysqldump command' do
175
- EY::Metadata.mysqldump_command.should =~ %r{mysqldump -h FAKE_DB_MASTER_PUBLIC_HOSTNAME -u FAKE_SSH_USERNAME -pUSERS-0-PASSWORD FAKE_APP_NAME}
171
+ EY.metadata.mysqldump_command.should =~ %r{mysqldump -h ec2-67-202-19-255.compute-1.amazonaws.com -u deploy -pUSERS-0-PASSWORD cm1_certified_blue}
176
172
  end
177
173
  end
178
174
 
179
- describe 'EY::Metadata' do
175
+ describe 'EY.metadata' do
180
176
  after do
181
177
  stop_pretending
182
178
  end
@@ -184,7 +180,8 @@ describe 'EY::Metadata' do
184
180
  describe "being executed on an EngineYard AppCloud (i.e. Amazon EC2) instance" do
185
181
  before do
186
182
  pretend_we_are_on_an_engineyard_appcloud_ec2_instance
187
- EY::Metadata.reload
183
+ EY.metadata.reload
184
+ EY.metadata.app_name = 'cm1_certified_blue'
188
185
  end
189
186
  it_should_behave_like "it does in all execution environments"
190
187
  it_should_behave_like "it's executing inside the cloud"
@@ -193,34 +190,41 @@ describe 'EY::Metadata' do
193
190
  describe "being executed from a developer/administrator's local machine" do
194
191
  before do
195
192
  pretend_we_are_on_a_developer_machine
196
- EY::Metadata.reload
197
- EY::Metadata.clear
193
+ EY.metadata.reload
194
+ EY.metadata.instance_variables.each do |ivar_name|
195
+ EY.metadata.instance_variable_set ivar_name, nil
196
+ end
198
197
  ENV.delete 'EY_CLOUD_TOKEN'
199
198
  ENV.delete 'EY_ENVIRONMENT_NAME'
199
+ ENV.delete 'EY_APP_NAME'
200
+ EY.metadata.app_name = 'cm1_certified_blue'
200
201
  end
201
202
  describe "controlled with environment variables" do
202
203
  before do
204
+ EY.metadata.instance_variables.each do |ivar_name|
205
+ EY.metadata.instance_variable_set ivar_name, nil
206
+ end
203
207
  ENV['EY_CLOUD_TOKEN'] = FAKE_CLOUD_TOKEN + 'aaa'
204
- ENV['EY_ENVIRONMENT_NAME'] = FAKE_ENVIRONMENT_NAME
205
- EY::Metadata.ey_cloud_token.should == FAKE_CLOUD_TOKEN + 'aaa' # sanity check
208
+ ENV['EY_APP_NAME'] = 'cm1_certified_blue'
209
+ EY.metadata.ey_cloud_token.should == FAKE_CLOUD_TOKEN + 'aaa' # sanity check
206
210
  end
207
211
  it_should_behave_like "it does in all execution environments"
208
212
  it_should_behave_like "it's executing outside the cloud"
209
213
  end
210
214
  describe "controlled with attr writers" do
211
215
  before do
212
- EY::Metadata.ey_cloud_token = FAKE_CLOUD_TOKEN + 'bbb'
213
- EY::Metadata.environment_name = FAKE_ENVIRONMENT_NAME
214
- EY::Metadata.ey_cloud_token.should == FAKE_CLOUD_TOKEN + 'bbb' # sanity check
216
+ EY.metadata.ey_cloud_token = FAKE_CLOUD_TOKEN + 'bbb'
217
+ EY.metadata.app_name = 'cm1_certified_blue'
218
+ EY.metadata.ey_cloud_token.should == FAKE_CLOUD_TOKEN + 'bbb' # sanity check
215
219
  end
216
220
  it_should_behave_like "it does in all execution environments"
217
221
  it_should_behave_like "it's executing outside the cloud"
218
222
  end
219
223
  describe "depending on .eyrc" do
220
224
  before do
221
- File.open(EY::Metadata.eyrc_path, 'w') { |f| f.write({'api_token' => FAKE_CLOUD_TOKEN + 'ccc'}.to_yaml) }
222
- EY::Metadata.environment_name = FAKE_ENVIRONMENT_NAME
223
- EY::Metadata.ey_cloud_token.should == FAKE_CLOUD_TOKEN + 'ccc' # sanity check
225
+ File.open(EY.metadata.eyrc_path, 'w') { |f| f.write({'api_token' => FAKE_CLOUD_TOKEN + 'ccc'}.to_yaml) }
226
+ EY.metadata.environment_name = 'cm1_production_blue'
227
+ EY.metadata.ey_cloud_token.should == FAKE_CLOUD_TOKEN + 'ccc' # sanity check
224
228
  end
225
229
  it_should_behave_like "it does in all execution environments"
226
230
  it_should_behave_like "it's executing outside the cloud"