Skip to content

Instantly share code, notes, and snippets.


Brian Cline briancline

  • SoftLayer / IBM Cloud
  • Dallas, Texas
View GitHub Profile
briancline / .pylintrc
Created Jun 6, 2022
Example pylintrc (mostly based off a few OpenStack projects' pylintrcs)
View .pylintrc
# generated-members=SymbolName
# C0111: Missing module docstring
# C0301: Line too long (pycodestyle checks this)
briancline / 0-pvemanagerlib-fix-sorting.diff
Created Dec 8, 2021
Proxmox VE - Fix strange ID-based sorting to sort by VM/container names instead
View 0-pvemanagerlib-fix-sorting.diff
--- /usr/share/pve-manager/js/pvemanagerlib.js 2021-11-24 11:32:51.000000000 -0600
+++ /usr/share/pve-manager/js/bc-pvemanagerlib.js 2021-11-29 15:44:54.070286236 -0600
@@ -3785,7 +3785,7 @@
if (Ext.isNumeric(info.vmid) && info.vmid > 0) {
text = String(info.vmid);
if ( {
- text += " (" + + ')';
+ text = + ' (' + text + ')';
} else { // node, pool, storage
briancline /
Created Mar 24, 2021
Fix for nginx + flask
from werkzeug.middleware import proxy_fix
app = flask.Flask('thing')
app.wsgi_app = proxy_fix.ProxyFix(app.wsgi_app, x_proto=1, x_host=1)
briancline /
Last active Jun 2, 2018
ubuntu-17.10: Fix resolver behavior for dhclient when systemd-resolved is disabled (fall back to resolvconf)

The problem

So systemd-resolved has bugs. Disabling and stopping systemd-resolved to escape these is the logical step, but a dhcp-managed system does gracefully not fall back to resolvconf-managed file even though dhclient still executes the hook for it. As a result, you're then left with a broken resolv.conf that never gets updated by dhclient.

The reason is the systemd-resolved hook in dhclient only checks to see whether it is executable, and not whether it is also enabled. As a result, it still overwrites the default make_resolv_conf shell function with systemd-resolved logic. Since the resolvconf hook is executed before the resolved hook, you either have to rename it to a name that sorts after resolved, or symlink it thusly; but this doesn't fix the bug.

This diff fixes the resolved hook to actually check for the enabled state of the service in addition to checking whether it is executable. Not the best sequence of steps -- better to check the binary's executable state first, then check whe

briancline / data.sql
Created May 4, 2018
Extra flair for CRDB bug report
View data.sql
-- PostgreSQL database dump
-- Dumped from database version 10.3 (Ubuntu 10.3-1.pgdg16.04+1)
-- Dumped by pg_dump version 10.3 (Ubuntu 10.3-1.pgdg16.04+1)
SET statement_timeout = 0;
SET lock_timeout = 0;
SET idle_in_transaction_session_timeout = 0;
briancline / vpnc-script
Created Dec 31, 2016 — forked from dzderic/vpnc-script
A custom OpenConnect script to set DNS using `networksetup` on OSX, which makes it work with things that don't read from `/etc/resolv.conf`
View vpnc-script
# Originally part of vpnc source code:
# © 2005-2012 Maurice Massar, Jörg Mayer, Antonio Borneo et al.
# © 2009-2012 David Woodhouse <>
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
View gist:c91c4b91e0f5bf9629c8c11fbbaf4ca2
root@saio:/opt/go/src/ make get test all
go get -t ./...
go vet ./...
go test -cover ./...
? [no test files]
? [no test files]
? [no test files]
ok 4.325s coverage: 62.1% of statements
ok 0.009s coverage: 82.7% of statements
ok 3.399s coverage: 71.0% of statements
briancline / hands-off-my-scrollwheel-asshole.js
Last active May 24, 2016
Prevent brain-dead UI/UX terrorists from crapping on OS-native scrolling / touchpad behavior
View hands-off-my-scrollwheel-asshole.js
* Copied for updates/additions from this Chrome extension (highly recommended):
* "Smooth Scroll Sucks" (
* If you're a UX terrorist who thinks it's "super cool" or "totally sweet" to
* to hijack the scrollwheel/trackpad to make things horrifically slow: stop.
* Just stop it with that shit. This is not good behavior. Your site actually
* provides the perceived feedback of a pile of mayonnaise slowly sliding down
* the edge of the world's largest turd.
View gist:f425684f01bde0a40094d049f8009a33
Starting with keystonemiddleware v4.5.0 (specifically, commit
f54ff06c1f5e274ea31ffac5faf1f57557fe586a), if a token is found to be cached but
is cached with an invalid state, the middleware attempts to log a debug message
indicating as much. However, the logger it references does not exist and
results in an AttributeError. As a result, this yields HTTP 500 responses once
the invalid token gets cached, rather than 401s.
To reproduce (in my case, with Swift using keystonemiddleware in the pipeline):
1. As expected, this fails with a 401:
briancline /
Last active Dec 8, 2021
Install Swift/PyECLib dependencies on OSX
## This script is meant to be used on OSX as a quick and easy way to download,
## build, and install gf-complete, Jerasure, and liberasurecode to any prefix
## path you specify. These are typically what you may want if you're working
## with OpenStack Swift for a quick and dirty EC-friendly test run.
## The Xcode command line tools are required in order for this to work.