Skip to content

Commit

Permalink
Merge pull request #232 from eschizoid/feature/lambda-token
Browse files Browse the repository at this point in the history
Added slack for plex token
  • Loading branch information
eschizoid authored May 4, 2019
2 parents 1098e65 + 0cb068c commit 88ccd81
Show file tree
Hide file tree
Showing 5 changed files with 94 additions and 83 deletions.
37 changes: 24 additions & 13 deletions aws/lambda/admin/service.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ package main
import (
"context"
"encoding/json"

"fmt"
"io"
"io/ioutil"
Expand All @@ -14,6 +15,7 @@ import (
"github.com/eschizoid/flixctl/aws/lambda/admin/constants"
"github.com/eschizoid/flixctl/aws/lambda/models"
"github.com/eschizoid/flixctl/aws/s3"
auth "github.com/eschizoid/flixctl/cmd/auth"
"github.com/eschizoid/flixctl/worker"
"golang.org/x/crypto/ssh"
)
Expand All @@ -40,18 +42,21 @@ func executeAdminCommand(evt json.RawMessage) {
defer conn.Close()
var tasks []worker.TaskFunction
switch input.Argument {
case "renew-certs":
case "oauth-token":
fmt.Printf("Executing %s command \n", input.Argument)
for _, command := range constants.RenewCertsCommands {
runCommand(command, conn)
message := fmt.Sprintf("Succesfully executed oauth-tokens")
commandTask := func() interface{} {
auth.GetOauthToke()
return message
}
asyncCommandExecution(append(tasks, commandTask))
fmt.Printf("Succesfully executed %s \n", input.Argument)
case "restart-services":
case "purge-slack":
fmt.Printf("Executing %s command \n", input.Argument)
services := []string{"httpd", "jackett", "nzbget", "ombi", "plexmediaserver", "radarr", "sonarr", "s3fs", "tautulli", "transmission-daemon"}
for _, service := range services {
command := fmt.Sprintf(constants.RestartServicesCommand, service)
message := fmt.Sprintf("Succesfully restarted service %s", service)
slackChannels := []string{"monitoring", "new-releases", "requests", "travis"}
for _, channel := range slackChannels {
command := fmt.Sprintf(constants.SlackCleanerCommand, os.Getenv("SLACK_LEGACY_TOKEN"), channel)
message := fmt.Sprintf("Succesfully purged slack channel %s", channel)
commandTask := func() interface{} {
runCommand(command, conn)
return message
Expand All @@ -60,12 +65,18 @@ func executeAdminCommand(evt json.RawMessage) {
}
asyncCommandExecution(tasks)
fmt.Printf("Succesfully executed %s \n", input.Argument)
case "purge-slack":
case "renew-certs":
fmt.Printf("Executing %s command \n", input.Argument)
slackChannels := []string{"monitoring", "new-releases", "requests", "travis"}
for _, channel := range slackChannels {
command := fmt.Sprintf(constants.SlackCleanerCommand, os.Getenv("SLACK_LEGACY_TOKEN"), channel)
message := fmt.Sprintf("Succesfully purged slack channel %s", channel)
for _, command := range constants.RenewCertsCommands {
runCommand(command, conn)
}
fmt.Printf("Succesfully executed %s \n", input.Argument)
case "restart-services":
fmt.Printf("Executing %s command \n", input.Argument)
services := []string{"httpd", "jackett", "nzbget", "ombi", "plexmediaserver", "radarr", "sonarr", "s3fs", "tautulli", "transmission-daemon"}
for _, service := range services {
command := fmt.Sprintf(constants.RestartServicesCommand, service)
message := fmt.Sprintf("Succesfully restarted service %s", service)
commandTask := func() interface{} {
runCommand(command, conn)
return message
Expand Down
42 changes: 23 additions & 19 deletions cmd/auth/token.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,24 +18,28 @@ var TokenCmd = &cobra.Command{
Short: "To Get An Oauth Token",
Long: "to get an oauth token for a given client id",
Run: func(cmd *cobra.Command, args []string) {
var awsSession = sess.Must(sess.NewSessionWithOptions(sess.Options{
SharedConfigState: sess.SharedConfigEnable,
}))
awsSession.Config.Endpoint = aws.String(os.Getenv("DYNAMODB_ENDPOINT"))
svc := dynamodb.New(awsSession)
if resp, err := slack.GetOAuthResponse(slackClientID, slackClientSecret, slackCode, slackRedirectURI, true); err != nil {
m := make(map[string]string)
m["slack_oauth_token_saved"] = "false"
jsonString, _ := json.Marshal(m)
fmt.Println("\n" + string(jsonString))
} else {
if err := slackService.SaveToken(slackClientID, resp.AccessToken, svc); err != nil {
ShowError(err)
}
m := make(map[string]string)
m["slack_oauth_token_saved"] = "true"
jsonString, _ := json.Marshal(m)
fmt.Println("\n" + string(jsonString))
}
GetOauthToke()
},
}

func GetOauthToke() {
var awsSession = sess.Must(sess.NewSessionWithOptions(sess.Options{
SharedConfigState: sess.SharedConfigEnable,
}))
awsSession.Config.Endpoint = aws.String(os.Getenv("DYNAMODB_ENDPOINT"))
svc := dynamodb.New(awsSession)
if resp, err := slack.GetOAuthResponse(slackClientID, slackClientSecret, slackCode, slackRedirectURI, true); err != nil {
m := make(map[string]string)
m["slack_oauth_token_saved"] = "false"
jsonString, _ := json.Marshal(m)
fmt.Println("\n" + string(jsonString))
} else {
if err := slackService.SaveToken(slackClientID, resp.AccessToken, svc); err != nil {
ShowError(err)
}
m := make(map[string]string)
m["slack_oauth_token_saved"] = "true"
jsonString, _ := json.Marshal(m)
fmt.Println("\n" + string(jsonString))
}
}
19 changes: 0 additions & 19 deletions infrastructure/hooks/hooks.json
Original file line number Diff line number Diff line change
Expand Up @@ -379,24 +379,5 @@
}
}
}
},
{
"id": "auth",
"execute-command": "/opt/webhook-linux-amd64/auth.sh",
"include-command-output-in-response": true,
"command-working-directory": "/home/webhook/go/bin",
"pass-arguments-to-command": [
{
"source": "string",
"name": "token"
}
],
"pass-environment-to-command": [
{
"source": "url",
"name": "code",
"envname": "SLACK_CODE"
}
]
}
]
37 changes: 24 additions & 13 deletions vendor/github.com/eschizoid/flixctl/aws/lambda/admin/service.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

42 changes: 23 additions & 19 deletions vendor/github.com/eschizoid/flixctl/cmd/auth/token.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

0 comments on commit 88ccd81

Please sign in to comment.