Пример программы на SLAX: различия между версиями

Материал из Juniper Exam Wiki
Перейти к навигации Перейти к поиску
(Новая страница: «=Complex XPath= Например нам требуется выцепить только список интерфейсов, начинающихся с "ge-"…»)
 
Строка 1: Строка 1:
=Complex XPath=
=Complex XPath=
Например нам требуется выцепить только список интерфейсов, начинающихся с "ge-"  и не имеющих "unit 100".
Например нам требуется выцепить только список интерфейсов, начинающихся с "ge-"  и '''не''' имеющих "mtu 1500".


Первое условие:
match / {
<op-script-results> {
var $results = jcs:invoke("get-interface-information");
/* Первое условие, проверка на наличие «ge-» */
for-each ( $results/physical-interface[starts-with (name, "ge-")]) {
/* Второе условие, проверка на отсутствие «mtu 1500» */
for-each (./logical-interface[jcs:empty(address-family[mtu == "1500"])]) {
<output> "Interface " _ ./name _ " has no mtu 1500"; }}}}
 
Вывод всех ge- интерфейсов из mtu:
Interface ge-0/0/0.60 has mtu 1500
Interface ge-0/0/0.80 has mtu 1400
Interface ge-0/0/0.100 has mtu 1500
Interface ge-0/0/0.110 has mtu 1500
Interface ge-0/0/0.32767 has mtu
Interface ge-0/0/1.0 has mtu 1500
 
Вывод с нашим условием:
Interface ge-0/0/0.80 has no mtu 1500
Interface ge-0/0/0.32767 has no mtu 1500

Версия 22:28, 10 января 2017

Complex XPath

Например нам требуется выцепить только список интерфейсов, начинающихся с "ge-" и не имеющих "mtu 1500".

match / {
	<op-script-results> {
		var $results = jcs:invoke("get-interface-information");
		/* Первое условие, проверка на наличие «ge-» */
		for-each ( $results/physical-interface[starts-with (name, "ge-")]) {
			/* Второе условие, проверка на отсутствие «mtu 1500» */
			for-each (./logical-interface[jcs:empty(address-family[mtu == "1500"])]) {
				<output> "Interface " _ ./name _ " has no mtu 1500"; }}}}

Вывод всех ge- интерфейсов из mtu:

Interface ge-0/0/0.60 has mtu 1500
Interface ge-0/0/0.80 has mtu 1400
Interface ge-0/0/0.100 has mtu 1500
Interface ge-0/0/0.110 has mtu 1500
Interface ge-0/0/0.32767 has mtu
Interface ge-0/0/1.0 has mtu 1500 

Вывод с нашим условием:

Interface ge-0/0/0.80 has no mtu 1500
Interface ge-0/0/0.32767 has no mtu 1500