Package com.trendmicro.codi

Examples of com.trendmicro.codi.ZNode


        public void migrate() {
            String nodePath = miExchange.toString();

            try {
                ZNode node = new ZNode("/exchange/" + nodePath);
                ZooKeeperInfo.Exchange.Builder exBuilder = ZooKeeperInfo.Exchange.newBuilder();
                try {
                    TextFormat.merge(new String(node.getContent()), exBuilder);
                }
                catch(CODIException.NoNode e) {
                    myConsole.logResponseNL("exchange " + miExchange.toString() + " does not exist!");
                    isReady = true;
                    return;
                }
                String oldhost = exBuilder.build().getHost();

                ZooKeeperInfo.Broker brk = brokerFarm.getBrokerByHost(oldhost);
                boolean hasOld = !(brk == null);
                if(hasOld) {
                    hasOld = false;
                    Socket sock = null;
                    try {
                        sock = new Socket();
                        sock.setReuseAddress(true);
                        sock.setTcpNoDelay(true);
                        sock.connect(new InetSocketAddress(brk.getHost(), Integer.parseInt(brk.getPort())));
                        BufferedReader in = new BufferedReader(new InputStreamReader(sock.getInputStream()));
                        int wait_cnt;
                        for(wait_cnt = 0; wait_cnt < 20 && !in.ready(); wait_cnt++) {
                            Utils.justSleep(500);
                        }
                        if(in.ready()) {
                            if(brk.getBrokerType().equals("openmq")) {
                                String line = in.readLine();
                                if(line.startsWith("101 imqbroker"))
                                    hasOld = true;
                            }
                        }
                    }
                    catch(IOException e) {
                    }
                    finally {
                        try {
                            sock.getInputStream().close();
                            sock.close();
                        }
                        catch(IOException e) {
                        }
                    }
                }

                node.setContent(ZooKeeperInfo.Exchange.newBuilder().setHost("").build().toString().getBytes());

                miExchange.setBroker(hasOld ? oldhost: null);
                Forwarder fwder = new Forwarder(miExchange);
                fwder.start();
                while(!fwder.getReady()) {
                    Utils.justSleep(100);
                }
                isReady = true;

                String newhost = "";
                for(;;) {
                    exBuilder = ZooKeeperInfo.Exchange.newBuilder();
                    TextFormat.merge(new String(node.getContent()), exBuilder);
                    newhost = exBuilder.build().getHost();

                    if(newhost.compareTo(oldhost) == 0) {
                        myConsole.logResponse("[%s] warning: exchange is still on the same broker %s, migration completed%n", miExchange.toString(), newhost);
                        fwder.done();
                        fwder.go();
                        fwder.join();
                        return;
                    }
                    else if(newhost.compareTo("") != 0)
                        break;

                    myConsole.logResponse("[%s] waiting for clients to migrate...%n", miExchange.toString());
                    Utils.justSleep(1000);
                }
                myConsole.logResponse("[%s] exchange has been created on %s%n", miExchange.toString(), newhost);

                fwder.go();

                List<String> refList = node.getChildren();
                ArrayList<String> hostList = new ArrayList<String>();
                for(String refPath : refList) {
                    String data = new String(new ZNode("/exchange/" + nodePath + "/" + refPath).getContent());
                    ZooKeeperInfo.Reference.Builder refBuilder = ZooKeeperInfo.Reference.newBuilder();
                    TextFormat.merge(data, refBuilder);
                    ZooKeeperInfo.Reference ref = refBuilder.build();
                    String host = ref.getHost();
                    if(!hostList.contains(host))
View Full Code Here


                if(!smtpNode.exists()) {
                    return;
                }

                String receiverStr = receiverNode.getContentString();
                ZNode limitNode = new ZNode("/global/alert_limit_exchange/" + exchangeName);
                if(limitNode.exists()) {
                    ZooKeeperInfo.AlertConfig.Builder alertBuilder = ZooKeeperInfo.AlertConfig.newBuilder();
                    TextFormat.merge(limitNode.getContentString(), alertBuilder);
                    ZooKeeperInfo.AlertConfig alertConfig = alertBuilder.build();

                    if(!(Long.valueOf(metric.getMetrics().get("Pending")) > Long.valueOf(alertConfig.getCount()))) {
                        return;
                    }
View Full Code Here

    }

    @GET
    @Produces(MediaType.APPLICATION_JSON)
    public List<String> getGraphList() throws CODIException {
        return new ZNode("/global/graph/route").getChildren();
    }
View Full Code Here

    public void createGraph(@PathParam("name") String name, @Context SecurityContext sc) throws CODIException, JAXBException {
        if(graphEditor.isSecurityEnabled() && !(sc.isUserInRole("admin") || sc.isUserInRole("super"))) {
            throw new WebApplicationException(new Exception("You are not in the role 'admin'!"), Status.FORBIDDEN.getStatusCode());
        }

        ZNode node = new ZNode("/global/graph/route/" + name);
        GraphModel graph = new GraphModel(name);
        if(graphEditor.isSecurityEnabled()) {
            graph.addAdmin(sc.getUserPrincipal().getName());
        }
        node.create(false, new Gson().toJson(graph));
    }
View Full Code Here

    @Path("/{name}")
    @DELETE
    public void removeGraph(@PathParam("name") String name, @Context SecurityContext sc) throws CODIException, JAXBException {
        checkPermission(sc, getGraph(name));
        ZNode node = new ZNode("/global/graph/route/" + name);
        node.delete();
    }
View Full Code Here

        ZNode node = new ZNode("/global/graph/route/" + name);
        node.delete();
    }

    private void setGraph(GraphModel graph) throws CODIException, JAXBException {
        ZNode node = new ZNode("/global/graph/route/" + graph.getName());
        node.setContent(new Gson().toJson(graph));
    }
View Full Code Here

    @Path("/{name}")
    @GET
    @Produces(MediaType.APPLICATION_JSON)
    public GraphModel getGraph(@PathParam("name") String name) throws CODIException, JAXBException {
        ZNode node = new ZNode("/global/graph/route/" + name);
        return new Gson().fromJson(node.getContentString(), GraphModel.class);
    }
View Full Code Here

            }
            myConsole.logResponseNL(tab.render());

            HashMap<String, List<String>> allFixed = new HashMap<String, List<String>>();
            try {
                ZNode fixNode = new ZNode(ExchangeCommand.ZNODE_FIXED);
                List<String> nodes = fixNode.getChildren();
                for(String name: nodes) {
                    ZooKeeperInfo.Exchange.Builder builder = ZooKeeperInfo.Exchange.newBuilder();
                    TextFormat.merge(new String(new ZNode(ExchangeCommand.ZNODE_FIXED + "/" + name).getContent()), builder);
                    String host = builder.build().getHost();
                    if(allFixed.containsKey(host))
                        allFixed.get(host).add(name);
                    else {
                        List<String> v = new ArrayList<String>();
View Full Code Here

        brkBuilder.addAccount(ZooKeeperInfo.Broker.Account.newBuilder().setUser("admin").setPassword("admin").build());
        brkBuilder.setBrokerType("openmq");
        brkBuilder.setVersion("4.5.1");
        brkBuilder.setReserved(false);
       
        ZNode brkNode = new ZNode(tmeRoot + "/broker/" + host);
        try {
            brkNode.deleteRecursively();
        }
        catch(Exception e) {
        }
        brkNode.create(false, brkBuilder.build().toString());
       
        ZNode loadingNode = new ZNode(tmeRoot + "/broker/" + host + "/loading");
        loadingNode.create(false, ZooKeeperInfo.Loading.newBuilder().setLoading(0).setLastUpdate(0).setFreeMemory(0).setMaxMemory(0).build().toString());
        obs.start();
    }
View Full Code Here

        obs.start();
    }
   
    public void unregisterOnZk() throws CODIException {
        obs.stop();
        ZNode brkNode = new ZNode(tmeRoot + "/broker/" + host);
        brkNode.deleteRecursively();
    }
View Full Code Here

TOP

Related Classes of com.trendmicro.codi.ZNode

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.