//未完成 func (this *OverviewService) GetServiceInfo() OverviewList { service_model := k8sModel.ServiceModel{} data := service_model.GetServiceList() rc_model := k8sModel.ReplicationControllerModel{} rc_data := rc_model.GetReplicationControllerList() machine_data := this.GetMachineInfo() var total_mem float64 = 0 for _, _machine_data := range machine_data.Data.Machine_info { total_mem += _machine_data.Mem } var _overview_list OverviewList _overview_list.Status = "ok" for _, data_items := range data.Items { metadata_name := data_items.Metadata.Name if metadata_name == "kube-dns" || metadata_name == "kubernetes" { continue } var _service_info service_info _service_info.Name = metadata_name var herd_service herd_format.Data herd_service.Services = append(herd_service.Services, metadata_name) var getHerd herdModel.GetHerdModel getHerd_data := getHerd.PostData(herd_service) var cpu int = 0 var mem int = 0 for _, service_herd := range getHerd_data.Services { if len(service_herd.Clusters) > 0 { for _, cluster_herd := range service_herd.Clusters { if len(cluster_herd.Containers) > 0 { for _, container_herd := range cluster_herd.Containers { cpu += container_herd.Cpu mem += container_herd.Mem } } } } } _service_info.Cpu = cpu _service_info.Mem = (float64(mem) / total_mem) * 100 for _, _rc_data_itme := range rc_data.Items { if data_items.Spec.Selector != nil { if data_items.Spec.Selector["name"] == _rc_data_itme.Spec.Selector["name"] { _service_info.Container_total += _rc_data_itme.Spec.Replicas _service_info.Container_run += _rc_data_itme.Spec.Replicas } } } _overview_list.Data.Service_info = append(_overview_list.Data.Service_info, _service_info) } return _overview_list }
func (this *ServiceService) ServiceByName(name string, data k8s_format.Service) Service_format { // service_model := k8sModel.ServiceModel{} // data := service_model.GetService(name) // var _service_list ServiceList var _service Service_format metadata_name := data.Metadata.Name if metadata_name == "kube-dns" || metadata_name == "kubernetes" { // _service.Status = "fail" // _service.Errmsg = "no found service" return _service } _service.Service_name = metadata_name _service.Label = data.Metadata.Labels var herd_service herd_format.Data herd_service.Services = append(herd_service.Services, metadata_name) var getHerd herdModel.GetHerdModel getHerd_data := getHerd.PostData(herd_service) var cpuAndMem struct { Cpu []int Mem []int } for _, service := range getHerd_data.Services { if len(service.Clusters) > 0 { for _, _cluster := range service.Clusters { if len(_cluster.Containers) > 0 { for _, _container := range _cluster.Containers { cpuAndMem.Cpu = append(cpuAndMem.Cpu, _container.Cpu) cpuAndMem.Mem = append(cpuAndMem.Mem, _container.Mem) } } } } } var _sub_Port sub_Ports for _, port := range data.Spec.Ports { _sub_Port.Port = port.Port _sub_Port.External_port = port.NodePort _service.Ports = append(_service.Ports, _sub_Port) } if len(data.Spec.Selector) < 1 { // _service.Status = "Forward" // _service.Cpu = "0" // _service.Mem = "0" } else { cpu := strconv.Itoa(len(cpuAndMem.Cpu)) mem := strconv.Itoa(len(cpuAndMem.Mem)) _service.Status = cpu + "/" + mem _service.Cpu = strconv.Itoa(len(cpuAndMem.Cpu)) _service.Mem = strconv.Itoa(len(cpuAndMem.Mem)) } return _service }