vmRoutes.js•1.91 kB
const express = require('express');
const router = express.Router();
const vmService = require('../services/vmService');
/**
 * GET /api/vms
 * Lista todas as VMs na subscription
 */
router.get('/', async (req, res) => {
  try {
    const vms = await vmService.listAllVMs();
    res.json({
      success: true,
      count: vms.length,
      data: vms
    });
  } catch (error) {
    res.status(500).json({
      success: false,
      error: error.message
    });
  }
});
/**
 * GET /api/vms/resource-group/:resourceGroup
 * Lista VMs em um resource group específico
 */
router.get('/resource-group/:resourceGroup', async (req, res) => {
  try {
    const { resourceGroup } = req.params;
    const vms = await vmService.listVMsByResourceGroup(resourceGroup);
    res.json({
      success: true,
      resourceGroup,
      count: vms.length,
      data: vms
    });
  } catch (error) {
    res.status(500).json({
      success: false,
      error: error.message
    });
  }
});
/**
 * GET /api/vms/:resourceGroup/:vmName
 * Obtém detalhes de uma VM específica
 */
router.get('/:resourceGroup/:vmName', async (req, res) => {
  try {
    const { resourceGroup, vmName } = req.params;
    const vm = await vmService.getVM(resourceGroup, vmName);
    res.json({
      success: true,
      data: vm
    });
  } catch (error) {
    res.status(500).json({
      success: false,
      error: error.message
    });
  }
});
/**
 * GET /api/vms/:resourceGroup/:vmName/status
 * Obtém status de uma VM específica
 */
router.get('/:resourceGroup/:vmName/status', async (req, res) => {
  try {
    const { resourceGroup, vmName } = req.params;
    const status = await vmService.getVMStatus(resourceGroup, vmName);
    res.json({
      success: true,
      data: status
    });
  } catch (error) {
    res.status(500).json({
      success: false,
      error: error.message
    });
  }
});
module.exports = router;