Contains html text in variables to make and html response
"""
-import yaml
-from http import HTTPStatus
from html import escape as html_escape
+from http import HTTPStatus
+
+import yaml
__author__ = "Alfonso Tierno <alfonso.tiernosepulveda@telefonica.com>"
# limitations under the License.
##
-# import yaml
+from http import HTTPStatus
import logging
+from random import choice as random_choice
+from threading import Lock
+from time import time
from traceback import format_exc as traceback_format_exc
-from osm_ng_ro.ns_thread import NsWorker, NsWorkerException, deep_get
-from osm_ng_ro.validation import validate_input, deploy_schema
+from uuid import uuid4
+
+from cryptography.hazmat.backends import default_backend as crypto_default_backend
+from cryptography.hazmat.primitives import serialization as crypto_serialization
+from cryptography.hazmat.primitives.asymmetric import rsa
+from jinja2 import (
+ Environment,
+ StrictUndefined,
+ TemplateError,
+ TemplateNotFound,
+ UndefinedError,
+)
from osm_common import (
- dbmongo,
dbmemory,
+ dbmongo,
fslocal,
fsmongo,
- msglocal,
msgkafka,
+ msglocal,
version as common_version,
)
from osm_common.dbbase import DbException
from osm_common.fsbase import FsException
from osm_common.msgbase import MsgException
-from http import HTTPStatus
-from uuid import uuid4
-from threading import Lock
-from random import choice as random_choice
-from time import time
-from jinja2 import (
- Environment,
- TemplateError,
- TemplateNotFound,
- StrictUndefined,
- UndefinedError,
-)
-from cryptography.hazmat.primitives import serialization as crypto_serialization
-from cryptography.hazmat.primitives.asymmetric import rsa
-from cryptography.hazmat.backends import default_backend as crypto_default_backend
+from osm_ng_ro.ns_thread import deep_get, NsWorker, NsWorkerException
+from osm_ng_ro.validation import deploy_schema, validate_input
__author__ = "Alfonso Tierno <alfonso.tiernosepulveda@telefonica.com>"
min_common_version = "0.1.16"
A ro_task can contain several 'tasks', each one with a target, where to store the results
"""
-import logging
-import queue
-import threading
-import time
-import yaml
from copy import deepcopy
from http import HTTPStatus
+import logging
from os import mkdir
-from importlib_metadata import entry_points
+import queue
from shutil import rmtree
+import threading
+import time
from unittest.mock import Mock
-# from osm_common import dbmongo, dbmemory, fslocal, fsmongo, msglocal, msgkafka, version as common_version
+from importlib_metadata import entry_points
from osm_common.dbbase import DbException
-from osm_ro_plugin.vim_dummy import VimDummyConnector
-from osm_ro_plugin.sdn_dummy import SdnDummyConnector
-from osm_ro_plugin import vimconn, sdnconn
from osm_ng_ro.vim_admin import LockRenew
+from osm_ro_plugin import sdnconn, vimconn
+from osm_ro_plugin.sdn_dummy import SdnDummyConnector
+from osm_ro_plugin.vim_dummy import VimDummyConnector
+import yaml
__author__ = "Alfonso Tierno"
# limitations under the License.
##
-import cherrypy
-import time
+from codecs import getreader
+import getopt
+from http import HTTPStatus
import json
-import yaml
-import osm_ng_ro.html_out as html
import logging
import logging.handlers
-import getopt
+from os import environ, path
import sys
+import time
-from osm_ng_ro.ns import Ns, NsException
-from osm_ng_ro.validation import ValidationError
-from osm_ng_ro.vim_admin import VimAdminThread
+import cherrypy
from osm_common.dbbase import DbException
from osm_common.fsbase import FsException
from osm_common.msgbase import MsgException
-from http import HTTPStatus
-from codecs import getreader
-from os import environ, path
from osm_ng_ro import version as ro_version, version_date as ro_version_date
+import osm_ng_ro.html_out as html
+from osm_ng_ro.ns import Ns, NsException
+from osm_ng_ro.validation import ValidationError
+from osm_ng_ro.vim_admin import VimAdminThread
+import yaml
__author__ = "Alfonso Tierno <alfonso.tiernosepulveda@telefonica.com>"
# See the License for the specific language governing permissions and
# limitations under the License.
-from jsonschema import validate as js_v, exceptions as js_e
from http import HTTPStatus
+from jsonschema import exceptions as js_e, validate as js_v
+
__author__ = "Alfonso Tierno <alfonso.tiernosepulveda@telefonica.com>"
__version__ = "0.1"
version_date = "Jun 2020"
It is in charge of load tasks assigned to VIMs that nobody is in chage of it
"""
-import logging
-import threading
import asyncio
from http import HTTPStatus
+import logging
+import threading
+from time import time
-from osm_common import dbmongo, dbmemory, msglocal, msgkafka
+from osm_common import dbmemory, dbmongo, msgkafka, msglocal
from osm_common.dbbase import DbException
from osm_common.msgbase import MsgException
-from time import time
__author__ = "Alfonso Tierno <alfonso.tiernosepulveda@telefonica.com>"
# See the License for the specific language governing permissions and
# limitations under the License.
-from setuptools import setup, find_packages
+from setuptools import find_packages, setup
_name = "osm_ng_ro"
_version_command = ("git describe --match v* --tags --long --dirty", "pep440-git-full")
# This work has been performed in the context of Arista Telefonica OSM PoC.
##
-from osm_ro_plugin.sdnconn import SdnConnectorBase, SdnConnectorError
-import re
-import socket
-
-# Required by compare function
import difflib
-
-# Library that uses Levenshtein Distance to calculate the differences
-# between strings.
-# from fuzzywuzzy import fuzz
-
+from enum import Enum
import logging
+import re
+import socket
import uuid
-from enum import Enum
-from requests import RequestException, ConnectionError, ConnectTimeout, Timeout
-from cvprac.cvp_client import CvpClient
-from cvprac.cvp_api import CvpApi
-from cvprac.cvp_client_errors import CvpLoginError, CvpSessionLogOutError, CvpApiError
-from cvprac import __version__ as cvprac_version
+from cvprac import __version__ as cvprac_version
+from cvprac.cvp_api import CvpApi
+from cvprac.cvp_client import CvpClient
+from cvprac.cvp_client_errors import CvpApiError, CvpLoginError, CvpSessionLogOutError
+from osm_ro_plugin.sdnconn import SdnConnectorBase, SdnConnectorError
from osm_rosdn_arista_cloudvision.aristaConfigLet import AristaSDNConfigLet
from osm_rosdn_arista_cloudvision.aristaTask import AristaCVPTask
+from requests import ConnectionError, ConnectTimeout, RequestException, Timeout
class SdnError(Enum):
import json
import logging
-import paramiko
-import requests
import struct
-# import sys
from osm_ro_plugin.sdnconn import SdnConnectorBase, SdnConnectorError
+import paramiko
+import requests
class DpbSshInterface:
# See the License for the specific language governing permissions and
# limitations under the License.
-import requests
+from enum import Enum
import json
import logging
-from enum import Enum
from osm_ro_plugin.sdnconn import SdnConnectorBase, SdnConnectorError
+import requests
class SdnError(Enum):
with static rules based on packet destination MAC address
"""
-__author__ = "Pablo Montes, Alfonso Tierno"
-__date__ = "$28-oct-2014 12:07:15$"
-
import json
-import requests
import logging
+
from osm_ro_plugin.openflow_conn import (
OpenflowConn,
- OpenflowConnUnexpectedResponse,
OpenflowConnConnectionException,
+ OpenflowConnUnexpectedResponse,
)
+import requests
+
+__author__ = "Pablo Montes, Alfonso Tierno"
+__date__ = "$28-oct-2014 12:07:15$"
class OfConnFloodLight(OpenflowConn):
"""
import logging
+
from osm_ro_plugin.openflow_conn import SdnConnectorOpenFlow
+
from .floodlight_of import OfConnFloodLight
It receives the endpoints and the necessary details to request
the Layer 2 service.
"""
-import requests
-import uuid
+
import logging
-from osm_ro_plugin.sdnconn import SdnConnectorBase, SdnConnectorError
+import uuid
-"""Check layer where we move it"""
+from osm_ro_plugin.sdnconn import SdnConnectorBase, SdnConnectorError
+import requests
class WimconnectorIETFL2VPN(SdnConnectorBase):
# License for the specific language governing permissions and limitations
# under the License.
-import requests
-import json
import copy
-
+import json
from time import time
+
+import requests
from requests.exceptions import ConnectionError
# License for the specific language governing permissions and limitations
# under the License.
-import logging
import json
+import logging
from osm_ro_plugin.sdnconn import SdnConnectorError
from osm_rosdn_juniper_contrail.rest_lib import ContrailHttp
#
import logging
-import yaml
import random
from osm_ro_plugin.sdnconn import SdnConnectorBase, SdnConnectorError
-
-# from osm_rosdn_juniper_contrail.rest_lib import ContrailHttp
-# from osm_rosdn_juniper_contrail.rest_lib import NotFound
from osm_rosdn_juniper_contrail.rest_lib import DuplicateFound
from osm_rosdn_juniper_contrail.rest_lib import HttpException
from osm_rosdn_juniper_contrail.sdn_api import UnderlayApi
+import yaml
class JuniperContrail(SdnConnectorBase):
with static rules based on packet destination MAC address
"""
-import json
-import requests
import base64
+import json
import logging
+
from osm_ro_plugin.openflow_conn import (
OpenflowConn,
OpenflowConnConnectionException,
OpenflowConnUnexpectedResponse,
)
+import requests
# OpenflowConnException, OpenflowConnAuthException, OpenflowConnNotFoundException,
# OpenflowConnConflictException, OpenflowConnNotSupportedException, OpenflowConnNotImplemented
"""
import logging
+
from osm_ro_plugin.openflow_conn import SdnConnectorOpenFlow
+
from .odl_of import OfConnOdl
with static rules based on packet destination MAC address
"""
-import json
-import requests
import base64
+import json
import logging
+
from osm_ro_plugin.openflow_conn import (
OpenflowConn,
OpenflowConnConnectionException,
OpenflowConnUnexpectedResponse,
)
+import requests
# OpenflowConnException, OpenflowConnAuthException, OpenflowConnNotFoundException, \
# OpenflowConnConflictException, OpenflowConnNotSupportedException, OpenflowConnNotImplemented
"""
import logging
+
from osm_ro_plugin.openflow_conn import SdnConnectorOpenFlow
+
from .onos_of import OfConnOnos
# For those usages not covered by the Apache License, Version 2.0 please
# contact: bdiaz@whitestack.com or glavado@whitestack.com
##
+
+import copy
import logging
import uuid
-import copy
+from osm_ro_plugin.sdnconn import SdnConnectorBase, SdnConnectorError
import requests
from requests.auth import HTTPBasicAuth
-from osm_ro_plugin.sdnconn import SdnConnectorBase, SdnConnectorError
-
class OnosVpls(SdnConnectorBase):
"""
AWS-connector implements all the methods to interact with AWS using the BOTO client
"""
-__author__ = "Saboor Ahmad"
-__date__ = "10-Apr-2017"
-
-from osm_ro_plugin import vimconn
-import yaml
import logging
-import netaddr
import time
import boto
import boto.ec2
import boto.vpc
+import netaddr
+from osm_ro_plugin import vimconn
+import yaml
+
+__author__ = "Saboor Ahmad"
+__date__ = "10-Apr-2017"
class vimconnector(vimconn.VimConnector):
##
import base64
-from osm_ro_plugin import vimconn
import logging
-import netaddr
+from os import getenv
import re
-from os import getenv
+from azure.core.exceptions import ResourceNotFoundError
from azure.identity import ClientSecretCredential
-from azure.mgmt.resource import ResourceManagementClient
-from azure.mgmt.network import NetworkManagementClient
from azure.mgmt.compute import ComputeManagementClient
from azure.mgmt.compute.models import DiskCreateOption
-from azure.core.exceptions import ResourceNotFoundError
+from azure.mgmt.network import NetworkManagementClient
+from azure.mgmt.resource import ResourceManagementClient
from azure.profiles import ProfileDefinition
-from msrestazure.azure_exceptions import CloudError
+from cryptography.hazmat.backends import default_backend as crypto_default_backend
+from cryptography.hazmat.primitives import serialization as crypto_serialization
+from cryptography.hazmat.primitives.asymmetric import rsa
from msrest.exceptions import AuthenticationError
+from msrestazure.azure_exceptions import CloudError
import msrestazure.tools as azure_tools
+import netaddr
+from osm_ro_plugin import vimconn
from requests.exceptions import ConnectionError
-from cryptography.hazmat.primitives import serialization as crypto_serialization
-from cryptography.hazmat.primitives.asymmetric import rsa
-from cryptography.hazmat.backends import default_backend as crypto_default_backend
-
__author__ = "Isabel Lloret, Sergio Gonzalez, Alfonso Tierno, Gerardo Garcia"
__date__ = "$18-apr-2019 23:59:59$"
# under the License.
##
-import base64
-from osm_ro_plugin import vimconn
import logging
-import time
+from os import getenv
import random
from random import choice as random_choice
-from os import getenv
-
-from google.api_core.exceptions import NotFound
-import googleapiclient.discovery
-from google.oauth2 import service_account
+import time
+from cryptography.hazmat.backends import default_backend as crypto_default_backend
from cryptography.hazmat.primitives import serialization as crypto_serialization
from cryptography.hazmat.primitives.asymmetric import rsa
-from cryptography.hazmat.backends import default_backend as crypto_default_backend
-
-import logging
+from google.oauth2 import service_account
+import googleapiclient.discovery
+from osm_ro_plugin import vimconn
__author__ = "Sergio Gallardo Ruiz"
__date__ = "$11-aug-2021 08:30:00$"
"description": net_name,
"network": network,
"ipCidrRange": subnet_address,
- # "autoCreateSubnetworks": True, # The network is created in AUTO mode (one subnet per region is created)
+ # "autoCreateSubnetworks": True,
+ # The network is created in AUTO mode (one subnet per region is created)
"autoCreateSubnetworks": False,
}
self.logger.debug("created network_name: {}".format(net_name))
# Adding firewall rules to allow the traffic in the network:
- rules_list = self._create_firewall_rules(net_name)
+ self._create_firewall_rules(net_name)
# create subnetwork, even if there is no profile
-
if not ip_profile:
ip_profile = {}
net_name = self._get_resource_name_from_resource_id(net_id)
# Check associated VMs
- vms = (
- self.conn_compute.instances()
- .list(project=self.project, zone=self.zone)
- .execute()
- )
+ self.conn_compute.instances().list(
+ project=self.project, zone=self.zone
+ ).execute()
net_id = self.delete_subnet(net_name, created_items)
try:
# If the network has no more subnets, it will be deleted too
net_info = self.get_network(net_id)
- # If the subnet is in use by another resource, the deletion will be retried N times before abort the operation
+ # If the subnet is in use by another resource,
+ # the deletion will be retried N times before abort the operation
created_items = created_items or {}
created_items[net_id] = False
try:
# Deletion of the associated firewall rules:
- rules_list = self._delete_firewall_rules(network_name)
+ self._delete_firewall_rules(network_name)
operation = (
self.conn_compute.networks()
+ "-"
+ "".join(random_choice("0123456789abcdef") for _ in range(12))
)
- response = (
- self.conn_compute.instances()
- .get(project=self.project, zone=self.zone, instance=random_name)
- .execute()
- )
- # If no exception is arisen, the random name exists for an instance, so a new random name must be generated
+ self.conn_compute.instances().get(
+ project=self.project, zone=self.zone, instance=random_name
+ ).execute()
+ # If no exception is arisen, the random name exists for an instance,
+ # so a new random name must be generated
except Exception as e:
if e.args[0]["status"] == "404":
# initial metadata
metadata = {}
metadata["items"] = []
- key_pairs = {}
# if there is a cloud-init load it
if cloud_config:
self._get_resource_name_from_resource_id(netIface["subnetwork"])
in self.nets_to_be_deleted
):
- net_id = self._get_resource_name_from_resource_id(
+ self._get_resource_name_from_resource_id(
self.delete_network(netIface["subnetwork"])
)
for net_id in net_list:
try:
- netName = self._get_net_name_from_resource_id(net_id)
resName = self._get_resource_name_from_resource_id(net_id)
net = (
interface_list = []
for network_interface in interfaces:
interface_dict = {}
- nic_name = network_interface["name"]
interface_dict["vim_interface_id"] = network_interface["name"]
ips = []
"network": "global/networks/" + network,
"allowed": [{"IPProtocol": "tcp", "ports": ["80"]}],
}
- operation_firewall = (
- self.conn_compute.firewalls()
- .insert(project=self.project, body=firewall_rule_body)
- .execute()
- )
+ self.conn_compute.firewalls().insert(
+ project=self.project, body=firewall_rule_body
+ ).execute()
# Adding firewall rule to allow ssh:
self.logger.debug("creating firewall rule to allow ssh")
"network": "global/networks/" + network,
"allowed": [{"IPProtocol": "tcp", "ports": ["22"]}],
}
- operation_firewall = (
- self.conn_compute.firewalls()
- .insert(project=self.project, body=firewall_rule_body)
- .execute()
- )
+ self.conn_compute.firewalls().insert(
+ project=self.project, body=firewall_rule_body
+ ).execute()
# Adding firewall rule to allow ping:
self.logger.debug("creating firewall rule to allow ping")
"network": "global/networks/" + network,
"allowed": [{"IPProtocol": "icmp"}],
}
- operation_firewall = (
- self.conn_compute.firewalls()
- .insert(project=self.project, body=firewall_rule_body)
- .execute()
- )
+
+ self.conn_compute.firewalls().insert(
+ project=self.project, body=firewall_rule_body
+ ).execute()
# Adding firewall rule to allow internal:
self.logger.debug("creating firewall rule to allow internal")
{"IPProtocol": "icmp"},
],
}
- operation_firewall = (
- self.conn_compute.firewalls()
- .insert(project=self.project, body=firewall_rule_body)
- .execute()
- )
+ self.conn_compute.firewalls().insert(
+ project=self.project, body=firewall_rule_body
+ ).execute()
# Adding firewall rule to allow microk8s:
self.logger.debug("creating firewall rule to allow microk8s")
"network": "global/networks/" + network,
"allowed": [{"IPProtocol": "tcp", "ports": ["16443"]}],
}
- operation_firewall = (
- self.conn_compute.firewalls()
- .insert(project=self.project, body=firewall_rule_body)
- .execute()
- )
+ self.conn_compute.firewalls().insert(
+ project=self.project, body=firewall_rule_body
+ ).execute()
# Adding firewall rule to allow rdp:
self.logger.debug("creating firewall rule to allow rdp")
"network": "global/networks/" + network,
"allowed": [{"IPProtocol": "tcp", "ports": ["3389"]}],
}
- operation_firewall = (
- self.conn_compute.firewalls()
- .insert(project=self.project, body=firewall_rule_body)
- .execute()
- )
+ self.conn_compute.firewalls().insert(
+ project=self.project, body=firewall_rule_body
+ ).execute()
# Adding firewall rule to allow osm:
self.logger.debug("creating firewall rule to allow osm")
"network": "global/networks/" + network,
"allowed": [{"IPProtocol": "tcp", "ports": ["9001", "9999"]}],
}
- operation_firewall = (
- self.conn_compute.firewalls()
- .insert(project=self.project, body=firewall_rule_body)
- .execute()
- )
+ self.conn_compute.firewalls().insert(
+ project=self.project, body=firewall_rule_body
+ ).execute()
self.logger.debug(
"_create_firewall_rules Return: list_rules %s", rules_list
)
for item in rules_list["items"]:
if network == self._get_resource_name_from_resource_id(item["network"]):
- operation_firewall = (
- self.conn_compute.firewalls()
- .delete(project=self.project, firewall=item["name"])
- .execute()
- )
+ self.conn_compute.firewalls().delete(
+ project=self.project, firewall=item["name"]
+ ).execute()
self.logger.debug("_delete_firewall_rules Return: list_rules %s", 0)
return rules_list
import mock
from neutronclient.v2_0.client import Client
-
from osm_ro_plugin import vimconn
from osm_rovim_openstack.vimconn_openstack import vimconnector
-
__author__ = "Igor D.C."
__date__ = "$23-aug-2017 23:59:59$"
- Service Function Path (OSM) -> Port Chain (Neutron)
"""
-from osm_ro_plugin import vimconn
-
-# import json
+import copy
+from http.client import HTTPException
import logging
-import netaddr
-import time
-import yaml
+from pprint import pformat
import random
import re
-import copy
-from pprint import pformat
-from novaclient import client as nClient, exceptions as nvExceptions
-from keystoneauth1.identity import v2, v3
+import time
+
+from cinderclient import client as cClient
+from glanceclient import client as glClient
+import glanceclient.exc as gl1Exceptions
from keystoneauth1 import session
+from keystoneauth1.identity import v2, v3
import keystoneclient.exceptions as ksExceptions
-import keystoneclient.v3.client as ksClient_v3
import keystoneclient.v2_0.client as ksClient_v2
-from glanceclient import client as glClient
-import glanceclient.exc as gl1Exceptions
-from cinderclient import client as cClient
-
-# TODO py3 check that this base exception matches python2 httplib.HTTPException
-from http.client import HTTPException
-from neutronclient.neutron import client as neClient
+import keystoneclient.v3.client as ksClient_v3
+import netaddr
from neutronclient.common import exceptions as neExceptions
+from neutronclient.neutron import client as neClient
+from novaclient import client as nClient, exceptions as nvExceptions
+from osm_ro_plugin import vimconn
from requests.exceptions import ConnectionError
+import yaml
__author__ = "Alfonso Tierno, Gerardo Garcia, Pablo Montes, xFlow Research, Igor D.C., Eduardo Sousa"
__date__ = "$22-sep-2017 23:59:59$"
__author__ = "Alfonso Tierno, Gerardo Garcia"
__date__ = "$26-aug-2014 11:09:29$"
-from osm_ro_plugin import vimconn
-import requests
import json
-import yaml
import logging
import math
+from urllib.parse import quote
+
+from jsonschema import exceptions as js_e, validate as js_v
from osm_ro.openmano_schemas import (
+ description_schema,
id_schema,
+ integer0_schema,
name_schema,
nameshort_schema,
- description_schema,
vlan1000_schema,
- integer0_schema,
)
-from jsonschema import validate as js_v, exceptions as js_e
-from urllib.parse import quote
+from osm_ro_plugin import vimconn
+import requests
+import yaml
"""contain the openvim virtual machine status to openmano status"""
vmStatus2manoFormat = {
##
-from osm_rovim_vmware.vimconn_vmware import vimconnector
+import os
+from os import path
+import unittest
+from unittest import mock
+
+from lxml import etree as lxmlElementTree
from osm_ro_plugin.vimconn import (
- VimConnUnexpectedResponse,
- VimConnNotFoundException,
VimConnException,
+ VimConnNotFoundException,
+ VimConnUnexpectedResponse,
)
+from osm_rovim_vmware.vimconn_vmware import vimconnector
from pyvcloud.vcd.client import Client
-from lxml import etree as lxmlElementTree
from pyvcloud.vcd.org import Org
-from pyvcloud.vcd.vdc import VDC
from pyvcloud.vcd.vapp import VApp
-import os
-import unittest
-from unittest import mock
+from pyvcloud.vcd.vdc import VDC
import tests.test_vimconn_vmware_xml_response as xml_resp
-from os import path
__author__ = "Prakash Kasar"
vimconn_vmware implementation an Abstract class in order to interact with VMware vCloud Director.
"""
-from lxml import etree as lxmlElementTree
-from osm_ro_plugin import vimconn
-from progressbar import Percentage, Bar, ETA, FileTransferSpeed, ProgressBar
-from pyVim.connect import SmartConnect, Disconnect
-from pyVmomi import vim, vmodl # @UnresolvedImport
-from pyvcloud.vcd.client import BasicLoginCredentials, Client
-from pyvcloud.vcd.org import Org
-from pyvcloud.vcd.vapp import VApp
-from pyvcloud.vcd.vdc import VDC
-from xml.etree import ElementTree as XmlElementTree
-from xml.sax.saxutils import escape
import atexit
import hashlib
import json
import logging
-import netaddr
import os
import random
import re
-import requests
import shutil
import socket
import ssl
import time
import traceback
import uuid
+from xml.etree import ElementTree as XmlElementTree
+from xml.sax.saxutils import escape
+
+from lxml import etree as lxmlElementTree
+import netaddr
+from osm_ro_plugin import vimconn
+from progressbar import Bar, ETA, FileTransferSpeed, Percentage, ProgressBar
+from pyvcloud.vcd.client import BasicLoginCredentials, Client
+from pyvcloud.vcd.org import Org
+from pyvcloud.vcd.vapp import VApp
+from pyvcloud.vcd.vdc import VDC
+from pyVim.connect import Disconnect, SmartConnect
+from pyVmomi import vim, vmodl # @UnresolvedImport
+import requests
import yaml
# global variable for vcd connector type
# under the License.
#
##
-import logging
+
from http import HTTPStatus
-from osm_ro_plugin.sdnconn import SdnConnectorBase, SdnConnectorError
+import logging
from uuid import uuid4
+from osm_ro_plugin.sdnconn import SdnConnectorBase, SdnConnectorError
+
+
"""
Implement an Abstract class 'OpenflowConn' and an engine 'SdnConnectorOpenFlow' used for base class for SDN plugings
that implements a pro-active opeflow rules.
This WIM does nothing and allows using it for testing and when no WIM is needed
"""
+from http import HTTPStatus
import logging
from uuid import uuid4
+
from osm_ro_plugin.sdnconn import SdnConnectorBase, SdnConnectorError
-from http import HTTPStatus
+
__author__ = "Alfonso Tierno <alfonso.tiernosepulveda@telefonica.com>"
It receives information from ports to be connected .
"""
-import logging
from http import HTTPStatus
+import logging
class SdnConnectorError(Exception):
Implements a Dummy vim plugin.
"""
-import yaml
-from osm_ro_plugin import vimconn
-from uuid import uuid4
from copy import deepcopy
import logging
from random import randrange
+from uuid import uuid4
+
+from osm_ro_plugin import vimconn
+import yaml
+
__author__ = "Alfonso Tierno"
__date__ = "2020-04-20"
with the definition of the method to be implemented.
"""
-import logging
-import paramiko
-import socket
-from io import StringIO
-import yaml
-import sys
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from http import HTTPStatus
+from io import StringIO
+import logging
+import socket
+import sys
import warnings
+import paramiko
+import yaml
+
__author__ = "Alfonso Tierno, Igor D.C."
__date__ = "$14-aug-2017 23:59:59$"
Run this directly with python2 or python3.
"""
-import logging
+from datetime import datetime
import json
+import logging
from osm_rovim_gcp.vimconn_gcp import vimconnector
-from datetime import datetime
__author__ = "Sergio G.R."
-r{toxinidir}/requirements-dev.txt
-r{toxinidir}/requirements-test.txt
skip_install = true
+whitelist_externals = sh
commands =
sh -c 'rm -f nosetests.xml'
coverage erase
# NG-RO
- - nose2 -C --coverage NG-RO/osm_ng_ro
+ nose2 -C --coverage NG-RO/osm_ng_ro -s NG-RO/osm_ng_ro
sh -c 'mv .coverage .coverage_ng_ro'
# RO-plugin
- - nose2 -C --coverage RO-plugin/osm_ro_plugin
+ nose2 -C --coverage RO-plugin/osm_ro_plugin -s RO-plugin/osm_ro_plugin
sh -c 'mv .coverage .coverage_ro_plugin'
# RO-SDN-arista_cloudvision
- - nose2 -C --coverage RO-SDN-arista_cloudvision/osm_rosdn_arista_cloudvision
+ nose2 -C --coverage RO-SDN-arista_cloudvision/osm_rosdn_arista_cloudvision -s RO-SDN-arista_cloudvision/osm_rosdn_arista_cloudvision
sh -c 'mv .coverage .coverage_rosdn_arista_cloudvision'
# RO-SDN-dpb
- - nose2 -C --coverage RO-SDN-dpb/osm_rosdn_dpb
+ nose2 -C --coverage RO-SDN-dpb/osm_rosdn_dpb -s RO-SDN-dpb/osm_rosdn_dpb
sh -c 'mv .coverage .coverage_rosdn_dpb'
# RO-SDN-dynpac
- - nose2 -C --coverage RO-SDN-dynpac/osm_rosdn_dynpac
+ nose2 -C --coverage RO-SDN-dynpac/osm_rosdn_dynpac -s RO-SDN-dynpac/osm_rosdn_dynpac
sh -c 'mv .coverage .coverage_rosdn_dynpac'
# RO-SDN-floodlight_openflow
- - nose2 -C --coverage RO-SDN-floodlight_openflow/osm_rosdn_floodlightof
+ nose2 -C --coverage RO-SDN-floodlight_openflow/osm_rosdn_floodlightof -s RO-SDN-floodlight_openflow/osm_rosdn_floodlightof
sh -c 'mv .coverage .coverage_rosdn_floodlightof'
# RO-SDN-ietfl2vpn
- - nose2 -C --coverage RO-SDN-ietfl2vpn/osm_rosdn_ietfl2vpn
+ nose2 -C --coverage RO-SDN-ietfl2vpn/osm_rosdn_ietfl2vpn -s RO-SDN-ietfl2vpn/osm_rosdn_ietfl2vpn
sh -c 'mv .coverage .coverage_rosdn_ietfl2vpn'
# RO-SDN-juniper_contrail
- - nose2 -C --coverage RO-SDN-juniper_contrail/osm_rosdn_juniper_contrail
+ nose2 -C --coverage RO-SDN-juniper_contrail/osm_rosdn_juniper_contrail -s RO-SDN-juniper_contrail/osm_rosdn_juniper_contrail
sh -c 'mv .coverage .coverage_rosdn_juniper_contrail'
# RO-SDN-odl_openflow
- - nose2 -C --coverage RO-SDN-odl_openflow/osm_rosdn_odlof
+ nose2 -C --coverage RO-SDN-odl_openflow/osm_rosdn_odlof -s RO-SDN-odl_openflow/osm_rosdn_odlof
sh -c 'mv .coverage .coverage_rosdn_odlof'
# RO-SDN-onos_openflow
- - nose2 -C --coverage RO-SDN-onos_openflow/osm_rosdn_onosof
+ nose2 -C --coverage RO-SDN-onos_openflow/osm_rosdn_onosof -s RO-SDN-onos_openflow/osm_rosdn_onosof
sh -c 'mv .coverage .coverage_rosdn_onosof'
# RO-SDN-onos_vpls
- - nose2 -C --coverage RO-SDN-onos_vpls/osm_rosdn_onos_vpls
+ nose2 -C --coverage RO-SDN-onos_vpls/osm_rosdn_onos_vpls -s RO-SDN-onos_vpls/osm_rosdn_onos_vpls
sh -c 'mv .coverage .coverage_rosdn_onos_vpls'
# RO-VIM-aws
- - nose2 -C --coverage RO-VIM-aws/osm_rovim_aws
+ nose2 -C --coverage RO-VIM-aws/osm_rovim_aws -s RO-VIM-aws/osm_rovim_aws
sh -c 'mv .coverage .coverage_rovim_aws'
# RO-VIM-azure
- - nose2 -C --coverage RO-VIM-azure/osm_rovim_azure
+ nose2 -C --coverage RO-VIM-azure/osm_rovim_azure -s RO-VIM-azure/osm_rovim_azure
sh -c 'mv .coverage .coverage_rovim_azure'
# RO-VIM-openstack
- - nose2 -C --coverage RO-VIM-openstack/osm_rovim_openstack -s RO-VIM-openstack/osm_rovim_openstack
- sh -c 'mv .coverage .coverage_rovim_openstack'
+ # nose2 -C --coverage RO-VIM-openstack/osm_rovim_openstack -s RO-VIM-openstack/osm_rovim_openstack
+ # sh -c 'mv .coverage .coverage_rovim_openstack'
# RO-VIM-openvim
- - nose2 -C --coverage RO-VIM-openvim/osm_rovim_openvim
+ nose2 -C --coverage RO-VIM-openvim/osm_rovim_openvim -s RO-VIM-openvim/osm_rovim_openvim
sh -c 'mv .coverage .coverage_rovim_openvim'
# RO-VIM-vmware
- - nose2 -C --coverage RO-VIM-vmware/osm_rovim_vmware -s RO-VIM-vmware/osm_rovim_vmware
- sh -c 'mv .coverage .coverage_rovim_vmware'
+ # nose2 -C --coverage RO-VIM-vmware/osm_rovim_vmware -s RO-VIM-vmware/osm_rovim_vmware
+ # sh -c 'mv .coverage .coverage_rovim_vmware'
# RO-VIM-gcp
- - nose2 -C --coverage RO-VIM-gcp/osm_rovim_gcp
+ nose2 -C --coverage RO-VIM-gcp/osm_rovim_gcp -s RO-VIM-gcp/osm_rovim_gcp
sh -c 'mv .coverage .coverage_rovim_gcp'
# Combine results and generate reports
coverage combine .coverage_ng_ro .coverage_ro_plugin .coverage_rosdn_arista_cloudvision .coverage_rosdn_dpb .coverage_rosdn_dynpac .coverage_rosdn_floodlightof .coverage_rosdn_ietfl2vpn .coverage_rosdn_juniper_contrail .coverage_rosdn_odlof .coverage_rosdn_onos_vpls .coverage_rosdn_onosof .coverage_rovim_aws .coverage_rovim_azure .coverage_rovim_openvim .coverage_rovim_gcp # .coverage_rovim_openstack .coverage_rovim_vmware
coverage report --omit='*tests*'
coverage html -d ./cover --omit='*tests*'
coverage xml -o coverage.xml --omit='*tests*'
-whitelist_externals = sh
-
#######################################################################################
[testenv:flake8]
-deps = flake8
+deps = flake8
+ flake8-import-order
skip_install = true
commands =
- - flake8 NG-RO/osm_ng_ro/ NG-RO/setup.py
- - flake8 RO-plugin/osm_ro_plugin/ RO-plugin/setup.py
- - flake8 RO-SDN-arista_cloudvision/osm_rosdn_arista_cloudvision/ RO-SDN-arista_cloudvision/setup.py
- - flake8 RO-SDN-dpb/osm_rosdn_dpb/ RO-SDN-dpb/setup.py
- - flake8 RO-SDN-dynpac/osm_rosdn_dynpac/ RO-SDN-dynpac/setup.py
- - flake8 RO-SDN-floodlight_openflow/osm_rosdn_floodlightof/ RO-SDN-floodlight_openflow/setup.py
- - flake8 RO-SDN-ietfl2vpn/osm_rosdn_ietfl2vpn/ RO-SDN-ietfl2vpn/setup.py
- - flake8 RO-SDN-juniper_contrail/osm_rosdn_juniper_contrail/ RO-SDN-juniper_contrail/setup.py
- - flake8 RO-SDN-odl_openflow/osm_rosdn_odlof/ RO-SDN-odl_openflow/setup.py
- - flake8 RO-SDN-onos_openflow/osm_rosdn_onosof/ RO-SDN-onos_openflow/setup.py
- - flake8 RO-SDN-onos_vpls/osm_rosdn_onos_vpls/ RO-SDN-onos_vpls/setup.py
- - flake8 RO-VIM-aws/osm_rovim_aws/ RO-VIM-aws/setup.py
- - flake8 RO-VIM-azure/osm_rovim_azure/ RO-VIM-azure/setup.py
- - flake8 RO-VIM-openstack/osm_rovim_openstack/ RO-VIM-openstack/setup.py
- - flake8 RO-VIM-openvim/osm_rovim_openvim/ RO-VIM-openvim/setup.py
- - flake8 RO-VIM-vmware/osm_rovim_vmware/vimconn_vmware.py RO-VIM-vmware/osm_rovim_vmware/tests/test_vimconn_vmware.py RO-VIM-vmware/setup.py
- - flake8 RO-VIM-gcp/osm_rovim_gcp/ RO-VIM-gcp/setup.py
- - flake8 integration-tests/
+ flake8 NG-RO/osm_ng_ro/ NG-RO/setup.py
+ flake8 RO-plugin/osm_ro_plugin/ RO-plugin/setup.py
+ flake8 RO-SDN-arista_cloudvision/osm_rosdn_arista_cloudvision/ RO-SDN-arista_cloudvision/setup.py
+ flake8 RO-SDN-dpb/osm_rosdn_dpb/ RO-SDN-dpb/setup.py
+ flake8 RO-SDN-dynpac/osm_rosdn_dynpac/ RO-SDN-dynpac/setup.py
+ flake8 RO-SDN-floodlight_openflow/osm_rosdn_floodlightof/ RO-SDN-floodlight_openflow/setup.py
+ flake8 RO-SDN-ietfl2vpn/osm_rosdn_ietfl2vpn/ RO-SDN-ietfl2vpn/setup.py
+ flake8 RO-SDN-juniper_contrail/osm_rosdn_juniper_contrail/ RO-SDN-juniper_contrail/setup.py
+ flake8 RO-SDN-odl_openflow/osm_rosdn_odlof/ RO-SDN-odl_openflow/setup.py
+ flake8 RO-SDN-onos_openflow/osm_rosdn_onosof/ RO-SDN-onos_openflow/setup.py
+ flake8 RO-SDN-onos_vpls/osm_rosdn_onos_vpls/ RO-SDN-onos_vpls/setup.py
+ flake8 RO-VIM-aws/osm_rovim_aws/ RO-VIM-aws/setup.py
+ flake8 RO-VIM-azure/osm_rovim_azure/ RO-VIM-azure/setup.py
+ flake8 RO-VIM-openstack/osm_rovim_openstack/ RO-VIM-openstack/setup.py
+ flake8 RO-VIM-openvim/osm_rovim_openvim/ RO-VIM-openvim/setup.py
+ flake8 RO-VIM-vmware/osm_rovim_vmware/vimconn_vmware.py RO-VIM-vmware/osm_rovim_vmware/tests/test_vimconn_vmware.py RO-VIM-vmware/setup.py
+ flake8 RO-VIM-gcp/osm_rovim_gcp/ RO-VIM-gcp/setup.py
+ flake8 integration-tests/
#######################################################################################
[testenv:pip-compile]
deps = pip-tools==5.5.0
skip_install = true
+whitelist_externals = sh
commands =
- sh -c "for file in requirements*.in ; do pip-compile -rU --no-header $file ;\
out=`echo $file | sed 's/.in/.txt/'` ; \
sed -i -e '1 e head -16 tox.ini' $out ;\
done"
- sh -c "sed -i 's/.*RO-plugin/-e RO-plugin/g' requirements-test.txt"
-whitelist_externals = sh
#######################################################################################
deps = {[testenv]deps}
-r{toxinidir}/requirements-dist.txt
skip_install = true
+whitelist_externals = sh
changedir = {toxinidir}/NG-RO
commands =
sh -c 'rm -rf osm_ng_ro/requirements.txt deb_dist dist osm_ng_ro.egg-info osm_ng_ro*.tar.gz'
sh -c 'cp ../requirements.txt osm_ng_ro/requirements.txt'
python3 setup.py --command-packages=stdeb.command sdist_dsc
sh -c 'cd deb_dist/osm-ng-ro*/ && dpkg-buildpackage -rfakeroot -uc -us'
-whitelist_externals = sh
+
#######################################################################################
[testenv:dist_ro_plugin]
deps = {[testenv]deps}
-r{toxinidir}/requirements-dist.txt
skip_install = true
+whitelist_externals = sh
changedir = {toxinidir}/RO-plugin
commands =
sh -c 'rm -rf deb_dist dist osm_ro_plugin.egg-info osm_ro_plugin*.tar.gz'
python3 setup.py --command-packages=stdeb.command sdist_dsc
sh -c 'cd deb_dist/osm-ro-plugin*/ && dpkg-buildpackage -rfakeroot -uc -us'
-whitelist_externals = sh
+
#######################################################################################
[testenv:dist_ro_sdn_arista_cloudvision]
deps = {[testenv]deps}
-r{toxinidir}/requirements-dist.txt
skip_install = true
+whitelist_externals = sh
changedir = {toxinidir}/RO-SDN-arista_cloudvision
commands =
sh -c 'rm -rf deb_dist dist osm_rosdn_arista_cloudvision.egg-info osm_rosdn_arista_cloudvision*.tar.gz'
python3 setup.py --command-packages=stdeb.command sdist_dsc
sh -c 'cd deb_dist/osm-rosdn-arista-cloudvision*/ && dpkg-buildpackage -rfakeroot -uc -us'
-whitelist_externals = sh
+
#######################################################################################
[testenv:dist_ro_sdn_dpb]
deps = {[testenv]deps}
-r{toxinidir}/requirements-dist.txt
skip_install = true
+whitelist_externals = sh
changedir = {toxinidir}/RO-SDN-dpb
commands =
sh -c 'rm -rf deb_dist dist osm_rosdn_dpb.egg-info osm_rosdn_dpb*.tar.gz'
python3 setup.py --command-packages=stdeb.command sdist_dsc
sh -c 'cd deb_dist/osm-rosdn-dpb*/ && dpkg-buildpackage -rfakeroot -uc -us'
-whitelist_externals = sh
+
#######################################################################################
[testenv:dist_ro_sdn_dynpac]
deps = {[testenv]deps}
-r{toxinidir}/requirements-dist.txt
skip_install = true
+whitelist_externals = sh
changedir = {toxinidir}/RO-SDN-dynpac
commands =
sh -c 'rm -rf deb_dist dist osm_rosdn_dynpac.egg-info osm_rosdn_dynpac*.tar.gz'
python3 setup.py --command-packages=stdeb.command sdist_dsc
sh -c 'cd deb_dist/osm-rosdn-dynpac*/ && dpkg-buildpackage -rfakeroot -uc -us'
-whitelist_externals = sh
+
#######################################################################################
[testenv:dist_ro_sdn_floodlight_of]
deps = {[testenv]deps}
-r{toxinidir}/requirements-dist.txt
skip_install = true
+whitelist_externals = sh
changedir = {toxinidir}/RO-SDN-floodlight_openflow
commands =
sh -c 'rm -rf deb_dist dist osm_rosdn_floodlightof.egg-info osm_rosdn_floodlightof*.tar.gz'
python3 setup.py --command-packages=stdeb.command sdist_dsc
sh -c 'cd deb_dist/osm-rosdn-floodlightof*/ && dpkg-buildpackage -rfakeroot -uc -us'
-whitelist_externals = sh
+
#######################################################################################
[testenv:dist_ro_sdn_ietfl2vpn]
deps = {[testenv]deps}
-r{toxinidir}/requirements-dist.txt
skip_install = true
+whitelist_externals = sh
changedir = {toxinidir}/RO-SDN-ietfl2vpn
commands =
sh -c 'rm -rf deb_dist dist osm_rosdn_ietfl2vpn.egg-info osm_rosdn_ietfl2vpn*.tar.gz'
python3 setup.py --command-packages=stdeb.command sdist_dsc
sh -c 'cd deb_dist/osm-rosdn-ietfl2vpn*/ && dpkg-buildpackage -rfakeroot -uc -us'
-whitelist_externals = sh
+
#######################################################################################
[testenv:dist_ro_sdn_juniper_contrail]
deps = {[testenv]deps}
-r{toxinidir}/requirements-dist.txt
skip_install = true
+whitelist_externals = sh
changedir = {toxinidir}/RO-SDN-juniper_contrail
commands =
sh -c 'rm -rf deb_dist dist osm_rosdn_juniper_contrail.egg-info osm_rosdn_juniper_contrail*.tar.gz'
python3 setup.py --command-packages=stdeb.command sdist_dsc
sh -c 'cd deb_dist/osm-rosdn-juniper-contrail*/ && dpkg-buildpackage -rfakeroot -uc -us'
-whitelist_externals = sh
+
#######################################################################################
[testenv:dist_ro_sdn_odl_of]
deps = {[testenv]deps}
-r{toxinidir}/requirements-dist.txt
skip_install = true
+whitelist_externals = sh
changedir = {toxinidir}/RO-SDN-odl_openflow
commands =
sh -c 'rm -rf deb_dist dist osm_rosdn_odlof.egg-info osm_rosdn_odlof*.tar.gz'
python3 setup.py --command-packages=stdeb.command sdist_dsc
sh -c 'cd deb_dist/osm-rosdn-odlof*/ && dpkg-buildpackage -rfakeroot -uc -us'
-whitelist_externals = sh
+
#######################################################################################
[testenv:dist_ro_sdn_onos_of]
deps = {[testenv]deps}
-r{toxinidir}/requirements-dist.txt
skip_install = true
+whitelist_externals = sh
changedir = {toxinidir}/RO-SDN-onos_openflow
commands =
sh -c 'rm -rf deb_dist dist osm_rosdn_onosof.egg-info osm_rosdn_onosof*.tar.gz'
python3 setup.py --command-packages=stdeb.command sdist_dsc
sh -c 'cd deb_dist/osm-rosdn-onosof*/ && dpkg-buildpackage -rfakeroot -uc -us'
-whitelist_externals = sh
+
#######################################################################################
[testenv:dist_ro_sdn_onos_vpls]
deps = {[testenv]deps}
-r{toxinidir}/requirements-dist.txt
skip_install = true
+whitelist_externals = sh
changedir = {toxinidir}/RO-SDN-onos_vpls
commands =
sh -c 'rm -rf deb_dist dist osm_rosdn_onos_vpls.egg-info osm_rosdn_onos_vpls*.tar.gz'
python3 setup.py --command-packages=stdeb.command sdist_dsc
sh -c 'cd deb_dist/osm-rosdn-onos-vpls*/ && dpkg-buildpackage -rfakeroot -uc -us'
-whitelist_externals = sh
+
#######################################################################################
[testenv:dist_ro_vim_aws]
deps = {[testenv]deps}
-r{toxinidir}/requirements-dist.txt
skip_install = true
+whitelist_externals = sh
changedir = {toxinidir}/RO-VIM-aws
commands =
sh -c 'rm -rf deb_dist dist osm_rovim_aws.egg-info osm_rovim_aws*.tar.gz'
python3 setup.py --command-packages=stdeb.command sdist_dsc
sh -c 'cd deb_dist/osm-rovim-aws*/ && dpkg-buildpackage -rfakeroot -uc -us'
-whitelist_externals = sh
+
#######################################################################################
[testenv:dist_ro_vim_azure]
deps = {[testenv]deps}
-r{toxinidir}/requirements-dist.txt
skip_install = true
+whitelist_externals = sh
changedir = {toxinidir}/RO-VIM-azure
commands =
sh -c 'rm -rf deb_dist dist osm_rovim_azure.egg-info osm_rovim_azure*.tar.gz'
python3 setup.py --command-packages=stdeb.command sdist_dsc
sh -c 'cd deb_dist/osm-rovim-azure*/ && dpkg-buildpackage -rfakeroot -uc -us'
-whitelist_externals = sh
+
#######################################################################################
[testenv:dist_ro_vim_openstack]
deps = {[testenv]deps}
-r{toxinidir}/requirements-dist.txt
skip_install = true
+whitelist_externals = sh
changedir = {toxinidir}/RO-VIM-openstack
commands =
sh -c 'rm -rf deb_dist dist osm_rovim_openstack.egg-info osm_rovim_openstack*.tar.gz'
python3 setup.py --command-packages=stdeb.command sdist_dsc
sh -c 'cd deb_dist/osm-rovim-openstack*/ && dpkg-buildpackage -rfakeroot -uc -us'
-whitelist_externals = sh
+
#######################################################################################
[testenv:dist_ro_vim_openvim]
deps = {[testenv]deps}
-r{toxinidir}/requirements-dist.txt
skip_install = true
+whitelist_externals = sh
changedir = {toxinidir}/RO-VIM-openvim
commands =
sh -c 'rm -rf deb_dist dist osm_rovim_openvim.egg-info osm_rovim_openvim*.tar.gz'
python3 setup.py --command-packages=stdeb.command sdist_dsc
sh -c 'cd deb_dist/osm-rovim-openvim*/ && dpkg-buildpackage -rfakeroot -uc -us'
-whitelist_externals = sh
+
#######################################################################################
[testenv:dist_ro_vim_vmware]
deps = {[testenv]deps}
-r{toxinidir}/requirements-dist.txt
skip_install = true
+whitelist_externals = sh
changedir = {toxinidir}/RO-VIM-vmware
commands =
sh -c 'rm -rf deb_dist dist osm_rovim_vmware.egg-info osm_rovim_vmware*.tar.gz'
python3 setup.py --command-packages=stdeb.command sdist_dsc
sh -c 'cd deb_dist/osm-rovim-vmware*/ && dpkg-buildpackage -rfakeroot -uc -us'
-whitelist_externals = sh
+
#######################################################################################
[testenv:dist_ro_vim_gcp]
deps = {[testenv]deps}
-r{toxinidir}/requirements-dist.txt
skip_install = true
+whitelist_externals = sh
changedir = {toxinidir}/RO-VIM-gcp
commands =
sh -c 'rm -rf deb_dist dist osm_rovim_gcp.egg-info osm_rovim_gcp*.tar.gz'
python3 setup.py --command-packages=stdeb.command sdist_dsc
sh -c 'cd deb_dist/osm-rovim-gcp*/ && dpkg-buildpackage -rfakeroot -uc -us'
-whitelist_externals = sh
#######################################################################################
max-line-length = 120
show-source = True
builtins = _
+import-order-style = google