package pkg import ( "regexp" "github.rackspace.com/gorax/tools/util" ) type ( NAT struct { Name string `json:"name"` TranslationAddr string `json:"translation_address"` OriginatingAddr string `json:"originating_address"` TrafficGroup string `json:"traffic_group"` } ) func ParseNATs(s string) ([]*NAT, error) { var n []*NAT var TRAFFICGROUPRE = regexp.MustCompile(`traffic-group\s+(\S+)`) for _, r := range regexp.MustCompile(`(?i)ltm\s+nat\s+(\S+)\s+{((.|\n)*?)(\n}|$)`).FindAllStringSubmatch(s, -1) { n = append(n, &NAT{ Name: r[1], TranslationAddr: util.RegexpString(regexp.MustCompile(`(?i)translation-address\s+(\S+)`), r[2]), OriginatingAddr: util.RegexpString(regexp.MustCompile(`(?i)originating-address\s+(\S+)`), r[2]), TrafficGroup: util.RegexpString(TRAFFICGROUPRE, r[2]), }) } return n, nil }