DCM E2E testing fixes 50/113450/6
authorIgor D.C <igor.duarte.cardoso@intel.com>
Fri, 2 Oct 2020 01:40:09 +0000 (01:40 +0000)
committerIgor D.C <igor.duarte.cardoso@intel.com>
Fri, 2 Oct 2020 23:24:52 +0000 (23:24 +0000)
A set of small fixes after discovery during DCM's end-to-end testing:
- properly detect that a cert hasn't been issued yet (don't crash)
- in Monitor, don't pass namespace when querying for CSRs
- fixed incorrect /kubeconfig file encoding from yaml to json

Issue-ID: MULTICLOUD-1143
Change-Id: Ie813e377070b0751f0bfdabac8da50e3288090de
Signed-off-by: Igor D.C <igor.duarte.cardoso@intel.com>
src/dcm/api/clusterHandler.go
src/dcm/pkg/module/cluster.go
src/monitor/pkg/controller/resourcebundlestate/controller.go

index 427a426..1201611 100644 (file)
@@ -190,10 +190,9 @@ func (h clusterHandler) getConfigHandler(w http.ResponseWriter, r *http.Request)
        project := vars["project-name"]
        logicalCloud := vars["logical-cloud-name"]
        name := vars["cluster-reference"]
-       var ret interface{}
        var err error
 
-       ret, err = h.client.GetCluster(project, logicalCloud, name)
+       _, err = h.client.GetCluster(project, logicalCloud, name)
        if err != nil {
                if err.Error() == "Cluster Reference does not exist" {
                        http.Error(w, err.Error(), http.StatusNotFound)
@@ -203,7 +202,7 @@ func (h clusterHandler) getConfigHandler(w http.ResponseWriter, r *http.Request)
                return
        }
 
-       ret, err = h.client.GetClusterConfig(project, logicalCloud, name)
+       cfg, err := h.client.GetClusterConfig(project, logicalCloud, name)
        if err != nil {
                if err.Error() == "The certificate for this cluster hasn't been issued yet. Please try later." {
                        http.Error(w, err.Error(), http.StatusAccepted)
@@ -217,7 +216,7 @@ func (h clusterHandler) getConfigHandler(w http.ResponseWriter, r *http.Request)
 
        w.Header().Set("Content-Type", "application/yaml")
        w.WriteHeader(http.StatusOK)
-       err = json.NewEncoder(w).Encode(ret)
+       _, err = io.WriteString(w, cfg)
        if err != nil {
                http.Error(w, err.Error(), http.StatusInternalServerError)
                return
index 253b37a..33de7ac 100644 (file)
@@ -315,6 +315,10 @@ func (v *ClusterClient) GetClusterConfig(project, logicalCloud, clusterReference
                        return "", pkgerrors.Wrap(err, "An error occurred while parsing the cluster status.")
                }
 
+               if len(rbstatus.CsrStatuses) == 0 {
+                       return "", pkgerrors.New("The certificate for this cluster hasn't been issued yet. Please try later.")
+               }
+
                // validate that we indeed obtained a certificate before persisting it in the database:
                approved := false
                for _, c := range rbstatus.CsrStatuses[0].Status.Conditions {
index 5351ea9..c269555 100644 (file)
@@ -365,7 +365,7 @@ func (r *reconciler) updateCsrs(rbstate *v1alpha1.ResourceBundleState,
 
        // Update the CR with the csrs tracked
        csrList := &certsapi.CertificateSigningRequestList{}
-       err := listResources(r.client, rbstate.Namespace, selectors, csrList)
+       err := listResources(r.client, "", selectors, csrList)
        if err != nil {
                log.Printf("Failed to list csrs: %v", err)
                return err