// 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 }
// GetJobList returns a list of all Jobs in the cluster. func GetJobList(client client.Interface, nsQuery *common.NamespaceQuery) (*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) }
// GetPetSetList returns a list of all Pet Sets in the cluster. func GetPetSetList(client *client.Client, nsQuery *common.NamespaceQuery) (*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) }
// GetReplicationControllerList returns a list of all Replication Controllers in the cluster. func GetReplicationControllerList(client *client.Client, nsQuery *common.NamespaceQuery) (*ReplicationControllerList, error) { log.Printf("Getting list of all replication controllers in the cluster") channels := &common.ResourceChannels{ ReplicationControllerList: common.GetReplicationControllerListChannel(client, nsQuery, 1), PodList: common.GetPodListChannel(client, nsQuery, 1), EventList: common.GetEventListChannel(client, nsQuery, 1), } return GetReplicationControllerListFromChannels(channels) }
// GetWorkloads returns a list of all workloads in the cluster. func GetWorkloads(client *k8sClient.Client, heapsterClient client.HeapsterClient, nsQuery *common.NamespaceQuery) (*Workloads, error) { log.Printf("Getting lists of all workloads") channels := &common.ResourceChannels{ ReplicationControllerList: common.GetReplicationControllerListChannel(client, nsQuery, 1), ReplicaSetList: common.GetReplicaSetListChannel(client.Extensions(), nsQuery, 1), JobList: common.GetJobListChannel(client.Batch(), nsQuery, 1), DaemonSetList: common.GetDaemonSetListChannel(client.Extensions(), nsQuery, 1), DeploymentList: common.GetDeploymentListChannel(client.Extensions(), nsQuery, 1), PetSetList: common.GetPetSetListChannel(client.Apps(), nsQuery, 1), ServiceList: common.GetServiceListChannel(client, nsQuery, 1), PodList: common.GetPodListChannel(client, nsQuery, 7), EventList: common.GetEventListChannel(client, nsQuery, 6), } return GetWorkloadsFromChannels(channels, heapsterClient) }