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.
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