-
Notifications
You must be signed in to change notification settings - Fork 48
Added validation check for CSCwt58626 #405
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: v4.2.0-dev
Are you sure you want to change the base?
Changes from all commits
8f68a28
8f858b8
cd8d121
1dad1ef
bb531b5
5afb200
8c4e053
3c90277
0867b24
bb07f23
9b20a12
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -22,7 +22,7 @@ | |
| from textwrap import TextWrapper | ||
| from getpass import getpass | ||
| from collections import defaultdict, OrderedDict | ||
| from datetime import datetime | ||
| from datetime import datetime, timedelta | ||
| from argparse import ArgumentParser | ||
| from itertools import chain | ||
| import threading | ||
|
|
@@ -6685,7 +6685,12 @@ def stale_dbgacEpgSummaryTask_check(tversion, **kwargs): | |
| if tversion and ((tversion.major1 == "6" and tversion.major2 == "1" and tversion.newer_than("6.1(5e)")) or tversion.newer_than("6.2(1g)")): | ||
| return Result(result=NA, msg=VER_NOT_AFFECTED, doc_url=doc_url) | ||
|
|
||
| threshold = datetime.utcnow() - timedelta(hours=24) | ||
| try: | ||
| from datetime import timezone | ||
| threshold = datetime.now(timezone.utc).replace(tzinfo=None) - timedelta(hours=24) | ||
| except ImportError: | ||
| threshold = datetime.utcnow() - timedelta(hours=24) | ||
|
Comment on lines
+6688
to
+6692
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. this potion is needed to cover |
||
|
|
||
| for obj in icurl("class", 'dbgacEpgSummaryTask.json?query-target-filter=eq(dbgacEpgSummaryTask.operSt,"processing")'): | ||
| attr = obj["dbgacEpgSummaryTask"]["attributes"] | ||
| dn = attr.get("dn", "") | ||
|
|
@@ -6702,6 +6707,61 @@ def stale_dbgacEpgSummaryTask_check(tversion, **kwargs): | |
| return Result(result=result, headers=headers, data=data, recommended_action=recommended_action, doc_url=doc_url) | ||
|
|
||
|
|
||
| @check_wrapper(check_title="InfraVLAN Overlap in Access Policy VLAN Pools") | ||
| def infravlan_overlap_access_policy_check(tversion, **kwargs): | ||
| result = PASS | ||
| headers = ["InfraVLAN", "Encap Block", "VLAN Pool DN"] | ||
| data = [] | ||
| recommended_action = "Remove InfraVLAN from VLAN pool block highligted or upgrade to fix version" | ||
|
|
||
| doc_url = "https://datacenter.github.io/ACI-Pre-Upgrade-Validation-Script/validations/#infravlan-overlap-access-policy-check" | ||
|
|
||
| if not tversion: | ||
| return Result(result=MANUAL, msg=TVER_MISSING) | ||
|
|
||
| if not (tversion.same_as("6.2(1g)") or ( | ||
| not tversion.older_than("6.1(3f)") and not tversion.newer_than("6.1(5e)") | ||
|
muthu-ku marked this conversation as resolved.
|
||
| )): | ||
| return Result(result=NA, msg=VER_NOT_AFFECTED) | ||
|
|
||
| infra_vlan = None | ||
| lldpInsts = icurl('class', 'lldpInst.json?query-target-filter=wcard(lldpInst.dn,"/node-1/")') | ||
| for lldpInst in lldpInsts: | ||
| infra_vlan_id = lldpInst.get('lldpInst', {}).get('attributes', {}).get('infraVlan') | ||
| if not infra_vlan_id: | ||
| continue | ||
| match = re.search(r'\d+', str(infra_vlan_id)) | ||
| if match: | ||
| infra_vlan = int(match.group(0)) | ||
| break | ||
|
|
||
| if infra_vlan is None: | ||
| return Result(result=ERROR, msg="Unable to determine InfraVLAN from lldpInst.") | ||
|
|
||
| encap_blocks = icurl('class', 'fvnsEncapBlk.json?query-target-filter=eq(fvnsEncapBlk.role,"external")') | ||
| for obj in encap_blocks: | ||
| blk_attr = obj.get('fvnsEncapBlk', {}).get('attributes', {}) | ||
|
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. [P1] Filter out non-affected internal blocks. The unfiltered There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. |
||
| dn = blk_attr.get('dn', '') | ||
| from_encap = blk_attr.get('from') | ||
| to_encap = blk_attr.get('to') | ||
| if not dn or not from_encap or not to_encap: | ||
| continue | ||
|
|
||
| try: | ||
| from_vlan = int(str(from_encap).split('-')[-1]) | ||
| to_vlan = int(str(to_encap).split('-')[-1]) | ||
| except (ValueError, TypeError): | ||
| continue | ||
|
Comment on lines
+6747
to
+6754
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. [P1] Do not turn unparseable APIC data into a PASS. Missing There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. @muthu-ku please work on the suggestions. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. when you find unformatted Dn, exit loop and print error. |
||
|
|
||
| if min(from_vlan, to_vlan) <= infra_vlan <= max(from_vlan, to_vlan): | ||
| data.append([str(infra_vlan), "{} to {}".format(from_encap, to_encap), dn]) | ||
|
|
||
| if data: | ||
| result = FAIL_UF | ||
|
|
||
| return Result(result=result, headers=headers, data=data, recommended_action=recommended_action, doc_url=doc_url) | ||
|
|
||
|
|
||
| # ---- Script Execution ---- | ||
|
|
||
|
|
||
|
|
@@ -6877,7 +6937,8 @@ class CheckManager: | |
| wred_affected_model_check, | ||
| n9k_c93180yc_fx3_switch_memory_check, | ||
| stale_dbgacEpgSummaryTask_check, | ||
|
|
||
| infravlan_overlap_access_policy_check, | ||
|
|
||
| ] | ||
| ssh_checks = [ | ||
| # General | ||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1 @@ | ||
| [] |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,28 @@ | ||
| [ | ||
| { | ||
| "fvnsEncapBlk": { | ||
| "attributes": { | ||
| "allocMode": "static", | ||
| "annotation": "orchestrator:aci-containers-controller", | ||
| "rn": "from-[vlan-200]-to-[vlan-300]", | ||
| "role": "external", | ||
| "from": "vlan-200", | ||
| "to": "vlan-300", | ||
| "dn": "uni/infra/vlanns-[vlan_pool1]-static/from-[vlan-200]-to-[vlan-300]" | ||
| } | ||
| } | ||
| }, | ||
| { | ||
| "fvnsEncapBlk": { | ||
| "attributes": { | ||
| "allocMode": "static", | ||
| "annotation": "orchestrator:aci-containers-controller", | ||
| "rn": "from-[vlan-500]-to-[vlan-1000]", | ||
| "role": "external", | ||
| "from": "vlan-500", | ||
| "to": "vlan-1000", | ||
| "dn": "uni/infra/vlanns-[vlan_pool2]-static/from-[vlan-500]-to-[vlan-1000]" | ||
| } | ||
| } | ||
| } | ||
| ] |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,67 @@ | ||
| [ | ||
| { | ||
| "fvnsEncapBlk": { | ||
| "attributes": { | ||
| "allocMode": "static", | ||
| "annotation": "orchestrator:aci-containers-controller", | ||
| "rn": "from-[vlan-100]-to-[vlan-4094]", | ||
| "role": "external", | ||
| "from": "vlan-100", | ||
| "to": "vlan-4094", | ||
| "dn": "uni/infra/vlanns-[vlan_pool1]-static/from-[vlan-100]-to-[vlan-4094]" | ||
| } | ||
| } | ||
| }, | ||
| { | ||
| "fvnsEncapBlk": { | ||
| "attributes": { | ||
| "allocMode": "static", | ||
| "annotation": "orchestrator:aci-containers-controller", | ||
| "rn": "from-[vlan-2`00]-to-[vlan-4094]", | ||
| "role": "internal", | ||
| "from": "vlan-100", | ||
| "to": "vlan-4094", | ||
| "dn": "uni/infra/vlanns-[vlan_pool2]-static/from-[vlan-200]-to-[vlan-4094]" | ||
| } | ||
| } | ||
| }, | ||
| { | ||
| "fvnsEncapBlk": { | ||
| "attributes": { | ||
| "allocMode": "static", | ||
| "annotation": "orchestrator:aci-containers-controller", | ||
| "rn": "from-[vlan-4000]-to-[vlan-4094]", | ||
| "role": "external", | ||
| "from": "vlan-4000", | ||
| "to": "vlan-4094", | ||
| "dn": "uni/infra/vlanns-[vlan_pool3]-static/from-[vlan-4000]-to-[vlan-4094]" | ||
| } | ||
| } | ||
| }, | ||
| { | ||
| "fvnsEncapBlk": { | ||
| "attributes": { | ||
| "allocMode": "static", | ||
| "annotation": "orchestrator:aci-containers-controller", | ||
| "rn": "from-[vlan-1751]-to-[vlan-4094]", | ||
| "role": "external", | ||
| "from": "vlan-1751", | ||
| "to": "vlan-4094", | ||
| "dn": "uni/vmmp-VMware/dom-k8s-scale-vmm/usrcustomaggr-k8srkesetup1/from-[vlan-1751]-to-[vlan-4094]" | ||
| } | ||
| } | ||
| }, | ||
| { | ||
| "fvnsEncapBlk": { | ||
| "attributes": { | ||
| "allocMode": "static", | ||
| "annotation": "orchestrator:aci-containers-controller", | ||
| "rn": "from-[vlan-1752]-to-[vlan-4094]", | ||
| "role": "external", | ||
| "from": "vlan-1752", | ||
| "to": "vlan-4094", | ||
| "dn": "uni/vmmp-VMware/dom-k8s-scale-vmm/usrcustomaggr-k8srkesetup1/from-[vlan-1752]-to-[vlan-4094]" | ||
| } | ||
| } | ||
| } | ||
| ] |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,41 @@ | ||
| [ | ||
| { | ||
| "fvnsEncapBlk": { | ||
| "attributes": { | ||
| "allocMode": "static", | ||
| "annotation": "orchestrator:aci-containers-controller", | ||
| "rn": "from-[vlan-100]-to-[vlan-4094]", | ||
| "role": "external", | ||
| "from": "vlan-100", | ||
| "to": "vlan-4094", | ||
| "dn": "uni/infra/vlanns-[vlan_pool]-static/from-[vlan-100]-to-[vlan-4094]" | ||
| } | ||
| } | ||
| }, | ||
| { | ||
| "fvnsEncapBlk": { | ||
| "attributes": { | ||
| "allocMode": "static", | ||
| "annotation": "orchestrator:aci-containers-controller", | ||
| "rn": "from-[vlan-1751]-to-[vlan-1751]", | ||
| "role": "external", | ||
| "from": "vlan-1751", | ||
| "to": "vlan-1751", | ||
| "dn": "uni/vmmp-VMware/dom-k8s-scale-vmm/usrcustomaggr-k8srkesetup1/from-[vlan-1751]-to-[vlan-1751]" | ||
| } | ||
| } | ||
| }, | ||
| { | ||
| "fvnsEncapBlk": { | ||
| "attributes": { | ||
| "allocMode": "static", | ||
| "annotation": "orchestrator:aci-containers-controller", | ||
| "rn": "from-[vlan-1752]-to-[vlan-1752]", | ||
| "role": "external", | ||
| "from": "vlan-1752", | ||
| "to": "vlan-1752", | ||
| "dn": "uni/vmmp-VMware/dom-k8s-scale-vmm/usrcustomaggr-k8srkesetup1/from-[vlan-1752]-to-[vlan-1752]" | ||
| } | ||
| } | ||
| } | ||
| ] |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1 @@ | ||
| [] |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,102 @@ | ||
| [ | ||
| { | ||
| "lldpInst": { | ||
| "attributes": { | ||
| "adminSt": "enabled", | ||
| "dn": "topology/pod-1/node-201/sys/lldp/inst", | ||
| "infraVlan": "vlan-4093", | ||
| "sysDesc": "topology/pod-1/node-201" | ||
| } | ||
| } | ||
| }, | ||
| { | ||
| "lldpInst": { | ||
| "attributes": { | ||
| "adminSt": "enabled", | ||
| "dn": "topology/pod-1/node-202/sys/lldp/inst", | ||
| "infraVlan": "vlan-4093", | ||
| "sysDesc": "topology/pod-1/node-202" | ||
| } | ||
| } | ||
| }, | ||
| { | ||
| "lldpInst": { | ||
| "attributes": { | ||
| "adminSt": "enabled", | ||
| "dn": "topology/pod-1/node-203/sys/lldp/inst", | ||
| "infraVlan": "vlan-4093", | ||
| "sysDesc": "topology/pod-1/node-203" | ||
| } | ||
| } | ||
| }, | ||
| { | ||
| "lldpInst": { | ||
| "attributes": { | ||
| "adminSt": "enabled", | ||
| "dn": "topology/pod-1/node-204/sys/lldp/inst", | ||
| "infraVlan": "vlan-4093", | ||
| "sysDesc": "topology/pod-1/node-204" | ||
| } | ||
| } | ||
| }, | ||
| { | ||
| "lldpInst": { | ||
| "attributes": { | ||
| "adminSt": "enabled", | ||
| "dn": "topology/pod-1/node-205/sys/lldp/inst", | ||
| "infraVlan": "vlan-4093", | ||
| "sysDesc": "topology/pod-1/node-205" | ||
| } | ||
| } | ||
| }, | ||
| { | ||
| "lldpInst": { | ||
| "attributes": { | ||
| "adminSt": "enabled", | ||
| "dn": "topology/pod-1/node-206/sys/lldp/inst", | ||
| "infraVlan": "vlan-4093", | ||
| "sysDesc": "topology/pod-1/node-206" | ||
| } | ||
| } | ||
| }, | ||
| { | ||
| "lldpInst": { | ||
| "attributes": { | ||
| "adminSt": "enabled", | ||
| "dn": "topology/pod-1/node-207/sys/lldp/inst", | ||
| "infraVlan": "vlan-4093", | ||
| "sysDesc": "topology/pod-1/node-207" | ||
| } | ||
| } | ||
| }, | ||
| { | ||
| "lldpInst": { | ||
| "attributes": { | ||
| "adminSt": "enabled", | ||
| "dn": "topology/pod-1/node-208/sys/lldp/inst", | ||
| "infraVlan": "vlan-4093", | ||
| "sysDesc": "topology/pod-1/node-208" | ||
| } | ||
| } | ||
| }, | ||
| { | ||
| "lldpInst": { | ||
| "attributes": { | ||
| "adminSt": "enabled", | ||
| "dn": "topology/pod-1/node-209/sys/lldp/inst", | ||
| "infraVlan": "vlan-4093", | ||
| "sysDesc": "topology/pod-1/node-209" | ||
| } | ||
| } | ||
| }, | ||
| { | ||
| "lldpInst": { | ||
| "attributes": { | ||
| "adminSt": "enabled", | ||
| "dn": "topology/pod-1/node-210/sys/lldp/inst", | ||
| "infraVlan": "vlan-4093", | ||
| "sysDesc": "topology/pod-1/node-210" | ||
| } | ||
| } | ||
| } | ||
| ] |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,12 @@ | ||
| [ | ||
| { | ||
| "lldpInst": { | ||
| "attributes": { | ||
| "adminSt": "enabled", | ||
| "dn": "topology/pod-1/node-201/sys/lldp/inst", | ||
| "infraVlan": "vlan-4093", | ||
| "sysDesc": "topology/pod-1/node-201" | ||
| } | ||
| } | ||
| } | ||
| ] |
Uh oh!
There was an error while loading. Please reload this page.