Changing DB config and requests in scripts
continuous-integration/drone/push Build encountered an error Details

main
Félix MIELCAREK 11 months ago
parent 0e964f11a3
commit 65bb022672

@ -4,97 +4,96 @@ name: BB_PIPELINE
steps: steps:
- name: deploy-container-db # - name: deploy-container-db
image: hub.codefirst.iut.uca.fr/thomas.bellembois/codefirst-dockerproxy-clientdrone:latest
environment:
IMAGENAME: mariadb:10
CONTAINERNAME: bigbrotherdb
COMMAND: create
OVERWRITE: false
PRIVATE: true
CODEFIRST_CLIENTDRONE_ENV_MARIADB_ROOT_PASSWORD:
from_secret: db_root_password
CODEFIRST_CLIENTDRONE_ENV_MARIADB_DATABASE:
from_secret: db_database
CODEFIRST_CLIENTDRONE_ENV_MARIADB_USER:
from_secret: db_user
CODEFIRST_CLIENTDRONE_ENV_MARIADB_PASSWORD:
from_secret: db_password
- name: create-bigbrother-database
image: python:latest
commands:
- cd database/
- pip3 install mariadb
- python3 db-creation.py
environment:
MARIADB_USER:
from_secret: db_user
MARIADB_PASSWORD:
from_secret: db_password
depends_on: [ deploy-container-db ]
# - name: build-image-server
# image: plugins/docker
# settings:
# dockerfile: callback-server/Dockerfile
# context: ./
# registry: hub.codefirst.iut.uca.fr
# repo: hub.codefirst.iut.uca.fr/felix.mielcarek/big-brother-server
# username:
# from_secret: SECRET_REGISTRY_USERNAME
# password:
# from_secret: SECRET_REGISTRY_PASSWORD
# depends_on: [ create-bigbrother-database ]
#
# - name: deploy-container-server
# image: hub.codefirst.iut.uca.fr/thomas.bellembois/codefirst-dockerproxy-clientdrone:latest # image: hub.codefirst.iut.uca.fr/thomas.bellembois/codefirst-dockerproxy-clientdrone:latest
# environment: # environment:
# IMAGENAME: hub.codefirst.iut.uca.fr/felix.mielcarek/big-brother-server:latest # IMAGENAME: mariadb:10
# CONTAINERNAME: bigbrotherserver # CONTAINERNAME: bigbrotherdb
# COMMAND: create # COMMAND: create
# OVERWRITE: true # OVERWRITE: false
# POSTGRES_USER: # PRIVATE: true
# CODEFIRST_CLIENTDRONE_ENV_MARIADB_ROOT_PASSWORD:
# from_secret: db_root_password
# CODEFIRST_CLIENTDRONE_ENV_MARIADB_DATABASE:
# from_secret: db_database
# CODEFIRST_CLIENTDRONE_ENV_MARIADB_USER:
# from_secret: db_user # from_secret: db_user
# POSTGRES_PASSWORD: # CODEFIRST_CLIENTDRONE_ENV_MARIADB_PASSWORD:
# from_secret: db_password # from_secret: db_password
# POSTGRES_DATABASE:
# from_secret: db_database
# CLIENT_ID:
# from_secret: spotify_client_id
# CLIENT_SECRET:
# from_secret: spotify_client_id
# depends_on: [ build-image-server ]
#
# - name: build-image-script
# image: plugins/docker
# settings:
# dockerfile: script/Dockerfile
# context: ./
# registry: hub.codefirst.iut.uca.fr
# repo: hub.codefirst.iut.uca.fr/felix.mielcarek/big-brother
# username:
# from_secret: SECRET_REGISTRY_USERNAME
# password:
# from_secret: SECRET_REGISTRY_PASSWORD
# depends_on: [ create-bigbrother-database ]
# #
# - name: deploy-container-script # - name: create-bigbrother-database
# image: hub.codefirst.iut.uca.fr/thomas.bellembois/codefirst-dockerproxy-clientdrone:latest # image: python:latest
# commands:
# - cd database/
# - pip3 install mariadb
# - python3 db-creation.py
# environment: # environment:
# IMAGENAME: hub.codefirst.iut.uca.fr/felix.mielcarek/big-brother:latest # MARIADB_USER:
# CONTAINERNAME: bigbrotherscript
# COMMAND: create
# OVERWRITE: true
# POSTGRES_USER:
# from_secret: db_user # from_secret: db_user
# POSTGRES_PASSWORD: # MARIADB_PASSWORD:
# from_secret: db_password # from_secret: db_password
# POSTGRES_DATABASE: # depends_on: [ deploy-container-db ]
# from_secret: db_database
# CLIENT_ID: - name: build-image-server
# from_secret: spotify_client_id image: plugins/docker
# CLIENT_SECRET: settings:
# from_secret: spotify_client_id dockerfile: callback-server/Dockerfile
# depends_on: [ build-image-script ] context: ./
# registry: hub.codefirst.iut.uca.fr
repo: hub.codefirst.iut.uca.fr/felix.mielcarek/big-brother-server
username:
from_secret: SECRET_REGISTRY_USERNAME
password:
from_secret: SECRET_REGISTRY_PASSWORD
depends_on: [ create-bigbrother-database ]
- name: deploy-container-server
image: hub.codefirst.iut.uca.fr/thomas.bellembois/codefirst-dockerproxy-clientdrone:latest
environment:
IMAGENAME: hub.codefirst.iut.uca.fr/felix.mielcarek/big-brother-server:latest
CONTAINERNAME: bigbrotherserver
COMMAND: create
OVERWRITE: true
POSTGRES_USER:
from_secret: db_user
POSTGRES_PASSWORD:
from_secret: db_password
POSTGRES_DATABASE:
from_secret: db_database
CLIENT_ID:
from_secret: spotify_client_id
CLIENT_SECRET:
from_secret: spotify_client_id
depends_on: [ build-image-server ]
- name: build-image-script
image: plugins/docker
settings:
dockerfile: script/Dockerfile
context: ./
registry: hub.codefirst.iut.uca.fr
repo: hub.codefirst.iut.uca.fr/felix.mielcarek/big-brother
username:
from_secret: SECRET_REGISTRY_USERNAME
password:
from_secret: SECRET_REGISTRY_PASSWORD
depends_on: [ create-bigbrother-database ]
- name: deploy-container-script
image: hub.codefirst.iut.uca.fr/thomas.bellembois/codefirst-dockerproxy-clientdrone:latest
environment:
IMAGENAME: hub.codefirst.iut.uca.fr/felix.mielcarek/big-brother:latest
CONTAINERNAME: bigbrotherscript
COMMAND: create
OVERWRITE: true
POSTGRES_USER:
from_secret: db_user
POSTGRES_PASSWORD:
from_secret: db_password
POSTGRES_DATABASE:
from_secret: db_database
CLIENT_ID:
from_secret: spotify_client_id
CLIENT_SECRET:
from_secret: spotify_client_id
depends_on: [ build-image-script ]

@ -1,7 +1,7 @@
//#region REQUIRE //#region REQUIRE
const express = require('express') const express = require('express')
const axios = require('axios'); const axios = require('axios');
const { Client } = require('pg'); const mariadb = require('mariadb');
//#endregion //#endregion
//#region CONSTANTS //#region CONSTANTS
@ -20,13 +20,12 @@ app.listen(port, () => { console.log(`Big brother is listening on port ${port}`)
//#region ACCESS TOKEN //#region ACCESS TOKEN
app.get('/settings/deactivate', async (req,res) => { app.get('/settings/deactivate', async (req,res) => {
const client = new Client({ const client = mariadb.createPool({
host: 'felixmielcarek-bigbrotherdb', host: 'felixmielcarek-bigbrotherdb',
user: process.env.POSTGRES_USER, user: process.env.MARIADB_USER,
database: process.env.POSTGRES_DATABASE, database: process.env.MARIADB_DATABASE,
password: process.env.POSTGRES_PASSWORD, password: process.env.MARIADB_PASSWORD
port: 5432 });
})
const code = req.query.code; const code = req.query.code;
@ -45,14 +44,14 @@ app.get('/settings/deactivate', async (req,res) => {
try { try {
const response2 = await axios.get(`https://api.spotify.com/v1/me`, { headers: { 'Authorization': 'Bearer ' + accessToken, } }); const response2 = await axios.get(`https://api.spotify.com/v1/me`, { headers: { 'Authorization': 'Bearer ' + accessToken, } });
await client.connect() await client.getConnection()
const sqlQuery = ` const sqlQuery = `
DELETE FROM public.users DELETE FROM users
WHERE spotifyid = $1; WHERE spotifyid = ?;
`; `;
client.query(sqlQuery, [data.SpotifyId], (err, res) => { client.query(sqlQuery, [response2.data.SpotifyId], (err, res) => {
if (err) { if (err) {
console.error('Error executing query', err); console.error('Error executing query', err);
return; return;
@ -64,13 +63,12 @@ app.get('/settings/deactivate', async (req,res) => {
}) })
app.get('/', async (req, res) => { app.get('/', async (req, res) => {
const client = new Client({ const client = mariadb.createPool({
host: 'felixmielcarek-bigbrotherdb', host: 'felixmielcarek-bigbrotherdb',
user: process.env.POSTGRES_USER, user: process.env.MARIADB_USER,
database: process.env.POSTGRES_DATABASE, database: process.env.MARIADB_DATABASE,
password: process.env.POSTGRES_PASSWORD, password: process.env.MARIADB_PASSWORD
port: 5432 });
})
const code = req.query.code; const code = req.query.code;
@ -96,14 +94,14 @@ app.get('/', async (req, res) => {
RefreshToken: refreshToken RefreshToken: refreshToken
}; };
await client.connect() await client.getConnection()
const sqlQuery = ` const sqlQuery = `
INSERT INTO public.users (spotifyid,accesstoken,refreshtoken) INSERT INTO users (spotifyid, accesstoken, refreshtoken)
VALUES ($1,$2,$3) VALUES (?, ?, ?)
ON CONFLICT (spotifyid) DO UPDATE SET ON DUPLICATE KEY UPDATE
accesstoken = EXCLUDED.accesstoken, accesstoken = VALUES(accesstoken),
refreshtoken = EXCLUDED.refreshtoken refreshtoken = VALUES(refreshtoken);
`; `;
client.query(sqlQuery, [data.SpotifyId, data.AccessToken, data.RefreshToken], (err, res) => { client.query(sqlQuery, [data.SpotifyId, data.AccessToken, data.RefreshToken], (err, res) => {

@ -1,8 +1,8 @@
import os import os
with open('.env', 'w') as f: with open('.env', 'w') as f:
f.write("POSTGRES_USER={}\n".format(os.getenv('POSTGRES_USER'))) f.write("MARIADB_USER={}\n".format(os.getenv('MARIADB_USER')))
f.write("POSTGRES_PASSWORD={}\n".format(os.getenv('POSTGRES_PASSWORD'))) f.write("MARIADB_PASSWORD={}\n".format(os.getenv('MARIADB_PASSWORD')))
f.write("POSTGRES_DATABASE={}\n".format(os.getenv('POSTGRES_DATABASE'))) f.write("MARIADB_DATABASE={}\n".format(os.getenv('MARIADB_DATABASE')))
f.write("CLIENT_ID={}\n".format(os.getenv('CLIENT_ID'))) f.write("CLIENT_ID={}\n".format(os.getenv('CLIENT_ID')))
f.write("CLIENT_SECRET={}\n".format(os.getenv('CLIENT_SECRET'))) f.write("CLIENT_SECRET={}\n".format(os.getenv('CLIENT_SECRET')))

@ -3,13 +3,14 @@ import mariadb
env_user = os.getenv('MARIADB_USER') env_user = os.getenv('MARIADB_USER')
env_password = os.getenv('MARIADB_PASSWORD') env_password = os.getenv('MARIADB_PASSWORD')
env_database = os.getenv('MARIADB_DATABASE')
def executeDBQuery(query): def executeDBQuery(query):
conn = mariadb.connect( conn = mariadb.connect(
user=env_user, user=env_user,
password=env_password, password=env_password,
host="felixmielcarek-bigbrotherdb", host="felixmielcarek-bigbrotherdb",
database="bigbrother" database=env_database
) )
conn.autocommit = True conn.autocommit = True
cur = conn.cursor() cur = conn.cursor()

@ -1,6 +1,6 @@
//#region REQUIRE //#region REQUIRE
const axios = require('axios'); const axios = require('axios');
const { Client } = require('pg'); const mariadb = require('mariadb');
//#endregion //#endregion
//#region CONSTANTS //#region CONSTANTS
@ -8,13 +8,12 @@ const spotifyRequestsLimit = 50;
const thresholdLove = 0.6; const thresholdLove = 0.6;
const clientId = process.env.CLIENT_ID; const clientId = process.env.CLIENT_ID;
const clientSecret = process.env.CLIENT_SECRET; const clientSecret = process.env.CLIENT_SECRET;
const client = new Client({ const client = mariadb.createPool({
host: 'felixmielcarek-bigbrotherdb', host: 'felixmielcarek-bigbrotherdb',
user: process.env.POSTGRES_USER, user: process.env.MARIADB_USER,
database: process.env.POSTGRES_DATABASE, database: process.env.MARIADB_DATABASE,
password: process.env.POSTGRES_PASSWORD, password: process.env.MARIADB_PASSWORD
port: 5432 });
})
//#endregion //#endregion
//#region STRUCTURE //#region STRUCTURE
@ -177,10 +176,10 @@ async function mainAlgorithm(accessToken) {
} }
async function main() { async function main() {
await client.connect(); await client.getConnection();
try { try {
const selectQuery = 'SELECT * FROM public.users'; const selectQuery = 'SELECT * FROM users';
const selectResult = await client.query(selectQuery); const selectResult = await client.query(selectQuery);
for(let row of selectResult.rows) { for(let row of selectResult.rows) {
@ -206,9 +205,9 @@ async function main() {
const newRefreshToken = response.data.refresh_token; const newRefreshToken = response.data.refresh_token;
const updateQuery = ` const updateQuery = `
UPDATE public.users UPDATE users
SET accesstoken = $2, refreshtoken = $3 SET accesstoken = ?, refreshtoken = ?
WHERE spotifyid = $1; WHERE spotifyid = ?;
`; `;
await client.query(updateQuery, [spotifyId, newAccessToken, newRefreshToken]) await client.query(updateQuery, [spotifyId, newAccessToken, newRefreshToken])

Loading…
Cancel
Save