Deploy Openstack Using Robot Keywords
[integration/test.git] / tools / deployment / openstack_ha / deploy / 06_1_csit_external_network_setup.robot
1 *** Settings ***
2 Documentation     Suite that Configures External Networks for CSIT
3 Suite Setup       OpenStackInstallUtils.Get All Ssh Connections
4 Suite Teardown    Close All Connections
5 Library           SSHLibrary
6 Library           OperatingSystem
7 Library           RequestsLibrary
8 Resource          ../libraries/OpenStackInstallUtils.robot
9 Resource          ../libraries/OpenStackOperations.robot
10 Resource          ../libraries/SystemUtils.robot
11 Resource          ../libraries/Utils.robot
12
13 *** Test Cases ***
14 Configure External Networks For Testing
15     Local Install Rpm Package    openvswitch
16     Run Command In Local Node    sudo systemctl start openvswitch
17     Setup External Network In Robot VM    flat1    101.0.0.2/24    101.0.0.1/24
18     Install Configure OvsSwitch    ${OS_CONTROL_1_IP}
19     Run Keyword If    2 < ${NUM_CONTROL_NODES}    Install Configure OvsSwitch    ${OS_CONTROL_2_IP}
20     Run Keyword If    2 < ${NUM_CONTROL_NODES}    Install Configure OvsSwitch    ${OS_CONTROL_3_IP}
21     Run Keyword If    3 < ${NUM_CONTROL_NODES}    Install Configure OvsSwitch    ${OS_CONTROL_4_IP}
22     Run Keyword If    4 < ${NUM_CONTROL_NODES}    Install Configure OvsSwitch    ${OS_CONTROL_5_IP}
23     Run Keyword If    0 < ${NUM_COMPUTE_NODES}    Install Configure OvsSwitch    ${OS_COMPUTE_1_IP}
24     Run Keyword If    1 < ${NUM_COMPUTE_NODES}    Install Configure OvsSwitch    ${OS_COMPUTE_2_IP}
25     Create External Network For CSIT    flat1    ${OS_CONTROL_1_IP}    ${OS_CONTROL_1_IP}    9786
26     Run Keyword If    2 < ${NUM_CONTROL_NODES}    Create External Network For CSIT    flat1    ${OS_CONTROL_2_IP}    ${OS_CONTROL_2_IP}    9786
27     Run Keyword If    2 < ${NUM_CONTROL_NODES}    Create External Network For CSIT    flat1    ${OS_CONTROL_3_IP}    ${OS_CONTROL_3_IP}    9786
28     Run Keyword If    3 < ${NUM_CONTROL_NODES}    Create External Network For CSIT    flat1    ${OS_CONTROL_4_IP}    ${OS_CONTROL_4_IP}    9786
29     Run Keyword If    4 < ${NUM_CONTROL_NODES}    Create External Network For CSIT    flat1    ${OS_CONTROL_5_IP}    ${OS_CONTROL_5_IP}    9786
30     Run Keyword If    0 < ${NUM_COMPUTE_NODES}    Create External Network For CSIT    flat1    ${OS_COMPUTE_1_IP}    ${OS_COMPUTE_1_IP}    9786
31     Run Keyword If    1 < ${NUM_COMPUTE_NODES}    Create External Network For CSIT    flat1    ${OS_COMPUTE_2_IP}    ${OS_COMPUTE_2_IP}    9786
32     Setup External Network In Robot VM    flat2    102.0.0.2/24    102.0.0.1/24
33     Create External Network For CSIT    flat2    ${OS_CONTROL_1_IP}    ${OS_CONTROL_1_IP}    9787
34     Run Keyword If    2 < ${NUM_CONTROL_NODES}    Create External Network For CSIT    flat2    ${OS_CONTROL_2_IP}    ${OS_CONTROL_2_IP}    9787
35     Run Keyword If    2 < ${NUM_CONTROL_NODES}    Create External Network For CSIT    flat2    ${OS_CONTROL_3_IP}    ${OS_CONTROL_3_IP}    9787
36     Run Keyword If    3 < ${NUM_CONTROL_NODES}    Create External Network For CSIT    flat2    ${OS_CONTROL_4_IP}    ${OS_CONTROL_4_IP}    9787
37     Run Keyword If    4 < ${NUM_CONTROL_NODES}    Create External Network For CSIT    flat2    ${OS_CONTROL_5_IP}    ${OS_CONTROL_5_IP}    9787
38     Run Keyword If    0 < ${NUM_COMPUTE_NODES}    Create External Network For CSIT    flat2    ${OS_COMPUTE_1_IP}    ${OS_COMPUTE_1_IP}    9787
39     Run Keyword If    1 < ${NUM_COMPUTE_NODES}    Create External Network For CSIT    flat2    ${OS_COMPUTE_2_IP}    ${OS_COMPUTE_2_IP}    9787
40     Setup External Network In Robot VM    physnet1    10.10.10.253/24    10.10.10.250/24
41     Create External Network For CSIT    physnet1    ${OS_CONTROL_1_IP}    ${OS_CONTROL_1_IP}    9788
42     Run Keyword If    2 < ${NUM_CONTROL_NODES}    Create External Network For CSIT    physnet1    ${OS_CONTROL_2_IP}    ${OS_CONTROL_2_IP}    9788
43     Run Keyword If    2 < ${NUM_CONTROL_NODES}    Create External Network For CSIT    physnet1    ${OS_CONTROL_3_IP}    ${OS_CONTROL_3_IP}    9788
44     Run Keyword If    3 < ${NUM_CONTROL_NODES}    Create External Network For CSIT    physnet1    ${OS_CONTROL_4_IP}    ${OS_CONTROL_4_IP}    9788
45     Run Keyword If    4 < ${NUM_CONTROL_NODES}    Create External Network For CSIT    physnet1    ${OS_CONTROL_5_IP}    ${OS_CONTROL_5_IP}    9788
46     Run Keyword If    0 < ${NUM_COMPUTE_NODES}    Create External Network For CSIT    physnet1    ${OS_COMPUTE_1_IP}    ${OS_COMPUTE_1_IP}    9788
47     Run Keyword If    1 < ${NUM_COMPUTE_NODES}    Create External Network For CSIT    physnet1    ${OS_COMPUTE_2_IP}    ${OS_COMPUTE_2_IP}    9788
48     Run Command In Local Node    sudo ip tuntap add dev internet_tap mode tap
49     Run Command In Local Node    sudo ifconfig internet_tap up 10.9.9.9/24
50     Run Command In Local Node    sudo ip netns add vlantest
51     Run Command In Local Node    sudo ovs-vsctl add-br br-vlantest
52     Local Install Rpm Package    vconfig
53     Setup External Network with Vlan    vlantest    28    105.0.0.2/24    vlantest1
54     Setup External Network with Vlan    vlantest    29    106.0.0.2/24    vlantest2
55     Create External Network For CSIT    vlantest    ${OS_CONTROL_1_IP}    ${OS_CONTROL_1_IP}    9789
56     Run Keyword If    2 < ${NUM_CONTROL_NODES}    Create External Network For CSIT    vlantest    ${OS_CONTROL_2_IP}    ${OS_CONTROL_2_IP}    9789
57     Run Keyword If    2 < ${NUM_CONTROL_NODES}    Create External Network For CSIT    vlantest    ${OS_CONTROL_3_IP}    ${OS_CONTROL_3_IP}    9789
58     Run Keyword If    3 < ${NUM_CONTROL_NODES}    Create External Network For CSIT    vlantest    ${OS_CONTROL_4_IP}    ${OS_CONTROL_4_IP}    9789
59     Run Keyword If    4 < ${NUM_CONTROL_NODES}    Create External Network For CSIT    vlantest    ${OS_CONTROL_5_IP}    ${OS_CONTROL_5_IP}    9789
60     Run Keyword If    0 < ${NUM_COMPUTE_NODES}    Create External Network For CSIT    vlantest    ${OS_COMPUTE_1_IP}    ${OS_COMPUTE_1_IP}    9789
61     Run Keyword If    1 < ${NUM_COMPUTE_NODES}    Create External Network For CSIT    vlantest    ${OS_COMPUTE_2_IP}    ${OS_COMPUTE_2_IP}    9789
62
63 *** Keywords ***
64 Install Configure OvsSwitch
65     [Arguments]    ${os_node_cxn}
66     Run Keyword If    '${OS_APPS_PRE_INSTALLED}' == 'no'    Install Rpm Package    ${os_node_cxn}    openvswitch
67     Crudini Edit    ${os_node_cxn}    /usr/lib/systemd/system/ovsdb-server.service    Service    Restart    always
68     Crudini Edit    ${os_node_cxn}    /usr/lib/systemd/system/ovs-vswitchd.service    Service    Restart    always
69     Enable Service    ${os_node_cxn}    openvswitch
70     Start Service    ${os_node_cxn}    openvswitch
71
72 Setup External Network In Robot VM
73     [Arguments]    ${external_network_name}    ${host_ip_cidr_format}    ${ext_gateway_ip_addr}
74     Run Command In Local Node    sudo ip netns add ${external_network_name}
75     Run Command In Local Node    sudo ip link add ${external_network_name}_ns type veth peer name ${external_network_name}_ovs
76     Run Command In Local Node    sudo ip link set ${external_network_name}_ns netns ${external_network_name}
77     Run Command In Local Node    sudo ip netns exec ${external_network_name} ifconfig ${external_network_name}_ns ${host_ip_cidr_format} up
78     Run Command In Local Node    sudo ip netns exec ${external_network_name} ip link set ${external_network_name}_ns up
79     Run Command In Local Node    sudo ovs-vsctl add-br br-${external_network_name}
80     Run Command In Local Node    sudo ovs-vsctl add-port br-${external_network_name} ${external_network_name}_ovs
81     Run Command In Local Node    sudo ip link set ${external_network_name}_ovs up
82     Run Command In Local Node    sudo ifconfig br-${external_network_name} ${ext_gateway_ip_addr} up
83
84 Create External Network For CSIT
85     [Arguments]    ${external_network_name}    ${os_node_cxn}    ${os_node_ip_address}    ${tunnel_port_number}
86     Run Command In Local Node    sudo ovs-vsctl add-port br-${external_network_name} vxlan_${external_network_name}_${os_node_ip_address} -- set interface vxlan_${external_network_name}_${os_node_ip_address} type=vxlan options:remote_ip=${os_node_ip_address} options:dst_port=${tunnel_port_number} options:key=flow
87     Run Command    ${os_node_cxn}    sudo ovs-vsctl --if-exists del-port br-${external_network_name}
88     Run Command    ${os_node_cxn}    sudo ovs-vsctl --may-exist add-br br-${external_network_name}
89     Run Command    ${os_node_cxn}    sudo ovs-vsctl add-port br-${external_network_name} vxlan_${external_network_name}_robot -- set interface vxlan_${external_network_name}_robot type=vxlan options:local_ip=${os_node_ip_address} options:remote_ip=${ROBOT_VM_IP} options:dst_port=${tunnel_port_number} options:key=flow
90     Run Command    ${os_node_cxn}    sudo ifconfig br-${external_network_name} up
91
92 Setup External Network with Vlan
93     [Arguments]    ${external_network_name}    ${vlan_id}    ${host_ip_cidr_format}    ${host_if_name}
94     Run Command In Local Node    sudo ip link add ${host_if_name}_ns type veth peer name ${host_if_name}_ovs
95     Run Command In Local Node    sudo ip link set ${host_if_name}_ns netns ${external_network_name}
96     Run Command In Local Node    sudo ip netns exec ${external_network_name} vconfig add ${host_if_name}_ns ${vlan_id}
97     Run Command In Local Node    sudo ip netns exec ${external_network_name} ifconfig ${host_if_name}_ns 0.0.0.0 up
98     Run Command In Local Node    sudo ip netns exec ${external_network_name} ifconfig ${host_if_name}_ns.${vlan_id} ${host_ip_cidr_format} up
99     Run Command In Local Node    sudo ovs-vsctl add-port br-${external_network_name} ${host_if_name}_ovs
100     Run Command In Local Node    sudo ip link set ${host_if_name}_ovs up