Skip to content

Instantly share code, notes, and snippets.

@candlerb
candlerb / go-project-layout.md
Last active April 24, 2024 19:22
Suggestions for go project layout

If someone asked me the question "what layout should I use for my Go code repository?", I'd start by asking back "what are you building: an executable, or a library?"

Single executable

Stage 1: single source file

Create a directory named however you want your final executable to be called (e.g. "mycommand"), change into that directory, and create the following files:

@candlerb
candlerb / vault.py
Last active February 23, 2022 10:17
python-social-auth plugin for Hashicorp Vault OIDC Provider. See also https://github.com/python-social-auth/social-core/pull/668
"""
Backend for Hashicorp Vault OIDC Identity Provider in Vault 1.9+
https://www.vaultproject.io/docs/secrets/identity/oidc-provider
"""
import base64
from social_core.backends.open_id_connect import OpenIdConnectAuth
from social_core.utils import cache
@candlerb
candlerb / redirector.go
Created February 10, 2022 17:02
Tiny standalone daemon to accept HTTP requests on port 80 and redirect client to HTTPS
package main
import (
"fmt"
"net/http"
"os"
"strings"
)
func redirect(w http.ResponseWriter, req *http.Request) {
@candlerb
candlerb / gist:572ec8c87055942a77e329942b8724f6
Created September 21, 2021 09:38
Backtrace for vector issue with loki
Sep 21 09:35:24 loki systemd[1]: Starting Vector...
Sep 21 09:35:24 loki vector[24928]: √ Loaded ["/etc/vector/vector.toml"]
Sep 21 09:35:24 loki vector[24928]: √ Component configuration
Sep 21 09:35:24 loki vector[24928]: √ Health check "loki"
Sep 21 09:35:24 loki vector[24928]: ------------------------------------
Sep 21 09:35:24 loki vector[24928]: Validated
Sep 21 09:35:24 loki systemd[1]: Started Vector.
Sep 21 09:35:24 loki vector[24932]: Sep 21 09:35:24.385 INFO vector::app: Log level is enabled. level="vector=trace,codec=trace,vrl=trace,file_source=trace,tower_limit=trace,rdkafka=trace" enable_datadog_tracing=false
Sep 21 09:35:24 loki vector[24932]: Sep 21 09:35:24.386 INFO vector::app: Loading configs. paths=["/etc/vector/vector.toml"]
Sep 21 09:35:24 loki vector[24932]: Sep 21 09:35:24.417 DEBUG vector::tls::settings: Fetching system root certs.
@candlerb
candlerb / gf-run.py
Created July 12, 2021 17:28
Simplified gf-run.py
#!/usr/bin/python3
import os
import shutil
import subprocess
import sys
index = int(sys.argv[1])
num_disks = int(sys.argv[2])
base = os.path.abspath("mybase.img")
@candlerb
candlerb / err.txt
Created July 12, 2021 16:33
Debug output from guestfs when not starting correctly
libguestfs: create: flags = 0, handle = 0x55be3d261850, program = guestfish
libguestfs: command: run: qemu-img
libguestfs: command: run: \ create
libguestfs: command: run: \ -f qcow2
libguestfs: command: run: \ -o backing_file=/home/nsrc/nsrc-gns3/scripts/mybase.img,compat=1.1
libguestfs: command: run: \ /tmp/gf-run.20461/node0.qcow2
Formatting '/tmp/gf-run.20461/node0.qcow2', fmt=qcow2 size=1474560 compat=1.1 backing_file=/home/nsrc/nsrc-gns3/scripts/mybase.img cluster_size=65536 lazy_refcounts=off refcount_bits=16
libguestfs: command: run: qemu-img
libguestfs: command: run: \ create
libguestfs: command: run: \ -f qcow2
@candlerb
candlerb / gf-run.py
Created July 12, 2021 16:30
gf-run.py (create qcow2 clones and upload data to them)
#!/usr/bin/python3
import os
import shutil
import subprocess
import sys
index = int(sys.argv[1])
num_disks = int(sys.argv[2])
base = os.path.abspath("mybase.img")
@candlerb
candlerb / gf-par.py
Created July 12, 2021 16:28
gf-par.py (run multiple instances of gf-run.py in parallel)
#!/usr/bin/python3
import subprocess, sys
COUNT = 36
CONCURRENCY = 12
NUM_DISKS = 46
jobs = []
errors = []
@candlerb
candlerb / project.gns3
Created May 6, 2021 08:17
gns3-web-ui-1125 project.gns3
{
"auto_close": false,
"auto_open": false,
"auto_start": false,
"drawing_grid_size": 25,
"grid_size": 75,
"name": "gns3-web-ui-1125",
"project_id": "1052ec96-de04-45fc-9fc2-dff8584cf303",
"revision": 9,
"scene_height": 1000,
@candlerb
candlerb / gns3-web-ui-1125.gns3project.b64
Last active May 6, 2021 08:44
base64 encoding of gns3-web-ui-1125.gns3project
UEsDBBQACAAIAHRJplIAAAAAAAAAAAAAAAAMAAAAcHJvamVjdC5nbnMzzVdLk9wmEP4rU8o1
7KK3ND7lkGsqB6dySFwqxENDVgIF0I7HW/vf06DHaGfXTuzKwTMX0cBHP77uhqeITE43tNeW
R8eDIL3lPx5moR65upVZR4zbCZkhZ6m6pjOSNVZ+8iBJDhN7QekFigz+O+qUTdGZt2iSKI6T
PIK50ei/OHWNZH5FjPOE07pAjOMMZbmgqBY0QUyIKq8yKlKc+l2GP0ortdexhqGlXPHmxGV3
8hrGGONNepbMnbxqi/Ckz0HlnSVBJpXjRhDKm560vLe38z25cPNCqsjYgF9uwaZx7CU3IFJT
34PE6VH3uruA5Cmiehgnxz3QHx+uXtzGvVQPYfAUCdm7+cin52VmcVNKeJuIuEaU1BXKYlyj
iqQxanmCE8ITmvLCu0lpxhcwwsgIaI2ahjYo550RLA1qGe2Imx0avOQufQiZ0MohQQbZX46H
95eR/24kwLwLch9j7+07PI/PIQDHQ6t79g6074+HH3D4hRHSI6HSAVAMO7x+jn/08Yo49qOP
8JnG8OE9hWL8vFiwGE24KPOMx95ogjJW5KiiBUGYxRmL85bVqQiM0sbtzASU79x6Rdxmf4UX
+8vsxvyiqjNMqxYlnDGUtTVGbZzUSKSipHEmcEH5W+Z/CJy0kNAbS4Nsx42Fk8tBvaak90hU