class OSESecretSerializer

Public Class Methods

from_yaml(yaml) click to toggle source

rubocop:disable Metrics/MethodLength

# File lib/serializers/ose_secret_serializer.rb, line 9
def from_yaml(yaml)
  secret_hash = Psych.load(yaml)
  data = {
    'apiVersion' => secret_hash['apiVersion'],
    'data' => decoded_data(secret_hash['data']),
    'kind' => secret_hash['kind'],
    'metadata' => {
      'name' => secret_hash['metadata']['name'],
      'labels' => secret_hash['metadata']['labels']
    }
  }.to_yaml
  OSESecret.new(secret_hash['metadata']['name'], data.to_s)
end
to_account(secret) click to toggle source

rubocop:enable Metrics/MethodLength

# File lib/serializers/ose_secret_serializer.rb, line 24
def to_account(secret)
  Account.new(accountname: secret.name, ose_secret: secret.ose_secret, type: 'ose_secret')
end
to_yaml(secret) click to toggle source
# File lib/serializers/ose_secret_serializer.rb, line 28
def to_yaml(secret)
  secret_hash = Psych.load(secret.ose_secret)
  secret_hash['data'] = encoded_data(secret_hash['data'])
  secret_hash.to_yaml
end

Private Class Methods

decoded_data(data) click to toggle source
# File lib/serializers/ose_secret_serializer.rb, line 36
def decoded_data(data)
  return {} unless data

  data.transform_values do |value|
    Base64.strict_decode64(value)
  rescue ArgumentError
    value
  end
end
encoded_data(data) click to toggle source
# File lib/serializers/ose_secret_serializer.rb, line 46
def encoded_data(data)
  return {} unless data

  data.transform_values do |value|
    Base64.strict_encode64(value)
  end
end