func (i *IPInterfaceEntity) GetAll() IPInterfaceConfigMap {
	var re = regexp.MustCompile(`(?m)^interface\s(.+)`)
	config := i.Config()
	interfaces := re.FindAllStringSubmatch(config, -1)
	response := make(IPInterfaceConfigMap)
	for _, name := range interfaces {
		intf, _ := i.Get(name[1])
		if intf != nil {
			response[name[1]] = intf
		}
	}
	return response
}
GetAll Returns all of the IP interfaces found in the running-config
Example:
{
'Ethernet1': {...},
'Ethernet2': {...}
}

Returns:
A map'd object of key/value pairs keyed by interface
name that represents all of the IP interfaces on
the current node.
package module
import (
	"regexp"
	"strconv"
	"github.com/aristanetworks/goeapi"
)
type IPInterfaceConfig map[string]string
type IPInterfaceConfigMap map[string]IPInterfaceConfig
type IPInterfaceEntity struct {
	*AbstractBaseEntity
}
func (i IPInterfaceConfig) Name() string {
	return i["name"]
}
func (i IPInterfaceConfig) Address() string {
	return i["address"]
}
func (i IPInterfaceConfig) Mtu() string {
	return i["mtu"]
}
func IPInterface(node *goeapi.Node) *IPInterfaceEntity {
	return &IPInterfaceEntity{&AbstractBaseEntity{node}}
}
func isValidMtu(value int) bool {
	if value >= 68 && value <= 65535 {
		return true
	}
	return false
}
func (i *IPInterfaceEntity) Get(name string) (IPInterfaceConfig, error) {
	parent := "interface " + name
	config, _ := i.GetBlock(parent)
	matchedInt, _ := regexp.MatchString("Et|Po", name)
	noSwport, _ := regexp.MatchString("(?m)no switchport$", config)
	if matchedInt && !noSwport {
		return nil, nil
	}
	return IPInterfaceConfig{
		"name":    name,
		"address": i.parseAddress(config),
		"mtu":     i.parseMtu(config),
	}, nil
}