thinp_xml 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,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- OTc1YTFmYjhkNjI2ZDI4MjU2ZGZlZTU1MTFkZTVjZTFkNTM4NzAzNw==
4
+ NjEzY2RlNTQwYTJkM2U1YTU0ZmYxYzA4ZjgyMmI3OWM3ZTVlZGZhOA==
5
5
  data.tar.gz: !binary |-
6
- NzE5ZWY2N2EyYmJiMjA5MDYwOTcwMjczZjg0YzJjNDZiNWZlZTEyMw==
6
+ OGM5ZjgwY2FlN2FjYmUyZmJjMDE2MTdmMzQ0YWY4NGQzMDhkNjY5Yg==
7
7
  !binary "U0hBNTEy":
8
8
  metadata.gz: !binary |-
9
- ZGM4Y2I3Y2U3ZGM5N2JjMWUyNjAyZjA0M2YxZjQ4NGYzMDBkZGI3NTMzNGMx
10
- YzdkYjU5MGFjOGMwMmQ0NGFjZDc5YzIxODY3M2QwOTYwNzdkY2RkYTJhODk2
11
- MzQzMzNkMTU1NmQxMjZjYTMyYjRmZmI1NTRlMmI0MzBhZjBlY2E=
9
+ NDQ2YTM1ZDU3ZmU3MzllODJlYWI0OGMzNjI4ZWEyYThmMzUxMDI2MjAyZTAw
10
+ ODIxZmJlZTNiMzE4NTc5N2RkNDY2MjdiODBmMjk5YzU1NGRjZTM2MDJhZDM4
11
+ YTViODg4YzdlYmEyODZlOTdlMWQ0MjViNDk0NTBiMmIwNDRiYTk=
12
12
  data.tar.gz: !binary |-
13
- OGY5ZjExZmEyNTQwMDdmZDFjYmJjODljYzUxODIwZDA1NDE4NTQ4YjJhODJm
14
- ZjkzNDJhNjU2YjJlOTBhMTBjZTVkZGVhOTEzYTg2YmY5ZTRmMjM1NDY1ZDgy
15
- N2Q5YjY0Y2I4MDBhNTc0MmU3N2QyNGZjOTQ1NDk3YjhjMzE4YzY=
13
+ ZjEwMDE2ZWE0YTNlNmUyZGUyYTI2YTg4NDA3MGI5ZTJiMDA5ODA1Zjc1ZTQz
14
+ ZGQ1NjNiMjRlMGNmZDg0MjhlNmJmMzM4NWJlYjc1Yzg2Yjc5YjM1ZTQzNGE2
15
+ NGUxNTdiNGNhYThlNWE5NzRmMDBmNmFhYzgyYTkyYTE1YWEwMGI=
data/README.md CHANGED
@@ -24,12 +24,12 @@ Or install it yourself as:
24
24
 
25
25
  ## Usage
26
26
 
27
- $ thinp_xml create --nr-thins 4 --nr-mappings 100
27
+ $ thinp_xml create --nr-thins 4 --nr-mappings 100 --block-size 512
28
28
 
29
29
  When specifying numerical constants you may also give a random number distribution.
30
30
 
31
31
  uniform[<begin>..<end inclusive>]
32
32
 
33
- $ thinp_xml create --nr-thins uniform[4..9] --nr-mappings uniform[1000..10000]
33
+ $ thinp_xml create --nr-thins uniform[4..9] --nr-mappings uniform[1000..10000] --block-size 1024
34
34
 
35
35
 
data/bin/thinp_xml CHANGED
@@ -30,13 +30,14 @@ XMLCommandLine = CommandLine::Parser.new do
30
30
  value_switch :uuid, :string, '--uuid'
31
31
  value_switch :nr_thins, :int_distribution, '--nr-thins'
32
32
  value_switch :nr_mappings, :int_distribution, '--nr-mappings'
33
+ value_switch :block_size, :int, '--block-size'
33
34
 
34
35
  global do
35
36
  switches :help
36
37
  end
37
38
 
38
39
  command :create do
39
- switches :uuid, :nr_thins, :nr_mappings
40
+ switches :uuid, :nr_thins, :nr_mappings, :block_size
40
41
  end
41
42
  end
42
43
 
@@ -60,6 +61,7 @@ class Dispatcher
60
61
  b.uuid = opts.fetch(:uuid, '')
61
62
  b.nr_thins = opts.fetch(:nr_thins, 0)
62
63
  b.nr_mappings = opts.fetch(:nr_mappings, 0)
64
+ b.block_size = opts.fetch(:block_size, 128)
63
65
  md = b.generate
64
66
  write_xml(md, STDOUT)
65
67
  end
@@ -16,6 +16,14 @@ Feature: I can create new metadata
16
16
  </superblock>
17
17
  """
18
18
 
19
+ Scenario: Create a valid superblock with specified block size
20
+ When I thinp_xml create --block-size 512
21
+ Then the stdout should contain:
22
+ """
23
+ <superblock uuid="" time="0" transaction="1" data_block_size="512" nr_data_blocks="0">
24
+ </superblock>
25
+ """
26
+
19
27
  Scenario: Take an expression for the number of devices
20
28
  When I thinp_xml create --nr-thins 3
21
29
  Then the stdout should contain:
@@ -4,12 +4,13 @@ require 'thinp_xml/metadata'
4
4
 
5
5
  module ThinpXML
6
6
  class Builder
7
- attr_accessor :uuid, :nr_thins, :nr_mappings
7
+ attr_accessor :uuid, :nr_thins, :nr_mappings, :block_size
8
8
 
9
9
  def initialize
10
10
  @uuid = ''
11
11
  @nr_thins = 0
12
12
  @nr_mappings = 0
13
+ @block_size = 128
13
14
  end
14
15
 
15
16
  def generate
@@ -17,7 +18,7 @@ module ThinpXML
17
18
 
18
19
  mapping_counts = (0..nr_thins - 1).map {|n| @nr_mappings.to_i}
19
20
  nr_data_blocks = mapping_counts.inject(0) {|n, tot| n + tot}
20
- superblock = Superblock.new(@uuid, 0, 1, 128, nr_data_blocks)
21
+ superblock = Superblock.new(@uuid, 0, 1, @block_size, nr_data_blocks)
21
22
 
22
23
  devices = Array.new
23
24
  offset = 0
@@ -1,3 +1,3 @@
1
1
  module ThinpXml
2
- VERSION = "0.0.3"
2
+ VERSION = "0.0.4"
3
3
  end
data/spec/builder_spec.rb CHANGED
@@ -30,6 +30,24 @@ describe "ThinpXML::Builder" do
30
30
  end
31
31
  end
32
32
 
33
+ describe "block_size" do
34
+ it "should be 128 by default" do
35
+ @b.block_size.should == 128
36
+ end
37
+
38
+ it "should reflect any changes" do
39
+ @b.block_size = 512
40
+ @b.block_size.should == 512
41
+ end
42
+
43
+ it "should generate the correct block size" do
44
+ bs = 1024
45
+ @b.block_size = bs
46
+ md = @b.generate
47
+ md.superblock.data_block_size.should == bs
48
+ end
49
+ end
50
+
33
51
  describe "nr of thins" do
34
52
  it "zero by default" do
35
53
  @b.nr_thins.should == 0
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: thinp_xml
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
  - Joe Thornber
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-06-18 00:00:00.000000000 Z
11
+ date: 2013-06-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: ejt_command_line