${output} = OpenStack CLI openstack network create ${network_name} ${additional_args}
[Return] ${output}
+Create Multiple Networks
+ [Arguments] @{name_of_networks}
+ [Documentation] Create required number of networks and return a list of the resulting network ids
+ ${net_list_ids} = BuiltIn.Create List @{EMPTY}
+ : FOR ${net} IN @{name_of_networks}
+ \ ${output} = OpenStackOperations.Create Network ${net}
+ \ ${net_id} = Get Regexp Matches ${output} ${REGEX_UUID}
+ \ Collections.Append To List ${net_list_ids} ${net_id}
+ [Return] @{net_list_ids}
+
Update Network
[Arguments] ${network_name} ${additional_args}=${EMPTY}
[Documentation] Update Network with neutron request.
[Documentation] Create SubNet for the Network with neutron request.
${output} = OpenStack CLI openstack subnet create --network ${network_name} --subnet-range ${range_ip} ${subnet_name} ${additional_args}
+Create Multiple Subnets
+ [Arguments] ${network_names} ${subnet_names} ${subnet_cidr}
+ [Documentation] Create required number of subnets for previously created networks and return subnet id
+ ${number_of_networks} = BuiltIn.Get Length ${network_names}
+ @{subnet_id_list} = BuiltIn.Create List @{EMPTY}
+ : FOR ${index} IN RANGE ${number_of_networks}
+ \ OpenStackOperations.Create SubNet ${network_names[${index}]} ${subnet_names[${index}]} ${subnet_cidr[${index}]}
+ ${sub_list} = OpenStackOperations.List Subnets
+ : FOR ${index} IN RANGE ${number_of_networks}
+ \ BuiltIn.Should Contain ${sub_list} ${subnet_names[${index}]}
+ \ ${subnet_id} = OpenStackOperations.Get Subnet Id ${subnet_names[${index}]}
+ \ Collections.Append To List ${subnet_id_list} ${subnet_id}
+ [Return] @{subnet_id_list}
+
Update SubNet
[Arguments] ${subnet_name} ${additional_args}=${EMPTY}
[Documentation] Update subnet with openstack subnet set request.
${router_id} = Collections.Get from List ${splitted_output} 0
[Return] ${router_id}
+Get VMs OVS Port Number
+ [Arguments] ${ip_address} ${portname}
+ [Documentation] Get the port number for given portname
+ ${subportid} = OpenStackOperations.Get Sub Port Id ${portname}
+ ${vm_port_number} = OVSDB.Get Port Number ${subportid} ${ip_address}
+ [Return] ${vm_port_number}
+
Add New Image From Url
[Arguments] ${image_url} ${image_name}
[Documentation] To add new qcow2 images for testing.
OpenStackOperations.Copy DHCP Files From Control Node
[Return] @{vm_ips} ${ips_and_console_log[1]}
+Get All VM IP Addresses
+ [Arguments] ${conn_id} ${vm_name}
+ [Documentation] Show information of a given two port VM and grep for two ip address. VM name should be sent as arguments.
+ SSHLibrary.Switch Connection ${conn_id}
+ ${cmd} = BuiltIn.Set Variable openstack server show ${vm_name}
+ ${output} = OpenStackOperations.OpenStack CLI ${cmd}
+ BuiltIn.Log ${output}
+ ${address_output} = OpenStackOperations.OpenStack CLI ${cmd} | grep "addresses" | awk '{print $4$5}'
+ @{vm_ips} = String.Get Regexp Matches ${address_output} ${REGEX_IPV4}
+ [Return] @{vm_ips}
+
Get Subnet Gateway Ip
[Arguments] ${subnet_name}
[Documentation] Show information of a subnet and grep for subnet gateway ip address
${protocol} BuiltIn.Run Keyword If ${Kwargs} Collections.Pop From Dictionary ${Kwargs} protocol default=${None}
${remote_group_id} BuiltIn.Run Keyword If ${Kwargs} Collections.Pop From Dictionary ${Kwargs} remote_group_id default=${None}
${remote_ip_prefix} BuiltIn.Run Keyword If ${Kwargs} Collections.Pop From Dictionary ${Kwargs} remote_ip_prefix default=${None}
+ ${remote_ip} BuiltIn.Run Keyword If ${Kwargs} Collections.Pop From Dictionary ${Kwargs} remote_ip default=${None}
${cmd} = BuiltIn.Set Variable openstack security group rule create ${Security_group_name}
${cmd} = BuiltIn.Run Keyword If '${description}'!='None' BuiltIn.Catenate ${cmd} --description ${description}
... ELSE BuiltIn.Catenate ${cmd}
... ELSE BuiltIn.Catenate ${cmd}
${cmd} = BuiltIn.Run Keyword If '${remote_ip_prefix}'!='None' BuiltIn.Catenate ${cmd} --src-ip ${remote_ip_prefix}
... ELSE BuiltIn.Catenate ${cmd}
+ ${cmd} = BuiltIn.Run Keyword If '${remote_ip}'!='None' BuiltIn.Catenate ${cmd} --remote-ip ${remote_ip}
+ ... ELSE BuiltIn.Catenate ${cmd}
${output} = OpenStack CLI ${cmd}
${rule_id} = BuiltIn.Should Match Regexp ${output} ${REGEX_UUID}
[Return] ${output} ${rule_id}
[Documentation] Set quota for the created instances using the specific project id.
${output} = OpenStack CLI openstack quota set --instances ${num_instances} ${project_id}
[Return] ${output}
+
+Create Bgpvpn
+ [Arguments] ${vpnname} ${additional_args}=${EMPTY}
+ [Documentation] Create Bgpvpn with neutron request.
+ ${output} = OpenStack CLI openstack bgpvpn create --name ${vpnname} ${additional_args}
+
+Get BgpVpn Id
+ [Arguments] ${vpnName}
+ [Documentation] Retrieve the bgpvpn id for the given bgpvpn name
+ ${output} = OpenStack CLI OperatingSystem.Run And Return Rc And Output openstack bgpvpn show ${vpnName} | grep " ID" | awk '{print $4}'
+ ${splitted_output}= String.Split String ${output} ${EMPTY}
+ ${vpn_id}= Collections.Get from List ${splitted_output} 0
+ [Return] ${vpn_id}
+
+Configure_IP_On_Sub_Interface
+ [Arguments] ${network_name} ${ip} ${vm_ip} ${mask} ${sub_interface_state}=${EMPTY} ${interface}=eth0
+ ... ${sub_interface_number}=1
+ [Documentation] Keyword for configuring specified IP on specified interface and the corresponding specified sub interface
+ OpenStackOperations.Execute Command on VM Instance ${network_name} ${vm_ip} sudo ifconfig ${interface}:${sub_interface_number} ${ip} netmask ${mask} ${sub_interface_state}
+
+Verify_IP_Configured_On_Sub_Interface
+ [Arguments] ${network_name} ${ip} ${vm_ip} ${interface}=eth0 ${sub_interface_number}=1
+ [Documentation] Keyword for verifying specified IP on specified interface and the corresponding specified sub interface
+ ${resp} = OpenStackOperations.Execute Command on VM Instance ${network_name} ${vm_ip} sudo ifconfig ${interface}:${sub_interface_number}
+ BuiltIn.Should Contain ${resp} ${ip}