awscli 0.0.4 → 0.0.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.
- checksums.yaml +8 -8
- data/README.rdoc +5 -0
- data/Rakefile +44 -0
- data/bin/awscli +32 -0
- data/features/awscli.feature +8 -0
- data/features/step_definitions/awscli_steps.rb +6 -0
- data/features/support/env.rb +15 -0
- data/lib/awscli.rb +51 -0
- data/lib/awscli/as.rb +289 -0
- data/lib/awscli/cli.rb +21 -0
- data/lib/awscli/cli/as.rb +12 -0
- data/lib/awscli/cli/as/activities.rb +28 -0
- data/lib/awscli/cli/as/configurations.rb +50 -0
- data/lib/awscli/cli/as/groups.rb +97 -0
- data/lib/awscli/cli/as/instances.rb +34 -0
- data/lib/awscli/cli/as/policies.rb +45 -0
- data/lib/awscli/cli/ec2.rb +23 -0
- data/lib/awscli/cli/ec2/ami.rb +46 -0
- data/lib/awscli/cli/ec2/ebs.rb +85 -0
- data/lib/awscli/cli/ec2/eip.rb +56 -0
- data/lib/awscli/cli/ec2/instances.rb +216 -0
- data/lib/awscli/cli/ec2/keypairs.rb +60 -0
- data/lib/awscli/cli/ec2/monitoring.rb +35 -0
- data/lib/awscli/cli/ec2/placement.rb +42 -0
- data/lib/awscli/cli/ec2/reservedinstmng.rb +45 -0
- data/lib/awscli/cli/ec2/secgroups.rb +66 -0
- data/lib/awscli/cli/ec2/spot.rb +81 -0
- data/lib/awscli/cli/ec2/subnet.rb +43 -0
- data/lib/awscli/cli/ec2/tags.rb +45 -0
- data/lib/awscli/cli/ec2/vmmng.rb +17 -0
- data/lib/awscli/cli/ec2/vpc.rb +42 -0
- data/lib/awscli/cli/ec2/vpc/connections.rb +0 -0
- data/lib/awscli/cli/ec2/vpc/cust_gateways.rb +0 -0
- data/lib/awscli/cli/ec2/vpc/dhcp.rb +51 -0
- data/lib/awscli/cli/ec2/vpc/internet_gateways.rb +58 -0
- data/lib/awscli/cli/ec2/vpc/net_interfaces.rb +75 -0
- data/lib/awscli/cli/ec2/vpc/network_acls.rb +29 -0
- data/lib/awscli/cli/ec2/vpc/priv_gatewats.rb +0 -0
- data/lib/awscli/cli/ec2/vpc/route_tables.rb +0 -0
- data/lib/awscli/cli/s3.rb +12 -0
- data/lib/awscli/cli/s3/directories.rb +82 -0
- data/lib/awscli/cli/s3/files.rb +77 -0
- data/lib/awscli/connection.rb +55 -0
- data/lib/awscli/ec2.rb +821 -0
- data/lib/awscli/errors.rb +64 -0
- data/lib/awscli/helper.rb +8 -0
- data/lib/awscli/s3.rb +108 -0
- data/lib/awscli/version.rb +3 -0
- data/test/default_test.rb +14 -0
- data/test/test_helper.rb +9 -0
- metadata +59 -4
@@ -0,0 +1,64 @@
|
|
1
|
+
module Awscli
|
2
|
+
module Errors
|
3
|
+
require 'awscli/helper'
|
4
|
+
|
5
|
+
class Error < StandardError
|
6
|
+
attr_accessor :verbose
|
7
|
+
|
8
|
+
def self.slurp(error, message=nil)
|
9
|
+
new_error = new(message)
|
10
|
+
new_error.set_backtrace(error.backtrace)
|
11
|
+
new_error.verbose = error.message
|
12
|
+
new_error
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
class LoadError < LoadError; end
|
17
|
+
|
18
|
+
class NotImplemented < Awscli::Errors::Error; end
|
19
|
+
|
20
|
+
def self.missing_environment_variable
|
21
|
+
message = <<-ERRMSG1.gsub(/^ {8}/, '')
|
22
|
+
Missing AWSCLI_CONFIG_FILE environment variable
|
23
|
+
Please export the variable 'export AWSCLI_CONFIG_FILE="~/awscli_config.yml'
|
24
|
+
ERRMSG1
|
25
|
+
raise(Awscli::Errors::LoadError.new(message))
|
26
|
+
end
|
27
|
+
|
28
|
+
def self.missing_config_file
|
29
|
+
message = <<-ERRMSG2.gsub(/^ {8}/, '')
|
30
|
+
File Load Error, check if file exists
|
31
|
+
ERRMSG2
|
32
|
+
raise(Awscli::Errors::LoadError.new(message))
|
33
|
+
end
|
34
|
+
|
35
|
+
def self.missing_credentials
|
36
|
+
message = <<-ERRMSG3.gsub(/^ {8}/, '')
|
37
|
+
MISSING CREDENTIALS
|
38
|
+
Add the following to your resource config file:
|
39
|
+
#############################
|
40
|
+
#Aws Credentials
|
41
|
+
#Key value pairs should look like this
|
42
|
+
#aws_access_key_id: 022QF06E7MXBSAMPLE
|
43
|
+
aws_access_key_id:
|
44
|
+
aws_secret_access_key:
|
45
|
+
region:
|
46
|
+
#
|
47
|
+
#End of Aws Credentials
|
48
|
+
############################
|
49
|
+
ERRMSG3
|
50
|
+
raise(Awscli::Errors::LoadError.new(message))
|
51
|
+
end
|
52
|
+
|
53
|
+
def self.invalid_credentials
|
54
|
+
message = "Invalid Credentials, Please check your AWS access and secret key id."
|
55
|
+
raise(Awscli::Errors::LoadError.new(message))
|
56
|
+
end
|
57
|
+
|
58
|
+
def self.invalid_region
|
59
|
+
message = "Invalid region found in config file , Available Regions #{Awscli::Instances::REGIONS}"
|
60
|
+
raise(Awscli::Errors::LoadError.new(message))
|
61
|
+
end
|
62
|
+
|
63
|
+
end
|
64
|
+
end
|
@@ -0,0 +1,8 @@
|
|
1
|
+
module Awscli
|
2
|
+
module Instances
|
3
|
+
INSTANCE_SIZES = %w(t1.micro m1.small m1.medium m1.large m1.xlarge m3.xlarge m3.2xlarge m2.xlarge
|
4
|
+
m2.2xlarge m2.4xlarge c1.medium c1.xlarge hs1.8xlarge)
|
5
|
+
INSTANCE_TYPES = %w(on-demand spot)
|
6
|
+
REGIONS = %w(eu-west-1 sa-east-1 us-east-1 ap-northeast-1 us-west-2 us-west-1 ap-southeast-1 ap-southeast-2)
|
7
|
+
end
|
8
|
+
end
|
data/lib/awscli/s3.rb
ADDED
@@ -0,0 +1,108 @@
|
|
1
|
+
module Awscli
|
2
|
+
module S3
|
3
|
+
|
4
|
+
class Files
|
5
|
+
def initialize connection, options = {}
|
6
|
+
@@conn = connection
|
7
|
+
end
|
8
|
+
|
9
|
+
def list dir_name
|
10
|
+
dir = @@conn.directories.get(dir_name)
|
11
|
+
abort "cannot find bucket: #{dir_name}" unless dir
|
12
|
+
puts "LastModified \t SIZE \t Object"
|
13
|
+
dir.files.each do |file|
|
14
|
+
puts "#{file.last_modified} \t #{file.content_length} \t #{file.key}"
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
def upload_file dir_name, file_path
|
19
|
+
dir = @@conn.directories.get(dir_name)
|
20
|
+
abort "cannot find bucket: #{dir_name}" unless dir
|
21
|
+
file = File.expand_path(file_path)
|
22
|
+
abort "Invalid file path: #{file_path}" unless File.exist?(file)
|
23
|
+
file_name = File.basename(file)
|
24
|
+
dir.files.create(
|
25
|
+
:key => file_name,
|
26
|
+
:body => File.open(file),
|
27
|
+
:public => true
|
28
|
+
)
|
29
|
+
puts "Uploaded file: #{file_name} to bucket: #{dir_name}"
|
30
|
+
end
|
31
|
+
|
32
|
+
def download_file dir_name, file_name, path
|
33
|
+
dir = @@conn.directories.get(dir_name)
|
34
|
+
abort "cannot find bucket: #{dir_name}" unless dir
|
35
|
+
local_path = File.expand_path(path)
|
36
|
+
abort "Invalid file path: #{path}" unless File.exist?(local_path)
|
37
|
+
remote_file = dir.files.get(file_name)
|
38
|
+
abort "cannot find file: #{file_name}" unless remote_file
|
39
|
+
File.open("#{local_path}/#{remote_file.key}", 'w') do |f|
|
40
|
+
f.write(remote_file.body)
|
41
|
+
end
|
42
|
+
puts "Downloaded file: #{remote_file.key} to path: #{local_path}"
|
43
|
+
end
|
44
|
+
|
45
|
+
def delete_file dir_name, file_name
|
46
|
+
dir = @@conn.directories.get(dir_name)
|
47
|
+
abort "cannot find bucket: #{dir_name}" unless dir
|
48
|
+
remote_file = dir.files.get(file_name)
|
49
|
+
abort "cannot find file: #{file_name}" unless remote_file
|
50
|
+
remote_file.destroy
|
51
|
+
puts "Deleted file: #{file_name}"
|
52
|
+
end
|
53
|
+
|
54
|
+
def copy_file source_dir, source_file, dest_dir, dest_file
|
55
|
+
@@conn.directories.get(source_dir).files.get(source_file).copy(dest_dir, dest_file)
|
56
|
+
end
|
57
|
+
|
58
|
+
def get_public_url dir_name, file_name
|
59
|
+
url = @@conn.directories.get(dir_name).files.get(file_name).public_url
|
60
|
+
puts "public url for the file: #{file_name} is #{url}"
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
class Directories
|
65
|
+
def initialize connection, options = {}
|
66
|
+
@@conn = connection
|
67
|
+
end
|
68
|
+
|
69
|
+
def list
|
70
|
+
@@conn.directories.table
|
71
|
+
end
|
72
|
+
|
73
|
+
def create options
|
74
|
+
dir = @@conn.directories.create(options)
|
75
|
+
puts "Create bucket: #{dir.key}"
|
76
|
+
end
|
77
|
+
|
78
|
+
def delete dir_name
|
79
|
+
dir = @@conn.directories.get(dir_name)
|
80
|
+
abort "Cannot find bucket #{dir_name}" unless dir
|
81
|
+
dir.destroy
|
82
|
+
puts "Deleted Bucket: #{dir_name}"
|
83
|
+
end
|
84
|
+
|
85
|
+
def get_acl dir_name
|
86
|
+
dir = @@conn.directories.get(dir_name)
|
87
|
+
abort "Cannot find bucket #{dir_name}" unless dir
|
88
|
+
puts dir.acl
|
89
|
+
end
|
90
|
+
|
91
|
+
def set_acl dir_name, acl
|
92
|
+
dir = @@conn.directories.get(dir_name)
|
93
|
+
abort "Cannot find bucket #{dir_name}" unless dir
|
94
|
+
dir.acl = acl
|
95
|
+
puts "Acl has been changed to #{acl}"
|
96
|
+
end
|
97
|
+
|
98
|
+
def get_logging_status dir_name
|
99
|
+
puts @@conn.get_bucket_logging(dir_name).body['BucketLoggingStatus']
|
100
|
+
end
|
101
|
+
|
102
|
+
def set_logging_status dir_name, logging_status = {}
|
103
|
+
@@conn.put_bucket_logging dir_name, logging_status
|
104
|
+
end
|
105
|
+
end
|
106
|
+
|
107
|
+
end
|
108
|
+
end
|
data/test/test_helper.rb
ADDED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: awscli
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ashrith
|
@@ -97,10 +97,60 @@ dependencies:
|
|
97
97
|
description: Command Line Interface for Amazon Web Services built in Ruby, using Fog
|
98
98
|
and Thor, This gem is still in development.
|
99
99
|
email: ashrith@me.com
|
100
|
-
executables:
|
100
|
+
executables:
|
101
|
+
- awscli
|
101
102
|
extensions: []
|
102
103
|
extra_rdoc_files: []
|
103
|
-
files:
|
104
|
+
files:
|
105
|
+
- Rakefile
|
106
|
+
- bin/awscli
|
107
|
+
- lib/awscli/as.rb
|
108
|
+
- lib/awscli/cli/as/activities.rb
|
109
|
+
- lib/awscli/cli/as/configurations.rb
|
110
|
+
- lib/awscli/cli/as/groups.rb
|
111
|
+
- lib/awscli/cli/as/instances.rb
|
112
|
+
- lib/awscli/cli/as/policies.rb
|
113
|
+
- lib/awscli/cli/as.rb
|
114
|
+
- lib/awscli/cli/ec2/ami.rb
|
115
|
+
- lib/awscli/cli/ec2/ebs.rb
|
116
|
+
- lib/awscli/cli/ec2/eip.rb
|
117
|
+
- lib/awscli/cli/ec2/instances.rb
|
118
|
+
- lib/awscli/cli/ec2/keypairs.rb
|
119
|
+
- lib/awscli/cli/ec2/monitoring.rb
|
120
|
+
- lib/awscli/cli/ec2/placement.rb
|
121
|
+
- lib/awscli/cli/ec2/reservedinstmng.rb
|
122
|
+
- lib/awscli/cli/ec2/secgroups.rb
|
123
|
+
- lib/awscli/cli/ec2/spot.rb
|
124
|
+
- lib/awscli/cli/ec2/subnet.rb
|
125
|
+
- lib/awscli/cli/ec2/tags.rb
|
126
|
+
- lib/awscli/cli/ec2/vmmng.rb
|
127
|
+
- lib/awscli/cli/ec2/vpc/connections.rb
|
128
|
+
- lib/awscli/cli/ec2/vpc/cust_gateways.rb
|
129
|
+
- lib/awscli/cli/ec2/vpc/dhcp.rb
|
130
|
+
- lib/awscli/cli/ec2/vpc/internet_gateways.rb
|
131
|
+
- lib/awscli/cli/ec2/vpc/net_interfaces.rb
|
132
|
+
- lib/awscli/cli/ec2/vpc/network_acls.rb
|
133
|
+
- lib/awscli/cli/ec2/vpc/priv_gatewats.rb
|
134
|
+
- lib/awscli/cli/ec2/vpc/route_tables.rb
|
135
|
+
- lib/awscli/cli/ec2/vpc.rb
|
136
|
+
- lib/awscli/cli/ec2.rb
|
137
|
+
- lib/awscli/cli/s3/directories.rb
|
138
|
+
- lib/awscli/cli/s3/files.rb
|
139
|
+
- lib/awscli/cli/s3.rb
|
140
|
+
- lib/awscli/cli.rb
|
141
|
+
- lib/awscli/connection.rb
|
142
|
+
- lib/awscli/ec2.rb
|
143
|
+
- lib/awscli/errors.rb
|
144
|
+
- lib/awscli/helper.rb
|
145
|
+
- lib/awscli/s3.rb
|
146
|
+
- lib/awscli/version.rb
|
147
|
+
- lib/awscli.rb
|
148
|
+
- test/default_test.rb
|
149
|
+
- test/test_helper.rb
|
150
|
+
- README.rdoc
|
151
|
+
- features/awscli.feature
|
152
|
+
- features/step_definitions/awscli_steps.rb
|
153
|
+
- features/support/env.rb
|
104
154
|
homepage: http://github.com/ashrithr/awscli
|
105
155
|
licenses: []
|
106
156
|
metadata: {}
|
@@ -131,4 +181,9 @@ signing_key:
|
|
131
181
|
specification_version: 4
|
132
182
|
summary: Command Line Interface for Amazon Web Services built in Ruby, using Fog and
|
133
183
|
Thor
|
134
|
-
test_files:
|
184
|
+
test_files:
|
185
|
+
- features/awscli.feature
|
186
|
+
- features/step_definitions/awscli_steps.rb
|
187
|
+
- features/support/env.rb
|
188
|
+
- test/default_test.rb
|
189
|
+
- test/test_helper.rb
|