diff options
Diffstat (limited to 'app/models/serverless')
-rw-r--r-- | app/models/serverless/domain.rb | 44 | ||||
-rw-r--r-- | app/models/serverless/domain_cluster.rb | 39 | ||||
-rw-r--r-- | app/models/serverless/function.rb | 26 | ||||
-rw-r--r-- | app/models/serverless/lookup_path.rb | 30 | ||||
-rw-r--r-- | app/models/serverless/virtual_domain.rb | 22 |
5 files changed, 0 insertions, 161 deletions
diff --git a/app/models/serverless/domain.rb b/app/models/serverless/domain.rb deleted file mode 100644 index 164f93afa9a..00000000000 --- a/app/models/serverless/domain.rb +++ /dev/null @@ -1,44 +0,0 @@ -# frozen_string_literal: true - -module Serverless - class Domain - include ActiveModel::Model - - REGEXP = %r{^(?<scheme>https?://)?(?<function_name>[^.]+)-(?<cluster_left>\h{2})a1(?<cluster_middle>\h{10})f2(?<cluster_right>\h{2})(?<environment_id>\h+)-(?<environment_slug>[^.]+)\.(?<pages_domain_name>.+)}.freeze - UUID_LENGTH = 14 - - attr_accessor :function_name, :serverless_domain_cluster, :environment - - validates :function_name, presence: true, allow_blank: false - validates :serverless_domain_cluster, presence: true - validates :environment, presence: true - - def self.generate_uuid - SecureRandom.hex(UUID_LENGTH / 2) - end - - def uri - URI("https://#{function_name}-#{serverless_domain_cluster_uuid}#{"%x" % environment.id}-#{environment.slug}.#{serverless_domain_cluster.domain}") - end - - def knative_uri - URI("http://#{function_name}.#{namespace}.#{serverless_domain_cluster.knative.hostname}") - end - - private - - def namespace - serverless_domain_cluster.cluster.kubernetes_namespace_for(environment) - end - - def serverless_domain_cluster_uuid - [ - serverless_domain_cluster.uuid[0..1], - 'a1', - serverless_domain_cluster.uuid[2..-3], - 'f2', - serverless_domain_cluster.uuid[-2..] - ].join - end - end -end diff --git a/app/models/serverless/domain_cluster.rb b/app/models/serverless/domain_cluster.rb deleted file mode 100644 index 561bfc65b2b..00000000000 --- a/app/models/serverless/domain_cluster.rb +++ /dev/null @@ -1,39 +0,0 @@ -# frozen_string_literal: true - -module Serverless - class DomainCluster < ApplicationRecord - self.table_name = 'serverless_domain_cluster' - - HEX_REGEXP = %r{\A\h+\z}.freeze - - belongs_to :pages_domain - belongs_to :knative, class_name: 'Clusters::Applications::Knative', foreign_key: 'clusters_applications_knative_id' - belongs_to :creator, class_name: 'User', optional: true - - attr_encrypted :key, - mode: :per_attribute_iv, - key: Settings.attr_encrypted_db_key_base_32, - algorithm: 'aes-256-gcm' - - validates :pages_domain, :knative, presence: true - validates :uuid, presence: true, uniqueness: true, length: { is: ::Serverless::Domain::UUID_LENGTH }, - format: { with: HEX_REGEXP, message: 'only allows hex characters' } - - after_initialize :set_uuid, if: :new_record? - - delegate :domain, to: :pages_domain - delegate :cluster, to: :knative - - def self.for_uuid(uuid) - joins(:pages_domain, :knative) - .includes(:pages_domain, :knative) - .find_by(uuid: uuid) - end - - private - - def set_uuid - self.uuid = ::Serverless::Domain.generate_uuid - end - end -end diff --git a/app/models/serverless/function.rb b/app/models/serverless/function.rb deleted file mode 100644 index 5d4f8e0c9e2..00000000000 --- a/app/models/serverless/function.rb +++ /dev/null @@ -1,26 +0,0 @@ -# frozen_string_literal: true - -module Serverless - class Function - attr_accessor :name, :namespace - - def initialize(project, name, namespace) - @project = project - @name = name - @namespace = namespace - end - - def id - @project.id.to_s + "/" + @name + "/" + @namespace - end - - def self.find_by_id(id) - array = id.split("/") - project = Project.find_by_id(array[0]) - name = array[1] - namespace = array[2] - - self.new(project, name, namespace) - end - end -end diff --git a/app/models/serverless/lookup_path.rb b/app/models/serverless/lookup_path.rb deleted file mode 100644 index c09b3718651..00000000000 --- a/app/models/serverless/lookup_path.rb +++ /dev/null @@ -1,30 +0,0 @@ -# frozen_string_literal: true - -module Serverless - class LookupPath - attr_reader :serverless_domain - - delegate :serverless_domain_cluster, to: :serverless_domain - delegate :knative, to: :serverless_domain_cluster - delegate :certificate, to: :serverless_domain_cluster - delegate :key, to: :serverless_domain_cluster - - def initialize(serverless_domain) - @serverless_domain = serverless_domain - end - - def source - { - type: 'serverless', - service: serverless_domain.knative_uri.host, - cluster: { - hostname: knative.hostname, - address: knative.external_ip, - port: 443, - cert: certificate, - key: key - } - } - end - end -end diff --git a/app/models/serverless/virtual_domain.rb b/app/models/serverless/virtual_domain.rb deleted file mode 100644 index d6a23a4c0ce..00000000000 --- a/app/models/serverless/virtual_domain.rb +++ /dev/null @@ -1,22 +0,0 @@ -# frozen_string_literal: true - -module Serverless - class VirtualDomain - attr_reader :serverless_domain - - delegate :serverless_domain_cluster, to: :serverless_domain - delegate :pages_domain, to: :serverless_domain_cluster - delegate :certificate, to: :pages_domain - delegate :key, to: :pages_domain - - def initialize(serverless_domain) - @serverless_domain = serverless_domain - end - - def lookup_paths - [ - ::Serverless::LookupPath.new(serverless_domain) - ] - end - end -end |