contained_mr 0.3.0 → 0.3.1

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: ddef939463b55a174ccb6f44f90ad8f28f9f8bdc
4
- data.tar.gz: b80c4c9a95e03b2fc61bd378f1e405a26a633513
3
+ metadata.gz: 7a671efb4fb8421ddf841a9eeabb64b5612bf930
4
+ data.tar.gz: 304aff98010a52db78225a845406f0cb19bd0651
5
5
  SHA512:
6
- metadata.gz: 195e87944d7a7d3d447d7526ee58459c091381a5c7c25f78ac7c1768fc9857f1f3106f8b011554f3d232e6b7dd36f47a24cf402bc861912751d3abfc2317f79a
7
- data.tar.gz: e19354cfca2219c5d2765e268a2d8a93ffd243168b50bd46b87e8b023cfc976d74f52631926daa917f33a4674b9be75d254be1f745f2f900084bd9a1a9570b95
6
+ metadata.gz: d558c08cce053336b116dda4a270c8d391de24d1b1d7ddecaf4c7761b0cb5ac227dbc7952f268c9b6a1448fd935290510d6e34ff061e09d203b2758fb0b14f0f
7
+ data.tar.gz: 388ef7ed32cf7506b732cabe66b8f38b869014f89d2b6916e6fc955133c953d6811cbce86daba9fc037746af68063c3fa96738ff6c8dd5eb5fcd9993fd37e8fd
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.3.0
1
+ 0.3.1
data/contained_mr.gemspec CHANGED
@@ -2,11 +2,11 @@
2
2
  # DO NOT EDIT THIS FILE DIRECTLY
3
3
  # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
4
  # -*- encoding: utf-8 -*-
5
- # stub: contained_mr 0.3.0 ruby lib
5
+ # stub: contained_mr 0.3.1 ruby lib
6
6
 
7
7
  Gem::Specification.new do |s|
8
8
  s.name = "contained_mr"
9
- s.version = "0.3.0"
9
+ s.version = "0.3.1"
10
10
 
11
11
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
12
12
  s.require_paths = ["lib"]
@@ -83,4 +83,37 @@ class ContainedMr::Mock::Runner
83
83
  end
84
84
  nil
85
85
  end
86
+
87
+ # Convenience method for looking up the RAM limit in the container options.
88
+ #
89
+ # @return {Number} the container's RAM limit, in megabytes
90
+ def _ram_limit
91
+ return nil unless host_config = @_container_options['HostConfig']
92
+ return nil unless memory = host_config['Memory']
93
+ memory / (1024 * 1024).to_f
94
+ end
95
+
96
+ # Convenience method for looking up the swap limit in the container options.
97
+ #
98
+ # @return {Number} the container's swap limit, in megabytes
99
+ def _swap_limit
100
+ return nil unless host_config = @_container_options['HostConfig']
101
+ return nil unless memory = host_config['Memory']
102
+ return nil unless memory_swap = host_config['MemorySwap']
103
+
104
+ return 0 if memory_swap == -1
105
+ (memory_swap - memory) / (1024 * 1024).to_f
106
+ end
107
+
108
+ # Convenience method for looking up CPU allocation in the container options.
109
+ #
110
+ # @return {Number} the number of CPU cores allocated to the container; this
111
+ # can be a fraction
112
+ def _vcpus
113
+ return nil unless host_config = @_container_options['HostConfig']
114
+ return nil unless period = host_config['CpuPeriod']
115
+ return nil unless shares = host_config['CpuShares']
116
+
117
+ shares / period.to_f
118
+ end
86
119
  end
@@ -102,4 +102,64 @@ class TestMockRunner < MiniTest::Test
102
102
  assert_equal nil, runner._ulimit('cpu')
103
103
  assert_equal nil, runner._ulimit('rss')
104
104
  end
105
+
106
+ def test_memory_cpu_limits
107
+ assert_equal 256.5, @runner._ram_limit
108
+ assert_equal 64, @runner._swap_limit
109
+ assert_equal 1.5, @runner._vcpus
110
+ end
111
+
112
+ def test_memory_cpu_limits_without_host_config
113
+ @container_options.delete 'HostConfig'
114
+ runner = ContainedMr::Mock::Runner.new @container_options, 2.5,
115
+ '/usr/mrd/map-output'
116
+ assert_equal nil, runner._ram_limit
117
+ assert_equal nil, runner._swap_limit
118
+ assert_equal nil, runner._vcpus
119
+ end
120
+
121
+ def test_memory_cpu_limits_without_host_config_memory
122
+ @container_options['HostConfig'].delete 'Memory'
123
+ runner = ContainedMr::Mock::Runner.new @container_options, 2.5,
124
+ '/usr/mrd/map-output'
125
+ assert_equal nil, runner._ram_limit
126
+ assert_equal nil, runner._swap_limit
127
+ assert_equal 1.5, runner._vcpus
128
+ end
129
+
130
+ def test_memory_cpu_limits_without_host_config_memory_swap
131
+ @container_options['HostConfig'].delete 'MemorySwap'
132
+ runner = ContainedMr::Mock::Runner.new @container_options, 2.5,
133
+ '/usr/mrd/map-output'
134
+ assert_equal 256.5, runner._ram_limit
135
+ assert_equal nil, runner._swap_limit
136
+ assert_equal 1.5, runner._vcpus
137
+ end
138
+
139
+ def test_memory_cpu_limits_without_host_config_cpu_shares
140
+ @container_options['HostConfig'].delete 'CpuShares'
141
+ runner = ContainedMr::Mock::Runner.new @container_options, 2.5,
142
+ '/usr/mrd/map-output'
143
+ assert_equal 256.5, runner._ram_limit
144
+ assert_equal 64, runner._swap_limit
145
+ assert_equal nil, runner._vcpus
146
+ end
147
+
148
+ def test_memory_cpu_limits_without_host_config_cpu_period
149
+ @container_options['HostConfig'].delete 'CpuPeriod'
150
+ runner = ContainedMr::Mock::Runner.new @container_options, 2.5,
151
+ '/usr/mrd/map-output'
152
+ assert_equal 256.5, runner._ram_limit
153
+ assert_equal 64, runner._swap_limit
154
+ assert_equal nil, runner._vcpus
155
+ end
156
+
157
+ def test_memory_limits_without_swap
158
+ @container_options['HostConfig']['MemorySwap'] = -1
159
+ runner = ContainedMr::Mock::Runner.new @container_options, 2.5,
160
+ '/usr/mrd/map-output'
161
+ assert_equal 256.5, runner._ram_limit
162
+ assert_equal 0, runner._swap_limit
163
+ assert_equal 1.5, runner._vcpus
164
+ end
105
165
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: contained_mr
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Victor Costan