Merge "Move network objects to extension"

This commit is contained in:
Jenkins 2016-04-12 16:34:14 +00:00 committed by Gerrit Code Review
commit 05be83199a
22 changed files with 168 additions and 141 deletions

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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):

View File

@ -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_

View File

@ -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)

View File

@ -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):

View File

@ -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

View File

@ -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 = \

View File

@ -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)

View File

@ -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

View File

@ -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

View File

@ -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