Skip to content

Instantly share code, notes, and snippets.

missing system dependecies (some may not be missing):

sudo dnf install libtool flex bison autoconf automake
sudo dnf install texinfo
sudo dnf install readline-devel

get the code:

git clone https://github.com/cgdb/cgdb

Gotta Catch 'Em All - GSoC 2023 Ceph Project

Below are detailed instructions regarding the Gotta Catch 'Em All - GSoC 2023 Ceph Project

Introduction

Coverity is a tool used by the Ceph project to find issues in the code. Even though Coverity it is a commercial product, they perfom regular scans for many Open Source project, including Ceph.

The Ceph storage system has an S3 compatible Object Store interface, implemented by the RADOS Gateway (or RGW) component of Ceph.

start cluster:

MON=1 OSD=1 MDS=0 MGR=0 RGW=1 ../src/vstart.sh -n -d 

download Kafka from here, unzip, and go into the kafka directory.

start Zookeeper (in a separate terminal):

bin/zookeeper-server-start.sh config/zookeeper.properties

step 0

  • create a branch off of master branch of https://github.com/ceph/s3-tests.git (e.g. my-test-work)
  • develop the test and test it localy against a vstart cluster
  • push the branch to your local s3test repo. e.g. branch my-test-work in https://github.com/yuvalif/s3-tests.git
  • create a PR to review your work

step 1

  • create a branch off of main branch of https://github.com/ceph/ceph.git (e.g. my-qa-branch)
  • edit the s3test override file: qa/rgw/s3tests-branch.yaml to point to the repo and branch from step 0:
  • start ceph cluster with an RGW using vstart:
MON=1 OSD=1 MDS=0 MGR=1 RGW=1 ../src/vstart.sh -d -n
  • use the following lua script postrequest.lua:
RGWDebugLog("Post Request Request.RGWOp = " .. Request.RGWOp)

RGWDebugLog("number of http metadata entries is: " .. #Request.HTTP.Metadata)
for k, v in pairs(Request.HTTP.Metadata) do

prerequisites

sudo dnf install glib2-devel
sudo dnf install libgcrypt-devel
sudo dnf install qt-devel
sudo dnf install qt6-qtbase-devel
sudo dnf install qt6-linguist-devel
sudo dnf install qt6-qttools-devel
sudo dnf install qt6-qt5compat-devel

Instructions for fedora 36

Java

install java. curently gradle does not work with jdk higher than 11, so we would need to:

sudo dnf install java-11-openjdk-devel.x86_64

if other version is already installed, use:

sudo alternatives --config java
from http.server import ThreadingHTTPServer, BaseHTTPRequestHandler
import threading
import time
import sys
class RequestHandler(BaseHTTPRequestHandler):
def do_GET(self):
print("active threads: ", str(threading.active_count()))
self.send_response(200)
// extensions to: https://docs.aws.amazon.com/sdk-for-go/api/service/s3/
type RGWNotificationConfigurationFilter struct {
// A container for object key name prefix and suffix filtering rules.
Key *KeyFilter `locationName:"S3Key" type:"structure"`
Metadata *RGWMapFilter `locationName:"RGWMetadata" type:"structure"`
Tag *RGWMapFilter `locationName:"RGWTag" type:"structure"`
// contains filtered or unexported fields
}