1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
|
require "fog/core/collection"
require "fog/google/models/sql/ssl_cert"
module Fog
module Google
class SQL
class SslCerts < Fog::Collection
model Fog::Google::SQL::SslCert
##
# Lists all of the current SSL certificates for the instance
#
# @param [String] instance_id Instance ID
# @return [Array<Fog::Google::SQL::SslCert>] List of SSL certificate resources
def all(instance_id)
data = []
begin
data = service.list_ssl_certs(instance_id).to_h[:items] || []
rescue Fog::Errors::Error => e
# Google SQL returns a 403 if we try to access a non-existing resource
# The default behaviour in Fog is to return an empty Array
return nil if e.status_code == 404 || e.status_code == 403
raise e
end
load(data)
end
##
# Retrieves a particular SSL certificate (does not include the private key)
#
# @param [String] instance_id Instance ID
# @param [String] sha1_fingerprint Sha1 FingerPrint
# @return [Fog::Google::SQL::SslCert] SSL certificate resource
def get(instance_id, sha1_fingerprint)
ssl_cert = service.get_ssl_cert(instance_id, sha1_fingerprint).to_h
if ssl_cert
new(ssl_cert)
end
rescue ::Google::Apis::ClientError => e
# Google SQL returns a 403 if we try to access a non-existing resource
# The default behaviour in Fog is to return nil
return nil if e.status_code == 404 || e.status_code == 403
raise e
end
end
end
end
end
|