// GetEvents gets events associated to resource with given name. func GetEvents(client client.EventNamespacer, namespace, resourceName string) ([]api.Event, error) { fieldSelector, err := fields.ParseSelector("involvedObject.name=" + resourceName) if err != nil { return nil, err } channels := &common.ResourceChannels{ EventList: common.GetEventListChannelWithOptions( client, common.NewSameNamespaceQuery(namespace), api.ListOptions{ LabelSelector: labels.Everything(), FieldSelector: fieldSelector, }, 1), } eventList := <-channels.EventList.List if err := <-channels.EventList.Error; err != nil { return nil, err } return eventList.Items, nil }
// GetDeploymentDetail returns model object of deployment and error, if any. func GetDeploymentDetail(client client.Interface, namespace string, name string) (*DeploymentDetail, error) { log.Printf("Getting details of %s deployment in %s namespace", name, namespace) deployment, err := client.Extensions().Deployments(namespace).Get(name) if err != nil { return nil, err } selector, err := unversioned.LabelSelectorAsSelector(deployment.Spec.Selector) if err != nil { return nil, err } options := api.ListOptions{LabelSelector: selector} channels := &common.ResourceChannels{ ReplicaSetList: common.GetReplicaSetListChannelWithOptions(client.Extensions(), common.NewSameNamespaceQuery(namespace), options, 1), PodList: common.GetPodListChannelWithOptions(client, common.NewSameNamespaceQuery(namespace), options, 1), EventList: common.GetEventListChannelWithOptions(client, common.NewSameNamespaceQuery(namespace), options, 1), } rsList := <-channels.ReplicaSetList.List if err := <-channels.ReplicaSetList.Error; err != nil { return nil, err } 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 } oldReplicaSets, _, err := deploymentutil.FindOldReplicaSets(deployment, rsList.Items, podList) if err != nil { return nil, err } newReplicaSet, err := deploymentutil.FindNewReplicaSet(deployment, rsList.Items) if err != nil { return nil, err } events, err := GetDeploymentEvents(eventList.Items, namespace, name) if err != nil { return nil, err } return getDeploymentDetail(deployment, oldReplicaSets, newReplicaSet, podList.Items, events, eventList.Items), nil }