From 1935dedb4fee80168d88f9909487005c58d3eca2 Mon Sep 17 00:00:00 2001 From: Zenteno Date: Fri, 20 Nov 2015 11:48:38 -0600 Subject: [PATCH 01/13] Adding authentication http method, option to disable SSL check --- bin/yums3sync | 32 +- lib/yum_s3_sync/http_downloader.rb | 13 +- lib/yum_s3_sync/repo_syncer.rb | 117 +++++--- lib/yum_s3_sync/s3_downloader.rb | 2 +- lib/yum_s3_sync/yum_s3_sync.sublime-project | 8 + lib/yum_s3_sync/yum_s3_sync.sublime-workspace | 284 ++++++++++++++++++ yum_s3_sync.gemspec | 6 +- 7 files changed, 403 insertions(+), 59 deletions(-) create mode 100644 lib/yum_s3_sync/yum_s3_sync.sublime-project create mode 100644 lib/yum_s3_sync/yum_s3_sync.sublime-workspace diff --git a/bin/yums3sync b/bin/yums3sync index 7702136..af0d724 100755 --- a/bin/yums3sync +++ b/bin/yums3sync @@ -3,14 +3,17 @@ require 'optparse' require 'yum_s3_sync' + options = {} opt_parser = OptionParser.new do |opts| opts.banner = 'Usage: yums3sync [options]' + opts.separator "" + opts.separator "Specific options:" - opts.on('-s', '--source SOURCE', 'HTTP source URL') do |s| + opts.on('-s', '--source [SOURCE]', 'HTTP source URL') do |s| options[:source_base] = s end - opts.on('-b', '--bucket BUCKET', 'Target bucket name') do |b| + opts.on('-b', '--bucket [BUCKET]', 'Target bucket name') do |b| options[:target_bucket] = b end opts.on('-p', '--prefix PREFIX', 'Target bucket prefix') do |p| @@ -22,6 +25,23 @@ opt_parser = OptionParser.new do |opts| opts.on('-n', '--dry-run', 'Don\'t make any changes') do |n| options[:dry_run] = true end + opts.separator "" + opts.separator "Authentication options:" + options[:authentication] = false + opts.on('-a', '--authentication', 'Allow authentication method to http(s)') do |a| + options[:authentication] = true + end + + opts.on('--username [USERNAME]', 'Username to use in the http(s)') do |u| + options[:username] = u + end + + opts.on('--password [PASSWORD]', 'Password to use in the https') do |pa| + options[:password] = pa + end + opts.on('-d', '--disable', 'Disable SSL to check http(s)') do |a| + options[:ssl] = true + end end opt_parser.parse! @@ -31,7 +51,13 @@ if !options[:source_base] || !options[:target_bucket] || !options[:target_base] exit 1 end -repo_syncer = YumS3Sync::RepoSyncer.new(options[:source_base], options[:target_bucket], options[:target_base], options[:keep], options[:dry_run]) +if options[:authentication] and (!options[:username] || !options[:password]) + puts options[:authentication] + puts opt_parser + exit 1 +end + +repo_syncer = YumS3Sync::RepoSyncer.new(options[:source_base], options[:target_bucket], options[:target_base], options) begin repo_syncer.sync diff --git a/lib/yum_s3_sync/http_downloader.rb b/lib/yum_s3_sync/http_downloader.rb index ca8b3f2..458b349 100644 --- a/lib/yum_s3_sync/http_downloader.rb +++ b/lib/yum_s3_sync/http_downloader.rb @@ -1,10 +1,15 @@ require 'open-uri' require 'socket' +require 'openssl' + module YumS3Sync class HTTPDownloader - def initialize(baseurl) + def initialize(baseurl, options) @baseurl = baseurl + @keep = options[:keep] + @dry_run = options[:dry_run] + @options = options end def download(relative_url) @@ -12,9 +17,9 @@ def download(relative_url) url = "#{@baseurl}/#{relative_url}" puts "Downloading #{url}" - + begin - open("#{url}") + open("#{url}", @options) rescue OpenURI::HTTPError => e if e.io.status[0] == '404' raise "File #{url} does not exist 404" @@ -34,4 +39,4 @@ def download(relative_url) end end end -end +end \ No newline at end of file diff --git a/lib/yum_s3_sync/repo_syncer.rb b/lib/yum_s3_sync/repo_syncer.rb index 50045bc..be24683 100644 --- a/lib/yum_s3_sync/repo_syncer.rb +++ b/lib/yum_s3_sync/repo_syncer.rb @@ -3,66 +3,87 @@ require 'yum_s3_sync' require 'parallel' + module YumS3Sync - class RepoSyncer - def initialize(source_base, target_bucket, target_base, keep = false, dry_run = false) - @source_base = source_base - @target_bucket = target_bucket - @target_base = target_base - @keep = keep - @dry_run = dry_run - end + class RepoSyncer + def initialize(source_base, target_bucket, target_base, options) + @source_base = source_base + @target_bucket = target_bucket + @target_base = target_base + @keep = options[:keep] + @dry_run = options[:dry_run] + if options[:ssl] == true + options[:ssl_verify_mode] = OpenSSL::SSL::VERIFY_NONE + options.delete(:ssl) + end - def sync - http_downloader = YumS3Sync::HTTPDownloader.new(@source_base) - source_repository = YumS3Sync::YumRepository.new(http_downloader) + if options[:authentication] == true + options[:http_basic_authentication] = [options[:username], options[:password]] + options.delete(:username) + options.delete(:password) + options.delete(:authentication) + end + if options[:authentication] == false + options.delete(:authentication) + end + options.delete(:keep) + options.delete(:dry_run) + options.delete(:source_base) + options.delete(:target_bucket) + options.delete(:target_base) + @options = options + end - s3_downloader = YumS3Sync::S3Downloader.new(@target_bucket, @target_base) - dest_repository = YumS3Sync::YumRepository.new(s3_downloader) + def sync + http_downloader = YumS3Sync::HTTPDownloader.new(@source_base, @options) + source_repository = YumS3Sync::YumRepository.new(http_downloader) - s3_uploader = YumS3Sync::S3Uploader.new(@target_bucket, @target_base, http_downloader, @dry_run) + s3_downloader = YumS3Sync::S3Downloader.new(@target_bucket, @target_base) + dest_repository = YumS3Sync::YumRepository.new(s3_downloader) - s3_file_lister = YumS3Sync::S3FileLister.new(@target_bucket, @target_base) - s3_deleter = YumS3Sync::S3Deleter.new(@target_bucket, @target_base, @dry_run) + s3_uploader = YumS3Sync::S3Uploader.new(@target_bucket, @target_base, http_downloader, @dry_run) - new_packages = source_repository.compare(dest_repository) + s3_file_lister = YumS3Sync::S3FileLister.new(@target_bucket, @target_base) + s3_deleter = YumS3Sync::S3Deleter.new(@target_bucket, @target_base, @dry_run) - metadata = [] - new_metadata = false - source_repository.metadata.each do |type, file| - if !dest_repository.metadata[type] || dest_repository.metadata[type][:checksum] != file[:checksum] - new_metadata = true - end - - metadata.push file[:href] - end + new_packages = source_repository.compare(dest_repository) - new_packages.each do |package| - s3_uploader.upload(package, @keep) - end + metadata = [] + new_metadata = false + source_repository.metadata.each do |type, file| + if !dest_repository.metadata[type] || dest_repository.metadata[type][:checksum] != file[:checksum] + new_metadata = true + end + + metadata.push file[:href] + end - if !dest_repository.exists? || !new_packages.empty? || new_metadata - metadata.each do |file| - s3_uploader.upload(file, true) - end - end + new_packages.each do |package| + s3_uploader.upload(package, @keep) + end - file_names = s3_file_lister.list + if !dest_repository.exists? || !new_packages.empty? || new_metadata + metadata.each do |file| + s3_uploader.upload(file, true) + end + end - puts "Locating removed files" - file_names.each do |filename| - if !source_repository.packages[filename] && !metadata.include?(filename) - s3_deleter.delete(filename) - end - end + file_names = s3_file_lister.list - puts "Locating missing files" - source_repository.packages.each do |package, data| - unless file_names.include? package - s3_uploader.upload(package, true) - end - end + puts "Locating removed files" + file_names.each do |filename| + if !source_repository.packages[filename] && !metadata.include?(filename) + s3_deleter.delete(filename) + end + end + puts "Locating missing files" + source_repository.packages.each do |package, data| + unless file_names.include? package + s3_uploader.upload(package, true) + end + end + + end end - end end diff --git a/lib/yum_s3_sync/s3_downloader.rb b/lib/yum_s3_sync/s3_downloader.rb index e07d137..a02d6cf 100644 --- a/lib/yum_s3_sync/s3_downloader.rb +++ b/lib/yum_s3_sync/s3_downloader.rb @@ -1,4 +1,4 @@ -require 'aws-sdk' +require 'aws-sdk-v1' module YumS3Sync class S3Downloader diff --git a/lib/yum_s3_sync/yum_s3_sync.sublime-project b/lib/yum_s3_sync/yum_s3_sync.sublime-project new file mode 100644 index 0000000..b91ac3c --- /dev/null +++ b/lib/yum_s3_sync/yum_s3_sync.sublime-project @@ -0,0 +1,8 @@ +{ + "folders": + [ + { + "path": "/Users/izenteno/Daily/yum_s3_sync" + } + ] +} diff --git a/lib/yum_s3_sync/yum_s3_sync.sublime-workspace b/lib/yum_s3_sync/yum_s3_sync.sublime-workspace new file mode 100644 index 0000000..9d35fc3 --- /dev/null +++ b/lib/yum_s3_sync/yum_s3_sync.sublime-workspace @@ -0,0 +1,284 @@ +{ + "auto_complete": + { + "selected_items": + [ + [ + "grok", + "grok-patterns" + ] + ] + }, + "buffers": + [ + { + "settings": + { + "buffer_size": 0, + "line_ending": "Unix" + } + }, + { + "file": "http_downloader.rb", + "settings": + { + "buffer_size": 764, + "line_ending": "Unix" + } + } + ], + "build_system": "", + "build_system_choices": + [ + ], + "build_varint": "", + "command_palette": + { + "height": 87.0, + "last_filter": "install", + "selected_items": + [ + [ + "install", + "Package Control: Install Package" + ], + [ + "synt", + "Set Syntax: Logstash" + ], + [ + "syntax lo", + "Set Syntax: Logstash" + ] + ], + "width": 449.0 + }, + "console": + { + "height": 126.0, + "history": + [ + "import urllib.request,os,hashlib; h = '2915d1851351e5ee549c20394736b442' + '8bc59f460fa1548d1514676163dafc88'; pf = 'Package Control.sublime-package'; ipp = sublime.installed_packages_path(); urllib.request.install_opener( urllib.request.build_opener( urllib.request.ProxyHandler()) ); by = urllib.request.urlopen( 'http://packagecontrol.io/' + pf.replace(' ', '%20')).read(); dh = hashlib.sha256(by).hexdigest(); print('Error validating download (got %s instead of %s), please try manual install' % (dh, h)) if dh != h else open(os.path.join( ipp, pf), 'wb' ).write(by)" + ] + }, + "distraction_free": + { + "menu_visible": true, + "show_minimap": false, + "show_open_files": false, + "show_tabs": false, + "side_bar_visible": false, + "status_bar_visible": false + }, + "file_history": + [ + "/Users/izenteno/tools/admin/logstash-collector.sh", + "/Users/izenteno/tools/admin/account-setup", + "/Users/izenteno/Google Drive/L3UnixOnline/CloudRepo/izenteno/tmp.edda.properties", + "/Users/izenteno/Google Drive/L3UnixOnline/CloudRepo/izenteno/buildEDDAPropertie.sh", + "/Users/izenteno/Google Drive/L3UnixOnline/CloudRepo/izenteno/edda.properties", + "/Users/izenteno/Google Drive/L3UnixOnline/CloudRepo/izenteno/build.sh", + "/Users/izenteno/Google Drive/L3UnixOnline/CloudRepo/izenteno/EDDA-ELBs/puppet/run-puppet.sh", + "/Users/izenteno/Downloads/retirements-637c2113-28e6-433c-8ce0-c206b7871b0e/retirements.js", + "/Users/izenteno/Library/Application Support/Sublime Text 3/Packages/User/syslog.conf.logstash.conf", + "/Users/izenteno/Library/Application Support/Sublime Text 3/Packages/User/Preferences.sublime-settings" + ], + "find": + { + "height": 25.0 + }, + "find_in_files": + { + "height": 93.0, + "where_history": + [ + ] + }, + "find_state": + { + "case_sensitive": false, + "find_history": + [ + "Logstash", + "subnet-b6d54ac1", + "nfs16elk.*", + " \\n", + " ", + "^\\n", + "password => \"\\{\\{ redis_password \\}\\}\"", + "\\{\\{ redis_host \\}\\}", + "{{ redis_host }}", + "\\t", + "\\#" + ], + "highlight": true, + "in_selection": false, + "preserve_case": false, + "regex": true, + "replace_history": + [ + "Kibana", + "ghost90019.eqx-ams.ea.com\"", + "", + " ", + "", + "nfs16elkmaster.internal.ea.com", + "\"nfs16elkmaster.internal.ea.com\"", + " ", + "" + ], + "reverse": false, + "show_context": true, + "use_buffer2": true, + "whole_word": false, + "wrap": true + }, + "groups": + [ + { + "selected": 1, + "sheets": + [ + { + "buffer": 0, + "semi_transient": false, + "settings": + { + "buffer_size": 0, + "regions": + { + }, + "selection": + [ + [ + 0, + 0 + ] + ], + "settings": + { + "syntax": "Packages/Text/Plain text.tmLanguage" + }, + "translation.x": 0.0, + "translation.y": 0.0, + "zoom_level": 1.0 + }, + "stack_index": 1, + "type": "text" + }, + { + "buffer": 1, + "file": "http_downloader.rb", + "semi_transient": false, + "settings": + { + "buffer_size": 764, + "regions": + { + }, + "selection": + [ + [ + 0, + 0 + ] + ], + "settings": + { + "syntax": "Packages/Ruby/Ruby.tmLanguage", + "tab_size": 2, + "translate_tabs_to_spaces": true + }, + "translation.x": 0.0, + "translation.y": 0.0, + "zoom_level": 1.0 + }, + "stack_index": 0, + "type": "text" + } + ] + } + ], + "incremental_find": + { + "height": 25.0 + }, + "input": + { + "height": 0.0 + }, + "layout": + { + "cells": + [ + [ + 0, + 0, + 1, + 1 + ] + ], + "cols": + [ + 0.0, + 1.0 + ], + "rows": + [ + 0.0, + 1.0 + ] + }, + "menu_visible": true, + "output.find_results": + { + "height": 0.0 + }, + "pinned_build_system": "", + "project": "yum_s3_sync.sublime-project", + "replace": + { + "height": 46.0 + }, + "save_all_on_build": true, + "select_file": + { + "height": 0.0, + "last_filter": "", + "selected_items": + [ + ], + "width": 0.0 + }, + "select_project": + { + "height": 0.0, + "last_filter": "", + "selected_items": + [ + ], + "width": 0.0 + }, + "select_symbol": + { + "height": 0.0, + "last_filter": "", + "selected_items": + [ + ], + "width": 0.0 + }, + "selected_group": 0, + "settings": + { + }, + "show_minimap": false, + "show_open_files": false, + "show_tabs": true, + "side_bar_visible": true, + "side_bar_width": 150.0, + "status_bar_visible": true, + "template_settings": + { + } +} diff --git a/yum_s3_sync.gemspec b/yum_s3_sync.gemspec index 81fcd38..fc959b7 100644 --- a/yum_s3_sync.gemspec +++ b/yum_s3_sync.gemspec @@ -20,7 +20,7 @@ Gem::Specification.new do |spec| spec.add_development_dependency 'bundler', '~> 1.7' spec.add_development_dependency 'rake', '~> 10.0' - spec.add_dependency 'nokogiri', '>= 1.4.3' - spec.add_dependency 'parallel' + spec.add_dependency 'nokogiri', '~> 1.4', '>= 1.4.3' + spec.add_dependency 'parallel', '~> 1.6', '>=1.6.1' spec.add_dependency 'aws-sdk' -end +end \ No newline at end of file From 7fa88cc0bd974d29d9d68cab972035cf50e54974 Mon Sep 17 00:00:00 2001 From: Ivan Zenteno Date: Fri, 20 Nov 2015 11:54:39 -0600 Subject: [PATCH 02/13] Notification for invalid options --- bin/yums3sync | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/bin/yums3sync b/bin/yums3sync index af0d724..9ce5b16 100755 --- a/bin/yums3sync +++ b/bin/yums3sync @@ -44,7 +44,12 @@ opt_parser = OptionParser.new do |opts| end end -opt_parser.parse! +begin opt_parser.parse! +rescue OptionParser::InvalidOption => e + puts e + puts opt_parser + exit 1 +end if !options[:source_base] || !options[:target_bucket] || !options[:target_base] puts opt_parser @@ -57,6 +62,8 @@ if options[:authentication] and (!options[:username] || !options[:password]) exit 1 end + + repo_syncer = YumS3Sync::RepoSyncer.new(options[:source_base], options[:target_bucket], options[:target_base], options) begin From 3cfe36f1587d90c35b492a4726e33d7aa01acb90 Mon Sep 17 00:00:00 2001 From: Ivan Zenteno Date: Fri, 20 Nov 2015 14:22:07 -0600 Subject: [PATCH 03/13] Housekeeping --- bin/yums3sync | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/bin/yums3sync b/bin/yums3sync index 9ce5b16..c7bbedd 100755 --- a/bin/yums3sync +++ b/bin/yums3sync @@ -13,29 +13,34 @@ opt_parser = OptionParser.new do |opts| opts.on('-s', '--source [SOURCE]', 'HTTP source URL') do |s| options[:source_base] = s end + opts.on('-b', '--bucket [BUCKET]', 'Target bucket name') do |b| options[:target_bucket] = b end + opts.on('-p', '--prefix PREFIX', 'Target bucket prefix') do |p| options[:target_base] = p end + opts.on('-k', '--keep', 'Never overwrite exitant files') do |k| options[:keep] = true end + opts.on('-n', '--dry-run', 'Don\'t make any changes') do |n| options[:dry_run] = true end + opts.separator "" opts.separator "Authentication options:" options[:authentication] = false opts.on('-a', '--authentication', 'Allow authentication method to http(s)') do |a| options[:authentication] = true end - + options[:username] = "" opts.on('--username [USERNAME]', 'Username to use in the http(s)') do |u| options[:username] = u end - + options[:password] = "" opts.on('--password [PASSWORD]', 'Password to use in the https') do |pa| options[:password] = pa end @@ -56,14 +61,15 @@ if !options[:source_base] || !options[:target_bucket] || !options[:target_base] exit 1 end -if options[:authentication] and (!options[:username] || !options[:password]) - puts options[:authentication] +puts "AUTHENTICATION: #{options[:authentication]}" +puts !(!options[:username] and !options[:password]) + +if options[:authentication] || (options[:username] and options[:password]) + puts "ERROR ???????" puts opt_parser exit 1 end - - repo_syncer = YumS3Sync::RepoSyncer.new(options[:source_base], options[:target_bucket], options[:target_base], options) begin From a779b803d059706a2ddb625c443dd8c68e5650ba Mon Sep 17 00:00:00 2001 From: Ivan Zenteno Date: Fri, 20 Nov 2015 14:23:22 -0600 Subject: [PATCH 04/13] Housekeeping --- lib/yum_s3_sync/yum_s3_sync.sublime-project | 8 - lib/yum_s3_sync/yum_s3_sync.sublime-workspace | 284 ------------------ 2 files changed, 292 deletions(-) delete mode 100644 lib/yum_s3_sync/yum_s3_sync.sublime-project delete mode 100644 lib/yum_s3_sync/yum_s3_sync.sublime-workspace diff --git a/lib/yum_s3_sync/yum_s3_sync.sublime-project b/lib/yum_s3_sync/yum_s3_sync.sublime-project deleted file mode 100644 index b91ac3c..0000000 --- a/lib/yum_s3_sync/yum_s3_sync.sublime-project +++ /dev/null @@ -1,8 +0,0 @@ -{ - "folders": - [ - { - "path": "/Users/izenteno/Daily/yum_s3_sync" - } - ] -} diff --git a/lib/yum_s3_sync/yum_s3_sync.sublime-workspace b/lib/yum_s3_sync/yum_s3_sync.sublime-workspace deleted file mode 100644 index 9d35fc3..0000000 --- a/lib/yum_s3_sync/yum_s3_sync.sublime-workspace +++ /dev/null @@ -1,284 +0,0 @@ -{ - "auto_complete": - { - "selected_items": - [ - [ - "grok", - "grok-patterns" - ] - ] - }, - "buffers": - [ - { - "settings": - { - "buffer_size": 0, - "line_ending": "Unix" - } - }, - { - "file": "http_downloader.rb", - "settings": - { - "buffer_size": 764, - "line_ending": "Unix" - } - } - ], - "build_system": "", - "build_system_choices": - [ - ], - "build_varint": "", - "command_palette": - { - "height": 87.0, - "last_filter": "install", - "selected_items": - [ - [ - "install", - "Package Control: Install Package" - ], - [ - "synt", - "Set Syntax: Logstash" - ], - [ - "syntax lo", - "Set Syntax: Logstash" - ] - ], - "width": 449.0 - }, - "console": - { - "height": 126.0, - "history": - [ - "import urllib.request,os,hashlib; h = '2915d1851351e5ee549c20394736b442' + '8bc59f460fa1548d1514676163dafc88'; pf = 'Package Control.sublime-package'; ipp = sublime.installed_packages_path(); urllib.request.install_opener( urllib.request.build_opener( urllib.request.ProxyHandler()) ); by = urllib.request.urlopen( 'http://packagecontrol.io/' + pf.replace(' ', '%20')).read(); dh = hashlib.sha256(by).hexdigest(); print('Error validating download (got %s instead of %s), please try manual install' % (dh, h)) if dh != h else open(os.path.join( ipp, pf), 'wb' ).write(by)" - ] - }, - "distraction_free": - { - "menu_visible": true, - "show_minimap": false, - "show_open_files": false, - "show_tabs": false, - "side_bar_visible": false, - "status_bar_visible": false - }, - "file_history": - [ - "/Users/izenteno/tools/admin/logstash-collector.sh", - "/Users/izenteno/tools/admin/account-setup", - "/Users/izenteno/Google Drive/L3UnixOnline/CloudRepo/izenteno/tmp.edda.properties", - "/Users/izenteno/Google Drive/L3UnixOnline/CloudRepo/izenteno/buildEDDAPropertie.sh", - "/Users/izenteno/Google Drive/L3UnixOnline/CloudRepo/izenteno/edda.properties", - "/Users/izenteno/Google Drive/L3UnixOnline/CloudRepo/izenteno/build.sh", - "/Users/izenteno/Google Drive/L3UnixOnline/CloudRepo/izenteno/EDDA-ELBs/puppet/run-puppet.sh", - "/Users/izenteno/Downloads/retirements-637c2113-28e6-433c-8ce0-c206b7871b0e/retirements.js", - "/Users/izenteno/Library/Application Support/Sublime Text 3/Packages/User/syslog.conf.logstash.conf", - "/Users/izenteno/Library/Application Support/Sublime Text 3/Packages/User/Preferences.sublime-settings" - ], - "find": - { - "height": 25.0 - }, - "find_in_files": - { - "height": 93.0, - "where_history": - [ - ] - }, - "find_state": - { - "case_sensitive": false, - "find_history": - [ - "Logstash", - "subnet-b6d54ac1", - "nfs16elk.*", - " \\n", - " ", - "^\\n", - "password => \"\\{\\{ redis_password \\}\\}\"", - "\\{\\{ redis_host \\}\\}", - "{{ redis_host }}", - "\\t", - "\\#" - ], - "highlight": true, - "in_selection": false, - "preserve_case": false, - "regex": true, - "replace_history": - [ - "Kibana", - "ghost90019.eqx-ams.ea.com\"", - "", - " ", - "", - "nfs16elkmaster.internal.ea.com", - "\"nfs16elkmaster.internal.ea.com\"", - " ", - "" - ], - "reverse": false, - "show_context": true, - "use_buffer2": true, - "whole_word": false, - "wrap": true - }, - "groups": - [ - { - "selected": 1, - "sheets": - [ - { - "buffer": 0, - "semi_transient": false, - "settings": - { - "buffer_size": 0, - "regions": - { - }, - "selection": - [ - [ - 0, - 0 - ] - ], - "settings": - { - "syntax": "Packages/Text/Plain text.tmLanguage" - }, - "translation.x": 0.0, - "translation.y": 0.0, - "zoom_level": 1.0 - }, - "stack_index": 1, - "type": "text" - }, - { - "buffer": 1, - "file": "http_downloader.rb", - "semi_transient": false, - "settings": - { - "buffer_size": 764, - "regions": - { - }, - "selection": - [ - [ - 0, - 0 - ] - ], - "settings": - { - "syntax": "Packages/Ruby/Ruby.tmLanguage", - "tab_size": 2, - "translate_tabs_to_spaces": true - }, - "translation.x": 0.0, - "translation.y": 0.0, - "zoom_level": 1.0 - }, - "stack_index": 0, - "type": "text" - } - ] - } - ], - "incremental_find": - { - "height": 25.0 - }, - "input": - { - "height": 0.0 - }, - "layout": - { - "cells": - [ - [ - 0, - 0, - 1, - 1 - ] - ], - "cols": - [ - 0.0, - 1.0 - ], - "rows": - [ - 0.0, - 1.0 - ] - }, - "menu_visible": true, - "output.find_results": - { - "height": 0.0 - }, - "pinned_build_system": "", - "project": "yum_s3_sync.sublime-project", - "replace": - { - "height": 46.0 - }, - "save_all_on_build": true, - "select_file": - { - "height": 0.0, - "last_filter": "", - "selected_items": - [ - ], - "width": 0.0 - }, - "select_project": - { - "height": 0.0, - "last_filter": "", - "selected_items": - [ - ], - "width": 0.0 - }, - "select_symbol": - { - "height": 0.0, - "last_filter": "", - "selected_items": - [ - ], - "width": 0.0 - }, - "selected_group": 0, - "settings": - { - }, - "show_minimap": false, - "show_open_files": false, - "show_tabs": true, - "side_bar_visible": true, - "side_bar_width": 150.0, - "status_bar_visible": true, - "template_settings": - { - } -} From 7e69766afd8a38728688e23c30bc18712ccd083c Mon Sep 17 00:00:00 2001 From: Ivan Zenteno Date: Fri, 20 Nov 2015 14:25:20 -0600 Subject: [PATCH 05/13] Updating README file --- README.md | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 00a189b..a576d99 100644 --- a/README.md +++ b/README.md @@ -29,11 +29,19 @@ Clone this git repository and build a Gem. The program should work without addit ``` Usage: yums3sync [options] - -s, --source SOURCE HTTP source URL - -b, --bucket BUCKET Target bucket name + +Specific options: + -s, --source [SOURCE] HTTP source URL + -b, --bucket [BUCKET] Target bucket name -p, --prefix PREFIX Target bucket prefix -k, --keep Never overwrite exitant files -n, --dry-run Don't make any changes + +Authentication options: + -a, --authentication Allow authentication method to http(s) + --username [USERNAME] Username to use in the http(s) + --password [PASSWORD] Password to use in the https + -d, --disable Disable SSL to check http(s) ``` Example usage: From 5ff2cc4ccfe1e6606a7c22b1d2e44337c562f71b Mon Sep 17 00:00:00 2001 From: Ivan Zenteno Date: Fri, 20 Nov 2015 14:27:52 -0600 Subject: [PATCH 06/13] Housekeeping --- bin/yums3sync | 4 ---- 1 file changed, 4 deletions(-) diff --git a/bin/yums3sync b/bin/yums3sync index c7bbedd..df1343d 100755 --- a/bin/yums3sync +++ b/bin/yums3sync @@ -61,11 +61,7 @@ if !options[:source_base] || !options[:target_bucket] || !options[:target_base] exit 1 end -puts "AUTHENTICATION: #{options[:authentication]}" -puts !(!options[:username] and !options[:password]) - if options[:authentication] || (options[:username] and options[:password]) - puts "ERROR ???????" puts opt_parser exit 1 end From 101cd446e38eb8c0c074f0d45dcccd3d7dfc3b25 Mon Sep 17 00:00:00 2001 From: Ivan Zenteno Date: Sun, 29 Nov 2015 21:59:47 -0600 Subject: [PATCH 07/13] Fixing bug in flag for authentication --- bin/yums3sync | 10 ++- lib/yum_s3_sync/repo_syncer.rb | 136 ++++++++++++++++----------------- yum_s3_sync-0.0.13.gem | Bin 0 -> 10752 bytes 3 files changed, 75 insertions(+), 71 deletions(-) create mode 100644 yum_s3_sync-0.0.13.gem diff --git a/bin/yums3sync b/bin/yums3sync index df1343d..d0ac4f8 100755 --- a/bin/yums3sync +++ b/bin/yums3sync @@ -61,9 +61,13 @@ if !options[:source_base] || !options[:target_bucket] || !options[:target_base] exit 1 end -if options[:authentication] || (options[:username] and options[:password]) - puts opt_parser - exit 1 +puts options + +if options[:authentication] + if (options[:username].empty? or options[:password].empty?) + puts opt_parser + exit 1 + end end repo_syncer = YumS3Sync::RepoSyncer.new(options[:source_base], options[:target_bucket], options[:target_base], options) diff --git a/lib/yum_s3_sync/repo_syncer.rb b/lib/yum_s3_sync/repo_syncer.rb index be24683..b461bad 100644 --- a/lib/yum_s3_sync/repo_syncer.rb +++ b/lib/yum_s3_sync/repo_syncer.rb @@ -5,85 +5,85 @@ module YumS3Sync - class RepoSyncer - def initialize(source_base, target_bucket, target_base, options) - @source_base = source_base - @target_bucket = target_bucket - @target_base = target_base - @keep = options[:keep] - @dry_run = options[:dry_run] - if options[:ssl] == true - options[:ssl_verify_mode] = OpenSSL::SSL::VERIFY_NONE - options.delete(:ssl) - end - - if options[:authentication] == true - options[:http_basic_authentication] = [options[:username], options[:password]] - options.delete(:username) - options.delete(:password) - options.delete(:authentication) - end - if options[:authentication] == false - options.delete(:authentication) - end - options.delete(:keep) - options.delete(:dry_run) - options.delete(:source_base) - options.delete(:target_bucket) - options.delete(:target_base) - @options = options - end - - def sync - http_downloader = YumS3Sync::HTTPDownloader.new(@source_base, @options) - source_repository = YumS3Sync::YumRepository.new(http_downloader) + class RepoSyncer + def initialize(source_base, target_bucket, target_base, options) + @source_base = source_base + @target_bucket = target_bucket + @target_base = target_base + @keep = options[:keep] + @dry_run = options[:dry_run] + if options[:ssl] == true + options[:ssl_verify_mode] = OpenSSL::SSL::VERIFY_NONE + options.delete(:ssl) + end + + if options[:authentication] == true + options[:http_basic_authentication] = [options[:username], options[:password]] + options.delete(:username) + options.delete(:password) + options.delete(:authentication) + end + if options[:authentication] == false + options.delete(:authentication) + end + options.delete(:keep) + options.delete(:dry_run) + options.delete(:source_base) + options.delete(:target_bucket) + options.delete(:target_base) + @options = options + end - s3_downloader = YumS3Sync::S3Downloader.new(@target_bucket, @target_base) - dest_repository = YumS3Sync::YumRepository.new(s3_downloader) + def sync + http_downloader = YumS3Sync::HTTPDownloader.new(@source_base, @options) + source_repository = YumS3Sync::YumRepository.new(http_downloader) - s3_uploader = YumS3Sync::S3Uploader.new(@target_bucket, @target_base, http_downloader, @dry_run) + s3_downloader = YumS3Sync::S3Downloader.new(@target_bucket, @target_base) + dest_repository = YumS3Sync::YumRepository.new(s3_downloader) - s3_file_lister = YumS3Sync::S3FileLister.new(@target_bucket, @target_base) - s3_deleter = YumS3Sync::S3Deleter.new(@target_bucket, @target_base, @dry_run) + s3_uploader = YumS3Sync::S3Uploader.new(@target_bucket, @target_base, http_downloader, @dry_run) - new_packages = source_repository.compare(dest_repository) + s3_file_lister = YumS3Sync::S3FileLister.new(@target_bucket, @target_base) + s3_deleter = YumS3Sync::S3Deleter.new(@target_bucket, @target_base, @dry_run) - metadata = [] - new_metadata = false - source_repository.metadata.each do |type, file| - if !dest_repository.metadata[type] || dest_repository.metadata[type][:checksum] != file[:checksum] - new_metadata = true - end - - metadata.push file[:href] - end + new_packages = source_repository.compare(dest_repository) - new_packages.each do |package| - s3_uploader.upload(package, @keep) - end + metadata = [] + new_metadata = false + source_repository.metadata.each do |type, file| + if !dest_repository.metadata[type] || dest_repository.metadata[type][:checksum] != file[:checksum] + new_metadata = true + end + + metadata.push file[:href] + end - if !dest_repository.exists? || !new_packages.empty? || new_metadata - metadata.each do |file| - s3_uploader.upload(file, true) - end - end + new_packages.each do |package| + s3_uploader.upload(package, @keep) + end - file_names = s3_file_lister.list + if !dest_repository.exists? || !new_packages.empty? || new_metadata + metadata.each do |file| + s3_uploader.upload(file, true) + end + end - puts "Locating removed files" - file_names.each do |filename| - if !source_repository.packages[filename] && !metadata.include?(filename) - s3_deleter.delete(filename) - end - end + file_names = s3_file_lister.list - puts "Locating missing files" - source_repository.packages.each do |package, data| - unless file_names.include? package - s3_uploader.upload(package, true) - end - end + puts "Locating removed files" + file_names.each do |filename| + if !source_repository.packages[filename] && !metadata.include?(filename) + s3_deleter.delete(filename) + end + end + puts "Locating missing files" + source_repository.packages.each do |package, data| + unless file_names.include? package + s3_uploader.upload(package, true) end + end + end + end end diff --git a/yum_s3_sync-0.0.13.gem b/yum_s3_sync-0.0.13.gem new file mode 100644 index 0000000000000000000000000000000000000000..b97c72d1035b0627252ab23461ab4530408037c9 GIT binary patch literal 10752 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 KM&SP+1pXJD>lO9@ literal 0 HcmV?d00001 From a97b086b09f0d2f200ff3ba4569b3d2649a6d2e7 Mon Sep 17 00:00:00 2001 From: Ivan Zenteno Date: Sun, 29 Nov 2015 22:04:14 -0600 Subject: [PATCH 08/13] Fixing bug in flag for authentication --- bin/yums3sync | 2 -- 1 file changed, 2 deletions(-) diff --git a/bin/yums3sync b/bin/yums3sync index d0ac4f8..548c160 100755 --- a/bin/yums3sync +++ b/bin/yums3sync @@ -61,8 +61,6 @@ if !options[:source_base] || !options[:target_bucket] || !options[:target_base] exit 1 end -puts options - if options[:authentication] if (options[:username].empty? or options[:password].empty?) puts opt_parser From 5758310dd1654f55cb6fc62d5d4eceb217f58797 Mon Sep 17 00:00:00 2001 From: Ivan Zenteno Date: Sun, 29 Nov 2015 22:06:55 -0600 Subject: [PATCH 09/13] Fixing bug in flag for authentication --- yum_s3_sync-0.0.13.gem | Bin 10752 -> 12288 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/yum_s3_sync-0.0.13.gem b/yum_s3_sync-0.0.13.gem index b97c72d1035b0627252ab23461ab4530408037c9..24d0a685a79725be728120c1c533f4bd89fb0dda 100644 GIT binary patch delta 8929 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 T!gKZLLdgH_bp@071@Zp@g0pv) delta 7805 zcmZvhWmA=bqDEBl0>5}ell#q~3N_XeJ=YF~~XYTqB zYv!3}1)BwHCx;XB2=Ksw{|^{27Y{F(2Zjoq_663m85R~E7Lb}S)PaLv(lvDc4aN_8 zs0XY0Dz4R8$fsnr*Musd7ZXs!N~PrHF;w(^5nlg@(3ihkb`tTej)cIqqIG|=2S3+7rLMm%PxOCtvEHOn!9}R*LQ&Sg*B8~C zu(d29A4RJ_Q}>$#qtc<*CmUj>%CtU+iCqyXpg!@WT)_I!A=c<6dyMm#UX6zAUMnp9 z7aWI#EzkO-UISIIP#y`-wi(WoL&UI&yfd-&6hp%W$f8Z8pGu(SXMEEyJY%=1hk}`? zg$-GcSKiJf0^ZbHBDYloUyg047?!ZRzfuoIvoZ>{|H_LkQ6eRM4|2uB?8c_1v)7Ti zuCf>X0}v=AH+8W9FfT%|Ir{fANFnIh$?g?_CP7N|vr4ClJqFTQ+IBrjt?G!_o;f zG(L%;ZGQRry^OdbL$PV)w=YX7T)_J9K){m#V z##DvD-ox;Ay@JzyFbQ3;a8ejB|4TCi0~~BBQWyy@zktAhyTZf6`~SFdDr)b&Cf{_U z-&gXx&2?sHh6SM)qzl^6Yz2+rv+;1c-c&XNDYEZqghR_i^@JUu)M*K=V80uDQu!5;OB`sM%~zE09B(NT_uT{(Dm?qvEfK)X-Tw z5y}RWETNQwlQvsruj%ceA4C zuJ5zyJv8BY)A~((wDn?!sFyDvv5c1^jlE%HkGyr`xKRfFI87~5$>b$++ji~CLAXaP zmnZR33t(|9OlXmDfE$-We0O9kS<$Bw2hr^u(OY%=8ly#^Q#sN2s%h`cAI7y-b=i?$qJj_vXmw6ff^miT5I7I|E zqq*jgY#4$gogIy?4)|s;_%R)^mrs_A0ET3}7>E&(o@v|HONH|~;QkWLYYB$iYnCFL zL(oDgOvkdPNOXvsVafSQeXIfMSBVtpNM{jD%sIf5btL5~>e#bTY2O7)$mEtvz%$dR zKG^*eI!XzSW+=XZQ?R?<_M_rfy`uCWqas8o^l3XY9+(d9=K|Z z2AI8jVDt#swh*S%^uMV%Si@Y{6$`5N5pat7Jr=daf-^!zz1-Y)KSLhJ2JmCa8UT z*bVXrQ}u`)kx_UHpM{|wk)3&~VSSWy1}5wey%*sT&w_K{ex*@JhT?v%#CY4ZjXHaO z7k*sz`+MZ2DyBW2J3E21696x7xYxcUeso&sWfu;{Sraef@$cy-mQz(aQh)t;e4~t{>D(E9uaz0=;0?vGH%)D?eQzBkN{)_r8|G_ z<+0V3{{bN`lGwcU52hITAnHf<;a1oVjg84JH3tV~08$y|H8>^NwS;H{e_8`~LR$Y$ z>3+9f8#dH-o&{llN7n88*@X|i0QmXep`C5*Z$wv~(N$qdQ7Z1H zQAH@bdFh~ge^GJm<#?$!Y1cC_R?racb%7u{je($fz zqcNCew*D5EjBzxbsoygxQ5mPrgUU`G2IxzMkQf&?AvC?P>SDogcsI#2!2D4N-oDw^ zZ(_cVgMrKNB6y5C5f`JxFwD6&qxNlI{$cX%04Kvm1kNX(j`m=WNJrYEI5bWASY;4O z1T03bwN)4_CUL~B5(%%pd!cI02`|gW$o>L*PU!~vLB{Cm4d#GETNjxSO!>SRz2RGz zytZ8~3QCl0)t&m1QU%K_y5Dm0$euK}$dQrg^AiZNwt*!QD^$9@Tv1za35%m=Q(VT73psh z=Tr!YGx8b2m}$DGFvaTX%(5iffp%G=LXx6D}x;O@2= z&@U|MA)Q!@1Y^OIM>fpt6^|52!h$t19Gbb*YQ4^Ee0*{+pkWplO2dkx}T zh_}CEZO~Q-+;^4yMiHJ+5b_V~gc`okEgc~c>0_(p+6!vm=30nIuz?p7DAlMd86W#@vN?B07F*=UY*vO zsTu(6LMdZ*gyO0X)P78wCwSU-6mG?j5$h7_!HdlZx`CZxl~wX=2!(vOtl-6nGiJun zDUe%Ecg$lvnzM&aMj|kk{&;q5|0|R3HdDsH7Pk3>&)zOaaI7Qgj&fXSvn=p9_)4Fs z%B{bzq-0QY7^Vu0q*4$&jC2xC`Tc!0}N&J7=o8Tm4B*Z>$NCkUUGaF1o=1BVS zll}R~4)(BEo``<@q!H6=*_9nJFHpZHv?vbi^me_n66wdbIs9XM_%&qI^rX4Jal6j3 z5e6sLj2_QimepP*FZ-v9W?713-2;3ycZpRROc>r&&s?c=82b)P1)o4aM+$B@XWk0H z4HL!nGDgtt zN5_f-k-xyDnZHw0geD_(Y-#QuCCwL-&QA?q1Y_yA6)T_`CU@zO-q~5ys}EF2!t^wH zeMqn|igGTS;6!J`^C!FU`$B16`jZzpyi%mNnEbLP5-STnPfd-qfP|u0IsN%_@9x$& za+1r%6_n&C&{YKgA-x@WFNkAY_<$=^jDQv9illd)w@wc)ICqAg{yVefL#ZOIN0-8P zbT~8jwRc8od$uJw$LRK?X34-Z&vuZ@L>xy1=vq}v{0icJrpoq>)(<0v@pB6xX@@;} z1-eXiDOl=&Nhi~y8RHShj4+6ac`fG=x}BcSnB@0(Ov;qtTo0Yn{Hgl{M=Joi)MIKcuUUC?a9zUqAAR~gi6sSoU@1EtnI1Y4;ij6TdaL|u)#0) z(35rH)n~}&@^Z!d11J+vK2*@iTe-4N4#a{FGj7_cn1q_TB(VJ?jOvHDyj`4~*BL<9 zySmm_-=IDDDsNENW2l-P^^N^^q{TPs%g3aO5m{Kx#ST~;AFhsa?Y-EosM579G&lDs z@kp}GD9E4y`AuP`QhkGt4;uCZ zvDG*NnF|w4%Dg--4V{b~hkSX{gOyZ?erirV6}=qq9HR#_%9pi7$nw9#)Oo8&?0Xs1 z5XxTxG<8%oc>cgEEZ5ptp0bIi3lDzLF80SdI=7_rn(qXP>XJ0Z=+cUK@^-d%ph%D` z3I2s>O#u_KjV01gWg)&%5J$BnjWoCNte#0A?vsIOZu)CDagg@MZEjKxVxFXgJY2@6 z#=34|W@jB1mh6t=ChC}M%}VL*w3Edgl0(#09%~zfSt8&q`r0w$&)U)J?gx+pKjzoT zYrb6ahqNz-73~Tp-E`4*6jCf8Kmklmpr=_zjiQftO$R~vyUD^%{3B&Ovgf>4BS-izl{*i*|oA(m&RxxpVdO(@-!(?m}~t zK+EczRV}c$KJe(JugdLG0xr5yAr+c}2M1Ja=ZYY!%>6i*aEe+NWj=a;yejNahgw$xu+ zacv!At4jx)vcd%99dZ`Cv45}ma}Y9`aY2d}JOMa8$fvFlr{dzIcFj^h)Y8m2lUuuS zwvwTVbYAcuA<$4$=H1qpci>Dq2{u+2Jp!{mOFSTEU86nxGR&0WX%}xpMohuh_4(eYB$}ZE z+dNB|nvMu9Jnqv}ZT?*E?6?WNY(IhIYW>VnUCoX<@A_VD25NSNFakD#@s1*D zp&{>*HR2ol=GNvNgksdTffe)~@5Ront^7EX-KiK^x3SI|@Z!9WG^Y1nI5naklCu;8wk@%Nd#(Lv%eGhxGs`;W6sLv5sY=ibzGoK5Ll zLBA!(1Q@Txl@9G1-zLpir1Qh<2kuZyaf5o65>d2wlwd4Xh%IK6RA?*VDv$lbF;| zH2t4FU4&$*$ZsF-yb0yaG=c)@lS(s?hbhdBxZ`X5e|-#hSH#LOU0Yjo~yALVpt@P{NPA^XM;v(>oRh3;WvVrHIv(Bx@`~R7nMju+bXzGSxZT`b zKqn|Y@xVv&@Uz{WH9X$xcd|~^?Xdc{y=1PEspKU4+^R)RAi=UB--_AdlgYmP$nfO# z(5hmJZg#BO44YEr4Kla(gkm@DI{vrB)JAKCFJ;U7>{t|msed_QG&h1^)|HH;GPgHC zrX*Svk=gg`h9R?umTXbVVDA1kqZrm8TBo3hDFWIAKiBsEc}R;-+oK)#GWB zQ^FI`1fokLnW^DbC>I$Q;Eb~2A>f`BlBt+RI3}{y`*Cw0XN0Z7hA#6HLX}I%H(i9e zYgSW|L;3dQ@{HI-N&}V$Tr4b!y>qRx7ipEoC_TMF;M+d}=W;$<{TG_Ac{1d)uHrii zB9A_J>~@@$h*Y|kmQ$I;1gJAYIo5d5m9FgPVR9eMy*S)v4_St}rf&5@9@TP#YeUt2j>de28hCPp3uMq=Gd(v#^!c7!z#XIJok$3a66NhDTezqU%ExMp- zr_hzZZyf;C+nMv_6|$)sc=I~v-3VP$OYk@9f9}aoCwiong>H9ov)1^YGfW5Sh&rb+ ztZ3I=gB3WgtP-hv&S8>eTJ$~GOY$x)XbD15_QL|zg&+)@GA zDU&ZP?#q2S%7Fy%E*HIBPgOwj3M*z8L?&;wzv4u$d4ew{zJ?;=q9fTd3oUxPq!qv%=A|TCV!Q- z66jg)g*ZX0v3v2zP})rBM11yu@+$y!w)ba!c^xweym_CaxI9;FzoYc2h9_pq?rc!FF&0E1DydysoOl2L$0jallTf*0^O(o##<=U-r z$Ui9#zL9p*YV&c{usZR|SLecv4=Y#?3yHG<)RbCreXMMGP*O%a{{3k2Q|SHzq}~tn zb@Ksw>ST4&x1R7k3KbvywtEUVKOpCC;)q%3ublWps!X>-;U~5cS)jSRG2u3Ck1ffBH z*qL4S7l-mz9>1GbssDgA&*V$dF7AE?$ppwp6p}Edu2lK0fDfC+1o zw=Y#H*C{ZkfHkOxe{I;d>&ad|MW=(cN+@n{I_+3F@7Nesqp=}$yzxHc(g< zT>;o)uM)mNwS4E&;gz`QAr@Tul7x`-usQCT1gfjOzJq4abxqcbH@Jg(oBX?lgtlZl zX7kgJe%IS8PdJ28>>0Jez5X2_jOy8fH(Ok&+x2Q*=9{g!hrzxyp7@S&xzAEmT&s9?5+c(2#4d77 zW$!K{4tulB(K)^pNekea;@4c|tTgo9zQg8dh+F){`_qcjula{qtfPI>Ox|P7m6H+l zDg>}>-UO`q-gFnz@w-m7eQv&V;cP~T42-1J z$!z*)xxN`MWh6T0FPuEnQ4_t+GBB&a=Oj{u=Q22{pfhifn3Xq= z19_-nSvZv1p(kZf@Fl_I<3fH|C})Y$=lNQZR^&KCK~>E${WrJH^pYTSv6c2=kBw?I o58dyMU$kjWQeil15+jKg|?kV1v Date: Sun, 29 Nov 2015 22:10:20 -0600 Subject: [PATCH 10/13] If authentication flag is not set, remove the username and password tag in options{} --- bin/yums3sync | 3 +++ yum_s3_sync-0.0.13.gem | Bin 12288 -> 12288 bytes 2 files changed, 3 insertions(+) diff --git a/bin/yums3sync b/bin/yums3sync index 548c160..a36a819 100755 --- a/bin/yums3sync +++ b/bin/yums3sync @@ -66,6 +66,9 @@ if options[:authentication] puts opt_parser exit 1 end +else + options.delete(:username) + options.delete(:password) end repo_syncer = YumS3Sync::RepoSyncer.new(options[:source_base], options[:target_bucket], options[:target_base], options) diff --git a/yum_s3_sync-0.0.13.gem b/yum_s3_sync-0.0.13.gem index 24d0a685a79725be728120c1c533f4bd89fb0dda..a5bc2eaa004ba7e879a27b3aff3dd33667175fb5 100644 GIT binary patch delta 8145 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 U@(TtT>{W}R0kaV+?*x$`34V|63;+NC From 4b5e752d1a6e0e45717e66094fe4044c6926370a Mon Sep 17 00:00:00 2001 From: Ivan Zenteno Date: Wed, 2 Dec 2015 10:47:59 -0600 Subject: [PATCH 11/13] Updating gemspec --- yum_s3_sync-0.0.13.gem | Bin 12288 -> 12288 bytes yum_s3_sync.gemspec | 7 +++---- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/yum_s3_sync-0.0.13.gem b/yum_s3_sync-0.0.13.gem index a5bc2eaa004ba7e879a27b3aff3dd33667175fb5..6a3c29c425800304807652983d810692d0b31558 100644 GIT binary patch delta 8867 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 delta 8950 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 diff --git a/yum_s3_sync.gemspec b/yum_s3_sync.gemspec index fc959b7..2b796b6 100644 --- a/yum_s3_sync.gemspec +++ b/yum_s3_sync.gemspec @@ -20,7 +20,6 @@ Gem::Specification.new do |spec| spec.add_development_dependency 'bundler', '~> 1.7' spec.add_development_dependency 'rake', '~> 10.0' - spec.add_dependency 'nokogiri', '~> 1.4', '>= 1.4.3' - spec.add_dependency 'parallel', '~> 1.6', '>=1.6.1' - spec.add_dependency 'aws-sdk' -end \ No newline at end of file + spec.add_runtime_dependency(%q, [">= 1.4.3"]) + spec.add_runtime_dependency(%q, [">= 1.6.1"]) +end From 07b9bc0ead5b0539e43786d67bce5070459ffd9a Mon Sep 17 00:00:00 2001 From: Ivan Zenteno Date: Wed, 2 Dec 2015 11:19:23 -0600 Subject: [PATCH 12/13] Updating gem file --- yum_s3_sync-0.0.13.gem | Bin 12288 -> 12288 bytes yum_s3_sync.gemspec | 4 ++-- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/yum_s3_sync-0.0.13.gem b/yum_s3_sync-0.0.13.gem index 6a3c29c425800304807652983d810692d0b31558..58002d174ce3c913f4e490ffe471ea30970ea0f6 100644 GIT binary patch delta 8871 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 JAf`~G{141POI-i} delta 8844 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

GCKRu?V5Suq5L2mEsp;rBom;i1^c;w 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 diff --git a/yum_s3_sync.gemspec b/yum_s3_sync.gemspec index 2b796b6..d8748d7 100644 --- a/yum_s3_sync.gemspec +++ b/yum_s3_sync.gemspec @@ -13,8 +13,7 @@ Gem::Specification.new do |spec| spec.license = 'MIT' spec.files = `git ls-files -z`.split("\x0") - spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) } - spec.test_files = spec.files.grep(%r{^(test|spec|features)/}) + spec.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) } spec.require_paths = ['lib'] spec.add_development_dependency 'bundler', '~> 1.7' @@ -22,4 +21,5 @@ Gem::Specification.new do |spec| spec.add_runtime_dependency(%q, [">= 1.4.3"]) spec.add_runtime_dependency(%q, [">= 1.6.1"]) + spec.add_runtime_dependency(%q, [">= 0"]) end From 467a07d1828319433c94a407a450b1c1da5de745 Mon Sep 17 00:00:00 2001 From: Ivan Zenteno Date: Wed, 2 Dec 2015 11:25:36 -0600 Subject: [PATCH 13/13] aws-sdk-v1 its required on the headers --- lib/yum_s3_sync/s3_deleter.rb | 2 +- lib/yum_s3_sync/s3_file_lister.rb | 2 +- lib/yum_s3_sync/s3_uploader.rb | 2 +- yum_s3_sync-0.0.13.gem | Bin 12288 -> 12288 bytes 4 files changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/yum_s3_sync/s3_deleter.rb b/lib/yum_s3_sync/s3_deleter.rb index 6cce219..3ae791a 100644 --- a/lib/yum_s3_sync/s3_deleter.rb +++ b/lib/yum_s3_sync/s3_deleter.rb @@ -1,4 +1,4 @@ -require 'aws-sdk' +require 'aws-sdk-v1' module YumS3Sync class S3Deleter diff --git a/lib/yum_s3_sync/s3_file_lister.rb b/lib/yum_s3_sync/s3_file_lister.rb index cd751d9..75009a5 100644 --- a/lib/yum_s3_sync/s3_file_lister.rb +++ b/lib/yum_s3_sync/s3_file_lister.rb @@ -1,4 +1,4 @@ -require 'aws-sdk' +require 'aws-sdk-v1' require 'parallel' module YumS3Sync diff --git a/lib/yum_s3_sync/s3_uploader.rb b/lib/yum_s3_sync/s3_uploader.rb index bf3909c..33646d3 100644 --- a/lib/yum_s3_sync/s3_uploader.rb +++ b/lib/yum_s3_sync/s3_uploader.rb @@ -1,4 +1,4 @@ -require 'aws-sdk' +require 'aws-sdk-v1' module YumS3Sync class S3Uploader diff --git a/yum_s3_sync-0.0.13.gem b/yum_s3_sync-0.0.13.gem index 58002d174ce3c913f4e490ffe471ea30970ea0f6..ae1a91682dafe8a8eb805a4872052856dbd9e356 100644 GIT binary patch delta 8104 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