Skip to content

Instantly share code, notes, and snippets.

View briancline's full-sized avatar

Brian Cline briancline

  • SoftLayer / IBM Cloud
  • Dallas, Texas
View GitHub Profile
@briancline
briancline / app.py
Created March 24, 2021 21:47
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
briancline / 0wtfisthis.md
Last active June 2, 2018 19:18
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
briancline / data.sql
Created May 4, 2018 03:03
Extra flair for CRDB bug report
--
-- 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
briancline / vpnc-script
Created December 31, 2016 22:33 — 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`
#!/bin/sh
#
# Originally part of vpnc source code:
# © 2005-2012 Maurice Massar, Jörg Mayer, Antonio Borneo et al.
# © 2009-2012 David Woodhouse <[email protected]>
#
# 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.
root@saio:/opt/go/src/github.com/openstack/swift/go# make get test all
go get -t ./...
go vet ./...
go test -cover ./...
? github.com/openstack/swift/go/bench [no test files]
? github.com/openstack/swift/go/client [no test files]
? github.com/openstack/swift/go/cmd [no test files]
ok github.com/openstack/swift/go/hummingbird 4.325s coverage: 62.1% of statements
ok github.com/openstack/swift/go/middleware 0.009s coverage: 82.7% of statements
ok github.com/openstack/swift/go/objectserver 3.399s coverage: 71.0% of statements
@briancline
briancline / hands-off-my-scrollwheel-asshole.js
Last active May 24, 2016 05:17
Prevent brain-dead UI/UX terrorists from crapping on OS-native scrolling / touchpad behavior
/*
* Copied for updates/additions from this Chrome extension (highly recommended):
* "Smooth Scroll Sucks" (vong.io)
* https://chrome.google.com/webstore/detail/smooth-scroll-sucks/bpbeihnjhalcfmjbcdafhdmcedknoflm
*
* 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.
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
briancline / swift-ecdeps-osx.sh
Last active December 8, 2021 02:03
Install Swift/PyECLib dependencies on OSX
#!/bin/bash
## swift-ecdeps-osx.sh
## https://gist.github.com/briancline/364d539e0e230b92adae
##
## 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.
{
"always_show_minimap_viewport": true,
"anaconda_gutter_theme": "hard",
"animation_enabled": false,
"auto_complete_commit_on_tab": true,
"auto_indent": true,
"binary_file_patterns":
[
"*.jpg",
"*.jpeg",
@briancline
briancline / test_module.py
Last active August 29, 2015 14:23
Unit test to import all Python package modules
import pkgutil
import unittest
import mypkg
class TestModule(unittest.TestCase):
def setUp(self):
pass