Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion ansible/roles/test/tasks/crm.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,12 +16,13 @@

- set_fact:
ansible_date_time: "{{ansible_date_time}}"
crm_update_time: 4

- name: Set polling interval
command: crm config polling interval 1

- name: Make sure CRM counters updated
pause: seconds=300
pause: seconds=30

- name: Run test case "CRM IPv4 route resource"
include: roles/test/tasks/crm/crm_test_ipv4_route.yml
Expand Down
41 changes: 20 additions & 21 deletions ansible/roles/test/tasks/crm/crm_test_acl_counter.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,17 +6,22 @@
- name: Copy ACL JSON config to switch.
copy: src=roles/test/tasks/crm/acl.json dest=/tmp

- name: Get original "crm_stats_acl_counter_available" counter value
command: redis-cli -n 2 HGET {{acl_tbl_key}} crm_stats_acl_counter_available
register: out
- set_fact: original_crm_stats_acl_counter_available={{out.stdout}}

- name: Add ACL
command: acl-loader update full /tmp/acl.json
become: yes

- name: Get ACL entry keys
command: bash -c "docker exec -i database redis-cli --raw -n 1 KEYS *SAI_OBJECT_TYPE_ACL_ENTRY*"
command: redis-cli --raw -n 1 KEYS *SAI_OBJECT_TYPE_ACL_ENTRY*
register: out
- set_fact: acl_tbl_keys={{out.stdout.split()}}

- name: Get ethertype for ACL entry in order to match ACL which was configured
command: bash -c "docker exec -i database redis-cli -n 1 HGET {{item}} SAI_ACL_ENTRY_ATTR_FIELD_ETHER_TYPE"
command: redis-cli -n 1 HGET {{item}} SAI_ACL_ENTRY_ATTR_FIELD_ETHER_TYPE
with_items: "{{acl_tbl_keys}}"
register: out

Expand All @@ -26,22 +31,19 @@
when: item.stdout|search("2048")

- name: Get ACL table key
command: bash -c "docker exec -i database redis-cli -n 1 HGET {{key}} SAI_ACL_ENTRY_ATTR_TABLE_ID"
command: redis-cli -n 1 HGET {{key}} SAI_ACL_ENTRY_ATTR_TABLE_ID
register: out
- set_fact: acl_tbl_key={{"CRM:ACL_TABLE_STATS:{0}".format(out.stdout|replace("oid:", ""))}}

- name: Make sure CRM counters updated
pause: seconds=2

- name: Get new "crm_stats_acl_counter_used" counter value
command: docker exec -i database redis-cli -n 2 HGET {{acl_tbl_key}} crm_stats_acl_counter_used
register: out
- set_fact: new_crm_stats_acl_counter_used={{out.stdout}}
pause: seconds={{ crm_update_time }}

- name: Get new "crm_stats_acl_counter_available" counter value
command: docker exec -i database redis-cli -n 2 HGET {{acl_tbl_key}} crm_stats_acl_counter_available
- name: Get new "crm_stats_acl_counter" used and available counter value
command: redis-cli --raw -n 2 HMGET {{acl_tbl_key}} crm_stats_acl_counter_used crm_stats_acl_counter_available
register: out
- set_fact: new_crm_stats_acl_counter_available={{out.stdout}}
- set_fact:
new_crm_stats_acl_counter_used: "{{ out.stdout_lines[0] }}"
new_crm_stats_acl_counter_available: "{{ out.stdout_lines[1] }}"

- name: Verify "crm_stats_acl_counter_used" counter was incremented
assert: {that: "{{new_crm_stats_acl_counter_used|int - crm_stats_acl_counter_used|int == 2}}"}
Expand All @@ -60,17 +62,14 @@
become: yes

- name: Make sure CRM counters updated
pause: seconds=2

- name: Get new "crm_stats_acl_counter_used" counter value
command: docker exec -i database redis-cli -n 2 HGET {{acl_tbl_key}} crm_stats_acl_counter_used
register: out
- set_fact: new_crm_stats_acl_counter_used={{out.stdout}}
pause: seconds={{ crm_update_time }}

- name: Get new "crm_stats_acl_counter_available" counter value
command: docker exec -i database redis-cli -n 2 HGET {{acl_tbl_key}} crm_stats_acl_counter_available
- name: Get new "crm_stats_acl_counter" used and available counter value
command: redis-cli --raw -n 2 HMGET {{acl_tbl_key}} crm_stats_acl_counter_used crm_stats_acl_counter_available
register: out
- set_fact: new_crm_stats_acl_counter_available={{out.stdout}}
- set_fact:
new_crm_stats_acl_counter_used: "{{ out.stdout_lines[0] }}"
new_crm_stats_acl_counter_available: "{{ out.stdout_lines[1] }}"

- name: Verify "crm_stats_acl_counter_used" counter was decremented
assert: {that: "{{new_crm_stats_acl_counter_used|int - crm_stats_acl_counter_used|int == 0}}"}
Expand Down
38 changes: 16 additions & 22 deletions ansible/roles/test/tasks/crm/crm_test_acl_entry.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,15 +11,15 @@
become: yes

- name: Make sure CRM counters updated
pause: seconds=2
pause: seconds={{ crm_update_time }}

- name: Get ACL entry keys
command: bash -c "docker exec -i database redis-cli --raw -n 1 KEYS *SAI_OBJECT_TYPE_ACL_ENTRY*"
command: redis-cli --raw -n 1 KEYS *SAI_OBJECT_TYPE_ACL_ENTRY*
register: out
- set_fact: acl_tbl_keys={{out.stdout.split()}}

- name: Get ethertype for ACL entry in order to match ACL which was configured
command: bash -c "docker exec -i database redis-cli -n 1 HGET {{item}} SAI_ACL_ENTRY_ATTR_FIELD_ETHER_TYPE"
command: redis-cli -n 1 HGET {{item}} SAI_ACL_ENTRY_ATTR_FIELD_ETHER_TYPE
with_items: "{{acl_tbl_keys}}"
register: out

Expand All @@ -29,22 +29,19 @@
when: item.stdout|search("2048")

- name: Get ACL table key
command: bash -c "docker exec -i database redis-cli -n 1 HGET {{key}} SAI_ACL_ENTRY_ATTR_TABLE_ID"
command: redis-cli -n 1 HGET {{key}} SAI_ACL_ENTRY_ATTR_TABLE_ID
register: out
- set_fact: acl_tbl_key={{"CRM:ACL_TABLE_STATS:{0}".format(out.stdout|replace("oid:", ""))}}

- name: Make sure CRM counters updated
pause: seconds=2
pause: seconds={{ crm_update_time }}

- name: Get new "crm_stats_acl_entry_used" counter value
command: docker exec -i database redis-cli -n 2 HGET {{acl_tbl_key}} crm_stats_acl_entry_used
- name: Get new "crm_stats_acl_entry" used and available counter value
command: redis-cli --raw -n 2 HMGET {{acl_tbl_key}} crm_stats_acl_entry_used crm_stats_acl_entry_available
register: out
- set_fact: new_crm_stats_acl_entry_used={{out.stdout}}

- name: Get new "crm_stats_acl_entry_available" counter value
command: docker exec -i database redis-cli -n 2 HGET {{acl_tbl_key}} crm_stats_acl_entry_available
register: out
- set_fact: new_crm_stats_acl_entry_available={{out.stdout}}
- set_fact:
new_crm_stats_acl_entry_used: "{{ out.stdout_lines[0] }}"
new_crm_stats_acl_entry_available: "{{ out.stdout_lines[1] }}"

- name: Verify "crm_stats_acl_entry_used" counter was incremented
assert: {that: "{{new_crm_stats_acl_entry_used|int - crm_stats_acl_entry_used|int == 2}}"}
Expand All @@ -63,17 +60,14 @@
become: yes

- name: Make sure CRM counters updated
pause: seconds=2

- name: Get new "crm_stats_acl_entry_used" counter value
command: docker exec -i database redis-cli -n 2 HGET {{acl_tbl_key}} crm_stats_acl_entry_used
register: out
- set_fact: new_crm_stats_acl_entry_used={{out.stdout}}
pause: seconds={{ crm_update_time }}

- name: Get new "crm_stats_acl_entry_available" counter value
command: docker exec -i database redis-cli -n 2 HGET {{acl_tbl_key}} crm_stats_acl_entry_available
- name: Get new "crm_stats_acl_entry" used and available counter value
command: redis-cli --raw -n 2 HMGET {{acl_tbl_key}} crm_stats_acl_entry_used crm_stats_acl_entry_available
register: out
- set_fact: new_crm_stats_acl_entry_available={{out.stdout}}
- set_fact:
new_crm_stats_acl_entry_used: "{{ out.stdout_lines[0] }}"
new_crm_stats_acl_entry_available: "{{ out.stdout_lines[1] }}"

- name: Verify "crm_stats_acl_entry_used" counter was decremented
assert: {that: "{{new_crm_stats_acl_entry_used|int - crm_stats_acl_entry_used|int == 0}}"}
Expand Down
43 changes: 17 additions & 26 deletions ansible/roles/test/tasks/crm/crm_test_fdb_entry.yml
Original file line number Diff line number Diff line change
@@ -1,14 +1,11 @@
- block:

- name: Get "crm_stats_fdb_entry_used" counter value
command: docker exec -i database redis-cli -n 2 HGET CRM:STATS crm_stats_fdb_entry_used
- name: Get "crm_stats_fdb_entry" used and available counter value
command: redis-cli --raw -n 2 HMGET CRM:STATS crm_stats_fdb_entry_used crm_stats_fdb_entry_available
register: out
- set_fact: crm_stats_fdb_entry_used={{out.stdout}}

- name: Get "crm_stats_fdb_entry_available" counter value
command: docker exec -i database redis-cli -n 2 HGET CRM:STATS crm_stats_fdb_entry_available
register: out
- set_fact: crm_stats_fdb_entry_available={{out.stdout}}
- set_fact:
crm_stats_fdb_entry_used: "{{ out.stdout_lines[0] }}"
crm_stats_fdb_entry_available: "{{ out.stdout_lines[1] }}"

- name: Copy FDB JSON config to switch.
copy: src=roles/test/tasks/crm/fdb.json dest=/tmp
Expand All @@ -28,17 +25,14 @@
become: yes

- name: Make sure CRM counters updated
pause: seconds=2

- name: Get new "crm_stats_fdb_entry_used" counter value
command: docker exec -i database redis-cli -n 2 HGET CRM:STATS crm_stats_fdb_entry_used
register: out
- set_fact: new_crm_stats_fdb_entry_used={{out.stdout}}
pause: seconds={{ crm_update_time }}

- name: Get new "crm_stats_fdb_entry_available" counter value
command: docker exec -i database redis-cli -n 2 HGET CRM:STATS crm_stats_fdb_entry_available
- name: Get new "crm_stats_fdb_entry" used and available counter value
command: redis-cli --raw -n 2 HMGET CRM:STATS crm_stats_fdb_entry_used crm_stats_fdb_entry_available
register: out
- set_fact: new_crm_stats_fdb_entry_available={{out.stdout}}
- set_fact:
new_crm_stats_fdb_entry_used: "{{ out.stdout_lines[0] }}"
new_crm_stats_fdb_entry_available: "{{ out.stdout_lines[1] }}"

- name: Verify "crm_stats_fdb_entry_used" counter was incremented
assert: {that: "{{new_crm_stats_fdb_entry_used|int - crm_stats_fdb_entry_used|int == 1}}"}
Expand All @@ -57,17 +51,14 @@
command: fdbclear

- name: Make sure CRM counters updated
pause: seconds=2

- name: Get new "crm_stats_fdb_entry_used" counter value
command: docker exec -i database redis-cli -n 2 HGET CRM:STATS crm_stats_fdb_entry_used
register: out
- set_fact: new_crm_stats_fdb_entry_used={{out.stdout}}
pause: seconds={{ crm_update_time }}

- name: Get new "crm_stats_fdb_entry_available" counter value
command: docker exec -i database redis-cli -n 2 HGET CRM:STATS crm_stats_fdb_entry_available
- name: Get new "crm_stats_fdb_entry" used and available counter value
command: redis-cli --raw -n 2 HMGET CRM:STATS crm_stats_fdb_entry_used crm_stats_fdb_entry_available
register: out
- set_fact: new_crm_stats_fdb_entry_available={{out.stdout}}
- set_fact:
new_crm_stats_fdb_entry_used: "{{ out.stdout_lines[0] }}"
new_crm_stats_fdb_entry_available: "{{ out.stdout_lines[1] }}"

- name: Verify "crm_stats_fdb_entry_used" counter was decremented
assert: {that: "{{new_crm_stats_fdb_entry_used|int == 0}}"}
Expand Down
43 changes: 17 additions & 26 deletions ansible/roles/test/tasks/crm/crm_test_ipv4_neighbor.yml
Original file line number Diff line number Diff line change
@@ -1,31 +1,25 @@
- block:

- name: Get "crm_stats_ipv4_neighbor_used" counter value
command: docker exec -i database redis-cli -n 2 HGET CRM:STATS crm_stats_ipv4_neighbor_used
- name: Get "crm_stats_ipv4_neighbor" used and available counter value
command: redis-cli --raw -n 2 HMGET CRM:STATS crm_stats_ipv4_neighbor_used crm_stats_ipv4_neighbor_available
register: out
- set_fact: crm_stats_ipv4_neighbor_used={{out.stdout}}

- name: Get "crm_stats_ipv4_neighbor_available" counter value
command: docker exec -i database redis-cli -n 2 HGET CRM:STATS crm_stats_ipv4_neighbor_available
register: out
- set_fact: crm_stats_ipv4_neighbor_available={{out.stdout}}
- set_fact:
crm_stats_ipv4_neighbor_used: "{{ out.stdout_lines[0] }}"
crm_stats_ipv4_neighbor_available: "{{ out.stdout_lines[1] }}"

- name: Add IPv4 neighbor
command: ip neigh replace 2.2.2.2 lladdr 11:22:33:44:55:66 dev {{crm_intf}}
become: yes

- name: Make sure CRM counters updated
pause: seconds=2

- name: Get new "crm_stats_ipv4_neighbor_used" counter value
command: docker exec -i database redis-cli -n 2 HGET CRM:STATS crm_stats_ipv4_neighbor_used
register: out
- set_fact: new_crm_stats_ipv4_neighbor_used={{out.stdout}}
pause: seconds={{ crm_update_time }}

- name: Get new "crm_stats_ipv4_neighbor_available" counter value
command: docker exec -i database redis-cli -n 2 HGET CRM:STATS crm_stats_ipv4_neighbor_available
- name: Get new "crm_stats_ipv4_neighbor" used and available counter value
command: redis-cli --raw -n 2 HMGET CRM:STATS crm_stats_ipv4_neighbor_used crm_stats_ipv4_neighbor_available
register: out
- set_fact: new_crm_stats_ipv4_neighbor_available={{out.stdout}}
- set_fact:
new_crm_stats_ipv4_neighbor_used: "{{ out.stdout_lines[0] }}"
new_crm_stats_ipv4_neighbor_available: "{{ out.stdout_lines[1] }}"

- name: Verify "crm_stats_ipv4_neighbor_used" counter was incremented
assert: {that: "{{new_crm_stats_ipv4_neighbor_used|int - crm_stats_ipv4_neighbor_used|int >= 1}}"}
Expand All @@ -38,17 +32,14 @@
become: yes

- name: Make sure CRM counters updated
pause: seconds=2

- name: Get new "crm_stats_ipv4_neighbor_used" counter value
command: docker exec -i database redis-cli -n 2 HGET CRM:STATS crm_stats_ipv4_neighbor_used
register: out
- set_fact: new_crm_stats_ipv4_neighbor_used={{out.stdout}}
pause: seconds={{ crm_update_time }}

- name: Get new "crm_stats_ipv4_neighbor_available" counter value
command: docker exec -i database redis-cli -n 2 HGET CRM:STATS crm_stats_ipv4_neighbor_available
- name: Get new "crm_stats_ipv4_neighbor" used and available counter value
command: redis-cli --raw -n 2 HMGET CRM:STATS crm_stats_ipv4_neighbor_used crm_stats_ipv4_neighbor_available
register: out
- set_fact: new_crm_stats_ipv4_neighbor_available={{out.stdout}}
- set_fact:
new_crm_stats_ipv4_neighbor_used: "{{ out.stdout_lines[0] }}"
new_crm_stats_ipv4_neighbor_available: "{{ out.stdout_lines[1] }}"

- name: Verify "crm_stats_ipv4_neighbor_used" counter was decremented
assert: {that: "{{new_crm_stats_ipv4_neighbor_used|int - crm_stats_ipv4_neighbor_used|int >= 0}}"}
Expand Down
43 changes: 17 additions & 26 deletions ansible/roles/test/tasks/crm/crm_test_ipv4_nexthop.yml
Original file line number Diff line number Diff line change
@@ -1,31 +1,25 @@
- block:

- name: Get "crm_stats_ipv4_nexthop_used" counter value
command: docker exec -i database redis-cli -n 2 HGET CRM:STATS crm_stats_ipv4_nexthop_used
- name: Get "crm_stats_ipv4_nexthop" used and available counter value
command: redis-cli --raw -n 2 HMGET CRM:STATS crm_stats_ipv4_nexthop_used crm_stats_ipv4_nexthop_available
register: out
- set_fact: crm_stats_ipv4_nexthop_used={{out.stdout}}

- name: Get "crm_stats_ipv4_nexthop_available" counter value
command: docker exec -i database redis-cli -n 2 HGET CRM:STATS crm_stats_ipv4_nexthop_available
register: out
- set_fact: crm_stats_ipv4_nexthop_available={{out.stdout}}
- set_fact:
crm_stats_ipv4_nexthop_used: "{{ out.stdout_lines[0] }}"
crm_stats_ipv4_nexthop_available: "{{ out.stdout_lines[1] }}"

- name: Add IPv4 nexthop
command: ip neigh replace 2.2.2.2 lladdr 11:22:33:44:55:66 dev {{crm_intf}}
become: yes

- name: Make sure CRM counters updated
pause: seconds=2

- name: Get new "crm_stats_ipv4_nexthop_used" counter value
command: docker exec -i database redis-cli -n 2 HGET CRM:STATS crm_stats_ipv4_nexthop_used
register: out
- set_fact: new_crm_stats_ipv4_nexthop_used={{out.stdout}}
pause: seconds={{ crm_update_time }}

- name: Get new "crm_stats_ipv4_nexthop_available" counter value
command: docker exec -i database redis-cli -n 2 HGET CRM:STATS crm_stats_ipv4_nexthop_available
- name: Get new "crm_stats_ipv4_nexthop" used and available counter value
command: redis-cli --raw -n 2 HMGET CRM:STATS crm_stats_ipv4_nexthop_used crm_stats_ipv4_nexthop_available
register: out
- set_fact: new_crm_stats_ipv4_nexthop_available={{out.stdout}}
- set_fact:
new_crm_stats_ipv4_nexthop_used: "{{ out.stdout_lines[0] }}"
new_crm_stats_ipv4_nexthop_available: "{{ out.stdout_lines[1] }}"

- name: Verify "crm_stats_ipv4_nexthop_used" counter was incremented
assert: {that: "{{new_crm_stats_ipv4_nexthop_used|int - crm_stats_ipv4_nexthop_used|int == 1}}"}
Expand All @@ -38,17 +32,14 @@
become: yes

- name: Make sure CRM counters updated
pause: seconds=2

- name: Get new "crm_stats_ipv4_nexthop_used" counter value
command: docker exec -i database redis-cli -n 2 HGET CRM:STATS crm_stats_ipv4_nexthop_used
register: out
- set_fact: new_crm_stats_ipv4_nexthop_used={{out.stdout}}
pause: seconds={{ crm_update_time }}

- name: Get new "crm_stats_ipv4_nexthop_available" counter value
command: docker exec -i database redis-cli -n 2 HGET CRM:STATS crm_stats_ipv4_nexthop_available
- name: Get new "crm_stats_ipv4_nexthop" used and available counter value
command: redis-cli --raw -n 2 HMGET CRM:STATS crm_stats_ipv4_nexthop_used crm_stats_ipv4_nexthop_available
register: out
- set_fact: new_crm_stats_ipv4_nexthop_available={{out.stdout}}
- set_fact:
new_crm_stats_ipv4_nexthop_used: "{{ out.stdout_lines[0] }}"
new_crm_stats_ipv4_nexthop_available: "{{ out.stdout_lines[1] }}"

- name: Verify "crm_stats_ipv4_nexthop_used" counter was decremented
assert: {that: "{{new_crm_stats_ipv4_nexthop_used|int - crm_stats_ipv4_nexthop_used|int == 0}}"}
Expand Down
Loading