vmssRoutes.js•3.13 kB
const express = require('express');
const router = express.Router();
const vmssService = require('../services/vmssService');
/**
 * GET /api/vmss
 * Lista todos os VMSS na subscription
 */
router.get('/', async (req, res) => {
  try {
    const vmssList = await vmssService.listAllVMSS();
    res.json({
      success: true,
      count: vmssList.length,
      data: vmssList
    });
  } catch (error) {
    res.status(500).json({
      success: false,
      error: error.message
    });
  }
});
/**
 * GET /api/vmss/resource-group/:resourceGroup
 * Lista VMSS em um resource group específico
 */
router.get('/resource-group/:resourceGroup', async (req, res) => {
  try {
    const { resourceGroup } = req.params;
    const vmssList = await vmssService.listVMSSByResourceGroup(resourceGroup);
    res.json({
      success: true,
      resourceGroup,
      count: vmssList.length,
      data: vmssList
    });
  } catch (error) {
    res.status(500).json({
      success: false,
      error: error.message
    });
  }
});
/**
 * GET /api/vmss/:resourceGroup/:vmssName
 * Obtém detalhes de um VMSS específico
 */
router.get('/:resourceGroup/:vmssName', async (req, res) => {
  try {
    const { resourceGroup, vmssName } = req.params;
    const vmss = await vmssService.getVMSS(resourceGroup, vmssName);
    res.json({
      success: true,
      data: vmss
    });
  } catch (error) {
    res.status(500).json({
      success: false,
      error: error.message
    });
  }
});
/**
 * GET /api/vmss/:resourceGroup/:vmssName/status
 * Obtém status detalhado de um VMSS
 */
router.get('/:resourceGroup/:vmssName/status', async (req, res) => {
  try {
    const { resourceGroup, vmssName } = req.params;
    const status = await vmssService.getVMSSStatus(resourceGroup, vmssName);
    res.json({
      success: true,
      data: status
    });
  } catch (error) {
    res.status(500).json({
      success: false,
      error: error.message
    });
  }
});
/**
 * GET /api/vmss/:resourceGroup/:vmssName/instances
 * Lista instâncias de um VMSS
 */
router.get('/:resourceGroup/:vmssName/instances', async (req, res) => {
  try {
    const { resourceGroup, vmssName } = req.params;
    const instances = await vmssService.listVMSSInstances(resourceGroup, vmssName);
    res.json({
      success: true,
      resourceGroup,
      vmssName,
      count: instances.length,
      data: instances
    });
  } catch (error) {
    res.status(500).json({
      success: false,
      error: error.message
    });
  }
});
/**
 * GET /api/vmss/:resourceGroup/:vmssName/instances/:instanceId
 * Obtém view de uma instância específica do VMSS
 */
router.get('/:resourceGroup/:vmssName/instances/:instanceId', async (req, res) => {
  try {
    const { resourceGroup, vmssName, instanceId } = req.params;
    const instanceView = await vmssService.getVMSSInstanceView(
      resourceGroup,
      vmssName,
      instanceId
    );
    res.json({
      success: true,
      data: instanceView
    });
  } catch (error) {
    res.status(500).json({
      success: false,
      error: error.message
    });
  }
});
module.exports = router;