trema 0.4.6 → 0.4.7

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 (291) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +1 -0
  3. data/.travis.yml +24 -7
  4. data/Gemfile +19 -27
  5. data/Guardfile +6 -0
  6. data/README.md +13 -5
  7. data/Rakefile +418 -415
  8. data/bin/quality +2 -2
  9. data/bin/trema +103 -105
  10. data/bin/trema-config +7 -7
  11. data/build.rb +2 -2
  12. data/cruise.rb +109 -83
  13. data/features/dsl/switch_port_specifier.feature +1 -1
  14. data/features/examples/dumper.feature +9 -41
  15. data/features/examples/hello_trema.feature +1 -1
  16. data/features/examples/learning_switch.feature +7 -7
  17. data/features/examples/list_switches.feature +5 -5
  18. data/features/examples/message.set_config.feature +11 -11
  19. data/features/examples/message.vendor-action.feature +7 -7
  20. data/features/examples/message.vendor-stats-request.feature +1 -1
  21. data/features/examples/multi_learning_switch.feature +7 -7
  22. data/features/examples/openflow_message.echo.feature +15 -15
  23. data/features/examples/openflow_message.features_request.feature +12 -12
  24. data/features/examples/openflow_message.hello.feature +13 -13
  25. data/features/examples/packet_in.feature +8 -8
  26. data/features/examples/patch_panel.feature +1 -1
  27. data/features/examples/repeater_hub.feature +7 -7
  28. data/features/examples/switch_info.feature +16 -16
  29. data/features/examples/switch_monitor.feature +11 -11
  30. data/features/examples/transparent_firewall.feature +73 -0
  31. data/features/handlers/switch_ready.feature +1 -1
  32. data/features/step_definitions/misc_steps.rb +24 -24
  33. data/features/step_definitions/send_packets_steps.rb +2 -2
  34. data/features/step_definitions/stats_steps.rb +6 -6
  35. data/features/support/env.rb +15 -15
  36. data/features/support/hooks.rb +9 -9
  37. data/features/switch_event/add_forward_entry.feature +3 -3
  38. data/features/switch_event/delete_forward_entry.feature +3 -3
  39. data/features/switch_event/dump_forward_entries.feature +2 -2
  40. data/features/switch_event/set_forward_entries.feature +2 -2
  41. data/features/trema_commands/dump_flows.feature +1 -0
  42. data/features/trema_commands/help.feature +1 -0
  43. data/features/trema_commands/help_option.feature +1 -0
  44. data/features/trema_commands/kill.feature +1 -0
  45. data/features/trema_commands/killall.feature +1 -0
  46. data/features/trema_commands/port_down.feature +1 -0
  47. data/features/trema_commands/port_up.feature +1 -0
  48. data/features/trema_commands/reset_stats.feature +1 -0
  49. data/features/trema_commands/run.feature +1 -0
  50. data/features/trema_commands/send_packets.feature +2 -1
  51. data/features/trema_commands/show_stats.feature +1 -0
  52. data/features/trema_commands/up.feature +1 -0
  53. data/features/trema_commands/version.feature +1 -0
  54. data/features/trema_commands/version_option.feature +1 -0
  55. data/rubocop-todo.yml +159 -0
  56. data/ruby/blocker.rb +15 -17
  57. data/ruby/extconf.rb +19 -19
  58. data/ruby/sub-process.rb +29 -29
  59. data/ruby/trema/aggregate-stats-reply.rb +2 -2
  60. data/ruby/trema/app.rb +13 -13
  61. data/ruby/trema/cli.rb +45 -45
  62. data/ruby/trema/command.rb +14 -14
  63. data/ruby/trema/command/dump_flows.rb +5 -5
  64. data/ruby/trema/command/kill.rb +13 -13
  65. data/ruby/trema/command/killall.rb +1 -1
  66. data/ruby/trema/command/netns.rb +3 -3
  67. data/ruby/trema/command/port_down.rb +7 -7
  68. data/ruby/trema/command/port_up.rb +7 -7
  69. data/ruby/trema/command/reset_stats.rb +6 -6
  70. data/ruby/trema/command/ruby.rb +2 -2
  71. data/ruby/trema/command/run.rb +23 -23
  72. data/ruby/trema/command/send_packets.rb +9 -9
  73. data/ruby/trema/command/shell.rb +14 -16
  74. data/ruby/trema/command/show_stats.rb +9 -9
  75. data/ruby/trema/command/up.rb +4 -4
  76. data/ruby/trema/command/version.rb +1 -1
  77. data/ruby/trema/controller.rb +10 -10
  78. data/ruby/trema/custom-switch.rb +4 -4
  79. data/ruby/trema/daemon.rb +21 -21
  80. data/ruby/trema/desc-stats-reply.rb +2 -2
  81. data/ruby/trema/dsl.rb +5 -5
  82. data/ruby/trema/dsl/configuration.rb +7 -7
  83. data/ruby/trema/dsl/context.rb +10 -10
  84. data/ruby/trema/dsl/custom-switch.rb +3 -3
  85. data/ruby/trema/dsl/link.rb +2 -2
  86. data/ruby/trema/dsl/netns.rb +9 -9
  87. data/ruby/trema/dsl/parser.rb +14 -14
  88. data/ruby/trema/dsl/rswitch.rb +3 -3
  89. data/ruby/trema/dsl/run.rb +4 -4
  90. data/ruby/trema/dsl/runner.rb +20 -20
  91. data/ruby/trema/dsl/stanza.rb +5 -5
  92. data/ruby/trema/dsl/switch.rb +14 -14
  93. data/ruby/trema/dsl/syntax.rb +54 -54
  94. data/ruby/trema/dsl/vhost.rb +9 -9
  95. data/ruby/trema/dsl/vswitch.rb +4 -4
  96. data/ruby/trema/enqueue.rb +11 -11
  97. data/ruby/trema/exact-match.rb +1 -1
  98. data/ruby/trema/executables.rb +19 -19
  99. data/ruby/trema/flow-stats-reply.rb +2 -2
  100. data/ruby/trema/flow.rb +8 -8
  101. data/ruby/trema/hardware-switch.rb +2 -2
  102. data/ruby/trema/host.rb +18 -18
  103. data/ruby/trema/link.rb +9 -9
  104. data/ruby/trema/mac.rb +1 -5
  105. data/ruby/trema/match.c +0 -1
  106. data/ruby/trema/monkey-patch/integer.rb +3 -3
  107. data/ruby/trema/monkey-patch/integer/base-conversions.rb +1 -1
  108. data/ruby/trema/monkey-patch/integer/ranges.rb +2 -2
  109. data/ruby/trema/monkey-patch/integer/validators.rb +1 -1
  110. data/ruby/trema/monkey-patch/module.rb +2 -2
  111. data/ruby/trema/monkey-patch/module/class-method.rb +2 -2
  112. data/ruby/trema/monkey-patch/module/deprecation.rb +1 -1
  113. data/ruby/trema/monkey-patch/string.rb +1 -1
  114. data/ruby/trema/monkey-patch/string/inflectors.rb +7 -7
  115. data/ruby/trema/netns.rb +6 -6
  116. data/ruby/trema/network-component.rb +7 -7
  117. data/ruby/trema/ofctl.rb +13 -13
  118. data/ruby/trema/open-vswitch.rb +25 -25
  119. data/ruby/trema/openflow-switch.rb +1 -1
  120. data/ruby/trema/ordered-hash.rb +8 -8
  121. data/ruby/trema/packet-in.c +0 -1
  122. data/ruby/trema/packet-queue.rb +8 -8
  123. data/ruby/trema/packetin-filter.rb +9 -9
  124. data/ruby/trema/path.rb +32 -32
  125. data/ruby/trema/phost.rb +5 -5
  126. data/ruby/trema/port-mod.c +0 -1
  127. data/ruby/trema/port-stats-reply.rb +2 -2
  128. data/ruby/trema/port-status-add.rb +2 -2
  129. data/ruby/trema/port-status-delete.rb +2 -2
  130. data/ruby/trema/port-status-modify.rb +2 -2
  131. data/ruby/trema/port.c +0 -1
  132. data/ruby/trema/process.rb +7 -7
  133. data/ruby/trema/queue-stats-reply.rb +2 -2
  134. data/ruby/trema/ruby-switch.rb +6 -6
  135. data/ruby/trema/send-out-port.rb +11 -11
  136. data/ruby/trema/set-eth-addr.rb +5 -5
  137. data/ruby/trema/set-eth-dst-addr.rb +1 -1
  138. data/ruby/trema/set-eth-src-addr.rb +1 -1
  139. data/ruby/trema/set-ip-addr.rb +6 -6
  140. data/ruby/trema/set-ip-dst-addr.rb +1 -1
  141. data/ruby/trema/set-ip-src-addr.rb +1 -1
  142. data/ruby/trema/set-ip-tos.rb +6 -6
  143. data/ruby/trema/set-transport-dst-port.rb +2 -2
  144. data/ruby/trema/set-transport-port.rb +7 -7
  145. data/ruby/trema/set-transport-src-port.rb +3 -3
  146. data/ruby/trema/set-vlan-priority.rb +6 -6
  147. data/ruby/trema/set-vlan-vid.rb +6 -6
  148. data/ruby/trema/shell.rb +10 -10
  149. data/ruby/trema/shell/down.rb +3 -3
  150. data/ruby/trema/shell/killall.rb +1 -1
  151. data/ruby/trema/shell/link.rb +14 -14
  152. data/ruby/trema/shell/reset_stats.rb +6 -6
  153. data/ruby/trema/shell/run.rb +7 -7
  154. data/ruby/trema/shell/send_packets.rb +3 -3
  155. data/ruby/trema/shell/show_stats.rb +7 -7
  156. data/ruby/trema/shell/up.rb +5 -5
  157. data/ruby/trema/shell/vhost.rb +4 -4
  158. data/ruby/trema/shell/vswitch.rb +7 -7
  159. data/ruby/trema/stats-helper.rb +3 -3
  160. data/ruby/trema/stats-reply.c +0 -1
  161. data/ruby/trema/strip-vlan-header.rb +1 -1
  162. data/ruby/trema/switch-daemon.rb +9 -9
  163. data/ruby/trema/switch-manager.rb +9 -9
  164. data/ruby/trema/switch.rb +7 -7
  165. data/ruby/trema/table-stats-reply.rb +2 -2
  166. data/ruby/trema/timers.rb +12 -12
  167. data/ruby/trema/trema.c +0 -1
  168. data/ruby/trema/tremashark.rb +1 -1
  169. data/ruby/trema/util.rb +25 -27
  170. data/ruby/trema/vendor-action.rb +10 -10
  171. data/ruby/trema/vendor-stats-reply.rb +2 -2
  172. data/ruby/trema/version.rb +1 -1
  173. data/spec/spec_helper.rb +50 -52
  174. data/spec/support/action.rb +9 -12
  175. data/spec/support/mandatory-option.rb +15 -18
  176. data/spec/support/matchers/constant.rb +7 -7
  177. data/spec/support/openflow-message.rb +76 -79
  178. data/spec/support/port-status.rb +7 -10
  179. data/spec/trema/app_spec.rb +27 -27
  180. data/spec/trema/barrier-reply_spec.rb +10 -10
  181. data/spec/trema/barrier-request_spec.rb +35 -35
  182. data/spec/trema/cli_spec.rb +63 -63
  183. data/spec/trema/controller_spec.rb +3 -3
  184. data/spec/trema/default-logger_spec.rb +4 -4
  185. data/spec/trema/dsl/configuration_spec.rb +47 -47
  186. data/spec/trema/dsl/link_spec.rb +11 -11
  187. data/spec/trema/dsl/run_spec.rb +19 -19
  188. data/spec/trema/dsl/runner_spec.rb +91 -91
  189. data/spec/trema/dsl/switch_spec.rb +16 -16
  190. data/spec/trema/dsl/syntax_spec.rb +22 -22
  191. data/spec/trema/dsl/vhost_spec.rb +37 -37
  192. data/spec/trema/dsl/vswitch_spec.rb +21 -21
  193. data/spec/trema/echo-reply_spec.rb +29 -29
  194. data/spec/trema/echo-request_spec.rb +54 -54
  195. data/spec/trema/enqueue_spec.rb +25 -25
  196. data/spec/trema/error_spec.rb +30 -30
  197. data/spec/trema/executables_spec.rb +20 -20
  198. data/spec/trema/features-reply_spec.rb +41 -41
  199. data/spec/trema/features-request_spec.rb +35 -35
  200. data/spec/trema/flow-mod_spec.rb +32 -32
  201. data/spec/trema/flow-removed_spec.rb +62 -62
  202. data/spec/trema/get-config-reply_spec.rb +14 -12
  203. data/spec/trema/get-config-request_spec.rb +35 -35
  204. data/spec/trema/hardware-switch_spec.rb +12 -12
  205. data/spec/trema/hello_spec.rb +17 -17
  206. data/spec/trema/host_spec.rb +71 -71
  207. data/spec/trema/link_spec.rb +13 -13
  208. data/spec/trema/list-switches-reply_spec.rb +10 -10
  209. data/spec/trema/match_spec.rb +41 -41
  210. data/spec/trema/open-vswitch_spec.rb +45 -45
  211. data/spec/trema/openflow-error_spec.rb +67 -65
  212. data/spec/trema/packet-in_spec.rb +450 -446
  213. data/spec/trema/packet-out_spec.rb +42 -42
  214. data/spec/trema/packetin-filter_spec.rb +5 -5
  215. data/spec/trema/port-mod_spec.rb +32 -32
  216. data/spec/trema/port-status-add_spec.rb +3 -3
  217. data/spec/trema/port-status-delete_spec.rb +3 -3
  218. data/spec/trema/port-status-modify_spec.rb +16 -16
  219. data/spec/trema/port-status_spec.rb +2 -2
  220. data/spec/trema/port_spec.rb +21 -21
  221. data/spec/trema/process_spec.rb +22 -22
  222. data/spec/trema/queue-get-config-reply_spec.rb +21 -20
  223. data/spec/trema/queue-get-config-request_spec.rb +24 -24
  224. data/spec/trema/send-out-port_spec.rb +42 -42
  225. data/spec/trema/set-config_spec.rb +31 -31
  226. data/spec/trema/set-eth-addr_spec.rb +21 -21
  227. data/spec/trema/set-ip-addr_spec.rb +29 -29
  228. data/spec/trema/set-ip-tos_spec.rb +26 -26
  229. data/spec/trema/set-transport-dst-port_spec.rb +22 -22
  230. data/spec/trema/set-transport-src-port_spec.rb +22 -22
  231. data/spec/trema/set-vlan-priority_spec.rb +23 -23
  232. data/spec/trema/set-vlan-vid_spec.rb +23 -23
  233. data/spec/trema/shell/vhost_spec.rb +21 -21
  234. data/spec/trema/shell/vswitch_spec.rb +30 -30
  235. data/spec/trema/stats-reply_spec.rb +183 -173
  236. data/spec/trema/stats-request_spec.rb +66 -66
  237. data/spec/trema/strip-vlan-header_spec.rb +11 -11
  238. data/spec/trema/switch-daemon_spec.rb +34 -34
  239. data/spec/trema/switch-disconnected_spec.rb +17 -17
  240. data/spec/trema/switch-manager_spec.rb +6 -6
  241. data/spec/trema/tremashark_spec.rb +4 -4
  242. data/spec/trema/util_spec.rb +35 -35
  243. data/spec/trema/vendor-action_spec.rb +26 -26
  244. data/spec/trema/vendor_spec.rb +27 -27
  245. data/spec/trema_spec.rb +2 -2
  246. data/src/examples/cbench_switch/cbench-switch.rb +3 -3
  247. data/src/examples/dumper/dumper.rb +31 -31
  248. data/src/examples/hello_trema/hello-trema.rb +2 -2
  249. data/src/examples/learning_switch/fdb.rb +14 -14
  250. data/src/examples/learning_switch/learning-switch.rb +12 -10
  251. data/src/examples/learning_switch/learning_switch.c +22 -39
  252. data/src/examples/list_switches/list-switches.rb +3 -3
  253. data/src/examples/match_compare/match-compare.rb +20 -20
  254. data/src/examples/multi_learning_switch/multi-learning-switch.rb +12 -12
  255. data/src/examples/openflow_message/echo.rb +4 -4
  256. data/src/examples/openflow_message/example.rb +7 -7
  257. data/src/examples/openflow_message/features-request.rb +31 -31
  258. data/src/examples/openflow_message/hello.rb +2 -2
  259. data/src/examples/openflow_message/set-config.rb +4 -4
  260. data/src/examples/openflow_message/vendor-action.rb +3 -3
  261. data/src/examples/openflow_message/vendor-stats-request.rb +9 -9
  262. data/src/examples/packet_in/packet-in.rb +2 -2
  263. data/src/examples/patch_panel/patch-panel.rb +9 -9
  264. data/src/examples/repeater_hub/repeater-hub.rb +4 -4
  265. data/src/examples/repeater_hub/repeater-hub_spec.rb +65 -65
  266. data/src/examples/simple_router/arp-table.rb +7 -7
  267. data/src/examples/simple_router/interface.rb +10 -10
  268. data/src/examples/simple_router/routing-table.rb +4 -4
  269. data/src/examples/simple_router/simple-router.rb +3 -3
  270. data/src/examples/switch_info/switch-info.rb +9 -9
  271. data/src/examples/switch_monitor/switch-monitor.rb +4 -4
  272. data/src/examples/traffic_monitor/counter.rb +6 -6
  273. data/src/examples/traffic_monitor/fdb.rb +4 -4
  274. data/src/examples/traffic_monitor/traffic-monitor.rb +12 -12
  275. data/src/examples/transparent_firewall/README.md +61 -0
  276. data/src/examples/transparent_firewall/aggregated-delegated-afrinic.txt +713 -0
  277. data/src/examples/transparent_firewall/aggregated-delegated-apnic.txt +3440 -0
  278. data/src/examples/transparent_firewall/aggregated-delegated-arin.txt +11342 -0
  279. data/src/examples/transparent_firewall/aggregated-delegated-lacnic.txt +1937 -0
  280. data/src/examples/transparent_firewall/aggregated-delegated-ripencc.txt +7329 -0
  281. data/src/examples/transparent_firewall/block-rfc1918.rb +86 -0
  282. data/src/examples/transparent_firewall/pass-delegated.rb +178 -0
  283. data/src/examples/transparent_firewall/regen_aggregated.sh +53 -0
  284. data/src/examples/transparent_firewall/stats-to-cidrs.rb +59 -0
  285. data/src/lib/messenger.c +14 -5
  286. data/src/lib/openflow_message.c +0 -5
  287. data/tasks/rubocop.rake +22 -0
  288. data/trema +1 -1
  289. data/trema-config +1 -1
  290. data/trema.gemspec +22 -22
  291. metadata +30 -16
@@ -1,3 +1,4 @@
1
+ @ruby
1
2
  Feature: dump_flows command
2
3
 
3
4
  In order to inspect all flow entries in a Trema virtual switch
@@ -1,3 +1,4 @@
1
+ @ruby
1
2
  Feature: help command
2
3
 
3
4
  In order to understand how to use Trema
@@ -1,3 +1,4 @@
1
+ @ruby
1
2
  Feature: --help option
2
3
 
3
4
  Use the --help option or just type trema to display the usage of trema command.
@@ -1,3 +1,4 @@
1
+ @ruby
1
2
  Feature: kill command
2
3
 
3
4
  In order to test event handling or just kill unwanted processes
@@ -1,3 +1,4 @@
1
+ @ruby
1
2
  Feature: killall command
2
3
 
3
4
  In order to cleanup the previous trema session
@@ -1,3 +1,4 @@
1
+ @ruby
1
2
  Feature: port_down command
2
3
 
3
4
  Use this command to ensure that your controller detects network
@@ -1,3 +1,4 @@
1
+ @ruby
1
2
  Feature: port_up command
2
3
 
3
4
  Use this command to ensure that your controller detects network
@@ -1,3 +1,4 @@
1
+ @ruby
1
2
  Feature: reset_stats command
2
3
 
3
4
  In order to reset the stats of sent/received packets
@@ -1,3 +1,4 @@
1
+ @ruby
1
2
  Feature: run command
2
3
 
3
4
  In order to launch trema applications
@@ -1,3 +1,4 @@
1
+ @ruby
1
2
  Feature: send_packets command
2
3
 
3
4
  In order to send/receive packets between virtual hosts
@@ -17,7 +18,7 @@ Feature: send_packets command
17
18
  """
18
19
  And I run `trema run ../../src/examples/learning_switch/learning-switch.rb -c learning_switch.conf -d`
19
20
 
20
- @slow_process
21
+ @slow_process @critical
21
22
  Scenario: Sending packets
22
23
  When I run `trema send_packets --source host1 --dest host2 --n_pkts=2`
23
24
  And I run `trema send_packets --source host2 --dest host1 --n_pkts=1`
@@ -1,3 +1,4 @@
1
+ @ruby
1
2
  Feature: show_stats command
2
3
 
3
4
  In order to get the stats of sent/received packets
@@ -1,3 +1,4 @@
1
+ @ruby
1
2
  Feature: up command
2
3
 
3
4
  In order to restart killed processes
@@ -1,3 +1,4 @@
1
+ @ruby
1
2
  Feature: version command
2
3
 
3
4
  In order to know the current version of Trema
@@ -1,3 +1,4 @@
1
+ @ruby
1
2
  Feature: --version option
2
3
 
3
4
  Use the --version option to display the current runtime version.
@@ -0,0 +1,159 @@
1
+ # This configuration was generated by `rubocop --auto-gen-config`.
2
+ # The point is for the user to remove these configuration records
3
+ # one by one as the offences are removed from the code base.
4
+
5
+ Encoding:
6
+ Enabled: false
7
+
8
+ AssignmentInCondition:
9
+ Enabled: false
10
+
11
+ BlockAlignment:
12
+ Enabled: false
13
+
14
+ BlockNesting:
15
+ Enabled: false
16
+
17
+ BracesAroundHashParameters:
18
+ Enabled: false
19
+
20
+ CaseIndentation:
21
+ Enabled: false
22
+
23
+ ClassAndModuleCamelCase:
24
+ Enabled: false
25
+
26
+ ClassAndModuleChildren:
27
+ Enabled: false
28
+
29
+ ClassLength:
30
+ Enabled: false
31
+
32
+ ClassMethods:
33
+ Enabled: false
34
+
35
+ ClassVars:
36
+ Enabled: false
37
+
38
+ CollectionMethods:
39
+ Enabled: false
40
+
41
+ ColonMethodCall:
42
+ Enabled: false
43
+
44
+ ConstantName:
45
+ Enabled: false
46
+
47
+ CyclomaticComplexity:
48
+ Enabled: false
49
+
50
+ Documentation:
51
+ Enabled: false
52
+
53
+ EmptyLineBetweenDefs:
54
+ Enabled: false
55
+
56
+ EmptyLines:
57
+ Enabled: false
58
+
59
+ EmptyLinesAroundAccessModifier:
60
+ Enabled: false
61
+
62
+ EmptyLinesAroundBody:
63
+ Enabled: false
64
+
65
+ EmptyLiteral:
66
+ Enabled: false
67
+
68
+ EndAlignment:
69
+ Enabled: false
70
+
71
+ Eval:
72
+ Enabled: false
73
+
74
+ FileName:
75
+ Enabled: false
76
+
77
+ FormatString:
78
+ Enabled: false
79
+
80
+ For:
81
+ Enabled: false
82
+
83
+ GlobalVars:
84
+ Enabled: false
85
+
86
+ HandleExceptions:
87
+ Enabled: false
88
+
89
+ HashSyntax:
90
+ Enabled: false
91
+
92
+ IfUnlessModifier:
93
+ Enabled: false
94
+
95
+ IndentationWidth:
96
+ Enabled: false
97
+
98
+ LineLength:
99
+ Enabled: false
100
+
101
+ MethodLength:
102
+ Enabled: false
103
+
104
+ MultilineBlockChain:
105
+ Enabled: false
106
+
107
+ Not:
108
+ Enabled: false
109
+
110
+ NumericLiterals:
111
+ Enabled: false
112
+
113
+ ParameterLists:
114
+ Enabled: false
115
+
116
+ ParenthesesAroundCondition:
117
+ Enabled: false
118
+
119
+ ParenthesesAsGroupedExpression:
120
+ Enabled: false
121
+
122
+ PerlBackrefs:
123
+ Enabled: false
124
+
125
+ RedundantException:
126
+ Enabled: false
127
+
128
+ RegexpLiteral:
129
+ Enabled: false
130
+
131
+ RescueModifier:
132
+ Enabled: false
133
+
134
+ Semicolon:
135
+ Enabled: false
136
+
137
+ SpaceAroundEqualsInParameterDefault:
138
+ Enabled: false
139
+
140
+ SpecialGlobalVars:
141
+ Enabled: false
142
+
143
+ TrailingBlankLines:
144
+ Enabled: false
145
+
146
+ TrivialAccessors:
147
+ Enabled: false
148
+
149
+ UselessAssignment:
150
+ Enabled: false
151
+
152
+ WhileUntilDo:
153
+ Enabled: false
154
+
155
+ WhileUntilModifier:
156
+ Enabled: false
157
+
158
+ WordArray:
159
+ Enabled: false
@@ -32,36 +32,34 @@ class Blocker
32
32
  class BlockerError < RuntimeError; end
33
33
 
34
34
 
35
- PATH = "/tmp/cruise.lock"
35
+ PATH = '/tmp/cruise.lock'
36
36
 
37
37
 
38
- def self.start &code_block
39
- begin
40
- block
41
- code_block.call
42
- rescue BlockerError, Errno::EACCES
43
- $stderr.puts "Another process is already running. Please wait for a while."
44
- sleep 10
45
- retry
46
- ensure
47
- release
48
- end
38
+ def self.start(&code_block)
39
+ block
40
+ code_block.call
41
+ rescue BlockerError, Errno::EACCES
42
+ $stderr.puts 'Another process is already running. Please wait for a while.'
43
+ sleep 10
44
+ retry
45
+ ensure
46
+ release
49
47
  end
50
48
 
51
49
 
52
50
  def self.block
53
- lock = File.open( PATH, "a+" )
54
- locked = lock.flock( File::LOCK_EX | File::LOCK_NB )
51
+ lock = File.open(PATH, 'a+')
52
+ locked = lock.flock(File::LOCK_EX | File::LOCK_NB)
55
53
  unless locked
56
54
  lock.close
57
- raise BlockerError
55
+ fail BlockerError
58
56
  end
59
57
  end
60
58
 
61
59
 
62
60
  def self.release
63
- File.open( PATH, "w" ) do | lock |
64
- lock.flock( File::LOCK_UN | File::LOCK_NB )
61
+ File.open(PATH, 'w') do | lock |
62
+ lock.flock(File::LOCK_UN | File::LOCK_NB)
65
63
  lock.close
66
64
  File.delete lock.path
67
65
  end
@@ -16,25 +16,25 @@
16
16
  #
17
17
 
18
18
 
19
- require "mkmf"
19
+ require 'mkmf'
20
20
 
21
21
 
22
- $CFLAGS = "-g -std=gnu99 -D_GNU_SOURCE -fno-strict-aliasing -Wall -Wextra -Wformat=2 -Wcast-qual -Wcast-align -Wwrite-strings -Wconversion -Wfloat-equal -Wpointer-arith"
23
- $LDFLAGS = "-Wl,-Bsymbolic"
22
+ $CFLAGS = '-g -std=gnu99 -D_GNU_SOURCE -fno-strict-aliasing -Wall -Wextra -Wformat=2 -Wcast-qual -Wcast-align -Wwrite-strings -Wconversion -Wfloat-equal -Wpointer-arith'
23
+ $LDFLAGS = '-Wl,-Bsymbolic'
24
24
 
25
25
 
26
- dir_config "trema"
27
- dir_config "openflow"
26
+ dir_config 'trema'
27
+ dir_config 'openflow'
28
28
 
29
29
 
30
- def error_exit message
30
+ def error_exit(message)
31
31
  $stderr.puts message
32
32
  exit false
33
33
  end
34
34
 
35
35
 
36
- def error_lib_missing lib, package
37
- return <<-EOF
36
+ def error_lib_missing(lib, package)
37
+ <<-EOF
38
38
  ERROR: #{ lib } not found!
39
39
 
40
40
  Please install #{ package } with following command:
@@ -43,23 +43,23 @@ EOF
43
43
  end
44
44
 
45
45
 
46
- unless find_library( "pthread", "pthread_create" )
47
- error_exit error_lib_missing( "libpthread", "libc6-dev" )
46
+ unless find_library('pthread', 'pthread_create')
47
+ error_exit error_lib_missing('libpthread', 'libc6-dev')
48
48
  end
49
49
 
50
- unless find_library( "rt", "clock_gettime" )
51
- error_exit error_lib_missing( "librt", "libc6-dev" )
50
+ unless find_library('rt', 'clock_gettime')
51
+ error_exit error_lib_missing('librt', 'libc6-dev')
52
52
  end
53
53
 
54
- unless find_library( "dl", "dlopen" )
55
- error_exit error_lib_missing( "libdl", "libc6-dev" )
54
+ unless find_library('dl', 'dlopen')
55
+ error_exit error_lib_missing('libdl', 'libc6-dev')
56
56
  end
57
57
 
58
- unless find_library( "sqlite3", "sqlite3_open" )
59
- error_exit error_lib_missing( "libsqlite3", "libsqlite3-dev" )
58
+ unless find_library('sqlite3', 'sqlite3_open')
59
+ error_exit error_lib_missing('libsqlite3', 'libsqlite3-dev')
60
60
  end
61
61
 
62
- unless find_library( "trema", "create_hello" )
62
+ unless find_library('trema', 'create_hello')
63
63
  error_exit <<-EOF
64
64
  ERROR: Trema is not compiled yet!
65
65
 
@@ -69,8 +69,8 @@ EOF
69
69
  end
70
70
 
71
71
 
72
- $CFLAGS << " -Werror" # must be added after find_library
73
- create_makefile "trema", "trema"
72
+ $CFLAGS << ' -Werror' # must be added after find_library
73
+ create_makefile 'trema', 'trema'
74
74
 
75
75
 
76
76
  ### Local variables:
@@ -58,7 +58,7 @@ module SubProcess
58
58
  attr_reader :env
59
59
 
60
60
 
61
- def initialize command, env = {}
61
+ def initialize(command, env = {})
62
62
  @command = command
63
63
  @env = env
64
64
  end
@@ -66,7 +66,7 @@ module SubProcess
66
66
 
67
67
  def start
68
68
  @env.each_pair do | key, value |
69
- ENV[ key ]= value
69
+ ENV[key] = value
70
70
  end
71
71
  Kernel.exec @command
72
72
  end
@@ -79,7 +79,7 @@ module SubProcess
79
79
  attr_reader :stderr
80
80
 
81
81
 
82
- def initialize stdin, stdout, stderr
82
+ def initialize(stdin, stdout, stderr)
83
83
  @stdin = stdin
84
84
  @stdout = stdout
85
85
  @stderr = stderr
@@ -87,7 +87,7 @@ module SubProcess
87
87
 
88
88
 
89
89
  def close
90
- [ @stdin, @stdout, @stderr ].each do | each |
90
+ [@stdin, @stdout, @stderr].each do | each |
91
91
  unless each.closed?
92
92
  each.close
93
93
  end
@@ -98,9 +98,9 @@ module SubProcess
98
98
 
99
99
  class Process
100
100
  def initialize
101
- stdin, stdout, stderr = Array.new( 3 ) { IO.pipe }
102
- @child = SubProcess::PipeSet.new( stdin[ 1 ], stdout[ 0 ], stderr[ 0 ] )
103
- @parent = SubProcess::PipeSet.new( stdin[ 0 ], stdout[ 1 ], stderr[ 1 ] )
101
+ stdin, stdout, stderr = Array.new(3) { IO.pipe }
102
+ @child = SubProcess::PipeSet.new(stdin[ 1], stdout[ 0], stderr[ 0])
103
+ @parent = SubProcess::PipeSet.new(stdin[ 0], stdout[ 1], stderr[ 1])
104
104
  end
105
105
 
106
106
 
@@ -109,8 +109,8 @@ module SubProcess
109
109
  end
110
110
 
111
111
 
112
- def popen command, &block
113
- @pid = fork_child( command )
112
+ def popen(command, &block)
113
+ @pid = fork_child(command)
114
114
  # Parent process
115
115
  @parent.close
116
116
  begin
@@ -127,7 +127,7 @@ module SubProcess
127
127
  ############################################################################
128
128
 
129
129
 
130
- def fork_child command
130
+ def fork_child(command)
131
131
  Kernel.fork do
132
132
  @child.close
133
133
  redirect_child_io
@@ -146,14 +146,14 @@ module SubProcess
146
146
 
147
147
 
148
148
  class IoHandlerThread
149
- def initialize io, method
149
+ def initialize(io, method)
150
150
  @io = io
151
151
  @method = method
152
152
  end
153
153
 
154
154
 
155
155
  def start
156
- Thread.new( @io, @method ) do | io, method |
156
+ Thread.new(@io, @method) do | io, method |
157
157
  while io.gets do
158
158
  method.call $LAST_READ_LINE
159
159
  end
@@ -163,12 +163,12 @@ module SubProcess
163
163
 
164
164
 
165
165
  class Shell
166
- def self.open debug_options = {}, &block
167
- block.call self.new( debug_options )
166
+ def self.open(debug_options = {}, &block)
167
+ block.call new(debug_options)
168
168
  end
169
169
 
170
170
 
171
- def initialize debug_options
171
+ def initialize(debug_options)
172
172
  @debug_options = debug_options
173
173
  end
174
174
 
@@ -178,34 +178,34 @@ module SubProcess
178
178
  end
179
179
 
180
180
 
181
- def on_stdout &block
181
+ def on_stdout(&block)
182
182
  @on_stdout = block
183
183
  end
184
184
 
185
185
 
186
- def on_stderr &block
186
+ def on_stderr(&block)
187
187
  @on_stderr = block
188
188
  end
189
189
 
190
190
 
191
- def on_exit &block
191
+ def on_exit(&block)
192
192
  @on_exit = block
193
193
  end
194
194
 
195
195
 
196
- def on_success &block
196
+ def on_success(&block)
197
197
  @on_success = block
198
198
  end
199
199
 
200
200
 
201
- def on_failure &block
201
+ def on_failure(&block)
202
202
  @on_failure = block
203
203
  end
204
204
 
205
205
 
206
- def exec command, env = { "LC_ALL" => "C" }
207
- on_failure { raise "command #{ command } failed" } unless @on_failure
208
- SubProcess::Process.new.popen SubProcess::Command.new( command, env ) do | stdout, stderr |
206
+ def exec(command, env = { 'LC_ALL' => 'C' })
207
+ on_failure { fail "command #{ command } failed" } unless @on_failure
208
+ SubProcess::Process.new.popen SubProcess::Command.new(command, env) do | stdout, stderr |
209
209
  handle_child_output stdout, stderr
210
210
  end.wait
211
211
  handle_exitstatus
@@ -218,9 +218,9 @@ module SubProcess
218
218
  ############################################################################
219
219
 
220
220
 
221
- def handle_child_output stdout, stderr
222
- tout = SubProcess::IoHandlerThread.new( stdout, method( :do_stdout ) ).start
223
- terr = SubProcess::IoHandlerThread.new( stderr, method( :do_stderr ) ).start
221
+ def handle_child_output(stdout, stderr)
222
+ tout = SubProcess::IoHandlerThread.new(stdout, method(:do_stdout)).start
223
+ terr = SubProcess::IoHandlerThread.new(stderr, method(:do_stderr)).start
224
224
  tout.join
225
225
  terr.join
226
226
  end
@@ -239,14 +239,14 @@ module SubProcess
239
239
  end
240
240
 
241
241
 
242
- def do_stdout line
242
+ def do_stdout(line)
243
243
  if @on_stdout
244
244
  @on_stdout.call line
245
245
  end
246
246
  end
247
247
 
248
248
 
249
- def do_stderr line
249
+ def do_stderr(line)
250
250
  if @on_stderr
251
251
  @on_stderr.call line
252
252
  end
@@ -275,7 +275,7 @@ module SubProcess
275
275
  end
276
276
 
277
277
 
278
- def create debug_options = {}, &block
278
+ def create(debug_options = {}, &block)
279
279
  Shell.open debug_options, &block
280
280
  end
281
281
  module_function :create