Skip to content
Snippets Groups Projects
Commit c8f47fc0 authored by Malte Bauch's avatar Malte Bauch
Browse files

All suggestions get functions are provided with deadline context

Interrupt is not possible, since Keypresses are only executed after the
specific functions has finished. os.Interrupt is not possible aswell,
since it also triggers the handleSignals go routine within go-prompt and
therefore shuts down the whole program.
parent 9603a4c7
Branches
Tags
1 merge request!548Draft: Resolve "Deadline and Cancellation for gRPC calls"
Pipeline #161109 passed with warnings
...@@ -346,8 +346,7 @@ func completionBasedOnCmd(c *PromptCompleter, cmd *cobra.Command, inputSplit []s ...@@ -346,8 +346,7 @@ func completionBasedOnCmd(c *PromptCompleter, cmd *cobra.Command, inputSplit []s
func getNetworkElements() ([]prompt.Suggest, error) { func getNetworkElements() ([]prompt.Suggest, error) {
spinner, _ := pterm.DefaultSpinner.Start("Fetching Network Elements from controller.") spinner, _ := pterm.DefaultSpinner.Start("Fetching Network Elements from controller.")
// create a authorizedContext for further requests // create a authorizedContext for further requests
ctx, ctxCancelFn := createContextWithAuthorization() ctx, _ := createContextWithAuthorization()
startContextListener(ctx, ctxCancelFn)
resp, err := pndAdapter.GetFlattenedNetworkElements(ctx) resp, err := pndAdapter.GetFlattenedNetworkElements(ctx)
if err != nil { if err != nil {
spinner.Fail(err) spinner.Fail(err)
...@@ -365,8 +364,7 @@ func getNetworkElements() ([]prompt.Suggest, error) { ...@@ -365,8 +364,7 @@ func getNetworkElements() ([]prompt.Suggest, error) {
func getAvailablePlugins() ([]prompt.Suggest, error) { func getAvailablePlugins() ([]prompt.Suggest, error) {
spinner, _ := pterm.DefaultSpinner.Start("Fetching available plugins from controller.") spinner, _ := pterm.DefaultSpinner.Start("Fetching available plugins from controller.")
// create a authorizedContext for further requests // create a authorizedContext for further requests
ctx, ctxCancelFn := createContextWithAuthorization() ctx, _ := createContextWithAuthorization()
startContextListener(ctx, ctxCancelFn)
resp, err := pndAdapter.GetAvailablePlugins(ctx) resp, err := pndAdapter.GetAvailablePlugins(ctx)
if err != nil { if err != nil {
spinner.Fail(err) spinner.Fail(err)
...@@ -387,8 +385,7 @@ func getAvailablePlugins() ([]prompt.Suggest, error) { ...@@ -387,8 +385,7 @@ func getAvailablePlugins() ([]prompt.Suggest, error) {
func getSchemaTreeForNetworkElementID(id uuid.UUID) (map[string]*yang.Entry, error) { func getSchemaTreeForNetworkElementID(id uuid.UUID) (map[string]*yang.Entry, error) {
spinner, _ := pterm.DefaultSpinner.Start("Fetching schema tree for Device with ID: ", id) spinner, _ := pterm.DefaultSpinner.Start("Fetching schema tree for Device with ID: ", id)
// create a authorizedContext for further requests // create a authorizedContext for further requests
ctx, ctxCancelFn := createContextWithAuthorization() ctx, _ := createContextWithAuthorization()
startContextListener(ctx, ctxCancelFn)
networkElement, err := pndAdapter.GetFlattenedNetworkElement(ctx, id.String()) networkElement, err := pndAdapter.GetFlattenedNetworkElement(ctx, id.String())
if err != nil { if err != nil {
spinner.Fail(err) spinner.Fail(err)
...@@ -398,8 +395,7 @@ func getSchemaTreeForNetworkElementID(id uuid.UUID) (map[string]*yang.Entry, err ...@@ -398,8 +395,7 @@ func getSchemaTreeForNetworkElementID(id uuid.UUID) (map[string]*yang.Entry, err
pluginID := networkElement.GetMne().GetPluginid() pluginID := networkElement.GetMne().GetPluginid()
pluginUUID := uuid.MustParse(pluginID) pluginUUID := uuid.MustParse(pluginID)
// create a authorizedContext for further requests // create a authorizedContext for further requests
ctx, ctxCancelFn = createContextWithAuthorization() ctx, _ = createContextWithAuthorization()
startContextListener(ctx, ctxCancelFn)
schemaTree, err := pndAdapter.GetPluginSchemaTree(ctx, pluginUUID) schemaTree, err := pndAdapter.GetPluginSchemaTree(ctx, pluginUUID)
if err != nil { if err != nil {
spinner.Fail(err) spinner.Fail(err)
...@@ -415,8 +411,7 @@ func getSchemaTreeForNetworkElementID(id uuid.UUID) (map[string]*yang.Entry, err ...@@ -415,8 +411,7 @@ func getSchemaTreeForNetworkElementID(id uuid.UUID) (map[string]*yang.Entry, err
func getPnds() ([]prompt.Suggest, error) { func getPnds() ([]prompt.Suggest, error) {
spinner, _ := pterm.DefaultSpinner.Start("Fetching PNDs from controller.") spinner, _ := pterm.DefaultSpinner.Start("Fetching PNDs from controller.")
// create a authorizedContext for further requests // create a authorizedContext for further requests
ctx, ctxCancelFn := createContextWithAuthorization() ctx, _ := createContextWithAuthorization()
startContextListener(ctx, ctxCancelFn)
resp, err := api.GetIds(ctx, viper.GetString("controllerAPIEndpoint")) resp, err := api.GetIds(ctx, viper.GetString("controllerAPIEndpoint"))
if err != nil { if err != nil {
spinner.Fail(err) spinner.Fail(err)
...@@ -438,8 +433,7 @@ func getPnds() ([]prompt.Suggest, error) { ...@@ -438,8 +433,7 @@ func getPnds() ([]prompt.Suggest, error) {
func getPendingChanges() ([]prompt.Suggest, error) { func getPendingChanges() ([]prompt.Suggest, error) {
spinner, _ := pterm.DefaultSpinner.Start("Fetching committed changes.") spinner, _ := pterm.DefaultSpinner.Start("Fetching committed changes.")
// create a authorizedContext for further requests // create a authorizedContext for further requests
ctx, ctxCancelFn := createContextWithAuthorization() ctx, _ := createContextWithAuthorization()
startContextListener(ctx, ctxCancelFn)
resp, err := pndAdapter.PendingChanges(ctx) resp, err := pndAdapter.PendingChanges(ctx)
if err != nil { if err != nil {
spinner.Fail(err) spinner.Fail(err)
...@@ -461,8 +455,7 @@ func getPendingChanges() ([]prompt.Suggest, error) { ...@@ -461,8 +455,7 @@ func getPendingChanges() ([]prompt.Suggest, error) {
func getCommittedChanges() ([]prompt.Suggest, error) { func getCommittedChanges() ([]prompt.Suggest, error) {
spinner, _ := pterm.DefaultSpinner.Start("Fetching pending changes.") spinner, _ := pterm.DefaultSpinner.Start("Fetching pending changes.")
// create a authorizedContext for further requests // create a authorizedContext for further requests
ctx, ctxCancelFn := createContextWithAuthorization() ctx, _ := createContextWithAuthorization()
startContextListener(ctx, ctxCancelFn)
resp, err := pndAdapter.CommittedChanges(ctx) resp, err := pndAdapter.CommittedChanges(ctx)
if err != nil { if err != nil {
spinner.Fail(err) spinner.Fail(err)
......
...@@ -74,7 +74,7 @@ func sliceContains[T comparable](slice []T, toCompare T) bool { ...@@ -74,7 +74,7 @@ func sliceContains[T comparable](slice []T, toCompare T) bool {
func createContextWithAuthorization() (context.Context, context.CancelFunc) { func createContextWithAuthorization() (context.Context, context.CancelFunc) {
//TODO: try to get token string first, if "" return err, followed by print in cli about required login //TODO: try to get token string first, if "" return err, followed by print in cli about required login
md := metadata.Pairs("authorize", userToken) md := metadata.Pairs("authorize", userToken)
deadline := time.Now().Add(10 * time.Second) deadline := time.Now().Add(5 * time.Second)
c, cancel := context.WithDeadline(context.Background(), deadline) c, cancel := context.WithDeadline(context.Background(), deadline)
return metadata.NewOutgoingContext(c, md), cancel return metadata.NewOutgoingContext(c, md), cancel
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment