Skip to content

Commit 984dcda

Browse files
committed
Minor changes to slicer-up for Linux + Mac
Signed-off-by: Alex Ellis (OpenFaaS Ltd) <alexellis2@gmail.com>
1 parent 4f86af3 commit 984dcda

File tree

1 file changed

+25
-26
lines changed

1 file changed

+25
-26
lines changed

slicer-up.sh

Lines changed: 25 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ _cleanup() {
2525
trap _cleanup EXIT
2626

2727
HOST_GROUP="${SLICER_HOST_GROUP:-}"
28-
SOCKET_PATH="${SLICER_SOCKET_PATH:-./slicer/slicer.sock}"
28+
SOCKET_PATH="./slicer/slicer.sock"
2929
PID_FILE="$STATE_DIR/slicer.pid"
3030
LOG_FILE="$STATE_DIR/slicer.log"
3131
USERDATA_FILE="$STATE_DIR/userdata.sh"
@@ -34,7 +34,7 @@ HOST_PROJECT_NAME="$(basename "$HOST_PROJECT_DIR")"
3434
GUEST_PROJECT_DIR="/home/ubuntu/$HOST_PROJECT_NAME"
3535
SITE_SERVICE="blog.service"
3636
LEGACY_SITE_SERVICE="ofblog-site.service"
37-
SLICER_API_URL="${SLICER_API_URL:-${SLICER_SOCKET_PATH:-}}"
37+
SLICER_URL="${SLICER_URL:-}"
3838
VM_NAME="${HOST_GROUP}-1"
3939
DEFAULT_HOST_GROUP="ofblog"
4040
MAC_HOST_GROUP="sbox"
@@ -65,8 +65,8 @@ _configure_slicer_with_url() {
6565
fi
6666

6767
SLICER_WITH_URL=("${cmd[@]}")
68-
if [[ -n "$SLICER_API_URL" ]]; then
69-
SLICER_WITH_URL+=(--url "$SLICER_API_URL")
68+
if [[ -n "$SLICER_URL" ]]; then
69+
SLICER_WITH_URL+=(--url "$SLICER_URL")
7070
fi
7171
}
7272

@@ -90,7 +90,7 @@ Usage:
9090
Notes:
9191
- Commands use a unix-socket API.
9292
- If SLICER_INFO reports Server OS=darwin and arch=arm64, defaults use slicer-mac conventions.
93-
- If SLICER_API_URL is empty, we fall back to slicer's default.
93+
- If SLICER_URL is unset, defaults are local slicer-mac socket conventions when applicable.
9494
- Set SLICER_TOKEN or SLICER_TOKEN_FILE for remote slicer API access.
9595
- Set SLICER_USE_VM_FORWARD=1 to use forwarded localhost access when VM IP is not reachable.
9696
- workspace defaults to the script directory.
@@ -141,7 +141,7 @@ _has_vm() {
141141
}
142142

143143
_wait_for_socket() {
144-
if [[ "$SLICER_API_URL" != /* && "$SLICER_API_URL" != unix://* ]]; then
144+
if [[ "$SLICER_URL" != /* && "$SLICER_URL" != unix://* ]]; then
145145
return 0
146146
fi
147147
local i=0
@@ -165,38 +165,37 @@ _configure_runtime_from_slicer_info() {
165165
return 0
166166
fi
167167

168-
local info server_os server_arch
168+
local info server_os server_arch tagged_vm
169169
info="$(_query_slicer_info)"
170+
tagged_vm="$("${SLICER_WITH_URL[@]}" vm list 2>/dev/null | awk -v tag="${SLICER_VM_TAG:-}" '$NF == tag && tag != "" {print $1; exit}')"
170171
if [[ -n "$info" ]]; then
171172
server_os="$(printf '%s\n' "$info" | awk -F: '/^Server OS:/ {gsub(/^[[:space:]]+|[[:space:]]+$/, "", $2); print tolower($2)}' | head -n1)"
172173
server_arch="$(printf '%s\n' "$info" | awk -F: '/^Server arch:/ {gsub(/^[[:space:]]+|[[:space:]]+$/, "", $2); print tolower($2)}' | head -n1)"
173174

174175
if [[ -z "${SLICER_HOST_GROUP:-}" ]]; then
175-
if [[ "$server_os" == "darwin" && "$server_arch" == "arm64" ]]; then
176+
if [[ -n "$tagged_vm" ]]; then
177+
HOST_GROUP="${tagged_vm%%-*}"
178+
VM_NAME="$tagged_vm"
179+
elif [[ "$server_os" == "darwin" && "$server_arch" == "arm64" ]]; then
176180
HOST_GROUP="$MAC_HOST_GROUP"
181+
VM_NAME="${HOST_GROUP}-1"
177182
else
178183
HOST_GROUP="$DEFAULT_HOST_GROUP"
184+
VM_NAME="${HOST_GROUP}-1"
179185
fi
180-
VM_NAME="${HOST_GROUP}-1"
181186
fi
182187

183-
if [[ -z "${SLICER_SOCKET_PATH:-}" && -z "${SLICER_API_URL:-}" && "$server_os" == "darwin" && "$server_arch" == "arm64" ]]; then
184-
SLICER_API_URL="/Users/alex/slicer-mac/slicer.sock"
185-
SOCKET_PATH="$SLICER_API_URL"
188+
if [[ -z "${SLICER_URL}" && "$server_os" == "darwin" && "$server_arch" == "arm64" ]]; then
189+
SLICER_URL="/Users/alex/slicer-mac/slicer.sock"
190+
SOCKET_PATH="$SLICER_URL"
186191
fi
187192
elif [[ -z "${SLICER_HOST_GROUP:-}" ]]; then
188193
HOST_GROUP="$DEFAULT_HOST_GROUP"
189194
VM_NAME="${HOST_GROUP}-1"
190195
fi
191196

192-
if [[ -n "${SLICER_SOCKET_PATH:-}" ]]; then
193-
SOCKET_PATH="$SLICER_SOCKET_PATH"
194-
if [[ -z "$SLICER_API_URL" ]]; then
195-
SLICER_API_URL="$SLICER_SOCKET_PATH"
196-
fi
197-
fi
198-
if [[ -z "$SLICER_API_URL" ]]; then
199-
SLICER_API_URL="$SOCKET_PATH"
197+
if [[ -z "$SLICER_URL" ]]; then
198+
SLICER_URL="$SOCKET_PATH"
200199
fi
201200

202201
_configure_slicer_with_url
@@ -256,7 +255,7 @@ _get_vm_name() {
256255
if [[ -n "${SLICER_VM_TAG:-}" ]]; then
257256
vm_name="$(
258257
"${SLICER_WITH_URL[@]}" vm list 2>/dev/null \
259-
| awk -v host="${HOST_GROUP}" -v tag="${SLICER_VM_TAG}" '$1 ~ "^" host "-[0-9]+$" && $NF == tag {print $1}' \
258+
| awk -v tag="${SLICER_VM_TAG}" '$NF == tag {print $1}' \
260259
| head -n1 \
261260
|| true
262261
)"
@@ -410,13 +409,13 @@ _wait_for_forward() {
410409
}
411410

412411
_forward_port_listening() {
413-
if command -v lsof >/dev/null 2>&1; then
414-
lsof -tiTCP -sTCP:LISTEN -Pn "tcp:${SLICER_VM_FORWARD_PORT}" >/dev/null 2>&1
412+
if command -v nc >/dev/null 2>&1; then
413+
nc -z 127.0.0.1 "$SLICER_VM_FORWARD_PORT" >/dev/null 2>&1
415414
return $?
416415
fi
417416

418-
if command -v nc >/dev/null 2>&1; then
419-
nc -z 127.0.0.1 "$SLICER_VM_FORWARD_PORT" >/dev/null 2>&1
417+
if command -v lsof >/dev/null 2>&1; then
418+
lsof -iTCP -P -n -sTCP:LISTEN 2>/dev/null | grep -qE "(^|[[:space:]])127\\.0\\.0\\.1:${SLICER_VM_FORWARD_PORT}([[:space:]]|$)"
420419
return $?
421420
fi
422421

@@ -710,7 +709,7 @@ up() {
710709
_cleanup_host_stale_artifacts
711710
SLICER_CREATED_VM_NAME=""
712711
if ! _api_ready; then
713-
_log "slicer API is not reachable at ${SLICER_API_URL}"
712+
_log "slicer API is not reachable at ${SLICER_URL}"
714713
return 1
715714
fi
716715

0 commit comments

Comments
 (0)