junoser 0.3.10 → 0.4.1

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
  SHA256:
3
- metadata.gz: 3a3ba4fa96e3b50240e889334a924403ae8cf4f508c1e86120450aa0760fe75f
4
- data.tar.gz: 6f034ac0b34aff7aed1f7aed0d87b902996ae1cdbbc0d0f6ed2896f50caaf939
3
+ metadata.gz: b370402809bb2214265f0dd6e692c591337882121f7f5c1f8f3653553cd29f83
4
+ data.tar.gz: 72dd3c61381706e34cba7618e6402f6be59380137c3b7198747d898e17d550c0
5
5
  SHA512:
6
- metadata.gz: ef0675b148025de1a36a95ec7bcd0ea92863a6740c6122ba6c675e02400ae7ab0cc59237083a4d01c11a56b8c070285b4817d7067fd702f7cd07990d4616cd19
7
- data.tar.gz: c5cb5388660e8dd1605e39e7f1a02a2f7b118841d60927865e86ceea1d53c7a92b92390c552f60d3f33ea7d6dd8c7df94151e70a26a26bd0fe48e1d49029abb9
6
+ metadata.gz: 606fec606c9882cddbef3f1cc687d00f19cf0f535acdb84da448dfea730e5c7d69f16d4837014c5b7c4b1a68fea00c957f72c867ffcdccae3773b7fbf2c76b5d
7
+ data.tar.gz: d88215e1ef62177ed15e5c0e76a149ac53a96880fb19c9bfd32c275e750b2aa298bb39a6a01b6a3ee3b650592da1d843b7bb443ac9bbfa75ef620b1e2c061752
data/.travis.yml CHANGED
@@ -1,9 +1,9 @@
1
1
  language: ruby
2
2
 
3
3
  rvm:
4
- - 2.4
5
- - 2.5
6
4
  - 2.6
5
+ - 2.7
6
+ - 3.0
7
7
  - ruby-head
8
8
 
9
9
  before_install:
data/CHANGELOG.md CHANGED
@@ -1,8 +1,57 @@
1
- ## [0.3.10] - 2020-01-09
1
+ ## [0.4.1] - 2021-06-06
2
2
 
3
3
  ### Added
4
4
 
5
- * Experimentally support "insert" statement
5
+ * Newly supported syntax
6
+ * "apply-groups-except"
7
+
8
+ ### Fixed
9
+
10
+ * "scpf-link", "https", "inet6", "icmp6", "icmpv6", "ospf3", and "snmptrap" keywords might be marked as invalid in some hierarchies
11
+ * "policy-options community xxx members"
12
+ * "policy-options route-distinguisher xxx members"
13
+ * "routing-options confederation members"
14
+
15
+
16
+ ## [0.4.0] - 2021-05-02
17
+
18
+ ### Added
19
+
20
+ * Recreate parser based on MX 19.3R3-S1.3 xsd
21
+
22
+
23
+ ## [0.3.13] - 2020-05-20
24
+
25
+ ### Fixed
26
+
27
+ * Accept quoted strings under
28
+ * "system login message"
29
+ * "policy-options prefix-list xxx apply-path"
30
+
31
+ * <xsd:documentation/> processing during "rake build:config"
32
+ * <xsd:sequence><xsd:choice maxOccurs="unbounded"></xsd:sequence> should be considered as a sequence
33
+
34
+
35
+ ## [0.3.12] - 2020-02-06
36
+
37
+ ### Fixed
38
+
39
+ * "insert" statement whose last two tokens are keyword and argument, with the following single "before" (or "after") argument
40
+ * eg) insert protocols bgp group foo export bar before baz
41
+
42
+
43
+ ## [0.3.11] - 2020-01-28
44
+
45
+ ### Added
46
+
47
+ * junoser-squash supports "activate" statement
48
+
49
+
50
+ ## [0.3.10] - 2020-01-27
51
+
52
+ ### Added
53
+
54
+ * junoser-squash experimentally supports "insert" statement
6
55
 
7
56
  ### Fixed
8
57
 
@@ -10,6 +59,7 @@
10
59
  * junoser-squash unexpectedly removed "deactivate" statements
11
60
  * "deactivate" to "inactive:" translation during "junoser -s"
12
61
 
62
+
13
63
  ## [0.3.9] - 2019-11-17
14
64
 
15
65
  ### Fixed
@@ -17,12 +67,13 @@
17
67
  * security policies
18
68
  * "junoser -s" and "junoser -d" unexpectedly raises errors
19
69
 
70
+
20
71
  ## [0.3.8] - 2019-11-04
21
72
 
22
73
  ### Added
23
74
 
24
75
  * Newly supported syntax
25
- * security (by porting the hierarchy from vSRX 18.3R1.9)
76
+ * "security" (by porting the hierarchy from vSRX 18.3R1.9)
26
77
 
27
78
 
28
79
  ## [0.3.7] - 2019-09-03
@@ -47,7 +98,7 @@
47
98
 
48
99
  ### Fixed
49
100
 
50
- * Accept quoted string for
101
+ * Accept quoted strings under
51
102
  * "as-path path"
52
103
 
53
104
 
@@ -56,16 +107,16 @@
56
107
  ### Added
57
108
 
58
109
  * Newly supported syntax
59
- * protocols bgp minimum-hold-time xxx
60
- * system dump-on-panic
61
- * chassis fpc x pic x port x number-of-sub-ports x
110
+ * "protocols bgp minimum-hold-time xxx"
111
+ * "system dump-on-panic"
112
+ * "chassis fpc x pic x port x number-of-sub-ports x"
62
113
 
63
114
 
64
115
  ## [0.3.3] - 2018-10-09
65
116
 
66
117
  ### Fixed
67
118
 
68
- * Accept quoted string for
119
+ * Accept quoted strings under
69
120
  * "snmp location"
70
121
  * "snmp contact"
71
122
 
@@ -108,7 +159,7 @@
108
159
  ### Added
109
160
 
110
161
  * Newly supported syntax
111
- * class-of-service shared-buffer
162
+ * "class-of-service shared-buffer"
112
163
 
113
164
 
114
165
  ## [0.2.11] - 2017-09-07
@@ -116,15 +167,15 @@
116
167
  ### Added
117
168
 
118
169
  * Newly supported syntax
119
- * forwarding-options analyzer
120
- * routing-options dynamic-tunnels <name> udp
170
+ * "forwarding-options analyzer"
171
+ * "routing-options dynamic-tunnels <name> udp"
121
172
 
122
173
 
123
174
  ## [0.2.10] - 2017-08-22
124
175
 
125
176
  ### Fixed
126
177
 
127
- * routing-options dynamic-tunnels
178
+ * "routing-options dynamic-tunnels"
128
179
 
129
180
 
130
181
  ## [0.2.9] - 2017-06-09
@@ -132,14 +183,14 @@
132
183
  ### Added
133
184
 
134
185
  * Newly supported syntax
135
- * protocols sflow
186
+ * "protocols sflow"
136
187
 
137
188
 
138
189
  ## [0.2.8] - 2017-05-17
139
190
 
140
191
  ### Fixed
141
192
 
142
- * chassis forwarding-options
193
+ * "chassis forwarding-options"
143
194
 
144
195
 
145
196
  ## [0.2.7] - 2017-05-01
@@ -147,9 +198,9 @@
147
198
  ### Added
148
199
 
149
200
  * Newly supported syntax
150
- * system processes app-engine-virtual-machine-management-service
151
- * system processes app-engine-management-service
152
- * chassis fpc ? pic ? tunnel-services
201
+ * "system processes app-engine-virtual-machine-management-service"
202
+ * "system processes app-engine-management-service"
203
+ * "chassis fpc ? pic ? tunnel-services"
153
204
 
154
205
 
155
206
  ## [0.2.6] - 2017-04-21
@@ -157,7 +208,7 @@
157
208
  ### Added
158
209
 
159
210
  * Newly supported syntax
160
- * chassis fpc ? pic ? port ? channel-speed ?
211
+ * "chassis fpc ? pic ? port ? channel-speed ?"
161
212
 
162
213
  ## [0.2.5] - 2017-04-18
163
214
 
@@ -171,7 +222,7 @@
171
222
  ### Added
172
223
 
173
224
  * Newly supported syntax
174
- * system processes app-engine-virtual-machine-management-service traceoptions
225
+ * "system processes app-engine-virtual-machine-management-service traceoptions"
175
226
  * Some platforms expect "system processes dhcp", not "system processes dhcp-service"
176
227
  * "storm-control" under family bridge
177
228
 
@@ -185,8 +236,8 @@
185
236
  ### Added
186
237
 
187
238
  * Newly supported syntax
188
- * chassis fpc N error
189
- * forwarding-options sampling family mpls
239
+ * "chassis fpc N error"
240
+ * "forwarding-options sampling family mpls"
190
241
 
191
242
 
192
243
  ## [0.2.2] - 2016-02-15
@@ -194,7 +245,7 @@
194
245
  ### Added
195
246
 
196
247
  * Newly supported syntax
197
- * system services ssh
248
+ * "system services ssh"
198
249
 
199
250
  ### Fixed
200
251
 
@@ -211,7 +262,7 @@
211
262
 
212
263
  ### Fixed
213
264
 
214
- * template-name
265
+ * "template-name"
215
266
 
216
267
 
217
268
  ## [0.2.0] - 2015-12-26
@@ -230,44 +281,44 @@
230
281
 
231
282
  ### Fixed
232
283
 
233
- * 802.3ad
234
- * ether-options
235
- * storm-control default
236
- * vrf-target
237
- * maximum-prefix teardown
238
- * traceoptions
239
- * system syslog archive
240
- * system login user
241
- * routing-options confederation
242
- * hold-time
243
- * protocols ospf area x.x.x.x stub default-metric x x
244
- * protocols rsvp interface xxx subscription x
245
- * traceoptions cspf-link
246
- * protocols mpls priority
247
- * protocols mpls label-switched-path xxx primary xxx bandwidth xxx
248
- * protocols xxx rib-group xxx xxx
249
- * protocols mpls path xxx xxx
284
+ * "802.3ad"
285
+ * "ether-options"
286
+ * "storm-control default"
287
+ * "vrf-target"
288
+ * "maximum-prefix teardown"
289
+ * "traceoptions"
290
+ * "system syslog archive"
291
+ * "system login user"
292
+ * "routing-options confederation"
293
+ * "hold-time"
294
+ * "protocols ospf area x.x.x.x stub default-metric x x"
295
+ * "protocols rsvp interface xxx subscription x"
296
+ * "traceoptions cspf-link"
297
+ * "protocols mpls priority"
298
+ * "protocols mpls label-switched-path xxx primary xxx bandwidth xxx"
299
+ * "protocols xxx rib-group xxx xxx"
300
+ * "protocols mpls path xxx xxx"
250
301
 
251
302
 
252
303
  ## [0.1.6] - 2015-10-31
253
304
 
254
305
  ### Fixed
255
306
 
256
- * route-filter statement should be translated into one-line
307
+ * "route-filter" statement should be translated into one-line
257
308
 
258
309
 
259
310
  ## [0.1.5] - 2015-09-11
260
311
 
261
312
  ### Fixed
262
313
 
263
- * mistakenly processed '{' and '}' in as-path string
314
+ * Mistakenly processed '{' and '}' in as-path string
264
315
 
265
316
 
266
317
  ## [0.1.4] - 2015-09-11
267
318
 
268
319
  ### Fixed
269
320
 
270
- * missing community operator in policy-statement didn't fail
321
+ * Missing community operator in policy-statement didn't fail
271
322
 
272
323
 
273
324
  ## [0.1.3] - 2015-07-26
data/Gemfile.lock CHANGED
@@ -1,19 +1,21 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- junoser (0.3.10)
4
+ junoser (0.4.1)
5
5
  parslet
6
6
 
7
7
  GEM
8
8
  remote: https://rubygems.org/
9
9
  specs:
10
- mini_portile2 (2.4.0)
11
- nokogiri (1.10.4)
12
- mini_portile2 (~> 2.4.0)
13
- parslet (1.8.2)
14
- power_assert (1.1.5)
15
- rake (10.5.0)
16
- test-unit (3.3.3)
10
+ mini_portile2 (2.5.3)
11
+ nokogiri (1.11.7)
12
+ mini_portile2 (~> 2.5.0)
13
+ racc (~> 1.4)
14
+ parslet (2.0.0)
15
+ power_assert (2.0.0)
16
+ racc (1.5.2)
17
+ rake (13.0.3)
18
+ test-unit (3.4.4)
17
19
  power_assert
18
20
 
19
21
  PLATFORMS
@@ -23,8 +25,8 @@ DEPENDENCIES
23
25
  bundler (~> 2.0)
24
26
  junoser!
25
27
  nokogiri
26
- rake (~> 10.0)
28
+ rake (~> 13.0)
27
29
  test-unit
28
30
 
29
31
  BUNDLED WITH
30
- 2.0.2
32
+ 2.2.16
data/LICENSE.txt CHANGED
@@ -1,6 +1,6 @@
1
1
  The MIT License (MIT)
2
2
 
3
- Copyright (c) 2020 Shintaro Kojima
3
+ Copyright (c) 2015-2021 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
@@ -28,34 +28,70 @@ $ gem install junoser
28
28
 
29
29
  ### Usage
30
30
 
31
- To verify configurations syntax:
31
+ #### Syntax validation
32
32
 
33
33
  ```zsh
34
34
  $ junoser -c config.txt
35
- ```
36
35
 
37
- or
36
+ # or
38
37
 
39
- ```zsh
40
38
  $ cat config.txt | junoser -c
41
39
  ```
42
40
 
43
- To translate configuration into "display set" form:
41
+ #### Syntax translation
42
+
43
+ ##### Structured form into "display set"
44
44
 
45
45
  ```zsh
46
- $ /exe/junoser -d config.txt
46
+ $ junoser -d config.txt
47
47
  set protocols bgp group ebgp-peers neighbor 192.0.2.2
48
- ```
49
48
 
50
- or
49
+ # or
51
50
 
52
- ```zsh
53
51
  $ cat config.txt | junoser -d
54
52
  set protocols bgp group ebgp-peers neighbor 192.0.2.2
55
53
  ```
56
54
 
57
- Use ```junoser -s``` to translate into structured form.
55
+ ##### "display set" into structured form
56
+
57
+ ```zsh
58
+ $ junoser -s config.txt
59
+
60
+ # or
61
+
62
+ $ cat config.txt | junoser -s
63
+ ```
64
+
65
+
66
+ ## Updating parser for new directives
67
+
68
+ From [Juniper
69
+ website](https://support.juniper.net/support/downloads/), you can
70
+ download the XSD schema for the version of JunOS you want to target:
58
71
 
72
+ - Junos XML API
73
+ - Select your version
74
+ - Application Tools
75
+ - XML Schema for Configurator Data
76
+
77
+ Alternatively, you can retrieve the schema with Netconf:
78
+
79
+ ```zsh
80
+ $ ssh -Csp 830 JUNOS netconf < example/get-schema.xml | sed -n '/^<xsd:schema/,/^<\/xsd:schema/p' > junos-XXX.xsd
81
+ ```
82
+
83
+ Put it in `tmp/`, update `xsd_path` in `Rakefile` and run:
84
+
85
+ ```zsh
86
+ $ bundle exec rake build:config build:rule
87
+ ```
88
+
89
+ Alternatively, you may look in `example/` for some prebuilt rules
90
+ file. If you want to use them, copy one to `tmp/rules.rb` and run:
91
+
92
+ ```zsh
93
+ $ bundle exec rake build:rule
94
+ ```
59
95
 
60
96
  ## Contributing
61
97
 
@@ -67,4 +103,4 @@ Or send a pull request to fix.
67
103
 
68
104
  ## Copyright and License
69
105
 
70
- Copyright (c) 2020 Shintaro Kojima. Code released under the [MIT license](LICENSE.txt).
106
+ Copyright (c) 2015-2021 Shintaro Kojima. Code released under the [MIT license](LICENSE.txt).
data/Rakefile CHANGED
@@ -4,10 +4,10 @@ require 'nokogiri'
4
4
  require 'pathname'
5
5
  require 'rake/testtask'
6
6
 
7
- xsd_path = File.join(__dir__, 'tmp/junos-system-17.2.xsd')
7
+ xsd_path = File.join(__dir__, 'tmp/junos-system-19.3.xsd')
8
8
  rule_path = File.join(__dir__, 'tmp/rule.rb')
9
9
  ruby_parser_path = File.join(__dir__, 'lib/junoser/parser.rb')
10
- js_parser_path = File.join(__dir__, 'tmp/schema.js')
10
+ js_parser_path = File.join(__dir__, 'tmp/junos.js')
11
11
 
12
12
  def open_files(input, output, &block)
13
13
  i = open(input)