All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.apache.hadoop.hdfs.server.diskbalancer.planner.NodePlan Maven / Gradle / Ivy

There is a newer version: 3.4.0
Show newest version
/**
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with this
 * work for additional information regarding copyright ownership.  The ASF
 * licenses this file to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * 

* http://www.apache.org/licenses/LICENSE-2.0 *

* Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the * License for the specific language governing permissions and limitations under * the License. */ package org.apache.hadoop.hdfs.server.diskbalancer.planner; import com.fasterxml.jackson.annotation.JsonTypeInfo; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.ObjectReader; import com.fasterxml.jackson.databind.ObjectWriter; import com.google.common.base.Preconditions; import java.io.IOException; import java.util.LinkedList; import java.util.List; /** * NodePlan is a set of volumeSetPlans. */ public class NodePlan { @JsonTypeInfo(use = JsonTypeInfo.Id.CLASS, include = JsonTypeInfo.As.PROPERTY, property = "@class") private List volumeSetPlans; private String nodeName; private String nodeUUID; private int port; private long timeStamp; private static final ObjectMapper MAPPER = new ObjectMapper(); private static final ObjectReader READER = MAPPER.readerFor(NodePlan.class); private static final ObjectWriter WRITER = MAPPER.writerFor( MAPPER.constructType(NodePlan.class)); /** * returns timestamp when this plan was created. * * @return long */ public long getTimeStamp() { return timeStamp; } /** * Sets the timestamp when this plan was created. * * @param timeStamp */ public void setTimeStamp(long timeStamp) { this.timeStamp = timeStamp; } /** * Constructs an Empty Node Plan. */ public NodePlan() { volumeSetPlans = new LinkedList<>(); } /** * Constructs an empty NodePlan. */ public NodePlan(String datanodeName, int rpcPort) { volumeSetPlans = new LinkedList<>(); this.nodeName = datanodeName; this.port = rpcPort; } /** * Returns a Map of VolumeSetIDs and volumeSetPlans. * * @return Map */ public List getVolumeSetPlans() { return volumeSetPlans; } /** * Adds a step to the existing Plan. * * @param nextStep - nextStep */ void addStep(Step nextStep) { Preconditions.checkNotNull(nextStep); volumeSetPlans.add(nextStep); } /** * Sets Node Name. * * @param nodeName - Name */ public void setNodeName(String nodeName) { this.nodeName = nodeName; } /** * Sets a volume List plan. * * @param volumeSetPlans - List of plans. */ public void setVolumeSetPlans(List volumeSetPlans) { this.volumeSetPlans = volumeSetPlans; } /** * Returns the DataNode URI. * * @return URI */ public String getNodeName() { return nodeName; } /** * Sets the DataNodeURI. * * @param dataNodeName - String */ public void setURI(String dataNodeName) { this.nodeName = dataNodeName; } /** * Gets the DataNode RPC Port. * * @return port */ public int getPort() { return port; } /** * Sets the DataNode RPC Port. * * @param port - int */ public void setPort(int port) { this.port = port; } /** * Parses a Json string and converts to NodePlan. * * @param json - Json String * @return NodePlan * @throws IOException */ public static NodePlan parseJson(String json) throws IOException { return READER.readValue(json); } /** * Returns a Json representation of NodePlan. * * @return - json String * @throws IOException */ public String toJson() throws IOException { return WRITER.writeValueAsString(this); } /** * gets the Node UUID. * * @return Node UUID. */ public String getNodeUUID() { return nodeUUID; } /** * Sets the Node UUID. * * @param nodeUUID - UUID of the node. */ public void setNodeUUID(String nodeUUID) { this.nodeUUID = nodeUUID; } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy