47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
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
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
|
# File 'lib/ditty/components/proxes.rb', line 47
def self.seeder
proc do
require 'ditty/models/user'
require 'ditty/models/role'
require 'proxes/models/permission'
require 'proxes/models/status_check'
sa = ::Ditty::Role.find_or_create(name: 'super_admin')
%w[GET POST PUT DELETE HEAD OPTIONS].each do |verb|
::ProxES::Permission.find_or_create(role: sa, verb: verb, pattern: '*', index: '*')
end
::Ditty::Role.find_or_create(name: 'admin')
user_role = ::Ditty::Role.find_or_create(name: 'user')
::ProxES::Permission.find_or_create(role: user_role, verb: 'GET', pattern: '/_cluster/stats')
::ProxES::Permission.find_or_create(role: user_role, verb: 'GET', pattern: '/_nodes')
::ProxES::Permission.find_or_create(role: user_role, verb: 'GET', pattern: '/_nodes/stats')
::ProxES::Permission.find_or_create(role: user_role, verb: 'GET', pattern: '/_stats')
anon_role = ::Ditty::Role.find_or_create(name: 'anonymous')
::Ditty::User.create_anonymous_user('[email protected]')
::ProxES::Permission.find_or_create(role: anon_role, verb: 'GET', pattern: '/.kibana/config/*', index: '.kibana')
::ProxES::Permission.find_or_create(role: anon_role, verb: 'GET', pattern: '/.kibana/doc/config/*', index: '.kibana')
kibana = ::Ditty::Role.find_or_create(name: 'kibana')
::ProxES::Permission.find_or_create(role: kibana, verb: 'HEAD', pattern: '/', index: '.kibana')
::ProxES::Permission.find_or_create(role: kibana, verb: 'GET', pattern: '/_nodes*', index: '.kibana')
::ProxES::Permission.find_or_create(role: kibana, verb: 'GET', pattern: '/_cluster/health*', index: '.kibana')
::ProxES::Permission.find_or_create(role: kibana, verb: 'GET', pattern: '/_cluster/settings*', index: '.kibana')
::ProxES::Permission.find_or_create(role: kibana, verb: 'POST', pattern: '/_mget', index: '.kibana')
::ProxES::Permission.find_or_create(role: kibana, verb: 'POST', pattern: '/_search', index: '.kibana')
::ProxES::Permission.find_or_create(role: kibana, verb: 'POST', pattern: '/_msearch', index: '.kibana')
::ProxES::Permission.find_or_create(role: kibana, verb: 'POST', pattern: '/_refresh', index: '.kibana')
::ProxES::StatusCheck.find_or_create(
type: 'ProxES::ClusterHealthStatusCheck',
name: 'Cluster Health',
source: 'health'
) { |r| r.set(required_value: 'green', order: 20) }
::ProxES::StatusCheck.find_or_create(
type: 'ProxES::MasterNodesStatusCheck',
name: 'Master Nodes',
source: 'node_stats'
) { |r| r.set(required_value: 1, order: 30) }
::ProxES::StatusCheck.find_or_create(
type: 'ProxES::DataNodesStatusCheck',
name: 'Data Nodes',
source: 'node_stats'
) { |r| r.set(required_value: 1, order: 40) }
::ProxES::StatusCheck.find_or_create(
type: 'ProxES::IngestNodesStatusCheck',
name: 'Ingest Nodes',
source: 'node_stats'
) { |r| r.set(required_value: 1, order: 50) }
::ProxES::StatusCheck.find_or_create(
type: 'ProxES::FileSystemStatusCheck',
name: 'Node File Systems',
source: 'node_stats'
) { |r| r.set(required_value: 10, order: 60) }
::ProxES::StatusCheck.find_or_create(
type: 'ProxES::JVMHeapStatusCheck',
name: 'Node JVM Heap',
source: 'node_stats'
) { |r| r.set(required_value: 85, order: 70) }
::ProxES::StatusCheck.find_or_create(
type: 'ProxES::CPUStatusCheck',
name: 'Node CPU Usage',
source: 'node_stats'
) { |r| r.set(required_value: 70, order: 80) }
::ProxES::StatusCheck.find_or_create(
type: 'ProxES::MemoryStatusCheck',
name: 'Node Memory Usage',
source: 'node_stats'
) { |r| r.set(required_value: 99, order: 90) }
end
end
|