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 }
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 }
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 }