本文整理汇总了Golang中github.com/hyperhq/runv/hypervisor/pod.UserPod.Resource方法的典型用法代码示例。如果您正苦于以下问题:Golang UserPod.Resource方法的具体用法?Golang UserPod.Resource怎么用?Golang UserPod.Resource使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类github.com/hyperhq/runv/hypervisor/pod.UserPod
的用法示例。
在下文中一共展示了UserPod.Resource方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: convertToRunvPodSpec
// TODO: remove convertToRunvPodSpec after pod.UserPod is deleted from runv
func convertToRunvPodSpec(podSpec *apitypes.UserPod) (*pod.UserPod, error) {
var userPod pod.UserPod
userPod.Name = podSpec.Id
if podSpec.Id == "" {
userPod.Name = utils.RandStr(10, "alphanum")
}
if podSpec.PortmappingWhiteLists != nil {
for _, cidr := range podSpec.PortmappingWhiteLists.ExternalNetworks {
_, _, err := net.ParseCIDR(cidr)
if err != nil {
return nil, fmt.Errorf("PortmappingWhiteLists.ExternalNetwork %s format error", cidr)
}
}
filteredInternalNetworks := make([]string, 0)
for _, cidr := range podSpec.PortmappingWhiteLists.InternalNetworks {
_, _, err := net.ParseCIDR(cidr)
if err != nil {
return nil, fmt.Errorf("PortmappingWhiteLists.InternalNetworks %s format error", cidr)
}
// filter cidr out if the cidr is also in ExternalNetworks
found := false
for _, ext := range podSpec.PortmappingWhiteLists.ExternalNetworks {
if cidr == ext {
found = true
break
}
}
if !found {
filteredInternalNetworks = append(filteredInternalNetworks, cidr)
}
}
userPod.PortmappingWhiteLists = &pod.PortmappingWhiteList{
InternalNetworks: filteredInternalNetworks,
ExternalNetworks: podSpec.PortmappingWhiteLists.ExternalNetworks,
}
}
userPod.Hostname = podSpec.Hostname
userPod.Type = podSpec.Type
userPod.RestartPolicy = podSpec.RestartPolicy
userPod.Dns = podSpec.Dns
userPod.Tty = podSpec.Tty
userPod.Labels = podSpec.Labels
if podSpec.Labels == nil {
userPod.Labels = make(map[string]string)
}
if podSpec.Resource != nil {
userPod.Resource = pod.UserResource{
Vcpu: int(podSpec.Resource.Vcpu),
Memory: int(podSpec.Resource.Memory),
}
}
if userPod.Resource.Vcpu == 0 {
userPod.Resource.Vcpu = 1
}
if userPod.Resource.Memory == 0 {
userPod.Resource.Memory = 128
}
if len(podSpec.Containers) > 0 {
containers := make([]pod.UserContainer, 0, len(podSpec.Containers))
for _, v := range podSpec.Containers {
if v.Image == "" {
return nil, fmt.Errorf("Please specific your image for your container, it can not be null!\n")
}
containers = append(containers, convertToRunvContainerSpec(v, userPod.Tty))
}
userPod.Containers = containers
}
if len(podSpec.Files) > 0 {
files := make([]pod.UserFile, 0, len(podSpec.Files))
for _, f := range podSpec.Files {
files = append(files, pod.UserFile{
Name: f.Name,
Encoding: f.Encoding,
Uri: f.Uri,
Contents: f.Content,
})
}
userPod.Files = files
}
if len(podSpec.Volumes) > 0 {
vols := make([]pod.UserVolume, 0, len(podSpec.Volumes))
for _, vol := range podSpec.Volumes {
if vol.Name == "" {
return nil, fmt.Errorf("Hyper ERROR: please specific your volume name, it can not be null!\n")
}
v := pod.UserVolume{
//.........这里部分代码省略.........