Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

List Workspaces CLI command #841

Merged
merged 12 commits into from
Oct 10, 2022
Merged

List Workspaces CLI command #841

merged 12 commits into from
Oct 10, 2022

Conversation

jprochazk
Copy link
Contributor

https://keboola.atlassian.net/browse/KAC-232

Changes:

  • Implement remote workspace list command

@jprochazk
Copy link
Contributor Author

Tady vůbec netuším, jak to otestovat. Ty sandboxy jsou uložený mimo projekt (nejsou to configy).

@michaljurecko
Copy link
Contributor

Otestovat manualne a k testom sa vratit, ked bude implementovany aj delete.
Idem to vyskusat.

@michaljurecko
Copy link
Contributor

michaljurecko commented Sep 27, 2022

@jprochazk asi bude potrebne ignorovat nevalidne configs (?)
image

Tj, asi to idealne zalogovat ako DEBUG hlasku.

Je to tento projekt, ak by si to chcel skusit u seba:
https://connection.north-europe.azure.keboola.com/admin/projects/238

(V chybovej hlaske by bolo super mat ID konfiguracie)

@jprochazk jprochazk force-pushed the janp-KAC-232-list-workspaces branch from e4792a9 to 7b7414d Compare September 28, 2022 10:16
@jprochazk
Copy link
Contributor Author

Změny:

  • Odstranil jsem ten test a vytvořil pro to task https://keboola.atlassian.net/browse/KAC-250
  • invalid workspace error je teď debug hláška
  • Output má každý workspace na jednom řádku
  • Load configů a instances teď běží parallelně

@jprochazk jprochazk force-pushed the janp-KAC-232-list-workspaces branch from 2a00f7d to 62c832e Compare October 7, 2022 09:27
@jprochazk jprochazk force-pushed the janp-KAC-232-list-workspaces branch from a1ad314 to a01e60d Compare October 7, 2022 12:33
@jprochazk
Copy link
Contributor Author

Netuším, proč failuje lint. Lokálně mi běží.

@jprochazk
Copy link
Contributor Author

Aha, vidím, že jsme vyměnili goimports za gci

@jprochazk
Copy link
Contributor Author

Ten ale nedokážu nastavit v IDE, mám tam jen tyhle možnosti:
image

@JakubMatejka

@JakubMatejka
Copy link
Contributor

No je tam špatný pořadí, make fix s tím udělá tohle:
CleanShot 2022-10-07 at 15 13 22

@JakubMatejka
Copy link
Contributor

Co se týče nastavení IDE, tak v IntelliJ mám goimports ale je to manuálně donastavený takto:
CleanShot 2022-10-07 at 15 14 22

@JakubMatejka
Copy link
Contributor

Ale dívám se že ta záměna za gci proběhla v květnu kvůli tomu že to tehdy nefungovalo s Go 1.18. Teď ale nemůžu nikde dogooglit že by to měl být problém. Tak možná můžeme zpátky na goimports? @michaljurecko (Nevím moc jakej je v tom rozdíl kromě toho že goimports je v oficiálním repu)

@JakubMatejka
Copy link
Contributor

BTW. máš nějakej divnej email v git logu, máš to dobře nastavený?

CleanShot 2022-10-07 at 15 23 29

@jprochazk
Copy link
Contributor Author

Ten email je vygenerovaný od githubu, je to anti-spam measure.

@michaljurecko
Copy link
Contributor

michaljurecko commented Oct 7, 2022

Je to nastavene tu:
image

goimports nefunguju vzdy dobre, vid napr.:
golang/go#20818

Najlepsie by bolo nastavit si visual studio aby pouzivalo golangci-lint
https://golangci-lint.run/usage/integrations/
(mozno bude potrebne pridat aj cestu ku config suboru, alebo ho presunut do project root)

Staci takto?

@jprochazk
Copy link
Contributor Author

jprochazk commented Oct 7, 2022

Proč mi lokálně nefailuje make lint?

@JakubMatejka
Copy link
Contributor

To se mi ale vlastně taky někdy dělo. 🤔 Myslel jsem že mám lokálně nějakou starší verzi golinteru, ale vlastně nevím.

@jprochazk
Copy link
Contributor Author

jprochazk commented Oct 7, 2022

golangci-lint mám v1.50.0

@jprochazk
Copy link
Contributor Author

Ty options pro import sorting vscode nemá.

@michaljurecko
Copy link
Contributor

@jprochazk @JakubMatejka neviem, mozete skusit prosim spustit gci priamo?

go install github.com/daixiang0/gci@latest
gci diff -s "standard,default,prefix(github.com/keboola/keboola-as-code)" ./pkg/lib/operation/project/remote/workspace/create.go

Ak to pojde ocakavane, tak skuste vypnut v nastaveniach ostatne linters a spustit to.
Ak pojde aj to, tak je potrebne najst, ktory iny linter robi problemy, napr. mozno to vyriesi vypnutie gofumpt.

@JakubMatejka
Copy link
Contributor

Myslím to teda tak že lokálně nic, ale až v Docker kontejneru to začalo hlásit chybu.

@jprochazk
Copy link
Contributor Author

image

@michaljurecko
Copy link
Contributor

Verzia?
image

@jprochazk
Copy link
Contributor Author

Btw, language server mi hlásí error

[Error - 4:52:26 PM] 2022/10/07 16:52:26 tidy: diagnosing file:///home/jan/work/keboola-as-code/go.mod: err: exit status 1: stderr: go: go.mod file indicates go 1.19, but maximum version supported by tidy is 1.18

@jprochazk
Copy link
Contributor Author

image

@JakubMatejka
Copy link
Contributor

Jo to se může stát. Není to standardní, nemělo by se to dít, ale je třeba s tím počítat. (A takový workspace ignorovat.)

@jprochazk
Copy link
Contributor Author

To by se mělo ignorovat už v go-client. Můžeš mě pozvat do toho projektu?

@JakubMatejka
Copy link
Contributor

@jprochazk aha, jasně. Je to https://connection.north-europe.azure.keboola.com/admin/projects/1268 přístup tam už máš

@jprochazk
Copy link
Contributor Author

V go-client se kontroluje jen config bez sandboxId, ale když tam je sandboxId a ten sandbox neexistuje, tak to pak už nefunguje 🙂.

@jprochazk
Copy link
Contributor Author

keboola/go-client#31

@jprochazk
Copy link
Contributor Author

@jprochazk aha, jasně. Je to https://connection.north-europe.azure.keboola.com/admin/projects/1268 přístup tam už máš

Po upgrade mám tenhle output, funguje ti to už?

$ ./target/keboola-cli_linux_amd64/kbc remote workspace list
Loaded env file ".env".
Storage API host "connection.north-europe.azure.keboola.com" set from ENV.
Storage API token set from ENV.
Loading workspaces, please wait.
Found workspaces:
  ID: 1699268, Type: python, Size: small, Name: test
  ID: 4429297, Type: snowflake, Name: test-snowflake
  ID: 731093, Type: python-mlflow, Name: register model

@JakubMatejka JakubMatejka self-requested a review October 10, 2022 09:57
@JakubMatejka
Copy link
Contributor

Funguje. Ale jak teď na to koukám, tak bych asi spíš ty jednotlivý properties odřádkoval 😄 imho už jich je tam s tou size na jednom řádku nějak moc (a jednotlivý workspacy oddělil prázdným řádkem), obdobně jako list templates ať je to konzistentní: https://developers.keboola.com/cli/commands/template/list/

@jprochazk
Copy link
Contributor Author

jprochazk commented Oct 10, 2022

Nesouhlasím s tím, že by tam toho bylo moc. U templates mi zase přijde že je tam zbytečně moc "dead space". V malým terminal window se mi tam nevleze ani jeden celý template. Jakmile máš 3+ tak už je to docela extrém, protože to nemá delimiters tak je špatně vidět, kde končí jeden template a začíná další. Určitě bysme to měli nějak standardizovat, ale chtěl bych to takhle zatím nechat a možná se k tomu ještě vrátit někdy jindy.

Co si o tom myslí @michaljurecko?

@michaljurecko
Copy link
Contributor

michaljurecko commented Oct 10, 2022

🙂 ja som nad tym tiez rozmyslal, ale neprisiel som na jednoznacne riesenie:

  • napr. nemal by byt name prvy? ked bude mat user 20x workspace, bude sa v tom schopny zorientovat (?)
  • ale mozno to nie je nieco co my riesit STDOUT, ale skor nejaky "lepsi" interface, kde sa da aj vyhladavat (alebo user pouzije nejaky iny CLI tool a tam presmeruje vystup)
  • takze neviem, osobne mi pride vystup pri templates prehladnejsi, ... delimiter sa tam moze pridat .... nevadi mi ani, ked by som si to v pripade potreby presmeroval do suboru a vyhladaval v tom cez VSCode
  • takze som vam velmi nepomohol 😃
  • (mozete dat 2 screenshoty do slacku a zistit co si o tom myslia ludia, alebo to neriesit)

@michaljurecko
Copy link
Contributor

Ako to riesi napr. Kubernetes CLI?

@jprochazk
Copy link
Contributor Author

Takový "compact table" interface:
image

@michaljurecko
Copy link
Contributor

Pri workspace by sa to dalo, pri templates uz nie + name je prvy.

@michaljurecko
Copy link
Contributor

Ale mozeme to vyriesit aj neskor a dat do backlogu, a pozriet sa aj na ostatne prikazy.

@jprochazk
Copy link
Contributor Author

Jen nechci zůstat tady zaseklý, tenhle PR obsahuje víc než jen workspace list implementaci, takže to blokuje další věci. Byl bych pro to dát do backlogu, není potřeba to řešit hned.

@JakubMatejka
Copy link
Contributor

No jak jsem psal, tak je to takhle imho nepřehledný a k tomu jsem velký zastánce konzistentnosti. Pokud se na tom ale shodneme, tak to nechme a řešme později. 🤷‍♂️

Tak co třeba dát první název jak píše Michal a ostatní parametry trochu upozadit, třeba oddělit závorkama?

test (ID: 1699268, Type: python, Size: small)
test-snowflake (ID: 4429297, Type: snowflake)
register model (ID: 731093, Type: python-mlflow)

@jprochazk
Copy link
Contributor Author

Pls teď se o tom nebavme, jak říká Michal, je asi potřeba vymyslet lepší interface pomocí kterýho to budeme vypisovat, podobně jako máme interface na selecty 🙂. V tom interface můžeme standardizovat indentation, delimiters, jak vypisovat key-value pairs, atd. Můžeme pak mít flagy pro změnu outputu, např. renderovat jako "pretty table" a nebo renderovat jako CSV pro processing v jiném commandu. Ale hlavně to bude pak konzistentní. Vytvořil jsem na to epic v maintenance https://keboola.atlassian.net/browse/KAC-268 (nevěděl jsem, kam jinam zařadit). Je to tak OK?

@JakubMatejka
Copy link
Contributor

Ano, souhlasím, koncepčně to řešme později. Ale říkám že než to tak uděláme, tak aspoň trochu zpřehledněme ten output. Nebo to je problém?

@JakubMatejka
Copy link
Contributor

Vždycky mě můžete overridenout, blokovat to zbytečně nechci. Jen nejsem úplně fanda konceptu "rychle mergovat, fixovat později", to pak nemusím dělat review. 🙂

@jprochazk
Copy link
Contributor Author

jprochazk commented Oct 10, 2022

Je to problém, protože by bylo potřeba se shodnout na tom, co je "přehlednější", což je subjektivní věc. Budeme se točit pořád dokola a nebude to produktivní. Ta implementace je ale hotová, output minimálně obsahuje všechny důležité informace a hlavně tohle blokuje další věci (což je moje chyba, měl jsem ty "unrelated" změny házet do jiných PR).

@JakubMatejka
Copy link
Contributor

Ve chvílích kdy je to subjektivní dávám přednost konzistenci a názoru vývojáře který za tím kódem stojí nejdýl, tak ať to rozhodne Michal. 😄

@jprochazk
Copy link
Contributor Author

Tak co třeba dát první název jak píše Michal a ostatní parametry trochu upozadit, třeba oddělit závorkama

Stačí to tak?

@michaljurecko
Copy link
Contributor

Mne staci, ze bude ten name prvy 😉

@JakubMatejka
Copy link
Contributor

Jo jo, taky tak. 🙂 👍

Copy link
Contributor

@JakubMatejka JakubMatejka left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

@jprochazk jprochazk merged commit 578dccb into main Oct 10, 2022
@jprochazk jprochazk deleted the janp-KAC-232-list-workspaces branch October 10, 2022 12:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants