lib/swa/cli/ec2_command.rb in swa-0.6.1 vs lib/swa/cli/ec2_command.rb in swa-0.7.0

- old
+ new

@@ -1,6 +1,6 @@ -require "aws-sdk-resources" +require "aws-sdk-ec2" require "swa/cli/base_command" require "swa/cli/collection_behaviour" require "swa/cli/item_behaviour" require "swa/cli/tag_filter_options" require "swa/ec2/image" @@ -225,14 +225,29 @@ self.description = <<-EOF List key-pairs. EOF + option "--named", "PATTERN", "name pattern" + include CollectionBehaviour + subcommand "delete", "Delete all key-pairs" do + def execute + signal_error "no key-pairs specified" unless selector.specified? + key_pairs.each(&:delete) + end + end + private + def named=(pattern) + selector.add do |kp| + File.fnmatch(pattern, kp.name) + end + end + def key_pairs query_for(:key_pairs, Swa::EC2::KeyPair) end alias_method :collection, :key_pairs @@ -243,10 +258,16 @@ parameter "GROUP-ID", "security-group id" include ItemBehaviour + subcommand ["delete"], "Delete group" do + def execute + security_group.delete + end + end + private def security_group Swa::EC2::SecurityGroup.new(ec2.security_group(group_id)) end @@ -257,9 +278,15 @@ subcommand ["security-groups", "sgs"], "List security-groups" do include TagFilterOptions include CollectionBehaviour + + subcommand ["delete"], "Delete group" do + def execute + security_groups.each(&:delete) + end + end private def security_groups query_for(:security_groups, Swa::EC2::SecurityGroup)