ipadmin 0.4.0 → 0.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (8) hide show
  1. data/README +166 -446
  2. data/lib/cidr.rb +132 -241
  3. data/lib/eui.rb +6 -40
  4. data/lib/methods.rb +28 -99
  5. data/lib/tree.rb +23 -144
  6. data/tests/cidr_test.rb +28 -17
  7. data/tests/tree_test.rb +2 -1
  8. metadata +4 -4
@@ -22,11 +22,6 @@ class Tree
22
22
  @root = NetStruct.new(nil, nil, [])
23
23
  end
24
24
 
25
- #======================================#
26
- #
27
- #======================================#
28
-
29
-
30
25
  #==============================================================================#
31
26
  # add!()
32
27
  #==============================================================================#
@@ -34,13 +29,15 @@ class Tree
34
29
  # Add a CIDR address or IPAdmin::CIDR object to the tree.
35
30
  #
36
31
  # - Arguments:
37
- # * CIDR address or IPAdmin::CIDR object
32
+ # * String or IPAdmin::CIDR object
38
33
  #
39
34
  # - Returns:
40
- # * nothing
35
+ # * nil
41
36
  #
42
37
  # Examples:
43
38
  # tree.add!('192.168.1.0/24')
39
+ # cidr = IPAdmin::CIDR.new(:CIDR => '192.168.1.0/24', :Tag => {:title => 'test net'}
40
+ # tree.add!(cidr)
44
41
  #
45
42
  def add!(new)
46
43
  duplicate = false
@@ -54,10 +51,7 @@ class Tree
54
51
  "errors: #{error}"
55
52
  end
56
53
  else
57
- cidr = IPAdmin::CIDR.new(:PackedIP => new.packed_ip,
58
- :PackedNetmask => new.packed_netmask,
59
- :Version => new.version,
60
- :Tag => new.tag)
54
+ cidr = new.dup
61
55
  end
62
56
 
63
57
  version = cidr.version
@@ -89,14 +83,9 @@ class Tree
89
83
  add_to_parent(new_entry,new_entry.parent)
90
84
  end
91
85
 
92
- return()
86
+ return(nil)
93
87
  end
94
88
 
95
- #======================================#
96
- #
97
- #======================================#
98
-
99
-
100
89
  #==============================================================================#
101
90
  # ancestors()
102
91
  #==============================================================================#
@@ -104,7 +93,7 @@ class Tree
104
93
  # Returns all the ancestors of the provided CIDR addresses.
105
94
  #
106
95
  # - Arguments:
107
- # * CIDR address or IPAdmin::CIDR object
96
+ # * String or IPAdmin::CIDR object
108
97
  #
109
98
  # - Returns:
110
99
  # * Array of IPAdmin::CIDR objects
@@ -134,11 +123,6 @@ class Tree
134
123
  return(list)
135
124
  end
136
125
 
137
- #======================================#
138
- #
139
- #======================================#
140
-
141
-
142
126
  #==============================================================================#
143
127
  # children()
144
128
  #==============================================================================#
@@ -146,7 +130,7 @@ class Tree
146
130
  # Returns all the immediate children of the provided CIDR addresses.
147
131
  #
148
132
  # - Arguments:
149
- # * CIDR address or IPAdmin::CIDR object
133
+ # * String or IPAdmin::CIDR object
150
134
  #
151
135
  # - Returns:
152
136
  # * Array of IPAdmin::CIDR objects
@@ -173,11 +157,6 @@ class Tree
173
157
  return(list)
174
158
  end
175
159
 
176
- #======================================#
177
- #
178
- #======================================#
179
-
180
-
181
160
  #==============================================================================#
182
161
  # descendants
183
162
  #==============================================================================#
@@ -185,7 +164,7 @@ class Tree
185
164
  # Return all descendants of the provided CIDR address.
186
165
  #
187
166
  # - Arguments:
188
- # * CIDR address or IPAdmin::CIDR object
167
+ # * String or IPAdmin::CIDR object
189
168
  #
190
169
  # - Returns:
191
170
  # * Array of IPAdmin::CIDR objects
@@ -212,11 +191,6 @@ class Tree
212
191
  return(list)
213
192
  end
214
193
 
215
- #======================================#
216
- #
217
- #======================================#
218
-
219
-
220
194
  #==============================================================================#
221
195
  # delete!()
222
196
  #==============================================================================#
@@ -224,7 +198,7 @@ class Tree
224
198
  # Remove the provided CIDR address from the tree.
225
199
  #
226
200
  # - Arguments:
227
- # * CIDR address of IPAdmin::CIDR object
201
+ # * String or IPAdmin::CIDR object
228
202
  #
229
203
  # - Returns:
230
204
  # * true on success or false on fail
@@ -260,11 +234,6 @@ class Tree
260
234
  return(removed)
261
235
  end
262
236
 
263
- #======================================#
264
- #
265
- #======================================#
266
-
267
-
268
237
  #==============================================================================#
269
238
  # dump
270
239
  #==============================================================================#
@@ -294,11 +263,6 @@ class Tree
294
263
  return(list)
295
264
  end
296
265
 
297
- #======================================#
298
- #
299
- #======================================#
300
-
301
-
302
266
  #==============================================================================#
303
267
  # exists?()
304
268
  #==============================================================================#
@@ -306,7 +270,7 @@ class Tree
306
270
  # Has a CIDR address already been added to the tree?
307
271
  #
308
272
  # - Arguments:
309
- # * CIDR address or IPAdmin::CIDR object
273
+ # * String or IPAdmin::CIDR object
310
274
  #
311
275
  # - Returns:
312
276
  # * true or false
@@ -331,11 +295,6 @@ class Tree
331
295
  return(found)
332
296
  end
333
297
 
334
- #======================================#
335
- #
336
- #======================================#
337
-
338
-
339
298
  #==============================================================================#
340
299
  # fill_in!()
341
300
  #==============================================================================#
@@ -343,7 +302,7 @@ class Tree
343
302
  # Fill in the missing subnets of a particular CIDR.
344
303
  #
345
304
  # - Arguments:
346
- # * CIDR address or IPAdmin::CIDR object
305
+ # * String or IPAdmin::CIDR object
347
306
  #
348
307
  # - Returns:
349
308
  # * true or false
@@ -376,11 +335,6 @@ class Tree
376
335
  return(filled)
377
336
  end
378
337
 
379
- #======================================#
380
- #
381
- #======================================#
382
-
383
-
384
338
  #==============================================================================#
385
339
  # find()
386
340
  #==============================================================================#
@@ -388,7 +342,7 @@ class Tree
388
342
  # Find and return a CIDR from within the tree.
389
343
  #
390
344
  # - Arguments:
391
- # * CIDR address or IPAdmin::CIDR object
345
+ # * String or IPAdmin::CIDR object
392
346
  #
393
347
  # - Returns:
394
348
  # * IPAdmin::CIDR object, or nil
@@ -409,11 +363,6 @@ class Tree
409
363
  return(find_me(cidr).cidr)
410
364
  end
411
365
 
412
- #======================================#
413
- #
414
- #======================================#
415
-
416
-
417
366
  #==============================================================================#
418
367
  # find_space()
419
368
  #==============================================================================#
@@ -487,11 +436,6 @@ class Tree
487
436
  return(list)
488
437
  end
489
438
 
490
- #======================================#
491
- #
492
- #======================================#
493
-
494
-
495
439
  #==============================================================================#
496
440
  # longest_match()
497
441
  #==============================================================================#
@@ -500,7 +444,7 @@ class Tree
500
444
  # CIDR address belongs. Useful for performing 'routing table' style lookups.
501
445
  #
502
446
  # - Arguments:
503
- # * CIDR address or IPAdmin::CIDR object
447
+ # * String or IPAdmin::CIDR object
504
448
  #
505
449
  # - Returns:
506
450
  # * IPAdmin::CIDR object, or nil
@@ -510,7 +454,7 @@ class Tree
510
454
  #
511
455
  def longest_match(cidr)
512
456
  if ( !cidr.kind_of?(IPAdmin::CIDR) )
513
- begin
457
+ begin
514
458
  cidr = IPAdmin::CIDR.new(:CIDR => cidr)
515
459
  rescue Exception => error
516
460
  raise ArgumentError, "Provided argument raised the following " +
@@ -524,11 +468,6 @@ class Tree
524
468
  return(found.cidr)
525
469
  end
526
470
 
527
- #======================================#
528
- #
529
- #======================================#
530
-
531
-
532
471
  #==============================================================================#
533
472
  # merge_subnets!()
534
473
  #==============================================================================#
@@ -536,7 +475,7 @@ class Tree
536
475
  # Merge (summarize) all subnets of the provided CIDR address.
537
476
  #
538
477
  # - Arguments:
539
- # * CIDR address or IPAdmin::CIDR object
478
+ # * String or IPAdmin::CIDR object
540
479
  #
541
480
  # - Returns:
542
481
  # * true on success or false on fail
@@ -571,11 +510,6 @@ class Tree
571
510
  return(merged)
572
511
  end
573
512
 
574
- #======================================#
575
- #
576
- #======================================#
577
-
578
-
579
513
  #==============================================================================#
580
514
  # prune!()
581
515
  #==============================================================================#
@@ -583,7 +517,7 @@ class Tree
583
517
  # Remove all subnets of the provided CIDR address.
584
518
  #
585
519
  # - Arguments:
586
- # * CIDR address or IPAdmin::CIDR object
520
+ # * String or IPAdmin::CIDR object
587
521
  #
588
522
  # - Returns:
589
523
  # * true on success or false on fail
@@ -614,11 +548,6 @@ class Tree
614
548
  return(pruned)
615
549
  end
616
550
 
617
- #======================================#
618
- #
619
- #======================================#
620
-
621
-
622
551
  #==============================================================================#
623
552
  # remove!()
624
553
  #==============================================================================#
@@ -626,7 +555,7 @@ class Tree
626
555
  # Remove the provided CIDR address, and all of its subnets from the tree.
627
556
  #
628
557
  # - Arguments:
629
- # * CIDR address of IPAdmin::CIDR object
558
+ # * String or IPAdmin::CIDR object
630
559
  #
631
560
  # - Returns:
632
561
  # * true on success or false on fail
@@ -659,11 +588,6 @@ class Tree
659
588
  return(removed)
660
589
  end
661
590
 
662
- #======================================#
663
- #
664
- #======================================#
665
-
666
-
667
591
  #==============================================================================#
668
592
  # resize!()
669
593
  #==============================================================================#
@@ -671,7 +595,7 @@ class Tree
671
595
  # Resize the provided CIDR address.
672
596
  #
673
597
  # - Arguments:
674
- # * CIDR address or IPAdmin::CIDR object
598
+ # * String or IPAdmin::CIDR object
675
599
  # * Integer representing the bits of the new netmask
676
600
  #
677
601
  # - Returns:
@@ -705,11 +629,6 @@ class Tree
705
629
  return(resized)
706
630
  end
707
631
 
708
- #======================================#
709
- #
710
- #======================================#
711
-
712
-
713
632
  #==============================================================================#
714
633
  # root()
715
634
  #==============================================================================#
@@ -717,7 +636,7 @@ class Tree
717
636
  # Returns the root of the provided CIDR address.
718
637
  #
719
638
  # - Arguments:
720
- # * CIDR address or IPAdmin::CIDR object
639
+ # * String or IPAdmin::CIDR object
721
640
  #
722
641
  # - Returns:
723
642
  # * IPAdmin::CIDR object
@@ -747,11 +666,6 @@ class Tree
747
666
  return(parent.cidr)
748
667
  end
749
668
 
750
- #======================================#
751
- #
752
- #======================================#
753
-
754
-
755
669
  #==============================================================================#
756
670
  # show()
757
671
  #==============================================================================#
@@ -762,7 +676,7 @@ class Tree
762
676
  # * none
763
677
  #
764
678
  # - Returns:
765
- # * String representing the contents of the tree
679
+ # * String
766
680
  #
767
681
  # Examples:
768
682
  # puts tree.show()
@@ -787,11 +701,6 @@ class Tree
787
701
  return(printed)
788
702
  end
789
703
 
790
- #======================================#
791
- #
792
- #======================================#
793
-
794
-
795
704
  #==============================================================================#
796
705
  # siblings()
797
706
  #==============================================================================#
@@ -799,7 +708,7 @@ class Tree
799
708
  # Return list of the sibling CIDRs of the provided CIDR address.
800
709
  #
801
710
  # - Arguments:
802
- # * CIDR address or IPAdmin::CIDR object
711
+ # * String or IPAdmin::CIDR object
803
712
  #
804
713
  # - Returns:
805
714
  # * Array of IPAdmin::CIDR objects
@@ -828,11 +737,6 @@ class Tree
828
737
  return(list)
829
738
  end
830
739
 
831
- #======================================#
832
- #
833
- #======================================#
834
-
835
-
836
740
  #==============================================================================#
837
741
  # supernets()
838
742
  #==============================================================================#
@@ -854,12 +758,6 @@ class Tree
854
758
  return (supernets)
855
759
  end
856
760
 
857
- #======================================#
858
- #
859
- #======================================#
860
-
861
-
862
-
863
761
 
864
762
  # PRIVATE INSTANCE METHODS
865
763
  private
@@ -884,11 +782,6 @@ private
884
782
  return()
885
783
  end
886
784
 
887
- #======================================#
888
- #
889
- #======================================#
890
-
891
-
892
785
  #==============================================================================#
893
786
  # dump_children() private
894
787
  #==============================================================================#
@@ -910,11 +803,6 @@ private
910
803
  return(list)
911
804
  end
912
805
 
913
- #======================================#
914
- #
915
- #======================================#
916
-
917
-
918
806
  #==============================================================================#
919
807
  # find_me() private
920
808
  #==============================================================================#
@@ -938,11 +826,6 @@ private
938
826
  return(me)
939
827
  end
940
828
 
941
- #======================================#
942
- #
943
- #======================================#
944
-
945
-
946
829
  #==============================================================================#
947
830
  # find_parent() private
948
831
  #==============================================================================#
@@ -967,11 +850,7 @@ private
967
850
  return(parent)
968
851
  end
969
852
 
970
- #======================================#
971
- #
972
- #======================================#
973
-
974
- end
853
+ end # class Tree
975
854
 
976
855
  end # module IPAdmin
977
856
  __END__
@@ -8,34 +8,45 @@ require 'test/unit'
8
8
  class TestCIDR < Test::Unit::TestCase
9
9
 
10
10
  def test_new
11
- assert_not_nil(IPAdmin::CIDR.new('192.168.1.0/24') )
12
- assert_not_nil(IPAdmin::CIDR.new(:CIDR => '192.168.1.0/24') )
13
- assert_not_nil(IPAdmin::CIDR.new(:CIDR => '192.168.1.0', :Netmask => '255.255.255.0') )
14
- assert_not_nil(IPAdmin::CIDR.new(:CIDR => '192.168.1.1') )
15
- assert_not_nil(IPAdmin::CIDR.new(:CIDR => 'fec0::/64') )
16
- assert_not_nil(IPAdmin::CIDR.new(:CIDR => '192.168.1.1/24') )
17
- assert_not_nil(IPAdmin::CIDR.new(:CIDR => 'fec0::1/64') )
18
- assert_not_nil(IPAdmin::CIDR.new('fec0::1/64'))
19
- assert_not_nil(IPAdmin::CIDR.new(:CIDR => 'fec0::1', :Netmask => 64) )
20
- assert_not_nil(IPAdmin::CIDR.new(:PackedIP => 0x0a0a0a0a, :PackedNetmask => 0xffffffff) )
21
-
22
- cidr = IPAdmin::CIDR.new(:CIDR => 'fec0::1', :Netmask => 64)
23
- assert_equal(64, cidr.bits )
11
+ assert_nothing_raised(Exception){IPAdmin::CIDR.new('192.168.1.0/24')}
12
+ assert_nothing_raised(Exception){IPAdmin::CIDR.new(:CIDR => '192.168.1.0/24') }
13
+ assert_nothing_raised(Exception){IPAdmin::CIDR.new(:CIDR => '192.168.1.0 255.255.255.0')}
14
+ assert_nothing_raised(Exception){IPAdmin::CIDR.new(:CIDR => '192.168.1.1') }
15
+ assert_nothing_raised(Exception){IPAdmin::CIDR.new(:CIDR => '192.168.1.1 ') }
16
+ assert_nothing_raised(Exception){IPAdmin::CIDR.new(:CIDR => 'fec0::/64') }
17
+ assert_nothing_raised(Exception){IPAdmin::CIDR.new(:CIDR => '192.168.1.1/24 255.255.0.0')}
18
+ assert_nothing_raised(Exception){IPAdmin::CIDR.new(:CIDR => 'fec0::1/64')}
19
+ assert_nothing_raised(Exception){IPAdmin::CIDR.new('fec0::1/64')}
20
+ assert_nothing_raised(Exception){IPAdmin::CIDR.new(:PackedIP => 0x0a0a0a0a, :PackedNetmask => 0xffffffff)}
21
+
22
+ cidr = IPAdmin::CIDR.new(:CIDR => '192.168.1.1 255.255.0.0')
23
+ assert_equal(16, cidr.bits )
24
+ assert_equal(4, cidr.version )
25
+
26
+ cidr = IPAdmin::CIDR.new(:CIDR => '192.168.1.1/24 255.255.0.0')
27
+ assert_equal(24, cidr.bits )
28
+ assert_equal(4, cidr.version )
24
29
 
25
- cidr = IPAdmin::CIDR.new(:CIDR => 'fec0::1/60', :Netmask => 64)
26
- assert_equal(60, cidr.bits )
30
+ cidr = IPAdmin::CIDR.new(:CIDR => 'fec0::1/64')
31
+ assert_equal(64, cidr.bits )
32
+ assert_equal(6, cidr.version )
27
33
 
28
34
  cidr = IPAdmin::CIDR.new(:CIDR => '10.10.10.10', :PackedIP => 0x0a0000000)
29
35
  assert_equal(0x0a0000000, cidr.packed_ip )
36
+ assert_equal(4, cidr.version )
30
37
 
31
- cidr = IPAdmin::CIDR.new(:CIDR => '10.10.10.10/32', :Netmask => 24)
38
+ cidr = IPAdmin::CIDR.new(:CIDR => '10.10.10.10/32 255.255.255.0')
32
39
  assert_equal(32, cidr.bits )
40
+ assert_equal(4, cidr.version )
33
41
 
34
42
  cidr = IPAdmin::CIDR.new(:CIDR => '10.10.10.10/32', :PackedNetmask => 0xffffff00)
35
43
  assert_equal(24, cidr.bits )
44
+ assert_equal(4, cidr.version )
36
45
 
37
46
  assert_raise(ArgumentError){ IPAdmin::CIDR.new(1) }
38
- assert_raise(ArgumentError){ IPAdmin::CIDR.new(:Version => 4, :Netmask => 32) }
47
+ assert_raise(ArgumentError){ IPAdmin::CIDR.new(:Version => 4) }
48
+ assert_raise(ArgumentError){ IPAdmin::CIDR.new('fec0::1/64 255.255.255.0') }
49
+ assert_raise(RuntimeError){ IPAdmin::CIDR.new(:CIDR => '192.168.1.0 a') }
39
50
  end
40
51
 
41
52