Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
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
16 changes: 9 additions & 7 deletions cnm/ipam/ipam.go
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,8 @@ const (
// Plugin capabilities reported to libnetwork.
requiresMACAddress = false
requiresRequestReplay = false
returnCode = 0
returnStr = "Success"
)

// IpamPlugin represents a CNM (libnetwork) IPAM plugin.
Expand Down Expand Up @@ -118,7 +120,7 @@ func (plugin *ipamPlugin) getCapabilities(w http.ResponseWriter, r *http.Request

err := plugin.Listener.Encode(w, &resp)

log.Response(plugin.Name, &resp, err)
log.Response(plugin.Name, &resp, returnCode, returnStr, err)
}

// Handles GetDefaultAddressSpaces requests.
Expand All @@ -135,7 +137,7 @@ func (plugin *ipamPlugin) getDefaultAddressSpaces(w http.ResponseWriter, r *http

err := plugin.Listener.Encode(w, &resp)

log.Response(plugin.Name, &resp, err)
log.Response(plugin.Name, &resp, returnCode, returnStr, err)
}

// Handles RequestPool requests.
Expand Down Expand Up @@ -163,7 +165,7 @@ func (plugin *ipamPlugin) requestPool(w http.ResponseWriter, r *http.Request) {

err = plugin.Listener.Encode(w, &resp)

log.Response(plugin.Name, &resp, err)
log.Response(plugin.Name, &resp, returnCode, returnStr, err)
}

// Handles ReleasePool requests.
Expand Down Expand Up @@ -195,7 +197,7 @@ func (plugin *ipamPlugin) releasePool(w http.ResponseWriter, r *http.Request) {

err = plugin.Listener.Encode(w, &resp)

log.Response(plugin.Name, &resp, err)
log.Response(plugin.Name, &resp, returnCode, returnStr, err)
}

// Handles GetPoolInfo requests.
Expand Down Expand Up @@ -234,7 +236,7 @@ func (plugin *ipamPlugin) getPoolInfo(w http.ResponseWriter, r *http.Request) {

err = plugin.Listener.Encode(w, &resp)

log.Response(plugin.Name, &resp, err)
log.Response(plugin.Name, &resp, returnCode, returnStr, err)
}

// Handles RequestAddress requests.
Expand Down Expand Up @@ -275,7 +277,7 @@ func (plugin *ipamPlugin) requestAddress(w http.ResponseWriter, r *http.Request)

err = plugin.Listener.Encode(w, &resp)

log.Response(plugin.Name, &resp, err)
log.Response(plugin.Name, &resp, returnCode, returnStr, err)
}

// Handles ReleaseAddress requests.
Expand Down Expand Up @@ -307,5 +309,5 @@ func (plugin *ipamPlugin) releaseAddress(w http.ResponseWriter, r *http.Request)

err = plugin.Listener.Encode(w, &resp)

log.Response(plugin.Name, &resp, err)
log.Response(plugin.Name, &resp, returnCode, returnStr, err)
}
18 changes: 10 additions & 8 deletions cnm/network/network.go
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,8 @@ const (

// Prefix for container network interface names.
containerInterfacePrefix = "eth"
returnCode = 0
returnStr = "Success"
)

// NetPlugin represents a CNM (libnetwork) network plugin.
Expand Down Expand Up @@ -121,7 +123,7 @@ func (plugin *netPlugin) getCapabilities(w http.ResponseWriter, r *http.Request)
resp := getCapabilitiesResponse{Scope: plugin.scope}
err := plugin.Listener.Encode(w, &resp)

log.Response(plugin.Name, &resp, err)
log.Response(plugin.Name, &resp, returnCode, returnStr, err)
}

// Handles CreateNetwork requests.
Expand Down Expand Up @@ -175,7 +177,7 @@ func (plugin *netPlugin) createNetwork(w http.ResponseWriter, r *http.Request) {
resp := createNetworkResponse{}
err = plugin.Listener.Encode(w, &resp)

log.Response(plugin.Name, &resp, err)
log.Response(plugin.Name, &resp, returnCode, returnStr, err)
}

// Handles DeleteNetwork requests.
Expand All @@ -200,7 +202,7 @@ func (plugin *netPlugin) deleteNetwork(w http.ResponseWriter, r *http.Request) {
resp := deleteNetworkResponse{}
err = plugin.Listener.Encode(w, &resp)

log.Response(plugin.Name, &resp, err)
log.Response(plugin.Name, &resp, returnCode, returnStr, err)
}

// Handles CreateEndpoint requests.
Expand Down Expand Up @@ -244,7 +246,7 @@ func (plugin *netPlugin) createEndpoint(w http.ResponseWriter, r *http.Request)

err = plugin.Listener.Encode(w, &resp)

log.Response(plugin.Name, &resp, err)
log.Response(plugin.Name, &resp, returnCode, returnStr, err)
}

// Handles DeleteEndpoint requests.
Expand All @@ -269,7 +271,7 @@ func (plugin *netPlugin) deleteEndpoint(w http.ResponseWriter, r *http.Request)
resp := deleteEndpointResponse{}
err = plugin.Listener.Encode(w, &resp)

log.Response(plugin.Name, &resp, err)
log.Response(plugin.Name, &resp, returnCode, returnStr, err)
}

// Handles Join requests.
Expand Down Expand Up @@ -303,7 +305,7 @@ func (plugin *netPlugin) join(w http.ResponseWriter, r *http.Request) {

err = plugin.Listener.Encode(w, &resp)

log.Response(plugin.Name, &resp, err)
log.Response(plugin.Name, &resp, returnCode, returnStr, err)
}

// Handles Leave requests.
Expand All @@ -328,7 +330,7 @@ func (plugin *netPlugin) leave(w http.ResponseWriter, r *http.Request) {
resp := leaveResponse{}
err = plugin.Listener.Encode(w, &resp)

log.Response(plugin.Name, &resp, err)
log.Response(plugin.Name, &resp, returnCode, returnStr, err)
}

// Handles EndpointOperInfo requests.
Expand All @@ -353,5 +355,5 @@ func (plugin *netPlugin) endpointOperInfo(w http.ResponseWriter, r *http.Request
resp := endpointOperInfoResponse{Value: epInfo.Data}
err = plugin.Listener.Encode(w, &resp)

log.Response(plugin.Name, &resp, err)
log.Response(plugin.Name, &resp, returnCode, returnStr, err)
}
4 changes: 2 additions & 2 deletions cnm/plugin.go
Original file line number Diff line number Diff line change
Expand Up @@ -124,13 +124,13 @@ func (plugin *Plugin) activate(w http.ResponseWriter, r *http.Request) {
resp := ActivateResponse{Implements: plugin.Listener.GetEndpoints()}
err := plugin.Listener.Encode(w, &resp)

log.Response(plugin.Name, &resp, err)
log.Response(plugin.Name, &resp, 0, "Success", err)
}

// SendErrorResponse sends and logs an error response.
func (plugin *Plugin) SendErrorResponse(w http.ResponseWriter, errMsg error) {
resp := errorResponse{errMsg.Error()}
err := plugin.Listener.Encode(w, &resp)

log.Response(plugin.Name, &resp, err)
log.Response(plugin.Name, &resp, 0, "Success", err)
}
1 change: 1 addition & 0 deletions cns/NetworkContainerContract.go
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,7 @@ type Route struct {
// SetOrchestratorTypeRequest specifies the orchestrator type for the node.
type SetOrchestratorTypeRequest struct {
OrchestratorType string
DncPartitionKey string
}

// CreateNetworkContainerResponse specifies response of creating a network container.
Expand Down
10 changes: 5 additions & 5 deletions cns/cnsclient/cnsclient.go
Original file line number Diff line number Diff line change
Expand Up @@ -44,34 +44,34 @@ func (cnsClient *CNSClient) GetNetworkConfiguration(orchestratorContext []byte)

err := json.NewEncoder(&body).Encode(payload)
if err != nil {
log.Printf("encoding json failed with %v", err)
log.Errorf("encoding json failed with %v", err)
return nil, err
}

res, err := httpc.Post(url, "application/json", &body)
if err != nil {
log.Printf("[Azure CNSClient] HTTP Post returned error %v", err.Error())
log.Errorf("[Azure CNSClient] HTTP Post returned error %v", err.Error())
return nil, err
}

defer res.Body.Close()

if res.StatusCode != http.StatusOK {
errMsg := fmt.Sprintf("[Azure CNSClient] GetNetworkConfiguration invalid http status code: %v", res.StatusCode)
log.Printf(errMsg)
log.Errorf(errMsg)
return nil, fmt.Errorf(errMsg)
}

var resp cns.GetNetworkContainerResponse

err = json.NewDecoder(res.Body).Decode(&resp)
if err != nil {
log.Printf("[Azure CNSClient] Error received while parsing GetNetworkConfiguration response resp:%v err:%v", res.Body, err.Error())
log.Errorf("[Azure CNSClient] Error received while parsing GetNetworkConfiguration response resp:%v err:%v", res.Body, err.Error())
return nil, err
}

if resp.Response.ReturnCode != 0 {
log.Printf("[Azure CNSClient] GetNetworkConfiguration received error response :%v", resp.Response.Message)
log.Errorf("[Azure CNSClient] GetNetworkConfiguration received error response :%v", resp.Response.Message)
return nil, fmt.Errorf(resp.Response.Message)
}

Expand Down
4 changes: 2 additions & 2 deletions cns/dockerclient/dockerclient.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,9 @@ import (
"fmt"
"net/http"

"github.com/Azure/azure-container-networking/platform"
"github.com/Azure/azure-container-networking/cns/imdsclient"
"github.com/Azure/azure-container-networking/log"
"github.com/Azure/azure-container-networking/platform"
)

const (
Expand Down Expand Up @@ -51,7 +51,7 @@ func (dockerClient *DockerClient) NetworkExists(networkName string) error {
dockerClient.connectionURL + inspectNetworkPath + networkName)

if err != nil {
log.Printf("[Azure CNS] Error received from http Post for docker network inspect %v %v", networkName, err.Error())
log.Errorf("[Azure CNS] Error received from http Post for docker network inspect %v %v", networkName, err.Error())
return err
}

Expand Down
39 changes: 39 additions & 0 deletions cns/restserver/api.go
Original file line number Diff line number Diff line change
Expand Up @@ -22,3 +22,42 @@ const (
UnsupportedOrchestratorType = 19
UnexpectedError = 99
)

func ReturnCodeToString(returnCode int) (s string) {
switch returnCode {
case Success:
s = "Success"
case UnsupportedNetworkType:
s = "UnsupportedNetworkType"
case InvalidParameter:
s = "InvalidParameter"
case UnreachableHost:
s = "UnreachableHost"
case ReservationNotFound:
s = "ReservationNotFound"
case MalformedSubnet:
s = "MalformedSubnet"
case UnreachableDockerDaemon:
s = "UnreachableDockerDaemon"
case UnspecifiedNetworkName:
s = "UnspecifiedNetworkName"
case NotFound:
s = "NotFound"
case AddressUnavailable:
s = "AddressUnavailable"
case NetworkContainerNotSpecified:
s = "NetworkContainerNotSpecified"
case CallToHostFailed:
s = "CallToHostFailed"
case UnknownContainerID:
s = "UnknownContainerID"
case UnsupportedOrchestratorType:
s = "UnsupportedOrchestratorType"
case UnexpectedError:
s = "UnexpectedError"
default:
s = "UnknownError"
}

return
}
Loading