Пример #1
0
func (this *PodService) DeletePod(name string) Pod {

	_podModel := k8sModel.PodModel{}
	_podModel.DeletePod(name)

	var _pod Pod
	_pod.Status = "ok"
	return _pod
}
Пример #2
0
func (this *BubbleService) GetRelate() bubble {
	fmt.Println("[Get] Relate Service")

	var _bubble bubble
	var _item item

	var service_model k8sModel.ServiceModel
	service_data := service_model.GetServiceList()
	// cluster_to_service := map[string]string{}
	for _, service := range service_data.Items {
		_item.Services = append(_item.Services, service.Metadata.Name)
	}

	var pod_model k8sModel.PodModel
	pod_data := pod_model.GetPodList()
	// Test(pod_data)
	for _, pod := range pod_data.Items {
		// Test(pod)
		_item.Containers = append(_item.Containers, pod.Metadata.Name)
	}

	var rc_model k8sModel.ReplicationControllerModel
	rc_data := rc_model.GetReplicationControllerList()
	for _, rc := range rc_data.Items {
		_item.Clusters = append(_item.Clusters, rc.Metadata.Name)
		var _relate relate
		_relate.Cluster_name = rc.Metadata.Name
		for _, service := range service_data.Items {
			// _item.Services = append(_item.Services, service.Metadata.Name)
			if service.Spec.Selector != nil &&
				service.Spec.Selector["name"] != "" &&
				rc.Spec.Selector["name"] == service.Spec.Selector["name"] {
				_relate.Service = append(_relate.Service, service.Metadata.Name)
			}
		}

		for _, pod := range pod_data.Items {
			if pod.Metadata.Labels != nil &&
				pod.Metadata.Labels["name"] != "" &&
				rc.Spec.Selector["name"] == pod.Metadata.Labels["name"] {
				_relate.Container = append(_relate.Container, pod.Metadata.Name)
			}
		}

		_bubble.Data.Relates = append(_bubble.Data.Relates, _relate)
	}

	_bubble.Data.Items = _item
	_bubble.Status = "ok"
	return _bubble
}
Пример #3
0
func (this *PodService) GetPod(name string) Pod {
	var _pod Pod

	_podModel := k8sModel.PodModel{}
	data := _podModel.PodByName(name)

	_metadata_name_arr := strings.Split(data.Metadata.Name, "-")
	_metadata_name := strings.Join(_metadata_name_arr[:len(_metadata_name_arr)-1], "-")
	if _metadata_name == "kube-dns-v3" {
		_pod.Status = "fail"
		return _pod
	}

	_pod.Data = this.PodByName(name, data)
	_pod.Status = "ok"
	return _pod
}
Пример #4
0
func (this *PodService) GetPodList() PodList {
	_podModel := k8sModel.PodModel{}
	data := _podModel.GetPodList()

	var _pod_list PodList
	for _, data_items := range data.Items {
		_metadata_name_arr := strings.Split(data_items.Metadata.Name, "-")
		_metadata_name := strings.Join(_metadata_name_arr[:len(_metadata_name_arr)-1], "-")
		if _metadata_name == "kube-dns-v3" {
			continue
		}

		data := _podModel.PodByName(data_items.Metadata.Name)
		_pod := this.PodByName(data_items.Metadata.Name, data)
		_pod_list.Data = append(_pod_list.Data, _pod)
	}
	return _pod_list
}
Пример #5
0
func (this *OverviewService) GetPodCount() OverviewList {
	_podModel := k8sModel.PodModel{}
	data := _podModel.GetPodList()

	var _overview_list OverviewList
	_overview_list.Status = "ok"

	var i int = 0
	for _, data_items := range data.Items {
		_metadata_name_arr := strings.Split(data_items.Metadata.Name, "-")
		_metadata_name := strings.Join(_metadata_name_arr[:len(_metadata_name_arr)-1], "-")
		if _metadata_name == "kube-dns-v3" {
			continue
		}

		i = i + 1
	}
	_overview_list.Data.Pod_count = i
	return _overview_list
}
func (this *ReplicationControllerService) GetReplicationControllerList() ClusterList {
	_replication_controllerModel := k8sModel.ReplicationControllerModel{}
	data := _replication_controllerModel.GetReplicationControllerList()

	_podModel := k8sModel.PodModel{}
	_pod_data := _podModel.GetPodList()

	var _cluster_list ClusterList

	for _, data_items := range data.Items {
		metadata_name := data_items.Metadata.Name
		if metadata_name == "kube-dns-v3" {
			continue
		}

		var _cluster Cluster_format
		_cluster = this.RcByName(data_items)

		replicas := strconv.Itoa(data_items.Status.Replicas)
		_cluster.Status = replicas + "/" + replicas

		var herd_service herd_format.Data
		herd_service.Clusters = append(herd_service.Clusters, metadata_name)

		var scale_herd herdModel.ScaleHerdModel
		scale_herd_data := scale_herd.GetScale(herd_service)

		if len(scale_herd_data.Clusters) > 0 {
			_cluster.Auto_scale = scale_herd_data.Clusters[0].Enable_auto_scale
		}

		for _, _pod_data_item := range _pod_data.Items {
			_metadata_name_arr := strings.Split(_pod_data_item.Metadata.Name, "-")
			_metadata_name := strings.Join(_metadata_name_arr[:len(_metadata_name_arr)-1], "-")
			if metadata_name != _metadata_name {
				continue
			}
			var _pod pod
			_pod.Container_name = _pod_data_item.Metadata.Name
			_pod.Label = _pod_data_item.Metadata.Labels
			_pod.Public_ip = _pod_data_item.Status.PodIP
			_pod.Host_ip = _pod_data_item.Status.HostIP
			_pod.Status = _pod_data_item.Status.Phase

			var getHerd herdModel.GetHerdModel
			getHerd_data := getHerd.PostData(herd_service)

			for _, cluster := range getHerd_data.Clusters {
				if len(cluster.Containers) > 0 {
					for _, _container := range cluster.Containers {
						_cluster.Cpu += _container.Cpu
						_cluster.Mem += _container.Mem
						if _pod_data_item.Metadata.Name == _container.Container_name {
							_pod.Cpu = _container.Cpu
							_pod.Mem = _container.Mem
						}
					}
				}
			}
			var _image_file image_file
			_image_file.Name = _pod_data_item.Spec.Containers[0].Name
			_image_file.Image = _pod_data_item.Spec.Containers[0].Image
			_pod.Image_file = append(_pod.Image_file, _image_file)

			_cluster.Pods = append(_cluster.Pods, _pod)
		}

		_cluster_list.Status = "ok"
		_cluster_list.Data = append(_cluster_list.Data, _cluster)
	}

	return _cluster_list
}