Seed o chiamate API per creare utenti di test

Nel mio ambiente di sviluppo e test sto eseguendo un’istanza di Discourse (Docker Discourse di Bitnami), che soddisfa la maggior parte delle mie esigenze di test API per il nostro servizio che comunica con Discourse. Tuttavia, ora devo testare la ricerca tramite /u/search/users.json?term=and e vorrei popolare questo servizio locale di test di Discourse con alcuni utenti. Di default, è presente solo un utente con il nome “user”.

La documentazione API non sembra spiegare le chiamate API per farlo, il che sarebbe semplice. C’è qualcosa che mi sfugge che mi permetterebbe di creare facilmente più utenti per i test?

Da notare inoltre: ho già inviato richieste manuali al nostro servizio Discourse live a pagamento e questo funziona, ma vorrei testare contro la nostra istanza di sviluppo/test, per cui ho bisogno di più utenti di prova.

Grazie.

Bitnami permette di accedere alla riga di comando della cartella di configurazione di Discourse?

Se sì, dai un’occhiata a questo:

Grazie @fzngagan, purtroppo Bitnami Discourse non ha Launcher installato. Cosa fa esattamente enter app? Pensavo di poter semplicemente eseguire bundle exec rake admin:create, ma restituisce…

rake aborted!
LoadError: cannot load such file -- byebug
/opt/bitnami/discourse/vendor/bundle/ruby/2.5.0/gems/bootsnap-1.3.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:82:in `require'
/opt/bitnami/discourse/config/application.rb:37:in `<top (required)>'
/opt/bitnami/discourse/Rakefile:5:in `require'
/opt/bitnami/discourse/Rakefile:5:in `<top (required)>'
/opt/bitnami/discourse/vendor/bundle/ruby/2.5.0/gems/rake-12.3.2/exe/rake:27:in `<top (required)>'
/opt/bitnami/ruby/bin/bundle:23:in `load'
/opt/bitnami/ruby/bin/bundle:23:in `<main>'
(See full trace by running task with --trace)

Quindi sembrava promettente, ma sono di nuovo a zero. :frowning:

Potresti utilizzare l’installazione ufficiale supportata di Discourse?

Abbiamo diversi servizi necessari nel nostro ambiente di sviluppo e preferiamo avviare tutto (insieme a Discourse e ai suoi moduli) e definire/controllare la rete tra tutti i servizi con un unico comando docker-compose up, così come spegnere tutto con down. Questo evita il passaggio aggiuntivo di aggiungere launcher a una nuova installazione del nostro ambiente di sviluppo.

OK, risolto. Per chi utilizza un’installazione Docker di Discourse con docker-compose di Bitnami per lo sviluppo, ecco i passaggi che ho seguito (con il suggerimento di quanto indicato da @fzngagan):

> docker exec -it <nome del tuo container> /bin/bash

All’interno del container…

> export RAILS_ENV=production

Non sono sicuro di quale impatto questo avrà sulla registrazione dei log e forse avrei dovuto provare =dev o development… quindi qualcosa da segnalare da parte vostra, ma sono di fretta, scusate

> bundle exec rake admin:create

Rispondi alle domande; la password deve rispettare le regole di Discourse, altrimenti lo script ricomincia dall’inizio

Nota: Non è necessario utilizzare ./Launcher, come indicato nel link citato da @fzngagan sopra.

È un peccato che questa funzionalità non sia disponibile tramite API se Discourse è impostato su un ambiente Dev o Test, poiché ciò semplificherebbe notevolmente i test e lo sviluppo per i servizi API che desiderano utilizzarla. Tuttavia, per ora mi accontenterò della riga di comando all’interno dell’istanza Docker.

Nota aggiuntiva, > export RAILS_ENV=production (impostato su production) sembra non avere alcun impatto sulle informazioni di log di Discourse, tuttavia non ho riavviato il mio docker-compose dopo tale modifica, quindi potrebbe essere necessario eliminare la variabile d’ambiente o impostarla su development o ‘dev’ o altro.