iravat 0.1.0

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.
data/Rakefile ADDED
@@ -0,0 +1,54 @@
1
+ require 'rubygems'
2
+ require 'bundler'
3
+ begin
4
+ Bundler.setup(:default, :development)
5
+ rescue Bundler::BundlerError => e
6
+ $stderr.puts e.message
7
+ $stderr.puts "Run `bundle install` to install missing gems"
8
+ exit e.status_code
9
+ end
10
+ require 'rake'
11
+
12
+ require 'jeweler'
13
+ Jeweler::Tasks.new do |gem|
14
+ # gem is a Gem::Specification... see http://docs.rubygems.org/read/chapter/20 for more options
15
+ gem.name = "iravat"
16
+ gem.homepage = "http://github.com/aloksrivastava78/iravat"
17
+ gem.license = "MIT"
18
+ gem.summary = %Q{Access to AWS }
19
+ gem.description = %Q{Access to AWS}
20
+ gem.email = "alok@chipmonk.in"
21
+ gem.authors = ["alok"]
22
+ gem.files =%w(Rakefile) + Dir.glob("lib/**/*")
23
+ gem.require_path = 'lib'
24
+ # Include your dependencies below. Runtime dependencies are required when using your gem,
25
+ # and development dependencies are only needed for development (ie running rake tasks, tests, etc)
26
+ # gem.add_runtime_dependency 'jabber4r', '> 0.1'
27
+ end
28
+ Jeweler::RubygemsDotOrgTasks.new
29
+
30
+ require 'rake/testtask'
31
+ Rake::TestTask.new(:test) do |test|
32
+ test.libs << 'lib' << 'test'
33
+ test.pattern = 'test/**/test_*.rb'
34
+ test.verbose = true
35
+ end
36
+
37
+ require 'rcov/rcovtask'
38
+ Rcov::RcovTask.new do |test|
39
+ test.libs << 'test'
40
+ test.pattern = 'test/**/test_*.rb'
41
+ test.verbose = true
42
+ end
43
+
44
+ task :default => :test
45
+
46
+ require 'rake/rdoctask'
47
+ Rake::RDocTask.new do |rdoc|
48
+ version = File.exist?('VERSION') ? File.read('VERSION') : ""
49
+
50
+ rdoc.rdoc_dir = 'rdoc'
51
+ rdoc.title = "iravat #{version}"
52
+ rdoc.rdoc_files.include('README*')
53
+ rdoc.rdoc_files.include('lib/**/*.rb')
54
+ end
@@ -0,0 +1,28 @@
1
+ <ChipMonkAWSConfigs>
2
+
3
+ <AWSAccessKey>
4
+ <AWSAccessKey>AKIAI3PFX46PLS7Q2FSQ</AWSAccessKey>
5
+ <AWSAccessSecretKey>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</AWSAccessSecretKey>
6
+ </AWSAccessKey>
7
+
8
+ <S3>
9
+ <Server>s3.amazonaws.com</Server>
10
+ <Port>443</Port>
11
+ <Protocol>https</Protocol>
12
+ <MultiThread>false</MultiThread>
13
+ <NamePrefix>ChipMonk</NamePrefix>
14
+ <NameSuffix>S3</NameSuffix>
15
+ <Delimeter>-</Delimeter>
16
+ </S3>
17
+
18
+ <EC2>
19
+ <NamePrefix>ChipMonk></NamePrefix>
20
+ <NameSuffix>S3</NameSuffix>
21
+ </EC2>
22
+
23
+ <LogFile>
24
+ <FileName>log.txt</FileName>
25
+ </LogFile>
26
+
27
+
28
+ </ChipMonkAWSConfigs>
@@ -0,0 +1,62 @@
1
+ module Iravat
2
+
3
+ #require './ir_module'
4
+
5
+ class IrAwsConfigManager
6
+
7
+
8
+ #Constructor: takes default configuration from preconfigured path unless changed
9
+ # by caller.
10
+
11
+ def initialize(confXMLPath=IRAVAT_AWS_CONFIG_XML_PATH)
12
+ $ir_logger=IrLogger.new(IRAVAT_AWS_CONFIG_LOGGER)
13
+ $logger=$ir_logger.getLog4rLogger()
14
+ @confXMLPath=confXMLPath
15
+ end
16
+
17
+
18
+ def loadConfigurationFile()
19
+ begin
20
+ @xmlDom = Nokogiri::XML(File.open(@confXMLPath).read)
21
+
22
+
23
+ if(@xmlDom.nil?)
24
+ #$log.error("XML DOM is null")
25
+ $logger.error("AWS XML parsing resulted in error. Document is null.")
26
+ end
27
+ rescue Nokogiri::XML::SyntaxError
28
+ # $log.error("Exception raised while parsing XML file")
29
+ $logger.error("Exception raised while parsing XML file")
30
+ return
31
+ end
32
+ end
33
+
34
+ def getPathFromXML(path)
35
+ nodeSet= @xmlDom.xpath(path)
36
+ if(nodeSet.nil?)
37
+ $logger.error("Nothing present in path:" + path)
38
+ return ""
39
+ end
40
+ #TODO Add multi node
41
+ if(nodeSet.length() != 1)
42
+ $logger.error("Bad XML configuration file:" + @confXMLPath + " for path " + path)
43
+ return ""
44
+ end
45
+
46
+ return nodeSet[0].text
47
+ end
48
+
49
+ end
50
+
51
+ if __FILE__ == $0
52
+ #Unit tester hack
53
+ #require './ir_log_initializer.rb'
54
+ #li = IrLogInitializer.new
55
+ #li.init()
56
+ ########################
57
+ instance = IrAwsConfigManager.new(IRAVAT_AWS_CONFIG_XML_PATH)
58
+ instance.loadConfigurationFile()
59
+ $logger.info(instance.getPathFromXML("/ChipMonkAWSConfigs/AWSAccessKey/AWSAccessKeyID"))
60
+ end
61
+
62
+ end
data/lib/ec2/ir_ec2.rb ADDED
@@ -0,0 +1,190 @@
1
+ module Iravat
2
+
3
+ #require './ir_module'
4
+
5
+ class IrEC2
6
+
7
+ def initialize()
8
+ @logger = IrLogger.new(self.class.name).getLog4rLogger()
9
+ awsConfig=IrAwsConfigManager.new(IRAVAT_AWS_CONFIG_XML_PATH)
10
+ awsConfig.loadConfigurationFile()
11
+ @awsKeyID=awsConfig.getPathFromXML("/ChipMonkAWSConfigs/AWSAccessKey/AWSAccessKey")
12
+ @awsSecretKey=awsConfig.getPathFromXML("/ChipMonkAWSConfigs/AWSAccessKey/AWSAccessSecretKey")
13
+ end
14
+
15
+
16
+ #common error handler for RightScale Lib
17
+ def error_ec2 (err)
18
+ err.errors.each do |e|
19
+ @logger.error(err.errors)
20
+ end
21
+ end
22
+
23
+
24
+ def connectToAWS()
25
+ begin
26
+ @ec2 = RightAws::Ec2.new(@awsKeyID,@awsSecretKey)
27
+ if(@ec2.nil?)
28
+ @logger.error("Failed to create an access to EC2")
29
+ return false
30
+ end
31
+ return true
32
+ rescue RightAws::AwsError=>err
33
+ self.error_ec2(err)
34
+ return false
35
+ end
36
+ end
37
+
38
+
39
+ def getKey()
40
+ begin
41
+ key = @ec2.describe_key_pairs()[0][:aws_key_name]
42
+ if(key.nil?)
43
+ @logger.error("No Key pair existing")
44
+ end
45
+ return key
46
+ rescue RightAws::AwsError=>err
47
+ self.error_ec2(err)
48
+ return nil
49
+ end
50
+ end
51
+
52
+
53
+ def getSecurityGroup()
54
+ begin
55
+ securityGroup = @ec2.describe_key_pairs()[0]
56
+ if(securityGroup.nil?)
57
+ @logger.error("No security group created")
58
+ end
59
+ return securityGroup
60
+ rescue RightAws::AwsError=>err
61
+ self.error_ec2(err)
62
+ return nil
63
+ end
64
+ end
65
+
66
+
67
+ def printAllActiveImages()
68
+ begin
69
+ awsInstances=@ec2.describe_instances
70
+ #Loop on all instance
71
+ awsInstances.each do |awsInstance|
72
+ @logger.info("============================================")
73
+ @logger.info("AWS Instance ID:" + awsInstance[:aws_instance_id])
74
+ @logger.info("AWS Image ID:" + awsInstance[:aws_image_id])
75
+ @logger.info("AWS State:" + awsInstance[:aws_state])
76
+ if( awsInstance[:aws_state] == "running")
77
+ @logger.info("IP Address:" + awsInstance[:ip_address])
78
+ @logger.info("DNS Name:" + awsInstance[:dns_name])
79
+ @logger.info("AWS Instance Type:" + awsInstance[:aws_instance_type])
80
+ @logger.info("AWS Private DNS Name:" + awsInstance[:private_dns_name])
81
+ @logger.info("AWS Instance Launch Time:" + awsInstance[:aws_launch_time])
82
+ @logger.info("AWS Availability Zone:" + awsInstance[:aws_availability_zone])
83
+
84
+ blockDevicesMapped=awsInstance[:block_device_mappings]
85
+
86
+ blockDevicesMapped.each do |blockDevice|
87
+ @logger.info(" -----------------------------------------------")
88
+ @logger.info(" EBS Device Name:" + blockDevice[:device_name])
89
+ @logger.info(" EBS Device ID:" + blockDevice[:ebs_volume_id])
90
+ @logger.info(" EBS Device Attach Time:" + blockDevice[:ebs_attach_time])
91
+ @logger.info(" -----------------------------------------------")
92
+ end
93
+ end
94
+
95
+ @logger.info("============================================")
96
+ end
97
+ rescue RightAws::AwsError=>err
98
+ self.error_ec2(err)
99
+ return nil
100
+ end
101
+ end
102
+
103
+
104
+ def createNewInstance(imageID,instanceType, availablilityZone, userCookieData)
105
+ #run_instances(image_id, min_count, max_count, group_ids, key_name, user_data='', addressing_type = nil,
106
+ #instance_type = nil, kernel_id = nil, ramdisk_id = nil, availability_zone = nil, monitoring_enabled = nil,
107
+ #subnet_id = nil, disable_api_termination = nil, instance_initiated_shutdown_behavior = nil, block_device_mappings = nil,
108
+ #placement_group_name = nil, client_token = nil)
109
+ begin
110
+ responseDetails=@ec2.run_instances(imageID,
111
+ 1,
112
+ 1,
113
+ self.getSecurityGroup()[:aws_group_name],
114
+ self.getKey(),
115
+ userCookieData,
116
+ nil,
117
+ instanceType,
118
+ nil,
119
+ nil,
120
+ availablilityZone)[0]
121
+
122
+
123
+
124
+ @logger.debug("============================================")
125
+ @logger.debug("AMI instance launched")
126
+ @logger.debug("Instance ID:" + responseDetails[:aws_instance_id])
127
+ @logger.debug("Instance State:" + responseDetails[:aws_state])
128
+ @logger.debug("Instance Type:" + responseDetails[:aws_instance_type])
129
+ @logger.debug("Availability Zone:" + responseDetails[:aws_availability_zone])
130
+ @logger.debug ("============================================")
131
+ rescue RightAws::AwsError=>err
132
+ self.error_ec2(err)
133
+ return nil
134
+ end
135
+ return responseDetails[:aws_instance_id]
136
+
137
+ end
138
+
139
+
140
+ def rebootInstance(instanceID)
141
+ begin
142
+ response=@ec2.reboot_instances(instanceID)
143
+ if(response == false)
144
+ @logger.debug("AMI instance id " + instanceID + "failed to reboot")
145
+ else
146
+ @logger.debug("AMI instance id " + instanceID + "rebooted successfully")
147
+ end
148
+ rescue RightAws::AwsError=>err
149
+ self.error_ec2(err)
150
+ return nil
151
+ end
152
+ end
153
+
154
+ def terminateInstance(instanceID)
155
+ begin
156
+ instanceIDArr=[instanceID]
157
+ responseDetails=@ec2.terminate_instances(instanceIDArr)
158
+ @logger.debug("============================================")
159
+ @logger.debug("AMI instance terminated")
160
+ @logger.debug("Instance ID:" + responseDetails[0][:aws_instance_id])
161
+ @logger.debug("Current State Code:" + responseDetails[0][:aws_current_state_code].to_s())
162
+ @logger.debug("Current State Name:" + responseDetails[0][:aws_current_state_name])
163
+ @logger.debug("Previous State Code:" + responseDetails[0][:aws_prev_state_code].to_s())
164
+ @logger.debug("Previous State Name:" + responseDetails[0][:aws_prev_state_name])
165
+ @logger.debug("============================================")
166
+ rescue RightAws::AwsError=>err
167
+ self.error_ec2(err)
168
+ return nil
169
+ end
170
+ end
171
+ end
172
+
173
+ if __FILE__ == $0
174
+ #require './ir_log_initializer.rb'
175
+ #li = IrLogInitializer.new
176
+ #li.init()
177
+ #$ir_logger=IrLogger.new("AnotherLogger")
178
+ #@logger=$ir_logger.getLog4rLogger()
179
+ ec2Manager=IrEC2.new
180
+ if(ec2Manager.connectToAWS() == true)
181
+ ec2Manager.printAllActiveImages()
182
+ instanceID=ec2Manager.createNewInstance("ami-00d62369", "t1.micro","us-east-1b","Sudhanshu-Started")
183
+ ec2Manager.terminateInstance(instanceID)
184
+ ec2Manager.printAllActiveImages()
185
+ end
186
+
187
+
188
+ end
189
+
190
+ end
data/lib/iravat.rb ADDED
@@ -0,0 +1,28 @@
1
+ require 'right_aws'
2
+ require 'logger'
3
+ require 'rubygems'
4
+ require 'nokogiri'
5
+ require 'log4r'
6
+ require 'log4r/configurator'
7
+
8
+
9
+ $:.unshift(File.dirname(__FILE__))
10
+ require 'logger/ir_logger'
11
+ require 'logger/ir_log_initializer'
12
+ require 'awsconf/ir_aws_config_manager'
13
+ require 's3/ir_s3'
14
+ require 'ec2/ir_ec2'
15
+
16
+ module Iravat
17
+
18
+ IRAVAT_RIGHT_SCALE_LOGGER = 'RightScaleLogger'
19
+ IRAVAT_LOGGER_DEFAULT_LOGGER = 'MasterLogger'
20
+ IRAVAT_AWS_CONFIG_LOGGER = 'AWSConfig'
21
+
22
+ IRAVAT_LOG_CONFIG_XML = File.expand_path(File.dirname(__FILE__)) +'/' + 'logger/log4r_config.xml'
23
+ IRAVAT_LOG_PATH = './'
24
+
25
+ IRAVAT_LOG_FILE = File.expand_path(File.dirname(__FILE__)) + '/' + 'logger/my_configfile.log'
26
+
27
+ IRAVAT_AWS_CONFIG_XML_PATH = File.expand_path(File.dirname(__FILE__)) + '/' + 'awsconf/aws_config.xml'
28
+ end
@@ -0,0 +1,29 @@
1
+ module Iravat
2
+
3
+ #require './ir_module'
4
+
5
+ class IrLogInitializer
6
+
7
+ include Log4r
8
+
9
+ def self.init()
10
+ begin
11
+ Configurator['logpath'] = IRAVAT_LOG_PATH # was './logs'
12
+ Configurator.load_xml_file(IRAVAT_LOG_CONFIG_XML)
13
+ rescue Log4r::ConfigError => e
14
+ puts "Error in configuration log4r ==== " + e.message
15
+ end
16
+ end
17
+
18
+ end
19
+
20
+
21
+ if __FILE__ == $0
22
+ #li = IrLogInitializer.new
23
+ #li.init()
24
+ IrLogInitializer::init()
25
+ log =Log4r::Logger["MainLogger"]
26
+ log.fatal("hi")
27
+ end
28
+
29
+ end
@@ -0,0 +1,104 @@
1
+ module Iravat
2
+
3
+ #require './ir_module'
4
+
5
+ class IrLogger
6
+
7
+ def initialize(loggerType = IRAVAT_LOGGER_DEFAULT_LOGGER)
8
+ IrLogInitializer::init()
9
+ @module_logger =Log4r::Logger[loggerType]
10
+
11
+ if( @module_logger.nil?)
12
+ print( " == Unable to initiate logging for module " + loggerType + "==== Falling back to MasterLogger <log4r_config.xml>\n")
13
+ @module_logger =Log4r::Logger[IRAVAT_LOGGER_DEFAULT_LOGGER]
14
+ if (@module_logger.nil? )
15
+ #Falling to default Ruby Logger
16
+ @module_logger = Logger.new(IRAVAT_LOG_FILE)
17
+ @module_logger.warn("Unable to initiate logging for module MasterLogger\n")
18
+ end
19
+ end
20
+ end
21
+
22
+
23
+ def getLog4rLogger()
24
+ return @module_logger
25
+ end
26
+
27
+
28
+ def trace(message)
29
+ if( @module_logger.nil?)
30
+ print("TRACE:" + message + "\n")
31
+ else
32
+ @module_logger.trace(message)
33
+ end
34
+ end
35
+
36
+
37
+ def debug(message)
38
+ if( @module_logger.nil?)
39
+ print("DEBUG:" + message + "\n")
40
+ else
41
+ @module_logger.debug(message)
42
+ end
43
+ end
44
+
45
+
46
+ def info(message)
47
+ if( @module_logger.nil?)
48
+ print("INFO:" + message + "\n")
49
+ else
50
+ @module_logger.info(message)
51
+ end
52
+ end
53
+
54
+
55
+ def warn(message)
56
+ if( @module_logger.nil?)
57
+ print("WARN:" + message + "\n")
58
+ else
59
+ @module_logger.warn(message)
60
+ end
61
+ end
62
+
63
+
64
+ def error(message)
65
+ if( @module_logger.nil?)
66
+ print("ERROR:" + message + "\n")
67
+ else
68
+ @module_logger.error(message)
69
+ end
70
+ end
71
+
72
+
73
+ def fatal(message)
74
+ if( @module_logger.nil?)
75
+ print("FATAL:" + message + "\n")
76
+ else
77
+ @module_logger.error(message)
78
+ end
79
+ end
80
+ end
81
+
82
+
83
+ if __FILE__ == $0
84
+ require './ir_log_initializer.rb'
85
+ #call only once
86
+ #li = IrLogInitializer.new
87
+ #li.init()
88
+ #IrLogInitializer::init()
89
+ ########################
90
+
91
+ #call on head of file
92
+ log = IrLogger.new("AnotherLogger")
93
+ ############
94
+
95
+
96
+ log.debug("Hi debug")
97
+ log.info("Hi info")
98
+ log.warn("Hi warn")
99
+ log.error("Hi error")
100
+ log.fatal("Hi fatal")
101
+
102
+ end
103
+
104
+ end
@@ -0,0 +1,59 @@
1
+
2
+ <log4r_config>
3
+
4
+ <pre_config>
5
+ <custom_levels>DEBUG, INFO, WARN, ERROR, FATAL</custom_levels>
6
+ <global level="ALL"/>
7
+ </pre_config>
8
+
9
+ <outputter name="console" type="StdoutOutputter" level="DEBUG" >
10
+ <formatter type="Log4r::PatternFormatter">
11
+ <pattern>=>[%5l %d] %C: %M [%t]</pattern>
12
+ </formatter>
13
+ </outputter>
14
+
15
+ <outputter name="file_outputter" type="FileOutputter">
16
+ <filename>/var/log/chipmonk/iravat/logs.txt</filename>
17
+ <formatter type="Log4r::PatternFormatter">
18
+ <pattern>=>[%5l %d] %C: %M [%t]</pattern>
19
+ </formatter>
20
+ </outputter>
21
+
22
+ <logger name="MasterLogger"
23
+ level="ALL" additive="false" trace="true">
24
+ <outputter>file_outputter</outputter>
25
+ </logger>
26
+
27
+ <logger name="S3Logger"
28
+ level="ALL" additive="false" trace="true">
29
+ <outputter>console</outputter>
30
+ <outputter>file_outputter</outputter>
31
+ </logger>
32
+
33
+ <logger name="Ec2Logger"
34
+ level="ALL" additive="false" trace="true">
35
+ <outputter>console</outputter>
36
+ <outputter>file_outputter</outputter>
37
+ </logger>
38
+
39
+ <logger name="AWSConfig"
40
+ level="ALL" additive="false" trace="true">
41
+ <outputter>console</outputter>
42
+ <outputter>file_outputter</outputter>
43
+ </logger>
44
+
45
+ <logger name="RightScaleLogger"
46
+ level="ALL" additive="false" trace="true">
47
+ <outputter>console</outputter>
48
+ <outputter>file_outputter</outputter>
49
+ </logger>
50
+ </log4r_config>
51
+ W, [2011-04-20T15:23:41.665759 #9565] WARN -- : Unable to initiate logging for module MasterLogger
52
+
53
+ W, [2011-04-20T15:23:41.665927 #9565] WARN -- : Unable to initiate logging for module MasterLogger
54
+
55
+ W, [2011-04-20T15:23:41.666407 #9565] WARN -- : Unable to initiate logging for module MasterLogger
56
+
57
+ I, [2011-04-20T15:23:41.666576 #9565] INFO -- : New RightAws::S3Interface using shared connections mode
58
+ I, [2011-04-20T15:23:41.667076 #9565] INFO -- : Opening new HTTPS connection to s3.amazonaws.com:443
59
+ I, [2011-04-20T15:23:43.238456 #9565] INFO -- : New RightAws::S3Interface using shared connections mode
data/lib/s3/ir_s3.rb ADDED
@@ -0,0 +1,100 @@
1
+ module Iravat
2
+
3
+
4
+ class IrS3
5
+
6
+
7
+ def load_config()
8
+ @config = IrAwsConfigManager.new(IRAVAT_AWS_CONFIG_XML_PATH)
9
+ @config.loadConfigurationFile()
10
+ end
11
+
12
+
13
+ def get_config(xpath)
14
+ @config.getPathFromXML(xpath)
15
+ end
16
+
17
+
18
+ def initialize()
19
+ @logger = IrLogger.new(self.class.name).getLog4rLogger()
20
+
21
+ self.load_config()
22
+
23
+ @aws_access_key_id = self.get_config('/ChipMonkAWSConfigs/AWSAccessKey/AWSAccessKey')
24
+ @aws_secret_access_key = self.get_config('/ChipMonkAWSConfigs/AWSAccessKey/AWSAccessSecretKey')
25
+
26
+ @s3config = {:server => self.get_config('/ChipMonkAWSConfigs/S3/Server'), # Amazon service host: 's3.amazonaws.com'(default)
27
+ :port => self.get_config('/ChipMonkAWSConfigs/S3/Port'), # Amazon service port: 80 or 443(default)
28
+ :protocol => self.get_config('/ChipMonkAWSConfigs/S3/Protocol'), # Amazon service protocol: 'http' or 'https'(default)
29
+ :multi_thread => self.get_config('/ChipMonkAWSConfigs/S3/MultiThread'), # Multi-threaded (connection per each thread):
30
+ :logger => IrLogger.new(IRAVAT_RIGHT_SCALE_LOGGER).getLog4rLogger(),} # Defaults to Stdout
31
+
32
+ @name_prefix = self.get_config('/ChipMonkAWSConfigs/S3/NamePrefix')
33
+ @name_suffix = self.get_config('/ChipMonkAWSConfigs/S3/NameSuffix')
34
+ @delimeter = self.get_config('/ChipMonkAWSConfigs/S3/Delimeter')
35
+ end
36
+
37
+
38
+ #common error handler for RightScale Lib
39
+ def error_aws (aws,err)
40
+ err.errors.each do |e|
41
+ @logger.error( "#### System Error #### " + err.errors)
42
+ end
43
+ end
44
+
45
+
46
+ def list_s3_bucket()
47
+ s3 = RightAws::S3.new(@aws_access_key_id, @aws_secret_access_key,@s3config)
48
+
49
+ my_bucket_names = s3.buckets.map { |b| b.name}
50
+ @logger.info("Buckets on S3: #{my_bucket_names.join(', ')}")
51
+
52
+ rescue RightAws::AwsError=>err
53
+ self.error_aws(s3,err)
54
+ end
55
+
56
+
57
+ def create_s3_bucket(username)
58
+ s3 = RightAws::S3.new(@aws_access_key_id, @aws_secret_access_key,@s3config)
59
+
60
+ bucketname = @name_prefix+@delimeter+username+@delimeter+@name_suffix
61
+
62
+ @logger.info(bucketname)
63
+
64
+ bucket = s3.bucket(bucketname, true)
65
+ rescue RightAws::AwsError=>err
66
+ self.error_aws(s3,err)
67
+
68
+ # keymap=bucket.keys.map{|key| key.name}
69
+ # puts "File list : #{keymap.join(', ')}"
70
+ end
71
+
72
+
73
+ def delete_s3_bucket(bucketname)
74
+ s3 = RightAws::S3.new(@aws_access_key_id, @aws_secret_access_key,@s3config)
75
+ bucket = s3.bucket(bucketname)
76
+ if( bucket.nil?)
77
+ raise "No Bucket Exist"
78
+ end
79
+ #clear objects from bucket
80
+ bucket.clear()
81
+ bucket.delete(:force=>false)
82
+ rescue RightAws::AwsError=>err
83
+ self.error_aws(s3,err)
84
+
85
+ #Handling the RuntimeError
86
+ rescue => e
87
+ @logger.warn(e.message)
88
+ end
89
+ end
90
+
91
+
92
+ if __FILE__ == $0
93
+ ir = IrS3.new
94
+
95
+ ir.create_s3_bucket("alok")
96
+ ir.list_s3_bucket()
97
+ #ir.delete_s3_bucket("iravattest")
98
+ end
99
+
100
+ end
metadata ADDED
@@ -0,0 +1,134 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: iravat
3
+ version: !ruby/object:Gem::Version
4
+ hash: 27
5
+ prerelease: false
6
+ segments:
7
+ - 0
8
+ - 1
9
+ - 0
10
+ version: 0.1.0
11
+ platform: ruby
12
+ authors:
13
+ - alok
14
+ autorequire:
15
+ bindir: bin
16
+ cert_chain: []
17
+
18
+ date: 2011-04-23 00:00:00 +05:30
19
+ default_executable:
20
+ dependencies:
21
+ - !ruby/object:Gem::Dependency
22
+ type: :development
23
+ prerelease: false
24
+ name: shoulda
25
+ version_requirements: &id001 !ruby/object:Gem::Requirement
26
+ none: false
27
+ requirements:
28
+ - - ">="
29
+ - !ruby/object:Gem::Version
30
+ hash: 3
31
+ segments:
32
+ - 0
33
+ version: "0"
34
+ requirement: *id001
35
+ - !ruby/object:Gem::Dependency
36
+ type: :development
37
+ prerelease: false
38
+ name: bundler
39
+ version_requirements: &id002 !ruby/object:Gem::Requirement
40
+ none: false
41
+ requirements:
42
+ - - ~>
43
+ - !ruby/object:Gem::Version
44
+ hash: 23
45
+ segments:
46
+ - 1
47
+ - 0
48
+ - 0
49
+ version: 1.0.0
50
+ requirement: *id002
51
+ - !ruby/object:Gem::Dependency
52
+ type: :development
53
+ prerelease: false
54
+ name: jeweler
55
+ version_requirements: &id003 !ruby/object:Gem::Requirement
56
+ none: false
57
+ requirements:
58
+ - - ~>
59
+ - !ruby/object:Gem::Version
60
+ hash: 7
61
+ segments:
62
+ - 1
63
+ - 5
64
+ - 2
65
+ version: 1.5.2
66
+ requirement: *id003
67
+ - !ruby/object:Gem::Dependency
68
+ type: :development
69
+ prerelease: false
70
+ name: rcov
71
+ version_requirements: &id004 !ruby/object:Gem::Requirement
72
+ none: false
73
+ requirements:
74
+ - - ">="
75
+ - !ruby/object:Gem::Version
76
+ hash: 3
77
+ segments:
78
+ - 0
79
+ version: "0"
80
+ requirement: *id004
81
+ description: Access to AWS
82
+ email: alok@chipmonk.in
83
+ executables: []
84
+
85
+ extensions: []
86
+
87
+ extra_rdoc_files: []
88
+
89
+ files:
90
+ - Rakefile
91
+ - lib/awsconf/aws_config.xml
92
+ - lib/awsconf/ir_aws_config_manager.rb
93
+ - lib/ec2/ir_ec2.rb
94
+ - lib/iravat.rb
95
+ - lib/logger/ir_log_initializer.rb
96
+ - lib/logger/ir_logger.rb
97
+ - lib/logger/log4r_config.xml
98
+ - lib/s3/ir_s3.rb
99
+ has_rdoc: true
100
+ homepage: http://github.com/aloksrivastava78/iravat
101
+ licenses:
102
+ - MIT
103
+ post_install_message:
104
+ rdoc_options: []
105
+
106
+ require_paths:
107
+ - lib
108
+ required_ruby_version: !ruby/object:Gem::Requirement
109
+ none: false
110
+ requirements:
111
+ - - ">="
112
+ - !ruby/object:Gem::Version
113
+ hash: 3
114
+ segments:
115
+ - 0
116
+ version: "0"
117
+ required_rubygems_version: !ruby/object:Gem::Requirement
118
+ none: false
119
+ requirements:
120
+ - - ">="
121
+ - !ruby/object:Gem::Version
122
+ hash: 3
123
+ segments:
124
+ - 0
125
+ version: "0"
126
+ requirements: []
127
+
128
+ rubyforge_project:
129
+ rubygems_version: 1.3.7
130
+ signing_key:
131
+ specification_version: 3
132
+ summary: Access to AWS
133
+ test_files: []
134
+