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_policy(org:, policy:) ⇒ Object



135
136
137
# File 'lib/core/controlplane_api.rb', line 135

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

#delete_secret(org:, secret:) ⇒ Object



123
124
125
# File 'lib/core/controlplane_api.rb', line 123

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

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



103
104
105
# File 'lib/core/controlplane_api.rb', line 103

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

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



95
96
97
# File 'lib/core/controlplane_api.rb', line 95

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

#fetch_domain(org:, domain:) ⇒ Object



107
108
109
# File 'lib/core/controlplane_api.rb', line 107

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

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



127
128
129
# File 'lib/core/controlplane_api.rb', line 127

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

#fetch_image_details(org:, image:) ⇒ Object



32
33
34
# File 'lib/core/controlplane_api.rb', line 32

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

#fetch_policy(org:, policy:) ⇒ Object



131
132
133
# File 'lib/core/controlplane_api.rb', line 131

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

#fetch_secret(org:, secret:) ⇒ Object



119
120
121
# File 'lib/core/controlplane_api.rb', line 119

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

#gvc_delete(org:, gvc:) ⇒ Object



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

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

#gvc_get(org:, gvc:) ⇒ Object



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

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

#gvc_list(org:) ⇒ Object



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

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

#image_delete(org:, image:) ⇒ Object



36
37
38
# File 'lib/core/controlplane_api.rb', line 36

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

#list_domains(org:) ⇒ Object



111
112
113
# File 'lib/core/controlplane_api.rb', line 111

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

#list_orgsObject



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

def list_orgs
  api_json("/org", method: :get)
end

#list_volumesets(org:, gvc:) ⇒ Object



99
100
101
# File 'lib/core/controlplane_api.rb', line 99

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



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

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



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

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



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

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



115
116
117
# File 'lib/core/controlplane_api.rb', line 115

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

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



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

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



91
92
93
# File 'lib/core/controlplane_api.rb', line 91

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

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



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

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

#workload_list(org:, gvc:) ⇒ Object



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

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

#workload_list_by_org(org:) ⇒ Object



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

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