vagrant-gatling-rsync 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 874e00d6caf6487664c49d27f97208fcea7f015c
4
- data.tar.gz: 26c34bedc9e1936f71a22dcd9950c175e5d3ac54
3
+ metadata.gz: f7e90735d5b30fc728ce9def9abc606eba65a780
4
+ data.tar.gz: 97ffd1da36b10c33132168c0cacf6f68219f9520
5
5
  SHA512:
6
- metadata.gz: 9f57f6c8a0c5d559302a44afa669995e821212f1842dd2d550531bd34d92eb670f35e4c3c5828a19ee3c3cfbcd5f2fc3aeeeb44c64e862e36edcc34b585c7249
7
- data.tar.gz: cf8b9867b09ef3de6eb8b0b32be938a56e2b59b2fa6f6e36e81b45de12885fe23ca48cfe44275108a9105282d9b28c1f9a69a5654216095ae5fa87369e75de12
6
+ metadata.gz: 88804ec3406328978c34cb02e33ec8e62d7ab7c0459b099d60d13c38357675edad2f2442690902d100d827d836752109b23e66b67327dd0563018d45bdbfdabd
7
+ data.tar.gz: d46d7d7848cf6aecff2f7470c597f0b10d4e5d71adb70c281088a0a6f4c3ef5d063fb0fbe88f51d2602418e5500b6f16e91ab7577809868e9011f52136a5a1b9
data/CHANGELOG.md CHANGED
@@ -1,3 +1,21 @@
1
+ ## 0.0.4 (August 24, 2014)
2
+
3
+ This release adds notification of time and duration of rsyncs.
4
+
5
+ It also adds the config.gatling.time_format configuration option to allow customization of the time format string when
6
+ time information is printed to the console.
7
+
8
+ It also updates the Gemfile to use Vagrant 1.6.4 so that I can test on Linux using the Docker provider. This should not
9
+ have any impact on using the gem with 1.5.1+ versions of Vagrant, however.
10
+
11
+ FEATURES:
12
+
13
+ - Add output to note when an rsync finishes and how long it took. [GH-7, GH-10]
14
+
15
+ BUG FIXES:
16
+
17
+ - The plugin now correctly outputs an error instead of failing to load on Vagrant versions < 1.5.1. [GH-11]
18
+
1
19
  ## 0.0.3 (May 02, 2014)
2
20
 
3
21
  Bugfix release.
data/Gemfile CHANGED
@@ -4,7 +4,7 @@ source 'https://rubygems.org'
4
4
  gemspec
5
5
 
6
6
  group :development do
7
- gem "vagrant", :git => "https://github.com/mitchellh/vagrant.git", :tag => 'v1.5.1'
7
+ gem "vagrant", :git => "https://github.com/mitchellh/vagrant.git", :tag => 'v1.6.3'
8
8
  end
9
9
 
10
10
  group :plugins do
data/README.md CHANGED
@@ -17,6 +17,11 @@ vagrant plugin install vagrant-gatling-rsync
17
17
  Add the following information to the Vagrantfile to set the coalescing
18
18
  threshold in seconds. If you do not set it, it will default to 1.5.
19
19
 
20
+ You may also specify what
21
+ [Time.strftime](http://www.ruby-doc.org/core-2.0.0/Time.html#method-i-strftime)
22
+ options the plugin will use when it reports on completed rsyncs. The default is
23
+ "%I:%M:%S %p".
24
+
20
25
  You will also need to have at least one synced folder set to type "rsync"
21
26
  to use the plugin.
22
27
 
@@ -32,6 +37,7 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
32
37
  # Configure the window for gatling to coalesce writes.
33
38
  if Vagrant.has_plugin?("vagrant-gatling-rsync")
34
39
  config.gatling.latency = 2.5
40
+ config.gatling.time_format = "%H:%M:%S"
35
41
  end
36
42
  end
37
43
  ```
@@ -7,6 +7,18 @@ VAGRANTFILE_API_VERSION = "2"
7
7
  Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
8
8
  config.vm.box = "hashicorp/precise64"
9
9
 
10
+ config.vm.provider "docker" do |d, override|
11
+ d.image = "smerrill/vagrant-centos"
12
+ d.has_ssh = true
13
+
14
+ # This is needed if you have non-Docker provisioners in the Vagrantfile.
15
+ override.vm.box = nil
16
+
17
+ # Ensure Vagrant knows the SSH port. See
18
+ # https://github.com/mitchellh/vagrant/issues/3772.
19
+ override.ssh.port = 22
20
+ end
21
+
10
22
  # Share an additional folder to the guest VM. The first argument is
11
23
  # the path on the host to the actual folder. The second argument is
12
24
  # the path on the guest to mount the folder. And the optional third
@@ -14,8 +26,9 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
14
26
  config.vm.synced_folder "../files", "/opt/vagrant/rsynced_folder", type: "rsync",
15
27
  rsync__exclude: [".git/", ".idea/"]
16
28
 
17
- # Configure the window for gatling to coalesce writes.
18
- if Vagrant.has_plugin?("vagrant-gatling-rsync")
19
- config.gatling.latency = 2.5
20
- end
29
+ # Configure the window for gatling to coalesce writes. Note that when using
30
+ # outside of a development environment like this one, you should wrap these
31
+ # statements in an 'if Vagrant.has_plugin?("vagrant-gatling-rsync")' test.
32
+ config.gatling.latency = 0.4
33
+ config.gatling.time_format = "%H:%M:%S"
21
34
  end
@@ -1,5 +1,5 @@
1
1
  # This file is required because Vagrant's plugin system expects
2
- # a eponymous ruby file matching the rubygem.
2
+ # an eponymous ruby file matching the rubygem.
3
3
  #
4
4
  # So this gem is called 'vagrant-gatling-rsync' and thus vagrant tries
5
5
  # to require "vagrant-gatling-rsync"
@@ -6,6 +6,12 @@ require "vagrant"
6
6
  module VagrantPlugins
7
7
  module GatlingRsync
8
8
  class GatlingRsyncAuto < Vagrant.plugin(2, :command)
9
+ # This is a sanity check to make sure no one is attempting to install
10
+ # this into an early Vagrant version.
11
+ if Vagrant::VERSION < "1.5.1"
12
+ raise Errors::Vagrant15RequiredError
13
+ end
14
+
9
15
  include Vagrant::Action::Builtin::MixinSyncedFolders
10
16
 
11
17
  def self.synopsis
@@ -121,12 +127,20 @@ module VagrantPlugins
121
127
  tosync.each do |folders|
122
128
  folders.each do |opts|
123
129
  ssh_info = opts[:machine].ssh_info
124
- if ssh_info
125
- VagrantPlugins::SyncedFolderRSync::RsyncHelper.rsync_single(opts[:machine], ssh_info, opts[:opts])
126
- end
130
+ do_rsync(opts[:machine], ssh_info, opts[:opts]) if ssh_info
127
131
  end
128
132
  end
129
133
  end
134
+
135
+ def do_rsync(machine, ssh_info, opts)
136
+ start_time = Time.new
137
+ VagrantPlugins::SyncedFolderRSync::RsyncHelper.rsync_single(machine, ssh_info, opts)
138
+ end_time = Time.new
139
+ machine.ui.info(I18n.t(
140
+ "vagrant_gatling_rsync.gatling_ran",
141
+ date: end_time.strftime(machine.config.gatling.time_format),
142
+ milliseconds: (end_time - start_time) * 1000))
143
+ end
130
144
  end
131
145
  end
132
146
  end
@@ -2,15 +2,18 @@ require "vagrant"
2
2
 
3
3
  module VagrantPlugins
4
4
  module GatlingRsync
5
- class Config < Vagrant.plugin("2", :config)
5
+ class Config < Vagrant.plugin(2, :config)
6
6
  attr_accessor :latency
7
+ attr_accessor :time_format
7
8
 
8
9
  def initialize
9
10
  @latency = UNSET_VALUE
11
+ @time_format = UNSET_VALUE
10
12
  end
11
13
 
12
14
  def finalize!
13
15
  @latency = 1.5 if @latency == UNSET_VALUE
16
+ @time_format = "%I:%M:%S %p" if @time_format == UNSET_VALUE
14
17
  end
15
18
 
16
19
  # @TODO: This does not appear to be called.
@@ -4,15 +4,9 @@ rescue LoadError
4
4
  raise "The Vagrant gatling rsync plugin must be run within Vagrant."
5
5
  end
6
6
 
7
- # This is a sanity check to make sure no one is attempting to install
8
- # this into an early Vagrant version.
9
- if Vagrant::VERSION < "1.5.1"
10
- raise Errors::Vagrant15RequiredError
11
- end
12
-
13
7
  module VagrantPlugins
14
8
  module GatlingRsync
15
- class Plugin < Vagrant.plugin("2")
9
+ class Plugin < Vagrant.plugin(2)
16
10
  name "Gatling Rsync"
17
11
  description <<-DESC
18
12
  Rsync large project directories to your Vagrant VM without using many resources on the host.
@@ -1,5 +1,5 @@
1
1
  module VagrantPlugins
2
2
  module GatlingRsync
3
- VERSION = "0.0.3"
3
+ VERSION = "0.0.4"
4
4
  end
5
5
  end
data/locales/en.yml CHANGED
@@ -1,8 +1,10 @@
1
1
  en:
2
2
  vagrant_gatling_rsync:
3
+ gatling_ran: |-
4
+ %{date}: The rsync operation completed in %{milliseconds} milliseconds.
3
5
  errors:
4
6
  only_osx_linux_support: |-
5
- This plugin currently only supports Max OS X and Linux hosts.
7
+ The vagrant-gatling-rsync plugin currently only supports Max OS X and Linux hosts.
6
8
  vagrant_15_required: |-
7
- This plugin requires Vagrant 1.5.1 or newer to function.
9
+ The vagrant-gatling-rsync plugin requires Vagrant 1.5.1 or newer to function.
8
10
 
@@ -13,8 +13,7 @@ Gem::Specification.new do |spec|
13
13
  spec.homepage = ""
14
14
  spec.license = "MIT"
15
15
 
16
- # @TODO: Remove example files from the built gem.
17
- spec.files = `git ls-files -z`.split("\x0")
16
+ spec.files = `git ls-files -z`.split("\x0").reject {|f| f.start_with?('example/files')}
18
17
  spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
19
18
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
20
19
  spec.require_paths = ["lib"]
@@ -22,4 +21,6 @@ Gem::Specification.new do |spec|
22
21
  spec.add_development_dependency "bundler", "~> 1.5"
23
22
  spec.add_development_dependency "rake"
24
23
  spec.add_development_dependency "pry"
24
+ # Make Vagrant work on Linux for development.
25
+ spec.add_development_dependency "json", "~> 1.8.1"
25
26
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vagrant-gatling-rsync
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Steven Merrill
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-05-02 00:00:00.000000000 Z
11
+ date: 2014-08-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -52,6 +52,20 @@ dependencies:
52
52
  - - '>='
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: json
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ~>
60
+ - !ruby/object:Gem::Version
61
+ version: 1.8.1
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ~>
67
+ - !ruby/object:Gem::Version
68
+ version: 1.8.1
55
69
  description: The gatling-rsync plugin runs on Mac and Linux and is far less CPU-intensive
56
70
  than the built-in rsync-auto.
57
71
  email:
@@ -67,7 +81,6 @@ files:
67
81
  - LICENSE
68
82
  - README.md
69
83
  - Rakefile
70
- - example/files/.gitkeep
71
84
  - example/vagrant/Vagrantfile
72
85
  - lib/vagrant-gatling-rsync.rb
73
86
  - lib/vagrant-gatling-rsync/command/rsync_auto.rb
@@ -100,7 +113,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
100
113
  version: '0'
101
114
  requirements: []
102
115
  rubyforge_project:
103
- rubygems_version: 2.0.14
116
+ rubygems_version: 2.1.11
104
117
  signing_key:
105
118
  specification_version: 4
106
119
  summary: A lighter-weight Vagrant plugin for watching and rsyncing directories.