faaso/src/faaso.cr

55 lines
1.3 KiB
Crystal
Raw Normal View History

require "./commands/build.cr"
require "./commands/export.cr"
require "./commands/login.cr"
require "./commands/new.cr"
require "./commands/scale.cr"
2024-07-04 13:38:15 +00:00
require "./commands/secret.cr"
require "./commands/status.cr"
require "./funko.cr"
require "crest"
2024-06-28 20:42:10 +00:00
require "docr"
require "docr/utils.cr"
require "json"
2024-06-28 19:24:52 +00:00
require "uuid"
2024-06-29 15:29:53 +00:00
# Functions as a Service, Ops!
2024-06-28 15:41:21 +00:00
module Faaso
VERSION = "0.1.0"
2024-06-30 00:01:28 +00:00
# Ensure the faaso-net network exists
2024-06-29 21:58:49 +00:00
def self.setup_network
docker_api = Docr::API.new(Docr::Client.new)
docker_api.networks.create(Docr::Types::NetworkConfig.new(
name: "faaso-net",
check_duplicate: false,
driver: "bridge"
))
2024-06-30 00:01:28 +00:00
rescue ex : Docr::Errors::DockerAPIError
raise ex if ex.status_code != 409 # Network already exists
2024-06-29 21:58:49 +00:00
end
def self.server : String
url = ENV.fetch("FAASO_SERVER", nil)
if url.nil?
Log.warn { "FAASO_SERVER not set" }
url = "http://localhost:3000/"
end
url += "/" unless url.ends_with? "/"
Log.info { "Using server #{url}" }
url
end
# Compare version with server's
def self.check_version
server_version = Crest.get(
"#{self.server}version/", \
user: "admin", password: "admin").body
local_version = "#{version}"
if server_version != local_version
Log.warn { "Server is version #{server_version} and client is #{local_version}" }
end
end
2024-06-28 15:41:21 +00:00
end