diff --git a/aws/lambda/admin/service.go b/aws/lambda/admin/service.go index 4585b5aa..e023514c 100644 --- a/aws/lambda/admin/service.go +++ b/aws/lambda/admin/service.go @@ -3,6 +3,7 @@ package main import ( "context" "encoding/json" + "fmt" "io" "io/ioutil" @@ -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" ) @@ -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 @@ -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 diff --git a/cmd/auth/token.go b/cmd/auth/token.go index b551ce5a..a915003b 100644 --- a/cmd/auth/token.go +++ b/cmd/auth/token.go @@ -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)) + } +} diff --git a/infrastructure/hooks/hooks.json b/infrastructure/hooks/hooks.json index 5e498092..fd53400d 100644 --- a/infrastructure/hooks/hooks.json +++ b/infrastructure/hooks/hooks.json @@ -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" - } - ] } ] diff --git a/vendor/github.com/eschizoid/flixctl/aws/lambda/admin/service.go b/vendor/github.com/eschizoid/flixctl/aws/lambda/admin/service.go index 4585b5aa..e023514c 100644 --- a/vendor/github.com/eschizoid/flixctl/aws/lambda/admin/service.go +++ b/vendor/github.com/eschizoid/flixctl/aws/lambda/admin/service.go @@ -3,6 +3,7 @@ package main import ( "context" "encoding/json" + "fmt" "io" "io/ioutil" @@ -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" ) @@ -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 @@ -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 diff --git a/vendor/github.com/eschizoid/flixctl/cmd/auth/token.go b/vendor/github.com/eschizoid/flixctl/cmd/auth/token.go index b551ce5a..a915003b 100644 --- a/vendor/github.com/eschizoid/flixctl/cmd/auth/token.go +++ b/vendor/github.com/eschizoid/flixctl/cmd/auth/token.go @@ -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)) + } +}