Skip to content

Instantly share code, notes, and snippets.

@theanalyst
theanalyst / giant-release-notes.txt
Created April 21, 2015 11:23
giant-release-notes
* allow -L to disable lttng. Enable it by default (Alfredo Deza)
* mon: MDSMonitor: wait for osdmon to be writable when requesting proposal (#9794 Joao Eduardo Luis)
* mon: MDSMonitor: have management_command() returning int instead of bool (Joao Eduardo Luis)
* osd: Get pgid ancestor from last_map when building past intervals (#10430 David Zafman)
* Objecter: failed assert(tick_event==NULL) at osdc/Objecter.cc (#11183 Zhiqiang Wang)
* ceph-objectstore-tool: Output only unsupported features when incomatible (#11176 David Zafman)
* rgw: Swift API. Support for X-Remove-Container-Meta-{key} header. (#10475 Dmytro Iurchenko)
* librados: Translate operation flags from C APIs (Matthew Richards)
* Objecter: check the 'initialized' atomic_t safely (#9617 Josh Durgin)
* Objecter: init with a constant of the correct type (Josh Durgin)
* allow -L to disable lttng. Enable it by default (#11303 Alfredo Deza)
* mon: MDSMonitor: wait for osdmon to be writable when requesting proposal (#9794 Joao Eduardo Luis)
* osd: Get pgid ancestor from last_map when building past intervals (#10430 David Zafman)
* Objecter: failed assert(tick_event==NULL) at osdc/Objecter.cc (#11183 Zhiqiang Wang)
* ceph-objectstore-tool: Output only unsupported features when incompatible (#11176 David Zafman)
* rgw: Swift API. Support for X-Remove-Container-Meta-{key} header. (#10475 Dmytro Iurchenko)
* librados: Translate operation flags from C APIs (#10497 Matthew Richards)
* Objecter: check the 'initialized' atomic_t safely (#9617 Josh Durgin)
* Objecter: init with a constant of the correct type (#9617 Josh Durgin)
* CrushWrapper: pick a ruleset same as rule_id (#9675 Xiaoxi Chen)
@theanalyst
theanalyst / make_release_notes.py
Last active August 29, 2015 14:19
release notes helper
#!/usr/bin/env python
# Originally borrowed from A. Israel's https://gist.github.com/aisrael/b2b78d9dfdd176a232b9
from __future__ import print_function
import re
import github
from git import Repo
gh = github.GitHub(
#!/bin/bash
# 2 clusters dc1 and dc2 started via mstart (+ patch for rgw ports)
# Cluster 1, Zone 1 : Realm: EU, Zonegroup: DE , Zone : NUE master
# export CEPH_CONF=/path/to/ceph.conf cluster1 otherwise all commands has to have a -c with path to conf file
echo "export ZONE_ACCESS_KEY=1555b35654ad1656d804" >> ~/.s3zone
echo "export ZONE_SECRET_KEY=h7GhxuBLTrlhVUyxSPUKUV8r/2EI4ngqJxD7iBdBYLhwluN30JaT3Q==" >> ~/.s3zone
. ~/.s3zone
export CEPH_CONF=~/spells/storage/ceph/src/run/dc1/ceph.conf
./radosgw-admin realm create --rgw-realm=eu
./radosgw-admin zonegroup create --rgw-zonegroup=de --endpoints=http://localhost:8001 --master
function ceph-workbench() {
mkdir -p $HOME/.ceph-workbench
sudo docker run --rm -ti \
-v $HOME/.ceph-workbench:/opt/.ceph-workbench \
-v /var/run/docker.sock:/run/docker.sock \
-v $(which docker):/bin/docker \
-w /opt/.ceph-workbench \
--env USER_ID=$(id -u) --env USER_NAME=$(id -un) \
dachary/ceph-workbench \
/opt/ceph-workbench/virtualenv/bin/ceph-workbench "$@"
[abhishekl@pxe-sup3:/ssd/builds/cpp/ceph/src](⎇ rgw/multi-master-zg)$
./radosgw-admin period update --commit
2016-04-12 21:38:54.180661 7f5b76e33b40 -1 WARNING: the following dangerous and experimental features are enabled: *
2016-04-12 21:38:54.180887 7f5b76e33b40 -1 WARNING: the following dangerous and experimental features are enabled: *
2016-04-12 21:38:54.217579 7f5b76e33b40 -1 WARNING: the following dangerous and experimental features are enabled: *
2016-04-12 21:38:54.912427 7f5b76e33b40 0 RGWZoneParams::create(): error creating default zone params: (17) File exists
2016-04-12 21:38:55.730382 7f5b76e33b40 0 ERROR: updating periodmap, multiple master zonegroups in same realm
failed to update period: (22) Invalid argument
[abhishekl@pxe-sup3:/ssd/builds/cpp/ceph/src](⎇ rgw/multi-master-zg)$
./radosgw-admin period update
#!/bin/bash
set -x
cluster1=${1:-dc1}
cluster2=${2:-dc2}
export ZONE_ACCESS_KEY=1555b35654ad1656d804
export ZONE_SECRET_KEY="h7GhxuBLTrlhVUyxSPUKUV8r/2EI4ngqJxD7iBdBYLhwluN30JaT3Q=="
export CEPH_CONF=./run/$cluster1/ceph.conf
./radosgw-admin realm create --rgw-realm=gold --default
./radosgw-admin zonegroup create --rgw-zonegroup=us --endpoints=http://localhost:8001 --master --default
./radosgw-admin zone create --rgw-zonegroup=us --rgw-zone=us-east-1 --access-key=$ZONE_ACCESS_KEY --secret=$ZONE_SECRET_KEY --endpoints=http://localhost:8001 --default --master
#!/usr/bin/env python2
import boto
import boto.s3.connection
import logging
sample_html = '''
<html>
<head>
<title>Sample "Hello, World" Application</title>
</head>
2016-05-02 13:14:02.867741 7f46a87d8700 2 req 87:0.000032::GET /nonexistant.html::initializing for trans_id = tx000000000000000000057-005727529a-fbe3-us-east-1
2016-05-02 13:14:02.867748 7f46a87d8700 10 host=s3website.mywebsite.domain.com
2016-05-02 13:14:02.867762 7f46a87d8700 20 subdomain=s3website domain=mywebsite.domain.com in_hosted_domain=1 in_hosted_domain_s3website=1
2016-05-02 13:14:02.867801 7f46a87d8700 20 get_handler handler=29RGWHandler_REST_Obj_S3Website
2016-05-02 13:14:02.867807 7f46a87d8700 10 handler=29RGWHandler_REST_Obj_S3Website
2016-05-02 13:14:02.867809 7f46a87d8700 2 req 87:0.000101:s3:GET /nonexistant.html::getting op 0
2016-05-02 13:14:02.867813 7f46a87d8700 10 op=28RGWGetObj_ObjStore_S3Website
2016-05-02 13:14:02.867816 7f46a87d8700 2 req 87:0.000107:s3:GET /nonexistant.html:get_obj:authorizing
2016-05-02 13:14:02.867822 7f46a87d8700 2 req 87:0.000113:s3:GET /nonexistant.html:get_obj:normalizing buckets and tenants
2016-05-02 13:14:02.867825 7f46a87d8700 10 s->object=nonexistant
#!/usr/bin/env python
import os
import github
import argparse
if __name__ == "__main__":
parser = argparse.ArgumentParser()
parser.add_argument("pr", metavar="pr",
help="pr to modify/get title for")
parser.add_argument("title", metavar="title", nargs='?',