Class: SnapshotOptimization::IdentifyOrphanVolumes
- Inherits:
-
SnapshotOptimizationState
- Object
- ScriptExecutionState
- SnapshotOptimizationState
- SnapshotOptimization::IdentifyOrphanVolumes
- Defined in:
- lib/scripts/ec2/snapshot_optimization.rb
Overview
Volumes retrieved. Identify unattached volumes that are older than a day
Instance Attribute Summary
Attributes inherited from ScriptExecutionState
Instance Method Summary collapse
Methods inherited from SnapshotOptimizationState
Methods inherited from ScriptExecutionState
#done?, #end_state, #failed?, #get_superclass_name, #initialize, #register_state_change_listener, #start_state_machine, #to_s
Methods included from StateTransitionHelper
#attach_volume, #connect, #copy_distribution, #create_fs, #create_image_from_instance, #create_labeled_fs, #create_security_group_with_rules, #create_snapshot, #create_volume, #create_volume_from_snapshot, #delete_security_group, #delete_snapshot, #delete_volume, #describe_instance, #detach_volume, #determine_file, #disable_ssh_tty, #disconnect, #ec2_handler, #ec2_handler=, #enable_ssh_tty, #get_aws_kernel_image_aki, #get_aws_region_from_endpoint, #get_partition_count, #get_partition_fs_type, #get_partition_fs_type_and_label, #get_partition_label, #get_partition_table, #get_root_device_name, #get_root_partition_fs_type, #get_root_partition_fs_type_and_label, #get_root_partition_label, #get_root_volume_id, #launch_instance, #local_decompress_and_dump_file_to_device, #local_dump_and_compress_device_to_file, #local_dump_device_to_file, #local_dump_file_to_device, #mount_fs, #mount_fs_old, #register_snapshot, #remote_copy, #remote_copy_old, #remote_handler, #remote_handler=, #retrieve_instances, #retrieve_security_groups, #set_partition_table, #shut_down_instance, #snapshot_accessible, #start_instance, #stop_instance, #unmount_fs, #upload_file, #zip_volume
Methods included from VCloudTransitionHelper
Constructor Details
This class inherits a constructor from ScriptExecutionState
Instance Method Details
#enter ⇒ Object
127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 |
# File 'lib/scripts/ec2/snapshot_optimization.rb', line 127 def enter ("Going to check for unattached volumes") @logger.info("all volumes => #{@context[:volumes].inspect}") unless @context[:volumes]['volumeSet'] == nil @context[:volumes]['volumeSet']['item'].each() do |volume| if volume['status'] == "available" age = Time.now.to_i - Time.parse(volume['createTime']).to_i @logger.info("age of orphan #{volume['volumeId']}: #{age/(60*60*24).to_f} days") if age < 60*60*24 ("Volume #{volume['volumeId']} is unattached, but created within the last 24h => ignore") else ("Identified unattached volume #{volume['volumeId']}") @context[:result][:orphan_volumes] << volume['volumeId'] end @logger.info("complete info on volume: #{volume.inspect}") else ("Volume #{volume['volumeId']} is attached => ignore") end end end if @context[:delete_volumes] DeleteUnattachedVolumes.new(@context) else Done.new(@context) end end |