junoser 0.5.3 → 0.5.4

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4241a7b2a24ab7118dae491d2538107fdfa0b4a0f8f4fe701e713a00197a424c
4
- data.tar.gz: fba378b8cf21dc3ffc554c20ad6b0650844546b54defbe6f1fec15cea6294182
3
+ metadata.gz: 3e3d7eddfe23eff9321fcd418687ab21af2d7f6a9188d1c3a7971c9f69393449
4
+ data.tar.gz: d8496ad009be8d91d5c08d69f45ad44203683bca6b986896ecedb36b2946b709
5
5
  SHA512:
6
- metadata.gz: 3283f8dfa5972d2ca4bdd25abc0b6c30d9b41266afb6a4ac31b6e9144c46b1adc1e4d03af939fb0ebce2a2e42b57197acaaf38c81005ffe7b1b66df75e42bef0
7
- data.tar.gz: a626b7bd44f66b3cc9606a23a4342b5101deedd75f8df70eac66afa87d695971bb598a9546a50d83fea4115a9974cd23c78381a0a76e337d914facab8a8c3ebd
6
+ metadata.gz: 699d47a030b28169dc1d9daceb881e34aee2aed4f9a119f34e81f37bfae9b4f633c14f78ebe05974b9e0f4809280add29bb695d4c73f65c53637fed3a722b509
7
+ data.tar.gz: 81df8499d1d55b562b1a571dd5328b3fcd8e1fb82de8babf2cd377a951f2b6770eeed58a7cb0bd52c5180a27d378e2c9c18f128435c16cc84194a5f09abdddfc
data/CHANGELOG.md CHANGED
@@ -1,3 +1,18 @@
1
+ ## [0.5.4] - 2023-07-15
2
+
3
+ ### Added
4
+
5
+ * Newly supported syntax
6
+ * "chassis dump-on-panic"
7
+
8
+ ### Fixed
9
+
10
+ * "policy-options policy-statement xxx from policy" didn't accept `[ ... ]` or `( ... )` expressions
11
+ * "system no-redirects-ipv6" was unexpectedly marked as invalid
12
+ * "snmp trap-group xxx categories chassis-cluster" was unexpectedly marked as invalid
13
+ * error when parsing "class-of-service schedulers foo drop-profile-map ..."
14
+
15
+
1
16
  ## [0.5.3] - 2023-07-10
2
17
 
3
18
  ### Added
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- junoser (0.5.3)
4
+ junoser (0.5.4)
5
5
  parslet
6
6
 
7
7
  GEM
@@ -180,7 +180,7 @@ module Junoser
180
180
  end
181
181
 
182
182
  rule(:policy_algebra) do
183
- arg.as(:arg)
183
+ any.as(:arg)
184
184
  end
185
185
 
186
186
  rule(:regular_expression) do
@@ -9575,7 +9575,7 @@ module Junoser
9575
9575
  b(str("categories"),
9576
9576
  c(
9577
9577
  str("authentication"),
9578
- str("chassis"),
9578
+ str("chassis-ha-reswatch"),
9579
9579
  str("link"),
9580
9580
  str("remote-operations"),
9581
9581
  str("routing"),
@@ -9587,7 +9587,7 @@ module Junoser
9587
9587
  str("services"),
9588
9588
  str("chassis-cluster"),
9589
9589
  str("chassis-high-availability"),
9590
- str("chassis-ha-reswatch"),
9590
+ str("chassis"),
9591
9591
  str("timing-events"),
9592
9592
  str("dot3oam-events"),
9593
9593
  b(str("sonet-alarms"),
@@ -22386,6 +22386,7 @@ module Junoser
22386
22386
  str("vlan-isolation")
22387
22387
  )
22388
22388
  ),
22389
+ str("dump-on-panic"),
22389
22390
  # Ported from vSRX 18.3R1.9
22390
22391
  b(str("cluster"),
22391
22392
  c(
@@ -45007,15 +45008,15 @@ module Junoser
45007
45008
  a(str("priority"), arg),
45008
45009
  a(str("excess-priority"), arg),
45009
45010
  b(str("drop-profile-map"),
45010
- s(
45011
- b(str("loss-priority"),
45012
- (str("low") | str("high") | str("medium-low") | str("medium-high") | str("any"))
45011
+ s(
45012
+ s(str("loss-priority"),
45013
+ (str("low") | str("high") | str("medium-low") | str("medium-high") | str("any"))
45013
45014
  ),
45014
- b(str("protocol"),
45015
- (str("tcp") | str("non-tcp") | str("any"))
45015
+ s(str("protocol"),
45016
+ (str("tcp") | str("non-tcp") | str("any"))
45016
45017
  ),
45017
- c(
45018
- a(str("drop-profile"), arg)
45018
+ s(str("drop-profile"),
45019
+ arg
45019
45020
  )
45020
45021
  )
45021
45022
  ).as(:oneline),
@@ -83449,8 +83450,8 @@ module Junoser
83449
83450
  str("no-neighbor-learn"),
83450
83451
  str("no-multicast-echo"),
83451
83452
  str("extended-echo"),
83452
- str("no-redirects"),
83453
83453
  str("no-redirects-ipv6"),
83454
+ str("no-redirects"),
83454
83455
  str("nd-override-preferred-src"),
83455
83456
  str("no-ping-record-route"),
83456
83457
  str("no-ping-time-stamp"),
data/lib/junoser/ruler.rb CHANGED
@@ -96,6 +96,19 @@ module Junoser
96
96
  'prefix_list_items'], $1)
97
97
  end
98
98
 
99
+ str.gsub!(/^(\s*)"drop-profile-map" \(\s*s\(\s*"loss-priority" \(\s*(.*\s*\),)\s*"protocol" \(\s*(.*\s*\),)\s*c\(\s*"drop-profile" (.*)/) do
100
+ format([
101
+ '"drop-profile-map" (',
102
+ ' s(',
103
+ ' s("loss-priority",',
104
+ " #{$2}",
105
+ ' s("protocol",',
106
+ " #{$3}",
107
+ ' s("drop-profile",',
108
+ " #{$4}"
109
+ ], $1)
110
+ end
111
+
99
112
  #
100
113
  # "arg" matches anything so move to the end
101
114
  #
@@ -138,6 +151,8 @@ module Junoser
138
151
  str.gsub!(/"snmp"(.*\s*.*)"snmptrap"/) { %["snmptrap"#{$1}"snmp"] }
139
152
  str.gsub!(/"ospf"(.*\s*.*)"ospf3"/) { %["ospf3"#{$1}"ospf"] }
140
153
  str.gsub!(/"deny"(.*\s*.*)"deny-password"/) { %["deny-password"#{$1}"deny"] }
154
+ str.gsub!(/"no-redirects"(.*\s*.*)"no-redirects-ipv6"/) { %["no-redirects-ipv6"#{$1}"no-redirects"] }
155
+ str.gsub!(/"chassis"([^()]*)"chassis-ha-reswatch"/m) { %["chassis-ha-reswatch"#{$1}"chassis"] }
141
156
  str.gsub! '"tls1" | "tls11" | "tls12"', '"tls11" | "tls12" | "tls1"'
142
157
  str.gsub!(/("group1" \| "group2" \| "group5") \| ([^)]+)/) { "#{$2} | #{$1}" }
143
158
 
@@ -252,6 +267,9 @@ module Junoser
252
267
  # Fix .xsd: support "set interfaces xxx ether-options speed"
253
268
  str.gsub! '"ethernet-1', '"1'
254
269
 
270
+ # Fix .xsd: support "set policy-options policy-statement xxx from policy [expression]"
271
+ str.gsub!(/^rule\(:policy_algebra\) do(\s*)arg\.as\(:arg\)\send/) { "rule(:policy_algebra) do#{$1}any.as(:arg)\nend" }
272
+
255
273
  str
256
274
  end
257
275
 
@@ -1,3 +1,3 @@
1
1
  module Junoser
2
- VERSION = "0.5.3"
2
+ VERSION = "0.5.4"
3
3
  end
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.5.3
4
+ version: 0.5.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: 2023-07-10 00:00:00.000000000 Z
11
+ date: 2023-07-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: parslet