Skip to content

Gerenciando Nodes

João Victor Oliveira edited this page Jan 19, 2025 · 1 revision

Gerenciando Nodes

O gerenciando de nodes é simples, bastando você utilizando este código inicial:

public class Main {
    public static void main(String[] args) {
        PteroAPI.initPteroAPI("https://example.com.br", "TOKEN", ManagerPolicy.ALL);
        NodeManager nodeManager = PteroAPI.getManager(NodeManager.class);
    }
}

Listando Nodes

Para listar todos os nodes, você precisará chamar a função "listNodes", que retorna um CompletableFuture, do tipo lista de nodes.

public class Main {
    public static void main(String[] args) {
        PteroAPI.initPteroAPI("https://example.com.br", "TOKEN", ManagerPolicy.ALL);
        NodeManager nodeManager = PteroAPI.getManager(NodeManager.class);
        CompletableFuture<List<Node>> completableFuture = nodeManager.listNodes();
        completableFuture.thenAccept(nodeList -> nodeList.forEach(node -> System.out.println("The node: " + node.getName() + " is present"))).exceptionally(throwable -> {
            throw new RuntimeException(throwable);
        });
    }
}

Pegando um Node

Para pegar as informações de um node, você precisará chamar a função "getNode", que retorna um CompletableFuture, do tipo Node.

public class Main {
    public static void main(String[] args) {
        PteroAPI.initPteroAPI("https://example.com.br", "TOKEN", ManagerPolicy.ALL);
        NodeManager nodeManager = PteroAPI.getManager(NodeManager.class);
        CompletableFuture<Node> completableFuture = nodeManager.getNode(1L);
        completableFuture.thenAccept(node -> System.out.println(node.getName())).exceptionally(throwable -> {
            throw new RuntimeException(throwable);
        });
    }
}

Atualizando um Node

Para atualizar as informações de um node, você precisará chamar a função "updateNode", passando um object node atualizado, que retorna um CompletableFuture, do tipo Json, que é a resposta da request.

public class Main {
    public static void main(String[] args) {
        PteroAPI.initPteroAPI("https://example.com.br", "TOKEN", ManagerPolicy.ALL);
        NodeManager nodeManager = PteroAPI.getManager(NodeManager.class);
        CompletableFuture<Node> completableFuture = nodeManager.getNode(1L);
        completableFuture.thenAccept(node -> {
            node.setName("New Name");
            CompletableFuture<JSONObject> response = nodeManager.updateNode(node);
            response.thenAccept(System.out::println).exceptionally(throwable -> {
                throw new RuntimeException(throwable);
            });
        });
    }
}

Criando um node

Para criar um node, você precisará chamar a função "createNode", passando o builder de node, que retorna um CompletableFuture, do tipo Json, que é a resposta da request.

⚠️ATENÇÃO

Ao criar um builder, lembre-se de setar o valor em todos os parametros, pois, caso deixe algum nulo, poderá resultar em execessões.

public class Main {
    public static void main(String[] args) {
        PteroAPI.initPteroAPI("https://example.com.br", "TOKEN", ManagerPolicy.ALL);
        NodeManager nodeManager = PteroAPI.getManager(NodeManager.class);
        NodeBuilder builder = new NodeBuilder().appendName("New Node")
                .appendLocationID(1L)
                .appendFqdn("node2.example.com")
                .appendScheme("https")
                .appendMemory(10240)
                .appendMemoryOverallocate(0)
                .appendDisk(50000)
                .appendDiskOverallocate(0)
                .appendUploadSize(100)
                .appendDaemonSftp(2022)
                .appendDaemonListen(8080);
        
        CompletableFuture<JSONObject> completableFuture = nodeManager.createNode(builder);
        completableFuture.thenAccept(System.out::println).exceptionally(throwable -> {
            throw new RuntimeException(throwable);
        });
    }
}

Deletando um Node

Para deletar um node, você precisará chamar a função "deleteNode", passando o ID do node, que retorna um CompletableFuture, do tipo Json, que é a resposta da request.

public class Main {
    public static void main(String[] args) {
        PteroAPI.initPteroAPI("https://example.com.br", "TOKEN", ManagerPolicy.ALL);
        NodeManager nodeManager = PteroAPI.getManager(NodeManager.class);
        CompletableFuture<JSONObject> completableFuture = nodeManager.deleteNode(1L);
        completableFuture.thenAccept(System.out::println).exceptionally(throwable -> {
            throw new RuntimeException(throwable);
        });
    }
}

Gerenciando Allocations

Listando Allocations

Para listar todos as allocations, você precisará chamar a função "listAllocations", que retorna um CompletableFuture, do tipo lista de allocations.

public class Main {
    public static void main(String[] args) {
        PteroAPI.initPteroAPI("https://example.com.br", "TOKEN", ManagerPolicy.ALL);
        NodeManager nodeManager = PteroAPI.getManager(NodeManager.class);
        CompletableFuture<List<Allocation>> completableFuture = nodeManager.listAllocations(1L);
        completableFuture.thenAccept(allocationsList -> allocationsList.forEach(node -> System.out.println("The allocation: " + node.getPort() + " is present"))).exceptionally(throwable -> {
            throw new RuntimeException(throwable);
        });
    }
}

Criando um allocation

Para criar um allocation, você precisará chamar a função "createAllocation", passando o builder de allocation, juntamente ao ID do node, que retorna um CompletableFuture, do tipo Json, que é a resposta da request.

⚠️ATENÇÃO

Ao criar um builder, lembre-se de setar o valor em todos os parametros, pois, caso deixe algum nulo, poderá resultar em execessões.

public class Main {
    public static void main(String[] args) {
        PteroAPI.initPteroAPI("https://example.com.br", "TOKEN", ManagerPolicy.ALL);
        NodeManager nodeManager = PteroAPI.getManager(NodeManager.class);
        AllocationBuilder allocationBuilder = new AllocationBuilder().appendIP("exemple.com.br")
                .appendPorts(25565);
        CompletableFuture<JSONObject> completableFuture = nodeManager.createAllocation(allocationBuilder, 1L);
        completableFuture.thenAccept(System.out::println).exceptionally(throwable -> {
            throw new RuntimeException(throwable);
        });
    }
}

Deletando um Allocation

Para deletar uma allocation, você precisará chamar a função "deleteAllocation", passando o ID do node e da allocation, que retorna um CompletableFuture, do tipo Json, que é a resposta da request.

public class Main {
    public static void main(String[] args) {
        PteroAPI.initPteroAPI("https://example.com.br", "TOKEN", ManagerPolicy.ALL);
        NodeManager nodeManager = PteroAPI.getManager(NodeManager.class);
        CompletableFuture<JSONObject> completableFuture = nodeManager.deleteAllocation(1L, 1L);
        completableFuture.thenAccept(System.out::println).exceptionally(throwable -> {
            throw new RuntimeException(throwable);
        });
    }
}

Clone this wiki locally