]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
crushtool: beginnings of rule parsing
authorSage Weil <sage@newdream.net>
Thu, 20 Mar 2008 01:18:34 +0000 (18:18 -0700)
committerSage Weil <sage@newdream.net>
Thu, 20 Mar 2008 01:19:36 +0000 (18:19 -0700)
src/crush/sample.txt
src/crushtool

index 99b2040280211db48ddc7256e39ca2b107a14d03..54cf06a7bc4ddbfde171ab52a1642c26bded9703 100644 (file)
 
 # rules
 <rules>
-       <rule 1x>
-         id 1
-         step take root
-         step choose_indep 1 osd
-         step emit
-       </rule>
-       <rule 2x>
-         id 2
-         step take root
-         step choose_indep 2 osd
-         step emit
-       </rule>
-       <rule 3x>
-         id 3
-         step take root-d2
-         step choose_indep 3 osd
-         step emit
+       <rule normal>
+               pool 0
+               type replicated
+               min_size 1
+               mix_size 4
+               step take root
+               step choose_indep 0 osd
+               step emit
        </rule>
 </rules>
index 1ffcee52aafe473f03835f18af29e11717af983c..b7f4d046db137cb7ab00f1cdae082fa9f16d0c6a 100755 (executable)
@@ -231,6 +231,16 @@ sub compile_crush {
        }
     }
 
+    # rules
+    for my $rule_name (keys %{$arr->{'rules'}->{'rule'}}) {
+       my $r = $arr->{'rules'}->{'rule'}->{$rule_name};
+       my $pool = $r->{'pool'};
+       my $typeid = $rule_types{$r->{'type'}};
+       my $min_size = $r->{'min_size'};
+       my $max_size = $r->{'max_size'};
+               
+    }
+
     $wrap->finalize;
     $wrap->write_to_file($outfn);
     1;