def initialize_baremetal_switch_interfaces(self, interfaces):
        """Initialize Nexus interfaces and for initial baremetal event.

        This get/create port channel number, applies channel-group to
        ethernet interface, and initializes trunking on interface.

        :param interfaces: Receive a list of interfaces containing:
            nexus_host: IP address of Nexus switch
            intf_type: String which specifies interface type. example: ethernet
            interface: String indicating which interface. example: 1/19
            is_native: Whether native vlan must be configured.
            ch_grp: May replace port channel to each entry.  channel number is
            0 if none
        """
        if not interfaces:
            return

        max_ifs = len(interfaces)
        starttime = time.time()

        learned, nexus_ip_list = self._build_host_list_and_verify_chgrp(
            interfaces)
        if not nexus_ip_list:
            return

        if max_ifs > 1:
            # update vpc db with learned vpcid or get new one.
            if learned:
                ch_grp = interfaces[0][-1]
                self._configure_learned_port_channel(
                    nexus_ip_list, ch_grp)
            else:
                ch_grp = self._get_new_baremetal_portchannel_id(nexus_ip_list)
        else:
            ch_grp = 0

        for i, (nexus_host, intf_type, nexus_port, is_native,
            ch_grp_saved) in enumerate(interfaces):

            if max_ifs > 1:
                if learned:
                    ch_grp = ch_grp_saved
                else:
                    self._config_new_baremetal_portchannel(
                        ch_grp, nexus_host, intf_type, nexus_port)
                    self._replace_interface_ch_grp(interfaces, i, ch_grp)

                # init port-channel instead of the provided ethernet
                intf_type = 'port-channel'
                nexus_port = str(ch_grp)
            else:
                self._replace_interface_ch_grp(interfaces, i, ch_grp)

            trunk_mode_present, vlan_present = (
                self._get_interface_switch_trunk_present(
                    nexus_host, intf_type, nexus_port))
            if not vlan_present:
                self.send_enable_vlan_on_trunk_int(
                    nexus_host, "", intf_type, nexus_port, False,
                    not trunk_mode_present)
            elif not trunk_mode_present:
                LOG.warning(TRUNK_MODE_NOT_FOUND, nexus_host,
                            nexus_help.format_interface_name(
                                intf_type, nexus_port))

        self.capture_and_print_timeshot(
            starttime, "init_bmif",
            switch=nexus_host)
Initialize Nexus interfaces and for initial baremetal event.

        This get/create port channel number, applies channel-group to
        ethernet interface, and initializes trunking on interface.

        :param interfaces: Receive a list of interfaces containing:
            nexus_host: IP address of Nexus switch
            intf_type: String which specifies interface type. example: ethernet
            interface: String indicating which interface. example: 1/19
            is_native: Whether native vlan must be configured.
            ch_grp: May replace port channel to each entry.  channel number is
            0 if none