Add molude: nemo-tools and remove the depency of cliche repositoty.
[nemo.git] / nemo-tools / sandbox / src / main / java / org / opendaylight / nemo / tool / sandbox / models / Host.java
1 /*
2  * Copyright (c) 2015 Huawei, Inc. and others. All rights reserved.
3  *
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
7  */
8
9 package org.opendaylight.nemo.tool.sandbox.models;
10
11 import java.util.ArrayList;
12 import java.util.HashMap;
13 import java.util.List;
14
15 /**
16 * Created by hj on 12/8/15.
17 */
18 abstract public class Host extends Node {
19     private HashMap<Integer/*connector name*/, String/*Ipv4*/> connectorIpv4Map;
20     private final String uuid;
21
22     protected Host(NodeType nodeType, String name,String uuid) {
23         super(nodeType, name);
24         this.uuid = uuid;
25         connectorIpv4Map = new HashMap<Integer, String>();
26     }
27
28     public void putConnectorIpv4(int order, String ipv4) {
29         connectorIpv4Map.put(order, ipv4);
30     }
31
32     public String getUuid(){
33         return uuid;
34     }
35
36     public String getIpv4(int order){
37         return connectorIpv4Map.get(order);
38     }
39
40     abstract void uninstall();
41
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());
47         }
48
49         for (Connector connector : connectors) {
50             String ipv4 = connectorIpv4Map.get(connector.getOrder());
51             if (ipv4 != null) {
52                 hostCreateCommands.add("ip netns exec " + getName() + " ifconfig " + connector.getConnectorName() + " " + ipv4 + " up");
53             }
54         }
55         return hostCreateCommands;
56     }
57
58     @Override
59     public String toString() {
60         return "Host{" +
61                 "name=" + getName() + '\'' +
62                 "type=" + getNodeType() + '\'' +
63                 "connectors='" + connectors + '\'' +
64                 ", ipv4Map='" + connectorIpv4Map + '\'' +
65                 '}';
66     }
67 }