profile
viewpoint
Flavian Missi flavianmissi Red Hat Malmö, Sweden

barbosa/GBFlatButton 381

[DEPRECATED] A flat and light implementation of UIButton for iOS

danielalves/NitroKeychain 13

Apple's keychain without pain

danielalves/redefine 11

iOS and OS X easy method swizzling - that is, method redefinitions at runtime

danielalves/NitroMath 9

NitroMath is a set of mathematical utilities for C, C++, ObjC and Swift which aims to boost coding performance.

flavianmissi/django-extreme-tdd 7

Testing toolkit to advocate real and fast TDD (testing first!) in Django applications, eXtremeProgramming like! \m/

danielalves/NitroNSDictionaryCategories 5

Parsing and utility categories for iOS NSDictionary

danielalves/NitroConnection 4

A very fast, simple and lightweight HTTP connection for iOS that supports OAuth2

danielalves/NitroUIColorCategories 3

Initialization, conversion, comparison, RGBA components and luminance getters for iOS UIColor type

flavianmissi/bogus-test-server 2

A simple python bogus server to use in tests

flavianmissi/dotfiles 2

rc files, configs, etc

push eventflavianmissi/quay

Flavian Missi

commit sha d921cf227e8642f2e539f7cbd66361e1b4dbe1f0

endpoints/v2: refactor manifest fetching endpoints use class based views to share proxy code between fetch by manifest and fetch by digest endpoints

view details

Flavian Missi

commit sha f94a6092b2aa437be9118db43c6da0f22868ea53

endpoints/v2: pass user creds to proxy

view details

push time in 3 hours

push eventflavianmissi/quay

Sunandadadi

commit sha 991241d0d52778433c30143e780c2c8aae922c02

[WIP]: Proxy Cache Config Data Schema Implementation

view details

Sunandadadi

commit sha f5c21be9f4b4d0263fada39d38f14f40d17ad3d6

Fixing on recieved feedback

view details

Sunandadadi

commit sha ccd7cf07152ddc0d1e1c239c67d0316169d5ebe0

Removing unused functions and adding deafults

view details

Sunandadadi

commit sha 6a8d20e6dbc61564e9b96647efda94a5060b1f2f

Removing None check to propagate exception

view details

Sunandadadi

commit sha 0547c7d9fc3dffd89aa4bb65fb8d5a259cf7562a

Added tests for Proxy Cache Model

view details

Flavian Missi

commit sha 51694e7995f9bfafa664a6e6f2f733e51745dc75

Merge pull request #1 from Sunandadadi/proxy_cache_config Proxy Cache Config Data Schema Implementation

view details

push time in 6 hours

PullRequestReviewEvent
PullRequestReviewEvent
PullRequestReviewEvent

Pull request review commentquay/quay

[WIP]: Proxy Cache Config Data Schema Implementation

+from data.database import (+    ProxyCacheConfig,+    User+)+from data.model.organization import get_organization+++def create_proxy_cache_config(+    org_name,+    upstream_registry,+    upstream_registry_namespace,+    upstream_registry_username,+    upstream_registry_password,+    staleness_period_s+):+    """+        Creates proxy cache configuration for the given organization name+    """+    org = get_organization(org_name)+    if not org:+        return None++    new_entry = ProxyCacheConfig.create(+        user_id=org.id,+        upstream_registry=upstream_registry,+        upstream_registry_namespace=upstream_registry_namespace,+        upstream_registry_username=upstream_registry_username,+        upstream_registry_password=upstream_registry_password,+        staleness_period_s=staleness_period_s+    )+    return new_entry+++def get_proxy_cache_config_for_org(org_name):+    """+        Return the Proxy-Cache-Config associated with the given organization name, or None if it doesn't exist.+    """+    org = get_organization(org_name)+    if not org:+        return None

That was my first thought too, but I think it might be useful to differentiate the errors by using different exceptions. With that said, we can go with your suggestion for now and change it if needed.

Sunandadadi

comment created time in 21 hours

push eventflavianmissi/quay

Flavian Missi

commit sha d9a68ea57e9499f67405101d764305697d81262f

format files with black

view details

push time in a day

push eventflavianmissi/quay

Flavian Missi

commit sha 948738240abbea3944e71b90c847afcb86ddbb47

endpoints/v2: remove unused import

view details

push time in a day

push eventflavianmissi/quay

Flavian Missi

commit sha e1ae52ee23deec4ccaf76e2f3ef04f7e79a6fa4c

data/buildlogs: format file with black (#1061)

view details

Flavian Missi

commit sha b7f8e4e87c6d124085bfae94e16ff6eb79bc0be5

wip: trash code to show the flow for pull-thru proxy

view details

Flavian Missi

commit sha 9bfee3b101a0d173f5e7a8688c02c3c1c947508e

proxy: add Proxy class and auth methods pending methods to fetch manifests, blobs, and searching upstream registries.

view details

Flavian Missi

commit sha ccdb43042dc102382820b0b2ec5912ad72fa9caa

proxy: introduce method to get manifest from upstream

view details

Flavian Missi

commit sha b39c04d10acdd0e6c2091be4928993a297420b62

endpoints/v2: use proxy class to fetch manifests also refactor proxy code to make it more seamless to use

view details

Flavian Missi

commit sha a63d1d084f1f16aea476f338239d36333c3dc466

endpoints/v2: remove unused imports

view details

Flavian Missi

commit sha 1b9cac74e24997cd79fd0d75e7b2a0bb51d395b8

test: black format also remove more unused imports

view details

Flavian Missi

commit sha 93d2bd2b4161bc9b9145ffa41e021a8afc0942a6

app.py: fix deprecation warning on ProxyFix import

view details

Flavian Missi

commit sha 8b8fd55466ae0743fce62407c6b74fdccdd8703e

endpoints: e2e test for manifest endpoint

view details

Flavian Missi

commit sha b4bbcb47142624497940e6340f4b274e6d2783bc

proxy: make it easier to use proxy response as http response

view details

Flavian Missi

commit sha fe8fe0365f811dc6fefa7f83f0da253d743e1819

tox: remove confcutdir option that option does not exist in the config file for pytest, it's only a command line flag. this fixes the warning: PytestConfigWarning: Unknown config option: confcutdir

view details

Flavian Missi

commit sha 1bab0ec8ee5832617c62c8ef1bf775defb2ccaaa

makefile: ignore buildman, as its tests are failing

view details

Flavian Missi

commit sha c0cd3a2f79be1b63a727881bcda61399bd89af62

endpoints/v2: discard org name when talking to upstream registry

view details

Flavian Missi

commit sha f89938d84032051a025c7cf8748dcb6f3f92fa39

endpoints/v2: test blob download with pull through

view details

Flavian Missi

commit sha 494b09661d75a03367d5e0feb56e8918523d7698

endpoints/v2: use proxy module on blob download endpoint proxy.get_blob tests are currently broken (missing mock endpoints), will be fixed in a follow-up commit

view details

Flavian Missi

commit sha 4772c0a4f4c07d678c287f4137d524bedc424084

endpoints/v2: use proxy config model on manifest endpoint

view details

Flavian Missi

commit sha e2800526c7c91067ae2b694847e061a8510c0a1d

endpoints/v2: use proxy models on blob endpoint also fix tests to accomodate changes to get_proxy_cache_config_for_org function.

view details

push time in a day

push eventflavianmissi/quay

Sunandadadi

commit sha 687abaa2d73eaf99dea5c0ddf078ec6fc656ce30

Cleanup: Removing requirements-nover.txt (PROJQUAY-2985) (#1038) Removing requirements-nover.txt as cannot see its dependency in the codebase

view details

dependabot[bot]

commit sha 21f3538f4eb939c39c217726670288b6b745669e

build(deps): bump python-ldap from 3.2.0 to 3.4.0 (#1002) Bumps [python-ldap](https://github.com/python-ldap/python-ldap) from 3.2.0 to 3.4.0. - [Release notes](https://github.com/python-ldap/python-ldap/releases) - [Commits](https://github.com/python-ldap/python-ldap/compare/python-ldap-3.2.0...python-ldap-3.4.0) --- updated-dependencies: - dependency-name: python-ldap dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

view details

Flavian Missi

commit sha f0edbceb5b24c1a5298eeece77e53de9ef643372

CONTRIBUTING: document backporting process (#1043)

view details

Syed Mushtaq Ahmed

commit sha 0033f9b851502bd474d8ddd3faf4e5d78f43f9ca

auth: Fix oauth code flow (PROJQUAY-781) (#1044) OAuth Authorization Code Flow is broken in quay. Code Flow is more secure than implicit flow and is used by server side applications to get the access token

view details

dependabot[bot]

commit sha cf9f254a06b957d25868c88b6578915a7882764e

Bump waitress from 1.4.2 to 1.4.3 (#217) Bumps [waitress](https://github.com/Pylons/waitress) from 1.4.2 to 1.4.3. - [Release notes](https://github.com/Pylons/waitress/releases) - [Changelog](https://github.com/Pylons/waitress/blob/master/CHANGES.txt) - [Commits](https://github.com/Pylons/waitress/compare/v1.4.2...v1.4.3) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

view details

Kenny Lee Sin Cheong

commit sha b9557d1486e9a70c0659d8d6d94bae4d053c4eb6

ipresolver: update country mmdb (PROJQUAY-3031) (#1049)

view details

Syed Mushtaq Ahmed

commit sha b7d325ed42827db9eda2d9f341cb5a6cdfd155a6

builders: Make single_connection_client conifgurable (PROJQUAY-3025) (#1055) single_connection_client keeps a connection open to the pool on init which may cause issues if the master changes

view details

Flavian Missi

commit sha 65100439f6dd70b12db2276ec61cff99704bfa4e

chore: download aws ip ranges via github workflow (#1041) PROJQUAY-2941 #close

view details

Flavian Missi

commit sha 69ac948fee78299eaf4e5f0a3f1c502a2afc5ce8

wip: trash code to show the flow for pull-thru proxy

view details

Flavian Missi

commit sha f1d4c167a2eb61ee452df5632664356c22f9b843

proxy: add Proxy class and auth methods pending methods to fetch manifests, blobs, and searching upstream registries.

view details

Flavian Missi

commit sha dfabd96ff1bde427d69efcd99834ec49d862629a

proxy: introduce method to get manifest from upstream

view details

Flavian Missi

commit sha 795f53ebc304ad2eba791e0aba97a06a2d7cae45

endpoints/v2: use proxy class to fetch manifests also refactor proxy code to make it more seamless to use

view details

Flavian Missi

commit sha be29965b62cb2d9328afd6d52ac1bc1df9f4033e

endpoints/v2: remove unused imports

view details

Flavian Missi

commit sha 1c91eb6877c343fd582be8992d92728e54532cb0

test: black format also remove more unused imports

view details

Flavian Missi

commit sha d703e083ed4e6ba98b167054238cffe6f6b09e1e

app.py: fix deprecation warning on ProxyFix import

view details

Flavian Missi

commit sha 517c975eed3978fe2aa31f0f45db03c18c172fd0

endpoints: e2e test for manifest endpoint

view details

Flavian Missi

commit sha 270d23ecbd1ec28f20b28600358919fdde1545c8

proxy: make it easier to use proxy response as http response

view details

Flavian Missi

commit sha 630a3c05fafa7bbb076a7d6593e9cb310c0cb2c3

tox: remove confcutdir option that option does not exist in the config file for pytest, it's only a command line flag. this fixes the warning: PytestConfigWarning: Unknown config option: confcutdir

view details

Flavian Missi

commit sha 631a4d90603a61ada9d43bf9d4cf4278260b88f6

makefile: ignore buildman, as its tests are failing

view details

Flavian Missi

commit sha 7d767d872ccf473371c6e2df9b7233e14ce5cfa7

endpoints/v2: discard org name when talking to upstream registry

view details

push time in a day

Pull request review commentquay/quay

wip: pull-thru proxy proof of concept

 conf/stack/license: $(QUAY_CONFIG)/local/license unit-test: 	TEST=true PYTHONPATH="." py.test \ 	--cov="." --cov-report=html --cov-report=term-missing \-	--timeout=3600 --verbose -x \+	--timeout=3600 --verbose -x --ignore=buildman/ \

CI doesn't run buildman tests, so remove it from make target as well

flavianmissi

comment created time in a day

PullRequestReviewEvent

Pull request review commentquay/quay

wip: pull-thru proxy proof of concept

 from flask_login import LoginManager from flask_mail import Mail from flask_principal import Principal-from werkzeug.contrib.fixers import ProxyFix+from werkzeug.middleware.proxy_fix import ProxyFix

fixes a deprecation warning.

flavianmissi

comment created time in a day

PullRequestReviewEvent

issue commentquay/quay-operator

Github Actions Use Minikube

Our e2e nightly workflow uses a pre-provisioned OCP cluster to run our tests. It's currently not possible run the operator on minikube, since it depends on OCP routes component.

cnuland

comment created time in a day

PullRequestReviewEvent

Pull request review commentquay/quay-operator

proxy: adding proxy support (PROJQUAY-1579)

 func FieldGroupFor(  		fieldGroup.FeatureSecurityScanner = true 		fieldGroup.SecurityScannerV4Endpoint = fmt.Sprintf(-			"http://%s-clair-app:80", quay.GetName(),+			"http://%s-clair-app.%s.svc.cluster.local",

Yeah that's the thing, I don't really know a better way either.

ricardomaraschini

comment created time in a day

PullRequestReviewEvent

Pull request review commentquay/quay

[WIP]: Proxy Cache Config Data Schema Implementation

 def get_user(username):         return None  +def get_organization_from_name(orgname):

This function is no longer used, so can be safely removed now.

Sunandadadi

comment created time in a day

Pull request review commentquay/quay

[WIP]: Proxy Cache Config Data Schema Implementation

+"""create proxy_cache_config table++Revision ID: 10d34e6536f8+Revises: 909d725887d3+Create Date: 2022-01-13 16:10:10.155558++"""++# revision identifiers, used by Alembic.+revision = '10d34e6536f8'+down_revision = '909d725887d3'++import sqlalchemy as sa+++def upgrade(op, tables, tester):+    op.create_table(+        "proxycacheconfig",+        sa.Column("id", sa.Integer(), nullable=False),+        sa.Column("user_id", sa.Integer(), nullable=False),+        sa.Column("creation_date", sa.DateTime(), nullable=False),+        sa.Column("upstream_registry", sa.String(length=2048), nullable=False),+        sa.Column("upstream_registry_namespace", sa.String(length=255), nullable=True),+        sa.Column("upstream_registry_username", sa.String(length=2048), nullable=True),+        sa.Column("upstream_registry_password", sa.String(length=2048), nullable=True),+        sa.Column("staleness_period_s", sa.Integer(), server_default="0"),+        sa.Column("quota_enabled", sa.Boolean(), server_default="0"),+        sa.ForeignKeyConstraint(+            ["user_id"],+            ["user.id"],+            name=op.f("fk_proxy_cache_config_user_id"),+        ),+        sa.PrimaryKeyConstraint("id", name=op.f("pk_proxy_cache_config"))+    )+++def downgrade(op, tables, tester):+    pass

Should this remove the table entirely? Not sure if we tend to skip the downgrade or not, but in this case it should be easy enough 🤔

Sunandadadi

comment created time in a day

Pull request review commentquay/quay

[WIP]: Proxy Cache Config Data Schema Implementation

+from data.database import (+    ProxyCacheConfig,+    User+)+from data.model.organization import get_organization+++def create_proxy_cache_config(+    org_name,+    upstream_registry,+    upstream_registry_namespace,+    upstream_registry_username,+    upstream_registry_password,+    staleness_period_s+):+    """+        Creates proxy cache configuration for the given organization name+    """+    org = get_organization(org_name)+    if not org:+        return None++    new_entry = ProxyCacheConfig.create(

Do we want to pass quota_enabled as well?

Sunandadadi

comment created time in a day

Pull request review commentquay/quay

[WIP]: Proxy Cache Config Data Schema Implementation

+from data.database import (+    ProxyCacheConfig,+    User+)+from data.model.organization import get_organization+++def create_proxy_cache_config(+    org_name,+    upstream_registry,+    upstream_registry_namespace,+    upstream_registry_username,+    upstream_registry_password,+    staleness_period_s+):+    """+        Creates proxy cache configuration for the given organization name+    """+    org = get_organization(org_name)+    if not org:+        return None++    new_entry = ProxyCacheConfig.create(+        user_id=org.id,+        upstream_registry=upstream_registry,+        upstream_registry_namespace=upstream_registry_namespace,+        upstream_registry_username=upstream_registry_username,+        upstream_registry_password=upstream_registry_password,+        staleness_period_s=staleness_period_s+    )+    return new_entry+++def get_proxy_cache_config_for_org(org_name):+    """+        Return the Proxy-Cache-Config associated with the given organization name, or None if it doesn't exist.+    """+    org = get_organization(org_name)+    if not org:+        return None

get_organization will throw an exception if no org is found with the given name, so we can remove this check. We might want to catch the exception and throw a different one, like ProxyCacheConfigDoesNotExist or something. What you think?

Sunandadadi

comment created time in a day

Pull request review commentquay/quay

[WIP]: Proxy Cache Config Data Schema Implementation

+from data.database import (+    ProxyCacheConfig,+    User+)+from data.model.organization import get_organization+++def create_proxy_cache_config(+    org_name,+    upstream_registry,+    upstream_registry_namespace,+    upstream_registry_username,+    upstream_registry_password,+    staleness_period_s

what does the s stand for in staleness_period_s? seconds?

Sunandadadi

comment created time in a day

PullRequestReviewEvent

Pull request review commentquay/quay

[WIP]: Proxy Cache Config Data Schema Implementation

+from data.database import (+    ProxyCacheConfig,+    User+)+from data.model.organization import get_organization+++def create_proxy_cache_config(+    org_name,+    upstream_registry,+    upstream_registry_namespace,+    upstream_registry_username,+    upstream_registry_password,

Given that upstream_registry_namespace, upstream_registry_username and upstream_registry_password are nullable in the db, should their equivalent args default to None?

Sunandadadi

comment created time in a day

PullRequestReviewEvent

Pull request review commentquay/quay-operator

proxy: adding proxy support (PROJQUAY-1579)

 func FieldGroupFor(  		fieldGroup.FeatureSecurityScanner = true 		fieldGroup.SecurityScannerV4Endpoint = fmt.Sprintf(-			"http://%s-clair-app:80", quay.GetName(),+			"http://%s-clair-app.%s.svc.cluster.local",

I realize you didn't introduce this, but is there a better way to get this address? It feels fragile.

ricardomaraschini

comment created time in a day

PullRequestReviewEvent
PullRequestReviewEvent
more