ec2launcher 1.6.4 → 1.6.5

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.
data/CHANGELOG.md CHANGED
@@ -1,3 +1,7 @@
1
+ ## 1.6.5
2
+
3
+ * Make more methods of BlockDeviceBuilder public.
4
+
1
5
  ## 1.6.4
2
6
 
3
7
  * Fixed bug with properly inheriting environment roles in applications.
data/lib/ec2launcher.rb CHANGED
@@ -23,8 +23,6 @@ require 'ec2launcher/route53'
23
23
 
24
24
  require 'ec2launcher/config_wrapper'
25
25
 
26
- include Log4r
27
-
28
26
  module EC2Launcher
29
27
 
30
28
  class AmiDetails
@@ -48,12 +46,19 @@ module EC2Launcher
48
46
  @setup_script_cache = nil
49
47
  @setup_instance_script_cache = nil
50
48
 
51
- @log = Logger.new 'ec2launcher'
52
- log_output = Outputter.stdout
53
- log_output.formatter = PatternFormatter.new :pattern => "%m"
54
- @log.outputters = log_output
49
+ begin
50
+ @log = Log4r::Logger['ec2launcher']
51
+ unless @log
52
+ @log = Log4r::Logger.new 'ec2launcher'
53
+ log_output = Log4r::Outputter.stdout
54
+ log_output.formatter = PatternFormatter.new :pattern => "%m"
55
+ @log.outputters = log_output
56
+ end
57
+ rescue
58
+ end
55
59
  end
56
60
 
61
+ public
57
62
  def launch(options)
58
63
  @options = options
59
64
 
@@ -434,7 +439,8 @@ module EC2Launcher
434
439
  ##############################
435
440
  # COMPLETED
436
441
  ##############################
437
- @log.info "********************"
442
+ @log.info "********************"
443
+ instances
438
444
  end
439
445
 
440
446
  # Attaches an instance to the specified ELB.
@@ -542,6 +548,7 @@ module EC2Launcher
542
548
  #
543
549
  # @return [String] DNS for the instance or "n/a" if undefined.
544
550
  #
551
+ public
545
552
  def get_instance_dns(ec2_instance, public = true)
546
553
  dns_name = public ? ec2_instance.public_dns_name : ec2_instance.private_dns_name
547
554
  dns_name.nil? ? "n/a" : dns_name
@@ -570,6 +577,7 @@ module EC2Launcher
570
577
  # }
571
578
  #
572
579
  # @return [AWS::EC2::Instance] newly created EC2 instance or nil if the launch failed.
580
+ public
573
581
  def launch_instance(launch_options, user_data)
574
582
  @log.warn "Launching instance... #{launch_options[:fqdn]}"
575
583
  new_instance = nil
@@ -5,8 +5,6 @@ require 'ec2launcher/defaults'
5
5
  require 'ec2launcher/backoff_runner'
6
6
  require 'log4r'
7
7
 
8
- include Log4r
9
-
10
8
  module EC2Launcher
11
9
  # Helper class to build EC2 block device definitions.
12
10
  #
@@ -86,8 +84,6 @@ module EC2Launcher
86
84
  block_device_tags
87
85
  end
88
86
 
89
- private
90
-
91
87
  # Iterates over a number of block_devices, executing the specified Ruby block.
92
88
  #
93
89
  # @param [Integer] count number of block devices
@@ -95,6 +91,7 @@ module EC2Launcher
95
91
  # Incremented for each iteration.
96
92
  # @param [Block] block block to execute. Passes in the current device name and zero-based index.
97
93
  #
94
+ private
98
95
  def build_block_devices(count, device = "sdf", &block)
99
96
  device_name = device
100
97
  0.upto(count - 1).each do |index|
@@ -108,6 +105,7 @@ module EC2Launcher
108
105
  # @param [Hash<String, Hash>] block_device_mappings Mapping of device names to EBS block device details.
109
106
  # @param [Array<EC2Launcher::BlockDevice>] block_devices list of block devices to create.
110
107
  #
108
+ private
111
109
  def build_ebs_volumes(block_device_mappings, block_devices)
112
110
  return if block_devices.nil?
113
111
  base_device_name = "sdf"
@@ -131,6 +129,7 @@ module EC2Launcher
131
129
  # @param [Hash<String, Hash>] block_devices Map of device names to EC2 block device details.
132
130
  # @param [String] instance_type type of instance. See EC2Launcher::Defaults::INSTANCE_TYPES.
133
131
  #
132
+ private
134
133
  def build_ephemeral_drives(block_device_mappings, instance_type)
135
134
  ephemeral_drive_count = case instance_type
136
135
  when "m1.small" then 1
@@ -159,6 +158,7 @@ module EC2Launcher
159
158
  # @param [EC2Launcher::Application] application current application
160
159
  # @param [String] clone_host name of host to clone
161
160
  #
161
+ private
162
162
  def clone_volumes(block_device_mappings, application, clone_host = nil)
163
163
  return if clone_host.nil?
164
164
 
@@ -183,12 +183,12 @@ module EC2Launcher
183
183
  AWS.stop_memoizing
184
184
  end
185
185
 
186
- private
187
186
  # @param [String] purpose purpose of RAID array, which is stored in the `purpose` tag for snapshots/volumes
188
187
  # and is part of the snapshot name.
189
188
  # @param [AWS::EC2::SnapshotCollection] snapshots collection of snapshots to examine
190
189
  #
191
190
  # @return [Array<AWS::EC2::Snapshot>] list of matching snapshots
191
+ private
192
192
  def build_snapshot_clone_list(purpose, snapshots)
193
193
  snapshot_name_regex = /#{purpose} raid.*/
194
194
  host_snapshots = []
@@ -206,11 +206,11 @@ module EC2Launcher
206
206
  host_snapshots
207
207
  end
208
208
 
209
- private
210
209
  # Creates a mapping of volume numbers to snapshots.
211
210
  #
212
211
  # @param [Array<AWS::EC2::Snapshot>] snapshots list of matching snapshots
213
212
  # @result [Hash<String, AWS::EC2::Snapshot>] map of volume numbers as strings ("1", "2", etc.) to snapshots
213
+ private
214
214
  def bucket_snapshots_by_volume_number(snapshots)
215
215
  snapshot_buckets = { }
216
216
  volume_number_regex = /raid \((\d)\)$/
@@ -233,10 +233,10 @@ module EC2Launcher
233
233
  snapshot_buckets
234
234
  end
235
235
 
236
- private
237
236
  # Find the most recent backup time that all snapshots have in common.
238
237
  #
239
238
  # @param [Hash<String, AWS::EC2::Snapshot>] snapshot_buckets map of volume numbers as strings ("1", "2", etc.) to snapshots
239
+ public
240
240
  def get_most_recent_common_snapshot_time(snapshot_buckets)
241
241
  # We need to find the most recent backup time that all snapshots have in common.
242
242
  #
@@ -261,7 +261,6 @@ module EC2Launcher
261
261
  most_recent_dates[0]
262
262
  end
263
263
 
264
- public
265
264
  # Retrieves the latest set of completed snapshots for a RAID array of EBS volumes.
266
265
  #
267
266
  # Volumes must have the following tags:
@@ -276,12 +275,12 @@ module EC2Launcher
276
275
  #
277
276
  # @return [Hash<Integer, AWS::EC2::Snapshot>] mapping of RAID device numbers (zero based) to AWS Snapshots.
278
277
  #
278
+ public
279
279
  def get_latest_raid_snapshot_mapping(hostname, purpose, count)
280
280
  @log.info "Retrieving list of snapshots ..."
281
281
  result = @ec2.snapshots.tagged("host").tagged_values(hostname).tagged("volumeName").tagged_values("*raid*").tagged("time")
282
282
 
283
283
  @log.info "Building list of snapshots to clone (#{purpose}) for '#{hostname}'..."
284
- snapshot_name_regex = /#{purpose} raid.*/
285
284
  host_snapshots = build_snapshot_clone_list(purpose, result)
286
285
 
287
286
  # Bucket the snapshots based on volume number e.g. "raid (1)" vs "raid (2)"
@@ -326,6 +325,7 @@ module EC2Launcher
326
325
  #
327
326
  # @return [AWS::EC2::Snapshot, nil] matching snapshot or nil if no matching snapshot
328
327
  #
328
+ public
329
329
  def get_latest_snapshot_by_purpose(clone_host, purpose)
330
330
  @log.info "Retrieving snapshtos for #{clone_host} [#{purpose}]"
331
331
  results = @ec2.snapshots.tagged("host").tagged_values(clone_host).tagged("purpose").tagged_values(purpose)
@@ -2,5 +2,5 @@
2
2
  # Copyright (c) 2012 Sean Laurent
3
3
  #
4
4
  module EC2Launcher
5
- VERSION = "1.6.4"
5
+ VERSION = "1.6.5"
6
6
  end
@@ -443,8 +443,11 @@ EOF
443
443
  # Creates a mount point, mounts the device and adds it to fstab
444
444
  def mount_device(device, mount_point, owner, group, fs_type)
445
445
  puts `echo #{device} #{mount_point} #{fs_type} noatime 0 0|tee -a /etc/fstab`
446
+ puts "Making mount directory #{mount_point} for #{device}"
446
447
  puts `mkdir -p #{mount_point}`
448
+ puts "Mounting #{device} at #{mount_point}"
447
449
  puts `mount #{mount_point}`
450
+ puts "Setting ownership on #{mount_point} to #{owner}"
448
451
  puts `chown #{owner}:#{owner} #{mount_point}`
449
452
  end
450
453
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ec2launcher
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.6.4
4
+ version: 1.6.5
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-01-08 00:00:00.000000000 Z
12
+ date: 2013-01-11 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: aws-sdk