diff --git a/project2/famousquotes.py b/project2/famousquotes.py index 7945c69..47e8606 100644 --- a/project2/famousquotes.py +++ b/project2/famousquotes.py @@ -1,37 +1,37 @@ import requests import os import sys +import random -# API stabil pentru a evita erorile de rețea anterioare API_URL = os.getenv("QUOTE_API_URL", "https://api.adviceslip.com/advice") def get_quote(): + # Citate de rezervă în caz că rețeaua pică + fallback_quotes = [ + {"q": "The only way to do great work is to love what you do.", "a": "Steve Jobs"}, + {"q": "Innovation distinguishes between a leader and a follower.", "a": "Steve Jobs"}, + {"q": "Stay hungry, stay foolish.", "a": "Steve Jobs"} + ] + try: - # Timeout de 20s pentru a preveni blocarea pipeline-ului - response = requests.get(API_URL, timeout=20) + # Încercăm să luăm de pe net (timeout mic să nu așteptăm mult) + response = requests.get(API_URL, timeout=5) response.raise_for_status() data = response.json() - # Extragem mesajul (format AdviceSlip) if 'slip' in data: - quote = data['slip'].get('advice') - author = "AdviceSlip" + quote, author = data['slip'].get('advice'), "AdviceSlip" else: - quote = data.get('content') or data.get('q') or "No message found." + quote = data.get('content') or data.get('q') author = data.get('author') or data.get('a') or "Unknown" + except Exception: + # Dacă rețeaua eșuează, alegem unul din listă + choice = random.choice(fallback_quotes) + quote, author = choice['q'], choice['a'] - message = f"📜 *\"{quote}\"* \n\n✍️ **{author}**" - - # Salvăm fișierul local în container (/app) - with open("quote.txt", "w", encoding="utf-8") as f: - f.write(message) - - print(f"Succes! Mesaj pregătit.") - - except Exception as e: - with open("quote.txt", "w", encoding="utf-8") as f: - f.write(f"⚠️ Eroare la preluare: {str(e)[:80]}") - sys.exit(0) # Nu oprim pipeline-ul forțat + message = f"📜 *\"{quote}\"* \n\n✍️ **{author}**" + with open("quote.txt", "w", encoding="utf-8") as f: + f.write(message) if __name__ == "__main__": get_quote() \ No newline at end of file diff --git a/project2/jenkinsfile b/project2/jenkinsfile index c1a9279..65c0edf 100644 --- a/project2/jenkinsfile +++ b/project2/jenkinsfile @@ -23,7 +23,7 @@ pipeline { dir('project2') { try { // 3. Rulăm cu DNS forțat pentru a evita "NameResolutionError" - sh "docker run --name quotes-worker --network host --dns 8.8.8.8 quotes-app" + sh "docker run --name quotes-worker --dns 8.8.8.8 quotes-app" // 4. Extragem rezultatul sh "docker cp quotes-worker:/app/quote.txt ."