示例#1
0
文件: sync.go 项目: wangtaoX/sapi-go
func syncPort(data *sjson.Json) (err error) {
	var sapiPorts []*SapiProvisionedPorts
	var fixips []*struct {
		Ips []map[string]string `json:"fixed_ips"`
	}

	port, ok := data.CheckGet("port")
	if !ok {
		return ErrorNoNet
	}
	bytes, err := port.Encode()
	if err != nil {
		return err
	}
	if err = json.Unmarshal(bytes, &sapiPorts); err != nil {
		return err
	}
	if err = json.Unmarshal(bytes, &fixips); err != nil {
		return err
	}

	new(SapiProvisionedPorts).truncate()
	for index, port := range sapiPorts {
		//fmt.Println(index, *port, fixips[index].Ips[0]["ip_address"], fixips[index].Ips[0]["subnet_id"])
		if len(fixips[index].Ips) >= 1 {
			port.IpAddress = fixips[index].Ips[0]["ip_address"]
			port.SubnetId = fixips[index].Ips[0]["subnet_id"]
		}
		if err := port.insert(); err != nil {
			return err
		}
	}

	return nil
}
示例#2
0
func parseResult(data *json.Json) (string, bool) {
	address, ok := data.CheckGet("display_name")
	if ok {
		return address.MustString(), true
	}
	return "", false
}
示例#3
0
文件: sync.go 项目: wangtaoX/sapi-go
func syncNet(data *sjson.Json) (err error) {
	var sapiNets []*SapiProvisionedNets

	network, ok := data.CheckGet("network")
	if !ok {
		return ErrorNoNet
	}
	bytes, err := network.Encode()
	if err != nil {
		return err
	}
	if err = json.Unmarshal(bytes, &sapiNets); err != nil {
		return err
	}

	new(SapiProvisionedNets).truncate()
	for _, net := range sapiNets {
		if err := net.insert(); err != nil {
			return err
		}
	}
	return nil
}
示例#4
0
文件: sync.go 项目: wangtaoX/sapi-go
func syncSubnet(data *sjson.Json) (err error) {
	var sapiSubnets []*SapiProvisionedSubnets

	subnet, ok := data.CheckGet("subnet")
	if !ok {
		return ErrorNoSubnet
	}
	bytes, err := subnet.Encode()
	if err != nil {
		return err
	}
	if err = json.Unmarshal(bytes, &sapiSubnets); err != nil {
		return err
	}

	new(SapiProvisionedSubnets).truncate()
	for _, subnet := range sapiSubnets {
		if err := subnet.insert(); err != nil {
			return err
		}
	}
	return nil
}