2 * Copyright (c) 2015 Huawei, Inc. and others. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
9 package org.opendaylight.nemo.tool.sandbox.models;
11 import java.util.ArrayList;
12 import java.util.HashMap;
13 import java.util.List;
16 * Created by hj on 12/8/15.
18 abstract public class Host extends Node {
19 private HashMap<Integer/*connector name*/, String/*Ipv4*/> connectorIpv4Map;
20 private final String uuid;
22 protected Host(NodeType nodeType, String name,String uuid) {
23 super(nodeType, name);
25 connectorIpv4Map = new HashMap<Integer, String>();
28 public void putConnectorIpv4(int order, String ipv4) {
29 connectorIpv4Map.put(order, ipv4);
32 public String getUuid(){
36 public String getIpv4(int order){
37 return connectorIpv4Map.get(order);
40 abstract void uninstall();
42 protected List<String> generateHost() {
43 List<String> hostCreateCommands = new ArrayList<String>();
44 hostCreateCommands.add("ip netns add " + getName());
45 for (Connector connector : connectors) {
46 hostCreateCommands.add("ip link set " + connector.getConnectorName() + " netns " + getName());
49 for (Connector connector : connectors) {
50 String ipv4 = connectorIpv4Map.get(connector.getOrder());
52 hostCreateCommands.add("ip netns exec " + getName() + " ifconfig " + connector.getConnectorName() + " " + ipv4 + " up");
55 return hostCreateCommands;
59 public String toString() {
61 "name=" + getName() + '\'' +
62 "type=" + getNodeType() + '\'' +
63 "connectors='" + connectors + '\'' +
64 ", ipv4Map='" + connectorIpv4Map + '\'' +