// GetPodsEvents gets pods events associated to resource targeted by given resource selector. func GetPodsEvents(client client.Interface, namespace string, resourceSelector map[string]string) ( []api.Event, error) { channels := &common.ResourceChannels{ PodList: common.GetPodListChannelWithOptions( client, common.NewSameNamespaceQuery(namespace), api.ListOptions{ LabelSelector: labels.SelectorFromSet(resourceSelector), FieldSelector: fields.Everything(), }, 1), EventList: common.GetEventListChannel(client, common.NewSameNamespaceQuery(namespace), 1), } podList := <-channels.PodList.List if err := <-channels.PodList.Error; err != nil { return nil, err } eventList := <-channels.EventList.List if err := <-channels.EventList.Error; err != nil { return nil, err } events := filterEventsByPodsUID(eventList.Items, podList.Items) return events, nil }
// GetPodList returns a list of all Pods in the cluster. func GetPodList(client k8sClient.Interface, heapsterClient client.HeapsterClient, nsQuery *common.NamespaceQuery, dsQuery *dataselect.DataSelectQuery) (*PodList, error) { log.Print("Getting list of all pods in the cluster") channels := &common.ResourceChannels{ PodList: common.GetPodListChannelWithOptions(client, nsQuery, api.ListOptions{}, 1), EventList: common.GetEventListChannel(client, nsQuery, 1), } return GetPodListFromChannels(channels, dsQuery, heapsterClient) }
// GetJobList returns a list of all Jobs in the cluster. func GetJobList(client client.Interface, nsQuery *common.NamespaceQuery, dsQuery *dataselect.DataSelectQuery, heapsterClient *heapster.HeapsterClient) (*JobList, error) { log.Printf("Getting list of all jobs in the cluster") channels := &common.ResourceChannels{ JobList: common.GetJobListChannel(client.Extensions(), nsQuery, 1), PodList: common.GetPodListChannel(client, nsQuery, 1), EventList: common.GetEventListChannel(client, nsQuery, 1), } return GetJobListFromChannels(channels, dsQuery, heapsterClient) }
// GetPetSetList returns a list of all Pet Sets in the cluster. func GetPetSetList(client *client.Client, nsQuery *common.NamespaceQuery, dsQuery *dataselect.DataSelectQuery, heapsterClient *heapster.HeapsterClient) (*PetSetList, error) { log.Printf("Getting list of all pet sets in the cluster") channels := &common.ResourceChannels{ PetSetList: common.GetPetSetListChannel(client.Apps(), nsQuery, 1), PodList: common.GetPodListChannel(client, nsQuery, 1), EventList: common.GetEventListChannel(client, nsQuery, 1), } return GetPetSetListFromChannels(channels, dsQuery, heapsterClient) }
// GetReplicaSetList returns a list of all Replica Sets in the cluster. func GetReplicaSetList(client client.Interface, nsQuery *common.NamespaceQuery, dsQuery *dataselect.DataSelectQuery, heapsterClient *heapster.HeapsterClient) (*ReplicaSetList, error) { log.Print("Getting list of all replica sets in the cluster") channels := &common.ResourceChannels{ ReplicaSetList: common.GetReplicaSetListChannel(client, nsQuery, 1), PodList: common.GetPodListChannel(client, nsQuery, 1), EventList: common.GetEventListChannel(client, nsQuery, 1), } return GetReplicaSetListFromChannels(channels, dsQuery, heapsterClient) }
// GetWorkloads returns a list of all workloads in the cluster. func GetWorkloads(client *k8sClient.Clientset, heapsterClient client.HeapsterClient, nsQuery *common.NamespaceQuery, metricQuery *dataselect.MetricQuery) (*Workloads, error) { log.Print("Getting lists of all workloads") channels := &common.ResourceChannels{ ReplicationControllerList: common.GetReplicationControllerListChannel(client, nsQuery, 1), ReplicaSetList: common.GetReplicaSetListChannel(client, nsQuery, 1), JobList: common.GetJobListChannel(client, nsQuery, 1), DaemonSetList: common.GetDaemonSetListChannel(client, nsQuery, 1), DeploymentList: common.GetDeploymentListChannel(client, nsQuery, 1), StatefulSetList: common.GetStatefulSetListChannel(client, nsQuery, 1), ServiceList: common.GetServiceListChannel(client, nsQuery, 1), PodList: common.GetPodListChannel(client, nsQuery, 7), EventList: common.GetEventListChannel(client, nsQuery, 6), } return GetWorkloadsFromChannels(channels, heapsterClient, metricQuery) }
func getPodCreator(client k8sClient.Interface, creatorAnnotation string, nsQuery *common.NamespaceQuery, heapsterClient client.HeapsterClient) (*Controller, error) { var serializedReference api.SerializedReference err := json.Unmarshal([]byte(creatorAnnotation), &serializedReference) if err != nil { return nil, err } channels := &common.ResourceChannels{ PodList: common.GetPodListChannel(client, nsQuery, 1), EventList: common.GetEventListChannel(client, nsQuery, 1), } pods := <-channels.PodList.List if err := <-channels.PodList.Error; err != nil { return nil, err } events := <-channels.EventList.List if err := <-channels.EventList.Error; err != nil { return nil, err } reference := serializedReference.Reference return toPodController(client, reference, pods.Items, events.Items, heapsterClient) }