INFRA-2828 : Drop unused tables, update migrations and removed unused code modules (#367)
This commit is contained in:
@@ -1,102 +0,0 @@
|
||||
package action
|
||||
|
||||
import (
|
||||
"github.com/slack-go/slack/socketmode"
|
||||
"go.uber.org/zap"
|
||||
"houston/internal/diagnostic"
|
||||
"houston/internal/diagnostic/models"
|
||||
)
|
||||
|
||||
type DiagnosticCommandActionHandler interface {
|
||||
HandleAction(e *socketmode.Event, alertname string) models.Runbook
|
||||
}
|
||||
|
||||
type HandlerData struct {
|
||||
logger *zap.Logger
|
||||
client *socketmode.Client
|
||||
repository *diagnostic.Repository
|
||||
}
|
||||
|
||||
type GrafanaActionHandler struct {
|
||||
grafanaHandlerData HandlerData
|
||||
}
|
||||
|
||||
type KibanaActionHandler struct {
|
||||
kibanaHandlerData HandlerData
|
||||
}
|
||||
|
||||
type DeploymentPortalHandler struct {
|
||||
deploymentPortalHandlerData HandlerData
|
||||
}
|
||||
|
||||
type DeploymentConfigHandler struct {
|
||||
deploymentConfigHandlerData HandlerData
|
||||
}
|
||||
|
||||
func NewGrafanaActionHandler(client *socketmode.Client, repository *diagnostic.Repository) *GrafanaActionHandler {
|
||||
return &GrafanaActionHandler{
|
||||
grafanaHandlerData: HandlerData{
|
||||
|
||||
client: client,
|
||||
repository: repository,
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
func NewKibanaActionHandler(client *socketmode.Client) *KibanaActionHandler {
|
||||
return &KibanaActionHandler{
|
||||
kibanaHandlerData: HandlerData{
|
||||
client: client,
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
func NewDeploymentPortalActionHandler(client *socketmode.Client, repository *diagnostic.Repository) *DeploymentPortalHandler {
|
||||
return &DeploymentPortalHandler{
|
||||
deploymentPortalHandlerData: HandlerData{
|
||||
|
||||
client: client,
|
||||
repository: repository,
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
func NewDeploymentConfigActionHandler(client *socketmode.Client, repository *diagnostic.Repository) *DeploymentConfigHandler {
|
||||
return &DeploymentConfigHandler{
|
||||
deploymentConfigHandlerData: HandlerData{
|
||||
|
||||
client: client,
|
||||
repository: repository,
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
func (gah *GrafanaActionHandler) HandleAction(e *socketmode.Event, alertName string) models.Runbook {
|
||||
imagePaths := diagnostic.TakeScreenshotAndUpload(gah.grafanaHandlerData.repository, alertName)
|
||||
var runbook models.Runbook
|
||||
runbook.ImagePaths = imagePaths
|
||||
return runbook
|
||||
}
|
||||
|
||||
func (kah *KibanaActionHandler) HandleAction(e *socketmode.Event, alertName string) models.Runbook {
|
||||
var runbook models.Runbook
|
||||
kibanaResponse := diagnostic.GetKibana()
|
||||
kibanaResponseArray := make([]string, 0)
|
||||
kibanaResponseArray = append(kibanaResponseArray, kibanaResponse)
|
||||
runbook.TextSnippets = kibanaResponseArray
|
||||
return runbook
|
||||
}
|
||||
|
||||
func (dph *DeploymentPortalHandler) HandleAction(e *socketmode.Event, alertName string) models.Runbook {
|
||||
var runbook models.Runbook
|
||||
deploymentDetails := diagnostic.DeploymentPortalHandler(dph.deploymentPortalHandlerData.repository, alertName)
|
||||
runbook.TextSnippets = deploymentDetails
|
||||
return runbook
|
||||
}
|
||||
|
||||
func (dph *DeploymentConfigHandler) HandleAction(e *socketmode.Event, alertName string) models.Runbook {
|
||||
var runbook models.Runbook
|
||||
configDiff := diagnostic.DeploymentConfigHandler(dph.deploymentConfigHandlerData.repository, alertName)
|
||||
runbook.TextSnippets = configDiff
|
||||
return runbook
|
||||
}
|
||||
@@ -2,16 +2,11 @@ package processor
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"github.com/slack-go/slack"
|
||||
"github.com/slack-go/slack/socketmode"
|
||||
"go.uber.org/zap"
|
||||
"houston/internal/diagnostic"
|
||||
"houston/internal/diagnostic/models"
|
||||
"houston/internal/processor/action"
|
||||
"houston/logger"
|
||||
"houston/pkg/slackbot"
|
||||
rcaService "houston/service/rca/impl"
|
||||
"strings"
|
||||
)
|
||||
|
||||
type CommandProcessor interface {
|
||||
@@ -23,24 +18,6 @@ type SlashCommandProcessor struct {
|
||||
slashCommandAction *action.HoustonCommandAction
|
||||
}
|
||||
|
||||
type DiagnosticCommandProcessor struct {
|
||||
logger *zap.Logger
|
||||
socketModeClient *socketmode.Client
|
||||
diagnosticCommandActions []action.DiagnosticCommandActionHandler
|
||||
}
|
||||
|
||||
func NewDiagnosticCommandProcessor(socketModeClient *socketmode.Client, repository *diagnostic.Repository) *DiagnosticCommandProcessor {
|
||||
return &DiagnosticCommandProcessor{
|
||||
socketModeClient: socketModeClient,
|
||||
diagnosticCommandActions: []action.DiagnosticCommandActionHandler{
|
||||
action.NewDeploymentConfigActionHandler(socketModeClient, repository),
|
||||
action.NewGrafanaActionHandler(socketModeClient, repository),
|
||||
//action.NewKibanaActionHandler(logger, socketModeClient),
|
||||
action.NewDeploymentPortalActionHandler(socketModeClient, repository),
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
func NewSlashCommandProcessor(
|
||||
socketModeClient *socketmode.Client,
|
||||
slackBot *slackbot.Client,
|
||||
@@ -61,50 +38,3 @@ func (scp *SlashCommandProcessor) ProcessSlashCommand(event *socketmode.Event) {
|
||||
|
||||
scp.slashCommandAction.PerformAction(event)
|
||||
}
|
||||
|
||||
func (dcp *DiagnosticCommandProcessor) ShouldProcessCommand(text string) bool {
|
||||
commands := strings.Split(text, " ")
|
||||
return len(commands) > 0 && commands[0] == "diagnose"
|
||||
}
|
||||
|
||||
func (dcp *DiagnosticCommandProcessor) ProcessSlashCommand(e *socketmode.Event) {
|
||||
dcp.socketModeClient.Ack(*e.Request, nil)
|
||||
|
||||
_, ok := e.Data.(slack.SlashCommand)
|
||||
if !ok {
|
||||
logger.Error("Unable to convert event to slash command", zap.Any("event", e))
|
||||
return
|
||||
}
|
||||
cmd := e.Data.(slack.SlashCommand)
|
||||
postAckMessage(&dcp.socketModeClient.Client, &cmd)
|
||||
commands := strings.Split(cmd.Text, " ")
|
||||
runbooks := make([]models.Runbook, 0)
|
||||
for _, actionHandler := range dcp.diagnosticCommandActions {
|
||||
runbooks = append(runbooks, actionHandler.HandleAction(e, commands[1]))
|
||||
}
|
||||
diagnosticDataAssembler := diagnostic.NewDiagnosticDataAssembler2()
|
||||
image, text := diagnosticDataAssembler.HandleData(runbooks)
|
||||
postDataOnSlack(&dcp.socketModeClient.Client, &cmd, &image, text)
|
||||
|
||||
logger.Error("S3 upload failed", zap.Any("error", e))
|
||||
}
|
||||
|
||||
func postDataOnSlack(api *slack.Client, sh *slack.SlashCommand, message *slack.MsgOption, attachments []slack.Attachment) {
|
||||
y, x, err := api.PostMessage(
|
||||
sh.ChannelID,
|
||||
*message,
|
||||
slack.MsgOptionAttachments(attachments...),
|
||||
)
|
||||
if err != nil {
|
||||
fmt.Printf("error occured %s", err)
|
||||
}
|
||||
fmt.Println(y, x)
|
||||
}
|
||||
|
||||
func postAckMessage(api *slack.Client, sh *slack.SlashCommand) {
|
||||
textBlock := slack.NewTextBlockObject("mrkdwn", fmt.Sprintf("Your request has been acknowledged for\n> %s", sh.Text), false, false)
|
||||
block := slack.NewSectionBlock(textBlock, nil, nil)
|
||||
var messageBlock slack.MsgOption
|
||||
messageBlock = slack.MsgOptionBlocks(block)
|
||||
postDataOnSlack(api, sh, &messageBlock, nil)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user