Skip to content

Instantly share code, notes, and snippets.

@droot
droot / redislogger.py
Created July 30, 2011 17:59
Redis Log Handler in Python
import redis
import logging
class RedisLogHandler:
"""Log handler for logging logs in some redis list
"""
def __init__(self, host = None, port = None, db = 0, log_key = 'log_key'):
self._formatter = logging.Formatter()
self._redis = redis.Redis(host = host or 'localhost', port = port or 6379, db = db)
self._redis_list_key = log_key
@droot
droot / gist:57ca90f7eec986d44b115b8abd35dc61
Created May 16, 2019 04:50
controller-tools-stack-overflow
go/bin/controller-gen "crd:trivialVersions=true" rbac:roleName=manager-role webhook paths="./api/...;./controllers/..." output:crd:artifacts:config=config/crd/bases
runtime: goroutine stack exceeds 1000000000-byte limit
fatal error: stack overflow
runtime stack:
runtime.throw(0x1784a61, 0xe)
/usr/local/go/src/runtime/panic.go:617 +0x72
runtime.newstack()
/usr/local/go/src/runtime/stack.go:1041 +0x6f0
runtime.morestack()
@droot
droot / k8s.go
Created September 26, 2018 19:21
K8s CLI example using controller-runtime
package main
import (
"context"
"fmt"
"os"
"k8s.io/api/core/v1"
_ "k8s.io/client-go/plugin/pkg/client/auth/gcp"
"sigs.k8s.io/controller-runtime/pkg/client"
package main
import (
"fmt"
"os"
"path/filepath"
"regexp"
"strings"
"time"
import base64
import hashlib
import hmac
import simplejson as json
def base64_url_decode(inp):
padding_factor = (4 - len(inp) % 4) % 4
inp += "="*padding_factor
return base64.b64decode(unicode(inp).translate(dict(zip(map(ord, u'-_'), u'+/'))))
@droot
droot / zpop.lua
Created June 19, 2011 07:26
ZPOP Lua script for redis
val = redis.call('zrange', KEYS[1], 0, 0)
if val then redis.call('zremrangebyrank', KEYS[1], 0, 0) end
return val
function freeze_db() {
rc = db.runCommand({fsync: 1, lock: 1});
if (rc.ok == 1){
return 1;
} else {
return 0;
}
}
freeze_db();
@droot
droot / email_rest_handler.py
Created June 23, 2013 00:38
Gist presents quick code a REST handler for /emails service: POST /emails will be a webhook to consume request from an email service when a new email is received GET /emails -- returns email contents Get /emails/idxxxxx -- returns the info about an email content reference by id idxxxxxx
import json
from google.appengine.ext import db
from datetime import datetime
from base import BaseHandler
import logging
from models.emails import EmailContent
log = logging.getLogger(__name__)
@droot
droot / image.py
Last active December 17, 2015 00:10
This gist implements an Image Uploader Service in python using Google App Engine. There are four components. image.py implements the Image Model to persist Image Resource. image_service.py implements image service client which provides basis functionality of retrieving, saving, updating and deleting an image resource. image_rest_handler.py imple…
import datetime
from google.appengine.ext import db
class Image(db.Model):
"""Model to represent Image
"""
name = db.StringProperty(required = True)
data = db.TextProperty(required = True)
created_at = db.DateTimeProperty(auto_now_add = True)
updated_at = db.DateTimeProperty(auto_now = False)
@droot
droot / async_if.coffee
Created February 26, 2012 16:31
Async IF Construct using JQuery Deferred
async_if = (fn, args, timeout)->
dfd = new jQuery.Deferred()
curr_probe = null
probe = ()->
if fn(args)
dfd.resolve(args)
curr_probe = null
else
curr_probe = setTimeout probe, 5