awscli 0.0.4 → 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (51) hide show
  1. checksums.yaml +8 -8
  2. data/README.rdoc +5 -0
  3. data/Rakefile +44 -0
  4. data/bin/awscli +32 -0
  5. data/features/awscli.feature +8 -0
  6. data/features/step_definitions/awscli_steps.rb +6 -0
  7. data/features/support/env.rb +15 -0
  8. data/lib/awscli.rb +51 -0
  9. data/lib/awscli/as.rb +289 -0
  10. data/lib/awscli/cli.rb +21 -0
  11. data/lib/awscli/cli/as.rb +12 -0
  12. data/lib/awscli/cli/as/activities.rb +28 -0
  13. data/lib/awscli/cli/as/configurations.rb +50 -0
  14. data/lib/awscli/cli/as/groups.rb +97 -0
  15. data/lib/awscli/cli/as/instances.rb +34 -0
  16. data/lib/awscli/cli/as/policies.rb +45 -0
  17. data/lib/awscli/cli/ec2.rb +23 -0
  18. data/lib/awscli/cli/ec2/ami.rb +46 -0
  19. data/lib/awscli/cli/ec2/ebs.rb +85 -0
  20. data/lib/awscli/cli/ec2/eip.rb +56 -0
  21. data/lib/awscli/cli/ec2/instances.rb +216 -0
  22. data/lib/awscli/cli/ec2/keypairs.rb +60 -0
  23. data/lib/awscli/cli/ec2/monitoring.rb +35 -0
  24. data/lib/awscli/cli/ec2/placement.rb +42 -0
  25. data/lib/awscli/cli/ec2/reservedinstmng.rb +45 -0
  26. data/lib/awscli/cli/ec2/secgroups.rb +66 -0
  27. data/lib/awscli/cli/ec2/spot.rb +81 -0
  28. data/lib/awscli/cli/ec2/subnet.rb +43 -0
  29. data/lib/awscli/cli/ec2/tags.rb +45 -0
  30. data/lib/awscli/cli/ec2/vmmng.rb +17 -0
  31. data/lib/awscli/cli/ec2/vpc.rb +42 -0
  32. data/lib/awscli/cli/ec2/vpc/connections.rb +0 -0
  33. data/lib/awscli/cli/ec2/vpc/cust_gateways.rb +0 -0
  34. data/lib/awscli/cli/ec2/vpc/dhcp.rb +51 -0
  35. data/lib/awscli/cli/ec2/vpc/internet_gateways.rb +58 -0
  36. data/lib/awscli/cli/ec2/vpc/net_interfaces.rb +75 -0
  37. data/lib/awscli/cli/ec2/vpc/network_acls.rb +29 -0
  38. data/lib/awscli/cli/ec2/vpc/priv_gatewats.rb +0 -0
  39. data/lib/awscli/cli/ec2/vpc/route_tables.rb +0 -0
  40. data/lib/awscli/cli/s3.rb +12 -0
  41. data/lib/awscli/cli/s3/directories.rb +82 -0
  42. data/lib/awscli/cli/s3/files.rb +77 -0
  43. data/lib/awscli/connection.rb +55 -0
  44. data/lib/awscli/ec2.rb +821 -0
  45. data/lib/awscli/errors.rb +64 -0
  46. data/lib/awscli/helper.rb +8 -0
  47. data/lib/awscli/s3.rb +108 -0
  48. data/lib/awscli/version.rb +3 -0
  49. data/test/default_test.rb +14 -0
  50. data/test/test_helper.rb +9 -0
  51. 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
@@ -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
@@ -0,0 +1,3 @@
1
+ module Awscli
2
+ VERSION = '0.0.5'
3
+ end
@@ -0,0 +1,14 @@
1
+ require 'test_helper'
2
+
3
+ class DefaultTest < Test::Unit::TestCase
4
+
5
+ def setup
6
+ end
7
+
8
+ def teardown
9
+ end
10
+
11
+ def test_the_truth
12
+ assert true
13
+ end
14
+ end
@@ -0,0 +1,9 @@
1
+ require 'test/unit'
2
+
3
+ # Add test libraries you want to use here, e.g. mocha
4
+
5
+ class Test::Unit::TestCase
6
+
7
+ # Add global extensions to the test case class here
8
+
9
+ end
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
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