author | chaithan.prakash@oracle.com <chaithan.prakash@oracle.com> |
Wed, 24 Aug 2016 15:36:10 -0700 | |
changeset 6680 | 79105e720bec |
parent 6473 | 4dd3f0eb032c |
permissions | -rw-r--r-- |
6381
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1 |
#!/usr/bin/python2.7 |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
2 |
# |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
3 |
# Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved. |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
4 |
# |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
5 |
# Licensed under the Apache License, Version 2.0 (the "License"); you may |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
6 |
# not use this file except in compliance with the License. You may obtain |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
7 |
# a copy of the License at |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
8 |
# |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
9 |
# http://www.apache.org/licenses/LICENSE-2.0 |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
10 |
# |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
11 |
# Unless required by applicable law or agreed to in writing, software |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
12 |
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
13 |
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
14 |
# License for the specific language governing permissions and limitations |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
15 |
# under the License. |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
16 |
|
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
17 |
# |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
18 |
# There are four aspects to migrate an OpenStack cloud running Neutron EVS |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
19 |
# to Neutron ML2 + OVS and they are enumerated below. This script needs to |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
20 |
# be run on each of the nodes that is either -- compute, controller, or |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
21 |
# network -- and the script infers the role of the node based on the SMF |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
22 |
# services running and does one or more of the operations enumerated below. |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
23 |
# |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
24 |
# 1. Populate Neutron ML2 tables |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
25 |
# ------------------------------ |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
26 |
# Neutron ML2 plugin uses a different set of tables to manage various |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
27 |
# network types and mechanism drivers underneath it. The names of these |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
28 |
# tables start with ml2_* and the content of these tables will need to be |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
29 |
# inferred from other Neutron tables and from EVS controller |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
30 |
# |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
31 |
# 2. Update existing configuration files |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
32 |
# -------------------------------------- |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
33 |
# Following files need to be updated for various Neutron services. |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
34 |
# - /etc/neutron/neutron.conf |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
35 |
# - change core_plugin option to neutron.plugins.ml2.plugin.Ml2Plugin |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
36 |
# |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
37 |
# - /etc/neutron/dhcp_agent.ini |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
38 |
# - change interface_driver option to \ |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
39 |
# neutron.agent.solaris.interface.SolarisOVSInterfaceDriver |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
40 |
# - set ovs_integration_bridge to br_int0 |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
41 |
# |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
42 |
# - /etc/neutron/l3_agent.ini |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
43 |
# - change interface_driver option to \ |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
44 |
# neutron.agent.solaris.interface.SolarisOVSInterfaceDriver |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
45 |
# - set ovs_integration_bridge to br_int0 |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
46 |
# - set external_network_bridge to br_ex0 |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
47 |
# - add service tenant's neutron user credentials to communicate with |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
48 |
# neutron-server |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
49 |
# |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
50 |
# Following files need to be updated on every node where nova-compute runs. |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
51 |
# - /etc/nova/nova.conf |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
52 |
# The only change to this file is to add an ovs_bridge |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
53 |
# option set to 'br_int0' (default OVS bridge to which various VNICs |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
54 |
# (Neutron ports) are added) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
55 |
# |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
56 |
# 3. Create new configuration files |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
57 |
# --------------------------------- |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
58 |
# Following new file needs to be created on the node running neutron-server. |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
59 |
# - /etc/neutron/plugins/ml2/ml2_conf.ini |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
60 |
# |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
61 |
# Following new file needs to be created on every node running either |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
62 |
# nova-compute, neutron-dhcp-agent, or neutron-l3-agent. |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
63 |
# - /etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
64 |
# |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
65 |
# The majority of the contents of the file is inferred from EVS controller |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
66 |
# |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
67 |
# 4. Migrate all the VMs from EVS to OVS |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
68 |
# -------------------------------------- |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
69 |
# The anets of each VM, spawned in Neutron EVS cloud, has one global(tenant) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
70 |
# and two anet(evs and vport) properites that are EVS specific. We will need |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
71 |
# to clear those properties. Before we do that, we will need to first fetch |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
72 |
# the information (MAC address, lower-link, and such) from EVS controller |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
73 |
# for a given anet which is uniquely identified by <tenant, evs, vport> and |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
74 |
# explicitly set corresponding anet properties. This step needs to be |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
75 |
# repeated for other EVS based anets, if any, in the VM. |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
76 |
# |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
77 |
|
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
78 |
import argparse |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
79 |
from collections import OrderedDict |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
80 |
from datetime import datetime |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
81 |
import iniparse |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
82 |
import netaddr as na |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
83 |
import netifaces as ni |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
84 |
import os |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
85 |
import pwd |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
86 |
import re |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
87 |
from shutil import copy2, move |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
88 |
import signal |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
89 |
import socket |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
90 |
import sqlalchemy as sa |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
91 |
from subprocess import check_output, check_call, CalledProcessError, PIPE |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
92 |
import sys |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
93 |
import uuid |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
94 |
|
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
95 |
import rad.bindings.com.oracle.solaris.rad.evscntl_1 as evscntl |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
96 |
import rad.bindings.com.oracle.solaris.rad.zonemgr_1 as zonemgr |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
97 |
import rad.client as radcli |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
98 |
import rad.connect as radcon |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
99 |
|
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
100 |
from oslo_db.sqlalchemy import session |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
101 |
from neutronclient.v2_0 import client as neutron_client |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
102 |
from neutron.extensions import portbindings |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
103 |
from neutron.openstack.common import uuidutils |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
104 |
|
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
105 |
# SMF services |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
106 |
SVC_NOVA_COMPUTE = 'nova-compute:default' |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
107 |
SVC_NEUTRON_SERVER = 'neutron-server:default' |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
108 |
SVC_DHCP_AGENT = 'neutron-dhcp-agent:default' |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
109 |
SVC_L3_AGENT = 'neutron-l3-agent:default' |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
110 |
SVC_METADATA_AGENT = 'neutron-metadata-agent:default' |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
111 |
SVC_OVS_AGENT = 'neutron-openvswitch-agent:default' |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
112 |
SVC_VSWITCH_SERVER = 'vswitch-server:default' |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
113 |
SVC_OVSDB_SERVER = 'ovsdb-server:default' |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
114 |
SVC_NEUTRON_UPGRADE = 'neutron-upgrade:default' |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
115 |
|
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
116 |
|
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
117 |
ALL_SVCS = [SVC_NEUTRON_SERVER, SVC_DHCP_AGENT, SVC_L3_AGENT, SVC_NOVA_COMPUTE] |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
118 |
curnode_svcs = [] |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
119 |
|
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
120 |
# conf files |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
121 |
NEUTRON_CONF = '/etc/neutron/neutron.conf' |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
122 |
ML2_INI = '/etc/neutron/plugins/ml2/ml2_conf.ini' |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
123 |
OVS_INI = '/etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini' |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
124 |
EVS_INI = '/etc/neutron/plugins/evs/evs_plugin.ini' |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
125 |
DHCP_INI = '/etc/neutron/dhcp_agent.ini' |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
126 |
L3_INI = '/etc/neutron/l3_agent.ini' |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
127 |
METADATA_INI = '/etc/neutron/metadata_agent.ini' |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
128 |
NOVA_CONF = '/etc/nova/nova.conf' |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
129 |
|
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
130 |
# constants |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
131 |
ML2_PLUGIN = 'neutron.plugins.ml2.plugin.Ml2Plugin' |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
132 |
OVS_INTFC_DRIVER = 'neutron.agent.solaris.interface.OVSInterfaceDriver' |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
133 |
OVS_INT_BRIDGE = 'br_int0' |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
134 |
OVS_EXT_BRIDGE = 'br_ex0' |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
135 |
VXLAN_UPLINK_PORT = 'ovs.vxlan1' |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
136 |
FLAT_PHYS_NET = 'flatnet' |
6680
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
137 |
EXT_VLAN_PHYS_NET = 'extnet' |
6381
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
138 |
RABBITMQ_DEFAULT_USERID = 'guest' |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
139 |
RABBITMQ_DEFAULT_PASSWORD = 'guest' |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
140 |
L2_TYPE_VLAN = 'vlan' |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
141 |
L2_TYPE_VXLAN = 'vxlan' |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
142 |
L2_TYPE_FLAT = 'flat' |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
143 |
UID_NEUTRON = 84 |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
144 |
UID_NOVA = 85 |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
145 |
|
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
146 |
# file ownership |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
147 |
file_owner = { |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
148 |
NEUTRON_CONF: UID_NEUTRON, |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
149 |
ML2_INI: UID_NEUTRON, |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
150 |
OVS_INI: UID_NEUTRON, |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
151 |
EVS_INI: UID_NEUTRON, |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
152 |
DHCP_INI: UID_NEUTRON, |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
153 |
L3_INI: UID_NEUTRON, |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
154 |
METADATA_INI: UID_NEUTRON, |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
155 |
NOVA_CONF: UID_NOVA |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
156 |
} |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
157 |
|
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
158 |
# LOGGING LEVELS |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
159 |
LOG_DEBUG = 'DEBUG:' |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
160 |
LOG_INFO = 'INFO:' |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
161 |
LOG_WARN = 'WARN:' |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
162 |
LOG_ERROR = 'ERROR:' |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
163 |
|
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
164 |
HOSTNAME = socket.gethostname().split('.')[0] |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
165 |
|
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
166 |
evsutil = None |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
167 |
l2type = None |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
168 |
external_network_datalink = None |
6680
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
169 |
external_network_name = None |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
170 |
external_network_vid = None |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
171 |
bridge_mappings = {} |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
172 |
neutron_conn = {} |
6381
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
173 |
|
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
174 |
|
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
175 |
def log_msg(level, msg, oneliner=True): |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
176 |
if oneliner: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
177 |
msg = msg.replace('\n', ' ') |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
178 |
msg = re.sub(r'\s\s+', ' ', msg) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
179 |
print level, msg |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
180 |
|
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
181 |
|
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
182 |
class ZoneConfig(object): |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
183 |
"""ZoneConfig - context manager for access zone configurations. |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
184 |
Automatically opens the configuration for a zone and commits any changes |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
185 |
before exiting |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
186 |
""" |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
187 |
def __init__(self, zone): |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
188 |
"""zone is a zonemgr object representing either a kernel zone or |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
189 |
non-global zone. |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
190 |
""" |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
191 |
self.zone = zone |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
192 |
self.editing = False |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
193 |
|
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
194 |
def __enter__(self): |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
195 |
"""enables the editing of the zone.""" |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
196 |
try: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
197 |
self.zone.editConfig() |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
198 |
self.editing = True |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
199 |
return self |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
200 |
except: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
201 |
raise |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
202 |
|
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
203 |
def __exit__(self, exc_type, exc_val, exc_tb): |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
204 |
"""looks for any kind of exception before exiting. If one is found, |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
205 |
cancel any configuration changes and reraise the exception. If not, |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
206 |
commit the new configuration. |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
207 |
""" |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
208 |
if exc_type is not None and self.editing: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
209 |
# We received some kind of exception. Cancel the config and raise. |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
210 |
self.zone.cancelConfig() |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
211 |
raise |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
212 |
else: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
213 |
# commit the config |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
214 |
try: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
215 |
self.zone.commitConfig() |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
216 |
except: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
217 |
raise |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
218 |
|
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
219 |
def get_resources(self, resource_type): |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
220 |
"""Get list of resources of specified type |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
221 |
""" |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
222 |
try: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
223 |
return self.zone.getResources(zonemgr.Resource(resource_type)) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
224 |
except: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
225 |
raise |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
226 |
|
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
227 |
def set_resource_prop(self, resource, prop, value, rsc_filter=None): |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
228 |
"""sets a property for an existing resource. |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
229 |
""" |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
230 |
try: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
231 |
if isinstance(resource, basestring): |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
232 |
resource = zonemgr.Resource(resource, rsc_filter) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
233 |
self.zone.setResourceProperties(resource, |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
234 |
[zonemgr.Property(prop, value)]) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
235 |
except: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
236 |
raise |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
237 |
|
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
238 |
def clear_resource_props(self, resource, props, rsc_filter=None): |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
239 |
"""Clear property values of a given resource |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
240 |
""" |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
241 |
try: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
242 |
if isinstance(resource, basestring): |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
243 |
resource = zonemgr.Resource(resource, rsc_filter) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
244 |
self.zone.clearResourceProperties(resource, props) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
245 |
except: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
246 |
raise |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
247 |
|
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
248 |
def lookup_resource_property(self, resource, prop, rsc_filter=None): |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
249 |
"""Lookup specified property from specified Solaris Zone resource.""" |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
250 |
try: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
251 |
if isinstance(resource, basestring): |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
252 |
resource = zonemgr.Resource(resource, rsc_filter) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
253 |
val = self.zone.getResourceProperties(resource, [prop]) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
254 |
except radcli.ObjectError: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
255 |
return None |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
256 |
except Exception: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
257 |
raise |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
258 |
return val[0].value if val else None |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
259 |
|
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
260 |
|
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
261 |
class ZoneUtil(object): |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
262 |
"""Zone utility functions like getting list of zones, zone names etc. |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
263 |
""" |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
264 |
def __init__(self): |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
265 |
self.rc = radcon.connect_unix() |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
266 |
|
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
267 |
def get_zone_by_name(self, name): |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
268 |
"""Return a Solaris Zones object via RAD by name.""" |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
269 |
try: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
270 |
zone = self.rc.get_object( |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
271 |
zonemgr.Zone(), radcli.ADRGlobPattern({'name': name})) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
272 |
except radcli.NotFoundError: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
273 |
return None |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
274 |
except Exception: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
275 |
raise |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
276 |
return zone |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
277 |
|
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
278 |
def _get_zone_objects(self): |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
279 |
"""Return a list of all Solaris Zones objects via RAD.""" |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
280 |
return self.rc.list_objects(zonemgr.Zone()) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
281 |
|
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
282 |
def get_zone_names(self): |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
283 |
"""Return the names of all the instances known to the virtualization |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
284 |
layer, as a list. |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
285 |
""" |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
286 |
instances_list = [] |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
287 |
for zone in self._get_zone_objects(): |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
288 |
instances_list.append(self.rc.get_object(zone).name) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
289 |
return instances_list |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
290 |
|
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
291 |
|
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
292 |
class EVSUtil(): |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
293 |
"""Use to access EVS info. |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
294 |
""" |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
295 |
def __init__(self): |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
296 |
ctl_locn = self._get_evs_controller() |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
297 |
try: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
298 |
self.rad_uri = radcon.RadURI(ctl_locn) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
299 |
except ValueError as err: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
300 |
raise SystemExit(_("Specified evs_controller is invalid: %s"), err) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
301 |
try: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
302 |
self._rc = self.rad_uri.connect() |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
303 |
except: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
304 |
raise SystemExit(_("Cannot connect to EVS Controller")) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
305 |
try: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
306 |
self._evs_contr = self._rc.get_object(evscntl.EVSController()) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
307 |
except: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
308 |
raise SystemExit(_("Failed to get EVS Controller")) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
309 |
self.l2type = self._evs_contr.getProperty('l2-type')[0].current_value |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
310 |
self._evsinfo = None |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
311 |
self._vportinfo = None |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
312 |
self._l2rangeinfo = None |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
313 |
self._evs_cache = {} |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
314 |
# _global_vlanrange_to_nw_uplink does not contain host specific entries |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
315 |
# and is of the form: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
316 |
# {comma separated vlanrange strings: (physical n/w name, uplink port)} |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
317 |
self._global_vlanrange_to_nw_uplink = {} |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
318 |
# _local_vlanrange_to_uplink contains only this host specific entries |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
319 |
# and is of the form: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
320 |
# {comma separated vlanrange strings: uplink port} |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
321 |
self._local_vlanrange_to_uplink = {} |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
322 |
# global uplink port for flatnet |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
323 |
self._global_flat_nw_uplink = None |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
324 |
# local uplink port for flatnet |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
325 |
self._local_flat_nw_uplink = None |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
326 |
|
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
327 |
def _get_evs_controller(self): |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
328 |
if (set(curnode_svcs) & |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
329 |
set([SVC_NOVA_COMPUTE, SVC_DHCP_AGENT, SVC_L3_AGENT])): |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
330 |
try: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
331 |
evsc = check_output(['/usr/sbin/evsadm', 'show-prop', '-co', |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
332 |
'value', '-p', 'controller']).strip() |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
333 |
except: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
334 |
raise SystemExit(_("Could not determine EVS Controller " |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
335 |
"RAD URI")) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
336 |
return evsc.strip() |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
337 |
|
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
338 |
assert SVC_NEUTRON_SERVER in curnode_svcs |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
339 |
# get evs_controller from EVS_INI |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
340 |
config = iniparse.ConfigParser() |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
341 |
config.readfp(open(EVS_INI)) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
342 |
try: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
343 |
evsc = config.get("EVS", "evs_controller") |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
344 |
except: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
345 |
return 'ssh://evsuser@localhost' |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
346 |
return evsc.strip() |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
347 |
|
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
348 |
@property |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
349 |
def evsinfo(self): |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
350 |
if not self._evsinfo: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
351 |
self._evsinfo = self._evs_contr.getEVSInfo() |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
352 |
return self._evsinfo |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
353 |
|
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
354 |
@property |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
355 |
def vportinfo(self): |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
356 |
if not self._vportinfo: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
357 |
self._vportinfo = self._evs_contr.getVPortInfo() |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
358 |
return self._vportinfo |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
359 |
|
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
360 |
@property |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
361 |
def l2rangeinfo(self): |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
362 |
if not self._l2rangeinfo: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
363 |
self._l2rangeinfo = self._evs_contr.getL2TypeIdRange() |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
364 |
return self._l2rangeinfo |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
365 |
|
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
366 |
@property |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
367 |
def global_flat_nw_uplink(self): |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
368 |
if not self._global_flat_nw_uplink: |
6680
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
369 |
self.get_global_vlanrange_nw_uplink_map() |
6381
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
370 |
return self._global_flat_nw_uplink |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
371 |
|
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
372 |
@property |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
373 |
def local_flat_nw_uplink(self): |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
374 |
if not self._local_flat_nw_uplink: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
375 |
self.get_local_vlanrange_uplink_map() |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
376 |
return self._local_flat_nw_uplink |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
377 |
|
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
378 |
def _get_vport(self, tenant_name, evs_uuid, vport_uuid): |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
379 |
pat = radcli.ADRGlobPattern({'tenant': tenant_name, |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
380 |
'evsuuid': evs_uuid, |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
381 |
'uuid': vport_uuid}) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
382 |
adrnames = self._rc.list_objects(evscntl.VPort(), pat) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
383 |
if not adrnames: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
384 |
return None |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
385 |
return self._rc.get_object(adrnames[0]) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
386 |
|
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
387 |
def get_macaddr(self, tenant_name, evs_uuid, vport_uuid): |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
388 |
vport = self._get_vport(tenant_name, evs_uuid, vport_uuid) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
389 |
return vport.getProperty('macaddr')[0].current_value |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
390 |
|
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
391 |
def _get_evs(self, tenant_name, evs_uuid): |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
392 |
if evs_uuid in self._evs_cache: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
393 |
return self._evs_cache[evs_uuid] |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
394 |
pat = radcli.ADRGlobPattern({'tenant': tenant_name, |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
395 |
'uuid': evs_uuid}) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
396 |
adrnames = self._rc.list_objects(evscntl.EVS(), pat) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
397 |
if not adrnames: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
398 |
return None |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
399 |
evs = self._rc.get_object(adrnames[0]) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
400 |
self._evs_cache[evs_uuid] = evs |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
401 |
return evs |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
402 |
|
6680
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
403 |
def _vid_in_vidrange(self, vid, vidrange): |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
404 |
# vidrange is of the form 1-5,10-20,30-35 |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
405 |
vlan_ranges = vidrange.split(',') |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
406 |
for vlan_range_str in vlan_ranges: |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
407 |
vlan_range = vlan_range_str.split("-") |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
408 |
vlan_start = int(vlan_range[0]) |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
409 |
if len(vlan_range) == 2: |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
410 |
vlan_end = int(vlan_range[1]) + 1 |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
411 |
else: |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
412 |
vlan_end = vlan_start + 1 |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
413 |
if vid in xrange(vlan_start, vlan_end): |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
414 |
return True |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
415 |
return False |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
416 |
|
6381
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
417 |
def get_global_vlanrange_nw_uplink_map(self): |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
418 |
if self._global_vlanrange_to_nw_uplink: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
419 |
return self._global_vlanrange_to_nw_uplink |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
420 |
i = 1 |
6680
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
421 |
extnet_found = False |
6381
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
422 |
for l2ri in self.l2rangeinfo: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
423 |
if l2ri.host or l2ri.name != 'uplink-port': |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
424 |
continue |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
425 |
uplink_port = l2ri.value |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
426 |
for range_prop in l2ri.range: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
427 |
if range_prop.name != 'vlan-range': |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
428 |
if range_prop.name == 'flat-range': |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
429 |
self._global_flat_nw_uplink = uplink_port |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
430 |
continue |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
431 |
vlanrange = range_prop.value |
6680
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
432 |
phys_nw = '' |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
433 |
if external_network_vid and not extnet_found: |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
434 |
extnet_found = self._vid_in_vidrange(external_network_vid, |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
435 |
vlanrange) |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
436 |
if extnet_found: |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
437 |
phys_nw = EXT_VLAN_PHYS_NET |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
438 |
if not phys_nw: |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
439 |
phys_nw = 'physnet' + str(i) |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
440 |
i += 1 |
6381
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
441 |
self._global_vlanrange_to_nw_uplink[vlanrange] = (phys_nw, |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
442 |
uplink_port) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
443 |
return self._global_vlanrange_to_nw_uplink |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
444 |
|
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
445 |
def get_local_vlanrange_uplink_map(self): |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
446 |
if self._local_vlanrange_to_uplink: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
447 |
return self._local_vlanrange_to_uplink |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
448 |
for l2ri in self.l2rangeinfo: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
449 |
if not l2ri.host: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
450 |
continue |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
451 |
l2ri_hostname = l2ri.host.split('.')[0] |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
452 |
if l2ri_hostname != HOSTNAME or l2ri.name != 'uplink-port': |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
453 |
continue |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
454 |
uplink_port = l2ri.value |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
455 |
for range_prop in l2ri.range: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
456 |
if range_prop.name != 'vlan-range': |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
457 |
if range_prop.name == 'flat-range': |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
458 |
self._local_flat_nw_uplink = uplink_port |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
459 |
continue |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
460 |
vlanrange = range_prop.value |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
461 |
self._local_vlanrange_to_uplink[vlanrange] = uplink_port |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
462 |
return self._local_vlanrange_to_uplink |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
463 |
|
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
464 |
def _get_vlanrange_dict_val(self, vlanrangedict, vlanid): |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
465 |
"""Each key in vlanrangedict is of the form |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
466 |
'vid_start_1-vid_end_1,vid_start_2-vid_end_2'.. |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
467 |
This method parses the keys and finds the one which contains the |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
468 |
required vlanid and returns its corresponding dictionary value. |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
469 |
""" |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
470 |
for vlan_ranges_str, value in vlanrangedict.iteritems(): |
6680
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
471 |
if self._vid_in_vidrange(vlanid, vlan_ranges_str): |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
472 |
return value |
6381
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
473 |
|
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
474 |
def get_uplink_port(self, tenant_name, evs_uuid): |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
475 |
""" For VXLAN the uplink port is always ovs.vxlan1. |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
476 |
For flat, we can return local or global uplink port after executing |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
477 |
get_local_vlanrange_uplink_map() or get_global_vlanrange_uplink_map(). |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
478 |
For vlan, to find we first find the vlan-id associated |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
479 |
with this evs. Then check which l2range object contains this vlan-id |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
480 |
for this host and get the corresponding uplink-port. |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
481 |
""" |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
482 |
if l2type == L2_TYPE_VXLAN: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
483 |
return VXLAN_UPLINK_PORT |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
484 |
elif l2type == L2_TYPE_FLAT: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
485 |
if self.local_flat_nw_uplink: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
486 |
return self.local_flat_nw_uplink |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
487 |
return self.global_flat_nw_uplink |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
488 |
assert l2type == L2_TYPE_VLAN |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
489 |
evs = self._get_evs(tenant_name, evs_uuid) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
490 |
vlanid = int(evs.getProperty('vlanid')[0].current_value) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
491 |
val = self._get_vlanrange_dict_val( |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
492 |
self.get_local_vlanrange_uplink_map(), vlanid) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
493 |
if val: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
494 |
return val |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
495 |
val = self._get_vlanrange_dict_val( |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
496 |
self.get_global_vlanrange_nw_uplink_map(), vlanid)[1] |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
497 |
return val |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
498 |
|
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
499 |
def get_vni_range_list(self): |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
500 |
vni_ranges_list = [] |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
501 |
for l2ri in self.l2rangeinfo: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
502 |
if l2ri.host: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
503 |
continue |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
504 |
for range_prop in l2ri.range: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
505 |
if range_prop.name != 'vxlan-range': |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
506 |
continue |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
507 |
vni_ranges_list += range_prop.value.split(',') |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
508 |
return vni_ranges_list |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
509 |
|
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
510 |
def get_vxlan_addrs_and_uplinks(self): |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
511 |
local_vxlan_addr, local_uplink_port = '', '' |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
512 |
global_vxlan_addr, global_uplink_port = '', '' |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
513 |
for l2ri in self.l2rangeinfo: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
514 |
if l2ri.host: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
515 |
if l2ri.host.split('.')[0] != HOSTNAME: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
516 |
# Don't care about other hosts' configurations |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
517 |
continue |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
518 |
if l2ri.name == 'vxlan-addr': |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
519 |
local_vxlan_addr = l2ri.value |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
520 |
# if we found -h vxlan-addr, we don't need the other values |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
521 |
break |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
522 |
elif l2ri.name == 'uplink-port': |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
523 |
for range_prop in l2ri.range: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
524 |
if range_prop.name == 'vxlan-range': |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
525 |
local_uplink_port = l2ri.value |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
526 |
break |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
527 |
else: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
528 |
if l2ri.name == 'vxlan_addr' and l2ri.value != '0.0.0.0': |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
529 |
global_vxlan_addr = l2ri.value |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
530 |
else: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
531 |
for range_prop in l2ri.range: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
532 |
if range_prop.name == 'vxlan-range': |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
533 |
global_uplink_port = l2ri.value |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
534 |
break |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
535 |
if local_vxlan_addr and local_uplink_port and global_vxlan_addr \ |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
536 |
and global_uplink_port: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
537 |
break |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
538 |
return (local_vxlan_addr, local_uplink_port, global_vxlan_addr, |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
539 |
global_uplink_port) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
540 |
|
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
541 |
|
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
542 |
def get_db_connection(): |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
543 |
config = iniparse.ConfigParser() |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
544 |
config.readfp(open(NEUTRON_CONF)) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
545 |
if config.has_option('database', 'connection'): |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
546 |
connection = config.get('database', 'connection') |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
547 |
else: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
548 |
raise SystemExit(_("Connection url for target DB not found.")) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
549 |
return connection |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
550 |
|
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
551 |
|
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
552 |
class DBEVSToMl2(object): |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
553 |
def __init__(self): |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
554 |
self._table_names = ['ml2_network_segments', 'ml2_vxlan_allocations', |
6680
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
555 |
'ml2_vlan_allocations', 'ml2_port_binding_levels', |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
556 |
'ml2_port_bindings', 'router_extra_attributes'] |
6381
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
557 |
self._vif_type = portbindings.VIF_TYPE_OVS |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
558 |
self._driver_type = 'openvswitch' |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
559 |
# _vlan_xrange_to_nw is a list of tuples to hold the mapping from |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
560 |
# vlan-id to physical_network. The tuple format is |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
561 |
# (xrange(vid_range_start, vid_range_end), physical_network). |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
562 |
self._vlan_xrange_to_nw = [] |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
563 |
|
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
564 |
def __call__(self): |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
565 |
connection = get_db_connection() |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
566 |
engine = session.create_engine(connection) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
567 |
metadata = sa.MetaData() |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
568 |
self._check_db_schema_version(engine, metadata) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
569 |
# Autoload the ports table to ensure that foreign keys to it and |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
570 |
# the network table can be created for the new tables. |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
571 |
sa.Table('ports', metadata, autoload=True, autoload_with=engine) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
572 |
metadata.create_all(engine) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
573 |
self._clear_tables(engine, metadata) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
574 |
self._get_vlanrange_mapping() |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
575 |
self._migrate_network_segments(engine, metadata) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
576 |
self._migrate_vlan_allocations(engine) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
577 |
self._migrate_vxlan_allocations(engine) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
578 |
self._migrate_port_bindings(engine, metadata) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
579 |
self._add_router_extra_attributes(engine, metadata) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
580 |
|
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
581 |
def _check_db_schema_version(self, engine, metadata): |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
582 |
"""Check that current version of the db schema is supported.""" |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
583 |
supported_schema_version = 'kilo' |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
584 |
version_table = sa.Table( |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
585 |
'alembic_version', metadata, autoload=True, autoload_with=engine) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
586 |
versions = [v[0] for v in engine.execute(version_table.select())] |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
587 |
if not versions: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
588 |
raise ValueError(_("Missing version in alembic_versions table")) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
589 |
elif len(versions) > 1: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
590 |
raise ValueError(_("Multiple versions in alembic_versions table:" |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
591 |
" %s") % versions) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
592 |
current_version = versions[0] |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
593 |
if current_version != supported_schema_version: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
594 |
raise SystemError(_("Unsupported database schema %(current)s. " |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
595 |
"Please migrate your database to one of " |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
596 |
" following versions: %(supported)s") |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
597 |
% {'current': current_version, |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
598 |
'supported': supported_schema_version} |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
599 |
) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
600 |
|
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
601 |
def _clear_tables(self, engine, metadata): |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
602 |
for tbl_name in self._table_names: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
603 |
sa.Table(tbl_name, metadata, autoload=True, autoload_with=engine) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
604 |
tbl = metadata.tables[tbl_name] |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
605 |
engine.execute(tbl.delete()) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
606 |
|
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
607 |
def _get_vlanrange_mapping(self): |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
608 |
vlanrange_to_nw_uplink = evsutil.get_global_vlanrange_nw_uplink_map() |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
609 |
# mapping from vlan-id to physical_network |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
610 |
for vlan_ranges_str, (nw, _) in vlanrange_to_nw_uplink.iteritems(): |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
611 |
vlan_ranges = vlan_ranges_str.split(',') |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
612 |
for vlan_range_str in vlan_ranges: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
613 |
vlan_range = vlan_range_str.split("-") |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
614 |
vlan_start = int(vlan_range[0]) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
615 |
if len(vlan_range) == 2: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
616 |
vlan_end = int(vlan_range[1]) + 1 |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
617 |
else: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
618 |
vlan_end = vlan_start + 1 |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
619 |
self._vlan_xrange_to_nw.append((xrange(vlan_start, vlan_end), |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
620 |
nw)) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
621 |
|
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
622 |
def _get_phys_net(self, l2type, vid): |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
623 |
if l2type == L2_TYPE_VLAN: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
624 |
for vid_range, phys in self._vlan_xrange_to_nw: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
625 |
if vid in vid_range: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
626 |
return phys |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
627 |
elif l2type == L2_TYPE_FLAT: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
628 |
return FLAT_PHYS_NET |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
629 |
return None |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
630 |
|
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
631 |
def _add_router_extra_attributes(self, engine, metadata): |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
632 |
routers = engine.execute("SELECT id FROM routers") |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
633 |
routers = list(routers) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
634 |
records = [] |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
635 |
for router in routers: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
636 |
router_ext_attr = {} |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
637 |
router_ext_attr['router_id'] = router[0] |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
638 |
router_ext_attr['distributed'] = 0 |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
639 |
router_ext_attr['service_router'] = 0 |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
640 |
router_ext_attr['ha'] = 0 |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
641 |
router_ext_attr['ha_vr_id'] = 0 |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
642 |
records.append(router_ext_attr) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
643 |
|
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
644 |
if records: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
645 |
sa.Table('router_extra_attributes', metadata, autoload=True, |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
646 |
autoload_with=engine) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
647 |
router_ea = metadata.tables['router_extra_attributes'] |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
648 |
engine.execute(router_ea.insert(), records) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
649 |
|
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
650 |
def _migrate_network_segments(self, engine, metadata): |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
651 |
records = [] |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
652 |
for evsinfo in evsutil.evsinfo: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
653 |
segment = dict(id=uuidutils.generate_uuid()) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
654 |
segment['network_id'] = evsinfo.uuid |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
655 |
segment['segmentation_id'] = None |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
656 |
for prop in evsinfo.props: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
657 |
if prop.name == 'l2-type': |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
658 |
segment['network_type'] = prop.value |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
659 |
elif prop.name == 'vlanid' or prop.name == 'vni': |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
660 |
segment['segmentation_id'] = int(prop.value) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
661 |
phys_net = self._get_phys_net(segment['network_type'], |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
662 |
segment['segmentation_id']) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
663 |
segment['physical_network'] = phys_net |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
664 |
records.append(segment) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
665 |
if records: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
666 |
sa.Table('ml2_network_segments', metadata, autoload=True, |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
667 |
autoload_with=engine) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
668 |
ml2_network_segments = metadata.tables['ml2_network_segments'] |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
669 |
engine.execute(ml2_network_segments.insert(), records) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
670 |
|
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
671 |
def _migrate_vxlan_allocations(self, engine): |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
672 |
vnis = [] |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
673 |
for evsinfo in evsutil.evsinfo: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
674 |
pdict = dict((prop.name, prop.value) for prop in evsinfo.props) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
675 |
if L2_TYPE_VXLAN not in pdict.values(): |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
676 |
continue |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
677 |
vnis.append(int(pdict['vni'])) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
678 |
records = [dict(vxlan_vni=vni, allocated=True) for vni in vnis] |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
679 |
if records: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
680 |
metadata = sa.MetaData() |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
681 |
sa.Table('ml2_vxlan_allocations', metadata, autoload=True, |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
682 |
autoload_with=engine) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
683 |
vxlan_allocations = metadata.tables['ml2_vxlan_allocations'] |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
684 |
engine.execute(vxlan_allocations.insert(), records) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
685 |
|
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
686 |
def _migrate_vlan_allocations(self, engine): |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
687 |
vid_allocated_map = OrderedDict() |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
688 |
# initially set 'allocated' to False for all vids |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
689 |
for vid_range, _ in self._vlan_xrange_to_nw: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
690 |
for vid in vid_range: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
691 |
vid_allocated_map[vid] = False |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
692 |
for evsinfo in evsutil.evsinfo: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
693 |
pdict = dict((prop.name, prop.value) for prop in evsinfo.props) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
694 |
if L2_TYPE_VLAN not in pdict.values(): |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
695 |
continue |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
696 |
vid = int(pdict['vlanid']) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
697 |
vid_allocated_map[vid] = True |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
698 |
records = [ |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
699 |
dict(physical_network=self._get_phys_net(L2_TYPE_VLAN, vid), |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
700 |
vlan_id=vid, allocated=alloc) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
701 |
for vid, alloc in vid_allocated_map.iteritems() |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
702 |
] |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
703 |
if records: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
704 |
metadata = sa.MetaData() |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
705 |
sa.Table('ml2_vlan_allocations', metadata, autoload=True, |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
706 |
autoload_with=engine) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
707 |
vlan_allocations = metadata.tables['ml2_vlan_allocations'] |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
708 |
engine.execute(vlan_allocations.insert(), records) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
709 |
|
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
710 |
def _get_port_segment_map(self, engine): |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
711 |
port_segments = engine.execute(""" |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
712 |
SELECT ports_network.port_id, ml2_network_segments.id AS segment_id |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
713 |
FROM ml2_network_segments, ( |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
714 |
SELECT ports.id AS port_id, ports.network_id |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
715 |
FROM ports |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
716 |
) AS ports_network |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
717 |
WHERE ml2_network_segments.network_id = ports_network.network_id |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
718 |
""") |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
719 |
return dict(x for x in port_segments) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
720 |
|
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
721 |
def _migrate_port_bindings(self, engine, metadata): |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
722 |
ml2_bindings = [] |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
723 |
ml2_binding_levels = [] |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
724 |
port_segment_map = self._get_port_segment_map(engine) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
725 |
metadata = sa.MetaData() |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
726 |
for vportinfo in evsutil.vportinfo: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
727 |
binding = {} |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
728 |
binding['port_id'] = vportinfo.uuid |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
729 |
binding['host'] = vportinfo.hostname |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
730 |
if vportinfo.hostname: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
731 |
binding['vif_type'] = self._vif_type |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
732 |
binding['vif_details'] = '{"port_filter": false, ' \ |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
733 |
'"ovs_hybrid_plug": false}' |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
734 |
ml2_bindings.append(binding) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
735 |
binding_level = {} |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
736 |
binding_level['port_id'] = vportinfo.uuid |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
737 |
binding_level['host'] = vportinfo.hostname |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
738 |
binding_level['level'] = 0 |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
739 |
binding_level['driver'] = self._driver_type |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
740 |
segment_id = port_segment_map.get(binding_level['port_id']) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
741 |
if segment_id: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
742 |
binding_level['segment_id'] = segment_id |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
743 |
ml2_binding_levels.append(binding_level) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
744 |
else: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
745 |
binding['vif_type'] = 'unbound' |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
746 |
binding['vif_details'] = '' |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
747 |
ml2_bindings.append(binding) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
748 |
if ml2_bindings: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
749 |
sa.Table('ml2_port_bindings', metadata, autoload=True, |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
750 |
autoload_with=engine) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
751 |
ml2_port_bindings = metadata.tables['ml2_port_bindings'] |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
752 |
engine.execute(ml2_port_bindings.insert(), ml2_bindings) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
753 |
if ml2_binding_levels: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
754 |
sa.Table('ml2_port_binding_levels', metadata, autoload=True, |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
755 |
autoload_with=engine) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
756 |
ml2_port_binding_lvls = metadata.tables['ml2_port_binding_levels'] |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
757 |
engine.execute(ml2_port_binding_lvls.insert(), ml2_binding_levels) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
758 |
|
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
759 |
|
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
760 |
class NovaVmEVSToOVS(object): |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
761 |
def _zc_get_evs_vport_vals(self, zc, anet_rsc): |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
762 |
"""Get mac-address and lower-link for this anet from evs. |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
763 |
""" |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
764 |
mac_addr, uplink_port = None, None |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
765 |
tenant_name = zc.lookup_resource_property('global', 'tenant') |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
766 |
evs_uuid = zc.lookup_resource_property(anet_rsc, 'evs') |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
767 |
vport_uuid = zc.lookup_resource_property(anet_rsc, 'vport') |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
768 |
if not evs_uuid or not vport_uuid: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
769 |
return mac_addr, uplink_port |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
770 |
mac_addr = evsutil.get_macaddr(tenant_name, evs_uuid, vport_uuid) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
771 |
uplink_port = evsutil.get_uplink_port(tenant_name, evs_uuid) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
772 |
return mac_addr, uplink_port |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
773 |
|
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
774 |
def migrate(self, zone): |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
775 |
"""Update zonecfg by deleting evs-specific and adding ovs-specific conf |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
776 |
""" |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
777 |
installed_port_uuids = [] |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
778 |
with ZoneConfig(zone) as zc: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
779 |
brand = zc.lookup_resource_property('global', 'brand') |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
780 |
anet_update_failed = False |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
781 |
for anet_rsc in zc.get_resources('anet'): |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
782 |
mac_addr, lower_link = self._zc_get_evs_vport_vals(zc, |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
783 |
anet_rsc) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
784 |
if not mac_addr or not lower_link: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
785 |
anet_update_failed = True |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
786 |
msg = "Failed to get ovs info for zone" |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
787 |
log_msg(LOG_ERROR, msg) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
788 |
continue |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
789 |
if zone.state == 'installed': |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
790 |
vport_uuid = zc.lookup_resource_property(anet_rsc, 'vport') |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
791 |
if vport_uuid: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
792 |
installed_port_uuids.append(vport_uuid) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
793 |
fname = 'id' if brand == 'solaris-kz' else 'linkname' |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
794 |
fvalue = zc.lookup_resource_property(anet_rsc, fname) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
795 |
zc.clear_resource_props(anet_rsc, ['evs', 'vport']) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
796 |
rsc_filter = [zonemgr.Property(fname, fvalue)] |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
797 |
zc.set_resource_prop('anet', 'mac-address', mac_addr, |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
798 |
rsc_filter) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
799 |
zc.set_resource_prop('anet', 'lower-link', lower_link, |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
800 |
rsc_filter) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
801 |
|
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
802 |
if not anet_update_failed: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
803 |
zc.clear_resource_props('global', ['tenant']) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
804 |
return installed_port_uuids |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
805 |
|
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
806 |
|
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
807 |
class ConfigEVSToOVS(): |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
808 |
def __init__(self): |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
809 |
# These are the configuration changes that are fixed, i.e., don't |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
810 |
# require extra computation. The data structure format is: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
811 |
# _fixed = {config_file: [(section, param_name, param_value),]} |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
812 |
self._fixed = { |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
813 |
NEUTRON_CONF: [('DEFAULT', 'core_plugin', ML2_PLUGIN)], |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
814 |
ML2_INI: [('ml2_type_flat', 'flat_networks', 'flatnet')], |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
815 |
DHCP_INI: [('DEFAULT', 'interface_driver', OVS_INTFC_DRIVER), |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
816 |
('DEFAULT', 'ovs_integration_bridge', OVS_INT_BRIDGE)], |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
817 |
L3_INI: [('DEFAULT', 'interface_driver', OVS_INTFC_DRIVER), |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
818 |
('DEFAULT', 'ovs_integration_bridge', OVS_INT_BRIDGE), |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
819 |
('DEFAULT', 'external_network_bridge', OVS_EXT_BRIDGE)], |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
820 |
NOVA_CONF: [('neutron', 'ovs_bridge', OVS_INT_BRIDGE)] |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
821 |
} |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
822 |
# Config changes that are fixed depending on the l2-type |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
823 |
if l2type == L2_TYPE_VXLAN: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
824 |
self._fixed[ML2_INI] += [('ml2', 'tenant_network_types', 'vxlan')] |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
825 |
self._fixed[OVS_INI] = [('ovs', 'enable_tunneling', 'True'), |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
826 |
('agent', 'tunnel_types', 'vxlan')] |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
827 |
elif l2type == L2_TYPE_VLAN: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
828 |
self._fixed[ML2_INI] += [('ml2', 'tenant_network_types', 'vlan')] |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
829 |
else: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
830 |
assert l2type == L2_TYPE_FLAT |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
831 |
self._fixed[ML2_INI] += [('ml2', 'tenant_network_types', 'flat')] |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
832 |
self._vxlan_local_ip = None |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
833 |
|
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
834 |
def _read_config(self, conf_file): |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
835 |
config = iniparse.ConfigParser() |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
836 |
config.readfp(open(conf_file)) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
837 |
return config |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
838 |
|
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
839 |
def _write_config(self, conf_file, config): |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
840 |
with open(conf_file, 'wb+') as fp: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
841 |
config.write(fp) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
842 |
|
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
843 |
def _do_fixed(self, conf_file, config): |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
844 |
orig_conf_file = conf_file.replace('.migr', '') |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
845 |
if orig_conf_file not in self._fixed: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
846 |
return |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
847 |
for sec, key, val in self._fixed[orig_conf_file]: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
848 |
config.set(sec, key, val) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
849 |
|
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
850 |
def _do_ml2_vlan_range(self, config): |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
851 |
vlanrange_to_nw_uplink = evsutil.get_global_vlanrange_nw_uplink_map() |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
852 |
nw_vlan_str_list = [] |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
853 |
for vlan_ranges_str, (nw, _) in vlanrange_to_nw_uplink.iteritems(): |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
854 |
vlan_ranges = vlan_ranges_str.split(',') |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
855 |
for vlan_range_str in vlan_ranges: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
856 |
vlan_range = vlan_range_str.split("-") |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
857 |
vlan_start = vlan_end = vlan_range[0] |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
858 |
if len(vlan_range) == 2: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
859 |
vlan_end = vlan_range[1] |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
860 |
nw_vlan_str = nw + ":" + vlan_start + ":" + vlan_end |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
861 |
nw_vlan_str_list.append(nw_vlan_str) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
862 |
nw_vlan_strs = ",".join(nw_vlan_str_list) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
863 |
config.set('ml2_type_vlan', 'network_vlan_ranges', nw_vlan_strs) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
864 |
|
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
865 |
def _do_ml2_vni_range(self, config): |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
866 |
vni_ranges_list = evsutil.get_vni_range_list() |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
867 |
vni_ranges_list = [vr.replace('-', ':') for vr in vni_ranges_list] |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
868 |
vni_ranges = ",".join(vni_ranges_list) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
869 |
config.set('ml2_type_vxlan', 'vni_ranges', vni_ranges) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
870 |
|
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
871 |
def _get_rabbit_host(self, conf_file): |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
872 |
config = self._read_config(conf_file) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
873 |
host = 'localhost' |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
874 |
if config.has_option('DEFAULT', 'rabbit_host'): |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
875 |
host = config.get('DEFAULT', 'rabbit_host') |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
876 |
elif config.has_option('oslo_messaging_rabbit', 'rabbit_host'): |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
877 |
host = config.get('oslo_messaging_rabbit', 'rabbit_host') |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
878 |
|
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
879 |
port = '5672' |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
880 |
if config.has_option('DEFAULT', 'rabbit_port'): |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
881 |
port = config.get('DEFAULT', 'rabbit_port') |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
882 |
elif config.has_option('oslo_messaging_rabbit', 'rabbit_port'): |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
883 |
port = config.get('oslo_messaging_rabbit', 'rabbit_port') |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
884 |
|
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
885 |
hosts = ':'.join([host, port]) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
886 |
if config.has_option('DEFAULT', 'rabbit_hosts'): |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
887 |
hosts = config.get('DEFAULT', 'rabbit_hosts') |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
888 |
elif config.has_option('oslo_messaging_rabbit', 'rabbit_hosts'): |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
889 |
hosts = config.get('oslo_messaging_rabbit', 'rabbit_hosts') |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
890 |
|
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
891 |
userid = RABBITMQ_DEFAULT_USERID |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
892 |
if config.has_option('DEFAULT', 'rabbit_userid'): |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
893 |
userid = config.get('DEFAULT', 'rabbit_userid') |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
894 |
elif config.has_option('oslo_messaging_rabbit', 'rabbit_userid'): |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
895 |
userid = config.get('oslo_messaging_rabbit', 'rabbit_userid') |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
896 |
|
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
897 |
passwd = RABBITMQ_DEFAULT_PASSWORD |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
898 |
if config.has_option('DEFAULT', 'rabbit_password'): |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
899 |
passwd = config.get('DEFAULT', 'rabbit_password') |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
900 |
elif config.has_option('oslo_messaging_rabbit', 'rabbit_password'): |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
901 |
passwd = config.get('oslo_messaging_rabbit', 'rabbit_password') |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
902 |
passwd += '\n' |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
903 |
|
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
904 |
return (host, hosts, userid, passwd) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
905 |
|
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
906 |
def _do_rabbit_host(self, config): |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
907 |
if SVC_NOVA_COMPUTE in curnode_svcs: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
908 |
(host, hosts, userid, passwd) = self._get_rabbit_host(NOVA_CONF) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
909 |
elif set([SVC_DHCP_AGENT, SVC_L3_AGENT]) & set(curnode_svcs): |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
910 |
(host, hosts, userid, passwd) = self._get_rabbit_host(NEUTRON_CONF) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
911 |
else: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
912 |
return |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
913 |
if not config.has_section('oslo_messaging_rabbit'): |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
914 |
config.add_section('oslo_messaging_rabbit') |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
915 |
config.set('oslo_messaging_rabbit', 'rabbit_host', host) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
916 |
config.set('oslo_messaging_rabbit', 'rabbit_hosts', hosts) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
917 |
config.set('oslo_messaging_rabbit', 'rabbit_userid', userid) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
918 |
config.set('oslo_messaging_rabbit', 'rabbit_password', passwd) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
919 |
|
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
920 |
def _get_local_ip(self, if_str='', subnet_str=''): |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
921 |
if not if_str and not subnet_str: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
922 |
return None |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
923 |
for iface in ni.interfaces(): |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
924 |
if if_str: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
925 |
if iface != if_str: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
926 |
continue |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
927 |
# Only IPv4 addresses, not considering IPv6 since OVS |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
928 |
# doesn't support IPv6 VXLANs |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
929 |
for addrinfo in ni.ifaddresses(iface)[ni.AF_INET]: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
930 |
addr = addrinfo['addr'] |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
931 |
if subnet_str: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
932 |
if na.IPAddress(addr) in na.IPNetwork(subnet_str): |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
933 |
return addr |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
934 |
else: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
935 |
if addr != '127.0.0.1': |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
936 |
return addr |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
937 |
break |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
938 |
else: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
939 |
for addrinfo in ni.ifaddresses(iface)[ni.AF_INET]: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
940 |
addr = addrinfo['addr'] |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
941 |
if na.IPAddress(addr) in na.IPNetwork(subnet_str): |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
942 |
return addr |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
943 |
return None |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
944 |
|
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
945 |
def _get_vxlan_local_ip(self): |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
946 |
"""Returns the local_ip for vxlan_endpoint. It is found as follows: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
947 |
1. If host specific vxlan-addr is present, use it. |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
948 |
2. If local uplink-port and global vxlan-addr(subnet) is present, use |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
949 |
the first IP address on that uplink-port which is in the subnet. |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
950 |
3. If local uplink-port, use the first IP on the uplink-port. |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
951 |
4. If global uplink-port and global vxlan-addr(subnet), use first |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
952 |
IP address on that uplink-port which is in the subnet. |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
953 |
5. If global vxlan-addr is configured only, use the first IP address |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
954 |
on any interface that is in the subnet of global vxlan-addr. |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
955 |
""" |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
956 |
if self._vxlan_local_ip: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
957 |
return self._vxlan_local_ip |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
958 |
(laddr, lup, gaddr, gup) = evsutil.get_vxlan_addrs_and_uplinks() |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
959 |
if laddr: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
960 |
self._vxlan_local_ip = laddr |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
961 |
elif lup: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
962 |
self._vxlan_local_ip = self._get_local_ip(lup, gaddr) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
963 |
else: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
964 |
self._vxlan_local_ip = self._get_local_ip(gup, gaddr) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
965 |
return self._vxlan_local_ip |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
966 |
|
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
967 |
def _do_neutron_credentials(self, config, input_file, section): |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
968 |
neutron_cfg = self._read_config(input_file) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
969 |
tenant = None |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
970 |
if neutron_cfg.has_option(section, 'admin_tenant_name'): |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
971 |
tenant = neutron_cfg.get(section, 'admin_tenant_name') |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
972 |
config.set('DEFAULT', 'admin_tenant_name', tenant) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
973 |
user = None |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
974 |
if neutron_cfg.has_option(section, 'admin_user'): |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
975 |
user = neutron_cfg.get(section, 'admin_user') |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
976 |
config.set('DEFAULT', 'admin_user', user) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
977 |
passwd = None |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
978 |
if neutron_cfg.has_option(section, 'admin_password'): |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
979 |
passwd = neutron_cfg.get(section, 'admin_password') |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
980 |
config.set('DEFAULT', 'admin_password', passwd) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
981 |
auth_uri_option = ('auth_uri' if input_file == NEUTRON_CONF else |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
982 |
'auth_url') |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
983 |
if neutron_cfg.has_option(section, auth_uri_option): |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
984 |
auth_url = neutron_cfg.get(section, auth_uri_option) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
985 |
config.set('DEFAULT', 'auth_url', auth_url) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
986 |
if neutron_cfg.has_option(section, 'auth_region'): |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
987 |
auth_region = neutron_cfg.get(section, 'auth_region') |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
988 |
config.set('DEFAULT', 'auth_region', auth_region) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
989 |
|
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
990 |
if any('%SERVICE_' in val for val in [tenant, user, passwd]): |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
991 |
msg = "Neutron credentials are incomplete in %s" % L3_INI |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
992 |
log_msg(LOG_WARN, msg) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
993 |
|
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
994 |
def _backup_file(self, orig_file): |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
995 |
today = datetime.now().strftime("%Y%m%d%H%M%S") |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
996 |
new_file = orig_file + '.' + today |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
997 |
try: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
998 |
self._copy_file(orig_file, new_file) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
999 |
msg = "Backed up current %s in %s" % (orig_file, new_file) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1000 |
log_msg(LOG_DEBUG, msg) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1001 |
except (IOError, OSError): |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1002 |
msg = "Unable to create a backup of %s" % orig_file |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1003 |
log_msg(LOG_WARN, msg) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1004 |
|
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1005 |
def _copy_file(self, orig_file, new_file): |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1006 |
copy2(orig_file, new_file) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1007 |
uid = file_owner[orig_file] |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1008 |
os.chown(new_file, uid, uid) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1009 |
|
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1010 |
def update_neutron_conf(self): |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1011 |
self._backup_file(NEUTRON_CONF) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1012 |
msg = "Updating %s" % NEUTRON_CONF |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1013 |
log_msg(LOG_DEBUG, msg) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1014 |
self._copy_file(NEUTRON_CONF, NEUTRON_CONF + '.migr') |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1015 |
conf_file = NEUTRON_CONF + '.migr' |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1016 |
config = self._read_config(conf_file) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1017 |
self._do_fixed(conf_file, config) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1018 |
service_plugins = 'router' |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1019 |
if config.has_option('DEFAULT', 'service_plugins'): |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1020 |
service_plugins = config.get('DEFAULT', 'service_plugins') |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1021 |
if service_plugins: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1022 |
service_plugins = 'router,' + service_plugins |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1023 |
else: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1024 |
service_plugins = 'router' |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1025 |
config.set('DEFAULT', 'service_plugins', service_plugins) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1026 |
self._write_config(conf_file, config) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1027 |
move(conf_file, NEUTRON_CONF) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1028 |
|
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1029 |
def update_ml2_conf_ini(self): |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1030 |
""" |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1031 |
Reference target configuration state: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1032 |
[ml2] |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1033 |
type_drivers = flat,vlan,vxlan |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1034 |
tenant_network_types = vlan |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1035 |
mechanism_drivers = openvswitch |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1036 |
[ml2_type_flat] |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1037 |
flat_networks = external |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1038 |
[ml2_type_vlan] |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1039 |
network_vlan_ranges = physnet1:300:400,extnet:240:240 |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1040 |
[ml2_type_gre] |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1041 |
[ml2_type_vxlan] |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1042 |
[securitygroup] |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1043 |
enable_security_group = False |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1044 |
enable_ipset = False |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1045 |
""" |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1046 |
self._backup_file(ML2_INI) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1047 |
msg = "Updating %s" % ML2_INI |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1048 |
log_msg(LOG_DEBUG, msg) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1049 |
self._copy_file(ML2_INI, ML2_INI + '.migr') |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1050 |
conf_file = ML2_INI + '.migr' |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1051 |
config = self._read_config(conf_file) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1052 |
self._do_fixed(conf_file, config) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1053 |
if l2type == L2_TYPE_VXLAN: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1054 |
self._do_ml2_vni_range(config) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1055 |
elif l2type == L2_TYPE_VLAN: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1056 |
self._do_ml2_vlan_range(config) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1057 |
self._write_config(conf_file, config) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1058 |
move(conf_file, ML2_INI) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1059 |
|
6680
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1060 |
def update_ovs_neutron_plugin_ini(self, bmap_str): |
6381
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1061 |
""" |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1062 |
Reference target configuration state: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1063 |
[ovs] |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1064 |
integration_bridge = br_int0 |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1065 |
bridge_mappings = physnet1:l3stub0 (for VLAN) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1066 |
local_ip = A.B.C.D (for VXLAN) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1067 |
enable_tunneling = True (for VXLAN) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1068 |
[agent] |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1069 |
root_helper = |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1070 |
tunnel_types = vxlan (for VXLAN) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1071 |
[securitygroup] |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1072 |
enable_security_group = False |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1073 |
""" |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1074 |
self._backup_file(OVS_INI) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1075 |
msg = "Updating %s" % OVS_INI |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1076 |
log_msg(LOG_DEBUG, msg) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1077 |
self._copy_file(OVS_INI, OVS_INI + '.migr') |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1078 |
conf_file = OVS_INI + '.migr' |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1079 |
config = self._read_config(conf_file) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1080 |
self._do_fixed(conf_file, config) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1081 |
if l2type == L2_TYPE_VXLAN: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1082 |
local_ip = self._get_vxlan_local_ip() |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1083 |
if local_ip: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1084 |
config.set('ovs', 'local_ip', local_ip) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1085 |
else: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1086 |
msg = """Could not determine IP address for VXLAN endpoint. |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1087 |
Manually set the local_ip option in ovs_neutron_plugin.ini""" |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1088 |
log_msg(LOG_WARN, msg) |
6680
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1089 |
if bmap_str: |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1090 |
config.set('ovs', 'bridge_mappings', bmap_str) |
6381
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1091 |
self._do_rabbit_host(config) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1092 |
self._write_config(conf_file, config) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1093 |
move(conf_file, OVS_INI) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1094 |
|
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1095 |
def update_dhcp_agent_ini(self): |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1096 |
self._backup_file(DHCP_INI) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1097 |
msg = "Updating %s" % DHCP_INI |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1098 |
log_msg(LOG_DEBUG, msg) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1099 |
self._copy_file(DHCP_INI, DHCP_INI + '.migr') |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1100 |
conf_file = DHCP_INI + '.migr' |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1101 |
config = self._read_config(conf_file) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1102 |
self._do_fixed(conf_file, config) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1103 |
self._write_config(conf_file, config) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1104 |
move(conf_file, DHCP_INI) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1105 |
|
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1106 |
def update_l3_agent_ini(self): |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1107 |
self._backup_file(L3_INI) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1108 |
msg = "Updating %s" % L3_INI |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1109 |
log_msg(LOG_DEBUG, msg) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1110 |
self._copy_file(L3_INI, L3_INI + '.migr') |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1111 |
conf_file = L3_INI + '.migr' |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1112 |
config = self._read_config(conf_file) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1113 |
if l2type == L2_TYPE_VLAN: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1114 |
global external_network_datalink |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1115 |
if config.has_option('DEFAULT', 'external_network_datalink'): |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1116 |
external_network_datalink = \ |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1117 |
config.get('DEFAULT', 'external_network_datalink') |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1118 |
if not external_network_datalink: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1119 |
external_network_datalink = None |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1120 |
else: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1121 |
external_network_datalink = 'net0' |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1122 |
self._do_fixed(conf_file, config) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1123 |
if is_svc_online(SVC_METADATA_AGENT): |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1124 |
self._do_neutron_credentials(config, METADATA_INI, "DEFAULT") |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1125 |
else: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1126 |
self._do_neutron_credentials(config, NEUTRON_CONF, |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1127 |
"keystone_authtoken") |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1128 |
self._write_config(conf_file, config) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1129 |
move(conf_file, L3_INI) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1130 |
|
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1131 |
def update_nova_conf(self): |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1132 |
self._backup_file(NOVA_CONF) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1133 |
msg = "Updating %s" % NOVA_CONF |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1134 |
log_msg(LOG_DEBUG, msg) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1135 |
self._copy_file(NOVA_CONF, NOVA_CONF + '.migr') |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1136 |
conf_file = NOVA_CONF + '.migr' |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1137 |
config = self._read_config(conf_file) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1138 |
self._do_fixed(conf_file, config) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1139 |
self._write_config(conf_file, config) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1140 |
move(conf_file, NOVA_CONF) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1141 |
|
6680
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1142 |
def update_Open_vSwitch_other_config(self, bmap_str): |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1143 |
bm_str = "other_config:bridge_mappings=" + bmap_str |
6381
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1144 |
try: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1145 |
check_call(['/usr/bin/pfexec', '/usr/sbin/ovs-vsctl', 'set', |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1146 |
'Open_vSwitch', '.', bm_str]) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1147 |
msg = """Successfully set other_config column in Open_vSwitch table |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1148 |
with value %s.""" % bm_str |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1149 |
log_msg(LOG_DEBUG, msg) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1150 |
except: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1151 |
msg = """Failed to set other_config column in Open_vSwitch table |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1152 |
with value %s.""" % bm_str |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1153 |
log_msg(LOG_WARN, msg) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1154 |
|
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1155 |
|
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1156 |
def enable_svc(svcname, exit_on_fail=False): |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1157 |
msg = "Enabling service: %s" % svcname |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1158 |
log_msg(LOG_INFO, msg) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1159 |
cmd = ['/usr/bin/pfexec', '/usr/sbin/svcadm', 'enable', '-s'] |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1160 |
cmd.append(svcname) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1161 |
try: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1162 |
check_call(cmd, stdout=PIPE, stderr=PIPE) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1163 |
except CalledProcessError as err: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1164 |
msg = """Failed to enable %s: %s. |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1165 |
Please verify "and manually enable the service""" % (svcname, err) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1166 |
log_msg(LOG_ERROR, msg) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1167 |
if exit_on_fail: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1168 |
msg = "Exiting..." |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1169 |
log_msg(LOG_INFO, msg) |
6680
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1170 |
sys.exit(1) |
6381
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1171 |
|
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1172 |
|
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1173 |
def disable_svc(svcname): |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1174 |
msg = "Disabling service: %s" % svcname |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1175 |
log_msg(LOG_INFO, msg) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1176 |
try: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1177 |
check_call(['/usr/bin/pfexec', '/usr/sbin/svcadm', 'disable', '-s', |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1178 |
svcname], stdout=PIPE, stderr=PIPE) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1179 |
except CalledProcessError as err: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1180 |
msg = "Failed to disable %s: %s." % (svcname, err) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1181 |
log_msg(LOG_ERROR, msg) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1182 |
|
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1183 |
|
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1184 |
def nova_evs_to_ovs(migr_conf_obj): |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1185 |
# step-1: disable nova-compute |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1186 |
disable_svc(SVC_NOVA_COMPUTE) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1187 |
|
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1188 |
# step-2: update zones' config |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1189 |
migr_vm = NovaVmEVSToOVS() |
6680
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1190 |
determine_neutron_conn_params() |
6381
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1191 |
zoneutil = ZoneUtil() |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1192 |
for name in zoneutil.get_zone_names(): |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1193 |
zone = zoneutil.get_zone_by_name(name) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1194 |
if not zone: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1195 |
msg = "skipping EVS-OVS migration of VM %s; not found" % name |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1196 |
log_msg(LOG_DEBUG, msg) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1197 |
continue |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1198 |
if zone.state == 'incomplete': |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1199 |
msg = """skipping EVS-OVS migration of VM %s; It is in 'incomplete' |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1200 |
state""" % name |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1201 |
log_msg(LOG_DEBUG, msg) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1202 |
continue |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1203 |
with ZoneConfig(zone) as zc: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1204 |
tenant_name = zc.lookup_resource_property('global', 'tenant') |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1205 |
if not tenant_name: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1206 |
msg = """skipping EVS-OVS migration of non-openstack |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1207 |
managed VM %s""" % name |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1208 |
log_msg(LOG_DEBUG, msg) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1209 |
continue |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1210 |
try: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1211 |
uuid.UUID(tenant_name) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1212 |
except: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1213 |
msg = """skipping EVS-OVS migration of non-openstack |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1214 |
managed VM %s""" % name |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1215 |
log_msg(LOG_DEBUG, msg) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1216 |
continue |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1217 |
msg = "Performing EVS-OVS migration of VM: %s" % name |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1218 |
log_msg(LOG_INFO, msg) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1219 |
|
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1220 |
# step 2.1: migrate zone config |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1221 |
installed_port_uuids = migr_vm.migrate(zone) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1222 |
# step 2.2: shutdown |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1223 |
if zone.state == 'running': |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1224 |
try: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1225 |
msg = "Shutting down VM: %s, after modifying zone's config" % \ |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1226 |
name |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1227 |
log_msg(LOG_DEBUG, msg) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1228 |
zone.shutdown() |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1229 |
except Exception as ex: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1230 |
msg = """ Failed to shutdown instance %s. The zone's config |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1231 |
has been modified to OVS. Manually start the VM""" % name |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1232 |
log_msg(LOG_WARN, msg) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1233 |
if installed_port_uuids: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1234 |
nc = neutron_client.Client( |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1235 |
username=neutron_conn['username'], |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1236 |
password=neutron_conn['password'], |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1237 |
tenant_name=neutron_conn['tenant'], |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1238 |
auth_url=neutron_conn['auth_url']) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1239 |
for vport_uuid in installed_port_uuids: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1240 |
port_req_body = {'port': {'binding:host_id': HOSTNAME}} |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1241 |
nc.update_port(vport_uuid, port_req_body) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1242 |
|
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1243 |
# step-3: change nova.conf |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1244 |
migr_conf_obj.update_nova_conf() |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1245 |
|
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1246 |
# we will enable the service later |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1247 |
|
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1248 |
|
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1249 |
def dhcp_evs_to_ovs(migr_conf_obj): |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1250 |
# step-1: disable neutron-dhcp-agent |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1251 |
disable_svc(SVC_DHCP_AGENT) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1252 |
|
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1253 |
# step-2: change dhcp_agent.ini |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1254 |
migr_conf_obj.update_dhcp_agent_ini() |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1255 |
|
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1256 |
# we will enable the service later |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1257 |
|
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1258 |
|
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1259 |
def add_ovs_bridge(bridge_name): |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1260 |
try: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1261 |
check_call(['/usr/bin/pfexec', '/usr/sbin/ovs-vsctl', '--', |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1262 |
'--may-exist', 'add-br', bridge_name], stdout=PIPE, |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1263 |
stderr=PIPE) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1264 |
msg = "Created %s ovs bridge" % bridge_name |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1265 |
log_msg(LOG_DEBUG, msg) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1266 |
if bridge_name == OVS_EXT_BRIDGE: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1267 |
check_call(['/usr/bin/pfexec', '/usr/sbin/ovs-vsctl', |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1268 |
'br-set-external-id', OVS_EXT_BRIDGE, 'bridge-id', |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1269 |
OVS_EXT_BRIDGE]) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1270 |
except CalledProcessError as err: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1271 |
msg = "Failed to create %s ovs bridge: %s" % (bridge_name, err) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1272 |
log_msg(LOG_ERROR, msg) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1273 |
|
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1274 |
|
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1275 |
def l3_evs_to_ovs(migr_conf_obj): |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1276 |
# step-1: disable neutron-l3-agent |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1277 |
disable_svc(SVC_L3_AGENT) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1278 |
|
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1279 |
# step-2: change l3_agent.ini and ovs_neutron_plugin.ini |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1280 |
migr_conf_obj.update_l3_agent_ini() |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1281 |
|
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1282 |
# step-3: create external network bridge |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1283 |
add_ovs_bridge(OVS_EXT_BRIDGE) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1284 |
|
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1285 |
# we will enable the service later |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1286 |
|
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1287 |
|
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1288 |
def neutron_evs_to_ovs(migr_conf_obj): |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1289 |
# step-1: disable neutron-server |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1290 |
disable_svc(SVC_NEUTRON_SERVER) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1291 |
|
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1292 |
# step-2: migrate DB to ml2 |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1293 |
migr_ml2 = DBEVSToMl2() |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1294 |
migr_ml2() |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1295 |
|
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1296 |
# step-3: change ml2_conf.ini and neutron.conf |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1297 |
migr_conf_obj.update_ml2_conf_ini() |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1298 |
migr_conf_obj.update_neutron_conf() |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1299 |
|
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1300 |
# step-4: enable neutron-server |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1301 |
enable_svc(SVC_NEUTRON_SERVER) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1302 |
|
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1303 |
|
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1304 |
def is_svc_online(svc, exit_on_maintenance=False): |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1305 |
try: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1306 |
state = check_output(['/usr/bin/svcs', '-H', '-o', 'state', svc], |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1307 |
stderr=PIPE) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1308 |
except: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1309 |
return False |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1310 |
if exit_on_maintenance and state.strip() == 'maintenance': |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1311 |
msg = """Unable to perform EVS to OVS migration as %s is in maintenance |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1312 |
state. Please fix the errors and clear the svc before running |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1313 |
migration""" % svc |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1314 |
log_msg(LOG_ERROR, msg) |
6680
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1315 |
sys.exit(1) |
6381
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1316 |
return state.strip() == 'online' |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1317 |
|
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1318 |
|
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1319 |
def create_backup_be(): |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1320 |
msg = "Creating backup BE" |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1321 |
log_msg(LOG_INFO, msg) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1322 |
boot_envs = check_output(['/usr/sbin/beadm', 'list', '-H'], |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1323 |
stderr=PIPE) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1324 |
for be in boot_envs.splitlines(): |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1325 |
be_fields = be.split(';') |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1326 |
if 'N' in be_fields[2]: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1327 |
curr_be = be_fields[0] |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1328 |
backup_be = curr_be + '-backup-ovs-upgrade' |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1329 |
break |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1330 |
msg = "Active BE is: %s" % curr_be |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1331 |
log_msg(LOG_DEBUG, msg) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1332 |
try: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1333 |
check_call(['/usr/sbin/beadm', 'create', backup_be], stdout=PIPE, |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1334 |
stderr=PIPE) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1335 |
msg = "Created backup BE: " + backup_be |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1336 |
log_msg(LOG_DEBUG, msg) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1337 |
except: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1338 |
msg = "Backup BE already exists: " + backup_be |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1339 |
log_msg(LOG_DEBUG, msg) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1340 |
|
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1341 |
|
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1342 |
def get_node_svcs(): |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1343 |
global curnode_svcs |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1344 |
for svc in ALL_SVCS: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1345 |
if is_svc_online(svc): |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1346 |
curnode_svcs.append(svc) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1347 |
|
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1348 |
|
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1349 |
def get_default_gateways(): |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1350 |
def_gws = set() |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1351 |
routes = check_output(['/usr/bin/pfexec', '/usr/bin/netstat', |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1352 |
'-arn']).splitlines() |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1353 |
for route in routes: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1354 |
route = route.strip() |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1355 |
elems = route.split() |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1356 |
if elems and elems[0] == 'default': |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1357 |
def_gws.add(elems[1]) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1358 |
return def_gws |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1359 |
|
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1360 |
|
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1361 |
def add_uplink_to_br(uplink, bridge): |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1362 |
def add_ips_and_gws_to_port(port): |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1363 |
if ips: |
6680
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1364 |
try: |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1365 |
check_call(['/usr/bin/pfexec', '/usr/sbin/ipadm', 'show-if', |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1366 |
port], stdout=PIPE, stderr=PIPE) |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1367 |
except CalledProcessError: |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1368 |
check_call(['/usr/bin/pfexec', '/usr/sbin/ipadm', 'create-ip', |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1369 |
port], stdout=PIPE) |
6381
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1370 |
aconf_configured = False |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1371 |
for ip in ips: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1372 |
msg = "Adding IP %s to %s" % (ip, port) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1373 |
log_msg(LOG_DEBUG, msg) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1374 |
addrtype_addr = ip.split(':') |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1375 |
addrtype, addr = addrtype_addr[0], addrtype_addr[1] |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1376 |
if addrtype == 'static': |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1377 |
check_call(['/usr/bin/pfexec', '/usr/sbin/ipadm', |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1378 |
'create-addr', '-T', addrtype, '-a', addr, port], |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1379 |
stdout=PIPE) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1380 |
elif addrtype == 'addrconf': |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1381 |
if not aconf_configured: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1382 |
check_call(['/usr/bin/pfexec', '/usr/sbin/ipadm', |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1383 |
'create-addr', '-T', addrtype, port], |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1384 |
stdout=PIPE) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1385 |
aconf_configured = True |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1386 |
else: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1387 |
check_call(['/usr/bin/pfexec', '/usr/sbin/ipadm', |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1388 |
'create-addr', '-T', addrtype, port], stdout=PIPE) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1389 |
new_gateways = get_default_gateways() |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1390 |
removed_gateways = old_gateways - new_gateways |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1391 |
for gw in removed_gateways: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1392 |
# simple check for IPv6 address |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1393 |
if ':' in gw: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1394 |
continue |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1395 |
msg = "Adding default gateway %s" % gw |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1396 |
log_msg(LOG_DEBUG, msg) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1397 |
check_call(['/usr/bin/pfexec', '/usr/sbin/route', 'add', 'default', |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1398 |
gw], stdout=PIPE) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1399 |
|
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1400 |
msg = "Migrating %s link to OVS bridge: %s" % (uplink, bridge) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1401 |
log_msg(LOG_DEBUG, msg) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1402 |
# Store IP and gateway info |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1403 |
ips = [] |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1404 |
old_gateways = get_default_gateways() |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1405 |
try: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1406 |
ips = check_output(['/usr/bin/pfexec', '/usr/sbin/ipadm', 'show-addr', |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1407 |
'-po', 'type,addr', |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1408 |
uplink], stderr=PIPE).splitlines() |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1409 |
check_call(['/usr/bin/pfexec', '/usr/sbin/ipadm', 'delete-ip', |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1410 |
uplink], stdout=PIPE, stderr=PIPE) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1411 |
except CalledProcessError as err: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1412 |
pass |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1413 |
|
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1414 |
try: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1415 |
check_call(['/usr/bin/pfexec', '/usr/sbin/dladm', 'set-linkprop', '-p', |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1416 |
'openvswitch=on', uplink], stdout=PIPE, stderr=PIPE) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1417 |
except CalledProcessError as err: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1418 |
msg = """Failed to set openvswitch property=on for %s - link is busy. |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1419 |
Follow the below steps to migrate link to OVS bridge manually. |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1420 |
1. Remove any flows, IP etc. so that link is unused. |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1421 |
2. dladm set-linkprop -p openvswitch=on %s |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1422 |
3. ovs-vsctl -- --may-exist add-port %s %s |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1423 |
4. Replumb IPs, if existed before on %s, on %s.""" % \ |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1424 |
(uplink, uplink, bridge, uplink, uplink, bridge) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1425 |
log_msg(LOG_ERROR, msg, oneliner=False) |
6680
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1426 |
return |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1427 |
|
6381
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1428 |
# add uplink to bridge |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1429 |
check_call(['/usr/bin/pfexec', '/usr/sbin/ovs-vsctl', '--', '--may-exist', |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1430 |
'add-port', bridge, uplink]) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1431 |
try: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1432 |
add_ips_and_gws_to_port(bridge) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1433 |
except CalledProcessError as err: |
6680
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1434 |
msg = """Failed to configure the IPs(%s) on %s VNIC. Manually |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1435 |
configure the IPs and set default gateway""" % (ips, bridge) |
6381
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1436 |
log_msg(LOG_ERROR, msg) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1437 |
|
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1438 |
|
6680
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1439 |
def get_uplink_ports_for_int_bridge(): |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1440 |
int_uplinks = set(bridge_mappings.values()) |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1441 |
int_uplinks.discard(external_network_datalink) |
6381
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1442 |
return int_uplinks |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1443 |
|
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1444 |
|
6680
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1445 |
def get_uplink_port_for_ext_bridge(): |
6381
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1446 |
if l2type == L2_TYPE_VLAN and external_network_datalink is not None: |
6680
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1447 |
return external_network_datalink |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1448 |
return bridge_mappings.get(external_network_name) |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1449 |
|
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1450 |
|
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1451 |
def determine_neutron_conn_params(): |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1452 |
global neutron_conn |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1453 |
if neutron_conn: |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1454 |
return |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1455 |
config = iniparse.ConfigParser() |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1456 |
if SVC_NOVA_COMPUTE in curnode_svcs: |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1457 |
config.readfp(open(NOVA_CONF)) |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1458 |
neutron_conn['username'] = config.get('neutron', 'admin_username') |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1459 |
neutron_conn['password'] = config.get('neutron', 'admin_password') |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1460 |
neutron_conn['tenant'] = config.get('neutron', 'admin_tenant_name') |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1461 |
neutron_conn['auth_url'] = \ |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1462 |
config.get('keystone_authtoken', 'auth_uri') |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1463 |
else: |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1464 |
config.readfp(open(NEUTRON_CONF)) |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1465 |
neutron_conn['username'] = \ |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1466 |
config.get('keystone_authtoken', 'admin_user') |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1467 |
neutron_conn['password'] = \ |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1468 |
config.get('keystone_authtoken', 'admin_password') |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1469 |
neutron_conn['tenant'] = \ |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1470 |
config.get('keystone_authtoken', 'admin_tenant_name') |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1471 |
neutron_conn['auth_url'] = \ |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1472 |
config.get('keystone_authtoken', 'auth_uri') |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1473 |
|
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1474 |
|
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1475 |
def determine_external_network_name(): |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1476 |
global external_network_name, external_network_vid |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1477 |
determine_neutron_conn_params() |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1478 |
nc = neutron_client.Client(username=neutron_conn['username'], |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1479 |
password=neutron_conn['password'], |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1480 |
tenant_name=neutron_conn['tenant'], |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1481 |
auth_url=neutron_conn['auth_url']) |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1482 |
search_opts = {'router:external': True} |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1483 |
try: |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1484 |
external_network = nc.list_networks(**search_opts)['networks'] |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1485 |
except: |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1486 |
msg = """Could not get external network information from |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1487 |
neutron-server. Make sure it is online.""" |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1488 |
log_msg(LOG_ERROR, msg) |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1489 |
sys.exit(1) |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1490 |
|
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1491 |
if not external_network: |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1492 |
return |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1493 |
external_network = external_network[0] |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1494 |
nw_type = external_network['provider:network_type'] |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1495 |
if nw_type == L2_TYPE_FLAT: |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1496 |
external_network_name = FLAT_PHYS_NET |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1497 |
else: |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1498 |
assert nw_type == L2_TYPE_VLAN |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1499 |
external_network_name = EXT_VLAN_PHYS_NET |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1500 |
external_network_vid = external_network['provider:segmentation_id'] |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1501 |
msg = "External Network name is " + external_network_name |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1502 |
log_msg(LOG_DEBUG, msg) |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1503 |
|
6381
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1504 |
|
6680
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1505 |
def determine_bridge_mappings(): |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1506 |
global bridge_mappings, external_network_datalink |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1507 |
global_nw_uplink_map = evsutil.get_global_vlanrange_nw_uplink_map() |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1508 |
local_uplink_map = evsutil.get_local_vlanrange_uplink_map() |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1509 |
# Any local uplink ports should have the same vlan-range boundaries |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1510 |
# as the global ones. This is expected in an openstack deployment but |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1511 |
# is not enforced by evs itself. So we raise a warning if we encounter |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1512 |
# a local uplink-port for a vlan-range whose boundaries are different |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1513 |
# from any that are defined globally. |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1514 |
errs = set(local_uplink_map.keys()) - set(global_nw_uplink_map.keys()) |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1515 |
if errs: |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1516 |
errs = ','.join(errs) |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1517 |
msg = """Found the following incorrect vlan_ranges that were not |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1518 |
added to bridge_mappings in ovs_neutron_plugin.ini. Please update |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1519 |
manually if necessary - %s""" % errs |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1520 |
log_msg(LOG_WARN, msg) |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1521 |
for vlanranges_str, (nw, uplink) in global_nw_uplink_map.iteritems(): |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1522 |
uplink = local_uplink_map.get(vlanranges_str, uplink) |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1523 |
bridge_mappings[nw] = uplink |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1524 |
if evsutil.local_flat_nw_uplink: |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1525 |
bridge_mappings[FLAT_PHYS_NET] = evsutil.local_flat_nw_uplink |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1526 |
elif evsutil.global_flat_nw_uplink: |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1527 |
bridge_mappings[FLAT_PHYS_NET] = evsutil.global_flat_nw_uplink |
6381
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1528 |
|
6680
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1529 |
external_network_datalink = bridge_mappings.get(external_network_name) |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1530 |
if external_network_datalink: |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1531 |
msg = "External Network datalink is " + external_network_datalink |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1532 |
log_msg(LOG_DEBUG, msg) |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1533 |
if bridge_mappings.values().count(external_network_datalink) > 1: |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1534 |
msg = """The external network datalink '%s' cannot be the uplink-port |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1535 |
of any physical network other than external network. Please satisfy |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1536 |
this condition before running migration.""" % external_network_datalink |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1537 |
log_msg(LOG_ERROR, msg) |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1538 |
sys.exit(1) |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1539 |
|
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1540 |
# Depending on l2type and whether l3-agent is running on this node, |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1541 |
# bridge_mappings should have the following: |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1542 |
# 1. l3-agent not in node and l2type = vxlan => no bridge mappings. This is |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1543 |
# already handled since determine_bridge_mappings() won't be called for |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1544 |
# this condition. |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1545 |
# 2. l3-agent not in node and l2type = vlan/flat => bridge mappings should |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1546 |
# not have mapping for external network. |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1547 |
# 3. l3-agent in node and l2type = vxlan => bridge mappings should have |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1548 |
# only the mapping for external network. |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1549 |
# 4. l3-agent in node and l2type = vlan/flat => bridge mappings should have |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1550 |
# all the orignial mappings. |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1551 |
if SVC_L3_AGENT not in curnode_svcs: |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1552 |
bridge_mappings.pop(external_network_name, None) |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1553 |
elif l2type == L2_TYPE_VXLAN: |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1554 |
bridge_mappings.clear() |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1555 |
if external_network_datalink: |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1556 |
bridge_mappings[external_network_name] = \ |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1557 |
external_network_datalink |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1558 |
|
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1559 |
|
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1560 |
def finish(): |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1561 |
msg = "Migration Successful" |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1562 |
log_msg(LOG_INFO, msg) |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1563 |
check_call(['/usr/bin/pfexec', '/usr/sbin/svccfg', '-s', |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1564 |
SVC_NEUTRON_UPGRADE, 'setprop', 'config/evs2ovs', '=', |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1565 |
'astring:', 'done'], stdout=PIPE, stderr=PIPE) |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1566 |
check_call(['/usr/bin/pfexec', '/usr/sbin/svccfg', '-s', |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1567 |
SVC_NEUTRON_UPGRADE, 'refresh'], stdout=PIPE, stderr=PIPE) |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1568 |
msg = "Exiting..." |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1569 |
log_msg(LOG_INFO, msg) |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1570 |
sys.exit() |
6381
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1571 |
|
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1572 |
|
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1573 |
def main(): |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1574 |
# help text |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1575 |
parser = argparse.ArgumentParser( |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1576 |
formatter_class=argparse.RawDescriptionHelpFormatter, description=''' |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1577 |
Migration script to migrate OpenStack Cloud based on EVS to an |
6680
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1578 |
OpenStack cloud based on OVS. |
6381
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1579 |
|
6680
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1580 |
There are four steps to migration: |
6381
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1581 |
-- Populate Neutron ML2 tables |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1582 |
-- Replace EVS information in existing configuration files with OVS |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1583 |
(neutron.conf, dhcp_agent.ini, l3_agent.ini, and nova.conf) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1584 |
-- Add OVS information to new configuration files |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1585 |
(ml2_conf.ini and ovs_neutron_agent.ini) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1586 |
-- Clear EVS information in Zones and populate the anets for OVS |
6680
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1587 |
|
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1588 |
The nodes must be migrated in the following order: |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1589 |
-- controller node running neutron-server |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1590 |
-- all of the nodes running neutron-dhcp-agent or neutron-l3-agent |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1591 |
-- all of the compute nodes |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1592 |
|
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1593 |
It is advisable to run migration with nohup if using ssh over a link that |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1594 |
is also used by OpenStack. |
6381
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1595 |
''') |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1596 |
parser.parse_args() |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1597 |
|
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1598 |
signal.signal(signal.SIGHUP, signal.SIG_IGN) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1599 |
try: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1600 |
out = check_output(['/usr/bin/pfexec', '/usr/bin/svcprop', '-p', |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1601 |
'config/evs2ovs', SVC_NEUTRON_UPGRADE], |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1602 |
stderr=PIPE) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1603 |
if out.strip() == 'done': |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1604 |
msg = "Migration has already run on this node." |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1605 |
log_msg(LOG_INFO, msg) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1606 |
return |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1607 |
except: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1608 |
pass |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1609 |
|
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1610 |
# get the current node services |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1611 |
get_node_svcs() |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1612 |
if not curnode_svcs: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1613 |
msg = "Nothing to migrate on this node. Quitting." |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1614 |
log_msg(LOG_INFO, msg) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1615 |
return |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1616 |
|
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1617 |
msg = """The script has determined that following services - %s - are |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1618 |
online and the system will be migrated based on these services.""" % \ |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1619 |
', '.join(curnode_svcs) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1620 |
log_msg(LOG_INFO, msg) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1621 |
|
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1622 |
# Create backup BE |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1623 |
create_backup_be() |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1624 |
|
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1625 |
# Even if nova-compute is the only svc on this node, make sure neutron |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1626 |
# is also installed. |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1627 |
if not set(curnode_svcs) - set([SVC_NOVA_COMPUTE]): |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1628 |
try: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1629 |
check_call(['pkg', 'info', 'neutron'], stdout=PIPE, stderr=PIPE) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1630 |
except: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1631 |
msg = "cloud/openstack/neutron pkg not found." |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1632 |
log_msg(LOG_ERROR, msg) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1633 |
msg = """cloud/openstack/neutron pkg needs to be installed on this |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1634 |
node before migration.""" |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1635 |
log_msg(LOG_INFO, msg) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1636 |
return |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1637 |
|
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1638 |
# If nova-compute is running on this node, we can execute everything as |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1639 |
# root. Else, this is a network node and we can execute everything as |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1640 |
# neutron user. |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1641 |
if SVC_NOVA_COMPUTE not in curnode_svcs: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1642 |
msg = "Changing user to neutron" |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1643 |
log_msg(LOG_DEBUG, msg) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1644 |
os.setgid(UID_NEUTRON) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1645 |
os.setuid(UID_NEUTRON) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1646 |
|
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1647 |
global evsutil |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1648 |
evsutil = EVSUtil() |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1649 |
global l2type |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1650 |
l2type = evsutil.l2type |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1651 |
msg = "l2type = %s" % l2type |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1652 |
log_msg(LOG_DEBUG, msg) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1653 |
migr_conf_obj = ConfigEVSToOVS() |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1654 |
|
6680
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1655 |
# step-0: Determine bridge_mappings and ensure external network datalink |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1656 |
# is not serving as uplink port for other physical networks. This is only |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1657 |
# required if l2-type is VLAN or FLAT or if neutron-l3-agent is running on |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1658 |
# this node. |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1659 |
if l2type != L2_TYPE_VXLAN or SVC_L3_AGENT in curnode_svcs: |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1660 |
determine_external_network_name() |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1661 |
determine_bridge_mappings() |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1662 |
|
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1663 |
# step-1: Populate ML2 tables and update Neutron and ML2 config files. |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1664 |
if SVC_NEUTRON_SERVER in curnode_svcs: |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1665 |
msg = "Current migration based on svc: %s" % SVC_NEUTRON_SERVER |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1666 |
log_msg(LOG_INFO, msg) |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1667 |
neutron_evs_to_ovs(migr_conf_obj) |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1668 |
# We have already enabled neutron-server. There is nothing else to do |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1669 |
# wrt the service. |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1670 |
curnode_svcs.remove(SVC_NEUTRON_SERVER) |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1671 |
|
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1672 |
# We don't need to do anything else if neutron-server is the only service |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1673 |
# we are migrating on this node. |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1674 |
if not curnode_svcs: |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1675 |
finish() |
6381
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1676 |
|
6680
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1677 |
# step-2: add ovs integration bridge and update conf for |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1678 |
# neutron-openvswitch-agent. |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1679 |
if not is_svc_online(SVC_OVSDB_SERVER, exit_on_maintenance=True): |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1680 |
enable_svc(SVC_OVSDB_SERVER, exit_on_fail=True) |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1681 |
if not is_svc_online(SVC_VSWITCH_SERVER, exit_on_maintenance=True): |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1682 |
enable_svc(SVC_VSWITCH_SERVER, exit_on_fail=True) |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1683 |
add_ovs_bridge(OVS_INT_BRIDGE) |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1684 |
bmap_str = '' |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1685 |
if bridge_mappings: |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1686 |
for nw, uplink in bridge_mappings.iteritems(): |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1687 |
bmap_str += nw + ':' + uplink + ',' |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1688 |
bmap_str = bmap_str.strip(',') |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1689 |
if bmap_str: |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1690 |
msg = "bridge_mappings = " + bmap_str |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1691 |
log_msg(LOG_DEBUG, msg) |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1692 |
migr_conf_obj.update_Open_vSwitch_other_config(bmap_str) |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1693 |
migr_conf_obj.update_ovs_neutron_plugin_ini(bmap_str) |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1694 |
# we will enable the OVS agent later |
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1695 |
|
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1696 |
# step-3: migrate the other services. |
6381
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1697 |
svc_func_map = { |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1698 |
SVC_DHCP_AGENT: dhcp_evs_to_ovs, |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1699 |
SVC_L3_AGENT: l3_evs_to_ovs, |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1700 |
SVC_NOVA_COMPUTE: nova_evs_to_ovs |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1701 |
} |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1702 |
|
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1703 |
for svc in curnode_svcs: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1704 |
msg = "Current migration based on svc: %s" % svc |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1705 |
log_msg(LOG_INFO, msg) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1706 |
svc_func_map[svc](migr_conf_obj) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1707 |
|
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1708 |
# At this point we have disabled all the services that we are interested |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1709 |
# in. Now we need to add the right uplink-port to the OVS bridges. |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1710 |
if l2type == L2_TYPE_VXLAN: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1711 |
# check if there are any left over evs-vxlan datalinks |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1712 |
output = check_output(['/usr/sbin/dladm', 'show-vxlan', '-po', 'link'], |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1713 |
stderr=PIPE) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1714 |
if len(output.strip().splitlines()) != 0: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1715 |
msg = """There are other VXLAN datalinks present and as a result |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1716 |
OVS agent will go into maintenance. Please remove these datalinks |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1717 |
and clear the OVS agent service.""" |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1718 |
log_msg(LOG_WARN, msg) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1719 |
else: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1720 |
assert l2type == L2_TYPE_VLAN or l2type == L2_TYPE_FLAT |
6680
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1721 |
int_uplinks = get_uplink_ports_for_int_bridge() |
6381
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1722 |
# add the uplink-ports to integration bridge |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1723 |
for uplink in int_uplinks: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1724 |
add_uplink_to_br(uplink, OVS_INT_BRIDGE) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1725 |
|
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1726 |
# enable all services |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1727 |
enable_svc(SVC_OVS_AGENT) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1728 |
for svc in curnode_svcs: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1729 |
if svc == SVC_L3_AGENT: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1730 |
# add the port to br_ex0 |
6680
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1731 |
ext_uplink = get_uplink_port_for_ext_bridge() |
6381
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1732 |
if ext_uplink: |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1733 |
add_uplink_to_br(ext_uplink, OVS_EXT_BRIDGE) |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1734 |
enable_svc(svc) |
6680
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1735 |
|
79105e720bec
24509268 evs-to-ovs migration script does not consider all cases for bridge_mappings
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
6473
diff
changeset
|
1736 |
finish() |
6381
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1737 |
|
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1738 |
|
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1739 |
if __name__ == "__main__": |
02b02527288b
23757468 script to migrate cloud from using EVS monolithic plugin to ML2 + OVS
chaithan.prakash@oracle.com <chaithan.prakash@oracle.com>
parents:
diff
changeset
|
1740 |
main() |