Skip to content

Commit 373b963

Browse files
author
fdupoux
committed
Version 0.2.3: Make AWS access keys optional
1 parent 7443b16 commit 373b963

File tree

7 files changed

+47
-22
lines changed

7 files changed

+47
-22
lines changed

ChangeLog

+3
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,9 @@
22
# ChangeLog for rubackup #
33
##############################################################################
44

5+
* 0.2.3 (2016-05-15)
6+
- Make AWS access keys optional
7+
58
* 0.2.2 (2016-05-15)
69
- Support for long EC2 instance IDs
710

rubackup.spec

+3
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,9 @@ rsync -a ${RPM_BUILD_DIR}/rubackup-%{version}/src/ ${RPM_BUILD_ROOT}%{deploydir}
3333

3434
%changelog
3535

36+
* Sun May 15 2016 Francois Dupoux - 0.2.3-1
37+
- Make AWS access keys optional
38+
3639
* Sun May 15 2016 Francois Dupoux - 0.2.2-1
3740
- Support for long EC2 instance IDs
3841

src/lib/core/config.rb

+2-2
Original file line numberDiff line numberDiff line change
@@ -159,7 +159,7 @@ def validate_config(config)
159159
[
160160
ValidationRule.new(name='bucket', mandatory=true, defval=nil, validator=StringValidator.new),
161161
ValidationRule.new(name='awsregion', mandatory=true, defval=nil, validator=AwsRegionValidator.new),
162-
ValidationRule.new(name='accesskey', mandatory=true, defval=nil, validator=AwsAccessKeyReferenceValidator.new),
162+
ValidationRule.new(name='accesskey', mandatory=false, defval=nil, validator=AwsAccessKeyReferenceValidator.new),
163163
]
164164
$resources["aws_s3_buckets"] = load_category(config, "aws_s3_buckets", aws_s3_buckets_val)
165165

@@ -169,7 +169,7 @@ def validate_config(config)
169169
aws_ses_medias_val =
170170
[
171171
ValidationRule.new(name='awsregion', mandatory=true, defval=nil, validator=AwsRegionValidator.new),
172-
ValidationRule.new(name='accesskey', mandatory=true, defval=nil, validator=AwsAccessKeyReferenceValidator.new),
172+
ValidationRule.new(name='accesskey', mandatory=false, defval=nil, validator=AwsAccessKeyReferenceValidator.new),
173173
ValidationRule.new(name='mailsrc', mandatory=true, defval=nil, validator=EmailAddressValidator.new),
174174
ValidationRule.new(name='maildst', mandatory=true, defval=nil, validator=EmailAddressValidator.new),
175175
]

src/lib/modules/backup-ebssnap.rb

+13-6
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ def get_options_validation()
3737
ValidationRule.new(name='fsfreeze', mandatory=false, defval=[], validator=ArrayValidator.new),
3838
ValidationRule.new(name='stopsvc', mandatory=false, defval=[], validator=ArrayValidator.new),
3939
ValidationRule.new(name='awsregion', mandatory=true, defval=nil, validator=AwsRegionValidator.new),
40-
ValidationRule.new(name='accesskey', mandatory=true, defval=nil, validator=AwsAccessKeyReferenceValidator.new),
40+
ValidationRule.new(name='accesskey', mandatory=false, defval=nil, validator=AwsAccessKeyReferenceValidator.new),
4141
]
4242
end
4343

@@ -50,11 +50,18 @@ def detect_ec2_instance_id()
5050

5151
def init_ec2_handle(backup_opts)
5252
awsregion = backup_opts.fetch('awsregion')
53-
accesskey = backup_opts.fetch('accesskey')
54-
keypublic = accesskey['public']
55-
keysecret = accesskey['secret']
56-
creds = Aws::Credentials.new(keypublic, keysecret)
57-
@ec2 = Aws::EC2::Client.new(region: awsregion, credentials: creds)
53+
# get access keys if they are defined
54+
keypublic = nil
55+
keysecret = nil
56+
accesskey = backup_opts.fetch('accesskey', nil)
57+
if accesskey then
58+
keypublic = accesskey.fetch('public')
59+
keysecret = accesskey.fetch('secret')
60+
creds = Aws::Credentials.new(keypublic, keysecret)
61+
@ec2 = Aws::EC2::Client.new(region: awsregion, credentials: creds)
62+
else
63+
@ec2 = Aws::EC2::Client.new(region: awsregion)
64+
end
5865
end
5966

6067
def detect_ebs_volumes(instid)

src/lib/modules/notify-aws-ses.rb

+11-6
Original file line numberDiff line numberDiff line change
@@ -39,13 +39,18 @@ def get_options_validation()
3939
def get_ses_access(sesmedia)
4040
# extract information from parameters
4141
awsregion = sesmedia.fetch('awsregion')
42+
# get access keys if they are defined
43+
keypublic = nil
44+
keysecret = nil
4245
accesskey = sesmedia.fetch('accesskey')
43-
keypublic = accesskey['public']
44-
keysecret = accesskey['secret']
45-
# get an instance of the S3 interface
46-
creds = Aws::Credentials.new(keypublic, keysecret)
47-
ses = Aws::SES::Client.new(region: awsregion, credentials: creds)
48-
# return s3 object
46+
if accesskey then
47+
keypublic = accesskey.fetch('public')
48+
keysecret = accesskey.fetch('secret')
49+
creds = Aws::Credentials.new(keypublic, keysecret)
50+
ses = Aws::SES::Client.new(region: awsregion, credentials: creds)
51+
else
52+
ses = Aws::SES::Client.new(region: awsregion)
53+
end
4954
return ses
5055
end
5156

src/lib/modules/remote-aws-s3.rb

+14-7
Original file line numberDiff line numberDiff line change
@@ -41,13 +41,20 @@ def get_s3_access(remote_opts)
4141
# extract information from parameters
4242
bucketdata = remote_opts.fetch('s3_bucket')
4343
awsregion = bucketdata.fetch('awsregion')
44-
accesskey = bucketdata.fetch('accesskey')
45-
keypublic = accesskey.fetch('public')
46-
keysecret = accesskey.fetch('secret')
47-
# get an instance of the S3 interface.
48-
creds = Aws::Credentials.new(keypublic, keysecret)
49-
s3clt = Aws::S3::Client.new(region: awsregion, credentials: creds)
50-
s3res = Aws::S3::Resource.new(:access_key_id => keypublic, :secret_access_key => keysecret, :region => awsregion)
44+
# get access keys if they are defined
45+
keypublic = nil
46+
keysecret = nil
47+
accesskey = bucketdata.fetch('accesskey', nil)
48+
if accesskey then
49+
keypublic = accesskey.fetch('public')
50+
keysecret = accesskey.fetch('secret')
51+
creds = Aws::Credentials.new(keypublic, keysecret)
52+
s3clt = Aws::S3::Client.new(region: awsregion, credentials: creds)
53+
s3res = Aws::S3::Resource.new(:access_key_id => keypublic, :secret_access_key => keysecret, :region => awsregion)
54+
else
55+
s3clt = Aws::S3::Client.new(region: awsregion)
56+
s3res = Aws::S3::Resource.new(:region => awsregion)
57+
end
5158
# return s3 objects
5259
return s3clt,s3res
5360
end

src/rubackup.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
require 'yaml'
2727

2828
# Define constants
29-
$RUBACKUP_VERSION = "0.2.2"
29+
$RUBACKUP_VERSION = "0.2.3"
3030
$RUBACKUP_MIN_RUBY = 1.9 # Required by Open3.pipeline()
3131

3232
# Define global variables

0 commit comments

Comments
 (0)