Class: Karafka::Web::Pro::Ui::Controllers::Consumers::Partitions::PausesController

Inherits:
BaseController show all
Defined in:
lib/karafka/web/pro/ui/controllers/consumers/partitions/pauses_controller.rb

Overview

Controller for managing partitions pauses in the context of the given consumer process

Constant Summary

Constants inherited from Ui::Controllers::BaseController

Ui::Controllers::BaseController::Models

Instance Attribute Summary

Attributes inherited from Ui::Controllers::BaseController

#params, #session

Instance Method Summary collapse

Methods inherited from ConsumersController

#details, #index, #performance, #subscriptions

Methods inherited from Ui::Controllers::BaseController

#cache, #initialize

Methods included from Ui::Controllers::Requests::Hookable

included, #run_after_hooks, #run_before_hooks

Constructor Details

This class inherits a constructor from Karafka::Web::Ui::Controllers::BaseController

Instance Method Details

#create(process_id, subscription_group_id, topic, partition_id) ⇒ Object

Parameters:

  • process_id (String)
  • subscription_group_id (String)
  • topic (String)
  • partition_id (Integer)


34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
# File 'lib/karafka/web/pro/ui/controllers/consumers/partitions/pauses_controller.rb', line 34

def create(process_id, subscription_group_id, topic, partition_id)
  new(process_id, subscription_group_id, topic, partition_id)

  Commanding::Dispatcher.request(
    Commanding::Commands::Partitions::Pause.name,
    process_id,
    {
      consumer_group_id: @consumer_group.id,
      subscription_group_id: @subscription_group.id,
      topic: topic,
      partition_id: partition_id,
      # User provides this in seconds, we operate on ms in the system
      duration: params.int(:duration) * 1_000,
      prevent_override: params.bool(:prevent_override)
    }
  )

  redirect(
    :previous,
    success: format_flash(
      'Initiated partition ? for ?#? (subscription group: ?)',
      'pause',
      topic,
      partition_id,
      subscription_group_id
    )
  )
end

#delete(process_id, subscription_group_id, topic, partition_id) ⇒ Object

Parameters:

  • process_id (String)
  • subscription_group_id (String)
  • topic (String)
  • partition_id (Integer)


77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
# File 'lib/karafka/web/pro/ui/controllers/consumers/partitions/pauses_controller.rb', line 77

def delete(process_id, subscription_group_id, topic, partition_id)
  new(process_id, subscription_group_id, topic, partition_id)

  Commanding::Dispatcher.request(
    Commanding::Commands::Partitions::Resume.name,
    process_id,
    {
      consumer_group_id: @consumer_group.id,
      subscription_group_id: @subscription_group.id,
      topic: topic,
      partition_id: partition_id,
      reset_attempts: params.bool(:reset_attempts)
    }
  )

  redirect(
    :previous,
    success: format_flash(
      'Initiated partition ? for ?#? (subscription group: ?)',
      'resume',
      topic,
      partition_id,
      subscription_group_id
    )
  )
end

#edit(process_id, subscription_group_id, topic, partition_id) ⇒ Object

Parameters:

  • process_id (String)
  • subscription_group_id (String)
  • topic (String)
  • partition_id (Integer)


67
68
69
70
71
# File 'lib/karafka/web/pro/ui/controllers/consumers/partitions/pauses_controller.rb', line 67

def edit(process_id, subscription_group_id, topic, partition_id)
  new(process_id, subscription_group_id, topic, partition_id)

  render
end

#new(process_id, subscription_group_id, topic, partition_id) ⇒ Object

Displays the toggle (pause / resume)

Parameters:

  • process_id (String)

    id of the process we’re interested in

  • subscription_group_id (String)
  • topic (String)
  • partition_id (Integer)


24
25
26
27
28
# File 'lib/karafka/web/pro/ui/controllers/consumers/partitions/pauses_controller.rb', line 24

def new(process_id, subscription_group_id, topic, partition_id)
  bootstrap!(process_id, subscription_group_id, topic, partition_id)

  render
end