feat: Add increment/decrement methods to AdminAPIService
- Add increment_domain_count() method - Add decrement_domain_count() method - Update deploy script to preserve .env settings
This commit is contained in:
parent
6e29df1945
commit
0b2920e43f
|
|
@ -118,3 +118,92 @@ class AdminAPIService:
|
||||||
'error': f'Admin API error: {str(e)}'
|
'error': f'Admin API error: {str(e)}'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
def increment_domain_count(self, account_id: int) -> Dict:
|
||||||
|
"""
|
||||||
|
Increment domain count for CF account in Admin Panel
|
||||||
|
Called after successfully creating a domain
|
||||||
|
|
||||||
|
Args:
|
||||||
|
account_id: CF account ID
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
{
|
||||||
|
"status": "success" | "error",
|
||||||
|
"message": str,
|
||||||
|
"new_count": int,
|
||||||
|
"available_capacity": int,
|
||||||
|
"error": str (if error)
|
||||||
|
}
|
||||||
|
"""
|
||||||
|
try:
|
||||||
|
url = f"{self.base_url}/api/cf-accounts/internal/{account_id}/increment"
|
||||||
|
response = requests.post(url, headers=self.headers, timeout=10)
|
||||||
|
|
||||||
|
if response.status_code == 200:
|
||||||
|
return response.json()
|
||||||
|
else:
|
||||||
|
return {
|
||||||
|
'status': 'error',
|
||||||
|
'error': f'Admin API returned {response.status_code}: {response.text}'
|
||||||
|
}
|
||||||
|
|
||||||
|
except requests.exceptions.Timeout:
|
||||||
|
return {
|
||||||
|
'status': 'error',
|
||||||
|
'error': 'Admin API request timeout'
|
||||||
|
}
|
||||||
|
except requests.exceptions.ConnectionError:
|
||||||
|
return {
|
||||||
|
'status': 'error',
|
||||||
|
'error': 'Cannot connect to Admin API'
|
||||||
|
}
|
||||||
|
except Exception as e:
|
||||||
|
return {
|
||||||
|
'status': 'error',
|
||||||
|
'error': f'Admin API error: {str(e)}'
|
||||||
|
}
|
||||||
|
|
||||||
|
def decrement_domain_count(self, account_id: int) -> Dict:
|
||||||
|
"""
|
||||||
|
Decrement domain count for CF account in Admin Panel
|
||||||
|
Called after successfully deleting a domain
|
||||||
|
|
||||||
|
Args:
|
||||||
|
account_id: CF account ID
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
{
|
||||||
|
"status": "success" | "error",
|
||||||
|
"message": str,
|
||||||
|
"new_count": int,
|
||||||
|
"available_capacity": int,
|
||||||
|
"error": str (if error)
|
||||||
|
}
|
||||||
|
"""
|
||||||
|
try:
|
||||||
|
url = f"{self.base_url}/api/cf-accounts/internal/{account_id}/decrement"
|
||||||
|
response = requests.post(url, headers=self.headers, timeout=10)
|
||||||
|
|
||||||
|
if response.status_code == 200:
|
||||||
|
return response.json()
|
||||||
|
else:
|
||||||
|
return {
|
||||||
|
'status': 'error',
|
||||||
|
'error': f'Admin API returned {response.status_code}: {response.text}'
|
||||||
|
}
|
||||||
|
|
||||||
|
except requests.exceptions.Timeout:
|
||||||
|
return {
|
||||||
|
'status': 'error',
|
||||||
|
'error': 'Admin API request timeout'
|
||||||
|
}
|
||||||
|
except requests.exceptions.ConnectionError:
|
||||||
|
return {
|
||||||
|
'status': 'error',
|
||||||
|
'error': 'Cannot connect to Admin API'
|
||||||
|
}
|
||||||
|
except Exception as e:
|
||||||
|
return {
|
||||||
|
'status': 'error',
|
||||||
|
'error': f'Admin API error: {str(e)}'
|
||||||
|
}
|
||||||
|
|
|
||||||
32
deploy.sh
32
deploy.sh
|
|
@ -13,13 +13,37 @@ echo "║ 🚀 Hosting Platform Deployment Script 🚀 ║"
|
||||||
echo "╚══════════════════════════════════════════════════════════════╝"
|
echo "╚══════════════════════════════════════════════════════════════╝"
|
||||||
echo ""
|
echo ""
|
||||||
|
|
||||||
# 1. Git Pull
|
# 1. Backup and Git Pull
|
||||||
echo "📥 [1/6] Pulling latest code from Gitea..."
|
echo "📥 [1/6] Backing up .env and pulling latest code..."
|
||||||
ssh -i $SSH_KEY $HOST << 'ENDSSH'
|
ssh -i $SSH_KEY $HOST << 'ENDSSH'
|
||||||
|
# Backup .env file
|
||||||
|
mkdir -p /opt/backups/hosting-platform
|
||||||
|
if [ -f /opt/hosting-platform/backend/.env ]; then
|
||||||
|
cp /opt/hosting-platform/backend/.env /opt/backups/hosting-platform/.env.backup.$(date +%Y%m%d_%H%M%S)
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Pull latest code
|
||||||
cd /opt/hosting-platform
|
cd /opt/hosting-platform
|
||||||
git pull origin main
|
git fetch origin
|
||||||
|
git reset --hard origin/main
|
||||||
|
|
||||||
|
# Restore .env file
|
||||||
|
LATEST_BACKUP=$(ls -t /opt/backups/hosting-platform/.env.backup.* 2>/dev/null | head -1)
|
||||||
|
if [ -n "$LATEST_BACKUP" ]; then
|
||||||
|
cp "$LATEST_BACKUP" /opt/hosting-platform/backend/.env
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Ensure ADMIN_API config exists
|
||||||
|
if ! grep -q "ADMIN_API_URL" /opt/hosting-platform/backend/.env; then
|
||||||
|
cat >> /opt/hosting-platform/backend/.env << 'EOF'
|
||||||
|
|
||||||
|
# Admin Panel API (for fetching CF accounts)
|
||||||
|
ADMIN_API_URL=http://localhost:5001
|
||||||
|
ADMIN_API_INTERNAL_KEY=internal-api-key-1c2f72e80d1bc5f9bfee7e3726319ac7
|
||||||
|
EOF
|
||||||
|
fi
|
||||||
ENDSSH
|
ENDSSH
|
||||||
echo "✅ Git pull complete"
|
echo "✅ Git pull complete and .env restored"
|
||||||
echo ""
|
echo ""
|
||||||
|
|
||||||
# 2. Backend Dependencies
|
# 2. Backend Dependencies
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue