Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

deis doctor includes lots of k8s data #81

Merged
merged 4 commits into from
Aug 2, 2016
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 8 additions & 2 deletions data/available_versions_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,10 @@ type testAvailableVersions struct{}
func (a testAvailableVersions) Refresh(cluster models.Cluster) ([]models.ComponentVersion, error) {
data := getMockComponentVersions()
var componentVersions []models.ComponentVersion
_ = json.Unmarshal(data, &componentVersions)
err := json.Unmarshal(data, &componentVersions)
if err != nil {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

combine these lines. if err := json.Unmarshal(...); err != nil { ...

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

same with the below combinations

return nil, err
}
return componentVersions, nil
}

Expand Down Expand Up @@ -50,7 +53,10 @@ func (a shouldBypassAvailableVersions) Refresh(cluster models.Cluster) ([]models
}
]
}]`))
_ = json.Unmarshal(data, &componentVersions)
err := json.Unmarshal(data, &componentVersions)
if err != nil {
return nil, err
}
return componentVersions, nil
}

Expand Down
21 changes: 10 additions & 11 deletions data/data.go
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ func GetCluster(
}
err = AddUpdateData(&cluster, v)
if err != nil {
log.Println("unable to decorate cluster data with available updates data")
log.Printf("unable to decorate cluster data with available updates data: %#v\n", err)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

remove the trailing \n

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

same with the below removals

}
// Get the cluster ID
id, err := GetID(i)
Expand Down Expand Up @@ -145,11 +145,10 @@ func GetDoctorInfo(
) (models.DoctorInfo, error) {
cluster, err := GetCluster(c, i, v)
if err != nil {
log.Println("unable to get workflow cluster data")
return models.DoctorInfo{}, err
}
nodes := getK8sNodes(k)
var namespaces []*models.Namespace
namespaces = append(namespaces, getK8sDeisNamespace(k))
namespaces := []*models.Namespace{getK8sDeisNamespace(k)}
doctor := models.DoctorInfo{
Workflow: &cluster,
Nodes: nodes,
Expand All @@ -163,31 +162,31 @@ func GetDoctorInfo(
func getK8sDeisNamespace(k k8s.RunningK8sData) *models.Namespace {
pods, err := k8s.GetPodsModels(k)
if err != nil {
log.Println("unable to get K8s pods data")
log.Printf("unable to get K8s pods data: %#v\n", err)
}
services, err := k8s.GetServicesModels(k)
if err != nil {
log.Println("unable to get K8s services data")
log.Printf("unable to get K8s services data: %#v\n", err)
}
replicationControllers, err := k8s.GetReplicationControllersModels(k)
if err != nil {
log.Println("unable to get K8s RC data")
log.Printf("unable to get K8s RC data: %#v\n", err)
}
replicaSets, err := k8s.GetReplicaSetsModels(k)
if err != nil {
log.Println("unable to get K8s replicaSets data")
log.Printf("unable to get K8s replicaSets data: %#v\n", err)
}
daemonSets, err := k8s.GetDaemonSetsModels(k)
if err != nil {
log.Println("unable to get K8s daemonSets data")
log.Printf("unable to get K8s daemonSets data: %#v\n", err)
}
deployments, err := k8s.GetDeploymentsModels(k)
if err != nil {
log.Println("unable to get K8s deployments data")
log.Printf("unable to get K8s deployments data: %#v\n", err)
}
events, err := k8s.GetEventsModels(k)
if err != nil {
log.Println("unable to get K8s events data")
log.Printf("unable to get K8s events data: %#v\n", err)
}
return &models.Namespace{
Name: config.Spec.DeisNamespace,
Expand Down
24 changes: 12 additions & 12 deletions handlers/handlers.go
Original file line number Diff line number Diff line change
Expand Up @@ -23,36 +23,36 @@ const (
// RegisterRoutes attaches handler functions to routes
func RegisterRoutes(
r *mux.Router,
availableVersions data.AvailableVersions,
availVers data.AvailableVersions,
k8sResources *k8s.ResourceInterfaceNamespaced,
) *mux.Router {

clusterID := data.NewClusterIDFromPersistentStorage(k8sResources.Secrets())
r.Handle(componentsRoute, ComponentsHandler(
data.NewInstalledDeisData(k8sResources),
clusterID,
data.NewLatestReleasedComponent(k8sResources, availableVersions),
data.NewLatestReleasedComponent(k8sResources, availVers),
))
r.Handle(idRoute, IDHandler(clusterID))
doctorAPIClient, _ := config.GetSwaggerClient(config.Spec.DoctorAPIURL)
r.Handle(doctorRoute, DoctorHandler(
data.NewInstalledDeisData(k8sResources),
k8s.NewRunningK8sData(k8sResources),
clusterID,
data.NewLatestReleasedComponent(k8sResources, availableVersions),
data.NewLatestReleasedComponent(k8sResources, availVers),
doctorAPIClient,
)).Methods("POST")
return r
}

// ComponentsHandler route handler
func ComponentsHandler(
c data.InstalledData,
i data.ClusterID,
v data.AvailableComponentVersion,
workflow data.InstalledData,
clusterID data.ClusterID,
availVers data.AvailableComponentVersion,
) http.Handler {
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
cluster, err := data.GetCluster(c, i, v)
cluster, err := data.GetCluster(workflow, clusterID, availVers)
if err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
return
Expand All @@ -65,14 +65,14 @@ func ComponentsHandler(

// DoctorHandler route handler
func DoctorHandler(
c data.InstalledData, // deis cluster
k k8s.RunningK8sData, // k8s cluster
i data.ClusterID,
v data.AvailableComponentVersion,
workflow data.InstalledData,
k8sData k8s.RunningK8sData,
clusterID data.ClusterID,
availVers data.AvailableComponentVersion,
apiClient *apiclient.WorkflowManager,
) http.Handler {
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
doctor, err := data.GetDoctorInfo(c, k, i, v)
doctor, err := data.GetDoctorInfo(workflow, k8sData, clusterID, availVers)
if err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
return
Expand Down
6 changes: 3 additions & 3 deletions jobs/jobs.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ type Periodic interface {

// SendVersions fulfills the Periodic interface
type sendVersions struct {
k8sResources *k8s.ResourceInterfaceNamespaced
k8sResources *k8s.ResourceInterfaceNamespaced
apiClient *apiclient.WorkflowManager
availableVersions data.AvailableVersions
frequency time.Duration
Expand All @@ -35,7 +35,7 @@ func NewSendVersionsPeriodic(
frequency time.Duration,
) Periodic {
return &sendVersions{
k8sResources: ri,
k8sResources: ri,
apiClient: apiClient,
availableVersions: availableVersions,
frequency: frequency,
Expand Down Expand Up @@ -63,7 +63,7 @@ type getLatestVersionData struct {
installedData data.InstalledData
clusterID data.ClusterID
availableComponentVsn data.AvailableComponentVersion
k8sResources k8s.ResourceInterfaceNamespaced
k8sResources k8s.ResourceInterfaceNamespaced
frequency time.Duration
}

Expand Down
58 changes: 33 additions & 25 deletions k8s/k8s.go
Original file line number Diff line number Diff line change
Expand Up @@ -49,17 +49,25 @@ type runningK8sData struct {

// NewRunningK8sData returns a new runningK8sData using rcl as the rc.Lister implementation
func NewRunningK8sData(r *ResourceInterfaceNamespaced) RunningK8sData {
return &runningK8sData{daemonSetLister: r.DaemonSets(), deploymentLister: r.Deployments(), eventLister: r.Events(),
nodeLister: r.Nodes(), podLister: r.Pods(), rcLister: r.ReplicationControllers(), replicaSetLister: r.ReplicaSets(), serviceLister: r.Services()}
return &runningK8sData{
daemonSetLister: r.DaemonSets(),
deploymentLister: r.Deployments(),
eventLister: r.Events(),
nodeLister: r.Nodes(),
podLister: r.Pods(),
rcLister: r.ReplicationControllers(),
replicaSetLister: r.ReplicaSets(),
serviceLister: r.Services(),
}
}

// DaemonSets method for runningK8sData
func (rkd *runningK8sData) DaemonSets() ([]*models.K8sResource, error) {
ret := []*models.K8sResource{}
ds, err := getDaemonSets(rkd.daemonSetLister)
if err != nil {
return ret, err
return nil, err
}
ret := make([]*models.K8sResource, len(ds))
for _, d := range ds {
daemonSet := &models.K8sResource{
Data: &d,
Expand All @@ -71,11 +79,11 @@ func (rkd *runningK8sData) DaemonSets() ([]*models.K8sResource, error) {

// Deployments method for runningK8sData
func (rkd *runningK8sData) Deployments() ([]*models.K8sResource, error) {
ret := []*models.K8sResource{}
ds, err := getDeployments(rkd.deploymentLister)
if err != nil {
return ret, err
return nil, err
}
ret := make([]*models.K8sResource, len(ds))
for _, d := range ds {
dep := &models.K8sResource{
Data: &d,
Expand All @@ -87,11 +95,11 @@ func (rkd *runningK8sData) Deployments() ([]*models.K8sResource, error) {

// Events method for runningK8sData
func (rkd *runningK8sData) Events() ([]*models.K8sResource, error) {
ret := []*models.K8sResource{}
events, err := getEvents(rkd.eventLister)
if err != nil {
return ret, err
return nil, err
}
ret := make([]*models.K8sResource, len(events))
for _, e := range events {
event := &models.K8sResource{
Data: &e,
Expand All @@ -103,11 +111,11 @@ func (rkd *runningK8sData) Events() ([]*models.K8sResource, error) {

// Nodes method for runningK8sData
func (rkd *runningK8sData) Nodes() ([]*models.K8sResource, error) {
ret := []*models.K8sResource{}
nodes, err := getNodes(rkd.nodeLister)
if err != nil {
return ret, err
return nil, err
}
ret := make([]*models.K8sResource, len(nodes))
for _, n := range nodes {
node := &models.K8sResource{
Data: &n,
Expand All @@ -119,11 +127,11 @@ func (rkd *runningK8sData) Nodes() ([]*models.K8sResource, error) {

// Pods method for runningK8sData
func (rkd *runningK8sData) Pods() ([]*models.K8sResource, error) {
ret := []*models.K8sResource{}
pods, err := getPods(rkd.podLister)
if err != nil {
return ret, err
return nil, err
}
ret := make([]*models.K8sResource, len(pods))
for _, p := range pods {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

use the index in this range to insert into ret:

for i, p := range pods {
  // ...
  ret[i] = pod
}

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

same with the above and below ranges

pod := &models.K8sResource{
Data: &p,
Expand All @@ -135,11 +143,11 @@ func (rkd *runningK8sData) Pods() ([]*models.K8sResource, error) {

// ReplicaSets method for runningK8sData
func (rkd *runningK8sData) ReplicaSets() ([]*models.K8sResource, error) {
ret := []*models.K8sResource{}
rs, err := getReplicaSets(rkd.replicaSetLister)
if err != nil {
return ret, err
return nil, err
}
ret := make([]*models.K8sResource, len(rs))
for _, r := range rs {
replicaSet := &models.K8sResource{
Data: &r,
Expand All @@ -151,11 +159,11 @@ func (rkd *runningK8sData) ReplicaSets() ([]*models.K8sResource, error) {

// ReplicationControllers method for runningK8sData
func (rkd *runningK8sData) ReplicationControllers() ([]*models.K8sResource, error) {
ret := []*models.K8sResource{}
rcs, err := GetReplicationControllers(rkd.rcLister)
if err != nil {
return ret, err
return nil, err
}
ret := make([]*models.K8sResource, len(rcs))
for _, rc := range rcs {
replicationController := &models.K8sResource{
Data: &rc,
Expand All @@ -167,11 +175,11 @@ func (rkd *runningK8sData) ReplicationControllers() ([]*models.K8sResource, erro

// Services method for runningK8sData
func (rkd *runningK8sData) Services() ([]*models.K8sResource, error) {
ret := []*models.K8sResource{}
services, err := getServices(rkd.serviceLister)
if err != nil {
return ret, err
return nil, err
}
ret := make([]*models.K8sResource, len(services))
for _, s := range services {
service := &models.K8sResource{
Data: &s,
Expand All @@ -185,7 +193,7 @@ func (rkd *runningK8sData) Services() ([]*models.K8sResource, error) {
func GetNodesModels(k RunningK8sData) ([]*models.K8sResource, error) {
nodes, err := k.Nodes()
if err != nil {
return []*models.K8sResource{}, err
return nil, err
}
return nodes, nil
}
Expand All @@ -194,7 +202,7 @@ func GetNodesModels(k RunningK8sData) ([]*models.K8sResource, error) {
func GetPodsModels(k RunningK8sData) ([]*models.K8sResource, error) {
pods, err := k.Pods()
if err != nil {
return []*models.K8sResource{}, err
return nil, err
}
return pods, nil
}
Expand All @@ -203,7 +211,7 @@ func GetPodsModels(k RunningK8sData) ([]*models.K8sResource, error) {
func GetDeploymentsModels(k RunningK8sData) ([]*models.K8sResource, error) {
ds, err := k.Deployments()
if err != nil {
return []*models.K8sResource{}, err
return nil, err
}
return ds, nil
}
Expand All @@ -212,7 +220,7 @@ func GetDeploymentsModels(k RunningK8sData) ([]*models.K8sResource, error) {
func GetEventsModels(k RunningK8sData) ([]*models.K8sResource, error) {
events, err := k.Events()
if err != nil {
return []*models.K8sResource{}, err
return nil, err
}
return events, nil
}
Expand All @@ -221,7 +229,7 @@ func GetEventsModels(k RunningK8sData) ([]*models.K8sResource, error) {
func GetDaemonSetsModels(k RunningK8sData) ([]*models.K8sResource, error) {
ds, err := k.DaemonSets()
if err != nil {
return []*models.K8sResource{}, err
return nil, err
}
return ds, nil
}
Expand All @@ -230,7 +238,7 @@ func GetDaemonSetsModels(k RunningK8sData) ([]*models.K8sResource, error) {
func GetReplicaSetsModels(k RunningK8sData) ([]*models.K8sResource, error) {
rs, err := k.ReplicaSets()
if err != nil {
return []*models.K8sResource{}, err
return nil, err
}
return rs, nil
}
Expand All @@ -239,7 +247,7 @@ func GetReplicaSetsModels(k RunningK8sData) ([]*models.K8sResource, error) {
func GetReplicationControllersModels(k RunningK8sData) ([]*models.K8sResource, error) {
rcs, err := k.ReplicationControllers()
if err != nil {
return []*models.K8sResource{}, err
return nil, err
}
return rcs, nil
}
Expand Down