Skip to content
Open
11 changes: 6 additions & 5 deletions pkg/api/mockhttpclient.go
Original file line number Diff line number Diff line change
Expand Up @@ -26,10 +26,11 @@ type MockHTTPClient struct {

// MockResponse - use for mocking the MockHTTPClient responses
type MockResponse struct {
FileName string
RespData string
RespCode int
ErrString string
FileName string
RespData string
RespCode int
RespHeaders map[string][]string
ErrString string
}

// SetResponse -
Expand Down Expand Up @@ -122,7 +123,7 @@ func (c *MockHTTPClient) sendMultiple(request Request) (*Response, error) {
response := Response{
Code: c.Responses[c.RespCount].RespCode,
Body: dat,
Headers: map[string][]string{},
Headers: c.Responses[c.RespCount].RespHeaders,
}

if c.Responses[c.RespCount].ErrString != "" {
Expand Down
26 changes: 19 additions & 7 deletions pkg/apic/apiservice.go
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,16 @@ func (c *ServiceClient) getOwnerObject(serviceBody *ServiceBody, warning bool) (
return nil, nil
}

func (c *ServiceClient) setSpecHashesOnServiceBody(serviceBody *ServiceBody, svc apiv1.Interface) {
agentDetails := util.GetAgentDetails(svc)
if revDetails, found := agentDetails[specHashes]; found {
if specHashes, ok := revDetails.(map[string]interface{}); ok {
serviceBody.specHashes = util.MapStringInterfaceToStringString(specHashes)
}
}

}

func (c *ServiceClient) updateAPIService(serviceBody *ServiceBody, svc *management.APIService) {
owner, ownerErr := c.getOwnerObject(serviceBody, true)

Expand All @@ -100,11 +110,7 @@ func (c *ServiceClient) updateAPIService(serviceBody *ServiceBody, svc *manageme
util.SetAgentDetails(svc, newSVCDetails)

// get the specHashes from the existing service
if revDetails, found := newSVCDetails[specHashes]; found {
if specHashes, ok := revDetails.(map[string]interface{}); ok {
serviceBody.specHashes = specHashes
}
}
c.setSpecHashesOnServiceBody(serviceBody, svc)

if serviceBody.Image != "" {
svc.Spec.Icon = management.ApiServiceSpecIcon{
Expand Down Expand Up @@ -185,15 +191,21 @@ func (c *ServiceClient) processService(serviceBody *ServiceBody) (*management.AP
serviceURL := c.cfg.GetServicesURL()
httpMethod := http.MethodPost
serviceBody.serviceContext.serviceAction = addAPI
serviceBody.specHashes = map[string]interface{}{}
serviceBody.specHashes = map[string]string{}

// If service exists, update existing service
svc, err := c.getAPIServiceFromCache(serviceBody)
if err != nil {
return nil, err
}

if svc != nil {
if svc != nil && serviceBody.IsRevisionOnly() {
serviceBody.serviceContext.serviceAction = updateAPI
serviceBody.serviceContext.serviceName = svc.Name
serviceBody.serviceContext.serviceID = svc.Metadata.ID
c.setSpecHashesOnServiceBody(serviceBody, svc)
return svc, nil
} else if svc != nil {
serviceBody.serviceContext.serviceAction = updateAPI
httpMethod = http.MethodPut
serviceURL += "/" + svc.Name
Expand Down
Loading
Loading