2024-07-03 17:53:33 +00:00
|
|
|
require "./commands/build.cr"
|
|
|
|
require "./commands/export.cr"
|
2024-07-07 23:48:32 +00:00
|
|
|
require "./commands/login.cr"
|
2024-07-05 01:34:13 +00:00
|
|
|
require "./commands/new.cr"
|
2024-07-03 17:53:33 +00:00
|
|
|
require "./commands/scale.cr"
|
2024-07-04 13:38:15 +00:00
|
|
|
require "./commands/secret.cr"
|
2024-07-03 17:53:33 +00:00
|
|
|
require "./commands/status.cr"
|
2024-06-29 17:36:11 +00:00
|
|
|
require "./funko.cr"
|
2024-06-30 18:10:49 +00:00
|
|
|
require "crest"
|
2024-06-28 20:42:10 +00:00
|
|
|
require "docr"
|
|
|
|
require "docr/utils.cr"
|
2024-06-30 18:10:49 +00:00
|
|
|
require "json"
|
2024-06-28 19:24:52 +00:00
|
|
|
require "uuid"
|
2024-06-28 17:09:58 +00:00
|
|
|
|
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
|
|
|
|
|
2024-07-07 23:48:32 +00:00
|
|
|
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
|
|
|
|
|
2024-07-07 01:27:34 +00:00
|
|
|
# Compare version with server's
|
|
|
|
def self.check_version
|
|
|
|
server_version = Crest.get(
|
2024-07-07 23:48:32 +00:00
|
|
|
"#{self.server}version/", \
|
2024-07-07 01:27:34 +00:00
|
|
|
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
|
2024-06-28 17:09:58 +00:00
|
|
|
end
|
2024-06-28 15:41:21 +00:00
|
|
|
end
|