1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- package topology
- import (
- "encoding/xml"
- )
- type loc struct {
- dcName string
- rackName string
- }
- type rack struct {
- Name string `xml:"name,attr"`
- Ips []string `xml:"Ip"`
- }
- type dataCenter struct {
- Name string `xml:"name,attr"`
- Racks []rack `xml:"Rack"`
- }
- type topology struct {
- DataCenters []dataCenter `xml:"DataCenter"`
- }
- type Configuration struct {
- XMLName xml.Name `xml:"Configuration"`
- Topo topology `xml:"Topology"`
- }
- func (c *Configuration) String() string {
- if b, e := xml.MarshalIndent(c, " ", " "); e == nil {
- return string(b)
- }
- return ""
- }
- func (c *Configuration) Locate(ip string, dcName string, rackName string) (dc string, rack string) {
- if dcName == "" {
- dcName = "DefaultDataCenter"
- }
- if rackName == "" {
- rackName = "DefaultRack"
- }
- return dcName, rackName
- }
|