Class: ControlplaneApi

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

Instance Method Summary collapse

Instance Method Details

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



79
80
81
# File 'lib/core/controlplane_api.rb', line 79

def delete_workload(org:, gvc:, workload:)
  api_json("/org/#{org}/gvc/#{gvc}/workload/#{workload}", method: :delete)
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



16
17
18
# File 'lib/core/controlplane_api.rb', line 16

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

#list_domains(org:) ⇒ Object



83
84
85
# File 'lib/core/controlplane_api.rb', line 83

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

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



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

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_workloads(org:, gvc:, workload:, op_type:) ⇒ Object

rubocop:disable Metrics/MethodLength



36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
# File 'lib/core/controlplane_api.rb', line 36

def query_workloads(org:, gvc:, workload:, op_type:) # rubocop:disable Metrics/MethodLength
  body = {
    kind: "string",
    spec: {
      match: "all",
      terms: [
        {
          rel: "gvc",
          op: "=",
          value: gvc
        },
        {
          property: "name",
          op: op_type,
          value: workload
        }
      ]
    }
  }

  api_json("/org/#{org}/workload/-query", method: :post, body: body)
end

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



87
88
89
# File 'lib/core/controlplane_api.rb', line 87

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

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



71
72
73
# File 'lib/core/controlplane_api.rb', line 71

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



75
76
77
# File 'lib/core/controlplane_api.rb', line 75

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

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



67
68
69
# File 'lib/core/controlplane_api.rb', line 67

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

#workload_list(org:, gvc:) ⇒ Object



59
60
61
# File 'lib/core/controlplane_api.rb', line 59

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

#workload_list_by_org(org:) ⇒ Object



63
64
65
# File 'lib/core/controlplane_api.rb', line 63

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