Merge "Move network objects to extension"
This commit is contained in:
commit
05be83199a
|
@ -21,10 +21,10 @@ Handlers dealing with network configurations
|
||||||
from nailgun.api.v1.handlers.base import BaseHandler
|
from nailgun.api.v1.handlers.base import BaseHandler
|
||||||
from nailgun.api.v1.handlers.base import content
|
from nailgun.api.v1.handlers.base import content
|
||||||
|
|
||||||
from nailgun.objects.serializers.network_configuration \
|
from nailgun.extensions.network_manager.objects.serializers.\
|
||||||
import NeutronNetworkConfigurationSerializer
|
network_configuration import NeutronNetworkConfigurationSerializer
|
||||||
from nailgun.objects.serializers.network_configuration \
|
from nailgun.extensions.network_manager.objects.serializers.\
|
||||||
import NovaNetworkConfigurationSerializer
|
network_configuration import NovaNetworkConfigurationSerializer
|
||||||
|
|
||||||
from nailgun.api.v1.validators.network import NetworkConfigurationValidator
|
from nailgun.api.v1.validators.network import NetworkConfigurationValidator
|
||||||
from nailgun.api.v1.validators.network import NetworkTemplateValidator
|
from nailgun.api.v1.validators.network import NetworkTemplateValidator
|
||||||
|
|
|
@ -33,7 +33,8 @@ from nailgun import consts
|
||||||
from nailgun.errors import errors
|
from nailgun.errors import errors
|
||||||
from nailgun import objects
|
from nailgun import objects
|
||||||
|
|
||||||
from nailgun.objects.serializers.node import NodeInterfacesSerializer
|
from nailgun.extensions.network_manager.objects.serializers.nic import \
|
||||||
|
NodeInterfacesSerializer
|
||||||
|
|
||||||
from nailgun.db import db
|
from nailgun.db import db
|
||||||
from nailgun.db.sqlalchemy.models import NetworkGroup
|
from nailgun.db.sqlalchemy.models import NetworkGroup
|
||||||
|
|
|
@ -18,7 +18,8 @@ import copy
|
||||||
import six
|
import six
|
||||||
|
|
||||||
from nailgun import consts
|
from nailgun import consts
|
||||||
from nailgun.objects.serializers import network_configuration
|
from nailgun.extensions.network_manager.objects.serializers import \
|
||||||
|
network_configuration
|
||||||
|
|
||||||
from . import base as base_tests
|
from . import base as base_tests
|
||||||
from ..objects import adapters
|
from ..objects import adapters
|
||||||
|
|
|
@ -20,8 +20,9 @@ from distutils import version
|
||||||
import six
|
import six
|
||||||
|
|
||||||
from nailgun import consts
|
from nailgun import consts
|
||||||
|
from nailgun.extensions.network_manager.objects.serializers import \
|
||||||
|
network_configuration
|
||||||
from nailgun import objects
|
from nailgun import objects
|
||||||
from nailgun.objects.serializers import network_configuration
|
|
||||||
from nailgun import utils
|
from nailgun import utils
|
||||||
|
|
||||||
from .objects import adapters
|
from .objects import adapters
|
||||||
|
|
|
@ -28,10 +28,11 @@ import six
|
||||||
|
|
||||||
from nailgun import consts
|
from nailgun import consts
|
||||||
from nailgun.errors import errors
|
from nailgun.errors import errors
|
||||||
|
from nailgun.extensions.network_manager.objects.serializers.nic import \
|
||||||
|
NodeInterfacesSerializer
|
||||||
from nailgun.logger import logger
|
from nailgun.logger import logger
|
||||||
from nailgun.network import utils
|
from nailgun.network import utils
|
||||||
from nailgun import objects
|
from nailgun import objects
|
||||||
from nailgun.objects.serializers.node import NodeInterfacesSerializer
|
|
||||||
from nailgun.settings import settings
|
from nailgun.settings import settings
|
||||||
from nailgun import utils as nailgun_utils
|
from nailgun import utils as nailgun_utils
|
||||||
from nailgun.utils.restrictions import RestrictionBase
|
from nailgun.utils.restrictions import RestrictionBase
|
||||||
|
|
|
@ -16,10 +16,10 @@
|
||||||
|
|
||||||
|
|
||||||
from nailgun.db.sqlalchemy import models
|
from nailgun.db.sqlalchemy import models
|
||||||
from nailgun.objects.interface import DPDKMixin
|
from nailgun.extensions.network_manager.objects.interface import DPDKMixin
|
||||||
|
from nailgun.extensions.network_manager.objects.interface import NIC
|
||||||
from nailgun.objects import NailgunCollection
|
from nailgun.objects import NailgunCollection
|
||||||
from nailgun.objects import NailgunObject
|
from nailgun.objects import NailgunObject
|
||||||
from nailgun.objects import NIC
|
|
||||||
from nailgun.objects.serializers.base import BasicSerializer
|
from nailgun.objects.serializers.base import BasicSerializer
|
||||||
|
|
||||||
|
|
|
@ -20,12 +20,13 @@ from sqlalchemy.sql import not_
|
||||||
from nailgun.db import db
|
from nailgun.db import db
|
||||||
from nailgun.db.sqlalchemy import models
|
from nailgun.db.sqlalchemy import models
|
||||||
from nailgun.errors import errors
|
from nailgun.errors import errors
|
||||||
|
from nailgun.extensions.network_manager.objects.serializers.ip_addr import \
|
||||||
|
IPAddrSerializer
|
||||||
from nailgun.objects import Cluster
|
from nailgun.objects import Cluster
|
||||||
from nailgun.objects import NailgunCollection
|
from nailgun.objects import NailgunCollection
|
||||||
from nailgun.objects import NailgunObject
|
from nailgun.objects import NailgunObject
|
||||||
from nailgun.objects import NetworkGroup
|
from nailgun.objects import NetworkGroup
|
||||||
from nailgun.objects.serializers.base import BasicSerializer
|
from nailgun.objects.serializers.base import BasicSerializer
|
||||||
from nailgun.objects.serializers.ip_addr import IPAddrSerializer
|
|
||||||
|
|
||||||
|
|
||||||
class IPAddr(NailgunObject):
|
class IPAddr(NailgunObject):
|
|
@ -20,11 +20,12 @@ from nailgun import consts
|
||||||
from nailgun.db import db
|
from nailgun.db import db
|
||||||
from nailgun.db.sqlalchemy import models
|
from nailgun.db.sqlalchemy import models
|
||||||
from nailgun.errors import errors
|
from nailgun.errors import errors
|
||||||
|
from nailgun.extensions.network_manager.objects.serializers.network_group \
|
||||||
|
import NetworkGroupSerializer
|
||||||
from nailgun.logger import logger
|
from nailgun.logger import logger
|
||||||
from nailgun.objects import Cluster
|
from nailgun.objects import Cluster
|
||||||
from nailgun.objects import NailgunCollection
|
from nailgun.objects import NailgunCollection
|
||||||
from nailgun.objects import NailgunObject
|
from nailgun.objects import NailgunObject
|
||||||
from nailgun.objects.serializers.network_group import NetworkGroupSerializer
|
|
||||||
|
|
||||||
from sqlalchemy.sql import or_
|
from sqlalchemy.sql import or_
|
||||||
|
|
|
@ -0,0 +1,121 @@
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
|
# Copyright 2016 Mirantis, Inc.
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||||
|
# not use this file except in compliance with the License. You may obtain
|
||||||
|
# a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||||
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||||
|
# License for the specific language governing permissions and limitations
|
||||||
|
# under the License.
|
||||||
|
|
||||||
|
from distutils.version import StrictVersion
|
||||||
|
|
||||||
|
from nailgun import consts
|
||||||
|
|
||||||
|
from nailgun.objects.serializers.base import BasicSerializer
|
||||||
|
from nailgun.settings import settings
|
||||||
|
|
||||||
|
|
||||||
|
class NodeInterfacesSerializer(BasicSerializer):
|
||||||
|
|
||||||
|
nic_fields = (
|
||||||
|
'id',
|
||||||
|
'mac',
|
||||||
|
'name',
|
||||||
|
'type',
|
||||||
|
'interface_properties',
|
||||||
|
'state',
|
||||||
|
'current_speed',
|
||||||
|
'max_speed',
|
||||||
|
'assigned_networks',
|
||||||
|
'driver',
|
||||||
|
'bus_info',
|
||||||
|
'offloading_modes',
|
||||||
|
'pxe'
|
||||||
|
)
|
||||||
|
bond_fields = (
|
||||||
|
'mac',
|
||||||
|
'name',
|
||||||
|
'type',
|
||||||
|
'interface_properties',
|
||||||
|
'mode',
|
||||||
|
'bond_properties',
|
||||||
|
'state',
|
||||||
|
'assigned_networks',
|
||||||
|
'offloading_modes'
|
||||||
|
)
|
||||||
|
|
||||||
|
nic_fields_60 = (
|
||||||
|
'id',
|
||||||
|
'mac',
|
||||||
|
'name',
|
||||||
|
'type',
|
||||||
|
'state',
|
||||||
|
'current_speed',
|
||||||
|
'max_speed',
|
||||||
|
'assigned_networks',
|
||||||
|
'driver',
|
||||||
|
'bus_info',
|
||||||
|
)
|
||||||
|
bond_fields_60 = (
|
||||||
|
'mac',
|
||||||
|
'name',
|
||||||
|
'type',
|
||||||
|
'mode',
|
||||||
|
'bond_properties',
|
||||||
|
'state',
|
||||||
|
'assigned_networks'
|
||||||
|
)
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def _get_env_version(cls, instance):
|
||||||
|
"""Returns environment's version.
|
||||||
|
|
||||||
|
Returns current Fuel version by default.
|
||||||
|
"""
|
||||||
|
if instance.node.cluster:
|
||||||
|
return instance.node.cluster.release.environment_version
|
||||||
|
return settings.VERSION["release"]
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def serialize_nic_interface(cls, instance, fields=None):
|
||||||
|
if not fields:
|
||||||
|
if StrictVersion(cls._get_env_version(instance)) < \
|
||||||
|
StrictVersion('6.1'):
|
||||||
|
fields = cls.nic_fields_60
|
||||||
|
else:
|
||||||
|
fields = cls.nic_fields
|
||||||
|
return BasicSerializer.serialize(
|
||||||
|
instance,
|
||||||
|
fields=fields
|
||||||
|
)
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def serialize_bond_interface(cls, instance, fields=None):
|
||||||
|
if not fields:
|
||||||
|
if StrictVersion(cls._get_env_version(instance)) < \
|
||||||
|
StrictVersion('6.1'):
|
||||||
|
fields = cls.bond_fields_60
|
||||||
|
else:
|
||||||
|
fields = cls.bond_fields
|
||||||
|
data_dict = BasicSerializer.serialize(
|
||||||
|
instance,
|
||||||
|
fields=fields
|
||||||
|
)
|
||||||
|
data_dict['slaves'] = [{'name': slave.name}
|
||||||
|
for slave in instance.slaves]
|
||||||
|
return data_dict
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def serialize(cls, instance, fields=None):
|
||||||
|
iface_types = consts.NETWORK_INTERFACE_TYPES
|
||||||
|
if instance.type == iface_types.ether:
|
||||||
|
return cls.serialize_nic_interface(instance, fields)
|
||||||
|
elif instance.type == iface_types.bond:
|
||||||
|
return cls.serialize_bond_interface(instance, fields)
|
|
@ -28,12 +28,12 @@ from nailgun.logger import logger
|
||||||
from nailgun import objects
|
from nailgun import objects
|
||||||
from nailgun.task.helpers import TaskHelper
|
from nailgun.task.helpers import TaskHelper
|
||||||
|
|
||||||
from nailgun.objects.serializers.network_configuration \
|
from nailgun.extensions.network_manager.objects.serializers.\
|
||||||
import NetworkConfigurationSerializer
|
network_configuration import NetworkConfigurationSerializer
|
||||||
from nailgun.objects.serializers.network_configuration \
|
from nailgun.extensions.network_manager.objects.serializers.\
|
||||||
import NeutronNetworkConfigurationSerializer
|
network_configuration import NeutronNetworkConfigurationSerializer
|
||||||
from nailgun.objects.serializers.network_configuration \
|
from nailgun.extensions.network_manager.objects.serializers.\
|
||||||
import NovaNetworkConfigurationSerializer
|
network_configuration import NovaNetworkConfigurationSerializer
|
||||||
|
|
||||||
|
|
||||||
class NetworkCheck(object):
|
class NetworkCheck(object):
|
||||||
|
|
|
@ -47,18 +47,20 @@ from nailgun.objects.deployment_history import DeploymentHistoryCollection
|
||||||
from nailgun.objects.notification import Notification
|
from nailgun.objects.notification import Notification
|
||||||
from nailgun.objects.notification import NotificationCollection
|
from nailgun.objects.notification import NotificationCollection
|
||||||
|
|
||||||
from nailgun.objects.network_group import NetworkGroup
|
from nailgun.extensions.network_manager.objects.network_group import \
|
||||||
from nailgun.objects.network_group import NetworkGroupCollection
|
NetworkGroup
|
||||||
|
from nailgun.extensions.network_manager.objects.network_group import \
|
||||||
|
NetworkGroupCollection
|
||||||
|
|
||||||
from nailgun.objects.ip_addr import IPAddr
|
from nailgun.extensions.network_manager.objects.ip_addr import IPAddr
|
||||||
from nailgun.objects.ip_addr import IPAddrCollection
|
from nailgun.extensions.network_manager.objects.ip_addr import IPAddrCollection
|
||||||
from nailgun.objects.ip_addr import IPAddrRange
|
from nailgun.extensions.network_manager.objects.ip_addr import IPAddrRange
|
||||||
|
|
||||||
from nailgun.objects.interface import NIC
|
from nailgun.extensions.network_manager.objects.interface import NIC
|
||||||
from nailgun.objects.interface import NICCollection
|
from nailgun.extensions.network_manager.objects.interface import NICCollection
|
||||||
|
|
||||||
from nailgun.objects.bond import Bond
|
from nailgun.extensions.network_manager.objects.bond import Bond
|
||||||
from nailgun.objects.bond import BondCollection
|
from nailgun.extensions.network_manager.objects.bond import BondCollection
|
||||||
|
|
||||||
from nailgun.objects.node import Node
|
from nailgun.objects.node import Node
|
||||||
from nailgun.objects.node import NodeAttributes
|
from nailgun.objects.node import NodeAttributes
|
||||||
|
|
|
@ -1525,7 +1525,8 @@ class Cluster(NailgunObject):
|
||||||
@classmethod
|
@classmethod
|
||||||
def get_network_attributes(cls, instance):
|
def get_network_attributes(cls, instance):
|
||||||
# use local import to avoid recursive imports
|
# use local import to avoid recursive imports
|
||||||
from nailgun.objects.serializers import network_configuration
|
from nailgun.extensions.network_manager.objects.serializers import \
|
||||||
|
network_configuration
|
||||||
|
|
||||||
if instance.net_provider == consts.CLUSTER_NET_PROVIDERS.nova_network:
|
if instance.net_provider == consts.CLUSTER_NET_PROVIDERS.nova_network:
|
||||||
serializer = \
|
serializer = \
|
||||||
|
|
|
@ -14,12 +14,7 @@
|
||||||
# License for the specific language governing permissions and limitations
|
# License for the specific language governing permissions and limitations
|
||||||
# under the License.
|
# under the License.
|
||||||
|
|
||||||
from distutils.version import StrictVersion
|
|
||||||
|
|
||||||
from nailgun import consts
|
|
||||||
|
|
||||||
from nailgun.objects.serializers.base import BasicSerializer
|
from nailgun.objects.serializers.base import BasicSerializer
|
||||||
from nailgun.settings import settings
|
|
||||||
|
|
||||||
|
|
||||||
class NodeSerializer(BasicSerializer):
|
class NodeSerializer(BasicSerializer):
|
||||||
|
@ -55,102 +50,3 @@ class NodeSerializer(BasicSerializer):
|
||||||
data_dict = super(NodeSerializer, cls).serialize(instance, fields)
|
data_dict = super(NodeSerializer, cls).serialize(instance, fields)
|
||||||
data_dict['fqdn'] = Node.get_node_fqdn(instance)
|
data_dict['fqdn'] = Node.get_node_fqdn(instance)
|
||||||
return data_dict
|
return data_dict
|
||||||
|
|
||||||
|
|
||||||
class NodeInterfacesSerializer(BasicSerializer):
|
|
||||||
|
|
||||||
nic_fields = (
|
|
||||||
'id',
|
|
||||||
'mac',
|
|
||||||
'name',
|
|
||||||
'type',
|
|
||||||
'interface_properties',
|
|
||||||
'state',
|
|
||||||
'current_speed',
|
|
||||||
'max_speed',
|
|
||||||
'assigned_networks',
|
|
||||||
'driver',
|
|
||||||
'bus_info',
|
|
||||||
'offloading_modes',
|
|
||||||
'pxe'
|
|
||||||
)
|
|
||||||
bond_fields = (
|
|
||||||
'mac',
|
|
||||||
'name',
|
|
||||||
'type',
|
|
||||||
'interface_properties',
|
|
||||||
'mode',
|
|
||||||
'bond_properties',
|
|
||||||
'state',
|
|
||||||
'assigned_networks',
|
|
||||||
'offloading_modes'
|
|
||||||
)
|
|
||||||
|
|
||||||
nic_fields_60 = (
|
|
||||||
'id',
|
|
||||||
'mac',
|
|
||||||
'name',
|
|
||||||
'type',
|
|
||||||
'state',
|
|
||||||
'current_speed',
|
|
||||||
'max_speed',
|
|
||||||
'assigned_networks',
|
|
||||||
'driver',
|
|
||||||
'bus_info',
|
|
||||||
)
|
|
||||||
bond_fields_60 = (
|
|
||||||
'mac',
|
|
||||||
'name',
|
|
||||||
'type',
|
|
||||||
'mode',
|
|
||||||
'bond_properties',
|
|
||||||
'state',
|
|
||||||
'assigned_networks'
|
|
||||||
)
|
|
||||||
|
|
||||||
@classmethod
|
|
||||||
def _get_env_version(cls, instance):
|
|
||||||
"""Returns environment's version.
|
|
||||||
|
|
||||||
Returns current Fuel version by default.
|
|
||||||
"""
|
|
||||||
if instance.node.cluster:
|
|
||||||
return instance.node.cluster.release.environment_version
|
|
||||||
return settings.VERSION["release"]
|
|
||||||
|
|
||||||
@classmethod
|
|
||||||
def serialize_nic_interface(cls, instance, fields=None):
|
|
||||||
if not fields:
|
|
||||||
if StrictVersion(cls._get_env_version(instance)) < \
|
|
||||||
StrictVersion('6.1'):
|
|
||||||
fields = cls.nic_fields_60
|
|
||||||
else:
|
|
||||||
fields = cls.nic_fields
|
|
||||||
return BasicSerializer.serialize(
|
|
||||||
instance,
|
|
||||||
fields=fields
|
|
||||||
)
|
|
||||||
|
|
||||||
@classmethod
|
|
||||||
def serialize_bond_interface(cls, instance, fields=None):
|
|
||||||
if not fields:
|
|
||||||
if StrictVersion(cls._get_env_version(instance)) < \
|
|
||||||
StrictVersion('6.1'):
|
|
||||||
fields = cls.bond_fields_60
|
|
||||||
else:
|
|
||||||
fields = cls.bond_fields
|
|
||||||
data_dict = BasicSerializer.serialize(
|
|
||||||
instance,
|
|
||||||
fields=fields
|
|
||||||
)
|
|
||||||
data_dict['slaves'] = [{'name': slave.name}
|
|
||||||
for slave in instance.slaves]
|
|
||||||
return data_dict
|
|
||||||
|
|
||||||
@classmethod
|
|
||||||
def serialize(cls, instance, fields=None):
|
|
||||||
iface_types = consts.NETWORK_INTERFACE_TYPES
|
|
||||||
if instance.type == iface_types.ether:
|
|
||||||
return cls.serialize_nic_interface(instance, fields)
|
|
||||||
elif instance.type == iface_types.bond:
|
|
||||||
return cls.serialize_bond_interface(instance, fields)
|
|
||||||
|
|
|
@ -20,10 +20,10 @@ import traceback
|
||||||
|
|
||||||
from oslo_serialization import jsonutils
|
from oslo_serialization import jsonutils
|
||||||
|
|
||||||
from nailgun.objects.serializers.network_configuration \
|
from nailgun.extensions.network_manager.objects.serializers.\
|
||||||
import NeutronNetworkConfigurationSerializer
|
network_configuration import NeutronNetworkConfigurationSerializer
|
||||||
from nailgun.objects.serializers.network_configuration \
|
from nailgun.extensions.network_manager.objects.serializers.\
|
||||||
import NovaNetworkConfigurationSerializer
|
network_configuration import NovaNetworkConfigurationSerializer
|
||||||
|
|
||||||
from nailgun import consts
|
from nailgun import consts
|
||||||
from nailgun.db import db
|
from nailgun.db import db
|
||||||
|
|
|
@ -30,8 +30,9 @@ import yaml
|
||||||
import nailgun
|
import nailgun
|
||||||
from nailgun import consts
|
from nailgun import consts
|
||||||
from nailgun.errors import errors
|
from nailgun.errors import errors
|
||||||
|
from nailgun.extensions.network_manager.objects.serializers \
|
||||||
|
import network_configuration
|
||||||
from nailgun import objects
|
from nailgun import objects
|
||||||
from nailgun.objects.serializers import network_configuration
|
|
||||||
|
|
||||||
from nailgun.db.sqlalchemy.models import IPAddr
|
from nailgun.db.sqlalchemy.models import IPAddr
|
||||||
from nailgun.db.sqlalchemy.models import IPAddrRange
|
from nailgun.db.sqlalchemy.models import IPAddrRange
|
||||||
|
|
|
@ -20,10 +20,10 @@ from oslo_serialization import jsonutils
|
||||||
import yaml
|
import yaml
|
||||||
|
|
||||||
from nailgun.objects import Cluster
|
from nailgun.objects import Cluster
|
||||||
from nailgun.objects.serializers.network_configuration \
|
from nailgun.extensions.network_manager.objects.serializers.\
|
||||||
import NeutronNetworkConfigurationSerializer
|
network_configuration import NeutronNetworkConfigurationSerializer
|
||||||
from nailgun.objects.serializers.network_configuration \
|
from nailgun.extensions.network_manager.objects.serializers.\
|
||||||
import NovaNetworkConfigurationSerializer
|
network_configuration import NovaNetworkConfigurationSerializer
|
||||||
|
|
||||||
from nailgun import consts
|
from nailgun import consts
|
||||||
from nailgun.db.sqlalchemy.models import NeutronConfig
|
from nailgun.db.sqlalchemy.models import NeutronConfig
|
||||||
|
|
Loading…
Reference in New Issue