Class: ControlplaneApi

Inherits:
Object
  • Object
show all
Defined in:
lib/core/controlplane_api.rb

Overview

rubocop:disable Metrics/ClassLength

Instance Method Summary collapse

Instance Method Details

#delete_volumeset(org:, gvc:, volumeset:) ⇒ Object



93
94
95
# File 'lib/core/controlplane_api.rb', line 93

def delete_volumeset(org:, gvc:, volumeset:)
  api_json("/org/#{org}/gvc/#{gvc}/volumeset/#{volumeset}", method: :delete)
end

#delete_workload(org:, gvc:, workload:) ⇒ Object



85
86
87
# File 'lib/core/controlplane_api.rb', line 85

def delete_workload(org:, gvc:, workload:)
  api_json("/org/#{org}/gvc/#{gvc}/workload/#{workload}", method: :delete)
end

#fetch_domain(org:, domain:) ⇒ Object



97
98
99
# File 'lib/core/controlplane_api.rb', line 97

def fetch_domain(org:, domain:)
  api_json("/org/#{org}/domain/#{domain}", method: :get)
end

#fetch_identity(org:, gvc:, identity:) ⇒ Object



109
110
111
# File 'lib/core/controlplane_api.rb', line 109

def fetch_identity(org:, gvc:, identity:)
  api_json("/org/#{org}/gvc/#{gvc}/identity/#{identity}", method: :get)
end

#fetch_policy(org:, policy:) ⇒ Object



113
114
115
# File 'lib/core/controlplane_api.rb', line 113

def fetch_policy(org:, policy:)
  api_json("/org/#{org}/policy/#{policy}", method: :get)
end

#gvc_delete(org:, gvc:) ⇒ Object



12
13
14
# File 'lib/core/controlplane_api.rb', line 12

def gvc_delete(org:, gvc:)
  api_json("/org/#{org}/gvc/#{gvc}", method: :delete)
end

#gvc_get(org:, gvc:) ⇒ Object



8
9
10
# File 'lib/core/controlplane_api.rb', line 8

def gvc_get(org:, gvc:)
  api_json("/org/#{org}/gvc/#{gvc}", method: :get)
end

#gvc_list(org:) ⇒ Object



4
5
6
# File 'lib/core/controlplane_api.rb', line 4

def gvc_list(org:)
  api_json("/org/#{org}/gvc", method: :get)
end

#image_delete(org:, image:) ⇒ Object



28
29
30
# File 'lib/core/controlplane_api.rb', line 28

def image_delete(org:, image:)
  api_json("/org/#{org}/image/#{image}", method: :delete)
end

#list_domains(org:) ⇒ Object



101
102
103
# File 'lib/core/controlplane_api.rb', line 101

def list_domains(org:)
  api_json("/org/#{org}/domain", method: :get)
end

#list_volumesets(org:, gvc:) ⇒ Object



89
90
91
# File 'lib/core/controlplane_api.rb', line 89

def list_volumesets(org:, gvc:)
  api_json("/org/#{org}/gvc/#{gvc}/volumeset", method: :get)
end

#log_get(org:, gvc:, workload: nil, from: nil, to: nil) ⇒ Object



32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# File 'lib/core/controlplane_api.rb', line 32

def log_get(org:, gvc:, workload: nil, from: nil, to: nil)
  query = { gvc: gvc }
  query[:workload] = workload if workload
  query = query.map { |k, v| %(#{k}="#{v}") }.join(",").then { "{#{_1}}" }

  params = { query: query }
  params[:from] = "#{from}000000000" if from
  params[:to] = "#{to}000000000" if to
  # params << "delay_for=0"
  # params << "limit=30"
  # params << "direction=forward"
  params = params.map { |k, v| %(#{k}=#{CGI.escape(v)}) }.join("&")

  api_json_direct("/logs/org/#{org}/loki/api/v1/query_range?#{params}", method: :get, host: :logs)
end

#query_images(org:, gvc:, gvc_op_type:) ⇒ Object



16
17
18
19
20
21
22
23
24
25
26
# File 'lib/core/controlplane_api.rb', line 16

def query_images(org:, gvc:, gvc_op_type:)
  terms = [
    {
      property: "repository",
      op: gvc_op_type,
      value: gvc
    }
  ]

  query("/org/#{org}/image", terms)
end

#query_workloads(org:, gvc:, workload:, gvc_op_type:, workload_op_type:) ⇒ Object

rubocop:disable Metrics/MethodLength



48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
# File 'lib/core/controlplane_api.rb', line 48

def query_workloads(org:, gvc:, workload:, gvc_op_type:, workload_op_type:) # rubocop:disable Metrics/MethodLength
  terms = [
    {
      rel: "gvc",
      op: gvc_op_type,
      value: gvc
    },
    {
      property: "name",
      op: workload_op_type,
      value: workload
    }
  ]

  query("/org/#{org}/workload", terms)
end

#update_domain(org:, domain:, data:) ⇒ Object



105
106
107
# File 'lib/core/controlplane_api.rb', line 105

def update_domain(org:, domain:, data:)
  api_json("/org/#{org}/domain/#{domain}", method: :patch, body: data)
end

#update_workload(org:, gvc:, workload:, data:) ⇒ Object



77
78
79
# File 'lib/core/controlplane_api.rb', line 77

def update_workload(org:, gvc:, workload:, data:)
  api_json("/org/#{org}/gvc/#{gvc}/workload/#{workload}", method: :patch, body: data)
end

#workload_deployments(org:, gvc:, workload:) ⇒ Object



81
82
83
# File 'lib/core/controlplane_api.rb', line 81

def workload_deployments(org:, gvc:, workload:)
  api_json("/org/#{org}/gvc/#{gvc}/workload/#{workload}/deployment", method: :get)
end

#workload_get(org:, gvc:, workload:) ⇒ Object



73
74
75
# File 'lib/core/controlplane_api.rb', line 73

def workload_get(org:, gvc:, workload:)
  api_json("/org/#{org}/gvc/#{gvc}/workload/#{workload}", method: :get)
end

#workload_list(org:, gvc:) ⇒ Object



65
66
67
# File 'lib/core/controlplane_api.rb', line 65

def workload_list(org:, gvc:)
  api_json("/org/#{org}/gvc/#{gvc}/workload", method: :get)
end

#workload_list_by_org(org:) ⇒ Object



69
70
71
# File 'lib/core/controlplane_api.rb', line 69

def workload_list_by_org(org:)
  api_json("/org/#{org}/workload", method: :get)
end