Skip to content

Instantly share code, notes, and snippets.

@danlindow
danlindow / prettify.py
Created October 4, 2016 17:50
lambda function to make a pretty SNS notification instead of JSON
#!/usr/bin/env python
from __future__ import print_function
import boto3
print('Loading function')
#set region
REGION = 'us-west-2'
#set the SNS topic ARN you want to alert on
SNS_TOPIC_ARN = 'arn:aws:sns:REGION:ACCOUNT_ID:TOPIC_NAME'
@danlindow
danlindow / gist:1cdf85e7f1be8d662e3ad35c0d8404e7
Created February 6, 2017 22:09
Audit unused security group rules
import boto3
from pprint import pprint
client = boto3.client('ec2',region_name='us-west-2')
interfaces = client.describe_network_interfaces()
sgs_in_use = []
for interface in interfaces['NetworkInterfaces']:
for group in interface['Groups']:
if group['GroupId'] not in sgs_in_use:
@danlindow
danlindow / lambda_function.py
Last active March 29, 2017 10:10
append primary public IP to VPC flow logs entries via lambda
from __future__ import print_function
import json
import base64
import gzip
import re
import sys
import boto3
from StringIO import StringIO
from pprint import pprint
@danlindow
danlindow / gist:8162d5746925b386334f02cdf1e4f9ab
Created June 12, 2017 09:32
Flask Continuous Deployment - Medium
sudo easy_install virtualenv
virtualenv ~/virtualenvs/project_name
source ~/virtualenvs/project_name/bin/activate
from flask import Flask
application = Flask(__name__)
@application.route('/')
def hello_world():
return 'Hello, World! Testing GitLab CI/CD :)"
if __name__ == "__main__":
application.run(host='0.0.0.0', debug=True)
branch-defaults:
master:
environment: my_project
group_suffix: null
global:
application_name: my_project
branch: null
default_ec2_keyname: my_project
default_platform: python2.7
default_region: us-west-1
>>> import six
>>> import datetime
>>> from dateutil.parser import parse
>>> now = datetime.datetime.utcnow()
>>> now
datetime.datetime(2017, 8, 16, 8, 38, 31, 766840)
>>> from dateutil.tz import tzutc
>>> test = now.replace(tzinfo=tzutc())
>>> test
datetime.datetime(2017, 8, 16, 8, 38, 31, 766840, tzinfo=tzutc())
@danlindow
danlindow / traffic_management.py
Created November 4, 2019 15:57
example of how to drain/restore traffic on a Juniper device
import argparse
import logging
import sys
import time
from jnpr.junos import Device
from jnpr.junos.utils.config import Config
logging.basicConfig(stream=sys.stdout, level=logging.INFO)
logger = logging.getLogger(__name__)