Feature: IPMI user

Updated below test cases from test_ipmi_user.robot script.

           - Verify Administrator And No Access Privilege For Different Channels

           - Verify Operator And User Privilege For Different Channels

Removed hardcoded channel number.

Added keyword to get all available channel number.

Added keyword to get number of active channel number for ethernet interface.

Added keyword to skip different channel test case based active channel number count
and added this keyword in test setup for different channel test cases.

Signed-off-by: ganesanb <ganesanb@ami.com>
Change-Id: I9ac6e7cef973fbc3b692d3ce4c1fd52dd2918440
diff --git a/lib/bmc_network_utils.robot b/lib/bmc_network_utils.robot
index efe6998..dfa09d1 100644
--- a/lib/bmc_network_utils.robot
+++ b/lib/bmc_network_utils.robot
@@ -662,3 +662,56 @@
     ${sys_hostname}=  Get BMC Hostname
     Should Be Equal  ${sys_hostname}  ${hostname}
     ...  ignore_case=True  msg=Hostname does not exist.
+
+Get Channel Number For All Interface
+    [Documentation]  Gets the Interface name and returns the channel number for the given interface.
+
+    ${valid_channel_number_interface_names}=  Get Channel Config
+
+    ${valid_channel_number_interface_names}=  Convert To Dictionary  ${valid_channel_number_interface_names}
+
+    [Return]  ${valid_channel_number_interface_names}
+
+Get Valid Channel Number
+    [Documentation]  Get Valid Channel Number.
+    [Arguments]  ${valid_channel_number_interface_names}
+
+    #Description of argument(s):
+    #valid_channel_number_interface_names   Contains channel names in dict.
+
+    &{valid_channel_number_interface_name}=  Create Dictionary
+
+    FOR  ${key}  ${values}  IN  &{valid_channel_number_interface_names}
+      Run Keyword If  '${values['is_valid']}' == 'True'
+      ...  Set To Dictionary  ${valid_channel_number_interface_name}  ${key}  ${values}
+    END
+
+    [Return]  ${valid_channel_number_interface_name}
+
+Get Channel Number For Valid Ethernet Interface
+    [Documentation]  Get channel number for all ethernet interface.
+    [Arguments]  ${valid_channel_number_interface_name}
+
+    # Description of argument(s):
+    # channel_number_list  Contains channel names in list.
+
+    @{channel_number_list}=  Create List
+
+    FOR  ${channel_number}  ${values}  IN  &{valid_channel_number_interface_name}
+      Run Keyword If  '${values['channel_info']['medium_type']}' == 'lan-802.3'
+      ...  Append To List  ${channel_number_list}  ${channel_number}
+    END
+
+    [Return]  ${channel_number_list}
+
+Get Active Ethernet Channel List
+    [Documentation]  Get Available Channel.
+
+    ${valid_channel_number_interface_names}=  Get Channel Number For All Interface
+
+    ${valid_channel_number_interface_name}=  Get Valid Channel Number  ${valid_channel_number_interface_names}
+
+    ${channel_number_list}=  Get Channel Number For Valid Ethernet Interface
+    ...  ${valid_channel_number_interface_name}
+
+    [Return]  ${channel_number_list}