Module: Dag::Client::ClusterValidation

Included in:
API::Cluster, Cluster, Database, Dag::Cluster, Dag::ClusterCollection, DatabaseCollection, TableCollection
Defined in:
lib/dag/client/cluster_validation.rb

Constant Summary collapse

VALID_WHERE_KEYS =
[
  :status,
  :type,
  :cluster_name
]

Instance Method Summary collapse

Instance Method Details

#cluster_norm?Boolean



27
28
29
# File 'lib/dag/client/cluster_validation.rb', line 27

def cluster_norm?
  'norm' == cluster_status
end

#cluster_norm_or_ptfailed?Boolean



31
32
33
# File 'lib/dag/client/cluster_validation.rb', line 31

def cluster_norm_or_ptfailed?
  ['norm', 'ptfailed'].include?(cluster_status)
end

#cluster_restart_status?Boolean



35
36
37
# File 'lib/dag/client/cluster_validation.rb', line 35

def cluster_restart_status?
  ['norm', 'failed', 'ptfailed'].include?(cluster_status)
end

#cluster_statusObject



4
5
6
7
8
9
10
11
12
13
14
15
16
# File 'lib/dag/client/cluster_validation.rb', line 4

def cluster_status
  return @cluster_status if @cluster_status

  if @cluster_info
    return @cluster_info['status']
  end

  return unless @cluster_name
  @cluster_info = @api.cluster_info(@cluster_name)
  @cluster_status = @cluster_info['status']

  @cluster_status
end

#valid_cluster_info_list_status?(status = nil) ⇒ Boolean



22
23
24
25
# File 'lib/dag/client/cluster_validation.rb', line 22

def valid_cluster_info_list_status?(status = nil)
  status = cluster_status if status.nil?
  ['init', 'reserved', 'stopped', 'starting', 'restarting', 'norm', 'failed', 'ptfailed', 'error'].include?(status)
end

#valid_cluster_status?Boolean



18
19
20
# File 'lib/dag/client/cluster_validation.rb', line 18

def valid_cluster_status?
  ['init', 'reserved', 'stopped', 'restarting', 'norm', 'failed', 'ptfailed'].include?(cluster_status)
end

#validate_clusterObject



39
40
41
42
# File 'lib/dag/client/cluster_validation.rb', line 39

def validate_cluster
  raise Dag::Client::ClusterNotOpen.new("cluster not opened") if @cluster_name.blank?
  raise Dag::Client::StatusInvalid.new("cluster is not valid status: #{cluster_status}") unless valid_cluster_status?
end

#validate_cluster_param_keys(params) ⇒ Object



50
51
52
53
54
55
56
# File 'lib/dag/client/cluster_validation.rb', line 50

def validate_cluster_param_keys(params)
  params.keys.each do |k|
    unless VALID_WHERE_KEYS.include?(k.to_sym)
      raise Dag::Client::ParameterInvalid.new("Invalid where condition: #{k}")
    end
  end
end