junoser 0.2.3 → 0.2.4

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: 7be39da90e3e4cc1fe59887e5c1a870c5d3aecd2
4
- data.tar.gz: 0704721d4e179efa93a0f788040667fa165cb8f8
3
+ metadata.gz: c1712996f972e957b0606905fdad4a5e1888623d
4
+ data.tar.gz: 05fe617f94ace5f76847da3da6e950b6661bda4f
5
5
  SHA512:
6
- metadata.gz: 434a77e3b1d7430b009fef5219785df71f43ff8d08a5826b5a3f81af3525a7b00ffb0370e1c9a08e852b6206b6cc08f7b45a40bf82307b88c643069ca2d93037
7
- data.tar.gz: 87293dcbcb0cc72acfc4a61b43f544b2d5d9c75b6977c49b326968d6f1006e2597feae0c45703c9558b3aac1bbe1689006466766ec26f8507237e66d1d942d1a
6
+ metadata.gz: 8055f567929e8499ceb8b2ace5415ab82526f82e76aee1bfd72fa56eca5972dda99374daf725c4de823c52b52faae1d7fcfd48523a6173f9536dcb35c7ec5c9b
7
+ data.tar.gz: 98733286e456322ce034ad6be647cb2d33f4d4481ecab034a7224284aac3a3f6d05237d7b292ad2f44ee3855bd18894b52f82bd90842e0ed84d2b8a2db2d26ad
data/.travis.yml CHANGED
@@ -3,7 +3,7 @@ language: ruby
3
3
  rvm:
4
4
  - 2.1
5
5
  - 2.2
6
- - 2.3.0
6
+ - 2.3.1
7
7
  - ruby-head
8
8
 
9
9
  before_install:
data/CHANGELOG.md CHANGED
@@ -1,3 +1,12 @@
1
+ ## 0.2.4 / 2017-02-18
2
+
3
+ * Newly supported syntax
4
+ * system processes app-engine-virtual-machine-management-service traceoptions
5
+ * Some platforms expect "system processes dhcp", not "system processes dhcp-service"
6
+ * "storm-control" under family bridge
7
+ * Bug fix
8
+ * Appropriately extract "vlan <vlan-name>"
9
+
1
10
  ## 0.2.3 / 2016-08-28
2
11
 
3
12
  * Newly supported syntax
data/LICENSE.txt CHANGED
@@ -1,6 +1,6 @@
1
1
  The MIT License (MIT)
2
2
 
3
- Copyright (c) 2016 Shintaro Kojima
3
+ Copyright (c) 2017 Shintaro Kojima
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
data/README.md CHANGED
@@ -67,4 +67,4 @@ Or send a pull request to fix.
67
67
 
68
68
  ## Copyright and License
69
69
 
70
- Copyright (c) 2016 Shintaro Kojima. Code released under the [MIT license](LICENSE.txt).
70
+ Copyright (c) 2017 Shintaro Kojima. Code released under the [MIT license](LICENSE.txt).
data/Rakefile CHANGED
@@ -40,6 +40,7 @@ end
40
40
 
41
41
  Rake::TestTask.new do |t|
42
42
  t.verbose = true
43
+ t.warning = false
43
44
  end
44
45
 
45
46
  desc 'Run tests'
@@ -1949,6 +1949,9 @@ rule(:configuration) do
1949
1949
  ),
1950
1950
  c(
1951
1951
  "isid-list" arg
1952
+ ),
1953
+ "storm-control" (
1954
+ storm_control
1952
1955
  )
1953
1956
  )
1954
1957
  ),
@@ -6984,24 +6987,7 @@ rule(:ethernet_switching_type) do
6984
6987
  )
6985
6988
  ),
6986
6989
  "storm-control" (
6987
- c(
6988
- "default",
6989
- "action-shutdown",
6990
- "interface" ("all" | "name") (
6991
- c(
6992
- "bandwidth" arg,
6993
- "no-broadcast",
6994
- "no-unknown-unicast",
6995
- "level" arg,
6996
- c(
6997
- "multicast",
6998
- "no-multicast",
6999
- "no-registered-multicast",
7000
- "no-unregistered-multicast"
7001
- )
7002
- )
7003
- )
7004
- )
6990
+ storm_control
7005
6991
  )
7006
6992
  )
7007
6993
  end
@@ -10297,6 +10283,9 @@ rule(:interfaces_type) do
10297
10283
  ),
10298
10284
  c(
10299
10285
  "isid-list" arg
10286
+ ),
10287
+ "storm-control" (
10288
+ storm_control
10300
10289
  )
10301
10290
  )
10302
10291
  ),
@@ -14649,6 +14638,9 @@ rule(:juniper_dynamic_profile_object) do
14649
14638
  ),
14650
14639
  c(
14651
14640
  "isid-list" arg
14641
+ ),
14642
+ "storm-control" (
14643
+ storm_control
14652
14644
  )
14653
14645
  )
14654
14646
  ),
@@ -31267,6 +31259,29 @@ rule(:juniper_system) do
31267
31259
  "disable"
31268
31260
  )
31269
31261
  )
31262
+ ),
31263
+ "app-engine-virtual-machine-management-service" (
31264
+ c(
31265
+ "traceoptions" (
31266
+ c(
31267
+ "no-remote-trace",
31268
+ "file" (
31269
+ c(
31270
+ "filename" arg,
31271
+ "size" arg,
31272
+ "files" arg,
31273
+ "world-readable",
31274
+ "no-world-readable",
31275
+ "match" (
31276
+ regular_expression
31277
+ )
31278
+ )
31279
+ ).as(:oneline),
31280
+ "level" arg,
31281
+ "flag" ("active-directory-authentication" | "configuration" | "db" | "ip-user-mapping" | "ip-user-probe" | "ipc" | "user-group-mapping" | "wmic" | "all").as(:oneline)
31282
+ )
31283
+ )
31284
+ )
31270
31285
  )
31271
31286
  )
31272
31287
  ),
@@ -32690,6 +32705,9 @@ rule(:lr_interfaces_type) do
32690
32705
  ),
32691
32706
  c(
32692
32707
  "isid-list" arg
32708
+ ),
32709
+ "storm-control" (
32710
+ storm_control
32693
32711
  )
32694
32712
  )
32695
32713
  ),
@@ -38369,3 +38387,24 @@ rule(:service_nat_object) do
38369
38387
  )
38370
38388
  )
38371
38389
  end
38390
+
38391
+ rule(:storm_control) do
38392
+ c(
38393
+ "default",
38394
+ "action-shutdown",
38395
+ "interface" ("all" | "name") (
38396
+ c(
38397
+ "bandwidth" arg,
38398
+ "no-broadcast",
38399
+ "no-unknown-unicast",
38400
+ "level" arg,
38401
+ c(
38402
+ "multicast",
38403
+ "no-multicast",
38404
+ "no-registered-multicast",
38405
+ "no-unregistered-multicast"
38406
+ )
38407
+ )
38408
+ )
38409
+ )
38410
+ end
data/junoser.gemspec CHANGED
@@ -22,7 +22,6 @@ Gem::Specification.new do |spec|
22
22
 
23
23
  spec.add_development_dependency "bundler", "~> 1.9"
24
24
  spec.add_development_dependency "rake", "~> 10.0"
25
- spec.add_development_dependency "activesupport"
26
25
  spec.add_development_dependency "nokogiri"
27
26
  spec.add_development_dependency "test-unit"
28
27
  end
@@ -1,2 +1,3 @@
1
+ require 'underscorable'
1
2
  require 'junoser/xsd/parsable'
2
3
  require 'junoser/ruler'
@@ -1995,6 +1995,9 @@ module Junoser
1995
1995
  ),
1996
1996
  c(
1997
1997
  a(str("isid-list"), arg)
1998
+ ),
1999
+ b(str("storm-control"),
2000
+ storm_control
1998
2001
  )
1999
2002
  )
2000
2003
  ),
@@ -7010,24 +7013,7 @@ module Junoser
7010
7013
  )
7011
7014
  ),
7012
7015
  b(str("storm-control"),
7013
- c(
7014
- str("default"),
7015
- str("action-shutdown"),
7016
- a(str("interface"), str("all") | arg,
7017
- c(
7018
- a(str("bandwidth"), arg),
7019
- str("no-broadcast"),
7020
- str("no-unknown-unicast"),
7021
- a(str("level"), arg),
7022
- c(
7023
- str("multicast"),
7024
- str("no-multicast"),
7025
- str("no-registered-multicast"),
7026
- str("no-unregistered-multicast")
7027
- )
7028
- )
7029
- )
7030
- )
7016
+ storm_control
7031
7017
  )
7032
7018
  )
7033
7019
  end
@@ -10315,6 +10301,9 @@ module Junoser
10315
10301
  ),
10316
10302
  c(
10317
10303
  a(str("isid-list"), arg)
10304
+ ),
10305
+ b(str("storm-control"),
10306
+ storm_control
10318
10307
  )
10319
10308
  )
10320
10309
  ),
@@ -14646,6 +14635,9 @@ module Junoser
14646
14635
  ),
14647
14636
  c(
14648
14637
  a(str("isid-list"), arg)
14638
+ ),
14639
+ b(str("storm-control"),
14640
+ storm_control
14649
14641
  )
14650
14642
  )
14651
14643
  ),
@@ -16072,7 +16064,7 @@ module Junoser
16072
16064
  str("persistent-learning")
16073
16065
  )
16074
16066
  ),
16075
- a(str("vlan"), str("all") | str("vlan-name"),
16067
+ a(str("vlan"), str("all") | arg,
16076
16068
  c(
16077
16069
  c(
16078
16070
  b(str("arp-inspection"),
@@ -24328,7 +24320,7 @@ module Junoser
24328
24320
  ).as(:oneline)
24329
24321
  )
24330
24322
  ),
24331
- a(str("vlan"), str("all") | str("vlan-name"),
24323
+ a(str("vlan"), str("all") | arg,
24332
24324
  c(
24333
24325
  str("disable"),
24334
24326
  a(str("version"), arg),
@@ -24954,7 +24946,7 @@ module Junoser
24954
24946
  ).as(:oneline)
24955
24947
  )
24956
24948
  ),
24957
- a(str("vlan"), str("all") | str("vlan-name"),
24949
+ a(str("vlan"), str("all") | arg,
24958
24950
  c(
24959
24951
  str("disable"),
24960
24952
  a(str("version"), arg),
@@ -30866,7 +30858,7 @@ module Junoser
30866
30858
  )
30867
30859
  )
30868
30860
  ),
30869
- b(str("dhcp-service"),
30861
+ b((str("dhcp-service") | str("dhcp")),
30870
30862
  c(
30871
30863
  c(
30872
30864
  str("disable")
@@ -31079,6 +31071,28 @@ module Junoser
31079
31071
  str("disable")
31080
31072
  )
31081
31073
  )
31074
+ ),
31075
+ b(str("app-engine-virtual-machine-management-service"),
31076
+ c(
31077
+ b(str("traceoptions"),
31078
+ c(
31079
+ str("no-remote-trace"),
31080
+ b(str("file"),
31081
+ sca(
31082
+ a(str("size"), arg),
31083
+ a(str("files"), arg),
31084
+ str("world-readable"),
31085
+ str("no-world-readable"),
31086
+ b(str("match"),
31087
+ regular_expression
31088
+ )
31089
+ )
31090
+ ).as(:oneline),
31091
+ a(str("level"), arg),
31092
+ a(str("flag"), str("active-directory-authentication") | str("configuration") | str("db") | str("ip-user-mapping") | str("ip-user-probe") | str("ipc") | str("user-group-mapping") | str("wmic") | str("all")).as(:oneline)
31093
+ )
31094
+ )
31095
+ )
31082
31096
  )
31083
31097
  )
31084
31098
  ),
@@ -32486,6 +32500,9 @@ module Junoser
32486
32500
  ),
32487
32501
  c(
32488
32502
  a(str("isid-list"), arg)
32503
+ ),
32504
+ b(str("storm-control"),
32505
+ storm_control
32489
32506
  )
32490
32507
  )
32491
32508
  ),
@@ -38145,5 +38162,26 @@ module Junoser
38145
38162
  )
38146
38163
  )
38147
38164
  end
38165
+
38166
+ rule(:storm_control) do
38167
+ c(
38168
+ str("default"),
38169
+ str("action-shutdown"),
38170
+ a(str("interface"), str("all") | arg,
38171
+ c(
38172
+ a(str("bandwidth"), arg),
38173
+ str("no-broadcast"),
38174
+ str("no-unknown-unicast"),
38175
+ a(str("level"), arg),
38176
+ c(
38177
+ str("multicast"),
38178
+ str("no-multicast"),
38179
+ str("no-registered-multicast"),
38180
+ str("no-unregistered-multicast")
38181
+ )
38182
+ )
38183
+ )
38184
+ )
38185
+ end
38148
38186
  end
38149
38187
  end
data/lib/junoser/ruler.rb CHANGED
@@ -49,10 +49,12 @@ module Junoser
49
49
 
50
50
  str.gsub!(/\((.*) \| "name"\)/) { "(#$1 | arg)" }
51
51
  str.gsub! '"vlan" ("id-name" | "all")', '"vlan" ("all" | arg)'
52
+ str.gsub! '"vlan" ("all" | "vlan-name")', '"vlan" ("all" | arg)'
52
53
  str.gsub!(/("ssh-\S+") arg/) { "#$1 (quote | arg)" }
53
54
  str.gsub! '"description" arg', '"description" (quote | arg)'
54
55
  str.gsub! '"as-path-prepend" arg', '"as-path-prepend" (quote | arg)'
55
56
  str.gsub! '"path-list" arg (', 'b(ipaddr,'
57
+ str.gsub! '"dhcp-service" (', '("dhcp-service" | "dhcp") ('
56
58
 
57
59
  str.gsub!(/(s\(\s*)"address" arg/) { "#{$1}arg" }
58
60
  str.gsub!(/^(\s*"idle-timeout" \(\s*c\(\s*c\(\s*"forever",\s*)"timeout" arg/) { "#{$1}arg" }
@@ -1,3 +1,3 @@
1
1
  module Junoser
2
- VERSION = "0.2.3"
2
+ VERSION = "0.2.4"
3
3
  end
@@ -1,4 +1,3 @@
1
- require 'active_support/inflector'
2
1
  require 'junoser/xsd/base'
3
2
  require 'junoser/xsd/complex_type'
4
3
 
@@ -1,4 +1,3 @@
1
- require 'active_support/inflector'
2
1
  require 'junoser/xsd/complex_type'
3
2
  require 'junoser/xsd/element'
4
3
  require 'nokogiri'
@@ -0,0 +1,15 @@
1
+ module Underscorable
2
+ # Port from activesupport-4.2.7.1/lib/active_support/inflector/methods.rb
3
+ def underscore
4
+ return self unless self =~ /[A-Z-]|::/
5
+ word = self.to_s.gsub(/::/, '/')
6
+ word.gsub!(/(?:(?<=([A-Za-z\d]))|\b)((?=a)b)(?=\b|[^a-z])/) { "#{$1 && '_'}#{$2.downcase}" }
7
+ word.gsub!(/([A-Z\d]+)([A-Z][a-z])/,'\1_\2')
8
+ word.gsub!(/([a-z\d])([A-Z])/,'\1_\2')
9
+ word.tr!("-", "_")
10
+ word.downcase!
11
+ word
12
+ end
13
+ end
14
+
15
+ String.include Underscorable
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: junoser
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.3
4
+ version: 0.2.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Shintaro Kojima
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-08-27 00:00:00.000000000 Z
11
+ date: 2017-02-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: parslet
@@ -52,20 +52,6 @@ dependencies:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: '10.0'
55
- - !ruby/object:Gem::Dependency
56
- name: activesupport
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - ">="
60
- - !ruby/object:Gem::Version
61
- version: '0'
62
- type: :development
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - ">="
67
- - !ruby/object:Gem::Version
68
- version: '0'
69
55
  - !ruby/object:Gem::Dependency
70
56
  name: nokogiri
71
57
  requirement: !ruby/object:Gem::Requirement
@@ -135,6 +121,7 @@ files:
135
121
  - lib/junoser/xsd/restriction.rb
136
122
  - lib/junoser/xsd/sequence.rb
137
123
  - lib/junoser/xsd/simple_content.rb
124
+ - lib/underscorable.rb
138
125
  homepage: https://github.com/codeout/junoser
139
126
  licenses: []
140
127
  metadata: {}
@@ -154,7 +141,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
154
141
  version: '0'
155
142
  requirements: []
156
143
  rubyforge_project:
157
- rubygems_version: 2.5.1
144
+ rubygems_version: 2.6.8
158
145
  signing_key:
159
146
  specification_version: 4
160
147
  summary: PEG parser for JUNOS configuration.