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)