Class: Fog::Kubevirt::Compute::Secret

Inherits:
Model
  • Object
show all
Defined in:
lib/fog/kubevirt/compute/models/secret.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.parse(object) ⇒ Object



57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
# File 'lib/fog/kubevirt/compute/models/secret.rb', line 57

def self.parse(object)
   = object[:metadata] || {}
  data_hash = object[:data] || {}
  raise "Data must be a hash" unless data_hash.is_a?(Hash)

  {
    :name               => [:name],
    :namespace          => [:namespace],
    :resource_version   => [:resourceVersion],
    :uid                => [:uid],
    :creation_timestamp => [:creationTimestamp],
    :data               => data_hash,
    :type               => object[:type],
    :metadata           => 
  }
end

Instance Method Details

#createObject



39
40
41
42
43
# File 'lib/fog/kubevirt/compute/models/secret.rb', line 39

def create
  created = service.create_secret(to_secret_hash)
  merge_attributes(created)
  self
end

#destroyObject



51
52
53
54
55
# File 'lib/fog/kubevirt/compute/models/secret.rb', line 51

def destroy
  service.delete_secret(name, namespace || service.namespace)
  self.uid = nil
  self
end

#persisted?Boolean

Persisted if the secret has been stored in the API (uid is set by the server on create).

Returns:

  • (Boolean)


17
18
19
# File 'lib/fog/kubevirt/compute/models/secret.rb', line 17

def persisted?
  !uid.nil?
end

#to_secret_hashObject

Build hash for create/update API. data values must be base64-encoded.



22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/fog/kubevirt/compute/models/secret.rb', line 22

def to_secret_hash
  ns = namespace || service.namespace
  raise "Data must be a hash" unless (data || {}).is_a?(Hash)
  h = {
    :apiVersion => 'v1',
    :kind       => 'Secret',
    :metadata   => ( || {}).merge({
      :name      => name,
      :namespace => ns
    }),
    :data       => data,
    :type       => (type || 'Opaque')
  }
  h[:metadata][:resourceVersion] = resource_version if resource_version.to_s != ''
  h
end

#updateObject



45
46
47
48
49
# File 'lib/fog/kubevirt/compute/models/secret.rb', line 45

def update
  updated = service.update_secret(to_secret_hash)
  merge_attributes(updated)
  self
end