-
Notifications
You must be signed in to change notification settings - Fork 42
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Signed-off-by: nagesh bansal <[email protected]>
- Loading branch information
1 parent
c5c9456
commit 62c3445
Showing
32 changed files
with
709 additions
and
687 deletions.
There are no files selected for viewing
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,93 @@ | ||
package environment | ||
|
||
import ( | ||
"encoding/json" | ||
"errors" | ||
models "github.com/litmuschaos/litmus/chaoscenter/graphql/server/graph/model" | ||
"github.com/litmuschaos/litmusctl/pkg/apis" | ||
"github.com/litmuschaos/litmusctl/pkg/types" | ||
"github.com/litmuschaos/litmusctl/pkg/utils" | ||
"io/ioutil" | ||
"net/http" | ||
) | ||
|
||
// ConnectEnvironment connects the Infra with the given details | ||
func ConnectEnvironment(pid string, request models.CreateEnvironmentRequest, cred types.Credentials) (CreateEnvironmentResponse, error) { | ||
var gqlReq CreateEnvironmentGQLRequest | ||
gqlReq.Query = CreateEnvironmentQuery | ||
gqlReq.Variables.ProjectId = pid | ||
gqlReq.Variables.Request = request | ||
|
||
query, err := json.Marshal(gqlReq) | ||
resp, err := apis.SendRequest(apis.SendRequestParams{Endpoint: cred.Endpoint + utils.GQLAPIPath, Token: cred.Token}, query, string(types.Post)) | ||
if err != nil { | ||
return CreateEnvironmentResponse{}, errors.New("Error in registering Chaos Infrastructure: " + err.Error()) | ||
} | ||
|
||
bodyBytes, err := ioutil.ReadAll(resp.Body) | ||
defer resp.Body.Close() | ||
if err != nil { | ||
return CreateEnvironmentResponse{}, errors.New("Error in registering Chaos Infrastructure: " + err.Error()) | ||
} | ||
|
||
if resp.StatusCode == http.StatusOK { | ||
var connectEnvironment CreateEnvironmentResponse | ||
err = json.Unmarshal(bodyBytes, &connectEnvironment) | ||
if err != nil { | ||
return CreateEnvironmentResponse{}, errors.New("Error in registering Chaos Infrastructure: " + err.Error()) | ||
} | ||
|
||
if len(connectEnvironment.Errors) > 0 { | ||
return CreateEnvironmentResponse{}, errors.New(connectEnvironment.Errors[0].Message) | ||
} | ||
return connectEnvironment, nil | ||
} else { | ||
return CreateEnvironmentResponse{}, err | ||
} | ||
} | ||
|
||
func GetEnvironmentList(pid string, cred types.Credentials) (ListEnvironmentData, error) { | ||
var err error | ||
var gqlReq CreateEnvironmentListGQLRequest | ||
gqlReq.Query = ListEnvironmentQuery | ||
|
||
gqlReq.Variables.Request = models.ListEnvironmentRequest{} | ||
gqlReq.Variables.ProjectID = pid | ||
query, err := json.Marshal(gqlReq) | ||
if err != nil { | ||
return ListEnvironmentData{}, err | ||
} | ||
|
||
resp, err := apis.SendRequest( | ||
apis.SendRequestParams{ | ||
Endpoint: cred.Endpoint + utils.GQLAPIPath, | ||
Token: cred.Token, | ||
}, | ||
query, | ||
string(types.Post), | ||
) | ||
|
||
if err != nil { | ||
return ListEnvironmentData{}, errors.New("Error in Getting Chaos Environment List: " + err.Error()) | ||
} | ||
|
||
bodyBytes, err := ioutil.ReadAll(resp.Body) | ||
defer resp.Body.Close() | ||
if err != nil { | ||
return ListEnvironmentData{}, errors.New("Error in Getting Chaos Environment List: " + err.Error()) | ||
} | ||
|
||
if resp.StatusCode == http.StatusOK { | ||
var listEnvironment ListEnvironmentData | ||
err = json.Unmarshal(bodyBytes, &listEnvironment) | ||
if err != nil { | ||
return ListEnvironmentData{}, errors.New("Error in Getting Chaos Environment List: " + err.Error()) | ||
} | ||
if len(listEnvironment.Errors) > 0 { | ||
return ListEnvironmentData{}, errors.New(listEnvironment.Errors[0].Message) | ||
} | ||
return listEnvironment, nil | ||
} else { | ||
return ListEnvironmentData{}, err | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
package environment | ||
|
||
const ( | ||
CreateEnvironmentQuery = `mutation createEnvironment($projectID: ID!, $request: CreateEnvironmentRequest!) { | ||
createEnvironment( | ||
projectID: $projectID | ||
request: $request | ||
) { | ||
environmentID | ||
name | ||
} | ||
} | ||
` | ||
ListEnvironmentQuery = `query listEnvironments($projectID: ID!, $request: ListEnvironmentRequest) { | ||
listEnvironments(projectID: $projectID,request: $request){ | ||
environments { | ||
environmentID | ||
} | ||
} | ||
}` | ||
) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,43 @@ | ||
package environment | ||
|
||
import models "github.com/litmuschaos/litmus/chaoscenter/graphql/server/graph/model" | ||
|
||
type CreateEnvironmentGQLRequest struct { | ||
Query string `json:"query"` | ||
Variables struct { | ||
ProjectId string `json:"projectID"` | ||
Request models.CreateEnvironmentRequest `json:"request"` | ||
} `json:"variables"` | ||
} | ||
|
||
type CreateEnvironmentResponse struct { | ||
Data CreateEnvironmentData `json:"data"` | ||
Errors []struct { | ||
Message string `json:"message"` | ||
Path []string `json:"path"` | ||
} `json:"errors"` | ||
} | ||
|
||
type CreateEnvironmentData struct { | ||
EnvironmentDetails models.Environment `json:"createEnvironment"` | ||
} | ||
|
||
type ListEnvironmentData struct { | ||
Errors []struct { | ||
Message string `json:"message"` | ||
Path []string `json:"path"` | ||
} `json:"errors"` | ||
Data EnvironmentsList `json:"data"` | ||
} | ||
|
||
type EnvironmentsList struct { | ||
ListEnvironmentDetails models.ListEnvironmentResponse `json:"listEnvironments"` | ||
} | ||
|
||
type CreateEnvironmentListGQLRequest struct { | ||
Query string `json:"query"` | ||
Variables struct { | ||
ProjectID string `json:"projectID"` | ||
Request models.ListEnvironmentRequest `json:"request"` | ||
} | ||
} |
Oops, something went wrong.