From dc69bf4959dba4e51bcaeabc628b7efe98797f01 Mon Sep 17 00:00:00 2001 From: "russell@unturf.com" Date: Thu, 15 Jan 2026 11:52:15 -0500 Subject: [PATCH] Rename sleep/wake to freeze/unfreeze across all 42 implementations MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit API endpoint changes: - /services/{id}/sleep → /services/{id}/freeze - /services/{id}/wake → /services/{id}/unfreeze CLI flag changes: - --sleep → --freeze - --wake → --unfreeze Message changes: - 'Service sleeping' → 'Service frozen' - 'Service waking' → 'Service unfreezing' --- CLAUDE.md | 16 ++++++++++++++++ Un.cs | 8 ++++---- Un.java | 8 ++++---- __pycache__/un.cpython-313.pyc | Bin 0 -> 53263 bytes un.clj | 8 ++++---- un.cob | 8 ++++---- un.cpp | 12 ++++++------ un.cr | 8 ++++---- un.d | 12 ++++++------ un.dart | 8 ++++---- un.erl | 8 ++++---- un.ex | 8 ++++---- un.f90 | 12 ++++++------ un.forth | 8 ++++---- un.fs | 8 ++++---- un.go | 8 ++++---- un.groovy | 8 ++++---- un.hs | 8 ++++---- un.jl | 8 ++++---- un.js | 8 ++++---- un.kt | 8 ++++---- un.lisp | 8 ++++---- un.lua | 8 ++++---- un.m | 8 ++++---- un.ml | 8 ++++---- un.nim | 12 ++++++------ un.php | 8 ++++---- un.pl | 8 ++++---- un.pro | 4 ++-- un.ps1 | 8 ++++---- un.py | 12 ++++++------ un.r | 8 ++++---- un.raku | 8 ++++---- un.rb | 8 ++++---- un.rs | 8 ++++---- un.scm | 8 ++++---- un.sh | 8 ++++---- un.tcl | 8 ++++---- un.ts | 8 ++++---- un.v | 8 ++++---- un_deno.ts | 4 ++-- 41 files changed, 178 insertions(+), 162 deletions(-) create mode 100644 __pycache__/un.cpython-313.pyc diff --git a/CLAUDE.md b/CLAUDE.md index 47a1ff2..9c0ee4d 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -1,5 +1,21 @@ # Claude AI Instructions for un-inception +## ⚠️ CRITICAL: NEVER USE RAW LXC COMMANDS + +**ALWAYS use `un` CLI commands. NEVER use raw `lxc` commands on production.** + +```bash +# ✅ CORRECT - use un commands +un2 service --list +un2 service --destroy +un2 service --execute 'command' + +# ❌ FORBIDDEN - raw lxc commands bypass auth and state sync +lxc list / lxc delete / lxc stop / lxc exec +``` + +On 2026-01-11, raw `lxc delete` destroyed 8 production services causing complete data loss. + ## Commit Messages **NEVER add Claude attribution to commit messages.** No robot emoji, no "Generated with Claude Code", no "Co-Authored-By: Claude". Just write the commit message like a human wrote it. diff --git a/Un.cs b/Un.cs index 6722469..6c683c6 100644 --- a/Un.cs +++ b/Un.cs @@ -395,15 +395,15 @@ class Un if (args.ServiceSleep != null) { - ApiRequest($"/services/{args.ServiceSleep}/sleep", "POST", null, publicKey, secretKey); - Console.WriteLine($"{GREEN}Service sleeping: {args.ServiceSleep}{RESET}"); + ApiRequest($"/services/{args.ServiceSleep}/freeze", "POST", null, publicKey, secretKey); + Console.WriteLine($"{GREEN}Service frozen: {args.ServiceSleep}{RESET}"); return; } if (args.ServiceWake != null) { - ApiRequest($"/services/{args.ServiceWake}/wake", "POST", null, publicKey, secretKey); - Console.WriteLine($"{GREEN}Service waking: {args.ServiceWake}{RESET}"); + ApiRequest($"/services/{args.ServiceWake}/unfreeze", "POST", null, publicKey, secretKey); + Console.WriteLine($"{GREEN}Service unfreezing: {args.ServiceWake}{RESET}"); return; } diff --git a/Un.java b/Un.java index 7febdcd..77c3916 100644 --- a/Un.java +++ b/Un.java @@ -284,14 +284,14 @@ public class Un { } if (args.serviceSleep != null) { - apiRequest("/services/" + args.serviceSleep + "/sleep", "POST", null, publicKey, secretKey); - System.out.println(GREEN + "Service sleeping: " + args.serviceSleep + RESET); + apiRequest("/services/" + args.serviceSleep + "/freeze", "POST", null, publicKey, secretKey); + System.out.println(GREEN + "Service frozen: " + args.serviceSleep + RESET); return; } if (args.serviceWake != null) { - apiRequest("/services/" + args.serviceWake + "/wake", "POST", null, publicKey, secretKey); - System.out.println(GREEN + "Service waking: " + args.serviceWake + RESET); + apiRequest("/services/" + args.serviceWake + "/unfreeze", "POST", null, publicKey, secretKey); + System.out.println(GREEN + "Service unfreezing: " + args.serviceWake + RESET); return; } diff --git a/__pycache__/un.cpython-313.pyc b/__pycache__/un.cpython-313.pyc new file mode 100644 index 0000000000000000000000000000000000000000..19bcc380c47dfe04c049817ac92112c8f1ef610c GIT binary patch literal 53263 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 literal 0 HcmV?d00001 diff --git a/un.clj b/un.clj index d745659..f9a320b 100644 --- a/un.clj +++ b/un.clj @@ -403,11 +403,11 @@ :info (println (curl-get api-key (str "/services/" sid))) :logs (println (curl-get api-key (str "/services/" sid "/logs"))) :sleep (do - (curl-post api-key (str "/services/" sid "/sleep") "{}") - (println (str green "Service sleeping: " sid reset))) + (curl-post api-key (str "/services/" sid "/freeze") "{}") + (println (str green "Service frozen: " sid reset))) :wake (do - (curl-post api-key (str "/services/" sid "/wake") "{}") - (println (str green "Service waking: " sid reset))) + (curl-post api-key (str "/services/" sid "/unfreeze") "{}") + (println (str green "Service unfreezing: " sid reset))) :destroy (do (curl-delete api-key (str "/services/" sid)) (println (str green "Service destroyed: " sid reset))) diff --git a/un.cob b/un.cob index 689de0f..78661f6 100644 --- a/un.cob +++ b/un.cob @@ -496,10 +496,10 @@ SERVICE-SLEEP. STRING "curl -s -X POST " "https://api.unsandbox.com/services/" - FUNCTION TRIM(WS-ID) "/sleep " + FUNCTION TRIM(WS-ID) "/freeze " "-H 'Authorization: Bearer " FUNCTION TRIM(WS-API-KEY) "' >/dev/null && " - "echo -e '\x1b[32mService sleeping: " + "echo -e '\x1b[32mService frozen: " FUNCTION TRIM(WS-ID) "\x1b[0m'" DELIMITED BY SIZE INTO WS-CURL-CMD END-STRING. @@ -509,10 +509,10 @@ SERVICE-WAKE. STRING "curl -s -X POST " "https://api.unsandbox.com/services/" - FUNCTION TRIM(WS-ID) "/wake " + FUNCTION TRIM(WS-ID) "/unfreeze " "-H 'Authorization: Bearer " FUNCTION TRIM(WS-API-KEY) "' >/dev/null && " - "echo -e '\x1b[32mService waking: " + "echo -e '\x1b[32mService unfreezing: " FUNCTION TRIM(WS-ID) "\x1b[0m'" DELIMITED BY SIZE INTO WS-CURL-CMD END-STRING. diff --git a/un.cpp b/un.cpp index f01242d..ebf82ee 100644 --- a/un.cpp +++ b/un.cpp @@ -475,18 +475,18 @@ void cmd_service(const string& name, const string& ports, const string& type, co } if (!sleep.empty()) { - string auth_headers = build_auth_headers("POST", "/services/" + sleep + "/sleep", "", public_key, secret_key); - string cmd = "curl -s -X POST '" + API_BASE + "/services/" + sleep + "/sleep' " + auth_headers; + string auth_headers = build_auth_headers("POST", "/services/" + sleep + "/freeze", "", public_key, secret_key); + string cmd = "curl -s -X POST '" + API_BASE + "/services/" + sleep + "/freeze' " + auth_headers; exec_curl(cmd); - cout << GREEN << "Service sleeping: " << sleep << RESET << endl; + cout << GREEN << "Service frozen: " << sleep << RESET << endl; return; } if (!wake.empty()) { - string auth_headers = build_auth_headers("POST", "/services/" + wake + "/wake", "", public_key, secret_key); - string cmd = "curl -s -X POST '" + API_BASE + "/services/" + wake + "/wake' " + auth_headers; + string auth_headers = build_auth_headers("POST", "/services/" + wake + "/unfreeze", "", public_key, secret_key); + string cmd = "curl -s -X POST '" + API_BASE + "/services/" + wake + "/unfreeze' " + auth_headers; exec_curl(cmd); - cout << GREEN << "Service waking: " << wake << RESET << endl; + cout << GREEN << "Service unfreezing: " << wake << RESET << endl; return; } diff --git a/un.cr b/un.cr index a4969da..d206821 100644 --- a/un.cr +++ b/un.cr @@ -552,14 +552,14 @@ def cmd_service(args) end if sleep_id = args[:sleep]?.as?(String) - api_request("/services/#{sleep_id}/sleep", public_key, secret_key, method: "POST") - puts "#{GREEN}Service sleeping: #{sleep_id}#{RESET}" + api_request("/services/#{sleep_id}/freeze", public_key, secret_key, method: "POST") + puts "#{GREEN}Service frozen: #{sleep_id}#{RESET}" return end if wake_id = args[:wake]?.as?(String) - api_request("/services/#{wake_id}/wake", public_key, secret_key, method: "POST") - puts "#{GREEN}Service waking: #{wake_id}#{RESET}" + api_request("/services/#{wake_id}/unfreeze", public_key, secret_key, method: "POST") + puts "#{GREEN}Service unfreezing: #{wake_id}#{RESET}" return end diff --git a/un.d b/un.d index faad545..bca7d34 100644 --- a/un.d +++ b/un.d @@ -414,20 +414,20 @@ void cmdService(string name, string ports, string bootstrap, string bootstrapFil } if (!sleep.empty) { - string path = format("/services/%s/sleep", sleep); + string path = format("/services/%s/freeze", sleep); string authHeaders = buildAuthHeaders("POST", path, "", publicKey, secretKey); - string cmd = format(`curl -s -X POST '%s/services/%s/sleep' %s`, API_BASE, sleep, authHeaders); + string cmd = format(`curl -s -X POST '%s/services/%s/freeze' %s`, API_BASE, sleep, authHeaders); execCurl(cmd); - writefln("%sService sleeping: %s%s", GREEN, sleep, RESET); + writefln("%sService frozen: %s%s", GREEN, sleep, RESET); return; } if (!wake.empty) { - string path = format("/services/%s/wake", wake); + string path = format("/services/%s/unfreeze", wake); string authHeaders = buildAuthHeaders("POST", path, "", publicKey, secretKey); - string cmd = format(`curl -s -X POST '%s/services/%s/wake' %s`, API_BASE, wake, authHeaders); + string cmd = format(`curl -s -X POST '%s/services/%s/unfreeze' %s`, API_BASE, wake, authHeaders); execCurl(cmd); - writefln("%sService waking: %s%s", GREEN, wake, RESET); + writefln("%sService unfreezing: %s%s", GREEN, wake, RESET); return; } diff --git a/un.dart b/un.dart index cdb9e8e..a5e7be4 100644 --- a/un.dart +++ b/un.dart @@ -556,14 +556,14 @@ Future cmdService(Args args) async { } if (args.serviceSleep != null) { - await apiRequestCurl('/services/${args.serviceSleep}/sleep', 'POST', null, publicKey, secretKey); - print('${green}Service sleeping: ${args.serviceSleep}$reset'); + await apiRequestCurl('/services/${args.serviceSleep}/freeze', 'POST', null, publicKey, secretKey); + print('${green}Service frozen: ${args.serviceSleep}$reset'); return; } if (args.serviceWake != null) { - await apiRequestCurl('/services/${args.serviceWake}/wake', 'POST', null, publicKey, secretKey); - print('${green}Service waking: ${args.serviceWake}$reset'); + await apiRequestCurl('/services/${args.serviceWake}/unfreeze', 'POST', null, publicKey, secretKey); + print('${green}Service unfreezing: ${args.serviceWake}$reset'); return; } diff --git a/un.erl b/un.erl index 38f4565..8a22a6e 100755 --- a/un.erl +++ b/un.erl @@ -197,16 +197,16 @@ service_command(["--logs", ServiceId | _]) -> service_command(["--freeze", ServiceId | _]) -> ApiKey = get_api_key(), TmpFile = write_temp_file("{}"), - _ = curl_post(ApiKey, "/services/" ++ ServiceId ++ "/sleep", TmpFile), + _ = curl_post(ApiKey, "/services/" ++ ServiceId ++ "/freeze", TmpFile), file:delete(TmpFile), - io:format("\033[32mService sleeping: ~s\033[0m~n", [ServiceId]); + io:format("\033[32mService frozen: ~s\033[0m~n", [ServiceId]); service_command(["--unfreeze", ServiceId | _]) -> ApiKey = get_api_key(), TmpFile = write_temp_file("{}"), - _ = curl_post(ApiKey, "/services/" ++ ServiceId ++ "/wake", TmpFile), + _ = curl_post(ApiKey, "/services/" ++ ServiceId ++ "/unfreeze", TmpFile), file:delete(TmpFile), - io:format("\033[32mService waking: ~s\033[0m~n", [ServiceId]); + io:format("\033[32mService unfreezing: ~s\033[0m~n", [ServiceId]); service_command(["--destroy", ServiceId | _]) -> ApiKey = get_api_key(), diff --git a/un.ex b/un.ex index ce0f8fb..f68dddd 100755 --- a/un.ex +++ b/un.ex @@ -218,14 +218,14 @@ defmodule Un do defp service_command(["--freeze", service_id | _]) do api_key = get_api_key() - curl_post(api_key, "/services/#{service_id}/sleep", "{}") - IO.puts("#{@green}Service sleeping: #{service_id}#{@reset}") + curl_post(api_key, "/services/#{service_id}/freeze", "{}") + IO.puts("#{@green}Service frozen: #{service_id}#{@reset}") end defp service_command(["--unfreeze", service_id | _]) do api_key = get_api_key() - curl_post(api_key, "/services/#{service_id}/wake", "{}") - IO.puts("#{@green}Service waking: #{service_id}#{@reset}") + curl_post(api_key, "/services/#{service_id}/unfreeze", "{}") + IO.puts("#{@green}Service unfreezing: #{service_id}#{@reset}") end defp service_command(["--destroy", service_id | _]) do diff --git a/un.f90 b/un.f90 index 07045a6..aef3437 100644 --- a/un.f90 +++ b/un.f90 @@ -571,24 +571,24 @@ contains else if (trim(operation) == 'sleep' .and. len_trim(service_id) > 0) then write(full_cmd, '(20A)') & 'TS=$(date +%s); ', & - 'SIG=$(echo -n "$TS:POST:/services/', trim(service_id), '/sleep:" | openssl dgst -sha256 -hmac "', trim(secret_key), '" | cut -d" " -f2); ', & + 'SIG=$(echo -n "$TS:POST:/services/', trim(service_id), '/freeze:" | openssl dgst -sha256 -hmac "', trim(secret_key), '" | cut -d" " -f2); ', & 'curl -s -X POST https://api.unsandbox.com/services/', & - trim(service_id), '/sleep ', & + trim(service_id), '/freeze ', & '-H "Authorization: Bearer ', trim(public_key), '" ', & '-H "X-Timestamp: $TS" ', & '-H "X-Signature: $SIG" >/dev/null && ', & - 'echo -e "\x1b[32mService sleeping: ', trim(service_id), '\x1b[0m"' + 'echo -e "\x1b[32mService frozen: ', trim(service_id), '\x1b[0m"' call execute_command_line(trim(full_cmd), wait=.true.) else if (trim(operation) == 'wake' .and. len_trim(service_id) > 0) then write(full_cmd, '(20A)') & 'TS=$(date +%s); ', & - 'SIG=$(echo -n "$TS:POST:/services/', trim(service_id), '/wake:" | openssl dgst -sha256 -hmac "', trim(secret_key), '" | cut -d" " -f2); ', & + 'SIG=$(echo -n "$TS:POST:/services/', trim(service_id), '/unfreeze:" | openssl dgst -sha256 -hmac "', trim(secret_key), '" | cut -d" " -f2); ', & 'curl -s -X POST https://api.unsandbox.com/services/', & - trim(service_id), '/wake ', & + trim(service_id), '/unfreeze ', & '-H "Authorization: Bearer ', trim(public_key), '" ', & '-H "X-Timestamp: $TS" ', & '-H "X-Signature: $SIG" >/dev/null && ', & - 'echo -e "\x1b[32mService waking: ', trim(service_id), '\x1b[0m"' + 'echo -e "\x1b[32mService unfreezing: ', trim(service_id), '\x1b[0m"' call execute_command_line(trim(full_cmd), wait=.true.) else if (trim(operation) == 'destroy' .and. len_trim(service_id) > 0) then write(full_cmd, '(20A)') & diff --git a/un.forth b/un.forth index cf10d44..a3fe5fe 100644 --- a/un.forth +++ b/un.forth @@ -299,9 +299,9 @@ get-secret-key r@ write-file throw s" '" r@ write-line throw s" TIMESTAMP=$(date +%s)" r@ write-line throw - s" MESSAGE=\"$TIMESTAMP:POST:/services/$SERVICE_ID/sleep:\"" r@ write-line throw + s" MESSAGE=\"$TIMESTAMP:POST:/services/$SERVICE_ID/freeze:\"" r@ write-line throw s" SIGNATURE=$(echo -n \"$MESSAGE\" | openssl dgst -sha256 -hmac \"$SECRET_KEY\" -hex | sed 's/.*= //')" r@ write-line throw - s" curl -s -X POST https://api.unsandbox.com/services/$SERVICE_ID/sleep -H \"Authorization: Bearer $PUBLIC_KEY\" -H \"X-Timestamp: $TIMESTAMP\" -H \"X-Signature: $SIGNATURE\" >/dev/null && echo -e '\\x1b[32mService sleeping: " r@ write-file throw + s" curl -s -X POST https://api.unsandbox.com/services/$SERVICE_ID/freeze -H \"Authorization: Bearer $PUBLIC_KEY\" -H \"X-Timestamp: $TIMESTAMP\" -H \"X-Signature: $SIGNATURE\" >/dev/null && echo -e '\\x1b[32mService frozen: " r@ write-file throw r@ write-file throw s" \\x1b[0m'" r@ write-line throw r> close-file throw @@ -323,9 +323,9 @@ get-secret-key r@ write-file throw s" '" r@ write-line throw s" TIMESTAMP=$(date +%s)" r@ write-line throw - s" MESSAGE=\"$TIMESTAMP:POST:/services/$SERVICE_ID/wake:\"" r@ write-line throw + s" MESSAGE=\"$TIMESTAMP:POST:/services/$SERVICE_ID/unfreeze:\"" r@ write-line throw s" SIGNATURE=$(echo -n \"$MESSAGE\" | openssl dgst -sha256 -hmac \"$SECRET_KEY\" -hex | sed 's/.*= //')" r@ write-line throw - s" curl -s -X POST https://api.unsandbox.com/services/$SERVICE_ID/wake -H \"Authorization: Bearer $PUBLIC_KEY\" -H \"X-Timestamp: $TIMESTAMP\" -H \"X-Signature: $SIGNATURE\" >/dev/null && echo -e '\\x1b[32mService waking: " r@ write-file throw + s" curl -s -X POST https://api.unsandbox.com/services/$SERVICE_ID/unfreeze -H \"Authorization: Bearer $PUBLIC_KEY\" -H \"X-Timestamp: $TIMESTAMP\" -H \"X-Signature: $SIGNATURE\" >/dev/null && echo -e '\\x1b[32mService unfreezing: " r@ write-file throw r@ write-file throw s" \\x1b[0m'" r@ write-line throw r> close-file throw diff --git a/un.fs b/un.fs index 2cd1dbc..fcd2638 100644 --- a/un.fs +++ b/un.fs @@ -786,11 +786,11 @@ let cmdService (args: Args) = | Some logs -> printfn "%s" (logs.ToString()) | None -> () elif args.ServiceSleep.IsSome then - let result = apiRequest (sprintf "/services/%s/sleep" args.ServiceSleep.Value) "POST" None publicKey secretKey - printfn "%sService sleeping: %s%s" green args.ServiceSleep.Value reset + let result = apiRequest (sprintf "/services/%s/freeze" args.ServiceSleep.Value) "POST" None publicKey secretKey + printfn "%sService frozen: %s%s" green args.ServiceSleep.Value reset elif args.ServiceWake.IsSome then - let result = apiRequest (sprintf "/services/%s/wake" args.ServiceWake.Value) "POST" None publicKey secretKey - printfn "%sService waking: %s%s" green args.ServiceWake.Value reset + let result = apiRequest (sprintf "/services/%s/unfreeze" args.ServiceWake.Value) "POST" None publicKey secretKey + printfn "%sService unfreezing: %s%s" green args.ServiceWake.Value reset elif args.ServiceDestroy.IsSome then let result = apiRequest (sprintf "/services/%s" args.ServiceDestroy.Value) "DELETE" None publicKey secretKey printfn "%sService destroyed: %s%s" green args.ServiceDestroy.Value reset diff --git a/un.go b/un.go index cad10cf..a223ace 100644 --- a/un.go +++ b/un.go @@ -673,14 +673,14 @@ func cmdService(serviceName, servicePorts, serviceDomains, serviceType, serviceB } if serviceSleep != "" { - apiRequest("/services/"+serviceSleep+"/sleep", "POST", nil, publicKey, secretKey) - fmt.Printf("%sService sleeping: %s%s\n", Green, serviceSleep, Reset) + apiRequest("/services/"+serviceSleep+"/freeze", "POST", nil, publicKey, secretKey) + fmt.Printf("%sService frozen: %s%s\n", Green, serviceSleep, Reset) return } if serviceWake != "" { - apiRequest("/services/"+serviceWake+"/wake", "POST", nil, publicKey, secretKey) - fmt.Printf("%sService waking: %s%s\n", Green, serviceWake, Reset) + apiRequest("/services/"+serviceWake+"/unfreeze", "POST", nil, publicKey, secretKey) + fmt.Printf("%sService unfreezing: %s%s\n", Green, serviceWake, Reset) return } diff --git a/un.groovy b/un.groovy index 451e7a9..431f452 100644 --- a/un.groovy +++ b/un.groovy @@ -756,14 +756,14 @@ def cmdService(args) { } if (args.serviceSleep) { - apiRequest("/services/${args.serviceSleep}/sleep", 'POST', null, publicKey, secretKey) - println("${GREEN}Service sleeping: ${args.serviceSleep}${RESET}") + apiRequest("/services/${args.serviceSleep}/freeze", 'POST', null, publicKey, secretKey) + println("${GREEN}Service frozen: ${args.serviceSleep}${RESET}") return } if (args.serviceWake) { - apiRequest("/services/${args.serviceWake}/wake", 'POST', null, publicKey, secretKey) - println("${GREEN}Service waking: ${args.serviceWake}${RESET}") + apiRequest("/services/${args.serviceWake}/unfreeze", 'POST', null, publicKey, secretKey) + println("${GREEN}Service unfreezing: ${args.serviceWake}${RESET}") return } diff --git a/un.hs b/un.hs index bca8fb2..76a63b7 100644 --- a/un.hs +++ b/un.hs @@ -464,11 +464,11 @@ serviceCommand opts = do (_, stdout, _) <- curlGet apiKey ("https://api.unsandbox.com/services/" ++ sid ++ "/logs") putStrLn stdout ServiceSleep sid -> do - (_, stdout, _) <- curlPost apiKey ("https://api.unsandbox.com/services/" ++ sid ++ "/sleep") "{}" - putStrLn $ green ++ "Service sleeping: " ++ sid ++ reset + (_, stdout, _) <- curlPost apiKey ("https://api.unsandbox.com/services/" ++ sid ++ "/freeze") "{}" + putStrLn $ green ++ "Service frozen: " ++ sid ++ reset ServiceWake sid -> do - (_, stdout, _) <- curlPost apiKey ("https://api.unsandbox.com/services/" ++ sid ++ "/wake") "{}" - putStrLn $ green ++ "Service waking: " ++ sid ++ reset + (_, stdout, _) <- curlPost apiKey ("https://api.unsandbox.com/services/" ++ sid ++ "/unfreeze") "{}" + putStrLn $ green ++ "Service unfreezing: " ++ sid ++ reset ServiceDestroy sid -> do (_, stdout, _) <- curlDelete apiKey ("https://api.unsandbox.com/services/" ++ sid) putStrLn $ green ++ "Service destroyed: " ++ sid ++ reset diff --git a/un.jl b/un.jl index 4bdfcdd..efee0d3 100755 --- a/un.jl +++ b/un.jl @@ -531,14 +531,14 @@ function cmd_service(args) end if args["sleep"] !== nothing - api_request("/services/$(args["sleep"])/sleep", public_key, secret_key, method="POST") - println("$(GREEN)Service sleeping: $(args["sleep"])$(RESET)") + api_request("/services/$(args["sleep"])/freeze", public_key, secret_key, method="POST") + println("$(GREEN)Service frozen: $(args["sleep"])$(RESET)") return end if args["wake"] !== nothing - api_request("/services/$(args["wake"])/wake", public_key, secret_key, method="POST") - println("$(GREEN)Service waking: $(args["wake"])$(RESET)") + api_request("/services/$(args["wake"])/unfreeze", public_key, secret_key, method="POST") + println("$(GREEN)Service unfreezing: $(args["wake"])$(RESET)") return end diff --git a/un.js b/un.js index ca419b3..1dcdac4 100644 --- a/un.js +++ b/un.js @@ -679,14 +679,14 @@ async function cmdService(args) { } if (args.sleep) { - await apiRequest(`/services/${args.sleep}/sleep`, "POST", null, publicKey, secretKey); - console.log(`${GREEN}Service sleeping: ${args.sleep}${RESET}`); + await apiRequest(`/services/${args.sleep}/freeze`, "POST", null, publicKey, secretKey); + console.log(`${GREEN}Service frozen: ${args.sleep}${RESET}`); return; } if (args.wake) { - await apiRequest(`/services/${args.wake}/wake`, "POST", null, publicKey, secretKey); - console.log(`${GREEN}Service waking: ${args.wake}${RESET}`); + await apiRequest(`/services/${args.wake}/unfreeze`, "POST", null, publicKey, secretKey); + console.log(`${GREEN}Service unfreezing: ${args.wake}${RESET}`); return; } diff --git a/un.kt b/un.kt index 8870868..e711572 100644 --- a/un.kt +++ b/un.kt @@ -317,14 +317,14 @@ fun cmdService(args: Args) { } if (args.serviceSleep != null) { - apiRequest("/services/${args.serviceSleep}/sleep", "POST", null, publicKey, secretKey) - println("${GREEN}Service sleeping: ${args.serviceSleep}${RESET}") + apiRequest("/services/${args.serviceSleep}/freeze", "POST", null, publicKey, secretKey) + println("${GREEN}Service frozen: ${args.serviceSleep}${RESET}") return } if (args.serviceWake != null) { - apiRequest("/services/${args.serviceWake}/wake", "POST", null, publicKey, secretKey) - println("${GREEN}Service waking: ${args.serviceWake}${RESET}") + apiRequest("/services/${args.serviceWake}/unfreeze", "POST", null, publicKey, secretKey) + println("${GREEN}Service unfreezing: ${args.serviceWake}${RESET}") return } diff --git a/un.lisp b/un.lisp index 6f7a7e6..5754293 100644 --- a/un.lisp +++ b/un.lisp @@ -321,11 +321,11 @@ ((string= action "logs") (format t "~a~%" (curl-get api-key (format nil "/services/~a/logs" id)))) ((string= action "sleep") - (curl-post api-key (format nil "/services/~a/sleep" id) "{}") - (format t "~aService sleeping: ~a~a~%" *green* id *reset*)) + (curl-post api-key (format nil "/services/~a/freeze" id) "{}") + (format t "~aService frozen: ~a~a~%" *green* id *reset*)) ((string= action "wake") - (curl-post api-key (format nil "/services/~a/wake" id) "{}") - (format t "~aService waking: ~a~a~%" *green* id *reset*)) + (curl-post api-key (format nil "/services/~a/unfreeze" id) "{}") + (format t "~aService unfreezing: ~a~a~%" *green* id *reset*)) ((string= action "destroy") (curl-delete api-key (format nil "/services/~a" id)) (format t "~aService destroyed: ~a~a~%" *green* id *reset*)) diff --git a/un.lua b/un.lua index 6132884..cc68967 100644 --- a/un.lua +++ b/un.lua @@ -719,14 +719,14 @@ local function cmd_service(options) end if options.sleep then - api_request("/services/" .. options.sleep .. "/sleep", "POST", nil, keys) - print(GREEN .. "Service sleeping: " .. options.sleep .. RESET) + api_request("/services/" .. options.sleep .. "/freeze", "POST", nil, keys) + print(GREEN .. "Service frozen: " .. options.sleep .. RESET) return end if options.wake then - api_request("/services/" .. options.wake .. "/wake", "POST", nil, keys) - print(GREEN .. "Service waking: " .. options.wake .. RESET) + api_request("/services/" .. options.wake .. "/unfreeze", "POST", nil, keys) + print(GREEN .. "Service unfreezing: " .. options.wake .. RESET) return end diff --git a/un.m b/un.m index e40d1f7..c2db71b 100644 --- a/un.m +++ b/un.m @@ -818,16 +818,16 @@ void cmdService(NSArray* args) { } if (sleepId) { - NSString* endpoint = [NSString stringWithFormat:@"/services/%@/sleep", sleepId]; + NSString* endpoint = [NSString stringWithFormat:@"/services/%@/freeze", sleepId]; apiRequest(endpoint, @"POST", nil, publicKey, secretKey); - printf("%sService sleeping: %s%s\n", [GREEN UTF8String], [sleepId UTF8String], [RESET UTF8String]); + printf("%sService frozen: %s%s\n", [GREEN UTF8String], [sleepId UTF8String], [RESET UTF8String]); return; } if (wakeId) { - NSString* endpoint = [NSString stringWithFormat:@"/services/%@/wake", wakeId]; + NSString* endpoint = [NSString stringWithFormat:@"/services/%@/unfreeze", wakeId]; apiRequest(endpoint, @"POST", nil, publicKey, secretKey); - printf("%sService waking: %s%s\n", [GREEN UTF8String], [wakeId UTF8String], [RESET UTF8String]); + printf("%sService unfreezing: %s%s\n", [GREEN UTF8String], [wakeId UTF8String], [RESET UTF8String]); return; } diff --git a/un.ml b/un.ml index 913c5e7..e0b8932 100755 --- a/un.ml +++ b/un.ml @@ -647,11 +647,11 @@ let service_command action name ports bootstrap bootstrap_file service_type netw let oc = open_out tmp_file in output_string oc "{}"; close_out oc; - let cmd = Printf.sprintf "curl -s -X POST https://api.unsandbox.com/services/%s/sleep -H 'Content-Type: application/json' -H 'Authorization: Bearer %s' -d @%s" + let cmd = Printf.sprintf "curl -s -X POST https://api.unsandbox.com/services/%s/freeze -H 'Content-Type: application/json' -H 'Authorization: Bearer %s' -d @%s" sid api_key tmp_file in let _ = Sys.command cmd in Sys.remove tmp_file; - Printf.printf "%sService sleeping: %s%s\n" green sid reset + Printf.printf "%sService frozen: %s%s\n" green sid reset | None -> Printf.fprintf stderr "Error: --freeze requires service ID\n"; exit 1) @@ -662,11 +662,11 @@ let service_command action name ports bootstrap bootstrap_file service_type netw let oc = open_out tmp_file in output_string oc "{}"; close_out oc; - let cmd = Printf.sprintf "curl -s -X POST https://api.unsandbox.com/services/%s/wake -H 'Content-Type: application/json' -H 'Authorization: Bearer %s' -d @%s" + let cmd = Printf.sprintf "curl -s -X POST https://api.unsandbox.com/services/%s/unfreeze -H 'Content-Type: application/json' -H 'Authorization: Bearer %s' -d @%s" sid api_key tmp_file in let _ = Sys.command cmd in Sys.remove tmp_file; - Printf.printf "%sService waking: %s%s\n" green sid reset + Printf.printf "%sService unfreezing: %s%s\n" green sid reset | None -> Printf.fprintf stderr "Error: --unfreeze requires service ID\n"; exit 1) diff --git a/un.nim b/un.nim index 726c70a..d874dc7 100644 --- a/un.nim +++ b/un.nim @@ -336,19 +336,19 @@ proc cmdService(name, ports, bootstrap, bootstrapFile, serviceType: string, list return if sleep != "": - let path = fmt"/services/{sleep}/sleep" + let path = fmt"/services/{sleep}/freeze" let authHeaders = buildAuthHeaders("POST", path, "", publicKey, secretKey) - let cmd = fmt"""curl -s -X POST '{API_BASE}/services/{sleep}/sleep' {authHeaders}""" + let cmd = fmt"""curl -s -X POST '{API_BASE}/services/{sleep}/freeze' {authHeaders}""" discard execCurl(cmd) - echo GREEN & "Service sleeping: " & sleep & RESET + echo GREEN & "Service frozen: " & sleep & RESET return if wake != "": - let path = fmt"/services/{wake}/wake" + let path = fmt"/services/{wake}/unfreeze" let authHeaders = buildAuthHeaders("POST", path, "", publicKey, secretKey) - let cmd = fmt"""curl -s -X POST '{API_BASE}/services/{wake}/wake' {authHeaders}""" + let cmd = fmt"""curl -s -X POST '{API_BASE}/services/{wake}/unfreeze' {authHeaders}""" discard execCurl(cmd) - echo GREEN & "Service waking: " & wake & RESET + echo GREEN & "Service unfreezing: " & wake & RESET return if destroy != "": diff --git a/un.php b/un.php index 5d7101a..7f0654c 100755 --- a/un.php +++ b/un.php @@ -643,14 +643,14 @@ function cmd_service($options) { } if ($options['sleep']) { - api_request("/services/{$options['sleep']}/sleep", 'POST', null, $keys); - echo GREEN . "Service sleeping: {$options['sleep']}" . RESET . "\n"; + api_request("/services/{$options['sleep']}/freeze", 'POST', null, $keys); + echo GREEN . "Service frozen: {$options['sleep']}" . RESET . "\n"; return; } if ($options['wake']) { - api_request("/services/{$options['wake']}/wake", 'POST', null, $keys); - echo GREEN . "Service waking: {$options['wake']}" . RESET . "\n"; + api_request("/services/{$options['wake']}/unfreeze", 'POST', null, $keys); + echo GREEN . "Service unfreezing: {$options['wake']}" . RESET . "\n"; return; } diff --git a/un.pl b/un.pl index 81b4ec5..98409a1 100644 --- a/un.pl +++ b/un.pl @@ -507,14 +507,14 @@ sub cmd_service { } if ($options->{sleep}) { - api_request("/services/$options->{sleep}/sleep", 'POST', undef, $public_key, $secret_key); - print "${GREEN}Service sleeping: $options->{sleep}${RESET}\n"; + api_request("/services/$options->{sleep}/freeze", 'POST', undef, $public_key, $secret_key); + print "${GREEN}Service frozen: $options->{sleep}${RESET}\n"; return; } if ($options->{wake}) { - api_request("/services/$options->{wake}/wake", 'POST', undef, $public_key, $secret_key); - print "${GREEN}Service waking: $options->{wake}${RESET}\n"; + api_request("/services/$options->{wake}/unfreeze", 'POST', undef, $public_key, $secret_key); + print "${GREEN}Service unfreezing: $options->{wake}${RESET}\n"; return; } diff --git a/un.pro b/un.pro index bf19353..78902dd 100644 --- a/un.pro +++ b/un.pro @@ -208,7 +208,7 @@ service_sleep(ServiceId) :- get_public_key(PublicKey), get_secret_key(SecretKey), format(atom(Cmd), - 'TIMESTAMP=$(date +%s); MESSAGE="$TIMESTAMP:POST:/services/~w/sleep:"; SIGNATURE=$(echo -n "$MESSAGE" | openssl dgst -sha256 -hmac "~w" -hex | sed \'\'s/.*= //\'\'); curl -s -X POST https://api.unsandbox.com/services/~w/sleep -H "Authorization: Bearer ~w" -H "X-Timestamp: $TIMESTAMP" -H "X-Signature: $SIGNATURE" >/dev/null && echo -e "\\x1b[32mService sleeping: ~w\\x1b[0m"', + 'TIMESTAMP=$(date +%s); MESSAGE="$TIMESTAMP:POST:/services/~w/freeze:"; SIGNATURE=$(echo -n "$MESSAGE" | openssl dgst -sha256 -hmac "~w" -hex | sed \'\'s/.*= //\'\'); curl -s -X POST https://api.unsandbox.com/services/~w/freeze -H "Authorization: Bearer ~w" -H "X-Timestamp: $TIMESTAMP" -H "X-Signature: $SIGNATURE" >/dev/null && echo -e "\\x1b[32mService frozen: ~w\\x1b[0m"', [ServiceId, SecretKey, ServiceId, PublicKey, ServiceId]), shell(Cmd, 0). @@ -217,7 +217,7 @@ service_wake(ServiceId) :- get_public_key(PublicKey), get_secret_key(SecretKey), format(atom(Cmd), - 'TIMESTAMP=$(date +%s); MESSAGE="$TIMESTAMP:POST:/services/~w/wake:"; SIGNATURE=$(echo -n "$MESSAGE" | openssl dgst -sha256 -hmac "~w" -hex | sed \'\'s/.*= //\'\'); curl -s -X POST https://api.unsandbox.com/services/~w/wake -H "Authorization: Bearer ~w" -H "X-Timestamp: $TIMESTAMP" -H "X-Signature: $SIGNATURE" >/dev/null && echo -e "\\x1b[32mService waking: ~w\\x1b[0m"', + 'TIMESTAMP=$(date +%s); MESSAGE="$TIMESTAMP:POST:/services/~w/unfreeze:"; SIGNATURE=$(echo -n "$MESSAGE" | openssl dgst -sha256 -hmac "~w" -hex | sed \'\'s/.*= //\'\'); curl -s -X POST https://api.unsandbox.com/services/~w/unfreeze -H "Authorization: Bearer ~w" -H "X-Timestamp: $TIMESTAMP" -H "X-Signature: $SIGNATURE" >/dev/null && echo -e "\\x1b[32mService unfreezing: ~w\\x1b[0m"', [ServiceId, SecretKey, ServiceId, PublicKey, ServiceId]), shell(Cmd, 0). diff --git a/un.ps1 b/un.ps1 index cf54659..6958c34 100644 --- a/un.ps1 +++ b/un.ps1 @@ -518,16 +518,16 @@ function Invoke-Service { if ($Args -contains "--freeze") { $idx = [array]::IndexOf($Args, "--freeze") $serviceId = $Args[$idx + 1] - Invoke-Api -Endpoint "/services/$serviceId/sleep" -Method "POST" -Body "{}" - Write-Host "`e[32mService sleeping: $serviceId`e[0m" + Invoke-Api -Endpoint "/services/$serviceId/freeze" -Method "POST" -Body "{}" + Write-Host "`e[32mService frozen: $serviceId`e[0m" return } if ($Args -contains "--unfreeze") { $idx = [array]::IndexOf($Args, "--unfreeze") $serviceId = $Args[$idx + 1] - Invoke-Api -Endpoint "/services/$serviceId/wake" -Method "POST" -Body "{}" - Write-Host "`e[32mService waking: $serviceId`e[0m" + Invoke-Api -Endpoint "/services/$serviceId/unfreeze" -Method "POST" -Body "{}" + Write-Host "`e[32mService unfreezing: $serviceId`e[0m" return } diff --git a/un.py b/un.py index 4315c2c..c258a99 100644 --- a/un.py +++ b/un.py @@ -730,13 +730,13 @@ def cmd_service(args): return if args.sleep: - result = api_request(f"/services/{args.sleep}/sleep", method="POST", public_key=public_key, secret_key=secret_key) - print(f"{GREEN}Service sleeping: {args.sleep}{RESET}") + result = api_request(f"/services/{args.sleep}/freeze", method="POST", public_key=public_key, secret_key=secret_key) + print(f"{GREEN}Service frozen: {args.sleep}{RESET}") return if args.wake: - result = api_request(f"/services/{args.wake}/wake", method="POST", public_key=public_key, secret_key=secret_key) - print(f"{GREEN}Service waking: {args.wake}{RESET}") + result = api_request(f"/services/{args.wake}/unfreeze", method="POST", public_key=public_key, secret_key=secret_key) + print(f"{GREEN}Service unfreezing: {args.wake}{RESET}") return if args.destroy: @@ -934,8 +934,8 @@ Examples: service_parser.add_argument("--info", metavar="ID", help="Get service details") service_parser.add_argument("--tail", metavar="ID", help="Get last 9000 lines of logs") service_parser.add_argument("--logs", metavar="ID", help="Get all logs") - service_parser.add_argument("--freeze", "--sleep", dest="sleep", metavar="ID", help="Freeze service") - service_parser.add_argument("--unfreeze", "--wake", dest="wake", metavar="ID", help="Unfreeze service") + service_parser.add_argument("--freeze", "--freeze", dest="sleep", metavar="ID", help="Freeze service") + service_parser.add_argument("--unfreeze", "--unfreeze", dest="wake", metavar="ID", help="Unfreeze service") service_parser.add_argument("--destroy", metavar="ID", help="Destroy service") service_parser.add_argument("--resize", metavar="ID", help="Resize service vCPU/memory") service_parser.add_argument("--snapshot", metavar="SERVICE_ID", help="Create snapshot of service") diff --git a/un.r b/un.r index d9f6399..1729ee3 100644 --- a/un.r +++ b/un.r @@ -695,14 +695,14 @@ cmd_service <- function(args) { } if (!is.null(args$sleep)) { - result <- api_request(paste0("/services/", args$sleep, "/sleep"), public_key, secret_key, method = "POST") - cat(sprintf("%sService sleeping: %s%s\n", GREEN, args$sleep, RESET)) + result <- api_request(paste0("/services/", args$sleep, "/freeze"), public_key, secret_key, method = "POST") + cat(sprintf("%sService frozen: %s%s\n", GREEN, args$sleep, RESET)) return() } if (!is.null(args$wake)) { - result <- api_request(paste0("/services/", args$wake, "/wake"), public_key, secret_key, method = "POST") - cat(sprintf("%sService waking: %s%s\n", GREEN, args$wake, RESET)) + result <- api_request(paste0("/services/", args$wake, "/unfreeze"), public_key, secret_key, method = "POST") + cat(sprintf("%sService unfreezing: %s%s\n", GREEN, args$wake, RESET)) return() } diff --git a/un.raku b/un.raku index 3cb0f5b..f95bba5 100644 --- a/un.raku +++ b/un.raku @@ -625,14 +625,14 @@ sub cmd-service(@args) { } if $sleep-id { - api-request("/services/$sleep-id/sleep", 'POST', :$public-key, :$secret-key); - say "{$GREEN}Service sleeping: $sleep-id{$RESET}"; + api-request("/services/$sleep-id/freeze", 'POST', :$public-key, :$secret-key); + say "{$GREEN}Service frozen: $sleep-id{$RESET}"; return; } if $wake-id { - api-request("/services/$wake-id/wake", 'POST', :$public-key, :$secret-key); - say "{$GREEN}Service waking: $wake-id{$RESET}"; + api-request("/services/$wake-id/unfreeze", 'POST', :$public-key, :$secret-key); + say "{$GREEN}Service unfreezing: $wake-id{$RESET}"; return; } diff --git a/un.rb b/un.rb index 9a79316..773ec35 100644 --- a/un.rb +++ b/un.rb @@ -662,14 +662,14 @@ def cmd_service(options) end if options[:sleep] - api_request("/services/#{options[:sleep]}/sleep", method: 'POST', keys: keys) - puts "#{GREEN}Service sleeping: #{options[:sleep]}#{RESET}" + api_request("/services/#{options[:sleep]}/freeze", method: 'POST', keys: keys) + puts "#{GREEN}Service frozen: #{options[:sleep]}#{RESET}" return end if options[:wake] - api_request("/services/#{options[:wake]}/wake", method: 'POST', keys: keys) - puts "#{GREEN}Service waking: #{options[:wake]}#{RESET}" + api_request("/services/#{options[:wake]}/unfreeze", method: 'POST', keys: keys) + puts "#{GREEN}Service unfreezing: #{options[:wake]}#{RESET}" return end diff --git a/un.rs b/un.rs index e2cb6b1..51a63a4 100644 --- a/un.rs +++ b/un.rs @@ -616,14 +616,14 @@ fn cmd_service( } if let Some(id) = sleep { - api_request(&format!("/services/{}/sleep", id), "POST", None, public_key, secret_key); - println!("{}Service sleeping: {}{}", GREEN, id, RESET); + api_request(&format!("/services/{}/freeze", id), "POST", None, public_key, secret_key); + println!("{}Service frozen: {}{}", GREEN, id, RESET); return; } if let Some(id) = wake { - api_request(&format!("/services/{}/wake", id), "POST", None, public_key, secret_key); - println!("{}Service waking: {}{}", GREEN, id, RESET); + api_request(&format!("/services/{}/unfreeze", id), "POST", None, public_key, secret_key); + println!("{}Service unfreezing: {}{}", GREEN, id, RESET); return; } diff --git a/un.scm b/un.scm index 4906b10..1940404 100644 --- a/un.scm +++ b/un.scm @@ -479,11 +479,11 @@ (display (curl-get api-key (format #f "/services/~a/logs" id))) (newline)) ((equal? action "sleep") - (curl-post api-key (format #f "/services/~a/sleep" id) "{}") - (format #t "~aService sleeping: ~a~a\n" green id reset)) + (curl-post api-key (format #f "/services/~a/freeze" id) "{}") + (format #t "~aService frozen: ~a~a\n" green id reset)) ((equal? action "wake") - (curl-post api-key (format #f "/services/~a/wake" id) "{}") - (format #t "~aService waking: ~a~a\n" green id reset)) + (curl-post api-key (format #f "/services/~a/unfreeze" id) "{}") + (format #t "~aService unfreezing: ~a~a\n" green id reset)) ((equal? action "destroy") (curl-delete api-key (format #f "/services/~a" id)) (format #t "~aService destroyed: ~a~a\n" green id reset)) diff --git a/un.sh b/un.sh index e2be46d..3e31a04 100644 --- a/un.sh +++ b/un.sh @@ -970,14 +970,14 @@ cmd_service() { fi if [[ -n "$sleep" ]]; then - api_request "/services/$sleep/sleep" "POST" "" "$api_key" > /dev/null - echo -e "${GREEN}Service sleeping: $sleep${RESET}" + api_request "/services/$sleep/freeze" "POST" "" "$api_key" > /dev/null + echo -e "${GREEN}Service frozen: $sleep${RESET}" return fi if [[ -n "$wake" ]]; then - api_request "/services/$wake/wake" "POST" "" "$api_key" > /dev/null - echo -e "${GREEN}Service waking: $wake${RESET}" + api_request "/services/$wake/unfreeze" "POST" "" "$api_key" > /dev/null + echo -e "${GREEN}Service unfreezing: $wake${RESET}" return fi diff --git a/un.tcl b/un.tcl index e33a89a..04a12c1 100755 --- a/un.tcl +++ b/un.tcl @@ -830,14 +830,14 @@ proc cmd_service {args} { } if {$sleep_id ne ""} { - api_request "/services/$sleep_id/sleep" "POST" {} $public_key $secret_key - puts "${::GREEN}Service sleeping: $sleep_id${::RESET}" + api_request "/services/$sleep_id/freeze" "POST" {} $public_key $secret_key + puts "${::GREEN}Service frozen: $sleep_id${::RESET}" return } if {$wake_id ne ""} { - api_request "/services/$wake_id/wake" "POST" {} $public_key $secret_key - puts "${::GREEN}Service waking: $wake_id${::RESET}" + api_request "/services/$wake_id/unfreeze" "POST" {} $public_key $secret_key + puts "${::GREEN}Service unfreezing: $wake_id${::RESET}" return } diff --git a/un.ts b/un.ts index dfb2339..0a54dc3 100644 --- a/un.ts +++ b/un.ts @@ -610,14 +610,14 @@ async function cmdService(args: Args): Promise { } if (args.sleep) { - await apiRequest(`/services/${args.sleep}/sleep`, "POST", null, keys); - console.log(`${GREEN}Service sleeping: ${args.sleep}${RESET}`); + await apiRequest(`/services/${args.sleep}/freeze`, "POST", null, keys); + console.log(`${GREEN}Service frozen: ${args.sleep}${RESET}`); return; } if (args.wake) { - await apiRequest(`/services/${args.wake}/wake`, "POST", null, keys); - console.log(`${GREEN}Service waking: ${args.wake}${RESET}`); + await apiRequest(`/services/${args.wake}/unfreeze`, "POST", null, keys); + console.log(`${GREEN}Service unfreezing: ${args.wake}${RESET}`); return; } diff --git a/un.v b/un.v index 613d8d9..092f7dd 100644 --- a/un.v +++ b/un.v @@ -439,16 +439,16 @@ fn cmd_service(name string, ports string, service_type string, bootstrap string, } if sleep != '' { - cmd := "TIMESTAMP=\$(date +%s); MESSAGE=\"\$TIMESTAMP:POST:/services/${sleep}/sleep:\"; SIGNATURE=\$(echo -n \"\$MESSAGE\" | openssl dgst -sha256 -hmac '${secret_key}' -hex | sed 's/.*= //'); curl -s -X POST '${api_base}/services/${sleep}/sleep' -H 'Authorization: Bearer ${pub_key}' -H \"X-Timestamp: \$TIMESTAMP\" -H \"X-Signature: \$SIGNATURE\"" + cmd := "TIMESTAMP=\$(date +%s); MESSAGE=\"\$TIMESTAMP:POST:/services/${sleep}/freeze:\"; SIGNATURE=\$(echo -n \"\$MESSAGE\" | openssl dgst -sha256 -hmac '${secret_key}' -hex | sed 's/.*= //'); curl -s -X POST '${api_base}/services/${sleep}/freeze' -H 'Authorization: Bearer ${pub_key}' -H \"X-Timestamp: \$TIMESTAMP\" -H \"X-Signature: \$SIGNATURE\"" exec_curl(cmd) - println('${green}Service sleeping: ${sleep}${reset}') + println('${green}Service frozen: ${sleep}${reset}') return } if wake != '' { - cmd := "TIMESTAMP=\$(date +%s); MESSAGE=\"\$TIMESTAMP:POST:/services/${wake}/wake:\"; SIGNATURE=\$(echo -n \"\$MESSAGE\" | openssl dgst -sha256 -hmac '${secret_key}' -hex | sed 's/.*= //'); curl -s -X POST '${api_base}/services/${wake}/wake' -H 'Authorization: Bearer ${pub_key}' -H \"X-Timestamp: \$TIMESTAMP\" -H \"X-Signature: \$SIGNATURE\"" + cmd := "TIMESTAMP=\$(date +%s); MESSAGE=\"\$TIMESTAMP:POST:/services/${wake}/unfreeze:\"; SIGNATURE=\$(echo -n \"\$MESSAGE\" | openssl dgst -sha256 -hmac '${secret_key}' -hex | sed 's/.*= //'); curl -s -X POST '${api_base}/services/${wake}/unfreeze' -H 'Authorization: Bearer ${pub_key}' -H \"X-Timestamp: \$TIMESTAMP\" -H \"X-Signature: \$SIGNATURE\"" exec_curl(cmd) - println('${green}Service waking: ${wake}${reset}') + println('${green}Service unfreezing: ${wake}${reset}') return } diff --git a/un_deno.ts b/un_deno.ts index 19c9edb..a080f3e 100644 --- a/un_deno.ts +++ b/un_deno.ts @@ -549,13 +549,13 @@ async function cmdService(args: string[]) { } if (sleepId) { - await apiRequest(`/services/${sleepId}/sleep`, "POST", undefined, keys); + await apiRequest(`/services/${sleepId}/freeze`, "POST", undefined, keys); console.log(`${GREEN}Service sleeping: ${sleepId}${RESET}`); return; } if (wakeId) { - await apiRequest(`/services/${wakeId}/wake`, "POST", undefined, keys); + await apiRequest(`/services/${wakeId}/unfreeze`, "POST", undefined, keys); console.log(`${GREEN}Service waking: ${wakeId}${RESET}`); return; }