Validations_Fix_VGC_FTTB_Subscribers
Change-Id: I21b8465ac28bb7b91c7cae99a473d6d9f868f949
Signed-off-by: Guru Prasanna <guruprasanna.st@radisys.com>
diff --git a/libraries/vgc.robot b/libraries/vgc.robot
index 06de3f1..b1bee31 100755
--- a/libraries/vgc.robot
+++ b/libraries/vgc.robot
@@ -679,11 +679,108 @@
Run Keyword If ${ds_gir} != 0
... Validate Guarenteed Information Rate ${ds_gir} ${meter_json_resp}
+Verify Meters in VGC Ietf For FTTB Subscribers
+ [Arguments] ${ip} ${port} ${olt_of_id} ${onu_port} ${filter}=${EMPTY}
+ [Documentation] Verifies the meters with BW Ietf format for FTTB Subscriber (currently, DT workflow uses this format)
+ ${programmed_sub_json_resp}= Get Programmed Subscribers ${olt_of_id} ${onu_port}
+ ... ${filter}
+ Log ${programmed_sub_json_resp}
+ ${us_bw_profile} ${ds_bw_profile} Get Upstream and Downstream Bandwidth Profile Name
+ ... ${programmed_sub_json_resp}
+ # Get upstream bandwidth profile details
+ ${us_cir} ${us_cbs} ${us_pir} ${us_pbs} ${us_gir} Get Bandwidth Profile Details Ietf Rest
+ ... ${us_bw_profile}
+ # Verify meter for upstream bandwidth profile
+ ${meter}= Get Request VGC meters
+ ${meter_json_resp}= To Json ${meter.content}
+ ${meters}= Get From Dictionary ${meter_json_resp} meters
+ Log ${meter_json_resp}
+ Log ${meters}
+ ${meter_length} Get Length ${meters}
+ FOR ${i} IN RANGE ${meter_length}
+ ${id}= Get From Dictionary ${meters[${i}]} id
+ Run Keyword If '${id}' == '2' Set Suite Variable ${meter_json_resp} ${meters[${i}]}
+ END
+ ${meter_json_Length} Get Length ${meter_json_resp['bands']}
+ FOR ${I} IN RANGE 0 ${meter_json_Length}
+ ${burst_size}= Get From Dictionary ${meter_json_resp['bands'][${I}]} burstSize
+ ${rate}= Get From Dictionary ${meter_json_resp['bands'][${I}]} rate
+ Log ${rate}
+ Log ${burst_size}
+ # for cir & cbs
+ ${matched}= Set Variable If '${rate}' == '${us_cir}' and '${burst_size}' == '${us_cbs}' True False
+ ${res1}= Evaluate '${rate}' == '${us_cir}' and '${burst_size}' == '${us_cbs}'
+ Exit For Loop If ${matched}
+ END
+ Should Be True ${matched}
+ #for pir & pbs
+ FOR ${I} IN RANGE 0 3
+ ${burst_size}= Get From Dictionary ${meter_json_resp['bands'][${I}]} burstSize
+ ${rate}= Get From Dictionary ${meter_json_resp['bands'][${I}]} rate
+ ${matched}= Set Variable If '${rate}' == '${us_pir}' and '${burst_size}' == '${us_pbs}' True False
+ ${res2}= Evaluate '${rate}' == '${us_pir}' and '${burst_size}' == '${us_pbs}'
+ Exit For Loop If ${matched}
+ END
+ Should Be True ${matched}
+ #for gir
+ Run Keyword if ${us_gir} != 0 Validate Guarenteed Information Rate For FTTB ${us_gir} ${meter_json_resp}
+ # Get downstream bandwidth profile details
+ ${ds_cir} ${ds_cbs} ${ds_pir} ${ds_pbs} ${ds_gir} Get Bandwidth Profile Details Ietf Rest
+ ... ${ds_bw_profile}
+ ${meter}= Get Request VGC meters
+ ${meter_json_resp}= To Json ${meter.content}
+ Log ${meter_json_resp}
+ Log ${rate}
+ Log ${burst_size}
+ ${meters}= Get From Dictionary ${meter_json_resp} meters
+ Log ${meter_json_resp}
+ Log ${meters}
+ FOR ${i} IN RANGE 2
+ ${id}= Get From Dictionary ${meters[${i}]} id
+ Run Keyword If '${id}' == '2' Set Suite Variable ${meter_json_resp} ${meters[${i}]}
+ END
+ FOR ${I} IN RANGE 0 3
+ ${burst_size}= Get From Dictionary ${meter_json_resp['bands'][${I}]} burstSize
+ ${rate}= Get From Dictionary ${meter_json_resp['bands'][${I}]} rate
+ Log ${rate}
+ Log ${burst_size}
+ # for cir & cbs
+ ${matched}= Set Variable If '${rate}' == '${ds_cir}' and '${burst_size}' == '${ds_cbs}' True False
+ ${res1}= Evaluate '${rate}' == '${ds_cir}' and '${burst_size}' == '${ds_cbs}'
+ Exit For Loop If ${matched}
+ END
+ Should Be True ${matched}
+
+ # for cir & cbs
+ FOR ${I} IN RANGE 0 3
+ ${burst_size}= Get From Dictionary ${meter_json_resp['bands'][${I}]} burstSize
+ ${rate}= Get From Dictionary ${meter_json_resp['bands'][${I}]} rate
+ Log ${rate}
+ Log ${burst_size}
+ ${matched}= Set Variable If '${rate}' == '${ds_cir}' and '${burst_size}' == '${ds_cbs}' True False
+ ${res1}= Evaluate '${rate}' == '${ds_pir}' and '${burst_size}' == '${ds_pbs}'
+ Exit For Loop If ${matched}
+ END
+ Should Be True ${matched}
+ #for pir & pbs
+ #for gir
+ Run Keyword If ${ds_gir} != 0
+ ... Validate Guarenteed Information Rate For FTTB ${ds_gir} ${meter_json_resp}
+
Validate Guarenteed Information Rate
+ [Documentation] Validate gir for both upstream and downstream meters
+ [Arguments] ${gir} ${meter_json_resp}
+ ${rate} ${burst_size} Get Meter Param In Details
+ ... ${meter_json_resp} 3
+ ${matched}= Set Variable If '${rate}' == '${gir}' and '${burst_size}' == '0' True False
+ Should Be True ${matched}
+ [Return] ${matched}
+
+Validate Guarenteed Information Rate For FTTB
[Documentation] Validate gir for both upstream and downstream meters
[Arguments] ${gir} ${meter_json_resp}
- ${rate} ${burst_size} Get Meter Param In Details
- ... ${meter_json_resp} 3
+ ${burst_size}= Get From Dictionary ${meter_json_resp['bands'][2]} burstSize
+ ${rate}= Get From Dictionary ${meter_json_resp['bands'][2]} rate
${matched}= Set Variable If '${rate}' == '${gir}' and '${burst_size}' == '0' True False
Should Be True ${matched}
[Return] ${matched}