Class: ControlplaneApi

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

Overview

rubocop:disable Metrics/ClassLength

Constant Summary collapse

LIST_ORGS_PATH =
"/org"

Instance Method Summary collapse

Instance Method Details

#delete_policy(org:, policy:) ⇒ Object



137
138
139
# File 'lib/core/controlplane_api.rb', line 137

def delete_policy(org:, policy:)
  api_json("/org/#{org}/policy/#{policy}", method: :delete)
end

#delete_secret(org:, secret:) ⇒ Object



125
126
127
# File 'lib/core/controlplane_api.rb', line 125

def delete_secret(org:, secret:)
  api_json("/org/#{org}/secret/#{secret}", method: :delete)
end

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



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

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

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



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

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

#fetch_domain(org:, domain:) ⇒ Object



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

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

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



129
130
131
# File 'lib/core/controlplane_api.rb', line 129

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

#fetch_image_details(org:, image:) ⇒ Object



34
35
36
# File 'lib/core/controlplane_api.rb', line 34

def fetch_image_details(org:, image:)
  api_json("/org/#{org}/image/#{image}", method: :get)
end

#fetch_policy(org:, policy:) ⇒ Object



133
134
135
# File 'lib/core/controlplane_api.rb', line 133

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

#fetch_secret(org:, secret:) ⇒ Object



121
122
123
# File 'lib/core/controlplane_api.rb', line 121

def fetch_secret(org:, secret:)
  api_json("/org/#{org}/secret/#{secret}", method: :get)
end

#gvc_delete(org:, gvc:) ⇒ Object



18
19
20
# File 'lib/core/controlplane_api.rb', line 18

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

#gvc_get(org:, gvc:) ⇒ Object



14
15
16
# File 'lib/core/controlplane_api.rb', line 14

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

#gvc_list(org:) ⇒ Object



10
11
12
# File 'lib/core/controlplane_api.rb', line 10

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

#image_delete(org:, image:) ⇒ Object



38
39
40
# File 'lib/core/controlplane_api.rb', line 38

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

#list_domains(org:) ⇒ Object



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

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

#list_orgsObject



6
7
8
# File 'lib/core/controlplane_api.rb', line 6

def list_orgs
  api_json(LIST_ORGS_PATH, method: :get)
end

#list_volumesets(org:, gvc:) ⇒ Object



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

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

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

rubocop:disable Metrics/ParameterLists



42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
# File 'lib/core/controlplane_api.rb', line 42

def log_get(org:, gvc:, workload: nil, replica: nil, from: nil, to: nil) # rubocop:disable Metrics/ParameterLists
  query = { gvc: gvc }
  query[:workload] = workload if workload
  query[:replica] = replica if replica
  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[:limit] = "5000"
  # params << "delay_for=0"
  # params << "limit=30"
  # params << "direction=forward"
  params = params.map { |k, v| %(#{k}=#{CGI.escape(v)}) }.join("&")

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

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



22
23
24
25
26
27
28
29
30
31
32
# File 'lib/core/controlplane_api.rb', line 22

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



60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
# File 'lib/core/controlplane_api.rb', line 60

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



117
118
119
# File 'lib/core/controlplane_api.rb', line 117

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

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



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

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



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

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

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



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

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

#workload_list(org:, gvc:) ⇒ Object



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

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

#workload_list_by_org(org:) ⇒ Object



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

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