Module: Dag::Client::API::Database

Includes:
ListParams
Included in:
Dag::Client::API
Defined in:
lib/dag/client/api/database.rb

Instance Method Summary collapse

Methods included from ListParams

#list_params

Instance Method Details

#create_database(cluster_name, db_name) ⇒ Object



11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/dag/client/api/database.rb', line 11

def create_database(cluster_name, db_name)
  raise Dag::Client::ParameterInvalid.new('cluster_name is blank') if cluster_name.blank?
  raise Dag::Client::ParameterInvalid.new('db_name is blank') if db_name.blank?

  if db_name.length < 3
    raise Dag::Client::ParameterInvalid.new("db name is too short")
  end

  if db_name.length > 63
    raise Dag::Client::ParameterInvalid.new("db name is too long")
  end

  if db_name !~ /\A[a-z0-9]+\Z/
    raise Dag::Client::ParameterInvalid.new("db name is invalid")
  end

  if hive_reserved_word?(db_name)
    raise Dag::Client::ParameterInvalid.new("db name is reserved by hive")
  end

  execute(RestParameter.new(:put, "/v1/#{cluster_name}/#{db_name}", content_type: 'application/json', cano_resource: "database"))
end

#database_list(cluster_name, options = {}) ⇒ Object



6
7
8
9
# File 'lib/dag/client/api/database.rb', line 6

def database_list(cluster_name, options = {})
  resource = "/v1/#{cluster_name}"
  execute(RestParameter.new(:get, resource, cano_resource: 'database', query_params: list_params(options)))
end

#delete_database(cluster_name, db_name) ⇒ Object



34
35
36
# File 'lib/dag/client/api/database.rb', line 34

def delete_database(cluster_name, db_name)
  execute(RestParameter.new(:delete, "/v1/#{cluster_name}/#{db_name}", content_type: 'application/json', cano_resource: "database"))
end