Skip to content
Snippets Groups Projects
Commit ffa80091 authored by Florent Gluck's avatar Florent Gluck
Browse files

Ongoing work on ticket #123: Update/cleanup code to only use shared structures...

Ongoing work on ticket #123: Update/cleanup code to only use shared structures for serialized objects
parent c8383a66
Branches
No related tags found
No related merge requests found
......@@ -3,6 +3,7 @@ package cmdLogin
import (
"syscall"
"golang.org/x/term"
"nexus-common/params"
u "nexus-client/utils"
g "nexus-client/globals"
)
......@@ -100,12 +101,7 @@ func GetToken(user, pwd string) (string, error) {
client := g.GetInstance().Client
host := g.GetInstance().Host
type LoginArgs struct {
Email string
Pwd string
}
loginArgs := &LoginArgs {user, pwd}
loginArgs := &params.Login {user, pwd}
resp, err := client.R().SetBody(loginArgs).Post(host+"/login")
if err != nil {
return "", err
......
......@@ -7,6 +7,8 @@ import (
"strings"
"net/mail"
"encoding/csv"
"nexus-common/caps"
"nexus-common/params"
u "nexus-client/utils"
g "nexus-client/globals"
)
......@@ -41,10 +43,6 @@ func (cmd *AddAccess)PrintUsage() {
printRegexUsageDetails()
}
type vmAccessForUserCaps struct {
Access map[string]int `json:"access" validate:"required"`
}
func (cmd *AddAccess)Run(args []string) int {
argc := len(args)
if argc < 1 {
......@@ -97,12 +95,12 @@ func (cmd *AddAccess)Run(args []string) int {
continue
}
vmAccessCaps := &vmAccessForUserCaps { make(map[string]int) }
vmAccessCaps := &params.VMAddAccess { make(caps.Capabilities) }
capsStr := strings.TrimSpace(columns[2])
if len(capsStr) > 0 {
caps := strings.Split(capsStr, " ")
for _, cap := range caps {
capabilities := strings.Split(capsStr, " ")
for _, cap := range capabilities {
vmAccessCaps.Access[cap] = 1
}
}
......@@ -117,7 +115,7 @@ func (cmd *AddAccess)Run(args []string) int {
} else {
// Multiple arguments: not a CSV file
email, caps, patterns, err := cmd.parseArgs(args)
email, capabilities, patterns, err := cmd.parseArgs(args)
if err != nil {
u.PrintlnErr(err.Error())
return 1
......@@ -134,8 +132,8 @@ func (cmd *AddAccess)Run(args []string) int {
return 1
}
vmAccessCaps := &vmAccessForUserCaps { make(map[string]int) }
for _, cap := range caps {
vmAccessCaps := &params.VMAddAccess { make(caps.Capabilities) }
for _, cap := range capabilities {
vmAccessCaps.Access[cap] = 1
}
......@@ -154,7 +152,7 @@ func (cmd *AddAccess)Run(args []string) int {
return statusCode
}
func (cmd *AddAccess)runRequest(vmID, vmName, email string, vmAccessCaps *vmAccessForUserCaps) error {
func (cmd *AddAccess)runRequest(vmID, vmName, email string, vmAccessCaps *params.VMAddAccess) error {
client := g.GetInstance().Client
host := g.GetInstance().Host
......
......@@ -3,6 +3,7 @@ package cmdVM
import (
"fmt"
"strconv"
"nexus-common/params"
u "nexus-client/utils"
g "nexus-client/globals"
"nexus-common/vm"
......@@ -101,16 +102,7 @@ func (cmd *Create)Run(args []string) int {
// if csvFile == "" -> we must create count VMs
// otherwise -> we parse the CSV to know how many VMs to create
type VMArgs struct {
Name string
Cpus int
Ram int
Nic vm.NicType
UsbDevs []string
TemplateID uuid.UUID
}
vmArgs := &VMArgs {
vmArgs := &params.VMCreate {
Name: name,
Cpus: ncpus,
Ram: ram,
......
......@@ -3,6 +3,7 @@ package cmdVM
import (
"errors"
"strconv"
"nexus-common/params"
u "nexus-client/utils"
g "nexus-client/globals"
)
......@@ -74,12 +75,7 @@ func (cmd *StartWithCreds)Run(args []string) int {
statusCode := 0
type VMArgs struct {
Port int
Pwd string
}
vmArgs := &VMArgs {}
vmArgs := &params.VMStartWithCreds {}
for i, vmID := range(vmIDs) {
port, err := strconv.Atoi(ports[i])
......
package params
// These fields must match the ones in user.User
type Login struct {
Email string `json:"email" validate:"required,email"`
Pwd string `json:"pwd" validate:"required,min=8"`
}
......@@ -5,6 +5,7 @@ import (
"errors"
"net/http"
"nexus-server/users"
"nexus-common/params"
"golang.org/x/crypto/bcrypt"
"github.com/golang-jwt/jwt"
"github.com/labstack/echo/v4"
......@@ -29,12 +30,6 @@ type CustomClaims struct {
jwt.StandardClaims
}
// These fields must match the ones in user.User
type Credentials struct {
Email string `json:"email" validate:"required,email"`
Pwd string `json:"pwd" validate:"required,min=8"`
}
type Auth struct {
users *users.Users
tokenAccess middleware.JWTConfig
......@@ -81,7 +76,7 @@ func (auth *Auth)GetTokenAccess() middleware.JWTConfig {
// {"token":"<jwt token>"}
func (auth *Auth)Login(c echo.Context) error {
// Deserializes the JSON body and checks its validity.
reqUser := new(Credentials)
reqUser := new(params.Login)
if err := decodeJson(c, &reqUser); err != nil {
return echo.NewHTTPError(http.StatusInternalServerError, err.Error())
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment