|
@@ -9,10 +9,12 @@ import (
|
|
|
|
|
|
"github.com/google/uuid"
|
|
|
"github.com/gorilla/mux"
|
|
|
+ "github.com/gravitl/netmaker/db"
|
|
|
"github.com/gravitl/netmaker/logger"
|
|
|
"github.com/gravitl/netmaker/logic"
|
|
|
"github.com/gravitl/netmaker/models"
|
|
|
"github.com/gravitl/netmaker/mq"
|
|
|
+ "github.com/gravitl/netmaker/schema"
|
|
|
)
|
|
|
|
|
|
func aclHandlers(r *mux.Router) {
|
|
@@ -218,6 +220,35 @@ func getAcls(w http.ResponseWriter, r *http.Request) {
|
|
|
logic.ReturnSuccessResponseWithJson(w, r, acls, "fetched all acls in the network "+netID)
|
|
|
}
|
|
|
|
|
|
+// @Summary List Egress Acls in a network
|
|
|
+// @Router /api/v1/acls [get]
|
|
|
+// @Tags ACL
|
|
|
+// @Accept json
|
|
|
+// @Success 200 {array} models.SuccessResponse
|
|
|
+// @Failure 500 {object} models.ErrorResponse
|
|
|
+func getEgressAcls(w http.ResponseWriter, r *http.Request) {
|
|
|
+ eID := r.URL.Query().Get("egress_id")
|
|
|
+ if eID == "" {
|
|
|
+ logic.ReturnErrorResponse(w, r, logic.FormatError(errors.New("egress id param is missing"), "badrequest"))
|
|
|
+ return
|
|
|
+ }
|
|
|
+ e := schema.Egress{ID: eID}
|
|
|
+ // check if network exists
|
|
|
+ err := e.Get(db.WithContext(r.Context()))
|
|
|
+ if err != nil {
|
|
|
+ logic.ReturnErrorResponse(w, r, logic.FormatError(err, "badrequest"))
|
|
|
+ return
|
|
|
+ }
|
|
|
+ acls, err := logic.ListEgressAcls(eID)
|
|
|
+ if err != nil {
|
|
|
+ logger.Log(0, r.Header.Get("user"), "failed to get all network acl entries: ", err.Error())
|
|
|
+ logic.ReturnErrorResponse(w, r, logic.FormatError(err, "internal"))
|
|
|
+ return
|
|
|
+ }
|
|
|
+ logic.SortAclEntrys(acls[:])
|
|
|
+ logic.ReturnSuccessResponseWithJson(w, r, acls, "fetched acls for egress"+e.Name)
|
|
|
+}
|
|
|
+
|
|
|
// @Summary Create Acl
|
|
|
// @Router /api/v1/acls [post]
|
|
|
// @Tags ACL
|